<project name="JOSM i18n" default="build" basedir=".">

  <!-- compilation properties -->
  <property name="josm.build.dir"    value="../core"/>
  <property name="josm.presets"      value="../core/presets/presets.xml"/>
  <property name="plugin.dir"        value="../plugins"/>
  <property name="validator.tagfile" value="${plugin.dir}/validator/tagchecker.cfg"/>
  <property name="wms.srcfile"       value="${plugin.dir}/wmsplugin/sources.cfg"/>
  <property name="surveyor.srcfile"  value="${plugin.dir}/surveyor/resources/surveyor.xml"/>
  <property name="i18n.build.dir"    value="build"/>
  <property name="i18n.install.dir"  value="${josm.build.dir}/lib"/>
  <property name="i18n.name"         value="josm-translation"/>
  <property name="i18n.jar"          value="${i18n.install.dir}/${i18n.name}.jar"/>

  <property name="ant.build.javac.target" value="1.5"/>

  <target name="josm.pot">
    <exec executable="perl" output="trans_presets.java">
      <arg line="convpreset.pl ${josm.presets}"/>
    </exec>
    <exec executable="perl" output="trans_validator.java">
      <arg line="convvalidator.pl ${validator.tagfile}"/>
    </exec>
    <exec executable="perl" output="trans_wms.java">
      <arg line="convwms.pl ${wms.srcfile}"/>
    </exec>
    <exec executable="perl" output="trans_surveyor.java">
      <arg line="convsurveyor.pl ${surveyor.srcfile}"/>
    </exec>

    <exec executable="find" output="java_sourcefiles.txt" osfamily="unix">
      <arg value="${josm.build.dir}/src" />
      <arg value="${plugin.dir}"/>
      <arg value="."/>
      <arg value="-name"/>
      <arg value="*.java"/>
    </exec>

    <exec executable="xgettext">
      <arg line="-ktr -ktrn:1,2 -ktrc -kmarktr -Ljava --from-code=UTF-8 -opo/josm.pot -fjava_sourcefiles.txt"/>
    </exec>
  </target>

  <target name="build" depends="josm.pot">
    <copy file="i18n.properties" todir="build/org/openstreetmap/josm" />

    <ant target="build-lang"><property name="language" value="cs"/></ant>
    <ant target="build-lang"><property name="language" value="de"/></ant>
    <ant target="build-lang"><property name="language" value="en_GB"/></ant>
    <ant target="build-lang"><property name="language" value="es"/></ant>
    <ant target="build-lang"><property name="language" value="fi"/></ant>
    <ant target="build-lang"><property name="language" value="fr"/></ant>
    <ant target="build-lang"><property name="language" value="it"/></ant>
    <ant target="build-lang"><property name="language" value="pl"/></ant>
    <ant target="build-lang"><property name="language" value="ro"/></ant>
    <ant target="build-lang"><property name="language" value="ru"/></ant>
    <ant target="build-lang"><property name="language" value="sl"/></ant>
    <ant target="build-lang"><property name="language" value="sv"/></ant>

    <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
      <env key="LANG" value="C"/>
      <arg value="info"/>
      <arg value="--xml"/>
      <arg value="po"/>
    </exec>
    <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
    <delete file="REVISION"/>

    <jar destfile="${i18n.jar}" basedir="build">
      <manifest>
        <attribute name="Extension-Name" value="JOSM Translation into various languages" />
        <attribute name="Translation-Version" value="${version.entry.commit.revision}"/>
        <attribute name="Translation-Date" value="${version.entry.commit.date}"/>
      </manifest>
    </jar>

  </target>

  <target name="build-lang">
    <exec executable="msgmerge">
      <arg line="-U po/${language}.po po/josm.pot"/>
    </exec>

    <exec executable="msgfmt">
      <arg line="--verbose --java2 -dbuild -rorg.openstreetmap.josm.i18n.Translation -l${language} po/${language}.po"/>
    </exec>
  </target>

  <target name="clean">
    <delete dir="${i18n.build.dir}" />
    <delete file="po/josm.pot"/>
    <delete>
      <fileset dir="po" includes="*.po~" defaultexcludes="false"/>
      <fileset dir="." includes="trans_*.java"/>
    </delete>
    <delete file="java_sourcefiles.txt"/>
  </target>

</project>
