umpirsky / i18n-routing-bundle
国际化路由,性能开销最小化。
1.0.0
2023-11-02 13:43 UTC
Requires
- php: ^7.4|^8.0
- symfony/framework-bundle: ^5.4|^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^9.6.13
- symfony/phpunit-bridge: ^6.0|^7.0
- symfony/var-dumper: ^5.4|^6.0|^7.0
- symfony/yaml: ^5.0|^6.0|^7.0
This package is auto-updated.
Last update: 2024-08-31 00:30:01 UTC
README
国际化路由包 • symfony 升级修复工具 • twig gettext 提取器 • wisdom • centipede • 权限处理器
UmpirskyI18nRoutingBundle
国际化路由,性能开销最小化。
理念
理念是为项目中每个常规路由创建国际化路由,而不是为每个语言创建单独的路由。在具有大量路由和多个支持语言的大型项目中,这可能会导致路由爆炸和性能问题。在拥有1000多个路由和30多种语言的场景下,这可能成为一个真正的问题。使用这个包和 prefix
策略,不会产生性能开销。对于 prefix_except_default
,路由数量翻倍,但同样,不依赖于语言数量。
安装
composer require umpirsky/i18n-routing-bundle
<?php class AppKernel extends Kernel { public function registerBundles() { return [ // ... new Umpirsky\I18nRoutingBundle\UmpirskyI18nRoutingBundle(), ]; } }
配置
umpirsky_i18n_routing: default_locale: en locales: [en, sr, ru]
使用
在路由级别禁用国际化路由
如果您希望路由不被本地化,您可以使用 i18n
选项禁用它
foo: path: /foo options: i18n: false
策略
支持多种路由策略。
prefix
这将给所有给定的语言添加前缀到URL
/en/foo
/sr/foo
/ru/foo
配置
umpirsky_i18n_routing: default_locale: en locales: [en, sr, ru] strategy: prefix
prefix_except_default
这将给所有给定的语言添加前缀到URL,除了默认语言
/foo
/sr/foo
/ru/foo
配置
umpirsky_i18n_routing: default_locale: en locales: [en, sr, ru] strategy: prefix_except_default
示例
有一个与 Symfony Standard Edition 的集成示例。
灵感
此包受到 JMSI18nRoutingBundle 和 BeSimpleI18nRoutingBundle 的启发,但为了性能牺牲了URL翻译功能。