Ignore:
Timestamp:
2015-05-02T15:15:29+02:00 (11 years ago)
Author:
stoecker
Message:

major speedup of i18n process, add some new features, split core translations into two parts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/i18n/build.xml

    r31103 r31111  
    44    <property name="josm.build.dir" value="../core"/>
    55    <property name="josm.presets" value="${josm.build.dir}/data/defaultpresets.xml"/>
    6     <!--<property name="josm.style" value="${josm.build.dir}/styles/standard/elemstyles.xml"/>-->
    76    <property name="plugin.dir" value="../plugins"/>
    8     <!--<property name="validator.tagfile" value="${josm.build.dir}/data/validator/tagchecker.cfg"/>-->
    97    <property name="maps.srcfile" value="http://josm.openstreetmap.de/maps"/>
     8    <property name="wiki.srcfile" value="http://josm.openstreetmap.de/josmfile?mode=en"/>
    109    <property name="surveyor.srcfile" value="${plugin.dir}/surveyor/resources/surveyor.xml"/>
    1110    <property name="i18n.build.dir" value="build"/>
    1211    <property name="i18n.install.dir" value="${josm.build.dir}/data"/>
     12    <property name="i18n_data.install.dir" value="${josm.build.dir}/data_nodist/trans"/>
    1313    <property name="po.build.dir" value="${i18n.build.dir}"/>
    1414    <property name="ant.build.javac.target" value="1.5"/>
     
    1717    <target name="init" description="Loads the Ant gettext and contrib tasks">
    1818        <taskdef name="gettext-extract" classname="org.xnap.commons.ant.gettext.GettextExtractKeysTask" classpath="${gettexttasks.jar}"/>
    19         <taskdef name="gettext-merge" classname="org.xnap.commons.ant.gettext.GettextMergeKeysTask" classpath="${gettexttasks.jar}"/>
    20         <taskdef name="gettext-dist" classname="org.xnap.commons.ant.gettext.GettextDistTask" classpath="${gettexttasks.jar}"/>
     19        <!-- for the <foreach> possibility -->
    2120        <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${antcontrib.jar}"/>
    2221    </target>
     
    2827            <arg line="convpreset.pl ${josm.presets}"/>
    2928        </exec>
    30         <!--<exec executable="perl" output="${i18n.build.dir}/trans_style.java">
    31             <arg line="convstyle.pl ${josm.style}"/>
    32         </exec>-->
    33         <!--<exec executable="perl" failonerror="true" output="${i18n.build.dir}/trans_validator.java">
    34             <arg line="convvalidator.pl ${validator.tagfile}"/>
    35         </exec>-->
    3629        <exec executable="perl" failonerror="true" output="${i18n.build.dir}/trans_maps.java">
    3730            <arg line="convmaps.pl ${maps.srcfile}"/>
     
    4336            <arg line="convplugins.pl ${plugin.dir}/*/build.xml"/>
    4437        </exec>
     38        <exec executable="perl" failonerror="true">
     39            <arg line="convwiki.pl ${wiki.srcfile} ${i18n.build.dir}/josmfiles ${i18n.build.dir}/josmfiles.zip"/>
     40        </exec>
    4541        <copy file="specialmessages.java" todir="${i18n.build.dir}"/>
    4642    </target>
     
    5046            <fileset dir="${i18n.build.dir}" includes="specialmessages.java"/>
    5147            <fileset dir="${i18n.build.dir}" includes="trans_*.java"/>
     48            <!-- <fileset dir="${i18n.build.dir}/josmfiles" includes="trans_*.*"/> disable for now -->
    5249            <fileset dir="${josm.build.dir}/data/validator" includes="*.mapcss"/>
    5350            <fileset dir="${josm.build.dir}/styles/standard" includes="*.mapcss"/>
     
    5552        </gettext-extract>
    5653    </target>
    57     <target name="po/core.pot" description="Extracts message keys from the JOSM core source code" depends="builddir,init">
     54    <target name="po/core.pot" description="Extracts message keys from the JOSM core source code" depends="trans_.java,init">
    5855        <gettext-extract keysFile="core.pot" poDirectory="po" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
    5956            <fileset dir="${josm.build.dir}/src" includes="**/*.java"/>
    6057            <fileset dir="${i18n.build.dir}" includes="specialmessages.java"/>
    61         </gettext-extract>
    62     </target>
    63     <target name="${i18n.build.dir}/core.2.pot" depends="builddir,po/core.pot" description="Duplicates core.pot for de-duplication in data.pot and plugins.pot">
    64         <copy file="po/core.pot" tofile="${i18n.build.dir}/core.2.pot"/>
    65     </target>
    66     <target name="po/data.pot" description="Extracts message keys from data files, e.g., presets, imagery (minus core strings)" depends="trans_.java,po/core.pot,${i18n.build.dir}/core.2.pot,init">
    67         <gettext-extract keysFile="data.raw.pot" poDirectory="${i18n.build.dir}" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
    68             <fileset dir="${i18n.build.dir}" includes="trans_*.java"/>
     58            <fileset dir="${i18n.build.dir}" includes="trans_presets.java"/>
     59            <!-- maps should be in data instead, but that requires language file loading support in trac python code -->
     60            <fileset dir="${i18n.build.dir}" includes="trans_maps.java"/>
    6961            <fileset dir="${josm.build.dir}/data/validator" includes="*.mapcss"/>
    7062            <fileset dir="${josm.build.dir}/styles/standard" includes="*.mapcss"/>
    7163        </gettext-extract>
     64    </target>
     65    <target name="po/data.pot" description="Extracts message keys from data files, e.g., presets, imagery (minus core strings)" depends="trans_.java,po/core.pot,init">
     66        <gettext-extract keysFile="data.raw.pot" poDirectory="${i18n.build.dir}" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
     67            <fileset dir="${i18n.build.dir}" includes="trans_plugins.java"/>
     68            <!-- <fileset dir="${i18n.build.dir}/josmfiles" includes="trans_*.*"/> -->
     69        </gettext-extract>
     70        <copy todir="${po.build.dir}">
     71            <fileset dir="po" includes="core.pot"/>
     72        </copy>
    7273        <exec executable="msgcomm" failonerror="true" output="po/data.pot">
    73             <arg line="--unique po/core.pot ${i18n.build.dir}/core.2.pot ${i18n.build.dir}/data.raw.pot"/>
     74            <arg line="--unique po/core.pot ${po.build.dir}/core.pot ${i18n.build.dir}/data.raw.pot"/>
    7475        </exec>
     76        <delete file="${po.build.dir}/core.pot"/>
     77        <delete file="${po.build.dir}/data.raw.pot"/>
    7578    </target>
    76     <target name="po/plugins.pot" description="Extracts message keys from the plugins source code (minus core strings)" depends="po/core.pot,${i18n.build.dir}/core.2.pot,init">
     79    <target name="po/plugins.pot" description="Extracts message keys from the plugins source code (minus core and data strings)" depends="trans_.java,po/core.pot,po/data.pot,init">
    7780        <gettext-extract keysFile="plugins.raw.pot" poDirectory="${i18n.build.dir}" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
    7881            <fileset dir="${plugin.dir}" includes="**/*.java"/>
     82            <fileset dir="${i18n.build.dir}" includes="trans_surveyor.java"/>
    7983        </gettext-extract>
     84        <copy todir="${po.build.dir}">
     85            <fileset dir="po" includes="core.pot"/>
     86            <fileset dir="po" includes="data.pot"/>
     87        </copy>
    8088        <exec executable="msgcomm" failonerror="true" output="po/plugins.pot">
    81             <arg line="--unique po/core.pot ${i18n.build.dir}/core.2.pot ${i18n.build.dir}/plugins.raw.pot"/>
     89            <arg line="--unique po/core.pot ${po.build.dir}/core.pot po/data.pot ${po.build.dir}/data.pot ${i18n.build.dir}/plugins.raw.pot"/>
    8290        </exec>
     91        <delete file="${po.build.dir}/core.pot"/>
     92        <delete file="${po.build.dir}/data.pot"/>
     93        <delete file="${po.build.dir}/plugins.raw.pot"/>
    8394    </target>
    84     <target name="build" depends="po/josm.pot,init">
    85         <gettext-merge keysFile="josm.pot" poDirectory="po"/>
     95    <target name="build" depends="pot,allpot">
    8696        <antcall target="coretrans"/>
     97        <antcall target="datatrans"/>
    8798        <foreach param="path" target="plugintrans">
    8899            <path>
     
    91102        </foreach>
    92103    </target>
    93     <target name="singleplugintrans" depends="po/josm.pot,init">
     104    <target name="singleplugintrans" depends="init">
    94105        <antcall target="plugintrans">
    95106            <param name="path" value="${plugin}"/>
    96107        </antcall>
    97108    </target>
    98     <target name="buildcore" depends="po/josm.pot,init">
     109    <target name="buildcore" depends="po/core.pot,po/data.pot">
    99110        <antcall target="coretrans"/>
     111        <antcall target="datatrans"/>
    100112    </target>
    101113    <target name="coretrans">
    102         <mkdir dir="${po.build.dir}/core"/>
    103         <gettext-extract keysFile="josm.pot" poDirectory="${po.build.dir}/core" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
    104             <fileset dir="${josm.build.dir}/src" includes="**/*.java"/>
    105             <fileset dir="${i18n.build.dir}" includes="specialmessages.java"/>
    106             <fileset dir="${i18n.build.dir}" includes="trans_*.java"/>
    107             <fileset dir="${josm.build.dir}/data/validator" includes="*.mapcss"/>
    108         </gettext-extract>
    109         <copy todir="${po.build.dir}/core">
    110             <fileset dir="po"/>
    111         </copy>
    112         <gettext-merge keysFile="josm.pot" poDirectory="${po.build.dir}/core"/>
    113114        <exec executable="perl" failonerror="true">
    114             <arg line="i18n.pl ${i18n.install.dir}/ ${po.build.dir}/core/*.po"/>
     115            <arg line="i18n.pl --potfile=po/core.pot --basedir=${i18n.install.dir}/ po/*.po"/>
    115116        </exec>
    116117    </target>
    117     <target name="plugintrans" depends="init">
     118    <target name="datatrans">
     119        <exec executable="perl" failonerror="true">
     120            <arg line="i18n.pl --potfile=po/data.pot --basedir=${i18n_data.install.dir}/ po/*.po"/>
     121        </exec>
     122    </target>
     123    <target name="plugintrans">
    118124        <basename file="${path}" property="dir"/>
    119125        <mkdir dir="${po.build.dir}/plugin_${dir}"/>
     
    124130            <fileset dir="${plugin.dir}/${dir}" includes="**/*.java"/>
    125131            <fileset dir="${po.build.dir}/plugin_${dir}" includes="trans_*.java"/>
     132            <fileset dir="${i18n.build.dir}" includes="trans_${dir}.java"/>
    126133        </gettext-extract>
    127134        <if>
    128135            <available file="${po.build.dir}/plugin_${dir}/josm.pot"/>
    129136            <then>
    130                 <copy todir="${po.build.dir}/plugin_${dir}">
    131                     <fileset dir="po"/>
    132                 </copy>
    133                 <gettext-merge keysFile="josm.pot" poDirectory="${po.build.dir}/plugin_${dir}"/>
    134137                <exec executable="perl" failonerror="true">
    135                     <arg line="i18n.pl ${plugin.dir}/${dir}/data/ ${po.build.dir}/plugin_${dir}/*.po"/>
     138                    <arg line="i18n.pl --potfile=${po.build.dir}/plugin_${dir}/josm.pot --basedir=${plugin.dir}/${dir}/data/ po/*.po"/>
    136139                </exec>
    137140            </then>
    138141        </if>
    139         <delete dir="${po.build.dir}/plugin_${dir}"/>
     142        <delete dir="${po.build.dir}/plugin_${dir}ss"/>
    140143    </target>
    141144    <target name="clean">
     
    149152        </delete>
    150153    </target>
    151     <target name="test">
     154    <target name="test" depends="pot">
    152155        <mkdir dir="${i18n.build.dir}/test"/>
    153156        <exec executable="perl" failonerror="true">
    154             <arg line="i18n.pl ${i18n.build.dir}/test/ po/*.po"/>
     157            <arg line="i18n.pl --potfile=po/josm.pot --basedir=${i18n.build.dir}/test/ po/*.po"/>
    155158        </exec>
    156159    </target>
    157160    <target name="pot" depends="po/josm.pot" />
    158     <target name="transifex" depends="po/core.pot,po/plugins.pot,po/data.pot" />
     161    <target name="allpot" depends="po/core.pot,po/data.pot,po/plugins.pot" />
    159162    <target name="update">
    160163        <exec executable="perl" failonerror="true">
Note: See TracChangeset for help on using the changeset viewer.