应用程序资源文件编包的方法、装置、设备及存储介质与流程

文档序号:16997639发布日期:2019-03-02 01:29阅读:142来源:国知局
应用程序资源文件编包的方法、装置、设备及存储介质与流程

本申请涉及领域,尤其涉及应用程序资源文件编包的方法、装置、设备及存储介质。



背景技术:

目前很多app应用都是国际化产品,用户来源于不同的国家,因此需要支持不同国家的语言。为了使app能够支持多国语言,一般需要在app的文件里存放多个文件夹,每个文件夹存放一个语种的资源文件,在需要用到某个语种时从app的文件夹中调用相应语种的资源文件。现有的方法在遍包时需要通过手动将每个语种的语言内容录入到相对应的语种的文件夹中,语言内容需要与对应的标签对应。如何自动生成资源文件,降低人工的操作,成为本领域技术人员急需解决的一个问题。



技术实现要素:

有鉴于此,本申请提供了应用程序资源文件编包的方法、装置、设备及存储介质。

首先,本申请提供了应用程序资源文件编包的方法,所述方法包括:

获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

识别所述自定义语种文件中的字段;

将每个字段打包生成资源文件存放到app文件中的指定目录。

可选地,所述自定义语种文件包括excel文件、txt文件和word文件,其中,所述excel文件中每一列为一个字段。

可选地,所述指定目录包括多个文件夹,每个文件夹用于存放打包后的其中一个语种的字段。

可选地,所述方法还包括:

当接收到用户发出的将app当前语种切换成指定语种的指令时,app自动从所述指定目录中查找到与所述指定语种对应的文件夹,从所述文件夹中读取字段以替换当前各界面元素所显示的文字。

可选地,所述自定义语种文件包括版本信息,在获取预先制作好的自定义语种文件之前,所述方法还包括:

检测所述自定义语种文件的版本是否更新。

可选地,获取预先制作好的自定义语种文件的时机包括:

当检测到所述自定义文件版本更新时;其中,获取的自定义语种文件为最新版本的自定义语种文件。

可选地,所述将每个字段打包生成资源文件存放到app文件中的指定目录包括:

根据字段数量生成与字段数量相等的资源文件,其中,所述资源文件与所述字段一一对应,所述资源文件中包括不同的标识,所述标识用于标记界面元素所显示的文字;

根据所述标识从所述自定义语种文件的字段中读取界面元素显示的文字并存放到与所述字段对应的资源文件中;

将资源文件存放到app文件中的指定目录。

其次,本申请还提供了一种应用程序资源文件编包的装置,所述装置包括:

获取模块,用于获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

识别模块,用于识别所述自定义语种文件中的字段;

打包存储模块,用于将每个字段打包生成资源存放到app文件中的指定目录。

另外,本申请还提供了一种设备,所述设备用于打包多国语言,所述终端设备包括:

存储器,用于存储可执行的计算机程序指令;

处理器,用于执行所述计算机程序指令以实现以下方法步骤:

获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

识别所述自定义语种文件中的字段;

将每个字段打包生成资源文件存放到app文件中的指定目录。

进一步地,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:

获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

识别所述自定义语种文件中的字段;

将每个字段打包生成资源文件存放到app文件中的指定目录。

有益效果:获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字,识别所述自定义语种文件中的字段并将每个字段打包生成资源文件存放到app文件中的指定目录。整个多语言打包的过程可以实现自动化,提升了多语言打包的效率,避免手动输入出现误操作。

附图说明

图1是本申请一示例性实施例示出的一种应用程序资源文件编包方法的方法流程图;

图2a是本申请一示例性实施例示出的app中多国语言切换的示意图;

图2b是本申请一示例性实施例示出的app中多国语言切换的示意图;

图3是本申请一示例性实施例示出的多语种excel文件的示意图;

图4是本申请一示例性实施例示出的生成的资源文件的内容示意图;

图5是本申请一示例性实施例示出的app中存放多语言的文件夹的示意图;

图6是本申请一示例性实施例示出的一种应用程序资源文件编包的装置的逻辑结构框图;

