Laravel的本地化
一.简介
Laravel 的本地化功能提供方便的方法来获取多语言的字符串.语言包存放在 resources/lang 文件夹的文件里。在此文件夹内应该有网站对应支持的语言并将其对应到每一个子目录:
/resources
/lang
/en
messages.php
/es
messages.php
语言包简单地返回键值和字符串数组,例如:
return [
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];
二.切换语言
1.网站的默认语言保存在 config/app.php 配置文件;
'locale' => 'zh_CN', #指定了了系统使用哪种语言,这将对应resources/lang下的文件夹zh_CN
'fallback_locale' => 'en', #备用语言
2.获得当前使用的语言
return App::getLocale();
三.基本用法
1.获取对应的语言文字
你可以使用 trans 辅助函数来获取语言字符串,trans 函数的第一个参数接受文件名和键值名称,例如,从 resources/lang/messages.php 语言包获取名称为 welcome 的句子:
echo trans('messages.welcome');
当然,若你使用了 Blade 模版引擎, 则可以使用 {{ }} 来输出句子:
{{ trans('messages.welcome') }}
@lang('messages.welcome')
如果句子不存在, trans 方法将会返回键值的名称,如上例子会返回 messages.welcome 。
2.变量替换
如果需要,你也可以在语言包中定义占位符,占位符使用 : 开头,例如,你可以自定义一则欢迎消息的占位符:
'welcome' => 'Welcome, :name',
接着,传入替代用的第二个参数给 trans 方法:
echo trans('messages.welcome', ['name' => 'Dayle']);
如果你的占位符使用的是大写,翻译过来的内容也会相应的转换为大写:
'welcome' => 'Welcome, :NAME', // Welcome, DAYLE
'goodbye' => 'Goodbye, :Name', // Goodbye, Dayle
四.重写扩展包的语言
部分扩展包带有自己的语言包,你可以通过在 resources/lang/vendor/{package}/{locale} 放置文件来重写它们,而不是直接修改扩展包的核心文件。
例如,你需要重写 skyrim/hearthfire 扩展包的英文语言包 messages.php,则需要把文件放置在 resources/lang/vendor/hearthfire/en/messages.php。所有没有重写的语句仍将会从扩展包的语言包中被加载。
五.表单验证中文化
1.默认情形下表单验证没有中文语言包,所以为了更好的显示给中文用户提示,代码大致如下
$rule = ['content' => 'required|between:5,1000', 'img' => 'mimes:jpeg,bmp,png,gif|image|max:2048'];
$message = ['content.required' => '内容必须', 'content.between' => '内容在:min - :max个字符之间','img.image' => '图片类型不符', 'img.mimes' => '图片只允许jpg,bmp,png,gif格式', 'img.max' => '上传图片不能大于2M',]; $validator = Validator::make(Input::all(), $rule, $message); if ($validator->fails()) {
return back()->with('error', $validator->messages()->first())->withInput();
}
如果字段一多,将变得冗长繁琐
2.现在我们配置中文语言,减少代码
a.修改config/config.php中的locale为"zh_CN"
b.在resources/lang/下建立文件夹zh_CN
c.复制resources/lang/en下的文件到zh_CN
d.修改zh_CN文件夹下的validation.php下的,改成对应的中文提示;attributes数组则主要是字段提示,如email => '邮箱'
e.这样子代码就可以写成如下所示
$rule = ['content' => 'required|between:5,1000', 'img' => 'mimes:jpeg,bmp,png,gif|image|max:2048'];
$validator = Validator::make(Input::all(), $rule, $message); if ($validator->fails()) {
return back()->with('error', $validator->messages()->first())->withInput();
}
Laravel的本地化的更多相关文章
- Laravel 本地化定义
1.配置本地化语言Laravel 的本地化语言配置项位于config/app.php: [php] view plain copy 'locale' => 'zh',//当前语言 'fallba ...
- Laravel 5.4的本地化
简介 Laravel 的本地化功能提供方便的方法来获取多语言的字符串,让你的网站可以简单的支持多语言. 语言包存放在 resources/lang 目录下的文件里.在此目录中应该有应用对应支持的语言并 ...
- laravel5.2总结--本地化以及常量的使用
1.本地化 Laravel 的本地化功能提供方便的方法来获取多语言的字符串,让你的网站可以简单的支持多语言. 语言包存放在 resources/lang 文件夹的文件里.每一个子目录应该对应一种语言 ...
- PHP Laravel 本地化语言支持
That`s it. 我发如今网上Laravel的学习资料实在是太少了.好多东西须要自己去弄.去理解. 我的方法另一个,就是去github上面下载老外写的Laravel站点,然后拿下来自己执行 ...
- Laravel Vuejs 实战:开发知乎 (3)本地化和自定义消息
1.本地化 由于所有blade默认采用的是 _('')方式输出标签文本,所以可以安装一个语言包,直接指定本地语言为zh_CN即可: 安装 https://github.com/caouecs/Lara ...
- Laravel 验证中文本地化
1.使用bootsrap好看的提示样式 但是会提示英文 2.将提示中文本地化 2.1.在/resouce/lang下创建文件夹:zh 2.2.已经有小伙伴做好了翻译 https://gist.gith ...
- Laravel Model Factory(模型工厂)的用法以及数据本地化
Model Factory的位置 生成数据方法:make是生成数据,create是生成数据并保存到数据库 本地化方法 这样便生成了中文数据 整理自www.laravist.com视频教程
- laravel表单中文错误提示本地化
<?php return [ /* |-------------------------------------------------------------------------- | V ...
- laravel 登录+中间件拦截+红柚小说网小说采集+图片本地化
.......................登录界面 <!doctype html> <html lang="en"> <head> < ...
随机推荐
- bzoj 2159 - Crash 的 文明世界
Description 给定一棵\(n\le 10^5\)的树, 和\(k\le 150\) 求每个点\(x\)的\[S(x) = \sum_{y=1}^n dis(x, y) ^ k\] Analy ...
- 汕头市队赛 SRM 09 A 撕书
A 撕书I-3 SRM 09 背景&&描述 琉璃在撕书. 书总共有n页,都悬浮在数轴上,第i页的位置为,上面写着一个数字. 琉璃从右往左撕书.假如看到了第i页,就把在第 ...
- matlab-bgl 工具包配置环境 TDM-GCC-64 mex
Windows 64 + Matlab 64 MEX混合编程初步: http://blog.csdn.net/enjoyyl/article/details/46545263 使用的是 TDM-GCC ...
- shell编程学习笔记【原创】
本文为本人学习笔记,如有转载请注明出处,谢谢 一.Bourne Shell 有如下四种变量: 用户自定义变量 位置变量,即命令行参数 预定义变量 环境变量 二.位置变量 $ 与键入的命令行一样,包含脚 ...
- redis介绍与配置
redis 是什么 我们都知道 mysql.oracle 是关系型数据库,它们的特点就是像一个 Excel 表格一样,而且都是用 SQL 语句.但是你可能看到一种东西叫NoSQL.NoSQL 泛指非关 ...
- poj 2002(好题 链式hash+已知正方形两点求另外两点)
Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 18493 Accepted: 7124 Descript ...
- 天猫首页迷思之-jquery实现左侧广告牌图片轮播
本次要实现的是天猫首页每个楼层左侧的图片轮播效果.见图: 功能点有:点击右箭头向右滑动:点击左箭头向左滑动:什么都不点自动滑动. 1.实现样式.简单分析一下大概的html结构.一个大的div里面包含两 ...
- thinkphp函数学习(2)——microtime, memory_get_usage, dirname, strtolower, is_file
1. microtime() 返回 微秒 秒 这种格式的内容 例子 <?php echo(microtime()); ?> 输出: 0.25139300 1138197510 // 前 ...
- 网络爬虫框架Webmagic
1 谈谈网络爬虫 1.1 什么是网络爬虫 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我 ...
- android利用adb shell查看activity的栈
Android中怎么查看应用的activity栈? 1. 进入adb shell 2.可以直接输入dumpsys ,可以查看device的一些信息如 3.也可以直接输入 dumpsys activit ...