Apa cara terbaik membuat plugin yang siap terjemahan?
Itu tidak harus diterjemahkan dari awal tetapi harus mudah diterjemahkan sehingga sesama pengembang dari budaya yang berbeda dapat berpartisipasi dalam proses pelokalan plugin.
Apa cara terbaik membuat plugin yang siap terjemahan?
Itu tidak harus diterjemahkan dari awal tetapi harus mudah diterjemahkan sehingga sesama pengembang dari budaya yang berbeda dapat berpartisipasi dalam proses pelokalan plugin.
Jawaban:
Jangan menggunakan echo
atau print()
menghasilkan output teks, sebaliknya gunakan fungsi WordPress __()
dan _e()
:
/** Not localization friendly */
echo "Welcome to my plugin";
// OR
print("Welcome to my plugin");
/** Localization friendly */
_e('Welcome to my plugin', 'my-plugin');
// OR
$my_text = __('Welcome to my plugin', 'my-plugin');
echo $my_text;
_e()
dan __()
akan menyediakan terjemahan - dalam bahasa saat ini - teks yang disediakan sebagai parameter pertama. _e()
akan menampilkan teks sedangkan __()
akan mengembalikannya.
Parameter kedua adalah domain teks , Anda akan menggunakannya untuk memberi tahu WordPress bahwa teks yang disediakan sebagai parameter pertama milik plugin ini, Anda dapat menggunakan nama apa pun yang Anda inginkan, tetapi saya lebih suka menggunakan nama yang sama seperti yang saya gunakan untuk plugin tersebut. file direktori, saya merasa lebih intuitif.
Dengan __()
dan sprintf()
:
/** Get the username */
$username = 'Magictrick';
/** Not localization friendly */
echo "Hello $username";
/** Localization friendly */
printf(__('Hello %s', 'my-plugin'), $username);
// OR
$my_text = sprintf(__('Hello %s', 'my-plugin'), $username);
echo $my_text;
Definisi
Buka Poedit dan buat katalog baru (File ›New Catallog ...) dengan pengaturan ini:
.
..
, (kami akan menyimpan file bahasa dalam subdirektori plugin yang disebut bahasa)__
dan_e
Simpan katalog sebagai dan pindai file plugin Anda untuk teks yang dapat diterjemahkan dengan menekan tombol pembaruan. Ketika pembaruan selesai tutup katalog itu, Anda tidak perlu memperbarui file itu kecuali jika Anda menambahkan string terjemahan yang baru (yaitu terlampir dalam atau ) ke plugin Anda./my_wordpress_blog/wp-content/plugins/my-plugin/languages/my-plugin.pot
__()
_e()
Sekarang mari kita buat terjemahan pertama (saya akan menggunakan fr_FR):
Menggunakan Podeit , buat katalog dari file POT (File ›Katalog baru dari file POT ...) :
Simpan katalog sebagai . Terjemahkan beberapa atau semua string, simpan kembali file .po, unggah file .po dan .mo./my_wordpress_blog/wp-content/plugins/my-plugin/languages/my-plugin-fr_FR.po
Perhatikan bahwa setiap kali Anda menyimpan file .po, file .mo dibuat dengan nama yang sama, nama file dari file .po sangat penting , itu terdiri dari gabungan dari domain teks plugin (my-plugin) dan bahasa lokal ( fr_FR), selalu beri nama file .po Anda untuk plugin seperti ini: [textdomain] - [locale] .po , berikut adalah beberapa contoh:
wpcf7-it_IT.po
wpcf7-pt_BR.po
wpcf7-ar.po
... Ya!Setiap kali plugin diperbarui dengan teks baru, perbarui file po, terjemahkan string baru dan unggah kembali file .po dan .mo
Di suatu tempat di plugin Anda, Anda harus memberi tahu WordPress untuk menggunakan file .mo Anda, Anda dapat melakukannya dengan menggunakan kode ini di awal file plugin Anda:
function my_plugin_init() {
load_plugin_textdomain( 'my-plugin', false, 'my-plugin/languages' );
}
add_action('init', 'my_plugin_init');
Ganti my-plugin
dengan nama plugin Anda di parameter load_plugin_textdomain
fungsi 1 dan 3 .
Beberapa alasan itu mungkin tidak berfungsi:
_e('my text')
dengan _e('my text', 'my-plugin')
)Jawaban Nabil cukup lengkap tetapi ada variasi mudah yang disediakan:
Plugin Anda ada di repositori plugin WordPress.org
Anda bersedia mengharuskan plugin Anda hanya bekerja dengan WordPress 4.6 atau lebih tinggi.
Langkah-langkahnya adalah sebagai berikut:
Di file readme.txt plugin Anda, tambahkan
Requires at least: 4.6
. Lihat https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
jika belum, unggah plugin Anda ke repositori plugin WordPress. Lihat https://wordpress.org/plugins/developers/add/ .
Temukan domain slug / teks plugin Anda. Untuk melakukannya, buka halaman plugin Anda di repositori plugin WordPress. URL akan seperti https://wordpress.org/plugins/your-plugin-slug/ . Bagian terakhir dari URL, “your-plugin-slug”, adalah slug plugin Anda. Itulah yang Anda gunakan untuk domain teks fungsi terjemahan.
Gunakan fungsi terjemahan WordPress di plugin Anda (seperti __e(‘hello’, ‘my-plugin-domain’);
). Pastikan untuk menggunakan domain teks plugin yang benar, diperoleh pada langkah sebelumnya. Lihat https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/ untuk info lebih lanjut.
Jika Anda melakukan langkah-langkah di atas, WordPress akan menangani:
(Jawaban dari posting blog saya di sini: https://cmljnelson.blog/2019/01/01/the-really-lazy-way-to-translate-a-wordpress-plugin/ )