Teks ke Ucapan untuk Situs Polylang: Yang Benar-Benar Berfungsi
Teks ke Ucapan Polylang yang sesungguhnya berarti satu file audio per post terjemahan, dalam bahasa dan suara yang tepat. Karena Polylang menyimpan setiap terjemahan sebagai post WordPress tersendiri dengan ID-nya sendiri, pembuatan audio per post berfungsi secara alami. Tantangannya ada pada pemilihan suara, redirect cookie, dan cache halaman, bukan pada audio itu sendiri.
Ini adalah post keempat dalam seri TTS multibahasa kami. Sebelumnya kami membahas WPML, Weglot, dan rilis GTranslate 3.3.0. Polylang paling mirip dengan WPML dari segi arsitektur, tetapi memiliki keunikannya sendiri. Berikut hasil pengujian kami dan apa yang benar-benar berfungsi di situs produksi dengan Teks ke Ucapan - TTSWP.
Mengapa Polylang penting untuk teks ke ucapan
Polylang menjalankan lebih banyak situs WordPress multibahasa dibanding plugin gratis lainnya. Plugin ini memiliki lebih dari 800.000 instalasi aktif dan basis pengguna gratis terbesar di antara plugin multibahasa serbaguna. Versi pertamanya dirilis pada 2011 dan masih aktif dikembangkan hingga kini. Tidak ada batasan jumlah bahasa yang bisa ditambahkan, dan paket bahasa WordPress diunduh secara otomatis. Kebanyakan situs Polylang adalah blog, penerbit kecil, dan agensi yang memilihnya karena versi inti gratis dan arsitekturnya bersih.
Popularitas itulah yang menjadi masalah bagi plugin TTS. Banyak yang mengklaim mendukung Polylang, tetapi hanya menguji bahasa default. Mereka melampirkan satu file audio ke sebuah post, lalu menyajikan file yang sama di setiap terjemahan. Versi bahasa Spanyol memutar audio bahasa Inggris. Versi bahasa Jerman tidak mengeluarkan suara sama sekali. Pengunjung pun pergi.
Solusinya bersifat struktural. Polylang tidak menambahkan tabel database ekstra atau shortcode. Plugin ini dibangun di atas taksonomi WordPress, fitur inti yang sama yang menggerakkan kategori dan tag. Setiap terjemahan hidup sebagai post nyata. Jadi pembuatan audio per post, yang merupakan cara kerja TTSWP, selaras dengan cara Polylang menyimpan konten.
Perbedaan Polylang dengan Weglot dan GTranslate
Polylang menduplikasi post. Weglot dan GTranslate menerjemahkan saat halaman dirender. Perbedaan tunggal inilah yang menentukan segalanya tentang dukungan TTS.
Di situs Polylang, terjemahan bahasa Jerman dari "Tentang Kami" adalah post WordPress terpisah dengan post ID 412, slug bahasa "de", dan kontennya sendiri di database. WordPress melihatnya, REST API melihatnya, dan plugin TTS apa pun yang mengait ke save_post atau wp_insert_post juga melihatnya. Pembuatan audio berjalan sekali per terjemahan, dalam bahasa terjemahan tersebut, dan file di-cache berdasarkan post ID itu.
Weglot dan GTranslate bekerja secara berbeda. Teks terjemahan hanya ada ketika pengguna meminta halaman tersebut. Tidak ada post kedua untuk melampirkan audio. Kami membahas solusi untuk Weglot dan GTranslate di post sebelumnya. WPML menggunakan model duplikasi yang sama seperti Polylang, itulah mengapa panduan WPML kami berlaku di sini dengan sedikit penyesuaian.
Untuk TTS, ini adalah kabar baik. Polylang memberi Anda tepat apa yang dibutuhkan: post ID stabil per bahasa, slug bahasa yang diketahui, dan permalink yang tidak berubah saat render.

