我要更新/重写现有的硬编码网站。
我需要对其进行本地化,但应用程序将根据国家/地区/语言提供不同的内容。
最好的解决方法是什么?
我想在我的数据库中为每个本地化创建的内容添加一个列,例如“locale = en_GB”,或者为每个应用程序使用不同的数据库。
有任何反馈吗?
修改
让我们说一个应用程序。确定。
我希望此应用程序具有相同的功能,但在不同的国家/地区。
内容由社区提供,因此无法对其进行翻译,也不适用于应用程序范围,仅适用于配置为使用国家/地区C的应用程序。
国家=一个域名=特定内容=与其他内容相同的功能。
我知道我可以将每个应用程序配置为使用不同的数据库,但我想如果我需要添加一个列来添加功能,我将不得不在每个国家/地区执行此操作。
如果我添加一列来本地化内容,我将能够通过指定当前使用的区域设置来获取本地化内容,无论应用程序是什么。
我将使用Zend_Locale& Zend_Translate / gettext,所以我知道如何在php中完成它。
这两种解决方案都有其优点和缺点。但是我没有足够的经验来选择合适的方式。
答案 0 :(得分:3)
区域设置很少是数据库的一部分。
语言环境是数据库中数据表示的一部分。
因此每个用户都提供他们的语言环境。
您的应用使用普通本地化来翻译数字和日期。
您的应用程序使用普通的i18n库将数据库文本和应用程序消息转换为本地化文本。
答案 1 :(得分:0)
我采用第一种方法:用特定列标记每种不同的语言。比管理不同的数据库/表格更容易管理和更灵活。
在布局上:您可以使用PHP的gettext()函数,也可以根据需要为每种语言创建不同的模板。