Flutter 富内容本地化

Flutter rich content localization

intl 存在用于本地化 flutter 应用程序,但 Intl.message 仅 returns String

如何才能拥有丰富的本地化内容?

  1. Hello $name! , 并且只把 $name 加粗, 考虑到 hello 和 $name 的顺序在不同的语言中可能不一样
  2. I read terms of services and accepted it 和 link 只有 terms of services 部分
  3. in [TEXT_INPUT] days ,[TEXT_INPUT] 后面有一个文本,前面有一个文本,但在某些语言中没有 2 个文本,后面或前面只有一个文本,或者 days[TEXT_INPUT]
  4. 之前,in在之后

下面是一个示例,说明如何将变量注入到翻译中。

"hello_name": "Hello {name}",
"@hello_name": {
        "placeholders": {
            "name": {
                "type": "String"
            }
        }
    },

这会生成一个函数hello_name供你传递name

没有样式支持,但如果您需要它,请不要像上面的示例那样使用 placeholders,将您的文本分开,并使用 RichText 来指定样式您的文本的某些部分需要具有什么样的样式。您无需担心方向性问题,因为它会根据您所在的地区为您处理。