summaryrefslogtreecommitdiff
path: root/apt-pkg/indexfile.cc
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2005-05-13 14:48:31 +0000
committerMichael Vogt <michael.vogt@ubuntu.com>2005-05-13 14:48:31 +0000
commit0430b189a2334653852de4f1a65d2833b281f4ce (patch)
tree5e46b684ee9f84f0c9b9be117546b2c91705c185 /apt-pkg/indexfile.cc
parentf416d22e97c56eedc8b4303a5aecfffaaa23eb1c (diff)
* try harder to get the correct language code
Diffstat (limited to 'apt-pkg/indexfile.cc')
-rw-r--r--apt-pkg/indexfile.cc15
1 files changed, 13 insertions, 2 deletions
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;
}