braunstetter/localized-routes

获取本地化路由。

安装: 348

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v0.1.2 2023-02-07 03:25 UTC

This package is auto-updated.

Last update: 2024-09-07 21:18:14 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Total Downloads License

此包将您的请求重定向到以地区前缀命名的路由。

因此,如果当前语言是 en,则 /news 将变为 /en/news

本地化路由是过去在StackOverflow等网站上反复讨论的话题。

我认为使用经过良好测试的包来此目的,而不是为每个项目编写一个新的监听器会更好。然后,社区可以进一步开发和改进此包。

安装

composer require braunstetter/localized-routes

现在您可以给控制器路由添加前缀

# annotations.yaml
controllers:
  resource: ../../src/Controller/
  type: annotation
  prefix: /{_locale}

完成了!您的空白路由正在被重定向到本地化路由。

配置

由于框架包已经提供了两个配置值(default_locale,enabled_locales),我们可以使用这些来配置我们的重定向过程。

framework:
  default_locale: en
  enabled_locales: [ 'es', 'en' ]

default_locale

这只是回退地区。如果没有设置,Symfony 将尝试根据您的系统设置确定一个值。最可能是 'en'。

enabled_locales

如果没有指定此值,则允许所有地区。如果您在这里传递一个值数组,选择将相应地限制。

参数

此包公开了框架包的 enabled_localesdefault_locale 配置值作为参数。此外,您还有一个 enabled_locales_string 参数 - 连接您的 enabled_locales,例如:de|en|es

因此,您可以在配置文件中使用这些地区特定的参数

# annotations.yaml
controllers:
  resource: ../../src/Controller/
  type: annotation
  prefix: /{_locale}
  requirements:
    _locale: '%enabled_locales_string%'
  defaults:
    _locales: '%default_locale%'

此包当然可以改进。如果您有任何问题或改进建议,请毫不犹豫地创建一个新的问题或提交PR。

待办事项

  • 在文档中添加属性
  • 在文档中添加语言切换器的解释
  • 在不支持的地区重定向到默认地区 - 例如,当只支持 de|en 时,将 /es/my_route 重定向