A localização da sequência de caracteres de texto permite que os catálogos de imagem contenham várias representações específicas do local para o mesmo valor da sequência de caracteres.
O servidor retorna ao cliente a representação correspondente ao local especificado com locale=
, evitando assim a localização no lado do cliente e permitindo que os aplicativos alternem os locais simplesmente enviando o locale=
com as solicitações de texto IS.
A localização da cadeia de texto é aplicada a todos os elementos de cadeia de caracteres que incluem o token de localização ^loc= *
locId*^
nos seguintes campos de catálogo:
Campo Catálogo | Elemento de string no campo |
---|---|
catalog::ImageSet |
Qualquer subelemento que contenha uma string traduzível (delimitada por qualquer combinação de separadores ',' ';' ':' e/ou o início/fim do campo). A 0xrrggbb o valor da cor no início de um campo localizável é excluído da localização e transmitido sem modificação. |
catálogo::Mapa |
Qualquer valor de atributo entre aspas simples ou duplas, exceto os valores de coords= e forma= atributos. |
catálogo::Públicos-alvo |
O valor de qualquer público-alvo.*.label e público-alvo.*.userdata propriedade. |
catálogo::UserData |
O valor de qualquer propriedade. |
Habilitado para localização string
os elementos no catálogo de imagens 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 o localizedString seguindo este localizationToken . |
localizedString |
Sequência de caracteres localizada. |
defaultString |
Sequência de caracteres a ser usada para localidades desconhecidas. |
locId
deve ser ASCII e não pode incluir '^'.
'^' pode ocorrer em qualquer lugar em sub-strings com ou sem codificação HTTP. O servidor corresponde a todo localizationToken
^loc=locId^
padrão para separar subsequências.
stringElements
que não incluam pelo menos um localizationToken
não são considerados para localização.
attribute::LocaleStrMap
define as regras usadas pelo servidor para determinar quais localizedStrings
para retornar ao cliente. Ele consiste em uma lista de entradas locales
(correspondendo aos valores especificados com locale=
), cada um com nenhuma ou mais ids de localidade internas ( locId
). Por exemplo:
attribute::LocaleStrMap= en,E|nl,N|de,D|,
Empty locId
os valores indicam que a variável 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 do local. A entrada correspondente nl,N
indica que, para cada stringElement
, o localizedString
marcado com ^loc=N^
deve ser devolvido. Se isso localizationToken
não está presente no stringElement
, um valor vazio é 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 vazio locale
valor. O servidor usa essa entrada para lidar com todas as locale=
valores que não estão explicitamente especificados de outra forma no mapa de tradução.
O exemplo de mapa de tradução especifica que, nesse caso, o defaultString
deve ser retornado se disponível. Assim, o seguinte será retornado se este mapa de tradução for aplicado à solicitação /is/image/myCat/myItem?req=&locale=ja
:
val1=111 str1=Default1 val2=value2 str2= str3=Default3
Famílias de idiomas
Múltiplo 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 dos EUA versus inglês do Reino Unido) para determinados stringElements
ao manipular a maioria dos conteúdos com localidades de 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 dar suporte à ortografia alternativa ocasional. Se EUK ou EUS não existirem, recorreríamos a E. Da mesma forma, variantes alemãs específicas da Áustria ( DAT
) poderia ser disponibilizado, se necessário, durante o regresso do alemão comum localizedStrings
(marcado com D
na maioria das vezes.
attribute::LocaleStrMap
seria semelhante a:
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 alguns stringElement
e locale
combinações:
stringElement | localidade | String 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^Inglês-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^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch Observe que, para este exemplo, a variável locId O DDE não existe no attribute::LocaleStrMap e, portanto, a subsequência associada a isso locId nunca é retornado. |
en, en_uk en_us de, de_at, de_de todos os outros |
Inglês Inglês (EUA) Alemão - |