語言函式
適用於:畫布應用 桌面流 Power Pages Power Platform CLI
傳回目前使用者慣用語言的語言標記。
Description
Language 函式傳回目前使用者的語言、指令碼和區域做為語言標記。
使用語言資訊自訂您在地區設定的應用程式。 例如,如果您要建立用於義大利文和法文的應用程式,您可以使用 Language 自動向您在這些不同位置的使用者顯示義大利文和法文字串。
語言標記
語言標記 可為三種格式之一︰
傳回值 | 描述 |
---|---|
“lg-RE” | lg 是語言的雙字元縮寫, RE 是區域的雙字元縮寫。 這是最常見的傳回類型。 例如,英國會傳回 "en-GB"。 |
“LG” | LG 是該語言的雙字元縮寫。 這是當 Power Apps 具有語言的相關資訊,但並沒有特定區域的資訊時所使用的格式。 |
“lg-scrp-RE” | lg 是語言的雙字元縮寫, scrp 是腳本的四字元縮寫, RE 是區域的雙字元縮寫。 |
Power Apps 使用 IETF BCP-47 語言標記格式。
若要查看支援語言標記清單,請在公式列或進階檢視中輸入 Value( "1", ),然後捲動針對第二個引數建議的地區設定清單。
Text 和 Value 函式也會使用語言標記。 以全球關注的方式使用這些函式來回翻譯文字字串。 將語言標記傳遞至這些函式和區域不會造成差異時,您可以只使用標記的語言部分。
語法
語言()
範例
使用者的地區設定
假設主機作業系統和/或瀏覽器會使用位置的預設地區設定。
公式 | 地點 | 退貨價值 |
---|---|---|
語言() | 里斯本,葡萄牙 | 「pt-PT」 |
語言() | 里約熱內盧,巴西 | 「pt-BR」 |
語言() | 亞特蘭大,美國 | 「en-US」 |
語言() | 曼徹斯特,英國 | 「en-gb」 |
語言() | 巴黎,法國 | 「fr-FR」 |
語言() | 羅索,多米尼克 | 「en」 |
語言() | 貝爾格勒,塞爾維亞 | "sr-cyrl-RS" 或 "sr-latn-RS",依使用者的系統設定而定。 |
當地語系化資料表
當地語系化的簡單方法是建立作者定義的 Excel 試算表 TextID 對應到使用者語言的翻譯文字。 雖然您可以將集合物件或任何其他資料來源用於此資料表,我們選擇 Excel 是因為它可輕鬆在應用程式外部由翻譯人員編輯和管理。
在 Excel 中建立下列資料表︰
如果找不到指定語言的特定文字字串,Language 欄位項目為 空白 做為預設值。 此項目必須出現在指定 TextID 之後的所有其他項目。
針對本文目的,我們只需要查看語言的地區設定而不需要查看區域。 如果區域考量很重要,我們會在上列資料表中包含完整的語言標記值。
使用 Insert 功能區,Table 命令,將此設為適當的 Excel 資料表。 根據預設,它將會命名為 Table1,但您可以使用 Table Tools/Design 功能區和最左邊的 Table Name: 文字方塊將它任意命名。
將 Excel 檔案儲存至本機檔案系統。
在 Power Apps 右窗格中,按一下或點選 Data Sources 索引標籤,然後按一下或點選 Add data source。
按一下或點選 Add static data to your app,並按一下或點選所儲存的 Excel 檔案,然後按一下或點選 Open。
選取您所建立的資料表,然後按一下或點選 Connect。
在您的應用程式中,在您之前使用過文字 「Hello」 之處,改為使用此公式︰
- LookUp (Table1,TextID =“Hello”& &(LanguageTag = Left(Language(),2)||IsBlank (LanguageTag))).當地語系化文本
此公式會查詢使用者之語言的適當 LocalizedText 值,如果找不到,則會切換回預設的 空白 版本。
請注意,其他語言的翻譯字串可能會比您所用語言的字串長得多。 在許多情況下,於使用者介面中顯示字串的標籤和其他元素必須更寬才能容納得下。
Translation service
您可以使用翻譯服務 (如 Microsoft Translator 服務) 按需翻譯文字:
- 在 Power Apps 右窗格中,按一下或點選 Data Sources 索引標籤,然後按一下或點選 Add data source。
- 按兩下或點選 Microsoft Translator。
在您的應用程式中,在您之前使用過文字 「Hello」 之處,改為使用此公式︰
- MicrosoftTranslator.Translate (“你好”,語言())
Microsoft Translator 服務使用與 Language 函數返回的相同的語言標記。
相較於上一個範例利用文字字串預先翻譯資料表,這種方法有一些缺點︰
- 翻譯需要時間才能完成,需要透過網路呼叫服務。 這會導致在您的應用程式中查看翻譯文字時會有遲滯現象。
- 翻譯會很機械化,且可能不如您所預期,或者是應用程式情況的最佳選擇。