hi. there is a way to use the gwt constants/messages on the server side. I use it so:
Checkout http://code.google.com/p/gwt-i18n-server/ from SVN. Then you have to patch it for the GAE like I did it (see down). You have to copy your CONSTANTS.properties + MESSAGES to the folder war/nls_server. ---------------------- PATCH ---------------------- Index: GenericX.java =================================================================== --- GenericX.java (revision 1317) +++ GenericX.java (revision 1676) @@ -21,9 +21,9 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; -import java.security.AccessControlException; import java.security.InvalidParameterException; import java.util.Properties; @@ -31,11 +31,17 @@ * */ public abstract class GenericX implements InvocationHandler { + /** + * @param c1 c + * @param c2 c + * @return r + */ + public static boolean isA(Class<?> c1, Class<?> c2) { + return c2.isAssignableFrom(c1); + } protected final Properties properties = new Properties(); - protected final Class<?> itf; - @Override - public abstract Object invoke(Object proxy, Method method, Object[] args) throws Throwable; + protected final Class<?> itf; /** * @param _itf _itf @@ -48,6 +54,11 @@ fillProperties(itf, lang); } + @Override + public boolean equals(Object obj) { + return obj == this; + } + protected void fillProperties(Class<?> itf, String lang) throws IOException { for (Class<?> superItf : itf.getInterfaces()) { fillProperties(superItf, lang); @@ -59,35 +70,22 @@ in = load(baseName + ".properties"); } if (in != null) { - properties.load(in); + properties.load(new InputStreamReader(in, "UTF-8")); } } + + @Override + public int hashCode() { + return properties.size(); + } + + @Override + public abstract Object invoke(Object proxy, Method method, Object[] args) throws Throwable; + protected InputStream load(String s) throws FileNotFoundException { InputStream in = null; in = loadPropertiesGAE(s); - ClassLoader cl; - cl = Thread.currentThread().getContextClassLoader(); - if (cl != null) { - in = cl.getResourceAsStream(s); - } - if (in == null) { - cl = getClass().getClassLoader(); - if (cl != null) { - in = getClass().getClassLoader().getResourceAsStream(s); - } - if (in == null) { - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (AccessControlException e) { - /* GAE compatibility */ - in = loadPropertiesGAE(s); - } - if (cl != null) { - in = cl.getResourceAsStream(s); - } - } - } return in; } @@ -99,23 +97,4 @@ return null; } } - - @Override - public boolean equals(Object obj) { - return obj == this; - } - - @Override - public int hashCode() { - return properties.size(); - } - - /** - * @param c1 c - * @param c2 c - * @return r - */ - public static boolean isA(Class<?> c1, Class<?> c2) { - return c2.isAssignableFrom(c1); - } } On 9 Dez., 20:30, Erick Fleming <efleming...@gmail.com> wrote: > Java has a fair amount of i18n built-in [1], are you using JSPs or > some other template engine? > > [1]http://java.sun.com/javase/technologies/core/basic/intl/ > > > > > > > > > > On Thu, Dec 9, 2010 at 12:48 PM, nacho <vela.igna...@gmail.com> wrote: > > How can i use internationalization over appengine (java) on the server > > side? > > > Does any one have any idea? > > > I've been googling but all the posts that i find are for python > > appengine. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to google-appeng...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-appengine+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine?hl=en. > > -- > Erick Fleming -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.