Vertaal een PO- of POT-bestand online, inclusief meervoudsvormen en context
Upload een .pot-sjabloon of een gedeeltelijk vertaald .po-bestand en krijg een .po terug waarin elke lege msgstr is ingevuld. msgid en msgctxt veranderen nooit, opmerkingen en verwijzingen blijven staan en meervoudsitems krijgen zoveel vormen als de doeltaal nodig heeft. De eerste strings zijn gratis zonder account; het hele bestand, tot 5,000 strings, kost $5, eenmalig betaald.
- Lege en fuzzy-items worden vertaald; items die je al had vertaald blijven behouden
- msgid_plural-items krijgen msgstr[0], msgstr[1] … voor de doeltaal, met Plural-Forms in de header
- msgctxt, vertaalopmerkingen (#.) en verwijzingen (#:) worden als context meegestuurd en blijven in het bestand staan
- php-format-, c-format- en python-format-placeholders worden in elke string gecontroleerd
- Werkt voor WordPress-plugins en -thema's en voor Django-, Python-, PHP- en C-projecten
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
Geel: placeholders en ICU-meervoudssyntaxis, in elke string gecontroleerd. Blauwgroen: tags, escapes en emoji, ongewijzigd gelaten.
Dezelfde sleutels. Dezelfde placeholders. Nieuwe taal.
Alleen de waarden veranderen. Het bestand komt terug met dezelfde nesting en volgorde, onder de naam es.json, en elke string die een placeholder kwijtraakt, wordt opnieuw vertaald voordat hij in je build kan komen.
Demo-app die voor deze pagina is verzonnen; de Spaanse strings zijn echte output van de tool, uit een bestand met 85 strings.
Van POT-sjabloon naar PO-bestand
Een .pot-bestand is de lijst met strings die een project vertaald nodig heeft, waarbij elke msgstr leeg is. Upload het, kies een taal en je krijgt een .po met een ingevulde header: Language, een Plural-Forms-regel voor die taal en UTF-8 als tekenset. Het bestand krijgt de naam van de taal, bijvoorbeeld myplugin.pot wordt myplugin-de.po; hernoem het naar wat je project verwacht, zoals myplugin-de_DE.po voor WordPress, en compileer het met je gebruikelijke tool naar .mo.
Meervoudsvormen en fuzzy-items
Talen tellen verschillend. Engels heeft twee vormen; Pools en Russisch gebruiken er in gettext drie; Arabisch zes. Voor elk meervoudsitem krijgt de vertaler de vormen van de doeltaal met voorbeeldgetallen ("vorm 1: 2, 3, 4, 22") en schrijft hij één string per vorm. Heeft je .po al een Plural-Forms-header voor dezelfde taal, dan wordt die regel gebruikt.
Items die als fuzzy zijn gemarkeerd, worden opnieuw vertaald; de fuzzy-vlag en de oude #| msgid-regels worden verwijderd en andere vlaggen, zoals php-format, blijven behouden. Verouderde #~-items blijven onaangeroerd.
Hoe de tool werkt, wat het kost en hoe we met je bestanden omgaan, staat op de pagina Lokalisatiebestanden vertalen; de prijzen van alle tools staan op de pagina prijzen.
Laatst bijgewerkt op
Vragen en antwoorden
Worden mijn bestaande vertalingen overschreven?
Nee. Items die al een msgstr hebben en niet fuzzy zijn, blijven precies zoals ze zijn; alleen lege en fuzzy-items worden vertaald.
Krijg ik ook een .mo-bestand?
Nee, je krijgt de .po. Compileer die met msgfmt, Poedit of de opdracht van je framework, bijvoorbeeld wp i18n make-mo of compilemessages in Django.
Zijn printf-placeholders veilig?
Elke %s, %d, %1$s en %(name)s in de msgid moet in de vertaling staan. Een string waarin er een verloren gaat, wordt opnieuw vertaald; lukt dat nog steeds niet, dan blijft de msgstr zoals hij was (leeg of fuzzy) en zetten we de string op de lijst, zodat gettext terugvalt op de brontekst in plaats van een kapotte string te tonen.
Wat kost het?
De eerste strings zijn gratis. Het hele bestand, tot 5,000 strings, kost $5, eenmalig betaald, zonder abonnement. Kleine opdrachten zijn de uitzondering: een opdracht van maximaal 300 strings is helemaal gratis, inclusief downloads.