braunstetter / localized-routes
获取本地化路由。
v0.1.2
2023-02-07 03:25 UTC
Requires
- php: ^8.0
- symfony/framework-bundle: ^4.4|^5.0|^6.0
Requires (Dev)
README
此包将您的请求重定向到以地区前缀命名的路由。
因此,如果当前语言是 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_locales
和 default_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
重定向