infrajs / lang
此包的最新版本(v1.0.10)没有可用的许可信息。
多语言支持
v1.0.10
2021-09-14 13:33 UTC
Requires
- infrajs/config: ~1
- infrajs/env: ~1
- infrajs/event: ~1
- infrajs/template: ~1
README
支持双字母标准 ISO 639
在 infrajs/env 环境中添加了 lang
参数。
实现了与 infrajs/template 模板集的集成。
通过 composer 安装
{
"require":{
"infrajs/lang":"~1"
}
}
使用方法
Lang.lang()
将返回用户在网站中选择的语言,例如 Lang.lang('user')
。可能的情况是,扩展的 user 没有必要的本地化,因此单独扩展的语言可能与整个网站选择的语言不同。
支持的语言列表在扩展的配置中指定。默认语言指定在网站默认语言也不受支持的情况下。
{
"lang":{
"list":["ru","en"],
"def":"ru"
}
}
如果数组 extlang.list 中没有,或者选择网站默认语言或 extlang.def 中的语言。extlang 是一个描述单个扩展设置的对象,包含两个属性 list 和 def,通常将它们放入扩展配置中。
为了方便使用,需要将其集成到特定的扩展中。翻译扩展本身不包含翻译,需要上下文。
与 infrajs/user 扩展的集成
public static function lang($str = null)
{
if (is_null($str)) return Lang::name('user');
return Lang::str('user',$str);
}
在模板中进一步使用 {User.lang(title)}
将返回所需语言下的 title,前提是扩展的 i18n 文件夹中有翻译。
如果翻译在服务器上的 PHP 脚本中完成,则需要明确通过 GET 参数传递选定的语言。不能在服务器上确定用户语言,因为这会导致缓存问题。