![](https://img.51dongshi.com/20250108/wz/18396187452.jpg)
盡管Android從2.3版本開始就支持超過50種語言,但并非所有語言都擁有相應的字體以確保正確顯示。當客戶要求添加Hindi語言支持時,我決定在網(wǎng)上查找相關(guān)資料。我發(fā)現(xiàn)大多數(shù)教程僅涉及替換默認字體,例如替換./frameworks/base/data/fonts/DroidSansFallback.ttf。然而,這種方法會導致中文無法正常顯示。要實現(xiàn)新語言的顯示支持,只需遵循以下步驟:1. 首先,需要下載一個可以顯示Hindi語言的字體文件,如DroidHindi.ttf。2. 將字體文件拷貝到./frameworks/base/data/fonts/目錄。3. 修改./frameworks/base/data/fonts/Android.mk文件,將DroidHindi.ttf添加到copy_from列表中。4. Hindi語言代碼為hi_IN,需要在./device/qcom/common/common.mk文件中添加該語言代碼,以便在設置->語言和鍵盤->選擇語言中看到Hindi語言。5. 修改./external/skia/src/ports/SkFontHost_android.cpp文件,將DroidHindi.ttf加入其中。很多教程沒有提及這一步,如果不進行這一步,添加的語言將無法生效,顯示為亂碼。6. 查看./build/target/product/full.mk文件,了解系統(tǒng)選擇的語言列表。我的系統(tǒng)選擇的是$(call inherit-product, build/target/product/languages_small.mk)。因此,我需要在./build/target/product/languages_small.mk文件中添加hi_IN語言代碼。7. 在external/icu4c/studata目錄下的Android.mk文件中,添加$(if $(findingstring hi,$(PRODUCT_LOCALS)),large)。最后,重新編譯并刷入手機或模擬器即可。