Développement #48028
traduction jours fériés, toujours pas bon
0%
Description
Ajouter les fichiers de trads au manifeste (#47906) n'a pas suffit, il doit y avoir autre chose.
Files
Related issues
Associated revisions
change workalendar translations setup (#48028)
History
Updated by Valentin Deniaud about 4 years ago
- Related to Développement #47906: traduction jours fériés added
Updated by Valentin Deniaud about 4 years ago
Les traductions ne sont pas compilées au moment de l'installation du package.
Je ne suis pas encore sûr de quoi faire, le code dans le setup.py c'est
for path, dirs, files in os.walk('combo'): if 'locale' not in dirs: continue curdir = os.getcwd() os.chdir(os.path.realpath(path)) call_command('compilemessages') os.chdir(curdir)
Avec un petit commentaire qui parle de django 1.4, peut-être une indication que le truc peut être revu (compilemessages fait déjà un os.walk, je me demande si on ne se retrouve pas à compiler plusieurs fois les trucs ici).
Mais donc, pourquoi ce n'est pas compilé ? La commande est bien exécutée dans le répertoire où est 'workalendar_locale' (parce que par chance au même endroit on trouve un répertoire un répertoire 'locale' tout court, donc le check passe).
En fait dans compilemessages :
basedirs = [os.path.join('conf', 'locale'), 'locale'] if os.environ.get('DJANGO_SETTINGS_MODULE'): from django.conf import settings basedirs.extend(upath(path) for path in settings.LOCALE_PATHS)
Et c'est ce qui explique que ça marche en local et pas sur les serveurs, DJANGO_SETTINGS_MODULE est défini seulement dans le premier cas, ce qui permet de trouver 'workalendar_locale', sinon la commande se contente d'un répertoire nommé exactement 'locale'.
Donc, voir comment poser ce DJANGO_SETTINGS_MODULE ?
Updated by Valentin Deniaud about 4 years ago
- File 0001-setup-set-DJANGO_SETTINGS_MODULE-in-compile_translat.patch 0001-setup-set-DJANGO_SETTINGS_MODULE-in-compile_translat.patch added
- Tracker changed from Bug to Développement
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Et c'est ce qui explique que ça marche en local et pas sur les serveurs, DJANGO_SETTINGS_MODULE est défini seulement dans le premier cas
C'est vite dit, ce qui explique que ça marche en local c'est que j'ai compilé « à la main » avec chrono-manage compilemessages
, or dans manage.py on lit bien sûr
6 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "chrono.settings")
Patch pour faire la même chose dans setup.py, mais je ne suis pas sûr de moi.
Updated by Frédéric Péters about 4 years ago
- Ne rien changer au build.
- Virer la modification au LOCALE_PATHS dans chrono/settings.py
- Écrire les chaines à traduire dans un fichier, mettons chrono/workalendar_locales.py, façon
from django.utils.translation import ugettext_lazy as _ def translations(): _('New year') _('Easter Monday') ...
et ça s'arrêtera à ça, les chaines à traduire se trouveront de manière normale dans chrono/locale/fr/LC_MESSAGES/django.po et tout ira pour le mieux.
Updated by Valentin Deniaud about 4 years ago
- File 0001-change-workalendar-translations-setup-48028.patch 0001-change-workalendar-translations-setup-48028.patch added
Merci pour l'idée !
Updated by Thomas Noël (congés → 5 décembre) about 4 years ago
Pour compléter, peux-tu ajouter un commentaire qui explique que ce fichier ne sert à rien d'autre qu'à avoir les phrases présentes dans les fichiers .po ?
(et, aussi, ajouter l'entête de licence)
Avec ça, nickel.
Updated by Frédéric Péters about 4 years ago
Où en fait, plutôt que ce fichier .py, taper ça dans un template, ça serait encore plus clean, façon :
{% load i18n %} {# Translations of holidays names #} {% trans "New year" %} ...
Updated by Valentin Deniaud about 4 years ago
Frédéric Péters a écrit :
Où en fait, plutôt que ce fichier .py, taper ça dans un template, ça serait encore plus clean, façon :
Ne pas tenir compte du patch précédent du coup, j'avais pas vu ce message. Je mets le template dans quel dossier ? Il y a pas de dossier templates à la racine, le créer pour l'occasion ?
Updated by Frédéric Péters about 4 years ago
Non, tape-le dans un dossier existant, disons chrono/agendas/templates/.
Updated by Thomas Noël (congés → 5 décembre) about 4 years ago
- Status changed from Solution proposée to Solution validée
C'est propre.
Updated by Valentin Deniaud about 4 years ago
- Status changed from Solution validée to Résolu (à déployer)
commit dd5cdd85b81fc020d9a29d9bbdfca8785caf8ad4 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Oct 26 14:46:30 2020 +0100 change workalendar translations setup (#48028)
Updated by Frédéric Péters about 4 years ago
- Status changed from Résolu (à déployer) to Solution déployée
change workalendar translations setup (#48028)