Salome HOME
0023375: [CEA] Add command line option to force application's language
authorvsr <vsr@opencascade.com>
Tue, 25 Oct 2016 12:05:06 +0000 (15:05 +0300)
committervsr <vsr@opencascade.com>
Tue, 25 Oct 2016 12:05:06 +0000 (15:05 +0300)
src/Qtx/QtxResourceMgr.cxx
src/Qtx/QtxResourceMgr.h
src/SUIT/SUIT_ResourceMgr.cxx
src/SUIT/SUIT_ResourceMgr.h

index 4df9c1ff86890667f836389f6e2de2597639cfb3..c5cd1d74ec0ae36a0d4bd509dfdac4ee842b8a6a 100644 (file)
@@ -2676,6 +2676,14 @@ QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name,
   return pix;
 }
 
+/*!
+  \brief Specify default language for the application.
+*/
+QString QtxResourceMgr::defaultLanguage() const
+{
+  return "";
+}
+
 /*!
   \brief Load translation files according to the specified language.
 
@@ -2707,6 +2715,8 @@ void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
   substMap.insert( 'A', appName() );
 
   QString lang = l;
+  if ( lang.isEmpty() )
+    lang = defaultLanguage();
   if ( lang.isEmpty() )
     value( langSection(), "language", lang );
 
index a7df2f268e1640776b0eafe70984e16f65a6e773..6d9f28f8eedfa2c90cc9862608f80e006a3b442e 100644 (file)
@@ -179,6 +179,8 @@ public:
   void             refresh();
 
 protected:
+  virtual QString  defaultLanguage() const;
+
   virtual void     setDirList( const QStringList& );
   virtual void     setResource( const QString&, const QString&, const QString& );
 
index 92a64e7ab089d13c7642ba4978cc5235a0d18a69..0c98e4a2dc1daed5bf62a1461ef715677a13598b 100755 (executable)
@@ -179,3 +179,21 @@ long SUIT_ResourceMgr::userFileId( const QString& ) const
 {
   return -1;
 }
+
+/*!
+  \brief Specify default language for the application.
+*/
+QString SUIT_ResourceMgr::defaultLanguage() const
+{
+  QStringList arguments;
+  QString language;
+  if ( SUIT_Session::session() ) arguments = SUIT_Session::session()->arguments();
+  // Try language, given in arguments
+  for (int i = 1; i < arguments.count(); i++) {
+    QRegExp rx ("--language=(.+)");
+    if ( rx.indexIn( arguments[i] ) >= 0 && rx.captureCount() > 0 ) {
+      language = rx.cap(1);
+    }
+  }
+  return language;
+}
index 73c17c17c8746274521f1ed84c099b9389f1c48d..8129aba07244c6138d0b91daaaa90ab587e2435d 100755 (executable)
@@ -42,6 +42,7 @@ protected:
   virtual QString userFileName( const QString&, const bool = true ) const;
   virtual QString findAppropriateUserFile( const QString& ) const;
   virtual long    userFileId( const QString& ) const;
+  virtual QString defaultLanguage() const;
 
 private:
   QString         myVersion;