使用laravel建立多语言网站的最佳方法是什么?

时间:2018-07-31 05:36:23

标签: laravel localization

我需要使用laravel构建一个Web应用程序,该应用程序将以不同的语言使用。处理多种语言不是问题,因为系统消息等将由本地化功能中内置的laravel处理。内容将通过外部内容平台(例如prismiccontentful)进行维护。

但是我在考虑如何处理多语言路线。例如。德国的路线:

Route::prefix('de')->group(function(){
    Route::get('profil', 'UserController@profile');
    Route::get('anmelden', 'Auth\LoginController@showLoginForm');
    Route::prefix('produkte')->group(function(){
        Route::get('{marke}', 'BrandController@showBrandDetails');
        Route::get('{marke}/{kategorie}', 'BrandController@showBrandCategories');
        // and more ...
    });
    // and more ...
});

如您所见,URL是特定于语言的。在英语中,“个人资料”将是“个人资料”,“ anmelden”将是“登录”。当然,我可以通过包装功能来处理语言,但是所有内部路线仍然是德语。因此,我将不得不为应用程序支持的每种语言创建这些路由组。

另一种方法是在包装的路由组中包括适当的路由:

Route::prefix('{language}')->group(function($language){
    if($app::languageExists($language)){
        Route::group(__DIR__ . "routes_" . $language . ".php");
    } else {
        Route::group(__DIR__ . "routes_" . $app::defaultLanguage . ".php");
    }
});

这样,路线会结构得更好一些。但是,我必须维护应用程序支持的尽可能多的特定于语言的路由文件,这对于许多种语言来说似乎有些混乱。

有没有一种方法可以很好且易于维护/扩展的方式处理此问题?

每种语言对应的控制器和方法都相同。

0 个答案:

没有答案