【问题标题】:How to translate routes in Laravel?如何在 Laravel 中翻译路线?
【发布时间】:2023-03-20 12:22:01
【问题描述】:

基于question,我正在尝试将 Laravel 4.2 中的路线翻译成英语和西班牙语。

这是我的 app/routes.php 代码:

<?php


/*Set up locale and locale_prefix if other language is selected*/
if (in_array(Request::segment(1), Config::get('app.web_config.alt_langs'))) {

    App::setLocale(Request::segment(1));
    Config::set('app.web_config.locale_prefix', Request::segment(1));
}


foreach(Lang::get('routes') as $k => $v) {
    Route::pattern($k, $v);
}

Route::group(array('prefix' => Config::get('app.web_config.locale_prefix')), function()
{
    Route::get('/{revelar_fotos}/',['as' => 'revelado_online', 'uses' => 'WebController@reveladoOnline'], function(){
        return 'pages.revelado_online'.App::getLocale();
    });

});

通过单击链接,我在 url 中收到此错误:

http://mywebsite.dev/%7Brevelar_fotos%7D

代替:

http://mywebsite.dev/photograph-development

这是我的 en/routes.php:

<?php

return array(

    'revelar_fotos' => 'photograph-development',
);

这是我的 es/routes.php:

<?php

return array(

    'revelar_fotos' => 'revelado-online',
);

为什么我返回了这个错误?

【问题讨论】:

    标签: php laravel-4 routes multilingual


    【解决方案1】:

    我了解到您的问题在于生成 URL http://mywebsite.dev/%7Brevelar_fotos%7D

    在问题中,您只描述了您是如何设置路由处理的,这可能会起作用。但是,生成链接本身是在其他地方完成的,您还没有在其中进行替换。

    您必须生成类似这样的链接

    URL::to(trans("revelar_fotos"));
    

    trans("revelar_fotos") 将为您提供正确的路径,URL::to() 会生成完整链接。

    【讨论】:

    • 我将此添加到我的链接导航项 &lt;li class="nav-item"&gt;&lt;a href="{{URL::route(trans('revelar_fotos'))}}"&gt;{{trans('common.revelar_fotos')}}&lt;/a&gt;&lt;/li&gt; 但报告我此错误 -> Route [revelar_fotos] 未定义
    • 如果你更喜欢 URL::route() 而不是 URL::to() 那么你可以输入php artisan route:list 来查看可能的选项。另外请确保trans("revelar_photos") 翻译正确
    • 我用'as'数组键为我的路由指定了一个名称,按照你说的翻译它没有意义
    猜你喜欢
    • 2014-09-24
    • 2017-07-18
    • 1970-01-01
    • 2014-05-15
    • 2017-01-04
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多