图7是本申请一示例性实施例示出一种设备的逻辑结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了app可以支持多个国家的语言,一般需要在app的文件里存放多个文件夹,每个文件夹存放一个语种,在需要用到某个语种时app从文件夹中调用相应的语种。目前都是通过手动将每个语种的语言内容录入到相应语种的文件夹中,当语种及语言内容较多时,这种方法的工作量非常大,十分耗费人力,且手动录入极易出错。

为了解决上述问题,本申请提供了一种应用程序资源文件编包的方法,通过运行自定义的脚本可以实现自动将多国语言的各个语种打包到app的文件夹中,具体的步骤如图1所示,包括:

s101、获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

s102、识别所述自定义语种文件中的字段;

s103、将每个字段打包生成资源文件存放到app文件中的指定目录。

一般一个app产品在发布之前,都会确定app产品所需出货的国家,以及app需要支持的语种。研发人员会根据app支持语种的情况制作好相应的自定义语种文件,自定义语种文件包括不同的字段,每个字段对应一个语种,每个语种下面的语言内容包含了app中各界面元素所需要显示的文字的相应语种的翻译。例如,如图2a和图2b所示,在某直播app中,界面需要显示的通用的文字在进行语言切换时都需要切换成对应的语言,比如将app的语言从中文繁体(图2a)切换到英文(图2b)时,app界面显示的“观看历史”、“我的消息”、“我的钱包”等都需要切换成“history”、“mymessages”、“mywallet”等,因此自定义语种文件中需要包含这些界面元素所显示的文字对应的各个国家的翻译。在某个实施例中,可以将自定义语种文件可以制作成excel文件、txt文件、word文件或者其他类型文件,只要文件中的各字段可被识别即可。如图3所示,以excel文件为例,可以使excel文件的每一列代表一个字段,对应着一个国家的语言翻译。excel文件的每一行代表app界面中需要显示的句子或词语,每一列为这些句子或词语对应的一个国家语言的翻译。将所述自定义语种文件制作好后,可以将所述自定义语种文件上传到服务器或保存到本地指定位置,以便需要使用时从服务器或本地获取。

运行自定义的脚本可以自动获取所述自定义语种文件,获取到文件后,识别自定义语种文件中的字段,将不同语种区分开。一般自定义语种文件中的每个字段都会包含一个字段名称,例如“中文翻译”、“英文翻译”、“日文翻译”等,以将各语种的翻译内容区别开。可以通过识别这些字段名称来识别每一个字段,然后将每个字段打包存放到app文件中的指定目录。在app文件中,一般有一个存放多国语言的指定目录,指定目录中存放了各个语种的翻译,当切换app的语言时,app可以从指定目录中调用相应的国家的语言,以实现app的多国语言的切换。在某个实施例中,所述指定目录包含多个文件夹,将每个字段打包后,每个文件夹存放一个语种的字段。比如,自定义语种文件包含英语,日语,中文,德语四个语种,每个语种为一个字段,识别到所述四个字段后,将每个字段打包然后存放到指定目录的一个文件里,例如,将英语这个字段下的所有英语翻译的内容打包后存放到app文件指定目录的一个存放英语翻译内容的文件夹中,将日语这个字段下的所有日语翻译的内容打包后存放到app文件指定目录的一个存放日语翻译内容的文件夹中,将中文这个字段下的所有中文翻译的内容打包后存放到app文件指定目录的一个存放中文翻译内容的文件夹中,将德语这个字段下的所有德语翻译的内容打包后存放到app文件指定目录的一个德语文件夹中。一般有多少个语种,指定目录中就可以有多少个文件夹,每个文件夹用于存放一个语种的翻译内容,以便将不同语种的内容分开存放,方便使用时调用相应语种的文件夹。

