Development #71590
multilinguisme, traduction des sources de données fiche
0%
Description
Il y a des modèles de fiches qui servent de sources de données et on voudrait que si la source de données est utilisée sur un site de la langue A alors les éléments affichés via la source de données soient également dans la langue A.
Le plan serait d'avoir dans le gabarit un appel à |translate, ex: {{form_var_plop|translate}}.
Le multilinguisme activé, quand on met à jour le dictionnaire digests on enregistrerait une version par langue, résultat au final {'default:en': 'Apple', 'default:fr': 'Pomme'}
(avec peut-être la version non suffixée pour correspondre à la langue par défaut).
Le filtre |translate, en présence d'une chaine inconnue (i.e. absence du catalogue chargé en début de requête) l'ajouterait à la table des chaines à traduire.
+ modifier get_data_source_structured_item()/get_display_label() pour aller prendre le digest correspondant à la langue active.
Fichiers
Demandes liées
Révisions associées
misc: make digests update after job work with multiple formdefs (#71590)
cards: create/use translated digests (#71590)
i18n: update digests after catalog changes (#71590)
i18n: display item value in user language (#71590)
i18n: store item fields display value in original language (#71590)
Historique
Mis à jour par Frédéric Péters il y a plus d'un an
- Lié à Development #72299: pour des champs liste alimentés par des fiches, sur l'affichage d'une demande, prendre la version à jour du libellé ajouté
Mis à jour par Frédéric Péters il y a plus d'un an
- Fichier 0006-i18n-store-item-fields-display-value-in-original-lan.patch 0006-i18n-store-item-fields-display-value-in-original-lan.patch ajouté
- Fichier 0005-i18n-display-item-value-in-user-language-71590.patch 0005-i18n-display-item-value-in-user-language-71590.patch ajouté
- Fichier 0004-i18n-update-digests-after-catalog-changes-71590.patch 0004-i18n-update-digests-after-catalog-changes-71590.patch ajouté
- Fichier 0003-cards-create-use-translated-digests-71590.patch 0003-cards-create-use-translated-digests-71590.patch ajouté
- Fichier 0002-misc-make-digests-update-after-job-work-with-multipl.patch 0002-misc-make-digests-update-after-job-work-with-multipl.patch ajouté
- Fichier 0001-i18n-add-translate-template-filter-71590.patch 0001-i18n-add-translate-template-filter-71590.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
0001 introduit un filtre |translate, qui appelle le code de recherche dans le catalogue pour traduction de la chaine concernée et si jamais la chaine n'était pas dans le catalogue, l'y ajouter.
0002 modifie le job UpdateDigestAfterJob existant pour pouvoir traiter plusieurs formdefs.
0003 permet l'utilisation du |translate dans le gabarit de résumé (digest) des modèles de fiche, quand il est présent (et que le multilinguisme est activé), ça multiple les gabarits produits, façon {'default:en': 'Apple', 'default:fr': 'Pomme'}
pour reprendre l'exemple de la description.
0004 prend les deux précédents pour lancer une mise à jour des digests quand une traduction est modifiée.
0005 s'intéresse à ce qui est affiché à l'usager, pour lui présenter dans les champs liste alimentés via une source de données la version dans sa langue.
0006 assure par contre qu'au stockage c'est la chaine "native" qui est enregistrée.
Mis à jour par Lauréline Guérin il y a plus d'un an
0001: comment se comporte le templatetag sur quelque chose qui n'est pas une string ?
0003: code existant, méthode set_auto_fields
, il me semble que le bloc:
if digests: self.digests = digests changed = True
pourrait être sorti de la boucle for.
(mais ça n'est pas très important)
0005: ajouter un test sur une source de donnée fiche + custom view ?
if len(parts) == 3: digest_key = 'custom-view:%s' % parts[-1] value = (carddata.digests or {}).get(digest_key) or value if get_publisher().has_i18n_enabled(): digest_key += ':' + get_publisher().current_language value = (carddata.digests or {}).get(digest_key) or value
Mis à jour par Frédéric Péters il y a plus d'un an
0001: comment se comporte le templatetag sur quelque chose qui n'est pas une string ?
Il y a un str() dans get_publisher().translate mais je viens d'ajouter ça pour éviter le "None",
string = unlazy(string) if string is None: return None
pourrait être sorti de la boucle for.
fait.
0005: ajouter un test sur une source de donnée fiche + custom view ?
fait aussi.
Mis à jour par Lauréline Guérin il y a plus d'un an
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a plus d'un an
- Statut changé de Solution validée à Résolu (à déployer)
commit de2daf6786797838227d5279cf23c610c1faebf5 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Dec 13 13:40:20 2022 +0100 i18n: store item fields display value in original language (#71590) commit 9e02a63fbb8a721dcee2ae3a18f507f204ab5e9a Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Dec 13 10:22:29 2022 +0100 i18n: display item value in user language (#71590) commit b2c574e672e15b19ed08ad66f0171f5855a4c095 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Dec 12 14:35:28 2022 +0100 i18n: update digests after catalog changes (#71590) commit 87865cf8b99bd15ff6436c9a8937aa85f70da760 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Dec 12 13:58:55 2022 +0100 cards: create/use translated digests (#71590) commit 82ba22b0055ff47ce0ec89b81465c7cbf9608f61 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Dec 12 14:12:06 2022 +0100 misc: make digests update after job work with multiple formdefs (#71590) commit 6e47ebc9b1fadb19fdca99bc67d3f2a3be85d1f2 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun Dec 11 17:57:49 2022 +0100 i18n: add |translate template filter (#71590)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
i18n: add |translate template filter (#71590)