Version at: 23/02/2014, 01:32
#Extracting UI Strings
These instructions describe how to extract UI strings so that they can be translated. The original source of these instructions, stored on Assembla, is here: [1]
##Markup for internationalized strings in the code
In the code, whenever developers write strings that will have to be translated, they use a special function whose name consists of a double underscore. A script (CakePHP's "i18n extract" script) can later be run to scan the code and extract the strings that are passed to this function.
Examples, with the equivalent actions:
* __(‘some text’) => echo ‘some text’;
* __(‘some text’, true) => return ‘some text’;
The language used in the code will be English.
##Running cake i18n
* Open a console on a Linux machine or Linux virtual machine.
* Type : /var/http/tatoeba/cake/console/cake i18n
* Choose : E (Extract POT file from source)
* When asked if you want to merge all translations into a single file, say yes
* Type in the path to app: /home/tatoeba/tatoeba-www/app
* Type in the path to locale: /home/tatoeba/tatoeba-www/app/locale
* Choose a name for the file that will be generated (in this example, default.pot): default.pot
* Choose: Q (quit)
##Modifying the header
Before you upload the POT file, you may need to open it and change the header into this:
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
Otherwise, Launchpad may reject the file.
##Uploading default.pot to Launchpad
Go to this URL:
https://translations.launchpad.net/tatoeba/trunk/+translations-upload
[1]: https://www.assembla.com/spaces/tatoeba2/wiki/Internationalization
version at: 23/02/2014, 01:32
#Extracting UI Strings
These instructions describe how to extract UI strings so that they can be translated. The original source of these instructions, stored on Assembla, is here: [1]
##Markup for internationalized strings in the code
In the code, whenever developers write strings that will have to be translated, they use a special function whose name consists of a double underscore. A script (CakePHP's "i18n extract" script) can later be run to scan the code and extract the strings that are passed to this function.
Examples, with the equivalent actions:
* __(‘some text’) => echo ‘some text’;
* __(‘some text’, true) => return ‘some text’;
The language used in the code will be English.
##Running cake i18n
* Open a console on a Linux machine or Linux virtual machine.
* Type : /var/http/tatoeba/cake/console/cake i18n
* Choose : E (Extract POT file from source)
* When asked if you want to merge all translations into a single file, say yes
* Type in the path to app: /home/tatoeba/tatoeba-www/app
* Type in the path to locale: /home/tatoeba/tatoeba-www/app/locale
* Choose a name for the file that will be generated (in this example, default.pot): default.pot
* Choose: Q (quit)
##Modifying the header
Before you upload the POT file, you may need to open it and change the header into this:
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
Otherwise, Launchpad may reject the file.
##Uploading default.pot to Launchpad
Go to this URL:
https://translations.launchpad.net/tatoeba/trunk/+translations-upload
[1]: https://www.assembla.com/spaces/tatoeba2/wiki/Internationalization
Note
The lines in green are the lines that have been added in the new version.
The lines in red are those that have been removed.
Actions