2010-06-03 4 views
8

Szukasz wskazówek i/lub narzędzi, jak skutecznie pracować z plikami PO gettext podczas wprowadzania małych zmian do dużych wartości msgid.Jak skutecznie pracować z plikami PO gettext podczas wprowadzania małych zmian do dużych wartości tekstowych

Przykład: Mamy wiele wiadomości z wieloma zdaniami/wieloma akapitami, które są przechowywane w naszych plikach katalogów wiadomości PO. Jeśli dokonamy bardzo drobnej zmiany w wiadomości, być może edytując pojedyncze zdanie lub nawet poprawiając interpunkcję, tracimy nasze oryginalne tłumaczenie, gdy uruchamiamy narzędzie msgmerge.

Zamiast ponownie tłumaczyć długie wiadomości (które przeszły już proces zatwierdzania redakcyjnego) od zera, nasi tłumacze powracają do kopii zapasowych swoich plików PO i ręcznie szukają tekstu ostatniej pary tłumaczeń msgid/msgstr, następnie różnicują się z bieżącymi wartościami msgid, aby zobaczyć, co się zmieniło, po czym następuje kopiowanie i wklejanie ostatniego tłumaczenia, które następnie edytują w celu odzwierciedlenia zaktualizowanej wartości msgid.

To dużo pracy! Z pewnością musi istnieć lepszy sposób obsługi tego typu przepływu pracy?

Czy istnieje sprawdzona metoda archiwizacji i znalezienia poprzednich tłumaczeń, które nie znajdują się już w pliku PO? Jedną z pomysłów, która przychodzi do głowy, jest zapisanie unikalnego identyfikatora msg w tekście naszych wiadomości lub w komentarzach poprzedzających naszą wiadomość i użycie tego id do pobrania poprzednich par tłumaczeń msgid/msgstr do przeglądu. Czy istnieją redaktorzy PO lub usługi online, które czynią ten proces bardziej wydajnym?

Dziękuję Malcolm

Odpowiedz

5

Virtaal „s tłumaczenie obsługa pamięci może prawdopodobnie pomóc. Jeśli twoje oryginalne jednostki znajdują się w pamięci tłumaczeń, zostaną pokazane (z różnicami) w obrębie pewnego marginesu zmiany (na podstawie odległości Levenshteina). Wciąż będzie zawierać oryginalne (niezmodyfikowane) tłumaczenie, ale przynajmniej oryginalny tekst jest łatwiej dostępny, a różnice wyróżnione.

Nie jestem w 100% pewny, ale Pootle może również oferować rozwiązanie internetowe. Jeśli potrzebujesz pomocy, zapytaj w #pootle na FreeNode.

Bardziej ogólnym ulepszeniem jest oczywiście oddzielenie/podział jednostek tak daleko, jak to możliwe.

+0

Dziękuję Walter. Pozdrawiam, Malcolm – Malcolm

9

Szukałem sposobu wprowadzania drobnych zmian w msgidach bez zakłócania istniejących tłumaczeń - na przykład poprawek literowych w tekście źródłowym. Oto przepis Właśnie wypracowane że nie wiąże stron:

  1. Wpisz msgen z GNU gettext wygenerować plik po angielsko-do-angielski:

    msgen project.pot >corrections.po

  2. Ręczne edytuj msgstr s w "correction.po", aby odzwierciedlić poprawki literowe wykonane w tekście źródłowym, więc mamy mapowanie z nieskorygowanych poprawionych łańcuchów. (Nie zastanawiałem się, jak zautomatyzować ten kawałek.)

  3. Dla każdego "prawdziwego" przekładu (np ca.po): nadużywanie poswap od Toolkit translate (translate-toolkit w Ubuntu), aby zmienić msgid:

    poswap -i corrections.po -t ca.po -o ca.new.po

To wydaje się tracą komentarze nagłówkowe i przestarzałe ciągi z plików GNU gettext po, ale ręczne ich poprawianie jest znacznie mniej pracy niż ręczne modyfikowanie msgids w każdym tłumaczeniu (i prawdopodobnie mogłoby być łatwo skryptowane).

(Oczywiście, powinno być stosowane tylko w wyjątkowych okolicznościach, jeżeli jesteś absolutnie pewny, że żaden z tłumaczy potrzebują możliwość ponownego przejrzenia ich tłumaczenia.)

+0

Bardzo sprytny. Dziękuję JTN. Pozdrawiam, Malcolm – Malcolm

Powiązane problemy