On Sep 11, 2012, at 8:27 PM, Greg Hellings <greg.helli...@gmail.com> wrote:

> On Mon, Sep 10, 2012 at 8:01 PM, DM Smith <dmsm...@crosswire.org> wrote:
>> This is a hard question. And a good one.
>> 
>> For the record (not saying it is right or that it is best or even good) here 
>> is how JSword does it:
>> It does not use the Locale of the module.
>> It uses the OSIS book names first. (Assumes that the majority of Book Names 
>> come from OSIS modules)
>> Then it uses the user's Locale. (Assumes that the Locale is meaningful for 
>> the user.)
>> Finally it uses English book names. (Fall back for ThML and GBF and for 
>> consistency.)
> 
> When you say "OSIS book names first" what are you referring to? Are
> you referring to the specific abbreviations that are the OSIS spec? If
> so, then it looks like you might be following the same pattern as
> Xiphos, which allows the user's Locale to be used.

I mean the specific abbreviations that OSIS defines for each book. More and 
more references in modules use OSIS book names, including ThML. So using this 
first is a reasonable optimization.

I also didn't mention that JSword normalizes the input book name and compares 
it to normalized names in the various book name dictionaries. I forget what all 
that the normalization does, but I do remember it strips spaces and converts to 
a consistent case.


> 
>> 
>> You didn't mention what happens if you have an inexact match. I'd have to 
>> look in the JSword code to see what happens if it doesn't find the input. 
>> The fall back is to look for the input as a proper prefix or as an alternate 
>> name or abbreviation. But I forget whether it looks for an exact match first 
>> across the three dictionaries and then for proper prefixes in the latter two 
>> and then for the alternate name in the latter two. Or whether it exhausts 
>> one level before the next. JSword doesn't order like SWORD does. It 
>> prioritizes first by NT, then by OT, and within the testament by book order.
>> 
>> The results of inexact matches depend on the ordering of the matching 
>> algorithm.
> 
> I'd have to test more. I know that, if the mismatch is drastic enough
> the verse gets "punted" to Revelation 1:1. BibleTime therefore takes
> you to Revelation 1:1, while Xiphos seems to intercept an error code
> on the VerseKey somewhere and just leaves you right where you started.
> Based on that behavior, both of them likely behave the same as they
> are relying on SWORD's parsing algorithm - just with different default
> locales set.

I've never liked the error picking a verse that is far away from the user's 
intent. I think JSword still has places that use Gen 1:1.

> 
>> 
>> We've thought about using the module's language. And we/ve thought about 
>> doing lookups over all dictionaries of Book Names. But what order?
>> 
>> Just not clear on what actually makes sense.
> 
> I like the idea mentioned of setting it as an option. It could even be
> made a per-module configuration option at the application's discretion
> and the default value for it could be specified. For my own purposes I
> want to use my locale (English) almost all of the time, unless I'm
> testing a module like the current scenario. Since my locale is
> English, I am spoiled as that is included in the search by default,
> but if it weren't I would still want to use that the majority of the
> time. I use it when I pull up Greek modules (which is my main foreign
> language module set).

So do you have to input it with the diacritics? (may be Greek doesn't have them 
in SWORD but French would.)


> 
> The behavior I expected was that the default would be the module with
> my locale as the fallback. Neither Xiphos nor BibleTime behaves that
> way, except when considering the English locale (and then, only
> BibleTime does). I have no basis for that expectation other than my
> off-the-cuff reaction to, "Huh, wonder why that didn't parse the
> module locale".
> 
> For single-use applications like Diatheke or such, I would assume it
> should default to using the module's locale. So I guess I'm saying I
> would expect the engine to specify that as the default. I'm not sure
> if it does or not.
> 
>> 
>> On a side note, the locale we use:
>> The locale of the chosen translation. (It might make sense to also have a 
>> list of known languages that the user can select and order. But we don't do 
>> that.)
>> If that is not set, then we use the locale that the user chooses via their 
>> OS and is exposed in Java as Locale.getDefaultLocale();
>> We don't use the LANG environment variable unless that is the OS mechanism.
> 
> An interesting, but understandable, default I think.

What do you use for the manufactured display of a reference?

For example, in verse lists which locale do you use? I would imagine it would 
be that of the translation of the UI.


> 
> --Greg
> 
>> 
>> In Him,
>>        DM
>> 
>> On Sep 10, 2012, at 3:44 PM, Greg Hellings <greg.helli...@gmail.com> wrote:
>> 
>>> Just wanted to note here some differences between Xiphos and BibleTime
>>> locale handling.
>>> 
>>> Setup:
>>> I'm working with a new, minority language translation. The language is
>>> Takwane with the language code abbreviation "tke". I have successfully
>>> created a module which has the conf file entry "Lang=tke" and began to
>>> note some oddities about locale handling. For ease of reading further,
>>> "Wambeela" is the Takwane name for Genesis and "1. Mose" is how the
>>> book name appears in our German locale.
>>> 
>>> Xiphos:
>>> In Xiphos, when I start the application with my default locale of
>>> LANG=en_US.UTF-8 and open the Takwane module, the application properly
>>> understands only the English names of books and ignores the Takwane.
>>> That is, I can type in "Genesis 2:1" and be properly navigated to that
>>> position but entering "Wambeela 2:1" causes the application to ignore
>>> my input. To test, I started the application with LANG=de, and I could
>>> type EITHER "Genesis 2:1" or "1. Mose 2:1" and I would navigate to the
>>> appropriate passage. If I started the application with LANG=tke I
>>> could enter either "Genesis" or "Wambeela". Thus, Xiphos ignores the
>>> Lang setting on the module and only understands the LANG environment
>>> variable.
>>> 
>>> BibleTime:
>>> In BibleTime I started the application with my en_US.UTF-8 locale and
>>> opened the Takwane module. Here, the module understood both "Genesis"
>>> and "Wambeela". Setting LANG=de and restarting the application causes
>>> it to still understand "Genesis" and "Wambeela" but it can't grasp "1.
>>> Mose" and instead punts me to "Rev 1:1" for a parsing error.
>>> 
>>> Diatheke:
>>> Appears to ignore the LANG variable, but cannot parse the module's
>>> address without using the "-l tke" switch.
>>> 
>>> So it appears that the engine will always comprehend English book
>>> names and that BibleTime is somehow honoring the module's Lang setting
>>> but ignoring its own UI setting while Xiphos is honoring the
>>> UI/environment setting but ignoring the module's Lang setting.
>>> 
>>> I just wanted to put that out here, so there is a record of it and so
>>> developers for either app can think about the UX they want. In the
>>> case of Takwane, since neither application has a Takwane locale it is
>>> likely the users will try for Portugese in the application's UI but
>>> will still want to type their native Takwane book names. This makes
>>> Xiphos' UX undesirable as it only understands English and whatever
>>> locale the UI is in. But presumably a user might want to open a module
>>> in a different language and still be able to use their native locale
>>> (like us English speakers are probably used to doing since the engine
>>> appears to understand English all the time). This makes BibleTime's UX
>>> bad because it seems to ignore the UI's locale.
>>> 
>>> I'm unsure of a path to take when recommending an application to the
>>> translators for testing because of this. Both situations could be
>>> awkward, unless they eventually decide it is worth the effort to
>>> translate the UI itself into Takwane.
>>> 
>>> --Greg
>>> 
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel@crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>> 
>> 
>> _______________________________________________
>> sword-devel mailing list: sword-devel@crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
> 
> _______________________________________________
> sword-devel mailing list: sword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to