Version at: 03/05/2014, 08:30 vs. version at: 02/05/2015, 18:40
11#Checking in Extracted UI Strings and Their Translations
22
3These instructions describe how to extract UI strings, upload strings and translations, and finally commit them to a repository. Before executing these steps, follow the instructions in [Installing and Configuring Bazaar](install-bazaar).
3These instructions describe how to extract UI strings, upload strings and translations, and finally commit them to a repository. **The sections about uploaded and committing are no longer valid since we have switched from Launchpad to Transifex.**
4
5Before executing these steps, follow the instructions in [Installing and Configuring Bazaar](install-bazaar).
46
57##Markup for internationalized strings in the code
68
79In 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.
810
911Examples, with the equivalent actions:
1012
1113* __(‘some text’) => echo ‘some text’;
1214* __(‘some text’, true) => return ‘some text’;
1315
1416The language used in the code will be English.
1517
1618##Running cake i18n
1719
1820* Open a console on a Linux machine or Linux virtual machine.
1921* Type : /var/http/tatoeba/cake/console/cake i18n
2022* Choose : E (Extract POT file from source)
2123* When asked if you want to merge all translations into a single file, say yes
2224* Type in the path to app: /home/tatoeba/tatoeba-www/app
2325* Type in the path to locale: /home/tatoeba/tatoeba-www/app/locale
2426* Choose a name for the file that will be generated (in this example, default.pot): default.pot
2527* Choose: Q (quit)
2628
2729##Modifying the header
2830
2931Before you upload the POT file, you may need to open it and change the header into this:
3032
3133msgid ""
3234
3335msgstr ""
3436
3537"Project-Id-Version: \n"
3638
3739"POT-Creation-Date: \n"
3840
3941"PO-Revision-Date: \n"
4042
4143"Last-Translator: \n"
4244
4345"Language-Team: \n"
4446
4547"MIME-Version: 1.0\n"
4648
4749"Content-Type: text/plain; charset=utf-8\n"
4850
4951"Content-Transfer-Encoding: 8bit\n"
5052
5153Otherwise, Launchpad may reject the file.
5254
5355##Uploading default.pot
5456
5557###Uploading default.pot to Launchpad via Bazaar
5658
5759* Commit the file using the Bazaar Explorer GUI.
5860
5961When it comes time to push your changes, go to a Windows command prompt, issue a launchpad-login command, and issue a push command.
6062
6163
6264This is the equivalent of doing the following from the Windows command prompt (for user abc):
6365
6466 cd bzr\trunk\trunk\default
6567 bzr launchpad-login abc
6668 bzr push lp:tatoeba
6769
6870Presumably, this should work from Linux as well (with adjustments to the paths).
6971
7072##Editing .po files
7173
7274You may need to edit the .po files manually at this stage if you want to restore translations for UI strings that have changed. A merge tool such as WinMerge or KDiff3 may be useful here. Skip this step if you don't know what is entailed.
7375
7476##Check .po files
7577
7678Use this command on each .po file to ensure that it has the correct syntax:
7779
7880msgfmt -c filename.po
7981
8082The Launchpad site executes this step after the .po files are uploaded and approved, but checking the files first will save you more work in the long run.
8183
8284##Upload .po files
8385
8486Put all the .po files that have changed into a "tarball", which is a file with the extension .tar.gz or .tar.bz2 . You can use a zipfile utility such as [7Zip](http://www.7-zip.org/) command on Windows or *tar* on Linux to produce the tarball. Then upload them at the same URL that you used to upload the default.pot file.
8587
8688##Run update-translations.sh
8789
8890If you do not already have bzr installed on your Linux virtual machine, install it with this command: "apt-get install bzr" . You may need to issue a "su -" (superuser) command to perform the installation.
8991
9092Run this script:
9193
9294tatoeba-www/docs/update-translations.sh
9395
9496It will do the following:
9597
9698* check out the files from the Launchpad repository (using Bazaar)
9799* place them in a temporary directory
98100* check them into the final Tatoeba2 repository
99101
100102You must include the "-c" switch on the command line if you want the changes to be committed.
101103
102104##Historical information only
103105
104106The original source of these instructions, stored on Assembla, is here: [1]
105107
106 [1]: https://www.assembla.com/spaces/tatoeba2/wiki/Internationalization
108
107109
108110
109111###Uploading default.pot to Launchpad via import queue (deprecated)
110112
111113Go to this URL:
112114
113115https://translations.launchpad.net/tatoeba/trunk/+translations-upload
114116
115117Set the following:
116118* file type: template
117119* path: default.pot
118120* template: default
119121
120122You can leave name and translation domain empty.
121123
122124Upload the file.
123125
124126You may need to wait a day or so for the translation files to be updated.
125127
128 [1]: https://www.assembla.com/spaces/tatoeba2/wiki/Internationalization
129
diff view generated by jsdifflib

Version at: 03/05/2014, 08:30

#Checking in Extracted UI Strings and Their Translations

These instructions describe how to extract UI strings, upload strings and translations, and finally commit them to a repository. Before executing these steps, follow the instructions in [Installing and Configuring Bazaar](install-bazaar).

##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

###Uploading default.pot to Launchpad via Bazaar 

* Commit the file using the Bazaar Explorer GUI. 

When it comes time to push your changes, go to a Windows command prompt, issue a launchpad-login command, and issue a push command. 


This is the equivalent of doing the following from the Windows command prompt (for user abc):

    cd bzr\trunk\trunk\default
    bzr launchpad-login abc
    bzr push lp:tatoeba
    
Presumably, this should work from Linux as well (with adjustments to the paths).

##Editing .po files

You may need to edit the .po files manually at this stage if you want to restore translations for UI strings that have changed. A merge tool such as WinMerge or KDiff3 may be useful here. Skip this step if you don't know what is entailed.

##Check .po files

Use this command on each .po file to ensure that it has the correct syntax:

msgfmt -c filename.po

The Launchpad site executes this step after the .po files are uploaded and approved, but checking the files first will save you more work in the long run.

##Upload .po files

Put all the .po files that have changed into a "tarball", which is a file with the extension .tar.gz or .tar.bz2 . You can use a zipfile utility such as [7Zip](http://www.7-zip.org/) command on Windows or *tar* on Linux to produce the tarball. Then upload them at the same URL that you used to upload the default.pot file. 

##Run update-translations.sh

If you do not already have bzr installed on your Linux virtual machine, install it with this command: "apt-get install bzr" . You may need to issue a "su -" (superuser) command to perform the installation.
 
Run this script:

tatoeba-www/docs/update-translations.sh

It will do the following:

* check out the files from the Launchpad repository (using Bazaar)
* place them in a temporary directory
* check them into the final Tatoeba2 repository

You must include the "-c" switch on the command line if you want the changes to be committed.

##Historical information only

The original source of these instructions, stored on Assembla, is here: [1]

  [1]: https://www.assembla.com/spaces/tatoeba2/wiki/Internationalization


###Uploading default.pot to Launchpad via import queue (deprecated)

Go to this URL:
 
https://translations.launchpad.net/tatoeba/trunk/+translations-upload

Set the following:
* file type: template
* path: default.pot
* template: default

You can leave name and translation domain empty.

Upload the file. 

You may need to wait a day or so for the translation files to be updated.

version at: 02/05/2015, 18:40

#Checking in Extracted UI Strings and Their Translations

These instructions describe how to extract UI strings, upload strings and translations, and finally commit them to a repository. **The sections about uploaded and committing are no longer valid since we have switched from Launchpad to Transifex.**

Before executing these steps, follow the instructions in [Installing and Configuring Bazaar](install-bazaar).

##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

###Uploading default.pot to Launchpad via Bazaar 

* Commit the file using the Bazaar Explorer GUI. 

When it comes time to push your changes, go to a Windows command prompt, issue a launchpad-login command, and issue a push command. 


This is the equivalent of doing the following from the Windows command prompt (for user abc):

    cd bzr\trunk\trunk\default
    bzr launchpad-login abc
    bzr push lp:tatoeba
    
Presumably, this should work from Linux as well (with adjustments to the paths).

##Editing .po files

You may need to edit the .po files manually at this stage if you want to restore translations for UI strings that have changed. A merge tool such as WinMerge or KDiff3 may be useful here. Skip this step if you don't know what is entailed.

##Check .po files

Use this command on each .po file to ensure that it has the correct syntax:

msgfmt -c filename.po

The Launchpad site executes this step after the .po files are uploaded and approved, but checking the files first will save you more work in the long run.

##Upload .po files

Put all the .po files that have changed into a "tarball", which is a file with the extension .tar.gz or .tar.bz2 . You can use a zipfile utility such as [7Zip](http://www.7-zip.org/) command on Windows or *tar* on Linux to produce the tarball. Then upload them at the same URL that you used to upload the default.pot file. 

##Run update-translations.sh

If you do not already have bzr installed on your Linux virtual machine, install it with this command: "apt-get install bzr" . You may need to issue a "su -" (superuser) command to perform the installation.
 
Run this script:

tatoeba-www/docs/update-translations.sh

It will do the following:

* check out the files from the Launchpad repository (using Bazaar)
* place them in a temporary directory
* check them into the final Tatoeba2 repository

You must include the "-c" switch on the command line if you want the changes to be committed.

##Historical information only

The original source of these instructions, stored on Assembla, is here: [1]




###Uploading default.pot to Launchpad via import queue (deprecated)

Go to this URL:
 
https://translations.launchpad.net/tatoeba/trunk/+translations-upload

Set the following:
* file type: template
* path: default.pot
* template: default

You can leave name and translation domain empty.

Upload the file. 

You may need to wait a day or so for the translation files to be updated.

  [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.