localize.dev

الوثائق / Laravel

ترجمة Laravel لـ Blade، آلية

انقل النصوص الثابتة في طرق عرض Laravel Blade إلى استدعاءات __() مع ترجمات lang/<locale>.json مفهرسة بالنص، في أمر واحد أو طلب سحب واحد.

كيف يعمل

يصبح النص في طرق عرض Blade {{ __('Hi :name, welcome back', ['name' => $user->name]) }}: سلاسل ترجمة JSON الخاصة بـ Laravel، مفهرسة بالنص نفسه، مع عناصر نائبة :name.

التوجيهات مثل @if تقسم الجمل؛ لا يتم الخلط بين عناوين البريد الإلكتروني والتوجيهات.

تصبح صيغ الجمع ({{ $n == 1 ? 'item' : 'items' }}، Str::plural('item', $n)) trans_choice(':count item|:count items', $n)، أشكال كل لغة بالترتيب الذي تختاره Laravel.

قبل وبعد

المخرجات الحقيقية للمحرك لهذا الملف. في تشغيل حقيقي، يقوم النموذج المستضاف بتسمية المفاتيح من السياق.

resources/views/cart.blade.php · قبل
@extends('layouts.app')
@section('content')
  <h1>Hi {{ $user->name }}, welcome back</h1>
  <input placeholder="Search products">
@endsection
resources/views/cart.blade.php · بعد
@extends('layouts.app')
@section('content')
  <h1>{{ __('Hi :name, welcome back', ['name' => $user->name]) }}</h1>
  <input placeholder="{{ __('Search products') }}">
@endsection
lang/en.json
{
    "Hi :name, welcome back": "Hi :name, welcome back",
    "Search products": "Search products"
}

ما يضيفه الإعداد

الإعداد الأول يقوم بإعداد سلاسل ترجمة Laravel إذا لم يكن المشروع يحتوي عليه بعد:

  • lang/<locale>.json لكل لغة
  • برنامج وسيط SetLocale في مجموعة الويب: ?locale=، ثم ملف تعريف ارتباط lang، ثم Accept-Language

قم بتشغيله

يتطلب CLI إصدار Node.js 22 أو أحدث، لا شيء آخر: npx يقوم بتشغيله دون إضافة package.json إلى المشروع. لا يوجد Node على جهازك؟ إجراء GitHub أدناه يقوم بتشغيله لك.

npx localize-dev login

# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de

# Or open a pull request instead
npx localize-dev pr -l es,fr,de

أو أضف إجراء GitHub واحصل على طلب سحب عند كل دفعة. جربه على الكود الخاص بك أولاً في ملعب.