* ui_ux: => 0
* easy: => 0
* stage: Design decision needed => Accepted
Comment:
The original report proposes three main changes:
- 1) a django.contrib.i18n application — which is basically a large
refactoring
- 2) support for translation backends (other file formats / string
databases)
- 3) support for dynamic translations (translation of database content)
Refactorings are complicated, because they introduce backwards
incompatibilities that only disappear after three releases — that's the
length of our deprecation path. They're also very hard to review. We tend
to accept them only when they're a pre-requisite to add interesting
features. Anyway, the amount of effort needed for the refactoring is
dwarfed by the the amount needed for the features, so it doesn't really
matter at this step.
Features (2) and (3) are rather large — as a wild guess, defining,
developing, testing and documenting them for Django would take a few
hundred hours.
Reading [http://groups.google.com/group/django-
developers/browse_thread/thread/4e83abb173b2f25b/39c198bff3292fad?lnk=raot
the thread you started on this topic], I understand that your proposal is
mostly about (2). As you say in your last message, what we need now is a
more detailed proposal, explaining the consequences of the change:
- which backends would you include initially?
- how much would this affect performance?
- how would this affect distribution of translations for Django itself,
and for pluggable third-party applications?
- etc.
A proof of concept in a fork on !GitHub would be interesting too.
To sum up:
- I agree that pluggable translation backends and dynamic translations are
interesting ideas. They're separate ideas, so let's limit this ticket to
translation backends. I'm accepting the ticket with this scope.
- Please don't focus too much on refactoring — it adds more noise than
value. Deal with the hard part (APIs, proof of concept) first. Try to be
as much backwards compatible as possible. Then, if necessary, we can
decide to refactor things.
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:7>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Comment (by aaugustin):
#16960 is a duplicate that suggests introducing an XMB/XTB backend.
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:8>
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:9>
* cc: ethan.jucovy@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:10>
* cc: aurelio@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:11>
* cc: ojiidotch@… (added)
Comment:
I'm not sure point 3 in comment:7 should really be part of this ticket.
Dynamic translations are a completely different thing than static
translations. Wouldn't it make more sense to move the discussion etc about
dynamic translations in Django to another ticket and keep this one purely
for supporting additional backends for static translations?
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:12>
Comment (by ojii):
Ticket for dynamic translations (aka: model translations #6460)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:13>
Comment (by ramiro):
#19480 is a proposal related to this ticket and has a pull request at
https://github.com/django/django/pull/590
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:14>
* cc: kitsunde@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:15>
* cc: stas@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:16>
Comment (by rtnpro):
Is any one working on this feature request?
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:17>
* cc: rtnpro (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:18>
* needs_better_patch: 0 => 1
* has_patch: 0 => 1
* needs_docs: 0 => 1
Comment:
The PR above doesn't merge cleanly and lacks documentation.
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:19>
* cc: Andi Albrecht (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/14974#comment:20>