src/hbcore/i18n/hbdntxmlreader.cpp
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
--- a/src/hbcore/i18n/hbdntxmlreader.cpp	Mon Oct 04 17:49:30 2010 +0300
+++ b/src/hbcore/i18n/hbdntxmlreader.cpp	Mon Oct 18 18:23:13 2010 +0300
@@ -23,65 +23,41 @@
 **
 ****************************************************************************/
 
-#include <QTranslator>
 #if defined(Q_OS_SYMBIAN)
 #include <e32base.h> 
 #endif // Q_OS_SYMBIAN
+#include <hbtranslator.h>
 #include "hbdntxmlreader_p.h"
 
 #define DirectoryLocalizerFile ":/i18n/hbdirectorylocalizer.xml"
-#define DirectoryLocalizerTranslationsFile "/resource/hbi18n/translations/directorylocalizer_"
 
 /*!
     Constructor of class.  
 */ 
 HbDNTXmlReader::HbDNTXmlReader()
 {
-	fullPaths = NULL;
-	pathStrings = NULL;
-	
-	
-	parseDirectoryPaths = false; 
-	parsePathStrings = false;
-	elementNumber = 0;
-	validElement = false;
-	twoDone = false;
-    QLocale locale = QLocale::system();
+    fullPaths = NULL;
+    pathStrings = NULL;
+    parseDirectoryPaths = false; 
+    parsePathStrings = false;
+    elementNumber = 0;
+    validElement = false;
+    twoDone = false;
+    validElement = false;
     
-    trans = new QTranslator();
-	QString languageStr;
-	languageStr.append(DirectoryLocalizerTranslationsFile);
-
-	languageStr.append(locale.name());
-
-// Support for checking both Z and C drives 
-	
-#if defined(Q_OS_SYMBIAN)
-	bool succeed = false;
-	succeed = trans->load("z:" + languageStr);
-	if ( succeed == false ) {
-		trans->load("c:" + languageStr);
-	}
-#else // Q_OS_SYMBIAN
-	trans->load(languageStr);
-#endif // Q_OS_SYMBIAN
-
-	QCoreApplication::installTranslator(trans);
-	validElement = false;
-	
-	QFile xmlFile(DirectoryLocalizerFile);
-
-	pathStrings = new QMap<QString, QString>;
-	fullPaths = new QMap<QString,QString>;
-
-	if( xmlFile.exists() )
-		{
-			QXmlInputSource source( &xmlFile );
-			QXmlSimpleReader reader; 
-			reader.setContentHandler( this );  
-			reader.parse( source ) ;
-		}
-	
+    HbTranslator* trans = new HbTranslator("directorynamelocalizer");
+    Q_UNUSED(trans);
+    
+    QFile xmlFile(DirectoryLocalizerFile);
+    pathStrings = new QMap<QString, QString>;
+    fullPaths = new QMap<QString,QString>;
+    
+    if ( xmlFile.exists() ) {
+        QXmlInputSource source( &xmlFile );
+        QXmlSimpleReader reader;
+        reader.setContentHandler( this );
+        reader.parse( source );
+    }
 }
 
 /*!
@@ -91,8 +67,6 @@
 {
     delete fullPaths;
     delete pathStrings;
-	QCoreApplication::removeTranslator(trans);
-	delete trans;
 }
 
 /*!
@@ -112,50 +86,50 @@
     \return true 
 */ 
 bool HbDNTXmlReader::startElement( const QString & ,
-				   const QString & ,
-				   const QString & qName,
-				   const QXmlAttributes & )
+                   const QString & ,
+                   const QString & qName,
+                   const QXmlAttributes & )
 {
     if( qName == DirectoryLocalizerPathStringsStr ) {
-    	parsePathStrings = true;  // set to parse Path 
-    	parseDirectoryPaths = false;
-    	elements.clear();
-    	elementNumber = 0;  // Set current path element number as undefined
-    	twoDone = false;
+        parsePathStrings = true;  // set to parse Path 
+        parseDirectoryPaths = false;
+        elements.clear();
+        elementNumber = 0;  // Set current path element number as undefined
+        twoDone = false;
     } else if( qName == DirectoryLocalizerFullDirectoryPathsStr ) {
-    	parsePathStrings = false;
-    	parseDirectoryPaths = true;  // set to parse localized path
-    	elements.clear();
-    	elementNumber = 0;  // set current path element as undefined
-    	twoDone = false;
+        parsePathStrings = false;
+        parseDirectoryPaths = true;  // set to parse localized path
+        elements.clear();
+        elementNumber = 0;  // set current path element as undefined
+        twoDone = false;
     } else if( qName == DirectoryLocalizerNameStr ) {
-    	elementNumber = 1;  // 
-    	validElement = true;
-    	twoDone = false;
+        elementNumber = 1;  // 
+        validElement = true;
+        twoDone = false;
     } else if( qName == DirectoryLocalizerPathStr ){
-    	elementNumber = 2;
-    	validElement = true;
-    	twoDone = false;
+        elementNumber = 2;
+        validElement = true;
+        twoDone = false;
     } else if( qName == DirectoryLocalizerTranslationStr){
-    	elementNumber = 3;
-    	validElement = true;	
+        elementNumber = 3;
+        validElement = true;    
     } else if( qName == DirectoryLocalizerRootPathStr ){
-    	elementNumber = 1;
-    	validElement = true;
-    	twoDone = false;
+        elementNumber = 1;
+        validElement = true;
+        twoDone = false;
     } else if( qName == DirectoryLocalizerLocalizedPathStr ){
-    	elementNumber = 2;
-    	validElement = true;
-    	twoDone = false;
+        elementNumber = 2;
+        validElement = true;
+        twoDone = false;
     } else if( qName == DirectoryLocalizerLocalizedNameStr ){
-    	elementNumber = 3;
-    	validElement = true;
-    	twoDone = false;
+        elementNumber = 3;
+        validElement = true;
+        twoDone = false;
     } else {
         elementNumber++;
     }
-	
-    return true;	
+    
+    return true;    
 }
 
 /*!
@@ -179,14 +153,14 @@
     }
     
     if( validElement ) {
-		if(parsePathStrings) {
-			switch(elementNumber) {
+        if(parsePathStrings) {
+            switch(elementNumber) {
             case 1:  // DirectoryLocalizerNameStr     
                 t=t.toLower();
                 elements.insert(0,t);
                 break;
             case 2:  // DirectoryLocalizerPathStr  
-                t= t.replace(DirectoryLocalizerDirectorySeparatorX2,DirectoryLocalizerDirectorySeparatorX1);					
+                t= t.replace(DirectoryLocalizerDirectorySeparatorX2,DirectoryLocalizerDirectorySeparatorX1);                    
                 t=t.toLower();
                 if ( elements.count() > 1 ) {
                     elements.insert(1,t);
@@ -194,15 +168,15 @@
                     elements.append(t);
                 }
                 break;
-            case 3:  // DirectoryLocalizerTranslationStr 			
+            case 3:  // DirectoryLocalizerTranslationStr            
                 elements.insert(0,t);
                 
-                localizedStr = QCoreApplication::translate(0,charPtr);
+                localizedStr = hbTrId(charPtr);
                 delete ba;
                 ba = 0;
                 
                 if( localizedStr == t ){
-					localizedStr = "";                
+                    localizedStr = "";                
                 }
                 elements.append(localizedStr);
                 break;
@@ -210,13 +184,13 @@
                 elements.append(t); 
                 break;
             }
-            validElement = false;    	
-		} else if(parseDirectoryPaths) {			
-			switch(elementNumber) {
+            validElement = false;       
+        } else if(parseDirectoryPaths) {            
+            switch(elementNumber) {
             case 1: // DirectoryLocalizerRootPathStr
                 temp = t;
                 break;
-            case 2: // DirectoryLocalizerLocalizedPathStr							
+            case 2: // DirectoryLocalizerLocalizedPathStr                           
                 x = pathStrings->value(temp);
                 y = pathStrings->value(t);
                     
@@ -230,12 +204,12 @@
                  x = pathStrings->value(t);
                  elements.insert(1, x);
                 break;
-            default:			
+            default:            
                 break;
-			}
-			validElement = false;    				
-		}
-	}
+            }
+            validElement = false;                   
+        }
+    }
     if (ba) {
         delete ba;
     }
@@ -252,26 +226,26 @@
         const QString &,
         const QString & qName )
 {
-	if( qName == DirectoryLocalizerPathStringsStr ) {
-		parsePathStrings = false;
-		parseDirectoryPaths = false;
-		elements.clear();
-		elementNumber = 0;
-	} else if( qName == DirectoryLocalizerFullDirectoryPathsStr ) {
-		parsePathStrings = false;
-		
-		parseDirectoryPaths = false;
-		elements.clear();
-		elementNumber = 0;
-	}
-	
-	if( parsePathStrings && elements.count() > 1 ) {
+    if( qName == DirectoryLocalizerPathStringsStr ) {
+        parsePathStrings = false;
+        parseDirectoryPaths = false;
+        elements.clear();
+        elementNumber = 0;
+    } else if( qName == DirectoryLocalizerFullDirectoryPathsStr ) {
+        parsePathStrings = false;
+        
+        parseDirectoryPaths = false;
+        elements.clear();
+        elementNumber = 0;
+    }
+    
+    if( parsePathStrings && elements.count() > 1 ) {
         pathStrings->insertMulti(elements.at(0), elements.at(1));
-        elements.clear();		
+        elements.clear();       
     } else if(parseDirectoryPaths && elements.count() > 1) {
-		QString element1, element2;
-		switch(elements.count()) {				
-        case 2:					
+        QString element1, element2;
+        switch(elements.count()) {              
+        case 2:                 
             if(!twoDone){
                 fullPaths->insertMulti(elements.at(0),elements.at(1));
                 twoDone = true;
@@ -280,9 +254,9 @@
             break;
         default:
             break;
-		}
-	}
-	return true;
+        }
+    }
+    return true;
 }
 
 /*!
@@ -300,7 +274,7 @@
 */ 
 QMap<QString,QString> HbDNTXmlReader::getFullPaths()
 {
-	return *fullPaths;
+    return *fullPaths;
 }