[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 85106] Can not translate Download Data (Get Hot New Stuff)
From:       Josef Spillner <spillner () kde ! org>
Date:       2004-07-29 20:58:29
Message-ID: 20040729205829.17384.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
      
http://bugs.kde.org/show_bug.cgi?id=85106      




------- Additional Comments From spillner kde org  2004-07-29 22:58 -------
CVS commit by josef: 

Fix i18n handling for data.

The order of preference is now:
- user's configured main language
- user's configured language list (the main language might not be the 1st
  entry)
- any data without language attribute set ('default')
- any data whatever

Example (brazilian portuguese):
pt_BR, pt, pt_BR, "", de

CCMAIL: schumacher kde org
CCMAIL: 85106 bugs kde org


  M +9 -6      downloaddialog.cpp   1.13
  M +24 -7     entry.cpp   1.8
  M +1 -1      uploaddialog.cpp   1.10


--- kdelibs/knewstuff/downloaddialog.cpp  #1.12:1.13
 @ -330,4 +330,6  @ void DownloadDialog::slotDetails()
   if(!e) return;
 
+  QString lang = KGlobal::locale()->language();
+
   QString info = i18n
   (
 @ -349,5 +351,5  @ void DownloadDialog::slotDetails()
     ).arg(e->downloads()
     ).arg(e->releaseDate().toString()
-    ).arg(e->summary()
+    ).arg(e->summary(lang)
   );
 
 @ -446,17 +448,18  @ void DownloadDialog::slotSelected()
   bool enabled;
   Entry *e = getEntry();
+  QString lang = KGlobal::locale()->language();
 
   if(e)
   {
-    if(!e->preview().isValid())
+    if(!e->preview(lang).isValid())
     {
       m_rt->setText(QString("<b>%1</b><br>%2<br>%3<br><br><i>%4</i><br>(%5)").arg(
-        e->name()).arg(e->author()).arg(e->releaseDate().toString()).arg(e->summary()).arg(e->license()));
 +        e->name()).arg(e->author()).arg(e->releaseDate().toString()).arg(e->summary(lang)).arg(e->license()));
  }
     else
     {
-      KIO::NetAccess::download(e->preview(), tmp, this);
+      KIO::NetAccess::download(e->preview(lang), tmp, this);
       m_rt->setText(QString("<b>%1</b><br>%2<br>%3<br><br><img \
                src='%4'><br><i>%5</i><br>(%6)").arg(
-        e->name()).arg(e->author()).arg(e->releaseDate().toString()).arg(tmp).arg(e->summary()).arg(e->license()));
 +        e->name()).arg(e->author()).arg(e->releaseDate().toString()).arg(tmp).arg(e->summary(lang)).arg(e->license()));
  }
     

--- kdelibs/knewstuff/entry.cpp  #1.7:1.8
 @ -21,4 +21,7  @
 #include "entry.h"
 
+#include <kglobal.h>
+#include <klocale.h>
+
 using namespace KNS;
 
 @ -94,10 +97,12  @ QString Entry::summary( const QString &l
   if ( mSummaryMap.isEmpty() ) return QString::null;
 
-  if ( lang.isEmpty() ) {
     if ( !mSummaryMap[ lang ].isEmpty() ) return mSummaryMap[ lang ];
-    else return *(mSummaryMap.begin());
-  } else {
-    return mSummaryMap[ lang ];
+  else {
+    QStringList langs = KGlobal::locale()->languageList();
+    for(QStringList::Iterator it = langs.begin(); it != langs.end(); it++)
+      if( !mSummaryMap[ *it ].isEmpty() ) return mSummaryMap[ *it ];
   }
+  if ( !mSummaryMap[ QString::null ].isEmpty() ) return mSummaryMap[ QString::null \
]; +  else return *(mSummaryMap.begin());
 }
 
 @ -146,4 +151,10  @ KURL Entry::payload( const QString &lang
 {
   KURL payload = mPayloadMap[ lang ];
+  if ( payload.isEmpty() ) {
+    QStringList langs = KGlobal::locale()->languageList();
+    for(QStringList::Iterator it = langs.begin(); it != langs.end(); it++)
+      if( !mPayloadMap[ *it ].isEmpty() ) return mPayloadMap[ *it ];
+  }
+  if ( payload.isEmpty() ) payload = mPayloadMap [ QString::null ];
   if ( payload.isEmpty() && !mPayloadMap.isEmpty() ) {
     payload = *(mPayloadMap.begin());
 @ -163,4 +174,10  @ KURL Entry::preview( const QString &lang
 {
   KURL preview = mPreviewMap[ lang ];
+  if ( preview.isEmpty() ) {
+    QStringList langs = KGlobal::locale()->languageList();
+    for(QStringList::Iterator it = langs.begin(); it != langs.end(); it++)
+      if( !mPreviewMap[ *it ].isEmpty() ) return mPreviewMap[ *it ];
+  }
+  if ( preview.isEmpty() ) preview = mPreviewMap [ QString::null ];
   if ( preview.isEmpty() && !mPreviewMap.isEmpty() ) {
     preview = *(mPreviewMap.begin());
 @ -213,5 +230,5  @ void Entry::parseDomElement( const QDomE
     if ( e.tagName() == "licence" ) setLicence( e.text().stripWhiteSpace() );
     if ( e.tagName() == "summary" ) {
-      QString lang = e.attribute( "lang " );
+      QString lang = e.attribute( "lang" );
       setSummary( e.text().stripWhiteSpace(), lang );
     }

--- kdelibs/knewstuff/uploaddialog.cpp  #1.9:1.10
 @ -89,5 +89,5  @ UploadDialog::UploadDialog( Engine *engi
   mLanguageCombo = new QComboBox( topPage );
   topLayout->addWidget( mLanguageCombo, 5, 1 );
-  mLanguageCombo->insertStringList( KGlobal::locale()->languagesTwoAlpha() );
+  mLanguageCombo->insertStringList( KGlobal::locale()->languageList() );
 
   QLabel *previewLabel = new QLabel( i18n("Preview URL:"), topPage );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic