① android-添加新的語言支持(比如繁體)
這幾天突然要發一個中國台灣版本,做法比較硬:復制一個工程,改包名,改圖標,芹旁改api介面。語言全部都是繁體就行:
Android studio添加新語言資源文件(res/values/....)如下:
然後回車即可:
把對應的字元串翻譯成繁體就行。至於翻譯,有一些工豎兆具可以借鑒。同時網上也有很多多語言切換的方式,就是一個工程,一個app進行內部切換多語言支持的方式(像微信就是。不過微信繁體有些不一定都支持了...)嫌纖橡。具體看情況啦。。。
因為我們是整個app就是中國台灣台北版本,所以就都是繁體,不管系統是簡體還是繁體還是別的,就是繁體!!!
簡單記錄下。好多東西沒怎麼關注或者使用,至於是否要深入,可能要看情況....
參考o: android--實現多語言支持 - snow_flower - 博客園
② Android國際化多語言切換
關於App國際化,之前有講到國際化資源、字元換、布局相關,想要了解的猛戳 用力抱一下APP國際化 。借著本次重構多語言想跟大家聊一下多語言切換,多語言切換對於一款國際化App來講是重中之重,並非難事,但是若要做好也是一件不容易的事情。
當我們做了系統的配置更改,比如說切換了系統導航或者說更改了深色模式,那麼我們一般的處理是也是要對Application作出處理。
如果項目中有用到ApplicationContext去getString(@StringRes int id)實現載入的提示語,那麼如果只是單純的重啟界面則無法讓當前的提示語跟隨當前切換的語言,所以我們要麼重啟整個應用,要麼對ApplicationContext中的Local也作出相應的更新方可,這里有一點問題,雖然Android N之後updateConfiguration是過時方法,官方給出使用createConfigurationContext代替,但是更新ApplicationContext的Local發現無效使用老版本updateConfiguration正常。
如果你發現你的應用廣播通知欄適配無效,那就是context中的Local在切換語言是並未及時更新Local,這里調試一下便知,如果是Applicaiton注冊的廣播,那麼多半情況下是沒有更新ApplicationContext的Local所導致的。
多語言適配基本步驟大概就是如此了,下面看一下適配的細節問題。
[圖片上傳失敗...(image-b42d06-1640685147639)]
還有一點Android N之後,手機系統的語言配置選項已經不是單選了,改為一個列表了,具體可以參考手機設置中的語言和輸入法,所以 setLocal(@Nullable Locale loc) 方法建議不要再使用了,我相信很多人還在用,正確的用法應該是 setLocals(@Nullable LocaleList locales) ,需要傳遞一個集合。
當你的應用使用的是androidx.appcompat:appcompat:1.2.0及以上時,BaseActivity中需要實現下面方法。
這套方案目前不在推薦,直接去替換attatchBaseContext()中的context則可,經過測試是完全正常的。
以下則是多語言操作的工具類,現在提供出來,需要的朋友可以自行進行改造。
③ 安卓手機如何添加多國語言
添加方法是有的,網上可以找到很多。不過很麻煩,以下以添加波斯語為例給你簡單的說下:
1、在sdkDemo.mk 中添加語言和國家的國際化的縮寫代碼,如伊朗:IR表示,波斯語用fa表示,這是國際化的標准,不可以隨便寫的。如果不知道國家與地區的縮寫,可以去網上找找。
PRODUCT_LOCALES:= fa_IR en_US zh_CN en_GB fr_FR it_IT es_ES ……..
sdkDemo.mk的路徑為:gingerbread\device\rockchip\sdkDemo\sdkDemo.mk.
2、在framework/base/data/font目錄下添加波斯語的字型檔,如DroidSansArabic.ttf
3、字型檔加完後,就要去調用字型檔了,調用字型檔的文件是在external/skia/src/ports/SKFontHost-android.app下,
static constFontInitRec gSystemFonts[] = {
{ "DroidSans.ttf", gSansNames },
………
{
"DroidSansArabic.ttf",
gFBNames },
4、字型檔准備好了,還有一些makefile需要修改了。在external/icu4c/studata/ Android.mk下:
config := $(word1, \
$(if $(findstringar,$(PRODUCT_LOCALES)),large) \
$(if
$(findstring fa,$(PRODUCT_LOCALES)),large) \
5、 在frameworks/base/core/res/res/下新增加一個values-fa-rIR的文件夾,並新建一個strings.xml文件。
6、上面五步加完後,在settingsàLanguage&keyboardàSelect language列表下就會出現波斯語這個選項了,但是選了波斯語後,並沒有出現波斯語文字。這時就需要在相應的APP下的res/下新建values-fa-rIR的文件夾,並翻譯strings.xml文件即可。如主app的strings.xml路徑為:gingerbread\packages\apps\Desktop2D_mbx_new\res\values-fa-rIR\strings.xml
最後,以上所有內容都加好後,一定要記得:
Make clean
Make prebuild
Make
建議你還是刷新ROM來解決吧!
④ 有什麼安卓系統的輸入法可以直接輸入多種語言
觸寶輸入法,我一直在沒升用。幾十種外語,切換比較方便,你可以試一試。
早上好
Good morning
おはようございます
Buenas días
語言設置界面:
在Settings>>Languages中把想要的語言包下載後,只要按下面那個按鈕就可以靈活切換語言,很方便。長時間不用某種語言時可以先將其去除,等到使用時再勾選上即可。
我喜歡學外語,經常需要輸入好幾種外語,這個余凱輸入法是我目前知道的安卓系統上輸入多種外語用起來最方便的,希望我的回答能幫到大家😀
更新:
觸寶公司已經倒枯毀老閉了,詞庫也不更新了,我現在改用gboard,輸入流暢度比觸寶差點,但是習慣了感覺也不錯,關鍵是人家有谷歌這樣的大公司維護,語種多詞庫新。而且我還驚喜地發現gboard裡面有我一直苦苦尋找的國際音標輸入法,讓我對它的好感度頓時增加不少。
⑤ android開發中怎麼設置多語言版本
android多語言實現必須是將strings.xml放在不同的文件夾目錄下,由安卓系統自動去載入文字資源。
1.Android 中要實現國際化比較簡單,字元串國際化:只要在 res 文件夾下新建對應語言的 values 文件夾就好了。
例如:
英語環境下的,文件夾命名為:values-en
美國英文環境:values-en-rUS
中文環境為:values-zh
大陸地區中文環境:values-zh-cn
2.eclipse 下新建 Android 項目時,會在 res 目錄下自動創建一個默認語言環境的文件夾 : values 。
3.當某一個資源沒有在語言環境的對應的資源集合中找到時,就會使用 values 下的資源。若某一個語言環境沒有在項目中定義語言環境,那麼也會使用 values 下的資源。
⑥ Android如何實現多語言支持
無非是 把文字寫在strings.xml文件里咯,拿中英說吧,
中文(簡體):values-zh-rCN
中文(台灣):values-zh-rTW
中文(香港):values-zh-rHK
英文(美國):values-en-rUS
英文(英國):values-en-rGB
可以參考這里android多語言支持
還有一點細節需要處理的是控制項的大小,英文單詞或片語長度肯定是和中文不一樣的,比如Button的背景、寬高等,注意用wrap_content,最好加上 minWidth, minHeight, 或者代碼判斷系統語言,然後代碼控制控制項的寬高
⑦ Android 內多語言切換實現
網上有很多安卓內多語言切換的文章,我也看了一些,很多都千篇一律,而且還是有問題,我就自己重新改了一下。整好分享給各位同學,廢話不多說,我們正式開始
我們在點擊切換語言的按鈕時候彈窗dialog 然後用戶可以選擇 簡體中文 英文 繁體中文 跟隨系統 四種選項 ,這是我們基本的需求
首先我們要在資源文件res目錄下面創建多語言的目錄文件夾 values values-en values-zh-rTW values-TW 如圖所示:
我們適配多語言的只需要在 values values-en values-zh-rTW 這個三個目錄下面的string.xml文件裡面寫入對應的引用的文本即可
我們只需要這樣配置就然後在布局的xml文件裡面引用可以達到適配多語言的效果 :
具體引用:
切換的dialog實現這個我用原生的AlertDialog 你們自己可以自定義繼承系統的Dialog來實現
這里的語言種類獲取到的sta是重SharedPreferences 緩存裡面獲取到的因為需要
SharedPreferences 工具類:
我們在dialog點擊事件里發送一個廣播通知 用來觸發刷新
然我們在baseActivity裡面接收廣播重啟activity 來刷新多語言切換
關於Locale
實現多語言切換用到了Locale。Locale里很多常見國家和地區以及語言,如果我們做常見的語言,可以直接調用系統的,比如Locale.CHINESE。但是這次做的繁體中文的適配,略我坑一下。
繁體中文我們直接在Locale 屬性裡面傳入 zh-rTW 但是切換沒有生效 我翻了下源碼只有TW的屬性配置我就要修改了
問題是,我最開始直接這樣寫的:
到此我們說明下開頭提到到為什麼多出了 values-TW目錄 是因為我發現在多語言切換更新 Configuration 中的 locale 屬性 的時候翻開源碼看到繁體中文(泛指港澳台並沒有看到zh-rTW的屬性配置)
所以目前的解決方案就是用values-TW來替代:
我這邊目前是這樣處理來兼容繁體中文切換不生效的做法 ,如果你有更好的方案 麻煩留言大家一起探討。
Android 內多語言的切換網上的文章也挺多的,基本都千篇一律 很多有紕漏 ,這邊也是翻了一下源碼勉強能夠兼容繁體中文, 項目地址
⑧ Android國際化之多語言(配置及應用內設置)✈️
Android系統通過判斷當前系統的Local配置,來使用對應的strings.xml文件
values-->strings.xml 默認語言(簡體中文)
values-zh-rHK-->strings.xml 繁體中文
values-en-->strings.xml 英語
在Android系統中,系統的配置大都通過 Configuration 來管理,包括strings等等。
onCreate() 中注冊
onDestroy() 中取消注冊
setLanguage() 方法
通過上面的設置,可以實現不重啟APP修改語言的效果
以上只是對Android多語言設置的一些小小的總結,可能有理解不周的情況,歡迎給我留言指出😄
⑨ Android:應用多語言切換,國際化實現
生成多種語言的string.xml,裡面放置對應的語言,修改配置(Configuration),重啟之後就會載入對應語言的string.xml。
1:在res目錄下,生成對應的語言包,比如英語:
在res目錄下生成了可看到生成了:
<string name="hello">你好</string>
英語:
<string name="hello">hello</string>
之後就可以使用getResource.getString(R.string.hello),這個字元串會載入相對應的配置的語言。
3:修改語言配置
修改語言配置後,需要重新啟動進程,並且殺死進程。
1:有些手機是可以在設置里直接切換語言的,這個也就是Configuration改變。用戶重新設置系統語言導致應用的語言也會重新設置。Configuration改變,如果在Manifest中不設置android:configChanges忽略掉配置改變,Activity會重新創建,那麼我們就可以在Activity的onCreate中,重新修改語言配置。
2:切換語言後,退出應用,重新進來,你會發現又是系統設置的語言。所以需要在Application開啟時,需要再次切換語言配置。