I've used Babelfish only as a web tool, never an API, so does that option exist? You can leverage GAE's urlfetch lib and make a remote call if Babelfish has a REST interface.
On 8/2/09, Emilien Klein <emilien.kl...@gmail.com> wrote: > > OK, thanks Rodrigo for the link to Babel. I had already seen it, but > never used it. > The problem I see with using Babel is that it IS an external library, > which means that I need to integrate it with my project. What I'm > looking for is a way to have a translated application WITHOUT having > to install any external library... > > I am looking at > http://makeyjl.blogspot.com/2009/02/using-djangos-i18n-in-google-app-engine.html > right now, and (while I'm not done playing around) I have already been > able to generate .po files, and my application still works OK. I'm > going to continue playing around, and then I'll report here about how > it went. If everything works fine I might even write a Knol article to > explain my steps (the article is not 100% accurate, I had to find out > to add "{% load i18n %}" in the templates for instance... > > If anyone has another way of translating App Engine applications using > only the available tools, fell free to share it! > > On 31 juil, 18:17, Rodrigo Moraes <rodrigo.mor...@gmail.com> wrote: >> Now, anwering some other questions. >> >> > - I suppose that the .po / .mo files that open source projects >> > traditionally use can not be used in the App Engine world? >> >> Yes, you can use those files with gettext functions. You'll probably >> need to wrap those functions and write some utilities to make it >> easier to use - but you don't need to do that because there are >> excellent libraries that have done it - Babel is the most known in the >> python world (I actually don't know any other). >> >> > - Would you have various template files for each languages (like a >> > contact.en.html, contact.fr.html, contact.nl.html, etc.) and use the >> > appropriate file depending on the language that has been detected from >> > the browser header? >> >> No! You would use one template, and have the strings wrapped by a >> translation function. The convention is to use a function name "_". >> Like: >> >> {{ _("This is my string - I'll translate it later, and if not it'll be >> in English forever.") }} >> >> There are issues you'll find, like how to handle singular/plural and >> string replacements, but existing solutions cover that. >> >> > - Would you use a single template file, but pass it the strings one by >> > one that you would retrieve from the datastore (ouch, just writing >> > this solution hurts!) >> >> Absolutelly no. The strings are stored in a .po file, which you >> compile into a .mo file. This if you go for the widely used gettext. >> >> > Note: if you execute the following command from inside the GAE dev >> > server folder: >> > find | xargs -i grep -iH i18n \{\} >> > you will see that a lot of files contain the string i18n, and that all >> > are related to django. Does that mean that we could use standard >> > Django internationalization techniques, or is it just that Google < >> > forgot > to remove those files? >> >> I tried to use Django's i18n. Unfortunately Django is too tied to >> itself and that library is not reusable outside of Django. Fortunately >> later I found a standalone, reusable, well written one: Babel. It >> works very well. >> >> -- rodrigo > > > -- Sent from my mobile device --~--~---------~--~----~------------~-------~--~----~ 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-appengine@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 -~----------~----~----~----~------~----~------~--~---