游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1014|回复: 0

给已经存在的WEB应用程序添加新的语言支持WXH ZT

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2009-4-6 11:49:00 | 显示全部楼层 |阅读模式

作者:Goosetea
翻译:hycn

原文: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文件进行复制操作。翻译这些文件的所有键值,记得不要翻译键名!
现在,如果你已经把德语设置为你浏览器的默认语言(和德国用户一样)并且运行程序,你将会看到那些文本值是德文。当然,你可以发布安装程序然后把新的安装程序发给德国客户。但那样不好,你只需编译程序。这样做你可以只发送给他德文翻译。
因此你将添加一个新的安装程序,让我们叫它LWALanguagePack。(在新建程序上)右键单击添加一个工程输出-本地化资源。
下一步,右键单击Web应用程序文件夹(它应该在文件系统面板的左侧),添加两个新文件夹: App_GlobalResources和App_LocalResources


浏览LWAGlobalResources.de.resx文件并添加到解决方案文件夹下的LocalizationWebApp\App_GlobalResources中。
同样的方法添加Default.aspx.de.resx到LocalizationWebApp\App_LocalResources下。

最后建议LWALanguagePack然后安装。当提示输入你输入安装程序时相同的虚拟路径。



现在德国客户过来说“嘿,我有许多德国用户,你能把为我把这个程序翻译一下吗!”。好吧,许多在德国的用户使用IE中的这个配制。
如果他们不这样做,你可以提供一个“改变你的语言”的下拉菜单,要不是为了简单起见,让我们假定他们已经做了,因此我们的请求语言将返回浏览器中的第一语言。


返回到Visual Studio并复制Resoures.resx文件。更改为Resoures.de.resx.打开文件翻译ButtonText键值为'Standard-Text B ver?ndert'
(希望这是正确的翻译,至少GOOGLE如此)一样对LWAGlobalResources.resx和Default.aspx.resx文件进行复制操作。翻译这些文件的所有键值,记得不要翻译键名!
现在,如果你已经把德语设置为你浏览器的默认语言(和德国用户一样)并且运行程序,你将会看到那些文本值是德文。当然,你可以发布安装程序然后把新的安装程序发给德国客户。但那样不好,你只需编译程序。这样做你可以只发送给他德文翻译。
因此你将添加一个新的安装程序,让我们叫它LWALanguagePack。(在新建程序上)右键单击添加一个工程输出-本地化资源。
下一步,右键单击Web应用程序文件夹(它应该在文件系统面板的左侧),添加两个新文件夹: App_GlobalResources和App_LocalResources



浏览LWAGlobalResources.de.resx文件并添加到解决方案文件夹下的LocalizationWebApp\App_GlobalResources中。
同样的方法添加Default.aspx.de.resx到LocalizationWebApp\App_LocalResources下。

最后建议LWALanguagePack然后安装。当提示输入你输入安装程序时相同的虚拟路径。



就这样;你完成添加新语言到已安装WEB程序。从今以后,所有的把默认语言设置为德语的用户都将看到德文的信息;其它用户将看到
英文信息,因为备份资源是用英文写的。

兴趣点
查看更多信息 http://msdn.microsoft.com/en-us/library/1021kkz0.aspx

历史
这篇文章的第一版发布于2008年7月6日

许可
本文与本文相关的所有源代码与文件均遵守The Code Project Open License (CPOL)许可协议。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 17:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表