user interface localizer: a system for making decision support software “world-compatible”...
TRANSCRIPT
User Interface Localizer: A system for making decision support software “world-
compatible”
Matthew Laurenson and Seishi Ninomiya
National Agricultural Research Center, Tsukuba, Japan
Contents
• Internationalization
• Java ResourceBundles
• User Interface Localizer
• Future Plans
Internationalization – Why?
© Copyright 1998 ACNielsen Corporation. All rights reserved – used with permission
The same application in four languages…
One of the screens is probably much easier for you to use and contribute to.
Many Aspects to Internationalization
• Labels for text components (our focus)but also
• Date systems and formats
• Number formats
• Language for documentation
• Differences in farming systems and scales
Contents
• Internationalization
• Java ResourceBundles
• User Interface Localizer
• Future Plans
WeatherDataResources_ko extends ResourceBundle {
...
{"database", " 데이터베이스 "},
{"region", " 지역 "},
{"weather station", " 기상관측소 "},
{"station report"," 관측지점 보고 "},
{"element", " 기상요소 "},
{"metbroker", " 기상중매자 "},
{"servlet", " 서블렛 "},
{"applet", " 애플렛 "},
...
WeatherDataResources_zh extends ResourceBundle {
...
{"database", "数据库 "},
{"region", "地区 "},
{"weather station", "气象站 "},
{"station report", "台站报告 "},
{"element", "天气要素 "},
{"metbroker", "气象代理 "},
{"servlet", "服务器端小程序 "},
{"applet", "小程序 "},
...
Java ResourceBundles
ISO Language ID
Language-independent ID
ResourceBundle Issues
• If add or modify then must recompile
• Awkward for translators to edit
• Slow to load over network
Contents
• Internationalization
• Java ResourceBundles
• User Interface Localizer
• Future Plans
User Interface Localizer - Aims
• Easy replacement for ResourceBundles
• Web-based translation – easy updating
• Avoid compilation step
• Easy to add a new language
• Good performance for distributed applications
ResourceServer: Web-based Localization
Database
ResourceServerUser
Translator
User
TranslatorSupervisor
User
User
Translator
User
User
User
Translator
User
Add and remove label ids.Add and remove label ids. Set up new languages.Set up new languages. Authorize translators.Authorize translators.
Send ids & receive textSend ids & receive text No user authorization requiredNo user authorization required
View labels in several languagesView labels in several languagesEdit one languageEdit one languagePassword-controlledPassword-controlled
Communication using Java
Remote Method Invocation (RMI)
PostgreSQL
Client Application – Sample Code
Translator Application
Supervisor Applet – Translation Status
User Testing
• Asked three Chinese co-workers (good English skills) to translate terms on paper.
• Found that we needed term descriptions (in English, entered by supervisor) as well as English translations
• UIL Version 0.2 includes descriptions in translator interface
• Ready for next round of testing...
Resource Bean
• Created ResourceBean for fast application loads.
• Retrieves text from User Interface Localizer in separate thread to speed application load
• Groups together requests for efficiency
• Sets component popup text with item description if translation not available
Adapting Applet to User Interface Localizer
import net.agmodel.resBean.*;
class MyApplet implements …,ResourceBeanListener{ private ResourceBean rb=new ResourceBean(); … public void init(){ rb.registerComponent(myButton,”Utility”,”ok”); rb.registerComponent(aLabel,”Physical”,”rain”); … rb.setRBListener(this); rb.setLive(true); }
public void internationalizationComplete(){ rb.setLive(false); }
Notes
• All demos at www.agmodel.net use RB
• Not yet used outside NARC
• Potential to replace database with Agricultural Ontology Service if can identify terms in AOS with some ID.(Need to be able to readily add new terms)
Thesaurus versus User Interface Localizer
Documentation and Demos
• Web site:http://www.agmodel.net/ResourceServer/
• Will be open source
Contents
• Internationalization
• Java ResourceBundles
• User Interface Localizer
• Future Plans
ResourceSOAP
• Simple Object Access Protocol (SOAP) is language-neutral version of Java RMI
• Many programming languages have SOAP toolkits
• With SOAP access, User Interface Localizer could serve Visual Basic and Delphi applications.
Thank you
ありがとう
ございま
した
非常感谢 !
감사합니다
Merci
Malo