<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.open-xchange.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sasepp</id>
	<title>Open-Xchange - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.open-xchange.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sasepp"/>
	<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=Special:Contributions/Sasepp"/>
	<updated>2026-10-05T17:54:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3383</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3383"/>
		<updated>2009-03-18T13:09:06Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Checking that the translated Javascript file is valid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Installing a CVS translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these instructions.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;br /&gt;
&lt;br /&gt;
==Checking that the translated Javascript file is valid==&lt;br /&gt;
&lt;br /&gt;
If your translated &#039;&#039;xx_XX.js&#039;&#039; file does not seem to work correctly, you can used &#039;&#039;grep&#039;&#039; to verify that it&#039;s correctly formatted. In my case OmegaT translation tool generated a faulty &#039;&#039;po&#039;&#039;-file, which in turn was converted into faulty &#039;&#039;js&#039;&#039; file: &lt;br /&gt;
&lt;br /&gt;
 $ &#039;&#039;&#039;grep -v &amp;quot;.*:.*&amp;quot; fi_FI.js&#039;&#039;&#039;&lt;br /&gt;
         msgid &amp;quot;New Appointment&amp;quot;&lt;br /&gt;
 msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This kind of faulty lines need to be removed or things won&#039;t work correctly.&lt;br /&gt;
