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