model-view-controller – 语言翻译在MVC模式中的位置?

前端之家收集整理的这篇文章主要介绍了model-view-controller – 语言翻译在MVC模式中的位置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个使用MVC模式作为起始位置的多语言Web应用程序.应用程序有许多用户将与之交互的表单,其中许多表单将具有从数据库表中查找的字段,例如“省”.

如果我需要在屏幕上以用户的语言显示这些列表中的选项,我可以看到以下几种方法

>在模型中.在查询模型时,我可以提供我希望返回结果的语言.这将允许在无需更改的情况下显示模型中的数据的任何地方使用翻译.但是,这也意味着我的示例中的省模型(以及所有其他应用程序模型)现在需要知道如何进行语言翻译.
>在控制器中.我可以像往常一样在控制器动作中查询模型,然后创建一个’Translator’对象,我可以在完成动作之前将结果传递给它.这意味着每个控制器操作可能会复制相同的转换代码,违反DRY原则.
>在视图中.由于通常期望应用程序的呈现存在于视图中,并且用户的语言不会影响系统的业务逻辑,因此可以使语言翻译属于此处.特别是考虑到页面还可能包含需要翻译的静态内容.这样做的缺点是它会使视图有些复杂化,特别是对于必须解决新翻译代码的前端设计人员而言.

对于Web应用程序的MCV模式,文本翻译属于何处,是否存在公认的最佳实践?如果我通过AJAX调用而不是在页面加载时加载选择列表选项,这是否会发生变化?

谢谢您的帮助!

解决方法

如果您需要翻译部分UI,那么我将创建一个帮助方法,该方法将读取资源文件输出该资源的翻译字符串.例如.
@Translate("NewUserHeading")

因此,关于UI,在UI中处理它是有意义的.

如果您要在某个时间点转换的数据可能会显示在Flash客户端或移动应用程序中,那么它应该由服务器进行翻译,它应该与您的MVC应用程序无关.

猜你在找的HTML相关文章