umpirsky/i18n-routing-bundle

国际化路由,性能开销最小化。

1.0.0 2023-11-02 13:43 UTC

This package is auto-updated.

Last update: 2024-08-31 00:30:01 UTC


README

国际化路由包symfony 升级修复工具twig gettext 提取器wisdomcentipede权限处理器

UmpirskyI18nRoutingBundle

国际化路由,性能开销最小化。

CI

理念

理念是为项目中每个常规路由创建国际化路由,而不是为每个语言创建单独的路由。在具有大量路由和多个支持语言的大型项目中,这可能会导致路由爆炸和性能问题。在拥有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 的集成示例。

灵感

此包受到 JMSI18nRoutingBundleBeSimpleI18nRoutingBundle 的启发,但为了性能牺牲了URL翻译功能。