为了切换语言时,系统可以迅速搜索到相应语种的语言自动匹配并替换各界面元素显示的文字内容,将各字段的语种打包生成资源文件存放到app文件的指定目录可以通过key-value的存储方式存储。在某个实施例中,将每个字段打包并生成资源文件存放到app文件中的指定目录具体步骤如下:在识别自定义语种文件中的字段后,根据字段数量生成与字段数量相等的资源文件,其中,资源文件与字段一一对应,资源文件中包括不同的标识(key),所述标识用于标记界面元素所显示的文字(value);然后根据资源文件中的标识从自定义语种文件的字段中读取与标识对应的界面元素显示的文字存放到与字段对应的资源文件中;待自定义语种文件中的所有字段的中的界面元素的文字都读取完并存放到资源文件后,再将资源文件存放到app文件中的指定目录。如图3所示,自定义语种文件中会有一个标识(key),即tag,每个标识用于标识一段界面元素显示的文字,如标记界面中要显示的文字是“您已暂停开播,观众无法看到您的直播内容”的标识是live-room-privacy-hint。当识别了自定义语种文件的字段后,可以根据字段的数量生成与字段数量相等的资源文件,其中一个字段对应一个资源文件,即一个语种对应一个资源文件,如中文对应一个资源文件,英文对应一个资源文件,日文对应一个资源文件。资源文件的内容如图4所示,资源文件中包含不同的标识,这些标识与自定义语种文件中标识一致,根据标识从自定义语种文件的每个字段读取与标识相对应的界面元素显示文字存放到资源文件相应的标识位置。如将中文译文“您已暂停开播,观众无法看到您的直播内容”放到中文对应的资源文件的live-room-privacy-hint标识对应位置,将英文译文放到英文对应资源文件的live-room-privacy-hint标识对应位置。待将自定义语种文件中每个tag对应的每个语种的译文都读取完并放到对应资源文件的对应位置后,即可将资源文件存放到指定目录中。

由于每一个要翻译的句子或词语都有一个指定的标识(key),每个句子或词语对应的不同国家的翻译即为key对应的不同value,当需要切换成某个国家的语言时,即从指定目录中查询找到对应国家的文件夹然后再通过查找需要翻译的句子或词语的key找到对应的value值,替换界面元素中显示的文字。这种key-value的存储方式具有查询速度非常快、数据存放量高和高并发操作的优点,适合用于多国语言的存储。

自定义语种文件会根据产品的需求不断的更新,比如产品需要出货到一个新的国家,因而新增加了一个国家的语言,app中的界面有更新,新增加了某些句子或词语,这个时候多语种文件中就需要新增加某些句子或词语的各语种的翻译。由于多语种文件会不断地的更新版本,我们打包存放到app中的多语种文件也需要根据多语种文件的更新来更新到最新版本。在一个实施例中,自定义语种文件包括版本信息,如版本号,发版时间等,可以根据这些信息判断自定义语种文件版本是否发生更新。在获取预先制作好的自定义语种文件之前,可以先检测所述自定义语种文件的版本是否更新。当检测到自定义语种的版本信息发生更新后,可以获取最新版本的自定义语种文件。这样,app每次打包时,都会自动检测自定义语种文件的版本是否有更新,如果有更新,则自动获取最新版本的自定义语种文件,识别自定义语种文件中的字段,然后将每个字段打包生成资源文件存放到app文件的指定目录,以完成app中多国语言的更新。

将多国语言打包后,app文件中的指定目录存放有各个语种的文件夹,每个文件夹例存放了对应的语种的翻译内容,在一个实施例中,当接收到用户发出的将app当前语种切换成指定语种的指令时,app自动从指定目录中查找到与所述指定语种对应的文件夹,从所述文件夹中读取字段以替换当前各界面元素所显示的文字。用户在使用app时,可直接在app内进行语言的设置,实现app语言的切换,无需退出系统。

本申请实现自动将多国语言打包的方法是通过自定义的脚本实现。本申请的多国语言打包的方法既适用于ios系统,又是适用用于android系统,当所述方法用于ios系统时,所述脚本用objective-c语言实现;当所述方法用于android系统时,所述脚本用python语言实现。

为了进一步的解释本申请提供的应用程序资源文件编包包的方法,以下再用一个具体的实施例加以说明。

