در اصل، laravel-translation-manager به‌طور خودکار روی یک URL پیش‌فرض (مثلاً «/translations») باز نمی‌شود، زیرا این پکیج به شما اجازه می‌دهد تنظیمات مربوط به مسیر (route) و middleware‑های آن را به دلخواه خودتان سفارشی کنید. در ادامه این آموزش از رادیب به چند نکته کلیدی اشاره می‌کنم:

  1. قابلیت سفارشی‌سازی مسیرها
    پکیج از یک فایل پیکربندی (config/translation-manager.php) استفاده می‌کند که در آن شما می‌توانید پیشوند (prefix) مسیر و همچنین middleware‑هایی که برای دسترسی به رابط کاربری ترجمه استفاده می‌شود را تنظیم کنید. به عنوان مثال، اگر بخواهید از مسیر «/translations» استفاده کنید باید آن را در فایل پیکربندی به این شکل تنظیم کنید:

    'route' => [
        'prefix'     => 'translations',
        'middleware' => ['web', 'auth'], // در لاراول 5.2 و بالاتر باید middleware 'web' هم اضافه شود
    ],
    

    در صورتی که این تنظیمات را تغییر ندهید یا تنها «auth» را بدون «web» قرار دهید، به خصوص در نسخه‌های جدید لاراول که sessionها و دیگر امکانات web middleware نیاز است، رابط کاربری به درستی نمایش داده نمی‌شود.

  2. نیاز به انتشار (publish) پیکربندی و ویوها
    برای استفاده از پکیج لازم است دستور زیر را اجرا کنید تا فایل‌های پیکربندی و ویوهای پیش‌فرض منتشر شوند:

    php artisan vendor:publish --provider="Barryvdh\TranslationManager\ManagerServiceProvider" --tag=config
    php artisan vendor:publish --provider="Barryvdh\TranslationManager\ManagerServiceProvider" --tag=views
    

    اگر این کارها را انجام ندهید، پکیج به دلیل عدم وجود تنظیمات سفارشی یا ویوهای منتشرشده، به درستی بارگذاری نخواهد شد.

  3. ملاحظات امنیتی و کنترل دسترسی
    یکی از دلایل اصلی اینکه رابط ترجمه به صورت پیش‌فرض «باز» نمی‌شود این است که می‌خواهد از دسترسی غیرمجاز جلوگیری کند. به همین دلیل پکیج به شما اجازه می‌دهد تا از middleware‑هایی مانند auth (و در صورت نیاز web) استفاده کنید تا فقط کاربران مجاز (مثلاً مدیران) بتوانند به این بخش دسترسی پیدا کنند. این امر به خصوص در محیط‌های production اهمیت زیادی دارد.

  4. نسخه‌های لاراول و تغییرات middleware
    در لاراول‌های 5.2 و بالاتر، middleware‑ی «web» برای دسترسی به session و سایر امکانات ضروری الزامی است. اگر در فایل پیکربندی تنها از «auth» استفاده شود، اطلاعات session به درستی لود نمی‌شوند و این منجر به عدم نمایش صحیح رابط کاربری پکیج می‌شود. بنابراین افزودن «web» به آرایه middleware ضروری است.

مثال عملی

فرض کنید تنظیمات اولیه پکیج به صورت زیر است:

خرید سرور مجازی و سرور ابری با بهترین قیمت از رادیب، کلیک کنید

// config/translation-manager.php
'route' => [
    'prefix'     => 'translations',
    'middleware' => 'auth', // مشکل اینجاست!
],

برای کارکرد درست در لاراول 5.2 و بالاتر، باید آن را به شکل زیر تغییر دهید:

// config/translation-manager.php
'route' => [
    'prefix'     => 'translations',
    'middleware' => ['web', 'auth'],
],

سپس مطمئن شوید که فایل‌های پیکربندی و ویوها را منتشر کرده‌اید:

php artisan vendor:publish --provider="Barryvdh\TranslationManager\ManagerServiceProvider" --tag=config
php artisan vendor:publish --provider="Barryvdh\TranslationManager\ManagerServiceProvider" --tag=views

و در نهایت با اجرای دستور:

ثبت آنی دامنه تنها با سه کلیک، همین حالا دامنه خود را ثبت کنید

php artisan config:clear

تنظیمات جدید اعمال شده و رابط کاربری پکیج باید در آدرس

http://yourdomain.com/translations

در دسترس باشد.

نکات اضافی

  • مکان دسترسی: توجه داشته باشید که پکیج به‌طور پیش‌فرض رابط کاربری خود را روی URL مشخص‌شده (مثلاً /translations) در اختیار شما قرار می‌دهد؛ یعنی اگر انتظار داشته باشید که در صفحه اصلی (/) باز شود، اینطور نیست.
  • تنظیمات امنیتی: از آنجا که ترجمه‌ها در دیتابیس ذخیره می‌شوند و اولویت آن‌ها بالاتر از فایل‌های زبانی است، تغییرات از طریق این رابط اعمال می‌شود؛ بنابراین تنظیمات امنیتی در محیط production بسیار مهم هستند.

به طور خلاصه، laravel-translation-manager به دلیل اینکه می‌خواهد به شما انعطاف کامل در تنظیم مسیر و امنیت بدهد، به صورت پیش‌فرض روی URL مشخصی باز نمی‌شود و شما باید تنظیمات مورد نیاز (مانند افزودن middleware مناسب و انتشار پیکربندی) را انجام دهید تا رابط کاربری آن به درستی در پروژه شما نمایش داده شود. در صورتی که سوالات بیشتری در این زمینه دارید با کارشناسان ما از بخش تیکت پشتیبانی در ارتباط باشید. 

آیا این پاسخ به شما کمک کرد؟ 131 کاربر این را مفید یافتند (131 نظرات)