Bagaimana untuk Mencipta Laluan Terjemahan Berbilang Bahasa dalam Laravel?

Barbara Streisand
Lepaskan: 2024-11-04 03:01:30
asal
154 orang telah melayarinya

How to Create Multilingual Translated Routes in Laravel?

Mencipta Laluan Terjemahan Berbilang Bahasa dalam Laravel

Dalam aplikasi Laravel, anda boleh mencipta laluan berbilang bahasa yang bergantung pada bahasa yang dipilih, membenarkan pengguna -pengalaman navigasi yang mesra.

Langkah 1: Konfigurasikan Direktori dan Terjemahan Bahasa

Buat tiga direktori bahasa berasingan di bawah app/lang (cth., pl, en, fr). Dalam setiap direktori, cipta fail bernama route.php yang mengandungi nama laluan yang diterjemahkan:

<code class="php">// app/lang/pl/routes.php
return array(
    'contact' => 'kontakt',
    'about' => 'o-nas'
);</code>
Salin selepas log masuk
<code class="php">// app/lang/en/routes.php
return array(
    'contact' => 'contact',
    'about' => 'about-us'
);</code>
Salin selepas log masuk
<code class="php">// app/lang/fr/routes.php
return array(
    'contact' => 'contact-fr',
    'about' => 'about-fr'
);</code>
Salin selepas log masuk

Langkah 2: Konfigurasikan Tetapan Bahasa

Dalam app/config/app.php:

  • Tetapkan 'locale' kepada bahasa lalai anda (cth., 'pl').
  • Sertakan senarai bahasa alternatif dalam 'alt_langs ' (cth., ['en', 'fr']).
  • Biar 'locale_prefix' kosong untuk awalan bahasa lalai.
<code class="php">'locale' => 'pl',
'alt_langs' => ['en', 'fr'],
'locale_prefix' => '',</code>
Salin selepas log masuk

Langkah 3: Tentukan Corak Laluan dan Kumpulan Bergantung Bahasa

Dalam app/routes.php:

  • Jika segmen pertama URL sepadan dengan bahasa alternatif, kemas kini locale dan locale_prefix .
  • Tetapkan corak laluan berdasarkan terjemahan bahasa semasa.
  • Buat kumpulan laluan dengan awalan bahasa digunakan.
<code class="php">if (in_array(Request::segment(1), Config::get('app.alt_langs'))) {

    App::setLocale(Request::segment(1));
    Config::set('app.locale_prefix', Request::segment(1));
}

foreach(Lang::get('routes') as $k => $v) {
    Route::pattern($k, $v);
}

Route::group(array('prefix' => Config::get('app.locale_prefix')), function() {

    Route::get('/', function () {
        return "main page - ".App::getLocale();
    });

    Route::get('/{contact}/', function () {
        return "contact page ".App::getLocale();
    });

    Route::get('/{about}/', function () {
        return "about page ".App::getLocale();
    });

});</code>
Salin selepas log masuk

Langkah 4 : Mengendalikan URL Tidak Diketahui

Dalam app/start/global.php:

  • Ubah hala mana-mana URL yang tidak diketahui ke awalan bahasa yang betul dengan kod status 301:
<code class="php">App::missing(function() {
   return Redirect::to(Config::get('app.locale_prefix'), 301);
});</code>
Salin selepas log masuk

Dengan melaksanakan langkah ini, anda akan mencipta laluan dinamik yang menyesuaikan diri dengan bahasa yang dipilih, memastikan pengalaman pengguna yang lancar merentas berbilang bahasa.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Laluan Terjemahan Berbilang Bahasa dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!