diff options
Diffstat (limited to 'opensuse/core/tdelibs/desktop-translations.diff')
-rw-r--r-- | opensuse/core/tdelibs/desktop-translations.diff | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/opensuse/core/tdelibs/desktop-translations.diff b/opensuse/core/tdelibs/desktop-translations.diff new file mode 100644 index 000000000..6bf878469 --- /dev/null +++ b/opensuse/core/tdelibs/desktop-translations.diff @@ -0,0 +1,209 @@ +Index: kdecore/kconfigbase.h +=================================================================== +--- kdecore/kconfigbase.h.orig ++++ kdecore/kconfigbase.h +@@ -1985,6 +1985,7 @@ public: + + protected: + QCString readEntryUtf8( const char *pKey) const; ++ bool hasTranslatedKey( const char *pKey ) const; + + /** + * The currently selected group. */ +Index: kdecore/kconfigbase.cpp +=================================================================== +--- kdecore/kconfigbase.cpp.orig ++++ kdecore/kconfigbase.cpp +@@ -131,6 +131,24 @@ bool KConfigBase::hasKey(const char *pKe + return !entry.mValue.isNull(); + } + ++bool KConfigBase::hasTranslatedKey(const char* pKey) const ++{ ++ KEntryKey aEntryKey(mGroup, 0); ++ aEntryKey.c_key = pKey; ++ aEntryKey.bDefault = readDefaults(); ++ ++ if (!locale().isNull()) { ++ // try the localized key first ++ aEntryKey.bLocal = true; ++ KEntry entry = lookupData(aEntryKey); ++ if (!entry.mValue.isNull()) ++ return true; ++ aEntryKey.bLocal = false; ++ } ++ ++ return false; ++} ++ + bool KConfigBase::hasGroup(const QString &group) const + { + return internalHasGroup( group.utf8()); +Index: kdecore/kdesktopfile.h +=================================================================== +--- kdecore/kdesktopfile.h.orig ++++ kdecore/kdesktopfile.h +@@ -236,6 +236,8 @@ private: + + private: + ++ QString translatedEntry(const char*) const; ++ + // copy-construction and assignment are not allowed + KDesktopFile( const KDesktopFile& ); + KDesktopFile& operator= ( const KDesktopFile& ); +Index: kdecore/kdesktopfile.cpp +=================================================================== +--- kdecore/kdesktopfile.cpp.orig ++++ kdecore/kdesktopfile.cpp +@@ -34,6 +34,8 @@ + #include "kapplication.h" + #include "kstandarddirs.h" + #include "kmountpoint.h" ++#include "kcatalogue.h" ++#include "klocale.h" + + #include "kdesktopfile.h" + #include "kdesktopfile.moc" +@@ -145,6 +147,27 @@ bool KDesktopFile::isAuthorizedDesktopFi + return false; + } + ++QString KDesktopFile::translatedEntry(const char* key) const ++{ ++ if (hasTranslatedKey(key)) ++ return readEntry(key); ++ ++ if (hasKey(key)) { ++ QString value = readEntryUntranslated(key); ++ QString fName = fileName(); ++ fName = fName.mid(fName.findRev('/')+1); ++ QString po_lookup_key = QString::fromLatin1(key) + "(" + fName + "): " + value; ++ QString po_value = KGlobal::locale()->translate(po_lookup_key.utf8().data()); ++ ++ if (po_value == po_lookup_key) ++ return value; ++ ++ return po_value; ++ } ++ ++ return QString::null; ++} ++ + QString KDesktopFile::readType() const + { + return readEntry("Type"); +@@ -157,17 +180,17 @@ QString KDesktopFile::readIcon() const + + QString KDesktopFile::readName() const + { +- return readEntry("Name"); ++ return translatedEntry("Name"); + } + + QString KDesktopFile::readComment() const + { +- return readEntry("Comment"); ++ return translatedEntry("Comment"); + } + + QString KDesktopFile::readGenericName() const + { +- return readEntry("GenericName"); ++ return translatedEntry("GenericName"); + } + + QString KDesktopFile::readPath() const +@@ -342,5 +365,3 @@ KDesktopFile* KDesktopFile::copyTo(const + config->setDesktopGroup(); + return config; + } +- +- +Index: kio/kio/kservice.cpp +=================================================================== +--- kio/kio/kservice.cpp.orig ++++ kio/kio/kservice.cpp +@@ -114,7 +114,7 @@ KService::init( KDesktopFile *config ) + return; + } + +- m_strName = config->readEntry( "Name" ); ++ m_strName = config->readName(); + entryMap.remove("Name"); + if ( m_strName.isEmpty() ) + { +@@ -134,7 +134,7 @@ KService::init( KDesktopFile *config ) + m_strName = m_strName.left(i); + } + +- m_strType = config->readEntry( "Type" ); ++ m_strType = config->readType(); + entryMap.remove("Type"); + if ( m_strType.isEmpty() ) + { +@@ -204,11 +204,11 @@ KService::init( KDesktopFile *config ) + entryMap.remove("Terminal"); + m_strTerminalOptions = config->readEntry( "TerminalOptions" ); // should be a property IMHO + entryMap.remove("TerminalOptions"); +- m_strPath = config->readPathEntry( "Path" ); ++ m_strPath = config->readPath(); + entryMap.remove("Path"); +- m_strComment = config->readEntry( "Comment" ); ++ m_strComment = config->readComment(); + entryMap.remove("Comment"); +- m_strGenName = config->readEntry( "GenericName" ); ++ m_strGenName = config->readGenericName(); + entryMap.remove("GenericName"); + QString untranslatedGenericName = config->readEntryUntranslated( "GenericName" ); + if (!untranslatedGenericName.isEmpty()) +Index: kio/kio/kservicegroup.cpp +=================================================================== +--- kio/kio/kservicegroup.cpp.orig ++++ kio/kio/kservicegroup.cpp +@@ -66,13 +66,11 @@ KServiceGroup::KServiceGroup( const QStr + + d->directoryEntryPath = cfg; + +- KConfig config( cfg, true, false, "apps" ); ++ KDesktopFile config( cfg, true, "apps" ); + +- config.setDesktopGroup(); +- +- m_strCaption = config.readEntry( "Name" ); +- m_strIcon = config.readEntry( "Icon" ); +- m_strComment = config.readEntry( "Comment" ); ++ m_strCaption = config.readName(); ++ m_strIcon = config.readIcon(); ++ m_strComment = config.readComment(); + m_bDeleted = config.readBoolEntry( "Hidden", false ); + d->m_bNoDisplay = config.readBoolEntry( "NoDisplay", false ); + if (d->directoryEntryPath.startsWith(QDir::homeDirPath())) +Index: kio/kio/kmimetype.cpp +=================================================================== +--- kio/kio/kmimetype.cpp.orig ++++ kio/kio/kmimetype.cpp +@@ -677,9 +677,8 @@ QString KFolderType::comment( const KURL + KURL u( _url ); + u.addPath( ".directory" ); + +- KSimpleConfig cfg( u.path(), true ); +- cfg.setDesktopGroup(); +- QString comment = cfg.readEntry( "Comment" ); ++ KDesktopFile cfg( u.path(), true ); ++ QString comment = cfg.readComment(); + if ( comment.isEmpty() ) + return KMimeType::comment( _url, _is_local ); + +@@ -772,9 +771,8 @@ QString KDEDesktopMimeType::comment( con + if ( !_is_local ) + return KMimeType::comment( _url, _is_local ); + +- KSimpleConfig cfg( _url.path(), true ); +- cfg.setDesktopGroup(); +- QString comment = cfg.readEntry( "Comment" ); ++ KDesktopFile cfg( _url.path(), true ); ++ QString comment = cfg.readComment(); + if ( comment.isEmpty() ) + return KMimeType::comment( _url, _is_local ); + |