src/hbcore/i18n/hblanguageutil.cpp
changeset 30 80e4d18b72f5
parent 28 b7da29130b0e
--- a/src/hbcore/i18n/hblanguageutil.cpp	Fri Sep 17 08:32:10 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,316 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (developer.feedback@nokia.com)
-**
-** This file is part of the HbCore module of the UI Extensions for Mobile.
-**
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights.  These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at developer.feedback@nokia.com.
-**
-****************************************************************************/
-
-#include <QFile>
-#include <QLocale>
-#include <QTimer>
-#include <QHash>
-#include <QHashIterator>
-#include <QTextStream>
-#include <QTranslator>
-#include <QTextCodec>
-#include <QCoreApplication>
-
-#if defined(Q_OS_SYMBIAN)
-#include <e32lang.h>
-#include <e32property.h>
-#include <centralrepository.h> 
-#include <hal.h>
-#include <syslangutil.h>
-#include <CommonEngineDomainCRKeys.h> //Ui language
-#endif // Q_OS_SYMBIAN
-
-#include "hblanguageutil.h"
-#include "hbfeaturemanager_r.h"
-
-#if defined(Q_OS_SYMBIAN)
-#define LANGUAGE_LIST_FILE "/resource/hbi18n/translations/language_list.txt"
-#define LANGUAGE_ID_PREFIX "language_"
-#define TRANSLATOR_PATH "/resource/hbi18n/translations/languages_OLD"
-#endif // Q_OS_SYMBIAN
-
-/*!
-    @beta
-    @hbcore
-    \class HbLanguageUtil
-    \brief HbLanguageUtil provides functions for quering supported languages and switching the system language.
-
-    \deprecated HbLanguageUtil class
-        is deprecated. Please use HbLocaleUtil class instead.
-*/
-
-#if defined(Q_OS_SYMBIAN)
-/*!
-    \brief Returns identifiers and localized names of all known languages.
-      
-    \return localized names and integer identifiers of languages supported in a device  
-*/
-QHash<int, QString> readLanguageList()
-{
-    QHash<int, QString> hashLanguages;
-    QString path = "c:";
-    path += QString(LANGUAGE_LIST_FILE);
-    QFile* file = new QFile(path);
-    if (!file->exists() ) {
-        path = "z:";
-        path += QString(LANGUAGE_LIST_FILE);
-        delete file;
-        file = new QFile(path);
-    }
-    if (!file->open(QIODevice::ReadOnly | QIODevice::Text)) {
-        delete file;
-        return hashLanguages;
-    }
-    QTextStream in(file);
-    while (!in.atEnd()) {
-        QString line = in.readLine(256);
-        if (!line.isEmpty()) {
-            int sep = line.indexOf(',');
-            QString strCode = line.left(sep);
-            QString name = line.mid(sep+1);
-
-            bool ok;
-            int code = strCode.toUInt(&ok);
-            if (!ok) {
-                continue;
-            }
-            hashLanguages.insert(code, name);
-        }
-    }
-    delete file;
-    return hashLanguages;
-}
-#endif // Q_OS_SYMBIAN
-
-#if defined(Q_OS_SYMBIAN)
-
-/*!
-    \brief Changes the system UI language.
-      
-    \param language identifier of the language  
-    \return true if operation was successful
-*/
-bool setLocale( int language )
-{
-    TExtendedLocale dummy;
-    dummy.LoadSystemSettings();
-    QString no;
-    no = QString( "%1" ).arg( language, 2, 10, QLatin1Char( '0' ) );
-    QString name = QString( "elocl." ).append( no );
-    TPtrC nameptr(name.utf16());
-    
-    TInt err = dummy.LoadLocale( nameptr );
-    if( err != KErrNone )
-        return false;
-    dummy.SaveSystemSettings();
-    // cause localeprivate update on next qlocale object( glp->m_language_id = 0 )
-    QSystemLocale dummy2;
-    return true;
-}
-#endif // Q_OS_SYMBIAN
-
-
-/*!
-    \brief Returns names and identifiers of supported languages in a phone.
- 
-    Language names are localized according the language's native presentation.
-    Language ID's returned by this functions may be used as language parameter for changeLanguage(int language) function.
-    Language IDs and names are OS specific and may vary across the platforms and releases.
-    
-    \attention Symbian specific API
-    
-    \deprecated HbLanguageUtil::supportedLanguages()
-        is deprecated. Please use HbLocaleUtil::supportedLanguages() instead.
-     
-    \return Symbian - localized names and integer identifiers of languages supported in a device  
-    \return other platforms - empty QHash    
-*/
-QHash<int, QString> HbLanguageUtil::supportedLanguages()
-{
-#if defined(Q_OS_SYMBIAN)   
-    QHash<int, QString> languages; 
-    
-    QTranslator translator;
-    QString path = "c:";
-    path += QString(TRANSLATOR_PATH);
-    if (!translator.load(path)) {
-        path = "z:";
-        path += QString(TRANSLATOR_PATH);
-        if (!translator.load(path)) {
-            return languages;
-        } 
-    } 
-
-    QCoreApplication::installTranslator(&translator);
-    QHash<int, QString> hashLanguageNames = readLanguageList();
- 
-    CArrayFixFlat<TInt>* systemEpocLanguageCodes = 0;
-    TInt error = SysLangUtil::GetInstalledLanguages( systemEpocLanguageCodes );
-    if ( error != KErrNone ) {
-        delete systemEpocLanguageCodes;
-        return languages;
-    }
-    
-    for (int i = 0; i < systemEpocLanguageCodes->Count(); ++i) {
-        int code = systemEpocLanguageCodes->At(i);
-        QString id = QString(LANGUAGE_ID_PREFIX);
-        id += QString::number(code);
-        QString locName = hbTrId(id.toAscii().constData());
-        if (locName.isEmpty() || locName == id) {
-            locName = hashLanguageNames.value(code);
-        }
-        languages.insert(code, locName);
-    }
-    
-    delete systemEpocLanguageCodes;
-    return languages;
-#else 
-    QHash<int, QString> dummy;
-    return dummy;
-#endif
-}
-
-/*!
-    \brief Returns names and identifiers of all known languages.
- 
-    Language names are localized according the language's native presentation.
-    Language ID's returned by this functions may be used as language parameter for changeLanguage(int language) function.
-    Language IDs and names are OS specific and may vary across the platforms and releases.
-     
-    \attention Symbian specific API
-     
-    \deprecated HbLanguageUtil::allLanguages()
-        is deprecated.
-
-    \return Symbian - localized names and integer identifiers of known languages 
-    \return other platforms - empty QHash    
-*/
-QHash<int, QString> HbLanguageUtil::allLanguages()
-{
-#if defined(Q_OS_SYMBIAN)  
-    QHash<int, QString> langs; 
-    
-    QTranslator translator;
-    QString path = "c:";
-    path += QString(TRANSLATOR_PATH);
-    if (!translator.load(path)) {
-        path = "z:";
-        path += QString(TRANSLATOR_PATH);
-        if (!translator.load(path)) {
-            return langs;
-        } 
-    } 
-
-    QCoreApplication::installTranslator(&translator);
-    
-    QHash<int, QString> languageNameList = readLanguageList();
-    QHashIterator<int, QString> i(languageNameList);
-    while (i.hasNext()) {
-        i.next();
-        int code = i.key();
-        QString id = QString(LANGUAGE_ID_PREFIX);
-        id += QString::number(code);
-        QString locName = hbTrId(id.toAscii().constData());
-        if (locName.isEmpty()) {
-            locName = i.value();
-        }
-        langs.insert(code, locName);
-    }
-    return langs;
-#else 
-    QHash<int, QString> dummy;
-    return dummy;
-#endif
-}
-
-/*!
-    \brief Changes the device system language.  
-     
-    \attention Symbian specific API
-     
-    \deprecated HbLanguageUtil::changeLanguage( int language )
-        is deprecated. Please use HbLocaleUtil::changeLanguage( const QString &language ) instead.
-
-    \param language identifier of language to set active
-    \return true for Symbian if succesfull and false for other platforms
-*/ 
-bool HbLanguageUtil::changeLanguage( int language )
-{
-#if defined(Q_OS_SYMBIAN)
-    if ( !HbFeatureManager::instance()->featureStatus(HbFeatureManager::LanguageSwitch) ) {
-        return false;
-    }
-    
-    CRepository* commonEngineRepository = 0;
-    TRAPD( err1, commonEngineRepository = CRepository::NewL( KCRUidCommonEngineKeys ) );    
-    if ( err1 != KErrNone ) { 
-        return false;
-    }
-    
-    if (!setLocale(language)) {
-            delete commonEngineRepository;
-        return false;
-    }
-        
-    // Never set Language code 0 to HAL
-    if ( language !=0 ) {
-        if ( HAL::Set( HAL::ELanguageIndex, language ) != KErrNone ) {
-            delete commonEngineRepository;
-            return false;
-        }
-    }
-    if ( commonEngineRepository->Set( KGSDisplayTxtLang, language ) != KErrNone ) {
-        delete commonEngineRepository;
-        return false;
-    }
-    delete commonEngineRepository;
-    return true;
-
-#else
-    Q_UNUSED(language);
-    return false;
-#endif
-}
-
-/*!
-    \brief Returns ID of current language. 
-  
-    \attention Symbian specific API
-     
-    \deprecated HbLanguageUtil::currentLanguage()
-        is deprecated. Please use HbLocaleUtil::currentLanguage() instead.
-
-    \return identifier of current system language for Symbian and '0' for other platforms
-*/ 
-int HbLanguageUtil::currentLanguage()
-{
-    #if defined(Q_OS_SYMBIAN)
-        TLanguage l = User::Language();
-        return l;
-    #else 
-        return 0;
-    #endif
-}
-