WinSCP Translation How To


Translating the Application

When you want to start translating WinSCP, please contact us on the Translation forum. Before posting, 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 a help with the translation, we will create a 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

Once you have a translator account, you may log in to the translation web-interface. Once there, download a file with the strings to translate.

A format of the file is like an INI file, for example:

; File comment
; "Original English string"
Key="Translated string"
; "Original English string 2"
Key2="Translated string 2"

Where the File is either a form/window/dialog definition (a .dfm extension), a resource strings file (a .rc extension) or strings for 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.




The “Shell” is the title (caption) of the “shell” group box on 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.

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. An uploaded translation is compiled into translation DLL automatically and it is made promptly available for a download.

Translation Strings

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.

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.

Special Sections

Section [default.isl] contains general strings for the setup application (Inno Setup), which is used to implement WinSCP installer. Inno Setup has already been translated to 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 About dialog. You may include there anything you want. Such as, ”Translation © 2022 Your name“, or anything else. For the URL, you can use both an HTTP URL and an e-mail address.

Testing Your Translation

You can generate translation DLL on your own to test the translation before uploading it. For that, download ”Translator“ tool from translation web-interface. Extract the downloaded ZIP file file and follow instructions in the contained readme.txt file.


How to Use Translation DLL

Read documentation.


Translations are also stored on the 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 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 committed to Git repository under your name, but with a generic email address ( 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 a 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 a translated introduction page, type URL<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.

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). 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 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).

As the last step, add your language name (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 a form<lang>/; and we will add an entry to the website language menu. The address will automatically redirect to the localized page, if a browser/visitor has the corresponding language set as the preferred one.

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 support forum.

Forum Rank

We will tag your forum account as ”Translator" to highlight it in the threads.


Automatic Updates

As a translator, you are entitled to automatic application updates. To enable automatic updates, enter your translator account username/email in WinSCP preferences.

Last modified: by martin