Globalizacja aplikacji

Środowisko Qt dostarcza narzędzia i metodologię, umożliwiając użytkownikom umiędzynarodowienie ich aplikacji. Szczegółowe informacje zawiera temat Umiędzynaradawianie i lokalizacja z użyciem aplikacji Qt Quick.

Ogólne etapy są następujące:

  1. Upewnij się, że umiędzynarodowienie zostało uwzględnione w plikach QML, co obejmuje użycie tekstowych ciągów znakowych, ujednoznacznienie identycznych tekstów oraz użycie parametrów i ustawień regionalnych.
  2. Użyj narzędzia wiersza polecenia lupdate.exe, aby wygenerować bazowy plik z tłumaczeniem, po czym skopiuj go i nazwij odpowiednio dla każdego wymaganego języka.
  3. Użyj narzędzia Qt Linguist, aby otworzyć te pliki i dostarczyć tłumaczenie.
  4. W narzędziu Qt Linguist wybierz opcję File (Plik) > Release (Wydanie) lub użyj narzędzia wiersza polecenia lrelease.exe, aby wygenerować pliki z tłumaczeniem.
  5. Umieść pliki z tłumaczeniem w projekcie, który będzie niezależną aplikacją.

Umiędzynarodowienie kodu QML

Firma The Qt Company zaleca wykonanie następujących działań w celu umiędzynarodowienia kodu QML:

  1. Użyj funkcji qsTr() dla wszystkich literalnych ciągów znakowych interfejsu użytkownika.
  2. Dodaj kontekst. Za pomocą wierszy komentarzy opisz, gdzie dany ciąg znakowy jest używany, używając konkretnej składni. Znacznik //: oznacza komentarz przeznaczony dla tłumacza, natomiast znacznik //~ — opcjonalne informacje dodatkowe.
  3. Ujednoznacznij identyczne teksty. Jeśli termin może mieć wiele znaczeń, dodaj drugi parametr, aby je odróżnić, na przykład text: qsTr("back", "not front"); text: qsTr("back", "go backward").
  4. Wstawiaj parametry do ciągu znakowego za pomocą znacznika %x, na przykład text: qsTr("File %1 of %2").arg(counter).arg(total).
  5. Używaj znacznika %Lx, aby liczby zostały zlokalizowane, na przykład text: qsTr("%L1").arg(total).
  6. Przeprowadź umiędzynarodowienie dat, godzin i walut, na przykład text: qsTr("Date %1").arg(Date().toLocaleString(Qt.locale())).
  7. Użyj funkcji QT_TR_NOOP() w przypadku możliwych do przetłumaczenia tekstowych ciągów znakowych danych.
  8. Tam, gdzie to możliwe, rozszerz funkcje lokalizacji za pomocą ustawień regionalnych.

Szczegółowe informacje na temat każdego etapu zawiera temat Umiędzynaradawianie i lokalizacja z użyciem aplikacji Qt Quick.

Tłumaczenie aplikacji należy także brać pod uwagę podczas dołączania obrazów do aplikacji. Wyświetlany obraz może zależeć od wybranego języka. Poniższy przykład prezentuje sposób wykrywania, czy jest używany język z pismem od prawej do lewej (RTL) i odpowiedniego ustawienia definiowanej przez użytkownika właściwości o nazwie mirror. Ta właściwość jest następnie używana do określenia, który obraz będzie wyświetlany.

    property var localeForRTL:["ar", "he", "he-IL"]
    property bool mirror: localeForRTL.indexOf(Qt.locale().uiLanguages[0]) > -1 

    Image{
        source: mirror ? "./RTLimage.png" : "./Image.png"
    }

lupdate

lupdate to narzędzie wiersza poleceń z pakietu Qt znajdujące się w folderze instalacyjnym aplikacji AppStudio.

Aby uruchomić, otwórz wiersz polecenia w katalogu projektu i uruchom następujące polecenie. Pamiętaj, że kropka używana w każdym z następujących przykładów reprezentuje bieżący katalog, czyli folder aplikacji zawierający pliki .qml.

W systemie Windows:

C:\Users\UserName\ArcGIS\AppStudio\Apps\MyApp>"C:\Users\Username\Applications\ArcGIS\AppStudio\bin\lupdate.exe" . -extensions qml -ts languages/MyApp_en.ts

W systemie macOS:

/Users/UserName/applications/ArcGIS/AppStudio/tools/lupdate . -extensions qml -ts languages/MyApp_en.ts

W systemie Ubuntu:

~/Applications/ArcGIS/AppStudio/bin/lupdate . -extensions qml -ts languages/MyApp_en.ts

Zostanie utworzony nowy plik o nazwie MyApp_en.ts.

