Differences
This shows you the differences between the selected revisions of the page.
translation_admin 2012-09-25 | translation_admin 2022-05-02 (current) | ||
Line 2: | Line 2: | ||
===== Translating the Application ===== | ===== Translating the Application ===== | ||
- | When you want to start a translation, [[&url(contactme)|contact me]]. Send me your name, contact email address and the language you want to work on. Also specify, whether you want your email address to be published on the translations page. Optionally I may display your URL instead of your email. Note that I 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 I 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 I need a maintainer for it), I'll 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. |
- | ==== How Do I Translate? ==== | + | Note that we may provide your email address to other translators of the same language (if any) without explicitly asking you.· |
- | 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. | + | |
- | Format of the file is like the INI file, for example: | + | ==== Translation File ==== |
+ | 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. | ||
- | <code> | + | A format of the file is like an INI file, for example: |
- | ; file comment | + | |
- | [file] | + | <code ini> |
- | ; "original english string" | + | ; File comment |
- | key="translated string" | + | [File] |
- | ; "original english string2" | + | ; "Original English string" |
- | key2="translated string2" | + | Key="Translated string" |
+ | ; "Original English string 2" | ||
+ | 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 [[installation|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> |
- | [Login.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 tab]]// of Login dialog. | + | The //"Shell"// is the title (caption) of the "shell" group box on //[[ui_login_scp|SCP/Shell page]]// of Advanced Site Settings dialog. |
- | Section ''[default.isl]'' contains general strings for the setup application ([[&url(innosetup)|Inno Setup]]). The application has already been translated to [[&url(innosetuptransl)|several languages]]. If your language is among them, I'll copy the translation to this section. Please check for typos and other mistakes in this section. | + | 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. | ||
- | 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. I know 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. | + | 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. |
- | 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 maintain this also, as the dialogs often use strings from different sources. So you'll probably require several attempts to get it right. | + | ==== Translation Strings ==== |
- | Also, please, if you encounter strange sequences like ''#13#10'', include it in the translation too. For these strings I recommend that you to copy the English one and replace the words only, keeping the "strange" patterns. Please never use double quotes (''%%"%%''), use always single-quotes (''%%'%%''), following the way the original English string is written. Double quotes are used to mark the beginning and the end of the string. | + | Translation strings use C-style string syntax. Double quotes are used to delimit the strings. Double quotes, line breaks and backslashes in strings need to be escaped using a |
+ | backslash -- ''\"'', ''\n'' or ''\r\n'' and ''\\'' respectively. All other characters should be used literally. | ||
- | In section ''[TextsWin1.rc]'', the first two strings have the keys ''TRANSLATOR_INFO'' 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. | + | 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. |
- | 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]]. I'll do regular updates of the [[languages|translation DLLs]]. | + | 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. |
- | ==== Explanation of the Meaning of Some Strings ==== | + | 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. |
- | Here I provide an explanation of the meanings of some strings (and/or usage), where it may not be obvious. I will expand the list each time someone asks. You can also add your own knowledge. | + | |
- | ^ [Section] ^ Key Meaning/usage ^ | + | ==== [[special_sections]] Special Sections ==== |
- | | ''[FileSystemInfo.dfm] ...Label6.Caption'' | [[protocols|"Can execute arbitrary command"]]. Arbitrary means ANY command. With WinSCP user can execute any [[remote_command|remote command]] he or she wants from the [[ui_console|console window]]. | | + | |
- | | ''[FileSystemInfo.dfm] ...Label9.Caption'' | "Native text (ASCII) mode transfers". Native means that the protocol has its own support for [[transfer_mode|text mode transfers]]. This is true only for SFTP-4 and newer. For SCP and older SFTP versions, WinSCP merely simulates the text transfers. | | + | |
- | | ''[Login.dfm] ...ProxyLocalhostCheck.Caption'' | This means "use the proxy even for the localhost", not "Don't use proxy for localhost". | | + | |
- | | ''[Login.dfm] ...PingDummyCommandButton.Caption'' | By dummy I mean a command that does in fact nothing (or at least it does not change anything). For SCP I do ''echo something'', for SFTP I get the properties of the root directory. | | + | |
- | | ''[NonVisual.dfm] ...SynchorizeBrowsingAction.Caption'' | Read [[task_navigate#synchronized_browsing|documentation]] | | + | |
- | | ''[TextsCore1.rc] DETECT_RETURNVAR_ERROR'' | WinSCP in SCP mode first tries to detect if, in the current user shell ''$?'' or ''$status'' variable contains the result of the last command. | | + | |
- | | ''[TextsCore1.rc] SFTP_SERVER_MESSAGE_ UNSUPPORTED'' | This is used for "Error message from server" in ''SFTP_ERROR_FORMAT'', when SFTP cannot provide one. | | + | |
- | | ''[TextsCore1.rc] CIPHER_BELOW_TRESHOLD, CIPHER_TYPE_CS, CIPHER_TYPE_SC'' | ''%s'' in ''%scipher'' of ''CIPHER_BELOW_TRESHOLD'' is replaced either with empty string or by value of ''CIPHER_TYPE_CS'' or ''CIPHER_TYPE_SC''. Both replacements should have a space at the end, if appropriate for particular language. | | + | |
- | | ''[TextsWin1.rc] MUTEX_RELEASE_TIMEOUT, DRAGEXT_MUTEX_RELEASE_TIMEOUT'' | Mutex is technical term standing for "MUTual EXclusive". I believe that it does not translate to the majority of the languages. | | + | |
- | ==== How to Use Translation DLL ==== | + | 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. |
- | Read [[languages|documentation]]. | + | |
- | ==== CVS ==== | + | 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. |
- | Translations are also stored on the project CVS. CVS is updated in regular intervals (every few hours). | + | |
- | The Project CVS can be accessed anonymously. To checkout the whole ''translations'' module use following command (press ''Enter'' if you are prompted for password): | + | ==== [[testing]] Testing Your Translation ==== |
- | <code> | + | 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. |
- | cvs -z3 -d:pserver:anonymous@winscp.cvs.sourceforge.net:/cvsroot/winscp co -P translations | + | |
- | </code> | + | |
- | There is also a [[&url(cvswebtransl)|web-based CVS viewer]]. It is on a delay with respect to the primary CVS server. | + | ==== [[using_dll]] How to Use Translation DLL ==== |
+ | Read [[languages|documentation]]. | ||
+ | |||
+ | ==== [[git]] Git ==== | ||
+ | Translations are also stored on the [[https://github.com/winscp/winscp/tree/translations/translations|project Git repository on GitHub]]. The repository is updated once a day. | ||
+ | |||
+ | 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. | ||
- | More information about CVS is provided on the [[&url(cvsproject)|project page]]. | + | 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 localised 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 ''%%http://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, login to the wiki using your [[this>../../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. | ||
+ | |||
+ | You will receive a notification, whenever the localized page is changed (be it by us or a random visitor). | ||
- | Before editing, create an account for the wiki. Firstly, you will receive some credit for your contributions. Secondly, I will be able to recognise 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 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. |
- | As a last step, add your language (local name, not in English) to a [[lang:name|list]] to give me a hint about the title of the language icon (flag). | + | 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. |
- | Once you have created the localized version I'll give it a shortcut address in the form ''%%http://winscp.net/<lang>/%%'' and add the "flag" link to the page header. Also address ''http://winscp.net/'' will automatically redirect to the localized page, if browser/visitor has the corresponding language set as preferred. | + | 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]]. |
- | If I 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>../../forum/|support forum]]. | + | ===== [[rank]] Forum Rank ===== |
+ | We will tag your forum account as //"Translator"// to highlight it in the threads. | ||
- | ===== [[moderator]] Translation Forum Moderator ===== | + | ===== Automatic Updates ===== |
- | You are also welcome to register on [[http://winscp.net/forum/|support forum]] (if you have not done already to create an introduction page) to become a [[http://winscp.net/forum/viewforum.php?f=9|translation forum]] moderator. If you send me your login name, I'll 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. | + | 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]]. |