事实上,我正在寻找获取网址细分的方法并将其替换为另一个字符串名称,例如/setting
在我的视图中显示它{1}}阿拉伯语
经过研究,我发现الضبط
或substr_replace
可以实现这一目标
如下:
str_ireplace
如果我有许多不同的路线可以在 $seg2 = request()->segment(2);
($seg2 == 'setting') ? $seg2 = str_ireplace($seg2,'الضبط',$seg2) : $seg2 = str_ireplace($seg2,'another_segment_name', $seg2);
地方,我认为这种方法非常糟糕。
如果有任何其他方法可以实现,请帮助我,谢谢
答案 0 :(得分:1)
在我看来,您可以使用本地化文件,我的意思是,您可以使用Laravel's Localization功能。例如,将messages.php
文件放在resources/lang/ar
文件夹中,可以映射key => value
对,如:
<?php
return [
'settings' => 'الضبط',
'otherKey' => 'some Arabic word'
];
然后,您可以像下面一样使用它(它将用适当的值替换设置):
echo trans('messages.' . request()->segment(2));
// Or use this for blade template
{{ trans('messages.' . request()->segment(2)) }}
要使其正常工作,您需要在ar
文件中将语言环境(默认语言)设置为config/app.php
,但您可以自动化它,我的意思是,您可以在运行时设置语言环境。希望你明白了,只需正确阅读文档即可。顺便说一下,这只是一个想法,如果有必要,你可以采用不同的方式。
答案 1 :(得分:0)
感谢@The Alpha的帮助,事实上我已经实现了我的需求,但我做了一些改变以实现它我将展示它以帮助任何其他人需要这样做
首先我在segments.php
创建了resources/lang/ar
文件,并在ar
config/app.php
并在segments.php
<?php
// Segments Array for navigation paths on view
return [
'users' => 'المستخدمين', //maybe to be seg2
'settings' => 'الضبط', //also maybe to be seg2
];
在我看来
<!-- Simple condition to check if user on segment 2 or not and fetch the proper segment name according to incoming segment in url -->
{{(request()->segment(2) != '') ? trans('segments.'.request()->segment(2)) : '' }}