2017-06-14 38 views
0

我正在使用laravel 5.4,我的应用程序支持LTR和RTL语言,我的问题是如何在用户选择RTL语言时反向显示我的内容并明确反转?基于laravel中的语言的网站方向

+0

从右到左像(波斯语,阿拉伯语,希伯来语),LTR like(英语) – djhru

回答

0

你会想看看为此整合Laravel的本地化功能。

https://laravel.com/docs/5.4/localization

每一种语言都有它的翻译存储在资源/ lang目录短语。然后根据用户的浏览器设置,应用程序将显示正确的翻译文本。

+0

没有人,我有翻译语言,它工作正常我的问题是关于页面方向。 – djhru

+0

如果它只是您需要更改的文本方向,请考虑使用CSS方向属性:https://www.w3schools.com/cssref/pr_text_direction.asp。然后,您可以根据用户的本地化设置正确的元素类。 – btl

0

,你可以尝试写一个JS功能onchange事件的RTLLTR

$(document).on('change', '#language_selector' , function() { 
    var locale = $(this).val(); 
    $.ajax({ 
     url: "{{ url('change_language') }}", 
     type: "POST", 
     data: { 
      locale: locale 
     }, 
     success: function() { 
      window.location.reload(); 
     } 
    }); 
}); 

并附加路线设置基础上,区域,那么你可以在现场

Route::post('change_language', function() { 
    $locale = Input::get('locale'); 
    App::setLocale($locale); 
}); 

,并在您的视图设置样式css

@if(App::getLocale() == 'en') 
<link href="ltr.css" type="stylesheet" /> 
@else 
<link href="rtl.css" type="stylesheet" /> 
@endif 
0

我有同样的问题,一些调查后,我没有以下过程:

  1. 添加以下代码到我的语言文件:

    'page_direction'=> 'RTL',

你可以通过​​文档了解关于此主题的更多信息。

  • 在此之后添加以下代码以我的主模板:

    类= “{{__( 'global.page_direction')}}”

  • 在这个时候,我可以定义特殊的CSS代码,当主体元素有RTL级这样的:

    body.rtl .element {浮法:右}