Empat struktur URL Polylang dan artinya bagi TTS
Polylang menawarkan empat mode URL. Masing-masing mengubah cara cache, CDN, dan kode deteksi bahasa melihat halaman Anda. Pilih yang salah dan file audio yang tepat bisa berakhir di balik URL yang keliru.
1. Bahasa dari konten saja (tanpa kode bahasa di URL)
Ini adalah kasus yang paling rumit. URL example.com/about menyajikan bahasa Inggris ke satu pengunjung dan bahasa Jerman ke pengunjung lain, berdasarkan cookie atau deteksi browser. Cache halaman melihat satu URL dan menyimpan satu varian. Bahasa mana pun yang pertama kali ditangkap cache akan menang.
Untuk TTS, file audio itu sendiri tidak masalah karena dikunci berdasarkan post ID, bukan URL. Masalahnya ada pada halaman yang menyematkan pemutar. Jika halaman Inggris yang di-cache memuat embed audio Jerman, pemutar tetap memutar audio Jerman, tetapi pengunjung mengharapkan teks Inggris. Kami tidak merekomendasikan mode URL ini di situs mana pun yang menggunakan cache.
2. URL direktori (/en/, /de/)
Ini adalah pengaturan default dan yang kami rekomendasikan. Setiap bahasa berada di jalurnya sendiri. Cache memperlakukan /en/about dan /de/about sebagai kunci yang berbeda. Halaman yang tepat dimuat dengan pemutar yang tepat dan file audio yang tepat. Tidak diperlukan trik cookie.
Perhatikan opsi "sembunyikan informasi bahasa URL untuk bahasa default". Saat diaktifkan, bahasa default tidak lagi menggunakan awalan. /about menjadi bahasa Inggris dan /de/about tetap bahasa Jerman. Deteksi bahasa berbasis URL pada kode pihak ketiga kemudian gagal di jalur bahasa default karena tidak ada slug yang terlihat. Jika Anda menggunakan opsi ini, andalkan pll_current_language() daripada parsing URL.
3. Subdomain (en.example.com, de.example.com)
Subdomain memberi setiap bahasa host-nya sendiri dan namespace cache-nya sendiri. Pemutar TTS dimuat dengan bersih per bahasa. Biayanya adalah DNS, sertifikat SSL per subdomain, dan analitik yang sedikit lebih kompleks. Berfungsi baik dalam skala besar.
4. Domain terpisah per bahasa
Pemisahan penuh. example.com untuk bahasa Inggris, example.de untuk bahasa Jerman. TTS tetap mengaitkan audio ke post ID di setiap instalasi WordPress, dan pemutar bekerja dengan cara yang sama. Mode ini umum digunakan oleh merek yang sudah memiliki ccTLD.
Masalah redirect cookie
Polylang dapat mendeteksi bahasa browser pengunjung pada kunjungan pertama ke beranda Anda. Kemudian menetapkan cookie pll_language dan mengalihkan pengunjung ke versi bahasa yang sesuai. Dikombinasikan dengan cache halaman, inilah sumber munculnya audio bahasa yang salah.
Berikut urutan kegagalan yang telah kami reproduksi. Pengunjung berbahasa Prancis mendarat di beranda. Polylang mendeteksi bahasa Prancis, menetapkan cookie pll_language, dan mengalihkan ke /fr/. Cache menyimpan respons redirect tersebut di bawah URL beranda. Pengunjung berikutnya, penutur bahasa Inggris, meminta beranda dan mendapat redirect yang di-cache ke /fr/. Mereka mendarat di halaman Prancis, mendengar audio Prancis, lalu pergi.
Dengan URL direktori, kerusakan hanya terjadi di beranda, karena setiap halaman lain memiliki kunci cache berbeda per bahasa. Dengan mode "bahasa dari konten", masalah yang sama menyebar ke setiap URL di situs.
Ada tiga solusi yang berhasil. Yang paling sederhana adalah menonaktifkan deteksi bahasa browser di situs yang menggunakan cache dan membiarkan pengunjung memilih melalui pemilih bahasa. Kedua, beri tahu plugin cache Anda untuk bervariasi atau melewati cookie pll_language. Ketiga, kecualikan beranda dari cache halaman agar redirect deteksi selalu berjalan secara langsung.
Jika Anda menggunakan WP Rocket, W3 Total Cache, atau LiteSpeed, lihat dokumentasi integrasi cache kami untuk konfigurasi cookie. Polylang berjalan berdampingan dengan plugin cache ini, tetapi berdampingan bukan berarti otomatis mengenali bahasa. Anda tetap perlu mengonfigurasi cache sendiri.
Perilaku AJAX di frontend
Polylang mendeteksi bahasa saat ini secara otomatis pada permintaan AJAX frontend dan memuat string untuk bahasa tersebut. Anda juga bisa meneruskan variabel lang secara eksplisit dalam permintaan untuk memaksa bahasa tertentu. Untuk TTS, ini penting ketika pemutar audio atau widget post terkait mengirim permintaan AJAX untuk mengambil post yang berbeda.
Dalam pengujian kami, Polylang menangani ini dengan baik. Kami tidak melihat regresi bahasa AJAX seperti yang kami dokumentasikan di post WPML. Jika integrasi kustom perlu mengambil post dalam bahasa yang bukan bahasa saat ini, teruskan lang secara eksplisit dan periksa bahwa function_exists('pll_current_language') sebelum membaca hasilnya.
Menyiapkan Teks ke Ucapan - TTSWP di situs Polylang
Langkah-langkah ini mengasumsikan Polylang sudah terpasang dan setidaknya satu terjemahan sudah ada.
- Pasang Teks ke Ucapan - TTSWP dari halaman plugin WordPress.org. Aktifkan. Lihat dokumentasi instalasi jika Anda mengalami error izin.
- Hubungkan plugin ke TTSWP dengan mengikuti panduan koneksi. Paket gratis menyertakan kredit awal agar Anda bisa mencoba sebelum memilih paket berbayar.
- Buka post dalam bahasa asli dan buat audio. Pastikan pemutar muncul di halaman frontend.
- Beralih ke versi terjemahan dari pemilih bahasa Polylang di editor post. Buat audio lagi. Polylang telah memuat post ID yang berbeda, sehingga TTSWP memperlakukan ini sebagai pembuatan baru dan menyimpan file terpisah.
- Pilih suara untuk setiap terjemahan. Pemilihan suara terjadi di tingkat post. Lihat dokumentasi pemilihan suara untuk pengaturan per post.
- Verifikasi di frontend. Buka
/en/post-slugdan/de/post-slugdi tab berbeda. Putar masing-masing. Suara dan bahasa harus sesuai.
Saat ini, pemetaan suara default per bahasa di TTSWP lebih dulu mencakup WPML dan Weglot. Di Polylang, pemilihan suara berada di tingkat post dan default per bahasa bekerja melalui pengambilan bahasa post yang kami jelaskan di bawah. Untuk sebagian besar situs Polylang ini sudah cukup, karena setiap terjemahan adalah post nyata dan suara ditetapkan sekali per post. Lihat dokumentasi integrasi Polylang untuk perilaku saat ini.

Cara pemilihan suara mengambil bahasa post
API yang tepat untuk membaca bahasa post di Polylang adalah pll_get_post_language(). Selalu periksa apakah fungsi tersebut ada sebelum memanggilnya, sesuai rekomendasi panduan developer Polylang sendiri. Polanya seperti ini:
if ( function_exists( 'pll_get_post_language' ) ) {
$lang = pll_get_post_language( $post_id, 'slug' );
// $lang sekarang berisi 'en', 'de', 'fr', dll.
}
Untuk konteks frontend, pll_current_language() mengembalikan bahasa permintaan saat ini. Kedua fungsi ini stabil dan sudah menjadi bagian dari API publik Polylang selama bertahun-tahun. Logika pemetaan suara harus selalu membaca dari bahasa post, bukan dari default situs, agar terjemahan tidak mewarisi suara yang salah.
Polylang gratis versus Polylang Pro untuk TTS
Tidak ada fitur di Polylang Pro yang diperlukan untuk audio. Versi gratis Polylang memberi semua yang dibutuhkan TTSWP: duplikasi per post, slug bahasa, dan fungsi API publik di atas.
Polylang Pro menambahkan terjemahan mesin DeepL, dukungan REST API, slug URL yang diterjemahkan, dan ekspor XLIFF untuk pekerjaan terjemahan yang dialihdayakan. Tidak ada yang mengubah gambaran TTS untuk post blog dan halaman. Polylang untuk WooCommerce adalah add-on berbayar terpisah yang mengelola halaman toko, kategori produk, atribut, dan email transaksi. Jika Anda ingin narasi pada deskripsi produk, lihat panduan TTS WooCommerce kami.
SEO dan AEO dengan audio per bahasa
Polylang menangani hreflang secara otomatis, yang merupakan sebagian besar pekerjaan SEO untuk situs multibahasa. Tambahkan skema AudioObject per versi bahasa, arahkan masing-masing ke file untuk terjemahan spesifik tersebut, dan Anda memberi mesin pencari sinyal yang bersih.
Dalam pengujian kami sendiri, artikel dengan audio dan skema AudioObject lebih sering dikutip oleh mesin pencari AI. Kami mendokumentasikan metode dan hasilnya di post AEO dan audio kami. Singkatnya: satu file audio per terjemahan, skema per terjemahan, dan manfaat AEO akan mengikuti.
Masalah umum dan solusinya
| Gejala | Kemungkinan penyebab | Solusi |
|---|---|---|
| Terjemahan diputar dengan suara yang salah | Suara diatur secara global, bukan per post | Buka post terjemahan, atur suara pada post tersebut, buat ulang |
| Satu bahasa tidak memiliki audio | Audio belum pernah dibuat pada terjemahan tersebut | Buka post terjemahan di editor, klik buat |
| Halaman yang di-cache menampilkan pemutar bahasa yang salah | Cache menyimpan redirect deteksi atau satu varian halaman | Nonaktifkan deteksi bahasa browser, atau variasikan cache pada cookie pll_language |
| Tata letak pemutar Arab atau Ibrani terlihat tidak benar | CSS RTL tidak diterapkan pada pemutar | Tambahkan override RTL melalui CSS kustom |
| String UI pemutar tetap dalam bahasa default | String plugin tidak terdaftar untuk terjemahan | Daftarkan string pemutar dengan pll_register_string agar Polylang menampilkannya di layar terjemahan string |
| Audio dibuat dalam bahasa default untuk semua post | Pemetaan suara membaca lokal situs alih-alih bahasa post | Konfirmasi bahasa post melalui pll_get_post_language($post_id, 'slug') |

Catatan aksesibilitas
Menambahkan narasi per bahasa juga merupakan keuntungan aksesibilitas. Pengunjung yang lebih mudah membaca dalam bahasa asli mereka tetapi lebih suka mendengarkan kini mendapatkan keduanya. Jika situs Anda termasuk dalam cakupan WCAG 2.2 atau Undang-Undang Aksesibilitas Eropa, lihat panduan kepatuhan audio WCAG kami untuk kriteria yang berlaku. Untuk panduan lengkap menambahkan TTS ke WordPress di 2026, tutorial utama membahas dasar-dasarnya.
Pertanyaan yang sering diajukan
Apakah Polylang berfungsi dengan teks ke ucapan?
Ya. Polylang menyimpan setiap terjemahan sebagai post WordPress terpisah dengan ID-nya sendiri, yang merupakan arsitektur yang sama dengan yang digunakan TTSWP untuk audio per post. Buat audio pada setiap terjemahan dan Anda mendapatkan satu file per bahasa dengan suara yang Anda pilih. Versi gratis Polylang sudah cukup. Tidak diperlukan konfigurasi khusus di luar pengaturan TTSWP standar.
Apakah saya perlu Polylang Pro untuk audio?
Tidak. Versi gratis Polylang menyediakan semua yang dibutuhkan TTSWP: duplikasi post per bahasa, slug bahasa, dan fungsi API publik pll_get_post_language() dan pll_current_language(). Polylang Pro menambahkan terjemahan mesin DeepL, dukungan REST API, dan slug URL yang diterjemahkan. Tidak ada yang mengubah cara pembuatan atau pemutaran audio.
Bisakah setiap bahasa memiliki suaranya sendiri?
Ya. Karena setiap terjemahan adalah post terpisah, pemilihan suara terjadi di tingkat post. Pilih suara Jerman untuk terjemahan bahasa Jerman, suara Spanyol untuk terjemahan bahasa Spanyol, dan seterusnya. TTSWP menyimpan pilihan per post dan menggunakannya setiap kali Anda membuat ulang. Lihat dokumentasi pemetaan bahasa dan suara untuk perilaku saat ini.
Mengapa audio saya diputar dalam bahasa yang salah?
Penyebab umum adalah cache halaman yang dikombinasikan dengan deteksi bahasa browser Polylang. Cache menyimpan redirect beranda atau satu varian bahasa dan menyajikannya ke semua orang. File audio itu sendiri sudah benar untuk post ID tersebut. Halamannya yang tidak tepat. Nonaktifkan deteksi browser di situs yang menggunakan cache, atau beri tahu plugin cache Anda untuk bervariasi pada cookie pll_language. URL direktori (/en/, /de/) membatasi kerusakan hanya pada beranda karena setiap halaman lain memiliki kunci cache yang berbeda.
Apa perbedaan Polylang dengan WPML untuk TTS?
Keduanya menduplikasi post per bahasa, sehingga audio per post bekerja dengan cara yang sama di keduanya. Perbedaannya ada pada penanganan AJAX, perilaku cookie, dan nama API developer. Polylang menggunakan fungsi berprefix pll_ dan umumnya lebih ringan. WPML memiliki lebih banyak fitur WooCommerce bawaan tetapi jejak plugin yang lebih besar. Post WPML kami membahas sisi tersebut.
Bisakah saya menerjemahkan label pemutar audio?
Ya, dengan satu langkah tambahan. Polylang menyediakan layar terjemahan string untuk plugin yang mendaftarkan string UI-nya menggunakan pll_register_string(). Jika Anda ingin tombol putar, label timer kemajuan, atau teks pemutar lainnya berganti mengikuti bahasa, daftarkan string tersebut di child theme atau plugin khusus situs yang kecil. String tersebut kemudian akan muncul di Bahasa, Terjemahan string.
Langkah selanjutnya
Buka salah satu post terjemahan Anda di editor WordPress dan lihat panel audio. Jika sudah menampilkan bahasa yang benar secara default, pengaturan sudah selesai. Jika belum, atur suara pada terjemahan tersebut, buat ulang, dan periksa frontend. Setelah satu terjemahan berfungsi, sisanya mengikuti pola yang sama.
Jika Anda belum memasang Teks ke Ucapan - TTSWP, unduh dari WordPress.org dan hubungkan ke akun TTSWP gratis Anda. Uji pada satu terjemahan, dengarkan, dan putuskan apakah akan diterapkan ke terjemahan lainnya.
Artikel terkait
Teks ke Ucapan untuk Situs WPML: Apa yang Benar-Benar Berfungsi
Cara menambahkan Teks ke Ucapan di situs WPML agar memilih suara yang tepat per bahasa, menghasilkan audio terpisah per terjemahan, dan tidak terganggu oleh bug deteksi bahasa AJAX.
Plugin Teks ke Ucapan Terbaik untuk WordPress (2026)
Panduan netral 2026 tentang tujuh plugin teks ke ucapan terbaik untuk WordPress, lengkap dengan kelebihan, kelemahan, dan tabel perbandingan fitur yang menyeluruh.
Teks ke Ucapan untuk Situs WordPress dengan Weglot: Apa yang Benar-Benar Berfungsi
Kebanyakan plugin TTS mengklaim mendukung Weglot, tapi tetap membaca dari database, bukan dari terjemahan. Inilah syarat dukungan Weglot yang sesungguhnya.