Wiki Markup |
---|
h1. Localizing Mifos into Other Languages We're looking for volunteers to both localize Mifos and improve our documentation. We also welcome volunteers to identify and implement software changes that would improve the localization process. We are now using Pootle to allow volunteers to create translations using a web application. For more information on our current approach, see: * OnlineTranslationHOWTO [Online Translation HOWTO] * PMOnlineTranslationHOWTO * AdminOnlineTranslationHOWTO [PM Online Translation HOWTO] * [Admin Online Translation HOWTO] h2. Technical Background Default strings are in .properties files, translatable strings are in .po files. Language-specific Java .properties translated string bundles are automatically generated during the build. Each module has their own properties file containing all the strings used in that module. For example BulkEntryUIResources.properties contains the line: {quote}{noformat}bulkEntry.revnsub=Review & submit {noformat} {quote} The Spanish translation in es/BulkEntryUIResources.po has the translated message: {quote}{noformat}#: bulkEntry.revnsub msgid "Review & submit" msgstr "Revise & enviar" {noformat} {quote} Values for look-up options and configured labels are in the database (set from latest-data.sql on new installations). These will also have to be translated (and checked into latest-data in subversion). The relevant tables have the ability to have different versions of these labels for different languages - so translated versions of these labels should be [submitted|-developers-technical-orientation-code-submission-process] for inclusion in Mifos (also see [Database Standards|-developers-technical-orientation-coding-standards#databasestandards] . Also see [How to Configure Mifos|-knowledge-support-for-common-tasks-deploying-mifos-configuring-mifos] From the functional perspective - some things to keep in mind: \+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\+ * Most users will generally want their numbers displayed in international numbers {{(0123456789)}}, not localized into Chinese {{(零一二三四五六七八九十)}}, Eastern Arabic {{(٠١٢٣٤٥٦٧٨٩)}}, Devanagari {{(०१२३४५६७८९)}}, etc. This may change, and one future enhancement might be to allow an MFI to configure localization of numbers separately, but initially, this isn't a requirement. * The same/similiar phrases are repeated across the various modules. We've tried to keep phrasing consistent across the properties files. For example, when a desired value is not selected for a field, we don't want the application to say "Please select Loan Officer" and "Please specify Loan Officer" in another. I'm sure there will be inconsistencies found (please fix\!), but when translating the various properties files, we want to try to keep phrasing consistent across the site. * Please review the functional specification for both language and how users can select their user-preferred language. * Any other functional questions-\- feel free to post them to the mailing list or send them to emilytucker @ dev.java.net. From a technical perspective, some things to keep in mind: \+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\+ * [Working with Composite Messages|http://www.w3.org/International/articles/composite-messages] \- Mifos has some of these -- look for {0} and the like in the .properties files for one mechanism by which we do it. * [Re-using Strings in Scripted Content|http://www.w3.org/International/articles/text-reuse] (another good article which covers similar subjects). * Related to the articles above, please refer to the thread on the mifos-developer list "Issues with Localizing Mifos" * Appropriate entries will need to be made into mifosmasterdata.sql. h2. Localization/Translation Tools and Approaches It is useful to develop a common glossary of terms that can be shared and reused during translation. In computer aided translation (CAT) this is referred to as the Translation Memory. There are two open source CAT tools that would be worth exploring: * [OmegaT|http://www.omegat.org/omegat/omegat_en/omegat.html] * [Open Language Tools|https://open-language-tools.dev.java.net] The goal of these tools is to help speed translation and to aid in consistency of translation. They will both work for java ".properties" files and for documentation (though some conversion may be necessary). To make use of tools like these for translating text in the database would require some work to implement an import/export capability into a format that can be used by these tools. One approach to streamlining the localization process would be to move most or all of the text requiring translation from the database and into .properties files so that translation can be done on a uniform file set. There are also some simpler tools available just for editing .properties files such as: * [I18NEdit|http://www.cantamen.de/i18nedit.php?lang=en] * [https://prbeditor.dev.java.net/prbeditor] The .properties tools won't help with translating documentation and don't support the idea of a standard translation memory. One other point to be aware of is that it is likely that there will be some code changes (java & JSP) required to make translations show up completely correctly even after the text itself has been translated. Once the text has been translated, then it will be clearer from looking at the application web pages where further work is needed. h1. See Also * At MIFOSHowToHelp there are a list of a few other things which might be worth translating, although those are of significantly lower priority. * [Localization|-knowledge-functional-specs-localizing-of-mifos] \- functional specification * MifosLocalizationStories [Mifos Localization Stories] is a list of stories related to the localization effort. * [Mifos Internationalization Project] tracks work done on Internationalization to prepare Mifos for localization |
Page Comparison
General
Content
Integrations