Localización de cadenas de texto

La localización de cadenas de texto permite que los catálogos de imágenes contengan varias representaciones específicas de la configuración regional para el mismo valor de cadena.

El servidor devuelve al cliente la representación que coincide con la configuración regional especificada con locale=, evitando así la localización del lado del cliente y permitiendo que las aplicaciones cambien de configuraciones regionales simplemente enviando el valor locale= apropiado con las solicitudes de texto IS.

Ámbito

La localización de cadenas de texto se aplica a todos los elementos de cadena que incluyen el token de localización ^loc= *locId*^ en los siguientes campos de catálogo:

Campo Catálogo Elemento de cadena en el campo

catálogo::ImageSet

Cualquier subelemento que contenga una cadena traducible (delimitado por cualquier combinación de separadores ',' ';' ':' y/o el inicio/final del campo).

Un valor de color 0xrrgbb al principio de un campo localizable se excluye de la localización y se transfiere sin modificaciones.

catálogo::Map

Cualquier valor de atributo entre comillas simples o dobles, excepto los valores de los atributos coords= y shape= .

catálogo::Targets

El valor de cualquier destinatario .Destino *.label y .*.userdata propiedad.

catálogo::UserData

El valor de cualquier propiedad.

Sintaxis de cadena

Los elementos string habilitados para la localización del catálogo de imágenes constan de una o más cadenas localizadas, cada una precedida por un token de localización.

stringElement

[ defaultString ]*{ localizationToken localizedString }

localizationToken

^loc= locStr ^

locId

ID de configuración regional interna para el localizedString siguiendo este localizationToken .

localizedString

Cadena localizada.

defaultString

Cadena que se utilizará para configuraciones regionales desconocidas.

locId debe ser ASCII y no puede incluir '^'.

'^' puede ocurrir en cualquier parte de subcadenas con o sin codificación HTTP. El servidor coincide con todo el patrón localizationToken ^loc=locId^ para separar subcadenas.

stringElements que no incluyen al menos uno no localizationToken se tienen en cuenta para la localización.

El mapa de traducción

attribute::LocaleStrMap define las reglas que utiliza el servidor para determinar cuál localizedStrings se devolverá al cliente. Consiste en una lista de entrada locales (que coincide con los valores especificados con locale=), cada uno con ninguno o más identificadores de configuración regional internos ( locId). Por ejemplo:

attribute::LocaleStrMap= en,E|nl,N|de,D|,

Los valores locId vacíos indican que el defaultString debe devolverse, si está disponible.

Consulte la descripción de attribute::LocaleStrMap para obtener más información.

El proceso de traducción

Dado el ejemplo de mapa de traducción anterior y la solicitud /is/image/myCat/myItem?req=&locale=nl, el servidor busca primero " nl" en el mapa de configuración regional. La entrada coincidente nl,N indica que para cada stringElement, debe devolverse el localizedString marcado con ^loc=N^. Si este localizationToken no está presente en el stringElement, se devuelve un valor vacío.

Supongamos que catalog::UserData para myCat/myItem contiene lo siguiente (se insertan saltos de línea para una mayor claridad):

val1=111?? str1=Default1^loc=N^Dutch1^loc=D^German1?? val2=value2?? str2=^loc=E^English2^loc=N^Dutch2^loc=D^German2?? str3=Default3^loc=N^Dutch3^loc=D^German3

El servidor devolverá lo siguiente en respuesta a nuestra solicitud de ejemplo:

val1=111 str1=Dutch1 val2=value2 str2=Dutch2 str3=Dutch3

Configuraciones regionales desconocidas

En el ejemplo anterior, attribute::LocaleStrMap tiene una entrada con un valor locale vacío. El servidor utiliza esta entrada para gestionar todos los valores locale= que no se especifican explícitamente en el mapa de traducción.

El mapa de traducción de ejemplo especifica que, en tal caso, el defaultString debe devolverse si está disponible. Por lo tanto, se devolverá lo siguiente si este mapa de traducción se aplica a la solicitud /is/image/myCat/myItem?req=&locale=ja:

val1=111 str1=Default1 val2=value2 str2= str3=Default3

Ejemplos

Familias de idiomas

Se pueden asociar varios valores locId con cada locale en el mapa de traducción. Esto permite admitir variaciones específicas del país o la región (por ejemplo, inglés de EE. UU. vs inglés de Reino Unido) para seleccionar stringElements mientras se gestiona la mayoría de los contenidos con configuraciones regionales de base comunes (por ejemplo, inglés internacional).

Para nuestro ejemplo, queremos agregar compatibilidad con el inglés específico de EE. UU. ( *locId* EUS) y el inglés específico de Reino Unido ( *locId* EUK), para admitir la ortografía alternativa ocasional. Si no existen EUK o EUS, volveremos a E. De manera similar, las variantes específicas de Austria para Alemania ( DAT) podrían estar disponibles cuando sea necesario mientras devuelven el alemán común localizedStrings (marcado con D) la mayor parte del tiempo.

attribute::LocaleStrMap tendría este aspecto:

en,E|en_us,EUS,E|en_uk,EUK,E|de,D|de_at,DAT,D|de_de,D

La siguiente tabla describe el resultado de algunas combinaciones stringElement y locale representativas:

stringElement locale

Cadena de salida

^loc=E^English^loc=D^German

en,en_us, en_uk

de, de_at, de_de

todos los demás

Inglés

Alemán

-

^loc=E^English^loc=UKE^UK-English^loc=D^German^loc=DAT^Austria

en_us

en_uk

de, de_de

de_at

todos los demás

Inglés

UK-English

Alemán

Austria

-

^ loc=es^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch

Tenga en cuenta que para este ejemplo el locId DDE no existe en el atributo ::LocaleStrMap y, por lo tanto, nunca se devuelve la subcadena asociada con este locId .

en_uk

en_us

de, de_at, de_de

todos los demás

Inglés

US-English

Alemán

-

En esta página