【问题标题】:Defined and interchangeable website language定义和可互换的网站语言
【发布时间】:2012-10-28 18:04:11
【问题描述】:

如何让用户选择将网站上的文本语言更改为 PHP 中预定义的短语?

Facebook 就是一个例子,将语言更改为英语(海盗)不会产生翻译,而是检索在其他地方定义的许​​多不同短语。

我希望通过在我的网站中添加海盗语言来做同样的事情,让用户可以选择自己更改它。

我能想到的最好的事情是为每种语言创建一个包含变量的文件,然后在适用的地方调用这些变量,并通过某种方法在这些文件之间进行更改。虽然这个想法看起来俗气且不切实际,但我想知道是否有人对我如何做到这一点有任何其他想法。

谢谢大家!

【问题讨论】:

    标签: php translation


    【解决方案1】:

    您的想法与我在使用 CakePHP 时所经历的相似,其中包括使用 gettext 文件的国际化支持。 ide非常简单。您可以使用转换器函数输出所有需要翻译的字符串。在 Cakephp 1.X 中它是 __() 。所以如果我想翻译一个字符串 "hello world" ,我会这样做

    <?php 
    __('hello world');
    
    ?>
    

    知道应该翻译成哪种语言的诀窍在于设置会话语言或区域设置。在 Cakephp 中,它将“Config.language”设置为我希望翻译成的语言的简码(对于法语,我会将其设置为“fre”)。然后应用程序将在其语言环境文件夹中查找“fre”目录,从那里读取文件并查找“hello world”的字符串匹配并从那里获取其相应的翻译字符串(这可能不是 100% 准确)。我可以认为这是从文件中返回一个数组,然后使用键来匹配翻译。

    <?php
    return array(
    'hello world' => '123456',
    );
    
    ?>
    

    另一种方法是将字符串及其翻译存储在数据库中

    字符串、翻译、语言ID

    然后使用要翻译的字符串和语言ID或短代码查询db。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多