CN102109958B - 实现多语言用户界面的方法和*** - Google Patents
实现多语言用户界面的方法和*** Download PDFInfo
- Publication number
- CN102109958B CN102109958B CN 201110052943 CN201110052943A CN102109958B CN 102109958 B CN102109958 B CN 102109958B CN 201110052943 CN201110052943 CN 201110052943 CN 201110052943 A CN201110052943 A CN 201110052943A CN 102109958 B CN102109958 B CN 102109958B
- Authority
- CN
- China
- Prior art keywords
- language
- character string
- language character
- file
- user interface
- 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
Landscapes
- Machine Translation (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种实现多语言用户界面的方法和***,提供了两种针对不同阶段实现多语言用户界面的方式,一个阶段面对开发人员,使开发方便和高效,另一阶段面对用户,使***减少不必要的查找,提高了***的效率。当软件***处于开发阶段时,用户界面是根据用户选择的语言动态的读取相应特定格式的语言字符串资源文件来显示相应语言的用户界面,当软件***处于发布阶段时,用户界面是根据用户选择的语言读取解析相应的语言字符串资源文件生成的语言数组来显示相应语言的用户界面。本发明不仅实现了多语言用户界面,而且也使得实现多语言用户界面更方便,大大减少了维护工作量,占用更少的***资源,加快了***运行速度。
Description
技术领域
本发明涉及超声***技术领域,特别是涉及一种在超声***等软件***中实现多语言用户界面的方法和***。
背景技术
随着我国软件技术力量的发展,国内现在越来越多的软件***销往不同的国家,这就使得这些***支持多语言成为必然。随着计算机可视化的发展,用户界面在软件***占有重要的地位。用户是通过软件***的用户界面(UI)进行交互的,以实现信息的显示和录入等操作。对于不同用户将提供不同的用户界面。用户界面是提供给用户使用的,不同的用户可以自由选择不同的用户界面。为了方便各种用户执行相应操作,不同国家或种族的用户,往往需要提供不同的界面语言显示,例如,中国用户可以选择中文界面,英国美国用户可以选择英文界面,俄罗斯用户可以选择俄文界面等等。为此,在软件***中通常需要可以提供多种语言的用户界面,即可以针对不同用户的需要为其提供相应的用户界面。
现有技术的解决方法,第一种方法是根据不同的用户设计不同的用户界面,这样用户界面的开发和维护量大,导致大量重复性的工作,增加开发成本。第二种方法是只设计一套用户界面,用户界面的语言字符串采用INI文件或者XML文件(特定格式文件)来配置,然后通过每次解析和查找对应的语言字符串来实现,这样要经常性地对特定格式文件进行解析和查找,从而消耗大量的***资源,影响***的性能。
发明内容
本发明针对现有技术中存在的缺陷或不足,提供了一种实现多语言用户界面的方法和***,提供了两种针对不同阶段实现多语言用户界面的方式,一个阶段面对开发人员,使开发方便和高效,另一阶段面对用户,使***减少不必要的查找,从而提高***的效率。本发明提供的方法及***不仅实现了多语言用户界面,而且也使得实现多语言用户界面更方便,大大减少了维护工作量,占用更少的***资源和加快了***运行速度。
本发明的技术方案是:
一种实现多语言用户界面的方法,其特征在于,包括以下步骤:
A、确定用户使用的语言种类和***用户界面默认的语言种类,将用户界面需要显示的语言信息通过应用不同的语言生成不同的语言资源信息,将不同的语言资源信息以特定的文件格式进行保存,生成特定格式文件的语言资源信息文件目录;所述语言资源信息包括语言字符串资源文件和解析相应的语言字符串资源文件生成的语言数组;
B、实现读取语言字符串函数接口,所述读取语言字符串函数接口提供两种不同阶段使用的读取语言资源信息的方式,一种是***处于开发阶段使用的通过解析特定格式文件来实现;另一种是***处于发布阶段使用的通过生成的语言数组来实现;
C、当***处于开发阶段时,根据用户选择的语言,通过调用读取语言字符串函数接口,动态的读取相应特定格式的语言字符串资源文件来显示相应语言的用户界面;
D、当***处于发布阶段时,根据用户选择的语言,相应语言的语言字符串资源文件解析成语言数组和对应模块的索引数组,并修改解析方式为数组进行发布来显示相应语言的用户界面。
所述步骤A进一步包括:
A1、建立多语言根目录,并根据所支持的语言种类建立对应的语言目录;
A2、确定***用户界面划分的模块,根据***用户界面划分的模块,在语言目录下建立特定格式文件的语言字符串资源文件目录;将用户界面按照模块进行分类,每个模块的每种语言的语言字符串资源文件分别存储于对应的语言目录中,且同一模块的语言字符串资源文件在不同的语言目录下保持文件名称一致,语言字符串资源文件以模块名命名。
所述语言字符串资源文件采用特定的解析器进行解析,将语言字符串资源文件生成特定的文件结构,所述文件结构包括一个根节点和若干层语言字符串节点,每个语言字符串节点包含一个语言字符串ID号、一个源语言字符串和一个目标语言字符串,所述源语言字符串是默认语言的语言字符串,目标语言字符串是根据用户使用的语言进行解析生成的语言字符串,语言字符串ID号从0开始编号而且连续。
所述步骤A进一步包括,用户使用的语言种类至少选择一种,所述默认的语言种类根据开发人员的习惯选择。
所述步骤B中,实现读取语言字符串函数接口的参数有:模块名,字符串ID,字符串,所述模块名对应相应语言字符串的特定格式文件的模块名,字符串ID对应语言字符串节点的ID,字符串对应语言字符串节点的源语言字符串。
所述步骤B中,读取语言字符串函数接口的具体步骤包括:
B101、先判断语言选择是否为默认语言,若语言选择为默认语言,执行步骤B109;否则执行步骤B102;
B102、若解析方式选择为某种特定格式文件,则执行步骤B103,否则执行步骤B106;
B103、根据参数中的模块名和语言选择打开具有对应文件格式的语言字符串资源文件,若成功则执行步骤B104,否则执行步骤B110;
B104、在解析生成的对应的文件结构中,搜索指定源语言字符串的语言字符串节点,若找到指定源语言字符串的语言字符串节点则执行步骤B105,否则执行步骤B110;
B105、若节点语言字符串ID和参数中的语言字符串ID不同,则执行步骤B111;否则执行步骤B112;
B106、根据模块名查找到其模块的索引数组;
B107、根据不同的语言选择不同的语言数组;
B108、取语言数组下标为[索引+语言字符串ID]的字符为输出语言字符串,执行步骤B113;
B109、参数中的语言字符串为输出语言字符串,执行步骤B113;
B110、参数中的语言字符串ID为输出语言字符串,执行步骤B 113;
B111、节点语言字符串ID+参数中的语言字符串为输出语言字符串,执行步骤B 113;
B112、语言字符串节点的语言字符串为输出语言字符串,执行步骤B 113;
B113、输出语言字符串复制到字符串缓冲指针所对应的内存位置;
B114、结束。
所述步骤C进一步包括:当***处于开发阶段时,用户界面可以通过默认语言种类进行设计和编写,用户界面通过调用读取语言字符串函数接口“_(模块名,字符串ID,字符串)”读取语言资源信息,显示出相应语言的用户界面。
所述步骤D中,各种语言的语言字符串资源文件解析成各种语言的数组和对应模块的索引数组的具体步骤包括:
D101、打开语言数组输出文件和模块语言索引输出文件;
D102、按名字或者按使用频率,遍历所有模块中的具有特定文件格式的语言字符串资源文件;
D103、打开一个模块中的具有特定文件格式的语言字符串资源文件;
D104、计算模块中的具有特定文件格式的语言字符串资源文件含有的语言字符串节点数;
D105、计算模块中的具有特定文件格式的语言字符串资源文件的索引并将模块名和索引输出到模块语言索引文件;
D106、语言字符串ID=0,语言字符串开始遍历;
D107、根据语言字符串ID读取目标语言字符串并输出到语言数组输出文件;
D108、语言字符串ID++,遍历下一个语言字符串;
D109、若语言字符串ID<含有的语言字符串节点数,则执行步骤D107,否则执行步骤D 110;
D110、关闭具有特定文件格式的语言字符串资源文件;
D111、若具有特定文件格式的语言字符串资源文件遍历完成,则执行步骤D112,否则执行步骤D 103;
D112、保存和关闭语言数组输出文件和模块语言索引输出文件;
D113、将语言数组输出文件和模块语言索引输出文件的内容复制对应源代码中;
D114、结束。
一种实现多语言用户界面的***,包括以下模块:
语言资源信息存储模块,用于保存需要向用户界面模块提供的各种语言资源信息,并接受用户界面模块的调用;所述语言资源信息包括语言字符串资源文件和解析相应的语言字符串资源文件生成的语言数组。
用户语言生成模块,用于将各种语言的语言字符串资源文件解析成各种语言的数组和对应模块的索引数组,并复制到代码对应的位置,进行编译;
用户语言选择模块,用于接收用户选择的用户界面语言种类,并发送给用户界面模块;
用户界面模块,用于根据用户语言选择模块确定的语言种类向语言资源信息存储模块调用相应的语言资源信息,并将调用来的语言资源信息和用户界面传送给用户界面显示模块;
用户界面显示模块,用于接收用户界面模块传送来的包含有相应的语言资源信息的用户界面,并以相应的语言显示该用户界面。
本发明的技术效果:
本发明将用户界面中需要显示的语言信息通过应用不同的语言生成不同的语言资源信息,将不同的语言资源信息以特定的文件格式进行保存。当软件***处于开发阶段时,用户界面是根据用户选择的语言动态的读取相应特定格式的语言字符资源文件来显示相应语言的用户界面。当软件***处于发布阶段时,用户界面是根据用户选择的语言读取解析所有的语言字符资源文件生成的语言数组来显示相应语言的用户界面。因此,本发明中,无论用户界面需要支持多少种语言,都只需开发一套用户界面即可,大大提高了开发效率。
同时,本发明还大大地降低了支持多语言用户界面的维护成本,不仅可以方便地实现对多语言的支持,如对简体中文、繁体中文、英文、俄文或者法文支持等,并且可以灵活地添加和减少各种语言的支持。当需要增加或减少用户界面支持的一种语言时,只需增加或减少该种语言的语言字符串资源文件相应的语言资源信息,再重新解析各种语言的语言字符资源文件,并复制到代码对应的位置,再重新编译即可实现,无需作大量的调整,也无需设计一整套新的用户界面。
另外,本发明可以在用户界面的正常运行中方便的实现多种语言的用户界面动态切换,并在不影响当前整个***正常运行的情况下立即生效,不需要重新启动***。
附图说明
图1为本发明实现多语言用户界面的方法的流程图;
图2为本发明语言资源信息文件的文件目录结构示意图;
图3为本发明XML语言字符串资源文件中语言字符串节点的存储结构示意图;
图4为本发明将各种语言的语言字符串资源文件解析成各种语言的数组和对应模块的索引数组的流程图;
图5为本发明读取语言字符串函数接口的流程图;
图6为本发明实现多语言用户界面的***的结构示意图。
具体实施方式
以下结合附图对本发明进行详细说明。
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
本发明以XML文件格式作为特定格式文件为例,对本发明进行说明。
如图1所示,图1示出了本发明实现多语言用户界面的方法的流程图。
一种实现多语言用户界面的方法,包括以下步骤:
A、确定用户使用的语言种类和***用户界面默认的语言种类,将用户界面需要显示的语言信息通过应用不同的语言生成不同的语言资源信息,将不同的语言资源信息以特定的文件格式进行保存,生成特定格式文件的语言资源信息文件目录;所述语言资源信息包括语言字符串资源文件和解析相应的语言字符串资源文件生成的语言数组。
B、实现读取语言字符串函数接口,所述读取语言字符串函数接口提供两种不同阶段使用的读取语言资源信息的方式,一种是***处于开发阶段使用的通过解析特定格式文件来实现;另一种是***处于发布阶段使用的通过生成的语言数组来实现;
C、当***处于开发阶段时,根据用户选择的语言,通过调用读取语言字符串函数接口,动态的读取相应特定格式的语言字符串资源文件来显示相应语言的用户界面;
D、当***处于发布阶段时,根据用户选择的语言,相应语言的语言字符串资源文件解析成语言数组和对应模块的索引数组,并修改解析方式为数组进行发布来显示相应语言的用户界面。
关于步骤A,确定用户使用的语言种类和默认语言种类,生成XML语言资源信息文件目录。确定使用该***用户可能需要使用的语言种类和用户界面的默认语言种类,并确定***划分的模块,生成语言资源信息数据的XML文件目录。用户可能需要使用的语言种类至少要选择一种,默认语言种类可以根据开发人员的习惯选择,默认语言种类以方便用户界面设计时可以参照的进行界面设计和当选择默认语言时不需要解析XML和读取数组可以节省大量计算机***资源。语言资源信息数据的XML文件分模块便于开发人员开发。
如图2所示,为本发明语言资源信息文件的文件目录结构示意图。先建立多语言根目录Language,并在Language目录下根据所支持的语言种类建立对应的语言种类目录,再在语言种类目录下建立按***划分的模块的XML语言字符串资源文件,生成XML语言字符串资源文件目录。例如,用户可能需要使用的语言种类有英文,简体中文(Simplified Chinese)、俄文(Russian)等,我们选择英文为默认语言种类,***划分的模块有Exam,Patient等。将用户界面按照模块进行分类,每个模块的每种语言的XML语言字符串资源文件分别存储于对应的语言种类目录中,且同一模块的XML语言字符串资源文件在不同的语言种类目录下保持文件名称一致,语言字符串资源文件以模块名命名。例如,同一模块Exam的语言字符串资源文件在简体中文(Simplified Chinese)目录下和在俄文(Russian)目录下都采用同一文件名Exam.xml。
如图3所示,为本发明XML语言字符串资源文件中语言字符串节点的存储结构示意图。所述语言字符串资源文件采用特定的解析器进行解析,将语言字符串资源文件生成特定的文件结构。XML文件的设计参照图3来设计,XML文件的结构一般由一个根结点和若干层语言字符串节点组成,每个语言字符串节点包括一个唯一标识语言字符串ID号、一个源语言字符串和目标语言字符串。源语言字符串则是默认语言的语言字符串,目标语言字符串是根据用户使用的语言进行解析生成的语言字符串,可根据开发人员和其他人员的情况来确定,以方便他们翻译。此外语言字符串ID号必须是从0开始编号并且必须连续。
下面以简体中文为例,简体中文的Exam模块的XML文件如下,必须注意的是id必须是从0开始,id必须是连续的。XML语言字符串资源文件采用utf-8编码,这样可以避免出现乱码。如果采用其他文件格式也要采用utf-8编码。
关于步骤B:实现读取语言字符串函数接口。
按照图5流程进行编写读取语言字符串函数接口“_(模块名,字符串ID,字符串)”,参数模块名对应该字符串属于的XML文件的模块名,字符串ID对应语言字符串节点的ID,字符串对应语言字符串节点的源语言字符串,这样可以根据以上参数来实现读取语言字符串函数接口,并读取语言资源信息。读取语言字符串函数接口提供了两种方法读取语言资源信息,一个是当***处于开发阶段通过解析XML文件来实现,另一个是当***处于发布阶段通过生成的数组来实现。读取语言字符串函数接口具体包括如下步骤:
事先需要定义语言数组和对应模块的索引数组,以方便软件***处于发布阶段将解析的语言数组和索引数组覆盖。
B501、先判断语言选择是否为默认语言,若语言选择为默认语言,执行步骤B509;否则执行步骤B502;
B502、若解析方式选择为XML(即软件***处于开发阶段,通过解析XML语言字符串资源文件实现多语言界面),则执行步骤B503,否则执行步骤B506;
B503、根据参数中的模块名和语言选择打开具有对应的XML语言字符串资源文件,若成功则执行步骤B504,否则执行步骤B510;
B504、在解析生成XML文件结构中,搜索指定源语言字符串的语言字符串节点trans_unit(即语言字符串节点trans_unit的source为参数中的字符串),若找到指定源语言字符串的语言字符串节点trans_unit,则执行步骤B505,否则执行步骤B510;
B505、若该语言字符串节点trans_unit的属性id和参数中的语言字符串ID不同,则执行步骤B511;否则执行步骤B512;
B506、根据模块名查找模块的索引数组到该模块在语言数组中开始的索引(Index),同时考虑的用户界面中语言字符串同属于一个模块存在着一定聚集性,也就是同一个用户界面的语言字符串出现在同一个模块的概率非常大,因此可以判断当前模块名与上一次的模块是否相同,若相同则可以将上一次查找的开始的索引(Index)设置为查找的开始的索引(Index),否则在据模块名查找模块的索引数组到该模块在语言数组中开始的索引(Index),所以需要保存上次查找的模块名和开始的索引(Index),这样可以进一步减少查找的时间,同理我们可以根据需要设置几个缓存最近几次查找的模块名和开始的索引(Index);
B507、根据选择语言选择语言数组;
B508、取该语言数组下标为[索引(Index)+参数中字符串ID]的字符为输出语言字符串,执行步骤B 513;
B509、参数中的语言字符串为输出语言字符串,这样可以减少不必要的操作从而提高效率,执行步骤B513;
B510、参数中的语言字符串ID为输出语言字符串,这样可以提示开发人员这里出现错误,并可以方便开发人员进行修改,执行步骤B 513;
B511、节点语言字符串ID+参数中的语言字符串为输出语言字符串,该语言字符串节点trans_unit的属性id连接参数中的语言字符串为输出语言字符串,这样可以检查参数中的语言字符串ID是否与语言字符串节点trans_unit的属性id对应,并可以方便开发人员进行修改参数中的字符串ID,执行步骤B 113;
B512、该语言字符串节点trans_unit的语言字符串target为输出语言字符串,执行步骤B513;
B513、输出语言字符串复制到字符串缓冲指针所对应的内存位置;
B514、结束。
关于步骤C:调用读取语言字符串函数接口进行用户界面开发。
当软件***处于开发阶段,***建立用户界面时,用户界面可以通过默认语言种类进行设计和编写,用户界面需要通过调用读取语言字符串函数接口“(模块名,字符串ID,字符串)”读取语言资源信息,并显示出相应语言的用户界面;在此步骤开发人员可以一边设计用户界面一边修改和添加对应模块的XML文件的内容,这样提高开发人员工作效率。
建立的用户界面中提供了读取语言字符串函数接口,该接口根据用户的语言选择操作调用语言资源信息数据中相应的语言资源信息,并将调用来的语言资源信息通过用户界面显示给用户,从而灵活地为用户提供可以识别的用户界面中的语言;
例如:用户需要调用_(″Exam″,0,″Cardiology″)便可以读取用户的语言种类的语言资源信息。只需将_(″Exam″,0,″Cardiology″)加入对应的代码就可以实现″Cardiology″多语言显示。
为了使用户能够选择语言种类,必须要这样的一个功能,列出用户界面可以显示的语言种类,用户可以选择用户界面显示的语言种类,调用Set_Language函数接口改变语言选择项使用户界面按照新的选择语言显示;
例如用户由原来的英文选择了简体中文,调用Set_Language函数接口修改选择语言为简体中文,这样使读取语言字符串函数接口的选择语言变量发生了变化,用户界面从而按照简体中文来显示。
关于步骤D:语言字符串资源文件解析成语言的数组和模块的索引数组并修改解析方式为数组进行发布。
并当软件***处于发布阶段,按照图4流程将各种语言的语言字符资源文件解析成各种语言的数组和对应模块的索引数组,并复制到代码对应的位置,并修改解析方式为数组,再重新编译,这样软件***就可以发布了。各种语言的语言字符资源文件解析成各种语言的数组和对应模块的索引数组具体包括如下步骤:
D401、打开语言数组输出文件和模块语言索引输出文件,初始化语言字符串数(num)为0;。
D402、遍历所有模块中的XML语言字符串资源文件(按名字或者按照使用频率,这个可以根据***使用的实际来确定);
D403、打开一个模块XML的语言字符串资源文件;
D404、计算模块XML语言字符串资源文件含有的语言字符串节点数(count);
D405、计算模块XML语言字符串资源文件的索引并将模块名和索引输出到模块语言索引文件;模块XML语言字符资源文件的索引为num(即该模块在语言数组开始的位置)并将模块名和索引成对输出到模块语言索引文件,num=num+count,调整语言字符串数以便设置下一模块的索引;
D406、语言字符串ID=0,语言字符串开始遍历;
D407、根据语言字符串ID读取目标语言字符串并输出到语言数组输出文件(按照一个字符串数组的格式);
D408、语言字符串ID++,遍历下一个语言字符串;
D409、若语言字符串ID<含有的语言字符串节点数(count),则执行步骤D407,否则执行步骤D 410;
D410、关闭XML语言字符串资源文件;
D411、若XML语言字符串资源文件遍历完成,则执行步骤D412,否则执行步骤D 403;
D412、保存和关闭语言数组输出文件和模块语言索引输出文件;
D413、将语言数组输出文件和模块语言索引输出文件的内容复制对应源代码中;
D414、结束。
如果要添加一种新语言,可以复制步骤1中的一种语言文件夹,将该语言文件夹改成新的语言名字,再将语言文件夹中的XML语言资源信息全部翻译成该新语言,在代码中添加这种语言的选择,执行步骤4之后结束。
通过上述步骤1至步骤4的操作,本发明采用XML格式来保存用户界面的多种语言的语言字符串资源文件,提供两种不同阶段使用的读取语言字符串方法,实现了在***中可以灵活和高效地支持多语言的用户界面。
本发明所述的一种实现多语言用户界面的***,所述***应用于计算机资源有限情况下更能体现它的优势,下面描述的语言字符串资源文件都是具有特定文件格式,包括以下模块:
语言资源信息存储模块:保存着需要向用户界面模块提供的各种语言资源信息,包括语言字符串资源文件和解析相应的语言字符串资源文件生成的语言数组,并接受用户界面模块的调用;
用户语言生成模块:用于各种语言的语言字符串资源文件解析成各种语言的数组和对应模块的索引数组,并复制到代码对应的位置,进行编译;
用户语言选择模块:用于接收用户选择的用户界面语言种类,并发送给用户界面模块;
用户界面模块:用于根据用户语言选择模块确定的语言种类向语言资源信息存储模块调用相应的语言资源信息,并将调用来的语言资源信息和用户界面传送给用户界面显示模块;用户界面显示模块:接收用户界面模块传送来的包含有相应的语言资源信息的用户界面,并以相应的语言显示该用户界面。
Claims (8)
1.一种实现多语言用户界面的方法,其特征在于,包括以下步骤:
A、确定用户使用的语言种类和***用户界面默认的语言种类,将用户界面需要显示的语言信息通过应用不同的语言生成不同的语言资源信息,将不同的语言资源信息以特定的文件格式进行保存,生成特定格式文件的语言资源信息文件目录;所述语言资源信息包括语言字符串资源文件和解析相应的语言字符串资源文件生成的语言数组;
B、实现读取语言字符串函数接口,所述读取语言字符串函数接口提供两种不同阶段使用的读取语言资源信息的方式,一种是***处于开发阶段使用的通过解析特定格式文件来实现;另一种是***处于发布阶段使用的通过生成的语言数组来实现;
C、当***处于开发阶段时,根据用户选择的语言,通过调用读取语言字符串函数接口,动态的读取相应特定格式的语言字符串资源文件来显示相应语言的用户界面;
D、当***处于发布阶段时,根据用户选择的语言,相应语言的语言字符串资源文件解析成语言数组和对应模块的索引数组,并修改解析方式为数组进行发布来显示相应语言的用户界面。
2.根据权利要求1所述的实现多语言用户界面的方法,其特征在于,所述步骤A进一步包括:
A1、建立多语言根目录,并根据所支持的语言种类建立对应的语言种类目录;
A2、确定***用户界面划分的模块,再根据***用户界面划分的模块,在语言种类目录下建立特定格式文件的语言字符串资源文件目录;将用户界面按照模块进行分类,每个模块的每种语言的语言字符串资源文件分别存储于对应的语言种类目录中,且同一模块的语言字符串资源文件在不同的语言种类目录下保持文件名称一致,语言字符串资源文件以模块名命名。
3.根据权利要求2所述的实现多语言用户界面的方法,其特征在于,所述语言字符串资源文件采用特定的解析器进行解析,将语言字符串资源文件生成特定的文件结构,所述文件结构包括一个根节点和若干层语言字符串节点,每个语言字符串节点包含一个语言字符串ID号、一个源语言字符串和一个目标语言字符串,所述源语言字符串是默认语言的语言字符串,目标语言字符串是根据用户使用的语言进行解析生成的语言字符串,语言字符串ID号从0开始编号而且连续。
4.根据权利要求2所述的实现多语言用户界面的方法,其特征在于,所述步骤A进一步包括,用户使用的语言种类至少选择一种,所述默认的语言种类根据开发人员的习惯选择。
5.根据权利要求1所述的实现多语言用户界面的方法,其特征在于,所述步骤B中,实现读取语言字符串函数接口的参数有:模块名,字符串ID,字符串,所述模块名对应相应语言字符串的特定格式文件的模块名,字符串ID对应语言字符串节点的ID,字符串对应语言字符串节点的源语言字符串。
6.根据权利要求5所述的实现多语言用户界面的方法,其特征在于,所述步骤B中,读取语言字符串函数接口的具体步骤包括:
B101、先判断语言选择是否为默认语言,若语言选择为默认语言,执行步骤B109;否则执行步骤B102;
B102、若解析方式选择为某种特定格式文件,则执行步骤B103,否则执行步骤B106;
B103、根据参数中的模块名和语言选择打开具有对应文件格式的语言字符串资源文件,若成功则执行步骤B104,否则执行步骤B110;
B104、在解析生成的对应的文件结构中,搜索指定源语言字符串的语言字符串节点,若找到指定源语言字符串的语言字符串节点则执行步骤B105,否则执行步骤B110;
B105、若节点语言字符串ID和参数中的语言字符串ID不同,则执行步骤B111;否则执行步骤B112;
B106、根据模块名查找到其模块的索引数组;
B107、根据不同的语言选择不同的语言数组;
B108、取语言数组下标为[索引+语言字符串ID]的字符为输出语言字符串,执行步骤B113;
B109、参数中的语言字符串为输出语言字符串,执行步骤B113;
B110、参数中的语言字符串ID为输出语言字符串,执行步骤B113;
B111、节点语言字符串ID+参数中的语言字符串为输出语言字符串,即该语言字符串节点的属性id连接参数中的语言字符串为输出语言字符串,执行步骤B113;
B112、语言字符串节点的语言字符串为输出语言字符串,执行步骤B113;
B113、输出语言字符串复制到字符串缓冲指针所对应的内存位置;
B114、结束。
7.根据权利要求1所述的实现多语言用户界面的方法,其特征在于,所述步骤C进一步包括:当***处于开发阶段时,用户界面可以通过默认语言种类进行设计和编写,用户界面通过调用读取语言字符串函数接口“_(模块名,字符串ID,字符串)”读取语言资源信息,显示出相应语言的用户界面;其中,参数“模块名”对应所述语言字符串属于的XML文件的模块名,参数“字符串ID”对应所述语言字符串节点的ID,参数“字符串”对应所述语言字符串节点的源语言字符串,根据以上参数实现读取语言字符串函数接口,并读取语言资源信息,显示出相应语言的用户界面。
8.根据权利要求1所述的实现多语言用户界面的方法,其特征在于,所述步骤D中,各种语言的语言字符串资源文件解析成各种语言的数组和对应模块的索引数组的具体步骤包括:
D101、打开语言数组输出文件和模块语言索引输出文件;
D102、按名字或者按使用频率,遍历所有模块中的具有特定文件格式的语言字符串资源文件;
D103、打开一个模块中的具有特定文件格式的语言字符串资源文件;
D104、计算模块中的具有特定文件格式的语言字符串资源文件含有的语言字符串节点数;
D105、计算模块中的具有特定文件格式的语言字符串资源文件的索引并将模块名和索引输出到模块语言索引文件;
D106、语言字符串ID=0,语言字符串开始遍历;
D107、根据语言字符串ID读取目标语言字符串并输出到语言数组输出文件;
D108、语言字符串ID++,遍历下一个语言字符串;
D109、若语言字符串ID<含有的语言字符串节点数,则执行步骤D107,否则执行步骤D110;
D110、关闭具有特定文件格式的语言字符串资源文件;
D111、若具有特定文件格式的语言字符串资源文件遍历完成,则执行步骤D112,否则执行步骤D 103;
D112、保存和关闭语言数组输出文件和模块语言索引输出文件;
D113、将语言数组输出文件和模块语言索引输出文件的内容复制对应源代码中;
D114、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110052943 CN102109958B (zh) | 2011-03-04 | 2011-03-04 | 实现多语言用户界面的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110052943 CN102109958B (zh) | 2011-03-04 | 2011-03-04 | 实现多语言用户界面的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102109958A CN102109958A (zh) | 2011-06-29 |
CN102109958B true CN102109958B (zh) | 2012-12-19 |
Family
ID=44174137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110052943 Active CN102109958B (zh) | 2011-03-04 | 2011-03-04 | 实现多语言用户界面的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102109958B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855055B (zh) * | 2011-06-30 | 2015-04-29 | 上海西门子医疗器械有限公司 | 一种混合语言用户界面的实现方法、***及医疗设备 |
CN102637168A (zh) * | 2012-03-19 | 2012-08-15 | 深圳市共进电子股份有限公司 | 一种实现图形用户界面中语言自动翻译的方法 |
CN103927301B (zh) * | 2014-04-25 | 2017-06-30 | 广东欧珀移动通信有限公司 | 一种利用主题包动态翻译词条的方法及装置 |
CN106155666A (zh) * | 2015-04-17 | 2016-11-23 | 中兴通讯股份有限公司 | 终端语言设置方法、装置及终端 |
CN105094941B (zh) * | 2015-09-24 | 2018-11-02 | 深圳市捷顺科技实业股份有限公司 | 一种实现多语言的方法及装置 |
CN105407160B (zh) * | 2015-11-27 | 2019-04-23 | 小米科技有限责任公司 | 界面显示方法和装置 |
CN107357569B (zh) * | 2017-06-15 | 2020-09-25 | 广州视源电子科技股份有限公司 | 多语言资源文件的统一管理方法及***、计算机可读存储介质及设备 |
CN110020028A (zh) * | 2017-09-01 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种文档创建及访问方法、装置 |
CN109976840B (zh) * | 2017-12-27 | 2022-03-04 | 航天信息股份有限公司 | 一种基于前后台分离平台下实现多语言自动适配的方法及*** |
CN110795915B (zh) * | 2018-07-31 | 2024-07-16 | 南京中兴新软件有限责任公司 | xml文件批量修改方法、***、设备和计算机可读存储介质 |
CN109445779A (zh) * | 2018-09-13 | 2019-03-08 | 平安科技(深圳)有限公司 | 多语言用户界面的渲染方法及终端设备 |
CN109471618A (zh) * | 2018-11-16 | 2019-03-15 | 北京金和网络股份有限公司 | 程序集成多语言化工具 |
CN111221617A (zh) * | 2020-01-20 | 2020-06-02 | 厦门靠谱云股份有限公司 | 一种基于网页单项目中多语言切换的方法及*** |
CN111209075B (zh) * | 2020-01-21 | 2024-02-09 | 深圳市优必选科技股份有限公司 | 多语言界面维护方法、***、存储介质和智能设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567296A (zh) * | 2003-05-07 | 2005-01-19 | 中兴通讯股份有限公司 | 一种嵌入式***的多语言显示方法 |
CN1577263A (zh) * | 2003-06-26 | 2005-02-09 | 华为技术有限公司 | 支持多语言的用户界面实现方法及其装置 |
CN1975668A (zh) * | 2006-12-31 | 2007-06-06 | 金蝶软件(中国)有限公司 | 一种支持多语言的***及输入、读取多语言数据的方法 |
CN101093513A (zh) * | 2007-08-14 | 2007-12-26 | 金蝶软件(中国)有限公司 | 一种用于解决计算机软件多语言支持问题的方法和*** |
CN101346749A (zh) * | 2005-07-20 | 2009-01-14 | 金矿世界股份有限公司,以世界银行卡服务股份有限公司营业 | ***用户界面的多语言用户选择的方法和装置 |
CN101441567A (zh) * | 2008-11-18 | 2009-05-27 | 宇龙计算机通信科技(深圳)有限公司 | 一种在移动终端中支持多语言用户界面的方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916192B (zh) * | 2010-09-14 | 2014-04-16 | 深圳市华力特电气股份有限公司 | 用户界面的多语言切换方法和装置 |
-
2011
- 2011-03-04 CN CN 201110052943 patent/CN102109958B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567296A (zh) * | 2003-05-07 | 2005-01-19 | 中兴通讯股份有限公司 | 一种嵌入式***的多语言显示方法 |
CN1577263A (zh) * | 2003-06-26 | 2005-02-09 | 华为技术有限公司 | 支持多语言的用户界面实现方法及其装置 |
CN101346749A (zh) * | 2005-07-20 | 2009-01-14 | 金矿世界股份有限公司,以世界银行卡服务股份有限公司营业 | ***用户界面的多语言用户选择的方法和装置 |
CN1975668A (zh) * | 2006-12-31 | 2007-06-06 | 金蝶软件(中国)有限公司 | 一种支持多语言的***及输入、读取多语言数据的方法 |
CN101093513A (zh) * | 2007-08-14 | 2007-12-26 | 金蝶软件(中国)有限公司 | 一种用于解决计算机软件多语言支持问题的方法和*** |
CN101441567A (zh) * | 2008-11-18 | 2009-05-27 | 宇龙计算机通信科技(深圳)有限公司 | 一种在移动终端中支持多语言用户界面的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102109958A (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102109958B (zh) | 实现多语言用户界面的方法和*** | |
CN101441567B (zh) | 一种在移动终端中支持多语言用户界面的方法及*** | |
JP7366078B2 (ja) | ページのテーマを決定するための方法、装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム | |
US10691507B2 (en) | API learning | |
CN102279847B (zh) | 软件***国际化方法和装置 | |
CN102201009A (zh) | 一种表单生成方法和装置 | |
CN1867886A (zh) | 用于用户界面定制的方法和数据结构 | |
CN102122245A (zh) | 一种配置项设置界面的生成方法及*** | |
CN102364437A (zh) | 多语言站点开发***及其实现方法 | |
JP2016505955A (ja) | 電子リーダにおけるフラットブックからリッチブックへの変換 | |
CN111290996A (zh) | 文档格式转换方法、装置、设备及可读存储介质 | |
CN108153522B (zh) | 基于模型转换由midcore生成Spark和Hadoop程序代码的方法 | |
JP2016218698A (ja) | 文書変換プログラム及び文書変換方法 | |
EP4246343A1 (en) | Information extraction method and apparatus for text with layout | |
CN117827218A (zh) | 低代码应用支持多语言的开发方法、装置和电子设备 | |
CN112199626A (zh) | 基于dsl布局引擎的动态表单生成方法 | |
CN111142871A (zh) | 一种前端页面开发***、方法、设备、介质 | |
CN109558225A (zh) | 一种页面切换方法及装置 | |
CN115686515A (zh) | 参数可视化配置界面生成方法、装置、介质和电子设备 | |
CN105279247A (zh) | 表情库的生成方法及装置 | |
CN101650654A (zh) | 字节码运行平台的可定制方法和装置 | |
CN114089980A (zh) | 编程处理方法、装置、解释器及非易失性存储介质 | |
CN111597323B (zh) | 关键字段过滤方法、装置、存储介质及电子设备 | |
CN102609249A (zh) | 基于可扩展标记语言的可配置菜单实现方法 | |
Zhang et al. | A dynamic form rendering method for web multi-front framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP03 | Change of name, title or address |
Address after: 518051 Guangdong city of Shenzhen province Nanshan District Yuquanlu Road Yizhe building 4, 5, 8, 9, 10 floor Patentee after: Biologic medical Science and Technology Co., Ltd. is opened in Shenzhen Address before: 518051 Guangdong city of Shenzhen province Nanshan District Yuquanlu Road Yizhe building 10 floor Patentee before: Sonoscape Inc. |