私はSymfony3アプリケーションで翻訳を実装しています。私はthe bookを読んで、私のルートの始めに_locale
varを実装しました。また、/
から/en
へのリダイレクトを設定し、トランスレータフォールバックを定義しました。symfony3のローカル言語がFOSUserBundleルートで使用されていません
これは、FOSUserBundleルートを除いて、意図して動作しています。彼らは自分のルーティングで定義されていないので、{_locale}の世話をしませんし、私はそれらを訪問するときにデフォルトの言語にリセットします。 (/de/mypage
=>/profile
=>/en/mypage
)
私の翻訳ファイルがapp/ressources/translations
に格納され、すべての私の翻訳は小枝側を行っています。
app_localized:
resource: "@AppBundle/Controller/"
type: annotation
prefix: /{_locale}
app:
path:/
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /en
permanent: true
私はそれがコントローラに翻訳を設定するために助言された本の中で見ましたが、私の場合、私はいくつかを持って、それはそれらの各言語のチェックを繰り返すように貴重だとは思いません。
私はまた、セッション中にvarを保存し、グローバルリスナーを置くことを考えていますが、少し余裕があるようですので、おそらく何か不足していると思います。
したがって、FOSUserBundleルートを含め、各コントローラでリピートコードなしでglobal language throught URLを処理する方法はありますか?
実際、私のFOSRoutはそうです。 fos_js_routing: リソース: "FOSJsRoutingBundle /リソース/設定/ルーティング/ routing.xml @"
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
prefix: /{_locale}
requirements:
_locale: '%app_locales%'
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /{_locale}/profile
requirements:
_locale: '%app_locales%'
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /{_locale}/register
requirements:
_locale: '%app_locales%'
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /{_locale}/resetting
requirements:
_locale: '%app_locales%'
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /{_locale}/profile
requirements:
_locale: '%app_locales%'
はい私はフォールバックとdefault_localeパラメータを実装しました。ルートについては、私は試しましたが、まだ問題があります。現在の言語を変更しようとしたときも同じです –
FOSUserルートでrouting.ymlをすべて見ることはできますか? –
確かに、最初の投稿を編集します –