O Servidor de imagens fornece um mecanismo para converter IDs de objeto externo em IDs de objeto (catálogo) específicas da localidade. O aplicativo principal é o de fornecer conteúdo específico de local e conteúdo compartilhado entre várias localidades, sem que o aplicativo cliente precise saber as IDs de objeto específicas da localidade.
O aplicativo pode ser gravado usando apenas IDs de objeto global, e o Servidor de imagens substitui automaticamente imagens específicas da localidade e outros conteúdos disponíveis.
A variável locale
é especificado em solicitações do Servidor de imagens com o locale=
comando.
A tradução da ID do objeto é aplicável somente para uso do Servidor de imagens com base no catálogo. Não é possível traduzir nomes de arquivo.
Todas as referências a entradas em catálogos de imagem, SVG e conteúdo estático são consideradas para fontes de tradução e as referências de perfil ICC não são traduzidas. Além do object
no caminho de /is/image e /is/static requests, esses comandos e atributos de catálogo estão sujeitos à tradução de ID: src=
, mask=
, template=
, defaultImage=
, attribute::DefaultImage
, e attribute::Watermark
.
attribute::LocaleMap
define as regras usadas pelo servidor para determinar a ID do conteúdo localizado, fornecidas como entradas para a ID do objeto genérico e a locale=
valor.
attribute::LocaleMap
consiste em uma lista de entradas localidades (correspondendo aos valores especificados com locale=
), cada um com nenhum ou mais sufixos de localidade de saída ( *
locSuffixes*
).
Por exemplo, attribute::LocaleMap
pode ser semelhante a:
en,_E,|en_us,_E,|en_uk,_E,|fr,_F,|de,_D,|de_at,_D,|de_de,_D,|,_E,
A solicitação /is/image/myCat/myImg?locale=de_de
retornaria a imagem associada à entrada do catálogo myCat/myImg_D
(supondo que essa entrada de catálogo exista).
Consulte a descrição de attribute::LocaleMap
para obter detalhes.
Dado o exemplo acima, o servidor primeiro procura pela variável locale
" de_de
" no mapa de tradução de ID. Em seguida, repete locSuffixes
associado a esta entrada neste caso " _D
" e "" (sufixo vazio). Para cada iteração, o sufixo é anexado à ID da imagem e a ID resultante é testada para existência no catálogo. Se encontrada, essa entrada de catálogo será usada, caso contrário, a próxima será testada. Neste exemplo, essas entradas são verificadas: myCat/myImg_D
, e myCat/myImg
. Se nenhuma correspondência for encontrada, o servidor retornará um erro ou uma imagem padrão (se configurada).
No exemplo acima, attribute::LocaleMap
inclui um vazio locale
que define a regra de conversão padrão, usada para locale=
valores (ou seja, aqueles não listados explicitamente no mapa de tradução). Se este mapa de tradução foi aplicado à solicitação /is/image/myCat/myImg?locale=ja
, resolveria para myCat/myImg_E
, se existir, ou de outra forma myCat/myImg
.
Se um mapa de tradução não especificar uma regra de tradução padrão, um erro será retornado para todas as solicitações com nomes desconhecidos locale=
valores.
Pesquisa em várias camadas
Geralmente, é desejável agrupar locais (por exemplo, Europeu, Oriente Médio, América do Norte) para abordar padrões regionais. Isso pode ser feito com uma pesquisa em várias camadas.
Neste exemplo, queremos oferecer suporte a coleções para uso no Oeste e no Oriente Médio. Ambas as coleções se baseiam na coleção de imagens genérica e adicionam ou modificam algumas imagens. Ambas as coleções são então refinadas para localidades específicas ( m1
, m2
para duas variantes do médio oriente, e w1
, w2
, e w3
para três localidades ocidentais), exceto que as imagens são compartilhadas para w1
e w3
. Locais desconhecidos são mapeados somente para a coleção genérica e não têm acesso a imagens específicas do local.
attribute::LocaleMap: w1,-W,|w2,-W2,-W,|w3,-W,|m1,-M1,-M,|m2,-M2,-M,|,
A tabela a seguir ilustra quais entradas de catálogo são consideradas e a ordem em que são consideradas para a ID de entrada genérica myImg
:
localidade | IDs de catálogo a serem pesquisadas |
---|---|
w1, w3 |
myImg-W, myImg |
w2 |
myImg-W2, myImg-W, myImg |
m1 |
myImg-M1, myImg-M, myImg |
m2 |
myImg-M2, myImg-M, myImg |
todos os outros |
myImg |
Pesquisar IDs específicas
Algumas convenções de nomenclatura de imagem podem não suportar IDs de imagem genéricas internamente. As IDs genéricas da solicitação sempre devem ser mapeadas para uma ID específica no catálogo; geralmente, a ID específica exata pode não ser conhecida.
Neste exemplo, imagens para todos os idiomas podem ter _1
, _2
ou _3
sufixo. Imagens específicas para localidades francesas podem ter _22
ou _23
sufixo e imagens específicas para locais alemães podem ter _470
ou _480
sufixo.
attribute::LocaleMap: ,_1,_2,_3|fr,_22,_23,_1,_2,_3|de,_470,_480,_1,_2,_3| de_at,_470,_480,_1,_2,_3| de_de,_470,_480,_1,_2,_3
A tabela a seguir ilustra quais entradas de catálogo são consideradas e a ordem em que são consideradas para a ID de entrada genérica myImg
:
localidade | IDs de saída a serem pesquisadas |
---|---|
fr |
myImg_22, myImg_23, myImg_1, myImg_2, myImg_3 |
de , de_at , de_de |
myImg_470, myImg_480, myImg_1, myImg_2, myImg_3 |
todos os outros |
myImg_1, myImg_2, myImg_3 |
attribute::LocaleMap , attribute::DefaultLocale, locale=, req=xlate