From b396f29769547bd15c70878a5be62301a3c2ee97 Mon Sep 17 00:00:00 2001
From: Bernhard Schelling <14200249+schellingb@users.noreply.github.com>
Date: Sun, 2 Aug 2020 04:46:32 +0900
Subject: [PATCH 1/2] Replace 3 strings with format strings to better
 accommodate different languages - "By" becomes "By %s" - "Select" becomes
 "Select %s" - "Items" becomes "%u Items"

---
 intl/msg_hash_chs.h   | 12 -----------
 intl/msg_hash_es.h    | 12 -----------
 intl/msg_hash_fr.h    | 12 -----------
 intl/msg_hash_it.h    | 12 -----------
 intl/msg_hash_pt_br.h | 12 -----------
 intl/msg_hash_ru.h    | 12 -----------
 intl/msg_hash_tr.h    | 12 -----------
 intl/msg_hash_uk.h    | 12 -----------
 intl/msg_hash_us.h    | 24 +++++++++++-----------
 menu/menu_explore.c   | 47 ++++++++++++++++++++++++++-----------------
 msg_hash.h            |  6 +++---
 11 files changed, 43 insertions(+), 130 deletions(-)

diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h
index 0e6c11531e..886e003f45 100644
--- a/intl/msg_hash_chs.h
+++ b/intl/msg_hash_chs.h
@@ -5297,22 +5297,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "搜索名称..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "按"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "条目"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "显示全部"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "选择"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "附加过滤器"
diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h
index 4c35421f2e..23de099f48 100644
--- a/intl/msg_hash_es.h
+++ b/intl/msg_hash_es.h
@@ -5485,22 +5485,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Buscar nombre..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "Por"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Elementos"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Mostrar todo"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Seleccionar"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Filtro adicional"
diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h
index 5ba90bcf73..529f1a6325 100644
--- a/intl/msg_hash_fr.h
+++ b/intl/msg_hash_fr.h
@@ -5481,22 +5481,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Rechercher le nom ..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "Par"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Éléments"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Tout afficher"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Sélectionner"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Filtre additionnel"
diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h
index 55a68a1caa..df20933595 100644
--- a/intl/msg_hash_it.h
+++ b/intl/msg_hash_it.h
@@ -5457,22 +5457,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Cerca per Nome ..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "Da"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Elementi"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Mostra Tutto"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Seleziona"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Filtro Aggiuntivo"
diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h
index d13480ff43..6939e84b4a 100644
--- a/intl/msg_hash_pt_br.h
+++ b/intl/msg_hash_pt_br.h
@@ -5461,22 +5461,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Pesquisar nome..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "Por"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Itens"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Mostrar tudo"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Selecionar"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Filtro adicional"
diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h
index dcaca37abf..68a8e57d4f 100644
--- a/intl/msg_hash_ru.h
+++ b/intl/msg_hash_ru.h
@@ -5277,22 +5277,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Поиск по имени..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "От"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Элементы"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Показать всё"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Выбрать"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Дополнительный фильтр"
diff --git a/intl/msg_hash_tr.h b/intl/msg_hash_tr.h
index 81d8a4b372..bb2094ebe7 100644
--- a/intl/msg_hash_tr.h
+++ b/intl/msg_hash_tr.h
@@ -5489,22 +5489,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "İsim Ara..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "Oluşturan"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Ögeler"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Tümünü Göster"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Seç"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Ek Filtre"
diff --git a/intl/msg_hash_uk.h b/intl/msg_hash_uk.h
index 54af8f9b1d..95d84972b4 100644
--- a/intl/msg_hash_uk.h
+++ b/intl/msg_hash_uk.h
@@ -2961,22 +2961,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Пошук за назвою..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "За"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Елементи"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Показати всі"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Вибрати"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ALL,
    "Усi"
diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h
index 0b41554145..b0a254f869 100644
--- a/intl/msg_hash_us.h
+++ b/intl/msg_hash_us.h
@@ -5557,22 +5557,10 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
    "Search Name ..."
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   "By"
-   )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
-   "Items"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
    "Show All"
    )
-MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
-   "Select"
-   )
 MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    "Additional Filter"
@@ -5585,6 +5573,18 @@ MSG_HASH(
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADD_ADDITIONAL_FILTER,
    "Add Additional Filter"
    )
+MSG_HASH(
+   MENU_ENUM_LABEL_VALUE_EXPLORE_BY_CATEGORY,
+   "By %s"
+   )
+MSG_HASH(
+   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEM_COUNT,
+   "%u Items"
+   )
+MSG_HASH(
+   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT_CATEGORY,
+   "Select %s"
+   )
 
 /* Playlist > Playlist Item */
 
diff --git a/menu/menu_explore.c b/menu/menu_explore.c
index f16025d7f7..8cf02d01df 100644
--- a/menu/menu_explore.c
+++ b/menu/menu_explore.c
@@ -1000,6 +1000,7 @@ unsigned menu_displaylist_explore(file_list_t *list)
       for (cat = 0; cat < EXPLORE_CAT_COUNT; cat++)
       {
          explore_string_t **entries = explore_state->by[cat];
+         int tmplen;
 
          if (!EX_BUF_LEN(entries))
             continue;
@@ -1008,21 +1009,26 @@ unsigned menu_displaylist_explore(file_list_t *list)
             if (stack_top[i].type == cat + EXPLORE_TYPE_FIRSTCATEGORY)
                goto SKIP_EXPLORE_BY_CATEGORY;
 
-         if (!is_top)
-            snprintf(tmp, sizeof(tmp), "%s %s",
-                  msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_BY),
-                  msg_hash_to_str(explore_by_info[cat].name_enum));
-         else if (explore_by_info[cat].is_numeric)
-            snprintf(tmp, sizeof(tmp), "%s %s (%s - %s)",
-                  msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_BY),
-                  msg_hash_to_str(explore_by_info[cat].name_enum),
-                  entries[0]->str, entries[EX_BUF_LEN(entries) - 1]->str);
-         else
-            snprintf(tmp, sizeof(tmp), "%s %s (%u %s)",
-                  msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_BY),
-                  msg_hash_to_str(explore_by_info[cat].name_enum),
-                  (unsigned)EX_BUF_LEN(entries),
-                  msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS));
+         tmplen = snprintf(tmp, sizeof(tmp),
+               msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_BY_CATEGORY),
+               msg_hash_to_str(explore_by_info[cat].name_enum));
+
+         if (is_top && tmplen >= 0 && tmplen < sizeof(tmp) - 5)
+         {
+            if (explore_by_info[cat].is_numeric)
+            {
+               snprintf(tmp + tmplen, sizeof(tmp) - tmplen, " (%s - %s)",
+                     entries[0]->str, entries[EX_BUF_LEN(entries) - 1]->str);
+            }
+            else
+            {
+               strlcat(tmp, " (", sizeof(tmp));
+               snprintf(tmp + tmplen + 2, sizeof(tmp) - tmplen - 2,
+                     msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_ITEM_COUNT),
+                     (unsigned)EX_BUF_LEN(entries));
+               strlcat(tmp, ")", sizeof(tmp));
+            }
+         }
 
          explore_menu_entry(list, explore_state,
                tmp, cat + EXPLORE_TYPE_FIRSTCATEGORY);
@@ -1057,8 +1063,8 @@ SKIP_EXPLORE_BY_CATEGORY:;
                msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNKNOWN), EXPLORE_TYPE_FILTERNULL);
       }
 
