本发明涉及字符串提取及合并方法,尤其涉及一种Android系统字符串提取及合并方法。

背景技术:

随着智能通讯终端的日益普及,采用Android系统的智能通讯终端设备越来越走向世界各地,而对于多国语言的支持问题逐渐成为各终端厂商不可或缺的一环。在采用了Android系统的终端设备研发过程中,对于软件系统界面的各国语言文字的正确性检查成为各个终端厂商必不可少的一项工作。

当前的手段大多是通过本地测试人员,人工的方式逐个界面进行检查、反馈,或通过界面截图的方式,尽可能多截取系统UI场景界面,或提供给当地语言测试人员进行检查和反馈。而针对已存在的原始字符串文件进行正确性检查的手段目前并没有成熟的方案。

技术实现要素:

为了解决现有技术中的问题,本发明提供了一种Android系统字符串提取及合并方法。

本发明提供了一种Android系统字符串提取及合并方法,包括以下步骤:

S1、提取字符串,将系统源代码中某种语言的文字全部提取到一个输出文件中,并插入路径关键字按模块路径加以标记;

S2、合并字符串,将输出文件通过自动化方式按路径关键字为识别标记合入系统源代码。

作为本发明的进一步改进,步骤S1包括以下子步骤:

S11、针对源码按目录递归地进行字符串文件扫描,目标为路径中包含特殊路径标记名称的文件夹下的语言字符串文件;

S12、扫描到字符串文件后,创建一个输出文件,插入语言字符串文件所在目录路径元素,随后再插入所扫描到的文件夹下的字符串文件中的全部字符串元素及值;

S13、按目录递归扫描符字符串文件,直到搜索完所有满足名称包含特殊路径标记的文件夹为止,处理方式按步骤S11和步骤S12进行,最后,在输出文件中插入文件结束标记。

作为本发明的进一步改进,步骤S1还包括S14、将步骤S13执行完之后得到的输出文件提供给本地或当地语言测试人员进行语法、语义检查,并修改此输出文件;

步骤S2包括以下子步骤:

S21、针对修改后的输出文件,逐行扫描,根据读取到的路径关键字,处理对应的目录文件夹下的语言字符串文件,将该路径关键字后面所跟随的字符串内容,替换原有字符串文件中所对应的字符串内容,此过程递归执行,直到读取到文件结束标记。

作为本发明的进一步改进,在步骤S11中,扫描满足条件的路径中包含不同特殊路径标记为名称的文件夹时,同步判断多种语言。

作为本发明的进一步改进,步骤S1包括以下子步骤:

S101、创建values-{XX}.xml文件,插入xml文件开始标记,XX代表某语言;

S102、扫描根目录文件;

S103、文件夹下是否包含res/values-{XX}为名称的文件夹,如果是,则进入步骤S104,如果否,则进入步骤S105;

S104、插入该文件夹下语言字符串xml文件的目录路径元素,再插入文件夹下的字符串xml文件中的全部字符串;

S105、继续扫描子目录文件夹,判断是否已经全部扫描,如果否,则返回步骤S103,如果是,则进入步骤S106;

S106、在values-{XX}.xml文件中插入xml文件结束标记;

S107、结束。

作为本发明的进一步改进,步骤S2包括以下子步骤:

S201、打开values-{XX}.xml文件;

S202、读取一个元素及值;

S203、判断是否是文件结束关键字,如果是,则结束,如果否,则进入下一步骤:

S204、判断是否是路径关键字元素,如果否,则进入下一步骤,如果是,则记录路径值为P,并进入下一步骤;

S205、在路径P下,替换旧字符串xml文件中对应的字符串元素值为新值,返回步骤S202。

本发明的有益效果是:将系统中某种语言的文字全部提取到一个文件中,并插入路径关键字按模块路径加以标记,提供给本地或当地语言测试人员先期进行语法、语义检查,直接在该文件加以修正,然后再通过自动化方式按路径关键字为识别标记合入系统源代码,在对于软件系统界面的各国语言文字的正确性检查中,起到先期纠正语法、语义错误的作用,进而减少错误量,减少后期工作量。

附图说明

图1是本发明一种Android系统字符串提取及合并方法中提取字符串的流程图。

图2是本发明一种Android系统字符串提取及合并方法中合并字符串的流程图。

具体实施方式

下面结合附图说明及具体实施方式对本发明作进一步说明。

一种Android系统字符串提取及合并方法,包括以下步骤:

S1、提取字符串,将系统源代码中某种语言的文字全部提取到一个输出文件中,并插入路径关键字按模块路径加以标记;

S2、合并字符串,将输出文件通过自动化方式按路径关键字为识别标记合入系统源代码。

一种Android系统字符串提取及合并方法,包括具体以下步骤:

1.针对源码按目录递归地进行字符串文件扫描,目标为路径中包含特殊路径标记名称的文件夹下的语言字符串文件。

2.扫描到字符串文件后,创建一个输出文件,插入语言字符串文件所在目录路径元素,随后再插入所扫描到的文件夹下的字符串文件中的全部字符串元素及值。

3.按目录递归扫描符字符串文件,直到搜索完所有满足名称包含特殊路径标记的文件夹为止,处理方式按步骤1和步骤2进行。最后,在输出文件中插入文件结束标记。

将步骤3执行完之后得到的输出文件提供给本地或当地语言测试人员进行语法、语义检查,并修改此文件。

4.针对修改后的输出文件,逐行扫描,根据读取到的路径关键字,处理对应的目录文件夹下的语言字符串文件,将该路径关键字后面所跟随的字符串内容,替换原有字符串文件中所对应的字符串内容。此过程递归执行,直到读取到文件结束标记。

5.上述过程中可以同步处理多种语言,即扫描满足条件的路径中包含不同特殊路径标记为名称的文件夹时,同步判断多种语言,例如针对Android平台,特殊路径标记名称可包含res/values-ru,或res/values-es,或res/values-th,或res/values-es,或res/values-hi等等。

如图1所示,步骤S1具体包括以下子步骤:

S101、创建values-{XX}.xml文件,插入xml文件开始标记,XX代表某语言;

S102、扫描根目录文件;

S103、文件夹下是否包含res/values-{XX}为名称的文件夹,如果是,则进入步骤S104,如果否,则进入步骤S105;

S104、插入该文件夹下语言字符串xml文件的目录路径元素,再插入文件夹下的字符串xml文件中的全部字符串;

S105、继续扫描子目录文件夹,判断是否已经全部扫描,如果否,则返回步骤S103,如果是,则进入步骤S106;

S106、在values-{XX}.xml文件中插入xml文件结束标记;

S107、结束。

如图2所示,步骤S2具体包括以下子步骤:

S201、打开values-{XX}.xml文件;

S202、读取一个元素及值;

S203、判断是否是文件结束关键字,如果是,则结束,如果否,则进入下一步骤:

S204、判断是否是路径关键字元素,如果否,则进入下一步骤,如果是,则记录路径值为P,并进入下一步骤;

S205、在路径P下,替换旧字符串xml文件中对应的字符串元素值为新值,返回步骤S202。

本发明提供的一种Android系统字符串提取及合并方法的重点如下:

1.将全部源码的字符文件提取到单独的一个文件中;

2.提取生成的文件是xml文件,以路径关键字元素区分各个文件夹字符串的路径;

3.合并阶段以路径关键字为区分,将修正后的文件内容,更新到原提取目录文件夹下。

提供以下实施例:

1.针对Android源码按目录递归地进行字符串文件扫描,即路径中包含res/values-{XX}为名称的文件夹(记为A)下的保存语言字符串的xml文件。其中,{XX}代表某种语言,可以取ru,es,tr等等语言码。

2.扫描到字符串文件后,首先创建一个values-{XX}.xml文件,然后先插入xml文件开始标记,然后再插入语言字符串xml文件所在的目录路径元素(路径关键字属性及其路径,如:

"frameworks-base-core-res-res"),随后再插入扫描到文件夹A下的字符串xml中的全部字符串。

3.继续按目录递归扫描符字符串xml文件,直到搜索完所有满足路径名称包含res/values-{XX}的文件夹为止,处理方式按步骤1和步骤2进行。最后,在values-{XX}.xml文件中插入xml文件结束标记。从而,针对XX语言的全部翻译,生成到单独一个values-{XX}.xml文件中。

4.将步骤3执行完之后得到的values-{XX}.xml,提供给本地或当地语言测试人员进行语法、语义检查,并修改此文件。

5.针对修改后的values-{XX}.xml文件,逐行扫描,根据读取到的路径关键字,将该路径关键字之下的字符串内容,逐行替换路径关键字所代表的文件路径下的字符串xml文件中所对应的字符串,直到遇到下一个路径关键字。此过程递归处理,直到读取到文件结束标记。

6.上述过程中可以同步处理多个语言,即扫描满足条件的路径中包含res/values-{XX}为名称的文件夹时,同步判断多个XX语言,路径名称包含res/values-ru,或res/values-es,或res/values-th,或res/values-es,或res/values-hi等等。

7.values-{XX}.xml文件输出内容及格式如下,以俄语为例:

其中,hipad_module_name为路径关键字元素名,其对应值为其后跟随的字符串所在的文件夹目录路径。上述示例展示了不同路径下的字符串文件提取后的内容,包含的路径有frameworks/base/core/res/res,frameworks/base/packages/SystemUI/res,packages/apps/Calculator/res等,分表代表系统级资源语言文件路径,状态栏语言文件路径,计算器应用语言文件路径等。

本发明提供的一种Android系统字符串提取及合并方法,将系统中某种语言的文字全部提取到一个文件中,并插入路径关键字按模块路径加以标记,提供给本地或当地语言测试人员先期进行语法、语义检查,直接在该文件加以修正,然后再通过自动化方式按路径关键字为识别标记合入系统源代码,在对于软件系统界面的各国语言文字的正确性检查中,起到先期纠正语法、语义错误的作用,进而减少错误量,减少后期工作量。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

