codicoop / boilerplate_django

Plantilla pels nous projectes web amb Django.
GNU General Public License v3.0
0 stars 0 forks source link

Desactivar opcions de llenguatge #40

Closed MartaRF3 closed 2 years ago

MartaRF3 commented 2 years ago

Tot i que volem que eventualment hi hagi possibilitat de tenir varis idiomes de moment només es farà en un. (Que no sé si serà català o castellà, ara que ho penso).

Per tant, entenc que hauriem de continuar mantenint totes les strings amb el 'translate', i en anglès per quan eventualment es faci servir.

L'altre tema és si podem eliminar de moment de les urls el path de idioma també.

nabiu256 commented 2 years ago

Per tenir oberta la porta a eventualment fer servir la internacionalització, entenc que sí, les tags de translate i les strings envoltades per gettext (_) s'haurien de mantenir, ja que sinó després implicaria molta feina d'anar a buscar-les totes i tornar-les a fer.

Pel tema de treure l'idioma de la URL, se m'acut que tampoc ha de ser tan difícil, ja que en l'únic lloc on s'afegeix és el URLconf a partir de la funció i18n_patterns() image

Fins i tot se'm passa pel cap que si volem tenir la opció de programàticament activar o desactivar la internacionalització, es podria fer una variable d'entorn i que per exemple en les URLconf segons aquesta, es faci servir la internacionaltizació de les URLs o no (no sé què et sembla @perepicornell ).

L'únic que potser veig més difícil és si penseu que les URLs haurien d'estar en català, perquè en cas que treiem la internacionalització estaran tal i com estan en el codi del back i estan totes en anglès.

En tot cas, entenc que es podria posar això, una variable d'entorn que controlés si la internacionalització està activada o no, i en cas que no, que es defineixi un idioma i des del back es fixa tot amb aquest.

Exemple

Pel tema de al variable, parlo de fer en el URLconf alguna cosa com

urls = [
    path("", HomeView.as_view(), name="home"),
    path(_("registration/"), include("apps.users.urls", namespace="registration")),
]

if settings.USE_I18N:
    urlpatterns += i18n_patterns(urls)
else:
    urlpatterns += urls

i en els settings:

if USE_I18N:
    LANGUAGES = [
        ("en", _("English")),
        ("ca", _("Catalan")),
    ]
perepicornell commented 2 years ago

Per tenir oberta la porta a eventualment fer servir la internacionalització, entenc que sí, les tags de translate i les strings envoltades per gettext (_) s'haurien de mantenir, ja que sinó després implicaria molta feina d'anar a buscar-les totes i tornar-les a fer.

Totalment d'acord.

Pel tema de treure l'idioma de la URL, se m'acut que tampoc ha de ser tan difícil, ja que en l'únic lloc on s'afegeix és el URLconf a partir de la funció i18n_patterns() image

Jo no hi veig cap problema amb que l'idioma aparegui sempre a la URL fins i tot encara que a l'app només hi hagi un idioma disponible.

Fins i tot se'm passa pel cap que si volem tenir la opció de programàticament activar o desactivar la internacionalització, es podria fer una variable d'entorn i que per exemple en les URLconf segons aquesta, es faci servir la internacionaltizació de les URLs o no (no sé què et sembla @perepicornell ).

No m'agrada la idea de la variable perquè jo m'imagino el boilerplate com un patró a partir del qual elimines o afegeixes codi per deixar-lo com realment necessiti el projecte, més que no com una app genèrica que a partir de configuracions es comporta de diferents maneres. A banda del que deia abans, que jo deixaria l'idioma sempre a les URLs i au..

L'únic que potser veig més difícil és si penseu que les URLs haurien d'estar en català, perquè en cas que treiem la internacionalització estaran tal i com estan en el codi del back i estan totes en anglès.

Jo voto pq sí que les URLs estiguin traduides.

MartaRF3 commented 2 years ago

Jo deia de treure el path d'idioma de les urls per simplificar, però perfectament es poden deixar, tampoc fa molta diferència. Si que hi haurà diferència quan hi hagin varis idiomes de cara a organitzar les urls si fem servir una SPA, però ja hi pensarem quan hi arribem.

nabiu256 commented 2 years ago

Doncs donat el que dieu, entenc que el més senzill seria deixar el boilerplate amb tot el que té ja d'internacionalització, i si per ara els projectes només tenen un idioma doncs fem que faci servir aquell i ja.

Com diu en Pere, jo tampoc veig gaire problema amb que aparegui l'idioma a l'inici de la URL (especialment perquè de cara a l'usuari això no implica gaire res: li podrà seguir donant a un link que no té el /en/ o /ca/ i funcionarà igual, l'únic que llavors Django per darrera li afegira). Però que si es volgués treure en un projecte en concret, és bastant senzill simplement modificar les URLs i ja.

No m'agrada la idea de la variable perquè jo m'imagino el boilerplate com un patró a partir del qual elimines o afegeixes codi per deixar-lo com realment necessiti el projecte, més que no com una app genèrica que a partir de configuracions es comporta de diferents maneres. A banda del que deia abans, que jo deixaria l'idioma sempre a les URLs i au..

Vale, cert. No sabia ben bé com funcionava el tema del boilerplate i em sembla bé que sigui així.

En tot cas doncs podem documentar (quan ho posem en pràctica) com fer si només vols un idioma i si per exemple només vols un idioma doncs el poses l'únic a la llista d'idiomes possibles, i si no vols a més que et surtin els codis d'idioma a la URL treus el i18n_pattern(). Coses així.

perepicornell commented 2 years ago

+1 a lo de documentar-ho. En general estic intentant que de cada feature que poso, quan la documento lo primer que explico és com eliminar-la :P

El dj., 26 de maig 2022, 14:58, JanaL @.***> va escriure:

Doncs donat el que dieu, entenc que el més senzill seria deixar el boilerplate amb tot el que té ja d'internacionalització, i si per ara els projectes només tenen un idioma doncs fem que faci servir aquell i ja.

Com diu en Pere, jo tampoc veig gaire problema amb que aparegui l'idioma a l'inici de la URL (especialment perquè de cara a l'usuari això no implica gaire res: li podrà seguir donant a un link que no té el /en/ o /ca/ i funcionarà igual, l'únic que llavors Django per darrera li afegira). Però que si es volgués treure en un projecte en concret, és bastant senzill simplement modificar les URLs i ja.

No m'agrada la idea de la variable perquè jo m'imagino el boilerplate com un patró a partir del qual elimines o afegeixes codi per deixar-lo com realment necessiti el projecte, més que no com una app genèrica que a partir de configuracions es comporta de diferents maneres. A banda del que deia abans, que jo deixaria l'idioma sempre a les URLs i au..

Vale, cert. No sabia ben bé com funcionava el tema del boilerplate i em sembla bé que sigui així.

En tot cas doncs podem documentar (quan ho posem en pràctica) com fer si només vols un idioma i si per exemple només vols un idioma doncs el poses l'únic a la llista d'idiomes possibles, i si no vols a més que et surtin els codis d'idioma a la URL treus el i18n_pattern(). Coses així.

— Reply to this email directly, view it on GitHub https://github.com/codicoop/boilerplate_django/issues/40#issuecomment-1138548509, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABFVRQU27WBCO6AA4KKZAMTVL5YN3ANCNFSM5W4YQGDQ . You are receiving this because you were mentioned.Message ID: @.***>