# App语言包与Excel文件互导工具 带源码

## 0x01  起源：

很多时候，做对外App的同学都要提供App的外国语言包给到非开发人员翻译，这个时候就有几个痛点：

1. 如果直接给App的源语言包文件给非开发人员，他们不知道如何编译哪部分文本，或者根本无法打开你发的文件。
2. 很多时候为了使翻译更准确，需要观看多国语言进行对比，找到合适的翻译词汇。如果是给的单个单个的App语言包文件，需要在打开的好几个App语言包中来回切换，很费事。
3. 直接用App语言包翻译有时要考虑多国语文本编码问题
4. 同一个App，安卓工程师写的字段名和ios工程师写的字段名不同，导致可能语言包翻译人员可能要翻译2遍，重复工作增大

该工具正是为了解决如上的痛点，决定写一个工具自动从android和ios的语言包转换为excel文件，然后将Excel文件统一给到非开发人员翻译，最后将翻译的文件自动生成开发人员直接可用的语言包即可。

软件由c# .net4 编写，开源，方便大家修改适配自家的情况



![1](md_pic\1.png)

## 0x02  将App语言包转换为Excel文件：

1. 选择语言包，可以右下角切换android语言包的xml文件和ios的txt文件。例如：

   ![4](md_pic\4.png)

   ![2](md_pic\2.png)

   ![3](md_pic\3.png)

2. 设置要保存的列名，这里可以根据设置的列名保存到Excel中，并可以对一个Excel多次追加不同的平台的语言包和不同的国别的语言包。当excel中已存在设置的列名的列，该列将被**覆盖**。

   ![5](md_pic\5.png)

3. 选择要保存到的Excel文件，由于这里的Excel文件由专有的表名和列名，所以即使是新建文件也要选择我附带的【空文件.xls】。点击保存到excel即可。

   ![6](md_pic\6.png)

4. 如下图就是一个Demo的excel。下图中日语的列是在Excel中添加的，所以内容是空的，这样你就对不同的翻译人员新建不同的列，最后再excel里统一操作规整就可以得到需要导出为语言包的excel文件。

   ![7](md_pic\7.png)

   ### Excel文件的列名说明：

   **安卓字段：**该语言在android系统中使用的字段名

   **ios字段：**该语言在android系统中使用的字段名

   **统一字段：**如果导入的时候，安卓和ios存在同样的字段，就会自动保存为统一字段。这样也可以作为一种检查，出了必要的区分，其他的字段都可以统一，减少翻译人员工作量。

   **其他的列**都是语言包的国别名称，可以自定义，例如图中日文就是excel中手动编辑的。



## 0x03  将Excel文件转换为语言包：

1. 选择要导出的Excel文件，将会自动识别里面能导出的语言包的列表

   ![8](md_pic\8.png)

2. 选择要生成的语言，点击生成，将会在excel统计目录生成以列名为文件名的双平台App语言包

   ![9](md_pic\9.png)