Tłumaczenia dla nowych języków są tworzone przez utworzenie kopii i zmianę nazwy pliku MyApp_en.ts dla każdego wymaganego języka oraz zastąpienie kodu „en” kodem odpowiedniego języka. Następnie będzie można edytować pliki .ts w narzędziu Qt Linguist.

Dodatkowe informacje można znaleźć w temacie Używanie lupdate.

Qt Linguist

Linguist to narzędzie graficznego interfejsu użytkownika (GUI) znajdujące się w folderze instalacyjnym aplikacji AppStudio. Otwórz pliki .ts, które zostały utworzone za pomocą narzędzia lupdate, w programie Linguist i dodaj tłumaczenia dla każdego wymienionego ciągu znakowego. Tylko ciągi oznaczone jako gotowe będą przetwarzane przez narzędzie lrelease.

Dodatkowe informacje można znaleźć w temacie Podręcznik użytkownika aplikacji Qt Linguist.

lrelease

Pliki wydania można generować na dwa sposoby:

  • Otwórz ukończony plik .ts w narzędziu Linguist i z menu File (Plik) wybierz opcję Release (Wydanie). Zostanie utworzony plik .qm odpowiadający plikowi .ts.
  • Użyj tego narzędzia wiersza poleceń. lrelease to narzędzie wiersza poleceń z pakietu Qt znajdujące się w folderze instalacyjnym aplikacji AppStudio. Wykonawcze pliki z tłumaczeniem mogą być generowane przez użycie następującego polecenia i podanie każdego pliku języka do wygenerowania:

    lrelease.exe languages\MyApp_ar.ts languages\MyApp_fr.ts

  • Przekaż opcję -help do narzędzia lrelease, aby wyświetlić obsługiwane opcje.

Więcej informacji znajduje się w temacie Używanie lrelease.

Wdrażanie plików z tłumaczeniem w aplikacji

Przed użyciem narzędzia Utwórz w celu utworzenia plików instalacyjnych upewnij się, że pliki .qm zostały dołączone do projektu. Zalecane konwencje nazewnictwa folderów są następujące:

MyApp > languages > qml_localecode.qm

Na przykład, jeżeli aplikacja ma niemiecką, francuską i chińską wersję językową, muszą zostać dołączone następujące pliki:

  • MyApp > languages > qml_de.qm
  • MyApp > languages > qml_fr.qm
  • MyApp > languages > qml_zh.qm

Konieczne jest także wskazanie aplikacji położenia tych plików. Te informacje są podawane w pliku appinfo.json. Otwórz plik appinfo.json w edytorze tekstu i dodaj następującą właściwość:

    "translations": {
        "fileName": "qml",
        "path": "languages"
    },

W powyższym przykładzie nazwa pliku to qml. Nie ma potrzeby dołączania znaku podkreślenia ani kodu języka. Nazwa folderu w przykładzie kodu to languages, co również jest zgodne z przykładem powyżej. Można wybrać własne nazwy folderów i plików, wystarczy pamiętać o ich wskazaniu w pliku appinfo.json.

Kiedy aplikacja zostanie uruchomiona na urządzeniu z ustawieniami regionalnymi zgodnymi z dostarczonym plikiem tłumaczenia, automatycznie wyświetli ciągi z odpowiedniego pliku. Alternatywnie do celów testowych można użyć parametru wiersza poleceń --locale, który spowoduje zastąpienie ustawień regionalnych systemu ustawieniami określonymi za pomocą kodu ustawień regionalnych podanego w tym parametrze. Na przykład dodanie parametru --locale fr w wierszu poleceń spowoduje uruchomienie aplikacji przy użyciu francuskich plików lokalizacji. Tych parametrów wiersza poleceń można użyć również przy uruchamianiu aplikacji w aplikacji AppStudio. W tym celu należy ustawić parametr w polu Command line arguments: (Argumenty wiersza poleceń) na karcie Projects (Projekty) programu Qt Creator.

Korzystając z aplikacji z udostępnionymi i skonfigurowanymi plikami tłumaczeń, różne pliki z tłumaczeniami można wczytywać do aplikacji przy użyciu metody loadTranslator w komponencie AppFramework.

Wersje językowe ofert w sklepie

W razie decyzji o rozpowszechnianiu aplikacji za pośrednictwem sklepu w sytuacji, kiedy zainwestowano w wersje językowe aplikacji, należy również zastanowić się nad przetłumaczeniem treści oferty ze sklepu. Zarówno sklep App Store, jak i Google Play oferują możliwość przetłumaczenia tekstu oferty w sklepie. W obu przypadkach można dostarczyć przetłumaczone opisy i zrzuty ekranów dla każdego języka stosowanego w sklepie w ramach jednej operacji przesyłania aplikacji.

Aby dowiedzieć się więcej, zapoznaj się z tematem: