Extensiones de archivo |
.po |
Extensión API |
gettext |
Importación |
Sí |
Exportación |
Sí |
Compatibilidad con formularios plurales |
Sí |
Compatibilidad con descripción |
Sí |
Opciones de formato |
|
.PO (Portable Object) es el formato estándar de archivo para la localización con GNU gettext, una biblioteca GNU de código abierto diseñada para simplificar el proceso de localización. Con GNU gettext, Strings Localizables se extraen del código fuente en un archivo PO para su traducción. Un archivo .PO es una serie de pares clave-valor. La clave msgid
es donde se coloca la cadena fuente mientras que el valor msgstr
es donde va la traducción.
gettext extrae Strings del código fuente en un .POT (plantilla portátil de objetos). A partir de localizaciones definidas, gettext convierte el archivo .POT en archivos .PO específicos de la localización para cargar en una herramienta CAT para su traducción. Después de traducir, gettext convierte los archivos PO traducidos en archivos .MO (archivos objeto automático) que se utilizan finalmente para la localización.
Los archivos .POT son idénticos a los archivos .POT, excepto que los archivos .POT generalmente son utilizados por gettext para generar archivos .PO específicos de localización. Traducir directamente un archivo .POT y renombrarlo según la localización posterior no genera problemas. phrase admite la traducción de:
-
Archivos .PO
-
Archivos .PO bilingües
-
Archivos .MO legibles por máquina
msgctxt
se utilizará como prefijo clave, combinado con msgid
y separado por ||
.
Opciones de formato
Identificador |
msgid_as_default |
Tipo |
Booleano |
Carga |
true |
Descarga |
false |
Por defecto |
false |
Descripción |
Toma el contenido de la traducción del valor |
Identificador |
is_bilingual_file |
Tipo |
Booleano |
Carga |
true |
Descarga |
false |
Por defecto |
false |
Descripción |
Las traducciones fuente y meta se importarán del archivo cargado: el contenido fuente se recogerá del valor |
Ejemplo de código
msgid "" msgstr "" "Idioma: Inglés\n" "MIME-Versión: 1,0\n" "Tipo de contenido: texto/sin formato; juego de caracteres=UTF-8\n" "Codificación de transferencia de contenido: 8bit\n" "Formas plurales: nplurales=2; plurales=(n != 1);\n" "Generador X: PhraseApp (phraseapp.com)\n" msgid "boolean_key" msgstr "--- true\n" msgid "empty_string_translation" msgstr "" # ¡Esta es la increíble descripción de esta clave! msgid "key_with_description" msgstr "¡Échale un vistazo! This key has a description! (At least in some formats)" msgid "key_with_line-break" msgstr "Estas traducciones contienen\na salto de línea." msgid "nested.deeply.key" msgstr "Wow, this clave is nested even deep." msgid "nested.key" msgstr "Esta clave está anidada dentro de un espacio de nombres". msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Solo se encontró una pluralización." msgstr[1] "¡Vaya, tienes %s pluralizaciones!" msgid "sample_collection" msgstr "--\n- primer item\n- segundo item\n- tercer item\n" msgid "simple_key" msgstr "simple clave, simple mensaje, so simple.2" #, inexacto msgid "unverified_key" msgstr "Necesito verificación, por favor verificar (In some formats we also export this status)"
Típica entrada gettext:
# descripción (opcional) msgid "key-name" msgstr "Mi traducción"
gettext Header
El encabezado de un archivo gettext puede contener un nombre de localización y datos para formas plurales que se extraen al importar:
msgid "" msgstr "" "Idioma: en\n" "MIME-Versión: 1,0\n" "Tipo de contenido: texto/sin formato; juego de caracteres=UTF-8\n" "Codificación de transferencia de contenido: 8bit\n" "Formas plurales: nplurales=2; plurales=(n != 1);\n" "Generador X: PhraseApp (phraseapp.com)\n"
Descripciones
Los comentarios en un archivo gettext se agregan como descripciones clave al importar:
# Esta es mi descripción msgid "app_title" msgstr "Mi proyecto software"
Context
gettext usa la notación msgctxt
para distinguir diferentes contextos para el mismo msgid
. Cada nombre clave debe ser único, por lo que se agrega msgctxt
como la primera parte del nombre clave, separada por dos símbolos de tubería ||
:
msgctxt "menú" msgid "Abrir" msgstr "Soy una traducción" msgctxt "foro" msgid "Abrir" msgstr "Soy alguna otra traducción"
Para agregar el msgctxt
a una nueva clave, antepóngalo al nombre de la clave:
my_context||my_key_name
Salida gettext resultante:
... msgctxt "my_context" msgid "my_key_name" ...
Formularios plurales
gettext admite formas plurales para una traducción:
msgid "new_messages" msgid_plural "" msgstr[0] "Tienes un nuevo mensaje" msgstr[1] "Tienes %{count} mensajes nuevos"
Fuzzy
La palabra clave inexacta se utiliza para la verificación traductora. Inexacto invoca automáticamente el proceso de no verificación dentro de la aplicación.
#, inexacto msgid "app_title" msgstr "Mi proyecto software"