Wednesday, July 27, 2011

TranslateIt - AutomateIt with your desired language

Visit our new website at

Well, it's a small world after all... Lots of users have been requesting to have AutomateIt support different languages (Spanish, Dutch, German, Hebrew, Polish, Russian...) and I would have gladly do it, but there is only one problem - I can't speak all of these languages...
That's where you come in - I thought of an open-source-style-translation-mechanism that will let you, AutomateIt users, participate in the process of translating AutomateIt to your desired language.

How will that work ????
basically I created a few Excel spreadsheets that has all of AutomateIt strings that needs translation and shared those spreadsheets via Google Docs sharing.

All you have to do is open the spreadsheet that has the translation to your language and start translating.

Sounds good ? Great.
BEFORE your start, There are a few guidelines and instructions I'd like you to follow:
  1. Don't use automatic translation tools such as Google Translate. The translation of these tools will most probably provide very poor translation for most cases.
  2. If you don't understand the meaning of a string, don't translate it. Leave it for someone else.
The translation spreadsheets have the following structure (Click on the image to enlarge):
  1. Column A [Category] - A general category used to identify where the string comes from so you'll have some context when translating the string. This column is for information only.
  2. Column B [Array Name] - Some strings are part of a list. In that case, Array name will show the name of the list (See example on rows 747-749 on the image above - list name is widget_config_action). This column is for information only.
  3. Column C [String Id] - The internal Id of the string used by AutomateIt.This column is for information only.
  4. Column D [String Text] - The English text to be translated. This column is for information only.
  5. Column E [String Params Description] Some strings are dynamically built by AutomateIt using pre-defined parameters. These parameters  are represented in the strings (Column D) as %1$s or similar strings (See example on rows 737-739). These parameters MUST be kept when translating to any language. Each parameter meaning is explained in column E. This column is for information only.
  6. Column F - Headers column. Nothing special here...
  7. Column G [Language Name] - This is the ONLY column you should update.
    • Row 1 - Shows the language name
    • Row 2 - Shows the language code
    • Row 3 - Shows statistics of the number of strings translated / Total number of strings
    • Row 4 - Shows statistics of the translated strings percentage out of the total strings
    • Row 5 - Shows the number of invalid strings (See explanation on Column H below)
    • Rows 6-... - This is where the translated text goes. You only need to translate the text from Column D.
  8. Column H [Is Valid] - To assist you with the translation process, and especially with the parameterized string, the "Is Valid" indication will be TRUE for all valid strings and FALSE for invalid strings (Invalid string is a parameterized string that one or more of its parameters is missing). Please make sure that you only enter valid strings since invalid strings will not be used and the original English text will be displayed. This column is for information only
Some strings have HTML tags or URLs embedded as part of the string. When translating those strings (See example on row 753) these tags and URLs MUST be included in the translated string.

Have you read ALL of the instructions ? If there's something that is still not clear, Don't start translating yet.
Since the translation files are shared and you are all able to edit them, please follow these instructions and don't change anything that you are not supposed to or you are not sure that you are supposed to.

Currently, There are spreadsheets ready for the following languages (click on the language name to go to the relevant spreadsheet):

The following table shows the current status of translation per language. Languages with over 90% translation progress are supported by AutomateIt or will be on next update: