Blob Blame History Raw
--- build.xml.orig	2022-11-22 15:05:22.000000000 -0700
+++ build.xml	2022-11-25 13:00:56.886638504 -0700
@@ -47,23 +47,14 @@ when the Jmol code is modified, is as fo
 
   -->
 	
-  <!-- Contributions -->
-  <!-- <for list ...> construct needs ant-contrib.jar -->
-  <taskdef resource="net/sf/antcontrib/antlib.xml">
-    <classpath>
-      <pathelement location="tools/ant-contrib.jar" />
-    </classpath>
-  </taskdef>
-
-	
   <!-- pull developer-specific settings from their home directory -->
   <property file="${user.home}/.jmol.build.properties" />
   <!-- compile options -->
   <property name="build.sysclasspath" value="ignore" />
-  <property name="build.compiler" value="javac1.7" />
+  <property name="build.compiler" value="javac1.8" />
   <!-- for some reason, I can't get ant to use this ${java.version}
        property as the value of the source parameter -->
-  <property name="java.version" value="1.7" />
+  <property name="java.version" value="1.8" />
   <property name="debug" value="on" />
   <property name="deprecation" value="off" />
   <property name="optimization" value="off" />
@@ -81,22 +72,9 @@ when the Jmol code is modified, is as fo
 	  </filterchain>
 	</copy>
   <property file="Jmol.properties" prefix="Jmol.properties" />
-  <property name="version" value="${Jmol.properties.Jmol.___JmolVersion}" />
-  <propertyregex property="version"
-  			  override = "true"
-	          input="${version}"
-  			  regexp='(")([^"]+)(")'
-	          select="\2"
-  		      global="true"
-	          />
+  <property name="version" value="@version@" />
   <echo message="version=${version}" />
   <property name="jvxl_version" value="0.1" />
-
-  <input message="private property file:" addproperty="Private.propertyFile" defaultValue="none" />
-  <if><available file="${Private.propertyFile}" /><then>
-  	<property file="${Private.propertyFile}" />
-	<echo>using ${Private.keystore} ${Private.storetype}</echo>
-  </then></if>
   <property name="tests.source.dir" value="source-tests" />
   <property name="lib.dir" value="jars" />
   <property name="plugin.dir" value="plugin-jars" />
@@ -112,7 +90,7 @@ when the Jmol code is modified, is as fo
   <property name="docbook-xml" value="docbook-xml-4.4" />
   <property name="naga.jar" value="naga-3_0.jar" />
   <property name="commons-cli.jar" value="commons-cli-1.2.jar" />
-  <property name="inchi.jar" value="jni-inchi-0.7-jar-with-dependencies.jar" />
+  <property name="inchi.jar" value="jni-inchi.jar" />
   <property name="saxon.jar" value="saxon.jar" />
   <property name="saxon.main" value="com.icl.saxon.StyleSheet" />
   <property name="selfsign.store" value="ca-cert/selfSignedCertificate/selfSignedCertificate.store" />
@@ -178,14 +156,7 @@ Release Note: When releasing stable vers
 	
 	
   <property file="${dist.dir}/Jmol.properties" prefix="Jmol.properties" />
-  <property name="version" value="${Jmol.properties.Jmol.___JmolVersion}" />
-  <propertyregex property="version"
-	  override = "true"
-	  input="${version}"
-	  regexp='(")([^"]+)(")'
-  	  select="\2"
-      global="true"
-  />
+  <property name="version" value="@version@" />
   <echo message="version=${version}" />
 
 	<loadresource property="versionMajorMinor">
@@ -217,15 +188,7 @@ Release Note: When releasing stable vers
 	  </filterchain>
 	</loadresource>
 	<property name="pathdir-full" value="Jmol/Version" />
-  	<if>
-     <equals arg1="${betaFlag}" arg2="${version}" />
-  	 <then>
   		<property name="pathdir"    value="${pathdir-full}" />
-    </then>
-  	<else>
-  		<property name="pathdir"    value="Jmol-beta/Jmol" />
-  	</else>
-  	</if>
 	<echo message="betaFlag: ${betaFlag}"/>
 
 	<property name="path.release"    value="${pathdir} ${versionMajorMinor}" />
@@ -275,51 +238,6 @@ Release Note: When releasing stable vers
   	
   	<echo>sendzip is ${sendZip}</echo>
   	
-  	<if>
-     <equals arg1="${sendZip}" arg2="true" />
-  	 <then>
-  	  	<echo>creating  ${temp.dir}/${uploadPath}/README-${version}.properties</echo>
-    <copy todir="${temp.dir}/${uploadPath}"
-          file="${dist.dir}/Jmol-${version}-binary.zip" />
-    <copy tofile="${temp.dir}/${uploadPath}/README-${version}.properties"
-          file="${dist.dir}/Jmol.properties" />
-    </then>
-  	</if>
-  	<if>
-     <equals arg1="${pathdir}" arg2="${pathdir-full}" />
-  	 <then>
-	    <copy todir="${temp.dir}/${uploadPath}"
-	          file="${dist.dir}/Jmol-${version}-binary.tar.gz" />
-	    <copy todir="${temp.dir}/${uploadPath}"
-	          file="${dist.dir}/Jmol-${version}-full.tar.gz" />
-  	 </then>
-  	</if>
-
-    <!-- Do the copy using scp -->
-  	
-  	<if>
-     <equals arg1="${sendAll}" arg2="true" />
-  	 <then>
-    <echo message="Copying binary.zip to ${web.dir}" level="info"/>
-    <scp todir="${ssh.user},jmol:${ssh.password}@${web.host}:${web.dir}"
-         trust="yes" failonerror="true" verbose="true">
-      <fileset dir="${temp.dir}">
-        <include name="**/*.zip"/>
-        <include name="**/*.properties"/>
-      </fileset>
-    </scp>
-    <echo message="Copying binary.tar.gz to ${web.dir}" level="info"/>
-    <scp todir="${ssh.user},jmol:${ssh.password}@${web.host}:${web.dir}"
-         trust="yes" failonerror="true" verbose="true">
-      <fileset dir="${temp.dir}">
-        <include name="**/*-binary.tar.gz"/>
-      </fileset>
-    </scp>
-  	    </then>
-  	  	</if>
-
-
-  	  	
     <echo message="Copying full.tar.gz to ${web.dir}" level="info"/>
     <scp todir="${ssh.user},jmol:${ssh.password}@${web.host}:${web.dir}"
          trust="yes" failonerror="true" verbose="true">
@@ -460,7 +378,7 @@ Release Note: When releasing stable vers
     <mkdir dir="${classes.dir}"/>
     <javac srcdir="src" destdir="${classes.dir}" encoding="UTF8"
            debug="${debug}" deprecation="${deprecation}"
-           optimize="${optimization}" source="1.7" target="1.7">
+           optimize="${optimization}" source="1.8" target="1.8">
       <classpath refid="project.class.path" />
       <exclude name="astex/**/*.java"/>
       <exclude name="java_cup/**/*.java"/>
@@ -544,7 +462,7 @@ all support for previous versions remove
     <javac srcdir="src" destdir="${applet.classes.dir}"
            debug="${debug}" deprecation="${deprecation}"
            optimize="${optimization}"
-           source="1.7" target="1.7" encoding="UTF8"
+           source="1.8" target="1.8" encoding="UTF8"
            includesfile="applet.classes"
            classpathref="applet-project.class.path" />
 
@@ -646,14 +564,13 @@ all support for previous versions remove
     <!-- unjar dest="${appjars.dir}" src="${lib.dir}/${vecmath.jar}"/ -->
     <!-- unjar dest="${appjars.dir}" src="${lib.dir}/Acme.jar"/ -->
     <!-- unjar dest="${appjars.dir}" src="${lib.dir}/${itext.jar}"/ -->
-    <unjar dest="${appjars.dir}" src="${lib.dir}/${naga.jar}"/>
-    <unjar dest="${appjars.dir}" src="${lib.dir}/${commons-cli.jar}"/>
+    <!-- unjar dest="${appjars.dir}" src="${lib.dir}/${naga.jar}"/ -->
+    <!-- unjar dest="${appjars.dir}" src="${lib.dir}/${commons-cli.jar}"/ -->
   	<delete dir="${appjars.dir}/javajs" />
   	<delete dir="${appjars.dir}/org/jmol" />
   	<delete dir="${appjars.dir}/org/apache/tools" />
   	<delete dir="${appjars.dir}/META-INF" />
     <unjar dest="${appjars.dir}" src="${lib.dir}/${inchi.jar}"/>
-  	<move file="${appjars.dir}/META-INF/LICENSE" tofile="${appjars.dir}/META-INF/LICENSE-JNI-INCHI"/>
   	<delete file="${appjars.dir}/META-INF/MANIFEST.MF" />
   	<!-- the following mitigation is in accord with https://logging.apache.org/log4j/2.x/security.html
   	     despite the fact that the org/apache/logging package is not included in Jmol.
@@ -664,10 +581,6 @@ all support for previous versions remove
 
   <target name="jar" id="jar"
           depends="init,classes,jmolGuide,jmolHistory,jmolDevelopersGuide,libjars,main-i18n">
-    <if><equals arg1="${Private.propertyFile}" arg2="nojar" />
-    	<then><echo>Skipping jar creation</echo></then><else>
-
-  	
   	<copy todir="${classes.dir}/org/openscience/jmol/Data/guide" >
       <fileset dir="build/doc/JmolUserGuide">
         <include name="**/*.html" />
@@ -711,10 +624,10 @@ all support for previous versions remove
     </jar>
 
 
-    <antcall target="sign-jar-file">
+    <!--<antcall target="sign-jar-file">
       <param name="sign-jar-file-dir" value="build" />
       <param name="sign-jar-file-name"  value="Jmol.jar" />
-    </antcall>
+    </antcall>-->
   	
     	    <echo message="Creating JmolData.jar -- if this fails, check to see that build/Jmol.jar is not open." />
     <jar destfile="build/JmolData.jar"
@@ -753,10 +666,10 @@ all support for previous versions remove
       </fileset>
       <fileset dir="${appjars.dir}" includes="**/*"/>
     </jar>
-    <antcall target="sign-jar-file">
+    <!--<antcall target="sign-jar-file">
       <param name="sign-jar-file-dir" value="build" />
       <param name="sign-jar-file-name"  value="JmolData.jar" />
-    </antcall>
+    </antcall>-->
 
     <copy todir="build">
       <fileset dir=".">
@@ -784,10 +697,10 @@ all support for previous versions remove
       </fileset>
       <fileset dir="${appjars.dir}" includes="**/*"/>
     </jar>
-    <antcall target="sign-jar-file">
+    <!--<antcall target="sign-jar-file">
       <param name="sign-jar-file-dir" value="build" />
       <param name="sign-jar-file-name"  value="Jvxl.jar" />
-    </antcall>
+    </antcall>-->
   	<!--
     <jar destfile="ChimeToJmol.jar"
          manifest="manifest/chimetojmol.txt">
@@ -800,7 +713,6 @@ all support for previous versions remove
       <param name="sign-jar-file-name" value="ChimeToJmol.jar" />
     </antcall>
     -->
-  </else></if>
   </target>
 
   <target name="apis-jar" id="apis-jar" depends="init,apisio-classes">
@@ -1881,47 +1793,7 @@ all support for previous versions remove
 	
   <!-- tools  -->
   <target name="sign-jar-file" >
-  <if><equals arg1="${Private.propertyFile}" arg2="none" />
-  	<then><echo>Skipping jar signing</echo></then><else>
-    <if><available file="${Private.propertyFile}" /><then>
-      	<echo>using keystore="${Private.keystore}" alias="${Private.alias} tsa=${tsa.url}"</echo> 
-        <signjar keystore="${Private.keystore}"
-                 storetype="${Private.storetype}"
-                 storepass="${Private.storepass}"
-                 keypass="${Private.keypass}"
-                 alias="${Private.alias}"
-		       	 tsaurl="${tsa.url}"
-        	>
-          <fileset dir="${sign-jar-file-dir}" >
-            <include name="${sign-jar-file-name}" />
-          </fileset>
-        </signjar>
-    </then><elseif><available file="ca-cert/certificate/Jmol.p12" /><then>
-      	<echo>using ca-cert/certificate/Jmol.12</echo> 
-        <signjar keystore="ca-cert/certificate/Jmol.p12"
-                 storetype="pkcs12"
-                 storepass="${Jmol.p12.password}"
-	             keypass="${Jmol.p12key.password}"
-                 alias="${Jmol.p12.alias}"
-		       	 tsaurl="${tsa.url}"
-        	>
-            <fileset dir="${sign-jar-file-dir}" >
-              <include name="${sign-jar-file-name}" />
-            </fileset>
-        </signjar>
-    </then></elseif><else>
-      	<echo>using self-signed certificate</echo> 
-	        <signjar keystore="${selfsign.store}"
-       		         storetype="${selfsign.storetype}"
-	                 storepass="${selfsign.storepass}"
-	                 alias="${selfsign.alias}">
-	            <fileset dir="${sign-jar-file-dir}" >
-	              <include name="${sign-jar-file-name}" />
-	            </fileset>
-	        </signjar>    	
-	</else></if>
-    <!-- to verify that a .jar file is signed: jarsigner -verify foo.jar -->
-  </else></if>
+  	<echo>Skipping jar signing</echo>
   </target>
 
   <!-- i18n stuff -->
@@ -1951,14 +1823,6 @@ all support for previous versions remove
 	    The scp task requires the jsch jar in the class path.
 	  -->
 
-	  <!-- Contributions -->
-	  <taskdef resource="net/sf/antcontrib/antlib.xml">
-	    <classpath>
-	      <pathelement location="tools/ant-contrib.jar" />
-	    </classpath>
-	  </taskdef>
-
-		
 	  <property name="sendZip"         value="true" />
 	  <property name="dist.dir"        value="build/dist" />
 	  <property name="src.dir"         value="src" />
@@ -1979,14 +1843,7 @@ all support for previous versions remove
 		
 		
 	  <property file="${dist.dir}/Jmol.properties" prefix="Jmol.properties" />
-	  <property name="version" value="${Jmol.properties.Jmol.___JmolVersion}" />
-	  <propertyregex property="version"
-		  override = "true"
-		  input="${version}"
-		  regexp='(")([^"]+)(")'
-	  	  select="\2"
-	      global="true"
-	  />
+	  <property name="version" value="@version@" />
 	  <echo message="version=${version}" />
 
 		<loadresource property="versionMajorMinor">
@@ -2018,15 +1875,7 @@ all support for previous versions remove
 		  </filterchain>
 		</loadresource>
 		<property name="pathdir-full" value="Jmol/Version" />
-	  	<if>
-	     <equals arg1="${betaFlag}" arg2="${version}" />
-	  	 <then>
-	  		<property name="pathdir"    value="${pathdir-full}" />
-	    </then>
-	  	<else>
-	  		<property name="pathdir"    value="Jmol-beta/Jmol" />
-	  	</else>
-	  	</if>
+  		<property name="pathdir"    value="${pathdir-full}" />
 		<echo message="betaFlag: ${betaFlag}"/>
 
 		<property name="path.release"    value="${pathdir} ${versionMajorMinor}" />
--- tools/build-i18n.xml.orig	2022-11-22 15:05:26.000000000 -0700
+++ tools/build-i18n.xml	2022-11-25 12:59:13.001631560 -0700
@@ -25,14 +25,6 @@
 
   	      -->
   	
-
-  <!-- <for list ...> construct needs ant-contrib.jar -->
-  <taskdef resource="net/sf/antcontrib/antlib.xml">
-    <classpath>
-      <pathelement location="tools/ant-contrib.jar"/>
-    </classpath>
-  </taskdef>
-
   <!-- Our properties section -->
   <property name="lib.dir" value="jars" />
   <property name="src.dir" value="src" />
@@ -43,10 +35,6 @@
             value="${Jmol.translation.dir}/JmolApplet" />
   <property name="classes.dir" value="build/classes" />
   <property name="JmolApplet.classes.dir" value="build/classes/org/jmol/translation/JmolApplet" />
-  <property name="all.Jmol.languages"
-            value="ar,ast,az,bs,ca,cs,da,de,el,en_AU,en_GB,es,et,eu,fi,fo,fr,gl,hr,hu,hy,id,it,ja,ko,ms,nl,oc,pl,pt,pt_BR,ru,sl,sr,sv,ta,te,tr,ug,uk,uz,zh_CN,zh_TW" />
-  <property name="all.JmolApplet.languages"
-            value="ar,bs,ca,cs,da,de,el,en_GB,es,et,eu,fi,fr,fy,hu,hy,id,it,ja,jv,ko,ms,nb,nl,oc,pl,pt,pt_BR,ru,sl,sv,ta,te,tr,ug,uk,zh_CN,zh_TW" />
 
 	  <!-- NOTE:
 	  
@@ -108,69 +96,23 @@
   <target name="create-application-pot" id="create-application-pot"
           depends="check-executables,check-uptodate-application-pot"
           if="exist_xgettext" unless="uptodate-application-pot">
-    <if>
-      <istrue value="${do.create.pot}" />
-      <then>
-        <echo message="Generating Jmol.pot (gettext PO-template) file in ${Jmol.po.dir} ..." level="info"/>
-        <delete file="${Jmol.po.dir}/Jmol.pot.tstamp"/>
-        <!-- Generate new Jmol.pot -->
-        <mkdir dir="${Jmol.po.dir}/tmp"/>
-        <apply executable="${gettext.xgettext}" dir="${basedir}/${src.dir}" parallel="true"
-               verbose="true" relative="true" forwardslash="true">
-          <arg value="-kGT.$" />
-          <arg value="--from-code=utf-8" />
-          <arg value="--language=Java" />
-          <arg value="--msgid-bugs-address=jmol-developers@lists.sourceforge.net"/>
-          <arg value="--output-dir=${basedir}/${Jmol.po.dir}/tmp" />
-          <arg value="--output=Jmol.pot" />
-          <arg value="--add-comments=/" />
-          <fileset refid="Jmol.java.files" />
-        </apply>
-        <if>
-          <and>
-            <available file="${Jmol.po.dir}/Jmol.pot"/>
-            <available file="${Jmol.po.dir}/tmp/Jmol.pot"/>
-          </and>
-          <then>
-            <!-- Compare both Jmol.pot files -->
-            <copy file="${Jmol.po.dir}/Jmol.pot"
-                  tofile="${Jmol.po.dir}/tmp/Jmol.old.pot"/>
-            <antcall target="shrink-pot-file">
-              <param name="remove_pot_file" value="${Jmol.po.dir}/tmp/Jmol.old.pot"/>
-            </antcall>
-            <copy file="${Jmol.po.dir}/tmp/Jmol.pot"
-                  tofile="${Jmol.po.dir}/tmp/Jmol.new.pot"/>
-            <antcall target="shrink-pot-file">
-              <param name="remove_pot_file" value="${Jmol.po.dir}/tmp/Jmol.new.pot"/>
-            </antcall>
-            <if>
-              <not>
-                <filesmatch file1="${Jmol.po.dir}/tmp/Jmol.old.pot"
-                            file2="${Jmol.po.dir}/tmp/Jmol.new.pot"/>
-              </not>
-              <then>
-                <copy file="${Jmol.po.dir}/tmp/Jmol.pot"
-                      tofile="${Jmol.po.dir}/Jmol.pot"/>
-              </then>
-            </if>
-          </then>
-          <else>
-            <if>
-              <available file="${Jmol.po.dir}/tmp/Jmol.pot"/>
-              <then>
-                <copy file="${Jmol.po.dir}/tmp/Jmol.pot"
-                      tofile="${Jmol.po.dir}/Jmol.pot"/>
-              </then>
-            </if>
-          </else>
-        </if>
-        <touch file="${Jmol.po.dir}/Jmol.pot.tstamp"/>
-        <delete dir="${Jmol.po.dir}/tmp"/>
-      </then>
-      <else>
-        <echo message="Skipping generation of Jmol.pot (gettext PO-template)" level="warning"/>
-      </else>
-    </if>
+    <echo message="Generating Jmol.pot (gettext PO-template) file in ${Jmol.po.dir} ..." level="info"/>
+    <delete file="${Jmol.po.dir}/Jmol.pot.tstamp"/>
+    <!-- Generate new Jmol.pot -->
+    <mkdir dir="${Jmol.po.dir}/tmp"/>
+    <apply executable="${gettext.xgettext}" dir="${basedir}/${src.dir}" parallel="true"
+           verbose="true" relative="true" forwardslash="true">
+      <arg value="-kGT.$" />
+      <arg value="--from-code=utf-8" />
+      <arg value="--language=Java" />
+      <arg value="--msgid-bugs-address=jmol-developers@lists.sourceforge.net"/>
+      <arg value="--output-dir=${basedir}/${Jmol.po.dir}/tmp" />
+      <arg value="--output=Jmol.pot" />
+      <arg value="--add-comments=/" />
+      <fileset refid="Jmol.java.files" />
+    </apply>
+    <touch file="${Jmol.po.dir}/Jmol.pot.tstamp"/>
+    <delete dir="${Jmol.po.dir}/tmp"/>
   </target>
 
   <!-- Create JmolApplet.pot -->
@@ -186,74 +128,28 @@
   <target name="create-applet-pot" id="create-applet-pot"
           depends="check-executables,check-uptodate-applet-pot"
           if="exist_xgettext" unless="uptodate-applet-pot">
-    <if>
-      <istrue value="${do.create.pot}" />
-      <then>
-        <echo message="Generating JmolApplet.pot (gettext PO-template) file in ${JmolApplet.po.dir} ..." level="info"/>
-        <delete file="${JmolApplet.po.dir}/JmolApplet.pot.tstamp"/>
-        <!-- Generate new JmolApplet.pot -->
-        <mkdir dir="${JmolApplet.po.dir}/tmp"/>
-        <apply executable="${gettext.xgettext}" dir="${basedir}/${src.dir}" parallel="true"
-               verbose="true" relative="true" forwardslash="true">
-          <arg value="-kGT._" />
-          <arg value="--from-code=utf-8" />
-          <arg value="--language=Java" />
-          <arg value="--msgid-bugs-address=jmol-developers@lists.sourceforge.net"/>
-          <arg value="--output-dir=${basedir}/${JmolApplet.po.dir}/tmp" />
-          <arg value="--output=JmolApplet.pot" />
-          <arg value="--add-comments=/" />
-          <fileset dir="${basedir}/${src.dir}">
-            <include name="JmolApplet*.java"/>
-            <include name="org/jmol/**/*.java"/>
-            <exclude name="org/jmol/**/cdk/*.java"/>
-            <include name="org/openscience/jmol/ui/*.java"/>
-          </fileset>
-        </apply>
-        <if>
-          <and>
-            <available file="${JmolApplet.po.dir}/JmolApplet.pot"/>
-            <available file="${JmolApplet.po.dir}/tmp/JmolApplet.pot"/>
-          </and>
-          <then>
-            <!-- Compare both JmolApplet.pot files -->
-            <copy file="${JmolApplet.po.dir}/JmolApplet.pot"
-                  tofile="${JmolApplet.po.dir}/tmp/JmolApplet.old.pot"/>
-            <antcall target="shrink-pot-file">
-              <param name="remove_pot_file" value="${JmolApplet.po.dir}/tmp/JmolApplet.old.pot"/>
-            </antcall>
-            <copy file="${JmolApplet.po.dir}/tmp/JmolApplet.pot"
-                  tofile="${JmolApplet.po.dir}/tmp/JmolApplet.new.pot"/>
-            <antcall target="shrink-pot-file">
-              <param name="remove_pot_file" value="${JmolApplet.po.dir}/tmp/JmolApplet.new.pot"/>
-            </antcall>
-            <if>
-              <not>
-                <filesmatch file1="${JmolApplet.po.dir}/tmp/JmolApplet.old.pot"
-                            file2="${JmolApplet.po.dir}/tmp/JmolApplet.new.pot"/>
-              </not>
-              <then>
-                <copy file="${JmolApplet.po.dir}/tmp/JmolApplet.pot"
-                      tofile="${JmolApplet.po.dir}/JmolApplet.pot"/>
-              </then>
-            </if>
-          </then>
-          <else>
-            <if>
-              <available file="${JmolApplet.po.dir}/tmp/JmolApplet.pot"/>
-              <then>
-                <copy file="${JmolApplet.po.dir}/tmp/JmolApplet.pot"
-                      tofile="${JmolApplet.po.dir}/JmolApplet.pot"/>
-              </then>
-            </if>
-          </else>
-        </if>
-        <touch file="${JmolApplet.po.dir}/JmolApplet.pot.tstamp"/>
-        <delete dir="${JmolApplet.po.dir}/tmp"/>
-      </then>
-      <else>
-        <echo message="Skipping generation of JmolApplet.pot (gettext PO-template)" level="warning"/>
-      </else>
-    </if>
+    <echo message="Generating JmolApplet.pot (gettext PO-template) file in ${JmolApplet.po.dir} ..." level="info"/>
+    <delete file="${JmolApplet.po.dir}/JmolApplet.pot.tstamp"/>
+    <!-- Generate new JmolApplet.pot -->
+    <mkdir dir="${JmolApplet.po.dir}/tmp"/>
+    <apply executable="${gettext.xgettext}" dir="${basedir}/${src.dir}" parallel="true"
+           verbose="true" relative="true" forwardslash="true">
+      <arg value="-kGT._" />
+      <arg value="--from-code=utf-8" />
+      <arg value="--language=Java" />
+      <arg value="--msgid-bugs-address=jmol-developers@lists.sourceforge.net"/>
+      <arg value="--output-dir=${basedir}/${JmolApplet.po.dir}/tmp" />
+      <arg value="--output=JmolApplet.pot" />
+      <arg value="--add-comments=/" />
+      <fileset dir="${basedir}/${src.dir}">
+        <include name="JmolApplet*.java"/>
+        <include name="org/jmol/**/*.java"/>
+        <exclude name="org/jmol/**/cdk/*.java"/>
+        <include name="org/openscience/jmol/ui/*.java"/>
+      </fileset>
+    </apply>
+    <touch file="${JmolApplet.po.dir}/JmolApplet.pot.tstamp"/>
+    <delete dir="${JmolApplet.po.dir}/tmp"/>
   </target>
 
   <!-- Update po files using newly created .pot files -->
@@ -263,25 +159,141 @@
   <!-- Update Jmol po files using newly created Jmol.pot file -->
   <target name="update-application-po" id="update-application-po"
           depends="check-executables" if="exist_msgmerge">
-    <if>
-      <istrue value="${do.create.po}" />
-      <then>
-        <for list="${all.Jmol.languages}" delimiter=","
-             param="current.Jmol.language">
-          <sequential>
-            <antcall target="update-application-po-lang">
-              <param name="Jmol_lang_value" value="@{current.Jmol.language}"/>
-            </antcall>
-          </sequential>
-        </for>
-        <delete>
-          <fileset dir="${Jmol.po.dir}" includes="*.po~" defaultexcludes="no"/>
-        </delete>
-      </then>
-      <else>
-        <echo message="Skipping generation of .po gettext files for Jmol" level="warning"/>
-      </else>
-    </if>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ar"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ast"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="az"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="bs"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ca"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="cs"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="da"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="de"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="el"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="en"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="en_AU"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="en_GB"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="es"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="et"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="eu"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="fi"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="fo"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="fr"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="gl"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="hr"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="hu"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="hy"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="id"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="it"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ja"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ko"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ms"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="nl"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="oc"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="pl"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="pt"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="pt_BR"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ru"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="sl"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="sr"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="sv"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ta"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="te"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="tr"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="ug"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="uk"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="uz"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="zh_CN"/>
+    </antcall>
+    <antcall target="update-application-po-lang">
+      <param name="Jmol_lang_value" value="zh_TW"/>
+    </antcall>
+    <delete>
+      <fileset dir="${Jmol.po.dir}" includes="*.po~" defaultexcludes="no"/>
+    </delete>
   </target>  
 
   <target name="check-uptodate-application-po">
@@ -307,26 +319,123 @@
   <!-- Update JmolApplet po files using newly created JmolApplet.pot file -->
   <target name="update-applet-po" id="update-applet-po"
           depends="check-executables" if="exist_msgmerge">
-    <if>
-      <istrue value="${do.create.po}" />
-      <then>
-        <for list="${all.JmolApplet.languages}" delimiter=","
-             param="current.JmolApplet.language">
-          <sequential>
-            <antcall target="update-applet-po-lang">
-              <param name="JmolApplet_lang_value"
-                     value="@{current.JmolApplet.language}"/>
-            </antcall>
-          </sequential>
-        </for>
-        <delete>
-          <fileset dir="${JmolApplet.po.dir}" includes="*.po~" defaultexcludes="no"/>
-        </delete>
-      </then>
-      <else>
-        <echo message="Skipping generation of .po gettext files for JmolApplet" level="warning"/>
-      </else>
-    </if>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ar"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="bs"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ca"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="cs"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="da"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="de"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="el"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="en_GB"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="es"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="et"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="eu"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="fi"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="fr"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="fy"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="hu"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="hy"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="id"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="it"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ja"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="jv"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ko"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ms"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="nb"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="nl"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="oc"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="pl"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="pt"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="pt_BR"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ru"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="sl"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="sv"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ta"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="te"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="tr"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="ug"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="uk"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="zh_CN"/>
+    </antcall>
+    <antcall target="update-applet-po-lang">
+      <param name="JmolApplet_lang_value" value="zh_TW"/>
+    </antcall>
+    <delete>
+      <fileset dir="${JmolApplet.po.dir}" includes="*.po~" defaultexcludes="no"/>
+    </delete>
   </target>  
 
   <target name="check-uptodate-applet-po">
@@ -356,14 +465,135 @@
   <!-- Update Jmol messages_LANG.class files using newly created Jmol po files -->
   <target name="update-application-catalog" id="update-application-catalog"
           depends="check-executables" if="exist_msgfmt">
-    <for list="${all.Jmol.languages}" delimiter=","
-         param="current.Jmol.language">
-      <sequential>
-        <antcall target="update-application-catalog-lang">
-          <param name="Jmol_lang_value" value="@{current.Jmol.language}"/>
-        </antcall>
-      </sequential>
-    </for>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ar"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ast"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="az"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="bs"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ca"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="cs"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="da"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="de"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="el"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="en_AU"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="en_GB"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="es"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="et"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="eu"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="fi"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="fo"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="fr"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="gl"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="hr"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="hu"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="hy"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="id"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="it"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ja"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ko"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ms"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="nl"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="oc"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="pl"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="pt"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="pt_BR"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ru"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="sl"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="sr"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="sv"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ta"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="te"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="tr"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="ug"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="uk"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="uz"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="zh_CN"/>
+    </antcall>
+    <antcall target="update-application-catalog-lang">
+      <param name="Jmol_lang_value" value="zh_TW"/>
+    </antcall>
   </target>  
 
   <target name="check-uptodate-application-catalog">
