Hi all,

To be a bit more specific:

I've filed
http://code.djangoproject.com/ticket/14910

Added a test that proves the bug. Provided code that makes that test
green. Fixed the documentation. All including patches.

Could someone with sufficient authority move this forward? <include
trolling remark about the state of the community here to draw
attention to this ticket>

Much obliged,
Klaas


On Dec 16, 3:25 pm, Klaas van Schelven <[email protected]>
wrote:
> ♫ Tom ♩ tie ♭♬ tom ♪
>
> http://code.djangoproject.com/ticket/14910
>
> On Dec 5, 11:37 am,Klaasvan Schelven <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > 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,Klaasvan 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