Laravel本地化波斯语邮件配置求助:JSON语言文件疑问
Laravel 本地化配置波斯语邮件(JSON语言文件版)
1. 创建波斯语JSON语言文件
在项目的resources/lang目录下新建fa.json文件(fa是波斯语的locale代码),文件采用键值对格式:键用你模板中@lang调用的原文(通常用英文),值对应波斯语翻译。示例:
{ "Welcome to our project": "خوش آمدید به پروژه ما", "Your verification code is :code": "کد تأیید شما :code است", "Hello :name": "سلام :name" }
注意文件编码必须是UTF-8,避免波斯语显示乱码。
2. 在邮件模板中使用@lang辅助函数
直接在Blade邮件模板里调用@lang,传入JSON文件中定义的键即可;带动态参数的话,直接传数组替换占位符:
<!-- 邮件模板示例 --> <h1>@lang('Welcome to our project')</h1> <p>@lang('Hello :name', ['name' => $user->full_name])</p> <p>@lang('Your verification code is :code', ['code' => $verificationCode])</p>
3. 发送邮件时切换到波斯语Locale
在触发邮件发送的逻辑里,先设置当前应用的locale为波斯语,确保翻译生效:
// 引入Facades(未自动引入时添加) use Illuminate\Support\Facades\App; // 切换到波斯语 App::setLocale('fa'); // 发送邮件 Mail::to($user->email)->send(new YourMailClass($user, $verificationCode));
如果是队列邮件,建议在邮件类的build方法里设置locale,避免队列执行时locale被其他请求覆盖:
public function build() { App::setLocale('fa'); return $this->view('emails.your-template'); }
4. 验证效果
发送测试邮件,检查内容是否正确显示波斯语。若出现乱码,确认JSON文件是UTF-8编码,且服务器环境支持波斯语字符。
内容的提问来源于stack exchange,提问作者Hesam Mahmoodi
相关产品推荐
相关产品推荐

