summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ULocale.pas10
1 files changed, 9 insertions, 1 deletions
diff --git a/ULocale.pas b/ULocale.pas
index 78ee58e..8f81ecc 100644
--- a/ULocale.pas
+++ b/ULocale.pas
@@ -302,8 +302,16 @@ begin
if Length(Trim(Lang)) = 0 then Lang := GetEnvironmentVariable('LANG');
if Length(Trim(Lang)) = 0 then Lang := 'en_US'; // Default language
end else Lang := ForceLocale;
- if Length(Trim(Lang)) >= 2 then Lang := AnsiUpperCase(Copy(Lang, 1, 2));
+ Lang := Trim(AnsiUpperCase(Lang));
LangIdx := LookupLanguages;
+ if (LangIdx = -1) and (Length(Lang) > 5) then begin
+ Lang := Copy(Lang, 1, 5);
+ LangIdx := LookupLanguages;
+ end;
+ if (LangIdx = -1) and (Length(Lang) > 2) then begin
+ Lang := Copy(Lang, 1, 2);
+ LangIdx := LookupLanguages;
+ end;
if LangIdx = -1 then begin
Lang := 'EN';
LangIdx := LookupLanguages;