infrajs/lang

此包的最新版本(v1.0.10)没有可用的许可信息。

多语言支持

v1.0.10 2021-09-14 13:33 UTC

This package is auto-updated.

Last update: 2024-09-20 12:12:58 UTC


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 参数传递选定的语言。不能在服务器上确定用户语言,因为这会导致缓存问题。