Android多国语言转换Excel及Excel转换为string详解
作者:夏至的稻穗 发布时间:2022-10-30 08:07:02
前言
在实际的开发中,当我们完成了一个apk,一般都是英语和中文简体这两种语语言,如果发布了,则需要把字符转换给翻译公司,让他们帮忙翻译,一般提供一个 Excel 表格,如下:
当翻译完成之后,我们希望能把它快速转换成 value-xx 文件下对应的 string 或者 arrays ,如:
我只要复制粘贴即可。当然网上也有很多大神用 Python 或者其他语言写了,但是我们用 Android 的,所以肯定用 Java 了。于是我写了个 EasyTransLib 用来方便翻译。因为 studio 对 pc 端的支持并友好,所以这个工程是用 eclipse 开发。
工程如下:https://github.com/LillteZheng/EasyTranalte
String 转换成 Excel
首先,在工程的根目录,写一个文件夹,比如 Test:
values 比较简单,就一个 string 和 arrays ,目前也就支持这两个。
其中 strings 如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">OtaService</string>
<string name="anim_time">200</string>
<string name="system_update">System upgrade</string>
<string name="check_new_version">Find a new version. Download it?</string>
</resources>
arrays 如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="test_array">
<item>one</item>
<item>two</item>
<item>three</item>
</string-array>
<string-array name="test2_array">
<item>hour</item>
<item>min</item>
<item>second</item>
</string-array>
</resources>
开始转换
找到工程下的 WriteXmlToXls
需要添加 文件夹的名字:
效果如下 gif 图:
刷新一下,就会看到生成 string 和 arrays strings
arrays
arrays 的样式丑了点,但这都是为了接下来住转换 strings 准备的。
Excel 转 strings.xml 和 arrays
上面,我们已经把 strings 和 arrays 转换成 Excel 了,那么接下来就是对 Excel 传承我们最喜欢 的string 和 arrays 了。
把 test.xlsx 的 strings 添加多几个字符,和新增一个中文繁体的
其中首行的 国家名称必须写,否则无法识别成对应的文件夹的名称
arrays 也加一个:
然后把 test.xlsl 放在根目录下,并找到 ReadXlsToXml 这个类
ReadXlsToXml 可以配置一些信息:
看下面的 动图:
按 F5 刷新一下,就可以看到 也生成了 value-zh-rTW 的繁体字符了。
来源:https://juejin.im/post/5c37120551882525a50bc0dc
猜你喜欢
- 目录服务注册服务发现服务注册引入相关依赖:<?xml version="1.0" encoding="U
- 一、HttpBasic模式的应用场景HttpBasic登录验证模式是Spring Security实现登录验证最简单的一种方式,也可以说是最
- 1.idea新建Maven项目Mybatis-study 将项目里的src文件夹删掉 依次将此项目作为父项目2.在Mybatis-study
- 当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toStri
- 1.定义字符串字符串常见的构造方式如下:String s1 = "with";String s2 = new Strin
- 它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。一、 final数据有
- 一、项目简述功能包括: 登录注册,办理借阅。借阅记录,预约借阅,借出未还, 借阅逾期,学生管理,图书管理,书库分类查询搜索。二、项目运行环境
- 1、java中启动exe程序 ,并添加传参String[] cmd = {"hh.exe","12315&qu
- JRebel 介绍IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊。目
- 前言本文我们主要实战Mybatis官方的代码生成器:Mybatis Generator(MBG),掌握它以后,可以简化大部分手写代码,我们只
- 背景在接口请求过程中,传递json对象,springboot转换为实体VO对象后,所有属性都为null。post请求:后台接收请求:当时就懵
- Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模
- 1. 编写索引内容节点解释:settings:配置信息"number_of_replicas": 0 不需要备份(单节点
- 这篇文章主要介绍了Java方法重载Overload原理及使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 23种设计模式第十四篇:java迭代器模式定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:如
- 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示U
- 本文实例总结了C#子线程更新UI控件的方法,对于桌面应用程序设计的UI界面控制来说非常有实用价值。分享给大家供大家参考之用。具体分析如下:一
- 1:引入依赖<dependency> <
- 1.首先解释一下什么是方法重载?方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术。这里
- 简介Java注解是JDK1.5引入的一种注释机制,它不会改变编译器的编译方式,Java编译器对包含注解和不包含注解的代码会生成相同的Java