我有一个名为SendReminders
的命令,当我使用App::setLocale('locale')
更改区域设置时,它似乎正在工作,因为当我App::getLocale()
返回正确的时候,但是当我要求翻译时,总是返回默认本地化。
这是我的 SendReminders 类:
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use App;
use Exception;
use Storage;
use Lang;
class SendReminders extends Command
{
protected $signature = 'send:reminders';
public function __construct(){
parent::__construct();
}
public function handle(){
App::setLocale('EN');
echo App::getLocale()."\n"; // <= Shows correctly 'EN'
echo Lang::get('general.contact')."\n"; // <= Shows correctly 'Contact'
App::setLocale('DE');
echo App::getLocale()."\n"; // <= Shows correctly 'DE'
echo Lang::get('general.contact')."\n"; // <= Doesn't show the correct value
}
}
我错过了一些让本地化工作的东西?
修改
有些异化行为正在发生,因为我的Mac正在运行但在Linux(Ubuntu)上却没有,看起来好像找不到我的文件夹/resources/lang/de/
答案 0 :(得分:0)
我解决了,问题是因为我用大写设置了区域设置。
所以,这是错误的:
App::setLocale('en');
应该是:
/resources/lang/en/
<强>解释强>
当您谈论目录时, MacOS 看起来不区分大小写,因此如果您执行“EN”或“en”并不重要,因为它会在没有{{1}}的情况下找到问题
但如果你在 Ubuntu 上进行,它会尝试找到大写的文件夹,在这种情况下,它不存在。