1.介紹
首先在這裡提前祝大家新春大吉,最近發現有粉絲私聊我,Flutter i18n外掛在idea中的外掛市場已經找不到了,然後我就到Flutter i18n 官網 看到了作者的留言,大致意思是:由於作者的時間和可用性問題,外掛專案不再維護,並且,另一個更加輕便的專案給予我們使用,而今天,我們就來學習以下新專案的使用(純dart cli工具,無需安裝任何外掛,在這裡,感謝作者!也希望大家能到上面的官網給作者大大給個star)
2.安裝
開啟我們的專案,然後在專案根目錄下的pubspec.yaml
檔案新增下面程式碼
dev_dependencies:
#new
flutter_l10n: ^0.1.3
#new
複製程式碼
注意,這裡是放到dev_dependencies
節點下,目的是在開發專案的時候才進行使用,而打包專案是不會把庫裡面的程式碼打包進來,然後我們在命令列下執行flutter pacakges get
程式碼即可
3.新建.arb檔案
關於.arb
檔案的介紹,可以到我上一篇文章進行檢視,在根目錄/lib
下新建.arb
檔案
en
和zh
,目的是支援英文和中文語言環境,內容也是跟之前使用的一樣
完成之後,我們在命令列下執行flutter pub run flutter_l10n:build
命令即可
4.產物分析
執行命令之後,會生成三個檔案
l10n/s.dart
主要用於初始化代理,獲取字串l10n/strings_en.dart
英文語言環境下的字串內容,對應string_en.arb
檔案l10n/string_zh.dart
中文語言環境下的字串內容,對應string.zh.arb
檔案
5.切換語言
切換語言的時候需要注意,更改的地方需要兩處
MaterialApp(
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
//new
locale: Locale('zh',''),
localeResolutionCallback:(Locale locale, Iterable<Locale> supportedLocales) {
return Locale('zh','');
},
//new
// ...
)
複製程式碼
我們可以把Locale('zh','')
作為一個變數即可
6.最後
使用方法跟外掛的使用方法類似,但存在以下問題
- 不支援語法
- 不能夠通過
alt+enter
生成字串 supportedLocales: S.delegate.supportedLocales,
該程式碼失效
如果有其它更新,該文章會一直更新,請持續關注。。。