intllib/README-es_UY.md

5.2 KiB

Biblioteca de Internacionalización para Minetest

Por Diego Martínez (kaeza). Lanzada bajo WTFPL.

Éste mod es un intento de proveer soporte para internacionalización para otros mods (lo cual Minetest carece actualmente).

Cómo usar

Para usuarios finales

Para usar éste mod, simplemente instálalo y habilítalo en la interfaz.

Éste mod intenta detectar el idioma del usuario, pero ya que no existe una solución portable para hacerlo, éste intenta varias alternativas, y utiliza la primera encontrada:

  • Opción language en minetest.conf.
  • Si ésta no está definida, usa la variable de entorno LANG (ésta está siempre definida en SOs como Unix).
  • Si todo falla, usa en (lo cual básicamente significa textos sin traducir).

En todo caso, el resultado final debe ser el In any case, the end result should be the Código de Idioma ISO 639-1 del idioma deseado. Tenga en cuenta tambien que (de momento) solo los dos primeros caracteres son usados, así que por ejemplo, las opciones de_DE.UTF-8, de_DE, y de son iguales.

Algunos códigos comúnes: es para Español, pt para Portugués, fr para Francés, it para Italiano, de para Aleman.

Para desarrolladores

Para habilitar funcionalidad en tu mod, copia el siguiente fragmento de código y pégalo al comienzo de tus archivos fuente:

-- Boilerplate to support localized strings if intllib mod is installed.
local S
if minetest.get_modpath("intllib") then
	S = intllib.Getter()
else
	-- Si no requieres patrones de reemplazo (@1, @2, etc) usa ésto:
	S = function(s) return s end

	-- Si requieres patrones de reemplazo, pero no escapes, usa ésto:
	S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end

	-- Usa ésto si necesitas funcionalidad completa:
	S = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
end

Tambien necesitarás depender opcionalmente de intllib. Para hacerlo, añade intllib? a tu archivo depends.txt. Ten en cuenta tambien que si intllib no está instalado, la función S es definida para regresar la cadena sin cambios. Ésto se hace para evitar la necesidad de llenar tu código con montones de ifs (o similar) para verificar que la biblioteca está instalada.

Luego, para cada cadena de texto a traducir en tu código, usa la función S (definida en el fragmento de arriba) para regresar la cadena traducida. Por ejemplo:

minetest.register_node("mimod:minodo", {
	-- Cadena simple:
	description = S("My Fabulous Node"),
	-- Cadena con patrones de reemplazo:
	description = S("@1 Car", "Blue"),
	-- ...
})

Nota: Las cadenas en el código fuente por lo general deben estar en ingles ya que es el idioma que más se habla. Es perfectamente posible especificar las cadenas fuente en español y proveer una traducción al ingles, pero no se recomienda.

Luego, crea un directorio llamado locale dentro del directorio de tu mod, y crea un archivo "plantilla" (llamado template.txt por lo general) con todas las cadenas a traducir (ver Formato de archivo de traducciones más abajo). Los traductores traducirán las cadenas en éste archivo para agregar idiomas a tu mod.

Para traductores

Para traducir un mod que tenga soporte para intllib al idioma deseado, copia el archivo locale/template.txt a locale/IDIOMA.txt (donde IDIOMA es el Código de Idioma ISO 639-1 de tu idioma (es para español).

Abre el archivo en tu editor favorito, y traduce cada línea colocando el texto traducido luego del signo de igualdad.

Ver Formato de archivo de traducciones más abajo.

Formato de archivo de traducciones

He aquí un ejemplo de archivo de idioma para el español (es.txt):

# Un comentario.
# Otro comentario.
Ésta línea es ignorada porque no tiene un signo de igualdad.
Hello, World! = Hola, Mundo!
String with\nnewlines = Cadena con\nsaltos de linea
String with an \= equals sign = Cadena con un signo de \= igualdad

Archivos de idioma (o traducción) son archivos de texto sin formato que consisten de líneas con el formato texto fuente = texto traducido. El archivo debe ubicarse en el subdirectorio locale del mod, y su nombre debe ser las dos letras del Código de Idioma ISO 639-1 del lenguaje al cual se desea traducir.

Los archivos deben usar la codificación UTF-8.

Las líneas que comienzan en el símbolo numeral (#) son comentarios y son ignoradas por el lector. Tenga en cuenta que los comentarios terminan al final de la línea; no hay soporte para comentarios multilínea. Las líneas que no contengan un signo de igualdad (=) tambien son ignoradas.

Palabras finales

Gracias por leer hasta aquí. Si tienes algún comentario/sugerencia, por favor publica en el tema en los foros. Para reportar errores, usa el rastreador en Github.

¡Que se hagan las traducciones! :P

--

Suyo, Kaeza