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 por locale=, evitando así la localización del lado del cliente y permitiendo que las aplicaciones cambien de configuración regional simplemente enviando el locale= con las solicitudes de texto de 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 campos de catálogo siguientes:

Campo de catálogo Elemento de cadena en el campo

catalog::ImageSet

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

A 0xrrggbb el valor del color al principio de un campo localizable se excluye de la localización y se pasa sin modificaciones.

catalog::Map

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

catalog::Targets

El valor de cualquiera objetivo.*.label y objetivo.*.userdata propiedad.

catalog::UserData

El valor de cualquier propiedad.

Sintaxis de cadena

Localization-enabled string los elementos 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 localizedString siguiendo esto 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 lugar en subcadenas con o sin codificación HTTP. El servidor coincide con todo el localizationToken ^loc=locId^ pattern para separar subcadenas.

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

El mapa de traducción

attribute::LocaleStrMap define las reglas que utiliza el servidor para determinar qué localizedStrings para volver al cliente. Consiste en una lista de entradas locales (que coinciden con los valores especificados por locale=), cada uno con uno o más id de configuración regional internos ( locId). Por ejemplo:

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

Empty locId Los valores indican que la variable defaultString debe devolverse, si está disponible.

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

El proceso de traducción

Se proporciona el mapa de traducción de ejemplo 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, el localizedString marcado con ^loc=N^ debería devolverse. Si esto localizationToken no está presente en el stringElement, se devuelve un valor vacío.

Digamos que… catalog::UserData para myCat/myItem contiene lo siguiente (saltos de línea insertados para 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 vacío locale valor. El servidor utiliza esta entrada para gestionar todo locale= valores que no se especifican explícitamente de otra manera en el mapa de traducción.

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

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

Ejemplos

Familias lingüísticas

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

Para nuestro ejemplo, queremos añadir compatibilidad con el inglés específico de Estados Unidos ( *locId* EUS) e inglés específico del Reino Unido ( *locId* EUK), para admitir la ortografía alternativa ocasional. Si EUK o EUS no existen, recurriremos a E. Del mismo modo, las variantes alemanas específicas de Austria ( DAT) podría estar disponible donde sea necesario mientras se devuelve 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

En la tabla siguiente se describen los resultados de algunos elementos representativos stringElement y locale combinaciones:

stringElement locale

Cadena de salida

^loc=E^Inglés^loc=D^Alemán

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^Austrian

en, en_us

en_uk

de, de_de

de_at

todos los demás

Inglés

RU-inglés

Alemán

austriaco

-

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

Tenga en cuenta que para este ejemplo la variable locId El DDE no existe en attribute::LocaleStrMap y, por lo tanto, la subcadena asociada a esto locId nunca se devuelve.

en, en_uk

en_us

de, de_at, de_de

todos los demás

Inglés

inglés estadounidense

Alemán

-

En esta página