用户登录

在 intl 目录下的这个 ninghao_demo_localizations.dart 里面 .. 导入刚才生成的 ninghao_demo_messages_all.dart ..

在这个 NinghaoDemoLocalizations 里面 .. 先添加一个静态的 of 方法 .. 直接去复制一下在 map 目录下面的 NinghaoDemoLocalizations 里的 of 方法 .. 粘贴过来 ..

导入一下 material.dart

这个类里面需要再定义一个 load 静态方法 .. 方法返回的是 Future .. 导入需要的 dart:async 这个包 .. 值是 NinghaoDemoLocalizations .. 名字叫 load ... 支持一个 Locale 类型的 locale 参数 ..

里面先添加一个 String 类型的值,名字叫 name .. 判断一下 locale.countryCode 是不是为空 .. 如果是就让 name 等于 locale 里的 languageCode .. 如果不是就让它等于 locale.toString 方法返回的值 ..

下面再添加一个 String .. 名字是 localeName .. 用一下 Intl 上的 canonicalizaedLocale .. 规范化一下表示本地化的代号 .. 把 name 交给这个方法 ..

这个 load 方法返回的东西,执行一下 initializeMessages .. 把本地化代号交给它 .. 这里就是 localeName .. then 处理一下得到的数据 .. bool _

里面设置一下 Intl.defaultLocale ,让它等于 localeName .. 然后再 return 一个 NinghaoDemoLocalizations ..

LocalizationsDelegate

下面还需要一个 LocalizationsDelegate 类 .. 直接去复制一下 map 目录下面的这个 NinghaoDemoLocalizationsDelegate ..

粘贴过来 ..

这里需要修改一下里面的 load 方法 .. 现在它 return 的东西是个 Future ...

用一下 NinghaoDemoLocations 上的 load 方法 .. 把 locale 交给它 ..

使用

下面再去用一下 .. 打开 i18n_demo.dart ..

导入刚才用 intl 方法创建的这个 ninghao_demo_localizations.dart .. 复制一下 ..

再打开 main.dart .. 这个同样需要导入这个文件 ..

界面上现在显示的就是定义的 title 的值 ..

这里我们还定义了一个 greet .. 可以用一下它 .. 接收一个 String 类型的 name 参数 .. ninghao ... 显示的就是 您好 ninghao ...

打开 main.dart .. 修改一下应用的本地化设置 .. 设置成 en US ... 现在界面上显示的这个 greet 的英文版本,就会是 hello ninghao ...

加载与使用本地化信息《 Flutter 移动应用:国际化 》

统计

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

社会化网络

关于

微信订阅号

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