From 63729cce195207b7c7fc988257977a9fe234b63d Mon Sep 17 00:00:00 2001
From: Leon Styhre <leon@leonstyhre.com>
Date: Tue, 2 Jul 2024 18:04:42 +0200
Subject: [PATCH] (Android) Added localization support

---
 CMakeLists.txt                         | 2 ++
 es-core/src/utils/LocalizationUtil.cpp | 8 +++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f01a7d11..f92236790 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -498,6 +498,7 @@ elseif(ANDROID)
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/ffmpeg-kit/src/ffmpeg
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/freeimage/FreeImage/Source
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/freetype/include
+                            ${CMAKE_CURRENT_SOURCE_DIR}/external/gettext/gettext-runtime/intl
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/libgit2/include
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/pugixml/src
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/SDL_Android)
@@ -580,6 +581,7 @@ elseif(ANDROID)
                         ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libfreeimage.so
                         ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libfreetype.so
                         ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libgit2.so
+                        ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libintl.so
                         ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libjpeg.so
                         ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libpoppler.so
                         ${PROJECT_SOURCE_DIR}/android/libs/${ANDROID_CPU_ARCH}/libpugixml.a
diff --git a/es-core/src/utils/LocalizationUtil.cpp b/es-core/src/utils/LocalizationUtil.cpp
index bfaedbae3..5cf3d2815 100644
--- a/es-core/src/utils/LocalizationUtil.cpp
+++ b/es-core/src/utils/LocalizationUtil.cpp
@@ -70,8 +70,13 @@ namespace Utils
             }
 
             // No need to perform translations if we're using the default language.
-            if (locale == "en_US")
+            if (locale == "en_US") {
+                setenv("LANGUAGE", locale.c_str(), 1);
+                setenv("LANG", locale.c_str(), 1);
+                setlocale(LC_MESSAGES, std::string {locale + ".UTF-8"}.c_str());
+                textdomain(locale.c_str());
                 return;
+            }
 
             std::string localePath;
             localePath.append("/")
@@ -97,6 +102,7 @@ namespace Utils
             SetThreadLocale(localeID);
 #else
             setenv("LANGUAGE", locale.c_str(), 1);
+            setenv("LANG", locale.c_str(), 1);
             setlocale(LC_MESSAGES, std::string {locale + ".UTF-8"}.c_str());
 #endif
             textdomain(locale.c_str());