首页 > 解决方案 > 在 Bixby 对话框中给出复数的问题

问题描述

我有一个关于对话中复数的问题。

假设我有一个结构

structure (MyStructure) {
 property (MyConcept) {
   type {EnumConcept} max (Many)
 }
}

以及它的值对话框:

dialog (Value) {
 match: MyConcept(this)
  if (this == 'ABC') {
   switch(plural(this)) {
    case (One) { template("single1") }
    default { template ("plural1") }
   }
  }
  if (this == 'DEF') {
   switch(plural(this)) {
    case (One) { template("single2") }
    default { template ("plural2") }
   }
  }
}

通过使用代码:

#{value(myStructure.myConcept.plural('Many'))}

当 myStructure 具有以下值且 myConcept 的大小为 1 时,我可以获得“plural1”或“plural2”:

myStructure = [
 { myConcept: ABC },
 { myConcept: ABC },
 { myConcept: ABC },
 { myConcept: ABC }
]

当 myConcept 的大小为 2 并且 myStructure 具有以下值时,

myStructure = [
 { myConcept: ABC },
 { myConcept: ABC },
 { myConcept: DEF },
 { myConcept: DEF }
]

使用代码:

#{value(myStructure.myConcept.plural('Many'))}

将 NLG 作为

"single1 and single2"

我在 NLG 中想要的:

"plural1 and plural2"

有人可以帮助我们为“myStructure”列表中存在的唯一“myConcept”的每个元素提供适当的复数 NLG 吗?我想要的是对数组的每个单独值应用多个。 size(myStructure.myConcept)= 2。

我想将复数应用于 myConcept 的两个值。

我认为在对话中我们没有for-each可用的东西。

标签: bixby

解决方案


很难说出上面代码中发生了什么。如果此答案没有帮助,请考虑在某处共享完整的源代码以进行实时调试。

你可以尝试类似的东西

#{value(myStructure.myConcept.plural(plural(myStructure.myConcept))}

该文档有一个示例,例如: #{concept(restaurantStyle.plural(plural(restaurant)))}

来源:本节中的https://bixbydevelopers.com/dev/docs/reference/ref-topics/el-ref#node-evaluation-functions 。plural(node)


推荐阅读