#pragma implementation "apt-pkg/indexfile.h"
#endif
-#include <apt-pkg/configuration.h>
#include <apt-pkg/indexfile.h>
#include <apt-pkg/error.h>
-
-#include <clocale>
/*}}}*/
// Global list of Item supported
return string();
}
/*}}}*/
-// IndexFile::TranslationsAvailable - Check if will use Translation /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool pkgIndexFile::TranslationsAvailable()
-{
- const string Translation = _config->Find("APT::Acquire::Translation");
-
- if (Translation.compare("none") != 0)
- return CheckLanguageCode(LanguageCode().c_str());
- else
- return false;
-}
- /*}}}*/
-// 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] == '_'))
- return true;
-
- if (strcmp(Lang,"C") != 0)
- _error->Warning("Wrong language code %s", Lang);
-
- return false;
-}
- /*}}}*/
-// 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)
- {
- 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;
-}
- /*}}}*/