= !MapGuide RFC 18 - Localization = This page contains a change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||March 7, 2007|| ||Last Modified||Bruce Dechant [[Timestamp]]|| ||Author||Bruce Dechant|| ||RFC Status||adopted|| ||Implementation Status||Completed|| ||Proposed Milestone||1.2|| ||Assigned PSC guide(s)||Bruce Dechant|| ||'''Voting History'''||March 7, 2007|| ||+1||Bruce, Tom || ||+0||Jason, Andy || ||-0|| || ||-1|| || == Overview == The !MapGuide server currently uses the "C" locale when it starts which is not very useful for end users that are running !MapGuide in a non-English environment as this is a very restrictive locale. == Motivation == The reason for adding better localization support is for better support of end-users that are not using English. This will allow sorting and using of Upper/Lower string functions on non-English data. == Proposed Solution == Add a new server configuration property "Locale" that can be set to whatever locale the end users wants. If this new property is blank or does not exist in the serverconfig.ini file then the server will default to the system locale. The following is the format used for the Locale property: lang[_country_region[.code_page]] Note: The values you can specify for the locale are platform specific. Windows Examples: * English * English_United States * English_United States.1252 * French_France.1252 Linux Examples: * en_US * en_US.iso88591 * en_US.iso885915 * en_US.utf8 * en_ZA * en_ZA.iso88591 Please see the platform developer documentation for the setlocale() API for more information on the locale examples. For more information on Windows: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp For more information on Linux: http://linux.about.com/library/cmd/blcmdl3_setlocale.htm == Implications == The following setlocale() API categories will be set to the locale specified in the server configuration "Locale" property: * LC_COLLATE * LC_CTYPE * LC_MONETARY * LC_TIME Note: The category LC_NUMERIC is already using the "C" locale and will not be changed. The current server configuration property "!DefaultLocale" will be renamed to reflect what the property really does. The proposed new name is "!DefaultMessageLocale" because the property is only for the locale of messages returned to clients that have not specified their locale themselves. The format for this property will remain the same, ie: ISO639-1 name. Backwards compatibility is partially maintained because if the user is already using "!DefaultLocale" with a value of "en" for English messages the new "!DefaultMessageLocale" has a value of "en" by default. However, if they have changed to some other value they will be affected and will need to update their configuration. == Test Plan == Run unit tests on English and non-English locales. == Funding/Resources == Autodesk to provide resources / funding.