⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jvgnugettext.pas

📁 East make Tray Icon in delphi
💻 PAS
📖 第 1 页 / 共 5 页
字号:
var
  Data: PTypeData;
begin
  Result := 0;
  PropList := nil;
  if (AObject.ClassInfo <> nil) then
  begin
    Data := GetTypeData(AObject.ClassInfo);
    Result := Data^.PropCount;
    if Result > 0 then
    begin
      GetMem(PropList, Result * SizeOf(PPropInfo));
      GetPropInfos(AObject.ClassInfo, PropList);
    end;
  end;
end;
{$endif}

function ResourceStringGettext(const MsgId: WideString): WideString;
var
  i: Integer;
begin
  if (MsgId = '') or (ResourceStringDomainListCS = nil) then
  begin
    // This only happens during very complicated program startups that fail
    // or when MsgId=''
    Result := MsgId;
    Exit;
  end;
  ResourceStringDomainListCS.BeginRead;
  try
    for i := 0 to ResourceStringDomainList.Count - 1 do
    begin
      Result := dgettext(ResourceStringDomainList.Strings[i], MsgId); 
      if Result <> MsgId then
        Break; 
    end; 
  finally
    ResourceStringDomainListCS.EndRead; 
  end; 
end; 

{$ifndef DELPHI5OROLDER}
function gettext(const szMsgId: AnsiString): WideString;
begin
  Result := DefaultInstance.gettext(szMsgId);
end;
{$endif}

function gettext(const szMsgId: WideString): WideString; 
begin
  Result := DefaultInstance.gettext(szMsgId); 
end; 

{$ifndef DELPHI5OROLDER}
function _(const szMsgId: AnsiString): WideString;
begin
  Result := DefaultInstance.gettext(szMsgId);
end;
{$endif}

function _(const szMsgId: WideString): WideString; 
begin
  Result := DefaultInstance.gettext(szMsgId); 
end;

{$ifndef DELPHI5OROLDER}
function dgettext(const szDomain: string; const szMsgId: AnsiString): WideString;
begin
  Result := DefaultInstance.dgettext(szDomain, szMsgId);
end;
{$endif}

function dgettext(const szDomain: string; const szMsgId: WideString): WideString;
begin
  Result := DefaultInstance.dgettext(szDomain, szMsgId);
end;

{$ifndef DELPHI5OROLDER}
function dngettext(const szDomain: string; const singular, plural: AnsiString;
  Number: Longint): WideString;
begin
  Result := DefaultInstance.dngettext(szDomain, singular, plural, Number);
end;
{$endif}

function dngettext(const szDomain: string; const singular, plural: WideString;
  Number: Longint): WideString;
begin
  Result := DefaultInstance.dngettext(szDomain, singular, plural, Number);
end;

{$ifndef DELPHI5OROLDER}
function ngettext(const singular, plural: AnsiString; Number: Longint): WideString;
begin
  Result := DefaultInstance.ngettext(singular, plural, Number);
end;
{$endif}

function ngettext(const singular, plural: WideString; Number: Longint): WideString;
begin
  Result := DefaultInstance.ngettext(singular, plural, Number);
end; 

procedure textdomain(const szDomain: string);
begin
  DefaultInstance.textdomain(szDomain);
end; 

{not used}
{
procedure SetGettextEnabled(Enabled: Boolean);
begin
  DefaultInstance.Enabled := Enabled;
end;
}

function getcurrenttextdomain: string;
begin
  Result := DefaultInstance.getcurrenttextdomain;
end; 

procedure bindtextdomain(const szDomain, szDirectory: string);
begin
  DefaultInstance.bindtextdomain(szDomain, szDirectory);
end;

procedure TP_Ignore(AnObject: TObject; const Name: AnsiString);
begin
  DefaultInstance.TP_Ignore(AnObject, Name); 
end; 

procedure TP_GlobalIgnoreClass(IgnClass: TClass); 
begin
  DefaultInstance.TP_GlobalIgnoreClass(IgnClass); 
end; 

procedure TP_IgnoreClass(IgnClass: TClass);
begin
  DefaultInstance.TP_IgnoreClass(IgnClass); 
end; 

procedure TP_IgnoreClassProperty(IgnClass: TClass; const PropertyName: AnsiString); 
begin
  DefaultInstance.TP_IgnoreClassProperty(IgnClass, PropertyName);
end; 

procedure TP_GlobalIgnoreClassProperty(IgnClass: TClass; const PropertyName: AnsiString);
begin
  DefaultInstance.TP_GlobalIgnoreClassProperty(IgnClass, PropertyName);
end; 

procedure TP_GlobalHandleClass(HClass: TClass; Handler: TTranslator); 
begin
  DefaultInstance.TP_GlobalHandleClass(HClass, Handler); 
end; 

{not used}
{
procedure TranslateProperties(AnObject: TObject; TextDomain: AnsiString = '');
begin
  DefaultInstance.TranslateProperties(AnObject, TextDomain);
end;
} 

procedure TranslateComponent(AnObject: TComponent; const TextDomain: string = '');
begin
  DefaultInstance.TranslateComponent(AnObject, TextDomain);
end;

procedure RetranslateComponent(AnObject: TComponent; const TextDomain: string = '');
begin
  DefaultInstance.RetranslateComponent(AnObject, TextDomain); 
end; 

{$ifdef MSWINDOWS}

// These constants are only used in Windows 95
// Thanks to Frank Andreas de Groot for this table
const
  IDAfrikaans = $0436;
  IDAlbanian = $041C;
  IDArabicAlgeria = $1401;
  IDArabicBahrain = $3C01;
  IDArabicEgypt = $0C01;
  IDArabicIraq = $0801;
  IDArabicJordan = $2C01;
  IDArabicKuwait = $3401;
  IDArabicLebanon = $3001;
  IDArabicLibya = $1001;
  IDArabicMorocco = $1801;
  IDArabicOman = $2001;
  IDArabicQatar = $4001;
  IDArabic = $0401;
  IDArabicSyria = $2801;
  IDArabicTunisia = $1C01;
  IDArabicUAE = $3801;
  IDArabicYemen = $2401;
  IDArmenian = $042B;
  IDAssamese = $044D;
  IDAzeriCyrillic = $082C;
  IDAzeriLatin = $042C;
  IDBasque = $042D;
  IDByelorussian = $0423;
  IDBengali = $0445;
  IDBulgarian = $0402; 
  IDBurmese = $0455;  
  IDCatalan = $0403; 
  IDChineseHongKong = $0C04;  
  IDChineseMacao = $1404; 
  IDSimplifiedChinese = $0804;  
  IDChineseSingapore = $1004; 
  IDTraditionalChinese = $0404;  
  IDCroatian = $041A;
  IDCzech = $0405;
  IDDanish = $0406; 
  IDBelgianDutch = $0813;  
  IDDutch = $0413; 
  IDEnglishAUS = $0C09;  
  IDEnglishBelize = $2809; 
  IDEnglishCanadian = $1009;  
  IDEnglishCaribbean = $2409; 
  IDEnglishIreland = $1809;  
  IDEnglishJamaica = $2009; 
  IDEnglishNewZealand = $1409;  
  IDEnglishPhilippines = $3409; 
  IDEnglishSouthAfrica = $1C09;  
  IDEnglishTrinidad = $2C09; 
  IDEnglishUK = $0809;  
  IDEnglishUS = $0409; 
  IDEnglishZimbabwe = $3009;
  IDEstonian = $0425; 
  IDFaeroese = $0438;  
  IDFarsi = $0429; 
  IDFinnish = $040B;  
  IDBelgianFrench = $080C; 
  IDFrenchCameroon = $2C0C;
  IDFrenchCanadian = $0C0C; 
  IDFrenchCotedIvoire = $300C;  
  IDFrench = $040C; 
  IDFrenchLuxembourg = $140C;  
  IDFrenchMali = $340C; 
  IDFrenchMonaco = $180C;  
  IDFrenchReunion = $200C; 
  IDFrenchSenegal = $280C;  
  IDSwissFrench = $100C; 
  IDFrenchWestIndies = $1C0C;  
  IDFrenchZaire = $240C; 
  IDFrisianNetherlands = $0462;  
  IDGaelicIreland = $083C; 
  IDGaelicScotland = $043C;
  IDGalician = $0456;
  IDGeorgian = $0437;  
  IDGermanAustria = $0C07; 
  IDGerman = $0407;  
  IDGermanLiechtenstein = $1407; 
  IDGermanLuxembourg = $1007;  
  IDSwissGerman = $0807; 
  IDGreek = $0408;  
  IDGujarati = $0447; 
  IDHebrew = $040D;  
  IDHindi = $0439; 
  IDHungarian = $040E;
  IDIcelandic = $040F; 
  IDIndonesian = $0421;  
  IDItalian = $0410; 
  IDSwissItalian = $0810;  
  IDJapanese = $0411; 
  IDKannada = $044B;
  IDKashmiri = $0460; 
  IDKazakh = $043F;  
  IDKhmer = $0453; 
  IDKirghiz = $0440;  
  IDKonkani = $0457; 
  IDKorean = $0412;  
  IDLao = $0454; 
  IDLatvian = $0426;  
  IDLithuanian = $0427; 
  IDMacedonian = $042F;  
  IDMalaysian = $043E; 
  IDMalayBruneiDarussalam = $083E;  
  IDMalayalam = $044C; 
  IDMaltese = $043A;  
  IDManipuri = $0458; 
  IDMarathi = $044E;  
  IDMongolian = $0450; 
  IDNepali = $0461;  
  IDNorwegianBokmol = $0414;
  IDNorwegianNynorsk = $0814;
  IDOriya = $0448; 
  IDPolish = $0415;  
  IDBrazilianPortuguese = $0416; 
  IDPortuguese = $0816;  
  IDPunjabi = $0446; 
  IDRhaetoRomanic = $0417;
  IDRomanianMoldova = $0818; 
  IDRomanian = $0418;  
  IDRussianMoldova = $0819; 
  IDRussian = $0419;  
  IDSamiLappish = $043B; 
  IDSanskrit = $044F;
  IDSerbianCyrillic = $0C1A; 
  IDSerbianLatin = $081A;  
  IDSesotho = $0430; 
  IDSindhi = $0459;  
  IDSlovak = $041B; 
  IDSlovenian = $0424;  
  IDSorbian = $042E; 
  IDSpanishArgentina = $2C0A;  
  IDSpanishBolivia = $400A; 
  IDSpanishChile = $340A;  
  IDSpanishColombia = $240A; 
  IDSpanishCostaRica = $140A;  
  IDSpanishDominicanRepublic = $1C0A; 
  IDSpanishEcuador = $300A;  
  IDSpanishElSalvador = $440A; 
  IDSpanishGuatemala = $100A;  
  IDSpanishHonduras = $480A; 
  IDMexicanSpanish = $080A;  
  IDSpanishNicaragua = $4C0A; 
  IDSpanishPanama = $180A;  
  IDSpanishParaguay = $3C0A; 
  IDSpanishPeru = $280A;  
  IDSpanishPuertoRico = $500A; 
  IDSpanishModernSort = $0C0A;
  IDSpanish = $040A;
  IDSpanishUruguay = $380A;
  IDSpanishVenezuela = $200A; 
  IDSutu = $0430;  
  IDSwahili = $0441; 
  IDSwedishFinland = $081D;  
  IDSwedish = $041D; 
  IDTajik = $0428;
  IDTamil = $0449; 
  IDTatar = $0444;  
  IDTelugu = $044A; 
  IDThai = $041E;  
  IDTibetan = $0451; 
  IDTsonga = $0431;  
  IDTswana = $0432; 
  IDTurkish = $041F;  
  IDTurkmen = $0442; 
  IDUkrainian = $0422;  
  IDUrdu = $0420; 
  IDUzbekCyrillic = $0843;  
  IDUzbekLatin = $0443; 
  IDVenda = $0433;  
  IDVietnamese = $042A; 
  IDWelsh = $0452;  
  IDXhosa = $0434; 
  IDZulu = $0435; 

function GetOSLanguage: AnsiString; 
var
  langid: Cardinal; 
  LangCode: AnsiString;
  CountryName: array[0..4] of AnsiChar;
  LanguageName: array[0..4] of AnsiChar; 
  works: Boolean;
begin
  // The return value of GetLocaleInfo is compared with 3 = 2 characters and a zero
  works := 3 = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME,
    LanguageName, SizeOf(LanguageName));
  works := works and (3 = GetLocaleInfo(LOCALE_USER_DEFAULT,
    LOCALE_SISO3166CTRYNAME, CountryName,
    SizeOf(CountryName)));
  if works then
  begin
    // Windows 98, Me, NT4, 2000, XP and newer
    LangCode := PChar(@LanguageName[0]) + '_' + PChar(@CountryName[0]);
  end
  else
  begin
    // This part should only happen on Windows 95.
    langid := GetThreadLocale;
    case langid of
      IDBelgianDutch: LangCode := 'nl_BE';
      IDBelgianFrench: LangCode := 'fr_BE';
      IDBrazilianPortuguese: LangCode := 'pt_BR';
      IDDanish: LangCode := 'da_DK';
      IDDutch: LangCode := 'nl_NL';
      IDEnglishUK: LangCode := 'en_GB';
      IDEnglishUS: LangCode := 'en_US';
      IDFinnish: LangCode := 'fi_FI';
      IDFrench: LangCode := 'fr_FR';
      IDFrenchCanadian: LangCode := 'fr_CA';
      IDGerman: LangCode := 'de_DE';
      IDGermanLuxembourg: LangCode := 'de_LU';
      IDGreek: LangCode := 'gr_GR';
      IDIcelandic: LangCode := 'is_IS';
      IDItalian: LangCode := 'it_IT';
      IDKorean: LangCode := 'ko_KO';
      IDNorwegianBokmol: LangCode := 'nb_NO';
      IDNorwegianNynorsk: LangCode := 'nn_NO';
      IDPolish: LangCode := 'pl_PL'; 
      IDPortuguese: LangCode := 'pt_PT'; 
      IDRussian: LangCode := 'ru_RU'; 
      IDSpanish, IDSpanishModernSort: LangCode := 'es_ES'; 
      IDSwedish: LangCode := 'sv_SE';
      IDSwedishFinland: LangCode := 'sv_FI';
    else
      LangCode := 'C';
    end; 
  end; 
  Result := LangCode; 
end; 
{$endif}

{$ifdef CLR}
function GetOSLanguage: string;
var
  p: Integer;
begin
  Result := CultureInfo.get_CurrentCulture.ToString;
  p := Pos('-', Result);
  if p <> 0 then
    Result[p] := '_';
end;
{$endif}

{$ifdef LINUX}
function GetOSLanguage: AnsiString;
begin
  Result := '';
end;
{$endif}

{$ifndef CLR}
function LoadResStringA(ResStringRec: PResStringRec): string;
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -