ASP.NET基于CS应用程序平台多语种技术应用研究

news2025/3/11 0:15:37

C/S应用程序平台多语种技术是一种基于C/S应用技术结构平台的关于多语种的转换和翻译技术。本设计基于Visual Studio.Net集成开发环境,采用SQL Server2000进行数据库后台开发。通过采用数据字典实现应用系统的静态文本转换;通过使用Visual Studio.Net上的默认控件来实现提示信息的多语种转换;采用JavaScript解决报警信息的多语种转换。能够在软件开发工具和开发平台中能够自由进行多语种切换,增强软件开发工具和开发平台的使用性与通用性。本设计采用.NET技术,跨平台性强,运行速度快,用户可以快速、方便的进行操作,达到了预期效果。

关键词: 多语种;数据字典;脚本语言

4.1  功能分析

本设计实现的主要功能有三个:静态文本中的多语种转换,它分为单词和语句;在系统的消息中进行多语种的转换,系统消息分为警告、报警、提示等;报表系统前台页面表项的动态转换。

设计分为三个部分:首先在C/S应用程序的按钮上实现静态文本的多语种转换;然后通过设计一个数据字典实现动态的转换;最后用一个报表系统的提交页面实现页面的多语种转换。

  设计的主要设计思路为“三层结构”,如图4-1所示,具体描述如下。

表现层:位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

中间业务层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。中间业务层也可以包括一些对“商业逻辑”描述代码在里面。

数据访问层:仅实现对数据的保存和读取操作。数据访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。

图4-1三层结构图

4.2  实现流程

本设计的系统实现流程如图4-2所示,通过一个定义的前台按钮,在建立SQL连接中访问ADO接口,再进入数据库访问数据字典,然后根据需求的不同,访问数据项。

图4-2 流程图

通过前面的分析,本设计开发一个基于Visual Studio.net软件平台的多语种转换模块,实现静态文本中的多语种转换、系统的消息中进行多语种的转换、在生成报表的过程中多语种的转换的功能。在设计与开发中,重点关注静态文本中的多语种转换、系统的消息中进行多语种的转换。探讨既能实现基本的单词转换,又能实现可靠的语意转换的实现方法。

4.3  模块设计

本设计由三个主要模块组成。即静态的多语种转换、动态的多语种转换、报表系统前台页面表项的动态转换。具体的模块设计如图4-3所示。

图4-3 模块设计图

4.4  详细设计

        4.4.1  静态文本中的多语种转换

静态文本的多语种转换分为单词和语句,本设计重点讨论单词在静态文本中的转换。

下面以一个简单的播放程序为例(如图4-4所示)来说明如何在C/S应用系统中进行单词的静态转换。

图4-4 播放程序图

通过在说明这个选项中添加一个功能按钮来实现语种的转换如图4-5所示。

图4-5 播放程序中的功能按纽

在选项中点击按钮“英语”或“中文”时,就会把静态文本中的语种转换过来,效果如图4-6所示。

图4-6 转换后的语种图

具体实现代码如下所示。

       private void menuItem2_Click(object sender, System.EventArgs e) //英文控制按纽

                    {

                          menuFile.Text="File";

                          menuOpen.Text = "Open File";

                          menuLoad.Text="Load File";

                          menuSave.Text="Save Anther File";

                          menuClose.Text="Close File";

                          menuDelSelect.Text="Delete Select File";

                          menuDelAll.Text="Delete All File";

                          menuExit.Text="Exit";

                          menuMedia.Text="Media";

                          menuPlay.Text="Play";

                          menuPause.Text="Pause";

                          menuStop.Text="Stop";

                          menuPrevious.Text="Previous File";

                          menuNext.Text="Next File";

                          menuDiploid.Text="Diploid Play";

                          menuHalf.Text="Half Play";

                          menuLeft.Text="Left";

                          menuRight.Text="Right";

                          menuFull.Text="Full screen";

                          menuHelp.Text="Help";

                          menuAbout.Text="About xlFancyPlay";

                          menuItem2.Text="English";

                          menuItem3.Text="Japanese";

                          menuItem4.Text="Chinese";

                  }

                  private void menuItem3_Click(object sender, System.EventArgs e)//日语控制按钮

                  {

                          menuFile.Text="文件";

                                            menuOpen.Text = "君の名";

                                            menuLoad.Text= "女風呂";

                                            menuSave.Text="消えたと";

                                            menuClose.Text="もっとも";

                                            menuDelSelect.Text="知人の実見談";

                                            menuDelAll.Text="伝説";

                                            menuExit.Text="銭湯";

                                            menuMedia.Text="知らない";

                                            menuPlay.Text="絶える";

                                            menuPause.Text="なか";

                                            menuStop.Text="とちわか";

                                            menuPrevious.Text="風景";

                                            menuNext.Text="部屋";

                                            menuDiploid.Text="子供";

                                            menuHalf.Text="風呂";

                                            menuLeft.Text="伝説";

                                            menuRight.Text="相撲版";

                                            menuFull.Text="あんよ";

                                            menuHelp.Text="ほんとう";

                                            menuAbout.Text="关于 xlFancyPlay";

                                            menuItem2.Text="英国语";

                                            menuItem3.Text="日本语";

                                            menuItem4.Text="中国语";

                  }

                       private void menuItem4_Click(object sender, System.EventArgs e)//中文控制按钮

                                   {

                                            menuFile.Text="文件";

                                            menuOpen.Text = "打开文件";

                                            menuLoad.Text="装入文本文件";

                                            menuSave.Text="文本文件另存为";

                                            menuClose.Text="关闭文本文件";

                                            menuDelSelect.Text="删除选顶列表项";

                                            menuDelAll.Text="删除所有列表项";

                                            menuExit.Text="退出";

                                            menuMedia.Text="媒体";

                                            menuPlay.Text="播放";

                                            menuPause.Text="暂停";

                                            menuStop.Text="停止";

                                            menuPrevious.Text="上一个";

                                            menuNext.Text="下一个";

                                            menuDiploid.Text="倍速播放";

                                            menuHalf.Text="半速播放";

                                            menuLeft.Text="左声道";

                                            menuRight.Text="右声道";

                                            menuFull.Text="全屏";

                                            menuHelp.Text="说明";

                                            menuAbout.Text="关于 xlFancyPlay";

                                            menuItem2.Text="英文";

                                            menuItem3.Text="日文";

                                            menuItem4.Text="中文";

                               }

        4.4.2  报警、提示、警告信息的多语种转换

在报表系统进行多语种的转换就是对消息进行多语种的转换,系统消息分为警告、报警、提示等,用Visual Studio.Net系统平台上所默认的控件或者用脚本语言实现转换功能。

报表系统的信息上传界面如图4-7所示。

图4-7 信息上传界面

通过右上的四个按钮来控制语种的转换,“提交”按钮控制着信息的上传。系统信息的语种转换是通过选用脚本语言来控制和实现的。关于对用脚本语言进行消息的多语种转换,其主要是用于对验证为空的信息的语言转换。

英语提交前台上的验证信息转换如图4-8所示。

图4-8 英语提交前台上的验证信息转换

在中文提交前台的界面如图4-9所示。

图4-9 中文提交前台的验证信息转换

具体实现代码如下所示。

以上代码的功能是通过加载页面的元素getElementById来判spankiss的值,再最终决定是调用英文还是中文的标识。

在限制数据上传的位数时,采用RangeValidator控件,中文的界面上的报警信息如图4-10所示。

图4-10 中文界面报警信息

而转换过来的英文界面的报警信息如图4-11所示。

图4-11 英文界面报警信息

具体实现代码如下所示:

this.RangeValidator1.ErrorMessage="ToyId is 3 Bit";//定义控件的信息内容

                          this.RangeValidator3.ErrorMessage="ToyDescription is less than 125 chinese wrod";

                          this.RangeValidator2.ErrorMessage="CategoryId is 3 Bit";

                          this.RangeValidator4.ErrorMessage="ToyRate is currency";

                          this.RangeValidator5.ErrorMessage="BrandId should be 3 Bite";

                          this.RangeValidator6.ErrorMessage="LowerAge is less than 125";

                          this.RangeValidator8.ErrorMessage="UpperAge is less than 125";

​​​​​​​​​​​​​​        4.4.3  报表系统前台页面表项的动态转换
在数据库技术中,在数据字典中进行单词多语种的关联,使前台能够自由的调用数据,数据字典(如图4-12所示)是指在数据库中所有表的集合。

图4-12 数据字典表

通过调用一个按钮调用表中的列来进行动态的调用,效果图如图4-13所示。

图4-13 报表上传页面的中文界面

通过英文转换后的界面如图4-14所示。

图4-14报表上传页面的英文界面

其重要的代码如下所示。

从数据库中访问并提取数据项

public class Class1

         {

                  public Class1()

                  {

                          //

                          // TODO: 在此处添加构造函数逻辑

                          //

                  }

                  public SqlConnection Sqlcon()

                  {

                          SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=;database=jloa");

                          return conn;

        

                  }//建立数据库连接

        public string sqlSelect(string ToyId,string ToyName,string ToyDescription,string CategoryId,string ToyRate,string BrandId,string Photo,string ToyQoh,string LowerAge,string UpperAge,string ToyWeight,string ToyImgPath)

                  {

                          SqlConnection con=this.Sqlcon();

                          con.Open();

            SqlCommand  cmd =new SqlCommand("select ChineseWord from Dic ",con);  //从数据字典中调用chineseWord

                          SqlDataReader rd=cmd.ExecuteReader(); //SQL语句的值;

                          string temp="-";

                          int i =0;

                          while(rd.Read())   //循环读SQL命令

                          {

                          temp+=rd["ChineseWord"].ToString()+"-"; //把读出来的值放到字符中,用间隔隔开;

                                   i++;

                          }

                          con.Close();

                          return temp;

                  }

                  public string sqlSelect1(string ToyId,string ToyName,string ToyDescription,string CategoryId,string ToyRate,string BrandId,string Photo,string ToyQoh,string LowerAge,string UpperAge,string ToyWeight,string ToyImgPath)

                  {

                          SqlConnection con=this.Sqlcon();

                          con.Open();

                          SqlCommand  cmd =new SqlCommand("select EnglishWord from Dic ",con);

                          SqlDataReader rd=cmd.ExecuteReader();

                          string temp="-";

                          int i =0;

                          while(rd.Read())

                          {

                                   temp+=rd["EnglishWord"].ToString()+"-";

                                   i++;

                          }

                          con.Close();

                          return temp;

                  }

                  public int sqlQuery(string str)

                  {

                          SqlConnection con=this.Sqlcon();

                          con.Open();

                          SqlCommand cmd =new SqlCommand(str,con);

                          int i=cmd.ExecuteNonQuery();

                          con.Close();

                          return i;

                  }

         }

}

对从数据库提出的数据进行转换。

Class1 tool=new Class1();

                          string i=tool.sqlSelect(this.Label2.Text.ToString(),this.Label5.Text.ToString(),this.Label4.Text.ToString(),this.Label3.Text.ToString(),this.Label11.Text.ToString(),this.Label10.Text.ToString(),this.Label9.Text.ToString(),this.Label8.Text.ToString(),this.Label7.Text.ToString(),this.Label6.Text.ToString(),this.Label12.Text.ToString(),this.Label14.Text.ToString());

                  Label2.Text=i.Split('-')[1].ToString().Replace("cToyId","ToyId");     //从数据库表中取出某一字段的值,然后再次分配。

                          Label5.Text=i.Split('-')[2].ToString().Replace("vToyName","ToyName");

                          Label4.Text=i.Split('-')[3].ToString().Replace("vToyDescription","Detail");

                          Label3.Text=i.Split('-')[4].ToString().Replace("cCategoryId","CateId");

                          Label11.Text=i.Split('-')[5].ToString().Replace("mToyRate","ToyRate");

                          Label10.Text=i.Split('-')[6].ToString().Replace("cBrandId","BrandId");

                          Label9.Text=i.Split('-')[7].ToString().Replace("imPhoto","Photo");

                          Label8.Text=i.Split('-')[8].ToString().Replace("siToyQoh","ToyQoh");

                          Label7.Text=i.Split('-')[9].ToString().Replace("siLowerAge","LowerAge");

                          Label6.Text=i.Split('-')[10].ToString().Replace("siUpperAge","UpperAge");

                          Label12.Text=i.Split('-')[11].ToString().Replace("siToyWeight","Weight");

                          Label14.Text=i.Split('-')[12].ToString().Replace("vToyImgPath","ImgPath");

                          this.Button3.Text="Refer";

                          this.Button2.Text="Chinese";

                          this.Button1.Text="English";

                          this.Button5.Text="Japenese";

                          this.Label13.Text=" refering please!";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1600455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

适用于 Windows 的 10 个顶级 PDF 编辑器 [免费和付费]

曾经打开PDF文件,感觉自己被困在数字迷宫中吗?无法编辑的文本、无法调整大小的图像以及签署感觉像是一件苦差事的文档?好吧,不用再担心了!本指南解开了在 Windows 上掌握 PDF 的秘密,其中包含 10 款适用于 …

LoRA:大模型的低阶自适用(使用BERT在IMDB数据集上运用LoRA微调)

文章目录 简介LoRA文章主要贡献LoRA技术模型图技术细节论文实验结果LoRA在bert的运用LoRA核心代码实战分析 简介 论文链接https://arxiv.org/pdf/2106.09685v2.pdf 本文将先介绍论文中的LoRA技术,然后以BERT为例在IMDB数据集上代码实现运用这项微调技术。 代码数…

OpenCV基本图像处理操作(四)——傅立叶变换

傅里叶变换的作用 高频:变化剧烈的灰度分量,例如边界 低频:变化缓慢的灰度分量,例如一片大海 滤波 低通滤波器:只保留低频,会使得图像模糊 高通滤波器:只保留高频,会使得图像细节…

【React】Ant Design自定义主题风格及主题切换

Ant Design 的自定义主题,对于刚入手的时候感觉真是一脸蒙圈,那今天给它梳理倒腾下; 1、自定义主题要点 整体样式变化,主要两个部分: 1.1、Design Token https://ant.design/docs/react/customize-theme-cn#theme 官…

新经济助推高质量发展“大有云钞”聚焦未来趋势

近日,由大有云钞科技(北京)有限公司主办的一场关于“新经济助力高质量发展法治研讨会”在北京国家会议中心隆重举行。此次研讨会汇聚了来自政府、企业、学术界和法律界的众多专家学者,共同探讨新经济背景下的法治建设和高质量发展…

0基础如何入门编程?

0基础如何进入IT行业 ? 前言 简介:对于没有任何相关背景知识的人来说,如何才能成功进入IT行业?是否有一些特定的方法或技巧可以帮助他们实现这一目标? 主要方法有如下几点建议提供给宝子们 目录 免费视频网课学习…

static+单例模式+类的复合继承

汇编语言 汇编语言是最靠谱的验证“编程语言相关知识点”正确性的方式 汇编语言与机器语言一一对应,每一条机器语言都有与之对应的汇编指令 机器语言是计算机使用的语言,它是一串二进制数字 汇编语言可以通过汇编得到机器语言机器语言可以通过反汇编得到…

Shell循环以及条件语句使用

Shell脚本基础已经发过,可在主页查找,现在讲解case,for,while语句,以及语句的练习。 1.case语句 等同于C语⾔的switch-case 格式: case $变量 in # 判断变量的值 a) # 值是什么语句;; # 相当于break 但…

docker网路和主机通讯问题

#注 1,安装docker和启动容器服务的时候如果防火墙处于开启状态,那么重启docker里面的容器的时候必须开启防火墙,否则会出现iptable错误; 2,linux开启防火墙会导致主机和docker网络之间单向通讯,主机可以访…

文献速递:深度学习肝脏肿瘤诊断---基于深度学习的表型分类重新划分联合肝细胞胆管癌

Title 题目 Deep learning-based phenotyping reclassifies combined hepatocellular cholangiocarcinoma 基于深度学习的表型分类重新划分联合肝细胞胆管癌 01文献速递介绍 Primary liver cancer arises either from hepatocytic or biliary lineage cells, giving rise to…

会议室预约小程序开源版开发

会议室预约小程序开源版开发 支持设置免费预约和付费预约、积分兑换商城、积分签到等 会议室类目,提供多种类型和设施的会议室选择,满足不同会议需求。 预约日历,展示会议室预约情况,方便用户选择空闲时段。 预约记录&#xff0…

计算机网络(六)应用层

应用层 基本概念 服务器端(Server): 服务器是网络中提供服务的计算机或软件程序。服务器通常具有更高的性能、更大的存储空间和更高的带宽,用于提供各种服务,如文件存储、数据库管理、Web托管、电子邮件传递等。服务…

5-pytorch-torch.nn.Sequential()快速搭建神经网络

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言torch.nn.Sequential()快速搭建网络法1 生成数据2 快速搭建网络3 训练、输出结果 总结 前言 本文内容还是基于4-pytorch前馈网络简单(分类&#xf…

SQL刷题---2021年11月每天新用户的次日留存率

解题思路: 1.首先算出每个新用户注册的日期,将其命名为表a select uid,min(date(in_time)) dt from tb_user_log group by uid2.计算出每个用户登录的天数,将其命名为表b select uid,date(in_time) dt from tb_user_log union select uid,date(out_time) dt fro…

【Windows10】Anaconda3安装+pytorch+tensorflow+pycharm

文章目录 一、下载anaconda0.双击下载的文件1. 选择All users2. 安装路径3. 勾选环境变量和安装python4.安装完成5.添加环境变量6.测试是否安装成功 二、安装pytorch(先看四!先检查一下自己电脑是不是只能安装GPU版的1.查看conda图形化界面2.在安装pytor…

PHP-extract变量覆盖

[题目信息]: 题目名称题目难度PHP-extract变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&#x…

【Git】安装 Git

文章目录 1. CentOS 下安装2. Ubuntu 下安装 Git 是开放源代码的代码托管工具,最早是在 Linux 下开发的。开始也只能应用于 Linux 平台,后面慢慢的被移植到 Windows 下。现在,Git 可以在 Linux、Unix、Mac 和 Windows 这几大平台上正常运行了…

RabbitMQ的简单

前言 RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。 目录 介绍 RabbitMQ系统结构 RabbitMQ成员…

Flutter 插件站新升级: 加入优秀 GitHub 开源项目

Flutter 插件站新升级: 加入优秀 GitHub 开源项目 视频 https://youtu.be/qa49W6FaDGs https://www.bilibili.com/video/BV1L1421o7fV/ 前言 原文 https://ducafecat.com/blog/flutter-awesome-github-repo-download 这几天晚上抽空把 Flutter 插件站升级,现在支…

超越GPT-4V,苹果多模态大模型上新,神经网络形态加速MLLM(一)

4月8日,苹果发布了其最新的多模态大语言模型(MLLM )——Ferret-UI,能够更有效地理解和与屏幕信息进行交互,在所有基本UI任务上都超过了GPT-4V! 苹果开发的多模态模型Ferret-UI增强了对屏幕的理解和交互&am…