From f500ef15ffc04b4d4093d982b51bda92a5ddf385 Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Fri, 26 Jun 2015 11:43:11 +0200
Subject: [PATCH] (Menu) Make language labels translatable too

---
 menu/intl/menu_hash_us.c | 26 ++++++++++++++++++++++++++
 menu/menu_hash.h         | 14 ++++++++++++++
 menu/menu_setting.c      | 30 +++++++++++++++---------------
 3 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c
index 1ef3ea33fa..164b92760d 100644
--- a/menu/intl/menu_hash_us.c
+++ b/menu/intl/menu_hash_us.c
@@ -1368,6 +1368,32 @@ const char *menu_hash_to_str_us(uint32_t hash)
          return "No information is available.";
       case MENU_LABEL_VALUE_INPUT_USER_BINDS:
          return "Input User %u Binds";
+      case MENU_VALUE_LANG_ENGLISH:
+         return "English";
+      case MENU_VALUE_LANG_JAPANESE:
+         return "Japanese";
+      case MENU_VALUE_LANG_FRENCH:
+         return "French";
+      case MENU_VALUE_LANG_SPANISH:
+         return "Spanish";
+      case MENU_VALUE_LANG_GERMAN:
+         return "German";
+      case MENU_VALUE_LANG_ITALIAN:
+         return "Italian";
+      case MENU_VALUE_LANG_DUTCH:
+         return "Dutch";
+      case MENU_VALUE_LANG_PORTUGUESE:
+         return "Portuguese";
+      case MENU_VALUE_LANG_RUSSIAN:
+         return "Russian";
+      case MENU_VALUE_LANG_KOREAN:
+         return "Korean";
+      case MENU_VALUE_LANG_CHINESE_TRADITIONAL:
+         return "Chinese (Traditional)";
+      case MENU_VALUE_LANG_CHINESE_SIMPLIFIED:
+         return "Chinese (Simplified)";
+      case MENU_VALUE_LANG_ESPERANTO:
+         return "Esperanto";
       default:
          break;
    }
diff --git a/menu/menu_hash.h b/menu/menu_hash.h
index a786056ddd..bdd6e4bc7f 100644
--- a/menu/menu_hash.h
+++ b/menu/menu_hash.h
@@ -928,6 +928,20 @@ extern "C" {
 #define MENU_VALUE_DISABLED                                                    0xe326e01dU
 #define MENU_VALUE_PORT                                                        0x7c8ad52aU
 
+#define MENU_VALUE_LANG_ENGLISH                                                0xcb4e554fU
+#define MENU_VALUE_LANG_JAPANESE                                               0xfde6f60cU
+#define MENU_VALUE_LANG_FRENCH                                                 0xb3704d9bU
+#define MENU_VALUE_LANG_SPANISH                                                0x053c7edbU
+#define MENU_VALUE_LANG_GERMAN                                                 0xb4e1541fU
+#define MENU_VALUE_LANG_ITALIAN                                                0x0cc9a6c7U
+#define MENU_VALUE_LANG_DUTCH                                                  0x0d0fa55dU
+#define MENU_VALUE_LANG_PORTUGUESE                                             0x2a19df58U
+#define MENU_VALUE_LANG_RUSSIAN                                                0xc53481eaU
+#define MENU_VALUE_LANG_KOREAN                                                 0xbeeac9a5U
+#define MENU_VALUE_LANG_CHINESE_TRADITIONAL                                    0x43f172d0U
+#define MENU_VALUE_LANG_CHINESE_SIMPLIFIED                                     0x1ae5ee5bU
+#define MENU_VALUE_LANG_ESPERANTO                                              0x1a933a76U
+
 #define MENU_VALUE_NONE                                                        0x7c89bbd5U
 
 #define MENU_LABEL_VALUE_NO_INFORMATION_AVAILABLE                              0xbae2c7f6U
diff --git a/menu/menu_setting.c b/menu/menu_setting.c
index 02de3ebd0f..4b5339adca 100644
--- a/menu/menu_setting.c
+++ b/menu/menu_setting.c
@@ -1488,23 +1488,23 @@ static void setting_get_string_representation_uint_autosave_interval(void *data,
 static void setting_get_string_representation_uint_user_language(void *data,
       char *s, size_t len)
 {
-   static const char *modes[] = {
-      "English",
-      "Japanese",
-      "French",
-      "Spanish",
-      "German",
-      "Italian",
-      "Dutch",
-      "Portuguese",
-      "Russian",
-      "Korean",
-      "Chinese (Traditional)",
-      "Chinese (Simplified)",
-      "Esperanto"
-   };
+   const char *modes[RETRO_LANGUAGE_LAST];
    settings_t      *settings = config_get_ptr();
 
+   modes[RETRO_LANGUAGE_ENGLISH]             = menu_hash_to_str(MENU_VALUE_LANG_ENGLISH);
+   modes[RETRO_LANGUAGE_JAPANESE]            = menu_hash_to_str(MENU_VALUE_LANG_JAPANESE);
+   modes[RETRO_LANGUAGE_FRENCH]              = menu_hash_to_str(MENU_VALUE_LANG_FRENCH);
+   modes[RETRO_LANGUAGE_SPANISH]             = menu_hash_to_str(MENU_VALUE_LANG_SPANISH);
+   modes[RETRO_LANGUAGE_GERMAN]              = menu_hash_to_str(MENU_VALUE_LANG_GERMAN);
+   modes[RETRO_LANGUAGE_ITALIAN]             = menu_hash_to_str(MENU_VALUE_LANG_ITALIAN);
+   modes[RETRO_LANGUAGE_DUTCH]               = menu_hash_to_str(MENU_VALUE_LANG_DUTCH);
+   modes[RETRO_LANGUAGE_PORTUGUESE]          = menu_hash_to_str(MENU_VALUE_LANG_PORTUGUESE);
+   modes[RETRO_LANGUAGE_RUSSIAN]             = menu_hash_to_str(MENU_VALUE_LANG_RUSSIAN);
+   modes[RETRO_LANGUAGE_KOREAN]              = menu_hash_to_str(MENU_VALUE_LANG_KOREAN);
+   modes[RETRO_LANGUAGE_CHINESE_TRADITIONAL] = menu_hash_to_str(MENU_VALUE_LANG_CHINESE_TRADITIONAL);
+   modes[RETRO_LANGUAGE_CHINESE_SIMPLIFIED]  = menu_hash_to_str(MENU_VALUE_LANG_CHINESE_SIMPLIFIED);
+   modes[RETRO_LANGUAGE_ESPERANTO]           = menu_hash_to_str(MENU_VALUE_LANG_ESPERANTO);
+
    if (settings)
       strlcpy(s, modes[settings->user_language], len);
 }