Hi,
John Labenski wrote:
> On 6/26/07, Hakki Dogusan <[EMAIL PROTECTED]> wrote:
>> Since it compiled with gcc-4.1.2 I tried to find my other -translation-
>> problem first. After -all day- compiling with different configurations,
>> a few minutes ago I found the reason! (Why it is always the last one you
>> look for?)
>>
>> loc = wx.wxLocale(wx.wxLANGUAGE_TURKISH)
>>
>> print(loc:GetString("&About")) --not translated
>> print(loc:GetString("&About", "wxstd")) --translated
>>
>> print(wx.wxGetTranslation("&About")) --not translated
>> print(wx.wxGetTranslation("&About", "wxstd")) --translated
>>
>>
>> Do you know a quick solution? :)
>
> You're doing better than I... why doesn't this work at all? Note, I
> just added the Init() function so I could get the return value, which
> is false, but it seemed to have set it anyway, but then doesn't
> translate it...
>
> ========= code =============
>
> wx.wxLocale.AddCatalogLookupPathPrefix("c:\\labenski\\wx\\wxWidgets\\wxWidgets-2.8.4\\locale\\")
Is ther any .mo file there?
> print(wx.wxLocale.IsAvailable(wx.wxLANGUAGE_TURKISH))
>
> loc = wx.wxLocale()
> print(loc:Init(wx.wxLANGUAGE_TURKISH))
> print(loc:IsOk())
> print(loc:GetSysName())
> print(loc:GetLanguage(), wx.wxLANGUAGE_TURKISH)
>
> print(loc:GetString("&About")) --not translated
> print(loc:GetString("&About", "wxstd")) --translated
>
> print(wx.wxGetTranslation("&About")) --not translated
> print(wx.wxGetTranslation("&About", "wxstd")) --translated
>
If you change calling order then Init returns true (I checked with
current cvs), ie:
loc = wx.wxLocale()
loc.AddCatalogLookupPathPrefix("f:/a_c/dsuye/locale")
print(loc:Init(wx.wxLANGUAGE_TURKISH))
--print("AddCatalog:", loc:AddCatalog("wxstd")) --loaded automatically
print("AddCatalog:", loc:AddCatalog("dsuye"))
[snip]
I think I found the reason of requiring szDomain parameter to translate..
[intl.h]
virtual const wxChar *
GetString(const wxChar *szOrigString,
const wxChar *szDomain = NULL) const;
virtual const wxChar *
GetString(const wxChar *szOrigString,
const wxChar *szOrigString2,
size_t n,
const wxChar *szDomain = NULL) const;
szDomain is declared as wxChar here, and:
[intl.cpp ~2608]
it is checked against NULL
but in [wxLua - datetime.cpp ~5733] it is declared and used as wxString:
//virtual wxString
//GetString(const wxString& szOrigString,
// const wxString& szDomain = "") const;
static int LUACALL wxLua_wxLocale_GetString(lua_State *L)
...
const wxString szDomain = (argCount >= 3 ?
wxlState.GetwxStringType(3) :
wxString(wxEmptyString));
...
If we omit szDomain parameter, it gets an emty string instead of NULL!
What do you think?
> Dunno,
> John Labenski
>
--
Regards,
Hakki Dogusan
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
wxlua-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wxlua-users