Internationalization (i18n) of Mifos
Notice: As of 7/11/2008 this page is out of date and is in the progress of being updated to reflect current status with v1.1
Version 1.1 priorities and stories for internationalization
Internationalization (i18n) is the process of designing an application so that it can be adapted to various languages and regions. Mifos system will be designed to meet the below mentioned localization (l10n) needs.
The 1.1 effort scope these needs for supporting localization into Spanish and French (for Adelante and ENDA).
Mifos is be sensitive to Locale which is a combination of a pecific language and geographic region. For example sp_HN - spanish(Honduras) or fr_TN - french(Tunisia).There are two different locales definitions:
- The Main Locale - controls some system wide parameters such as currency. This is set at configuration time and is not designed to be changed.
- The User Locale - This will be defined as a user preference and will allow seeing the application directions and messages in a language that is different than the main locale. The default user locale is the main locale.
All of Mifos components that are internationalized will change based on the Main Locale of the installation. Only components are internationalized to additionally support User Locale will change based on the User Locale.
4.1 Country
The country is defined by the main locale. MFI can belong to only one country. This should be specified during installation and should not be changed thereafter. Currency will be dependant on the country chosen. Time zone will be specific to the country that the MFI belongs to.
4.2 Currency
Currency will be determined by the Main Locale.
- Currently, Mifos will support only a single currency in the application. Each MFI will have a single currency depending on the country of MFI.
- For a currency, rounding rule (round-up or round-down) and the amount to be rounded to, will be specified.
- If rounding rule is left as null, the system will not round the figures.
- Note- In loans, savings and client accounts, the amounts remaining after rounding should be adjusted in the last installment. Amount remaining after rounding the last installment should be added to a 999 account in the end.
4.3 Time Zone
- The country is defined by the main locale. MFI can belong to only one time zone. System will store and display all operations/transactions in server time zone.
- Question: Is there need to for this to be different than the server time ?
4.4 Date, Time and Number Formating
- The date and times displayed are always the dates and times stored in the database in the Main locales' Time Zone.
- Dates and times are be formatted based on the user locale
- Question: what formats are to be supported / are their multiple formats supported per locale ?
4.5 User Locale Support
- A Mifos installation will be capable of support additional locales in addition to the Main Locale
- Users will have their User Locale stored in their profile. The default value will be the Main Locale.
- The Login page will be displayed in the Main Locale. Once the user logs in the display will change based on her/his User Locale.
- The User Locale will control the display of:
- Labels- Includes attributes, headers, button names and links
- Instructional text
- Messages (errors, warnings
- The locales available in the system will be set at configuration time.
4.6 Data
- The general rule is that everything that ships with Mifos out of the box (even if it is stored in the database or XML files) should be internationalized (and therefore localizable).
- An open question is what data will also support User Locale. The current proposal is the following:
- Mifos System Data (data required by Mifos and cannot be removed by the user) – will support User Locale.
- Courtesy User Data - delivered as a courtesy for the user to manipulate at will – not support multi-locale
- Data that is entered by the MFI will not support User Locale, i.e. user’s will see the exact same thing whatever their User Locale is. This includes the customization fields & labels. For example when switching from an English Locale to Spanish the term ‘client’ will be shown as ‘cliente’. If the MFI were to customize the label 'client' to be replaced by ‘customer’, the Spanish user will see ‘customer’.
- User entered data will be stored in the language it is entered by user and the system will assume that data entry is done in user’s locale. System will not convert these values to MFI language. For example, if a note is entered in English and another is entered in Spanish, the “All notes” page will have notes in two different languages.
- Search- System will search only for the name entered in the search box and will search the complete database for the matches
- Duplicity check on names will consider all the names in the database
- Sorting- System will sort as per MFI language
(also see Mifos Localization)
4.7 Open issues
- What about Reports ? Are they changed by User Locale ?
- List of date formats to be supported
- List of time zones to be supported
- Is there any intelligence around time zone in version 1?
4.8 Out of Scope for version 1.1
- Character set other than those included in English/Spanish/French
- Multi currency, multiple time zones support for an MFI- The design should allow for multiple currencies after version 1.
- Currency conversion
- Localization of images, UI rendering and style- Localization of images and css will be supported by design
- System should handle comma as a decimal separator for euros.
- Localization of numerals
- Conversion and handling of numerals in different languages is out of scope. System will assume numerals to be in English always.
- Variation of character length of data fields as per the language.
- Calendar other than Gregorian calendar
4.9 Other
- To the extent possible Mifos should conform and utilize standard locale functions and definitions built into Java for formatting currency, numbers, dates and times. This will help keep the i18n extensible.