]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/indexfile.cc
* apt-pkg/acquire.{cc,h}:
[apt.git] / apt-pkg / indexfile.cc
index 496e68b8bbd3945a9db2215c9c192caaddf9e763..fad38772b606c58a53763f803eb524b695c1b61b 100644 (file)
@@ -75,7 +75,7 @@ string pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const &Record,
 /* */
 bool pkgIndexFile::TranslationsAvailable()
 {
-  const string Translation = _config->Find("APT::Acquire::Translation");
+  const string Translation = _config->Find("APT::Acquire::Translation", "environment");
   
   if (Translation.compare("none") != 0)
     return CheckLanguageCode(LanguageCode().c_str());
@@ -107,17 +107,20 @@ bool pkgIndexFile::CheckLanguageCode(const char *Lang)
 /* return the language code */
 string pkgIndexFile::LanguageCode()
 {
-  const string Translation = _config->Find("APT::Acquire::Translation");
+  const string Translation = _config->Find("APT::Acquire::Translation", "environment");
 
   if (Translation.compare("environment") == 0) 
   {
      string lang = std::setlocale(LC_MESSAGES,NULL);
 
-     // FIXME: this needs to be added
      // we have a mapping of the language codes that contains all the language
      // codes that need the country code as well 
      // (like pt_BR, pt_PT, sv_SE, zh_*, en_*)
-
+     char *need_full_langcode[] = { "pt","sv","zh","en", NULL };
+     for(char **s = need_full_langcode;*s != NULL; s++)
+       if(lang.find(*s) == 0)
+          return lang.substr(0,5);
+     
      if(lang.size() > 2)
        return lang.substr(0,2);
      else