【问题标题】:Website localization网站本地化
【发布时间】:2010-11-12 21:40:42
【问题描述】:

我想询问翻译静态内容的最佳做法或最简单的方法。例如。翻译、“搜索”或“保存更改”。

我目前的想法是:

根据用户浏览器区域设置(可能是 IP 地址的地理位置,但我更喜欢浏览器区域设置)选择一个子域,例如“fr.myweb.com”。根据语言设置设置 cookie、会话变量。这部分相当简单。

现在是翻译部分。根据语言更改图像不会有问题,因为“_fr”前缀就足够了。但翻译字符串,如保存更改、搜索、订购商品等。好吧,我不确定。

由于它全部基于 PHP 和 MySQL,我正在考虑类似的东西:

两个表:

  1. 第一个包含默认语言的所有单词列表
  2. 第二个有三列(不包括自增)-language_id、translation、word_id

获取所有单词,缓存查询或其他任何内容,现在调用 trans('fr', 'search') 将翻译该单词。这应该可行,尽管我不知道它是否正确或是否有更好的方法。注意:没有谷歌翻译。

另外,由于我使用的是 js/ajax,所以我也不确定这部分。从 cookie 中获取语言并制作警报地图等,然后调用“message['fr']”,我也不确定这部分。

有什么想法适合两种语言吗?我尝试了谷歌,但对结果不满意。任何建议/链接表示赞赏。

问候

【问题讨论】:

  • 避免使用数据库来存储翻译字符串。使用 gettext .po 文件或 php 数组。避免使用困难的 API。使用_("english")__("..") 之类的东西,并在其他地方携带目标语言。不要使用常量或文本 ID,使用原始英语作为输入。 -- 解释为什么您似乎想要在客户端(AJAX?)而不是在页面生成(PHP)时进行翻译。
  • 我不是说 ajax,而是 JS。假设您必须满足某些条件才能执行操作,如果您不满足这些条件 - 您会收到 JS 错误。翻译那些呢?
  • 还不知道具体情况,不过你可以试试这个plugins.jquery.com/project/gettext
  • @mario 为什么我们要避免使用数据库?我认为不需要像在 gettext 中那样每次 chaging .po 文件时都重新启动 apache

标签: php javascript localization geolocation translation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多