projects/aports·blob master · refs

53 lines · 1.5 KiB

1--- a/modules/juce_core/native/juce_SystemStats_linux.cpp
2+++ b/modules/juce_core/native/juce_SystemStats_linux.cpp
3@@ -100,20 +100,37 @@
4 String SystemStats::getUserLanguage()
5 {
6- #if JUCE_BSD
7- if (auto langEnv = getenv ("LANG"))
8- return String::fromUTF8 (langEnv).upToLastOccurrenceOf (".UTF-8", false, true);
9-
10- return {};
11- #else
12- return getLocaleValue (_NL_ADDRESS_LANG_AB);
13- #endif
14+ #if JUCE_BSD || defined(__MUSL__)
15+ if (auto* lang = ::getenv("LANG"))
16+ {
17+ String langStr(lang);
18+ if (langStr.contains("_"))
19+ return langStr.upToFirstOccurrenceOf("_", false, false);
20+ if (langStr.contains("."))
21+ return langStr.upToFirstOccurrenceOf(".", false, false);
22+ return langStr;
23+ }
24+ return "en";
25+ #else
26+ return getLocaleValue (_NL_ADDRESS_LANG_AB);
27+ #endif
28 }
29
30 String SystemStats::getUserRegion()
31 {
32- #if JUCE_BSD
33- return {};
34- #else
35- return getLocaleValue (_NL_ADDRESS_COUNTRY_AB2);
36- #endif
37+ #if JUCE_BSD || defined(__MUSL__)
38+ if (auto* lang = ::getenv("LANG"))
39+ {
40+ String langStr(lang);
41+ if (langStr.contains("_"))
42+ {
43+ auto region = langStr.fromFirstOccurrenceOf("_", false, false);
44+ if (region.contains("."))
45+ return region.upToFirstOccurrenceOf(".", false, false);
46+ return region;
47+ }
48+ }
49+ return "US";
50+ #else
51+ return getLocaleValue (_NL_ADDRESS_COUNTRY_AB2);
52+ #endif
53 }