[jsword-devel] BibleInfo.properties and fallback
DM Smith
dmsmith555 at yahoo.com
Sat Sep 30 16:14:03 MST 2006
Troy,
Thanks for the info. I appreciate it.
Since you don't know how our mechanism works:
We have two different mechanisms that we use for looking up book
names. One is the population of tables, using Java's built-in locale
sensitive ResourceBundles. The other is the actual lookup against
those tables.
Locale mechanism:
We use the Java ResourceBundle mechanism to do read the tables for
the core mechanism. For any key of a resource in a resource bundle,
the key is first looked up in a language and country ResourceBundle,
if present. If the key is not found there (perhaps because the file
didn't exist), the lookup then is against a ResourceBundle for just
the language. And if the lookup fails then it grabs the default.,
which is English.
We also have a property file of OSIS book names. This is not
internationalized. So in that sense we have "English" defaults.
Using these we populate various lists (described below).
We use the list of full names and short names also as a display
mechanism, where a user can choose to display books by long name or
short name. And they can specify whether they appear in Title Case,
lower case or UPPER CASE. We also allow the user to specify whether
we preserve what they type in or whether we replace it with the full
or short name of the book that we match.
Core mechanism:
We have lists of full book names, short names, osis name and then
common alternatives (which also contains typical abbreviations). The
lookup is first against osis names as an exact match, then with with
the first space removed. We look at osis names first because most
lookups are programmatic and this shortens the lookup.
We then do case insensitive exact matches against short book names,
then alternate names. We find abbreviated names to be more common
than full names.
Then we look for shortest prefix , first looking at the full book
name and then the short book name. The latter is only needed when the
short book name is not a prefix of the full name.
Finally, we look for the shortest prefix, matching against alternate
names.
So our prioritization is fixed by book order.
-- DM
On Sep 30, 2006, at 2:09 PM, Troy A. Griffitts wrote:
> Just a note about how we do this in the C++ libs.
>
> We have 2 sections:
> 1) translation from the Long English name to the Long Locale Name
> 2) a set of prioritized abbreviations, combining English and the
> locale.
>
> (1) is obvious.
> (2) takes a little more thought. For example, consider, below, in
> Espanol: JOHN, JUAN, and a few other 'J' Book names. In English,
> as you
> type, 'J' we prefer John above other Books, then 'U' would
> normally, in
> English, take you to Judges (it's bigger than Jude and odds are better
> you meant Judges), but since we have control over precedence, since
> we've decided to prefer John (or Juan) above Judges, we can add: JU=43
> to our list below. You might be able to get away with this by always
> combining English into your Locale, but I would bet that sometimes
> there
> are English entries (e.g., J=43) that will give odd precedence to
> books,
> as their names diverge from the English. Though I have no idea how
> JSword works with locales; just thought I'd give a little
> background how
> we do things in C++-land.
>
> J=43
> JN=43
> JOHN=43
> JON=32
> JONAH=32
> JONÁS=32
> JUAN=43
> JUD=7
> JUDAS=65
> JUDE=65
> JUDGES=7
> JUE=7
> JUECES=7
>
>
> Manfred Bergmann wrote:
>> I would prefer the second way.
>> If there is no property file for the current locale, te default
>> (english) locale will be used anyway.
>> If it is there, the book name key will first be tested against the
>> current locale, if it does not fit, the english or the default locale
>> is used.
>>
>>
>> Best regards,
>> Manfred
>>
>>
>> Am 30.09.2006 um 13:02 schrieb DM Smith:
>>
>>> To have English as a fallback, we need to do one of two things:
>>> 1) the BibleInfo_de.properties is augmented with English
>>> 2) we create a mechanism to have English read in separately
>>> and also
>>> used.
>>> The former is the easiest wrt software. The latter is a bit harder,
>>> but represents an easier path for translators. Perhaps there is
>>> another option that I am missing.
>>>
>>> In Him,
>>> DM
>>>
>>> On Sep 30, 2006, at 5:06 AM, Manfred Bergmann wrote:
>>>
>>>> Hi all.
>>>>
>>>> DM, you added the german translation for BibleInfo.
>>>> With this only german Bible book names are known, AFAIK.
>>>> It would however be very nice to have english (for every other
>>>> language) as fallback, means that for every other translation at
>>>> least english is also known so the user can type either english
>>>> book
>>>> names or his native language book names.
>>>> I have gotten used to english book names and stuff and I would not
>>>> miss it even though the application itself may be in german.
>>>>
>>>> How can this be accomplished?
>>>>
>>>>
>>>> Best regards,
>>>> Manfred
>>>>
>>>>
>>>>
>>>> ___________________________________________________________
>>>> Telefonate ohne weitere Kosten vom PC zum PC: http://
>>>> messenger.yahoo.de
>>>>
>>>>
>>>> _______________________________________________
>>>> jsword-devel mailing list
>>>> jsword-devel at crosswire.org
>>>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>>
>>>
>>> _______________________________________________
>>> jsword-devel mailing list
>>> jsword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>
>>
>>
>>
>>
>>
>> ___________________________________________________________Der frühe
>> Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail:
>> http://mail.yahoo.de
>>
>>
>> ---------------------------------------------------------------------
>> ---
>>
>> _______________________________________________
>> jsword-devel mailing list
>> jsword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>
>
>
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel
More information about the jsword-devel
mailing list