ASP.NET网站翻译

时间:2012-05-30 13:33:16

标签: asp.net url translation

我想翻译我的ASP.NET网站,就像微软一样。 我希望网址有/ en-EN /或/ de-DE / 问题是我的网址已经路由了网址

我该怎么做?

我找到了http://blog.maartenballiauw.be/post/2010/01/26/Translating-routes-(ASPNET-MVC-and-Webforms).aspx 但是我不想翻译所有的网址,而且这种方法在我看来太复杂了,包含了视图和控制器。

我需要mysite.com/en-EN/routedpage或mysite.com/de-DE/routedpage

2 个答案:

答案 0 :(得分:1)

上面的例子是针对mvc的,你的网站是mvc吗?您需要设置您的网站以进行特定于文化的设置,这是一篇如何做到这一点的文章

http://www.ezzylearning.com/tutorial.aspx?tid=3477182

还有待进一步阅读

http://www.codeproject.com/Articles/7998/Creating-multilingual-websites-Part-1http://www.codeproject.com/Articles/8073/Create-multilingual-web-pages-very-easily

非常容易设置

答案 1 :(得分:1)

这是一个重要问题。您希望URL具有编码的语言,以用于搜索引擎优化和可用性目的。

两种常见的解决方案是:

1)更改域名。 fr.example.com或de.example.com。然后不需要改变路线。

2)使用#作为语言代码。现在的搜索引擎会观察到这一点。那么,您需要www.example.com/#de或www.example.com/#fr

您只需将我们的javascript粘贴到您的页面并将sitetran_url_type变量设置为以下任一项,即可通过www.SiteTran.com实施这两种解决方案:

public class GeoPointModelBinder : IModelBinder { // List of known locations. private static ConcurrentDictionary<string, GeoPoint> _locations = new ConcurrentDictionary<string, GeoPoint>(StringComparer.OrdinalIgnoreCase); static GeoPointModelBinder() { _locations["redmond"] = new GeoPoint() { Latitude = 47.67856, Longitude = -122.131 }; _locations["paris"] = new GeoPoint() { Latitude = 48.856930, Longitude = 2.3412 }; _locations["tokyo"] = new GeoPoint() { Latitude = 35.683208, Longitude = 139.80894 }; } public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) { if (bindingContext.ModelType != typeof(GeoPoint)) { return false; } ValueProviderResult val = bindingContext.ValueProvider.GetValue( bindingContext.ModelName); if (val == null) { return false; } string key = val.RawValue as string; if (key == null) { bindingContext.ModelState.AddModelError( bindingContext.ModelName, "Wrong value type"); return false; } GeoPoint result; if (_locations.TryGetValue(key, out result) || GeoPoint.TryParse(key, out result)) { bindingContext.Model = result; return true; } bindingContext.ModelState.AddModelError( bindingContext.ModelName, "Cannot convert value to Location"); return false; } }

var sitetran_url_type = 'sub.domain';

SiteTran是100%免费的,是我的公司。