You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SurveyJS中正确本地化多项选择题?

如何在SurveyJS中正确本地化多项选择题(radiogroup)

要解决radiogroup选项的本地化问题,你需要为每个选项明确指定value(提交时的实际值)和支持多语言的text字段,而非直接对选项数组或单个选项做多语言映射。

正确配置示例

{
    "type": "radiogroup",
    "name": "parent_type",
    "title": {
      "default": "I am...",
      "de-de": "Sie sind:",
    },
    "isRequired": true,
    "showOtherItem": true,
    "colCount": 1,
    "choices": [
      {
        "value": "mother",
        "text": {
          "default": "mother",
          "de-de": "Mutter"
        }
      },
      {
        "value": "father",
        "text": {
          "default": "father",
          "de-de": "Vater"
        }
      },
      {
        "value": "grandmother",
        "text": {
          "default": "grandmother",
          "de-de": "Großmutter"
        }
      },
      {
        "value": "uncle",
        "text": {
          "default": "uncle",
          "de-de": "Onkel"
        }
      }
    ],
    "separateSpecialChoices": true,
    "showClearButton": true
  }

之前两种尝试的问题说明

  • 第一种配置错误:直接将choices设为多语言键值对对象({"default": [...], "de-de": [...]}),但SurveyJS的choices字段要求接收选项数组,而非多语言映射对象,这会导致内部方法getFilteredChoices返回非数组值,触发slice is not a function的类型错误。
  • 第二种配置错误:将单个选项直接定义为多语言对象({"default": "mother", "de-de": "Mutter"}),SurveyJS无法识别这种格式,会把整个对象当作选项的显示文本,因此渲染出[object Object]。

补充说明

这种内联多语言的配置方式,和你之前用于标题、文本的本地化逻辑完全一致,既能保留每个选项的实际提交值(value),又能根据当前语言显示对应的文本,同时支持扩展更多选项(比如祖母、叔叔这类角色),无需切换到布尔类型问题。

内容的提问来源于stack exchange,提问作者ginjaemocoes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:16:00