Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何本地化PHP/MySQL网站的界面?_Php_Mysql_Localization - Fatal编程技术网

我应该如何本地化PHP/MySQL网站的界面?

我应该如何本地化PHP/MySQL网站的界面?,php,mysql,localization,Php,Mysql,Localization,是否有指导方针或最先进的方法来本地化PHP/MySQL网站 这里的想法是翻译按钮、页面标题和消息。网站的语言将在安装时选择,不应更改 我已经开始创建包含关键字列表及其翻译的文本文件,但感觉就像是重新发明轮子 谢谢你的帮助 我做过一次,我为不同的语言添加了不同的文件。 包括该文件,如果未包括任何文件,则包括默认(英文)文件。 在该文件中定义数组 $array_language['welcome_msg'] = 'You are welcome'; 因此,您将包含该数组的哪个文件将显示,其他相关消

是否有指导方针或最先进的方法来本地化PHP/MySQL网站

这里的想法是翻译按钮、页面标题和消息。网站的语言将在安装时选择,不应更改

我已经开始创建包含关键字列表及其翻译的文本文件,但感觉就像是重新发明轮子


谢谢你的帮助

我做过一次,我为不同的语言添加了不同的文件。
包括该文件,如果未包括任何文件,则包括默认(英文)文件。
在该文件中定义数组

$array_language['welcome_msg'] = 'You are welcome';

因此,您将包含该数组的哪个文件将显示,其他相关消息将显示默认的英文文件。

同时,我发现了一种构建数组文本文件的有效方法

无论我想在哪里翻译文本项,我都会使用php函数aliased uz()来封装它

然后,我解析所有php文件并自动创建翻译

我生成的.po(人类可读)和.mo(编译)本地化文件放入:

locale/en_EN/LC_MESSAGES
然后,我使用以下代码初始化翻译应用程序:

$locale = 'en_EN';
putenv("LC_ALL=".$locale);
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "locale");
textdomain("messages");
优点:

  • 这样我就不必跟踪我的各种文本项和 创建新的翻译可以由非程序员完成
  • 输出的.po文件的格式似乎也相当标准
  • .po文件还引用要在我的项目中翻译的每一个文本
  • 另一个好处是,如果由于某种原因无法访问.po翻译文件,则基本文本将由gettext函数显示

谢谢!基本上我也是这么做的。但我试着研究wordpress中的代码(这与我的项目在安装本地化版本然后将其保留在该语言中方面很接近),我发现他们没有这样做。我不知道他们是怎么解决的。你们可以通过数据库来解决,但那个太复杂了,维护更复杂。WordPress将所有内容存储在db中。您可以尝试Transtable,这是一个用于在php数组中编辑翻译的简单web界面。