Lokalisering er vanskelig. Det er virkelig svært. Det er ikke kun "pairs of words" => "Wortpaare"
, det er meget mere komplekst end som så. Hvad de fleste glemmer, når de ser på gettext og siger "Ugh, grim" er det lokaliseringsprocessen er meget vigtigere end de tekniske detaljer i implementeringen. Det skyldes, at de faktiske oversættere typisk ikke er programmører og sandsynligvis ikke engang er in-house. Dette forårsager meget mere hovedpine, end du måske tror. gettext er virkelig gammel, er kamptestet og har en enorm værktøjskæde bag sig, der er tunet til at understøtte denne proces. Hvis du vil gøre i18n og l10n ordentligt, har du brug for et kraftfuldt system. gettext er det og har støtte fra en bred vifte af værktøjer. Dit Homebrewed Translation System™ gør ikke.
Først og fremmest har du brug for et robust system til at udpakke oversættelige strenge. Uden at være i stand til automatisk og reproducerbart at udtrække oversættelige strenge fra kildekoden, har du et bjerg af arbejde for hver ny streng, du ønsker at oversætte. I gettext, xgettext
gør det.
Dernæst har du brug for et værktøj til at synkronisere de udtrukne strenge med allerede eksisterende oversættelser på en måde, så ingen oversættelser går tabt, og at kun lidt ændrede oversættelser bevares, hvis det er muligt. I gettext, msgmerge
gør det.
Dernæst vil du have en måde at tilføje ekstra information til strenge. Du vil gerne være i stand til at gruppere dem efter kategori, "domæne" og kontekst, du vil måske tilføje kommentarer til oversætteren til kildekoden, og du vil måske have, at oversættere skal kunne tilføje kommentarer til oversættelserne. gettext understøtter alt det.
Dernæst vil du have et filformat, der har god støtte fra en række forskellige værktøjer, da du muligvis sender dine filer til Kina for at få dem oversat der. Grunden til, at du muligvis sender dem afsted til eksterne oversættere, er også grunden til, at du har brug for et godt synkroniseringsværktøj til at flette ændringer, da dette kan være en meget asynkron proces. PO-filer er meget godt understøttet, fordi gettext er så gammel. Der er mange open source og kommercielle værktøjer, der understøtter lokaliseringsprocessen på mange niveauer, afhængigt af dine specifikke behov.
Undervurder ikke opgaven med lokalisering, vælg et værktøj, der er velegnet til processen, og lær det. gettext er et fantastisk værktøj, hvis det ganske vist ikke er det mest begyndervenlige.
For hvad det er værd, her er min gettext-udvidelse til Twig , hvilket gør gettext til PHP endnu bedre.