Teksti puheeksi Polylang-sivustoilla: Mikä oikeasti toimii
Aito Polylang-teksti-puheeksi-tuki tarkoittaa yhtä äänitiedostoa per käännetty julkaisu, oikealla kielellä ja äänellä. Koska Polylang tallentaa jokaisen käännöksen omana WordPress-julkaisunaan ja omalla ID:llä, julkaisukohtainen äänentuotanto toimii suoraan. Ongelmat liittyvät äänivalintaan, eväste-uudelleenohjauksiin ja sivujen välimuistiin, eivät itse ääneen.
Tämä on neljäs kirjoitus monikielisen TTS-sarjamme. Olemme käsitelleet WPML:ää, Weglotia ja GTranslate 3.3.0 -julkaisua. Polylang muistuttaa arkkitehtuuriltaan eniten WPML:ää, mutta sillä on omat erityispiirteensä. Tässä on se, mitä testasimme ja mikä todella toimii tuotantoympäristöissä Teksti puheeksi - TTSWP:llä.
Miksi Polylang on tärkeä teksti puheeksi -kannalta
Polylang pyörittää enemmän monikielisiä WordPress-sivustoja kuin mikään muu ilmainen lisäosa. Sillä on yli 800 000 aktiivista asennusta, mikä tekee siitä suosituimman ilmaisen monikielisyyslisäosan. Ensimmäinen versio julkaistiin vuonna 2011, ja lisäosaa kehitetään aktiivisesti edelleen. Kielten määrää ei ole rajoitettu, ja WordPress-kielipaketit latautuvat automaattisesti. Useimmat Polylang-sivustot ovat blogeja, pieniä julkaisijoita ja budjettimielessä toimivia toimistoja, jotka valitsivat sen ilmaisen ytimen ja selkeän arkkitehtuurin vuoksi.
Juuri tämä suosio on ongelma TTS-lisäosille. Monet väittävät tukevansa Polylangia, mutta testaavat vain oletuskielen. Ne kiinnittävät yhden äänitiedoston julkaisuun ja tarjoavat saman tiedoston kaikille käännöksille. Espanjankielinen versio toistaa englanninkielisen äänen. Saksankielinen versio on hiljainen. Kävijät lähtevät.
Ratkaisu on rakenteellinen. Polylang ei lisää ylimääräisiä tietokantatauluja eikä shortcodeja. Se rakentuu WordPress-taksonomioiden varaan, saman ydinominaisuuden, joka toimii kategorioiden ja tagien pohjana. Jokainen käännös on aito julkaisu. Niinpä julkaisukohtainen äänentuotanto, kuten TTSWP toimii, sopii täydellisesti yhteen Polylangin sisällönhallintamallin kanssa.
Miten Polylang eroaa Weglotista ja GTranslatesta
Polylang kopioi julkaisut. Weglot ja GTranslate kääntävät sivun sisällön renderöinnin yhteydessä. Tämä yksi ero ratkaisee kaiken TTS-tuen kannalta.
Polylang-sivustolla saksankielinen "Meistä"-sivu on erillinen WordPress-julkaisu, jonka ID on 412, kielikoodi "de" ja oma sisältö tietokannassa. WordPress näkee sen, REST API näkee sen, ja jokainen TTS-lisäosa, joka liittyy save_post- tai wp_insert_post-koukkuun, näkee sen. Äänentuotanto suoritetaan kerran per käännös, käännöksen kielellä, ja tiedosto välimuistitetaan kyseisen julkaisun ID:n alle.
Weglot ja GTranslate toimivat eri tavalla. Käännetty teksti on olemassa vain, kun käyttäjä pyytää sivua. Toista julkaisua ei ole, johon ääni kiinnitettäisiin. Käsittelimme kiertotiet Weglotille ja GTranslatelle aiemmissa kirjoituksissa. WPML käyttää samaa kopiointimallia kuin Polylang, minkä vuoksi WPML-oppaamme pätee tähänkin pienin muutoksin.
TTS:n kannalta tämä on hyvä uutinen. Polylang antaa juuri sen, mitä tarvitaan: vakaan julkaisun ID:n per kieli, tunnetun kielikoodin ja pysyvän pemalinkkin, joka ei muutu renderöinnin aikana.

Neljä Polylang-URL-rakennetta ja niiden merkitys TTS:lle
Polylang tarjoaa neljä URL-tilaa. Jokainen muuttaa tapaa, jolla välimuistit, CDN:t ja kielentutkintakoodi näkevät sivusi. Väärä valinta johtaa siihen, että oikea äänitiedosto päätyy väärän URL-osoitteen taakse.
1. Kieli sisällön perusteella (ei kielikoodia URL:ssa)
Tämä on hankalin tapaus. URL-osoite example.com/about tarjoaa yhdelle kävijälle englannin ja toiselle saksan evästeen tai selaimen kielentunnistuksen perusteella. Sivuvälimuisti näkee yhden URL-osoitteen ja tallentaa yhden variantin. Se kieliversio, jonka välimuisti kaappasi ensin, voittaa.
TTS:n kannalta itse äänitiedosto on kunnossa, koska se on sidottu julkaisun ID:hen eikä URL-osoitteeseen. Ongelma on sivu, joka sisällyttää soittimen. Jos välimuistitettu englanninkielinen sivu latautuu saksankielisellä ääniupotuksella, soitin toistaa saksaa, vaikka kävijä odotti englantia. Emme suosittele tätä URL-tilaa yhdellekään sivustolle, jossa käytetään välimuistia.
2. Hakemisto-URL-rakenne (/fi/, /de/)
Tämä on oletusasetus ja suosittelemamme rakenne. Jokainen kieli sijaitsee omassa polussa. Välimuistit käsittelevät /fi/about- ja /de/about-osoitteita erillisinä avaimina. Oikea sivu latautuu oikealla soittimella ja oikealla äänitiedostolla. Evästetemppu ei tarvita.
Tarkista asetus "piilota URL-kielitieto oletuskieleltä". Kun se on käytössä, oletuskielen etuliite jää pois. /about on englanti ja /de/about pysyy saksana. URL-pohjainen kielentunnistus kolmannen osapuolen koodissa epäonnistuu tällöin oletuskielen poluilla, koska kielikoodia ei näy. Jos käytät tätä asetusta, käytä pll_current_language()-funktiota URL-jäsentämisen sijaan.
3. Alidomaini (en.example.com, de.example.com)
Alidomainit antavat jokaiselle kielelle oman isäntäkoneen ja oman välimuistitilan. TTS-soittimet latautuvat siististi kielikohtaisesti. Hintana ovat DNS-asetukset, SSL-sertifikaatit jokaiselle alidomainille ja hieman monimutkaisempi analytiikka. Toimii hyvin suuressa mittakaavassa.
4. Erilliset domainit per kieli
Täysi erottelu. example.com englanniksi, example.de saksaksi. TTS sitoo äänen edelleen julkaisun ID:hen kunkin WordPress-asennuksen sisällä, ja soitin toimii samalla tavalla. Tämä tila on yleinen brändeillä, joilla on jo omat maa-päätteiset domainit.
Eväste-uudelleenohjauksen ongelma
Polylang voi tunnistaa kävijän selaimen kielen ensimmäisellä kotisivuvierailulla. Se asettaa pll_language-evästeen ja ohjaa kävijän vastaavaan kieliversioon. Yhdistettynä sivujen välimuistiin tämä on kohta, jossa väärän kielen ääni ilmestyy.
Tässä on virheskenarion eteneminen, jonka olemme toistaneet. Ranskankielinen kävijä saapuu kotisivulle. Polylang tunnistaa ranskan, asettaa pll_language-evästeen ja ohjaa osoitteeseen /fr/. Välimuisti tallentaa tämän uudelleenohjausvastauksen kotisivun URL-osoitteen alle. Seuraava kävijä, englanninkielinen, pyytää kotisivua ja saa välimuistitetun uudelleenohjauksen osoitteeseen /fr/. Hän päätyy ranskankieliselle sivulle, kuulee ranskankielistä ääntä ja poistuu.
Hakemisto-URL-rakenteella vahinko rajoittuu kotisivulle, koska jokaisella muulla sivulla on oma kielikohtainen välimuistiavain. "Kieli sisällön perusteella" -tilassa sama ongelma leviää jokaiseen sivuston URL-osoitteeseen.
Kolme korjausta toimii. Yksinkertaisin on poistaa selaimen kielentunnistus käytöstä kaikilla välimuistia käyttävillä sivustoilla ja antaa kävijöiden valita kieli kielenvaihtajan kautta. Toinen vaihtoehto on neuvoa välimuistilisäosaksi vaihtelemaan tai ohittamaan pll_language-eväste. Kolmas on sulkea kotisivu pois sivujen välimuistista, jolloin tunnistusuudelleenohjaus suoritetaan aina reaaliaikaisesti.
Jos käytät WP Rocketia, W3 Total Cachea tai LiteSpeedinä, katso välimuisti-integraation dokumentaatiomme evästemääritystä varten. Polylang toimii näiden välimuistilisäosien rinnalla, mutta rinnakkaiselo ei tarkoita automaattista kielitietoisuutta. Välimuisti täytyy silti määrittää itse.
AJAX-käyttäytyminen käyttöliittymässä
Polylang tunnistaa nykyisen kielen automaattisesti käyttöliittymän AJAX-pyynnöissä ja lataa kyseisen kielen merkkijonot. Voit myös välittää eksplisiittisen lang-muuttujan pyynnössä pakottaaksesi tietyn kielen. TTS:n kannalta tämä on merkityksellistä, kun äänisovellus tai liittyvät julkaisut -widget lähettää AJAX-kutsun hakemaan toisen julkaisun.
Testeissämme Polylang käsittelee tämän siististi. Emme havainneet AJAX-kielen regressioita, jotka dokumentoitiin WPML-kirjoituksessa. Jos mukautettu integraatio tarvitsee hakea julkaisun muulla kuin nykyisellä kielellä, välitä lang eksplisiittisesti ja tarkista function_exists('pll_current_language') ennen tuloksen lukemista.
Teksti puheeksi - TTSWP:n käyttöönotto Polylang-sivustolla
Nämä vaiheet olettavat, että Polylang on jo asennettu ja vähintään yksi käännös on olemassa.
- Asenna Teksti puheeksi - TTSWP WordPress.org-lisäosasivulta. Aktivoi se. Katso asennusdokumentaatio, jos saat käyttöoikeusvirheen.
- Yhdistä lisäosa TTSWP:hen noudattamalla yhdistämisopasta. Ilmaiseen suunnitelmaan sisältyy tervetulokredittejä, joilla voit testata ennen maksulliseen tasoon siirtymistä.
- Avaa alkuperäisen kielen julkaisu ja tuota ääni. Varmista, että soitin näkyy julkisella puolella.
- Vaihda käännettyyn versioon Polylangin kielenvaihtajasta julkaisueditorissa. Tuota ääni uudelleen. Polylang on ladannut eri julkaisun ID:n, joten TTSWP käsittelee tämän uutena tuotantona ja tallentaa erillisen tiedoston.
- Valitse ääni jokaiselle käännökselle. Äänivalinta tapahtuu julkaisutasolla. Katso äänivalintadokumentaatio julkaisukohtaista ohitusta varten.
- Tarkista julkiselta puolelta. Avaa
/fi/julkaisu-slugja/de/julkaisu-slugeri välilehdissä. Toista kumpikin. Äänten ja kielten pitäisi täsmätä.
Tällä hetkellä TTSWP:n kielikohtainen oletusäänimappi kattaa ensin WPML:n ja Weglotin. Polylangissa äänivalinta tapahtuu julkaisutasolla, ja kielikohtainen oletus toimii alla kuvatun julkaisun kielen haun kautta. Useimmille Polylang-sivustoille tämä riittää, koska jokainen käännös on aito julkaisu ja ääni asetetaan kerran per julkaisu. Katso Polylang-integraation dokumentaatio nykyisestä toiminnasta.

Miten äänivalinta hakee julkaisun kielen
Oikea API julkaisun kielen lukemiseen Polylangissa on pll_get_post_language(). Tarkista aina, että funktio on olemassa ennen sen kutsumista, kuten Polylangin oma kehittäjäohje suosittelee. Kaava näyttää tältä:
if ( function_exists( 'pll_get_post_language' ) ) {
$lang = pll_get_post_language( $post_id, 'slug' );
// $lang on nyt 'en', 'de', 'fr' jne.
}
Käyttöliittymäkontekstissa pll_current_language() palauttaa nykyisen pyyntökielen. Molemmat funktiot ovat vakaita ja ovat kuuluneet Polylangin julkiseen API:in vuosia. Äänimappauslogiikan täytyy aina lukea julkaisun kielestä, ei sivuston oletuskielestä, muutoin käännökset perivät väärän äänen.
Polylang ilmainen vs. Polylang Pro TTS:n kannalta
Polylang Prosta ei tarvita mitään ääntä varten. Polylangin ilmaisversio antaa kaiken, mitä TTSWP tarvitsee: julkaisukohtaisen kopioinnin, kielikoodit ja yllä mainitut julkiset API-funktiot.
Polylang Pro lisää DeepL-konekäännöksen, REST API -tuen, käännetyt URL-slugit ja XLIFF-viennin ulkoistettua käännöstyötä varten. Mikään näistä ei muuta TTS-tilannetta blogijulkaisujen ja sivujen osalta. Polylang for WooCommerce on erillinen maksullinen lisäosa, joka hallinnoi kauppasivuja, tuotekategorioita, attribuutteja ja tapahtumasähköposteja. Jos haluat kerronnan tuotekuvauksiin, katso WooCommerce TTS -oppaamme.
SEO ja AEO kielikohtaisella äänellä
Polylang käsittelee hreflang-attribuutit automaattisesti, mikä on suurin osa monikielisten sivustojen SEO-työstä. Lisää AudioObject-skeema jokaiselle kieliversiolle, osoita jokainen kyseisen käännöksen tiedostoon, ja annat hakukoneille selkeän signaalin.
Omissa testeissämme artikkelit, joissa on ääni ja AudioObject-skeema, saavat viittauksia tekoälyhakukoneista useammin. Dokumentoimme menetelmän ja tulokset AEO- ja ääni-kirjoituksessamme. Lyhyesti: yksi äänitiedosto per käännös, skeema per käännös, ja AEO-hyöty seuraa.
Yleisiä ongelmia ja korjauksia
| Oire | Todennäköinen syy | Korjaus |
|---|---|---|
| Käännös toistuu väärällä äänellä | Ääni asetettu globaalisti, ei julkaisukohtaisesti | Avaa käännetty julkaisu, aseta ääni kyseiselle julkaisulle, tuota uudelleen |
| Yhdeltä kieleltä puuttuu ääni | Ääntä ei ole koskaan tuotettu kyseiselle käännökselle | Avaa käännetty julkaisu editorissa ja napsauta Tuota |
| Välimuistitettu sivu näyttää väärän kielen soittimen | Välimuisti tallentaa tunnistusuudelleenohjauksen tai yhden sivuvariantin | Poista selaimen kielentunnistus käytöstä tai aseta välimuisti vaihtelemaan pll_language-evästeen mukaan |
| Arabian tai heprean soittimen asettelu on vinossa | RTL-CSS ei koske soitinta | Lisää RTL-ohitukset mukautetun CSS:n kautta |
| Soittimen käyttöliittymätekstit pysyvät oletuskielessä | Lisäosan merkkijonoja ei ole rekisteröity käännökseen | Rekisteröi soittimen merkkijonot pll_register_string-funktiolla, jotta Polylang näyttää ne merkkijonojen käännösnäytöllä |
| Ääni tuotetaan oletuskielellä kaikille julkaisuille | Äänimappaus lukee sivuston lokaalin julkaisun kielen sijaan | Varmista julkaisun kieli pll_get_post_language($post_id, 'slug')-funktiolla |

Saavutettavuus
Kerronta jokaisella kielellä on myös saavutettavuusvoitto. Kävijät, jotka lukevat paremmin äidinkielellään mutta haluavat kuunnella, saavat molemmat. Jos sivustosi kuuluu WCAG 2.2:n tai Euroopan saavutettavuuslain piiriin, katso WCAG-äänimääräystenmukaisuusopas sovellettavista kriteereistä. Laajempi opas TTS:n lisäämiseen WordPressiin vuonna 2026 löytyy päätutoriaalista.
Usein kysytyt kysymykset
Toimiiko Polylang teksti puheeksi -toiminnon kanssa?
Kyllä. Polylang tallentaa jokaisen käännöksen erillisenä WordPress-julkaisuna, jolla on oma ID. Tämä on sama arkkitehtuuri, jota TTSWP käyttää julkaisukohtaiseen ääneen. Tuota ääni jokaiselle käännökselle ja saat yhden tiedoston per kieli valitsemallasi äänellä. Polylangin ilmaisversio riittää. Tavanomaisen TTSWP-asennuksen lisäksi ei tarvita erityistä konfiguraatiota.
Tarvitsenko Polylang Pron ääntä varten?
Ei. Polylangin ilmaisversio tarjoaa kaiken, mitä TTSWP tarvitsee: kielikohtaisen julkaisukopioinnin, kielikoodit ja julkiset API-funktiot pll_get_post_language() ja pll_current_language(). Polylang Pro lisää DeepL-konekäännöksen, REST API -tuen ja käännetyt URL-slugit. Mikään näistä ei vaikuta äänentuotantoon tai toistoon.
Voiko jokaisella kielellä olla oma äänensä?
Kyllä. Koska jokainen käännös on erillinen julkaisu, äänivalinta tapahtuu julkaisutasolla. Valitse saksalainen ääni saksankieliselle käännökselle, espanjalainen ääni espanjankieliselle käännökselle ja niin edelleen. TTSWP tallentaa valinnan julkaisukohtaisesti ja käyttää sitä joka kerta, kun tuotat uudelleen. Katso kieli- ja äänimappausdokumentaatio nykyisestä toiminnasta.
Miksi ääneni toistuu väärällä kielellä?
Yleisin syy on sivujen välimuisti yhdistettynä Polylangin selaimen kielentunnistukseen. Välimuisti tallentaa kotisivun uudelleenohjauksen tai yhden kielivariantin ja tarjoaa sen kaikille. Itse äänitiedosto on oikein julkaisun ID:n perusteella. Se sivu, joka sen lataa, ei ole. Poista selaimen tunnistus käytöstä välimuistia käyttävillä sivustoilla tai neuvoo välimuistilisäosasi vaihtelemaan pll_language-evästeen mukaan. Hakemisto-URL-rakenne (/fi/, /de/) rajoittaa vahingon kotisivulle, koska jokaisella muulla sivulla on oma välimuistiavain.
Miten Polylang eroaa WPML:stä TTS:n kannalta?
Molemmat kopioivat julkaisut kielikohtaisesti, joten julkaisukohtainen ääni toimii molemmilla samalla tavalla. Erot ovat AJAX-käsittelyssä, evästekäyttäytymisessä ja kehittäjä-API:n nimissä. Polylang käyttää pll_-etuliitteellisiä funktioita ja on yleisesti kevyempi. WPML:ssä on enemmän sisäänrakennettuja WooCommerce-ominaisuuksia, mutta sen lisäosajälki on suurempi. WPML-kirjoituksemme käsittelee sitä puolta.
Voinko kääntää äänipainikkeen tekstit?
Kyllä, yhdellä lisävaiheella. Polylang tarjoaa merkkijonojen käännösnäytön lisäosille, jotka rekisteröivät käyttöliittymän merkkijonot pll_register_string()-funktiolla. Jos haluat toistopainikkeen, edistymisajastimen tai muiden soittimen tekstien vaihtuvan kielen mukaan, rekisteröi nämä merkkijonot child-teemassasi tai pienessä sivustokohtaisessa lisäosassa. Ne näkyvät sen jälkeen kohdassa Kielet, Merkkijonojen käännökset.
Seuraavat vaiheet
Avaa yksi käännetyistä julkaisuistasi WordPress-editorissa ja tarkista äänipaneeli. Jos se näyttää oikean kielen oletuksena, asennus on valmis. Jos ei, aseta ääni kyseiselle käännökselle, tuota uudelleen ja tarkista julkinen puoli. Kun yksi käännös toimii, muut seuraavat samaa kaavaa.
Jos et ole vielä asentanut Teksti puheeksi - TTSWP:tä, lataa se WordPress.orgista ja yhdistä se ilmaiseen TTSWP-tiliisi. Testaa yhdellä käännöksellä, kuuntele ja päätä, otatko sen käyttöön muillakin käännöksillä.
Aiheeseen liittyvät artikkelit
Teksti puheeksi WPML-sivustoilla: Mikä oikeasti toimii
Näin lisäät WPML-sivustollesi teksti puheeksi -toiminnon, joka valitsee oikean äänen kullekin kielelle, luo erillisen äänitiedoston jokaiselle käännökselle ja selviää AJAX-kielenilmaisuvirheiden yli.
Parhaat tekstistä puheeksi -lisäosat WordPressille (2026)
Puolueeton 2026-opas seitsemästä parhaasta WordPress tekstistä puheeksi -lisäosasta, rehellisin vahvuuksin, heikkouksin ja kattavalla ominaisuusvertailulla.
Teksti puheeksi Weglot WordPress -sivustoilla: Mikä toimii
Useimmat TTS-lisäosat väittävät tukevansa Weglotia, mutta lukevat tekstin tietokannasta, eivät käännöksestä. Tässä on mitä todellinen Weglot-tuki vaatii.