[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r2291: Add a static LanguageSupport::isRightToLeft() method that re (vidalia/trunk/src/vidalia)



Author: edmanm
Date: 2008-01-11 22:34:29 -0500 (Fri, 11 Jan 2008)
New Revision: 2291

Modified:
   vidalia/trunk/src/vidalia/languagesupport.cpp
   vidalia/trunk/src/vidalia/languagesupport.h
Log:
Add a static LanguageSupport::isRightToLeft() method that returns true if the
specified language code indicates a language that requires a right-to-left
layout. Previously, this logic was just lumped into
LanguageSupport::translate(), but our list of right-to-left translations is
growing. Also some const cleanups.


Modified: vidalia/trunk/src/vidalia/languagesupport.cpp
===================================================================
--- vidalia/trunk/src/vidalia/languagesupport.cpp	2008-01-12 03:31:41 UTC (rev 2290)
+++ vidalia/trunk/src/vidalia/languagesupport.cpp	2008-01-12 03:34:29 UTC (rev 2291)
@@ -92,7 +92,7 @@
 
 /** Returns the language code for a given language name. */
 QString
-LanguageSupport::languageCode(QString languageName)
+LanguageSupport::languageCode(const QString &languageName)
 {
   return languages().key(languageName);
 }
@@ -106,7 +106,7 @@
 
 /** Returns the language name for a given language code. */
 QString
-LanguageSupport::languageName(QString languageCode)
+LanguageSupport::languageName(const QString &languageCode)
 {
   return languages().value(languageCode);
 }
@@ -120,23 +120,30 @@
 
 /** Returns true if we understand the given language code. */
 bool
-LanguageSupport::isValidLanguageCode(QString code)
+LanguageSupport::isValidLanguageCode(const QString &languageCode)
 {
-  return languageCodes().contains(code.toLower());
+  return languageCodes().contains(languageCode);
 }
 
+/** Returns true if <b>languageCode</b> requires a right-to-left layout. */
+bool
+LanguageSupport::isRightToLeft(const QString &languageCode)
+{
+  return (!languageCode.compare("ar", Qt::CaseInsensitive) 
+            || !languageCode.compare("fa", Qt::CaseInsensitive));
+}
+
 /** Sets the application's translator to the specified language. */
 bool
-LanguageSupport::translate(QString langCode)
+LanguageSupport::translate(const QString &languageCode)
 {
-  if (isValidLanguageCode(langCode)) {
+  QString code = languageCode.toLower();
+  if (isValidLanguageCode(code)) {
     QTranslator *translator = new QTranslator(vApp);
-    langCode = langCode.toLower();
-    if (translator->load(QString(":/lang/") + langCode)) {
+    if (translator->load(QString(":/lang/") + code)) {
       QApplication::installTranslator(translator);
-      if (langCode == "fa" || langCode == "ar") {
+      if (isRightToLeft(code))
         vApp->setLayoutDirection(Qt::RightToLeft);
-      }
       return true;
     }
     delete translator;

Modified: vidalia/trunk/src/vidalia/languagesupport.h
===================================================================
--- vidalia/trunk/src/vidalia/languagesupport.h	2008-01-12 03:31:41 UTC (rev 2290)
+++ vidalia/trunk/src/vidalia/languagesupport.h	2008-01-12 03:34:29 UTC (rev 2291)
@@ -39,19 +39,21 @@
   /** Returns the default language code for the system locale. */
   static QString defaultLanguageCode();
   /** Returns the language code for a given language name. */
-  static QString languageCode(QString languageName);
+  static QString languageCode(const QString &languageName);
   /** Returns a list of all supported language codes (e.g., "en"). */
   static QStringList languageCodes();
   /** Returns the language name for a given language code. */
-  static QString languageName(QString languageCode);
+  static QString languageName(const QString &languageCode);
   /** Returns a list of all supported language names (e.g., "English"). */
   static QStringList languageNames();
   /** Returns a list of all supported language codes and names. */
   static QMap<QString, QString> languages();
   /** Returns true if we understand the given language code. */
-  static bool isValidLanguageCode(QString code);
+  static bool isValidLanguageCode(const QString &languageCode);
+  /** Returns true if <b>languageCode</b> requires a right-to-left layout. */
+  static bool isRightToLeft(const QString &languageCode);
   /** Sets the application's translator to the specified language. */
-  static bool translate(QString langCode);
+  static bool translate(const QString &languageCode);
 };
 
 #endif