Komponen Terjemahan Symfony ialah alat berkuasa yang boleh digunakan untuk memudahkan pembangunan tapak berbilang bahasa. Dalam artikel ini, kami akan memperkenalkan cara menggunakan komponen PHP dan Symfony Translation untuk melaksanakan tapak web berbilang bahasa.
Apakah komponen Terjemahan Symfony?
Komponen Terjemahan Symfony ialah sebahagian daripada rangka kerja Symfony dan digunakan untuk memudahkan pembangunan tapak berbilang bahasa. Ia menyediakan cara yang mudah dan fleksibel untuk menyetempatkan dan menterjemah sumber. Anda boleh menggunakannya dalam projek peribadi atau profesional.
Bagaimana untuk menggunakan komponen Terjemahan Symfony untuk mencapai sokongan berbilang bahasa?
Untuk menggunakan komponen Terjemahan Symfony, anda perlu mencipta fail terjemahan. Ini biasanya fail YAML yang menyenaraikan fail yang akan diterjemahkan dan terjemahan yang sepadan. Katakan anda sedang mencipta tapak dalam bahasa Inggeris dan Cina, dan anda ingin menterjemah semua medan teks ke dalam kedua-dua bahasa. Anda boleh membuat fail seperti berikut.
Langkah pertama: Buat fail terjemahan
1 Buat direktori src/terjemahan untuk menyimpan fail.
2. Cipta dua fail: messages.en.yaml (Bahasa Inggeris) dan messages.zh.yaml (Bahasa Cina).
3. Tambahkan terjemahan dalam setiap fail seperti berikut:
messages.en.yaml:
welcome: Welcome to our website! about: About us contact: Contact us
messages.zh.yaml:
welcome: 欢迎来到我们的网站! about: 关于我们 contact: 联系我们
Langkah 2: Gunakan komponen terjemahan dalam projek Symfony
Komponen Terjemahan Symfony, anda perlu menambahkannya dalam projek Symfony anda. Dengan mengandaikan bahawa anda telah mencipta projek Symfony dan memasang komponen Terjemahan Symfony, anda perlu memanggilnya dalam pengawal atau templat untuk melaksanakan sokongan berbilang bahasa. Di sini saya akan menunjukkan cara melaksanakannya dalam pengawal.
1. Tambahkan ruang nama yang diperlukan
use SymfonyComponentTranslationTranslatorInterface; use SymfonyComponentHttpFoundationResponse;
2 Buat pengawal
public function index(TranslatorInterface $translator) { $welcome = $translator->trans('welcome'); $about = $translator->trans('about'); $contact = $translator->trans('contact'); return new Response( '<html><body>'.$welcome.' '.$about.' '.$contact.'</body></html>' ); }
3 Panggil komponen Symfony Translation dalam pengawal
Dalam contoh ini, kami menggunakan mekanisme suntikan perkhidmatan automatik Symfony atau gunakan suntikan pembina. Dalam kaedah pengawal, kami membuat instantiate penterjemah dan menggunakan kaedah trans untuk mendapatkan terjemahan yang sepadan. Dalam contoh ini, kami memanggil kaedah trans untuk mendapatkan kandungan terjemahan teks alu-aluan, perihal dan hubungan daripada fail messages.en.yaml atau messages.zh.yaml.
4. Ikat pengawal dalam laluan
index: path: /{_locale} controller: AppControllerDefaultController::index requirements: _locale: '%app_locales%'
Dalam laluan di atas, kami menggunakan {_locale} untuk mewakili tetapan bahasa tapak web. Ia adalah parameter yang mengenal pasti bahasa yang dituturkan oleh pengguna. Contohnya, jika pengguna berbahasa Inggeris, anda boleh menghantar "en" kepada pembolehubah _locale supaya penterjemah boleh mencari terjemahan dalam fail messages.en.yaml.
Akhir sekali, tambahkan konfigurasi dalam fail config/packages/translations.yaml untuk menentukan bahasa yang disokong.
# config/packages/translations.yaml framework: default_locale: '%locale%' # 站点默认语言 translator: default_path: '%kernel.project_dir%/translations' fallbacks: - '%locale%' paths: - '%kernel.project_dir%/tests/translations' - '%kernel.project_dir%/vendor/symfony/form/Resources/translations' - '%kernel.project_dir%/vendor/symfony/security-bundle/Resources/translations' - '%kernel.project_dir%/src/MyBundle/Resources/translations' loaders: xlf: 'SymfonyComponentTranslationLoaderXliffFileLoader' yaml: 'SymfonyComponentTranslationLoaderYamlFileLoader'
Ini adalah proses menggunakan komponen Terjemahan Symfony untuk mencapai sokongan berbilang bahasa. Anda boleh mengikuti langkah di atas untuk membuat tapak berbilang bahasa yang anda inginkan. Pendekatan ini merentas platform dan menyokong semua bahasa dan wilayah utama.
Atas ialah kandungan terperinci Bagaimanakah php menggunakan komponen Terjemahan Symfony untuk sokongan berbilang bahasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!