Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Languages.

Development:Languages: Difference between revisions

From MoodleDocs
mNo edit summary
m (initial current issues)
Line 1: Line 1:
{{Moodle 2.0}}
{{Moodle 2.0}}
* '''PROJECT STATE:''' Planning
* '''PROJECT STATE:''' Research and planning
* '''MAIN TRACKER ISSUE''': n/a
* '''MAIN TRACKER ISSUE''': n/a
* '''DISCUSSION AND COMMENTS''': n/a
* '''DISCUSSION AND COMMENTS''': n/a
Line 8: Line 8:
This is an initial proposal of changes to the language strings processing in Moodle.
This is an initial proposal of changes to the language strings processing in Moodle.


== Introduction ==
== Current issues ==


...
# '''String files are not branched'''. We must keep all strings from all branches in place for backwards compatibility and we are unable to easily clean up language packs. Some say the branching and merging is too big toast for our translators.
# '''Plural forms'''. We are unable to handle plurals at all. For example, handling [http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html plural forms in gettext] is traditional, well tested and robust way. MDL-12433 by Sam Marshal shows alternative approach based on logical expressions.
# '''Strings can't be modified'''. It is difficult to notify translators that some string was modified (expanded, fixed, changed). The current work around it the policy of adding another string with the same suffixed name (like 'license2'). Would be nice if such strings were tagged/highlighted in the translation UI.
# '''We do not use standard formats'''. Translators can't use specialized tools for translation (PO/gettext editors, community translation portals). Also, I am not aware of any benchmarking showing the performance differences between out native $string[] format compared to, for example, standard .po format.
# '''More syntax checks are required''' so the translators do not brake Moodle functionality (see MDL-12433)


== Goals ==
== Goals ==
Line 30: Line 34:
This is the list of projects, resources and tools being explored
This is the list of projects, resources and tools being explored


* [http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html Plural forms in gettext] - traditional, well tested and robust way of handling plurals
* [http://en.wikipedia.org/wiki/XLIFF XLIFF] - XML Localization Interchange File Format
* [http://en.wikipedia.org/wiki/XLIFF XLIFF] - XML Localization Interchange File Format
* [http://translate.sourceforge.net/wiki/virtaal/index Virtaal] - promising, we could have XLIFF <-> .php conversion
* [http://translate.sourceforge.net/wiki/virtaal/index Virtaal] - promising, we could have XLIFF <-> .php conversion
* [http://launchpad.net/+tour/translation Launchpad] - translation portal used by Ubuntu and many other projects. Would require BSD licensing, therefore IMO not suitable as we could not import our current GPL'ed translation. Seems to be pretty slow during the process.
* [http://launchpad.net/+tour/translation Launchpad] - translation portal used by Ubuntu and many other projects. Would require BSD licensing, therefore IMO not suitable as we could not import our current GPL'ed translation. Seems to be pretty slow during the process.
== Proposal ==


== See also ==
== See also ==
* [http://live.gnome.org/TranslationProject/GitHowTo How to use Git for GNOME translators]
* [http://live.gnome.org/TranslationProject/GitHowTo How to use Git for GNOME translators]
[[Category:Language]]

Revision as of 20:52, 20 November 2009

Moodle 2.0


  • PROJECT STATE: Research and planning
  • MAIN TRACKER ISSUE: n/a
  • DISCUSSION AND COMMENTS: n/a
  • AUTHOR: David Mudrak
  • TIME NEEDED FOR IMPLEMENTATION: unknown

This is an initial proposal of changes to the language strings processing in Moodle.

Current issues

  1. String files are not branched. We must keep all strings from all branches in place for backwards compatibility and we are unable to easily clean up language packs. Some say the branching and merging is too big toast for our translators.
  2. Plural forms. We are unable to handle plurals at all. For example, handling plural forms in gettext is traditional, well tested and robust way. MDL-12433 by Sam Marshal shows alternative approach based on logical expressions.
  3. Strings can't be modified. It is difficult to notify translators that some string was modified (expanded, fixed, changed). The current work around it the policy of adding another string with the same suffixed name (like 'license2'). Would be nice if such strings were tagged/highlighted in the translation UI.
  4. We do not use standard formats. Translators can't use specialized tools for translation (PO/gettext editors, community translation portals). Also, I am not aware of any benchmarking showing the performance differences between out native $string[] format compared to, for example, standard .po format.
  5. More syntax checks are required so the translators do not brake Moodle functionality (see MDL-12433)

Goals

  1. Do not reinvent the wheel. Keep "do one thing and do it well" principle. Keep it simple and stupid.
  2. ...

Use cases

  1. Developers add new strings to the core
  2. Translators translate untranslated core strings and publish their work
  3. Admins want to locally modify the language pack
  4. Contributors add new string to the contributed code
  5. Translators translate untranslated contrib strings and publish their work
  6. ...

Research

This is the list of projects, resources and tools being explored

  • XLIFF - XML Localization Interchange File Format
  • Virtaal - promising, we could have XLIFF <-> .php conversion
  • Launchpad - translation portal used by Ubuntu and many other projects. Would require BSD licensing, therefore IMO not suitable as we could not import our current GPL'ed translation. Seems to be pretty slow during the process.

Proposal

See also