Amélioration #5017
fermé[Po/Application] Il n'est pas possible d'utiliser la notion de contexte dans le cadre de la définition d'une application
0%
Description
Depuis la 3.2.12, il est possible d'utiliser la notion de contexte de traduction dans le code mais pas dans les définition d'application/action. Ce qui fait perdre en cohérence et en uniformité dans la définition des po.
Mis à jour par Marc Claverie il y a plus de 11 ans
- Statut changé de Nouveau à À analyser
- Assigné à mis à Éric Brison
- Version cible mis à 3.2.17
Mis à jour par Charles Bonnissent il y a plus de 11 ans
- Statut changé de À analyser à Rejeté
- Solution proposée mis à jour (diff)
La notion de contexte n'est pas applicable dans ce cas.
Mis à jour par Éric Brison il y a plus de 11 ans
Il n'est pas nécessaire d'ajouter une fonction N_ pour la fonction pour ajouter une entrée dans le catalogue.
Pour cela il suffit de modifier le programme d'extraction de "po" pour ajouter une détection de contexte sur l'argument 2 :
--keyword="N_:1" \
--keyword="N_:1,2c" \
Par contre, cela ne résout en rien le problème initial de localiser le .app.
Pour cela, il est nécessaire que la fonction N_ retourne aussi le contexte. pour que la fonction _ "modifiée" puisse récupérer aussi le contexte.
Exemple :
$x=N_("Hello","ctx"); // x = "Hello"
$ix=___($x,"ctx"); // works
$ix=_($x); // don't works
On ne peut pas utiliser _ car il n'utilise pas le contexte.
La seule solution est d'ajouter, la clef de contexte dans le .app aussi
Ensuite, il sera nécessaire de modifier le code qui a besoin des traductions pour avoir le nom localisé. Pour cela, la classe application devra fournir une méthode fournissant le nom localisé
Ceci est à réaliser aussi pour les paramètres applicatifs