summaryrefslogtreecommitdiff
path: root/libopie2/opiecore
Unidiff
Diffstat (limited to 'libopie2/opiecore') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiecore/opluginloader.cpp14
1 files changed, 10 insertions, 4 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
@@ -435,13 +435,13 @@ QUnknownInterface* OGenericPluginLoader::load( const OPluginItem& item, const QU
435 435
436 /** 436 /**
437 * try to load the plugin and just in case initialize the pointer to a pointer again 437 * try to load the plugin and just in case initialize the pointer to a pointer again
438 */ 438 */
439 QUnknownInterface* iface=0; 439 QUnknownInterface* iface=0;
440 if ( lib->queryInterface( uuid, &iface ) == QS_OK ) { 440 if ( lib->queryInterface( uuid, &iface ) == QS_OK ) {
441 installTranslators(pa.left( pa.find("."))); 441 installTranslators( item.name() );
442 m_library.insert( iface, lib ); 442 m_library.insert( iface, lib );
443 }else 443 }else
444 iface = 0; 444 iface = 0;
445 445
446 setSafeMode(); 446 setSafeMode();
447 447
@@ -600,22 +600,28 @@ OPluginItem::List OGenericPluginLoader::plugins( const QString& _dir, bool sorte
600 */ 600 */
601QStringList OGenericPluginLoader::languageList() { 601QStringList OGenericPluginLoader::languageList() {
602 if ( m_languages.isEmpty() ) { 602 if ( m_languages.isEmpty() ) {
603 /* 603 /*
604 * be_BY.CP1251 We will add, be_BY.CP1251,be_BY,be 604 * be_BY.CP1251 We will add, be_BY.CP1251,be_BY,be
605 * to our list of languages. 605 * to our list of languages.
606 * Also for de_DE@euro we will add de_DE@eurp, de_DE, de
607 * to our list of languages
606 */ 608 */
607 QString str = ::getenv( "LANG" ); 609 QString str = ::getenv( "LANG" );
608 m_languages += str; 610 m_languages += str;
609 int pos = str.find( '.' ); 611 int pos = str.find( '@' );
612 if( pos > 0 )
613 m_languages += str.left( pos );
614
610 615
616 pos = str.find( '.' );
611 if ( pos > 0 ) 617 if ( pos > 0 )
612 m_languages += str.left( pos ); 618 m_languages += str.left( pos );
613 619
614 int n_pos = str.find( '_' ); 620 int n_pos = str.find( '_' );
615 if ( pos > 0 && n_pos >= pos ) 621 if ( n_pos > 0 )
616 m_languages += str.left( n_pos ); 622 m_languages += str.left( n_pos );
617 623
618 } 624 }
619 return m_languages; 625 return m_languages;
620} 626}
621 627
@@ -629,13 +635,13 @@ void OGenericPluginLoader::installTranslators(const QString& type) {
629 /* 635 /*
630 * for each language and maybe later for each language dir... 636 * for each language and maybe later for each language dir...
631 * try to load a Translator 637 * try to load a Translator
632 */ 638 */
633 for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { 639 for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
634 QTranslator* trans = new QTranslator( qApp ); 640 QTranslator* trans = new QTranslator( qApp );
635 QString tfn = QPEApplication::qpeDir()+"/i18n/" + *it + "/" + type + ".qm" ; 641 QString tfn = QPEApplication::qpeDir()+"/i18n/" + *it + "/lib" + type + ".qm" ;
636 642
637 /* 643 /*
638 * If loaded then install else clean up and don't leak 644 * If loaded then install else clean up and don't leak
639 */ 645 */
640 if ( trans->load( tfn ) ) 646 if ( trans->load( tfn ) )
641 qApp->installTranslator( trans ); 647 qApp->installTranslator( trans );