fabiang / laminas-language-route
为每个路由添加语言前缀
Requires
- php: ^7.4 || 8.0.* || 8.1.* || ~8.2.0 || ~8.3.0
- laminas/laminas-eventmanager: ^3.0.1
- laminas/laminas-modulemanager: ^2.7.2 || ^3.0
- laminas/laminas-mvc: ^2.7.10 || ^3.0.1
- laminas/laminas-mvc-i18n: ^1.0
- laminas/laminas-servicemanager: ^3.15
Requires (Dev)
- laminas/laminas-authentication: ^2.7
- laminas/laminas-coding-standard: ^2.3
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.6.16 || ^10.0
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.22
- webmozart/assert: ^1.11
Replaces
- xelax90/zf2-language-route: v2.1.0
This package is auto-updated.
Last update: 2024-08-31 00:37:38 UTC
README
模块,将语言添加到每个路由的开头,并在MvcTranslator中设置选定的语言。
安装
LanguageRoute的安装使用composer。有关composer文档,请参阅 getcomposer.org。
composer require fabiang/laminas-language-route
然后,将 Fabiang\LaminasLanguageRoute
添加到您的 config/application.config.php
要显示语言切换,您需要 usrz/bootstrap-languages 包。将 languages.css 添加到您的样式表中,并将 languages.png 放在同一个文件夹中。
配置
您可以为哪种前缀属于哪种语言进行配置。为此,将 config/laminas-language-route.global.php 复制到您的 config/autoload 文件夹中,并编辑数组。它应该与您的 MvcTranslator 配置具有相同的顺序,以正确猜测默认语言。
您还可以更改在无 RouteMatch 实例的页面(如 404)上用于切换语言的默认路由名称。
用法
安装后,路由器将自动在组装的任何URL之前添加语言。它还会将 'locale' 参数注入到任何 RouteMatch 实例中。您可以在任何 Controller 中使用以下示例代码来读取它
$locale = $this->getEvent()->getRouteMatch()->getParam('locale');
路由器还会检查在组装路由时是否提供了 'locale' 参数。使用它来强制特定的语言前缀
$this->url()->fromRoute('home', ['locale' => 'de_DE']); // will point to /de $this->url()->fromRoute('home', ['locale' => 'en_US']); // will point to /en
语言切换
languageSwitch ViewHelper 能够渲染一个简单的下拉列表来切换当前语言。它试图保持在同一页面上。如果生成404错误,它将链接到 home
路由。您可以通过配置来调整home路由。示例用法
echo $this->languageSwitch($renderMode, $currentLocale, $options);
所有参数都是可选的。
该助手有四种不同的渲染模式
LanguageSwitch::RENDER_TYPE_LIST_ITEM
(默认值):Bootstrap导航下拉列表项LanguageSwitch::RENDER_TYPE_NAVBAR
:完整的Bootstrap navbar列表,其中包含下拉列表项LanguageSwitch::RENDER_TYPE_DIV
:DIV容器,其中包含每个选项的div元素LanguageSwitch::RENDER_TYPE_SELECT
:选择表单元素LanguageSwitch::RENDER_TYPE_PARTIAL
:自定义部分 ViewScript
您可以将选项作为数组传递以修改输出的类和其他内容。有关选项的详细信息,请检查实现。
许可证
版权(C)2016 schurix,2022 Fabian Grutschus
本程序是免费软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它;许可证的第2版,或者(根据您的选择)任何较新版本。
本程序按照“希望它会有所帮助,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。”
您应该已经收到随本程序一起提供的GNU通用公共许可证副本;如果没有,请写信给自由软件基金会,Inc.,59 Temple Place - Suite 330,波士顿,MA 02111-1307,USA。