From 0430b189a2334653852de4f1a65d2833b281f4ce Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 13 May 2005 14:48:31 +0000 Subject: * try harder to get the correct language code --- apt-pkg/indexfile.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'apt-pkg/indexfile.cc') diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index 7aafe3c31..0f1f48af4 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -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; } -- cgit v1.2.3