Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: add dspace-l10n-check.py

...

  • In the servlet code:
    • In `AuthorizeAdminServlet`, some English is passed for direct display in the title through the attribute `edit_title`. E.g. "Item".
  • `config/dstat.map`
  • Support for easy customisation of UI without needing to fork language bundles.
  • Display dates, numbers etc. according to Locale. (JSTL has tags for this)
  • Searching in non-Western languages such as Chinese; Lucene cannot parse/separate words
  • Multi-lingual metadata. Submission forms do not include language info for metadata. (The "language" DC field relates to the language of the content, i.e. the bitstreams.)
    • HPCLab, University of Patras, has submitted a new patch addressing this issue, against 1.4.2 (including the I18N patch) here. Please test and verify in order to remove from to-do.
  • Author and title ordering.
  • Browse controls ("Jump to" 0-9, A-Z) – support for other characters
  • Use of Collator fixes non-English language sort order problems. Not developed but small. No schema changes. JimDowning
  • i18n of non-Web UI – e.g. command line tools like the import/export tools. Currently the dictionaries are only stored in the .war file, so other parts of code won't have access to them.

Useful Tools

Python Script to check for missing/extra strings

 

Code Block
languagepython
titledspace-l10n-check.py
#!/usr/bin/env python

import sys

class MessagesXmlParser():
        def __init__(self, filename):
                import xml.etree.ElementTree as etree

                self.keys = []

                tree = etree.parse(filename)
                root = tree.getroot()
                for message in root:
                        self.keys.append(message.attrib['key'])

class MessagesPropertiesParser():
        def __init__(self, filename):
                try:
                        import jprops
                except:
                        print('Error: jprops module for parsing .properties files is missing. Download and follow installation instructions from http://mgood.github.com/jprops/')
                        sys.exit(2)

                self.keys = []

                with open(filename) as fp:
                        for key, value in jprops.iter_properties(fp):
                                self.keys.append(key)

if __name__ == "__main__":
        if len(sys.argv) != 3:
                print("Usage:")
                print("       %s messages.xml messages_XX.xml" % (sys.argv[0]))
                print("or")
                print("       %s Messages.properties Messages_XX.properties" % (sys.argv[0]))
                sys.exit(1)

        testfile = open(sys.argv[1], 'rb')
        if testfile.readline().find('<?xml') != -1:
                # xml file detected, assume messages.xml
                messages_tmpl = MessagesXmlParser(sys.argv[1])
                messages_in   = MessagesXmlParser(sys.argv[2])
        else:
                # assume Messages.properties
                messages_tmpl = MessagesPropertiesParser(sys.argv[1])
                messages_in   = MessagesPropertiesParser(sys.argv[2])

        print "Present in %s but missing in %s:" % (sys.argv[1], sys.argv[2])
        for i in set(messages_tmpl.keys) - set (messages_in.keys):
                print i
        print "\nPresent in %s but missing in %s:" % (sys.argv[2], sys.argv[1])
        for i in set(messages_in.keys) - set (messages_tmpl.keys):
                print i
 

 

Perl Script for unused keys

...