mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 04:56:02 +02:00
Translation: Fix #40495: auto language detection on MacOS (various WS)
This commit is contained in:
parent
a2d2cbc5dd
commit
cbf1dcc616
@ -225,6 +225,11 @@ uses
|
||||
Windows;
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF DARWIN}
|
||||
uses
|
||||
MacOSAll, Unix;
|
||||
{$ENDIF}
|
||||
|
||||
function IsKey(Txt, Key: PChar): boolean;
|
||||
begin
|
||||
if Txt=nil then exit(false);
|
||||
@ -1907,5 +1912,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{$IFDEF DARWIN}
|
||||
function setenv(const name:PAnsiChar; const value:PAnsiChar; overwrite:cint): cint; cdecl; external clib;
|
||||
|
||||
procedure FIX_MACOS_LANG_ENV_VAR;
|
||||
var
|
||||
cfLang: CFPropertyListRef;
|
||||
lang: array[0..49] of char;
|
||||
begin
|
||||
cfLang:= CFPreferencesCopyAppValue( CFSTR('AppleLocale'), CFSTR('') );
|
||||
if not Assigned(cfLang) then
|
||||
exit;
|
||||
CFStringGetCString( cfLang, lang, SizeOf(lang), kCFStringEncodingUTF8 );
|
||||
setenv( 'LANG', lang, 0 );
|
||||
CFRelease( cfLang );
|
||||
end;
|
||||
|
||||
initialization
|
||||
FIX_MACOS_LANG_ENV_VAR;
|
||||
{$ENDIF}
|
||||
|
||||
end.
|
||||
|
||||
|
@ -8,7 +8,7 @@ interface
|
||||
uses
|
||||
classes,
|
||||
MacOSAll, CocoaAll, Cocoa_Extra,
|
||||
SysUtils, Types, LCLType, LCLClasses, LCLProc, Unix,
|
||||
SysUtils, Types, LCLType, LCLClasses, LCLProc,
|
||||
Graphics, Math, GraphType;
|
||||
|
||||
var
|
||||
@ -147,8 +147,6 @@ function AllocImageRotatedByDegrees(src: NSImage; degrees: double): NSImage;
|
||||
function AllocCursorFromCursorByDegrees(src: NSCursor; degrees: double): NSCursor;
|
||||
|
||||
var
|
||||
NSSTR_AppleLocale: NSString;
|
||||
|
||||
NSSTR_DARK_NAME: NSString;
|
||||
NSSTR_DARK_NAME_VIBRANT: NSString;
|
||||
NSSTR_LINE_FEED: NSString;
|
||||
@ -1260,27 +1258,13 @@ begin
|
||||
img.release;
|
||||
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
|
||||
NSSTR_AppleLocale:= NSSTR('AppleLocale');
|
||||
NSSTR_DARK_NAME:= NSSTR(DarkName);
|
||||
NSSTR_DARK_NAME_VIBRANT:= NSSTR(DarkNameVibrant);
|
||||
NSSTR_LINE_FEED:= NSStr(#10);
|
||||
NSSTR_CARRIAGE_RETURN:= NSStr(#13);
|
||||
NSSTR_LINE_SEPARATOR:= StrToNSString(#$E2#$80#$A8, false);
|
||||
NSSTR_PARAGRAPH_SEPARATOR:= StrToNSString(#$E2#$80#$A9, false);
|
||||
FIX_LANG_ENV_VAR;
|
||||
|
||||
finalization;
|
||||
NSSTR_LINE_SEPARATOR.release;
|
||||
|
Loading…
Reference in New Issue
Block a user