語言函式

適用於: 畫布應用程式 桌面流程 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", ),然後捲動針對第二個引數建議的地區設定清單。

TextValue 函式也會使用語言標記。 以全球關注的方式使用這些函式來回翻譯文字字串。 將語言標記傳遞至這些函式和區域不會造成差異時,您可以只使用標記的語言部分。

語法

Language()

範例

使用者的地區設定

假設主機作業系統和/或瀏覽器會使用位置的預設地區設定。

公式 地點 退貨價值
Language() 里斯本,葡萄牙 「pt-PT」
Language() 里約熱內盧,巴西 「pt-BR」
Language() 亞特蘭大,美國 「en-US」
Language() 曼徹斯特,英國 「en-gb」
Language() 巴黎,法國 「fr-FR」
Language() 羅索,多米尼克 「en」
Language() 貝爾格勒,塞爾維亞 "sr-cyrl-RS" 或 "sr-latn-RS",依使用者的系統設定而定。

當地語系化資料表

當地語系化的簡單方法是建立作者定義的 Excel 試算表 TextID 對應到使用者語言的翻譯文字。 雖然您可以將集合物件或任何其他資料來源用於此資料表,我們選擇 Excel 是因為它可輕鬆在應用程式外部由翻譯人員編輯和管理。

  1. 在 Excel 中建立下列資料表︰

    當地語系化資料表。

    如果找不到指定語言的特定文字字串,Language 欄位項目為 空白 做為預設值。 此項目必須出現在指定 TextID 之後的所有其他項目。

    針對本文目的,我們只需要查看語言的地區設定而不需要查看區域。 如果區域考量很重要,我們會在上列資料表中包含完整的語言標記值。

  2. 使用 Insert 功能區,Table 命令,將此設為適當的 Excel 資料表。 根據預設,它將會命名為 Table1,但您可以使用 Table Tools/Design 功能區和最左邊的 Table Name: 文字方塊將它任意命名。

  3. 將 Excel 檔案儲存至本機檔案系統。

  4. 在 Power Apps 右窗格中,按一下或點選 Data Sources 索引標籤,然後按一下或點選 Add data source

  5. 按一下或點選 Add static data to your app,並按一下或點選所儲存的 Excel 檔案,然後按一下或點選 Open

  6. 選取您所建立的資料表,然後按一下或點選 Connect

在您的應用程式中,在您之前使用過文字 「Hello」 之處,改為使用此公式︰

  • LookUp( Table1, TextID = "Hello" && (LanguageTag = Left( Language(), 2 ) || IsBlank( LanguageTag ))).LocalizedText

此公式會查詢使用者之語言的適當 LocalizedText 值,如果找不到,則會切換回預設的 空白 版本。

請注意,其他語言的翻譯字串可能會比您所用語言的字串長得多。 在許多情況下,於使用者介面中顯示字串的標籤和其他元素必須更寬才能容納得下。

Translation service

您可以使用 translation service (例如 Microsoft Translator service) 隨需翻譯文字︰

  1. 在 Power Apps 右窗格中,按一下或點選 Data Sources 索引標籤,然後按一下或點選 Add data source
  2. 按一下或點選 Microsoft Translator

在您的應用程式中,在您之前使用過文字 「Hello」 之處,改為使用此公式︰

  • MicrosoftTranslator.Translate( "Hello", Language() )

Microsoft Translator 服務會使用 Language 函式所傳回的相同語言標記。

相較於上一個範例利用文字字串預先翻譯資料表,這種方法有一些缺點︰

  • 翻譯需要時間才能完成,需要透過網路呼叫服務。 這會導致在您的應用程式中查看翻譯文字時會有遲滯現象。
  • 翻譯會很機械化,且可能不如您所預期,或者是應用程式情況的最佳選擇。