<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Murbi</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Murbi"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Murbi"/>
		<updated>2026-05-27T22:22:15Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/file_format&amp;diff=2521</id>
		<title>Talk:Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/file_format&amp;diff=2521"/>
				<updated>2006-05-02T19:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Voting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Format proposals =&lt;br /&gt;
&lt;br /&gt;
About our today's talk on file formats, you can read the [[http://en.wikipedia.org/wiki/Xml XML page on Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
=Parallel Wikis=&lt;br /&gt;
&lt;br /&gt;
I think that the wiki for the project should be only one, we are allowed to put test versions or proposals... ''(Martino)''&lt;br /&gt;
&lt;br /&gt;
I agree. We should probably stick to one wiki because it will get confusing otherwise - sorry, Carlo.&lt;br /&gt;
[[User:Leo|Leo]] 01:52, 27 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
=Comments=&lt;br /&gt;
&lt;br /&gt;
So, as you can see I found few positive aspects for XML and few negative for PO. I don't want to advertise the PO format, so if you know/find aspects that I haven't mentioned, don't hesitate to add them! [[User:Etienner|Etienner]] 17:09, 28 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Partiality, unicode and readability==&lt;br /&gt;
&lt;br /&gt;
It seems like these judgments are a bit &amp;quot;partial&amp;quot;, but that's normal... maybe someone sustaining XML should put his opinion...&lt;br /&gt;
and about readability: I don't think it's really a big problem... if it is, it can be solved by writing a simple &amp;quot;translator&amp;quot; to &amp;quot;human readable&amp;quot;&lt;br /&gt;
Unicode: isn't it a big advantage that XML fully supports unicode? [[User:Cconti|Cconti]]&lt;br /&gt;
&lt;br /&gt;
:I know, the judgments are partial, but this is the great advantage of wiki pages combined with the comunity that uses them: the more it is modified, the more pages get unpartial...&lt;br /&gt;
:For the human readability, you are right.&lt;br /&gt;
:Unicode IS a big advantage, but [http://en.wikipedia.org/wiki/UTF-8 UTF-8] is a unicode encoding, and it appears as last entry in the [[Internationalization/file_format#Supported_character_encodings|list]]. [[User:Etienner|&amp;lt;font color=&amp;quot;Green&amp;quot;&amp;gt;'''Etienne'''&amp;lt;/font&amp;gt;]] &amp;lt;sup&amp;gt;[[User talk:Etienner|'''&amp;lt;font color=&amp;quot;Yellow&amp;quot;&amp;gt;talk&amp;lt;/font&amp;gt;''']]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::My opinion on the whole thing: We do not really need to build hierarchies, which is what XML would be good at.&lt;br /&gt;
::On the other hand, we have an XML parser in Eiffel already, and despite there being gettext under a free license it is probably far better to avoid new external dependancies.&lt;br /&gt;
::If cats could talk they would chose XML-described catfood. In this case.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
We will have to write our own .po parser because ISE will want copyright assignent (or at the least BSD licensing) &amp;amp; we can't just use gettext because there is probably no way to make this an optional addon. [[User:Leo|Leo]] 19:29, 28 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
:I'm not an expert on licensing stuff so I'v copied from the gettext manual and pasted it here.&lt;br /&gt;
&lt;br /&gt;
:Some people wonder if using GNU gettext necessarily brings their package under the protective wing of the GNU General Public License or the GNU Library General Public License, when they do not want to make their program free, or want other kinds of freedom. The simplest answer is &amp;quot;normally not&amp;quot;. &lt;br /&gt;
:The GNU gettext library, i.e. the contents of libintl, is covered by the GNU Library General Public License. The rest of the GNU gettext package is covered by the GNU General Public License. &lt;br /&gt;
:The mere marking of localizable strings in a package, or conditional inclusion of a few lines for initialization, is not really including GPL'ed or LGPL'ed code. However, since the localization routines in libintl are under the LGPL, the LGPL needs to be considered. It gives the right to distribute the complete unmodified source of libintl evehttp://eiffelsoftware.origo.ethz.ch/index.php?title=Talk:Internationalization/file_format&amp;amp;action=editn with non-free programs. It also gives the right to use libintl as a shared library, even for non-free programs. But it gives the right to use libintl as a static library or to incorporate libintl into another library only to free software. [[User:Etienner|Etienner]] 19:49, 28 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
::There exists a [http://developer.postgresql.org/~petere/bsd-gettext/ BSD-licensed gettext implementation] from the NetBSD project. --[[User:Thom|Thom]] 10:09, 29 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Thanks. I'll have a look at it. [[User:Leo|Leo]] 15:15, 29 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Voting==&lt;br /&gt;
&lt;br /&gt;
I think there are now enough information for a voting on the file format...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;0&amp;quot; CELLPADDING=&amp;quot;3&amp;quot; CELLSPACING=&amp;quot;0&amp;quot; ID=&amp;quot;Table3&amp;quot;&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Person!! XML !! PO !! New!!&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Etienner|Etienne]] || || X || ||&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Vpiff|Vpiff]] || || X || ||&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Murbi|Murbi]] || || X || ||&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Lücs|Lücs]] || || X || ||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Put your vote adding this lines:--&amp;gt;&lt;br /&gt;
&amp;lt;!--|- ALIGN=&amp;quot;center&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;!--|Your name || || || ||--&amp;gt;&lt;br /&gt;
&amp;lt;!--with an X on the fileformat that you whant--&amp;gt;&lt;br /&gt;
&amp;lt;!--...And update the Total--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
!Total !! 0 !! 4 !! 0!!&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/file_format&amp;diff=2520</id>
		<title>Talk:Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/file_format&amp;diff=2520"/>
				<updated>2006-05-02T19:15:39Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Voting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Format proposals =&lt;br /&gt;
&lt;br /&gt;
About our today's talk on file formats, you can read the [[http://en.wikipedia.org/wiki/Xml XML page on Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
=Parallel Wikis=&lt;br /&gt;
&lt;br /&gt;
I think that the wiki for the project should be only one, we are allowed to put test versions or proposals... ''(Martino)''&lt;br /&gt;
&lt;br /&gt;
I agree. We should probably stick to one wiki because it will get confusing otherwise - sorry, Carlo.&lt;br /&gt;
[[User:Leo|Leo]] 01:52, 27 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
=Comments=&lt;br /&gt;
&lt;br /&gt;
So, as you can see I found few positive aspects for XML and few negative for PO. I don't want to advertise the PO format, so if you know/find aspects that I haven't mentioned, don't hesitate to add them! [[User:Etienner|Etienner]] 17:09, 28 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Partiality, unicode and readability==&lt;br /&gt;
&lt;br /&gt;
It seems like these judgments are a bit &amp;quot;partial&amp;quot;, but that's normal... maybe someone sustaining XML should put his opinion...&lt;br /&gt;
and about readability: I don't think it's really a big problem... if it is, it can be solved by writing a simple &amp;quot;translator&amp;quot; to &amp;quot;human readable&amp;quot;&lt;br /&gt;
Unicode: isn't it a big advantage that XML fully supports unicode? [[User:Cconti|Cconti]]&lt;br /&gt;
&lt;br /&gt;
:I know, the judgments are partial, but this is the great advantage of wiki pages combined with the comunity that uses them: the more it is modified, the more pages get unpartial...&lt;br /&gt;
:For the human readability, you are right.&lt;br /&gt;
:Unicode IS a big advantage, but [http://en.wikipedia.org/wiki/UTF-8 UTF-8] is a unicode encoding, and it appears as last entry in the [[Internationalization/file_format#Supported_character_encodings|list]]. [[User:Etienner|&amp;lt;font color=&amp;quot;Green&amp;quot;&amp;gt;'''Etienne'''&amp;lt;/font&amp;gt;]] &amp;lt;sup&amp;gt;[[User talk:Etienner|'''&amp;lt;font color=&amp;quot;Yellow&amp;quot;&amp;gt;talk&amp;lt;/font&amp;gt;''']]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::My opinion on the whole thing: We do not really need to build hierarchies, which is what XML would be good at.&lt;br /&gt;
::On the other hand, we have an XML parser in Eiffel already, and despite there being gettext under a free license it is probably far better to avoid new external dependancies.&lt;br /&gt;
::If cats could talk they would chose XML-described catfood. In this case.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
We will have to write our own .po parser because ISE will want copyright assignent (or at the least BSD licensing) &amp;amp; we can't just use gettext because there is probably no way to make this an optional addon. [[User:Leo|Leo]] 19:29, 28 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
:I'm not an expert on licensing stuff so I'v copied from the gettext manual and pasted it here.&lt;br /&gt;
&lt;br /&gt;
:Some people wonder if using GNU gettext necessarily brings their package under the protective wing of the GNU General Public License or the GNU Library General Public License, when they do not want to make their program free, or want other kinds of freedom. The simplest answer is &amp;quot;normally not&amp;quot;. &lt;br /&gt;
:The GNU gettext library, i.e. the contents of libintl, is covered by the GNU Library General Public License. The rest of the GNU gettext package is covered by the GNU General Public License. &lt;br /&gt;
:The mere marking of localizable strings in a package, or conditional inclusion of a few lines for initialization, is not really including GPL'ed or LGPL'ed code. However, since the localization routines in libintl are under the LGPL, the LGPL needs to be considered. It gives the right to distribute the complete unmodified source of libintl evehttp://eiffelsoftware.origo.ethz.ch/index.php?title=Talk:Internationalization/file_format&amp;amp;action=editn with non-free programs. It also gives the right to use libintl as a shared library, even for non-free programs. But it gives the right to use libintl as a static library or to incorporate libintl into another library only to free software. [[User:Etienner|Etienner]] 19:49, 28 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
::There exists a [http://developer.postgresql.org/~petere/bsd-gettext/ BSD-licensed gettext implementation] from the NetBSD project. --[[User:Thom|Thom]] 10:09, 29 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Thanks. I'll have a look at it. [[User:Leo|Leo]] 15:15, 29 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Voting==&lt;br /&gt;
&lt;br /&gt;
I think there are now enough information for a voting on the file format...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;0&amp;quot; CELLPADDING=&amp;quot;3&amp;quot; CELLSPACING=&amp;quot;0&amp;quot; ID=&amp;quot;Table3&amp;quot;&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Person!! XML !! PO !! New!!&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Etienner|Etienne]] || || X || ||&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Vpiff|Vpiff]] || || X || ||&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Murbi|Murbi]] || || X || ||&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Put your vote adding this lines:--&amp;gt;&lt;br /&gt;
&amp;lt;!--|- ALIGN=&amp;quot;center&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;!--|Your name || || || ||--&amp;gt;&lt;br /&gt;
&amp;lt;!--with an X on the fileformat that you whant--&amp;gt;&lt;br /&gt;
&amp;lt;!--...And update the Total--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- ALIGN=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
!Total !! 0 !! 3 !! 0!!&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2465</id>
		<title>User:Murbi</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2465"/>
				<updated>2006-05-01T17:46:25Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my [http://n.ethz.ch/student/murbacha/ homepage] at the ETH&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2464</id>
		<title>User:Murbi</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2464"/>
				<updated>2006-05-01T17:44:58Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my homepage at the ETH: http://n.ethz.ch/student/murbacha/&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2463</id>
		<title>User:Murbi</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2463"/>
				<updated>2006-05-01T17:43:39Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my homepage at the ETH&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2462</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2462"/>
				<updated>2006-05-01T17:40:36Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Conclusions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
* Support and elaboration tools for almost all plattforms&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ... (''huge'' advantage)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it the best human readable format&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
* Better integrated and consistent with eiffel syntax&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
 Up to now we don't have already taken a decision, we will submit our recommendation as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2392</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2392"/>
				<updated>2006-04-29T14:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Positive aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
* Support and elaboration tools for almost all plattforms&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ... (''huge'' advantage)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it the best human readable format&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
* Better integrated and consistent with eiffel syntax&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
Up to now we don't have already taken a decision, we will submit our recommendation as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2388</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2388"/>
				<updated>2006-04-29T09:03:11Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Positive aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
* Support and elaboration tools for almost all plattforms&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it the best human readable format&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
Up to now we don't have already taken a decision, we will submitt our recommendation as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2387</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2387"/>
				<updated>2006-04-29T09:00:52Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Positive aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
* Support for almost all plattforms&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it the best human readable format&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
Up to now we don't have already taken a decision, we will submitt our recommendation as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2386</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2386"/>
				<updated>2006-04-29T09:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Positive aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it the best human readable format&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
Up to now we don't have already taken a decision, we will submitt our recommendation as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2385</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2385"/>
				<updated>2006-04-29T08:58:48Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Conclusions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it really human readable&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
Up to now we don't have already taken a decision, we will submitt our recommendation as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2384</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2384"/>
				<updated>2006-04-29T08:58:35Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Conclusions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it really human readable&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
Up to now we don't have already taken a decision, we will submitt our recommendation as soon as possible&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2383</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2383"/>
				<updated>2006-04-29T08:55:13Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Negative aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it really human readable&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
* Do more work as needed (there are already good formats)&lt;br /&gt;
* Long time until it becomes famous&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2382</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2382"/>
				<updated>2006-04-29T08:50:19Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Positive aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* Possibility to make it really human readable&lt;br /&gt;
* So that we can say that we invented a new file format&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2381</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2381"/>
				<updated>2006-04-29T08:48:33Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Positive aspects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
* We don't have to care about licenses&lt;br /&gt;
* possibility to make it really really human readable&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2380</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2380"/>
				<updated>2006-04-29T08:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Format of our Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
* It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
* We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2379</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2379"/>
				<updated>2006-04-29T08:45:35Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Format of our Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
We could give our own extension to the file format for example .et (eiffel translation) or .babe (babylon eiffel) or .eint (eiffel i18n) ...&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2378</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2378"/>
				<updated>2006-04-29T08:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;br /&gt;
* [http://translate.sourceforge.net/wiki/ open source i18n and l10n project]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2377</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2377"/>
				<updated>2006-04-29T08:26:59Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description in this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2376</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2376"/>
				<updated>2006-04-29T08:26:49Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff] (good description at this homepage)&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2375</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2375"/>
				<updated>2006-04-29T08:25:53Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com xliff]&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2374</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2374"/>
				<updated>2006-04-29T08:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* [http://transolution.python-hosting.com| xliff]&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2373</id>
		<title>Internationalization/file format</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/file_format&amp;diff=2373"/>
				<updated>2006-04-29T08:21:10Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* PO Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
Here [[Internationalization|we]] evaluate various file formats used for the translation of programs. For the moment we are considering:&lt;br /&gt;
&lt;br /&gt;
* XML&lt;br /&gt;
* po&lt;br /&gt;
* create an own format&lt;br /&gt;
&lt;br /&gt;
==PO Files==&lt;br /&gt;
&lt;br /&gt;
===Format of PO files===&lt;br /&gt;
&lt;br /&gt;
A PO file has an entry for each string that has to be translated. There are two kind of them, a &amp;quot;normal&amp;quot; one and one that involves plural forms.&lt;br /&gt;
&lt;br /&gt;
====Normal entry====&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of a &amp;quot;normal&amp;quot; entry:&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string&lt;br /&gt;
 msgstr translated-string&lt;br /&gt;
&lt;br /&gt;
Where the ''translator-comments'' are created and maintained exclusively by the translator, this comments have some white space immediately following the #. The other comments are created by the program that created the PO file.&lt;br /&gt;
After the special comment &amp;quot;#,&amp;quot; there can be some ''flags'', as ''fuzzy'' shows that the msgstr string might not be a correct translation, i.e. the translator is not sure of his work.&lt;br /&gt;
The 'untranslated-string' is the untranslated string as it appears in the original program source. The ''translated-string'' is (as the name suggests) the translated string, if there is no translation it is an empty string.&lt;br /&gt;
&lt;br /&gt;
====Plural form entry====&lt;br /&gt;
&lt;br /&gt;
 white-space&lt;br /&gt;
 #  translator-comments&lt;br /&gt;
 #. automatic-comments&lt;br /&gt;
 #: reference...&lt;br /&gt;
 #, flag...&lt;br /&gt;
 msgid untranslated-string-singular&lt;br /&gt;
 msgid_plural untranslated-string-plural&lt;br /&gt;
 msgstr[0] translated-string-case-0&lt;br /&gt;
 ...&lt;br /&gt;
 msgstr[N] translated-string-case-n&lt;br /&gt;
&lt;br /&gt;
===Supported character encodings===&lt;br /&gt;
&lt;br /&gt;
character encodings that can be used are limited to those supported by both GNU libc and GNU libiconv. These are: ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, CP850, CP866, CP874, CP932, CP949, CP950, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, JOHAB, TIS-620, VISCII, UTF-8.&lt;br /&gt;
&lt;br /&gt;
I think they are a lot...&lt;br /&gt;
&lt;br /&gt;
===Po Editors===&lt;br /&gt;
&lt;br /&gt;
* poEdit&lt;br /&gt;
* KBabel&lt;br /&gt;
* Gtranslator&lt;br /&gt;
* LocFactoryEditor (XLIFF and PO editor for Mac OSX)&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Powerful plural handling&lt;br /&gt;
* Format created for translation purpose&lt;br /&gt;
* Easy for humans to read&lt;br /&gt;
* Used by gettext, kbabel, rosetta and many other programs&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* We have to write a PO parser&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Format of XML===&lt;br /&gt;
&lt;br /&gt;
XML is used for example by Trolltech for their .ts files. Here an example of .ts file, generated my lupdate (a tool made by trolltech that extracts translatable text from the C++ source code of the Qt application, see [[Internationalization/tool evaluation|here]] for further information):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation type=&amp;quot;unfinished&amp;quot;&amp;gt;&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And after the translation (for example with Qt Linguist) it would look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE TS&amp;gt;&amp;lt;TS&amp;gt;&lt;br /&gt;
     &amp;lt;context&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;MyExample&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;message&amp;gt;&lt;br /&gt;
             &amp;lt;source&amp;gt;i18n=Internationalization&amp;lt;/source&amp;gt;&lt;br /&gt;
             &amp;lt;translation&amp;gt;i20e=Internazionalizzazione&amp;lt;/translation&amp;gt;&lt;br /&gt;
         &amp;lt;/message&amp;gt;&lt;br /&gt;
     &amp;lt;/context&amp;gt;&lt;br /&gt;
 &amp;lt;/TS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* full support for unicode character encodings&lt;br /&gt;
* There is already a parser in the EiffelBase&lt;br /&gt;
* In trolltech's opinion it's a human readable text&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* Not everybody knows it&lt;br /&gt;
* Microsoft seeks XML-related patents that could restrict the use of XML (there should be a &amp;quot;Very negative aspect&amp;quot; section)&lt;br /&gt;
* In my opinion it's not a human readable text (Fortunately not all human beings are Computer scientists)&lt;br /&gt;
&lt;br /&gt;
==New Format==&lt;br /&gt;
&lt;br /&gt;
===Format of our Format===&lt;br /&gt;
&lt;br /&gt;
It doesn't exist yet, so we don't know how it looks like.&lt;br /&gt;
&lt;br /&gt;
===Positive aspects===&lt;br /&gt;
&lt;br /&gt;
* Free to do what we want&lt;br /&gt;
&lt;br /&gt;
===Negative aspects===&lt;br /&gt;
&lt;br /&gt;
* A new format? Why should we be different?&lt;br /&gt;
&lt;br /&gt;
==Conclusions==&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Gettext manual (for PO files)]&lt;br /&gt;
* [http://librarian.launchpad.net/2395419/it.po Example of a PO file (from rosetta)]&lt;br /&gt;
* [http://news.com.com/2100-1013_3-5146581.html Microsoft and XML]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/XML#Quick_syntax_tour XML syntax description on Wikipedia]&lt;br /&gt;
* [http://doc.trolltech.com/4.1/i18n.html Trolltech i18n]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User_talk:Kiwi&amp;diff=2299</id>
		<title>User talk:Kiwi</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User_talk:Kiwi&amp;diff=2299"/>
				<updated>2006-04-26T22:02:45Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ciao marenda pshppppsphshpshshhsphsphs (il fischio da Lücs)&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2293</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2293"/>
				<updated>2006-04-26T20:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* M2: May 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access information and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
==What is internationalisation?==&lt;br /&gt;
&lt;br /&gt;
The first thing that comes to mind is translation. But internationalisation isn't restricted to enabling translation: it includes making it possible to localise notations (time, date, numbers), measures, paper size, and much more.&lt;br /&gt;
&lt;br /&gt;
==What should we achieve?==&lt;br /&gt;
*Applications should be able to load localized strings at runtime and be provided with localized format strings (e.g date format).&lt;br /&gt;
*Developers can use tools that automagically extract strings from source code and can try to get them translated in a file to distribute along with the application.&lt;br /&gt;
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.&lt;br /&gt;
&lt;br /&gt;
==Who should do the achieving?==&lt;br /&gt;
It is clear that our [[User:Carlo|Glorious Leader]] should be credited with any achieving. However he will have to delegate things somewhat, as he is is not [http://en.wikipedia.org/wiki/Aleksei_Grigorievich_Stakhanov Stakhanov].&lt;br /&gt;
We can probably divide the project into the following parts, modulo preliminary research:&lt;br /&gt;
&lt;br /&gt;
''This should be probably be completed after we have got past M1''&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M2: May 5 ==&lt;br /&gt;
* feasibility: look at string classes (unicode and not) and how strings are used in EiffelStudio (creation, composition) ''(Ivano, Carlo)''&lt;br /&gt;
* [[Internationalization/file_format|file format]]: compare existing file formats for dictionaries ''(Etienne, Andreas)''&lt;br /&gt;
* [[Internationalization/tool_evaluation|tool evaluation]]: list and compare existing translation tools ''(Christian, Martino)''&lt;br /&gt;
&lt;br /&gt;
==M3: May ??? ==&lt;br /&gt;
* design:&lt;br /&gt;
** file formats (files holding translated strings)&lt;br /&gt;
** code parser (extract strings to be translated from source code)&lt;br /&gt;
** globality (how to implement, the object should be shared between all modules)&lt;br /&gt;
* compile a list of basic features to provide (e.g. date/time format, system locale)&lt;br /&gt;
* collaborate with the [[Vision2_and_Unicode]] team&lt;br /&gt;
&lt;br /&gt;
= Possible future developments =&lt;br /&gt;
&lt;br /&gt;
=Relevant Links=&lt;br /&gt;
==What other people have done==&lt;br /&gt;
[http://doc.trolltech.com/4.1/i18n.html internationalisation with QT]&lt;br /&gt;
&lt;br /&gt;
[http://oss.erdfunkstelle.de/kde-i18n/tiki-index.php?page=miniHowtoGui howto for internationalisation of KDE programs ]&lt;br /&gt;
&lt;br /&gt;
[http://l10n.kde.org/docs/translation-howto/ another KDE howto (doesn't Gnome do any internationalisation?)]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Fellmann]]&lt;br /&gt;
* [[User:kiwi| Ivano Somaini]]&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* [[User:cconti | Christian Conti]]&lt;br /&gt;
* [[User:Trosim |Martino Trosi]]&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2215</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2215"/>
				<updated>2006-04-25T21:20:38Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access information and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
==What is internationalisation?==&lt;br /&gt;
&lt;br /&gt;
The first thing that comes to mind is translation. But internationalisation isn't restricted to enabling translation: it includes making it possible to localise notations (time, date, numbers), measures, paper size, and much more.&lt;br /&gt;
&lt;br /&gt;
==What should we achieve?==&lt;br /&gt;
*Applications should be able to load localized strings at runtime and be provided with localized format strings (e.g date format).&lt;br /&gt;
*Developers can use tools that automagically extract strings from source code and can try to get them translated in a file to distribute along with the application.&lt;br /&gt;
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.&lt;br /&gt;
&lt;br /&gt;
==Who should do the achieving?==&lt;br /&gt;
It is clear that our [[User:Carlo|Glorious Leader]] should be credited with any achieving. However he will have to delegate things somewhat, as he is is not [http://en.wikipedia.org/wiki/Aleksei_Grigorievich_Stakhanov Stakhanov].&lt;br /&gt;
We can probably divide the project into the following parts, modulo preliminary research:&lt;br /&gt;
&lt;br /&gt;
''This should be probably be completed after we have got past M1''&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M2: May 5 ==&lt;br /&gt;
* feasibility (look at string classes (unicode and not) and how strings are used in EiffelStudio (creation, composition)) ''Ivano, Carlo''&lt;br /&gt;
* [[Internationalization/file_format|file format]] (compare existing file formats for dictionaries)  ''Etienne, Andreas H.''&lt;br /&gt;
* tool evaluation (list and compare existing translation tools)&lt;br /&gt;
&lt;br /&gt;
==M3: May ??? ==&lt;br /&gt;
* design:&lt;br /&gt;
** file formats (files holding translated strings)&lt;br /&gt;
** code parser (extract strings to be translated from source code)&lt;br /&gt;
** globality (how to implement, the object should be shared between all modules)&lt;br /&gt;
* compile a list of basic features to provide (e.g. date/time format, system locale)&lt;br /&gt;
* collaborate with the [[Vision2_and_Unicode]] team&lt;br /&gt;
&lt;br /&gt;
=Relevant Links=&lt;br /&gt;
==What other people have done==&lt;br /&gt;
[http://doc.trolltech.com/4.1/i18n.html internationalisation with QT]&lt;br /&gt;
&lt;br /&gt;
[http://oss.erdfunkstelle.de/kde-i18n/tiki-index.php?page=miniHowtoGui howto for internationalisation of KDE programs ]&lt;br /&gt;
&lt;br /&gt;
[http://l10n.kde.org/docs/translation-howto/ another KDE howto (doesn't Gnome do any internationalisation?)]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Fellmann]]&lt;br /&gt;
* Ivano Somaini&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* Christian Conti&lt;br /&gt;
* [[User:Trosim |Martino Trosi]]&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2197</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2197"/>
				<updated>2006-04-25T16:16:14Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access informations and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* design:&lt;br /&gt;
** file formats (files holding translated strings)&lt;br /&gt;
** code parser (extract strings to be translated from source code)&lt;br /&gt;
** globality (how to implement, the object should be shared between all modules)&lt;br /&gt;
* compile a list of basic features to provide (e.g. date/time format, system locale)&lt;br /&gt;
* collaborate with the [[Vision2_and_Unicode]] team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Frank Fellmann]]&lt;br /&gt;
* Ivano Somaini&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* Christian Conti&lt;br /&gt;
* Martino Trosi&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2192</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=2192"/>
				<updated>2006-04-25T14:42:17Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access informations and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* design:&lt;br /&gt;
** file formats (files holding translated strings)&lt;br /&gt;
** code parser (extract strings to be translated from source code)&lt;br /&gt;
** globality (how to implement, the object should be shared between all modules)&lt;br /&gt;
* compile a list of basic features to provide (e.g. date/time format, system locale)&lt;br /&gt;
* collaborate with the [[Vision2_and_Unicode]] team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Fellmann]]&lt;br /&gt;
* Ivano Somaini&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* Christian Conti&lt;br /&gt;
* Martino Trosi&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2191</id>
		<title>User:Murbi</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Murbi&amp;diff=2191"/>
				<updated>2006-04-25T14:40:58Z</updated>
		
		<summary type="html">&lt;p&gt;Murbi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm trying to make the step in the wiki&lt;/div&gt;</summary>
		<author><name>Murbi</name></author>	</entry>

	</feed>