Rumah > rangka kerja php > YII > Sokongan berbilang bahasa dalam rangka kerja Yii: mencapai pengantarabangsaan

Sokongan berbilang bahasa dalam rangka kerja Yii: mencapai pengantarabangsaan

WBOY
Lepaskan: 2023-06-21 17:48:41
asal
1906 orang telah melayarinya

Dengan pecutan globalisasi, semakin banyak tapak web perlu menyokong berbilang bahasa. Sebagai rangka kerja PHP yang digunakan secara meluas, rangka kerja Yii menyediakan sokongan berbilang bahasa yang mudah dan boleh membantu kami mencapai pengantarabangsaan dengan lebih mudah.

  1. Apakah itu sokongan berbilang bahasa?

Sokongan berbilang bahasa, juga dikenali sebagai pengantarabangsaan (i18n), merujuk kepada teknologi menggunakan berbilang bahasa pada tapak web yang sama. Cara terbaik untuk memahami sokongan berbilang bahasa ialah dengan membandingkan sistem pengendalian dengan berbilang bahasa perisian.

Sebagai contoh, anda boleh menggunakan bahasa sistem pengendalian seperti bahasa Inggeris, Perancis, Cina, dsb. Anda kemudiannya boleh menggunakan editor teks dan pemalam penyemak imbas yang berbeza supaya anda boleh melihat fon yang berbeza untuk bahasa ini.

Tujuan menggunakan sokongan berbilang bahasa adalah untuk menjadikan tapak web anda sesuai untuk khalayak global dan meningkatkan kesan penyetempatan.

  1. Sokongan berbilang bahasa dalam rangka kerja Yii

Rangka kerja Yii menyediakan pelbagai cara untuk mencapai pengantarabangsaan. Pertama, ia menyediakan kaedah Yii::t(), yang boleh digunakan untuk menterjemah teks, ayat dan perenggan dalam paparan atau pengawal.

Berikut ialah contoh menggunakan kaedah Yii::t():

echo Yii::t('app', 'Hello World'); // 输出“你好,世界。”
Salin selepas log masuk

Di sini, "app" ialah pengecam aplikasi, yang boleh ditakrifkan dalam fail konfigurasi. Parameter kedua ialah teks yang akan diterjemahkan.

Kaedah Yii::t() akan mencari terjemahan berdasarkan tempat semasa aplikasi. Secara lalai, Yii menggunakan tempat pengguna semasa, yang diperoleh daripada pengepala permintaan HTTP. Rangka kerja Yii menyediakan cara yang mudah untuk menetapkan tempat semasa:

Yii::$app->language = 'zh-CN';
Salin selepas log masuk

Kod ini menetapkan tempat semasa kepada Bahasa Cina Ringkas.

Kaedah pengantarabangsaan lain yang tersedia ialah menggunakan kelas mesej rangka kerja Yii. Kelas mesej meletakkan keseluruhan rentetan terjemahan ke dalam fail sumber mesej. Sebagai contoh, kod berikut boleh digunakan untuk mentakrifkan mesej dalam rangka kerja Yii:

Yii::t('app', 'Hello {name}', ['name' => 'Tom']);
Salin selepas log masuk

Dalam contoh ini, "Hello {name}" ialah rentetan sumber mesej, yang boleh ditakrifkan dalam fail sumber mesej . Fail sumber mesej mestilah fail PO, yang mengandungi rentetan bahasa sumber dan rentetan bahasa sasaran.

Di sini, "Tom" ialah parameter yang akan diganti. Jika tempat semasa ialah bahasa Inggeris, kod ini akan mengeluarkan "Hello Tom". Jika tempat semasa ialah Perancis, kod ini akan mengeluarkan "Bonjour Tom".

  1. Cara mencipta fail sumber mesej

Format fail sumber mesej yang digunakan untuk menyimpan rentetan terjemahan adalah sangat penting. Rangka kerja Yii menyediakan cara yang mudah untuk mencipta fail ini menggunakan pengurus mesej rangka kerja Yii.

Untuk mencipta fail sumber mesej, jalankan arahan berikut dalam konsol aplikasi Yii anda:

yii message/extract config/messages.php
Salin selepas log masuk

Di mana config/messages.php ialah direktori tempat anda ingin meletakkan sumber mesej. Ia mestilah fail PHP yang mengandungi konfigurasi yang serupa dengan kod berikut:

return [
    'sourcePath' => __DIR__ . '/..',
    'languages' => [
        'zh-CN',
        'en-US',
    ],
    'translator' => 'Yii::t',
    'sort' => false,
    'overwrite' => true,
    'removeUnused' => false,
    'markUnused' => false,
    'phpTranslators' => ['Yii::t'],
    'messagePath' => __DIR__,
    'messageCategory' => 'app',
];
Salin selepas log masuk

Dalam contoh ini, 'messageCategory' ialah 'apl' yang digunakan di atas dan nilai kunci lain digunakan untuk Konfigurasikan parameter daripada fail sumber mesej.

Arahan ini akan memeriksa aplikasi anda, kemudian mengekstrak semua rentetan terjemahan dan mencipta fail sumber mesej baharu dalam direktori mesej.

  1. Perbandingan sokongan berbilang bahasa dalam rangka kerja Yii dengan rangka kerja lain

Rangka kerja Yii menyediakan banyak sokongan berbilang bahasa yang lebih mudah berbanding rangka kerja lain. Ia menyediakan kelas mesej dan kaedah t yang membolehkannya menukar teks, ayat dan perenggan dalam berbilang tempat hampir dengan lancar. Selain itu, rangka kerja Yii menyediakan alatan baris perintah yang mudah untuk membantu anda mengurus rentetan terjemahan.

Sebaliknya, banyak rangka kerja lain memerlukan anda mengendalikan rentetan terjemahan secara manual, yang boleh menjadikan kod itu bertele-tele dan sukar untuk dikekalkan. Untuk rangka kerja lain, anda mungkin perlu menggunakan kaedah tersuai atau perpustakaan pihak ketiga untuk mencapai fungsi yang serupa.

Selain itu, rangka kerja Yii menyediakan fail sumber mesej untuk menjadikan proses terjemahan lebih mudah, anda boleh terus mencari mesej dalam sistem tanpa mencari rentetan terjemahan.

  1. Ringkasan

Rangka kerja Yii menyediakan banyak kaedah yang mudah untuk mencapai pengantarabangsaan. Ia menyediakan kaedah t dan kelas mesej untuk membantu anda menukar teks, ayat dan perenggan dalam berbilang tempat dengan mudah.

Selain itu, rangka kerja Yii juga menyediakan alatan baris arahan yang mudah untuk membantu anda mengurus rentetan terjemahan, dan menyediakan fail sumber mesej supaya anda boleh mencari mesej terus dalam sistem.

Dengan menggunakan sokongan berbilang bahasa rangka kerja Yii, anda boleh menyediakan tapak web anda dengan mudah untuk menyesuaikan diri dengan bahasa dan budaya di seluruh dunia.

Atas ialah kandungan terperinci Sokongan berbilang bahasa dalam rangka kerja Yii: mencapai pengantarabangsaan. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan