在說flutter國(guó)際化前,不得不提到,在uni-app中支持的Vue-i18n,兩者有相似之處,也有差異的地方。

創(chuàng)新互聯(lián)是一家專業(yè)提供萬(wàn)寧企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為萬(wàn)寧眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
本篇借鑒了三篇熱門帖子
Flutter中的國(guó)際化:如何寫一個(gè)多語(yǔ)言的App
Flutter國(guó)際化完整例子
Internationalization - Make an Flutter application multi-lingual
只記錄根據(jù)手機(jī)系統(tǒng)語(yǔ)言自動(dòng)轉(zhuǎn)換app語(yǔ)言
引入后,保存會(huì)自動(dòng)加入安裝此依賴
我們新建一個(gè)和"/lib"同級(jí)別的文件夾"/locale",然后在這個(gè)文件夾中新建兩個(gè)文件,分別為"i18n_en.json" 和" i18n_zh.json"。再在"/lib"文件夾下創(chuàng)建和"main.dart"同級(jí)的"translation.dart"和"application.dart"。
??文件夾樹現(xiàn)在是這個(gè)樣子的:
MyApplication
? |
? +- android
? +- build
? +- images
? +- ios
? +- lib
?? |
?? +-main.dart
?? +-translation.dart
?? +-application.dart
? +- locale
?? |
?? +- i18n_en.json
?? +- i18n_zh.json
? +- test
在pubspec.yaml繼續(xù)加入json,引入靜態(tài)資源
補(bǔ)充:如果需要強(qiáng)制轉(zhuǎn)換的話(我自己沒有用到)
引入“flutter_localizations包”,并且“flutter packages get”:
Localizations匯總所有翻譯文本
添加到"localizationsDelegates":
到這一步應(yīng)用能跟隨系統(tǒng)更改語(yǔ)言。
上一篇講到如果解決ios長(zhǎng)按輸入框報(bào)錯(cuò)的問題,但是最終沒有達(dá)到我們的要求,因?yàn)槲覀兿雽?shí)現(xiàn)中文的提示,那么本篇文章講講如何來(lái)實(shí)現(xiàn)多語(yǔ)言配置;
1.首先在pubspec.yaml的dependencies下加入這個(gè)
flutter_localizations:
sdk: flutter
如圖:
2.然后在MaterialApp設(shè)置一下localizationsDelegates如圖:
3.寫一個(gè)類繼承一下CupertinoLocalizations,在項(xiàng)目中 我這個(gè)類名叫ChineseCupertinoLocalizations(沒錯(cuò),就是localizationsDelegates中的第三個(gè)),如圖:
上次提到報(bào)錯(cuò)的原因就是因?yàn)閏utButtonLabel,copyButtonLabel,pasteButtonLabel,selectAllButtonLabel 這幾個(gè)按鈕沒有實(shí)現(xiàn),所以繼承CupertinoLocalizations一定要為這幾個(gè)按鈕賦值,這里是那種語(yǔ)言,那么,賦值就對(duì)應(yīng)那種語(yǔ)言,同時(shí)要注意locale.languageCode也要填寫,如果你是中文,那么locale.languageCode =='zh';
4.在ios工程中,在項(xiàng)目的info設(shè)置語(yǔ)言環(huán)境
添加?Localization native development region---china
添加一個(gè)Localizations 為array類型的,并且設(shè)置值為?Chinese (simplified)
效果圖:( 注意:請(qǐng)把手機(jī)環(huán)境調(diào)試成中文的語(yǔ)言環(huán)境 )
Android?
ios 效果圖
我公司用flutter做了一個(gè)《柚品生活》的app,感興趣的朋友可以去看看,Android和ios都已經(jīng)上架了
最后附上GitHub項(xiàng)目地址 GitHub - hxxsocket/flutter_lg_demo: flutter多語(yǔ)言配置之中文
分享文章:flutter切換語(yǔ)言,flutter調(diào)用c
文章轉(zhuǎn)載:http://chinadenli.net/article42/phiihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站維護(hù)、虛擬主機(jī)、微信公眾號(hào)、靜態(tài)網(wǎng)站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)