O Image Serving fornece um mecanismo para traduzir ids de objeto externas para IDs de objeto (catálogo) específicas da localidade. O aplicativo principal é fornecer conteúdo específico para localidades e conteúdo compartilhado entre várias localidades, sem que o aplicativo cliente precise conhecer as IDs de objeto específicas para localidades.
O aplicativo pode ser gravado usando apenas IDs de objeto global e o Image Serving substituirá automaticamente imagens específicas da localidade e outro conteúdo, quando disponível.
O locale
é especificado nas solicitações de Exibição de imagem com a variável locale=
comando.
A tradução da ID de objeto é aplicável somente para o uso do Serviço de imagem baseado em catálogo. Os nomes de arquivo não podem ser traduzidos.
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 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 da 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, considerando como entradas a ID de objeto genérica e a variável 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 local 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
(assumindo que tal entrada de catálogo existe).
Consulte a descrição de attribute::LocaleMap
para obter detalhes.
Dado o exemplo acima, o servidor procura primeiro a variável locale
" de_de
" no mapa de tradução de ID. Em seguida, repete o locSuffixes
associado a esta entrada neste caso " _D
" e "" (sufixo vazio). Para cada iteração, o sufixo é anexado à ID da imagem e à ID resultante testada para existência no catálogo. Se for encontrada, essa entrada do catálogo será usada, caso contrário, a próxima será testada. Para este 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 tradução padrão, usada para desconhecido locale=
valores (ou seja, aqueles que não estão explicitamente listados no mapa de tradução). Se este mapa de tradução foi aplicado à solicitação /is/image/myCat/myImg?locale=ja
, resolveria 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 desconhecido locale=
valores.
Pesquisa em várias camadas
Geralmente é desejável agrupar localidades (por exemplo, europeias, de Oriente Médio, norte-americanas) para atender aos padrões regionais. Isso pode ser feito com uma pesquisa em várias camadas.
Para este exemplo, queremos oferecer suporte a coleções para uso do Oeste e do Oriente Médio. Ambas as coleções são baseadas na coleção de imagens genérica e ambas adicionam ou modificam algumas imagens. Ambas as coleções são então mais 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 pelo compartilhamento de imagens para w1
e w3
. Localidades desconhecidas são mapeadas somente para a coleção genérica e não têm acesso a imagens específicas de localidade.
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 o ID de entrada genérico myImg
:
locale | 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 ser compatíveis com IDs de imagem genéricas internamente. As IDs genéricas da solicitação devem sempre 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 localidades alemãs 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 o ID de entrada genérico myImg
:
locale | 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 |
atributo::LocaleMap , atributo::DefaultLocale, locale=, req=xlate