From 63747e0fd6370ac8e112c7760237c12fa62db259 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sun, 16 Nov 2025 22:15:41 +0100 Subject: [PATCH] Add search UI localization in multiple languages, including error messages and tooltips, to enhance user experience and accessibility across the application. --- docroot/text.xml | 13 +++++++++++++ docroot/text_de_DE.xml | 13 +++++++++++++ docroot/text_en_GB.xml | 13 +++++++++++++ docroot/text_en_US.xml | 13 +++++++++++++ docroot/text_es_ES.xml | 13 +++++++++++++ docroot/text_fr_FR.xml | 13 +++++++++++++ docroot/text_it_IT.xml | 13 +++++++++++++ docroot/text_ja_JP.xml | 13 +++++++++++++ docroot/text_th_TH.xml | 13 +++++++++++++ docroot/text_tl_PH.xml | 13 +++++++++++++ docroot/text_zh_CN.xml | 13 +++++++++++++ src/app.cpp | 10 +++++----- 12 files changed, 148 insertions(+), 5 deletions(-) diff --git a/docroot/text.xml b/docroot/text.xml index 6b339b8..37406ce 100644 --- a/docroot/text.xml +++ b/docroot/text.xml @@ -35,6 +35,19 @@ Error 400 - Page not found Error opening file. Name + + Search]]> + Username includes + From age + To age + Country + Select the countries you'll search for + Genders + Select the genders you'll search for + All + Search + No results. + Minimum age must be at least as large as or greater than the maximum age.
diff --git a/docroot/text_de_DE.xml b/docroot/text_de_DE.xml index edfab8f..97c5609 100644 --- a/docroot/text_de_DE.xml +++ b/docroot/text_de_DE.xml @@ -35,6 +35,19 @@ Fehler 400 - Seite nicht gefunden Fehler beim Öffnen der Datei. Name + + Suche]]> + Benutzername enthält + Von Alter + Bis Alter + Land + Wähle die Länder, in denen du suchen möchtest + Geschlechter + Wähle die Geschlechter, nach denen du suchen möchtest + Alle + Suchen + Keine Treffer. + Das Mindestalter muss mindestens so groß sein wie das Höchstalter.
diff --git a/docroot/text_en_GB.xml b/docroot/text_en_GB.xml index bba9c6a..fdf5223 100644 --- a/docroot/text_en_GB.xml +++ b/docroot/text_en_GB.xml @@ -19,6 +19,19 @@ Conversations with already logged in users]]> No previous conversations available. Logged in: {1} + + Search]]> + Username includes + From age + To age + Country + Select the countries you'll search for + Genders + Select the genders you'll search for + All + Search + No results. + Minimum age must be at least as large as or greater than the maximum age.
diff --git a/docroot/text_en_US.xml b/docroot/text_en_US.xml index 430a9b9..a5543a1 100644 --- a/docroot/text_en_US.xml +++ b/docroot/text_en_US.xml @@ -19,6 +19,19 @@ Conversations with already logged in users]]> No previous conversations available. Logged in: {1} + + Search]]> + Username includes + From age + To age + Country + Select the countries you'll search for + Genders + Select the genders you'll search for + All + Search + No results. + Minimum age must be at least as large as or greater than the maximum age.
diff --git a/docroot/text_es_ES.xml b/docroot/text_es_ES.xml index cdeb982..dcff8a4 100644 --- a/docroot/text_es_ES.xml +++ b/docroot/text_es_ES.xml @@ -19,6 +19,19 @@ Conversaciones con usuarios ya conectados]]> No hay conversaciones anteriores disponibles. Conectados: {1} + + Búsqueda]]> + Nombre de usuario contiene + Edad desde + Edad hasta + País + Selecciona los países que quieres buscar + Géneros + Selecciona los géneros que quieres buscar + Todos + Buscar + Sin resultados. + La edad mínima debe ser al menos igual o mayor que la edad máxima.
diff --git a/docroot/text_fr_FR.xml b/docroot/text_fr_FR.xml index 45bfc86..dfb3888 100644 --- a/docroot/text_fr_FR.xml +++ b/docroot/text_fr_FR.xml @@ -19,6 +19,19 @@ Conversations avec des utilisateurs déjà connectés]]> Aucune conversation précédente disponible. Connectés : {1} + + Recherche]]> + Nom d’utilisateur contient + Âge min. + Âge max. + Pays + Sélectionnez les pays à inclure dans la recherche + Genres + Sélectionnez les genres à inclure dans la recherche + Tous + Rechercher + Aucun résultat. + L’âge minimum doit être au moins égal à l’âge maximum.
diff --git a/docroot/text_it_IT.xml b/docroot/text_it_IT.xml index 757a5d9..65a5984 100644 --- a/docroot/text_it_IT.xml +++ b/docroot/text_it_IT.xml @@ -19,6 +19,19 @@ Conversazioni con utenti già collegati]]> Nessuna conversazione precedente disponibile. Utenti online: {1} + + Ricerca]]> + Nome utente contiene + Età da + Età fino a + Paese + Seleziona i paesi in cui cercare + Generi + Seleziona i generi da includere nella ricerca + Tutti + Cerca + Nessun risultato. + L’età minima deve essere almeno uguale o superiore all’età massima.
diff --git a/docroot/text_ja_JP.xml b/docroot/text_ja_JP.xml index 1ccc5a2..9b5493d 100644 --- a/docroot/text_ja_JP.xml +++ b/docroot/text_ja_JP.xml @@ -19,6 +19,19 @@ すでにログインしているユーザーとの会話]]> 過去の会話はありません。 ログイン中: {1} + + 検索]]> + ユーザー名に含まれる文字列 + 年齢(下限) + 年齢(上限) + + 検索対象とする国を選択してください + 性別 + 検索対象とする性別を選択してください + すべて + 検索 + 結果がありません。 + 最小年齢は最大年齢以上でなければなりません。
diff --git a/docroot/text_th_TH.xml b/docroot/text_th_TH.xml index 09efee7..d528f18 100644 --- a/docroot/text_th_TH.xml +++ b/docroot/text_th_TH.xml @@ -19,6 +19,19 @@ การสนทนากับผู้ใช้ที่ล็อกอินอยู่แล้ว]]> ยังไม่มีกิจกรรมการสนทนาก่อนหน้านี้ ออนไลน์อยู่: {1} + + ค้นหา]]> + ชื่อผู้ใช้มีคำว่า + อายุตั้งแต่ + อายุถึง + ประเทศ + เลือกประเทศที่ต้องการค้นหา + เพศ + เลือกเพศที่ต้องการค้นหา + ทั้งหมด + ค้นหา + ไม่พบผลลัพธ์ + อายุต่ำสุดต้องไม่น้อยกว่าหรือเท่ากับอายุสูงสุด
diff --git a/docroot/text_tl_PH.xml b/docroot/text_tl_PH.xml index 4a4ab02..d5ba662 100644 --- a/docroot/text_tl_PH.xml +++ b/docroot/text_tl_PH.xml @@ -19,6 +19,19 @@ Mga pag-uusap sa mga naka-log in na user]]> Walang mga naunang pag-uusap. Naka-log in: {1} + + Paghahanap]]> + Username ay naglalaman ng + Edad mula + Edad hanggang + Bansa + Piliin ang (mga) bansang gusto mong hanapin + Kasarian + Piliin ang (mga) kasarian na hahanapin + Lahat + Maghanap + Walang nahanap na resulta. + Ang minimum na edad ay dapat hindi bababa sa katumbas o mas mataas kaysa maximum na edad.
diff --git a/docroot/text_zh_CN.xml b/docroot/text_zh_CN.xml index cc6e6c8..6131597 100644 --- a/docroot/text_zh_CN.xml +++ b/docroot/text_zh_CN.xml @@ -19,6 +19,19 @@ 与已登录用户的会话]]> 暂无历史会话。 当前在线: {1} + + 搜索]]> + 用户名包含 + 年龄从 + 年龄到 + 国家 + 选择要搜索的国家 + 性别 + 选择要搜索的性别 + 全部 + 搜索 + 没有找到结果。 + 最小年龄必须大于或等于最大年龄。
diff --git a/src/app.cpp b/src/app.cpp index 878021c..39743b9 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -1482,16 +1482,16 @@ void App::restoreSearchFields(Wt::WContainerWidget *searchResultContainer, Wt::W } Wt::WLineEdit *App::setupNameSearchField(Wt::WVBoxLayout *contentLayout) { - auto userNameEdit = addSearchItemLine(contentLayout, "Username includes"); + auto userNameEdit = addSearchItemLine(contentLayout, Wt::WString::tr("search_username_includes").toUTF8()); userNameEdit->changed().connect([=, this] { searchFields.userName = userNameEdit->text().trim(); }); return userNameEdit; } Wt::WContainerWidget *App::setupSearchButton(Wt::WVBoxLayout *contentLayout) { auto searchButton = addSearchItemLine(contentLayout, ""); - searchButton->setText("Search"); + searchButton->setText(Wt::WString::tr("search_button")); auto searchResultContainer = contentLayout->addWidget(std::make_unique(), 1); - searchResultContainer->addNew("No results"); + searchResultContainer->addNew(Wt::WString::tr("search_no_results")); searchButton->clicked().connect(this, &App::startSearch); return searchResultContainer; } @@ -1499,7 +1499,7 @@ Wt::WContainerWidget *App::setupSearchButton(Wt::WVBoxLayout *contentLayout) { void App::startSearch() { if (searchFields.minAge > searchFields.maxAge) { searchFields.outputContainer->clear(); - searchFields.outputContainer->addNew("Minimum age must be at least as large as or greater than the maximum age."); + searchFields.outputContainer->addNew(Wt::WString::tr("search_min_age_error")); return; } server_.userSearch(sessionId(), searchFields.userName.toUTF8(), searchFields.minAge, searchFields.maxAge, @@ -1513,7 +1513,7 @@ void App::showSearch(Wt::Json::Object broadcast) { searchFields.outputContainer->clear(); auto searchResult = (Wt::Json::Array)broadcast["data"]; if (searchResult.size() == 0) { - searchFields.outputContainer->addNew("No results."); + searchFields.outputContainer->addNew(Wt::WString::tr("search_no_results")); } auto searchListContainer = searchFields.outputContainer->addNew(); auto searchList = searchListContainer->setLayout(std::make_unique());