Textsträngslokalisering
Skapat för:
- Utvecklare
- Användare
Textsträngslokalisering gör att bildkataloger kan innehålla flera språkspecifika representationer för samma strängvärde.
Servern återgår till klienten med den representation som matchar det språkområde som har angetts med locale=
, så att klientsidans lokalisering undviks, och så att program enkelt kan växla språkområde genom att skicka lämpligt locale=
-värde med IS-textbegäranden.
Omfång
Textsträngslokalisering används för alla strängelement som innehåller lokaliseringstoken ^loc= *
locId*^
i följande katalogfält:
Alla delelement som innehåller en översättningsbar sträng (avgränsas av en kombination av avgränsarna ',' ';' ':' och/eller fältets start/slut).
Ett 0xrrggbb -färgvärde i början av ett lokaliseringsbart fält undantas från lokalisering och skickas vidare utan ändring.
Strängsyntax
Lokaliseringsaktiverade string
-element i bildkatalogen består av en eller flera lokaliserade strängar, som föregås av en lokaliseringstoken.
locId
måste vara ASCII och får inte innehålla^.
'^' kan förekomma var som helst i delsträngar med eller utan HTTP-kodning. Servern matchar hela mönstret localizationToken
^loc=locId^
med separata delsträngar.
stringElements
, som inte innehåller minst en localizationToken
, betraktas inte som en lokalisering.
Översättningskartan
attribute::LocaleStrMap
definierar reglerna som används av servern för att avgöra vilka localizedStrings
som ska returneras till klienten. Det består av en lista med indata locales
(som matchar värdena som anges med locale=
), där vart och ett saknar eller har ett internt språk-ID ( locId
). Till exempel:
attribute::LocaleStrMap= en,E|nl,N|de,D|,
Tomma locId
-värden anger att defaultString
ska returneras, om det är tillgängligt.
Mer information finns i beskrivningen av attribute::LocaleStrMap
.
Översättningsprocessen
Med tanke på översättningskartan ovan och begäran /is/image/myCat/myItem?req=&locale=nl
söker servern först efter nl
i språkområdet. Den matchade posten nl,N
anger att localizedString
som är markerad med ^loc=N^
ska returneras för varje stringElement
. Om localizationToken
inte finns i stringElement
returneras ett tomt värde.
Låt oss säga att catalog::UserData
för myCat/myItem
innehåller följande (radbrytningar infogade för tydlighet):
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
Servern returnerar följande som svar på exempelbegäran:
val1=111 str1=Dutch1 val2=value2 str2=Dutch2 str3=Dutch3
Okända språk
I exemplet ovan har attribute::LocaleStrMap
en post med ett tomt locale
-värde. Servern använder den här posten för att hantera alla locale=
-värden som inte uttryckligen anges på annat sätt i översättningskartan.
Exemplet på översättningskarta anger att defaultString
i så fall ska returneras, om tillgängligt. Därför returneras följande om översättningskartan används på begäran /is/image/myCat/myItem?req=&locale=ja
:
val1=111 str1=Default1 val2=value2 str2= str3=Default3
Exempel
Språkfamiljer
Flera locId
-värden kan associeras med varje locale
i översättningskartan. Orsaken är att den tillåter stöd för landsspecifika eller regionspecifika varianter (till exempel amerikansk engelska jämfört med brittisk engelska) för stringElements
när det hanterar det mesta av innehållet med vanliga basspråk (till exempel internationell engelska).
Stöd för exempelvis amerikansk-specifik engelska ( *
locId* EUS
) och brittisk-specifik engelska ( *
locId* EUK
) som stöd för tillfällig alternativ stavning. Om det inte finns någon EUK eller EUS återgår den till E. På samma sätt kan österrikiska-specifika tyska varianter ( DAT
) göras tillgängliga där det behövs medan vanliga tyska localizedStrings
(markerat med D
) returneras för det mesta.
attribute::LocaleStrMap
skulle se ut så här:
en,E|en_us,EUS,E|en_uk,EUK,E|de,D|de_at,DAT,D|de_de,D
I följande tabell beskrivs utdata för vissa representativa kombinationer av stringElement
och locale
:
en, en_us, en_uk
de, de_at, de_de
alla andra
Engelska
Tyska
-
en, en_us
en_uk
de, de_de
de_at
alla andra
Engelska
Engelska (Storbritannien)
Tyska
Österrikiska
-
^ loc=en^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch
I det här exemplet finns inte DDE:n locId i attributet ::LocaleStrMap och delsträngen som är associerad med locId returneras därför aldrig.
en, en_uk
en_us
de, de_at, de_de
alla andra
Engelska
Engelska (USA)
Tyska
-