...
- 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 | ||||
---|---|---|---|---|
| ||||
#!/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
...