Hi Rory, On Tue, 2007-04-03 at 08:45 +0100, Rory Campbell-Lange wrote: > We are developing a website for use in 16 EU countries. Some of the > languages we need to cover are not supported by Django, according to: > http://www.djangoproject.com/documentation/settings/#languages > All of our translation strings are in template files and we have > generated corresponding .po files. > > We need to support Polish, and to provide an example translation in > Afrikaans (language code 'af'), for which we have provided a translation > and generated $PROJECTPATH/locale/af/LC_MESSAGES/django.mo > > I have tried generating the django.mo file for Afrikaans, setting > LANGUAGE_CODE = 'af' and restarting Apache. No luck. I've also tried to > list Afrikaans using the "dummy gettext() function" as described at > http://www.djangoproject.com/documentation/i18n/ with no success. > > Help gratefully received.
Not sure if you noticed this note in the docs, but your application can only support translations that are "known" to Django's core as well. So, out of the box you are restricted to the list under django/conf/locale/. See http://www.djangoproject.com/documentation/i18n/#how-to-create-language-files . The good news is that it's easy enough to add an extra locale to the core so that your application can support that locale. You will need to modify your Django source for this. At the moment there isn't a way around that. I might get around to fixing this one day (or somebody else might, which would be great, but at the moment, I seem to be the de-facto i18n maintainer), but it's relatively low priority at the moment -- partly because we'd like to encourage translations of Django's core. To add an extra locale to Django, do the following (I'll use "af" as the example): (1) In the django/ directory, run bin/make-messages.py -l af. This will create django/conf/locale/af/LC_MESSAGES/django.po and djangojs.po in the same directory. (2) In the django/ directory, run bin/compile-messages.py -l af to generate the corresponding .mo files. (3) Add an entry for 'af' either in django/conf/global_settings.py (in the LANGUAGES list) or in your own settings file. This creates an empty translation file for the Django core. It doesn't add any value to your translations, but it does mean that your project/application translation files will be used for your app-specific strings. At this point, you should be good to go by settings LANGUAGE_CODE and so forth. Note that the reference to "dummy gettext()" in the docs is just saying that you should avoid using the real (imported) gettext() function in that file. Just copy what global_settings.py does if you want that. We mark all the language names as translatable in global_settings.py, for example. Regards, Malcolm --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" 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/django-users?hl=en -~----------~----~----~----~------~----~------~--~---