android字符串块,一种Android系统字符串提取及合并方法与流程相关推荐

  1. linux查看磁盘对应槽位,一种linux系统硬盘槽位识别方法与流程

    技术领域 本发明涉及计算机技术领域,尤具体地说是一种实用性强.linux系统硬盘槽位识别方法. 背景技术: 近年来,随着技术的迅速发展,linux系统的应用也越来越广泛,特别对于国产处理器,linux ...

  2. android+蓝牙遥控器,一种通过蓝牙遥控安卓设备的方法与流程

    本发明涉及安卓系统遥控领域,具体公开了一种通过蓝牙遥控安卓设备的方法. 背景技术: 随着数字技术的发展,人们使用的数字设备日新月异.现在最为常见的个人设备操作系统是安卓系统.对安卓设备控制的方式,最常 ...

  3. linux物理内存地址与iomem,一种Linux系统物理内存镜像文件分析方法_4

    模块信息,如图7所示,给出了本发明的实施例中 模块结构关系图,modules变量指向某一个已加载模块结构体module地址,所有已加载模 块其module形成一个双向链表,如图7所示,据此可以获取到所 ...

  4. it系统应急响应流程图_智能自动化的内网应用系统应急响应处置的方法与流程...

    本发明涉及计算机数据安全技术领域,特别是涉及一种智能自动化的内网应用系统应急响应处置的方法. 背景技术: 随着电网企业信息化建设的快速发展,电网根据业务要求,部署和实施了多套应用系统,同时也需要大量的 ...

  5. spark集群访问mysql_一种Spark并行访问MPP数据库的方法与流程

    本发明涉及数据库 技术领域: :,具体来说,涉及一种Spark并行访问MPP数据库的方法. 背景技术: ::从关系数据库读取数据,Spark可以使用DataFrame和JdbcRDD等方法.这些方法在 ...

  6. android 音频播放过程,一种Android系统中的音频播放方法与流程

    本申请涉及android系统技术,特别涉及一种android系统中的音频播放方法. 背景技术: 在android系统中,现有的使用audiotrack进行音频播放时,audiotrack应用与andr ...

  7. spatialite android,一种基于Android系统的Spatialite空间数据库加密方法与流程

    本发明属于数据库技术领域,具体涉及一种基于Android系统的Spatialite空间数据库加密方法. 背景技术: 随着经济建设及智能终端和移动GIS技术的不断发展,终端的CPU.GPU.内存.显示屏 ...

  8. android 画布裁剪,一种基于Android系统对UI控件进行轮廓剪裁及美化的方法与流程...

    本发明涉及Android应用的技术领域,特别涉及一种基于Android系统对UI控件进行轮廓剪裁及美化的方法. 背景技术: 目前,随着智能电视的普及,Android应用层出不穷,而那些表现形式单一.传 ...

  9. android 地址选择器_48种Android开发的开源库汇总

    一.安全 1.SQLCipher Sqlite加密工具 项目地址: https://github.com/sqlcipher/sqlcipher 帮助文档: http://sqlcipher.net/ ...

最新文章

  1. 史上最简单的人脸识别项目登上GitHub趋势榜
  2. Vivado使用误区与进阶——XDC约束技巧之I/O篇 (上)
  3. 中原银行数字化营销体系建设实践
  4. 产品经理必须知道的一点知识:三种方法判断一个产品该不该做
  5. 漢城博殺的日子 (一)
  6. Java常用接口与类——String类、StringBuffer类、StringBuilder类
  7. mysql-5.7.24-linux_Linux下安装mysql-5.7.24
  8. DirectoryInfo类
  9. 经典枚举——百钱百鸡问题
  10. 程序员接私活完整攻略
  11. 分享一个大佬的网站,获取法定节假日
  12. 双十一特辑:Python采集商品数据,实时了解商品价格
  13. 关于宇宙大爆炸的理论模型
  14. ACM模板 | 学习笔记 树相关
  15. R语言检验相关性系数的显著性:使用cor.test函数计算相关性系数的值和置信区间及其统计显著性(如果变量来自正态分布总体使用皮尔森方法pearson)
  16. Docker - 重新启动关闭的容器
  17. webpack配置---设置快捷打包和浏览器自动刷新
  18. 如何使用夜神模拟器(android studio关联模拟器)
  19. CF978F Mentors
  20. matlab filter rayleighchan,关于Matlab中rayleighchan这个函数的使用

热门文章

  1. ECCV 2022 | 清华字节提出MGD:适用于分类/检测/分割的生成式知识蒸馏
  2. 多体素模式分析(MVPA)和表征相似性分析(RSA)
  3. RabbitMQ与SpringMVC集成并实现发送消息和接收消息(持久化)方案一
  4. visualize python_GitHub - laishenggx/PUP-visualize: Python3可视化雷达PUP数据产品(CINRAD-PUP)...
  5. 秀儿!用SSM框架实现了支付宝的支付功能,神操作啊
  6. 考研计算机科学814,2017年西南科技大学计算机科学与技术学院814程序综合设计考研题库...
  7. 创业必称“大数据”?是时候重新审视大数据的价值了
  8. 数据库系统原理——实验五
  9. 网鼎杯misc部分题的wp
  10. 摄影师选图脚本(根据快照文件的存在与否整理原文件)