本地化应用

若要将 Microsoft Teams 应用本地化,请考虑以下因素:

  1. 将 AppSource 列表本地化
  2. 将应用清单中的字符串本地化
  3. 处理来自用户的本地化文本提交

将 AppSource 列表本地化

如果要将应用发布到 Microsoft Teams 应用商店,请提供元数据 (说明、屏幕截图、名称) 你希望应用列出的语言,并在合作伙伴中心的 “市场列表 ”页面上显式指定这些语言。 有关详细信息,请参阅本地化的 Microsoft AppSource 首页。 若要支持 Teams 应用商店中的本地化一览,可以向一览添加其他语言。 在 合作伙伴中心 为列表提供的默认语言信息显示在 应用的 AppSource 网站 列表。 目前,默认语言为英语。

配置本地化

若要为应用配置其他语言,请在合作伙伴中心为应用选择英语和其他语言。 在以下示例中,其他语言是法语:

  1. 添加英语
    • 输入应用名称。
    • 输入应用的简短英文说明。
    • 输入应用的详细英文说明。
    • 在详细说明中,输入:This app is available in French(此应用提供法语版)。
    • 上传应用 UI 的图像(英语)。
  2. 添加法语
    • 输入应用名称。
    • 输入应用的简短法语说明。
    • 输入应用的详细法语说明。
    • 上传应用 UI 的图像(法语)。

用英语上传的图像在 AppSource 中使用。

将应用清单中的字符串本地化

使用 Microsoft Teams 应用架构 v1.5 及更高版本来将应用本地化。 为此,可将 manifest.json 文件中的 $schema 属性设置为 https://developer.microsoft.com/json-schemas/teams/v1.5/MicrosoftTeams.schema.json 或更高版本,并将 manifestVersion 属性更新为 $schema 版本(在本例中,是 1.5 版本)。

使用应用程序支持的默认语言添加 localizationInfo 属性。 如果用户的客户端设置与任何其他语言不匹配,则默认语言将用作最终回退语言。

注意

manifest.json 和 localization.json 文件的清单版本必须相同。

示例 manifest.json 更改

以下 manifest.json 有助于使用应用程序支持的默认语言以及 additionalLanguages 来添加 localizationInfo 属性:

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.5/MicrosoftTeams.schema.json",
  "manifestVersion": "1.5",
  "localizationInfo": {
  "defaultLanguageTag": "en",
  "additionalLanguages": [
   {
    "languageTag": "es-mx",
    "file": "es-mx.json"
   }
  ]
 }
  ...
}

示例本地化 .json 更改

下面是本地化 .json 的示例:

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.5/MicrosoftTeams.Localization.schema.json",
  "manifestVersion": "1.5",
  "name.short": "Localización",
  "name.full": "Aplicación de localización",
  ...
}

可提供其他 .json 文件,其中有清单中面向用户的所有字符串的翻译。 这些文件必须遵循本地化文件 JSON 架构,并且必须添加到清单的 localizationInfo 属性中。 每个文件都与语言标记相关联,Microsoft 365 主机应用程序(如 Teams 或 Outlook)使用该标记来选择适当的字符串。 语言标记采用 <language>-<region> 格式,但可省略 <region> 部分,以面向支持所需语言的所有区域。

Microsoft 365 主机应用程序按以下顺序应用字符串:默认语言字符串 -> 仅用户语言字符串 -> 用户的语言 + 用户的区域字符串。

例如,你提供默认语言 fr (法语、所有区域) 以及 (英语的其他语言文件 en ,所有区域) 和 en-gb (英语、英国) ,用户的语言设置为 en-gb。 根据语言选择进行以下更改:

  1. Microsoft 365 主机应用程序采用字符串, fr 并使用 en 字符串覆盖它们。
  2. 使用enen-gb字符串覆盖字符串。

如果用户的语言设置为 en-ca,则会根据语言选择进行以下更改:

  1. Microsoft 365 主机应用程序采用字符串, fr 并使用 en 字符串覆盖它们。
  2. 由于未 en-ca 提供本地化, en 因此将使用本地化。

如果用户的语言设置为 es-es,则 Microsoft 365 主机应用程序将采用 fr 字符串。 Microsoft 365 主机应用程序不会使用任何语言文件替代字符串,因为未 es 提供或 es-es 提供翻译。

因此,必须在清单中提供顶级的仅限语言的翻译。 例如,en 而不是 en-us。 必须仅为需要覆盖的少数字符串提供区域级别覆盖。

示例 manifest.json 更改

manifest.json 更改显示在以下示例中:

{
  ...
  "localizationInfo": {
    "defaultLanguageTag": "en",
    "additionalLanguages": [
      {
        "languageTag": "en-gb",
        "file": "en-gb.json"
      },
      {
        "languageTag": "fr",
        "file": "fr.json"
      },
      {
        "languageTag": "pl",
        "file": "pl.json"
      }
    ]
  }
  ...
}

示例本地化 .json 文件

localization.json 更改显示在以下示例中:

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.Localization.schema.json",
  "name.short": "Le App",
  "name.full": "App pour Microsoft Teams",
  "description.short": "Créez d'excellentes applications pour Microsoft Teams avec App.",
  "description.full": "Créez de nouvelles applications Microsoft Teams, concevez et prévisualisez des cartes bot, et explorez la documentation avec App.",
  "staticTabs[0].name": "Editeur de manifest",
  "staticTabs[1].name": "Editeur de cartes",
  "staticTabs[2].name": "Bibliothèque de contrôles",
  "bots[0].commandLists[0].commands[0].title": "chercher",
  "bots[0].commandLists[0].commands[0].description": "Rechercher la documentation Teams pertinente"
}

处理来自用户的本地化文本提交

如果提供应用程序的本地化版本,则用户会使用相同的语言进行响应。 由于 Teams 不会将用户提交翻译回默认语言,因此你的应用必须处理本地化语言响应。 例如,如果提供本地化的 commandList,则对机器人的响应是命令的本地化文本,而不是默认语言。 你的应用必须做出适当的响应。

代码示例

示例名称 Description .NET Node.js
应用本地化 使用机器人和选项卡的 Teams 应用本地化。 View View

后续步骤

另请参阅