如何在Flutter本地化中放置字符串列表?

weylhg0b  于 2022-12-14  发布在  Flutter
关注(0)|答案(2)|浏览(220)

我正在开发一个flutter应用程序,为了使它国际化,我使用了Flutter_localizations包。它工作得很好,而且很容易实现。
因此,使用这个包我有一个JSON文件与一些字与他的翻译,你可以看到这里:

{
    
    "helloWorld" : "Hellow world!",
    "@helloWorld":{
        "description": "A programer greeting"
    },

    "team" : "Team",
    "@team":{
        "description": "Team text of buttom"
    },

    **"cart": {
        "one": "{{ count }} item in your Shopping cart",
        "other": "{{ count }} items in your Shopping cart"
    }**

    **"test" : ["test"],
    "@test":{
        "description": "car text of buttom"
    }**
}

然而,我想把一个字符串列表放在键车或键测试中,但flutter本地化不喜欢这样的东西,它给予我错误:

Generating synthetic localizations package failed with 2 error:

Exception: The value of "cart" is not a string.
Exception: The value of "test" is not a string.
exit code 1

有没有人现在如何把一个字符串列表,以便翻译该列表使用Flutter本地化?

sg3maiej

sg3maiej1#

列表还需要定义为单独的列表项,用于Flutter定位,如.arb文件中的以下内容:

"yourTextList0": "I'm learning",
    "yourTextList1": "Good job",
    "yourTextList2": "Almost done",

然后,您需要分配这些值,并创建一个将在其中使用它的列表。
注:此示例用于Flutter Intl本地化实施。如果仅通过l10n.yaml选项使用原始本地化,则可能需要使用不同的格式并定义类型:

"yourTextList[0]": "I'm learning",
"@yourTextList[0]": {
    "type": "text"
  },

 "yourTextList[1]": "Good job",
"@yourTextList[1]": {
    "type": "text"
  },

"yourTextList[2]": "Almost done",
"@yourTextList[2]": {
    "type": "text"
  },

然后像正常列表一样使用它:

DropdownButton(
                                value: yourDefaultValue,                                
                                onChanged: (value) {
                                  // have fun, do something here
                                },
                                items: S
                                    .of(context)
                                    .yourTextList
                                    .map((value) {
                                  return DropdownMenuItem(
                                      child: new Text(value,
                                          style: TextStyle(fontSize: 15)),
                                      value: value);
                                }).toList(),
 ),
laik7k3q

laik7k3q2#

您可以在此处查看ARB文档
https://www.applanga.com/docs/formats/arb
希望这个例子能对你有所帮助。

相关问题