How to translate an Emsisoft product into a new language or update an existing translation
Emsisoft products use a text file based translation system. Such language files have the extension .LNG and can usually be found in the Languages sub-directory of the installation directory (for example "C:\Program Files\Emsisoft Anti-Malware\Languages\"). Since a lot of strings are shared between the products, all products use the same language files. So there is no need to translate the language files of each product separately.
We maintain the English as well as the German translation ourselves, so we can guarantee that those files are always up to date and they therefore should be used to base new translations upon. To make sure that you have the latest languages files please run the online update before you start your translation.
The language files adhere to the Windows INI file standard and in general are made up of the following parts:
- [Sections]
Sections are enclosed in square brackets and are used to seperate various areas within the language files. Sections must not be translated. - //Comments
Comments always start with two forward slashes. They are completely ignored by the application and can be used to keep notes. Translation of comments is completely optional.
Note that all lately modified lines in en-us.lng are copied and commented too. They are just for reference to track modifications on the original file. - Key=Value
The actual language strings are contained within the language file as key value pairs. The key part (which is the part before the equal sign) is used by the application to identify where the string is used and therefore must not be translated. The value part (everything after the equal sign) is the actual text displayed by the application and therefore must be translated. - Keep in mind that Language files are plain text files. So if you want to edit a file make sure you do so with a plain text editor like Notepad. Text processing software like Microsoft Word or Works will not work.
Creating a new translation
The first step in creating a new translation is to make a copy of the language file you want to base it upon (either "en-us.lng" or "de-de.lng"). The copy should use the ISO language code as a file name. If you want to translate the product into Dutch for example it should be named "nl-nl.lng". Keep in mind that while Emsisoft Anti-Malware is running you are unable to change any of the installation directory's content. To create the copy in the Languages directory and edit it you will have to close Emsisoft Anti-Malware first or alternatively disable the self protection in the Configuration section.
At the top of the file you will find a special section called "LanguageInfo". This section contains various information used by the application to determine how to parse and display the language file. The section contains the following values:
- Version
The product version number this translation is based upon. Keep in mind that this is always the Emsisoft Anti-Malware version number, as Emsisoft Emergency Kit is a stripped down Emsisoft Anti-Malware version. - Language
The English name of the language this language file contains. - LanguageLocal
The native name of the language. - Author
The name of the author of this file. This should be your name if you create a new translation. - Email
The email address of the author. This should be your email address if you create a new translation. - Date
The date when this file was last edited. Make sure to update this value whenever you change the file.
The LanguageInfo section of the German language file for example looks like this:
- [languageinfo]
- version=9.0.0.1234
- language=German
- languagelocal=Deutsch
- author=EmsisoftLtd
- email=info@emsisoft.com
- date=2014–09–26
Once you have adjusted the LanguageInfo section of your new language file, you can start translating the other sections.
Updating an existing language file
Language files do change whenever new user interface controls or features are implemented. In these cases it is not necessary to translate the entire language file again. Instead you can just add the new values to an existing language file. To facilitate this process we have added an overview that shows you which languages aren't up-to-date and exactly which strings need translation:
cs-cz.lng | Czech |
de-de.lng | German |
en-us.lng | English |
es-es.lng | Spanish |
fa-ir.lng | Persian |
fi-fi.lng | Finnish |
fr-fr.lng | Français |
gr-gr.lng | Greek |
hu-hu.lng | Hungarian |
it-it.lng | Italian |
ja-jp.lng | Japanese |
ko-kr.lng | Korean |
nl-nl.lng | Dutch |
pl-pl.lng | Polish |
pt-pt.lng | Portuguese |
ru-ru.lng | Russian |
sl-si.lng | Slovenian |
tr-tr.lng | Turkish |
zh-cn.lng | Chinese Simplified |
zh-tw.lng | Chinese Traditional |
Simply click on the language to see which strings are missing. The format of the returned strings is "[section] valuename=string". We recommend that you make translation updates on a copy of the file. This is to prevent the online update from overwriting your changes on the next update. You also might find the tool WinMerge very useful to highlight added and removed lines.
Testing your new or updated language file
To test your new or updated language file simply restart the application and select the language you added or updated from the language selection drop down menu.
Submitting your translation
Once you have created a new translation or updated an existing translation, feel free to submit it here in the forum. Just create a new thread for your language if it doesn't exist yet and attach your language file to it. If a thread for this particular language already exists, add your updated language file as a reply to the existing thread.
As a little thank you for your effort we are handing out free licenses for all our products to translators. This applies not only to full translations but to updates and corrections of existing translations as well.
Reporting errors or problems with translations
If you find an error in a particular translation or if you run into any problems, please feel free to post them in the translation's forum thread.