Giter Club home page Giter Club logo

ide_translations's Introduction

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 protected]>, 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 <[email protected]>\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 protected] 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 <[email protected]>
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 protected]> (http://www.JO3RI.be)
9 Estonian: Cougar <[email protected]>
10 Filipino: Marc Lester Tan <mharkus(at)gmail(dot)com>
11 French: Denis Barbier <[email protected]>, Thierry Accart <[email protected]>, Alexis Morin <[email protected]>
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 <[email protected]>
17 Indonesian: Rininta Andari
18 Italian: Sara Gallo, Simone Majocchi, Michele Michielin
19 Japanese: Shigeru Kanemoto
20 Korean: Jinbuhm Kim 
21 Latvian: Kristofers <[email protected]>
22 Lithuanian: Laimutis Palivonas
23 Marathi: Sarvesh S. Karkhanis
24 Norwegian: Rune Fauske, Tor Chrisian Tovslid
25 Persian: Ebrahim Byagowi <[email protected]>
26 Polish: Maciej Wojnicki, Maciej Wójciga <http://electronics-made-simple.blogspot.com/>
27 Portuguese (Bazil): Hugo Lavalle <[email protected]>, Radamés Ajna <[email protected]>, Armando Neto <[email protected]>, Andre Aureliano <[email protected]>
28 Portuguese (Portugal): Nigel Randsley
29 Romanian: Pop Gheorghe <[email protected]>, Razvan Daniel Ionescu
30 Russian: Stanislav I. Ashmanov, Evgeniy Maskalev
31 Slovene: Črtomir Gorup <[email protected]>
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

ide_translations's People

Contributors

runefauske avatar juandg avatar radames avatar dbarbier avatar mharkus avatar roroid avatar netoarmando avatar markbil avatar ebraminio avatar tzikis avatar tavir avatar alexismo avatar albertsegura avatar theadamlt avatar yahyatawil avatar andrebla avatar ardumania avatar cougar avatar crtg avatar jbkim avatar kristoz avatar parimaln avatar yehnan avatar mmichielin avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.