CN107423291A - 一种数据翻译方法以及客户端设备 - Google Patents
一种数据翻译方法以及客户端设备 Download PDFInfo
- Publication number
- CN107423291A CN107423291A CN201710313150.1A CN201710313150A CN107423291A CN 107423291 A CN107423291 A CN 107423291A CN 201710313150 A CN201710313150 A CN 201710313150A CN 107423291 A CN107423291 A CN 107423291A
- Authority
- CN
- China
- Prior art keywords
- target
- translated
- prefab
- client device
- character string
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Machine Translation (AREA)
Abstract
本发明实施例公开了一种数据翻译方法以及客户端设备,所述方法包括客户端设备获取目标列表,所述客户端设备可获取目标待翻译字符串以及对应的目标哈希值,客户端设备即可根据所述目标列表获取与所述目标哈希值对应的目标翻译文件。可见,本实施例为使得安装包能够支持多种语言,本实施例只需在安装包内打入待翻译字符串以及翻译文件即可,所述客户端设备可通过待翻译字符串与哈希值的对应关系,以及哈希值与所述翻译文件的对应关系,确定出与所述目标待翻译字符串对应的目标翻译文件,从而通过所述目标翻译文件实现对所述目标待翻译字符串的翻译,从而有效的减少了安装包的包量。
Description
技术领域
本发明涉及通信技术领域,尤其涉及的是一种数据翻译方法以及客户端设备。
背景技术
现有技术中,为使得客户端设备能够实现特定的功能,则客户端设备可下载安装包,以使安装有所述安装包的客户端能够实现与所述安装包对应的功能,例如,若所述安装包为手游产品安装包,则用户即可通过安装有所述安装包的客户端设备实现手游的实现。
现有技术所示的安装包内预先设置有与某语种对应的数据档,例如,若所述安装包内设置有与英语对应的数据档,则安装有与英语对应的数据档的安装包的客户端设备能够在英语的运行环境中运行安装包所对应的功能。
为了使得安装包能够适用于不同的语言,则需要预先将能够支持的所有语言的数据档都打入安装包内,例如,与英语对应的数据档,与中文对应的数据档,与日语对应的数据档,与韩语对应的数据档等。可见,采用现有技术所示安装包的包量较大,则降低了客户端设备安装包括与多种语言对应的数据档的安装包的效率。
发明内容
本发明提供了一种能够有效的降低安装包的包量的数据翻译方法以及客户端设备。
本发明实施例第一方面提供了一种数据翻译方法,包括:
获取目标列表,所述目标列表包括不同的翻译文件与不同的哈希值的对应关系;
获取目标待翻译字符串,所述目标待翻译字符串为当前需要进行翻译的字符串;
获取目标哈希值,所述目标哈希值为与所述目标待翻译字符串对应的哈希值;
根据所述目标列表获取与所述目标哈希值对应的目标翻译文件。
本发明实施例第二方面提供了一种客户端设备,包括:
第一获取单元,用于获取目标列表,所述目标列表包括不同的翻译文件与不同的哈希值的对应关系;
第二获取单元,用于获取目标待翻译字符串,所述目标待翻译字符串为当前需要进行翻译的字符串;
第三获取单元,用于获取目标哈希值,所述目标哈希值为与所述目标待翻译字符串对应的哈希值;
第四获取单元,用于根据所述目标列表获取与所述目标哈希值对应的目标翻译文件。
本发明实施例第三方面提供了一种客户端设备,其特征在于,包括:
一个或多个处理器单元、存储单元、总线系统、以及一个或多个程序,所述处理器单元和所述存储单元通过所述总线系统相连;
其中所述一个或多个程序被存储在所述存储单元中,所述一个或多个程序包括指令,所述指令当被所述客户端设备执行时使所述客户端设备执行如本发明实施例第一方面所提供的所述方法。
本发明实施例第四方面提供了一种存储一个或多个程序的计算机可读存储介质,包括一个或多个程序,所述一个或多个程序包括指令,所述指令当被客户端设备执行时使所述客户端设备执行如本发明实施例第一方面所提供的所述方法。
本发明提供了一种数据翻译方法以及客户端设备,本实施例为使得安装包能够支持多种语言,则安装包内无需如现有技术所示打入所有语言的数据档,本实施例只需在安装包内打入待翻译字符串以及翻译文件即可,所述客户端设备可通过待翻译字符串与哈希值的对应关系,以及哈希值与所述翻译文件的对应关系,确定出与所述目标待翻译字符串对应的目标翻译文件,从而通过所述目标翻译文件实现对所述目标待翻译字符串的翻译,从而有效的减少了安装包的包量。
附图说明
图1为本发明所提供的通信系统的一种实施例结构示意图;
图2为本发明所提供的客户端设备的一种实施例结构示意图;
图3为本发明所提供的服务器设备的一种实施例结构示意图;
图4为本发明所提供的数据翻译方法的一种实施例步骤流程图;
图5为本发明所提供的工程表的一种实施例结构示意图;
图6为本发明所提供的字符串与哈希值的一种实施例对应关系示意图;
图7为本发明所提供的翻译文件与哈希值的一种实施例对应关系示意图;
图8为本发明所提供的工程表的另一种实施例结构示意图;
图9为本发明所提供的数据翻译方法的另一种实施例步骤流程图;
图10为本发明所提供的预设体拆分方法的一种实施例示意图;
图11为本发明所提供的应用场景一种实施例示意图;
图12为本发明所提供的应用场景另一种实施例示意图;
图13为本发明所提供的应用场景另一种实施例示意图;
图14为本发明所提供的应用场景另一种实施例示意图;
图15为本发明所提供的应用场景另一种实施例示意图;
图16为本发明所提供的应用场景另一种实施例示意图;
图17为本发明所提供的应用场景另一种实施例示意图;
图18为本发明所提供的数据翻译方法的另一种实施例步骤流程图;
图19为本发明所提供的应用场景另一种实施例示意图;
图20为本发明所提供的应用场景另一种实施例示意图;
图21为本发明所提供的应用场景另一种实施例示意图;
图22为本发明所提供的客户端设备的一种实施例结构示意图;
图23为本发明所提供的服务器设备的一种实施例结构示意图;
图24为本发明所提供的服务器设备的另一种实施例结构示意图;
图25为本发明所提供的服务器设备的另一种实施例结构示意图;
图26为本发明所提供的服务器设备的另一种实施例结构示意图。
具体实施方式
为更好的理解本发明实施例所示的方法,则首先对通信系统的具体结构进行说明。
本实施例所示的方法应用于本实施例所示的所述通信系统。
如图1所示,本实施例所示的通信系统包括服务器设备110以及用于与所述服务器设备通信连接的多个客户端设备120。
所述服务器设备110与所述客户端设备120能够进行数据交互,从而实现本实施例所示的数据翻译方法以及数据配置方法的方法。
以下结合图2所示对本实施例所示的客户端设备的具体结构进行说明,图3为本发明实施例所提供的客户端设备的一种实施例结构示意图。
所述客户端设备包括输入单元205、处理器单元203、输出单元201、通信单元207、存储单元204、射频电路208等组件。
这些组件通过一条或多条总线进行通信。本领域技术人员可以理解,图3中示出的客户端设备的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在本发明实施方式中,所述客户端设备可以是任何移动或便携式电子设备,包括但不限于智能手机、移动电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、媒体播放器、智能电视等。
所述客户端设备包括:
输出单元201,用于输出待显示的图像。
具体的,所述输出单元201包括但不限于显示屏3011和声音输出单元2012。
所述显示屏3011用于输出文字、图片和/或视频。所述显示屏3011可包括显示面板,例如采用液晶显示器(英文全称:Liquid Crystal Display,英文简称:LCD)、有机发光二极管(英文全称:Organic Light-Emitting Diode,英文简称:OLED)、场发射显示器(英文全称:field emission display,英文简称FED)等形式来配置的显示面板。或者所述显示屏3011可以包括反射式显示器,例如电泳式(electrophoretic)显示器,或利用光干涉调变技术(英文全称:Interferometric Modulation of Light)的显示器。
例如,当触摸屏检测到在其上的触摸或接近的手势操作后,传送给处理器单元203以确定触摸事件的类型,随后处理器单元203根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图1中,输入单元205与输出单元201是作为两个独立的部件来实现客户端设备的输入和输出功能,但是在某些实施例中,可以将触摸屏与显示面板集成一体而实现客户端设备的输入和输出功能。例如,所述显示屏3011可以显示各种图形化用户接口(英文全称:Graphical User Interface,英文简称GUI)以作为虚拟控制组件,包括但不限于窗口、卷动轴、图标及剪贴簿,以供用户通过触控方式进行操作。
在本发明具体实施方式中,所述显示屏3011包括滤波器及放大器,用来将处理器单元203所输出的视频滤波及放大。声音输出单元2012包括数字模拟转换器,用来将处理器单元203所输出的音频信号从数字格式转换为模拟格式。
处理器单元203,用于运行相应的代码,对接收信息进行处理,以生成并输出相应的界面。
具体的,所述处理器单元203为客户端设备的控制中心,利用各种接口和线路连接整个客户端设备的各个部分,通过运行或执行存储在存储单元内的软件程序和/或模块,以及调用存储在存储单元内的数据,以执行客户端设备的各种功能和/或处理数据。所述处理器单元203可以由集成电路(英文全称:Integrated Circuit,英文简称:IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。
举例来说,所述处理器单元203可以仅包括中央处理器(英文全称:CentralProcessing Unit,英文简称:CPU),也可以是图形处理器(英文全称:Graphics ProcessingUnit,英文简称:GPU),数字信号处理器(英文全称:Digital Signal Processor,英文简称:DSP)、及通信单元中的控制芯片(例如基带芯片)的组合。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
存储单元204,用于存储代码和数据,代码供处理器单元203运行。
具体的,存储单元204可用于存储软件程序以及模块,处理器单元203通过运行存储在存储单元204的软件程序以及模块,从而执行客户端设备的各种功能应用以及实现数据处理。存储单元204主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序,比如声音播放程序、图像播放程序等等;数据存储区可存储根据客户端设备的使用所创建的数据(比如音频数据、电话本等)等。
在本发明具体实施方式中,存储单元204可以包括易失性存储器,例如非挥发性动态随机存取内存(英文全称:Nonvolatile Random Access Memory,英文简称NVRAM)、相变化随机存取内存(英文全称:Phase Change RAM,英文简称PRAM)、磁阻式随机存取内存(英文全称:Magetoresistive RAM,英文简称MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(英文全称:Electrically ErasableProgrammable Read-Only Memory,英文简称EEPROM)、闪存器件,例如反或闪存(英文全称:NOR flash memory)或是反及闪存(英文全称:NAND flash memory)。
非易失存储器储存处理器单元203所执行的操作系统及应用程序。所述处理器单元203从所述非易失存储器加载运行程序与数据到内存并将数字内容储存于大量储存装置中。所述操作系统包括用于控制和管理常规系统任务,例如内存管理、存储设备控制、电源管理等,以及有助于各种软硬件之间通信的各种组件和/或驱动器。
在本发明实施方式中,所述操作系统可以是Google公司的Android系统、Apple公司开发的iOS系统或Microsoft公司开发的Windows操作系统等,或者是Vxworks这类的嵌入式操作系统。
所述应用程序包括安装在客户端设备上的任何应用,包括但不限于浏览器、电子邮件、即时消息服务、文字处理、键盘虚拟、窗口小部件(Widget)、加密、数字版权管理、语音识别、语音复制、定位(例如由全球定位系统提供的功能)、音乐播放等等。
输入单元205,用于实现用户与客户端设备的交互和/或信息输入到客户端设备中。
例如,所述输入单元205可以接收用户输入的数字或字符信息,以产生与用户设置或功能控制有关的信号输入。在本发明具体实施方式中,输入单元205可以是触摸屏,也可以是其他人机交互界面,例如实体输入键、麦克风等,还可是其他外部信息撷取装置,例如摄像头等。
本发明实施例所示的触摸屏,可收集用户在其上触摸或接近的操作动作。比如用户使用手指、触笔等任何适合的物体或附件在触摸屏上或接近触摸屏的位置的操作动作,并根据预先设定的程式驱动相应的连接装置。可选的,触摸屏可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸操作,并将检测到的触摸操作转换为电信号,以及将所述电信号传送给触摸控制器;触摸控制器从触摸检测装置上接收所述电信号,并将它转换成触点坐标,再送给所述处理器单元203。
所述触摸控制器还可以接收处理器单元203发来的命令并执行。此外,所述触摸屏可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏。
在本发明的其他实施方式中,所述输入单元205所采用的实体输入键可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。麦克风形式的输入单元205可以收集用户或环境输入的语音并将其转换成电信号形式的、处理器单元203可执行的命令。
在本发明的其他一些实施方式中,所述输入单元205还可以是各类传感器件,例如霍尔器件,用于侦测客户端设备的物理量,例如力、力矩、压力、应力、位置、位移、速度、加速度、角度、角速度、转数、转速以及工作状态发生变化的时间等,转变成电量来进行检测和控制。其他的一些传感器件还可以包括重力感应计、三轴加速计、陀螺仪、电子罗盘、环境光传感器、接近传感器、温度传感器、湿度传感器、压力传感器、心率传感器、指纹识别器等。
通信单元207,用于建立通信信道,使客户端设备通过所述通信信道以连接至远程服务器,并从所述远程服务器下媒体数据。所述通信单元207可以包括无线局域网(英文全称:Wireless Local Area Network,英文简称:wireless LAN)模块、蓝牙模块、基带模块等通信模块,以及所述通信模块对应的射频(英文全称:Radio Frequency,英文简称:RF)电路,用于进行无线局域网络通信、蓝牙通信、红外线通信及/或蜂窝式通信系统通信,例如宽带码分多重接入(英文全称:Wideband Code Division Multiple Access,英文简称:W-CDMA)及/或高速下行封包存取(英文全称:High Speed Downlink Packet Access,英文简称HSDPA)。所述通信模块用于控制客户端设备中的各组件的通信,并且可以支持直接内存存取。
在本发明的不同实施方式中,所述通信单元207中的各种通信模块一般以集成电路芯片(英文全称:Integrated Circuit Chip)的形式出现,并可进行选择性组合,而不必包括所有通信模块及对应的天线组。例如,所述通信单元207可以仅包括基带芯片、射频芯片以及相应的天线以在一个蜂窝通信系统中提供通信功能。经由所述通信单元207建立的无线通信连接,例如无线局域网接入或WCDMA接入,所述客户端设备可以连接至蜂窝网(英文全称:Cellular Network)或因特网。在本发明的一些可选实施方式中,所述通信单元207中的通信模块,例如基带模块可以集成到处理器单元203中,典型的如高通(Qualcomm)公司提供的APQ+MDM系列平台。
射频电路208,用于信息收发或通话过程中接收和发送信号。例如,将基站的下行信息接收后,给处理器单元203处理;另外,将设计上行的数据发送给基站。通常,所述射频电路208包括用于执行这些功能的公知电路,包括但不限于天线系统、射频收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码(Codec)芯片组、用户身份模块(SIM)卡、存储器等等。此外,射频电路208还可以通过无线通信与网络和其他设备通信。
所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:Global System of Mobile communication,英文简称:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,英文简称:GPRS)、码分多址(英文全称:Code Division Multiple Access,英文简称:CDMA)、宽带码分多址(英文全称:WidebandCode Division Multiple Access,英文简称:WCDMA)、高速上行行链路分组接入技术(英文全称:High Speed Uplink Packet Access,英文简称:HSUPA)、长期演进(英文全称:LongTerm Evolution,英文简称:LTE)、电子邮件、短消息服务(英文全称:Short MessagingService,英文简称:SMS)等。
电源209,用于给客户端设备的不同部件进行供电以维持其运行。作为一般性理解,所述电源209可以是内置的电池,例如常见的锂离子电池、镍氢电池等,也包括直接向客户端设备供电的外接电源,例如AC适配器等。在本发明的一些实施方式中,所述电源209还可以作更为广泛的定义,例如还可以包括电源管理系统、充电系统、电源故障检测电路、电源转换器或逆变器、电源状态指示器(如发光二极管),以及与客户端设备的电能生成、管理及分布相关联的其他任何组件。
以下结合图3所示对本实施例所示的服务器设备的具体结构进行说明:
图3是本发明实施例提供的一种服务器设备结构示意图,该服务器设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器设备300上执行存储介质330中的一系列指令操作。
服务器设备300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
基于本实施例所示的通信系统,以下结合图4所示对本实施例所示的数据翻译方法的具体流程进行详细说明:
步骤401、客户端设备接收安装包。
本实施例对发送所述安装包的具体设备不作限定,可选的,本实施例以所述安装包为svn(英文全称:Subversion,中文全称:开放源代码的版本控制系统)服务器发送给所述客户端设备为例进行示例性说明。
本实施例所示的svn服务器用于存储数据,从而使得本实施例所示的客户端设备的数据以及服务器设备的数据均可存储在svn服务器上。
以下首先对本实施例所示的所述安装包进行说明:
本实施例所示的安装包内包括有如图4所示的工程表。
所述工程表包括数据档配置501以及语言包502。
具体的,所述数据档配置501包括所述安装包所支持的各语种类别所对应的配置。
可选的,本实施例所示的各语种类别所对应的配置指语种类别对应的通过excel表格转换数来的数据信息,含有待翻译的字符串。
本实施例所示的所述数据档配置501还包括生成配置的工具等。
如图4所示,所述数据档配置501的存储目录为:
在存储目录\Tool\Tdr\ResConvert\Languages\CHT下存储有繁体CHT语言数据档;
在存储目录\Tool\Tdr\ResConvert\Languages\EN下存储有英语EN语言数据档;
在存储目录\Tool\Tdr\ResConvert\Languages\Elex下智明星通Elex语言数据档,其中,智明星通的需求是管理一份数据档,通过工具生成多份数据相同的配置。
需明确的是,本实施例所示的安装包内所包括的语言数据档在本实施例中仅仅为可选的示例,不作限定,例如,本实施例所示的安装包内还可包括日语语言数据档,韩语语言数据档等。
通过上述的语言数据档能够使得安装包适用于对应的语言环境。
本实施例以所述存储目录\Tool\Tdr\ResConvert\Languages\EN为例,对存储目录\Tool\Tdr\ResConvert\Languages\EN的下级存储目录进行说明。
存储目录\Tool\Tdr\ResConvert\Languages\EN的下级存储目录\Tool\Tdr\ResConvert\Languages\EN\Client下存储英语EN语言数据档中客户端配置生成工具。
具体的,所述下级存储目录\Tool\Tdr\ResConvert\Languages\EN\Client下存储有客户端设备配置中需要用到的翻译文件。
更具体的,所述翻译文件为aleadyTrans_Client.xlsx。
存储目录\Tool\Tdr\ResConvert\Languages\EN的下级存储目录\Tool\Tdr\ResConvert\Languages\EN\DataBin下存储有英语EN语言档中临时生成的中转配置。
存储目录\Tool\Tdr\ResConvert\Languages\EN的下级存储目录\Tool\Tdr\ResConvert\Languages\EN\Server_Public下存储英语EN语言档中服务器-公用配置生成工具。
具体的,下级存储目录\Tool\Tdr\ResConvert\Languages\EN\Server_Public下包含服务器设备配置中需要用到的翻译文件aleadyTrans_Client.xlsx。
存储目录\Tool\Tdr\ResConvert\Languages\EN的下级存储目录\Tool\Tdr\ResConvert\Languages\EN\Xls下生成配置需要用的数据档Excel,策划只需要管理这里的excel即可。
具体的,本实施例所示的所述下级存储目录\Tool\Tdr\ResConvert\Languages\EN\Xls下存储有待翻译的字符串。
如图4所示,所述语言包502是指客户端设备当前所支持的语种类别区别于其他语种类别所需要差异化的东西的集合。
具体的,本实施例所示的所述语言包502的存储目录为\Project\Assets\Resources\Language\下。
该目录下存储了所有地区所有语种的语言包。构建的时候将某语言包单独打成一个IFS(英文全称:Internet File System,中文全称:网络文件共享系统)包,登录之后下载该语言包供客户端设备使用。
具体的,语言包中的存储目录\Project\Assets\Resources\Language\CHT下存储有繁体CHT语言包;
语言包中的存储目录\Project\Assets\Resources\Language\EN下存储有英语EN语言包;
语言包中的存储目录\Project\Assets\Resources\Language\EN\Databin下存储有需要用到的数据档配置,其中包括Client、Public、Server的配置。
具体的,服务器设备的配置并不会打到IFS中,因为客户端设备不需要用,但在编辑器上服务器需要用这个外链。
语言包中的存储目录\Project\Assets\Resources\Language\EN\Prefab下存储有抽离出来美术字的prefab。
语言包中的存储目录\Project\Assets\Resources\Language\EN\Pic下存储有抽离出美术字的prefab引用的资源。
需明确的是,本实施例对所述数据档配置501以及语言包502存储目录的数目为可选的示例,不作限定。
还需明确的是,其他语种的下级存储目录的说明请详见英语语种的下级存储目录的说明,具体在本实施例中不做赘述。
步骤402、所述客户端设备获取存储在所述客户端设备上的字符串。
具体的,本实施例所示的字符串存储在存储目录\Tool\Tdr\ResConvert\Languages\EN\DataBin下。
步骤403、所述客户端设备通过哈希运算对所述字符串进行运算以生成哈希值。
如图6所示,图6所示的602所示包括有所述客户端设备所存储的多个字符串,可见,所述客户端设备所存储的字符串的长度较长。
本实施例的客户端设备对所述字符串进行哈希运算,从而使得所述客户端设备所存储的每个字符串均获取到对应的哈希值。
具体的,如图6所示的601所示包括与各所述字符串所对应的所述哈希值。可见,所述客户端设备所计算出的所述哈希值的长度较短。
步骤404、所述客户端设备确定目标语种类别。
所述目标语种类别为客户端设备当前所支持的语种类别。
具体的,本实施例所示的客户端设备可向用户推送选择列表,所述选择列表上设置有各语种类别选项,所述选择列表可接收用户输入的选定操作,例如,用户可选定英语语种,则所述客户端设备即可确定所述目标语种类别为英语语种。
当然,本实施例对确定所述目标语种类别的方式的说明为可选的示例,不作限定,例如,在具体应用中,所述客户端设备可通过用户输入的语音等确定所述目标语种类别。
本实施例以所述客户端设备确定所述客户端设备当前所支持的所述目标语种列表为英文进行示例性说明。
步骤405、所述客户端设备确定所述翻译文件。
其中,所述翻译文件的语种类别与所述目标语种类别相同;
具体的,本实施例所示的所述客户端设备在存储目录\Tool\Tdr\ResConvert\Languages\EN\Client下的英语EN语言档中确定所述翻译文件aleadyTrans_Client.xlsx。
步骤406、所述客户端设备确定所述字符串与所述翻译文件的对应关系。
具体的,本实施例所示的所述翻译文件为已对与所述翻译文件对应的所述字符串进行了翻译的文件。
步骤407、所述客户端设备创建目标列表。
具体的,本实施例所示的所述客户端设备根据步骤403中所述客户端设备所确定的所述字符串与所述哈希值的对应关系,以及在步骤406中所述客户端设备所确定的所述字符串与所述翻译文件的对应关系创建所述目标列表。
更具体的,本实施例所示的所述目标列表包括所述哈希值以及所述翻译文件的对应关系。
例如,以图7所示为例,且本示例中,所述目标语种类别为中文,则所述目标列表建立为位于区域701内的哈希值与位于区域702内的中文翻译文件的对应关系。
其中,在所述目标列表中,与所述哈希值对应的所述翻译文件为已对与所述哈希值对应的字符串进行了翻译的文件。
更具体的,本实施例所示的客户端设备在数据档配置501的存储目录\Tool\Tdr\ResConvert\Languages\EN\DataBin下执行本实施例所示的步骤407。
本实施例所示的客户端设备所生成的所述目标列表可存储在所述存储目录\Tool\Tdr\ResConvert\Languages\EN\DataBin下。
步骤408、所述客户端设备获取目标待翻译字符串。
其中,所述目标待翻译字符串为当前需要进行翻译的字符串。
本实施例中,所述客户端设备可在确定出所述目标语种类别后,即可获取与所述目标语种类别对应的所述数据档配置501中的在存储目录\Tool\Tdr\ResConvert\Languages\EN\Xls下存储有英语EN语言数据档。
所述客户端设备在所述英语EN语言数据档中获取所述目标待翻译字符串。
本实施例所示的所述翻译文件为已对所述目标待翻译字符串进行了翻译的文件。
例如,本实施例以所述目标语种类别为英语为例,则所述翻译文件用于将所述目标待翻译字符串翻译为对应的英文。
步骤409、所述客户端设备获取目标哈希值。
具体的,所述客户端设备通过哈希算法对所述目标待翻译字符串进行运算以生成目标哈希值。
本实施例中,所述客户端设备在获取到所述目标待翻译字符串后,可通过哈希算法对所述待翻译字符串进行运算以生成所述目标哈希值。
步骤410、所述客户端设备创建扫描列表。
具体的,本实施例所示的所述扫描列表包括至少一个所述目标哈希值。
本实施例所示的所述客户端设备通过所创建的所述扫描列表存储与所有所述目标待翻译字符串对应的目标哈希值。
步骤411、所述客户端设备获取目标翻译文件。
具体的,本实施例所示的所述目标翻译文件为已对所述目标待翻译字符串进行了翻译的翻译文件。
更具体的,本实施例所示的所述客户端设备通过所述扫描列表扫描所述目标列表以获取与所述目标哈希值对应的所述目标翻译文件。
如图8所示,本实施例所示的所述客户端设备可在存储目录\Tool\Tdr\ResConvert\Languages\EN\Xls中获取所述目标待翻译字符串,在将所述目标待翻译字符串翻译为所述目标翻译文件后,即可将所述目标翻译文件存储在语言包的存储目录\Project\Assets\Resources\Language\EN\Databin的下级目录中。
需明确的是,本实施例对存储目录的说明为可选的示例,不作限定。
步骤412、获取预设体Prefab。
本实施例所示的所述预设体Prefab可以理解为一个资源,可应用在一个项目中的不同场景中。当拖动预设体Prefab到场景中就会创建一个实例。
该实例与其原始预设体Prefab的有关联的,对预设体Prefab进行更改,实例会同步修改。
预设体Prefab可以提升资源的利用率和开发的效率。
步骤413、对所述预设体Prefab进行拆分以获取多个第一Prefab。
其中,所述多个第一Prefab中的任一第一Prefab为包括有背景图片的Prefab和/或用于引用背景图片的Prefab,且不同的语种类别对应不同的背景图片。
步骤414、输出第一目标Prefab。
所述第一目标Prefab为与所述目标语种类别对应的Prefab。
步骤415、对所述预设体Prefab进行拆分以获取多个第二Prefab.
其中,所述多个第二Prefab中的任一第二Prefab为包括有文字图片的Prefab和/或用于引用文字图片的Prefab,且不同的语种类别对应不同的文字图片。
步骤416、输出所述第二目标Prefab。
所述第二目标Prefab为与所述目标语种类别对应的Prefab。
为更好的理解本发明实施例,以下结合具体应用场景对本实施例所示的方法进行详细说明:
首先结合图9所示对客户端设备执行字符串翻译的具体过程进行说明:
本应用场景,以所述客户端设备的当前所支持的语种类别为英文为例进行示例性说明:
在客户端设备执行所述数据翻译的过程中,所述客户端设备需要策划维系的文档为:
excel配置文件,本应用场景所示的所述excel配置文件存储在上述实施例所示的所述存储目录\Tool\Tdr\ResConvert\Languages\EN\Xls下。
本实施例所示的所述excel配置文件包括上述实施例所示的字符串。
客户端扫描名单ExcelCheckList_Client,本实施例所示的所述客户端扫描名单包括所有当前需要进行翻译的目标待翻译字符串;
客户端配置翻译文件alreadyTrans_Client,本实施例所示的所述客户端配置翻译文件为已对字符串进行了翻译的文件。
步骤1、客户端设备更新全部excel配置文件。
从而使得本实施例所示的客户端设备在对应存储目录下所存储的所述excel配置文件为最新的配置文件。
步骤2、客户端设备提取excel配置文件。
步骤3、客户端设备将已提取的所述excel配置文件转换为二进制文件。
具体的,本实施例中通过将所述excel配置文件转换为所述二进制文件,从而有效的节省了存储空间,有效的提升了翻译效率。
步骤4、将二进制文件拷贝进工程目录下对应的语言包中,根据扫描名单ExcelCheckList_Client扫描excel配置文件,将新增的需翻译内容写进翻译文件alreadyTrans_Client中;并根据已翻译的内容生成工程目录下的翻译目标列表languageMap。
本实施例所示的将更新后且转换为二进制文件的所述excel配置文件拷贝进工程目录下对应的语言包中。
本实施例所示的客户端设备能够根据扫描名单ExcelCheckList_Client扫描excel配置文件,从而获取到所述扫描名单ExcelCheckList_Client中已翻译的内容和需翻译内容,其中,已翻译的内容指已被翻译过的字符串,所述需翻译的内容即指当前需要进行翻译的字符串。
具体的,所述客户端设备将需翻译的内容写进翻译文件alreadyTrans_Client中;
更具体的,所述客户端设备将已被翻译过的字符串生成工程目录下的翻译目标列表languageMap。
其中,对字符串进行翻译的方法的具体说明,请详见上述实施例所示,具体在本实施例中不作赘述。
所述目标列表languageMap的具体生成方式请详见上述实施例所示,具体在本实施例中不作赘述。
步骤5、检查翻译文件底端是否有新增的需翻译内容,若是,则执行步骤6,若否,则执行步骤7。
本实施例中,若检测出有新增的需要进行翻译的字符串,则执行步骤6,则检测出没有新增的需要进行翻译的字符串,即所述扫描名单扫描内的字符串均被翻译过,则执行步骤7。
步骤6、完成新的翻译内容。
即本实施例所示将新增的需要进行翻译的字符串进行翻译,翻译的具体过程请详见上述实施例所示,具体在本实施例中不作赘述。
步骤7、将新增的翻译补充进目标列表中。
步骤8、将工程目录下对应语言包的配置以及配置目录下对应语言包的配置提交。
本实施例所示的工程目录的具体说明请详见上述实施例所示,具体在本实施例中不作赘述。
具体的,本实施例所示可将所述工程目录提交至svn服务器,所述svn服务器的具体说明请详见上述实施例所示,具体在本实施例中不作赘述。
步骤9、登录编辑器验证。
本实施例所示可登陆编辑器检测通过本实施例所示的翻译方法是否已将字符串翻译为语种类别为所述客户端设备当前所支持的目标语种类别的翻译文件。
以下结合图10所示对客户端设备执行预设体Prefab拆分的应用场景进行说明:
本应用场景以游戏为例,游戏中用到资源最后都是通过预设体prefab展示出来,预设体prefab中可以引用图片、文字、音频等各种形式的资源。
本实施例所示通过对所述预设体Prefab进行拆分,从而实现预设体Prefab能够根据语言进行自适应的调整。
在具体应用中,不是所有的预设体prefab都需要根据语言自适应调整,只有涉及美术字图片、位置、大小等需要,也并非是整个预设体prefab都需要自适应加载,而是预设体prefab的一小部分或一小模块需要自适应调整,这样就精准的将所有需要自适应语言调整的图片、美术字、位置的地方独立成预设体prefab,需要用到的时候自适应语言加载,大大减小了语言包的包量。
如图10所示,首先获取原始母体A.prefab,本实施例所示的所述原始母体A.prefab拆分前存储于工程目录下的存储目录Resources/UGUI下的原始prefab。
所述工程目录的具体说明请详见上述实施例所示,具体在本实施例中不作赘述。
本实施例对所述原始母体A.prefab的存储位置的说明为可选的示例,不做限定,可见,本实施例所示的客户端设备在对所述原始母体A.prefab进行拆分的过程中,无需对原始母体A.prefab的存储位置进行改变。
本实施例所示的客户端设备能够对所述原始母体A.prefab进行拆分,且拆分后的母体A.prefab为存储于Resources/UGUI的prefab。
具体的,本实施例根据所述客户端设备当前所支持的所述目标语种类别进行原始母体A.prefab的拆分。
更具体的,本实施例所示的拆分后母体A.prefab具体包括:
A1.prefab:拆分后仅含有背景图片的prefab,存储于各个语言包相应目录。
其中,本实施例所示的拆分过程中,所述客户端设备可预选检测不同语言类别是否使用不同的的背景图片,若是,即不同的语种类别使用不同的背景图片,则所述客户端设备可将所述原始母体A.prefab拆分出拆分后仅含有背景图片的prefab,若否,即不同的语种类别使用相同的背景图片,则所述客户端设备无需对所述原始母体A.prefab的背景图片进行拆分。
A2.prefab:拆分后仅含有文字图片的prefab,存储于各个语言包相应目录;
P1.prefab:A1.prefab需要引用的背景图片,存储于各个语言包相应目录;
p2.prefab:A2.prefab需要引用的文字图片,存储于各个语言包相应目录。
本实施例中,拆分出来的A1.prefab(背景图片prefab)、A2.prefab(字图片prefab)、p1.png(背景图片)、p2.png(字图片)必须在Language下所有语言都一一对应一份,但不能多存储一份在Resources/UGUI下,因为我们只会读取语言包下的,没必要存储于resources/UGUI。
本实施例中,所述原始母体A.prefab中带有美术字的图片都需要拆分。
所有拆分出来的prefab所引用的资源都必须存储于Language对应的语言下。
需要注意的是:对应语言包下的prefab只能引用本语言下的资源,不能错乱引用,即不能出现语言包与prefab的错误引用,即英语语种的语言包对应英语语种的prefab。
如图10所示,若所述客户端设备检测出所述客户端设备当前所支持的目标语种类别为英语,则所述客户端设备即可将所拆分的所述A1.prefab、A2.prefab、P1.prefab以及p2.prefab存储于英文语言包的存储目录Language/EN/UGUI中。
在本实施例中,如1001所示,若客户端设备进行语种切换,且客户端设备的新增语言来不及翻译,想要用默认语言。若只要将默认语言,例如所述默认语言为英文EN,则可将英文语言包中存储有拆分后的预设体prefab的存储目录UGUI拷贝到新语言的存储目录UGUI中,进一步的,所述客户端设备需要指定新语言与位于新语言的存储目录UGUI中的拆分后的预设体prefab的对应关系。
可选的,若拆分后的A.prefab不涉及拆分A1.prefab、A2.prefab,则可不将所述母体A.prefab拆分出所述A1.prefab、A2.prefab即可。
可选的,若拆分A.prefab的过程中,需要删除已拆分过的A1.prefab和/或A2.prefab,则需要在所有对应语言目录下删除已拆分过的对应A1.prefab和/或A2.prefab,并删除相关引用的图片资源p1.png和/或p2.png。
需要注意的是:删除图片资源的时候,一定要测试下该图片资源是不是仅仅在被删除的prefab下引用了,如果有多处引用则不能删除。
可选的,拆分A.prefab需要增加拆分B1.prefab、B2.prefab,也必须遵守上述对拆分A.prefab的说明,需要注意的是,拆分出来的B1.prefab、B2.prefab及引用资源必须在所有Language下都要对应一份。
可选的,如果某语言包内需要修改拆分出来的A1.prefab(背景图片prefab)、A2.prefab(字图片prefab)、p1.png(背景图片)、p2.png(字图片),只需要在相应语言包内调整这些资源即可。
如果某语言包需要单独修改原始母体A.prefab的母体信息,例如位置信息、大小、动画等,则该语言包必须单独拉支线后在支线上修改,不得在主线上直接修改影响其他语言包的正常功能,需要注意的是,运营商负责在自己拉取的支线上修改,不得在主线修改。
以下进一步结合游戏的应用场景对预设体prefab的拆分进行举例说明:
首先如图11所示,在游戏的场景中找到母体prefab,在本应用场景中,需要在母体prefab上确定需要被拆分的图片的位置1101。
如图12所示,将需要动态更新的图片信息直接抽离出来,即将需要被拆分的图片的组件CanvasRenderer和组件Image删除只剩组件RectTransform,将组件RectTransform需要保存以前的值。
抽离出来的图片资源上应该有组件RectTransform,组件CanvasRenderer,以及组件Image三个组件,组件上的参数和该图片资源在母体A.prefab上的值保持一致。
本实施例所示的三个组件都是Prefab的三个属性,保存了一些信息。
例如,组件Image保存了图片信息,如引用的图片、尺寸、颜色等信息;
组件RectTransform保存了该prefab上的位置信息,如世界坐标位置、相对位置、锚点细心;
组件CanvasRenderer保存了渲染信息,如渲染的顺序、区域等。
prefab中挂载了图片,图片中可能有文字信息,这里的翻译是指不同
语言用不同的图片,也就相当于用不同的prefab(A1、A2)。
如图13所示,将抽离出来的图片资源托放在language目录下新建的一个A1.prefab上,即完成了从母体A.prefab中抽离出A1.prefab的过程。
可选的,抽离出来的A1.prefab命名规范:母体prefab名自定义名_Dynamic.prefab。
如图14所示,将抽离出来的A1.prefab所引用的资源p1.png(绝大部分是图片资源),都应该存放于…/Resources/Languages/**/Pic目录下。
本实施例所示的p1的命名没有统一标准,可读明了即可。
对p2的应用场景请详见p1所示的应用场景,具体在本实施例中不做赘述。
可选的,如图15所示,A1.prefab引用到的图片资源p1.png将不打标签tag。
本实施例中,需要在相应语言包的存储目录….Resources\Languages\**\Databin\ConvertPicsPrefabNameList.txt添加拆分信息。
只有添加了拆分信息程序才能动态加载到,否则程序运行会报错。
在应用场景中添加拆分信息的示例请详见图16所示,拆分信息中包含三部分,分别为母体A.prefab路径1601、抽离出A1.prefab路径1602、动态挂载点在母体A.prefab的节点信息1603。
其中,对所述动态挂载点的节点信息的说明请详见图17所示的1701,在图17所示的应用场景中,以所述动态挂载点的节点信息为:BtnCon/LadderBtn/Image为例进行说明。
以下对本实施例所示的客户端设备执行所述数据翻译方法的有益效果进行详细说明:
本实施例所示的方法可支持一份数据档一份翻译,也可以支持一份数据档N份配置。对不同的语言的安装包,所包含的字符串是相同的,客户端设备可根据当前所支持的目标语种类别将安装包所包括的字符串翻译为对应的语种,可见,能够支持不同语种不同数据档内容及翻译,且本实施例能够对预设体Prefab进行拆分,从而使得客户端设备能够实现根据不同的语种类别支持不同的预设体Prefab,本实施例根据语种类别进行推送的不仅仅局限于预设体Prefab,还可根据不同的语种类别推送图片、音频、视频等,具体在本实施例中不做限定。
在具体应用中,所述客户端设备可向用户推送语种选择列表,用户可通过所述语种选择列表选择所需要的语种类别,则客户端设备即可根据用户所选定的语种类别实现对安装包所包含的数据档的翻译,即一键即可将所有数据档按照指定语言翻译。
将所有翻译相关的数据档、资源打包成一个独立的语言包,切换语言的时候只需要更新并使用不同语言包即可,不用同时将所有语言的数据档和资源都打入的安装包内,减小安装包包量。
可见,本实施例所示的方法不同语种有独立的语言包,安装包内只有一个默认的语言包,切换不同语言时候更新使用不同的语言包,减小安装包包量。语言包内可根据需要自适应包含数据档信息、图片、prefab、音频等。数据档和翻译相互独立,可自由组合数据档和翻译生成已经翻译的数据档。可见,解决了在控制安装包包量的同时,实现了根据语言自适应翻译的功能。
以下结合图18所示对本实施例所执行的数据翻译方法的具体过程进行详细说明:
如图18所示,所述数据翻译方法具体包括:
步骤1801、客户端设备确定目标语种类别。
所述目标语种类别为所述客户端设备当前所支持的语种类别。
本实施例对所述客户端设备确定所述目标语种类别的具体方式不做限定,例如,可为所述客户端设备根据用户的输入确定所述目标语种类别等。
步骤1802、所述客户端设备生成指示信息。
其中,所述客户端所生成的所述指示信息用于指示所述目标语种类别。
步骤1803、所述客户端设备将所述指示信息发送给服务器设备。
步骤1804、所述服务器设备接收所述指示信息。
可见,本实施例所述客户端设备能够通过所述指示信息向所述服务器设备指示所述客户端设备当前所支持的所述目标语种类别。
步骤1805、所述服务器设备根据所述指示信息获取存储在所述客户端设备上的第一目标翻译文件。
具体的,所述第一目标翻译文件为已对已存储的第一待翻译字符串进行了翻译的翻译文件。
更具体的,所述服务器设备能够获取所述服务器设备上已存储的,且已被所述客户端设备进行翻译的所述第一待翻译字符串。
所述客户端设备对字符串进行翻译的具体过程请详见上述实施例所示,具体在本实施例中不做赘述。
步骤1806、所述服务器设备将已存储的所述第一待翻译字符串替换为所述第一目标翻译文件。
可选的,本实施例中,所述服务器设备也设置有工程目录,所述工程目录的具体说明请详见上述实施例所示,具体在本实施例中不做赘述。
本实施例中,所述服务器设备的存储目录\Tool\Tdr\ResConvert\Languages\**\DataBin\Server\下存储有所述第一待翻译字符串**.bytes,在本步骤中,所述服务器设备能够获取到所述第一目标翻译文件可为已经翻译的**.bytes,在本实施例所示的服务器设备即可将已经翻译的**.bytes存储于存储目录\Project\Assets\Resources\Language\**\Databin\Server\中。
可选的,将一份配置档下未翻译的第一待翻译字符串**.bytes通过工具本实施例所示的方法生成一份已翻译第一目标翻译文件**.bytes存储于\Project\Assets\Resources\Language\**\Databin\Server\对应语言包内;
还可选的,将一份配置档下未翻译的第一待翻译字符串**.bytes通过本实施例所示的方法生成N份已翻译的第一目标翻译文件**.bytes存储于多个\Project\Assets\Resources\Language\**\Databin\Server\语言包内。
步骤1807、所述服务器设备获取第二待翻译字符串。
所述第二待翻译字符串为未被所述客户端设备翻译的字符串。
步骤1808、对所述第二待翻译字符串进行翻译以生成第二目标翻译文件。
所述第二目标翻译文件为已对所述第二待翻译字符串进行了翻译的翻译文件。
本实施例可为所述服务器设备对所述第二待翻译字符串进行翻译以生成所述第二目标翻译文件,或,所述服务器将所述第二待翻译字符串向用户推送,以使所述服务器设备接收用户输入的能够对所述第二待翻译字符串进行翻译的所述第二目标翻译文件。
以下结合图19所示的具体应用场景对服务器设备是如何实现数据翻译的进行详细说明:
在本应用场景中,以所述服务器设备通过所述客户端设备所发送的指示信息确定所述客户端当前所支持的语种类别为英文为例进行说明。
本应用场景,所述服务器设备在执行所述数据翻译的过程中,所述服务器设备需要策划维系的文档为:
excel配置文件,本应用场景中因所述服务器设备确定出所述客户端设备当前所支持的语种类别为英文,则所述服务器设备可获取与英文对应的excel配置文件。
具体的,excel配置文件存储在上述实施例所示的所述存储目录\Tool\Tdr\ResConvert\Languages\EN\Xls下。
本实施例所示的所述excel配置文件包括上述实施例所示的字符串。
服务器扫描名单ExcelCheckList_Server,本实施例所示的所述服务器扫描名单包括客户端设备已翻译的字符串;
服务器配置翻译文件alreadyTrans_Server,本实施例所示的所述服务器配置翻译文件用于对字符串进行翻译。
服务器配置待翻译列表BeTrans,所述服务器配置待翻译列表BeTrans包括所述客户端设备尚未翻译的字符串。
步骤1、服务器设备更新全部excel配置文件。
从而使得本实施例所示的服务器设备在对应存储目录下所存储的所述excel配置文件为最新的配置文件。
步骤2、所述服务器设备提取excel配置文件。
步骤3、根据扫描名单(ExcelCheckList_Server)将已翻译的内容写进excel配置文件中;将尚未翻译的内容写进待翻译列表BeTrans中。
本实施例中,所述服务器设备能够根据所述扫描名单确定已被所述客户端设备翻译的字符串,所述客户端设备对字符串进行翻译的具体流程请详见上述实施例所示,具体在本实施例中不作赘述。
所述服务器设备能够将所述客户端设备已翻译的字符串写进excel配置文件中,且所述服务器设备能够将所述客户端设备尚未翻译的内容写入待翻译列表BeTrans中。
步骤4、将BeTrans中的内容补充进翻译文件(languageTrans_server)中并翻译。
步骤5、将新增的翻译内容替换回excel配置文件中。
具体替换过程请详见上述实施例所示,具体在本实施例中不作赘述。
步骤6、所述服务器设备将excel配置文件转换为二进制文件。
本实施例中,为节省所述服务器设备的存储空间,则所述服务器设备能够将所述excel配置文件转换为二进制文件,从而提升数据翻译的效率。
步骤7、将二进制文件拷贝进工程目录下对应的语言包中。
本实施例所示的工程目录的具体说明请详见上述实施例所示,具体在本实施例中不作赘述。
步骤8、将工程目录下对应语言包的配置以及配置目录下对应语言包的配置提交。
本实施例所示可将所述语言包提交至svn服务器,所述svn服务器的具体说明请详见上述实施例所示,具体在本实施例中不作赘述。
步骤9、刷新服务器并登录编辑器验证。
本实施例所示可登陆编辑器检测通过本实施例所示的翻译方法是否已将字符串进行翻译。
采用本实施例所示的数据翻译方法,从而使得服务器设备支持多种语言同服,以游戏场景为例,玩家可以选择适合自己的语言登录,后续该玩家相关的功能逻辑完全按该玩家自身语言处理,即所述服务器设备在确定出所述客户端设备当前所支持的语种类别后,所述服务器设备后续再向所述客户端设备发送信息时,所述服务器设备所发送的信息的语种类别与所述客户端设备当前所支持的语种类别相同,从而实现语种自适应的调节。
本申请研发人员在具体应用本申请所示的服务器对单语言配置的检测过程中发现,单语言配置刷新需要2s,而服务器需要支持达10种语言同服,即刷配置过程会中断服务长达20s,以下结合图20所示对本实施例所提供的服务器数据配置方法进行说明:
步骤2001、服务端设备配置第二配置对象。
步骤2002、所述服务端设备将所述第二配置对象设置为阻塞状态。
本实施例中,在初始状态下,所述服务器设备将所述第二配置对象设置为阻塞状态。
步骤2003、服务端设备接收指示信息。
所述指示信息用于指示所述服务端设备进行数据刷新。
步骤2004、所述服务端设备根据所述指示信息确定第一配置对象。
本实施例通过所述第一配置对象实现所述服务端设备与客户端设备进行数据通信。例如,所述服务器设备将所生成的信息发送给客户端设备,或所述服务器设备接收所述客户端设备发送的信息等。
步骤2005、所述服务端设备唤醒所述第二配置对象。
具体的,本实施例若所述服务端设备接收到所述指示信息,则以使被唤醒的所述第二配置对象更新目标流程。
本实施例所示的目标流程的具体说明请详见图18至图19所示的服务器设备执行的具体流程,具体在本实施例中不作赘述。
步骤2006、所述服务端设备已配置的所述第二配置对象生成结果信息。
所述结果信息用于指示所述第二配置对象更新所述目标流程完成。
步骤2007、所述服务端设备根据所述结果信息确定所述第二配置对象更新所述目标流程完成。
步骤2008、所述服务器设备将所述第一配置对象和所述第二配置对象进行互换。
步骤2009、所述服务端设备已配置的所述第二配置对象生成目标日志。
本实施例中,若所述第二配置对象更新所述目标流程失败,则所述服务端设备已配置的所述第二配置对象生成目标日志,所述目标日志用于指示所述第二配置对象更新所述目标流程失败的原因。
步骤2010、所述服务端设备根据所述目标日志确定所述第二配置对象更新所述目标流程失败的原因。
采用本实施例所示的方法,在服务器设备执行配置的过程中,所述服务器设备会配置有第一配置对象和第二配置对象,在配置过程中,所述服务器设备通过所述第一配置实现与客户端设备的正常的数据通信,而所述第二配置对象实现所述服务器设备对所述目标流程的配置,在所述服务器设备检测到所述第二配置对象配置完成时,则所述服务器设备可实现所述第一配置对象和所述第二配置对象的互换,从而使得服务器将配置刷新相关逻辑独立成线程,完美解决配置刷新时服务会长时间中断的问题。
以下结合具体应用场景对本实施例所示的服务器设备实现配置方法进行说明:
首先如图21所示,服务器设备配置按不同语言分不同目录,所有的配置类继承自公共配置加载接口类CConfLoadInterface,该类有三个虚拟接口:LoadMx用于主进程加载配置接口;LoadEx用于配置加载线程加载配置接口;Instance用于创建2*languagenum个实例或者返回对应于语言配置的实例。CConfMgr同样有三个接口,分别用于循环调用CConfLoadInterface中的对应接口。
其中所述主进程即为图20所示的第一配置对象,所述加载线程即为图20所示的第二配置对象。
基于图21所示的配置接口,结合图22和图23所示对配置过程进行说明:
步骤1、主进程调用CConfMgr的LoadMx加载配置到TagIndex(初始为0)的对象中,初始化配置加载线程;
步骤2、配置加载线程自身初始化,设置为阻塞状态。
步骤3、主进程在接收到配置刷新的信号时,这是配置加载标记。主进程更新Update时检查到配置加载标记被置位,唤醒配置加载线程,设置配置加载线程正在加载。每次Update检查加载线程是否加载完成。
步骤4、配置加载线程调用CConfMgr的LoadEx加载线程到1-TagIndex中,设置加载结果,并设置加载线程状态为加载完成。
步骤5、主进程检查到加载线程加载完成后,检查加载结果,如果加载成功,则设置TagIndex=1-TagIndex来完成配置的交换。
其中,TagIndex为主进程的标记位。
本实施例所示服务器设备每次配置刷新都只需要通过设置TagIndex=1-TagIndex来达到主进程配置实例和配置加载线程配置实例互换的过程。这样就完美解决了N种语言同服刷新服务会长时间中断的问题。
以下结合图24所示对本实施例所提供的客户端设备的具体结构进行说明:
所述客户端设备包括:
第五获取单元2401,用于获取所述字符串;
第一生成单元2402,用于通过哈希算法对所述字符串进行运算以生成所述哈希值,以使所述哈希值与所述字符串对应。
第一确定单元2403,用于确定目标语种类别,所述目标语种类别为客户端设备当前所支持的语种类别;
第二确定单元2404,用于确定所述翻译文件,所述翻译文件的语种类别与所述目标语种类别相同;
第一创建单元2405,用于创建所述目标列表,所述目标列表包括所述哈希值与所述翻译文件的对应关系。
第一获取单元2406,用于获取目标列表,所述目标列表包括不同的翻译文件与不同的哈希值的对应关系;
第二获取单元2407,用于获取目标待翻译字符串,所述目标待翻译字符串为当前需要进行翻译的字符串;
第二生成单元2408,用于通过哈希算法对所述目标待翻译字符串进行运算以生成与所述目标待翻译字符对应的所述目标哈希值。
第三获取单元2409,用于获取目标哈希值,所述目标哈希值为与所述目标待翻译字符串对应的哈希值;
第二创建单元2410,用于创建扫描列表,所述扫描列表包括至少一个所述目标哈希值;
第四获取单元2411,用于根据所述目标列表获取与所述目标哈希值对应的目标翻译文件。
所述第四获取单元2411还用于,通过所述扫描列表扫描所述目标列表以获取与所述目标哈希值对应的所述目标翻译文件。
第三确定单元2412,用于确定目标语种类别,所述目标语种类别为客户端设备当前所支持的语种类别;
第六获取单元2413,用于获取预设体Prefab;
第一拆分单元2414,用于对所述预设体Prefab进行拆分以获取多个第一Prefab,所述多个第一Prefab中的任一第一Prefab为包括有背景图片的Prefab和/或用于引用背景图片的Prefab,且不同的语种类别对应不同的背景图片;
第一输出单元2415,用于输出第一目标Prefab,所述第一目标Prefab为与所述目标语种类别对应的Prefab。
第二拆分单元2416,用于对所述预设体Prefab进行拆分以获取多个第二Prefab,所述多个第二Prefab中的任一第二Prefab为包括有文字图片的Prefab和/或用于引用文字图片的Prefab,且不同的语种类别对应不同的文字图片;
第二输出单元2417,用于输出所述第二目标Prefab,所述第二目标Prefab为与所述目标语种类别对应的Prefab。
本实施例所提供的客户端设备执行数据翻译的具体过程请详见图4所示,具体在本实施例中不作赘述。
以下结合图25所示对本实施例所提供的服务器设备的具体结构进行详细说明:
所述服务器设备包括:
第一获取单元2501,用于获取客户端设备发送的指示信息,所述指示信息用于指示目标语种类别,所述目标语种类别为所述客户端设备当前所支持的语种类别;
第二获取单元2502,用于根据所述指示信息获取存储在所述客户端设备上的第一目标翻译文件,所述第一目标翻译文件为已对已存储的第一待翻译字符串进行了翻译的翻译文件;
替换单元2503,用于将已存储的所述第一待翻译字符串替换为所述第一目标翻译文件。
第三获取单元2504,用于获取第二待翻译字符串,所述第二待翻译字符串为未被所述客户端设备翻译的字符串;
翻译单元2505,用于对所述第二待翻译字符串进行翻译以生成第二目标翻译文件,所述第二目标翻译文件为用于对所述第二待翻译字符串进行翻译的翻译文件。
本实施例所示的服务器设备执行数据翻译的具体过程请详见图18所示,具体在本实施例中不再赘述。
以下结合图26所示对本实施例所示的能够实现单独配置的服务器设备的具体结构进行详细说明:
所述服务器设备包括:
配置单元2601,用于配置所述第二配置对象;
设置单元2602,用于将所述第二配置对象设置为阻塞状态;
接收单元2603,用于接收指示信息,所述指示信息用于指示所述服务端设备进行数据刷新;
第一确定单元2604,用于根据所述指示信息确定第一配置对象,以使所述服务端设备根据所述第一配置对象与客户端设备进行数据通信;
唤醒单元2605,用于若接收到所述指示信息,则所述服务端设备唤醒所述第二配置对象,以使被唤醒的所述第二配置对象更新所述目标流程。
第二确定单元2606,用于根据所述指示信息确定第二配置对象,所述第二配置对象用于更新目标流程,所述目标流程为图18所示的的数据翻译方法;
第三确定单元2607,用于若确定所述第二配置对象更新所述目标流程完成,则所述服务端设备将所述第一配置对象和所述第二配置对象进行互换。
具体的,所述第三确定单元2607包括:
生成模块26071,用于生成结果信息,所述结果信息用于指示所述第二配置对象更新所述目标流程完成;
确定模块26072,用于确定所述第二配置对象更新所述目标流程完成。
生成单元2608,用于生成目标日志,所述目标日志用于指示所述第二配置对象更新所述目标流程失败的原因;
第四确定单元2609,用于根据所述目标日志确定所述第二配置对象更新所述目标流程失败的原因。
本实施例所示的服务器设备在进行数据配置的具体过程,请详见图20所示,具体在本实施例中不作赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据翻译方法,其特征在于,包括:
获取目标列表,所述目标列表包括不同的翻译文件与不同的哈希值的对应关系;
获取目标待翻译字符串,所述目标待翻译字符串为当前需要进行翻译的字符串;
获取目标哈希值,所述目标哈希值为与所述目标待翻译字符串对应的哈希值;
根据所述目标列表获取与所述目标哈希值对应的目标翻译文件。
2.根据权利要求1所述的方法,其特征在于,所述获取目标列表之前,所述方法还包括:
获取所述字符串;
通过哈希算法对所述字符串进行运算以生成所述哈希值,以使所述哈希值与所述字符串对应。
3.根据权利要求2所述的方法,其特征在于,所述获取目标列表之前,所述方法还包括:
确定目标语种类别,所述目标语种类别为客户端设备当前所支持的语种类别;
确定所述翻译文件,所述翻译文件的语种类别与所述目标语种类别相同;
创建所述目标列表,所述目标列表包括所述哈希值与所述翻译文件的对应关系。
4.根据权利要求1所述的方法,其特征在于,所述获取目标哈希值包括:
通过哈希算法对所述目标待翻译字符串进行运算以生成与所述目标待翻译字符对应的所述目标哈希值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
创建扫描列表,所述扫描列表包括至少一个所述目标哈希值;
所述根据所述目标列表获取与所述目标哈希值对应的目标翻译文件包括:
通过所述扫描列表扫描所述目标列表以获取与所述目标哈希值对应的所述目标翻译文件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定目标语种类别,所述目标语种类别为客户端设备当前所支持的语种类别;
获取预设体Prefab;
对所述预设体Prefab进行拆分以获取多个第一Prefab,所述多个第一Prefab中的任一第一Prefab包括有背景图片的Prefab和/或用于引用背景图片的Prefab,且不同的语种类别对应不同的背景图片;
输出第一目标Prefab,所述第一目标Prefab为与所述目标语种类别对应的Prefab。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定目标语种类别,所述目标语种类别为客户端设备当前所支持的语种类别;
获取预设体Prefab;
对所述预设体Prefab进行拆分以获取多个第二Prefab,所述多个第二Prefab中的任一第二Prefab包括有文字图片的Prefab和/或用于引用文字图片的Prefab,且不同的语种类别对应不同的文字图片;
输出所述第二目标Prefab,所述第二目标Prefab为与所述目标语种类别对应的Prefab。
8.一种客户端设备,其特征在于,包括:
第一获取单元,用于获取目标列表,所述目标列表包括不同的翻译文件与不同的哈希值的对应关系;
第二获取单元,用于获取目标待翻译字符串,所述目标待翻译字符串为当前需要进行翻译的字符串;
第三获取单元,用于获取目标哈希值,所述目标哈希值为与所述目标待翻译字符串对应的哈希值;
第四获取单元,用于根据所述目标列表获取与所述目标哈希值对应的目标翻译文件。
9.一种客户端设备,其特征在于,包括:
一个或多个处理器单元、存储单元、总线系统、以及一个或多个程序,所述处理器单元和所述存储单元通过所述总线系统相连;
其中所述一个或多个程序被存储在所述存储单元中,所述一个或多个程序包括指令,所述指令当被所述客户端设备执行时使所述客户端设备执行如权利要求1至7任一项所述的方法。
10.一种存储一个或多个程序的计算机可读存储介质,其特征在于,包括一个或多个程序,所述一个或多个程序包括指令,所述指令当被客户端设备执行时使所述客户端设备执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710313150.1A CN107423291B (zh) | 2017-05-05 | 2017-05-05 | 一种数据翻译方法以及客户端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710313150.1A CN107423291B (zh) | 2017-05-05 | 2017-05-05 | 一种数据翻译方法以及客户端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423291A true CN107423291A (zh) | 2017-12-01 |
CN107423291B CN107423291B (zh) | 2020-12-29 |
Family
ID=60424447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710313150.1A Active CN107423291B (zh) | 2017-05-05 | 2017-05-05 | 一种数据翻译方法以及客户端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423291B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992790A (zh) * | 2017-12-29 | 2019-07-09 | 北京搜狗科技发展有限公司 | 数据处理方法和装置、用于数据处理的装置 |
CN112988290A (zh) * | 2019-12-12 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 多语言配置文件的生成方法、页面显示方法、装置及终端 |
CN114282550A (zh) * | 2021-12-23 | 2022-04-05 | 深圳软牛科技有限公司 | 一种实现qt多语言翻译系统的方法、装置及相关组件 |
CN114461256A (zh) * | 2022-04-11 | 2022-05-10 | 深圳市星卡科技有限公司 | 字库升级系统、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093513A (zh) * | 2007-08-14 | 2007-12-26 | 金蝶软件(中国)有限公司 | 一种用于解决计算机软件多语言支持问题的方法和系统 |
CN102289376A (zh) * | 2011-09-16 | 2011-12-21 | 烽火通信科技股份有限公司 | 基于嵌入式的多语言web页面实现方法及系统 |
CN104536955A (zh) * | 2014-12-24 | 2015-04-22 | 深圳熙谷威生物医疗科技有限公司 | Pc机配置机器语言、字库以及翻译文件的方法及系统 |
US20150370821A1 (en) * | 2004-12-17 | 2015-12-24 | Microsoft Licensing Technology, LLC | Quick Filename Lookup Using Name Hash |
-
2017
- 2017-05-05 CN CN201710313150.1A patent/CN107423291B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150370821A1 (en) * | 2004-12-17 | 2015-12-24 | Microsoft Licensing Technology, LLC | Quick Filename Lookup Using Name Hash |
CN101093513A (zh) * | 2007-08-14 | 2007-12-26 | 金蝶软件(中国)有限公司 | 一种用于解决计算机软件多语言支持问题的方法和系统 |
CN102289376A (zh) * | 2011-09-16 | 2011-12-21 | 烽火通信科技股份有限公司 | 基于嵌入式的多语言web页面实现方法及系统 |
CN104536955A (zh) * | 2014-12-24 | 2015-04-22 | 深圳熙谷威生物医疗科技有限公司 | Pc机配置机器语言、字库以及翻译文件的方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992790A (zh) * | 2017-12-29 | 2019-07-09 | 北京搜狗科技发展有限公司 | 数据处理方法和装置、用于数据处理的装置 |
CN109992790B (zh) * | 2017-12-29 | 2023-09-29 | 北京搜狗科技发展有限公司 | 数据处理方法和装置、用于数据处理的装置 |
CN112988290A (zh) * | 2019-12-12 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 多语言配置文件的生成方法、页面显示方法、装置及终端 |
CN112988290B (zh) * | 2019-12-12 | 2024-01-26 | 腾讯科技(深圳)有限公司 | 多语言配置文件的生成方法、页面显示方法、装置及终端 |
CN114282550A (zh) * | 2021-12-23 | 2022-04-05 | 深圳软牛科技有限公司 | 一种实现qt多语言翻译系统的方法、装置及相关组件 |
CN114282550B (zh) * | 2021-12-23 | 2024-05-17 | 深圳软牛科技集团股份有限公司 | 一种实现qt多语言翻译系统的方法、装置及相关组件 |
CN114461256A (zh) * | 2022-04-11 | 2022-05-10 | 深圳市星卡科技有限公司 | 字库升级系统、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107423291B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534605B2 (en) | Application system having a gaming engine that enables execution of a declarative language | |
CN109725901A (zh) | 前端代码的开发方法、装置、设备和计算机存储介质 | |
CN103593333B (zh) | 一种电子书文档的处理方法、终端及电子设备 | |
CN107423291A (zh) | 一种数据翻译方法以及客户端设备 | |
CN103425632B (zh) | 一种序列化的方法、装置及处理器 | |
CN110032324A (zh) | 一种文本选中方法及终端 | |
CN107958365B (zh) | 物料信息变更方法、装置、存储介质及电子设备 | |
CN110968305A (zh) | 小程序可视化生成方法、装置、设备及存储介质 | |
CN110688145B (zh) | Android MVP代码自动生成方法、装置、介质、电子设备 | |
CN111506300A (zh) | 一种小程序生成方法、装置、设备及存储介质 | |
US20170091155A1 (en) | Font typeface preview | |
CN113900650A (zh) | 一种数据处理的方法、装置、电子设备及可读存储介质 | |
CN109725958A (zh) | 对资源管理器管理的文件进行处理的方法及装置 | |
CN102193806B (zh) | 更新动画的方法和装置 | |
CN107122177A (zh) | 界面展示方法及装置 | |
US8732655B2 (en) | Systems and methods for metamodel transformation | |
CN104375814A (zh) | 接口文档的生成方法及装置 | |
CN105573973A (zh) | 一种将excel数据在ppt文件中进行数据关联的方法 | |
CN108845857A (zh) | 一种基于云平台的图标管理方法和装置 | |
CN107506299A (zh) | 一种代码分析方法及终端设备 | |
CN113870394A (zh) | 一种动画生成方法、装置、设备及存储介质 | |
CN105183491A (zh) | 跨平台的桌面gis系统及其启动方法 | |
CN112181396A (zh) | Rn代码自动生成系统、方法、设备及介质 | |
CN109471708A (zh) | 一种任务处理方法、装置及系统 | |
CN105989185A (zh) | 例行任务及工具生成的系统配置方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |