mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 05:19:37 +02:00
Cocoa: Fix #40495: auto language detection on MacOS
add LANG environment variable from AppleLocale in GUI APP
This commit is contained in:
parent
2c448bcff5
commit
dbde03d6a3
@ -8,7 +8,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
classes,
|
classes,
|
||||||
MacOSAll, CocoaAll, Cocoa_Extra,
|
MacOSAll, CocoaAll, Cocoa_Extra,
|
||||||
SysUtils, Types, LCLType, LCLClasses, LCLProc,
|
SysUtils, Types, LCLType, LCLClasses, LCLProc, Unix,
|
||||||
Graphics, Math, GraphType;
|
Graphics, Math, GraphType;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -147,6 +147,8 @@ function AllocImageRotatedByDegrees(src: NSImage; degrees: double): NSImage;
|
|||||||
function AllocCursorFromCursorByDegrees(src: NSCursor; degrees: double): NSCursor;
|
function AllocCursorFromCursorByDegrees(src: NSCursor; degrees: double): NSCursor;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
NSSTR_AppleLocale: NSString;
|
||||||
|
|
||||||
NSSTR_DARK_NAME: NSString;
|
NSSTR_DARK_NAME: NSString;
|
||||||
NSSTR_DARK_NAME_VIBRANT: NSString;
|
NSSTR_DARK_NAME_VIBRANT: NSString;
|
||||||
NSSTR_LINE_FEED: NSString;
|
NSSTR_LINE_FEED: NSString;
|
||||||
@ -1258,13 +1260,27 @@ begin
|
|||||||
img.release;
|
img.release;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function setenv(const name:PAnsiChar; const value:PAnsiChar; overwrite:cint): cint; cdecl; external clib;
|
||||||
|
|
||||||
|
procedure FIX_LANG_ENV_VAR;
|
||||||
|
var
|
||||||
|
nsLang: NSString;
|
||||||
|
begin
|
||||||
|
nsLang:= NSUserDefaults.standardUserDefaults.stringForKey( NSSTR_AppleLocale );
|
||||||
|
if not Assigned(nsLang) then
|
||||||
|
exit;
|
||||||
|
setenv( 'LANG', nsLang.UTF8String, 0 );
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
NSSTR_AppleLocale:= NSSTR('AppleLocale');
|
||||||
NSSTR_DARK_NAME:= NSSTR(DarkName);
|
NSSTR_DARK_NAME:= NSSTR(DarkName);
|
||||||
NSSTR_DARK_NAME_VIBRANT:= NSSTR(DarkNameVibrant);
|
NSSTR_DARK_NAME_VIBRANT:= NSSTR(DarkNameVibrant);
|
||||||
NSSTR_LINE_FEED:= NSStr(#10);
|
NSSTR_LINE_FEED:= NSStr(#10);
|
||||||
NSSTR_CARRIAGE_RETURN:= NSStr(#13);
|
NSSTR_CARRIAGE_RETURN:= NSStr(#13);
|
||||||
NSSTR_LINE_SEPARATOR:= StrToNSString(#$E2#$80#$A8, false);
|
NSSTR_LINE_SEPARATOR:= StrToNSString(#$E2#$80#$A8, false);
|
||||||
NSSTR_PARAGRAPH_SEPARATOR:= StrToNSString(#$E2#$80#$A9, false);
|
NSSTR_PARAGRAPH_SEPARATOR:= StrToNSString(#$E2#$80#$A9, false);
|
||||||
|
FIX_LANG_ENV_VAR;
|
||||||
|
|
||||||
finalization;
|
finalization;
|
||||||
NSSTR_LINE_SEPARATOR.release;
|
NSSTR_LINE_SEPARATOR.release;
|
||||||
|
Loading…
Reference in New Issue
Block a user