📄 gnugettext.hpp
字号:
public:
#pragma option push -w-inl
/* TObject.Destroy */ inline __fastcall virtual ~EGGAnsi2WideConvError(void) { }
#pragma option pop
};
typedef void __fastcall (__closure *TOnDebugLine)(System::TObject* Sender, const AnsiString Line, bool &Discard);
typedef int __fastcall (*TGetPluralForm)(int Number);
typedef void __fastcall (__closure *TDebugLogger)(AnsiString line);
class DELPHICLASS TMoFile;
class PASCALIMPLEMENTATION TMoFile : public System::TObject
{
typedef System::TObject inherited;
private:
bool doswap;
public:
int Users;
__fastcall TMoFile(AnsiString filename, __int64 Offset, __int64 Size);
__fastcall virtual ~TMoFile(void);
AnsiString __fastcall gettext(const AnsiString msgid, bool &found);
__property bool isSwappedArchitecture = {read=doswap, nodefault};
private:
unsigned N;
unsigned O;
unsigned T;
int startindex;
int startstep;
unsigned mo;
unsigned momapping;
char *momemoryHandle;
char *momemory;
unsigned __fastcall autoswap32(unsigned i);
unsigned __fastcall CardinalInMem(char * baseptr, unsigned Offset);
};
class DELPHICLASS TDomain;
class PASCALIMPLEMENTATION TDomain : public System::TObject
{
typedef System::TObject inherited;
private:
bool Enabled;
AnsiString vDirectory;
void __fastcall setDirectory(const AnsiString dir);
public:
TDebugLogger DebugLogger;
AnsiString Domain;
__property AnsiString Directory = {read=vDirectory, write=setDirectory};
__fastcall TDomain(void);
__fastcall virtual ~TDomain(void);
void __fastcall SetLanguageCode(const AnsiString langcode);
void __fastcall SetFilename(const AnsiString filename);
void __fastcall GetListOfLanguages(Classes::TStrings* list);
WideString __fastcall GetTranslationProperty(AnsiString Propertyname);
AnsiString __fastcall gettext(const AnsiString msgid);
private:
TMoFile* mofile;
AnsiString SpecificFilename;
AnsiString curlang;
bool OpenHasFailedBefore;
void __fastcall OpenMoFile(void);
void __fastcall CloseMoFile(void);
};
class DELPHICLASS TExecutable;
class PASCALIMPLEMENTATION TExecutable : public System::TObject
{
typedef System::TObject inherited;
public:
virtual void __fastcall Execute(void) = 0 ;
public:
#pragma option push -w-inl
/* TObject.Create */ inline __fastcall TExecutable(void) : System::TObject() { }
#pragma option pop
#pragma option push -w-inl
/* TObject.Destroy */ inline __fastcall virtual ~TExecutable(void) { }
#pragma option pop
};
class DELPHICLASS TGnuGettextInstance;
class PASCALIMPLEMENTATION TGnuGettextInstance : public System::TObject
{
typedef System::TObject inherited;
private:
TOnDebugLine fOnDebugLine;
unsigned CreatorThread;
public:
bool Enabled;
int DesignTimeCodePage;
__fastcall TGnuGettextInstance(void);
__fastcall virtual ~TGnuGettextInstance(void);
void __fastcall UseLanguage(AnsiString LanguageCode);
void __fastcall GetListOfLanguages(const AnsiString domain, Classes::TStrings* list);
virtual WideString __fastcall gettext(const AnsiString szMsgId)/* overload */;
virtual WideString __fastcall gettext(const WideString szMsgId)/* overload */;
virtual WideString __fastcall ngettext(const AnsiString singular, const AnsiString plural, int Number)/* overload */;
virtual WideString __fastcall ngettext(const WideString singular, const WideString plural, int Number)/* overload */;
AnsiString __fastcall GetCurrentLanguage();
WideString __fastcall GetTranslationProperty(const AnsiString Propertyname);
WideString __fastcall GetTranslatorNameAndEmail();
void __fastcall TP_Ignore(System::TObject* AnObject, const AnsiString name);
void __fastcall TP_IgnoreClass(TMetaClass* IgnClass);
void __fastcall TP_IgnoreClassProperty(TMetaClass* IgnClass, AnsiString propertyname);
void __fastcall TP_GlobalIgnoreClass(TMetaClass* IgnClass);
void __fastcall TP_GlobalIgnoreClassProperty(TMetaClass* IgnClass, AnsiString propertyname);
void __fastcall TP_GlobalHandleClass(TMetaClass* HClass, TTranslator Handler);
void __fastcall TranslateProperties(System::TObject* AnObject, AnsiString textdomain = "");
void __fastcall TranslateComponent(Classes::TComponent* AnObject, const AnsiString TextDomain = "");
void __fastcall RetranslateComponent(Classes::TComponent* AnObject, const AnsiString TextDomain = "");
virtual WideString __fastcall dgettext(const AnsiString szDomain, const AnsiString szMsgId)/* overload */;
virtual WideString __fastcall dgettext(const AnsiString szDomain, const WideString szMsgId)/* overload */;
virtual WideString __fastcall dngettext(const AnsiString szDomain, const AnsiString singular, const AnsiString plural, int Number)/* overload */;
virtual WideString __fastcall dngettext(const AnsiString szDomain, const WideString singular, const WideString plural, int Number)/* overload */;
void __fastcall textdomain(const AnsiString szDomain);
AnsiString __fastcall getcurrenttextdomain();
void __fastcall bindtextdomain(const AnsiString szDomain, const AnsiString szDirectory);
void __fastcall bindtextdomainToFile(const AnsiString szDomain, const AnsiString filename);
WideString __fastcall LoadResString(System::PResStringRec ResStringRec);
void __fastcall DebugLogToFile(const AnsiString filename, bool append = false);
void __fastcall DebugLogPause(bool PauseEnabled);
__property TOnDebugLine OnDebugLine = {read=fOnDebugLine, write=fOnDebugLine};
WideString __fastcall ansi2wideDTCP(const AnsiString s);
protected:
void __fastcall TranslateStrings(Classes::TStrings* sl, const AnsiString TextDomain);
virtual void __fastcall WhenNewLanguage(const AnsiString LanguageID);
virtual void __fastcall WhenNewDomain(const AnsiString TextDomain);
virtual void __fastcall WhenNewDomainDirectory(const AnsiString TextDomain, const AnsiString Directory);
private:
AnsiString curlang;
TGetPluralForm curGetPluralForm;
AnsiString curmsgdomain;
Sysutils::TMultiReadExclusiveWriteSynchronizer* savefileCS;
TextFile savefile;
Classes::TStringList* savememory;
AnsiString DefaultDomainDirectory;
Classes::TStringList* domainlist;
Classes::TStringList* TP_IgnoreList;
Classes::TList* TP_ClassHandling;
Classes::TList* TP_GlobalClassHandling;
TExecutable* TP_Retranslator;
Sysutils::TMultiReadExclusiveWriteSynchronizer* DebugLogCS;
Classes::TStream* DebugLog;
bool DebugLogOutputPaused;
TExecutable* __fastcall TP_CreateRetranslator(void);
void __fastcall FreeTP_ClassHandlingItems(void);
void __fastcall DebugWriteln(AnsiString line);
void __fastcall TranslateProperty(System::TObject* AnObject, Typinfo::PPropInfo PropInfo, Classes::TStrings* TodoList, const AnsiString TextDomain);
TDomain* __fastcall Getdomain(const AnsiString domain, const AnsiString DefaultDomainDirectory, const AnsiString CurLang);
};
//-- var, const, procedure ---------------------------------------------------
#define DefaultTextDomain "default"
extern PACKAGE AnsiString ExecutableFilename;
static const bool PreferExternal = false;
#define VCSVersion "$LastChangedRevision: 118 $"
static const bool AutoCreateHooks = false;
extern PACKAGE TGnuGettextInstance* DefaultInstance;
extern PACKAGE WideString __fastcall gettext(const WideString szMsgId);
extern PACKAGE WideString __fastcall dgettext(const AnsiString szDomain, const WideString szMsgId);
extern PACKAGE WideString __fastcall dngettext(const AnsiString szDomain, const WideString singular, const WideString plural, int Number);
extern PACKAGE WideString __fastcall ngettext(const WideString singular, const WideString plural, int Number);
extern PACKAGE void __fastcall textdomain(const AnsiString szDomain);
extern PACKAGE AnsiString __fastcall getcurrenttextdomain();
extern PACKAGE void __fastcall bindtextdomain(const AnsiString szDomain, const AnsiString szDirectory);
extern PACKAGE void __fastcall TP_Ignore(System::TObject* AnObject, const AnsiString name);
extern PACKAGE void __fastcall TP_GlobalIgnoreClass(TMetaClass* IgnClass);
extern PACKAGE void __fastcall TP_IgnoreClass(TMetaClass* IgnClass);
extern PACKAGE void __fastcall TP_IgnoreClassProperty(TMetaClass* IgnClass, const AnsiString propertyname);
extern PACKAGE void __fastcall TP_GlobalIgnoreClassProperty(TMetaClass* IgnClass, const AnsiString propertyname);
extern PACKAGE void __fastcall TP_GlobalHandleClass(TMetaClass* HClass, TTranslator Handler);
extern PACKAGE void __fastcall TranslateComponent(Classes::TComponent* AnObject, const AnsiString TextDomain = "");
extern PACKAGE void __fastcall RetranslateComponent(Classes::TComponent* AnObject, const AnsiString TextDomain = "");
extern PACKAGE AnsiString __fastcall LoadResStringA(System::PResStringRec ResStringRec);
extern PACKAGE WideString __fastcall GetTranslatorNameAndEmail();
extern PACKAGE void __fastcall UseLanguage(AnsiString LanguageCode);
extern PACKAGE WideString __fastcall LoadResString(System::PResStringRec ResStringRec);
extern PACKAGE WideString __fastcall LoadResStringW(System::PResStringRec ResStringRec);
extern PACKAGE AnsiString __fastcall GetCurrentLanguage();
extern PACKAGE void __fastcall AddDomainForResourceString(const AnsiString domain);
extern PACKAGE void __fastcall RemoveDomainForResourceString(const AnsiString domain);
extern PACKAGE void __fastcall HookIntoResourceStrings(bool enabled = true, bool SupportPackages = false);
} /* namespace Gnugettext */
using namespace Gnugettext;
#pragma option pop // -w-
#pragma option pop // -Vx
#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif // gnugettext
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -