文字字串本地化

上次更新: 2023-09-01
  • 建立對象:
  • Developer
    User

文字字串本地化可讓影像目錄針對相同的字串值,包含多個地區設定的特定表示法。

伺服器會將符合指定之地區設定的表示傳回給使用者端 locale=,避免使用者端本地化,並允許應用程式只要傳送適當的 locale= IS文字要求的值。

範圍

文字字串本地化會套用至包含本地化權杖的所有字串元素 ^loc= *locId*^ 在下列目錄欄位中:

目錄欄位 欄位中的字串元素

catalog::ImageSet

包含可翻譯字串的任何子元素(以分隔符號「,」「;」「:」和/或欄位開頭/結尾的任何組合分隔)。

A 0xrrggbb 可當地語系化欄位開頭的顏色值會排除在本地化之外,並在未修改的情況下傳遞。

catalog::Map

任何單引號或雙引號屬性值,除了 色彩= shape= 屬性。

目錄::目標

任何值 目標。*.label 目標。*.userdata 屬性。

catalog::UserData

任何屬性的值。

字串語法

已啟用本地化 string 影像目錄中的元素包含一或多個當地語系化的字串,每個字串前面都加上當地語系化代號。

stringElement

[ defaultstring ]*{ localizationToken localizedString }

localizationToken

^loc= locstr ^

locId

的內部地區設定ID localizedString 關注此 localizationToken .

localizedString

當地語系化字串。

defaultstring

用於未知地區設定的字串。

locId 必須是ASCII且不得包含「^」。

'^'可能會出現在具有或不具有HTTP編碼的子字串中的任何位置。 伺服器符合整個 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,則 localizedString 標示為 ^loc=N^ 應該會傳回。 若此 localizationToken 不存在於 stringElement,則會傳回空值。

假設 catalog::UserDatamyCat/myItem 包含下列內容(為了清楚起見,插入了分行符號):

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。同樣地,奧地利特有的德文變體( DAT)在返回常見德文時可視需求提供 localizedStrings (標籤有 D)。

attribute::LocaleStrMap 將如下所示:

en,E|en_us,EUS,E|en_uk,EUK,E|de,D|de_at,DAT,D|de_de,D

下表說明部分代表的輸出 stringElementlocale 組合:

stringElement 地區設定

輸出字串

^loc=E^English^loc=D^German

en,en_us, en_uk

de, de_at, de_de

所有其他

英語

德文

-

^loc=E^English^loc=UKE^UK-English^loc=D^German^loc=DAT^Audiential

en, en_us

en_uk

de, de_de

de_at

所有其他

英語

UK — 英文

德文

奧地利文

-

^ loc=en^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch

在此範例中, locId DDE不存在於 attribute::LocaleStrMap ,因此就是與此關聯的子字串 locId 不會傳回。

en, en_uk

en_us

de, de_at, de_de

所有其他

英語

美式英文

德文

-

本頁內容