我们正在尝试构建一个支持英语 (en-us) 和德语 (de-de) 的多语言聊天机器人。直到 2020 年 6 月中旬左右,我们一直在 Microsoft Teams 上使用它,没有任何问题。此后,我们注意到本地化不再正常工作。我们还注意到,这与 Teams 引入 manifest version 1.7 的时间差不多。 .观察到以下情况:
如果 Teams 管理员在其 MS Teams 客户端语言为 en-us 时上传应用程序,则所有自定义应用程序都会忽略“de-de”本地化信息,并且所有信息和命令都以英语显示仅,即使用户的客户端语言是德语。
如果管理员在上传应用程序时使用的是 de-de 语言,则会发生完全相反的情况。来自机器人的所有信息都将使用德语,而默认语言(英语)将被忽略。
作为示例,我分享了这张截图。
在这里,您可以看到虽然客户端语言是德语,但建议命令却以英语出现。事实上,bot 名称和描述也是英文的。事实上,我们观察到官方 list template 也表现出相同的行为。来自微软。
这是我们的 list 文件: list .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"
}
最佳答案
我们在这里遇到了同样的问题,只是我们能够确定向用户显示的应用程序语言是应用程序安装时使用的语言。
因此,在您的情况下,当您的 Teams 语言设置为德语时,应用程序已正确安装,如果您现在切换到另一种语言,该应用程序仍将是德语。我们已经为多个应用程序、多个用户和多个租户尝试过这种方法。使用的语言始终是安装应用程序的客户端语言,而不是当前用户使用的语言。
因此,例如,当应用程序与客户端(例如德语)一起安装时,该应用程序将为该用户和安装该应用程序的租户的所有其他用户配置为德语。如果安装该应用程序的用户将语言(fe:英语)切换为另一种支持的语言,该语言将保持德语(即使重新启动客户端)。其他用户也是如此,例如,如果用户在安装时使用的是英语应用程序,那么该应用程序也将为该用户使用德语而不是英语,因为它是由默认使用德语的用户安装的语言。
关于localization - Microsoft Teams App 本地化不再有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63247517/