Php 网站本地化

Php 网站本地化,php,javascript,localization,geolocation,translation,Php,Javascript,Localization,Geolocation,Translation,我想问一下翻译静态内容的最佳实践或最简单的方法。例如,翻译“搜索”或“保存更改” 我目前的想法是: 根据用户的浏览器区域设置(可能是IP地址的地理位置,但我更喜欢浏览器区域设置),选择子域,例如“fr.myweb.com”。根据语言设置,设置cookie会话变量。这一部分相当简单 现在是翻译部分。根据语言更改图像不会有问题,因为一个“\u fr”前缀就足够了。但是翻译字符串,如保存更改、搜索、订购项目等。嗯,我不确定 因为它都是基于PHP和MySQL的,所以我想: 两张表: 第一个是默认语言中所

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

我目前的想法是:

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

现在是翻译部分。根据语言更改图像不会有问题,因为一个“\u fr”前缀就足够了。但是翻译字符串,如保存更改、搜索、订购项目等。嗯,我不确定

因为它都是基于PHP和MySQL的,所以我想:

两张表:

  • 第一个是默认语言中所有单词的列表
  • 第二个有三列(不包括自动增量)——语言标识、翻译、单词标识
  • 获取所有单词,缓存查询或任何东西,现在调用trans('fr','search')将翻译单词。这应该行得通,尽管我不知道这是正确的方法还是有更好的方法。注意:没有谷歌翻译

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

    你知道什么对两种语言都是理想的吗?我试过谷歌,但对结果不满意。欢迎提供任何建议/链接


    关于

    查找PHP的Gettext:。它是提供web内容翻译的事实标准。基本上,您可以构建翻译文件(例如,您可以使用),将PHP指向这些文件,将语言环境设置为所需的任何值,并使用
    (“string to translate”)
    获取翻译。

    避免使用数据库存储翻译字符串。使用gettext.po文件或php数组。避免使用困难的API。使用类似于
    (“英语”)
    (“…”)
    的语言,并随身携带目标语言。不要使用常量或文本ID,使用原始英语作为输入。-解释一下为什么您似乎想在客户端(AJAX?)而不是在页面生成(PHP)时进行翻译。假设您必须满足某些条件才能执行某个操作,如果您不满足这些条件,则会出现JS错误。翻译这些怎么样?仍然不知道确切的情况,但是你可以试试这个@mario为什么我们应该避免使用数据库?我认为不需要像在gettext中那样每次更改.po文件时都重新启动apache