Menyelesaikan masalah "setlocale Tiada Kesan" Isu dalam PHP untuk Bahasa Jerman
Dalam PHP, fungsi setlocale() membenarkan pembangun mengkonfigurasi setempat tetapan, termasuk bahasa dan negara, untuk kategori tertentu. Walau bagaimanapun, kadangkala pengguna mungkin menghadapi isu di mana setlocale() nampaknya tidak menetapkan bahasa yang diingini.
Pertimbangkan senario berikut:
date_default_timezone_set('Europe/Berlin'); setlocale(LC_ALL, 'de_DE.utf8'); // Or setlocale(LC_ALL, 'de_DE@euro'); // Or setlocale(LC_ALL, 'de_DE'); // Or setlocale(LC_ALL, 'de'); // Or setlocale(LC_ALL, 'ge'); echo strftime('%B');
Apabila kod ini dilaksanakan, ia mengeluarkan "Jun" dan bukannya "Juni," yang merupakan terjemahan Jerman bagi bulan Jun. Ini menunjukkan bahawa setlocale() tidak berjaya menetapkan locale Jerman.
Punca dan Penyelesaian Kemungkinan
Salah satu sebab yang paling mungkin untuk setlocale() tidak berfungsi ialah kerana tempat Jerman tidak dipasang pada pelayan yang menjalankan skrip. Untuk menyemak ini, jalankan arahan berikut pada pelayan:
locale -a
Arahan ini akan menyenaraikan semua tempat yang dipasang pada pelayan. Jika tempat Jerman tidak ada, anda perlu memasangnya. Prosedur pemasangan mungkin berbeza bergantung pada sistem pengendalian pelayan. Rujuk dokumentasi pelayan atau hubungi penyedia pengehosan anda untuk mendapatkan bantuan.
Setelah tempat Jerman dipasang, mulakan semula pelayan web atau aplikasi PHP anda untuk memastikan perubahan berlaku. Anda kini sepatutnya dapat mengeluarkan nama bulan dalam bahasa Jerman menggunakan setlocale() dan strftime().
Atas ialah kandungan terperinci Mengapa `setlocale()` Tidak Menukar Bahasa dalam Kod PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!