summaryrefslogtreecommitdiff
authorzecke <zecke>2004-09-23 13:53:49 (UTC)
committer zecke <zecke>2004-09-23 13:53:49 (UTC)
commitb31b9fd0b3ef2cddef4343e565fe0330c076da57 (patch) (side-by-side diff)
treed41af1ba728077bd1546994d629dd32ddd51f7dc
parent763823cd6707432c515dd0eb2f8c699f4668df93 (diff)
downloadopie-b31b9fd0b3ef2cddef4343e565fe0330c076da57.zip
opie-b31b9fd0b3ef2cddef4343e565fe0330c076da57.tar.gz
opie-b31b9fd0b3ef2cddef4343e565fe0330c076da57.tar.bz2
-Filter de_DE@euro to de_DE@euro, de_DE, de
-Load the right translation file at the right location
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/opluginloader.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/libopie2/opiecore/opluginloader.cpp b/libopie2/opiecore/opluginloader.cpp
index b8b6b79..ec19fa0 100644
--- a/libopie2/opiecore/opluginloader.cpp
+++ b/libopie2/opiecore/opluginloader.cpp
@@ -425,33 +425,33 @@ QUnknownInterface* OGenericPluginLoader::load( const OPluginItem& item, const QU
/*
* See if we get a library
* return if we've none
*/
setSafeMode( pa, true );
QLibrary *lib = Internal::OPluginLibraryHolder::self()->ref( pa );
if ( !lib ) {
setSafeMode();
return 0l;
}
/**
* try to load the plugin and just in case initialize the pointer to a pointer again
*/
QUnknownInterface* iface=0;
if ( lib->queryInterface( uuid, &iface ) == QS_OK ) {
- installTranslators(pa.left( pa.find(".")));
+ installTranslators( item.name() );
m_library.insert( iface, lib );
}else
iface = 0;
setSafeMode();
return iface;
}
/**
* @internal and reads in the safe mode
*/
void OGenericPluginLoader::readConfig() {
/* read the config for SafeMode */
@@ -590,68 +590,74 @@ OPluginItem::List OGenericPluginLoader::plugins( const QString& _dir, bool sorte
lst.append( item );
}
return lst;
}
/**
* @internal generate a list of languages from $LANG
*/
QStringList OGenericPluginLoader::languageList() {
if ( m_languages.isEmpty() ) {
/*
* be_BY.CP1251 We will add, be_BY.CP1251,be_BY,be
* to our list of languages.
+ * Also for de_DE@euro we will add de_DE@eurp, de_DE, de
+ * to our list of languages
*/
QString str = ::getenv( "LANG" );
m_languages += str;
- int pos = str.find( '.' );
-
+ int pos = str.find( '@' );
+ if( pos > 0 )
+ m_languages += str.left( pos );
+
+
+ pos = str.find( '.' );
if ( pos > 0 )
m_languages += str.left( pos );
int n_pos = str.find( '_' );
- if ( pos > 0 && n_pos >= pos )
+ if ( n_pos > 0 )
m_languages += str.left( n_pos );
}
return m_languages;
}
/**
* @internal
* Tries to install languages using the languageList for the type
*/
void OGenericPluginLoader::installTranslators(const QString& type) {
QStringList lst = languageList();
/*
* for each language and maybe later for each language dir...
* try to load a Translator
*/
for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
QTranslator* trans = new QTranslator( qApp );
- QString tfn = QPEApplication::qpeDir()+"/i18n/" + *it + "/" + type + ".qm" ;
+ QString tfn = QPEApplication::qpeDir()+"/i18n/" + *it + "/lib" + type + ".qm" ;
/*
* If loaded then install else clean up and don't leak
*/
- if ( trans->load( tfn ) )
- qApp->installTranslator( trans );
+ if ( trans->load( tfn ) )
+ qApp->installTranslator( trans );
else
delete trans;
}
}
/**
* \brief Simple c'tor.
*
* Simple C'tor same as the one of the base class. Additional this
* class can cast for you if you nee it.
*
*
* @param name The name of your plugin class
* @param sorted If plugins are sorted
*
* @see OGenericPluginLoader