diff --git a/sagasu/src/filepropertieswindow.cpp b/sagasu/src/filepropertieswindow.cpp index 7783263..f2dba32 100644 --- a/sagasu/src/filepropertieswindow.cpp +++ b/sagasu/src/filepropertieswindow.cpp @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: 2023 Joshua Goins // SPDX-License-Identifier: GPL-3.0-or-later +#include #include #include #include @@ -10,19 +11,19 @@ FilePropertiesWindow::FilePropertiesWindow(const QString &path, physis_Buffer buffer, QWidget *parent) : QWidget(parent) { - setWindowTitle(QStringLiteral("Properties for ") + path); + setWindowTitle(i18nc("@title:window", "Properties for ") + path); auto layout = new QFormLayout(); setLayout(layout); auto pathLabel = new QLabel(path); - layout->addRow(QStringLiteral("Path"), pathLabel); + layout->addRow(i18nc("@label", "Path"), pathLabel); - auto typeLabel = new QLabel(QStringLiteral("Unknown type")); - layout->addRow(QStringLiteral("Type"), typeLabel); + auto typeLabel = new QLabel(i18n("Unknown type")); + layout->addRow(i18nc("@label", "Type"), typeLabel); auto sizeLabel = new QLabel(QString::number(buffer.size)); - layout->addRow(QStringLiteral("Size (in bytes)"), sizeLabel); + layout->addRow(i18nc("@label", "Size (in bytes)"), sizeLabel); } #include "moc_filepropertieswindow.cpp" \ No newline at end of file diff --git a/sagasu/src/filetreemodel.cpp b/sagasu/src/filetreemodel.cpp index a39528f..67f9c23 100644 --- a/sagasu/src/filetreemodel.cpp +++ b/sagasu/src/filetreemodel.cpp @@ -4,6 +4,7 @@ #include "filetreemodel.h" #include "physis.hpp" +#include #include FileTreeModel::FileTreeModel(HashDatabase &database, bool showUnknown, const QString &gamePath, GameData *data, QObject *parent) @@ -121,13 +122,13 @@ QVariant FileTreeModel::data(const QModelIndex &index, int role) const } else if (role == Qt::DisplayRole) { if (item->type == TreeType::Folder) { if (item->name.isEmpty()) { - return QStringLiteral("Unknown Folder (%1)").arg(item->hash); + return i18n("Unknown Folder (%1)").arg(item->hash); } else { return item->name; } } else if (item->type == TreeType::File) { if (item->name.isEmpty()) { - return QStringLiteral("Unknown File (%1)").arg(item->hash); + return i18n("Unknown File (%1)").arg(item->hash); } else { return item->name; } @@ -141,7 +142,7 @@ QVariant FileTreeModel::headerData(int section, Qt::Orientation orientation, int { if (role == Qt::DisplayRole && orientation == Qt::Horizontal) { if (section == 0) { - return QStringLiteral("Name"); + return i18nc("@title:column", "Name"); } } diff --git a/sagasu/src/filetreewindow.cpp b/sagasu/src/filetreewindow.cpp index 6d15092..dfcbda9 100644 --- a/sagasu/src/filetreewindow.cpp +++ b/sagasu/src/filetreewindow.cpp @@ -3,6 +3,7 @@ #include "filetreewindow.h" +#include #include #include #include @@ -27,7 +28,7 @@ FileTreeWindow::FileTreeWindow(HashDatabase &database, const QString &gamePath, layout->addLayout(searchLayout);*/ auto searchEdit = new QLineEdit(); - searchEdit->setPlaceholderText(QStringLiteral("Search...")); + searchEdit->setPlaceholderText(i18nc("@info:placeholder", "Search…")); searchEdit->setClearButtonEnabled(true); searchEdit->setProperty("_breeze_borders_sides", QVariant::fromValue(QFlags{Qt::BottomEdge})); connect(searchEdit, &QLineEdit::textChanged, this, [this](const QString &text) { @@ -56,7 +57,7 @@ FileTreeWindow::FileTreeWindow(HashDatabase &database, const QString &gamePath, auto menu = new QMenu(); - auto extractAction = menu->addAction(QStringLiteral("Extract...")); + auto extractAction = menu->addAction(i18nc("@action:inmenu", "Extract…")); extractAction->setIcon(QIcon::fromTheme(QStringLiteral("archive-extract-symbolic"))); connect(extractAction, &QAction::triggered, this, [this, path] { Q_EMIT extractFile(path); diff --git a/sagasu/src/main.cpp b/sagasu/src/main.cpp index 6afbbe4..d49508a 100644 --- a/sagasu/src/main.cpp +++ b/sagasu/src/main.cpp @@ -3,6 +3,7 @@ #include +#include #include #include @@ -17,7 +18,7 @@ int main(int argc, char *argv[]) customizeAboutData(QStringLiteral("sagasu"), QStringLiteral("zone.xiv.sagasu"), QStringLiteral("Data Explorer"), - QStringLiteral("Program to explore FFXIV data archives.")); + i18n("Program to explore FFXIV data archives.")); // Default to a sensible message pattern if (qEnvironmentVariableIsEmpty("QT_MESSAGE_PATTERN")) { diff --git a/sagasu/src/mainwindow.cpp b/sagasu/src/mainwindow.cpp index 3c33c9f..6504725 100644 --- a/sagasu/src/mainwindow.cpp +++ b/sagasu/src/mainwindow.cpp @@ -3,6 +3,7 @@ #include "mainwindow.h" +#include #include #include #include @@ -43,7 +44,8 @@ MainWindow::MainWindow(const QString &gamePath, GameData *data) connect(m_tree, &FileTreeWindow::extractFile, this, [this, data](const QString &path) { const QFileInfo info(path); - const QString savePath = QFileDialog::getSaveFileName(this, tr("Save File"), info.fileName(), QStringLiteral("*.%1").arg(info.completeSuffix())); + const QString savePath = + QFileDialog::getSaveFileName(this, i18nc("@title:window", "Save File"), info.fileName(), QStringLiteral("*.%1").arg(info.completeSuffix())); if (!savePath.isEmpty()) { qInfo() << "Saving to" << savePath; @@ -84,57 +86,57 @@ void MainWindow::refreshParts(const QString &path) if (info.completeSuffix() == QStringLiteral("exl")) { auto exlWidget = new EXLPart(data); exlWidget->load(file); - partHolder->addTab(exlWidget, QStringLiteral("Excel List")); + partHolder->addTab(exlWidget, i18nc("@title:tab", "Excel List")); } else if (info.completeSuffix() == QStringLiteral("exh")) { auto exdWidget = new EXDPart(data); exdWidget->loadSheet(info.baseName(), file); - partHolder->addTab(exdWidget, QStringLiteral("Excel Sheet")); + partHolder->addTab(exdWidget, i18nc("@title:tab", "Excel Sheet")); } else if (info.completeSuffix() == QStringLiteral("exd")) { - auto exdWidget = new QLabel(QStringLiteral("Note: Excel data files cannot be previewed standalone, select the EXH file instead.")); - partHolder->addTab(exdWidget, QStringLiteral("Note")); + auto exdWidget = new QLabel(i18n("Note: Excel data files cannot be previewed standalone, select the EXH file instead.")); + partHolder->addTab(exdWidget, i18nc("@title:tab", "Note")); } else if (info.completeSuffix() == QStringLiteral("mdl")) { auto mdlWidget = new MDLPart(data, fileCache); mdlWidget->addModel(physis_mdl_parse(file), false, glm::vec3(), QStringLiteral("mdl"), {}, 0); - partHolder->addTab(mdlWidget, QStringLiteral("Model")); + partHolder->addTab(mdlWidget, i18nc("@title:tab", "Model")); } else if (info.completeSuffix() == QStringLiteral("tex") || info.completeSuffix() == QStringLiteral("atex")) { auto texWidget = new TexPart(data); texWidget->load(file); - partHolder->addTab(texWidget, QStringLiteral("Texture")); + partHolder->addTab(texWidget, i18nc("@title:tab", "Texture")); } else if (info.completeSuffix() == QStringLiteral("shpk")) { auto shpkWidget = new SHPKPart(data); shpkWidget->load(file); - partHolder->addTab(shpkWidget, QStringLiteral("Shader Package")); + partHolder->addTab(shpkWidget, i18nc("@title:tab", "Shader Package")); } else if (info.completeSuffix() == QStringLiteral("cmp")) { auto cmpWidget = new CmpPart(data); cmpWidget->load(file); - partHolder->addTab(cmpWidget, QStringLiteral("Chara Make Params")); + partHolder->addTab(cmpWidget, i18nc("@title:tab", "Chara Make Params")); } else if (info.completeSuffix() == QStringLiteral("sklb")) { auto sklbWidget = new SklbPart(); sklbWidget->load(physis_parse_skeleton(file)); - partHolder->addTab(sklbWidget, QStringLiteral("Skeleton")); + partHolder->addTab(sklbWidget, i18nc("@title:tab", "Skeleton")); } auto hexWidget = new HexPart(); hexWidget->loadFile(file); - partHolder->addTab(hexWidget, QStringLiteral("Raw Hex")); + partHolder->addTab(hexWidget, i18nc("@title:tab", "Raw Hex")); auto propertiesWidget = new FilePropertiesWindow(path, file); - partHolder->addTab(propertiesWidget, QStringLiteral("Properties")); + partHolder->addTab(propertiesWidget, i18nc("@title:tab", "Properties")); partHolder->tabBar()->setExpanding(true); } void MainWindow::setupFileMenu(QMenu *menu) { - auto openList = menu->addAction(QStringLiteral("Import Path List...")); + auto openList = menu->addAction(i18nc("@action:inmenu", "Import Path List…")); openList->setIcon(QIcon::fromTheme(QStringLiteral("document-open"))); connect(openList, &QAction::triggered, [this] { - auto fileName = QFileDialog::getOpenFileName(nullptr, QStringLiteral("Open Path List"), QStringLiteral("~")); + auto fileName = QFileDialog::getOpenFileName(nullptr, i18nc("@title:window", "Open Path List"), QStringLiteral("~")); QMessageBox::warning(this, - QStringLiteral("Import Warning"), - QStringLiteral("Depending on the size of the import, this process usually takes a few minutes. The program may freeze. Please " - "keep it open until the operation is finished."), + i18nc("@title:window", "Import Warning"), + i18n("Depending on the size of the import, this process usually takes a few minutes. The program may freeze. Please " + "keep it open until the operation is finished."), QMessageBox::Ok, QMessageBox::Ok); @@ -144,20 +146,19 @@ void MainWindow::setupFileMenu(QMenu *menu) m_database.importFileList(file.readAll()); m_tree->refreshModel(); - QMessageBox::information(this, QStringLiteral("Import Complete"), QStringLiteral("Successfully imported path list!"), QMessageBox::Ok, QMessageBox::Ok); + QMessageBox::information(this, i18nc("@title:window", "Import Complete"), i18n("Successfully imported path list!"), QMessageBox::Ok, QMessageBox::Ok); }); - auto downloadList = menu->addAction(QStringLiteral("Download Path List...")); + auto downloadList = menu->addAction(i18nc("@action:inmenu", "Download Path List…")); downloadList->setIcon(QIcon::fromTheme(QStringLiteral("download-symbolic"))); connect(downloadList, &QAction::triggered, [this] { - const int ret = - QMessageBox::information(this, - QStringLiteral("Download Confirmation"), - QStringLiteral("This will download the path list from ResLogger.this process usually takes a few minutes. The program " - "may freeze. Please keep it open until the operation is finished.

Continue?"), - QMessageBox::Ok | QMessageBox::Cancel, - QMessageBox::Ok); + const int ret = QMessageBox::information(this, + i18nc("@title:window", "Download Confirmation"), + i18n("This will download the path list from ResLogger.this process usually takes a few minutes. The program " + "may freeze. Please keep it open until the operation is finished.

Continue?"), + QMessageBox::Ok | QMessageBox::Cancel, + QMessageBox::Ok); if (ret != QMessageBox::Ok) { return; @@ -194,8 +195,8 @@ void MainWindow::setupFileMenu(QMenu *menu) archive.close(); QMessageBox::information(this, - QStringLiteral("Import Complete"), - QStringLiteral("Successfully downloaded and imported path list!"), + i18nc("@title:window", "Import Complete"), + i18n("Successfully downloaded and imported path list!"), QMessageBox::Ok, QMessageBox::Ok); });