sjaakp / yii2-polyglot
为 Yii 2.0 框架提供超轻量语言选择器
Requires
- php: >=7.0.0
- yiisoft/yii2: ~2.0.14
This package is auto-updated.
Last update: 2024-08-29 13:56:34 UTC
README
为 Yii2 提供超轻量语言选择器
yii2-polyglot 是一个应用组件,包括两个带国旗按钮的 widget,用于选择应用程序语言。它可以在 Yii 2.0 PHP 框架中使用。
yii2-polyglot 是作为其他语言选择器的替代品开发的,在我看来,它们通常过于复杂。
yii2-polyglot 允许用户通过点击国旗按钮来选择她喜欢的语言。所选语言成为网站的主语言,并存储在 cookie 中。
以下是 Yii2-polyglot 的演示:这里。
安装
使用 Composer 以常规方式安装 yii2-polyglot。将以下内容添加到 composer.json
文件的 require 部分
"sjaakp/yii2-polyglot": "*"
或者运行
composer require sjaakp/yii2-polyglot
您可以通过 下载 ZIP 格式的源代码 来手动安装 yii2-polyglot。
使用 yii2-polyglot
首先,Polyglot 应该作为 应用组件 安装。这通常在主配置文件中完成,通常称为 web.php
或 main.php
,位于 config
目录中。将以下内容添加到配置数组中
<?php
'components' => [
// ... other components, like 'cache' and 'errorHandler'
'polyglot' => [
'class' => 'sjaakp\polyglot\Polyglot',
'languages' => [
'en-US' => 'English',
'de-DE' => 'Deutsch',
'fr-FR' => 'Français',
// ... more languages
]
],
// ... even more components
language
属性是一个语言数组(或更准确地说,是 locale),网站支持的语言。此数组的关键是 ICU 格式的区域设置名称,就像 Yii 推荐的 一样。其中之一应该与应用程序的 language
属性 相同。
数组的值应该是以下之一
-
string
语言的可读名称。它作为弹出提示显示。 -
array
包含两个键"label"
可读的语言名称;"flag"
要显示的国旗名称,不带.png
部分。
因此,要显示带有比利时国旗的荷兰语言,我们将使用
<php
'components' => [
// ... other components, like 'cache' and 'errorHandler'
'polyglot' => [
'class' => 'sjaakp\polyglot\Polyglot',
'languages' => [
'en-US' => 'English',
// ... more languages
'nl-NL' => [
'label' => 'Nederlands',
'flag' => 'be'
]
]
],
// ... even more components
如果数组值仅为 string
,则 Polyglot 将尝试自己推断国旗名称。
可以在 yii2-polyglot 的 assets/flags
目录中找到许多国旗(247 个)。顺便说一下,它们是由 famfamfam 制作的。
Bootstrap
Polyglot 必须进行引导。通过向应用程序配置数组添加以下内容来完成此操作
<php
'bootstrap' => [
'polyglot',
]
配置文件中可能已经存在一个 bootstrap
属性;只需将 'polyglot'
添加到其中即可。
Polyglot 选项
除了 languages 设置之外,Polyglot 还有三个其他选项
- useCookie
bool
如果设置为false
,则 Polyglot 将 不 在 cookie 中存储首选语言,而是在 PHP 会话中。因此,语言选择将仅在单个会话中持久化。默认:true
。 - cookieName
字符串
如果 useCookie 设置为false
,则也用作会话键。默认:"polyglot"
。 - cookieStamina
整数
Cookie过期时间(秒)。默认:31536000
(一年)。
小部件
yii2-polyglot 包中有两个小部件。 PolyglotButtons 以旗帜按钮的行显示语言选项。 PolyglotDropdown 是一个下拉菜单。在 View
的任何位置渲染 yii2-polyglot 小部件只需要
<?php
use sjaakp\polyglot\PolyglotButtons;
?>
...
<?= PolyglotButtons::widget() ?>;
...
或者
<?php
use sjaakp\polyglot\PolyglotDropdown;
?>
...
<?= PolyglotDropdown::widget() ?>;
...
由于你很可能想在所有页面上都使用 Polyglot 小部件,因此小部件的最佳位置是布局视图文件(或布局视图文件之一)。
小部件选项
PolyglotButtons 和 PolyglotDropdown 有以下选项
- options
数组
周围元素的HTML选项。默认:[]
。 - buttonOptions
数组
单个旗帜按钮的HTML选项。默认:[]
。 - toggleOptions
数组
(仅限 PolyglotDropdown)切换按钮的HTML选项。默认:['class' => 'nav-link']
。