From 8392daa9ac3c5da144876295a0b50305ec2c42da Mon Sep 17 00:00:00 2001 From: lexcibien Date: Thu, 5 Mar 2026 23:29:46 -0300 Subject: [PATCH] implement translation on savvyCAN --- .gitignore | 3 +++ main.cpp | 13 +++++++++++++ scripts/build_translations.sh | 12 ++++++++++++ scripts/edit_translations.sh | 6 ++++++ scripts/update_translations.sh | 11 +++++++++++ 5 files changed, 45 insertions(+) create mode 100755 scripts/build_translations.sh create mode 100755 scripts/edit_translations.sh create mode 100755 scripts/update_translations.sh diff --git a/.gitignore b/.gitignore index 13068cd..d976787 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ build/ *.o *.obj +# Compiled translations +*.qm + # Precompiled Headers *.gch *.pch diff --git a/main.cpp b/main.cpp index df2f4a4..be139e6 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,7 @@ #include "mainwindow.h" #include +#include +#include class SavvyCANApplication : public QApplication { @@ -32,6 +34,17 @@ int main(int argc, char *argv[]) SavvyCANApplication a(argc, argv); + QTranslator translator; + QLocale locale = QLocale::system(); + QString lang = locale.name(); + QString shortLang = locale.name().left(2); // pt + + if (!translator.load("savvycan_" + lang, "translations")) + { + translator.load("savvycan_" + lang, "translations"); + } + a.installTranslator(&translator); + //Add a local path for Qt extensions, to allow for per-application extensions. a.addLibraryPath("plugins"); diff --git a/scripts/build_translations.sh b/scripts/build_translations.sh new file mode 100755 index 0000000..fa05d08 --- /dev/null +++ b/scripts/build_translations.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" +TRANSLATIONS_DIR="$PROJECT_ROOT/translations" + +echo "Gerando arquivos .qm..." + +for file in "$TRANSLATIONS_DIR"/*.ts; do + lrelease "$file" +done + +echo "Arquivos .qm gerados." \ No newline at end of file diff --git a/scripts/edit_translations.sh b/scripts/edit_translations.sh new file mode 100755 index 0000000..8347bf2 --- /dev/null +++ b/scripts/edit_translations.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" +TRANSLATIONS_DIR="$PROJECT_ROOT/translations" + +linguist "$TRANSLATIONS_DIR"/savvycan_*.ts \ No newline at end of file diff --git a/scripts/update_translations.sh b/scripts/update_translations.sh new file mode 100755 index 0000000..ac32455 --- /dev/null +++ b/scripts/update_translations.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" +TRANSLATIONS_DIR="$PROJECT_ROOT/translations" + +echo "Atualizando arquivos de tradução..." + +lupdate "$PROJECT_ROOT" \ +-ts "$TRANSLATIONS_DIR"/savvycan_*.ts + +echo "Traduções atualizadas." \ No newline at end of file