2013-05-14 29 views
0

我们有一个很大的ASP.NET网站(其实是一个Web项目),所有页面目前都是英文的,公司决定支持法国和荷兰语?支持当前网站的多语言版本

那么,什么是做到这一点的最佳选择,

的主要因素是:

1,性能

2,快速和容易实现

3,通用的解决方案,所以我们可以很容易地添加一种新的语言

我想到这个选项:

1-添加另一个页面的每个当前页面(所以我们需要增加对每种语言约800页)

2 - 翻译在后面的代码的所有文本:button1.text = GetText("button1");

3-添加一个方法来翻译所有文本:

void translate (Control control) 
{ 
    foreach(Control cn in control.Controls) 
    { 
    TranslateallTextsofControl(cn); 
    } 
} 

那么真的是另一种选择?

有人必须做这样的事情吗?什么是最好的解决方案呢? 有什么建议吗?

+1

您必须以允许本地化的方式编写您的应用程序。一个快速的黑客最终会咬你。 – gideon 2013-05-14 07:38:26

+0

http://msdn.microsoft.com/en-us/library/ms227427(v=vs.100).aspx正如@gideon所说,本地化是最好的前进路线http://msdn.microsoft.com/en-我们/库/ ms227427(v = VS.100)的.aspx。意味着你必须做一些重新分解,但为了可靠性,这是最好的方法 – LukeHennerley 2013-05-14 07:44:17

回答

1

根据项目的状态,您需要评估快速入侵对比良好的全球化/本地化解决方案是否是您需要的。

你应该看看这些文章:
http://www.codeproject.com/Articles/38907/ASP-NET-Localization-Quick-Reference http://msdn.microsoft.com/en-us/library/ms247245(v=vs.100).aspx

再图这是要采取更多的工作。

通常,每个人都在做什么(在应用程序本身的最初阶段)是架构师全球化系统。没有其他解决方案。

我强烈建议去适当的全球化路线,然后最终添加一种新的语言只是创建正确的资源文件并将它们提供给应用程序。

一个非泛型的黑客,就像你添加的代码最终会咬你一样,如果你将来需要支持从右向左的语言,甚至可能是一个特别的地狱。

+0

感谢您的回答,我检查了您提到的文章,但是我认为存在一个问题,我们有很多项目和很多的用户控制,所以问题是我们如何通过这些方式为所有项目使用全局资源? – Saeid 2013-05-14 10:15:17

+0

@Saeid每个项目都应该有它自己的一组资源文件。假设你有一个菜单用户控件项目。这应该有它自己的控件**的所有资源文件。每个项目都是自给自足的。 – gideon 2013-05-14 10:24:57