Differences

This shows you the differences between the selected revisions of the page.

translation_admin 2019-01-17 translation_admin 2022-05-02 (current)
Line 2: Line 2:
===== Translating the Application ===== ===== Translating the Application =====
-When you want to start a translation, [[&forum/viewforum.php?f=9|contact us on the Translation forum]]. Post your name, contact email address to the topic of the language you want to work on (start a new topic, if your language is not listed yet). Also specify, whether you want your email address to be published on the translations page. Optionally we may display your URL instead of your email. Note that we may provide your email address to other translators of the same language (if any) without explicitly asking you. +When you want to start translating WinSCP, please [[&forum/viewforum.php?f=9|contact us on the Translation forum]]. Before posting, [[this>../../forum/profile.php?mode=register|register on the forum]], using an email address you want us to use to communicate with you. Post to the topic of the language you want to work on (start a new topic, if your language is not listed yet). Do not forget to post your full name. Thanks!
-If we need your help (the language is either not being translated at all or there is still lot of work to do on it or the translation is abandoned and we need a maintainer for it), we will create a [[this>../transladmin.php|translator account]] for you. Your username is always your e-mail address.+If we need a help with the translation, we will create a [[this>../transladmin.php|translator account]] for you. Your username is always your e-mail address. 
 + 
 +Note that we may provide your email address to other translators of the same language (if any) without explicitly asking you.
==== Translation File ==== ==== Translation File ====
-Once you have a translator account, you may login to the [[this>../transladmin.php|translation web-interface]]. Once there, download INI file with strings to translate.+Once you have a translator account, you may log in to the [[this>../transladmin.php|translation web-interface]]. Once there, download a file with the strings to translate.
-Format of the file is like an INI file, for example:+A format of the file is like an INI file, for example:
-<code> +<code ini
-; file comment +; File comment 
-[file+[File
-; "original english string" +; "Original English string" 
-key="translated string" +Key="Translated string" 
-; "original english string2+; "Original English string 2
-key2="translated string2"+Key2="Translated string 2"
</code> </code>
-Where the file is either a form (dialog) definition (''.dfm'' extension), a resource strings file (''.rc'' extension) or strings for [[ui_installer|setup application]] (''.isl'' extension). The key should give you some idea about the purpose of the string. For the form definitions it is a context and the name of a component using the string. The strings that need to be translated have the keyword ''<translate>'' instead of "translated string" (initially all strings).+Where the ''File'' is either a form/window/dialog definition (a ''.dfm'' extension), a resource strings file (a ''.rc'' extension) or strings for [[ui_installer|setup application]] (a ''.isl'' extension). The key should give you some idea about the purpose of the string. For form definitions, it is a context and the name of the component using the string.
Example: Example:
-<code>+<code ini>
[SiteAdvanced.dfm] [SiteAdvanced.dfm]
-MainPanel.PageControl.ScpSheet.ShellGroup.Caption="Shell"+MainPanel.PageControl.ScpSheet.ShellGroup.<nohilite>Caption</nohilite>="Shell"
</code> </code>
-The "Shell" is the title (caption) of the shell group box on //[[ui_login_scp|SCP/Shell page]]// of Advanced Site Settings dialog.+The //"Shell"// is the title (caption) of the "shell" group box on //[[ui_login_scp|SCP/Shell page]]// of Advanced Site Settings dialog
 + 
 +The strings that need to be translated are marked with ''<translate>'' keyword in place of "Translated string" (initially all strings are marked this way).
Use UTF-8 encoding when editing the INI file. Use UTF-8 encoding when editing the INI file.
-You do not have to translate all the strings at once. You may translate them in any number of steps. Upload, what you have done so far to [[this>../transladmin.php|translation web-interface]]. We will do regular updates of the [[languages|translation DLLs]].+You do not have to translate all the strings at once. You may translate them in any number of steps. Upload, what you have done so far, to [[this>../transladmin.php|translation web-interface]]. An uploaded translation is compiled into [[languages|translation DLL]] automatically and it is made promptly available for a download.
==== Translation Strings ==== ==== Translation Strings ====
Line 40: Line 44:
backslash -- ''\"'', ''\n'' or ''\r\n'' and ''\\'' respectively. All other characters should be used literally. backslash -- ''\"'', ''\n'' or ''\r\n'' and ''\\'' respectively. All other characters should be used literally.
-Some strings contain parameter placeholders like ''%s'' or ''%d''. These are replaced by the actual value at run-time. Make sure that you keep the same order as in the English string. We know that it can be difficult sometimes, because some languages have different word-orders, but it has to be so. Also translated strings should have approximately the same length as the original string. This applies mainly for strings that appear on dialogs. The error messages etc, might be usually as long as necessary.+Some strings contain parameter placeholders like ''%s'' or ''%d''. These are replaced by an actual value at run-time. Make sure that you keep the same order of placeholders as in the original English string. We know that it can be difficult sometimes, because some languages have different word order, but it has to be so. 
 + 
 +Make sure that translations of window control labels fit into the limited space available on the window. On the contrary, (error) messages might be usually as long as needed.
Some strings use the ''&'' character to mark the accelerator character (the one after ''&''). When the user presses ''Alt+X'', where ''X'' is the accelerator character, the associated control (button, edit box, menu, etc.) receives the focus (cursor moves to it, etc.). The accelerator character should be unique for each screen (window). It can be difficult to achieve, as dialogs often use strings from different sources. You'll probably need several attempts to get it right. Some strings use the ''&'' character to mark the accelerator character (the one after ''&''). When the user presses ''Alt+X'', where ''X'' is the accelerator character, the associated control (button, edit box, menu, etc.) receives the focus (cursor moves to it, etc.). The accelerator character should be unique for each screen (window). It can be difficult to achieve, as dialogs often use strings from different sources. You'll probably need several attempts to get it right.
-==== Special Sections ====+==== [[special_sections]] Special Sections ====
-Section ''[default.isl]'' contains general strings for the setup application ([[&url(innosetup)|Inno Setup]]). The application has already been translated to [[http://www.jrsoftware.org/files/istrans/|several languages]]. If your language is among them, we will copy the translation to this section. Please check for typos and other mistakes in this section.+Section ''[default.isl]'' contains general strings for the setup application ([[&url(innosetup)|Inno Setup]]), which is used to implement WinSCP installer. Inno Setup has already been translated to [[https://jrsoftware.org/files/istrans/|many languages]]. If your language is among them, we will copy Inno Setup translation to this section. If you disagree with the official translation, please discuss it with Inno Setup translator, rather than modifying its copy in WinSCP translation.
-In section ''[TextsWin1.rc]'', the first two strings have the keys ''TRANSLATOR_INFO2'' and ''TRANSLATOR_URL''. They will appear on the [[ui_about|About dialog]]. You may include there anything you want. Such as, "Translation (c) 2009 Your name", or anything else. For URL, you can use both HTTP URL and e-mail address.+In section ''[TextsWin1.rc]'', the first two strings have the keys ''TRANSLATOR_INFO2'' and ''TRANSLATOR_URL''. They will appear on the [[ui_about|About dialog]]. You may include there anything you want. Such as, //"Translation (c) 2022 Your name"//, or anything else. For the URL, you can use both an HTTP URL and an e-mail address.
==== [[testing]] Testing Your Translation ==== ==== [[testing]] Testing Your Translation ====
-You can generate [[languages|translation DLL]] on your own to test the translation before uploading. For that download "Translator" tool from [[this>../transladmin.php|translation web-interface]]. Extract the downloaded ZIP file and follow instructions in contained ''readme.txt'' file. +You can generate [[languages|translation DLL]] on your own to test the translation before uploading it. For that, download "Translator" tool from [[this>../transladmin.php|translation web-interface]]. Extract the downloaded ZIP file file and follow instructions in the contained ''readme.txt'' file.
- +
==== [[using_dll]] How to Use Translation DLL ==== ==== [[using_dll]] How to Use Translation DLL ====
Line 64: Line 68:
Use Git only to access historical translations. To download the current translation, always use [[this>../transladmin.php|translation web-interface]]. The web-interface updates the most recent translation (as stored on in the repository) on-the-fly to the last WinSCP version, e.g. it adds new strings to translate (that did not exist, when the translation was updated the last time), removes obsolete strings, etc. Use Git only to access historical translations. To download the current translation, always use [[this>../transladmin.php|translation web-interface]]. The web-interface updates the most recent translation (as stored on in the repository) on-the-fly to the last WinSCP version, e.g. it adds new strings to translate (that did not exist, when the translation was updated the last time), removes obsolete strings, etc.
-By default, your changes to translations are commited to Git repository under your name, but with a generic email address (''translator@winscp.net''). If you want to have your changes associated with your real email address/GitHub account, let us know.+By default, your changes to translations are committed to Git repository under your name, but with a generic email address (''translator@winscp.net''). If you want to have your changes associated with your real email address/GitHub account, let us know.
===== [[doc]] Translating the Introduction Page ===== ===== [[doc]] Translating the Introduction Page =====
-In addition to translating the application itself you are welcome to prepare a localized introduction page for the WinSCP documentation.+In addition to translating the application itself, you are welcome to prepare a localized introduction page for the WinSCP documentation.
-For a start there is [[lang:template|simple template]] (in English) covering the very basic information about WinSCP. However you are welcome to go more into details. Also if you know of or maintain personally a site in your language about WinSCP, you are welcome to link it.+For a start, there is a [[lang:template|simple template]] (in English) covering the very basic information about WinSCP. However you are welcome to go more into details. Also if you know of or maintain personally a site in your language about WinSCP, you are welcome to link it.
-To create the translated introduction page type URL ''%%https://winscp.net/eng/docs/lang:<lang>%%'' +To create a translated introduction page, type URL ''%%https://winscp.net/eng/docs/lang:<lang>%%'' into your browser, where ''<lang>'' is your language ID (i.e. the extension of the translation DLL) and press the //Create this page// button on the right.
-where ''<lang>'' is your language ID (i.e. extension of the translation DLL) and press the //Create this page// button on the right. +
Do not add another localized pages apart from the introduction one. Do not add another localized pages apart from the introduction one.
-To start you may copy the source of the [[lang:template|template page]] (open it, press //Edit this page// and copy the content). But remove the ''NOINDEX'' directive (which prevents search engines indexing the template) and all footnotes (in double round-brackets)+To start, you may copy the source of the [[lang:template|template page]] (open it, press //Edit this page// and copy the content). Though, remove the ''NOINDEX'' directive (which prevents search engines indexing the template) and all footnotes (in double round-brackets).
- +
-Before editing, create an account for the wiki. This way, you receive some credit for your contributions. Also, we will be able to recognize your edits from wiki vandalism. Wiki authentication is linked to [[this>../../forum/|support forum]], so in fact you need to [[this>../../forum/profile.php?mode=register|register on the forum]].+
-As a last step, add your language (local name, not in English) to a [[lang:name|list]] to give us a hint about an entry for the language in the website language menu.+Before editing, login to the wiki using your [[this&gt;../../forum/|WinSCP forum account]]. This way, you receive some credit for your contributions. Also, we will be able to recognize your edits from wiki vandalism.
-Once you have created the localized version we will give it a shortcut address in the form ''%%https://winscp.net/<lang>/%%'' and add an entry to the website language menu. Also address ''https://winscp.net/'' will automatically redirect to the localized page, if browser/visitor has the corresponding language set as the preferred one.+You will receive a notification, whenever the localized page is changed (be it by us or a random visitor).
-You will receive a notification, whenever the localized page is changed (be it by an administrator or a random visitor).+As the last step, add your language name (local name, not in English) to a [[lang:name|list]], to give us a hint about an entry for the language in the website language menu.
-If we do not do so, it may be because your translation does not qualify for public usage yet due to some shortcomings and I had have no means to contact you, because you have not registered. Then, please post a message on [[this&gt;../../forum/|support forum]].+Once you have created the localized version, we will give it a shortcut address in a form ''%%https://winscp.net/<lang>/%%''; and we will add an entry to the website language menu. The address ''https://winscp.net/'' will automatically redirect to the localized page, if a browser/visitor has the corresponding language set as the preferred one.
-===== [[moderator]] Translation Forum Moderator ===== +If we do not do so, it may be because your translation does not qualify for public usage yet due to some shortcomings; and we had have no means to contact you, because you have not registered. In such case, please post a message on [[this>../../forum/|support forum]].
-You are also welcome to register on [[this>;../../forum/|support forum]] (if you have not done already to create an introduction page) to become a [[this>../../forum/viewforum.php?f=9|translation forum]] moderator. If you send me your login name, we will grant you a moderator status and tag your account as "Translator". You will have rights to moderate (delete, edit, etc.) posts in the forum.+
-There is already dedicated thread for each language. Please keep with the thread, unless you have a good reason to start a new one.+===== [[rank]] Forum Rank ===== 
 +We will tag your forum account as //"Translator"// to highlight it in the threads.
===== Automatic Updates ===== ===== Automatic Updates =====
As a translator, you are entitled to [[updates#automatic_upgrade|automatic application updates]]. To enable automatic updates, enter your translator account username/email in [[ui_pref_updates|WinSCP preferences]]. As a translator, you are entitled to [[updates#automatic_upgrade|automatic application updates]]. To enable automatic updates, enter your translator account username/email in [[ui_pref_updates|WinSCP preferences]].

Last modified: by martin