Difference between revisions of "Internationalization"

m
(removed old milestones, added status)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Category:Projects]]
 
[[Category:Projects]]
 
[[Category:Internationalization]]
 
[[Category:Internationalization]]
[[Category:Internationalization SA project]]
 
 
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]
 
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]
  
Line 9: Line 8:
  
 
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.
 
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.
 +
 +
===Brief history===
 +
 +
Orginally the internationalisation (i18n) project was started as a required project for an ETH Software Architecture course.
 +
The result was less then perfect; pages referring to this first version have been given an 'SA' prefix.
 +
Some members of this SA project team decided to rewrite the library as a semester project. Pages on the wiki not prefixed with 'SA' are either applicable to both or to the semester project.
  
 
==What is internationalisation?==
 
==What is internationalisation?==
Line 19: Line 24:
 
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.
 
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.
  
=Milestones=
+
=== Specific goals of the semester project ===
  
==M2: May 5 ==
+
The new i18n library should provide translation as well as date, time, value and currency formatting.
* [[Internationalization/feasibility|feasibility]]: look at string classes (unicode and not) and how strings are used in EiffelStudio (creation, composition) ''(Ivano, Carlo, Leo, Hong)''
+
It should run on at least windows (with and without .NET) and linux.
* [[Internationalization/file_format|file format]]: compare existing file formats for dictionaries ''(Etienne, Andreas)''
+
* [[Internationalization/tool_evaluation|tool evaluation]]: list and compare existing translation tools ''(Christian, Martino)''
+
  
==M3: June 13 ==
+
=Status=
* write an initial .po to start translating and have a .mo for testing ''(Leo, Carlo)''
+
* [[Internationalization/mo parser|mo parser]]: extract translated strings from .mo files ''([[User:etienner|Etienne]], [[User:Trosim|Martino]])''
+
* [[Internationalization/translation function|translation function]]: map hard-coded strings to translated strings ''(Martino)''
+
** find a solution with templates
+
** globality: how to implement, the object should be shared between all modules (see [[Internationalization/class_structure|class structure]])
+
** find out how to use plurals (see [[Internationalization/plural_forms|plural forms]])
+
* Test unicode support in Vision2. [See test application in the [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/library/i18n/example/ SVN repository]]
+
* compile a [[Internationalization/l10n_features|list of basic features]] to provide (e.g. date/time format, system locale) ''[deferred]''
+
  
==M4: June 28 ==
+
As of 16 October 2006 we have all features working and almost all tested.  
* internationalization of EiffelStudio: surround strings with our functions
+
Some difficulty exists with the windows installation procedure. The linux version works without problems.
* [[Internationalization/translation|translation]] of EiffelStudio in some languages, for demo purposes (Italian, German, Chinese, ...) (see [http://slhk.ath.cx/projects/estudio/ pootle])
+
* [[Internationalization/code_parser|code parser]]: extract strings to be translated from source code and generate .pot file ''(Leo)''
+
* language selection: add an entry in the preferences system
+
* create a function to detect current environment language and settings (aka [[Internationalization/locale|locale]])
+
 
+
==M5: July ?? ==
+
* Refactoring of whole library
+
* Use our library for EiffelStudio
+
* Clean up Wiki and improve Developer manual
+
* Add support for other aspects of localisation - dates, number format etc. ''(possibly we can defer this a bit)''
+
** Compile a [[Internationalization/l10n_features | list of basic features]] to provide (e.g. date/time format, system locale) ''(deferred from M3)''
+
 
+
= Possible future developments =
+
 
+
* collaborate with the [[ESWizard]] team. Create wizards for programs with translation facilities.
+
  
 
= Documentation =
 
= Documentation =
  
* [[Internationalization/requirements_specification|Requirements specification]]
+
* [[Internationalization/User_guide|User guide]]: how to use the i18n library
* [[Internationalization/developer_manual|Developer manual]]
+
* [[Internationalization/Developer_guide|Developer guide]]: developer manual for the i18n library
* [[Internationalization/obstacles|Obstacles]]: why can't achieve all of our goals
+
* [[Internationalization/obstacles|Obstacles]]: setbacks we have encountered
 
+
= l10n: completed and on the work =
+
 
+
{| border="0" cellspacing="3" cellpadding="5" align="center"
+
!'''Language'''
+
!'''Status'''
+
|-
+
|Arabic
+
|Active
+
|-
+
|Chinese
+
|Active
+
|-
+
|Italian
+
|Active
+
|-
+
|Rhaeto-Romanic
+
|Active - Ready for use
+
|}
+
  
 
=Relevant Links=
 
=Relevant Links=
Line 93: Line 54:
 
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
 
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
  
 +
== Semester project ==
 +
 +
* [[User:leo| Leo Fellmann]]
 +
* [[User:etienner|Etienne Reichenbach]]
 +
* [[User:Mingmei|Hong Zhang]]
 +
* [[User:Trosim|Martino Trosi]]
 +
* Supervisor: [[User:Schoelle| Bernd Schoeller]]
 +
 +
 +
== Old SA project team ==
 
* Project Leader: [[User:Carlo|Carlo Vanini]]
 
* Project Leader: [[User:Carlo|Carlo Vanini]]
 
* [[User:leo| Leo Fellmann]]
 
* [[User:leo| Leo Fellmann]]
Line 98: Line 69:
 
* [[User:murbi|Andreas Murbach]]
 
* [[User:murbi|Andreas Murbach]]
 
* [[User:etienner|Etienne Reichenbach]]
 
* [[User:etienner|Etienne Reichenbach]]
* [[User:hong |Hong Zhang]]
+
* [[User:Mingmei |Hong Zhang]]
 
* [[User:cconti | Christian Conti]]
 
* [[User:cconti | Christian Conti]]
 
* [[User:Trosim |Martino Trosi]]
 
* [[User:Trosim |Martino Trosi]]
 
* [[User:Schoelle| Bernd Schoeller]]
 
* [[User:Schoelle| Bernd Schoeller]]

Latest revision as of 17:07, 17 October 2006

Our Eiffel Tower of Babylon

Overview

"Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language." -- gettext doc

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.

Brief history

Orginally the internationalisation (i18n) project was started as a required project for an ETH Software Architecture course. The result was less then perfect; pages referring to this first version have been given an 'SA' prefix. Some members of this SA project team decided to rewrite the library as a semester project. Pages on the wiki not prefixed with 'SA' are either applicable to both or to the semester project.

What is internationalisation?

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.

What should we achieve?

  • Applications should be able to load localized strings at runtime and be provided with localized format strings (e.g date format).
  • 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.
  • Users will still be unhappy and get depressed but in their own language, which we can all agree is a significant step forward.

Specific goals of the semester project

The new i18n library should provide translation as well as date, time, value and currency formatting. It should run on at least windows (with and without .NET) and linux.

Status

As of 16 October 2006 we have all features working and almost all tested. Some difficulty exists with the windows installation procedure. The linux version works without problems.

Documentation

Relevant Links

Introduction to i18n

What other people have done

internationalisation with QT

howto for internationalisation of KDE programs

another KDE howto (doesn't Gnome do any internationalisation?)

Team

Everyone interested in this project is welcome to join our mailinglist es-i18n@origo.ethz.ch

Semester project


Old SA project team