如何在laravel中显示不同语言型号名称

ut6juiuv  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(138)

我有一个名为employees的模型,它有一个拉丁语和阿拉伯语名称,因此我在迁移中使用了以下代码:

public function up()
    {
        Schema::create('employees', function (Blueprint $table) {
            $table->id();
            $table->string('picture');
            $table->string('name');
            $table->string('name_ar');
            $table->string('name_fr');
            $table->string('position');
            $table->string('position_ar');
            $table->string('position_fr');
            $table->timestamps();
        });
    }

我希望根据本地化语言显示正确的名称,例如,如果本地化语言为'fr',我应该显示name_frname_ar(对于'ar'),我使用的是localization package
现在我想到了这个:

@if (Lang::locale() == 'ar')

            <h4 class="text-white"> {{ $employee->name_ar }} </h4>
            <div class="flex items-center gap-x-1">
                <img src="{{ asset('assets/eye-icon.svg') }}" alt="eye">
                <p class="text-white text-sm">{{ $employee->position_ar }}</p>
            </div>

        @elseif(Lang::locale() == 'fr')

            <h4 class="text-white"> {{ $employee->name_fr }} </h4>
            <div class="flex items-center gap-x-1">
                <img src="{{ asset('assets/eye-icon.svg') }}" alt="eye">
                <p class="text-white text-sm">{{ $employee->position_fr }}</p>
            </div>

        @else

            <h4 class="text-white"> {{ $employee->name }} </h4>
            <div class="flex items-center gap-x-1">
                <img src="{{ asset('assets/eye-icon.svg') }}" alt="eye">
                <p class="text-white text-sm">{{ $employee->position }}</p>
            </div>

@endif

是否有更好的方法以正确的语言显示名称,例如在控制器或Lang目录中?

mklgxw1f

mklgxw1f1#

你可以用这样的一句话来实现

{{ $employee->{'name_' . app()->getLocale()} ?? $employee->name }}

感谢@Tim刘易斯的提及。

相关问题