微软Teams应用程序的本地化不再起作用。

3
我们正在尝试构建一个支持英语(en-us)和德语(de-de)的多语言聊天机器人。我们曾在Microsoft Teams上使用它,没有任何问题,直到2020年6月中旬左右。此后,我们注意到本地化不再正常工作。我们还注意到这是Teams引入清单版本1.7的时间。出现了以下情况:
  • 如果Teams管理员上传应用程序时其MS Teams客户端语言为en-us,则所有自定义应用程序都会忽略“de-de”本地化信息,并且所有信息以及命令都仅显示为英语,即使用户的客户端语言为德语。

  • 如果管理员的语言为de-de,上传应用程序,则机器人的所有信息将为德语,而默认语言(英语)将被忽略。

这是一个示例截图。

screenshot

在这里,您可以看到尽管客户端语言是德语,建议命令仍然以英语显示。实际上,机器人名称和描述也是英文的。事实上,我们观察到微软官方模板的官方清单也表现出相同的行为。

以下是我们的清单文件: manifest.json

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
  "manifestVersion": "1.7",
  "version": "1.0.0",
  "id": "00000000-0000-0000-0000-00000000000",
  "packageName": "com.sample.sample.sample.dev.bot3",
  "developer": {
    "name": "Sample Inc.",
    "websiteUrl": "https:/sample.z6.web.core.windows.net",
    "privacyUrl": "https://sample.z6.web.core.windows.net/privacy.html",
    "termsOfUseUrl": "https://sample.z6.web.core.windows.net/tou.html"
  },
  "localizationInfo": {
    "defaultLanguageTag": "en-us",
    "additionalLanguages": [
      {
        "languageTag": "de-de",
        "file": "de-de.json"
      }
    ]
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "name": {
    "short": "Manifest Test EN",
    "full": "Manifest Test EN Bot"
  },
  "description": {
    "short": "Manifest Test EN",
    "full": "Manifest Test EN Bot"
  },
  "accentColor": "#40497E",
  "bots": [
    {
      "botId": "00000000-0000-0000-0000-00000000000",
      "scopes": [
        "personal"
      ],
      "supportsFiles": true,
      "isNotificationOnly": false,
      "commandLists": [
        {
          "scopes": [
            "personal"
          ],
          "commands": [
            {
              "title": "Personal Command 1",
              "description": "Description of Personal Command 1"
            },
            {
              "title": "Personal Command N",
              "description": "Description of Personal Command N"
            }
          ]
        }
      ]
    }
  ],
  "staticTabs": [
  ],
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "sample.z6.web.core.windows.net",
    "token.botframework.com"
  ]
}

本地化文件 de-de.json

{
    "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.7/MicrosoftTeams.Localization.schema.json",
    "name.short": "Manifest Test DE",
    "name.full": "Manifest Test DE Bot",
    "description.short": "Manifest Test DE",
    "description.full": "Manifest Test DE Bot",
    "bots[0].commandLists[0].commands[0].title": "Persönlicher Befehl 1",
    "bots[0].commandLists[0].commands[0].description": "Beschreibung des persönlichen Befehls 1",
    "bots[0].commandLists[0].commands[1].title": "Beschreibung des persönlichen Befehls N",
    "bots[0].commandLists[0].commands[1].description": "Das ist DE1"
}

2个回答

2
我们在这里遇到了相同的问题,但我们已经确定应用程序向用户显示的语言是应用程序安装的语言。因此,在您的情况下,当您的 Teams 语言设置为德语时,该应用程序可能已被安装,如果您现在切换到另一种语言,则该应用程序仍将以德语显示。我们尝试过多个应用程序、多个用户和多个租户,使用的语言始终是从安装应用程序的客户端中选择的语言,而不是当前用户正在使用的语言。
例如,当一个应用程序与一个客户端一起安装(例如德语客户端),该应用程序将为此用户和所有其他安装该应用程序的租户的用户配置为德语。如果安装应用程序的用户切换语言(例如:英语)到另一种支持的语言,则语言仍然保持为德语(即使重新启动客户端)。对于其他用户也是如此,如果在安装应用程序时,用户例如正在使用英语的应用程序,则该用户的应用程序也将是德语,而不是英语,因为它是由默认语言为德语的用户安装的。

嗨,Arne,感谢您分享您的观察。我们也观察到了同样的行为。然而,这真的很奇怪,因为我们的用户在过去一年中一直在多语言模式下使用机器人,并且没有任何问题。我们只是在6月份才注意到这个问题。 - Sanchit Alekh

1
请尝试在清单文件中将版本更新为1.2。输入图像描述 更新版本后的结果如下:输入图像描述

1
谢谢你的回答。我尝试了你建议的解决方案,但不幸的是它并没有起作用。我将版本更改为1.2,但本地化问题仍然存在。当我将语言切换为德语时,我的机器人元数据和建议仍然是英文的。 - Sanchit Alekh
1
根据清单模式,_version_字段仅指机器人/应用程序版本。 - Sanchit Alekh
1
嗨,Nikitha,是的,我们已经多次卸载和重新安装了应用程序。另一个观察结果是,这个问题影响了我们所有的机器人,而不仅仅是最近更新/上传的机器人。我们还尝试过注销/登录、卸载/重新安装 Teams 以及在 Mac 上手动删除 Teams 缓存,但不幸的是,这些都没有起作用。我们甚至升级到了模式版本1.7,但也没有起作用。 - Sanchit Alekh
1
Nikitha,请也查看我在这个话题上的回复。你可能会发现这是当前MS Teams应用程序的一个错误。 - Arne Claerebout
1
我们能够在我们这边重现这个问题,并提出了一个bug。 - Nikitha-MSFT
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接