-      explore_append_title(explore_state, "%s %s",
-            msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT),
+      explore_append_title(explore_state,
+            msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT_CATEGORY),
             msg_hash_to_str(explore_by_info[current_cat].name_enum));
    }
    else if (
@@ -1081,9 +1087,12 @@ SKIP_EXPLORE_BY_CATEGORY:;
 
       /* List filtered items in a selected explore by category */
       if (is_filtered_category)
-         explore_append_title(explore_state, " - %s %s",
-               msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT),
+      {
+         explore_append_title(explore_state, " - ");
+         explore_append_title(explore_state,
+               msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT_CATEGORY),
                msg_hash_to_str(explore_by_info[current_cat].name_enum));
+      }
       else
       {
          /* Game list */
diff --git a/msg_hash.h b/msg_hash.h
index 008b45962e..7e1ba6c689 100644
--- a/msg_hash.h
+++ b/msg_hash.h
@@ -1868,13 +1868,13 @@ enum msg_hash_enums
    MENU_ENUM_LABEL_VALUE_EXPLORE_CATEGORY_REGION,
    MENU_ENUM_LABEL_VALUE_EXPLORE_CATEGORY_TAGS,
    MENU_ENUM_LABEL_VALUE_EXPLORE_SEARCH_NAME,
-   MENU_ENUM_LABEL_VALUE_EXPLORE_BY,
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS,
    MENU_ENUM_LABEL_VALUE_EXPLORE_SHOW_ALL,
-   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT,
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADDITIONAL_FILTER,
    MENU_ENUM_LABEL_VALUE_EXPLORE_ALL,
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADD_ADDITIONAL_FILTER,
+   MENU_ENUM_LABEL_VALUE_EXPLORE_BY_CATEGORY,
+   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEM_COUNT,
+   MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT_CATEGORY,
 
    /* Content information settings */
    MENU_LABEL(CONTENT_INFO_LABEL),

From e26a9db3de90382eaf2c6dca483c96c27d743a40 Mon Sep 17 00:00:00 2001
From: Bernhard Schelling <14200249+schellingb@users.noreply.github.com>
Date: Sun, 2 Aug 2020 05:09:39 +0900
Subject: [PATCH 2/2] Change "ITEM_COUNT" to "ITEMS_COUNT"

---
 intl/msg_hash_us.h  | 2 +-
 menu/menu_explore.c | 2 +-
 msg_hash.h          | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h
index b0a254f869..1ebaa0fcab 100644
--- a/intl/msg_hash_us.h
+++ b/intl/msg_hash_us.h
@@ -5578,7 +5578,7 @@ MSG_HASH(
    "By %s"
    )
 MSG_HASH(
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEM_COUNT,
+   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS_COUNT,
    "%u Items"
    )
 MSG_HASH(
diff --git a/menu/menu_explore.c b/menu/menu_explore.c
index 8cf02d01df..b448678bb6 100644
--- a/menu/menu_explore.c
+++ b/menu/menu_explore.c
@@ -1024,7 +1024,7 @@ unsigned menu_displaylist_explore(file_list_t *list)
             {
                strlcat(tmp, " (", sizeof(tmp));
                snprintf(tmp + tmplen + 2, sizeof(tmp) - tmplen - 2,
-                     msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_ITEM_COUNT),
+                     msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS_COUNT),
                      (unsigned)EX_BUF_LEN(entries));
                strlcat(tmp, ")", sizeof(tmp));
             }
diff --git a/msg_hash.h b/msg_hash.h
index 7e1ba6c689..fedc4ea9dd 100644
--- a/msg_hash.h
+++ b/msg_hash.h
@@ -1873,7 +1873,7 @@ enum msg_hash_enums
    MENU_ENUM_LABEL_VALUE_EXPLORE_ALL,
    MENU_ENUM_LABEL_VALUE_EXPLORE_ADD_ADDITIONAL_FILTER,
    MENU_ENUM_LABEL_VALUE_EXPLORE_BY_CATEGORY,
-   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEM_COUNT,
+   MENU_ENUM_LABEL_VALUE_EXPLORE_ITEMS_COUNT,
    MENU_ENUM_LABEL_VALUE_EXPLORE_SELECT_CATEGORY,
 
    /* Content information settings */