本地化富文本

一个 Flutter 插件,用于方便 RichText 的本地化。

入门

在您的 pubspec.yaml 中安装库。

dependencies:
  localized_rich_text: ^0.0.1

用法

final textToLocalize = "Hi #name, how are you?";
final userName = "Jhon";
...
LocalizedRichText(
  text: textToLocalize,
  defaultTextStyle: Theme.of(context).textTheme.bodyText1!,
  keys: [
    LocalizedRichTextKey(
      key: '#name',
      value: userName,
      textStyle: Theme.of(context).textTheme.subtitle1!,
    ),
  ],
)

参数说明

text

这必须是需要本地化的 字符串
文本中的 动态 值必须是 唯一的,您可以用特殊字符标记它们,或者使用唯一的值。

该字符串可以是

final textToLocalize = "Hi #name, how are you?";

或者

AppLocalizations.of(context)!.title,

有关 国际化 的更多信息,您可以查阅 Flutter 文档

defaultTextStyle

这是用于静态单词的 TextStyle

这是必须包含 动态 值的 列表
每个 动态 值都必须作为 LocalizedRichTextKey 对象传递。
此列表不能为空。

将按照它们在要本地化的 字符串 中的插入顺序排序。
这意味着您在 键数组 中传递 的顺序并不重要。

LocalizedRichText(
  ...,
  keys: [
    LocalizedRichTextKey(
      key: '#name',
      value: userName,
      textStyle: Theme.of(context).textTheme.subtitle1!,
    ),
  ],
)

https://pub.dev/packages/localized_rich_text