上一篇講到如果解決ios長按輸入框報錯的問題,但是最終沒有達到我們的要求,因為我們想實現(xiàn)中文的提示,那么本篇文章講講如何來實現(xiàn)多語言配置;
公司主營業(yè)務(wù):網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出阿拉山口免費做網(wǎng)站回饋大家。
1.首先在pubspec.yaml的dependencies下加入這個
flutter_localizations:
sdk: flutter
如圖:
2.然后在MaterialApp設(shè)置一下localizationsDelegates如圖:
3.寫一個類繼承一下CupertinoLocalizations,在項目中 我這個類名叫ChineseCupertinoLocalizations(沒錯,就是localizationsDelegates中的第三個),如圖:
上次提到報錯的原因就是因為cutButtonLabel,copyButtonLabel,pasteButtonLabel,selectAllButtonLabel 這幾個按鈕沒有實現(xiàn),所以繼承CupertinoLocalizations一定要為這幾個按鈕賦值,這里是那種語言,那么,賦值就對應(yīng)那種語言,同時要注意locale.languageCode也要填寫,如果你是中文,那么locale.languageCode =='zh';
4.在ios工程中,在項目的info設(shè)置語言環(huán)境
添加?Localization native development region---china
添加一個Localizations 為array類型的,并且設(shè)置值為?Chinese (simplified)
效果圖:( 注意:請把手機環(huán)境調(diào)試成中文的語言環(huán)境 )
Android?
ios 效果圖
我公司用flutter做了一個《柚品生活》的app,感興趣的朋友可以去看看,Android和ios都已經(jīng)上架了
最后附上GitHub項目地址 GitHub - hxxsocket/flutter_lg_demo: flutter多語言配置之中文
(*注:以下僅個人配置過程參考,系統(tǒng)win7-64)
所需軟件
vsCode,Android Studio, MuMu模擬器 (直連手機調(diào)試的話就不需要了)
配置過程
1、Flutter安裝
安裝時忘記截圖,具體可參考鏈接 flutter中文網(wǎng) 相關(guān)教程+ 百度 ,現(xiàn)在網(wǎng)上教程很多,多踩點坑總會成功的。
2、MuMu模擬器調(diào)試時需進行相關(guān)配置
(*注:直連手機調(diào)試可忽略以下;執(zhí)行以下操作需要在執(zhí)行flutter doctor成功后,flutter run執(zhí)行前)
(1)mumu模擬器端口監(jiān)聽,需要執(zhí)行
(2)mumu模擬器調(diào)試flutter run可能會報錯,可以改成,具體原因可直接百度“--enable-software-rendering”
3、如需調(diào)試ios端可嘗試虛擬機+macOS+xCode
vmware+macOs可參考鏈接 VMware15安裝MacOS系統(tǒng) ,筆者按照該步驟已安裝成功
當(dāng)一個純Flutter APP開發(fā)完成,我們要打包發(fā)布到App Store和各大安卓市場,這時候我們需要設(shè)置APP的版本號。
如果我們在使用原生iOS或者Android開發(fā)的時,我們會在info.plist中設(shè)置 version 和 build 或是在build.gradle中設(shè)置 versionName 和 versionCode ,他們分別表示APP的版本和構(gòu)建版本。
但是我們在使用Flutter管理APP版本時,打開 pubspec.yaml 只看到一個 version 字段。這時候我們應(yīng)該怎么設(shè)置APP的 version 和 build 呢?
我們在pub上隨便找一個Flutter的組件,例如官方的 camera ,我們可以看到截止目前為止最新的版本為: camera: ^0.5.2+1 。看到這里,我想大家都明白了,Dart采用的是加號式的版本描述方式, + 前面是版本號, + 后面是當(dāng)前版本的build號。所以我們設(shè)置APP的版本號和build次數(shù),在這里設(shè)置即可,例如: version: 1.2.0+1 。
當(dāng)我們新建一個Flutter工程的時候,我們分別使用Xcode和Android Studio打開iOS和Android的工程可以看到,iOS中的 version 和 build 的值分別為 FLUTTER_BUILD_NAME 和 FLUTTER_BUILD_NUMBER :
同樣我們打開Android工程可以看到有如下定義:
事實上,F(xiàn)lutter在編譯的時候會生成 ios/Flutter/Generated.xcconfig 和 android/local.properties 文件。這兩個文件由Flutter編譯自動生成,不可更改。記錄了包含SDK路徑或者文件路徑,版本信息,環(huán)境配置(release/debug)等信息。原生工程獲取版本信息的變量就定義在這兩個文件里面。
官方連接:
以上4行作用:
第一行,將flutter的相關(guān)命令添加到環(huán)境中
第二三行,設(shè)置使用flutter社區(qū)的倉庫,這樣在使用flutter get時就不會出錯了
第四行,配置flutter的git倉庫,用于flutter的版本更新,默認使用github上的倉庫速度太慢
將以上4行分別在環(huán)境變量中添加即可
注意:推薦使用本例中的社區(qū)的源,更新更及時,更全面.以前使用 ,在構(gòu)建web是出現(xiàn)錯誤,改成社區(qū)源后解決.
錯誤: