CN110618816B - 一种基于Python的iOS APP国际化文件管理方法 - Google Patents

一种基于Python的iOS APP国际化文件管理方法 Download PDF

Info

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
Application number
CN201910887151.6A
Other languages
English (en)
Other versions
CN110618816A (zh
Inventor
吴竞
李晨心
李生强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201910887151.6A priority Critical patent/CN110618816B/zh
Publication of CN110618816A publication Critical patent/CN110618816A/zh
Application granted granted Critical
Publication of CN110618816B publication Critical patent/CN110618816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation 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国际化文件管理方法
技术领域
本发明涉及软件开发技术领域,具体的说,是一种基于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文件中。
CN201910887151.6A 2019-09-19 2019-09-19 一种基于Python的iOS APP国际化文件管理方法 Active CN110618816B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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