Projet

Général

Profil

Development #71590

multilinguisme, traduction des sources de données fiche

Ajouté par Frédéric Péters il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
22 novembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à w.c.s. - Development #72299: pour des champs liste alimentés par des fiches, sur l'affichage d'une demande, prendre la version à jour du libelléFermé12 décembre 2022

Actions

Révisions associées

Révision 6e47ebc9 (diff)
Ajouté par Frédéric Péters il y a plus d'un an

i18n: add |translate template filter (#71590)

Révision 82ba22b0 (diff)
Ajouté par Frédéric Péters il y a plus d'un an

misc: make digests update after job work with multiple formdefs (#71590)

Révision 87865cf8 (diff)
Ajouté par Frédéric Péters il y a plus d'un an

cards: create/use translated digests (#71590)

Révision b2c574e6 (diff)
Ajouté par Frédéric Péters il y a plus d'un an

i18n: update digests after catalog changes (#71590)

Révision 9e02a63f (diff)
Ajouté par Frédéric Péters il y a plus d'un an

i18n: display item value in user language (#71590)

Révision de2daf67 (diff)
Ajouté par Frédéric Péters il y a plus d'un an

i18n: store item fields display value in original language (#71590)

Historique

#1

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é
#2

Mis à jour par Frédéric Péters il y a plus d'un an

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.

#3

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

#4

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.

#5

Mis à jour par Lauréline Guérin il y a plus d'un an

  • Statut changé de Solution proposée à Solution validée
#6

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)
#7

Mis à jour par Transition automatique il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#8

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF