给已经存在的WEB应用程序添加新的语言支持
原文:http://www.codeproject.com/KB/aspnet/yala.aspx 简介 为什么又一篇本地化的文章?我发现对于这个简单的问题,我很难找到答案:假设你有一个已经成功 部署ASP.NET WEB程序。你有许多客户他们有的在美国,有的欧洲,有的又在亚洲。一切都运行良好,突 然有一天你的一个客户要求你把(网站)程序翻译成他本地的语言。这是一个非常简单的任务,你不必重 新编译程序发回给你的客户。唯一的忧虑是他必须找一个好的翻译器花一些时间理解隐藏在应用程序后的 业务,这些内容又不仅仅是逐字逐句(的翻译)所能理解的。(当然这是另一件事了) 使用代码 一切以建立一个新的网站工程开始。 向default.aspx页面上加一些控件,一个标签,一个按钮。分别设置label1的值为Default text A, label2的值为Default text B。 页面如图。 现在假设你想让Label2的文本值在点击后改为Default text B changed。因此,你可以在工程(当前 解决方案浏览器上)上点击右键选择、 属性。然后,选择资源标签,出现一个新链接“此工程不包含默认资源文件,点击此处创建”。马上 点击,创建一个新键“改变文本”,在value中打入 “Default text B changed”的文字。你将会看到如下所示。 保存,关闭在default.aspx页面button按钮上双击。在后台代码中加上此行: Label2.Text = Properties.Resources.ModifiedText; 现在我添加一个全球性资源文件。为此,右键单击资源浏览器中的工程->添加->添加文件夹, 选择应用程序全球化资源。右键单击此文件夹,添加一个新的名 LWAGlobalResources.resx.资源文件。创建一个新键ButtonText填写“Push Me”。你应该看到这样( 如下图)。 现在为一设置Button1的文本发生,在Page_Load内加入 Button1.Text = Resources.LWAGlobalResources.ButtonText; ...或 Button1.Text = GetGlobalResourceObject( "LWAGlobalResources", "ButtonText" ).ToString (); 个人比较偏好前者,因为它更简短。 现在创建一个本地资源文件。为此,点击default.aspx选择工具-产生本地文件在文件头加上 UICulture="auto"。 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="LocalizationWebApp._Default" UICulture="auto"%> 到此为止我们只是建好了程序。(接下来)让我们添加一个安装程序(LWASetup)。 之后添加工程输出。 点击OK编译后安装到本地IIS,出现提示以“LWA”当虚拟路径名。 继续然后浏览http://localhost/lwa检查。 到此目前为止你创建了WEB应用程序并安装到了客户端。 现在德国客户过来说“嘿,我有许多德国用户,你能把为我把这个程序翻译一下吗!”。好吧,许多 在德国的用户使用IE中的这个配制。 如果他们不这样做,你可以提供一个“改变你的语言”的下拉菜单,要不是为了简单起见,让我们假 定他们已经做了,因此我们的请求语言将返回浏览器中的第一语言。 返回到Visual Studio并复制Resoures.resx文件。更改为Resoures.de.resx.打开文件翻译ButtonText 键值为''Standard-Text B ver?ndert'' (希望这是正确的翻译,至少GOOGLE如此)一样对LWAGlobalResources.resx和Default.aspx.resx文 件进行复制操作。翻译这些文件的所有键值,记得不要翻译键名! 现在,如果你已经把德语设置为你浏览器的默认语言(和德国用户一样)并且运行程序,你将会看到 那些文本值是德文。当然,你可以发布安装程序然后把新的安装程序发给德国客户。但那样不好,你只需 编译程序。这样做你可以只发送给他德文翻译。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |