【问题标题】:Flutter rich content localizationFlutter 丰富的内容本地化
【发布时间】:2021-10-10 13:33:29
【问题描述】:

intl 用于本地化flutter 应用程序,但Intl.message 只返回String

我怎样才能拥有丰富的内容本地化?

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

【问题讨论】:

    标签: flutter dart internationalization


    【解决方案1】:

    以下是如何将变量注入翻译的示例。

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

    这将生成一个函数hello_name 供您传递name

    没有样式支持,但如果您需要它,请不要像上面示例中那样使用 placeholders 并让您的文本分开并使用 RichText 设置样式,您可以在其中指定文本的哪些部分需要有什么造型。您无需担心方向性,因为它会根据您当地的情况为您处理。

    【讨论】:

    • 我知道 intl 有注入变量,问题是没有变量的高级选项,看我的第三个例子,我们不能有一个文本字段变量
    • 如您所知,没有高级选项。所以你可能知道你可以使用RichText 来解决这个问题。
    • 好的,谢谢,我只是想确定一下
    • 我使用这个 mark_down 包来为本地化字符串添加一些简单的样式。 pub.dev/packages/flutter_markdown
    猜你喜欢
    • 2017-10-23
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2023-03-05
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多