Web*_*ter 5 internationalization dart flutter
该包intl的存在是为了本地化 flutter 应用程序,但Intl.message唯一的返回String
如何才能拥有丰富的本地化内容?
Hello $name!,并且只$name加粗,考虑到不同语言中 hello 和 $name 的顺序可能不同I read terms of services and accepted it,并且仅链接terms of services部分in [TEXT_INPUT] days,[TEXT_INPUT] 后面有一个文本,前面有一个文本,但在某些语言中没有 2 个文本,只有一个文本在后面或前面,或者days在前面和in后面[TEXT_INPUT]看一下styled_text包。您可以将文本(内容)与格式分开指定,这允许您使用标准的 i18n 方法。
文本格式被指定为标签,您可以全局定义(例如在资源类中),然后在任何地方使用。对我来说听起来是一个很好的解决方案。
示例(来自自述文件):
StyledText(
text: 'Test: <bold>bold</bold> text.',
tags: {
'bold': const StyledTextTag(style: const TextStyle(fontWeight: FontWeight.bold)),
},
)
Run Code Online (Sandbox Code Playgroud)
将显示如下:
测试:粗体文本。
R如果您使用 i18n 包和标签的资源类实例,则可能如下所示:
StyledText(
text: S.testBoldText,
tags: R.styledTextTags,
);
Run Code Online (Sandbox Code Playgroud)
请记住,标签需要在翻译中保留。
slang包具有内置的富文本支持。
它看起来像这样:
{
"myRichText(rich)": "Welcome {name}"
}
Run Code Online (Sandbox Code Playgroud)
Widget a = Text.rich(t.myRichText(
// Show name in blue color
name: TextSpan(text: 'Tom', style: TextStyle(color: Colors.blue)),
));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2476 次 |
| 最近记录: |