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.
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. |
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.
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.
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
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
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 - |