diff --git a/src/apps/haikudepot/model/Model.cpp b/src/apps/haikudepot/model/Model.cpp index ce00590668..1166117743 100644 --- a/src/apps/haikudepot/model/Model.cpp +++ b/src/apps/haikudepot/model/Model.cpp @@ -340,12 +340,22 @@ Model::Model() language.CopyInto(fPreferredLanguage, 0, 2); } } - if (fPreferredLanguage != "en" && fPreferredLanguage != "de" - && fPreferredLanguage != "fr" && fPreferredLanguage != "ja" - && fPreferredLanguage != "es" && fPreferredLanguage != "zh" - && fPreferredLanguage != "pt" && fPreferredLanguage != "ru") { + + // TODO: Fetch this from the web-app. + fSupportedLanguages.Add("en"); + fSupportedLanguages.Add("de"); + fSupportedLanguages.Add("fr"); + fSupportedLanguages.Add("ja"); + fSupportedLanguages.Add("es"); + fSupportedLanguages.Add("zh"); + fSupportedLanguages.Add("pt"); + fSupportedLanguages.Add("ru"); + + if (!fSupportedLanguages.Contains(fPreferredLanguage)) { // Force the preferred language to one of the currently supported // ones, until the web application supports all ISO language codes. + printf("User preferred language '%s' not currently supported, " + "defaulting to 'en'.", fPreferredLanguage.String()); fPreferredLanguage = "en"; } fWebAppInterface.SetPreferredLanguage(fPreferredLanguage); diff --git a/src/apps/haikudepot/model/Model.h b/src/apps/haikudepot/model/Model.h index 487049c9ee..d47aa7fdd1 100644 --- a/src/apps/haikudepot/model/Model.h +++ b/src/apps/haikudepot/model/Model.h @@ -104,6 +104,9 @@ public: void PopulateAllPackages(); void StopPopulatingAllPackages(); + const StringList& SupportedLanguages() const + { return fSupportedLanguages; } + const BString& PreferredLanguage() const { return fPreferredLanguage; } @@ -175,6 +178,7 @@ private: thread_id fPopulateAllPackagesThread; volatile bool fStopPopulatingAllPackages; + StringList fSupportedLanguages; BString fPreferredLanguage; WebAppInterface fWebAppInterface;