我正在使用
Flutter Intl
android studio 插件进行现成的本地化。
但在我的场景中,我有这样的小部件,
Text.rich(
TextSpan(
text: 'It is time to',
children: [
TextSpan(
text: 'Stay Relaxed',
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
],
),
)
那么我如何翻译一条消息“是时候保持放松了”并在
Text.rich
小部件中使用?
编辑 2:这是对上述问题的回答,正如前面提到的,它并不适合所有人,答案是 3 年前的。我们现阶段为此建立了库。
编辑:更多解释 文本不能作为一个整体进行处理。每个部分都需要单独处理。因为从 TextSpans 的角度来看,这些是不同的文本。因此,您需要在 arb 文件中创建两个不同的文本。
从 Flutter Intl 的角度来看,这是两个不同的组件。 TextSpan 有自己的绘图视角。这就是为什么您需要为这些项目创建两个不同的组件。
有像 https://pub.dev/packages/localized_rich_text 这样的软件包,但我没有使用它。在我们的应用程序中,我像下面这样使用它。
Flutter Intl 创建本地化元素如下:
AppLocalizations.of(context).tranlatedElement;
//or
AppLocalizations.current.tranlatedElement;
所以你的代码应该像下面这样
Text.rich(
TextSpan(
text: AppLocalizations.current.relaxTextPrefix,
children: [
TextSpan(
text: AppLocalizations.current.relaxTextSuffix,
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
],
),
),
)