Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework 将名称空间动态添加到区域设置文件_Botframework - Fatal编程技术网

Botframework 将名称空间动态添加到区域设置文件

Botframework 将名称空间动态添加到区域设置文件,botframework,Botframework,我在使用getText时遇到了一些问题,因为在不同的库中,它可能存在具有不同值的相同keyText 我意识到我可以使用名称空间来加载它们自己的文本,但我找不到一种方法来实现这一点,除了更改每个stringValue的键 有什么想法吗 例如: 实际地区: libOne/locale/en/index.json { "libName": "LibOne" } { "libName": "LibTwo" } { "libOne:libName": "libOne" } { "li

我在使用getText时遇到了一些问题,因为在不同的库中,它可能存在具有不同值的相同keyText

我意识到我可以使用名称空间来加载它们自己的文本,但我找不到一种方法来实现这一点,除了更改每个stringValue的键

有什么想法吗

例如:

实际地区:

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/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");

这有点模糊。你能用一个例子或更好的解释来说明吗。