Botframework 将名称空间动态添加到区域设置文件
我在使用getText时遇到了一些问题,因为在不同的库中,它可能存在具有不同值的相同keyText 我意识到我可以使用名称空间来加载它们自己的文本,但我找不到一种方法来实现这一点,除了更改每个stringValue的键 有什么想法吗 例如: 实际地区: libOne/locale/en/index.jsonBotframework 将名称空间动态添加到区域设置文件,botframework,Botframework,我在使用getText时遇到了一些问题,因为在不同的库中,它可能存在具有不同值的相同keyText 我意识到我可以使用名称空间来加载它们自己的文本,但我找不到一种方法来实现这一点,除了更改每个stringValue的键 有什么想法吗 例如: 实际地区: libOne/locale/en/index.json { "libName": "LibOne" } { "libName": "LibTwo" } { "libOne:libName": "libOne" } { "li
{
"libName": "LibOne"
}
{
"libName": "LibTwo"
}
{
"libOne:libName": "libOne"
}
{
"libTwo:libName": "libTwo"
}
libTwo/locale/en/index.json
{
"libName": "LibOne"
}
{
"libName": "LibTwo"
}
{
"libOne:libName": "libOne"
}
{
"libTwo:libName": "libTwo"
}
要获取文本,请执行以下操作:
session.localizer.gettext(session.preferredLocale(), "libName");
session.localizer.gettext(session.preferredLocale(), "libName", "libOne");
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo");
session.localizer.gettext(session.preferredLocale(), "libName", "libOne");
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo");
为了能够在两个库中使用同一个键创建文本,我意识到我可以使用名称空间:
libOne/locale/en/index.json
{
"libName": "LibOne"
}
{
"libName": "LibTwo"
}
{
"libOne:libName": "libOne"
}
{
"libTwo:libName": "libTwo"
}
libTwo/locale/en/index.json
{
"libName": "LibOne"
}
{
"libName": "LibTwo"
}
{
"libOne:libName": "libOne"
}
{
"libTwo:libName": "libTwo"
}
要获取文本,请执行以下操作:
session.localizer.gettext(session.preferredLocale(), "libName");
session.localizer.gettext(session.preferredLocale(), "libName", "libOne");
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo");
session.localizer.gettext(session.preferredLocale(), "libName", "libOne");
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo");
作为一种临时解决方案,我已经为每个库的每个键添加了名称空间,但我认为这应该是一种不用手动更改所有键的方法,例如:
{
"libOne": {
"libName": "libOne"
}
}
而不是:
{
"libOne:libName": "libOne"
}
有一种方法可以让它变得非常简单,而不是在“:”之前添加名称空间,可以通过更改文件名来添加名称空间 对于上述示例: libOne/locale/en/libOne.json
{
"libName": "libOne"
}
libTwo/locale/en/libTwo.json
{
"libName": "libTwo"
}
要获取文本,请执行以下操作:
session.localizer.gettext(session.preferredLocale(), "libName");
session.localizer.gettext(session.preferredLocale(), "libName", "libOne");
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo");
session.localizer.gettext(session.preferredLocale(), "libName", "libOne");
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo");
这有点模糊。你能用一个例子或更好的解释来说明吗。