fabiang/laminas-language-route

为每个路由添加语言前缀

v2.1.0 2024-02-02 12:15 UTC

This package is auto-updated.

Last update: 2024-08-31 00:37:38 UTC


README

模块,将语言添加到每个路由的开头,并在MvcTranslator中设置选定的语言。

Latest Stable Version PHP Version Require License Continuous Integration

安装

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。