文字字串本地化

文本字串本地化允許影像目錄包含同一字串值的多個特定於區域設定的表示法。

伺服器將與指定的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/myItemcatalog::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

所有其他

英語

美國 — 英語

德文

-

本頁內容