From 4ff3d17ae8f8185c3a94fe35035a0fdacc582881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sat, 27 Sep 2014 23:07:39 +0200 Subject: [PATCH] HaikuDepot: Put supported languages into a StringList * Added TODO to retrieve the list from the web-app, there is already an API for it. For now, the hard-coded list matches the web-app's and the next change in this regard will be to support any known language. * Make the list accessible. --- src/apps/haikudepot/model/Model.cpp | 18 ++++++++++++++---- src/apps/haikudepot/model/Model.h | 4 ++++ 2 files changed, 18 insertions(+), 4 deletions(-) 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;