Lokalisasi: Saya ingin backend: bahasa Inggris dan frontend dalam bahasa yang ditentukan

9

Saya ingin memiliki backend dari Wordpress dalam bahasa Inggris dan menggunakan lokal yang berbeda untuk frontend

sejauh ini saya mencari tahu mungkin saya bisa melakukannya dengan menetapkan di wpconfig lokal yang ingin saya gunakan di frontend, kemudian tambahkan di functions.php sesuatu seperti ini:

add_filter('locale', 'mytheme_backendlocale');
function mytheme_backendlocale($locale) {
    if ( is_admin() ) {
        return 'en_US';
    }
    return $locale;
}

apakah ini praktik terbaik untuk mencapai apa yang saya inginkan atau saya harus melakukannya secara berbeda?

unfulvio
sumber

Jawaban:

1

Ada plugin yang mungkin Anda butuhkan.

http://wordpress.org/extend/plugins/fe-be-localization/

Andy James
sumber
baik terima kasih, saya akan melihat kode, tetapi mungkin tidak akan menggunakannya karena tidak diperbarui sejak 2008 dan mendukung hingga WP 2.6 saja - jika saya suka dan memiliki kemampuan mungkin akan mencoba untuk berbicara dengan pengembang dan memperbaruinya
unfulvio
oh baru diperiksa, fungsinya hampir sama dengan fungsi yang saya tulis di atas, dengan gaya lain
unfulvio
Ya, sudah tua, tapi sepertinya satu-satunya di sekitar. Jika kodenya adalah bagaimana Anda melakukannya, maka saya kira jawabannya adalah Anda berada di jalur yang benar dan bagaimana saya akan melakukannya .. tidak bisa memikirkan cara yang lebih baik.
Andy James
1

Sampai sekarang, saya pikir jawaban Fulvio adalah yang terbaik. Saya menggunakan filter itu bahkan pada pengaturan multisite, hanya dengan satu baris:

add_filter('locale', 'set_admin_locale');
function set_admin_locale($locale) {
  return 'en_US';
}

Kadang-kadang pada dasarnya, dan dalam hal ini, saya menggunakan multisite untuk situs multi-bahasa, bukan plugin. Juga, saya punya 1 tema tunggal untuk setiap bahasa (biasanya tema anak dari bahasa utama). Jadi setiap situs jaringan memiliki bahasa sendiri, tetapi di sisi admin, saya membutuhkan semua antarmuka dalam bahasa Italia.

Jadi yang saya lakukan adalah:

  1. Saya tidak menggunakan konstanta WPLANG umum di wp-config.php
  2. Saya mengatur bahasa Italia di setiap situs jaringan
  3. Dalam setiap functions.php tema saya menggunakan filter di atas untuk mengontrol bahasa frontend / lokal.

CATATAN: filter itu tidak akan mengubah bahasa admin, jadi tidak perlu memeriksa apakah is_admin ()

Luca Reghellin
sumber
0

Jika ada yang masih mencari itu, inilah yang harus Anda lakukan sejak versi 4.7

function wp_noshor_redefine_locale($locale) {
    if( is_admin() ):
        switch_to_locale('en_US');
    endif;
}
add_filter('init','wp_noshor_redefine_locale');

Ini memaksa dasbor untuk memuat dalam bahasa Inggris, maka Anda dapat pergi ke pengaturan, mengatur bahasa yang Anda inginkan.

Motaz M. El Shazly
sumber