&lt;br /&gt;
You should also verify that the first line of the translated &#039;&#039;js&#039;&#039; file is the same or similar to the existing, working translations:&lt;br /&gt;
&lt;br /&gt;
 $ &#039;&#039;&#039;head -n 1 de_DE.js&#039;&#039;&#039; &lt;br /&gt;
 {nplurals: 2, plural: function(n) { return (n != 1); }, dictionary: {&lt;br /&gt;
&lt;br /&gt;
In my case the header did not look anything like this, so I had to fix it.&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3382</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3382"/>
		<updated>2009-03-18T13:08:47Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Checking that the translated Javascript file is valid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Installing a CVS translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these instructions.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;br /&gt;
&lt;br /&gt;
==Checking that the translated Javascript file is valid==&lt;br /&gt;
&lt;br /&gt;
If your translated &#039;&#039;xx_XX.js&#039;&#039; file does not seem to work correctly, you can used &#039;&#039;grep&#039;&#039; to verify that it&#039;s correctly formatted. In my case OmegaT translation tool generated a faulty &#039;&#039;po&#039;&#039;-file, which in turn was converted into faulty &#039;&#039;js&#039;&#039; file: &lt;br /&gt;
&lt;br /&gt;
 $ &#039;&#039;&#039;grep -v &amp;quot;.*:.*&amp;quot; fi_FI.js&#039;&#039;&#039;&lt;br /&gt;
         msgid &amp;quot;New Appointment&amp;quot;&lt;br /&gt;
 msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This kind of faulty lines need to be removed or things won&#039;t work correctly.&lt;br /&gt;
&lt;br /&gt;
You should also verify that the first line of the translated &#039;&#039;js&#039;&#039; file is the same or similar to the existing, working translations:&lt;br /&gt;
&lt;br /&gt;
$ &#039;&#039;&#039;head -n 1 de_DE.js&#039;&#039;&#039; &lt;br /&gt;
{nplurals: 2, plural: function(n) { return (n != 1); }, dictionary: {&lt;br /&gt;
&lt;br /&gt;
In my case the header did not look anything like this, so I had to fix it.&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3381</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3381"/>
		<updated>2009-03-18T13:04:42Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Installing a CVS translation on a released version of OX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Installing a CVS translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these instructions.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;br /&gt;
&lt;br /&gt;
==Checking that the translated Javascript file is valid==&lt;br /&gt;
&lt;br /&gt;
If your translated &#039;&#039;xx_XX.js&#039;&#039; file does not seem to work correctly, you can used &#039;&#039;grep&#039;&#039; to verify that it&#039;s correctly formatted. In my case OmegaT translation tool generated a faulty &#039;&#039;po&#039;&#039;-file, which in turn was converted into faulty &#039;&#039;js&#039;&#039; file: &lt;br /&gt;
&lt;br /&gt;
 $ &#039;&#039;&#039;grep -v &amp;quot;.*:.*&amp;quot; fi_FI.js&#039;&#039;&#039;&lt;br /&gt;
         msgid &amp;quot;New Appointment&amp;quot;&lt;br /&gt;
 msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should also verify that the first line of the translated &#039;&#039;js&#039;&#039; file is the same or similar&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3380</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3380"/>
		<updated>2009-03-18T12:51:02Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Installing a CVS translation on a released version of OX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Installing a CVS translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these instructions.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3379</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3379"/>
		<updated>2009-03-18T12:50:00Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Installing a translation on a released version of OX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Installing a CVS translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these steps instead.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3378</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3378"/>
		<updated>2009-03-18T12:49:34Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Deploying a translation on a released version of OX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Installing a translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these steps instead.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3377</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3377"/>
		<updated>2009-03-18T12:49:16Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
==Deploying a translation on a released version of OX==&lt;br /&gt;
&lt;br /&gt;
Most people probably use the CVS version of OX to generate the pot file. However, you may want to deploy the translation on a stable, released version of OX. In that case you might want to consider following these steps instead.&lt;br /&gt;
&lt;br /&gt;
First of all, you should &amp;quot;deploy&amp;quot; the translation to a fake directory instead of the default (/var/www). This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file. If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
     --- snip ---&lt;br /&gt;
&lt;br /&gt;
By default the ${htdoc} points to &#039;&#039;/var/www&#039;&#039;, which is not the correct path in any case (should probably be &#039;&#039;/var/www/html/ox6&#039;&#039;). We change &#039;&#039;htdoc&#039;&#039; to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;br /&gt;
        --- snip ---&lt;br /&gt;
&lt;br /&gt;
After modifying the &#039;&#039;build.xml&#039;&#039; we do a couple of simple steps:&lt;br /&gt;
&lt;br /&gt;
* Create the directory &#039;&#039;/tmp/ox&#039;&#039;&lt;br /&gt;
* Run &#039;&#039;ant deploy&#039;&#039; in &#039;&#039;open-xchange-gui&#039;&#039;&lt;br /&gt;
* Copy the &#039;&#039;/tmp/ox/lang/xx_XX.js&#039;&#039; to the correct OX directory (usually &#039;&#039;/var/www/html/ox6/lang&#039;&#039;)&lt;br /&gt;
* Edit the &#039;&#039;/var/www/html/ox6/lang/languages.js&#039;&#039; as shown above&lt;br /&gt;
&lt;br /&gt;
The translation should now be ready for use. However, to avoid unnecessary trouble, also do the following steps:&lt;br /&gt;
&lt;br /&gt;
* Restart Open X-change server (e.g. &#039;&#039;/etc/init.d/open-xchange-groupware restart&#039;&#039;)&lt;br /&gt;
* Restart Apache (e.g. &#039;&#039;/etc/init.d/httpd restart&#039;&#039;)&lt;br /&gt;
* Clear your browser&#039;s cache&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3376</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3376"/>
		<updated>2009-03-18T12:34:08Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using pot file created from CVS version of OX, but are running a released version of OX, you should deploy the translation to a fake directory. This can be done by editing the &#039;&#039;open-xchange-gui/build.xml&#039;&#039; file.&lt;br /&gt;
If you look at the &#039;&#039;deploy&#039;&#039; target, you&#039;ll notice that the modified files are copied to &#039;&#039;${destdir}/${htdoc}&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;target name=&amp;quot;deploy&amp;quot; depends=&amp;quot;all_with_clean&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;copy todir=&amp;quot;&#039;&#039;&#039;${destdir}/${htdoc}&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;fileset dir=&amp;quot;.&amp;quot; includes=&amp;quot;*.html,*.js,*.css,lang/**/*,js/**/*,css/**/*,themes/**/*,plu$&lt;br /&gt;
                &amp;lt;/copy&amp;gt;&lt;br /&gt;
        &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default that points to &#039;&#039;/var/www&#039;&#039;. This is not what we want, so we change the &#039;&#039;${htdoc}&#039;&#039; variable to point to a fake directory:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;project name=&amp;quot;HEAD-gui&amp;quot; default=&amp;quot;all&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Changed deploy path to avoid troubles --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;htdoc&amp;quot; value=&amp;quot;&#039;&#039;&#039;/tmp/ox/&#039;&#039;&#039;&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3370</id>
		<title>GUI Translation</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=GUI_Translation&amp;diff=3370"/>
		<updated>2009-03-18T08:15:35Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the steps required to translate the AJAX GUI into a new language.&lt;br /&gt;
Please have a look at [[Hyperion_Translation]] to see which translations are already available and which are missing at the moment.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Before translating anything, it is recommended that the server and the GUI are installed as described in [[Open_Xchange_Installation|the installation tutorial]]. If translations are tested somewhere else, the server is not strictly necessary. In this case, only sections [[Open_Xchange_Installation#II.1._Operating_System|II.1]], [[Open_Xchange_Installation#II.2._Java|II.2]], [[Open_Xchange_Installation#II.7._GNU_Gettext_Tools|II.7]], [[Open_Xchange_Installation#III.1._Java|III.1]], the Saxon library from section [[Open_Xchange_Installation#III.2._Apache_Ant_and_3rd_party_dependencies|III.2]], and section [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|IV.4]] of the tutorial are relevant.&lt;br /&gt;
&lt;br /&gt;
The translations use portable object (PO) files from [http://www.gnu.org/software/gettext/ GNU gettext] as file format. There are several tools available to edit the translations:&lt;br /&gt;
* [http://gted.sourceforge.net/ gted] (Eclipse Plugin)&lt;br /&gt;
* [http://kbabel.kde.org/ KBabel] (Unix/Linux only (KDE))&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multi-Platform)&lt;br /&gt;
* [http://www.omegat.org/ OmegaT] (Java, Multi-Platform)&lt;br /&gt;
* Any text editor, since PO files are simple UTF-8 text files.&lt;br /&gt;
At least one of these will be required by the translator.&lt;br /&gt;
&lt;br /&gt;
== Generating a translation template ==&lt;br /&gt;
&lt;br /&gt;
Translations are usually performed by filling out a translation template. This template (a file with the extension .pot) is generated by executing the &#039;&#039;pot&#039;&#039; task in Ant. Execute this in your open-xchange-gui &#039;&#039;&#039;source&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
 ant pot&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;-D&#039;&#039; switch should specify the same path as in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial. This will produce a file called &#039;&#039;ox.pot&#039;&#039; in the &#039;&#039;i18n&#039;&#039; directory of the GUI source. This file contains all untranslated text strings found in the source code. The corresponding entries can be either entered manually or merged automatically with an existing translation created for an older version of the GUI. In the latter case, only new and changed strings need to be updated manually. You will now have to modify (translate) the created &#039;&#039;.pot&#039;&#039; file with a translation tool of you choice, the dedicated tools are a great help for this task.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
After a POT file is translated or merged, it should be saved as ox.&#039;&#039;xx_XX&#039;&#039;.po, where &#039;&#039;xx_XX&#039;&#039; is the language code like e. g. &#039;&#039;de_DE&#039;&#039; or &#039;&#039;en_US&#039;&#039;. Each translation should be saved as i18n/&#039;&#039;xx_XX&#039;&#039;/po/ox.&#039;&#039;xx_XX&#039;&#039;.po.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 /usr/src/open-xchange-gui/i18n/&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;/po/ox.&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;.po&lt;br /&gt;
&lt;br /&gt;
To include the new language in the build process, one line must be added to the file i18n/languages.js:&lt;br /&gt;
&lt;br /&gt;
 var all_languages = {&lt;br /&gt;
 &lt;br /&gt;
   &amp;quot;de_DE&amp;quot;: &amp;quot;Deutsch&amp;quot;,&lt;br /&gt;
   &amp;quot;en_GB&amp;quot;: &amp;quot;English (UK)&amp;quot;,&lt;br /&gt;
   &amp;quot;en_US&amp;quot;: &amp;quot;English (US)&amp;quot;,&lt;br /&gt;
   &amp;quot;fr_FR&amp;quot;: &amp;quot;Français&amp;quot;,&lt;br /&gt;
   &amp;quot;&amp;lt;i&amp;gt;xx_XX&amp;lt;/i&amp;gt;&amp;quot;: &amp;quot;&amp;lt;i&amp;gt;Language name&amp;lt;/i&amp;gt;&amp;quot;,&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;:&amp;quot;&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Please note that each language line must end with a comma.&lt;br /&gt;
&lt;br /&gt;
After that, the new translation must be transformed to JavaScript and copied to its final destination on the web server. This is done by starting Ant again, as described in [[Open_Xchange_Installation#IV.4._Open-Xchange_GUI|section IV.4]] of the installation tutorial:&lt;br /&gt;
&lt;br /&gt;
 ant deploy&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=Wiki_usage_hints&amp;diff=2280</id>
		<title>Wiki usage hints</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=Wiki_usage_hints&amp;diff=2280"/>
		<updated>2008-08-19T12:06:28Z</updated>

		<summary type="html">&lt;p&gt;Sasepp: Removed spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sasepp</name></author>
	</entry>
</feed>