FileZilla translation guide

1. Introduction:

Translation of FileZilla is quite simple. You only need the resource files of FileZilla and MS VC++

2. Prerequisites:

Make sure the following programs are installed on your computer:

3. Getting started:

3.1 Checkout sourcecode of FileZilla

Open Explorer and go to the folder into which you want to checkout the sourcecode of FileZilla. Right-click in an empty part of the file area and chose CVS checkout from the context menu.
Enter :pserver:anonymous@cvs.filezilla.sourceforge.net:/cvsroot/filezilla as CVSROOT and FileZilla as Module. (Both fields are case sensitive) Next click on OK and wait until the CVS checkout operation finishes.

3.2 Create language files for your language

Start Cygwin and change the current directory to the source/LanguageDLLs subfolder (use / instead of \ inside Cygwin).
Now enter ./makelangfiles.sh and follow the instructions. If you do not know the Locale ID or codepage for your language, you can look them up under http://www.science.co.il/Language/Locale-Codes.asp

4. Translating the resouce files

Open the project file (.dsp file) with VC++. A warning about a missing workspace may appear, ignore it. On the left side of the VC++ window you should see 3 registers: Classes, Resources and Files (may be truncated). Click on resources and a list of all resource types should popup. The resources you should translate are: Dialogs, menus and the string table.

Please do not change anything in the version information block. FileZilla uses the information in it to detect the language files.

4.1 Format specifications and escape characters

Be cautious when you see %d, %s or something similar beginning with '%', these are format specifications. FileZilla exchanges them during runtime with their final values. They have to appear withing the translated resources or FileZilla may crash when using the translated resources. %d is a placeholder for a number, %s for a string.
It is also important to keep them in order, so don't switch them around.

In some strings you will \n \r or some other characters after an backslash. These are escaped characters which have a special meaning. For example \n represents the newline character used to start a new line.

If you have to enter a backslash anywhere in the translated strings, escape it with another backslash like this: \\

4.2 Dialogs

Expand the dialogs node and doubleclick the first entry. On the right the dialog should be visible now. Doubleclick any english text on the dialog to open the properties page where you can translate it. You don't have to translate text between < and >. Do this for all dialogs. If some text does not fit into a control, you may resize the control. If possible, try not resize the dialogs itself.

4.2.1 Comboboxes

Special treatment is required for the combo boxes in the dialogs with the ID IDD_SITEMANAGER, IDD_MANUAL_TRANSFER, IDD_OPTIONS_LOCALVIEW and IDD_OPTIONS_REMOTEVIEW: Doubleclick the combo boxes and go to the data tab, there are some lines for each combo box, please translate them, too.

4.3 Menus

Doubleclick a menu entry to open it's properties page. Here you have to translate the title and if available, the statusbar text.

4.4 String table

doubleclick each string and translate it.

4.5 Dialog/menu shortcut keys

For every menu item and most dialog items, one character is underlined and acts as shortcut for keyboard navigation. To underline a letter in a string, preceed it with a single &
If you want the menu/dialog item to contain a &, escape it with another & (Example: Ant && Bear)

Make sure each subemenu and dialog contains no duplicate shortcut key.

5. Testing your resources

You may at any time compile the resources to test them with FileZilla by pressing F7. Copy the resulting dll from the release folder into the same folder as FileZilla and select your language from the settings dialog of FileZilla.

5.1 Compiling the language files without VC++

If you do not have Visual C++, you can compile the language files using MinGW. Open the command line, make sure the MinGW directory is in your path and go to the language files directory. Now type make -f makefile.mingw clean followed by make -f makefile.mingw all, this will compile the language files.

If your language file does not compile, you may need to run the fixmingw.sh script on your language file. This script fixes all problems the VC++ IDE created in the language files so that you can use it with MinGW afterwards.

6. The installer language file

The language file generation script did also create a .nsh file, please translate it as well.

7. What to do if you've finished the translation

When you have finished translation, please send all resource files back to me. The new language DLLs will be included in the next official release of FileZilla.

Please tell me your SourceForge.net username as well. You'll be added as project member so that you can update the resource files for future version yourself.
You'll be added to a mailinglist which will inform you about any changes to the language files