![]() | ![]() | Guía de programación de GNOME | ![]() |
---|
Se pretende que GNOME pueda ejecutarse en distintas localidades y lenguajes, y los programas debieran tener esto en cuenta. No tienes que localizar los programas, sólo debes permitir que éstos sean traducibles y localizables.
Debes recordar que los diferentes idiomas humanos tienen diferentes gramáticas, así que no debieras suponer la forma de estructurar cada frase. Esto es importante, por ejemplo, cuando se construyen cadenas a partir de trozos separados.
La concatenación normalmente no es la forma correcta de construir
una cadena para que sea presentada al usuario. Normalmente terminan
en mensajes que no pueden ser traducidos correctamente en todos
los idiomas. En vez de concatenar, intenta usar
g_strdup_printf()
, por ejemplo:
/* Una forma no muy buena */ char *message = g_strconcat (_("Hello, "), name, _(", would you like fries with that?"), NULL); /* Una mejor forma */ char *message = g_strdup_printf (_("Hello, %s, would you like fries with that?"), name);
Esto permitirá al traductor mover %s donde corresponda según lo requiera la gramática del idioma en el cual trabaja.
Recuerda que no todos los idiomas forman los plurales añadiendo una «s» a las palabras. Además, las estructuras de frases pueden cambiar con los plurales. Por ejemplo,
/* Una forma no muy buena */ printf (_("%d happy monkey%s bouncing on the bed."), num_monkeys, (num_monkeys > 1) ? "s", ""); /* Una mejor forma */ printf ((num_monkeys > 1) ? _("%d happy monkeys bouncing on the bed."), : _("%d happy monkey bouncing on the bed."));
Se requiere de esta forma ya que el plural se forma de distintas maneras en distintos idiomas, y la estructura completa de la frase puede cambiar.
Si el programa muestra fechas u horas, usa la función
strftime()
para darles formato como
cadenas. Esto se encargará de usar la representación
adecuada de fecha y hora de acuerdo a la definición local
del usuario. Además, si el programa debe generar una
representación visual de un calendario, recuerda que en
algunos países se considera como primer día de la semana
el domingo y no el lunes. El programa debiera permitir
ambas formas de calendarios.
Si el programa usa medidas, asegúrate de permitir tanto el sistema métrico decimal como el sistema imperial (o anglosajón).
<< Rendimiento | Compatibilidad binaria en las bibliotecas >> |