Localização da string de texto

A localização da string de texto permite que catálogos de imagem contenham várias representações específicas da localidade para o mesmo valor da string.

O servidor retorna ao cliente a representação que corresponde à localidade especificada com locale=, evitando assim a localização do lado do cliente e permitindo que os aplicativos alternem localidades simplesmente enviando o valor locale= apropriado com as solicitações de texto IS.

Âmbito

A localização de string de texto é aplicada a todos os elementos de string que incluem o token de localização ^loc= *locId*^ nos seguintes campos de catálogo:

Campo Catálogo Elemento de string no campo

catálogo::ImageSet

Qualquer subelemento que contenha uma string traduzível (delimitada por qualquer combinação de separadores ',' ';' ':' e/ou o start/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 duplos, exceto os valores dos atributos cods= e shape= .

catálogo:Públicos alvos

O valor de qualquer público alvo .público alvo *.label e .propriedade *.userdata .

catálogo::UserData

O valor de qualquer propriedade.

Sintaxe da cadeia de caracteres

Os elementos string ativados por localização 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 localizedString seguindo este localizationToken .

localizedString

Sequência localizada.

defaultString

String a ser usada para localidades desconhecidas.

locId deve ser ASCII e não pode incluir '^'.

'^' pode ocorrer em qualquer lugar em substrings com ou sem codificação HTTP. O servidor corresponde o padrão inteiro localizationToken ^loc=locId^ a subsequências separadas.

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 localizedStrings retornar 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 devem ser retornados, se disponíveis.

Consulte a descrição de attribute::LocaleStrMap para obter detalhes.

O processo de tradução

Dado o mapa de tradução de exemplo acima e a solicitação /is/image/myCat/myItem?req=&locale=nl, o servidor procura primeiro " nl" no mapa de localidades. A entrada correspondente nl,N indica que para cada stringElement, localizedString marcado com ^loc=N^ deve ser retornado. Se localizationToken não estiver presente em stringElement, um valor vazio será retornado.

Digamos que catalog::UserData para myCat/myItem contenha 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

Códigos de idioma desconhecidos

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 de outra forma 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 conversão. Isso permite suportar variações específicas do país ou de região (por exemplo, inglês dos EUA vs inglês do Reino Unido) para selecionar stringElements enquanto lida com a maioria dos conteúdos com localidades de base comuns (por exemplo, inglês internacional).

Para o 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 suportar a ortografia alternativa ocasional. Se a EUK ou a EUS não existissem, voltaríamos para a E. Da mesma forma, as variantes alemãs específicas da Áustria ( DAT) poderiam ser disponibilizadas quando necessário, ao devolver o alemão comum localizedStrings (marcado com D) a maior parte do tempo.

attribute::LocaleStrMap se pareceria com isto:

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 stringElement e locale representativas:

stringElement locale

Sequência 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^UK-English^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íaca

-

^ loc=en^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch

Observe que, neste exemplo, o locId DDE não existe no atributo ::LocaleStrMap e, portanto, a subsequência de caracteres 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