文本字串本地化允許影像目錄包含同一字串值的多個特定於區域設定的表示法。
伺服器將與指定的locale=
語言環境匹配的表示返回給客戶端,從而避免客戶端本地化,並允許應用程式通過發送具有IS文本請求的適當locale=
值來切換語言環境。
文字字串本地化會套用至所有字串元素,這些元素包含下列目錄欄位中的本地化Token ^loc= *
locId*^
:
目錄欄位 | 欄位中的字串元素 |
---|---|
目錄::ImageSet |
任何包含可翻譯字串的子元素(由分隔符號「,」「;」「:」和/或欄位的開始/結束的任何組合所分隔)。 本地化欄位開頭的 0xrrggbb 顏色值被排除在本地化之外,並且不經修改而傳遞。 |
目錄::Map |
任何單引號或雙引號屬性值,但 coords= 和 shape= 屬性的值除外。 |
目錄::目標 |
任何目標的值。*.label 和目標。*.userdata 屬性。 |
目錄::UserData |
任何屬性的值。 |
影像目錄中已啟用本地化的string
元素包含一或多個本地化字串,每個字串前面都有本地化代號。
stringElement |
[ defaultString ]*{ localizationToken localizedString } |
localizationToken |
^loc= locStr ^ |
locId |
localizedString 在此 localizationToken 之後的內部區域設定ID。 |
localizedString |
本地化字串。 |
defaultString |
用於未知地區設定的字串。 |
locId
必須為ASCII,且不得包含「^」。
「^」可能出現在含有或不含HTTP-encoding的子字串中的任何位置。 伺服器會比對整個localizationToken
^loc=locId^
模式,以分隔子字串。
stringElements
不會將其中至少包含一 localizationToken
個內容視為本地化。
attribute::LocaleStrMap
定義伺服器用於確定要返回 localizedStrings
到客戶端的規則。它由輸入locales
(與locale=
指定的值匹配)的清單組成,每個輸入的內部區域設定ID(locId
)均為無。 例如:
attribute::LocaleStrMap= en,E|nl,N|de,D|,
空locId
值表示應傳回defaultString
(如果可用)。
有關詳細資訊,請參閱attribute::LocaleStrMap
的說明。
在上面的示例翻譯映射和請求/is/image/myCat/myItem?req=&locale=nl
中,伺服器首先在區域設定映射中查找「 nl
」。 匹配的條目nl,N
指示對於每個stringElement
,應返回標籤為^loc=N^
的localizedString
。 如果stringElement
中未出現此localizationToken
,則返回空值。
假設myCat/myItem
的catalog::UserData
包含下列內容(插入分行以求清晰):
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
伺服器會回應我們的範例要求,傳回下列內容:
val1=111 str1=Dutch1 val2=value2 str2=Dutch2 str3=Dutch3
在上例中,attribute::LocaleStrMap
有一個條目,其中包含空locale
值。 伺服器使用此條目來處理所有未在轉換映射中顯式指定的locale=
值。
示例轉換映射指定在這種情況下,應返回defaultString
(如果可用)。 因此,如果將此翻譯對應套用至請求/is/image/myCat/myItem?req=&locale=ja
,將會傳回下列內容:
val1=111 str1=Default1 val2=value2 str2= str3=Default3
語系
多個locId
值可以與翻譯映射中的每個locale
相關聯。 這可支援選取stringElements
的特定國家/地區或地區變數(例如美國英語與英國英語),同時以共同的基本地區設定(例如國際英語)處理大部分內容。
例如,我們想要新增對美國特定英文(*
locId* EUS
)和英國特定英文(*
locId* EUK
)的支援,以支援偶爾的替代拼字。 如果EUK或EUS不存在,我們會回復為E。同樣,在大部分時間返回普通德文localizedStrings
(標籤為D
)時,可以根據需要提供奧地利特定的德文變體(DAT
)。
attribute::LocaleStrMap
會如下所示:
en,E|en_us,EUS,E|en_uk,EUK,E|de,D|de_at,DAT,D|de_de,D
下表介紹了某些代表性組合stringElement
和locale
的輸出:
stringElement | 地區設定 | 輸出字串 |
---|---|---|
^loc=E^English^loc=D^德文 |
en,en_us, en_uk de, de_at, de_de 所有其他 |
英語 德文 - |
^loc=E^English^loc=UK^UK-English^loc=D^German^loc=DAT^Austrian |
en_us en_uk de, de_de de_at 所有其他 |
英語 英文 德文 奧地利 - |
^ loc=en^english^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch 請注意,在此示例中, locId DDE在屬性中不存在::LocaleStrMap ,因此不會返回與此 locId 關聯的子字串。 |
en, en_uk en_us de, de_at, de_de 所有其他 |
英語 美國 — 英語 德文 - |