TL; DR: Jika Anda menggunakan string yang ada dalam tema induk, tepat bagaimana mereka digunakan dalam tema induk, Anda tidak perlu memiliki domain teks untuk tema anak Anda.
Tetapi jika Anda menggunakan string yang tidak digunakan dalam tema induk, untuk membuatnya dapat diterjemahkan, Anda akan memerlukan domain teks lain dengan .mo
file terjemahan terkait ( ).
Alur kerja terjemahan
Ketika WordPress menemukan string dalam fungsi translatasi, itu:
- Memeriksa apakah terjemahan untuk domain teks yang diperlukan telah dimuat (melalui
load_plugin_textdomain
atau load_theme_textdomain
atau load_textdomain
), jika demikian lanjut ke poin 3.
- Memeriksa apakah folder terjemahan (secara default
wp-content/languages
) berisi file domain teks yang cocok. File textdomain yang cocok adalah di "{$domain}-{$locale}.mo"
mana $domain
domain teks dari string untuk menerjemahkan dan $locale
merupakan lokal saat ini untuk situs web. Jika file itu tidak ditemukan string asli dikembalikan, jika tidak dimuat dan WP ke depan ke titik berikutnya.
- Ketika textdomain dimuat, WP melihat apakah string yang diperlukan terkandung dalam file itu, jika bukan string asli dikembalikan, sebaliknyaWP meneruskan ke titik berikutnya.
- Jika string terjemahan yang ditemukan memerlukan resolusi singular / jamak (mis. Ketika menggunakan
_n()
) itu selesai. Kalau tidak, WP maju ke titik berikutnya.
- Kait filter diterapkan pada string yang diterjemahkan (lihat https://developer.wordpress.org/?s=gettext&post_type%5B%5D=wp-parser-hook ) dan akhirnya hasilnya dikembalikan.
Begitu?
Ketika Anda menggunakan domain teks tema induk dalam fungsi terjemahan dari tema anak (dengan asumsi tema induk mengirimkan dan memuat file domain teks, atau memiliki file terjemahan dalam folder terjemahan), WordPress akan tiba di titik 3. dalam daftar di atas, dan jadi jika string tersedia dalam file (karena digunakan dalam tema induk) itu akan diterjemahkan, jika tidak demikian.
Ini berarti bahwa string khusus dalam tema induk memerlukan file terjemahan sendiri.
Secara teori, dimungkinkan untuk menggunakan domain teks induk di file terjemahan lain, karena WordPress mampu memuat lebih banyak kali domain teks yang sama, "menggabungkan" mereka, tetapi itu memiliki masalah karena hanya satu file yang mungkin ada dalam format "{$domain}-{$locale}.mo"
di folder terjemahan ( lihat poin 2. dalam daftar di atas).
Jadi, sebagai kesimpulan, satu-satunya cara yang layak untuk membuat tema anak diterjemahkan, jika mengandung string yang tidak digunakan dalam tema induk, adalah dengan menggunakan domain teks sendiri dan file terjemahan sendiri.
__('background-color', 'parent-text-domain')
Anda dapat menggunakan tema anak yang sama tanpa perlu melakukan apa pun untuk menerjemahkannya.Jika tema anak Anda mengandung string yang berbeda dari tema orang tua.
Cara yang tepat untuk menggunakan domain teks yang berbeda dalam tema anak adalah
load_child_theme_textdomain()
fungsinya sekarang. Anda dapat menggunakannya dengan cara yang sama seperti memuat _..._ fungsi textdomain lainnya.Waspadalah!
sumber