Teksti puheeksi TranslatePress-sivustolla: Näin se toimii
TranslatePress kääntää sivun renderöidyn HTML:n pyyntohetkellä ja tallentaa kaikki käännökset paikallisiin tietokantatauluihin. Jokaisella artikkelilla on yksi julkaisun ID, ja kielen vaihto tapahtuu trp_translate()-funktion kautta, ei kopioimalla julkaisuja. Tämä yksi seikka muuttaa sen, miten teksti puheeksi -toiminnon täytyy toimia TranslatePress-sivustolla.
Tämä on viides ja viimeinen julkaisu monikielisen TTS-sarjamme. Olemme jo käsitelleet WPML, Polylang, Weglot ja GTranslate. TranslatePress sijoittuu teknisesti niiden väliin, ja äänitiedostojen hallinta heijastaa tätä.
Miten TranslatePress eroaa WPML:stä, Polylangista ja Weglotista
WPML ja Polylang luovat jokaiselle kielelle erillisen julkaisun. Jokaisella käännöksellä on oma julkaisun ID, oma post_content ja oma pysyvä osoite. Äänen tuottaminen on suoraviivaista, koska jokainen kieli on erillinen WordPress-objekti.
Weglot toimii päinvastaisella tavalla. Käännökset sijaitsevat Weglotin palvelimilla ja ne syötetään sivulle välityspalvelimen tai aliverkkotunnuksen kautta. Alkuperäinen WordPress-tietokanta ei näe koskaan käännettyjä tekstejä, minkä vuoksi palvelinpuolen TTS Weglotilla on hankalaa ilman JavaScript-koukkuja.
TranslatePress on välimuoto. Jokaisella artikkelilla on yksi julkaisu, joten post_content sisältää vain oletuskielen. Kaikki käännökset sijaitsevat kuitenkin paikallisesti WordPress-tietokannassasi wp_trp_-tauluissa. Voit lukea niitä, hakea niitä ja välittää ne TTS-moottorille. Tämä muuttaa ääniasennuksen lähestymistapaa verrattuna muihin neljään lisäosaan.
Missä käännökset todella sijaitsevat
TranslatePress tallentaa käännökset omiin tauluihinsa, joiden etuliite on wp_trp_. Jokaisella kieliparilla on oma sanakirjataulu, nimetty muodossa wp_trp_dictionary_<source>_<target>. Lisäksi on wp_trp_original_strings lähdemerkkijonoille ja gettext-taulut teema- ja lisäosäkäännöksille.
Tallennus on suuntakohtaista. Englanninkielisen sivuston saksankielinen käännös sijaitsee englanti-saksa-sanakirjassa. Sen lukeminen takaisin vaatii saman suunnan. Tärkein julkinen funktio on trp_translate(), joka ottaa sisältömerkkijonon ja kielikoodin ja palauttaa käännetyn version.
if ( function_exists( 'trp_translate' ) ) {
$translated = trp_translate( $post->post_content, 'de_DE' );
// Pass $translated to the TTS engine, not $post->post_content.
}
TTS-integraatiossa tämä funktio on totuuden lähde. post_content:n suora lukeminen palauttaa aina oletuskielen, riippumatta siitä, millä URL-osoitteella kävijä on. Katso TranslatePress-integraation dokumentaatio, jossa kerrotaan, miten TTSWP käsittelee tämän puolestamme.

Locale-koodin sudenkuoppa
TranslatePress käyttää täydellisiä locale-koodeja, ei lyhenteitä. Saksa on de_DE, ei de. Ranska on fr_FR. Brasilianportugali on pt_BR. Kaikki integraatiot, jotka olettavat Polylang-tyylisiä kaksikirjaimisia lyhenteitä, epäonnistuvat hiljaa TranslatePressissä.
TranslatePressin kehittäjädokumentaatio on tässä selkeä. trp_translate()-funktiolle välitetty kielikoodi on locale-arvo kohdasta Asetukset, TranslatePress, Yleinen, eikä se välttämättä ole sama kuin URL-osoitteessa käytetty kielipolku. Pelkkä lyhenne kuten de ei vastaa mitään sanakirjaa, joten funktio palaa alkuperäiseen merkkijonoon ilman varoitusta. Jos kirjoitat omaa koodia, normalisoi kielikoodit ennen trp_translate()-kutsua ja tallenna sama locale-muoto äänitiedostojen yhteydessä, jotta ne voidaan myöhemmin yhdistää toisiinsa.
URL-rakenne ja välimuisti
TranslatePress käyttää oletuksena alihakemistoa jokaiselle kielelle. Englanninkielinen sivusi on osoitteessa site.com/blog/post ja saksankielinen versio osoitteessa site.com/de/blog/post. On myös vaihtoehto käyttää alihakemistoa oletuskielelle, jolloin kaikki kielet ovat symmetrisiä.
Tämä on hyvä tilanne välimuistille. Erilliset URL-osoitteet tarkoittavat erillisiä välimuistiavaimia kielittäin. WP Rocket, LiteSpeed ja CDN-reuna-välimuistit kohtelevat /de/blog/post:a erillisenä resurssina kuin /blog/post:a, joten saksankielinen äänitiedosto tarjoillaan saksankielisen sivun kanssa ja englanninkielinen ääni englanninkielisen sivun kanssa. Välimuisti-integraation dokumentaatio kattaa poissulkemissäännöt tarvittaessa.
Ainoa riski on maksullinen Automatic User Language Detection -lisäosa. Se ohjaa kävijät selaimen kielen perusteella, mikä voi törmätä sivuvälimuistin kanssa ja tarjoilla väärän ohjauksen vääralle käyttäjälle. Käsittelimme saman ilmiön Polylang-julkaisussa. Harvemmat TranslatePress-sivustot käyttävät automaattista tunnistusta, koska se on maksullinen lisäosa, mutta jos käytät sitä, sulje ohjauslogiikka pois välimuistista.
Soittimen käyttöliittymän käännösongelma
Tämä on erityinen TranslatePressin piirre. Lisäosa tunnistaa ja kääntää JavaScriptin lisäämiä merkkijonoja, mikä on epätavallista. Useimmat käännöstyökalut ohittavat JS:n renderöimän sisällön. TranslatePress poimii sen DOM:sta renderöinnin jälkeen ja tarjoaa sen käännnettäväksi.
Sivuvaikutuksena äänisoittimen painikkeet kuten "Toista", "Tauko" ja "Kuuntele tämä artikkeli" näkyvät TranslatePress-editorissa käännettävissä olevina merkkijonoina. Jos ne käännetään koneellisesti ilman tarkistusta, soittimeen voi päätyä kömpelöä tai väärää painiketekstiä ja, vielä pahempaa, väärin käännettyjä saavutettavuustunnisteita, jotka hämmentävät ruudunlukuohjelmia.
TranslatePressissä on kaksi korjaustapaa. Lisää data-no-translation-attribuutti elementtiin, jonka haluat jättää pois käännöksestä. Tai käytä Lisäasetuksissa olevia poissulkemisvalitsijoita ohittaaksesi kokonaisia säilöjä CSS-valitsimella. Molemmat on dokumentoitu TranslatePressin omissa asetuksissa. TTSWP-soittimen osalta sulje soittimen säilöelementti luokan perusteella pois, ja anna lisäosan omien kielitiedostojen hoitaa soittimen käännetyt tunnisteet.
Mitä kannattaa sulkea pois
- Äänisoittimen säilöelementti
- ARIA-tunnisteet toisto-, tauko- ja etenemissäätimissä
- Aika- ja kestomittarinäytöt
- TTSWP:n renderöimät äänennimen tai kielen nimiöt
Jos haluat muotoilla soittimen uudelleen sen poissulkemisen jälkeen, mukautetun CSS:n dokumentaatio kattaa valitsimet.
Sisällönmuokkauksen desynkronointiongelma
TranslatePress sitoo jokaisen käännöksen tarkasti lähdemerkkijonoon. Muokkaa alkuperäistä, ja TranslatePress luo uuden lähdemerkkijonon ja irrottaa olemassa olevan käännöksen. Translation Memory ehdottaa vanhaa käännöstä takaisin, mutta kunnes ihminen vahvistaa sen, kohdekieli palautuu lähteeseen.
Teksti puheeksi -toiminnon kannalta tämä tarkoittaa, että ääni voi ajautua epätahtiin käännetyn tekstin kanssa minkä tahansa muokkauksen jälkeen. Pilkun lisääminen englanniksi irrottaa jokaisen kielen käännöksen kyseiselle merkkijonolle. Saksankielinen äänesi sanoo vielä vanhan lauseen, mutta näkyvä saksankielinen teksti sanoo jo uuden.
Käytännön tarkistuslista sisällön muokkaamisen jälkeen:
- Vahvista uusi lähdemerkkijono TranslatePress-editorissa jokaisen aktiivisen kielen osalta.
- Luo ääni uudelleen ensin oletuskielen julkaisulle.
- Luo ääni uudelleen jokaiselle kielelle, toista sen jälkeen ääni jokaisella lokalisoidulla URL-osoitteella ja varmista, että uusi tiedosto vastaa näkyvää tekstiä.
- Tyhjennä sivuvälimuisti jokaiselta lokalisoidulta URL-osoitteelta, ei pelkästään oletukselta.
TTSWP:n asentaminen TranslatePress-sivustolle
Tässä on nykyinen työnkulku. Integraatiodokumentaatio kuvaa aina uusimman toimintatavan.
- Asenna TTSWP WordPress.org-lisäosahakemistosta. Asennusopas ohjaa prosessin läpi.
- Yhdistä lisäosa TTSWP-taustajärjestelmään. Ilmaissuunnitelmaan sisältyy tervetulokredittejä, joilla voit testata koko työnkulun ennen maksamista. Katso sivustosi yhdistäminen.
- Varmista, että TranslatePress on aktiivinen ja että vähintään yksi kohdekieli on määritetty täydellisellä locale-koodilla.
- Yhdistä yksi ääni jokaiselle kielelle käyttämällä kieli-ääni-yhdistämistä. Määritä saksalainen ääni koodille
de_DE, ranskalainenfr_FR:lle ja niin edelleen. Katso äänen valinta äänivalikoimasta. - Julkaise tai päivitä julkaisu. Ääni luodaan ensin oletuskielelle.
- Toista ääni jokaisella käännetyllä URL-osoitteella. Luominen tapahtuu pyydettäessä. Kun kävijä ensimmäistä kertaa toistaa äänen toisella kielellä, TranslatePress kertoo TTSWP:lle, mikä kieli on aktiivinen, ja TTSWP luo ja tallentaa välimuistiin tiedoston kyseiselle kielelle. Kaikki myöhemmät toistot käyttävät välimuistitiedostoa.
- Sulje soitin pois TranslatePressistä käyttämällä
data-no-translation-attribuuttia tai Lisäasetuksissa olevaa valitsinta, jotta soittimen tunnisteet pysyvät TTSWP:n omien käännösten hallinnassa.
TTSWP tallentaa yhden äänitiedoston julkaisua ja kieltä kohden, ja soitin seuraa sen URL-osoitteen kieltä, jolla kävijä on. Osoitteessa /de/blog/post soitin lataa saksankielisen tiedoston, oletuskielen URL-osoitteessa oletuskielisen tiedoston. Automaattisen käännöksen ollessa aktiivisena TTSWP lukee käännetyn tekstin suoraan TranslatePressistä ennen sen lähettämistä ElevenLabsille, joten ääni vastaa sitä, mitä kävijä näkee sivulla.
TranslatePressIn ilmais- ja maksullinen versio TTS-käyttöön
TranslatePressIn ilmaisversio tukee yhtä lisäkieltä, sisältää 2 000 tekoälykäännettyä sanaa TranslatePress AI:n kautta ja antaa käyttää Google Translatia omalla API-avaimella. Se riittää kaksikielisen blogin pyörittämiseen yhteensopivan äänen kanssa kahdella kielellä.
Maksullinen TranslatePress lisää rajoittamattoman määrän lisäkieliä, SEO Packin käännettyjen polkujen, metatietojen ja hreflang-hallinnan tueksi, DeepL-tuen, kääntäjätilit, Automatic User Language Detection -lisäosan ja mahdollisuuden käyttää eri verkkotunnusta eri kielille. Sivustolle, joka tarvitsee yli kaksi kieltä, hreflang-tageja hakukoneita varten tai DeepL-tasoisia käännöksiä ennen TTS-luomista, maksullinen versio on käytännöllisin valinta. Äänenlaatu ei itse riipu versiosta.
SEO ja AEO kielikohtaisella äänellä
SEO Pack antaa määrittää hreflang-tagit kielittäin vaihtoehdoilla maakohtaiselle locale-arvolle, alueesta riippumattomalle kielelle tai molemmille. Hakukoneille ja tekoälyvastausmoottoreille tämä on signaali siitä, mikä ääni vastaa mitäkin aluetta.
Liitä AudioObject-skeemamerkintä jokaiselle kielelliselle URL-osoitteelle oikealla inLanguage-arvolla, joka vastaa hreflang-tagia. Google ja Bing poimivat kieliparin, ja omissa testeissämme tekoälypalvelut kuten Perplexity ja ChatGPT Search viittaavat äänenrikastettuihin artikkeleihin useammin, kun skeema on siisti ja ääni-URL ratkeaa. Kirjoitimme tästä lisää AEO- ja ääni-julkaisussa.
Yleisiä ongelmia ja korjauksia
| Ongelma | Syy | Korjaus |
|---|---|---|
| Ääni toistuu väärällä kielellä | Teksti haetaan post_content:sta eikä trp_translate():sta | Reititä teksti trp_translate( $content, $locale ):n kautta käyttäen täyttä locale-koodia |
| Soittimen painikkeet käännetty väärin koneellisesti | TranslatePress on poiminut JS:n renderöimät soittimen tunnisteet | Lisää data-no-translation soittimen säilöön tai sulje se pois valitsimella Lisäasetuksissa |
| Ääni puuttuu sisällönmuokkauksen jälkeen | Lähteen muokkaaminen irrottaa käännökset ja sitä kautta kielikohtaisen äänen | Vahvista käännökset TranslatePress-editorissa, luo sitten ääni uudelleen kielittäin |
| Locale-koodiristiriita | Integraatio välittää de:n eikä de_DE:tä | Normalisoi täyteen locale-muotoon ennen trp_translate()-kutsua |
| RTL-asettelu rikki arabialle tai heprealle | Soittimen CSS ei tue RTL-suuntaa | Käytä mukautettua CSS:ää peilataksesi soittimen säätimet RTL-kielille |
| Välimuistiohjaus väärään kieleen | Automatic User Language Detection -lisäosa törmää sivuvälimuistin kanssa | Sulje ohjaus pois välimuistista tai poista tunnistus käytöstä |
Huomio saavutettavuudesta
Äänikerronta tukee useita WCAG-onnistumiskriteerejä, kun soitin on ohjattavissa näppäimistöllä ja merkitty oikein. Jos suljet soittimen pois TranslatePressistä, pidä ARIA-tunnisteet ehjinä TTSWP:n omissa käännöksissä. WCAG-äänioppaamme käy kriteerit läpi yksityiskohtaisesti, ja pääasennusopas on hyvä lähtökohta.
Usein kysytyt kysymykset
Toimiiko TranslatePress teksti puheeksi -toiminnon kanssa?
Kyllä. TranslatePress tallentaa käännökset paikallisesti wp_trp_-tietokantatauluihin, ja trp_translate()-funktio palauttaa käännetyn sisällön palvelinpuolella. TTS-integraatio voi lukea käännetyn tekstin ja luoda kielikohtaisen äänen, kunhan se avaintaa äänen julkaisun ID:n ja locale-arvon perusteella ja käyttää täydellisiä locale-koodeja kuten de_DE lyhenteiden sijaan.
Tarvitsenko TranslatePressIn maksullisen version ääntä varten?
Ei. TranslatePressIn ilmaisversio tukee yhtä lisäkieltä ja sisältää käännöksen TranslatePress AI:n, Google Translaten omalla avaimella tai manuaalisen muokkauksen kautta. Se riittää kaksikieliselle sivustolle yhteensopivalla äänellä. Maksullinen versio lisää rajattomat kielet, SEO Packin, DeepL-tuen ja tunnistinlisäosat, joista on hyötyä, jos tarvitset yli kaksi kieltä tai hreflang-hallinnan.
Miksi soittimen painikkeet on käännetty väärin?
TranslatePress tunnistaa JS:n lisäämiä merkkijonoja, joten äänisoittimen tunnisteet näkyvät sen editorissa ja voidaan kääntää koneellisesti. Korjaa se lisäämällä data-no-translation soittimen säilöön tai sulkemalla soittimen säilö pois Lisäasetuksissa CSS-valitsimella. Soittimen tunnisteet tulevat sen jälkeen TTSWP:n omista kielitiedostoista.
Miksi ääneni ei enää vastaa käännöstä?
Alkuperäisen merkkijonon muokkaaminen TranslatePressissa luo uuden lähdemerkkijonon ja irrottaa olemassa olevan käännöksen. Translation Memory ehdottaa sitä takaisin, mutta kunnes vahvistat sen, kohdekieli palautuu lähteeseen. Luo ääni uudelleen oletuskielen julkaisulle ja jokaiselle kielelle minkä tahansa sisällönmuokkauksen jälkeen, ja tyhjennä sitten välimuisti jokaiselta lokalisoidulta URL-osoitteelta.
Miten TranslatePress eroaa Weglotista TTS-käytössä?
Weglot tallentaa käännökset omille palvelimilleen ja syöttää ne sivulle, joten WordPress ei koskaan näe käännettyä tekstiä palvelinpuolella. TranslatePress tallentaa kaikki käännökset paikalliseen tietokantaasi ja tarjoaa trp_translate():n palvelinpuolen käyttöön. Tämä tekee kielikohtaisen äänen luomisesta suoraviivaisempaa TranslatePressillä kuin Weglotilla.
Seuraavat askeleet
Asenna Teksti puheeksi - TTSWP WordPress.org-lisäosahakemistosta, yhdistä se tilillesi ja määritä yksi ääni jokaiselle kielelle, jota jo käytät TranslatePressissa. Julkaise julkaisu, toista ääni jokaisella käännetyllä URL-osoitteella ja varmista, että ääni vastaa näkyvää tekstiä. Jos jokin ajautuu epätahtiin, TranslatePress-integraatiodokumentaatio on ensimmäinen paikka tarkistaa.
Aiheeseen liittyvät artikkelit
Teksti puheeksi Polylang-sivustoilla: Mikä oikeasti toimii
Näin lisäät Polylang-teksti-puheeksi-toiminnon, joka luo yhden äänitiedoston jokaiselle käännökselle, valitsee oikean äänen kullekin kielelle ja selviytyy välimuistista.
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.