[sword-devel] language of module descriptions
dmsmith555 at yahoo.com
Sun Mar 20 06:39:20 MST 2005
I don't think it is a good idea to hold all the translations in the
conf. I think translations should be in separate files. I think that
this will minimize corruption, aid maintenance of the files and speed
loading of the confs.
I would like to suggest that we *consider* the *design* of Java's
mechanism for Internationalization and Localization, called
ResourceBundles. (The implementation details are not important)
Here is a simplification:
A resource bundle consists of (key,value) pairs in files of a predefined
The name of the resource bundle is of the form name.ext, name_lang.ext
Name.ext is regarded as the default resource bundle. All others are
Given a user's language and locale a key is looked up in the following
Look first for name_lang_locale.ext for the key's value.
Failing that look in name_lang.ext for the key's value.
Failing that look in name.ext for the key's value.
Failing that report an error.
(In practice, a user's lang/locale determines the possible set of files
and these are merged in core into a single representation)
I don't know if we need to go to the level of localization, but we
should define the mechanism. Perhaps, Australian English and American
English are different enough to warrant separate files. (In one job I
did, this was the case!)
The practical implications of this is that a translation is only done on
the keys that are needed. These are held in separate files. (We could
also use directories rather than suffixes to hold the lang and locale
info.) This means that the values that software needs to do its job are
held in the default file. If software wants to use the other info it
can, but it won't need to even look at it otherwise.
The nice thing about the proposal above, is that it does not require
that one language (e.g. English) and locale (e.g. UK) be the default.
Since the majority of the translatable info is related to copyright, we
may need to consider what language is used as the default. It may be
possible that the publisher provides specific text and it differs from
the vernacular of the text.
(By the way, it is no advantage to JSword if this mechanism is used. The
conf's are significantly different from Java's property files that we
will have to write our own lookup routines)
Daniel Glassey wrote:
> Being an English speaker it wasn't obvious, but all the works (also
> known as modules) descriptions are in English. Surely the descriptions
> should be in the language of the people who will use the works?
> Here's what I suggest. For any new modules or modules that are
> changed, or modules that people want to change this for:
> make a new Description in the language of the module
> rename the old conf field to Description_en
> make sure both descriptions mean the same thing ;)
> This mechanism allows descriptions to be made in other languages if
> people really want e.g. Description_de
> The Description_en is probably necessary as I guess not all frontends
> would be able to handle unicode descriptions.
> It is not a priority to change old modules but I think it would be a
> good policy for new modules.
> Another thing that would be useful is an About_en (at least from my
> point of view trying to understand the copyright details of modules).
> sword-devel mailing list
> sword-devel at crosswire.org
More information about the sword-devel