Tłumaczenia¶
Każdy widoczny dla użytkownika string pokazywany przez wtyczkę musi być
tłumaczalny, z katalogami dla wszystkich czterech obsługiwanych języków —
en, pl, de, fr — zanim wtyczkę można uznać za skończoną. To ta sama
poprzeczka co testy.
Katalogi¶
Każda wtyczka mająca jakikolwiek string niesie po jednym katalogu .ts na
język w swoim folderze Translations/:
Podepnij je do builda przez mte_add_plugin:
mte_add_plugin(NAME MyPlugin
SOURCES Src/MyPlugin.cpp
TRANSLATIONS
Translations/MyPlugin_en.ts
Translations/MyPlugin_pl.ts
Translations/MyPlugin_de.ts
Translations/MyPlugin_fr.ts
)
Build uruchamia lrelease, aby przygotować pliki .qm; TranslationManager
ładuje je w czasie działania po nazwie katalogu (katalogi wtyczek pod
Plugins/Translations/<Plugin>/).
Oznaczanie stringów do tłumaczenia¶
- Dla zwykłych stringów UI preferuj
QObject::tr(...)(kontekst = klasa). - Helper
tr_()opakowujeQCoreApplication::translate("<Context>", s)dla stringów pozaQObject.
tr_() jest niewidoczny dla lupdate
lupdate nie potrafi rozwiązać kontekstu wewnątrz tr_(), więc te katalogi
utrzymywane są ręcznie. Utrzymuj tekst <source> bajt w bajt identyczny
ze stringiem w czasie działania, inaczej tłumaczenie po cichu się nie
zastosuje.
Definicja ukończenia¶
Lokalizacja wtyczki jest skończona dopiero wtedy, gdy wszystkie cztery pliki
.ts istnieją, są podpięte, a lrelease raportuje 0 unfinished.