Traducción de archivos de software de Sun
25
Considere ahora el ejemplo siguiente, donde var1 es un entero establecido como
25 y var2 es una cadena establecida como libre.
printf(" hay %s un %d %%",var2,var1)
Esto mostrará la salida siguiente:
hay libre un 25 %
Formato de archivo PO
Los archivos PO se obtienen ejecutando una utilidad con el código fuente C que
filtra todo el contenido de las comillas en las instrucciones printf y lo coloca en un
archivo objeto portable (po). A continuación, se compila el código fuente C en
formato binario. Como los archivos PO no saben lo que es un 'tipo', simplemente se
asume que el texto es texto. Esto significa que es posible intercambiar %s y %d en
los mensajes y compilarlo en un archivo MO sin ningún error. Cuando se ejecuta el
binario y éste llama al mensaje determinado, Solaris comprueba el tipo de cada
variable y asigna los valores correctos a éstas, sin que importe el orden en que estén
colocadas. Esto sólo funciona si cada variable de una cadena es de un tipo
diferente.
Si el número 25 estuviera contenido en una cadena, el mensaje anterior tendría el
aspecto siguiente:
msgid " there is %s %s %%"
msgstr " hay %s un %s %%"
Al intercambiar los %s no se cambiará la visualización de la cadena, de forma que
si necesita reorganizar el orden de las cadenas de su traducción puede hacer lo
siguiente:
msgid " there is %s %% %s"
msgstr " Hay aproximadamente un %1$s %% de espacio %2$s"
coma flotante
%f
coma flotante exponencial
%e
%e o %f
%g
\...
caracteres de escape, véase la nota al final
%h
corto
%%
muestra el símbolo %
Tipo de variable
Espacio de reserva