* try harder to get the correct language code
authorMichael Vogt <michael.vogt@ubuntu.com>
Fri, 13 May 2005 14:48:31 +0000 (14:48 +0000)
committerMichael Vogt <michael.vogt@ubuntu.com>
Fri, 13 May 2005 14:48:31 +0000 (14:48 +0000)
apt-pkg/indexfile.cc

index 7aafe3c..0f1f48a 100644 (file)
@@ -86,6 +86,12 @@ bool pkgIndexFile::UseTranslation()
 // IndexFile::CheckLanguageCode - Check the Language Code              /*{{{*/
 // ---------------------------------------------------------------------
 /* */
+/* common cases: de_DE, de_DE@euro, de_DE.UTF-8, de_DE.UTF-8@euro,
+                 de_DE.ISO8859-1, tig_ER
+                 more in /etc/gdm/locale.conf 
+                approach: just get the first letter before the underscore?!?
+*/
+
 bool pkgIndexFile::CheckLanguageCode(const char *Lang)
 {
   if (strlen(Lang) == 2 || (strlen(Lang) == 5 && Lang[2] == '_'))
@@ -104,8 +110,13 @@ string pkgIndexFile::LanguageCode()
 {
   const string Translation = _config->Find("APT::Acquire::Translation");
 
-  if (Translation.compare("environment") == 0)
-     return std::setlocale(LC_ALL,NULL);
+  if (Translation.compare("environment") == 0) {
+     string lang = std::setlocale(LC_MESSAGES,NULL);
+     if(lang.size() > 2)
+       return lang.substr(0,2);
+     else
+       return lang;
+  }
   else 
      return Translation;
 }