Ayuda de contexto
En muchas ocasiones, la traducción de los mensajes compuestos por una única palabra (o por muy pocas palabras) resulta ambigua. Por ejemplo, el mensaje:
Open documents
Este mensaje se puede traducir de dos formas: «Abrir documentos» (si pensamos que se trata de una acción), o bien, «Documentos abiertos» (si creemos que hace referencia al número de documentos abiertos por una aplicación).
¿Cuál de ellas es la traducción correcta? Si estamos traduciendo un programa que pertenece a
la rama estable del repositorio de KDE (/branches/stable
), tenemos la posibilidad de
lanzar dicho programa y buscar el mensaje en cuestión en su interfaz. Pero si el archivo que
estamos traduciendo pertenece a la rama /trunk
tendremos que echar mano de otras
aproximaciones para salir de dudas. En el peor de los casos tendremos que disponer del código
fuente del programa, pero esta no es una opción recomendable, especialmente si no tenemos los
conocimientos necesarios.
Por fortuna, normalmente disponemos de opciones más indicadas para resolver este tipo de dudas.
Mensajes de ayuda de contexto
En muchas ocasiones, el programador ha sido lo suficientemente cuidadoso como para incluir información de contexto que ayude al traductor a decidir cómo debe traducir ciertos mensajes problemáticos. El programa Lokalize muestra esta información de contexto en un panel destinado a tal fin. Por ejemplo, en el ejemplo anterior (perteneciente al programa Kate), podemos observar lo siguiente:
Ahora queda claro el significado del mensaje, por lo que podemos optar por la traducción correcta sin ningún tipo de dudas: «Documentos abiertos».
El fragmento de archivo PO que contiene el ejemplo anterior sería el siguiente:
#: app/katesession.cpp:640 app/katesession.cpp:759 app/katesession.cpp:836 msgctxt "The number of open documents" msgid "Open Documents" msgstr "Documentos abiertos"
Etiquetas semánticas
Otra fuente de ambigüedad en muchos mensajes son los parámetros (%1, %2, etc.). Aunque a veces son obvios (como en el caso de los plurales, donde el parámetro %1 siempre se refiere al elemento que motiva el uso de la cadena en plural), otras no lo son.
Por fortuna, el programador puede usar etiquetas semánticas de texto enriquecido en los parámetros de una cadena de texto. Por ejemplo:
<filename>%1</filename> selected
En este caso nos está indicando que el parámetro %1 hace referencia a un nombre de archivo. Sin dicha marca, ¿«selected» se traduce como «seleccionado», o como «seleccionada»? Con esta pequeña ayuda por parte del programador, la traducción correcta del ejemplo anterior sería:
<filename>%1</filename> seleccionado
Este tipo de etiquetas semánticas no se usan únicamente para identificar parámetros. También se pueden usar para marcar determinadas palabras, frases o incluso párrafos. Estas etiquetas pueden contener ciertos atributos con algún valor encerrado entre comillas dobles inglesas. En ningún caso se deben traducir los nombres de las etiquetas, de los atributos, ni sus posibles valores. A continuación se listan las diversas etiquetas semánticas que se pueden usar:
Categoría | Descripción | Etiqueta | Uso |
Etiquetas de elementos de frases | Proporcionan significado a frases o a partes de ellas. | <application> | Identifica el nombre de una aplicación (su contenido no se traduce). |
<bcode> | Encierra un bloque de código fuente con saltos de línea (normalmente, su contenido no se traduce). | ||
<command> | Identifica una orden de la consola (su contenido no se traduce). Puede contener el atributo section. | ||
<email> | Identifica una dirección de correo electrónico (su contenido no se traduce, excepto cuando la dirección de correo electrónico se incluye usando el atributo address). | ||
<emphasis> | Encierra texto que se debe mostrar de forma destacada (normalmente en cursiva). Puede contener el atributo strong con los valores 1, yes o true para indicar que el texto se muestra en negrita en lugar de en cursiva. | ||
<envar> | Identifica una variable de entorno (su contenido no se traduce). El nombre de la variable no debe usar el símbolo $, ya que se antepondrá automáticamente al formatear el texto final. | ||
<filename> | Identifica un nombre de archivo, directorio o ruta completa (su contenido no se traduce). Los separadores de la
ruta se transformarán a los que sean nativos de la plataforma de destino. Puede contener las etiquetas
<envar> y <placeholder> en su interior. |
||
<icode> | Encierra un trozo de código fuente sin saltos de línea (su contenido no se traduce). Puede contener las etiquetas
<envar> y <placeholder> en su interior. |
||
<interface> | Identifica un elemento de la interfaz gráfica de usuario. | ||
<link> | Identifica un enlace a un recurso (su contenido no se traduce, excepto cuando la URL del enlace se incluye usando el atributo url). | ||
<message> | Hace referencia a un mensaje externo a mostrar al usuario. Puede contener cualquier etiqueta de elemento de frase en su interior. | ||
<nl> | Salto de línea (normalmente aparece en forma abreviada como <nl/> ). |
||
<note> | Encierra una nota adicional de importancia de importancia para el tema tratado. No debe contener explícitamente el texto Nota:, ya que se añadirá automáticamente al formatear el texto. Si se quiere usar un texto distinto de Nota, se debe indicar mediante el atributo label. Puede contener cualquier etiqueta de elemento de frase en su interior. | ||
<placeholder> | Encierra un texto a sustituir por parte del usuario, o un elemento genérico de una lista. | ||
<shortcut> | Una combinación de teclas o pulsaciones. | ||
<warning> | Encierra una sentencia que consiste en una advertencia sobre el tema tratado. No debe contener explícitamente el texto Advertencia:, ya que se añadirá automáticamente al formatear el texto. Si se quiere usar un texto distinto de Advertencia, se debe indicar mediante el atributo label. Puede contener cualquier etiqueta de elemento de frase en su interior. | ||
Etiquetas de estructuras | Se usan para ordenar textos largos en títulos, párrafos, etc. Admiten cualquier etiqueta de oraciones y de elementos de frases en su interior. | <item> | Encierra un elemento de una lista. Debe estar dentro de una etiqueta <list> . |
<list> | Delimita una lista de elementos. Solo puede contener etiquetas <item> y debe estar
dentro de una etiqueta <para> . |
||
<para> | Encierra un párrafo de texto. | ||
<subtitle> | Encierra un subtítulo de un texto. | ||
<title> | Encierra el título de un texto. |
Marcadores de contexto
Normalmente, los mensajes de contexto aclaratorios introducidos por el programador suelen ser suficientes para optar por una u otra traducción. Pero en otras ocasiones nos interesa saber si el mensaje que estamos traduciendo se muestra en un determinado elemento de la interfaz de usuario (por ejemplo, en un botón o en un menú), o si, por el contrario, se muestra en otro lugar (por ejemplo, como texto de un mensaje de error).
Para este propósito, el programador puede usar los marcadores de contexto, que contienen
el papel semántico y el lugar de la interfaz gráfica donde aparece el mensaje, con la
forma @papel:lugar
. El papel es obligatorio, pero el lugar es
opcional.
El programa Lokalize muestra esta información de contexto de la siguiente forma:
El fragmento de archivo PO que contiene el ejemplo anterior sería el siguiente:
#: settings/viewmodes/columnviewsettingspage.cpp:73 #: settings/viewmodes/iconsviewsettingspage.cpp:85 msgctxt "@item:inlistbox Text width" msgid "Small" msgstr "Pequeña"
Están disponibles los siguientes marcadores de contexto:
Papel | Descripción | Lugar | Uso |
@action | Texto de todos los elementos gráficos que se pueden pulsar y que produce una acción. | :button | Botones de ventanas y diálogos. |
:inmenu | Entradas de menú que realizan una acción. | ||
:intoolbar | Botones de barras de herramientas. | ||
@title | Texto que sirve de título en la interfaz gráfica de usuario. | :window | Título de ventana. |
:menu | Nombre de menú. | ||
:tab | Nombre de pestaña. | ||
:group | Grupo de opciones. | ||
:column | Nombre de columna. | ||
:row | Nombre de fila. | ||
@option | Etiqueta de texto de opciones que se pueden activar y desactivar, o de entre las que se puede elegir una. | :check | Etiqueta de casilla de verificación. |
:radio | Etiqueta de botón de opción. | ||
@label | Etiqueta de elemento gráfico que no es @action, @title ni @option. | :slider | Etiquetas de deslizadores. |
:spinbox | Etiquetas de cuadros giratorios. | ||
:listbox | Listas y cajas combinadas. | ||
:textbox | Texto y campos de edición. | ||
:chooser | Elementos gráficos de selección (tipos de letra, colores, etc.). | ||
@item | Textos que se pueden considerar como una de entre diversas posibilidades o propiedades. | :inmenu | Elementos mostrados como entradas de menú. |
:inlistbox | Elementos de listas y cajas combinadas. | ||
:intable | Elementos mostrados en formularios de tipo tabla. | ||
:inrange | Etiquetas de intervalos para deslizadores, etc. | ||
:intext | Palabras y frases insertadas en otros mensajes. | ||
:valuesuffix | Sufijo añadido a un valor, incluyendo espacios (por ejemplo, en un cuadro giratorio). | ||
@info | Textos generales para mostrar información al usuario que no pertenecen a ninguna de las categorías anteriores. | :tooltip | Ayudas emergentes. |
:whatsthis | Explicaciones ¿Qué es esto? para elementos gráficos. | ||
:placeholder | Pista sobre lo que se espera que introduzca el usuario en un campo de entrada cuando todavía no contiene ningún valor. | ||
:status | Textos de paneles de estado (como la barra de estado). | ||
:progress | Estado actual de un proceso en curso. | ||
:usagetip | Consejo que informa al usuario sobre ciertas posibilidades en un determinado contexto (como un consejo del día durante el inicio de una aplicación). | ||
:credit | Nombres de colaboradores y trabajo que han realizado. | ||
:shell | Información de salida por el terminal. |
Notas:
Todos los marcadores de contexto generan texto sin formato, excepto @info (cuando aparece aislado) y las combinaciones @info:tooltip, @info:whatsthis e @info:usagetip, que producen texto enriquecido (con etiquetas HTML). La combinación @info:shell produce texto de terminal (similar al texto sin formato, aunque puede incluir secuencias de escape).
Los marcadores de contexto pueden usar los modificadores de formato /plain
, /rich
y /term
para producir, respectivamente, texto sin formato, texto enriquecido y
texto de terminal. Este modificador aparece a continuación del marcador de contexto (por ejemplo,
@info/plain
).
Recursos
Gran parte del contenido de esta página está sacado de la página de semántica de i18n de KDE TechBase.