Lokalizacja (Tłumaczenia)

Dokumentacja jest stale rozwijana i aktualizowana wraz z postępem projektu. Ponieważ powstaje ona równolegle z kodem, niektóre sekcje mogą tymczasowo odnosić się do wcześniejszych wersji systemu - są one sukcesywnie dostosowywane do bieżącego stanu aplikacji. Jeśli zauważysz nieaktualne informacje, zgłoś to lub załóż Issue / Pull Request.

Dokumentacja

# Lokalizacja (Tłumaczenia)

# Przegląd

Klasa Translation zapewnia lekki i elastyczny sposób obsługi tłumaczeń w aplikacji.

Obsługuje:

  • Placeholdery nazwane {key}
  • Formatowanie sprintf (%s, %1$s)
  • Fallback do klucza, jeśli tłumaczenie nie istnieje

# Podstawowe użycie

use Dbm\Localization\Translation;

$translations = [
    'hello' => 'Witaj {name}',
];

$translator = new Translation($translations);

echo $translator->trans('hello', ['name' => 'Jan']);
// Witaj Jan

# Metoda tłumaczenia

trans(string $key, ?array $data = null): string

# Działanie

  1. Wyszukuje tłumaczenie po kluczu
  2. Zamienia placeholdery
  3. Zwraca klucz, jeśli tłumaczenie nie istnieje

# Placeholdery

# Placeholdery nazwane

'hello' => 'Witaj {name}'
$translator->trans('hello', ['name' => 'Jan']);

# Placeholdery sprintf

'items' => 'Masz %d elementów'
$translator->trans('items', [5]);

# Zachowanie fallback

Jeśli tłumaczenie nie istnieje:

$translator->trans('unknown.key');

Zwraca:

unknown.key

# Integracja z Validator

Validator automatycznie obsługuje tłumaczenia:

$validator = new Validator($translator);

# Dobre praktyki

  • Przechowuj tłumaczenia w osobnych plikach
  • Używaj spójnych kluczy (validation.required)
  • Unikaj hardcodowania komunikatów

# Podsumowanie

System tłumaczeń jest:

  • lekki
  • bez zależności
  • elastyczny
  • bezpieczny (nie powoduje błędów aplikacji)