【发布时间】:2011-05-14 07:56:59
【问题描述】:
我想就我在 PHP MVC Web 应用程序上实现多语言支持的方式获得您的反馈。我就是这样做的:
- 在 /app 文件夹中,我创建了一个 /languages 文件夹,其中包含每种语言的一个文件(english.php、spanish.php 等)
- 每个文件都包含一系列在每个文件中具有相同名称的变量,其中包含要在视图中呈现的文本
- 这些变量然后在不同的视图中回显
- “语言”cookie 变量会在用户更改语言时更新
- 在每个视图的控制器中,我包含一个格式如下的语言文件:
包括 $_SERVER['DOCUMENT_ROOT'] 。 “/应用程序/语言/”。 $_COOKIE["语言"] 。 ".php";
对我来说听起来很整洁。您对这种方法有什么负面想法吗?
【问题讨论】:
-
不要在没有验证的情况下使用cookie值,客户端可以更改cookie!
-
有几件事,您可能希望将语言作为 URL 的一部分。这样机器人就可以索引您的网站。此外,您可能希望将内容移动到数据库而不是将其保存在文件中,因为这样您添加新语言会更容易
-
好点,感谢指出验证点!我正在考虑将其移至数据库。我最终认为通过文件可能会在性能方面更好......但确实可能更难维护。如果我通过 DB 选项,我正在考虑通过创建一个语言字段来设计它(我正在使用 mySQL),然后每页一个字段(index.php、home.php 等),每个字段都包含一个数组在每个页面上呈现的不同文本。你怎么看?
-
你使用的是什么版本的 PHP?
标签: php performance model-view-controller localization internationalization