summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-06-06 19:20:28 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2006-06-06 19:20:28 +0200
commite0c4f06387ade5761e644b5b96e41284c12da23c (patch)
treea4be3adcdf6040ae408ea38ee59d58438c087f94
parent012b102ad1baf9f24601cbec6365fe43aad2d521 (diff)
* apt-pkg/indexfile.cc:
- add special cases for various languages like pt_BR, zh_CN etc
-rw-r--r--BUGS1
-rw-r--r--apt-pkg/indexfile.cc7
2 files changed, 6 insertions, 2 deletions
diff --git a/BUGS b/BUGS
index 6bbc6f839..a7b6b1114 100644
--- a/BUGS
+++ b/BUGS
@@ -6,3 +6,4 @@ DDTP problems:
enviroment or Translations apt variable
- there needs to be a list of locales (pt, sv, en) that need
both language and country code to get the right file
+ (is in the code in indexfile::LanguageCode(), just a bit ugly
diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc
index 496e68b8b..bb2210bf6 100644
--- a/apt-pkg/indexfile.cc
+++ b/apt-pkg/indexfile.cc
@@ -113,11 +113,14 @@ string pkgIndexFile::LanguageCode()
{
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