klettres
langutils.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "langutils.h"
00022 #include "prefs.h"
00023
00024 #include <QDir>
00025
00026 #include <KDebug>
00027 #include <KGlobal>
00028 #include <KLocale>
00029 #include <KStandardDirs>
00030
00031 bool LangUtils::hasSpecialChars(const QString& lang)
00032 {
00033 if (lang== "cs"
00034 || lang== "da"
00035 || lang== "sk"
00036 || lang== "es"
00037 || lang== "de"
00038 || lang== "hu"
00039 || lang== "nds")
00040 return true;
00041 return false;
00042 }
00043
00044 QStringList LangUtils::getLanguages()
00045 {
00046 QStringList m_languages;
00047 m_languages.clear();
00048
00049 QStringList mdirs = KGlobal::dirs()->findDirs("data", "klettres/");
00050
00051 for (QStringList::const_iterator it =mdirs.begin(); it !=mdirs.end(); ++it ) {
00052 QDir dir(*it);
00053 m_languages += dir.entryList(QDir::Dirs, QDir::Name);
00054 m_languages.removeAll(".");
00055 m_languages.removeAll("..");
00056 }
00057 m_languages.removeAll("pics");
00058 m_languages.removeAll("data");
00059 m_languages.removeAll("icons");
00060 m_languages.sort();
00061
00062
00063 QStringList temp_languages;
00064 for (int i=0; i<m_languages.count(); i++) {
00065 if (m_languages.count(m_languages[i])>1) {
00066 temp_languages.append(m_languages[i]);
00067 m_languages.removeAll(m_languages[i]);
00068 }
00069 for (int i=0; i<temp_languages.count(); i++) {
00070 if (i%2==0)
00071 m_languages.append(temp_languages[i]);
00072 }
00073 temp_languages.clear();
00074 }
00075
00076 m_languages.sort();
00077 kDebug() <<m_languages;
00078 return m_languages;
00079 }
00080
00081 QStringList LangUtils::getLanguagesNames(QStringList languagesList)
00082 {
00083
00084
00085
00086 QStringList languagesNames;
00087 KConfig entry(KStandardDirs::locate("locale", "all_languages"));
00088
00089 foreach(const QString &language, languagesList) {
00090 if (language == "hi-ro")
00091 languagesNames.append(i18n("Romanized Hindi"));
00092 else if (language == "lug_UG")
00093 languagesNames.append(i18n("Luganda"));
00094 else
00095 {
00096 KConfigGroup group = entry.group(language);
00097 QString languageName = group.readEntry("Name");
00098 if (languageName.isEmpty()) {
00099 languageName = i18n("None");
00100 }
00101 languagesNames.append(languageName);
00102 }
00103 }
00104
00105 return languagesNames;
00106 }
00107
00108 void LangUtils::writeLangConfig()
00109 {
00110
00111 KConfigGroup config(KGlobal::config(), "KNewStuffStatus");
00112 QStringList m_languages = getLanguages();
00113 for (int i=0; i<m_languages.count(); i++) {
00114 QString tmp = m_languages[i];
00115 if (!config.readEntry(tmp, QString()).isEmpty())
00116 config.writeEntry(tmp, QDate::currentDate().toString());
00117 }
00118 config.sync();
00119 }
00120
00121