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,谢谢