This is an old revision of the document!
WinSCP Translation How To
Advertisement
Translating the Application
When you want to start a translation, 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.
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 translator account for you. Your username is always your e-mail address.
Translation File
Once you have a translator account, you may login to the translation web-interface. Once there, download INI file with strings to translate.
Format of the file is like an INI file, for example:
; file comment [file] ; "original english string" key="translated string" ; "original english string2" key2="translated string2"
Advertisement
Where the file is either a form (dialog) definition (.dfm
extension), a resource strings file (.rc
extension) or strings for 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:
[SiteAdvanced.dfm] MainPanel.PageControl.ScpSheet.ShellGroup.Caption="Shell"
The “Shell” is the title (caption) of the shell group box on SCP/Shell page of Advanced Site Settings dialog.
Section [default.isl]
contains general strings for the setup application (Inno Setup). The application has already been translated to 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.
Use UTF-8 encoding when editing the INI file. Though for .isl
sections, you cannot use characters that are not available in Windows ANSI code page of the language.
In section [TextsWin1.rc]
, the first two strings have the keys TRANSLATOR_INFO
and TRANSLATOR_URL
. They will appear on the About dialog. You may include there anything you want. Such as, “Translation © 2009 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 them in any number of steps. Upload, what you have done so far to translation web-interface. We will do regular updates of the translation DLLs.
Translation Strings
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 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.
Testing Your Translation
You can generate translation DLL on your own to test the translation before uploading. For that download “Translator” tool from translation web-interface. Extract the downloaded ZIP file and follow instructions in contained readme.txt
file.
How to Use Translation DLL
Read documentation.
Advertisement
Git
Translations are also stored on the project Git repository on GitHub. The repository is updated in once a day.
Use Git only to access historical translations. To download the current translation, always use 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.
Translating the Introduction Page
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 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>
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.
To start you may copy the source of the 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).
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 support forum, so in fact you need to register on the forum.
As a last step, add your language (local name, not in English) to a list to give us a hint about an entry for the language in the website language menu.
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 an administrator or a random visitor).
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 support forum.
Translation Forum Moderator
You are also welcome to register on support forum (if you have not done already to create an introduction page) to become a 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.
Advertisement
There is already dedicated thread for each language. Please keep with the thread, unless you have a good reason to start a new one.