Modificación del código Python

En primer lugar, asegúrese de que el texto que se va a traducir está en una forma razonable para la traducción.

  • No construya texto combinando fragmentos de texto en código. Esto hace que sea imposible reorganizar el texto de acuerdo con la gramática de los idiomas de destino y dificulta que los traductores entiendan el contexto de las cadenas.
  • Evite utilizar varios parámetros en una serie. Es posible que los conversores tengan que cambiar el orden de los parámetros.
  • Evitar el uso de abreviaturas y coloquialismos que son difíciles de traducir.

Encierre cada serie traducible en una llamada a la función de subrayado "_". Por ejemplo:

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

La función _ captará la conversión, si está disponible, cuando se ejecute la sentencia que contiene la serie. Se aplican las limitaciones siguientes:

  • Nunca pase una serie vacía como argumento a _, , es decir, _(""). Esto dañará el mecanismo de traducción.
  • No utilice la función de subrayado en texto estático como, por ejemplo, variables de clase. La función _ se define dinámicamente.
  • La función _ , tal como se define en el módulo extension , siempre devuelve texto Unicode aunque IBM® SPSS® Statistics se esté ejecutando en modo de página de códigos. Si hay parámetros de texto en la serie como en el ejemplo anterior, el parámetro debe estar en Unicode. La conversión automática utilizada en la lógica de sustitución de parámetros fallará si el texto del parámetro contiene caracteres ampliados. Una forma de resolverlo es la siguiente, suponiendo que se haya importado el módulo locale .
if not isinstance(filespec, unicode):
   filespec = unicode(filespec, locale.getlocale()[1])
   _("File not found: %s") % filespec

Nota: Hay un conflicto entre la definición de la función _ tal como la utilizan los módulos Python (pygettext y gettext) que manejan las conversiones, y la asignación automática de valores de expresión generados interactivamente a la variable _. Para resolverlo, el código de inicialización de conversión del módulo extension inhabilita esta asignación.

Las llamadas a la función spss.StartProcedure (o a la clase spss.Procedure ) deben utilizar el formato spss.StartProcedure(procedureName,omsIdentifier) donde procedureName es el nombre traducible asociado con la salida del procedimiento y omsIdentifier es el identificador de mandato OMS invariable de idioma asociado con el procedimiento. Por ejemplo:

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