Flutter Appliaction本地化方法

时间:2018-11-16 11:37:46

标签: mobile dart localization flutter

本文介绍了两种实现Flutter应用本地化的方法

https://flutter.io/docs/development/accessibility-and-localization/internationalization

一种是使用为l10n创建文件,另一种是简单直接。

我看到带有+--------------------------------------------------------+ | View1 | +--------------------------------------------------------+ | # | Column1 | Column2 | ColumnX | ColumnX | ColumnX.. | +----+---------+---------+---------+---------+-----------+ | 01 | 28 | 24 | value | value | ... | +----+---------+---------+---------+---------+-----------+ | 02 | 24 | 0 | value | value | ... | +----+---------+---------+---------+---------+-----------+ | 03 | 30 | 0 | value | value | ... | +----+---------+---------+---------+---------+-----------+ | 04 | 25 | 0 | value | value | ... | +----+---------+---------+---------+---------+-----------+ | 05 | 15 | 13 | value | value | ... | +----+---------+---------+---------+---------+-----------+ | 06 | 18 | 0 | value | value | ... | +----+---------+---------+---------+---------+-----------+ | 07 | 13 | 0 | value | value | ... | +----+---------+---------+---------+---------+-----------+ 依赖项的l10n有点复杂,并且为每个lang和2个终端命令创建文件令人沮丧。
如果需要添加新术语,则必须完成命令和文件的创建。

但是无论如何都可以。

一个比另一个更好吗?

2 个答案:

答案 0 :(得分:0)

使用intl包的变体使翻译https://translate.google.com/toolkit的使用变得容易。

如果您想对Web客户端使用相同的代码,则对于较小的下载大小,使用这种方法摇晃树会更好。我认为这在Flutter中并没有太大区别。

您提到的缺点是,它需要更多样板才能开始。

答案 1 :(得分:0)

使用Intl软件包可以轻松地将代码与翻译后的内容(ARB文件)分开。

默认情况下,使用Intl软件包进行本地化有点复杂,但是使用Flutter Intl IDE插件可以使它变得简单。在这种情况下,您只需将键值对添加到ARB文件中即可,并且在您的代码中可用。

对于某些概念验证项目,使用替代方法(代码中的映射)可能会很有用,因为您不必在意将其导出为翻译工具。