CN103164246B - 一种提供多语言支持的方法和装置 - Google Patents
一种提供多语言支持的方法和装置 Download PDFInfo
- Publication number
- CN103164246B CN103164246B CN201310092437.8A CN201310092437A CN103164246B CN 103164246 B CN103164246 B CN 103164246B CN 201310092437 A CN201310092437 A CN 201310092437A CN 103164246 B CN103164246 B CN 103164246B
- Authority
- CN
- China
- Prior art keywords
- word
- software
- resource request
- lookup
- language
- 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
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种提供多语言支持的方法和装置,其中,方法包括以下步骤:拦截软件的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名;根据所述文字别名,在预设的语言包中查找所述文字别名对应的文字;将查找到的文字返回给所述软件。本发明实施例根据拦截的资源请求从预设的语言包中查找对应的文字,因此只要软件采用查找资源的方式加载文字,无论软件自身是否包含多种语言包,都可以使软件支持所需的语言。
Description
技术领域
本发明涉及计算机软件领域,更具体地,涉及一种提供多语言支持的方法和装置。
背景技术
国际化一直是软件开发中比较重要的一个部分。所谓的软件的国际化,实际上就是将软件设计成可以适合多个国家的用户使用,其中包括了一系列的措施,比如多语言的支持、不同国家用户使用习惯的调整,等等。而在国际化的各个方向中,最常用的一个措施就是多语言的支持。
目前,软件中使用的多语言支持方案是将需要显示文字的地方使用多语言指示符+文字别名来代替,然后在软件中内置多套语言包,每一套对应一种语言,语言包的大体格式即是文字别名映射到文字。软件启动时,检测系统的语言环境,确定软件需要使用的语言和对应的语言包,然后在运行时,一旦发现多语言指示符时,就到对应的语言包中,根据文字别名找到对应的文字进行显示。比如,软件需要显示“专利”这两个字时,会使用多语言指示符+文字别名来代替该文字,比如$(STR_PATENT),这里,$()是多语言指示符,而STR_PATENT是文字别名,软件在中文环境下时,就会到中文语言包中找到STR_PATENT这个文字别名对应的文字“专利”,显示查找到的“专利”,如果是英文环境,就会到英文语言包中找到STR_PATENT对应的文字“Patent”,显示查找到的“Patent”。
然而,该方案有如下缺点:当软件中没有用户所需的语言包时,软件就无法支持用户所需的语言。因此,目前的方案无法实现让软件灵活地支持用户所需的语言。
发明内容
有鉴于此,本发明实施例的目的是提出一种提供多语言支持的方法和装置,能够让软件灵活地支持用户所需的语言。
为了达到上述目的,本发明实施例提出一种提供多语言支持的方法,包括以下步骤:
拦截软件的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名;
根据所述文字别名,在预设的语言包中查找所述文字别名对应的文字;
将查找到的文字返回给所述软件。
本发明实施例根据拦截的资源请求从预设的语言包中查找对应的文字,因此只要软件采用查找资源的方式加载文字,无论软件自身是否包含多种语言包,都可以使软件支持所需的语言。
作为上述技术方案的优选,所述拦截软件的查找文字资源请求的步骤包括:拦截软件的查找资源请求;判断所述查找资源请求是否是查找文字资源请求;当所述查找资源请求不是查找文字资源请求时,透传所述查找资源请求。本方案仅处理文字请求,目的是为了防止恶意行为。
作为上述技术方案的优选,在预设的语言包中查找所述文字别名对应的文字的步骤包括:判断在预设的语言包中是否查找到所述文字别名对应的文字;当在预设的语言包中未查找到所述文字别名对应的文字时,透传所述查找文字资源请求。本方案可以继续系统原有的查找文字资源逻辑查找文字。
作为上述技术方案的优选,在预设的语言包中查找所述文字别名对应的文字的步骤包括:在存储于预设位置的语言包中查找所述文字别名对应的文字。由于是使用存储于预设位置的语言包,所以不需要根据当前的语言设置再进行查找对应的语言包,因此,可以使软件支持任意的语言。
作为上述技术方案的优选,在预设的语言包中查找所述文字别名对应的文字的步骤包括:检测软件所处系统的语言环境;根据检测出的语言环境从预设的语言包中选择对应的语言包;在选择的语言包中查找所述文字别名对应的文字。本方案根据软件所处系统的语言环境选择相应的语言包,不论软件中是否自带有该语言包,只要系统的语言环境支持,就可以使软件支持该语言。
作为上述技术方案的优选,所述软件为手持设备的多语言支持软件,从而使手持设备中的多语言支持软件也能灵活地支持多语言。
本发明实施例还提出一种提供多语言支持的装置,包括:
拦截模块,用于拦截软件的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名;
查找模块,用于根据所述文字别名,在预设的语言包中查找所述文字别名对应的文字;
返回模块,用于将查找到的文字返回给所述软件。
作为上述技术方案的优选,所述拦截模块包括:
拦截单元,用于拦截软件的查找资源请求;
第一判断单元,用于判断所述查找资源请求是否是查找文字资源请求;
所述装置还包括:
透传模块,用于当所述查找资源请求不是查找文字资源请求时,透传所述查找资源请求。
作为上述技术方案的优选,所述透传模块还用于:当在预设的语言包中未查找到所述文字别名对应的文字时,透传所述查找文字资源请求。
作为上述技术方案的优选,所述查找模块用于:
在存储于预设位置的语言包中查找所述文字别名对应的文字。
作为上述技术方案的优选,所述查找模块包括:
检测单元,用于检测软件所处系统的语言环境;
选择单元,用于根据检测出的语言环境从预设的语言包中选择对应的语言包;
查找单元,用于在选择的语言包中查找所述文字别名对应的文字。
本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明实施例的限制。在附图中:
图1是本发明实施例中提供多语言支持的主要方法流程图;
图2是本发明实施例中根据软件所处系统的语言环境从预设的语言包中查找文字的方式所实现的提供多语言支持的方法流程图;
图3是本发明实施例中直接从存储于预设位置的语言包中查找文字的方式实现的提供多语言支持的方法流程;
图4是本发明实施例中提供多语言支持的装置的主要结构示意图;
图5是本发明实施例中提供多语言支持的装置的具体结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明实施例,并不用于限定本发明实施例。
如图1所示为本发明实施例中提供多语言支持的主要方法流程,包括:
步骤S101:拦截软件的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名。
软件例如是计算机中运行的多语言支持软件,也可以是手持设备(例如手机、平板电脑等)中运行的多语言软件。多语言支持软件在运行时将会发送文字资源请求来查找某种语言环境下对应的文字。
文字别名是指在文字在软件代码中的标识。软件需要显示文字时,通常会使用多语言指示符和文字别名来代替文字。比如软件代码中的$(STR_PATENT),其中,$()是多语言指示符,而STR_PATENT是文字PATENT的文字别名。
步骤S102:根据所述文字别名,在预设的语言包中查找所述文字别名对应的文字。
步骤S103:将查找到的文字返回给所述软件。
本发明实施例中的提供多语言支持的方法,根据拦截的资源请求从外部预设的语言包中查找对应的文字,因此只要软件采用查找资源的方式加载文字,无论软件自身是否包含多种语言包,都可以使软件支持所需的语言。
如图2所示为本发明实施例中根据软件所处系统的语言环境从预设的语言包中查找文字的方式所实现的提供多语言支持的方法流程,包括以下步骤:
步骤S201:获取软件所在系统的语言环境。
步骤S202:拦截软件的查找资源请求。
例如,在Android(一种基于Linux的自由及开放源代码的操作系统)系统中,软件的资源请求是通过Resources类提供的getText、getValue、obtainAttributes等函数实现的。
该步骤可以通过修改系统查找资源接口来实现(例如使用钩子(hook))。
步骤S203:判断拦截的查找资源请求是否是查找文字资源请求,若是,执行步骤S204,若否,执行步骤S208。
该步骤是为了防止恶意行为,因此遭拦截系统请求时,仅处理文字请求,而其他安全敏感的请求,如可执行文件等,会直接返回,不做任何额外处理。
例如,在Android系统中的软件的资源请求中,getText是专门处理文字资源的函数,因此,可以判断资源请求是否是通过getText函数发出。
步骤S204:获取查找文字资源请求中携带的文字别名。
步骤S205:判断预设的外部位置是否存在语言环境对应的语言包,若是,执行步骤S206,若否,执行步骤S208。
应当注意的是,上述步骤S201只要在步骤S205之前执行即可,即在步骤S205之前获得软件所在系统的语言环境即可。
步骤S206:判断在语言包中是否查找到获取的文字别名对应的文字,若是,执行步骤S207;若否,执行步骤S208。
例如,在Android系统中,Android的软件所使用的资源是以xml文件的方式进行组织的,文字资源一般定义在values目录下的strings.xml中,内容片段如下:
<string name=”str_patent”>Patent</string>
如果想增加简体中文的支持,再增加一个values-zh-rCN的目录(即简体中文语言包),里面同样加上strings.xml文件,内容片段如下:
<string name=”str_patent”>专利</string>
这样,通过文字别名“str_patent”就可以在简体中文的语言包中查找到相应的文字“专利”。
应当注意的是,在本发明实施例中,无需软件定义语言包的格式,由于采用的是拦截请求系统资源的方式,因此语言包的格式应和系统资源格式一致,从而避免不同软件定义的语言包格式有所差异使得语言制作者学习成本很高的问题。
步骤S207:将查找到的文字返回给软件。
步骤S208:透传拦截的查找资源请求。
透传拦截的查找资源请求,使得软件可以继续系统原有的查找资源逻辑。
在本实施例中,根据软件所在系统支持的语言环境以及拦截的查找文字资源请求,查找相应的文字。因此,即使软件中没有用户所需的语言包,也可以使软件支持用户所需的语言。
如图3所示为本发明实施例中直接从存储于预设位置的语言包中查找文字的方式实现的提供多语言支持的方法流程,包括以下步骤:
步骤S301:拦截软件的查找资源请求。
例如,在Android(一种基于Linux的自由及开放源代码的操作系统)系统中,软件的资源请求是通过Resources类提供的getText、getValue、obtainAttributes等函数实现的。
该步骤通过修改系统的查找资源接口实现,由于修改的是系统查找资源的统一接口,所以只要软件采用查找资源的方式加载文字,无论软件自身是否支持多语言,是否只有一种语言,是否支持该特定语言,都可以达到替换语言的效果。
步骤S302:判断拦截的查找资源请求是否是查找文字资源请求,若是,执行步骤S303,若否,执行步骤S307:
例如,在Android系统中的软件的资源请求中,getText是专门处理文字资源的函数,因此,可以判断资源请求是否是通过getText函数发出。
步骤S303:获取查找文字资源请求中携带的文字别名。
步骤S304:判断预设的外部位置是否存在语言包,若是,执行步骤S305,若否,执行步骤S307。
步骤S305:判断在语言包中是否查找到获取的文字别名对应的文字,若是,执行步骤S306;若否,执行步骤S307。
步骤S306:将查找到的文字返回给软件。
步骤S307:透传拦截的查找资源请求。
在本实施例中,根据拦截的查找文字资源请求在预设的语言包中查找相应的文字。因此,无论软件所在系统处于何种语言环境,无论软件中有没有用户所需的语言包,都可以使软件支持用户所需的语言。
如图4所示为本发明实施例中一种提供多语言支持的装置,包括:
拦截模块401,用于拦截软件的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名;
查找模块402,用于根据所述文字别名,在预设的语言包中查找所述文字别名对应的文字;
返回模块403,用于将查找到的文字返回给所述软件。
优选地,拦截模块401包括:
拦截单元,用于拦截软件的查找资源请求;
判断单元,用于判断所述查找资源请求是否是查找文字资源请求。
如图5所示,所述装置还包括:
透传模块404,用于当所述查找资源请求不是查找文字资源时,透传所述查找资源请求。
优选地,透传模块404还用于:当在预设的语言包中未查找到所述文字别名对应的文字时,透传所述查找文字资源请求。
优选地,查找模块402用于:
在存储于预设位置的语言包中查找所述文字别名对应的文字。
优选地,查找模块402包括:
检测单元,用于检测软件所处系统的语言环境;
选择单元,用于根据检测出的语言环境从预设的语言包中选择对应的语言包;
查找单元,用于在选择的语言包中查找所述文字别名对应的文字。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种提供多语言支持的方法,其特征在于,包括:
拦截软件发送至系统的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名;所述文字别名为文字在软件代码中的标识;
根据所述文字别名,判断预设的外部位置是否存在语言环境对应的语言包,若是,在外部预设的语言包中查找所述文字别名对应的文字;
将查找到的文字返回给所述软件。
2.根据权利要求1所述的方法,其特征在于,所述拦截软件的查找文字资源请求的步骤包括:
拦截软件发送至系统的查找资源请求;
判断所述查找资源请求是否是查找文字资源请求;
当所述查找资源请求不是查找文字资源请求时,透传所述查找资源请求。
3.根据权利要求1所述的方法,其特征在于,在外部预设的语言包中查找所述文字别名对应的文字的步骤包括:
判断在外部预设的语言包中是否查找到所述文字别名对应的文字;
当在外部预设的语言包中未查找到所述文字别名对应的文字时,透传所述查找文字资源请求。
4.根据权利要求1所述的方法,其特征在于,在外部预设的语言包中查找所述文字别名对应的文字的步骤包括:
检测软件所处系统的语言环境;
根据检测出的语言环境从外部预设的语言包中选择对应的语言包;
在选择的语言包中查找所述文字别名对应的文字。
5.根据权利要求1所述的方法,其特征在于,所述软件为手持设备的多语言支持软件。
6.一种提供多语言支持的装置,其特征在于,包括:
拦截模块,用于拦截软件发送至系统的查找文字资源请求,所述查找文字资源请求中包括要查找的文字别名;所述文字别名为文字在软件代码中的标识;
查找模块,用于根据所述文字别名,判断预设的外部位置是否存在语言环境对应的语言包,若是,在外部预设的语言包中查找所述文字别名对应的文字;
返回模块,用于将查找到的文字返回给所述软件。
7.根据权利要求6所述的装置,其特征在于,所述拦截模块包括:
拦截单元,用于拦截软件发送至系统的查找资源请求;
第一判断单元,用于判断所述查找资源请求是否是查找文字资源请求;
所述装置还包括:
透传模块,用于当所述查找资源请求不是查找文字资源请求时,透传所述查找资源请求。
8.根据权利要求6所述的装置,其特征在于,所述透传模块还用于:当在外部预设的语言包中未查找到所述文字别名对应的文字时,透传所述查找文字资源请求。
9.根据权利要求7所述的装置,其特征在于,所述查找模块包括:
检测单元,用于检测软件所处系统的语言环境;
选择单元,用于根据检测出的语言环境从外部预设的语言包中选择对应的语言包;
查找单元,用于在选择的语言包中查找所述文字别名对应的文字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310092437.8A CN103164246B (zh) | 2013-03-21 | 2013-03-21 | 一种提供多语言支持的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310092437.8A CN103164246B (zh) | 2013-03-21 | 2013-03-21 | 一种提供多语言支持的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164246A CN103164246A (zh) | 2013-06-19 |
CN103164246B true CN103164246B (zh) | 2017-03-08 |
Family
ID=48587364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310092437.8A Active CN103164246B (zh) | 2013-03-21 | 2013-03-21 | 一种提供多语言支持的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164246B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572203B (zh) * | 2015-01-08 | 2018-04-06 | 广州久邦世纪科技有限公司 | 一种桌面多语言适配的实现方法 |
CN104915204A (zh) * | 2015-06-08 | 2015-09-16 | 小米科技有限责任公司 | 网页处理方法及装置 |
CN106990976A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829261A (zh) * | 2005-01-11 | 2006-09-06 | Lg电子株式会社 | 提供支持多语言的移动终端和系统 |
CN101441567A (zh) * | 2008-11-18 | 2009-05-27 | 宇龙计算机通信科技(深圳)有限公司 | 一种在移动终端中支持多语言用户界面的方法及系统 |
CN101566946A (zh) * | 2008-04-25 | 2009-10-28 | 北京闻言科技有限公司 | 一种灵活支持软件多语言版本的方法 |
CN101694617A (zh) * | 2009-09-01 | 2010-04-14 | 卡斯柯信号有限公司 | 一种基于资源标识符的多语言支持实现方法 |
CN101710282A (zh) * | 2009-11-16 | 2010-05-19 | 金蝶软件(中国)有限公司 | 实现系统支持多语言资源的方法及装置 |
US7783637B2 (en) * | 2003-09-30 | 2010-08-24 | Microsoft Corporation | Label system-translation of text and multi-language support at runtime and design |
CN101826034A (zh) * | 2010-05-13 | 2010-09-08 | 中兴通讯股份有限公司 | Linux系统中语言的切换方法及装置 |
-
2013
- 2013-03-21 CN CN201310092437.8A patent/CN103164246B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783637B2 (en) * | 2003-09-30 | 2010-08-24 | Microsoft Corporation | Label system-translation of text and multi-language support at runtime and design |
CN1829261A (zh) * | 2005-01-11 | 2006-09-06 | Lg电子株式会社 | 提供支持多语言的移动终端和系统 |
CN101566946A (zh) * | 2008-04-25 | 2009-10-28 | 北京闻言科技有限公司 | 一种灵活支持软件多语言版本的方法 |
CN101441567A (zh) * | 2008-11-18 | 2009-05-27 | 宇龙计算机通信科技(深圳)有限公司 | 一种在移动终端中支持多语言用户界面的方法及系统 |
CN101694617A (zh) * | 2009-09-01 | 2010-04-14 | 卡斯柯信号有限公司 | 一种基于资源标识符的多语言支持实现方法 |
CN101710282A (zh) * | 2009-11-16 | 2010-05-19 | 金蝶软件(中国)有限公司 | 实现系统支持多语言资源的方法及装置 |
CN101826034A (zh) * | 2010-05-13 | 2010-09-08 | 中兴通讯股份有限公司 | Linux系统中语言的切换方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103164246A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8645928B2 (en) | Localizing a java GUI application without source code modification and rebuilding | |
KR102163501B1 (ko) | 애플리케이션 내의 대역외 프레임워크 라이브러리 | |
US9218170B1 (en) | Managing table of contents pointer value saves | |
US7555716B2 (en) | Terminology customization in a processing environment | |
US11327643B2 (en) | Rule-based user in interface layout rearrangement | |
US9880924B2 (en) | Source code unit testing using an indexing tool | |
CN103164246B (zh) | 一种提供多语言支持的方法和装置 | |
US9298451B2 (en) | Non-transitory computer-readable recording medium storing application development support program and application development support system that automatically support platform version | |
US20170177330A1 (en) | Logical level difference detection between software revisions | |
US8959502B2 (en) | Processing table of content access overflow in an application | |
US20140196019A1 (en) | Method and Apparatus for Substituting Compiler Built-in Helper Functions with Machine Instructions | |
US20130290942A1 (en) | Method, computer, and computer program for speculatively optimizing code | |
US11880704B2 (en) | Nested virtual machine support for hypervisors of encrypted state virtual machines | |
US20130152049A1 (en) | Warning of register and storage area assignment errors | |
US20150081269A1 (en) | Language Localization Of Java Applications | |
JP2017033361A (ja) | 文書関連付け装置、文書関連付けシステム、プログラム | |
US9135027B1 (en) | Code generation and execution for dynamic programming languages | |
US20150178074A1 (en) | Method, a system, and a non-transitory computer-readable medium for supporting application development | |
US9959101B2 (en) | Conditional sequential selection of external reference solutions | |
US10275228B2 (en) | Relaxing user-specified register constraints for improving register allocation | |
US10223467B2 (en) | Search criterion disambiguation and notification | |
KR20100099569A (ko) | 실행 파일 생성 방법 및 그 방법을 이용하는 시스템 장치 | |
CN110765462B (zh) | 一种操作控制方法、装置、计算系统及电子设备 | |
KR20160074832A (ko) | Elf 바이너리 분석을 통한 루팅 탐지 방법 및 장치 | |
CN104809192A (zh) | 提取输入法候选项的方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 100085 Beijing city Haidian District Qinghe Street No. 68 Huarun colorful city shopping center two floor 13 Applicant after: Xiaomi Technology Co., Ltd. Address before: 100102 Beijing Wangjing West Road, a volume of stone world building, A, block, floor 12 Applicant before: Beijing Xiaomi Technology Co., Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |