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

Last change on this file since 35624 was 33072, checked in by holgermappt, 8 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.