源代码的多语言化方法及系统的制作方法_4

文档序号:8922379阅读:来源:国知局
语言版本的源代码。
[0175] 在方式一和方式二中,在进行文本串替换时,可以遍历原始源代码和原始源代码 的副本,如果遍历到语言配置文件中的原始语言文本串,则将其替换为相对应的目标语言 文本串。当然,也可以有其他替换方法和替换顺序,本发明不做限定。
[0176] 本发明实施例提供的一种源代码的多语言化方法,可以自动判断源代码的编程语 言类型,根据不同的编程语言类型自动提取源代码中的原始语言文本串并获得对应的目标 语言文本串,生成为目标语言版本的源代码。本发明不需要使用中间函数,因此数据的读取 效率较高,也不需要编程技术人员掌握中间函数。本发明实现了多语言化的过程的自动化, 处理速度较快,出错率低。自动改造完成后,根据错误提示,编程技术人员仅需要对未成功 替换的原始语言文本串做修改处理即可,提高了多语言化的效率。本发明也使得编程技术 人员不需要学习原来的单语言源代码,较少了工作量,加快了多语言化的工作的进程。
[0177] 如图10所示,本发明实施例提供的另一种源代码的多语言化方法中,还可以包 括:
[0178]S500、将所述目标语言版本的源代码编译为所述目标语言版本的应用程序。
[0179] 在获得目标语言版本的源代码后,如果未出现报错情况,可以随后将目标语言的 源代码编译为目标语言版本的应用程序,或者可以通过编译器等将其编译为目标语言版本 的应用程序,以进行发布供用户使用。
[0180] 如图11所示,在图1所示实施例的基础上,本发明实施例提供的另一种源代码的 多语言化方法,在S400后,还可以包括:
[0181]S440、判断所述目标语言版本的源代码中是否存在所述原始语言文本串,如果存 在,则执行S450,否则可以不进行处理或如图11所示执行S500;
[0182]S450、输出提示信息以提示用户。
[0183] 由于技术人员在编写源代码时可能并非完全规范,因此在S100提取原始源代码 中的原始语言文本串时,可能无法提取全部的原始语言文本串,如:拼接字符串没有使用 String,format()、字符没有使用html实体等。
[0184] 例如,导致错误的书写方式为:
[0185] $ ('body')?html(' <b> 李蕾 </b> 你好,今天是:<b> 星期三 </b>')
[0186] var string=,<a>所有,+_map [type]+,</a>'
[0187] var msg=,成功为您移动〈span class="success-file-number">,+len_ok+,〈/ span〉个文件,失败〈span class=〃fail_f ile_number〃>,+len_fail+,〈/span〉个文件'
[0188] 正确的一种书写方式为:
[0189]$ ('body')?html('{0}你好,今天是:{1} '?format('<b>李蕾</b>','<b>星期三
[0190] var string=,<a> {0},+_map [type] +,</a>,? format (,所有')
[0191] varmsg=' 成功为您移动{0}个文件,失败{1}个文件'?format('〈spanclass=〃s uccess-file-number^)' +len_ok+' </span>','<spanclass=〃fail-file_number〃>, +len_ fail+' </span>')
[0192] 在这种情况下,生成的目标语言版本的源代码中就会还留有原始语言文本串。图 2所示实施例当判断获知仍留有原始语言文本串时,可以提示用户该信息,询问用户是否 进行处理,避免由于提取不完全造成的语言版本"翻译"不全的问题。具体的,在提示用 户信息时,可以对目标语言版本的源代码中存在所述原始语言文本串的位置处进行标记, 记录下行数和列数,并提示用户已标记的位置处可能存在问题,并记录详细日志(如i18n. unmatched,md)提示开发者。这些提示信息通过屏幕显示给用户。
[0193]如何判断是否留有原始语言文本串,具体的,当原始语言的文字为中文、日本、韩 文等非IS08859-1字符时,可以通过对生成的目标语言版本的源代码中非IS08859-1字 符的检测来确定是否翻译完毕,例如对于原始语言为中文版本的源代码,如果未翻译完毕, 则可能留下未翻译的中文,此时就可以通过非IS08859-1字符的检测找到它,并记录它所 在的位置以提示用户。S08859-1,又称Latin-1或"西欧语言",是国际标准化组织内ISO/IEC8859的第一个8位字符集。它以ASCII为基础,在空置的OxAO-OxFF的范围内,加入96 个字母及符号,藉以供使用变音符号的拉丁字母语言使用。
[0194] 如图12所示,在图11所示实施例的基础上,本发明实施例提供的另一种源代码的 多语言化方法中,S450可以包括:
[0195]S451、获得所述目标语言版本的源代码中存在的所述原始语言文本串的位置信 息;
[0196]S452、将所述位置信息输出给用户。
[0197] 由于编程技术人员编写的源代码可能并不规范,因此会导致编程技术人员所使用 的文本串分隔符与本发明所确定的文本串分隔符并不完全一致,使得不一致的文本串分隔 符中的文本串无法被翻译和替换,进而导致残留原始语言的文本串。因此,提示信息中可以 包括有源代码不规范的提示信息及建议修改为规范源代码的提示信息。进一步,提示信息 中还可以同时包括有规范源代码的示例,以提示编程技术人员。
[0198] 通过位置信息的输出,本发明可以帮助编程技术人员快速定位留有原始语言文本 串的位置,从而由编程技术人员进行修改。在本发明其他实施例中,还可以根据位置信息建 立跳转到该位置的跳转指令,并在显示界面上提供按钮等供用户点击来触发该跳转指令, 从而直接跳转到该位置,不再需要用户手动查找,更加方便快捷。
[0199] 下面提供本发明的一种源代码的多语言化方法的【具体实施方式】:
[0200] 步骤1 :提取原始源代码中的非IS08859-1字符;
[0201] 具体的,也可以根据需求,指定IS08859-1编码以外的其他编码方案。以下以最常 用的IS08859-1进行举例。
[0202] 举例一、提取到的非IS08859-1字符包括:"操作失败,请稍后再试"和"正在努力 为您删除{〇}个文件"。
[0203] 可以理解的是,在中文版本的应用程序的源代码中,文本串分隔符中的原始语言 文本串即为非IS08859-1字符。
[0204] 如出现几个连续非IS008859-1字符,可以归并为一串文本串,在翻译时作为一个 词语或句子进行翻译、替换。
[0205] 步骤2 :接收用户对目标语言的选择指令,生成包含有原始语言文本串的语言配 置文件;
[0206] 仍使用上述举例一进行说明:用户选择的目标语言为美式英语和日语,则可以生 成包括如下内容的配置文件:
[0207]
[0208]
[0209] 上述语言配置文件可以命名为il8n.lang.js。
[0210] 步骤3 :获得与所述原始语言文本串对应的目标语言文本串,将目标语言文本串 语言对应存储到语言配置文件中。
[0211] 具体的,可以自动或者人工将原始语言文本串中的原始语言文本串翻译为目标语 言文本串。
[0212] 仍以举例一为例进行说明,将语言配置文件il8n.lang.js中的原始语言文本串 翻译为美式英语及日语,并存储到语言配置文件中。语言配置文件中的内容为:
[0214] 具体的,可以分别对多个应用程序的源代码进行原始语言文本串提取并获得对应 的目标语言文本串,将多个应用程序的原始语言文本串及对应的目标语言文本串均存入一 个语言配置文件中,这样,该语言配置文件中的文本串就更为丰富,在对某应用程序进行多 语言化过程中,由于该语言配置文件中存储有该源代码中部分或全部原始语言文本串对 应的目标语言文本串,因此可以不必再对语言配置文件中存储有的原始语言文本串进行翻 译,直接获取语言配置文件中相对应的目标语言文本串即可。在遇到该语言配置文件中不 存在的原始语言文本串时,可以继续将该原始语言文本串及对应的目标语言文本串加入该 语言配置文件中。在经过一段时间的多语言化处理后,上述语言配置文件可以作为最终完 整包文件而不再进行文本串更新,在这种情况下,可以修改该语言配置文件的名称。
[0215] 步骤4:获得所述原始源代码的副本,将所述原始源代码的副本中的原始语言文 本串替换为对应的目标语言文本串,生成目标语言版本的源代码;
[0216] 步骤5 :将所述目标语言版本的源代码构建为所述目标语言版本的应用程序。
[0217] 与上述方法实施例相对应,如图13所示,本发明还提供了一种源代码的多语言化 系统,包括:原始语言文本串获得单元100、目标语言文本串获得单元200、文件生成单元 300和目标语言代码生成单元400,
[0218] 所述原始语言文本串获得单元100,用于获取原始源代码中的原始语言文本串;
[0219] 其中,原始语言文本串获得单元100,可以包括:分隔符确定子单元和文本串获得 子单元,
[0220] 所述分隔符确定子单元,用于确定原始源代码中的文本串分隔符;
[0221] 所述文本串获得子单元,用于获取所述原始源代码中相互对应的所述文本串分隔 符之间的原始语言文本串。其中,所述分隔符确定子单元,可以包括:语言类型获得子单元 和分隔符子单兀,
[0222] 所述语言类型获得子单元,用于获得原始源代码的程序语言类型;
[0223] 所述分隔符子单元,用于根据所述程序语言类型,将与所述程序语言类型匹配的 文本串分隔符确定为所述原始源代码中的文本串分隔符。
[0224] 其中,语言类型获得子单元,可以包括:用户输入子单元或识别子单元,
[0225] 所述用户输入子单元,用于获得用户输入的原始源代码的程序语言类型;
[0226] 所述识别子单元,用于对原始源代码的程序语言类型进行识别,获得所述原始源 代码的程序语言类型。
[0227] 所述目标语言文本串获得单元200,用于获取与所述原始语言文本串对应的目标 语目文本串;
[0228] 文件生成单元300,用于生成对应存储有所述原始语言文本串和至少一个所述目 标语言文本串的语言配置文件;
[0229] 其中,目标语言文本串获得单元200,可以包括:第一指令接收子单元、目标语言 确定子单元和翻译子单元;
[0230] 所述第一指令接收子单元,用于接收用户对语言类型的第一选择指令;
[0231] 所述目标语言确定子单元,用于根据所述第一选择指令确定目标语言的类型;
[0232] 所述翻译子单
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1