Development #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.
Fichiers
Demandes liées
Révisions associées
change workalendar translations setup (#48028)
Historique
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Lié à Development #47906: traduction jours fériés ajouté
Mis à jour par Valentin Deniaud il y a plus de 3 ans
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 ?
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Fichier 0001-setup-set-DJANGO_SETTINGS_MODULE-in-compile_translat.patch 0001-setup-set-DJANGO_SETTINGS_MODULE-in-compile_translat.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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.
Mis à jour par Frédéric Péters il y a plus de 3 ans
- 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.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Fichier 0001-change-workalendar-translations-setup-48028.patch 0001-change-workalendar-translations-setup-48028.patch ajouté
Merci pour l'idée !
Mis à jour par Thomas Noël il y a plus de 3 ans
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.
Mis à jour par Frédéric Péters il y a plus de 3 ans
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" %} ...
Mis à jour par Valentin Deniaud il y a plus de 3 ans
Mis à jour par Valentin Deniaud il y a plus de 3 ans
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 ?
Mis à jour par Frédéric Péters il y a plus de 3 ans
Non, tape-le dans un dossier existant, disons chrono/agendas/templates/.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
Mis à jour par Thomas Noël il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
C'est propre.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Statut changé de Solution validée à 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)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
change workalendar translations setup (#48028)