6

我们正在寻求使 Web 应用程序国际化。最好输出翻译服务器端(它是用.net 4 C#编写的)还是客户端(Javascript)?

我们已经通过创建一个 JS 文件开始在客户端执行此操作,该文件包含一个包含英语短语作为键的对象(以便开发人员了解每个消息在上下文中的含义),其值是显示给客户端的字符串任何警报和提示。我们正在考虑将其扩展到整个前端的所有措辞。

这是一个好主意还是最好在服务器端执行这种工作?

更新:如果它有助于改变论点,我们不会在我们的 Web 应用程序中大量使用服务器端控件,我们的大多数控件都是基于 jQuery/JS 的。

更新:此特定应用程序不公开可见(除了登录页面),因此不适用 SEO 问题。

4

3 回答 3

5

SEO 方面,我建议在服务器端进行,并在单独的 url 下提供应用程序。

例如:

www.application/en/

www.application/es/ ...

于 2012-07-05T14:01:03.763 回答
2

I18n 的第一条规则:遵循标准方式。不要重新发明轮子。对于 Asp.Net,这意味着服务器端国际化。

嗯,有点。如果您碰巧有大量动态创建的控件,您仍然需要一些用于客户端脚本的本地化机制。您可以集中它,即创建一个翻译字符串的全局数组和模型+控制器,因此您可以通过 AJAX 调用填充它(尽管对于 JSON,X 最好用 J 代替......)。
无论如何,您的模型应该简单地从资源文件中检索适当的字符串,并且控制器应该将 JSON 提供给客户端(好主意是实际请求较小的块,即仅对给定视图/屏幕进行翻译,而不是对整个应用程序进行翻译)。

如您所见,最好的方法是一些混合方法。出于多种原因,最好对整个应用程序使用一种本地化模型,即仅使用 *.resx 文件。
此外,国际化不仅仅是简单的字符串外部化......

于 2012-07-05T16:30:06.130 回答
1

如果您只向用户显示静态内容,那么请通过客户端国际化。如果您显示的内容/消息是动态的,则应使用服务器端。但是您如何检测用户区域设置?

于 2012-07-05T14:36:59.917 回答