Sep 24

Ciężki orzech do zgryzienia, czyli zmiana segmentacji TM

OkapiWyobraźmy sobie, że dostajemy do przetłumaczenia duży plik – nową wersję instrukcji, którą już kiedyś tłumaczyliśmy. Dzięki programowi CAT i starej TM z poprzedniego tłumaczenia możemy przetłumaczyć tylko nowy tekst, stare fragmenty podstawiając z pamięci, dzięki czemu zrobimy to szybciej i taniej niż ktoś inny. Problem w tym, że „stara” TM powstała z użyciem innych reguł segmentacji, niż stosowane w obecnie używanym oprogramowaniu. Jak sobie z tym poradzić?

U progu swojej „kariery” tłumacza technicznego pracowałem w systemie Linuks, używając wyłącznie darmowych narzędzi. Nie powinno więc dziwić, że moim pierwszym programem CAT była OmegaT – całkiem darmowy program napisany w Javie. Użyłem go mn. do przetłumaczenia kilku dość dużych instrukcji obsługi, w czym bardzo mi pomógł dzięki sporej powtarzalności tekstu. Niestety, w tamtych czasach w programie OmegaT dostępna była jedynie segmentacja akapitowa, a właśnie zgłosił się do mnie klient z tłumaczeniem nowszej wersji jednej z tamtych instrukcji. Wydawało mi się, że nie ma na to pytanie prostej odpowiedzi. Kilka miesięcy wcześniej w analogicznej sytuacji wygenerowałem TM z segmentacją zdaniową robiąc align dokumentu źródłowego i tłumaczenia (tych z poprzedniej wersji). Niestety, było to dość pracochłonne. Tym razem postanowiłem uważniej przyjrzeć się programom z pakietu Okapi.

Co to takiego? Cytując opis ze strony projektu: „jest to zestaw specyfikacji interfejsów, modeli obiektów, elementów i aplikacji zapewniających środowisko do tworzenia uniwersalnych narzędzi służących do lokalizacji i tłumaczenia dokumentacji i oprogramowania.” Brzmi strasznie, na szczęście w rzeczywistości nie jest tak źle. Okapi to zestaw narzędzi i filtrów służących do pracy z pamięciami tłumaczeń oraz konwersją i przygotowaniem do tłumaczenia różnego rodzaju plików. Funkcja, która mnie tym razem najbardziej zainteresowała to właśnie możliwość przesegmentowania pamięci tłumaczeń.

Niestety, jak to czasami bywa w projektach Open Source, pakiet został stosunkowo niedawno przepisany na inny język programowania i w sieci dostępne są jego dwie wersje. W procedurze wymagany jest jeden program w starej wersji i jeden w nowej.

Okapi2

Opis procedury zaczerpnąłem stąd.

  1. Pobrać i zainstalować program Olifant. Służy on do edycji i tworzenia plików TM. W naszym wypadku jest konieczny tylko, jeśli segmenty pamięci do przeróbki nie mają atrybutów “tuid”, czyli unikalnych identyfikatorów segmentów.
  2. Wczytać pamięć w formacie TMX do programu Olifant i wybrać z menu „Entries” polecenie „Generate IDs”. Zapisać plik.
  3. Pobrać i rozpakować do stworzonego folderu program program Rainbow w wersji 6.0 lub wyższej (dostępny tutaj, na stronie z Olifantem dostępna jest wersja 5).
  4. Uruchomić program  (nie jest tworzona ikona na pulpicie ani w menu Start). Korzystając z Eksploratora (lub innego managera plików) przeciągnąć na kartę Input List 1 plik TM do konwersji. Ten sam plik przeciągnąć na kartę Input List 2. W karcieLanguages and Encodings ustawić właściwe parametry (w razie wątpliwości sprawdzić nagłówek pliku TMX).
    UWAGA: W ścieżce do pliku nie mogą się znajdować foldery ze spacjami w nazwie.
  5. Z menu „Utilities” wybrać polecenie „ID-based alignment”. Zaznaczyć opcję „Segment the extracted text using the following SRX rules:” (Segmentuj ekstrahowany tekst używając następujących reguł). Wybrać plik .srx z regułami segmentacji. Jeden dostępny jest w podfolderze Config folderu Okapi. Ja użyłem pliku domyślnych reguł segmentacji programu SDLX z pakietu Trados 2007.
  6. Na karcie Output wybrać wpisać nazwę pliku wyjściowego i kliknąć OK. Jeśli nie popełniliśmy jakiegoś błędu, program rozpocznie pracę (patrz ilustracja wyżej).

I to wszystko. W moim wypadku zamiast całego dnia uzyskałem przesegmentowaną TM w niecałe trzy godziny (włącznie z wyjaśnieniem problemu spacji w nazwie).

4 comments

Skip to comment form

    • Adam on 2009/09/25 at 13:06
    • Reply

    Witam Pana po urlopie!

    Nie wiem gdzie mogę zadać pytanie niezwiązanie bezpośrednio z tematem wpisu, więc robię to tu.

    W opisie ogólnym narzędzi CAT wśród zalet wymienia Pan:
    “Po drugie – możliwość definiowania tzw. “placeables”, czyli fragmentów tekstu, które program rozpoznaje i umożliwia skopiowanie za pomocą skrótu klawiszowego z segmentu źródłowego do tłumaczenia – może to być np. data (wraz z automatyczną konwersją na inny format), nazwa produktu czy wartość liczbowa.”

    Jestem użytkownikiem codziennym Tradosa i bardzo chciałbym dowiedzieć się jak zdefiniować te “placeables” będące np. nazwą produktu, z datą i wartościami liczbowymi sobie radzę.

    Pozdrawiam i uważam, że blog jest super i na czasie.

    Przy okazji polecam konferencję TM (tym razem to od Translation Management nie Memory) Europe http://www.tm-europe.org/

  1. @Adam
    To dość nieskomplikowane: w programie Workbench menu File > Setup > Substitutions. Włączyć opcję „Variables” i wpisać listę, po jednym haśle na wiersz. Przejście do następnego wiersza przez Ctrl-Enter.

    A co do konferencji to wiem o niej i chętnie bym się wybrał przynajmniej na niektóre sesje (np. szkolenia prowadzone przez Josta Zetzsche). Niestety, muszę wtedy wyjechać za granicę.

    Pozdrawiam,
    Marek Pawelec

  2. Doskonały informaywny tekst! Sam kiedyś przerabiałem resegmentowanie i nadal śni mi się to po nocach. Dobra roboa Marku!

  3. Bardzo ładne, dziękuję.

Leave a Reply

Your email address will not be published.