#include "app/translations.h" #include "core/config.h" #include "core/input.h" #include #include #include #include #include #include #include using namespace docview; class TranslationsTest : public QObject { Q_OBJECT private slots: void compiledCatalogIsEmbedded(); void japaneseDiagnosticsAndQtButtons(); }; void TranslationsTest::compiledCatalogIsEmbedded() { QTranslator catalog; QVERIFY(catalog.load(QStringLiteral(":/i18n/docview_ja.qm"))); QCOMPARE(catalog.translate("Commands", "コマンドを入力してください"), QStringLiteral("コマンドを入力してください")); QCOMPARE(catalog.translate("Archive", "アーカイブを読み取れません。"), QStringLiteral("アーカイブを読み取れません。")); } void TranslationsTest::japaneseDiagnosticsAndQtButtons() { ApplicationTranslations translations; ConfigManager config; QVERIFY(!config.loadData("[ui]\nfont_size = 'large'\n")); QVERIFY2(config.lastError().contains(QStringLiteral("2行、ui.font_size")), qPrintable(config.lastError())); QVERIFY(config.lastError().contains(QStringLiteral("数値"))); QVERIFY(CommandRegistry::parse(":page wrong").error.contains(QStringLiteral("整数"))); QQmlEngine engine; QQmlComponent component(&engine); component.setData(R"( import QtQuick import QtQuick.Controls Item { width: 400; height: 300 Dialog { id: dialog; standardButtons: Dialog.Open | Dialog.Cancel } readonly property string openText: dialog.standardButton(Dialog.Open).text readonly property string cancelText: dialog.standardButton(Dialog.Cancel).text } )", QUrl("qrc:/translation-test.qml")); std::unique_ptr object(component.create()); QVERIFY2(object, qPrintable(component.errorString())); QCOMPARE(object->property("openText").toString().remove('&'), QStringLiteral("開く")); QCOMPARE(object->property("cancelText").toString().remove('&'), QStringLiteral("キャンセル")); } int main(int argc, char **argv) { // The product's Japanese initial language must not depend on an English host. QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates)); QGuiApplication application(argc, argv); TranslationsTest test; return QTest::qExec(&test, argc, argv); } #include "test_translations.moc"