import { IObjRef } from "soui4/IObjRef"; import { IStringA } from "soui4/IString"; export class ITranslator extends IObjRef{ /** * Load * @brief 从资源中加载语言翻译数据 * @param LPVOID pData -- 资源指针,具体含义由接口的实现来解释 * @param UINT uType -- 资源类型,具体含义由接口的实现来解释 * @return BOOL true-加载成功, false-加载失败 * * Describe */ Load( pData:LPVOID , uType:UINT ) :boolean; /** * name * @brief 获取翻译资源的name * @return SOUI::SStringW 翻译资源的name * * Describe */ GetName( str:IStringA) :void; /** * @brief 比较翻译的Name * @param pszName LPCWSTR--翻译的Name * @return TRUE--相同 */ NameEqual( str:IStringA) :boolean; /** * guid * @brief 获取翻译资源的ID * @return GUID 翻译资源的ID * * Describe */ guid() :GUID; /** * tr * @brief 执行翻译的接口 * @param const SStringW & strSrc -- 原字符串 * @param const SStringW & strCtx -- 翻译上下文 * @param SStringW & strRet -- 翻译后的字符串 * @return int - buflen; 0 - no translation; -1 - buf size not enough; * * Describe */ tr(strSrc:IStringW, strCtx:IStringW, pszOut:LPWSTR, nLen:int) :int; /** * @brief 获取翻译的默认字体信息 * @param [out] strFont IStringW *--字体信息 * @return */ getFontInfo( strFont:IStringW) :void; } export class ITranslatorMgr extends IObjRef{ /** * IsValid * @brief 判断是否有效 * @return TRUE-有效 */ IsValid() :boolean; /** * SetLanguage * @brief 设置翻译模块当前接受的语言 * @param [in] LPCWSTR pszLang -- 翻译语言 * * Describe 自动清除语言和目标语言不同的模块 */ SetLanguage( pszLang:string) :void; /** * GetLanguage * @brief 获取翻译模块当前接受的语言 * @return SStringW -- 翻译语言 * * Describe */ GetLanguage( out:IStringA):void; /** * CreateTranslator * @brief 创建一个语言翻译对象 * @param [out] ITranslator * * ppTranslator -- 接收语言翻译对象的指针 * @return BOOL true-成功,false-失败 * * Describe */ CreateTranslator( ppTranslator:LPPITranslator) :boolean; /** * InstallTranslator * @brief 向管理器中安装一个语言翻译对象 * @param ITranslator * ppTranslator -- 语言翻译对象 * @return BOOL true-成功,false-失败 * * Describe */ InstallTranslator( pTranslator:ITranslator) :boolean; /** * UninstallTranslator * @brief 从管理器中卸载一个语言翻译对象 * @param REFGUID id -- 语言翻译对象的ID * @return BOOL true-成功,false-失败 * * Describe */ UninstallTranslator( id:GUID):boolean; /** * tr * @brief 翻译字符串 * @param const SStringW & strSrc -- 原字符串 * @param const SStringW & strCtx -- 翻译上下文 * @return SOUI::SStringW 翻译后的字符串 * * Describe 调用ITranslator的tr接口执行具体翻译过程 */ tr(strSrc:IStringW, strCtx:IStringW, pszOut:LPWSTR, nLen:int) :int; }