Czytelnia / Technologie tłumaczeniowe

Poniższa lista wskazówek została opracowana na podstawie (często bolesnego) doświadczenia. Najwięcej problemów powstaje w wyniku nieprzestrzegania podstawowych zasad XML i nie najlepszych umiejętności w jego stosowaniu. Jednak zaskakujące może być to, jak często sam napotkasz przykłady takich problemów. Pamiętaj, że nie jest to lista zakazów, tzn. w niektórych okolicznościach zaproponowane zasady będą mogły być złamane:

Unikaj specjalnie określonych odwołań do encji

Chociaż odwołania do encji mogą wydawać się „zręczną" techniką zastępowania zmiennego tekstu, takiego jak przykładowa nazwa lub artykuł w publikacji, potrafią czasem wywołać więcej problemów niż ich rozwiązać. Następujący przykład pokazuje, jak kuszące jest używanie encji dla projektantów XML:

Use a &tool; to release the catch.

Przykład 1: Niepoprawne użycie odwołań do encji 


Encje mogą być przyczyną następujących problemów:

• Problemy gramatyczne. Jeżeli nazwa encji jest rzeczownikiem lub frazą nominalną, może spowodować to poważne problemy w językach, w których rzeczownik podlega odmianie, np. w wielu językach słowiańskich i germańskich. Chociaż zastępowanie encji w języku angielskim wydaje się być poprawne, w językach fleksyjnych może powodować trudności nie do przezwyciężenia. Dlatego jedynym rozwiązaniem jest dopasowanie wszystkich encji w pierwotnej postaci dokumentu XML przed jego tłumaczeniem.

• Problemy parsowania. Zazwyczaj, aby wykonać tłumaczenie, format tekstu musi zostać zmieniony na przykład na XLIFF, a wtedy encje mogą powodować problem parsowania.

• Problemy z pamięcią tłumaczeniową. Używanie specjalnie określonych odwołań do encji może być również przyczyną problemów z pamięcią tłumaczeniową, która może zawierać encje niezdefiniowane w danym dokumencie.

Zdecydowanie lepszym rozwiązaniem jest stosowanie technik alternatywnych w stosunku do odwołań do encji, np.:


  Use a claw hammer
  to release the CPU retention catch.


Przykład 2: Proponowane rozwiązanie 

Encje z powodzeniem MOGĄ być używane w przypadku szablonów (ang. boilerplate text). Aby go przechować, stosuje się encje parametryczne. Tekst zawsze powinien być kompletny językowo, co oznacza, że nie może opierać się na zależnościach pozycyjnych w stosunku do innych encji itp. Boilerplate text używa się wyłącznie w DTD (ang. Document Type Definition).

Aby zastosować tę technikę, należy stworzyć paralelne wersje DTD języka docelowego. Wprawdzie koszty mogą wzrosnąć, jednak rozsądny projekt DTD i zastosowanie dyrektyw INCLUDE są w stanie je zminimalizować.