Add search UI localization in multiple languages, including error messages and tooltips, to enhance user experience and accessibility across the application.

This commit is contained in:
Torsten Schulz (local)
2025-11-16 22:15:41 +01:00
parent 8f24425110
commit 63747e0fd6
12 changed files with 148 additions and 5 deletions

View File

@@ -1482,16 +1482,16 @@ void App::restoreSearchFields(Wt::WContainerWidget *searchResultContainer, Wt::W
}
Wt::WLineEdit *App::setupNameSearchField(Wt::WVBoxLayout *contentLayout) {
auto userNameEdit = addSearchItemLine<Wt::WLineEdit>(contentLayout, "Username includes");
auto userNameEdit = addSearchItemLine<Wt::WLineEdit>(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<Wt::WPushButton>(contentLayout, "");
searchButton->setText("Search");
searchButton->setText(Wt::WString::tr("search_button"));
auto searchResultContainer = contentLayout->addWidget(std::make_unique<Wt::WContainerWidget>(), 1);
searchResultContainer->addNew<Wt::WText>("No results");
searchResultContainer->addNew<Wt::WText>(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<Wt::WText>("Minimum age must be at least as large as or greater than the maximum age.");
searchFields.outputContainer->addNew<Wt::WText>(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<Wt::WText>("No results.");
searchFields.outputContainer->addNew<Wt::WText>(Wt::WString::tr("search_no_results"));
}
auto searchListContainer = searchFields.outputContainer->addNew<Wt::WContainerWidget>();
auto searchList = searchListContainer->setLayout(std::make_unique<Wt::WVBoxLayout>());