Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Arduino.cc ---------- GitHub Repository for Translations of the Arduino IDE. For more information visit: http://arduino.cc/playground/Main/LanguagesIDE History ------- Version 1.0.1 of the Arduino IDE and newer, include the possibility of browsing the menus in multiple languages. The first contribution in this line was made by Shigeru Kanemoto, who set up the basic way how strings should be translated to multiple languages using a series of *.po files. Shigeru created the Resources_ja.po (for Japanese) and, based on that, during the week before Easter 2012, a group of volunteers went into translating the 303 strings within the Arduino menus, warning/error messages, and dialog windows. In little more than a week, 19 languages were included as part of the IDE and yet another 15 were in the making. What is a translation, what does it cover? ------------------------------------------ Translation files for the Arduino IDE are *.po files containing a list of strings to be translated from English into a different language. English is the language of choice when developing the Arduino IDE. Therefore all the code, menus, etc, are written and commented in English. The *.po files include: - a copyright notice: where the translators should take credit for their work and leave an address where to contact them for more information - a machine-readable area: with information about the version of the file, the last time it was modified, etc. - the translation area The copyright notice could look like: # Spanish translations for PACKAGE package. # Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # D. Cuartielles <email@example.com>, 2012. # There is not much to be said about that. However, the machine-readable block contains much more information: msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-30 11:00+0100\n" "PO-Revision-Date: 2012-04-01 09:25+0100\n" "Last-Translator: D. Cuartielles <firstname.lastname@example.org>\n" "Language-Team: Spanish\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" It is important to note that, within the Arduino IDE, we work using UTF-8 encoded strings. The translation area is divided into blocks. Each block has three parts: - a line starting with a hashtag '#': indicating the files where those strings were taken from - a line starting with 'msgid': this is the original sentence in English - a line starting with 'msgstr': this is the translation An example of one of those blocks would be: #: Editor.java:2017 msgid "Don't Save" msgstr "لا تحفظ" There you see the file Editor.java within the Arduino's IDE source code includes the sentence "Don't Save", that translates to the expression after 'msgstr' in Arabic. How the PO files are generated ------------------------------ The initial *.po files are created by a script created by Shigeru Kanemoto that will parse all the *.java source files within the Arduino IDE looking for strings. The strings have to be marked with _( STRING ). This means, whenever there is a new string added to e.g. one dialog window of the IDE, the person coding that needs to make sure he/she is marking the string so that it can be translated properly. After that, he/she will have to call: 'sh i18n_update.sh'. This script generates a revision of all the existing PO files to include the new strings. Those files are the ones that are then published in this repository for people to contribute with their translations. How can I contribute? --------------------- The translations are a community contribution. They allow using Arduino's IDE based on your language preferences, however it might be the case there is no translation to your language. It is always possible to contribute by either generating a new language file or improving an existing one. If you want to contribute this is the way to do it: 1) you should subscribe to the email@example.com email list. Just follow this URL and fill in your details: http://arduino.cc/mailman/listinfo/translations_arduino.cc 2) in that list you should check whether there is people working with that translation. Usually we make a note about this at: http://arduino.cc/playground/Main/LanguagesIDE 3) if nobody is working with that translation, you should take one of the existing *.po files, like e.g. the Spanish one, and start translating the strings. 4) it is a tedious process, there are over 300 strings to be translated. You are welcome to use github as a way to push your contributions into the system via 'pull requests'. But don't worry, if you don't know how to do that, just email your files to the translation email list. 5) once you are done with the translation, you have to inform via email that you are done. If you didn't do so, the rest of the translators wouldn't know your file is ready to be part of the next Arduino release When the strings updated ------------------------ The strings in the Arduino IDE source code may change. This should occur by reasons like new features, deleted features, fix of typos and others. What do we have to do when this occur? We provide "i18n_template.py" Python script. This script takes the "*.po" file names as arguments, and process each "*.po" files using "Resources_en.po" as a template. This script adds strings newly found in "Resources_en.po" and removes strings which no longer available in "Resources_en.po" while keeping the order of the strings and the each comments. You need a Python interpreter to run this script. As a contributing translator: 1. The maintainer of this repository will provide updated "Resources_en.po". 2. Pull the update like this: % cd IDE_translations % git pull upstream master 3. Reflect the change to your language "XX": % ./i18n_template.py Resources_XX.po 4. Check the difference: % git diff Resources.XX.po This will show you the added/deleted/modified strings. 5. Translate the added/modified strings. You may want to check the difference by repeating the step 4 above. You may want to make a branch before starting translation. As a repository maintainer: 1. You have to prepare the updated "Resources_en.po" by following steps. 2. Pull the update of Arduino IDE source code: % cd Arduino % git pull upstream master 3. Change directory: % cd app/src/processing/app 4. Extract the new strings: % ./i18n_update.sh 5. Copy the updated "Resources_en.po" to IDE_translations repository: % cp Resources_en.po __somewhere__ 6. Revert the changes made by "i18n_update.sh": % git checkout -f Credits ------- This is a list of contributors that have released *.po files ordered by language: 1 Arabic: Belal M.R. Affouri <http://eshtre.com>, Ameen Sarsour 2 Aragonese: Juan Pablo Martínez Cortés <firstname.lastname@example.org> 3 Catalan: Albert Segura <alb.segu(at)gmail(dot)com> 4 Chinese (Simplified): ledong 5 Chinese (Taiwan): yehnan 6 Croatian: Marko Baricevic, Mark Bilandzic, Dubravko Penezic 7 Danish: Anders Bech Mellson 8 Dutch: Marcel Veldhuijzen, JO3RI <email@example.com> (http://www.JO3RI.be) 9 Estonian: Cougar <firstname.lastname@example.org> 10 Filipino: Marc Lester Tan <mharkus(at)gmail(dot)com> 11 French: Denis Barbier <email@example.com>, Thierry Accart <firstname.lastname@example.org>, Alexis Morin <email@example.com> 12 Galician: Diego Prado Gesto <diginho(at)gmail(dot)com> 13 German: Lukas Bestle (http://www.lu-x-it.de), Benjamin Hogl 14 Greek: Vasilis Georgitzikis (http://tzikis.com) 15 Hindi: Parimal Naigaonkar, Nishant Sood 16 Hungarian: Robert Cseh <firstname.lastname@example.org> 17 Indonesian: Rininta Andari 18 Italian: Sara Gallo, Simone Majocchi, Michele Michielin 19 Japanese: Shigeru Kanemoto 20 Korean: Jinbuhm Kim 21 Latvian: Kristofers <email@example.com> 22 Lithuanian: Laimutis Palivonas 23 Marathi: Sarvesh S. Karkhanis 24 Norwegian: Rune Fauske, Tor Chrisian Tovslid 25 Persian: Ebrahim Byagowi <firstname.lastname@example.org> 26 Polish: Maciej Wojnicki, Maciej Wójciga <http://electronics-made-simple.blogspot.com/> 27 Portuguese (Bazil): Hugo Lavalle <email@example.com>, Radamés Ajna <firstname.lastname@example.org>, Armando Neto <email@example.com>, Andre Aureliano <firstname.lastname@example.org> 28 Portuguese (Portugal): Nigel Randsley 29 Romanian: Pop Gheorghe <email@example.com>, Razvan Daniel Ionescu 30 Russian: Stanislav I. Ashmanov, Evgeniy Maskalev 31 Slovene: Črtomir Gorup <firstname.lastname@example.org> 32 Spanish: Merche Blasco, Jose Manuel Escuder, Juan Gomez, Eduardo Sacristan, Jesús Sánchez 33 Tamil: Ram Kumar.Y 34 Vietnamese: Phạm Văn Vinh