查看源代码 wxLocale (wx v2.4.3)
wxLocale
类封装了所有与语言相关的设置,是 C 语言区域概念的推广。
在 wxWidgets 中,此类管理当前区域。它还会初始化并激活 wxTranslations
(在 wx 中未实现)对象,该对象管理消息目录。
有关支持的语言列表,请参阅 ?wxLanguage 枚举值。这些常量可用于在 init/3
中指定语言,并由 getSystemLanguage/0
返回。
请参阅
wxWidgets 文档:wxLocale
摘要
函数
调用 wxTranslations::AddCatalog(const wxString&)。
调用 wxTranslations::AddCatalog(const wxString&, wxLanguage)
(在 wx 中未实现)。
调用 wxTranslations::AddCatalog(const wxString&, wxLanguage, const wxString&)
(在 wx 中未实现)。
调用 wxFileTranslationsLoader::AddCatalogLookupPathPrefix()
(在 wx 中未实现)。
销毁对象
返回当前区域名称的规范形式。
调用 wxTranslations::GetHeaderValue()
(在 wx 中未实现)。
返回当前语言的 ?wxLanguage 常量。
返回给定语言的英文名称,如果该语言未知,则返回空字符串。
返回传递给构造函数或 init/3
的区域名称。
返回当前区域的短名称(如传递给构造函数或 init/3
函数的名称)。
调用 wxGetTranslation(const wxString&, const wxString&)。
调用 wxGetTranslation(const wxString&, const wxString&, unsigned, const wxString&)。
返回传递给 setlocale() 的当前平台特定区域名称。
尝试检测用户的默认字体编码。
尝试检测用户默认字体编码的名称。
尝试检测用户的默认区域设置。
等效于 init(This, [])
。
已弃用
调用 wxTranslations::IsLoaded()
(在 wx 中未实现)。
如果区域设置成功,则返回 true。
类型
-type wxLocale() :: wx:wx_object().
函数
-spec addCatalog(This, Domain) -> boolean() when This :: wxLocale(), Domain :: unicode:chardata().
调用 wxTranslations::AddCatalog(const wxString&)。
-spec addCatalog(This, Domain, MsgIdLanguage) -> boolean() when This :: wxLocale(), Domain :: unicode:chardata(), MsgIdLanguage :: wx:wx_enum().
调用 wxTranslations::AddCatalog(const wxString&, wxLanguage)
(在 wx 中未实现)。
-spec addCatalog(This, Domain, MsgIdLanguage, MsgIdCharset) -> boolean() when This :: wxLocale(), Domain :: unicode:chardata(), MsgIdLanguage :: wx:wx_enum(), MsgIdCharset :: unicode:chardata().
调用 wxTranslations::AddCatalog(const wxString&, wxLanguage, const wxString&)
(在 wx 中未实现)。
-spec addCatalogLookupPathPrefix(Prefix) -> ok when Prefix :: unicode:chardata().
调用 wxFileTranslationsLoader::AddCatalogLookupPathPrefix()
(在 wx 中未实现)。
-spec destroy(This :: wxLocale()) -> ok.
销毁对象
-spec getCanonicalName(This) -> unicode:charlist() when This :: wxLocale().
返回当前区域名称的规范形式。
规范形式是 UNIX 系统上使用的形式:它是一个两个或五个字母的字符串,格式为 xx 或 xx_YY,其中 xx 是语言的 ISO 639 代码,YY 是国家/地区的 ISO 3166 代码。例如,“en”、“en_GB”、“en_US”或“fr_FR”。在查找消息目录时,内部使用此形式。比较 getSysName/1
。
-spec getHeaderValue(This, Header) -> unicode:charlist() when This :: wxLocale(), Header :: unicode:chardata().
-spec getHeaderValue(This, Header, [Option]) -> unicode:charlist() when This :: wxLocale(), Header :: unicode:chardata(), Option :: {szDomain, unicode:chardata()}.
调用 wxTranslations::GetHeaderValue()
(在 wx 中未实现)。
返回当前语言的 ?wxLanguage 常量。
请注意,只有在使用了采用 ?wxLanguage 参数的 init/3
形式时,才能调用此函数。
-spec getLanguageName(Lang) -> unicode:charlist() when Lang :: integer().
返回给定语言的英文名称,如果该语言未知,则返回空字符串。
有关 wxLANGUAGE_DEFAULT
的特殊含义,请参阅 GetLanguageInfo()
(在 wx 中未实现)的说明。
-spec getLocale(This) -> unicode:charlist() when This :: wxLocale().
返回传递给构造函数或 init/3
的区域名称。
这是一个完整、可读的名称,例如“English”或“French”。
-spec getName(This) -> unicode:charlist() when This :: wxLocale().
返回当前区域的短名称(如传递给构造函数或 init/3
函数的名称)。
-spec getString(This, OrigString) -> unicode:charlist() when This :: wxLocale(), OrigString :: unicode:chardata().
-spec getString(This, OrigString, [Option]) -> unicode:charlist() when This :: wxLocale(), OrigString :: unicode:chardata(), Option :: {szDomain, unicode:chardata()}.
调用 wxGetTranslation(const wxString&, const wxString&)。
-spec getString(This, OrigString, OrigString2, N) -> unicode:charlist() when This :: wxLocale(), OrigString :: unicode:chardata(), OrigString2 :: unicode:chardata(), N :: integer().
-spec getString(This, OrigString, OrigString2, N, [Option]) -> unicode:charlist() when This :: wxLocale(), OrigString :: unicode:chardata(), OrigString2 :: unicode:chardata(), N :: integer(), Option :: {szDomain, unicode:chardata()}.
调用 wxGetTranslation(const wxString&, const wxString&, unsigned, const wxString&)。
-spec getSysName(This) -> unicode:charlist() when This :: wxLocale().
返回传递给 setlocale() 的当前平台特定区域名称。
-spec getSystemEncoding() -> wx:wx_enum().
尝试检测用户的默认字体编码。
返回 ?wxFontEncoding() 值,如果无法确定,则返回 wxFONTENCODING_SYSTEM
。
-spec getSystemEncodingName() -> unicode:charlist().
尝试检测用户默认字体编码的名称。
此字符串对于应用程序没有特别的用处,因为它的格式是平台相关的,因此您可能应该改用 getSystemEncoding/0
。
返回用户可读的字符串值;如果无法确定,则返回空字符串。
-spec getSystemLanguage() -> integer().
尝试检测用户的默认区域设置。
如果语言猜测算法失败,则返回 ?wxLanguage 值或 wxLANGUAGE_UNKNOWN
。
注意:此函数使用 locales
并返回用户的默认区域设置。这可能(而且通常是)与他们的首选 UI 语言相同,但这不是同一件事。使用 wxTranslation 来获取 language
信息。
等效于 init(This, [])
。
-spec init(This, [Option]) -> boolean() when This :: wxLocale(), Option :: {language, integer()} | {flags, integer()}.
初始化 wxLocale
实例。
调用此函数会产生几个全局副作用,您应该了解:首先,应用程序区域设置会发生更改 - 请注意,这将影响许多标准 C 库函数,如 printf() 或 strftime()。其次,此 wxLocale
对象成为应用程序新的当前全局区域设置,因此所有后续对 ?wxGetTranslation() 的调用都将尝试使用此区域设置的消息目录来翻译消息。
返回:成功时返回 true,如果无法设置给定区域设置,则返回 false。
-spec init(This, Name, [Option]) -> boolean() when This :: wxLocale(), Name :: unicode:chardata(), Option :: {shortName, unicode:chardata()} | {locale, unicode:chardata()} | {bLoadDefault, boolean()}.
已弃用
此形式已弃用,除非您知道自己在做什么,否则请使用其他形式。
-spec isLoaded(This, Domain) -> boolean() when This :: wxLocale(), Domain :: unicode:chardata().
调用 wxTranslations::IsLoaded()
(在 wx 中未实现)。
如果区域设置成功,则返回 true。
-spec new() -> wxLocale().
这是默认构造函数,它不执行任何初始化对象的操作:必须使用 init/3
来执行此操作。
-spec new(Language) -> wxLocale() when Language :: integer(); (Name) -> wxLocale() when Name :: unicode:chardata().
等效于: new/2
-spec new(Language, [Option]) -> wxLocale() when Language :: integer(), Option :: {flags, integer()}; (Name, [Option]) -> wxLocale() when Name :: unicode:chardata(), Option :: {shortName, unicode:chardata()} | {locale, unicode:chardata()} | {bLoadDefault, boolean()}.
有关参数说明,请参阅 init/3
。
调用此函数会产生几个全局副作用,您应该了解:首先,应用程序区域设置会发生更改 - 请注意,这将影响许多标准 C 库函数,如 printf() 或 strftime()。其次,此 wxLocale
对象成为应用程序新的当前全局区域设置,因此所有后续对 ?wxGetTranslation() 的调用都将尝试使用此区域设置的消息目录来翻译消息。