Tekst til tale for TranslatePress: Slik fungerer det
TranslatePress oversetter den ferdig gjengitte HTML-en på en side ved forespørsel og lagrer alle oversettelser i lokale databasetabeller. Hvert innlegg har én post-ID, og språkbytte skjer gjennom trp_translate(), ikke gjennom kopierte innlegg. Den ene faktoren endrer hvordan tekst til tale må fungere på et TranslatePress-nettsted.
Dette er det femte og siste innlegget i vår flerspråklige TTS-serie. Vi har allerede dekket WPML, Polylang, Weglot og GTranslate. TranslatePress befinner seg teknisk mellom disse, og lydoppsettet speiler det.
Slik skiller TranslatePress seg fra WPML, Polylang og Weglot
WPML og Polylang oppretter et eget innlegg for hvert språk. Hver oversettelse har sin egen post-ID, sitt eget post_content og sitt eget permalink. Lydgenerering er grei å sette opp fordi hvert språk er et selvstendig WordPress-objekt.
Weglot tar motsatt tilnærming. Oversettelsene ligger på Weglots servere og settes inn på siden via en proxy eller et underdomene. Den opprinnelige WordPress-databasen ser aldri den oversatte teksten, og det er grunnen til at server-side TTS på Weglot er krevende uten JavaScript-hooks.
TranslatePress er midtveien. Hvert innlegg har én post, så post_content inneholder bare standardspråket. Men alle oversettelser lagres lokalt i WordPress-databasen din, i wp_trp_-tabellene. Du kan lese dem, spørre mot dem og sende dem til en TTS-motor. Det endrer lydtilnærmingen sammenlignet med de andre fire tilleggsappene.
Hvor oversettelsene faktisk lagres
TranslatePress lagrer oversettelser i dedikerte tabeller med prefikset wp_trp_. Hvert språkpar får sin egen ordboktabell, navngitt som wp_trp_dictionary_<kilde>_<mål>. Det finnes også wp_trp_original_strings for kildestrengen og gettext-tabeller for tema- og tilleggsapp-oversettelser.
Lagringen er retningsbasert. En tysk oversettelse av et engelsk nettsted ligger i ordboken fra engelsk til tysk. Du må bruke samme retning når du leser den tilbake. Den offentlige funksjonen du trenger er trp_translate(), som tar en innholdsstreng og en språkkode og returnerer den oversatte versjonen.
if ( function_exists( 'trp_translate' ) ) {
$translated = trp_translate( $post->post_content, 'de_DE' );
// Pass $translated to the TTS engine, not $post->post_content.
}
Denne funksjonen er kilden til sannhet for en TTS-integrasjon. Leser du post_content direkte, får du alltid standardspråket, uansett hvilken URL besøkende er på. Se integrasjonsdokumentasjonen for TranslatePress for hvordan TTSWP håndterer dette på vår side.

Fellen med lokalkoder
TranslatePress bruker fullstendige lokalkoder, ikke slugger. Tysk er de_DE, ikke de. Fransk er fr_FR. Brasiliansk portugisisk er pt_BR. Enhver integrasjon som forutsetter tostegssluggere i Polylang-stil vil feile stille på TranslatePress.
TranslatePress-utviklerdokumentasjonen er tydelig på dette. Språkkoden som sendes til trp_translate() er lokalinnstillingen fra Innstillinger, TranslatePress, Generelt, og den er ikke nødvendigvis den samme som språksluggen i URL-en. En kortform som de matcher ingen ordbok, så funksjonen faller tilbake til originalstrengen uten advarsel. Skriver du egendefinert kode, normaliser språkkodene dine før du kaller trp_translate(), og lagre samme lokalkodeformat sammen med lydfilene dine så du kan matche dem igjen senere.
URL-struktur og bufring
TranslatePress bruker som standard en undermappe per språk. Den engelske siden din ligger på site.com/blog/post og den tyske versjonen på site.com/de/blog/post. Det finnes også et alternativ for å bruke en undermappe for standardspråket, noe som gjør alle språk symmetriske.
Dette er den gode situasjonen for bufring. Ulike URL-er betyr ulike buffernøkler per språk. WP Rocket, LiteSpeed og CDN-kantbuffere behandler /de/blog/post som en separat ressurs fra /blog/post, slik at den tyske lydfilen leveres med den tyske siden og den engelske lydfilen med den engelske siden. Dokumentasjonen for bufferintegrasjon dekker ekskluderingsreglene hvis du trenger dem.
Den ene risikoen er den betalte tilleggsappen Automatic User Language Detection. Den omdirigerer besøkende basert på nettleserspråk, noe som kan kollidere med sidebuffere og servere feil omdirigering til feil bruker. Vi dekket det samme mønsteret i Polylang-innlegget. Færre TranslatePress-nettsteder bruker denne funksjonen fordi det er en betalt tilleggsapp, men bruker du den, ekskluder omdirigeringslogikken fra bufferen.
Problemet med oversettelse av lyttespiller-grensesnittet
Dette er unikt for TranslatePress. Tilleggsappen oppdager og oversetter strenger som er satt inn av JavaScript, noe som er uvanlig. De fleste oversettelsesverktøy ignorerer JS-gjengitt innhold. TranslatePress fanger det opp i DOM-en etter gjengivelse og tilbyr å oversette det.
Bivirkningen er at etiketter i lyttespilleren som «Play», «Pause» og «Hør dette innlegget» dukker opp i TranslatePress-editoren som oversettbare strenger. Hvis disse strengene maskinoversettes uten gjennomgang, kan lyttespilleren ende opp med klønete eller feil knappetekst, og verre, feiloversatte tilgjengelighetsetiketter som forvirrer skjermlesere.
Det finnes to løsninger i TranslatePress. Legg til attributtet data-no-translation på alle elementer du vil ekskludere. Eller bruk ekskluderingsvelgerne under Avanserte innstillinger for å hoppe over hele containere med CSS-velger. Begge er dokumentert i TranslatePress sine egne innstillinger. For TTSWP-lyttespilleren spesifikt, ekskluder lyttespiller-wrapperen etter klasse, og la deretter de oversatte etikettene fra tilleggsappens egne språkfiler komme gjennom.
Hva som bør ekskluderes
- Lyttespillerens container-element
- ARIA-etiketter på avspillings-, pause- og fremdriftskontroller
- Tidsvisninger og varighet-tellere
- Eventuelle stemme- eller språknavn-etiketter gjengitt av TTSWP
Vil du tilpasse utseendet på lyttespilleren etter ekskludering, dekker dokumentasjonen for egendefinert CSS velgerne.
Problemet med usynkronisert innholdsredigering
TranslatePress knytter alle oversettelser til den nøyaktige kildestrengene. Rediger originalen, og TranslatePress oppretter en ny kildestreng og løsriver den eksisterende oversettelsen. Oversettelsesminnet foreslår den gamle oversettelsen tilbake, men til en person bekrefter den, faller målspråket tilbake til kilden.
For tekst til tale betyr det at lyd kan komme ut av synk med oversatt tekst etter enhver redigering. Et komma lagt til på engelsk løsriver alle språks oversettelser for den strengen. Din tyske lyd sier fortsatt den gamle setningen, men den synlige tyske teksten sier nå den nye.
Praktisk sjekkliste etter innholdsredigering:
- Bekreft den nye kildestrengene i TranslatePress-editoren for hvert aktive språk.
- Generer lyd på nytt for standardspråk-innlegget først.
- Generer lyd på nytt per språk ved å hente siden gjennom
trp_translate()eller ved å besøke hver lokalisert URL med bulk-genereringsverktøyet ditt. - Tøm sidebufferen for alle lokaliserte URL-er, ikke bare standardspråket.
Sette opp TTSWP på et TranslatePress-nettsted
Her er den gjeldende fremgangsmåten. Integrasjonsdokumentasjonen beskriver alltid den nyeste oppførselen.
- Installer TTSWP fra WordPress.org sin tilleggsapp-katalog. Installasjonsveiledningen tar deg gjennom det.
- Koble tilleggsappen til TTSWP-backend. Gratisplaner inkluderer velkomstpoeng slik at du kan teste hele flyten før du betaler. Se koble til nettstedet ditt.
- Bekreft at TranslatePress er aktivert og at minst ett målspråk er konfigurert med en fullstendig lokalkode.
- Tilordne én stemme per språk ved hjelp av språk-til-stemme-tilordningen. Tilordne en tysk stemme til
de_DE, en fransk stemme tilfr_FR, og så videre. Se stemmeutvalg for stemmekatalogen. - Publiser eller oppdater et innlegg. Lyd genereres for standardspråket først.
- Besøk hver oversatte URL for å utløse lydgenerering for det aktuelle språket, eller bruk bulk-generering for å sette dem alle i kø på én gang.
- Ekskluder lyttespilleren fra TranslatePress ved å bruke
data-no-translationeller en velger under Avanserte innstillinger, slik at lyttespiller-etiketter styres av TTSWPs egne oversettelser.
TTSWP lagrer én lydfil per innlegg og språk, og lyttespilleren følger språket til URL-en besøkende er på. På /de/blog/post laster lyttespilleren den tyske filen, på standard-URL laster den standardspråkfilen. Bulk-forhåndsgenerering dekker alle aktive språk i én kjøring, så du slipper å besøke hver URL manuelt på større nettsteder.
Gratis vs. betalt TranslatePress for TTS
Gratis TranslatePress støtter ett ekstra språk, inkluderer 2 000 AI-oversatte ord via TranslatePress AI, og lar deg bruke Google Translate med din egen API-nøkkel. Det er nok til å drive en tospråklig blogg med matchende lyd på to språk.
Betalt TranslatePress legger til ubegrenset antall ekstra språk, SEO Pack for oversatte slugger, meta og hreflang-kontroll, DeepL-støtte, oversetterkontoer, tilleggsappen Automatic User Language Detection og ulikt domene per språk. For et nettsted som trenger mer enn to språk, hreflang-tagger for søkemotorer eller DeepL-kvalitets-oversettelser før TTS-generering, er betalt versjon det praktiske valget. Lydkvaliteten avhenger ikke av abonnementsnivå.
SEO og AEO med lydinnhold per språk
SEO Pack lar deg konfigurere hreflang-tagger per språk, med alternativer for landsspesifikk lokalinnstilling, regionsuavhengig språk eller begge deler. For søkemotorer og AI-svarmotorer er det dette som signaliserer hvilken lyd som passer til hvilken region.
Legg til én AudioObject-skjemaoppføring per språk-URL, med riktig inLanguage-verdi som stemmer overens med hreflang. Google og Bing plukker opp språkparringen, og i våre egne tester siterer AI-motorer som Perplexity og ChatGPT Search lydberikede artikler oftere når skjemaet er ryddig og lydfilens URL løses opp riktig. Vi har skrevet mer om dette i innlegget om AEO og lydinnhold.
Vanlige problemer og løsninger
| Problem | Årsak | Løsning |
|---|---|---|
| Lyd spilles på feil språk | Tekst hentes fra post_content i stedet for trp_translate() | Rut teksten gjennom trp_translate( $content, $locale ) med fullstendig lokalkode |
| Knapper i lyttespilleren er feil oversatt | TranslatePress fanget opp JS-gjengitte lyttespiller-etiketter | Legg til data-no-translation på lyttespiller-wrapperen, eller ekskluder containeren med CSS-velger under Avanserte innstillinger |
| Lyd mangler etter innholdsredigering | Redigering av kilden løsriver oversettelser og dermed lydinnhold per språk | Bekreft oversettelser i TranslatePress-editoren, og generer deretter lyd på nytt per språk |
| Feil lokalkode | Integrasjonen sender de i stedet for de_DE | Normaliser til fullstendig lokalkode før du kaller trp_translate() |
| RTL-layout ødelagt for arabisk eller hebraisk | Lyttespiller-CSS er ikke RTL-kompatibel | Bruk egendefinert CSS for å speile lyttespillerkontrollene for RTL-lokalinnstillinger |
| Bufret omdirigering til feil språk | Tilleggsappen Automatic User Language Detection i samspill med sidebuffer | Ekskluder omdirigeringen fra bufferen, eller slå av automatisk gjenkjenning |
Om tilgjengelighet
Lydversjon støtter flere WCAG-kriterier når lyttespilleren kan betjenes med tastatur og er korrekt merket. Ekskluderer du lyttespilleren fra TranslatePress, behold ARIA-etikettene intakte i TTSWPs egne oversettelser. WCAG-veiledningen for lyd dekker kriteriene i detalj, og hovedopplæringen for oppsett er et godt sted å begynne.
Ofte stilte spørsmål
Fungerer TranslatePress med tekst til tale?
Ja. TranslatePress lagrer oversettelser lokalt i wp_trp_-databasetabeller, og trp_translate()-funksjonen returnerer oversatt innhold server-side. En TTS-integrasjon kan lese den oversatte teksten og generere lyd per språk, forutsatt at den knytter lyd til post-ID pluss lokalinnstilling og bruker fullstendige lokalkoder som de_DE i stedet for slugger.
Trenger jeg betalt TranslatePress for lyd?
Nei. Gratis TranslatePress støtter ett ekstra språk og inkluderer oversettelse via TranslatePress AI, Google Translate med din egen nøkkel, eller manuell redigering. Det er nok for et tospråklig nettsted med matchende lyd. Betalt versjon legger til ubegrenset antall språk, SEO Pack, DeepL og tilleggsapper for gjenkjenning, noe som hjelper hvis du trenger mer enn to språk eller hreflang-kontroll.
Hvorfor er knappene i lyttespilleren feil oversatt?
TranslatePress oppdager JS-innsatte strenger, så lyttespiller-etiketter dukker opp i editoren og kan bli maskinoversatt. Løs det ved å legge til data-no-translation på lyttespiller-wrapperen, eller ved å ekskludere lyttespiller-containeren under Avanserte innstillinger med en CSS-velger. Lyttespiller-etiketter hentes da fra TTSWPs egne språkfiler i stedet.
Hvorfor stemmer ikke lyd og oversettelse overens lenger?
Redigering av den opprinnelige strengen i TranslatePress oppretter en ny kildestreng og løsriver den eksisterende oversettelsen. Oversettelsesminnet foreslår den tilbake, men til du bekrefter den, faller målspråket tilbake til kilden. Generer lyd på nytt for standardinnlegget og hvert språk etter enhver innholdsredigering, og tøm deretter bufferen for alle lokaliserte URL-er.
Hva er forskjellen mellom TranslatePress og Weglot for TTS?
Weglot lagrer oversettelser på egne servere og setter dem inn på siden, så WordPress ser aldri den oversatte teksten server-side. TranslatePress lagrer alle oversettelser i den lokale databasen din og eksponerer trp_translate() for server-side-tilgang. Det gjør lydgenerering per språk mer direkte på TranslatePress enn på Weglot.
Neste steg
Installer Tekst til Tale - TTSWP fra WordPress.org sin tilleggsapp-katalog, koble det til kontoen din og tilordne én stemme per språk du allerede bruker i TranslatePress. Publiser et innlegg, besøk hver oversatte URL for å utløse generering, og bekreft at lyden stemmer overens med synlig tekst. Oppstår det noe uventet, er integrasjonsdokumentasjonen for TranslatePress det første stedet å sjekke.
Relaterte artikler
Tekst til tale for Polylang-nettsteder: Det som faktisk fungerer
Slik legger du til Polylang-støtte for tekst til tale som genererer én lydfil per oversettelse, velger riktig stemme per språk og tåler caching.
Tekst til tale for WPML-nettsteder: Hva som faktisk fungerer
Slik legger du til tekst til tale på WPML-nettsteder med riktig stemme per språk, separate lydfiler per oversettelse og støtte for AJAX-språkdeteksjon.
Beste tekst til tale-plugins for WordPress (2026)
Vi sammenligner de syv beste tekst-til-tale-pluginene for WordPress i 2026. Du får styrker, svakheter og en tabell som setter funksjonene opp mot hverandre.