@@ -394,15 +624,120 @@
   <!-- Update JmolApplet messages_LANG.class files using newly created JmolApplet po files -->
   <target name="update-applet-catalog" id="update-applet-catalog"
           depends="check-executables" if="exist_msgfmt">
-    <for list="${all.JmolApplet.languages}" delimiter=","
-         param="current.JmolApplet.language">
-      <sequential>
-        <antcall target="update-applet-catalog-lang">
-          <param name="JmolApplet_lang_value"
-                 value="@{current.JmolApplet.language}"/>
-        </antcall>
-      </sequential>
-    </for>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ar"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="bs"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ca"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="cs"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="da"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="de"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="el"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="en_GB"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="es"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="et"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="eu"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="fi"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="fr"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="fy"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="hu"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="hy"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="id"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="it"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ja"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="jv"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ko"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ms"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="nb"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="nl"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="oc"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="pl"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="pt"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="pt_BR"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ru"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="sl"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="sv"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ta"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="te"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="tr"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="ug"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="uk"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="zh_CN"/>
+    </antcall>
+    <antcall target="update-applet-catalog-lang">
+      <param name="JmolApplet_lang_value" value="zh_TW"/>
+    </antcall>
     <exec executable="${gettext.msgfmt}" dir="${basedir}/${Jmol.po.dir}">
       <arg value="--version"/>
     </exec>
@@ -482,71 +817,16 @@
   <target name="check-executables" unless="exist_executable">
 
     <!-- Checking for xgettext -->
-  	<exec executable="${gettext.xgettext}" dir="${src.dir}"
-          failonerror="false" failifexecutionfails="false"
-          outputproperty="ouput_xgettext"
-          resultproperty="result_xgettext">
-      <arg value="--help"/>
-    </exec>
-    <if>
-      <equals arg1="0" arg2="${result_xgettext}"/>
-      <then>
-        <property name="exist_xgettext" value="true"/>
-      </then>
-    </if>
+    <property name="exist_xgettext" value="true"/>
 
     <!-- Checking for msgmerge -->
-  	<exec executable="${gettext.msgmerge}" dir="${src.dir}"
-          failonerror="false" failifexecutionfails="false"
-          outputproperty="ouput_msgmerge"
-          resultproperty="result_msgmerge">
-      <arg value="--help"/>
-    </exec>
-    <if>
-      <equals arg1="0" arg2="${result_msgmerge}"/>
-      <then>
-        <property name="exist_msgmerge" value="true"/>
-      </then>
-    </if>
+    <property name="exist_msgmerge" value="true"/>
 
     <!-- Checking for msgfmt -->
-  	<exec executable="${gettext.msgfmt}" dir="${src.dir}"
-          failonerror="false" failifexecutionfails="false"
-          outputproperty="ouput_msgfmt"
-          resultproperty="result_msgfmt">
-      <arg value="--help"/>
-    </exec>
-    <if>
-      <equals arg1="0" arg2="${result_msgfmt}"/>
-      <then>
-        <property name="exist_msgfmt" value="true"/>
-      </then>
-    </if>
+    <property name="exist_msgfmt" value="true"/>
 
     <!-- Global checking -->
-    <if>
-      <and>
-        <equals arg1="${exist_xgettext}" arg2="true"/>
-        <equals arg1="${exist_msgmerge}" arg2="true"/>
-        <equals arg1="${exist_msgfmt}"   arg2="true"/>
-      </and>
-      <then>
-        <property name="exist_executable" value="true"/>
-      </then>
-      <else>
-        <property name="exist_executable" value="false"/>
-        <echo level="warning">
-          The gettext tools are not available.
-          They are needed if you want to build a version of Jmol with translations in other languages.
-          Otherwise, you dont need them.
-          ----------------------------------------------
-          Homepage: http://www.gnu.org/software/gettext/
-          Win32: http://gnuwin32.sourceforge.net/packages/gettext.htm
-          [the full gnu/bin set of files, including dll files needs to be 
-           put somewhere on your Windows PATH. Bob has these in C:\gnu\bin]	
-        </echo>
-      </else>
-    </if>
+    <property name="exist_executable" value="true"/>
   </target>
 
   <target name="shrink-pot-file">