نسخه:

بومی سازی

معرفی

نمای لاراول Lang راه مناسبی برای بازیابی رشته ها به زبان های مختلف فراهم می کند که به شما امکان می دهد به راحتی از چندین زبان در برنامه خود پشتیبانی کنید.

فایل های زبان

رشته های زبان در فایل های داخل resources/lang دایرکتوری ذخیره می شوند. در این دایرکتوری باید برای هر زبانی که توسط برنامه پشتیبانی می شود یک زیر شاخه وجود داشته باشد.

/resources
/lang
/en
messages.php
/es
messages.php

فایل زبان مثال

فایل های زبان به سادگی یک آرایه از رشته های کلیددار را برمی گرداند. مثلا:

<?php
 
return [
'welcome' => 'Welcome to our application'
];

تغییر زبان پیش فرض در زمان اجرا

زبان پیش فرض برنامه شما در config/app.php فایل پیکربندی ذخیره می شود. می توانید زبان فعال را در هر زمانی با استفاده از App::setLocale روش زیر تغییر دهید:

App::setLocale('es');

تنظیم زبان بازگشتی

همچنین می توانید یک "زبان بازگشتی" را پیکربندی کنید، که زمانی استفاده می شود که زبان فعال شامل یک خط زبان معین نباشد. مانند زبان پیش‌فرض، زبان بازگشتی نیز در config/app.php فایل پیکربندی پیکربندی شده است:

'fallback_locale' => 'en',

استفاده پایه

بازیابی خطوط از یک فایل زبان

echo Lang::get('messages.welcome');

اولین بخش رشته ای که به get متد ارسال می شود، نام فایل زبان است و دومین قسمت نام خطی است که باید بازیابی شود.

نکته: اگر خط زبان وجود نداشته باشد، کلید با get روش برگردانده می شود.

همچنین می توانید از trans تابع helper که نام مستعار متد است استفاده کنید Lang::get .

echo trans('messages.welcome');

انجام تعویض در خطوط

همچنین می توانید مکان نگهدارنده ها را در خطوط زبان خود تعریف کنید:

'welcome' => 'Welcome, :name',

سپس، آرگومان دوم جایگزینی را به Lang::get متد ارسال کنید:

echo Lang::get('messages.welcome', ['name' => 'Dayle']);

تعیین کنید که آیا یک فایل زبان حاوی یک خط است

if (Lang::has('messages.welcome'))
{
//
}

کثرت سازی

کثرت‌سازی یک مشکل پیچیده است، زیرا زبان‌های مختلف قوانین پیچیده‌ای برای کثرت‌سازی دارند. شما می توانید به راحتی این را در فایل های زبان خود مدیریت کنید. با استفاده از یک کاراکتر "pipe"، می توانید اشکال مفرد و جمع یک رشته را از هم جدا کنید:

'apples' => 'There is one apple|There are many apples',

سپس می توانید از Lang::choice روش برای بازیابی خط استفاده کنید:

echo Lang::choice('messages.apples', 10);

همچنین می توانید یک آرگومان محلی برای تعیین زبان ارائه دهید. به عنوان مثال، اگر می خواهید از زبان روسی (ru) استفاده کنید:

echo Lang::choice('товар|товара|товаров', $count, [], 'ru');

از آنجایی که مترجم لاراول از مؤلفه Symfony Translation پشتیبانی می‌کند، می‌توانید قوانین جمع‌سازی واضح‌تر را نیز به راحتی ایجاد کنید:

'apples' => '{0} There are none|[1,19] There are some|[20,Inf] There are many',

اعتبار سنجی

برای محلی‌سازی خطاها و پیام‌های اعتبارسنجی، به مستندات اعتبارسنجی نگاهی بیندازید .

لغو فایل های زبان بسته

بسیاری از بسته ها با خطوط زبان خاص خود ارسال می شوند. به جای هک کردن فایل‌های هسته بسته برای تغییر این خطوط، ممکن است با قرار دادن فایل‌ها در resources/lang/packages/{locale}/{package} فهرست، آنها را لغو کنید. messages.php بنابراین، برای مثال، اگر برای بسته ای به نام، نیاز دارید خطوط زبان انگلیسی را لغو کنید skyrim/hearthfire ، یک فایل زبان را در: قرار دهید resources/lang/packages/en/hearthfire/messages.php . در این فایل شما فقط خطوط زبانی را که می خواهید لغو کنید تعریف کنید. هر خط زبانی که لغو نکنید همچنان از فایل‌های زبان بسته بارگیری می‌شود.