= Internationalisation = The original language of the Sahanapy user interface, source code labels and comments, and the Wiki pages is '''English (international)'''. No contributions can be accepted without being at least translated to english. If you need help to translate your contents to english, please contact the [http://wiki.sahana.lk/doku.php?id=translate:home "Sahana Localization team"]. However, translation to other languages is highly appreciated - please contact the Localization team for advice. == Web2py localization engine == * T() function performs dictionary lookups (similar to GNU/gettext _()), see [http://mdp.cti.depaul.edu/examples/global/vars/T here] for example * the dictionaries are located in the languages subfolder of the application * dictionaries can be translated using the web2py web interface (RAD mode) * suggest increasing the timeout from the default 10 minutes: {{{python web2py.py --timeout=120 ...}}} * To select a language via UI (instead of browser options): http://groups.google.com/group/web2py/browse_thread/thread/dda7575120864104 * NB We still need a Right-to-Left UI solution == Pootle/translate toolkit and web2py dictionaries == * [http://translate.sahana.lk "Sahana Pootle server"] as online facility for collaboration, translation refinement and workflow control * web2py translation dictionaries can be converted into PO files and vice versa, e.g. using: * [http://pub.nursix.org/translate/web2py2po.tar.gz "web2py2po"] scripts (part of the [http://translate.sourceforge.net/wiki/toolkit/py2web2po "Translate Toolkit"]) == Wiki pages translation == * translated pages with ISO 639-2 language code extension (original english page = no extension), e.g. * '''original page:''' trac.sahanapy.org/wiki/BluePrintInternationalisation * '''german translation:''' trac.sahanapy.org/wiki/BluePrintInternationalisation'''/de''' * insert ![[TranslatedPages]] macro to display a list of available translations of a page (at best at bottom of page) == Other options == * [http://babel.edgewall.org Babel] - good toolkit to combine with GNU/gettext * [https://help.launchpad.net/Translations LaunchPad Translations] - access to Ubuntu community * [http://code.google.com/apis/ajaxlanguage GoogleTranslate] can be used to help translators get started, but needs humans to make cultural and linguistic refinements * [http://www.google.com/transliterate/arabic/about_ar.html Google ta3reeb] - Arabic 'keyboard' using Latin characters === Notes === * If needing to be able to handle alternate word order with dynamic strings then wrap in XML(): * http://groups.google.com/group/web2py/browse_thread/thread/ccacbdc5286e5c56 * Databases store Unicode characters as 2+ bytes, so string, length=20 may limit to just 10 characters: * http://groups.google.com/group/web2py/browse_thread/thread/e3927c8a333c9abe * UTF-8 encoding in Controllers: * http://groups.google.com/group/web2py/browse_thread/thread/8ae1a2f56a76f2af * Working across Timezones: * http://groups.google.com/group/web2py/browse_thread/thread/1df15b5238c157d1 ---- BluePrints [[TranslatedPages]]