用户登录

得到 Localizations 里的语言,也就是应用当前使用的 locale .. 可以使用 Localizations 里的 localeOf 方法 .. 在我们的演示小部件的 build 方法里 .. 先添加一个 Locale .. 名字是 locale .. 它的值用一下 Localizations.localeOf .. 把 context 交给这个方法 ..

下面可以把这个 locale 里的值显示在应用的界面上 .. 先添加一个 Center 小部件 .. 它的 child 是个 Column .. 把这个 Column 的 mainAxisAlignment 设置成 MainAxisAlignment.center ..

它的 children 属性是一组小部件 .. 里面用一个 Text .. 显示的文字可以先试一下 locale 里的 languageCode .. 表示语言代码 ..

也直接用一下 locale 上的 toString .. 这个方法会把 Locale 里的语言还有地区代码结合到一块儿,返回一个字符串 ..

现在界面上显示的 zh_CN 就是应用当前使用的语言 ... 因为我的这个模拟器当前的语言和地区的设置就是中国,简体中文 ..

应用内设置 Locale

另外我们也可以在应用里面设置一下 Locale .. 在 main.dart 里面,找到 MaterialApp 小部件 .. 给它添加一个 locale 属性 .. 对应的值就是应用要使用的本地化设置 .. 比如 Locale .. en US ..

现在界面上显示的当前应用里的 Locale 就会是 en US .. 在 MaterialApp 小部件里设置的这个 locale 属性的值,其实是 Localizations 小部件需要的一个值 ..

还有一个方法可以决定应用使用的语言 .. 名字是 localeResolutionCallback ..

方法有两个参数 .. 一个是 Locale .. 名字可以是 locale .. 表示的是设备当前的本地化设置 .. 还有一个 Iterable .. 项目是 Locale .. 参数的名字可以是 supportedLocales .. 表示的是应用支持的本地化列表...

在这个方法里你可以做一些判断,最终决定返回的那个 Locale 就是应用要使用的语言 .. 比如 return 的 Locale 如果是 en_US ... 你会发现,界面上显示的就会是 en_US ..

获取与设置语言和地区(理解 Locale 类与 Localizations 小部件)《 Flutter 移动应用:国际化 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点