Differences

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

2006-10-23 2007-04-05
task_navigate#synchronized_browsing (martin) update (martin)
Line 6: Line 6:
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) has been 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) has been tested.
-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 abanoned 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 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.
==== How Do I Translate? ==== ==== How Do I Translate? ====
Line 22: Line 22:
</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>'' in stead of "translated string" (initially all strings).+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).
Example: Example:
Line 31: Line 31:
</code> </code>
-The "Shell" is the title (caption) of the shell group box on //[[ui_login_scp|SCP tab]]// of Login dialog.+The "Shell" is the title (caption) of the shell group box on //[[ui_login_scp|SCP/Shell tab]]// of Login dialog.
There are two special sections: ''[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. There are two special sections: ''[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 ''[Obsolete strings]'' section contains translated strings that are no longer used in the latest version of the application. Also when I need to significantly change the 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 the next update. This forces you to update the string translation. You may reuse the original translation from an obsolete section, if appropriate. Then you may safely remove the whole section. +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.
- +
-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.+
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. 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.
-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.+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.
-In section ''[TextsWin1.rc]'', the first string has the key ''TRANSLATOR_INFO''. This string will appear on the [[ui_about|About dialog]]. You may include there anything you want. Such as, "Transation (c) 2005 Your name", or anything else.+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) 2007 Your name", or anything else. For URL, you can use both HTTP URL and e-mail address.
-You do not have to translate all the strings at once. You may translate several hundreds each time. Upload, what you have done so far to [[this>../transladmin.php|translation web-interface]]. I'll do regular updates of the 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]]. I'll do regular updates of the translation DLLs.
==== Explanation of The Meaning Of Some Strings ==== ==== Explanation of The Meaning Of Some Strings ====
Line 52: Line 50:
^ [Section] ^ Key Meaning/usage ^ ^ [Section] ^ Key Meaning/usage ^
| ''[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] ...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 protocol version 4 and more recent. For SCP and other SFTP versions, WinSCP merely 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-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] ...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. | | ''[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]] | | ''[NonVisual.dfm] ...SynchorizeBrowsingAction.Caption'' | Read [[task_navigate#synchronized_browsing|documentation]] |
-| ''[NonVisual.dfm] ...AuthTISCheck.Caption'' | [[&url(puttytis)|Attempt TIS or CryptoCard authentication]] | 
| ''[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] 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] SFTP_SERVER_MESSAGE_ UNSUPPORTED'' | This is used for "Error message from server" in ''SFTP_ERROR_FORMAT'', when SFTP cannot provide one. |
Line 74: Line 71:
<code> <code>
-cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/winscp co translations+cvs -z3 -d:pserver:anonymous@winscp.cvs.sourceforge.net:/cvsroot/winscp co -P translations
</code> </code>
Line 82: Line 79:
===== [[doc]] Translating The Introduction Page ===== ===== [[doc]] Translating The Introduction Page =====
-In addition to translating the appplication 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 localised 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 [[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.
Line 95: Line 92:
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]]. 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 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).+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 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. 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 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 mean to contact you, because you have not registered. Then, please post a message on [[this>../../forum/|support forum]].

Last modified: by martin