【问题标题】:Php storing multi language strings inside an objectphp在对象内存储多语言字符串
【发布时间】:2016-01-11 09:09:12
【问题描述】:

我正在使用以下函数在 javascript 中以两种语言存储用户消息:

function user_messages(es_ES, en_EN) 
{
     this.es_ES = es_ES;
     this.en_EN = it_IT;
}
var um_duplicated_input = new user_message('Contenido duplicado','Duplicated content');

这可能不是最佳实践,但对我来说,使用 locale 值按语言在我的代码中获取用户消息真的很方便。我想知道如何在 PHP 中实现简单的声明和处理,而不是一直构建新数组。一直在查看 stdclass 但无法使其正常工作。

【问题讨论】:

  • 你能详细说明你尝试了什么,为什么它不起作用。
  • 我见过的所有示例都过于复杂,无法声明每个值。除了新的独立数组而不是可重用的东西之外,我还没有找到一种方法来像在 javascript 中那样在一行中声明它。
  • 您可以通过使用您的 2 个属性创建一个类来将您的 js 转换为 php。您可以在构造函数中分配值或添加单独的方法。
  • 请用您看到的示例更新答案并解释为什么它们不能解决您的问题。你试过php对象php.net/manual/en/language.types.object.php吗?

标签: php string object multilingual


【解决方案1】:

尽管有像 Alex Blex 这样的人的帮助,他们宁愿质疑用户的合法性而不是帮助他们。对于那些将来可能正在寻找类似东西的人来说,这是一种工作方法(我认为这是本网站的主要目的)它肯定会更好,但我不知道如何让它更简单或更智能。

 class internal_message
 {
    public $message = array();

    public function setMsg($index, $newval)
    {
        $this->message[$index] = $newval;
    }

    public function getMsg($index)
    {
        return $this->message[$index];
    }
}

这样,你必须为每一种语言都做一个新的声明,但实际上它更加安全和清晰。我开始对这个网站感到非常失望,特别是关于帖子的英语质量等主题:就我而言,我是西班牙人,来自西班牙,我敢说你说的西班牙语和我说的英语一样好.我也会说德语和加泰罗尼亚语。但这不是语言的地方,事实上,如果有人拼错了一些东西,它会用一些人在谷歌搜索时拼错的内容来丰富你的数据库。 我不明白最近这些阶级和态度。

$error_message_wrong_pass = new internal_message;

$error_message_wrong_pass->setMsg("es_ES", "Password incorrecto");

$error_message_wrong_pass->setMsg("es_ES", "Wrong Password");

//To print them out

$error_message_wrong_pass->getMsg("es_ES");

【讨论】:

    猜你喜欢
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2013-02-25
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多