One more thing I should add since you mentioned jinja2 and you may not have seen this yet:
https://github.com/domenkozar/pyramid-cookiecutter-jinja2 The pyramid_jinja2 cookiecutter actually has some integrated i18n support that works. We have thrown around some ideas on merging that into the default starter scaffold [1], but I'm afraid that we don't yet have the "best practice" defined and would want it to be synchronized with whatever pyramid discusses in its docs [2]. [1] https://github.com/Pylons/pyramid_jinja2/issues/139 [2] http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/i18n.html On Wed, Feb 8, 2017 at 3:31 PM, Hans-Peter Jansen <h...@urpla.net> wrote: > Hi Michael, > > On Mittwoch, 8. Februar 2017 12:22:27 Michael Merickel wrote: > > On Wed, Feb 8, 2017 at 11:36 AM, Hans-Peter Jansen <h...@urpla.net> > wrote: > > > As a consequence, all these packages will depend on lingua then.. > > > > Do the packages actually need to depend on lingua? I see that your PR to > > deform doesn't add it, however deform expects it to in the dev > environment > > (tests, running i18n.sh, etc). I'm just trying to clarify if you're > saying > > it would be a new runtime dependency. > > AFAICS, it's not a runtime dependency, it's needed for i18n work only (as > long > as the mo files are tarred up).. > > > > One downside of this move: jinja2 support depends on babel, and needs > some > > > configuration file support for pot-create, that has to be patched into > > > i18n.sh > > > > > before: > > The quick history here, as I know it: > > > > - Pyramid, etc shipped using babel for everything. > > - Babel didn't support py3. > > - For that reason and I'm sure many other reasons, Wichert created lingua > > and submitted a few PRs to pyramid to start using it in the > documentation. > > Thanks for the intro. Yeah, I know, Armin Ronacher add his Py3 crusade.. > > > I personally don't know what the state of the art is now that babel > > supports py3 I haven't needed to write a fully i18n app myself and so my > > knowledge is only limited to diving in and fixing certain bugs or > reviewing > > PRs. > > I'm just starting with Pyramid (ahem, websauna) in a project, that > essentially > needs full i18n support.. Therefor, I try to wrap my head around all these > loose ends ATM. Not that easy, because the web is full of misleading > information in this regard as well. > > Since I cannot depend on hearsay, I started with the simplest possible > task, > having a pyramid-cookiecutter-starter project localized. Since that uses > jinja2 templating only, babel is sufficient. Adding deform makes lingua > necessary, since babel doesn't support chameleon templates (to my > knowledge). > lingua depends on babel, when it comes to jinja2 extraction. Oh, well.. > > Sorry for not having expressed that from the beginning. > > > I very much appreciate your work on this and would love to see things get > > standardized and modernized. I've had several people ask in #pyramid on > IRC > > why things are not working as our docs kinda sort of tell you to use both > > babel and lingua without definitively explaining anything as I think they > > were only partially updated when switching to lingua. > > Maybe, with your insight into Pyramid and my intention to have a properly > working i18n in _all_ these packages, we can tidy up that mess a bit. > > As of now, I don't see the need for babel and lingua as runtime > dependencies > at all. babel brings in a lot of useful things, that a fully localized app > can > make use of, but none of that is used in the mentioned packages ATM. > lingua is > created for message extraction only (with a script called pot-create). I > can > add a test to i18n to check, if pot-create exists, and bail out with an > installation hint otherwise. > > In order to make the translation infrastructure universally useful, we can: > * add the i18n.sh script > * ask for installation of babel and lingua, if one is missing > * add a lingua.cfg: > > [extractor:xml] > default-engine = tales > > [extractor:chameleon] > default-engine = tales > > [extensions] > .jinja2 = babel-jinja2 > .mako = babel-mako > > > Working with translations would boil down to: > * create language: ./i18n.sh lang > * everything else: ./i18n.sh > > By default, neither babel nor lingua is a runtime dependency. > > Cheers, > Pete > > -- > You received this message because you are subscribed to the Google Groups > "pylons-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pylons-devel+unsubscr...@googlegroups.com. > To post to this group, send email to pylons-devel@googlegroups.com. > Visit this group at https://groups.google.com/group/pylons-devel. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "pylons-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-devel+unsubscr...@googlegroups.com. To post to this group, send email to pylons-devel@googlegroups.com. Visit this group at https://groups.google.com/group/pylons-devel. For more options, visit https://groups.google.com/d/optout.