2010-11-12 86 views
0

我想问问最佳实践或翻译静态内容的最简单方法。例如。翻译,“搜索”或“保存更改”。网站本地化

我现在的想法是:根据用户的浏览器语言环境

(IP地址的地理位置也许,但我更喜欢浏览器语言)选择一个子域,例如“fr.myweb.com”。根据语言设置设置cookie,会话变量。这部分非常简单。

现在来翻译部分。根据语言改变图像不会是一个问题,因为“_fr”前缀就足够了。但翻译字符串像保存更改,搜索,订单项等。那么,我不确定这里。

由于其所有基于PHP和MySQL,我想的是一样的东西:

两个表:

  1. 第一个具有的默认语言的所有单词
  2. 第二个有三个列表列(不包括自动递增) - LANGUAGE_ID,翻译,word_id

获取所有的话,缓存查询或什么,现在叫反式( 'FR', '搜索')WOU ld翻译这个词。这应该工作,但我不知道它是正确的方法还是有更好的方法。注意:没有谷歌翻译。

此外,因为我使用js/ajax,我也不确定这部分。从cookie获取语言并制作警报等地图,然后调用“message ['fr']”,但我不确定这部分内容。

任何想法对于两种语言都是理想的吗?我试过谷歌,但不满意的结果。任何建议/链接表示赞赏。

Regards

+1

避免数据库存储翻译字符串。使用gettext .po文件或一个php数组。避免困难的API。使用'_(“english”)或'__(“..”)'',然后在其他语言中使用目标语言。不要使用常量或文本ID,请使用原始英文作为输入。 - 解释为什么你看起来想要翻译客户端(AJAX?)而不是页面生成(PHP)。 – mario 2010-11-12 22:00:30

+0

我并不是指ajax,而是JS。假设你必须满足某些条件才能做出行动,如果你不符合他们 - 你会得到一个JS错误。那翻译那些东西呢? – realshadow 2010-11-12 22:06:06

+0

仍然不知道确切的情况,但你可以试试这个http://plugins.jquery.com/project/gettext – mario 2010-11-12 22:13:02

回答

1

查找Gettext for PHP:http://php.net/manual/en/book.gettext.php。这是提供网页内容翻译的事实标准。基本上你可以创建翻译文件(你可以使用例如Poedit),将PHP指向它们,将语言环境设置为任何需要的,并使用_('string to translate')来获取翻译。