diff --git a/lang/qet_en.qm b/lang/qet_en.qm index adb75d781..f22ab3af8 100644 Binary files a/lang/qet_en.qm and b/lang/qet_en.qm differ diff --git a/lang/qet_en.ts b/lang/qet_en.ts index 5015efa6f..aa01005db 100644 --- a/lang/qet_en.ts +++ b/lang/qet_en.ts @@ -255,32 +255,32 @@ DiagramPrintDialog - + Options d'impression Print options - + Utiliser toute la feuille Use full page - + Adapter le schéma à la page Fit diagram to page - + Plage de Range from - + à to - + Nombre total de pages : Total pages count: @@ -323,17 +323,17 @@ Do you wish to save the diagram - + nouveau schéma new diagram - + Éditer les propriétés d'un conducteur Edit conductor properties - + Propriétés du schéma Diagram properties @@ -363,7 +363,7 @@ Height: - + Éditer les propriétés par défaut des conducteurs Edit conductors default properties @@ -383,7 +383,7 @@ This document seems to have been saved by a more recent version of QElectroTech. The opening of the document may fail totally or partially. - + schema diagram @@ -1265,87 +1265,87 @@ Changes will be permanent. QETApp - + QElectroTech QElectroTech - + &Quitter &Quit - + &Masquer &Hide - + &Restaurer &Show - + &Masquer tous les éditeurs de schéma &Hide diagram editors - + &Restaurer tous les éditeurs de schéma &Show diagram editors - + &Masquer tous les éditeurs d'élément &Hide element editors - + &Restaurer tous les éditeurs d'élément &Show element editors - + &Nouvel éditeur de schéma &New diagram editor - + &Nouvel éditeur d'élément &New element editor - + Ferme l'application QElectroTech Closes QElectroTech - + Réduire QElectroTech dans le systray Reduces QElectroTech into the systray - + Restaurer QElectroTech Restore QElectroTech - + Éditeurs de schémas Diagram editors - + Éditeurs d'élément Element editors - + Usage : Usage: - + QElectroTech, une application de réalisation de schémas électriques. Options disponibles : @@ -1362,7 +1362,7 @@ Available options: - + [options] [fichier]... @@ -1371,39 +1371,46 @@ Available options: - + --common-elements-dir=DIR Definir le dossier de la collection d'elements --common-elements-dir=DIR Define the elements collection directory - + --config-dir=DIR Definir le dossier de configuration --config-dir=DIR Define configuration directory - + Chargement... Éditeur de schémas Loading... Diagrams editor - + Chargement... Ouverture des fichiers Loading... Opening files - + Chargement... Loading... - + Chargement... icône du systray Loading... Systray icon + + + --lang-dir=DIR Definir le dossier contenant les fichiers de langue + + --lang-dir=DIR Define the language files directory + + QETDiagramEditor diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp index 335b3b5db..7eaf2216e 100644 --- a/sources/qetapp.cpp +++ b/sources/qetapp.cpp @@ -26,6 +26,7 @@ QString QETApp::common_elements_dir = QString(); QString QETApp::config_dir = QString(); +QString QETApp::lang_dir = QString(); QString QETApp::diagram_texts_font = QString(); RecentFiles *QETApp::projects_recent_files_ = 0; RecentFiles *QETApp::elements_recent_files_ = 0; @@ -337,15 +338,31 @@ void QETApp::overrideConfigDir(const QString &new_cd) { } #endif +/** + Redefinit le chemin du dossier contenant les fichiers de langue + @param new_ld Nouveau chemin du dossier contenant les fichiers de langue +*/ +void QETApp::overrideLangDir(const QString &new_ld) { + QFileInfo new_ld_info(new_ld); + if (new_ld_info.isDir()) { + lang_dir = new_ld_info.absoluteFilePath(); + if (!lang_dir.endsWith("/")) lang_dir += "/"; + } +} + /** @return Le chemin du dossier contenant les fichiers de langue */ QString QETApp::languagesPath() { + if (!lang_dir.isEmpty()) { + return(lang_dir); + } else { #ifndef QET_LANG_PATH return(QDir::current().path() + "/lang/"); #else return(QUOTE(QET_LANG_PATH)); #endif + } } /** @@ -603,6 +620,10 @@ void QETApp::parseArguments() { } #endif + if (qet_arguments_.langDirSpecified()) { + overrideLangDir(qet_arguments_.langDir()); + } + if (qet_arguments_.printLicenseRequested()) { printLicense(); non_interactive_execution_ = true; @@ -827,6 +848,7 @@ void QETApp::printHelp() { #ifdef QET_ALLOW_OVERRIDE_CD_OPTION + tr(" --config-dir=DIR Definir le dossier de configuration\n") #endif + + tr(" --lang-dir=DIR Definir le dossier contenant les fichiers de langue\n") ); std::cout << qPrintable(help) << std::endl; } diff --git a/sources/qetapp.h b/sources/qetapp.h index f4271394f..979ab8171 100644 --- a/sources/qetapp.h +++ b/sources/qetapp.h @@ -72,6 +72,8 @@ class QETApp : public QETSingleApplication { static QString config_dir; ///< Dossier contenant la configuration et la collection d'elements de l'utilisateur #endif public: + static void overrideLangDir(const QString &); + static QString lang_dir; ///< Dossier contenant les fichiers de langue static QString diagramTextsFont(); protected: diff --git a/sources/qetarguments.cpp b/sources/qetarguments.cpp index 198c24f18..b8c0fe0a6 100644 --- a/sources/qetarguments.cpp +++ b/sources/qetarguments.cpp @@ -59,6 +59,7 @@ QETArguments::QETArguments(const QETArguments &qet_arguments) : #ifdef QET_ALLOW_OVERRIDE_CD_OPTION config_dir_(qet_arguments.config_dir_), #endif + lang_dir_(qet_arguments.lang_dir_), print_help_(qet_arguments.print_help_), print_license_(qet_arguments.print_license_), print_version_(qet_arguments.print_version_) @@ -80,6 +81,7 @@ QETArguments &QETArguments::operator=(const QETArguments &qet_arguments) { #ifdef QET_ALLOW_OVERRIDE_CD_OPTION config_dir_ = qet_arguments.config_dir_; #endif + lang_dir_ = qet_arguments.lang_dir_; print_help_ = qet_arguments.print_help_; print_license_ = qet_arguments.print_license_; print_version_ = qet_arguments.print_version_; @@ -199,7 +201,8 @@ void QETArguments::handleFileArgument(const QString &file) { Gere les arguments correspondant potentiellement a une option. Les options reconnues sont : * --common-elements-dir= - * --config-dir + * --config-dir= + * --lang-dir= * --help * --version * -v @@ -237,6 +240,12 @@ void QETArguments::handleOptionArgument(const QString &option) { #endif + QString ld_arg("--lang-dir="); + if (option.startsWith(ld_arg)) { + lang_dir_ = option.mid(ld_arg.length()); + return; + } + // a ce stade, l'option est inconnue unknown_options_ << option; } @@ -276,6 +285,21 @@ QString QETArguments::configDir() const { } #endif +/** + @return true si l'utilisateur a specifie un dossier pour les fichiers de langue +*/ +bool QETArguments::langDirSpecified() const { + return(!lang_dir_.isEmpty()); +} + +/** + @return le dossier de langue specifie par l'utilisateur. + Si l'utilisateur n'en a pas specifie, une chaine vide est retournee. +*/ +QString QETArguments::langDir() const { + return(lang_dir_); +} + /** @return true si les arguments comportent une demande d'affichage de l'aide, false sinon diff --git a/sources/qetarguments.h b/sources/qetarguments.h index 2fe741539..ace82d16d 100644 --- a/sources/qetarguments.h +++ b/sources/qetarguments.h @@ -50,6 +50,8 @@ class QETArguments : public QObject { virtual bool configDirSpecified() const; virtual QString configDir() const; #endif + virtual bool langDirSpecified() const; + virtual QString langDir() const; virtual bool printHelpRequested() const; virtual bool printLicenseRequested() const; virtual bool printVersionRequested() const; @@ -74,6 +76,7 @@ class QETArguments : public QObject { #ifdef QET_ALLOW_OVERRIDE_CD_OPTION QString config_dir_; #endif + QString lang_dir_; bool print_help_; bool print_license_; bool print_version_;