Project

General

Profile

Development #71590

multilinguisme, traduction des sources de données fiche

Added by Frédéric Péters 2 months ago. Updated 30 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
22 November 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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.


Files


Related issues

Related to 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éSolution déployée12 December 2022

Actions

Associated revisions

Revision 6e47ebc9 (diff)
Added by Frédéric Péters 30 days ago

i18n: add |translate template filter (#71590)

Revision 82ba22b0 (diff)
Added by Frédéric Péters 30 days ago

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

Revision 87865cf8 (diff)
Added by Frédéric Péters 30 days ago

cards: create/use translated digests (#71590)

Revision b2c574e6 (diff)
Added by Frédéric Péters 30 days ago

i18n: update digests after catalog changes (#71590)

Revision 9e02a63f (diff)
Added by Frédéric Péters 30 days ago

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

Revision de2daf67 (diff)
Added by Frédéric Péters 30 days ago

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

History

#1

Updated by Frédéric Péters about 2 months ago

  • Related to Development #72299: pour des champs liste alimentés par des fiches, sur l'affichage d'une demande, prendre la version à jour du libellé added
#2

Updated by Frédéric Péters about 1 month ago

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

Updated by Lauréline Guérin about 1 month ago

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

Updated by Frédéric Péters about 1 month ago

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

Updated by Lauréline Guérin 30 days ago

  • Status changed from Solution proposée to Solution validée
#6

Updated by Frédéric Péters 30 days ago

  • Status changed from Solution validée to 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

Updated by Transition automatique 30 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF