I think Mark makes a number of good points here  - esp. regarding modularity - 
and it's worth emphasizing that the net effect should be *less* localization 
effort, even if there are potentially more files, since one would only need to 
worry about the locally deployed modules - but I'm a bit puzzled about the 
'single catalog scheme'  as a desired future state.

Without much thought, I can come up with 4-5 quite distinct sites (places, 
files, ways) where localization occurs in DSpace:

* in email templates (config/email)
* in dspace,cfg and many other config files (starting with the 'dspace.name' 
property)
* in input_forms.xml
* messages.xml and that ilk

and I'm sure there are others; the curation stuff does not introduce a new 
locus of localization:  localizability permeates the application already.
It's also worth noting that localized strings occur not just in the UI proper - 
they can appear in RSS feeds, OAI-PMH harvests, etc
So I'd be leery of a plan to shoehorn all localization into any single 'catalog 
scheme' , esp. one that is explicitly tied to a UI presentation layer.

Having said all this, I sympathize with Christian's plight, and affirm with 
Mark that we can do a better job of managing it.

Richard R.
 
On Apr 2, 2012, at 9:21 AM, Mark H. Wood wrote:

> On Sat, Mar 31, 2012 at 02:05:34PM +0200, Christian Völker wrote:
> [snip]
>> Now I just found a new flavour of localization in the 
>> dspace/config/modules/curate.cfg file:
>> 
>> #ui.tasknames = \
>> #     profileformats = Profile Bitstream Formats, \
>> #     requiredmetadata = Check for Required Metadata, \
>> #     checklinks = Check Links in Metadata
>> ui.tasknames = \
>>     profileformats = Dateityp angehängter Dateien untersuchen, \
>>     requiredmetadata = Pflichtfelder auf Inhalt überprüfen, \
>>     checklinks = Links in Metadaten überprüfen
>> 
>> #   general = General Purpose Tasks,
>> general = Allgemeine Aufgaben,
>> 
>> #ui.statusmessages = \
>> #    -3 = Unknown Task, \
>> #    -2 = No Status Set, \
>> #    -1 = Error, \
>> #     0 = Success, \
>> #     1 = Fail, \
>> #     2 = Skip, \
>> #     other = Invalid Status
>> ui.statusmessages = \
>>    -3 = Unbekannte Aufgabe, \
>>    -2 = Kein Zustand definiert, \
>>    -1 = Fehlerhaft, \
>>     0 = Erfolgreich, \
>>     1 = Fehlgeschlagen, \
>>     2 = Übersprungen, \
>>     other = Ungültiger Zustand
>> 
>> Honestly, is this the way to go?
> 
> Clearly not.  We already have two different message catalog schemes,
> which IMHO is one too many.  Configurable message texts should at
> least be confined to those two.  It would be good to get every
> component to use a single scheme.
> 
>> Bedides the monsterous messages.xml file in 
>> modules/xmlui/src/main/webapp/i18n/
>> with more than 2.100 meanwhile, we already have numerous other places now, 
>> where to keep messages.xml files updated, in places such as 
>> 
>> dspace-xmlui/dspace-xmlui-api/src/main/resources/aspects/XMLWorkflow/i18n or
>> dspace-discovery/dspace-discovery-xmlui-api/src/main/resources/aspects/Discovery/i18n
> 
> Message catalogs will proliferate, because DSpace is becoming modular.
> Each module needs its own catalog, because it might be released on a
> different schedule, and because separable components shouldn't depend
> on each others' catalogs.  Indeed it might be good to break up the
> modules/xmlui/src/main/webapp/i18n/messages.xml into more manageable
> chunks kept closer to the code that uses them, if there is a good and
> sensible way to do it.
> 
> We do need to be careful to maintain consistency across modules, and
> to document as well as we can where to find localizable texts.
> 
> [snip]
>> I am sorely missing tool support I know of in other programming environments
>> such as AppleGlot or QTLinguist. QTLinguist supports loading several files to
>> compare and copy from and to each other, enabling something like a visual 
>> diff.
>> Then, you can create your own dictionaries and load them. You get suggestions
>> based on translations already finished which helps keeping consitency. The
>> file structure cannot be damaged accidentally. Comments with alternative
>> translations or reminders can be added for each message string. And you get
>> an overview of the progress made by checkmarks in the sidebar for 
>> translations
>> entered and translations reviewed.
>> The only thing worse in this tool as compared to our files that it is a bit 
>> more complicated to find the place where the translation appears on the 
>> finished
>> site, depending on the way programmers structured their work.
> 
> I agree that good tooling would help.  Localization requires a lot of
> comparison and systematic record-keeping, which are hard for humans
> but easy for machines.
> 
> There is a proposal right now over on dspace-devel to use web-based
> localization tooling and services.  I would invite anyone interested
> in localization to look it over and discuss.  See the thread starting
> at Message-ID:
> <CAGO4j2mtQ8Zp4fXA2WYJLinEi_aJDP17UU_hgDUMnw6=rqg...@mail.gmail.com>,
> 24-Mar-2012, Chandan Kumar, "Introduction".
> 
> 
>> I would really like to see a system which stores all strings inside the 
>> database
>> including all translations and adapted translations which override original 
>> trans-
>> lations. If one could start translating through the admin interface, this 
>> would
>> be a tremendous advantage over the current situation.
> 
> I think this falls under the heading of "having a tool is better than
> not."  Before we spend a lot of effort to build our own localization
> tools, I think we should look closely at what is already available,
> hoping to let DSpace concentrate on what it is already good at.
> ('emacs' already exists; we don't need to create another one.)
> 
> Storing the catalogs in the database brings its own set of problems:
> 
> o  Existing texts must be loaded into the database.  So, we still need
>   an external form, at least for loading and exporting texts.
> 
> o  Currently, when code changes cause significant reorganization of
>   the message texts, a new release can simply replace the old
>   catalogs with new ones.  If we stick the texts into the database
>   then we will need to find and clean out obsolete material, or
>   provide code to clear the tables and reload.
> 
> o  We'll need to write a new catalog provider for
>   java.util.ResourceBundle and a replacement for
>   org.apache.cocoon.transformation.I18nTransformer, which look in the
>   database for texts.  (We would need to do something like this if we
>   consolidated into a single cataloging scheme, no matter where the
>   texts are stored.)
> 
> I don't claim that these are reasons to reject the idea.
> 
> I'd like to suggest that we could make localization easier and better
> by being more systematic.  How can we get closer and much earlier
> coordination between Java coders and translators (when they are not
> the same people)?  Can we agree on common tooling, or can we provide
> catalogs in forms that work well with many individuals' choices of
> tooling?  Every separable piece of DSpace should document where it
> keeps its catalogs, and any areas of its message base where the
> meaning of texts is not obvious.
> 
> -- 
> Mark H. Wood, Lead System Programmer   [email protected]
> Asking whether markets are efficient is like asking whether people are smart.
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here 
> http://p.sf.net/sfu/sfd2d-msazure_______________________________________________
> DSpace-tech mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dspace-tech


------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to