X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b2869b22be57f9243eec6ef1abe118a0252b7172..facac1c52ebe40656af693502cab66eb4c09ad2f:/apt-pkg/indexfile.cc diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index 7aafe3c31..496e68b8b 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -70,10 +70,10 @@ string pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const &Record, return string(); } /*}}}*/ -// IndexFile::UseTranslation - Check if will use Translation /*{{{*/ +// IndexFile::TranslationsAvailable - Check if will use Translation /*{{{*/ // --------------------------------------------------------------------- /* */ -bool pkgIndexFile::UseTranslation() +bool pkgIndexFile::TranslationsAvailable() { const string Translation = _config->Find("APT::Acquire::Translation"); @@ -86,6 +86,11 @@ 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 +*/ + bool pkgIndexFile::CheckLanguageCode(const char *Lang) { if (strlen(Lang) == 2 || (strlen(Lang) == 5 && Lang[2] == '_')) @@ -99,13 +104,25 @@ bool pkgIndexFile::CheckLanguageCode(const char *Lang) /*}}}*/ // IndexFile::LanguageCode - Return the Language Code /*{{{*/ // --------------------------------------------------------------------- -/* */ +/* return the language code */ 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); + + // 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_*) + + if(lang.size() > 2) + return lang.substr(0,2); + else + return lang; + } else return Translation; }