mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 01:28:19 +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
|
||||
procedure LazGetLanguageIDs(var Lang, FallbackLang: String);
|
||||
procedure LazGetShortLanguageID(var Lang: String);
|
||||
procedure LazGetTrimmedLanguageID(var Lang: String);
|
||||
|
||||
var
|
||||
FPUpChars: array[char] of char;
|
||||
@ -4070,6 +4071,7 @@ begin
|
||||
{$ELSE}
|
||||
GetLanguageIDs(Lang, FallbackLang);
|
||||
{$ENDIF}
|
||||
LazGetTrimmedLanguageID(Lang);
|
||||
end;
|
||||
|
||||
{
|
||||
@ -4090,6 +4092,20 @@ begin
|
||||
if Length(Lang) > 2 then Lang := Lang[1] + Lang[2];
|
||||
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;
|
||||
var
|
||||
c: Char;
|
||||
|
@ -120,6 +120,10 @@ begin
|
||||
|
||||
if Lang = '' then
|
||||
LazGetLanguageIDs(Lang, T);
|
||||
|
||||
//Trim encoding from Lang if it presents. E. g. Lang can be `ru_RU.utf8`.
|
||||
if Lang <> '' then
|
||||
LazGetTrimmedLanguageID(Lang);
|
||||
end;
|
||||
|
||||
function FindLocaleFileName(LCExt, LangID, Dir, LocaleFileName: string; out FoundLang: string): string;
|
||||
|
Loading…
Reference in New Issue
Block a user