remmel/i18n-routing-bundle

此包允许您创建国际化路由。

安装: 643

依赖: 0

建议者: 0

安全: 0

星星: 1

关注者: 2

分支: 159

开放问题: 0

类型:symfony-bundle

5.0.1 2020-06-28 15:25 UTC

This package is auto-updated.

Last update: 2024-09-24 22:21:44 UTC


README

Build Status

每个区域设置的全前缀

该包允许您为每个区域设置配置主机+前缀。

对于以下网站

最小配置

配置将是

# config/packages/jms_i18n_routing.yaml
jms_i18n_routing:
    locales:
        en: //www.website.com
        de: //www.website.de
        fr_BE: //www.website.be/fr
        nl_BE: //www.website.be/nl

翻译配置

要翻译名为 "contact_page" 的德语路由

# translations/routes.de.yml
contact_page: /kontakt

因此,当调用

可选配置

要禁用特定路由的国际化功能:@Route("/api", options={"i18n"=false})

# app/config/routing.yaml
apiendpoint:
    ...
    options: { i18n: false }

要只为子集区域设置启用路由:@Route("/about", options={"i18n_locales"={"en", "de"}}) 这些区域设置必须在 jms_i18n_routing.locales 中配置

安装

下载包

composer req remmel/i18n-routing-bundle

启用包 - 对于不使用 Symfony Flex 的应用程序

// config/bundles.php

return [
    // ...
    JMS\I18nRoutingBundle\JMSI18nRoutingBundle::class => ['all' => true],
];

创建配置

使用 2 个 "文件夹" 的简单配置

# config/packages/jms_i18n_routing.yaml
jms_i18n_routing:
    locales:
        en: /eng
        de: /deu

当更新该配置时,可能需要清除缓存:bin/console cache:clear
运行 bin/console debug:router 检查配置是否正确

Symfony 示例应用程序

完整的 Symfony 应用程序示例

JMSI18nRoutingBundle 与 Symfony i18n 路由及该扩展

JMSI18nRoutingBundle

此代码基于 JMSI18nRoutingBundle
此分支已简化,仅保留与每个区域设置的前缀/主机相关的代码。

Symfony

Symfony 4.1 现在处理路由和前缀的翻译。Symfony 5.1 现在处理每个区域设置的不同主机。因此,如果要将路由翻译外部化(例如,在 routes.xx.yml 中),则该扩展很有用。
当该功能实现并将翻译外部化到 routes.??.yml 文件中时,该包将不再有用。