mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 14:39:20 +02:00
LazUtils, LCL: Trim encoding from found language ID if it presents there (e. g. ru_RU.utf8) in order to always correctly load translation files like project1.ru_RU.po. Based on patch by ACTom, merge request !182.
This commit is contained in:
parent
f6a6366812
commit
42bcafe228
@ -210,6 +210,7 @@ function UTF16ToUTF8(const P: PWideChar; WideCnt: SizeUInt): AnsiString; overloa
|
|||||||
// locale
|
// locale
|
||||||
procedure LazGetLanguageIDs(var Lang, FallbackLang: String);
|
procedure LazGetLanguageIDs(var Lang, FallbackLang: String);
|
||||||
procedure LazGetShortLanguageID(var Lang: String);
|
procedure LazGetShortLanguageID(var Lang: String);
|
||||||
|
procedure LazGetTrimmedLanguageID(var Lang: String);
|
||||||
|
|
||||||
var
|
var
|
||||||
FPUpChars: array[char] of char;
|
FPUpChars: array[char] of char;
|
||||||
@ -4070,6 +4071,7 @@ begin
|
|||||||
{$ELSE}
|
{$ELSE}
|
||||||
GetLanguageIDs(Lang, FallbackLang);
|
GetLanguageIDs(Lang, FallbackLang);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
LazGetTrimmedLanguageID(Lang);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -4090,6 +4092,20 @@ begin
|
|||||||
if Length(Lang) > 2 then Lang := Lang[1] + Lang[2];
|
if Length(Lang) > 2 then Lang := Lang[1] + Lang[2];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
|
Language ID sometimes can be in a form of `ru_RU.utf8`, which will prevent
|
||||||
|
loading files with language in a form of `.ru_RU.po`.
|
||||||
|
This procedure trims this encoding.
|
||||||
|
}
|
||||||
|
procedure LazGetTrimmedLanguageID(var Lang: String);
|
||||||
|
var
|
||||||
|
p: SizeInt;
|
||||||
|
begin
|
||||||
|
p := Pos('.', Lang);
|
||||||
|
if p > 0 then
|
||||||
|
Lang := Copy(Lang, 1, p - 1);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure InitFPUpchars;
|
procedure InitFPUpchars;
|
||||||
var
|
var
|
||||||
c: Char;
|
c: Char;
|
||||||
|
@ -120,6 +120,10 @@ begin
|
|||||||
|
|
||||||
if Lang = '' then
|
if Lang = '' then
|
||||||
LazGetLanguageIDs(Lang, T);
|
LazGetLanguageIDs(Lang, T);
|
||||||
|
|
||||||
|
//Trim encoding from Lang if it presents. E. g. Lang can be `ru_RU.utf8`.
|
||||||
|
if Lang <> '' then
|
||||||
|
LazGetTrimmedLanguageID(Lang);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function FindLocaleFileName(LCExt, LangID, Dir, LocaleFileName: string; out FoundLang: string): string;
|
function FindLocaleFileName(LCExt, LangID, Dir, LocaleFileName: string; out FoundLang: string): string;
|
||||||
|
Loading…
Reference in New Issue
Block a user