1 ## Instructions for helping translate text for Vidalia, TorButton
3 ## ( More translation information for Tor related apps will accumulate here )
5 Our translations are handled in one of two places. The Tor Translation Portal
6 handles all of the translations for Vidalia, Torbutton and TorCheck. The Tor
7 website itself is currently handled by hand translations using subversion.
9 -------------------------------------------------------------------------
11 For the Tor website, you'll need a Tor SVN account.
12 If you do not have one and you need one, please run this command with your
13 desired username in place of 'USERNAME':
14 htdigest -c passwd.tmp "Tor subversion repository" USERNAME
15 and send us the contents of passwd.tmp.
17 -------------------------------------------------------------------------
19 For the Portal-based projects, all three check in their respective .po
20 files into the following subversion urls:
22 https://tor-svn.freehaven.net/svn/translation/trunk/projects/torbutton
23 https://tor-svn.freehaven.net/svn/translation/trunk/projects/torcheck
24 https://svn.vidalia-project.net/svn/vidalia/trunk/src/vidalia/i18n/
26 The current pootle configuration is checked into subversion as well:
28 https://tor-svn.freehaven.net/svn/translation/trunk/pootle
30 ---------------------------- TorCheck -------------------------------
32 TorCheck uses our translation portal to accept translations. Users use
33 the portal to check in their changes. To make use of the translations
34 that users have committed to the translations/ subversion module, you'll
35 need to ensure that you have a current checked out copy of TorCheck:
38 check/trunk/i18n$ svn up
40 You should see something like the following:
42 Fetching external item into 'pootle'
43 External at revision 15300.
47 Now if you had changes, you'd simply want to move the newly updated .po files
48 into the current stable directory. Moving the .po files from
49 'check/trunk/i18n/pootle/' into 'check/trunk/i18n' properly naming the files
50 for their respective locale.
52 Here's an example of how to move all of the current pootle translations into
53 the svn trunk area of TorCheck:
56 for locale in `ls -1 pootle/|grep -v template`;
58 mv -v pootle/$locale/TorCheck_$locale.po TorCheck_$locale.po;
61 Now check the differences (ensure the output looks reasonable):
65 Ensure that msgfmt has no errors:
69 And finally check in the changes:
73 ---------------------------- Torbutton -------------------------------
75 Torbutton uses our translation portal to accept translations. Users use
76 the portal to check in their changes.
78 To make use of the translations that users have committed to the translations/
79 subversion module, you'll need to ensure that you have a current checked out
80 copy of them in your torbutton git checkout:
82 cd torbutton.git/trans_tools
83 torbutton.git/trans_tools$ svn co https://tor-svn.freehaven.net/svn/translation/trunk/projects/torbutton pootle
85 You should see something like the following:
87 Checked out revision 21092.
89 If you made changes to strings in Torbutton, you need to rebuild the
90 templates in torbutton.git/trans_tools/pootle/templates. This is done with
91 the following command from within the torbutton.git checkout directory:
93 moz2po -P -i src/chrome/locale/en/ -o trans_tools/pootle/templates/
95 You now have two options:
97 Option 1 (The [shitty] Pootle Web UI Way):
99 View then commit the changes to the template with:
101 cd trans_tools/pootle
105 Then poke Jake to 'svn up' on the Pootle side. If you do this enough
106 times, he may give you a button to click to update templates in Pootle,
107 or maybe even an account on the Pootle server. Persistence is a virtue.
109 You then need to go to the Pootle website and click the checkbox next to
111 https://translation.torproject.org/projects/torbutton/admin.html
112 and then click "Update Languages" at the bottom.
114 You then need to go to each language and go to "Editing Options" and click
115 "Commit" for each one.
117 You then need to 'svn up' locally, and follow the procedure above for
118 rebuilding your .dtd and .properties files.
122 Option 2 (Use your own msgmerge: YMMV, may change .po flags and formatting):
124 Run msgmerge yourself for each language:
127 for i in `ls -1 pootle`
129 msgmerge -U ./pootle/$i/torbutton.dtd.po ./pootle/templates/torbutton.dtd.pot
130 msgmerge -U ./pootle/$i/torbutton.properties.po ./pootle/templates/torbutton.properties.pot
135 Then poke Jake to 'svn up' on the Pootle side. If you do this enough times,
136 he may give you a button on Pootle, or maybe even an account on the Pootle
137 server. Persistence is a virtue.
139 You may notice that some .po file flags and string formatting have changed
140 with this method, depending on your gettext version. It is unclear if this
141 is a problem. Please update this doc if you hit a landmine and everything
144 After this process is done, you then need to regenerate the mozilla
145 .dtd and .properties files as specified above.
148 Regardless of whether or not you had changes in the torbutton strings, if there
149 were updated strings in pootle that you checked out from svn you now need to
150 convert from .po and move the newly updated mozilla files into the current
151 stable locale directory. First convert them with the 'mkmoz.sh' script and
152 then move the proper mozilla files from 'torbutton.git/trans_tools/moz/' into
153 'torbutton.git/src/chrome/locale/' directory while properly naming the files
154 for their respective locale.
156 Here's an example of how to move all of the current pootle translations into
157 the svn trunk area of Torbutton:
161 for locale in `ls -1 moz/`;
163 mv -v moz/$locale/*.{dtd,properties} ../src/chrome/locale/$locale/
166 Now check the differences to your git branch to ensure the output looks
172 And finally check in the changes:
177 ---------------------------- Vidalia -------------------------------
179 Vidalia uses our translation portal to accept translations. Users use the
180 portal to check in their changes. No conversion or moving is required other
181 than normal pootle usage.