X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/0430b189a2334653852de4f1a65d2833b281f4ce..3bb98bee11b38df0264099f3c9e858880759999d:/apt-pkg/indexfile.cc diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index 0f1f48af4..ca11fc111 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -8,10 +8,6 @@ ##################################################################### */ /*}}}*/ // Include Files /*{{{*/ -#ifdef __GNUG__ -#pragma implementation "apt-pkg/indexfile.h" -#endif - #include #include #include @@ -70,10 +66,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"); @@ -89,7 +85,6 @@ bool pkgIndexFile::UseTranslation() /* 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) @@ -105,13 +100,23 @@ 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) { + if (Translation.compare("environment") == 0) + { string lang = std::setlocale(LC_MESSAGES,NULL); + + // 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