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 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.