[sword-devel] ICU transliteration resources
chrislit at crosswire.org
Thu Feb 19 13:13:14 MST 2009
Matthew Talbert wrote:
> I have successfully compiled ICU with mingw on Windows and I'm trying
> to get the transliteration filters working. These now work in Xiphos
> in linux. However, the location of the filters appears hard-coded in
> utf8transliterator.cpp. Is there an interface to allow passing the
> location at runtime? This is necessary for Windows where the location
> is not known at compile time.
None of the hard-coded paths are used in BibleCS. BibleCS finds its
resources in the current directory (or using PATH if that fails) in the
standard way that one locates DLLs. For details about why those
hardcoded paths are in there, I believe you would have to ask Daniel
I believe there is also a way to pass locations of resource bundles at
runtime, but I'm not sure what it is.
> Additionally, I hardcoded the location into utf8transliterator.cpp,
> and it apparently loaded the filters, but transliteration still wasn't
> working in Xiphos. Is there some way to test that the resource files
> are actually correct?
If you build ICU from source, it should result in a program called
uconv. If you run "uconv -L", it will list all of the transliterator
resources available in whichever resource bundle(s) it is finding.
> I do not understand how BibleCS is managing this, as I was unable to
> even locate the resources in the installation.
ICU resources are located in the file icudt40.dll ("40" being for
version 4.0 and being adjusted accordingly for other releases of ICU).
It's located in the program's directory, which is the same way Adobe
Acrobat, Logos, etc. package their ICU DLL.
Building & linking the ICU DLL is a bit complicated. Visual Studio is
one of ICU's reference platforms, but Borland C++ Builder isn't even a
supported platform. So we build the resource bundle lib & dll in VS,
convert the lib from VS to Borland format, link against the converted
lib, and ship the VS dll. So if it's possible to use/convert the VS lib
and use the same dll as BibleCS, that might be the best solution for
you. (I can send the lib file if you'd like to try.)
More information about the sword-devel