Hi guys,
I have been thinking about localization for bit and thought the traditional
localization method using .properties file and ResourceBundle wouldn't be
much of help considering the way we have components. There is also a known
set of disadvantages using ResourceBundles [1].

Use cases I see are below
  1) Localize the product based on a configuration
  2) Localize components based on user preference.

Both these aspects depends on the component - for example API Store should
support a way for the user to view the store in different language. For IS
- it should send emails in the user's preferred language. For CDM - the
license for agents should be presented to the user on preferred language.

So my proposal is to make a LocalizationManagerUtil using registry as the
persistence for the locale files. This Util class will have below 2 methods

1) getLocalizedFile(String fileName, Locale locale)
2) getLocalizedString(String namespace, String key, Locale locale)

getLocalizedFile() method will be used to load templates/files that a
specific to languages - examples would be terms and conditions, policies,
email templates etc. Behind the scene these will be stored in the registry
and served based on the localization requested.

getLocalizedString() method will be used to load strings that are presented
to the users. This method takes a namespace so that we can partition it
based on a component/product.

Also these methods will use the global locale in case the locale is not
sent to the method. Few questionable aspects I have are below

   - Errors - how to handle if a string for a locale is not found
   - Loading/Reloading locals from files for the first to the registry
   - Where in registry to store the files
   - Performance and caching

I started a POC level implementation on CDM core utils [2]. WDYT guys?

[1] - http://www.javapractices.com/topic/TopicAction.do?Id=208
[2] - https://gist.github.com/dulichan/ef99784e5a6e5332e5c1

Cheers~

-- 
Dulitha Wijewantha (Chan)
Software Engineer - Mobile Development
WSO2 Inc
Lean.Enterprise.Mobileware
 * ~Email       duli...@wso2.com <duli...@wso2mobile.com>*
*  ~Mobile     +94712112165*
*  ~Website   dulitha.me <http://dulitha.me>*
*  ~Twitter     @dulitharw <https://twitter.com/dulitharw>*
  *~Github     @dulichan <https://github.com/dulichan>*
  *~SO     @chan <http://stackoverflow.com/users/813471/chan>*
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to