Frankfurckie studio wielojęzycznych obecności cyfrowych +49 69 95209894 [email protected] Pn–Pt 9–17 Obszar klienta →
PolskiPL

Waluta

Kwoty w walutach obcych są niewiążącymi wartościami orientacyjnymi; rozliczenie następuje w euro.

Przewodnik praktyczny

Przewodnik po lokalizacji aplikacji i oprogramowania (i18n)

Lokalizacja aplikacji i oprogramowania wymaga przemyślanego oddzielenia kodu od tekstów. Niniejszy przewodnik obejmuje aspekty techniczne, takie jak placeholder'y, reguły liczby mnogiej, długość tekstu, klucze stringów, kontekst dla tłumaczy oraz obsługę RTL. Pomaga programistom tworzyć międzynarodowe aplikacje wydajnie i spójnie, nie poruszając tematów prawnych ani finansowych.

i18n
Skrót internacjonalizacji
RTL
Wsparcie dla kierunku od prawej do lewej
ICU
Międzynarodowe komponenty dla Unicode
Diagram przedstawiający separację kodu i zasobów językowych

1. Oddzielenie kodu od tekstów

Podstawowym warunkiem każdej lokalizacji jest ścisłe oddzielenie kodu programu od treści tekstowych. Wszystkie wyświetlane teksty powinny być przechowywane w zewnętrznych plikach zasobów (np. Properties, JSON, YAML), a nie zakodowane na stałe w kodzie źródłowym. Dzięki temu tłumacze mogą pracować bez modyfikowania kodu. Należy używać unikalnych kluczy stringów jako odniesień w kodzie, które wskazują na odpowiednie tłumaczenia. To oddzielenie ułatwia również konserwację i pozwala na późniejsze dodawanie nowych języków bez zmian w kodzie. Upewnij się, że etykiety interfejsu, komunikaty błędów i tooltipy również znajdują się w tych plikach.

2. Symbole zastępcze i zmienne

Teksty często zawierają dynamiczne treści, takie jak liczby, nazwy lub daty. Należy je wstawiać za pomocą symboli zastępczych, np. formatowania printf (%s, %d) lub nowocześniejszych metod, jak nawiasy klamrowe {0}. Ważne jest, aby tłumacze znali kolejność i znaczenie symboli zastępczych. Używaj nazwanych symboli zastępczych (np. „{username}”), aby zapewnić kontekst. W językach o różnej strukturze zdania kolejność symboli może się zmieniać. Dlatego zapewnij możliwość dostosowania kolejności w tłumaczeniu. Przetestuj wszystkie warianty, aby uniknąć błędnych lub niekompletnych wyników.

Przykład symboli zastępczych w tłumaczonych ciągach znaków

3. Reguły liczby mnogiej i tworzenie liczby mnogiej

W języku niemieckim istnieje tylko liczba pojedyncza i mnoga, ale wiele języków ma bardziej złożone reguły liczby mnogiej (np. arabski z sześcioma kategoriami). Korzystaj z bibliotek takich jak ICU MessageFormat, które obsługują reguły liczby mnogiej specyficzne dla języka. Zdefiniuj w swoich zasobach osobne klucze dla różnych form liczby mnogiej (one, other). Kod automatycznie wybierze odpowiednią formę na podstawie liczby. Przykład: „{count} {count, plural, one {jabłko} other {jabłka}}”. Przetestuj każdy językowo z wieloma wartościami liczbowymi, aby upewnić się, że wyświetlana jest poprawna forma liczby mnogiej. Unikaj sztywnych instrukcji if – to podatne na błędy.

4. Długość tekstu i bufor układu

Tłumaczenia są często dłuższe lub krótsze niż oryginalny tekst. Szczególnie w przyciskach, menu i etykietach może to rozsadzić układ. Zaplanuj więc odpowiednią przestrzeń na rozszerzenia tekstu – dobrą wytyczną jest 30% dodatkowego miejsca dla języków zachodnich, więcej dla azjatyckich. Używaj dynamicznych układów, które dostosowują się do długości tekstu (np. Auto Layout w iOS lub Flexbox w sieci). Unikaj stałych szerokości. Pozwól elementom interfejsu na zawijanie tekstu. Przetestuj interfejs z najdłuższymi spodziewanymi tłumaczeniami, aby uniknąć nakładania się lub obcinania.

5. Klucze stringów, kontekst dla tłumaczy i RTL

Jednoznaczne klucze stringów są kręgosłupem lokalizacji. Używaj opisowych nazw (np. „login.button.title”) i dokumentuj cel użycia. Zapewnij tłumaczom kontekst: zrzuty ekranu, maksymalną długość znaków, ograniczenia (np. „nie dłuższe niż 20 znaków”). Dla języków RTL, takich jak arabski czy hebrajski, interfejs musi być odbity lustrzanie. Korzystaj z atrybutów układu, które automatycznie obsługują RTL (np. start/end zamiast left/right). Przetestuj całą nawigację w warunkach RTL. Pamiętaj również o ikonach i grafikach – mogą być różnie interpretowane w zależności od kultury.

Lista kontrolna wejścia na rynek

  • Korzystaj z zewnętrznych plików zasobów dla tekstów
  • Placeholdery z nazwanymi zmiennymi i regulowaną kolejnością
  • Zaimplementuj reguły liczby mnogiej za pomocą ICU MessageFormat
  • Układ z co najmniej 30% buforem na rozszerzenia tekstu
  • Opisowe klucze ciągów z dokumentacją kontekstu
  • Obsługa RTL poprzez atrybuty układu, takie jak start/end
Siatka układu z różnymi długościami tekstu i buforami

Często zadawane pytania

Dlaczego rozdzielenie kodu i tekstów jest ważne?

Umożliwia tłumaczenia bez zmian w kodzie, upraszcza konserwację i pozwala dodawać nowe języki bez konieczności ponownej kompilacji oprogramowania.

Jak obsługiwać formy liczby mnogiej w różnych językach?

Korzystaj z bibliotek takich jak ICU MessageFormat, które dla każdego języka wybierają poprawną formę liczby mnogiej. Zdefiniuj w zasobach klucze dla każdej kategorii liczby mnogiej (np. one, other).

Na co szczególnie zwrócić uwagę w językach RTL?

Interfejs użytkownika musi być odbity lustrzanie: używaj atrybutów układu logicznego (start/end) zamiast absolutnych kierunków. Przetestuj nawigację i wcięcia tekstu w warunkach RTL.

Gotowi na ten rynek?

Lokalizujemy Twoją stronę językowo, technicznie i kulturowo – z weryfikacją native speakerów i stałą ceną. Poproś o bezpłatną wycenę.

Poproś o bezpłatną wycenę

Niemiecka GmbHSąd Rejonowy we Frankfurcie nad Menem · HRB 111727
Zarejestrowana w D-U-N-S®315030052
Przetwarzanie zgodne z RODOHosting w Niemczech
Stałe ceny z pisemną gwarancją dostawy