40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| unit cde_lang;
 | |
| {$mode delphi}
 | |
| {$codepage UTF8}
 | |
| interface
 | |
| uses Classes, SysUtils, VersionControl, SimplyJSON, cde_dir;
 | |
| type TCDELanguageInfo = packed record
 | |
|  liName, liAuthor: string;
 | |
|  liVersion, liCDEVersion: TVersionInfo;
 | |
|  end;
 | |
| {stdcalls}
 | |
| function GetLanguage: String; STDCALL;
 | |
| function GetLocalizedString (const AMessageID: String): String; OVERLOAD; STDCALL;
 | |
| function GetLanguageInfo (const ALanguageName: String): TCDELanguageInfo; STDCALL;
 | |
| {Language consts}
 | |
| //{$I cde_lang_const.inc}
 | |
| implementation
 | |
| function GetLanguage: String;
 | |
| begin
 | |
| Result:= JSReadString('/general/language', 'russian', GetCDEPath + 'configs\configs.json');
 | |
| end;
 | |
| function GetLocalizedString (const AMessageID: String): String;
 | |
| begin
 | |
| Result:= JSReadString(AMessageID, 'String_is_not_localized...', GetCDEPath + 'languages\' + GetLanguage + '.json');
 | |
| end;
 | |
| function GetLanguageInfo (const ALanguageName: String): TCDELanguageInfo;
 | |
| const CDefStr: String = '<Undefined>';
 | |
|       CDefVersion: String = '0.0.0.0';
 | |
| var FileName: string;
 | |
| begin
 | |
| FileName:= GetCDEPath + 'languages\' + ALanguageName + '.json';
 | |
| with Result do
 | |
|  begin
 | |
|  liName:= JSReadString('/languageinfo/name', CDefStr, FileName);
 | |
|  liAuthor:= JSReadString('/languageinfo/author', CDefStr, FileName);
 | |
|  liVersion:= StrToVersionInfo(JSReadString('/languageinfo/version', CDefVersion, FileName));
 | |
|  liCDEVersion:= StrToVersionInfo(JSReadString('/languageinfo/cde_version', CDefVersion, FileName));
 | |
|  end;
 | |
| end;
 | |
| end.
 |