[sword-devel] LocaleMgr question
bergmannmd at web.de
Thu Mar 27 00:18:16 MST 2008
I think my email did sound rude.
Sorry for that. Sometimes writing in english is not so easy for me.
I'm thinking that this might be a bug in LocaleMgr so I will file a
bug in Jiira.
Am 26.03.2008 um 19:36 schrieb Manfred Bergmann:
> Hi Troy.
> Thanks for getting back to me.
> If Sword is compiled and installed normally into the prefix path (from
> configure) then all is fine and the parsekey test works, also using
> the system localemgr works.
> But for MacSword the compiled Sword library is not in the prefix path
> neither are the mods.d and locales.d folders.
> Specifying an explicit path when instantiating a new LocaleMgr does
> not work.
> When debugging it seems that any folder below the specified path are
> only searched for "locales.d" folders if there is a prefixpath !=
> NULL. But there is none with this kind of LocaleMgr object creation.
> When instantiating LocaleMgr without an argument the default
> prefixpath and configpath (probably still from configure?) is
> retrieved from SWMgr. If then this prefixpath contains a subfolder
> "share/sword/locales.d" all works fine.
> I think when specifying LocaleMgr with explicit path the
> "if(prefixpath)" makes no sense because the way it is now in the
> constructor prefixpath will never be anything else then NULL when
> iConfigPath is specified.
> I tried using loadConfigDir(<path_to_locale>) and it seems to work
> Am 26.03.2008 um 17:17 schrieb Troy A. Griffitts:
>>>> There is a problem with loading the correct locale in MacSword.
>>>> is how it is done:
>>>> (I need to point out that MacSword has the "locale.d" folder with
>>>> available locales in the Application bundle, means it is part of
>>>> application and it is not using the default locales in ~/.sword.)
>>>> 1. getting the default system localemgr
>>>> 2. checking the supported languages by the OS and looping over
>>>> available locales in locale.d (in the bundle) until one is found.
>>>> is prefered if exists.
>>>> 3. setting a found locale with setDefaultLocaleName(<locale name>)
>>>> However this doesn't work.
>>>> If I do a getLocale(<locale name>) NULL is returned.
>> Have a look in sword/tests for parsekey. Try running it and
>> passing a
>> locale string and see if it fails in the same way.
>>>> I think that probably is why the default system localemgr is not
>>>> looking at the locale.d folder of the bundle and thus can't find
>>>> How can localemgr be forced to use the locale file in the bundle?
>> locales.d should be in the same location as the main mods.d. If you
>> want to force a different configuration (not recommended as any other
>> sword app on the system will not be able to find things in the
>> places), you can call:
>> LocaleMgr::setSystemLocaleMgr(new LocaleMgr("/path/to/your_locals"));
>>>> Another question is which string encoding is prefered for <locale
>> LocaleMgr::getLocale(...) expects the ascii name which corresponds to
>> the Name property in the [Meta] section of the locales.d/
>> <local>.conf file.
>> You must build with ICU to get the utf-8 locales loaded by the engine
>> and they will take precedence. But the encoding of the <local name>
>> always a simple ascii name like "de".
>> Hope this helps.
>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>> Instructions to unsubscribe/change your settings at above page
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> Instructions to unsubscribe/change your settings at above page
>> sword-devel mailing list: sword-devel at crosswire.org
>> Instructions to unsubscribe/change your settings at above page
> sword-devel mailing list: sword-devel at crosswire.org
> Instructions to unsubscribe/change your settings at above page
More information about the sword-devel