Differences

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

2005-04-18 2005-04-29
old revision restored (martin) (hidden) general update and typography (martin)
Line 1: Line 1:
====== WinSCP Translation How to ====== ====== WinSCP Translation How to ======
-===== How to start with translation? ===== +===== How to Start with Translation? ===== 
-When you want to start with translation, [[&url(contactme)|contact me]]. Send me your name, contact email address and language you want to work on. Also specify, whether you want your email address to be published on translations page. Optionally I may display your URL instead of an email. Unless you explicitly forbid me, I'll provide your email address to other translators of the same language (if any). In case your language does not use western Latin-1 character set (1252), write me also Windows (not ISO) code of the set. +When you want to start with translation, [[&url(contactme)|contact me]]. Send me your name, contact email address and language you want to work on. Also specify, whether you want your email address to be published on translations page. Optionally I may display your URL instead of an email. Note that I can provide your email address to other translators of the same language (if any) without explicitly asking. In case your language does not use western Latin-1 character set (1252), write me also Windows (not ISO) code of the set.
-Note that support for multi-byte character sets is limited. It needs to be verified for each and every language. Support for bi-directional languages (for example Hebrew and Arabic) is tested.+Note that support for multi-byte character sets is limited (Japanese, Chinese). It needs to be verified for each and every language. Support for bi-directional languages (Hebrew, Arabic) is tested.
In case 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 abanoned and I need maintainer for it), I'll create a [[this>../transladmin.php|translator account]] for you. An username is always your e-mail address. In case 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 abanoned and I need maintainer for it), I'll create a [[this>../transladmin.php|translator account]] for you. An username is always your e-mail address.
-===== How to translate? ===== +===== How to Translate? ===== 
-Once you have a translator account, you may login to translation web-interface. There select your language and download INI file with strings to translate.+Once you have a translator account, you may login to translation web-interface. There select your language. Before you will be also to download INI file with strings to translate, you may need to press //Update// button. If the INI file for the language does not exists yet, it will be created. If it already exists, it will get updated, in case it does not contain all strings from the most recent version yet. This can happen if the last translator abanoned the translation while ago. You may need to press //Update// button also with every new release.
Format of the file is like INI file, example: Format of the file is like INI file, example:
Line 22: Line 22:
</code> </code>
-Where file is either form (dialog) definition (.dfm extension), resource strings file (.rc extension) or strings for setup application (.isl extension). Key should give you some idea about purpose of the string. For form definitions it is context and the name of component using the string. The strings that need to be translated have keyword <translate> in place of "translated string" (initially all strings).+Where file is either form (dialog) definition (''.dfm'' extension), resource strings file (''.rc'' extension) or strings for [[installer|setup application]] (''.isl'' extension). Key should give you some idea about purpose of the string. For form definitions it is context and the name of component using the string. The strings that need to be translated have keyword ''<translate>'' in place of "translated string" (initially all strings).
Example: Example:
Line 31: Line 31:
</code> </code>
-The "Shell" is title (caption) of shell group box on SCP tab of login dialog.+The "Shell" is title (caption) of shell group box on //[[ui_login_scp|SCP tab]]// of Login dialog.
-There are two special sections. [default.isl] contains general strings for setup application ([[&url(innosetup)|Inno Setup]]). The application is already translated to [[&url(innosetuptransl)|several languages]]. If your language is among them, I'll copy the translation to this section. Please check for typos etc. in the section.+There are two special sections. ''[default.isl]'' contains general strings for setup application ([[&url(innosetup)|Inno Setup]]). The application is already 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 the section.
-[Obsolete strings] section contains translated strings that are no longer used in the latest version of application. Also when I need to significantly change original english string, I try to change the string key as well, if possible. In this case your translation will move to [Obsolete strings] with next update. This forces you to update the string translation. You may reuse original translation from obsolete section, if appropriate. Then you may safely remove whole section.+''[Obsolete strings]'' section contains translated strings that are no longer used in the latest version of application. Also when I need to significantly change original english string, I try to change the string key as well, if possible. In this case your translation will move to [Obsolete strings] with next update. This forces you to update the string translation. You may reuse original translation from obsolete section, if appropriate. Then you may safely remove whole section.
-Some strings contain parameter placeholders like '%s' or '%d'. These are replaced by actual value on run-time. Make sure that you keep the same order as in english string. I know it can be sometime difficult, because some languages have different word-ordering, but it have to be so. Also translated string should have approximately same length as 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 actual value on run-time. Make sure that you keep the same order as in english string. I know it can be sometime difficult, because some languages have different word-ordering, but it have to be so. Also translated string should have approximately same length as original string. This applies mainly for strings that appear on dialogs. The error messages etc, might be usually as long as necessary.
-Some strings use '&' character to mark accelerator character (the one after '&'). When user presses Alt-X, where X is the accelerator character, associated control (button, edit box, menu, etc.) receives focus (cursor moves to it, etc.). The accelerator character should be unique on each screen (window). It is also difficult to maitain this, as the dialogs use often strings from different sources. So you'll probably succeed with this after several tries.+Some strings use ''&'' character to mark accelerator character (the one after ''&''). When user presses ''Alt-X'', where ''X'' is the accelerator character, associated control (button, edit box, menu, etc.) receives focus (cursor moves to it, etc.). The accelerator character should be unique on each screen (window). It is also difficult to maitain this, as the dialogs use often strings from different sources. So you'll probably succeed with this after several tries.
-Also please, if you encounter strange sequence like '#13#10', include it in translation too. For such strings I recommend you to copy the English one and replace the words only, keep the "strange" patterns. Avoid ever using double quotes ("), use always single-quotes ('), in this just follow the way the original english string is written. Double quotes are used to mark begin and end of the string.+Also please, if you encounter strange sequence like ''#13#10'', include it in translation too. For such strings I recommend you to copy the English one and replace the words only, keep the "strange" patterns. Avoid ever using double quotes (''"''), use always single-quotes ('''''), in this just follow the way the original english string is written. Double quotes are used to mark begin and end of the string.
-In section [TextsWin1.rc], the first string has key TRANSLATOR_INFO. This string will appear on About dialog. You may enter there anything you want. Like 'Transation (c) 2003 Your name', or whatever you want.+In section ''[TextsWin1.rc]'', the first string has key ''TRANSLATOR_INFO''. This string will appear on [[ui_about|About dialog]]. You may enter there anything you want. Like "Transation (c) 2005 Your name", or whatever you want.
-You do not have to translate all strings at once. You may translate several hunderds each turn. Upload, what you have to [[this>../transladmin.php|translation web-interface]]. I'll do regular updates of translation DLLs.+You do not have to translate all strings at once. You may translate several hundreds each turn. Upload, what you have done to [[this>../transladmin.php|translation web-interface]]. I'll do regular updates of translation DLLs.
-===== Explanation of some string meaning ===== +===== Explanation of Some String Meaning ===== 
-Here I provide explanation of some string meaning (and/or usage), where it may not be not obvious. I will expand the list each time someone asks. +Here I provide explanation of some string meaning (and/or usage), where it may not be not obvious. I will expand the list each time someone asks. You also add your experiences youself.
^ [Section] ^ Key Meaning/usage ^ ^ [Section] ^ Key Meaning/usage ^
-| [FileSystemInfo.dfm] ...Label6.Caption | [[protocols|"Can execute arbitrary command"]]. Arbitrary means ANY command. With SCP protocol user can execute any command he wants from the console window. With SFTP you cannot do this. | +| ''[FileSystemInfo.dfm] ...Label6.Caption'' | [[protocols|"Can execute arbitrary command"]]. Arbitrary means ANY command. With WinSCP user can execute any [[remote_command|remote command]] he wants from the [[ui_console|console window]]. | 
-| [FileSystemInfo.dfm] ...Label9.Caption | "Native text (ASCII) mode transfers". Native means that the protocol has its own [[protocols|support for text mode transfers]]. This is true only for SFTP protocol version 4. For SCP and other SFTP versions, WinSCP only simulates the text transfers. | +| ''[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 protocol version 4 and newer. For SCP and other SFTP versions, WinSCP only simulates the text transfers. | 
-| [Login.dfm] ...ProxyLocalhostCheck.Caption | It means "Do use proxy even for localhost", not "Don't use proxy for localhost". | +| ''[Login.dfm] ...ProxyLocalhostCheck.Caption'' | It means "Do use proxy even for localhost", not "Don't use proxy for localhost". | 
-| [Login.dfm] ...PingDummyCommandButton.Caption | By dummy I mean command that does in fact nothing (or at least it does not change anything). For SCP I do &quot;echo something&quot;, for SFTP I get properties of root directory. | +| ''[Login.dfm] ...PingDummyCommandButton.Caption'' | By dummy I mean command that does in fact nothing (or at least it does not change anything). For SCP I do ''echo something'', for SFTP I get properties of root directory. | 
-| [NonVisual.dfm] ...SynchorizeBrowsingAction.Caption | It is used with Norton Commander-style interface only. It is a switch. When it is on, and you enter i.e. &quot;www" folder on local panel, same folder is opened on remote panel and vice versa. |+| ''[NonVisual.dfm] ...SynchorizeBrowsingAction.Caption'' | Read [[task_navigate#synchronize_browsing|documentation]] |
| [NonVisual.dfm] ...AuthTISCheck.Caption | [[&url(puttytis)|Attempt TIS or CryptoCard authentication]] | | [NonVisual.dfm] ...AuthTISCheck.Caption | [[&url(puttytis)|Attempt TIS or CryptoCard authentication]] |
| [TextsCore1.rc] DETECT_RETURNVAR_ERROR | WinSCP in SCP mode tries to detect first, if in current user shell $? or $status variable contain result of the last command. | | [TextsCore1.rc] DETECT_RETURNVAR_ERROR | WinSCP in SCP mode tries to detect first, if in current user shell $? or $status variable contain result of the last command. |
Line 62: Line 62:
| [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 most of the languages. | | [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 most of the languages. |
-===== How to use translation DLL ===== +===== How to Use Translation DLL ===== 
-When you download ZIP file with translation DLL, unzip it to your WinSCP installation directory. Then start WinSCP. Use &quot;Languages" button on login dialog to switch to your language. If you cannot see your language in menu, write me. (Please note that the DLL does not have extension .DLL. The actual extension represents the language code).+Read [[languages|documentation]].
-===== How to use translation web-interface =====+===== How to Use Translation Web-interface =====
Each page includes description of its features. If you consider it to be insufficient, let me know, I'll improve it. Each page includes description of its features. If you consider it to be insufficient, let me know, I'll improve it.
Line 71: Line 71:
Translations are stored on project CVS as well. CVS is updated in regular intervals (every few hours). Translations are stored on project CVS as well. CVS is updated in regular intervals (every few hours).
-Project CVS can be accessed anonymously. To checkout whole translation module use following command (press enter if you are prompted for password): +Project CVS can be accessed anonymously. To checkout whole ''translations'' module use following command (press ''Enter'' if you are prompted for password):
<code> <code>

Last modified: by martin