Hi Dilan, On Mon, Jan 5, 2015 at 3:30 PM, Chathura Dilan <chathu...@wso2.com> wrote:
> Each components should have its own localization file. It can be > accessible from its namespace. I think for files it is best thing to use > standard file formats such as .properties, .po or there should be a way to > convert them to standard file format vice versa. So translations can be > done independently. > > User should have ability to select his/her language or otherwise a generic > language can be used. And there should be a way to have the default text > when you define the translation. also you need to consider about the > parameters which sends along with the translations. > > I haven't worked with gettext, but it is worth to look at gettext (it > seems cool) before creating our own library. > Components having different files is OK for component developers. In this case we are talking about a tenant admin who does not have any access to filesystem, adding and changing some templates used by those components. So it is a must that we have a UI component for that. > > On Sat, Dec 20, 2014 at 4:18 AM, Dulitha Wijewantha <duli...@wso2.com> > wrote: > >> Hi guys, >> The i18n support in jaggery is about providing i18n support for web apps. >> This proposition is to provide a platform wide solution so in Java & >> Jaggery we can both use. Current implementation of jaggery i18n support [1] >> does this through json files stored in the web app. My other comments are >> inline - >> >> [1] - >> https://github.com/wso2/jaggery-extensions/blob/master/i18n/module/scripts/i18n.js >> >> Cheers~ >> >> On Thu, Dec 18, 2014 at 11:22 PM, Joseph Fonseka <jos...@wso2.com> wrote: >>> >>> Hi All >>> >>> My personal experience with i18n library is that its difficult to >>> maintain the code and to translate. >>> >>> IMO what should be looked in a localization library is how easy it is to >>> maintain the localized code and to translate. So far the best experience I >>> had was with the Gettext[1] library. >>> >>> Some of the advantage with gettext >>> 1. Wide set of tools to help translate like string extraction tools and >>> translating apps [2]. >>> 2. Fuzzy matching. >>> 3. Plural support. >>> 4. Reusing already translated strings from other apps. >>> >>> IMHO we should give gettext a try to see if it can make l10n easy for us >>> in the platform or at least for webapps. >>> >> I don't quite understand what you said. i18n doesn't perform any >> translation right? It does matching for key and chose it from a locale >> file. Does gettext perform translation to text? >> >> >>> >>> Regards >>> Jo >>> >>> [1] https://www.gnu.org/software/gettext/ >>> [2] http://poedit.net/ >>> >>> >>> On Fri, Dec 19, 2014 at 9:55 AM, Johann Nallathamby <joh...@wso2.com> >>> wrote: >>>> >>>> This would be a valuable feature Dulitha. >>>> >>>> On Fri, Dec 19, 2014 at 7:11 AM, Dulitha Wijewantha <duli...@wso2.com> >>>> wrote: >>>>> >>>>> 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. >>>>> >>>> >>>> One of the key differences in the IS use case is displaying dynamic >>>> content. The email template is not fixed. The admin can go and change the >>>> template at will. So I think its bit special than the other two use cases >>>> you've mentioned. WDYT ? >>>> >>> Actually this where I go this idea from :) . There is a method to >> obtain a localized file (which is stored in registry). All we have to do is >> to give the admin an interface to go and change the file in registry. Even >> for the dynamic content it will work cause we will have an email template >> for each 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 >>>>> >>>>> Not clear what you meant here. What I am thinking is there should be a >>>> separate admin module for this. In Carbon management console it could be a >>>> separate menu item under configure tab probably. Or in APIM it could be the >>>> admin dashboard which is used to upload themes and all. Wherever it is what >>>> I am thinking is, users should be able to define strings and upload files >>>> for different locales. >>>> >>> +1. For the first time - our by default supported langs will be loaded >> from config directory. User can upload his lang files and change templates >> and strings from a UI. >> >>> >>>>> - 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 <%2B94712112165>* >>>>> * ~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 >>>>> >>>>> >>>> >>>> -- >>>> Thanks & Regards, >>>> >>>> *Johann Dilantha Nallathamby* >>>> Associate Technical Lead & Product Lead of WSO2 Identity Server >>>> Integration Technologies Team >>>> WSO2, Inc. >>>> lean.enterprise.middleware >>>> >>>> Mobile - *+94777776950* >>>> Blog - *http://nallaa.wordpress.com <http://nallaa.wordpress.com>* >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> Architecture@wso2.org >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> -- >>> >>> -- >>> *Joseph Fonseka* >>> WSO2 Inc.; http://wso2.com >>> lean.enterprise.middleware >>> >>> mobile: +94 772 512 430 >>> skype: jpfonseka >>> >>> * <http://lk.linkedin.com/in/rumeshbandara>* >>> >>> >>> _______________________________________________ >>> Architecture mailing list >>> Architecture@wso2.org >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> -- >> Dulitha Wijewantha (Chan) >> Software Engineer - Mobile Development >> WSO2 Inc >> Lean.Enterprise.Mobileware >> * ~Email duli...@wso2.com <duli...@wso2mobile.com>* >> * ~Mobile +94712112165 <%2B94712112165>* >> * ~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 >> >> > > > -- > Regards, > > Chatura Dilan Perera > *(Senior Software Engineer** - WSO2 Inc.**)* > www.dilan.me > > _______________________________________________ > Architecture mailing list > Architecture@wso2.org > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Thanks & Regards, *Johann Dilantha Nallathamby* Associate Technical Lead & Product Lead of WSO2 Identity Server Integration Technologies Team WSO2, Inc. lean.enterprise.middleware Mobile - *+94777776950* Blog - *http://nallaa.wordpress.com <http://nallaa.wordpress.com>*
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture