A localização da string de texto permite que catálogos de imagens contenham várias representações específicas de localidade para o mesmo valor de string.
O servidor retorna ao cliente a representação correspondente à localidade especificada com locale=
, evitando assim a localização do lado do cliente e permitindo que os aplicativos alternem as localidades simplesmente enviando o valor locale=
apropriado com as solicitações de texto IS.
A localização da string de texto é aplicada a todos os elementos da string que incluem o token de localização ^loc= *
locId*^
nos seguintes campos de catálogo:
Campo Catálogo | Elemento de cadeia de caracteres no campo |
---|---|
catálogo::ImageSet |
Qualquer subelemento que contenha uma string traduzível (delimitada por qualquer combinação de separadores ',' ';' ':' e/ou o início/fim do campo). Um valor de cor 0xrrggbb no início de um campo localizável é excluído da localização e passado sem modificação. |
catálogo::Mapa |
Qualquer valor de atributo entre aspas simples ou duplas, exceto os valores dos atributos e shape= . |
catálogo::Metas |
O valor de qualquer destino .*.label e target.propriedade *.userdata . |
catálogo::UserData |
O valor de qualquer propriedade. |
Os elementos string
habilitados para localização no catálogo de imagem consistem em uma ou mais strings localizadas, cada uma precedida por um token de localização.
stringElement |
[ defaultString ]*{ localizationToken localizedString } |
localizationToken |
^loc= locStr ^ |
locId |
ID de localidade interna para a localizedString seguindo este localizationToken . |
localizedString |
Sequência localizada. |
defaultString |
Sequência de caracteres a ser usada para localidades desconhecidas. |
locId
deve ser ASCII e pode não incluir '^'.
'^' pode ocorrer em qualquer lugar em substrings com ou sem codificação HTTP. O servidor corresponde todo o padrão localizationToken
^loc=locId^
a subsequências de caracteres.
stringElements
que não incluam pelo menos um não localizationToken
sejam considerados para localização.
attribute::LocaleStrMap
define as regras usadas pelo servidor para determinar qual retornar localizedStrings
ao cliente. Consiste em uma lista de entrada locales
(correspondendo aos valores especificados com locale=
), cada uma com nenhuma ou mais ids de localidade internas ( locId
). Por exemplo:
attribute::LocaleStrMap= en,E|nl,N|de,D|,
Valores vazios locId
indicam que defaultString
deve ser retornado, se disponível.
Consulte a descrição de attribute::LocaleStrMap
para obter detalhes.
Dado o exemplo de mapa de tradução acima e a solicitação /is/image/myCat/myItem?req=&locale=nl
, o servidor procura primeiro por " nl
" no mapa de localidade. A entrada correspondente nl,N
indica que para cada stringElement
, localizedString
marcado com ^loc=N^
deve ser retornado. Se localizationToken
não estiver presente no stringElement
, um valor vazio será retornado.
Digamos que catalog::UserData
para myCat/myItem
contém o seguinte (quebras de linha inseridas para maior clareza):
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
O servidor retornaria o seguinte em resposta à nossa solicitação de exemplo:
val1=111 str1=Dutch1 val2=value2 str2=Dutch2 str3=Dutch3
No exemplo acima, attribute::LocaleStrMap
tem uma entrada com um valor locale
vazio. O servidor usa essa entrada para manipular todos os valores locale=
que não são explicitamente especificados do contrário no mapa de tradução.
O mapa de tradução de exemplo especifica que, nesse caso, defaultString
deve ser retornado, se disponível. Assim, o seguinte seria retornado se esse mapa de tradução fosse aplicado à solicitação /is/image/myCat/myItem?req=&locale=ja
:
val1=111 str1=Default1 val2=value2 str2= str3=Default3
Famílias de línguas
Vários valores locId
podem ser associados a cada locale
no mapa de tradução. Isso permite o suporte a variações específicas de país ou região (por exemplo, inglês americano ou inglês do Reino Unido) para selecionar stringElements
, ao mesmo tempo que lida com a maioria dos conteúdos com localidades base comuns (por exemplo, inglês internacional).
Para nosso exemplo, queremos adicionar suporte para inglês específico dos EUA ( *
locId* EUS
) e inglês específico do Reino Unido ( *
locId* EUK
), para oferecer suporte à ortografia alternativa ocasional. Se o EUK ou o EUS não existissem, recuaríamos para E. Da mesma forma, as variantes alemãs específicas da Áustria ( DAT
) poderiam ser disponibilizadas, quando necessário, ao retornar o alemão comum localizedStrings
(marcado com D
) durante a maior parte do tempo.
attribute::LocaleStrMap
terá esta aparência:
en,E|en_us,EUS,E|en_uk,EUK,E|de,D|de_at,DAT,D|de_de,D
A tabela a seguir descreve a saída de algumas combinações representativas stringElement
e locale
:
stringElement | locale | Sequência de caracteres de saída |
---|---|---|
^loc=E^Inglês^loc=D^Alemão |
en, en_us, en_uk de, de_at, de_de todos os outros |
Inglês Alemão - |
^loc=E^Inglês^loc=UKE^Reino Unido-Inglês^loc=D^Alemão^loc=DAT^Austríaco |
en, en_us en_uk de, de_de de_at todos os outros |
Inglês Reino Unido - Inglês Alemão austríaco - |
^ loc=en^Inglês^loc=USE^US-Inglês^loc=D^Alemão^loc=DDE^Deutsch Observe que, para este exemplo, o locId DDE não existe no atributo ::LocaleStrMap e, portanto, a subcadeia associada a este locId nunca é retornada. |
en, en_uk en_us de, de_at, de_de todos os outros |
Inglês Inglês dos EUA Alemão - |