Modification du code Python

Tout d'abord, assurez-vous que le texte à traduire est dans un format raisonnable pour la traduction.

  • Ne construisez pas de texte en combinant des fragments de texte dans le code. Cela rend impossible la réorganisation du texte en fonction de la grammaire des langues cibles et rend difficile la compréhension du contexte des chaînes par les traducteurs.
  • Evitez d'utiliser plusieurs paramètres dans une chaîne. Les traducteurs peuvent avoir besoin de modifier l'ordre des paramètres.
  • Éviter l'utilisation d'abréviations et de colloquialismes difficiles à traduire.

Placez chaque chaîne traduisible dans un appel à la fonction de soulignement "_". Par exemple :

_("File not found: %s") % filespec

La fonction _ extrait la traduction, si elle est disponible, lorsque l'instruction contenant la chaîne est exécutée. Les limitations suivantes s'appliquent :

  • Ne transmettez jamais une chaîne vide comme argument à _, , c'est-à-dire _(""). Cela endommagera le mécanisme de translation.
  • N'utilisez pas la fonction de soulignement dans du texte statique tel que des variables de classe. La fonction _ est définie de manière dynamique.
  • La fonction _ , telle que définie dans le module extension , renvoie toujours du texte Unicode même si IBM® SPSS® Statistics s'exécute en mode page de codes. S'il existe des paramètres de texte dans la chaîne comme dans l'exemple ci-dessus, le paramètre doit être au format Unicode. La conversion automatique utilisée dans la logique de substitution de paramètre échouera si le texte du paramètre contient des caractères étendus. L'une des manières de résoudre ce problème est la suivante, en supposant que le module locale a été importé.
if not isinstance(filespec, unicode):
   filespec = unicode(filespec, locale.getlocale()[1])
   _("File not found: %s") % filespec

Remarque: Il existe un conflit entre la définition de la fonction _ telle qu'elle est utilisée par les modules Python (pygettext et gettext) qui gèrent les traductions et l'affectation automatique des valeurs d'expression générées de manière interactive à la variable _. . Pour résoudre ce problème, le code d'initialisation de la traduction dans le module extension désactive cette affectation.

Les appels à la fonction spss.StartProcedure (ou à la classe spss.Procedure ) doivent utiliser le format spss.StartProcedure(procedureName,omsIdentifier)procedureName est le nom traduisible associé à la sortie de la procédure et omsIdentifier est l'identificateur de commande OMS invariant de langage associé à la procédure. Par exemple :

spss.StartProcedure(_("Demo"),"demoId")