hi I'm very sorry. I made a mistake in my writing.
> (2) Use KtrI18NCreator.create() in your server side code Please use KtrI18N.createConstants() or KtrI18N.createMessages(). These are static methods. -- bufferings 2009/10/6 bufferings <[email protected]>: > >> that's exactly what I need and it runs perfectly ! >> >> Thanks a lot ! > > Glad to hear that. > >> Bufferings, when I look at your site, the procedure to make it work seems to >> be more complex. Why ? > > From my site's [How Does It Work?]== > Kotori I18N uses the super-source trick. It gives the super-source > code to the client, and gives the real code to the server. In fact, It > uses the GWT#create(Class) for the client as usual, and it uses the > javassist for the server to create an implimentation of the interface > given on the runtime. > > For the first time I thought it was going to be simple, but it didn't > become so because of the limitation of GWT#create(Class) that it must > be called with a class literal. To cope with the limitation, I created > Kotori I18N Plugin that automatically create the super-source in your > project and replace the KtrI18N#createXXX to GWT#create(Class). > > Is it confusing? Yes, I think so. But I don't know the other way to > get over the limitation. I hope GWT to remove the limitation. If the > limitation would be removed, I will throw the plugin away with > pleasure. > == > >> I don't add the super-source tag and it runs like a charm. > > If you want to use KtrI18N.create only on the server side not on the > client, you don't have to use super-source and you don't have to edit > your gwt.xml module file. > > All you have to do is > (1) Put ktr-i18n.jar and javassist.jar in your classpath > (2) Use KtrI18NCreator.create() in your server side code > > -- > bufferings > > > On 10月5日, 午後11:45, Jerome Cance <[email protected]> wrote: >> Wooah, >> >> that's exactly what I need and it runs perfectly ! >> >> Thanks a lot ! >> >> I think this kind of feature should be available directly in the GWT >> project. >> >> Bufferings, when I look at your site, the procedure to make it work seems to >> be more complex. Why ? >> I don't add the super-source tag and it runs like a charm. >> >> --------------------------- >> Jérôme CANCE >> >> >> >> On Mon, Oct 5, 2009 at 4:20 PM, bufferings <[email protected]> wrote: >> >> > Hi Jerome >> >> > > I want to do on my server side: >> > > myConstants.myMessage(); >> >> > I also thought about the same thing with you, and I created that with >> > javassist. >> > [Kotori I18N Project] >> >http://code.google.com/p/kotori/wiki/KotoriI18N?wl=en >> > I think a part of the project is useful to you. >> >> > If you try using the library, >> > (1) download "Kotori I18N"(ktr-i18n-0.1.0-alpha-v200909202315.zip). >> > In this time, you don't have to download "Kotori I18N Plugin(Eclipse >> > plugin)", which is a trick for the seamless use on both the client and >> > the server. >> > (2) Put ktr-i18n.jar and javassist.jar in your classpath. >> > (3) Use KtrI18NCreator.create() in your server side code like >> > GWT.create in the client. >> >> > If you don't use the library, >> > I think a part of it is useful to you. >> >> >http://code.google.com/p/kotori/source/browse/#svn/trunk/ktr-i18n/src... >> >> > -- >> > bufferings >> >> > On 10月5日, 午後9:35, Jerome Cance <[email protected]> wrote: >> > > Thank you for this response, I was thinking of a solution like this but >> > what >> > > I don't like in this solution is the use of a constant for server side >> > > ressource bundle. >> >> > > If I can, I want to use a function to refer to an internationalized >> > string. >> >> > > In summary: >> >> > > I want to do on my server side: >> > > myConstants.myMessage(); >> > > (like I do on client side) >> >> > > instead of: >> > > myConstants.getString("myMessage"); >> > > (avoid the ressource bundle mechanism to have unicity on client and >> > server >> > > internationalization) >> >> > > But if I can't I will use your solution. >> >> > > --------------------------- >> > > Jérôme CANCE >> >> > > On Mon, Oct 5, 2009 at 2:18 PM, Lothar Kimmeringer <[email protected] >> > >wrote: >> >> > > > Jerome C. schrieb: >> >> > > > > I need to use internationalization files on server side (send email, >> > > > > and email content is internationalized). >> > > > > When I use GWT.create on my server side, it does not run (exception). >> >> > > > [...] >> >> > > > > If I can, I don't want to use two different mechanisms for client and >> > > > > server internationalization. >> >> > > > I solved it by adding the locale-string to the parameters of the >> > > > servlet-method to be called: >> >> > > > public String getSomething(String param1, long param2, String locale) >> > > > throws RemoteServiceException { >> > > > ResourceBundle rb = getResourceBundle(locale); >> > > > try{ >> > > > doSomething() >> > > > } >> > > > catch(Exception e){ >> > > > throw new >> >> > RemoteServiceException(rb.getString("ServiceGeneral_Error_SomethingHappened")); >> > > > } >> > > > } >> >> > > > public static ResourceBundle getResourceBundle(String locale) { >> > > > Locale loc = getLocale(locale); >> > > > ResourceBundle rb = >> > > > Utf8ResourceBundle.getBundle(AdminToolsI18NConstants.class.getName(), >> > loc, >> > > > AdminToolsI18NConstants.class.getClassLoader()); >> > > > return rb; >> > > > } >> >> > > > public static Locale getLocale(String locale){ >> > > > if (locale == null){ >> > > > return null; >> > > > } >> > > > StringTokenizer tt = new StringTokenizer (locale, "_"); >> > > > Locale loc = new Locale(tt.nextToken(), tt.hasMoreTokens() ? >> > > > tt.nextToken() : "", tt.hasMoreTokens() ? tt.nextToken() : ""); >> > > > return loc; >> > > > } >> >> > > > The Utf8ResourceBundle is inspired by >> > > >http://www.thoughtsabout.net/blog/archives/000044.html >> > > > That way you can use the ResourceBundle-files you created for the >> > > > GWT-client. In each bundle I added one property, e.g. >> >> > > > Locale = DE >> >> > > > So a call in the GWT-client looks like this: >> >> > > > public static final MyI18NConstants CONSTANTS = (MyI18NConstants) >> > > > GWT.create(MyI18NConstants.class); >> >> > > > [...] >> >> > > > GeneralServices.Util.getInstance().getSomething(param1, param2, >> > > > CONSTANTS.Locale(), new AsyncCallback(){ >> > > > [...] >> > > > public void onFailure(Throwable caught) { >> > > > Window.alert(caught.getMessage()); >> > > > } >> > > > }; >> >> > > > If you have defined Messages instead of Constants you can do the >> > filling >> > > > of the parameters by a simple text-replacement, e.g. by replaceAll: >> >> > > > rb.getString(...).replaceAll("\{0\}", e.getMessage()); >> >> > > > Regards, Lothar- 引用テキストを表示しない - >> >> > > - 引用テキストを表示 -- 引用テキストを表示しない - >> >> - 引用テキストを表示 - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
