Localização da string de texto

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.

Escopo

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.

Sintaxe da string

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.

O mapa de traduçã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.

O processo de tradução

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

Localidades desconhecidas

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

Exemplos

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

-

Nesta página