source: osm/applications/editors/josm/plugins/photoadjust/i18n/README

Last change on this file was 33072, checked in by holgermappt, 10 years ago

Ant target 'pot' must be in build.xml, otherwise gettext doesn't get the paths right. Added section 'Local Translation'.

File size: 3.2 KB
Line 
1Plugin Translations
2===================
3
4Run from plugin main directory:
5ant pot
6ant poimport
7ant pomerge
8ant lang
9
10Detailed Version
11----------------
12* To kick off the translation of the plugin it is SVN committed.
13 After a day the translatable strings are visible at Launchpad
14 (https://translations.launchpad.net/josm/trunk/+pots/josm).
15* After the Java code or the plugin description in build.xml was
16 changed, you need to run "ant pot". That creates/updates the
17 template file po/plugin.pot.
18* Download the latest translations from Launchpad and copy them into
19 the directory po with "ant poimport". This uses the version that is
20 updated once a day. For a more recent version you need to request a
21 download from
22 https://translations.launchpad.net/josm/trunk/+pots/josm/+export.
23 Then run "ant -Dpoimport.tarball=URL poimport", replace URL with the
24 translation download URL.
25* Remove all untranslated strings and other translations with
26 "ant pomerge".
27* Create the language files in the data directory with "ant lang".
28* SVN commit plugin changes, SVN update plugin directory, run
29 "ant dist" to create a new plugin release, SVN commit new plugin
30 release (../../dist/plugin.jar). "ant dist" will add the
31 translations of the plugin description to the manifest.
32
33Additions to plugin build.xml:
34 <!-- ** internationalization ** -->
35 <import file="i18n/build-i18n.xml"/>
36 <target name="pot" description="Extract translatable strings from source." depends="gettext-init">
37 <mkdir dir="${plugin.po.dir}"/>
38 <gettext-extract keysFile="${ant.project.name}.pot" poDirectory="${plugin.po.dir}" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
39 <fileset dir="${plugin.src.dir}" includes="**/*.java"/>
40 </gettext-extract>
41 <echo file="${plugin.po.dir}/${ant.project.name}.pot" append="true">
42#. Plugin ${ant.project.name}
43#: build.xml:1
44msgid "${plugin.description}"
45msgstr ""
46</echo>
47 </target>
48 <target name="additional-manifest">
49 <antcall target="mftrans"/>
50 </target>
51
52Local Translation
53-----------------
54To translate the strings locally, e.g. to check that they make sense:
55* ant pot
56* LL is a language code, CC is an optional country code
57* If there is no PO file:
58 msginit --input=po/*.pot --output-file=po/LL_CC.po --locale=LL_CC
59* If a PO file exists:
60 msgmerge --update po/LL_CC.po po/*.pot
61
62Global Run
63----------
64From the global i18n directory the steps are:
65./launchpad bzronly
66ant -Dplugin=plugin singleplugintrans
67
68* The command "launchpad bzronly" exports the latest revision of the
69 Launchpas translations.
70* "ant singleplugintrans" generates the language files in the plugin
71 data directory. Then it deletes to PO files.
72* It is not possible to add the translations of the plugin description
73 to the manifest.
74
75See Language String Changes
76---------------------------
77To see what language strings changed in data/*.lang run this:
78svn diff --diff-cmd i18n/diff_lang.pl --force data
79
80To see just removed or modified strings:
81svn diff --diff-cmd i18n/diff_lang.pl --force data | grep ^- | grep -v '^--- data/'
82
83To display changes of a single file with tkdiff:
84svn diff --diff-cmd i18n/diff_lang.pl --extensions --tkdiff --force data/<lang>.lang
Note: See TracBrowser for help on using the repository browser.