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.
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.
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'); // 输出“你好,世界。”
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';
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']);
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".
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
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', ];
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.
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.
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!