Improve Mifos Localization

Background

Currently, some of the text you see in Mifos are "strung" together with different strings. This makes translating Mifos very hard since not all languages are like English in grammar. We need to update this by replacing these phrases with one string so that they can be translated better.

Status - Available

Round 1 of cleanup completed by Goldman Sachs CTW team. Patches submitted and accepted by Jakub in Jira.  Still strings to be cleaned up.

Contact

Please email the mifos-developer list if you are interested in helping on this project.

Mentor

Adam Monsen

Current Volunteer(s)

Terminology

Time Estimate

  • 4-8 hours per JSP. includes:
    • verifying error messages appear and are properly translated
    • cleaning up any unused key/value pairs in the resource bundle used by that JSP
    • maintaining automated tests
      • adding new tests if necessary
    • running all automated tests
    • maintaining action classes if necessary

Prerequisite experience

  • Java, JSP, Struts, i18n
  • familiarity with or eagerness to learn Maven

Details

Comb through JSP's and fix areas where strings are strung together to create a phrase instead of one string.

Example from admin.jsp trunk r15854  :

<mifos:mifoslabel name="admin.Manage" /> <mifos:mifoslabel name="admin.accounts" />

is used to create the string "Manage accounts". Note the word order: verb, subject. In some languages the correct word order might be subect, verb, and this ordering is not achievable since the the ordering of "Manage" and "account" is fixed. To fix this JSP, one would

  • look for the string "Manage accounts" in adminUIResources.properties
  • if the string exists, use it! If not, create a new key/value pair
  • run locale_sync.sh (a Bash script) to propagate changes to default (English) string bundles
    • requires a Bash shell, which means you need Cygwin on Windows, Ubuntu, or Mac OS X
    • requires Python and Template Toolkit

Note that some strings are actually pulled out of the database, making composition into single phrases impossible. This is because Mifos currently supports customizing certain words and phrases (see Admin → Define Labels in the Web interface). We plan to remove this customization mechanism and instead allow creation of custom string bundles. For instance, if a particular bank uses Mifos in the French locale, they could make their own string bundle ending in fr_FR_BankSpecificVariant1.properties, and designate a place in Mifos Configuration Locations where Mifos will search to apply these custom bundles.

Steps

  • Read the Developer Kick Start page for information on contributing and getting set up. Follow the steps under
  • Create small patches against the latest trunk revision. Ideally, submit a small patch after every working session.
  • Every patch must be applicable to the trunk.
  • "mvn clean install" in the top-level directory of your Mifos working copy must succeed for every patch.
  • Post the patch on the mifos-developer mailing list.
  • Describe what changes you made and why, following the CommitLogGuide wiki page.
  • If the patch requires moving or deleting files or directories, mention this in your post.
  • Patches must meet or exceed all requirements on VettingPatches
  • If you are blocked, post questions (and an in-work patch, if applicable) to (a) the IRC channel ( http://pastey.net can be used for sharing patches) and/or (b) the mifos-developer mailing list.
  • For any code changed which is not covered by tests: (a) consider creating a unit test (see AccountingRulesTest for an example). If a unit test is not practical, consider creating an integration test or an acceptance test.

See also

  • MIFOS-2989, MIFOS-4633, MIFOS-4266