Replying to myself here.

I'm quite sure the docs are wrong by now.

Also: I think the documented behavior is not desirable. Changing
translations per-view makes for hard to debug once-in-a-while bugs.

This means the bug '2' is still a problem. I suggest either reversing
the loop

158         for appname in settings.INSTALLED_APPS:

or making the update of a 'merge' non-destructive.

Agreed? Should I move forward w/ tests, documentation update etc. in a
bug report?

On Dec 5, 11:21 am, Klaas van Schelven <[email protected]>
wrote:
> Hi,
>
> According 
> tohttp://docs.djangoproject.com/en/1.2/howto/i18n/#using-translations-i...
> andhttp://docs.djangoproject.com/en/1.2/topics/i18n/deployment/#how-djan...
>
> At runtime, Django looks for translations by following this algorithm:
>
> * First, it looks for a locale directory in the application directory
> of the view that’s being called. If it finds a translation for the
> selected language, the translation will be installed.
> * Next, it looks for a locale directory in the project directory. If
> it finds a translation, the translation will be installed.
> * Finally, it checks the Django-provided base translation in django/
> conf/locale.
>
> However, this has not been my experience. I also do not see anything
> in the django source code or tests that responds to the above.
>
> In django/utils/translation/trans_real.py I see the following:
>
> def translation(language):
>      [......]
>
>         for appname in settings.INSTALLED_APPS:
>             apppath = os.path.join(get_apppath(appname), 'locale')
>
>             if os.path.isdir(apppath):
>                 res = _merge(apppath)
>
> _merge (and deeper down "merge") is defined as a dictionary update in
> the same file.
>
> I see two problems here:
> 1] the documented behavior is not implemented
> 2] the implemented behavior has the opposite order-of-preference for
> apps as the rest of Django. (Normally, the higher up in your
> INSTALLED_APPS you put an app, the more likely it's templates, etc.
> will be called. Here we're using a dict update, so the lowest app has
> preference)
>
> Am I missing something? I've done some grepping but couldn't find any
> point where the "currently called view's app" is somehow related to
> the used translation.
> Should I file a bug? And if so: should we fix the documentation or the
> code?
>
> Klaas

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" 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-developers?hl=en.

Reply via email to