]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorvsr <vsr@opencascade.com>
Wed, 16 Jan 2008 14:57:08 +0000 (14:57 +0000)
committervsr <vsr@opencascade.com>
Wed, 16 Jan 2008 14:57:08 +0000 (14:57 +0000)
src/Qtx/QtxResourceMgr.cxx
src/Qtx/QtxResourceMgr.h
src/SUITApp/SUITApp.cxx
src/Session/SALOME_Session_Server.cxx

index 45f5a26097de009b5b9ce5ee535855d3cddee4a1..22a716742602f1789ef29a144a0005875c775980 100644 (file)
@@ -1213,16 +1213,17 @@ QStringList QtxResourceMgr::dirList() const
 
   Prepare the resources containers and load resources (if \a autoLoad is \c true).
 
-  \param autoLoad if \c true then all resources are loaded
+  \param autoLoad if \c true (default) then all resources are loaded
+  \param loadUser if \c true (default) then user settings are also loaded
 */
-void QtxResourceMgr::initialize( const bool autoLoad ) const
+void QtxResourceMgr::initialize( const bool autoLoad, const bool loadUser ) const
 {
   if ( !myResources.isEmpty() )
     return;
 
   QtxResourceMgr* that = (QtxResourceMgr*)this;
 
-  if ( !userFileName( appName() ).isEmpty() )
+  if ( loadUser && !userFileName( appName() ).isEmpty() )
     that->myResources.append( new Resources( that, userFileName( appName() ) ) );
 
   for ( QStringList::const_iterator it = myDirList.begin(); it != myDirList.end(); ++it )
@@ -2348,7 +2349,36 @@ QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name,
 */
 void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
 {
-  initialize();
+  loadLanguage( true, pref, l );
+}
+
+/*!
+  \brief Load translation files according to the specified language.
+
+  Names of the translation files are calculated according to the pattern specified
+  by the "translators" option (this option is read from the section "language" of resources files).
+  By default, "%P_msg_%L.qm" pattern is used.
+  Keywords \%A, \%P, \%L in the pattern are substituted by the application name, prefix and language name
+  correspondingly.
+  For example, for prefix "SUIT" an language "en", all translation files "SUIT_msg_en.qm" are searched and
+  loaded.
+
+  If prefix is empty or null string, all translation files specified in the "resources" section of resources
+  files are loaded (actually, the section is retrieved from resSection() method). 
+  If language is not specified, it is retrieved from the langSection() method, and if the latest is also empty,
+  by default "en" (English) language is used.
+  By default, settings from the user preferences file are also loaded (if user resource file is valid, 
+  see userFileName()). To avoid loading user settings, pass \c false as first parameter.
+
+  \param loadUser if \c true then user settings are also loaded
+  \param pref parameter which defines translation context (for example, package name)
+  \param l language name
+
+  \sa resSection(), langSection(), loadTranslators()
+*/
+void QtxResourceMgr::loadLanguage( const bool loadUser, const QString& pref, const QString& l )
+{
+  initialize( true, loadUser );
 
   QMap<QChar, QString> substMap;
   substMap.insert( 'A', appName() );
index 9e5ba171665bb315bddefeec8765ccba360ef426..550c14e30503e26acffb35957cf16fa2583a412d 100644 (file)
@@ -138,6 +138,7 @@ public:
   QPixmap          loadPixmap( const QString&, const QString&, const bool ) const;
   QPixmap          loadPixmap( const QString&, const QString&, const QPixmap& ) const;
   void             loadLanguage( const QString& = QString(), const QString& = QString() );
+  void             loadLanguage( const bool, const QString& = QString(), const QString& = QString() );
 
   void             raiseTranslators( const QString& );
   void             removeTranslators( const QString& );
@@ -163,7 +164,7 @@ protected:
   virtual QString  globalFileName( const QString& ) const;
 
 private:
-  void             initialize( const bool = true ) const;
+  void             initialize( const bool = true, const bool = true ) const;
   QString          substMacro( const QString&, const QMap<QChar, QString>& ) const;
 
 private:
index 81bab394b1a4f9cc674f0256050dba06686e8076..7f29296a7f4de66569ad069d00a2605ed91cac43 100644 (file)
@@ -191,7 +191,7 @@ int main( int args, char* argv[] )
       SUIT_ResourceMgr* resMgr = aSession->createResourceMgr( argList.first() );
       if ( resMgr )
       {
-       resMgr->loadLanguage();
+       resMgr->loadLanguage( false );
 
        splash = QtxSplash::splash( QPixmap() );
        splash->readSettings( resMgr );
index 18a313b96556c3dbdb247d5319dd79491b7b4305..243abbdd4affb38161eba2ea753be9a1fb0ee8f5 100755 (executable)
@@ -179,7 +179,7 @@ public:
 protected:
   QString userFileName( const QString& appName, const bool for_load ) const
   { 
-    if ( version().isNull()  ) return ""; 
+    if ( version().isEmpty()  ) return ""; 
     return SUIT_ResourceMgr::userFileName( myExtAppName, for_load );
   }
 
@@ -315,12 +315,14 @@ int main( int argc, char **argv )
   bool isGUI    = isFound( "GUI",    argc, argv );
   bool isSplash = isFound( "SPLASH", argc, argv );
   // Show splash screen (only if both the "GUI" and "SPLASH" parameters are set)
+  // Note, that user preferences are not taken into account for splash settings -
+  // it is a property of the application!
   QtxSplash* splash = 0;
   if ( isGUI && isSplash ) {
     // ...create resource manager
     SUIT_ResourceMgr resMgr( "SalomeApp", QString( "%1Config" ) );
     resMgr.setCurrentFormat( "xml" );
-    resMgr.loadLanguage( "LightApp", "en" );
+    resMgr.loadLanguage( false, "LightApp", "en" );
     //
     splash = QtxSplash::splash( QPixmap() );
     splash->readSettings( &resMgr );