I18N refactoring support and the TapiJI online translator
1. TapiJI
Refactoring support and the TapiJI online Translator
INSO - Industrial Software
Institut für Rechnergestützte Automation | Fakultät für Informatik | Technische Universität Wien
2. Outline
1 The TapiJI project
2 Refactoring of resource references
3 Stand-alone translation tools
4 Whats next / Future work
5 Links / References / Documentation
2
3. Outline
1 The TapiJI project
2 Refactoring of resource references
3 Stand-alone translation tools
4 Whats next / Future work
5 Links / References / Documentation
3
4. The TapiJI project - Vision
Make I18N more convenient for agile software development
▪ Consider I18N as integral part of initial development
▪ Reduce effort of corresponding tasks
▪ Reduce the risk of bugs in the initial translation
▪ Highlight missing Internationalizations and provide Quick Fixes
Assist process of resource translation
▪ Provide application for resource translation
▪ Allow to edit Resource Bundle without file format conversion
▪ Integrated into the dev tool landscape and process
▪ Assist cooperative translation work
4
5. TapiJI Tool Suite
Architecture
▪ Extends the Eclipse IDE with smart Internationalization helps
▪ Integrates with the existing Babel Messages Editor
▪ Assists developers during day-to-day coding work
▪ Provides an extensible architecture
Java ext. RB ext. JSF ext. …
TapiJI Tools Core plug-ins
Editor Enhancements
Eclipse Babel Messages Editor
Eclipse IDE
5
6. TapiJI Tool Suite
Feature overview
▪ Reporting of I18N problems
▪ Quick Fix support for semi-automatically resolving reported
problems
▪ Marking configuration strings with NON-NLS comments
▪ Generation of Resource Bundle references
▪ Live preview of resource definitions
▪ Refactoring support for Resource Bundle references
▪ Resource Bundle view/explorer
6
7. TapiJI Tool Suite - Babel contribution
Parts contributed to the Eclipse Babel project
▪ TapiJI specific enhancements of Messages Editor
▪ The Tool Suite‘s core plug-ins
▪ Java and RB extension plug-ins
Java ext. RB ext. JSF ext. …
TapiJI Tools Core plug-ins
Editor Enhancements
Eclipse Babel Messages Editor
Eclipse IDE
7
8. Outline
1 The TapiJI project
2 Refactoring of resource references
3 Stand-alone translation tools
4 Whats next / Future work
5 Links / References / Documentation
8
9. Refactoring support
Refactoring of Resource Bundle keys
▪ Proposal Context menu of Resource Bundle view
▪ Context menu in Babel Messages editor
▪ Short cut
Features
▪ Consistently modifies resource references
▪ Provides preview for inspecting refactoring changes
▪ Cal10n Refactoring support
▪ Abstract Syntax Tree (AST) & Visitor pattern
9
12. Outline
1 The TapiJI project
2 Refactoring of resource references
3 Stand-alone translation tools
4 Whats next / Future work
5 Links / References / Documentation
12
13. TapiJI Translator
Assists translation personell
Stand-alone application for editing Resource-Bundles
without the knowledge of a programming language
Generic translator with two platform specific
implementations
▪ RCP based single-user translator
▪ RAP based multi-user translator
13
15. RAP Translator
Additional features in contrast to RCP translator
▪ Web application
No local installation required
Always up-to-date
Multiple users
▪ Upload & Download of Resource-Bundles
▪ Simple user management
▪ Resource-Bundles are stored and maintained on the server
▪ Each user has an overview of his bundles
▪ File sharing
Simultaneous translation of Resource-Bundles
15
17. RAP Translator
Storage Management
▪ Eclipse workspace used as storage location
▪ Each user has his own project
User projects (name == username)
Temporary projects (name == session id)
▪ Resource Bundles are stored as project resources
Example
17
18. Outline
1 The TapiJI project
2 Refactoring of resource references
3 Stand-alone translation tools
4 Whats next / Future work
5 Links / References / Documentation
18
19. Future Enhancements
Internationalization workflow
▪ Development and Evaluation of a best practice I18N process
▪ Adapt tool suite for supporting the developed workflow
Mylyn integration
▪ Allow the creation of Internationalization tasks
▪ SCM/Diff integration to communicate change sets
Integration of mobile frameworks
▪ Allows the Internationalization of mobile Applications
▪ Planned for Android and iOS
19
20. Future Enhancements
Cal10n Support
▪ Enhance Tool Suite with support for Compiler assisted L10N
▪ Resource keys are mapped to enum values
Integration of message and number formatters
▪ Use ICU4J provided features for encoding and formatting
▪ Enables target language specific formatting of messages,
numbers, currency, …
RAP Translator enhancements
▪ Optional GIT integration for user and storage management
▪ Translation glossary
▪ Event-driven user notification
20