Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan perisian tengah untuk sokongan berbilang bahasa dalam Laravel

Cara menggunakan perisian tengah untuk sokongan berbilang bahasa dalam Laravel

王林
王林asal
2023-11-03 13:07:571251semak imbas

Cara menggunakan perisian tengah untuk sokongan berbilang bahasa dalam Laravel

Laravel ialah rangka kerja PHP yang digunakan secara meluas yang menyediakan banyak ciri dan alatan yang mudah, termasuk perisian tengah yang menyokong berbilang bahasa. Dalam artikel ini, kami akan memperincikan cara menggunakan perisian tengah untuk melaksanakan sokongan berbilang bahasa Laravel dan menyediakan beberapa contoh kod khusus.

  1. Konfigurasikan pek bahasa

Pertama, kita perlu mengkonfigurasi pek bahasa Laravel supaya ia boleh menyokong berbilang bahasa. Dalam Laravel, pakej bahasa biasanya diletakkan dalam direktori sumber/lang, di mana setiap bahasa mempunyai subdirektori yang sepadan. Sebagai contoh, jika kita ingin menyokong bahasa Inggeris dan Perancis, kita perlu mencipta dua subdirektori, en dan fr, dalam direktori sumber/lang.

Kemudian, dalam setiap subdirektori, kita perlu mencipta fail messages.php yang mengandungi semua rentetan yang ingin kita terjemahkan. Contohnya, cipta fail messages.php dalam direktori en seperti berikut:

return [
    'welcome' => 'Welcome to my website!',
    'about' => 'About us',
    'contact' => 'Contact us',
];

Seterusnya, buat fail messages.php dalam direktori fr seperti berikut:

return [
    'welcome' => 'Bienvenue sur mon site web!',
    'about' => 'À propos de nous',
    'contact' => 'Contactez-nous',
];

Dengan cara ini, kami telah mengkonfigurasi pakej bahasa. Seterusnya, kita perlu menulis middleware untuk melaksanakan sokongan berbilang bahasa.

  1. Buat middleware

Dalam Laravel, kita boleh menggunakan middleware untuk mengendalikan permintaan. Oleh itu, kami boleh mencipta perisian tengah yang menyemak tetapan bahasa pengguna dan memuatkan pek bahasa yang sesuai berdasarkan tetapan mereka. Berikut ialah contoh middleware yang mudah:

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateHttpRequest;

class SetLanguage
{
    public function handle(Request $request, Closure $next)
    {
        // 检查请求中是否设置了语言参数
        $language = $request->input('lang', 'en');

        // 检查语言包是否存在
        if (!in_array($language, ['en', 'fr'])) {
            abort(400, 'Invalid language');
        }

        // 设置当前语言
        app()->setLocale($language);

        // 继续处理请求
        return $next($request);
    }
}

Middleware ini akan membaca parameter lang dalam permintaan dan menetapkan bahasa semasa berdasarkan nilainya. Jika tiada parameter lang dalam permintaan, ia akan lalai kepada bahasa Inggeris. Jika bahasa yang tidak sah dinyatakan dalam permintaan, ia akan mengembalikan ralat HTTP 400.

Kami boleh mendaftarkan perisian tengah ini dalam fail app/Http/Kernel.php seperti berikut:

protected $middlewareGroups = [
    'web' => [
        AppHttpMiddlewareSetLanguage::class,
        // ...
    ],
    // ...
];

Dengan cara ini, setiap permintaan akan melalui perisian tengah ini dan menetapkan bahasa semasa.

  1. Menggunakan rentetan berbilang bahasa

Sekarang kami telah mengkonfigurasi pek bahasa dan perisian tengah, kami boleh menggunakan rentetan berbilang bahasa dalam kod kami. Laravel menyediakan fungsi terjemahan trans(), yang boleh memilih rentetan yang sepadan mengikut bahasa semasa. Sebagai contoh, kita boleh menggunakannya dalam paparan:

<h1>{{ trans('messages.welcome') }}</h1>

Dalam contoh ini, fungsi trans() akan memilih rentetan "selamat datang" yang sepadan berdasarkan bahasa semasa, jika bahasa semasa ialah bahasa Inggeris, ia akan mengembalikan "Selamat Datang ke laman web saya! ”, dan dalam bahasa Perancis ia akan mengembalikan “Bienvenue sur mon site web!”.

Selain pandangan, kami juga boleh menggunakan fungsi trans() di mana-mana sahaja dalam pengawal, pengesah borang, templat e-mel, dsb.

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan perisian tengah Laravel untuk mencapai sokongan berbilang bahasa dan memberikan beberapa contoh kod khusus. Dengan menggunakan pendekatan ini, kami boleh menambah kefungsian berbilang bahasa pada aplikasi kami dengan mudah.

Atas ialah kandungan terperinci Cara menggunakan perisian tengah untuk sokongan berbilang bahasa dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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