mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-05-07 07:16:23 +09:00
fix: ignore C locale in system language detection
This commit is contained in:
@@ -7,14 +7,18 @@
|
|||||||
|
|
||||||
namespace gsr {
|
namespace gsr {
|
||||||
std::string Translation::get_system_language() {
|
std::string Translation::get_system_language() {
|
||||||
const char* lang = getenv("LANGUAGE");
|
const char* env_vars[] = { "LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG" };
|
||||||
if (!lang || !lang[0]) lang = getenv("LC_ALL");
|
for (const char* env_var : env_vars) {
|
||||||
if (!lang || !lang[0]) lang = getenv("LC_MESSAGES");
|
const char* lang = getenv(env_var);
|
||||||
if (!lang || !lang[0]) lang = getenv("LANG");
|
if (!lang || !lang[0])
|
||||||
|
continue;
|
||||||
|
|
||||||
if (lang && lang[0]) {
|
|
||||||
std::string lang_str(lang);
|
std::string lang_str(lang);
|
||||||
|
|
||||||
|
// Ignore non-language locales such as C/POSIX and fall back to the next variable
|
||||||
|
if (lang_str == "C" || lang_str == "C.UTF-8" || lang_str == "POSIX")
|
||||||
|
continue;
|
||||||
|
|
||||||
// we usually need only two symbols
|
// we usually need only two symbols
|
||||||
size_t underscore = lang_str.find('_');
|
size_t underscore = lang_str.find('_');
|
||||||
if (underscore != std::string::npos) {
|
if (underscore != std::string::npos) {
|
||||||
|
|||||||
Reference in New Issue
Block a user