App語言國際化之Android與iOS公用一套翻譯利器
相信做App的程序員們都知道,大多數情況下我們開發的App肯定不止僅有一種語言,那麼你有沒有考慮過客戶端公用一套翻譯文言,每次只需要導出LanguageExcel.xlsx 翻譯完成後再一鍵導入就ok?
工具類地址: https://github.com/Felix1030/values_utils.
implementation 'com.felix.values.utils:values_utils:1.0.5'
一、功能介紹
- 支持多strings文件導出到Excel文件
- 支持多arrays文件導出到Excel文件(目前僅支持單個strings-arrays導出)
- 支持Excel文件導入多strings文件
- 支持Excel文件導入多arrays文件(目前僅支持單個strings-arrays導入)
二、應用
- Android國際化strings翻譯
- Android國際化arrays 錯誤碼翻譯
三、使用
3.1 ValueState
ValueState.STRINGS_TO_EXCEL 導出Strings到Excel
ValueState.EXCEL_TO_STRINGS 導入excel到strings
ValueState.ARRAYS_TO_EXCEL 導出Arrays到Excel 需要指定setArraysXmlKey
ValueState.EXCEL_TO_ARRAYS 導入Excel到Arrays 需要指定setArraysXmlKey
ValueState.NONE 啥也不幹
3.2 kotlin
// 導出strings到Excel文件
fun main() {
ValueUtilsManagerBuilder(ValueState.STRINGS_TO_EXCEL)
.setImportAndExportPath("/Users/vincent/Desktop/workspace/Clock/resource/src/main/res") // 指定導出或者導入的路徑
.setArraysXmlKey("clock_error_codes") // 指定arrays的Key 暫時不支持多Key
.build()
.execute()
}
values/strings.xml
values-en/strings.xml
導出後Excel
// 導入Excels到strings文件
fun main() {
ValueUtilsManagerBuilder(ValueState.EXCEL_TO_STRINGS)
.setImportAndExportPath("/Users/vincent/Desktop/workspace/Clock/resource/src/main/res") // 指定導出或者導入的路徑
.setArraysXmlKey("clock_error_codes") // 指定arrays的Key 暫時不支持多Key
.build()
.execute()
}
// 導出arrays 並且<string-array name="clock_error_codes">到Code.xlsx文件
fun main() {
ValueUtilsManagerBuilder(ValueState.ARRAYS_TO_EXCEL)
.setImportAndExportPath("/Users/vincent/Desktop/workspace/Clock/resource/src/main/res") // 指定導出或者導入的路徑
.setArraysXmlKey("clock_error_codes") // 指定arrays的Key 暫時不支持多Key
.build()
.execute()
}
// 導入Excels到arrays文件 並設置 <string-array name="clock_error_codes">
fun main() {
ValueUtilsManagerBuilder(ValueState.EXCEL_TO_ARRAYS)
.setImportAndExportPath("/Users/vincent/Desktop/workspace/Clock/resource/src/main/res") // 指定導出或者導入的路徑
.setArraysXmlKey("clock_error_codes") // 指定arrays的Key 暫時不支持多Key
.build()
.execute()
}
3.3 java
public class GenerateJava {
public static void main(String[] args) {
new ValueUtilsManager.ValueUtilsManagerBuilder(ValueState.STRINGS_TO_EXCEL)
.setImportAndExportPath("/Users/vincent/Desktop/workspace/Clock/resource/src/main/res")
.setArraysXmlKey("clock_error_codes")
.build()
.execute();
}
}
該工具類目前已經初步可以實現功能,若在使用過程中有問題,請留言或者提issue,謝謝