source: subversion/applications/editors/josm/plugins/photoadjust/i18n/README @ 33803

Last change on this file since 33803 was 33072, checked in by holgermappt, 3 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
1Plugin Translations
4Run from plugin main directory:
5ant pot
6ant poimport
7ant pomerge
8ant lang
10Detailed Version
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  (
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
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.
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="${}.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}/${}.pot" append="true">
42#. Plugin ${}
43#: build.xml:1
44msgid "${plugin.description}"
45msgstr ""
47    </target>
48    <target name="additional-manifest">
49        <antcall target="mftrans"/>
50    </target>
52Local Translation
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
62Global Run
64From the global i18n directory the steps are:
65./launchpad bzronly
66ant -Dplugin=plugin singleplugintrans
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.
75See Language String Changes
77To see what language strings changed in data/*.lang run this:
78svn diff --diff-cmd i18n/ --force data
80To see just removed or modified strings:
81svn diff --diff-cmd i18n/ --force data | grep ^- | grep -v '^--- data/'
83To display changes of a single file with tkdiff:
84svn diff --diff-cmd i18n/ --extensions --tkdiff --force data/<lang>.lang
Note: See TracBrowser for help on using the repository browser.