没有域名的Laravel翻译

时间:2014-10-17 15:39:39

标签: php laravel internationalization

使用Laravel的i18n功能时,我需要为每个区域设置和每个翻译“组”创建一个文件。例如,messages.php文件将返回一个通用消息数组,validation.php将返回一组验证消息,这两个文件对于我设置的每个语言环境都是存在的。这意味着我有一个lang/en/messages.php和一个lang/it/messages.php,每个都为每个指定的键都有正确的翻译字符串。

是否可以使用“通用”翻译文件,在调用Lang::get()时无需指定组?我想要做的是能够拨打Lang::get("MyString")而不是Lang::get("group.MyString")

1 个答案:

答案 0 :(得分:0)

在我的情况下,我需要修改Illuminate / Foundation / helpers.php

解决方案是默认采用域(在本例中为messages.php),然后在没有点的情况下将域添加到域($ id)。

function trans($id = null, $parameters = [], $domain = 'messages', $locale = null)
{
    if (is_null($id)) {
        return app('translator');
    }

    if (strpos($id, '.') === false) {
        $id = "messages." . $id;
    }

    return app('translator')->trans($id, $parameters, $domain, $locale);
}