Sintaxis de cadena
Los elementos string
habilitados para la localización en el catálogo de imágenes constan de una o más cadenas localizadas, cada una precedida por un token de localización.
El locId
debe ser ASCII y no puede incluir '^'.
El ^ puede aparecer en cualquier parte en subcadenas con o sin codificación HTTP. El servidor coincide con todo el patrón localizationToken
^loc=locId^
para separar las subcadenas.
Los stringElements
, que no incluyen al menos un localizationToken
, no se tienen en cuenta para la localización.
El mapa de traducción
attribute::LocaleStrMap
define las reglas que usa el servidor para determinar qué localizedStrings
debe devolver al cliente. Consiste en una lista de entradas locales
(que coinciden con los valores especificados con locale=
), cada una 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 se debe devolver defaultString
, si está disponible.
Consulte la descripción de attribute::LocaleStrMap
para obtener detalles.
El proceso de traducción
Dado 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
, se debe devolver el localizedString
marcado con ^loc=N^
. Si este(a) localizationToken
no está presente en stringElement
, se devuelve un valor vacío.
Supongamos 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 la 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 administrar todos los valores de locale=
que no se especifican explícitamente de otra manera en el mapa de traducción.
La asignación de traducción de ejemplo especifica que en tal caso se debe devolver defaultString
, si está disponible. Por lo tanto, se devuelve 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. El motivo es que permite admitir variaciones específicas de país o región (por ejemplo, inglés de EE. UU. frente a inglés de Reino Unido) para la selección stringElements
, al tiempo que se gestiona la mayoría de los contenidos con configuraciones regionales base comunes (por ejemplo, inglés internacional).
Para el ejemplo, se agrega compatibilidad con inglés específico de EE. UU. ( *
locId* EUS
) e inglés específico de Reino Unido ( *
locId* EUK
), para admitir la ortografía alternativa ocasional. Si EUK o EUS no existen, regresa a E. Del mismo modo, las variantes alemanas específicas de Austria (DAT
) podrían estar disponibles donde 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
En la tabla siguiente se describe el resultado de algunas combinaciones representativas de stringElement
y locale
:
elementoCadena | configuración regional | Cadena de salida |
---|---|---|
^loc=E^English^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 Para este ejemplo, el DDE locId de no existe en attribute::LocaleStrMap y, por lo tanto, la subcadena asociada a este locId de nunca se devuelve. |
en, en_uk en_us de, de_at, de_de todos los demás |
Inglés inglés estadounidense Alemán - |