CN110618816B - 一种基于Python的iOS APP国际化文件管理方法 - Google Patents
一种基于Python的iOS APP国际化文件管理方法 Download PDFInfo
- Publication number
- CN110618816B CN110618816B CN201910887151.6A CN201910887151A CN110618816B CN 110618816 B CN110618816 B CN 110618816B CN 201910887151 A CN201910887151 A CN 201910887151A CN 110618816 B CN110618816 B CN 110618816B
- Authority
- CN
- China
- Prior art keywords
- file
- strings
- excel
- excel file
- python
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Python的iOS APP国际化文件管理方法,包括:将相同内容不同语言的strings文件与Excel文件的不同表单建立一一对应关系;采用Python的openpyxl库创建Excel文件,读取strings文件中的键与值,并写入到Excel文件表单中;对Excel文件进行翻译;将Excel文件导入strings文件。本发明将翻译人员使用的Excel文件和开发人员使用的strings文件联接,实现strings文件自动导出为Excel文件、Excel文件自动导入strings文件;避免了人工重复的复制粘贴操作,降低时间成本,提高开发效率。
Description
技术领域
本发明涉及软件开发技术领域,具体的说,是一种基于Python的iOS APP国际化文件管理方法。
背景技术
在全球化的趋势下,越来越多的手机APP需要支持多语言,为不同国家及地域的客户提供服务。在iOS原生APP领域,国际化文件是指strings类型的文件,用来管理不同语言版本的翻译内容。很少有APP开发人员直接进行多语言翻译的情况,大多都是由开发人员将需要翻译内容导出为Excel文件发给翻译人员,待翻译后,再转给开发人员进行替换。当存在大量翻译内容时,传统人工的导出和导入将会花费大量的时间,由于是手工替换,还存在一定的错误风险。并且随着后续版本的开发,对新的翻译内容的管理显得十分麻烦。
发明内容
本发明的目的在于提供一种基于Python的iOS APP国际化文件管理方法,用于解决现有技术中在iOS国际化文件管理中由人工导入导出导致的效率低、操作繁琐的问题。
本发明通过下述技术方案解决上述问题:
一种基于Python的iOS APP国际化文件管理方法,包括:
步骤A:将相同内容不同语言的strings文件与Excel文件的不同表单建立一一对应关系;
步骤B:采用Python的openpyxl库创建Excel文件,读取strings文件中的键与值,并写入到Excel文件表单中;
步骤C:对Excel文件进行翻译;
步骤D:将Excel文件导入strings文件。
进一步地,所述步骤B具体包括:
步骤B1,读取strings文件中的“键”与“值”,并写入到Excel文件对象中;
步骤B2,将读取到的strings文件内容中的“键”对应的“值”与Excel中对应“键”的“值”进行对比,来判断内容是否修改;
步骤B3,将已存在的Excel文件中的“键”列与对应strings文件中所有的“键”进行对比,来表示翻译内容的增加或删除;
步骤B4,对新生成的Excel文件进行“为空判断”,将缺省翻译的单元格标识出来。
进一步地,所述步骤B2中还通过表格文字颜色来区分在旧版本上是否有更改。
进一步地,所述步骤B1之前还包括判断是否存在旧版本的Excel翻译文件,若存在,则先初始化Excel文件中的“键”列所有单元格背景颜色为预设颜色,用于标记strings文件中是否已删除此内容。
进一步地,所述步骤B1中,读取strings文件时使用open函数读取每一行,并且去除行首位空格、对内容进行格式化以及过滤注释行和空行。
进一步地,所述步骤D具体包括:采用Linux“sed”命令配合正则表达式将Excel中新的翻译内容替换到对应的strings文件中。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明使用Python程序将国际化文件(strings格式文件)导出为Excel文件,通过内容对比可实现变化内容的标识,方便翻译人员进行翻译和管理;同时,可使用Python程序将Excel文件导入到strings文件。
(2)本发明将翻译人员使用的Excel文件和开发人员使用的strings文件联接,实现strings文件自动导出为Excel文件,以及Excel文件自动导入strings文件;避免了人工重复的复制粘贴操作,大大减小了iOS开发中国际化文件管理的时间成本,提高了开发效率。
附图说明
图1为本发明的原理框图;
图2为本发明中strings文件导出为Excel文件的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1和图2所示,一种基于Python的iOS APP国际化文件管理方法,包括将iOS开发strings格式文件快速导出为翻译人员所需Excel文件,以及Excel文件快速导入strings文件,并包括版本差异标识功能。
具体地,strings文件导出为Excel文件包含以下步骤:
初始化:
a1.在Python程序中设置iOS工程路径,程序扫描路径中的strings文件,将文件名和路径以及语言按照字典类型存储;
a2.程序应包含一个参考文件变量,当未传入参考文件(上一个版本Excel文件)路径时,将按照全新导出的方式进行;传入参考文件时,将以版本更新的方式导出;
a3.初始化表格对象,采用Python openpyxl库进行Excel文件的相关操作,当未传入参考文件时,创建一个空的表格对象,否则加载已存在的Excel文件到表格对象。
a4.初始化单元格样式,采用openpyxl库表格单元格的font和fill方法,清除表格对象所有单元格文字颜色以及填充背景颜色。并将表格“键”列背景颜色设置为红色。
遍历读取strings文件并解析获得key和value:
a5.读取strings文件,获取“键”和“值”对。每一个同名strings文件对应表格对象的一个表单对象(sheet),当表格模型中不存在相应表单时,需要新建表单,并且设置表头,需知道包含“键”列和语言类。使用open函数读取strings文件的每一行,应注意需要过滤注释行和空行。然后经过字符串处理方法等到“键”和“值”。
a6.将读取到的“键”和“值”写入表格模型,写入前应判断对应表单对象中是否已存在相应的“键”行,若包含,则对相应语言列的值与上一步中获取到的“值”进行对比,内容不同,就进行修改,且设置文字颜色为红色,内容相同则不变;若不包含,则在表单对象中新增一行,并设置“键”列背景颜色为绿色。
a7.重复步骤a5和a6,直到strings文件读取完毕。
a8.遍历所有单元格,设置空翻译内容的单元格背景颜色为黄色,提醒翻译人员进行翻译。
将读取到的key和value写入表格对象:
a9.保存表格对象到Excel文件,完成导出。
Excel文件导入到strings文件包含以下步骤:
b1:设置Excel文件路径及工程strings文件路径;
b2:使用openpyxl库加载Excel文件;
b3:遍历上一步加载的表格对象的语言单元格内容,获取到“键”和“值”对。
B4:使用“sed”命令,并配合正则表达式创建替换相应strings文件中对应翻译的shell命令,使用“os.system”方法执行shell命令。其中需要注意部分特殊字符的转义。
B5:重复上两步,直到表格模型遍历完成。完成导入。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (3)
1.一种基于Python的iOS APP国际化文件管理方法,其特征在于,包括:
步骤A:将相同内容不同语言的strings文件与Excel文件的不同表单建立一一对应关系;
步骤B:采用Python的openpyxl库创建Excel文件,读取strings文件中的键与值,并写入到Excel文件表单中,具体包括:
步骤B1,读取strings文件中的“键”与“值”,并写入到Excel文件对象中;
步骤B2,将读取到的strings文件内容中的“键”对应的“值”与Excel中对应“键”的“值”进行对比,来判断内容是否修改;还通过表格文字颜色来区分在旧版本上是否有更改;
步骤B3,将已存在的Excel文件中的“键”列与对应strings文件中所有的“键”进行对比,来表示翻译内容的增加或删除;
步骤B4,对新生成的Excel文件进行“为空判断”,将缺省翻译的单元格标识出来;
步骤C:对Excel文件进行翻译;
步骤D:将Excel文件导入strings文件;
所述步骤B1之前还包括判断是否存在旧版本的Excel翻译文件,若存在,则先初始化Excel文件中的“键”列所有单元格背景颜色为预设颜色,用于标记strings文件中是否已删除此内容。
2.根据权利要求1所述的一种基于Python的iOS APP国际化文件管理方法,其特征在于,所述步骤B1中,读取strings文件时使用open函数读取每一行,并且去除行首位空格、对内容进行格式化以及过滤注释行和空行。
3.根据权利要求1或2所述的一种基于Python的iOS APP国际化文件管理方法,其特征在于,所述步骤D具体包括:采用Linux“sed”命令配合正则表达式将Excel中新的翻译内容替换到对应的strings文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910887151.6A CN110618816B (zh) | 2019-09-19 | 2019-09-19 | 一种基于Python的iOS APP国际化文件管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910887151.6A CN110618816B (zh) | 2019-09-19 | 2019-09-19 | 一种基于Python的iOS APP国际化文件管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110618816A CN110618816A (zh) | 2019-12-27 |
CN110618816B true CN110618816B (zh) | 2021-08-06 |
Family
ID=68923685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910887151.6A Active CN110618816B (zh) | 2019-09-19 | 2019-09-19 | 一种基于Python的iOS APP国际化文件管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618816B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982127A (zh) * | 2012-11-15 | 2013-03-20 | 深圳市共进电子股份有限公司 | 批量替换字符串实现多国语言版本的方法及批量处理装置 |
CN105138350A (zh) * | 2015-07-29 | 2015-12-09 | 北京四方继保自动化股份有限公司 | 一种组态软件国际化多语言的实现方法 |
US10095680B1 (en) * | 2016-04-26 | 2018-10-09 | Servicenow, Inc. | Systems and methods for reduced memory usage when processing spreadsheet files |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648819B (zh) * | 2016-12-27 | 2019-06-14 | 竞技世界(北京)网络技术有限公司 | 一种基于编辑器的国际化代码转换方法 |
US10114975B1 (en) * | 2017-01-13 | 2018-10-30 | Marklogic Corporation | Apparatus and method for data redaction in a semi-structured document database |
-
2019
- 2019-09-19 CN CN201910887151.6A patent/CN110618816B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982127A (zh) * | 2012-11-15 | 2013-03-20 | 深圳市共进电子股份有限公司 | 批量替换字符串实现多国语言版本的方法及批量处理装置 |
CN105138350A (zh) * | 2015-07-29 | 2015-12-09 | 北京四方继保自动化股份有限公司 | 一种组态软件国际化多语言的实现方法 |
US10095680B1 (en) * | 2016-04-26 | 2018-10-09 | Servicenow, Inc. | Systems and methods for reduced memory usage when processing spreadsheet files |
Non-Patent Citations (3)
Title |
---|
Python使用openpyxl读写excel文件的方法;sunhaiyu;《脚本之家 https://www.jb51.net/article/117515.htm》;20170630;第1-9页 * |
python处理excel(10)数据校验;橘子;《知乎 https://zhuanlan.zhihu.com/p/59495675》;20190317;第1-11页 * |
sunhaiyu.Python使用openpyxl读写excel文件的方法.《脚本之家 https://www.jb51.net/article/117515.htm》.2017, * |
Also Published As
Publication number | Publication date |
---|---|
CN110618816A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933041B (zh) | 一种利于翻译工作的文件抽取和还原方法 | |
CN110554893B (zh) | 软件***多语言适配方法、装置、设备及可读存储介质 | |
WO2020259141A1 (zh) | 一种文件处理方法、装置及计算机设备 | |
US12032941B2 (en) | Method and system for updating legacy software | |
CN102402505B (zh) | 增量语言翻译方法和*** | |
CN111068336A (zh) | 游戏译文版本的生成方法、装置、电子设备及存储介质 | |
WO2019042349A1 (zh) | 操作***框架的翻译方法、移动终端和存储装置 | |
CN111729313A (zh) | 语言的配置方法及装置、存储介质、电子装置 | |
CN115408088A (zh) | 一种软件***语言国际化全流程自动化方法 | |
CN110618816B (zh) | 一种基于Python的iOS APP国际化文件管理方法 | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
CN111124380A (zh) | 一种前端代码生成方法 | |
CN112364669A (zh) | 机器翻译译后的术语翻译方法、装置、设备及存储介质 | |
CN104484156A (zh) | 多语言公式的编辑方法、编辑***和多语言公式编辑器 | |
CN107577482A (zh) | 软件语种的自动转换方法和装置 | |
JP2010262325A (ja) | 文字列変換方法、プログラム及びそのプログラムを記憶した記憶媒体 | |
CN115686493A (zh) | 一种c语言数据结构代码自动生成接口控制文档的方法 | |
CN115481643A (zh) | 一种互联网在线翻译工具中译稿高度还原文档样式的方法 | |
CN115712601A (zh) | 一种基于springbatch批量读取定长文件的方法 | |
CN115437641A (zh) | 基于接口数据的代码生成方法、装置、设备及存储介质 | |
CN110554860B (zh) | 一种软件项目自然语言编程接口nli的构造方法及代码生成方法 | |
CN113792558A (zh) | 基于机器翻译和译后编辑的自学习翻译方法及装置 | |
CN113961300A (zh) | 一种iOS APP字符串资源文件翻译方法及*** | |
JP2000029678A (ja) | プログラム言語変換方法、変換装置および記録媒体 | |
CN111159981A (zh) | 一种Excel文档的解析翻译方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |