多语言:为Web内容php添加自定义语言

时间:2016-01-08 17:06:17

标签: php mysql switch-statement echo multilingual

我有一个论坛网站,我想在我的论坛中添加各种不同的自定义语言。

通过意义语言我只想改变我的系统文本而不是用户在那里发布的内容。现在通过语言,我不想要任何西班牙语/法语实现。我想做 Funky / Punk / Ghetto 等自定义语言。

例如 - 英语 - 你好,你的问题是什么?

Ghetto - Aiyo,whatya问题男人!?

现在我可以在名为users的{​​{1}} mysql表中创建一个日志,然后使用lang来检测他/她想要的语言。

但问题是重写我的整个代码>> 30k行和最佳方法

现在,我不想为单个页面制作sessionshome_en.php种语言重复文件。

我认为在打印我的网站系统文本的每个home_ghetto.php之前做switch-case也不是一个好主意。

我离开的时候没有任何可能性,因此我可以看到你的愿景,让我启发,让我走出这黑暗。

ps - Google,Microsoft等大型网站如何设法做到这一点?

1 个答案:

答案 0 :(得分:0)

通常这样做的方法是拥有一个"语言表"带有身份证。您网站上的所有文字都保存在该表格中,每个文字部分都有一个标识语言的ID,以及一个标识哪个文本块的TextID。

当您的用户访问该网站并且他们的偏好为英语时,会显示来自与英语匹配的ID的文本。其他语言也是如此。

--------------------------------------
| id | language | text      | textId |
| 1  | English  | Hello     |   1    |
| 2  | Spanish  | Hola      |   1    |
| 3  | German   | Guten Tag |   1    |
--------------------------------------

这里的想法是,当用户访问该网站时,您可以从数据库中提取:

SELECT text from languageTable where id=1 and textID=1

哪会回来"你好" 或

SELECT text from languageTable where id=2 and textID=1

哪会回归" Hola"

困难的部分是使用您需要的每种语言在网站上填写每一段文字。但是一旦完成,您的页面就会填充所需的语言。