Qt Quick I18N

Qt Quick アプリケーションの翻訳ファイル(TS と QM)を生成します。

サンプルアプリケーションを実行すると、QML ランタイムは自動的にシステム言語に基づいて、メインの .qml ファイルを含むディレクトリのi18n サブディレクトリから翻訳を読み込みます。

翻訳可能なテキストをマークする

Main.qml ファイルで、qsTr コマンドを使用して、UI テキストを翻訳可能なものとしてマークします:

        Text {
            text: qsTr("Hello")

翻訳を有効にする

main.cpp ファイルで、QQmlApplicationEngine を使用して、メインの QML ファイルを含むディレクトリのi18n というサブディレクトリから翻訳ファイルを自動的に読み込みます:

#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;

サブディレクトリi18n の翻訳ファイル名には、qml_ というプレフィックスが必要です。例えば、qml_en_AU.ts

翻訳ファイルの作成

CMakeLists.txt ファイルのfind_package コマンドの値として、LinguistTools モジュールを追加します:

find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Qml LinguistTools)

qt_add_translationsコマンドで生成する翻訳ファイルを定義します:

qt_add_translations(qmli18n
    RESOURCE_PREFIX /qt/qml/Translated/i18n
    TS_FILE_BASE qml
    TS_FILE_DIR i18n
)

TSファイルとQMファイルを生成するためにアプリケーションをビルドします。

Note: Android では、QM ファイルをリソースとしてインクルードしてください。

翻訳の追加

新しい言語の翻訳を作成するには、i18n/base.tsi18n/qml_<lang>.ts にコピーします。Qt Linguistを使って文字列を翻訳することができます。

プロジェクト例 @ code.qt.io

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。