sql >> Databasteknik >  >> RDS >> Mysql

Gettext eller databasöversättning

Lokalisering är svårt. Det är verkligen svårt. Det är inte bara "pairs of words" => "Wortpaare" , det är mycket mer komplicerat än så. Vad de flesta glömmer när de tittar på gettext och säger "Usch, ful" är att lokaliseringsprocessen är mycket viktigare än de tekniska detaljerna i implementeringen. Det beror på att de faktiska översättarna vanligtvis inte är programmerare och förmodligen inte ens är interna. Detta orsakar mycket mer huvudvärk än du kanske tror. gettext är riktigt gammal, är stridstestad och har en enorm verktygskedja bakom sig som är inställd för att stödja denna process. Om du vill göra i18n och l10n ordentligt behöver du ett kraftfullt system. gettext är det och har stöd från ett brett utbud av verktyg. Ditt hembryggda översättningssystem™ gör det inte.

Först och främst behöver du ett robust system för att extrahera översättbara strängar. Utan att automatiskt och reproducerbart kunna extrahera översättbara strängar från källkoden har du ett berg av arbete för varje ny sträng du vill översätta. I gettext, xgettext gör det.

Därefter behöver du ett verktyg för att synkronisera de extraherade strängarna med redan befintliga översättningar på ett sätt så att inga översättningar går förlorade och att endast något ändrade översättningar behålls om möjligt. I gettext, msgmerge gör det.

Därefter vill du ha ett sätt att lägga till extra information till strängar. Du vill kunna gruppera dem efter kategori, "domän" och sammanhang, du kanske vill lägga till kommentarer för översättaren till källkoden och du kanske vill att översättare ska kunna lägga till kommentarer till översättningarna. gettext stöder allt detta.

Därefter vill du ha ett filformat som har bra stöd från en mängd olika verktyg, eftersom du kanske skickar dina filer till Kina för att få dem översatta där. Anledningen till att du kanske skickar iväg dem till externa översättare är också anledningen till att du behöver ett bra synkroniseringsverktyg för att slå samman ändringar, eftersom detta kan vara en mycket asynkron process. PO-filer stöds mycket väl, eftersom gettext är så gammalt. Det finns många öppen källkod och kommersiella verktyg som stödjer lokaliseringsprocessen på många nivåer, beroende på dina specifika behov.

Underskatta inte lokaliseringsuppgiften, välj ett verktyg som är väl lämpat för processen och lär dig det. gettext är ett utmärkt verktyg, om inte det mest nybörjarvänliga.

För vad det är värt, här är mitt gettext-tillägg för Twig , vilket gör gettext för PHP ännu bättre.



  1. MySQL:GROUP_CONCAT med en ORDER BY COUNT?

  2. Är det möjligt att döda en enda fråga i Oracle utan att döda sessionen?

  3. mysql - Jag tog bort användartabellen! hur kan jag återställa det?

  4. Windows PSQL kommandorad:finns det ett sätt att tillåta lösenordslös inloggning?