某个直播app的用户来源于中国、英国、印尼和越南4个国家,该app需要支持这个4个国家的语言,可以先将app的界面元素需要显示文字对应的这四个语种的翻译预先制作成一个自定义语种excel文件,如图3所示,excel的每一列分别为一个字段,代表一个国家的翻译,每一行则是app的界面中需要显示的文字。将自定义语种文件制作好后上传到服务器中,以便需要使用时从服务器下载。然后使用python语言编写了一个脚本,运行脚本,可以自动从服务器中将自定义语种文件下载下来,然后可以自动识别自定义语种文件中的字段。如图5所示,识别字段后,将繁体翻译这一列中的繁体翻译的内容打包存放到app文件中指定目录的一个文件夹中,将英文翻译这一列中的英文翻译的内容打包存放到app文件中指定目录的一个文件夹中,将印尼翻译这一列中的印尼翻译的内容打包存放到app文件中指定目录的一个文件夹中,将越南语翻译这一列中的越南语翻译的内容打包存放到app文件中的一个文件夹中,每个语种的翻译内容分别存放在一个文件夹中。其中,将翻译内容存放是以key-value的形式来存储的,每一段要翻译的文字有一个标识,即key,这段文字对应的不同语种的翻译则为这个key的value值。当app需要切换到某个国家的语言时,可以从app的指定目录中找到这个语种的文件夹,然后根据标识(key)找到对应的翻译,以将app的各界面元素显示的文字替换成当前语言。

此外,随着app用户的变化,app可能需要支持更多国家的语言,或者是当app界面元素更新时,需要显示的文字会出现更新,这个时候需要更新服务器上的多语种文件。当app发版,版本更新时,需要将app文件打包,每次打包时,app都会自动调用脚本执行多国语打包的过程,然后可以从服务器中下载最新版本的多语种文件更新到app中,完成app多语言的更新。整个app多国语言打包更新的过程完全自动化,大大提高了开发效率。

与前述一种多国语言打包方法的实施例相对应,本申请还提供了一种应用程序资源文件编包装置的实施例。

请参考图6,所述多国语言打包装置600包括:

获取模块601,用于获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字。

识别模块602,用于识别所述自定义语种文件中的字段;

打包存储模块603,用于将每个字段打包生成资源文件存放到app文件中的指定目录。

在一个实施例中,所述自定义语种文件包括excel文件、txt文件或word文件,其中,所述excel文件中每一列为一个字段。

在一个实施例中,所述指定目录包括多个文件夹,每个文件夹用于存放打包后的其中一个语种的字段。

在一个实施例中,所述自定义语种文件包括版本信息,在获取预先制作好的自定义语种文件之前,所述方法还包括:检测所述自定义语种文件的版本是否更新。

在一个实施例中,获取预先制作好的自定义语种文件的时机包括:

当检测到所述自定义文件版本更新时;其中,获取的自定义语种文件为最新版本的自定义语种文件。

在一个实施例中,当接收到用户发出的将app当前语种切换成指定语种的指令时,app自动从所述指定目录中查找到与所述指定语种对应的文件夹,从所述文件夹中读取字段以替换当前各界面元素所显示的文字。

在一个实施例中,所述将每个字段打包生成资源文件存放到app文件中的指定目录包括:

根据字段数量生成与字段数量相等的资源文件,其中,所述资源文件与所述字段一一对应,所述资源文件中包括不同的标识,所述标识用于标记界面元素所显示的文字;

根据所述标识从所述自定义语种文件的字段中读取界面元素显示的文字并存放到与所述字段对应的资源文件中;

将资源文件存放到app文件中的指定目录。

本申请实现自动将多国语言打包的方法是通过自定义的脚本实现。本申请的多国语言打包的方法既适用于ios系统,又是适用用于android系统,当所述方法用于ios系统时,所述脚本用objective-c语言实现;当所述方法用于android系统时,所述脚本用python语言实现。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

此外,本申请还提供了一种设备,如图7所示,所述设备用于应用程序资源文件的编包,所述设备包括:

存储器,用于存储可执行的计算机程序指令;

处理器,用于执行所述计算机程序指令以实现以下方法步骤:

获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

识别所述自定义语种文件中的字段;

将每个字段打包生成资源文件存放到app文件中的指定目录。

进一步的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:

获取预先制作好的自定义语种文件,其中,所述自定义语种文件包含不同字段,每个字段对应一个语种,所述字段中包括各界面元素所显示的文字;

识别所述自定义语种文件中的字段;

将每个字段打包生成资源文件存放到app文件中的指定目录。

本申请对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1