450 likes | 813 Views
Internationalization. By: Paul Cerny. Agenda. Introduction Terms and Definitions Education Internationalization Process What to Watch For Companies Available Tools/Products Positives/Negatives Conclusion. Introduction.
E N D
Internationalization By: Paul Cerny
Agenda • Introduction • Terms and Definitions • Education • Internationalization Process • What to Watch For • Companies • Available Tools/Products • Positives/Negatives • Conclusion
Introduction • Early software was developed for use within the United States for English users because that is what the market for software was years ago. • Now, the market for software has become global, and many of the global markets are very different in comparison to the United States.
Terms and Definitions • Globalization (g11n) – The process of which all aspects of a business are moved to a global scale. • Internationalization (i18n) – creating or modifying software in such a way that it is easy to adapt to many different markets on a global scale. • Many people interchange globalization and internationalization. • Localization (L10n) – Taking software and updating it for deployment in one particular market or location. • GILT- Acronym for G11n, i18n, L10n, and Translation
Education • ABET and other accreditation committees have added items dealing with software in the global market. • Very few classes dedicated to i18n • Learning as you go in the field • Lack of International Application • Study Abroad
i18n • Should You Internationalize? • Target Consumer • Objectives • Economics • Applied to any software • Time to Market • Drawbacks • Reusability of components • Cross-Cuts Software
i18n Typical Process • Create software with no regards to I18N following normal software development model • Re-engineer software for each new language or location • Problems • Time/Cost • Multiple versions of the same software • Projects are unique
i18n Process • For New Software: • START EARLY • Plan and budget well • Separate Requirements • Concurrent Process • Aspect-Oriented Development • No Industry Standard Process • Localization • Testing
i18n Process • For Existing Software: • Much more complicated • May Require lots of redesign • Locate all instances of items to be extracted • Use Software Tools to modify code • Localization
I18n Process • Variants of i18n software • Monolingual • Multilingual • Multilingualization • Best practice • Run time • Compile time
Testing/Quality • Not just the functionality of the software • Extra Layers of testing • Many different pieces • Resource Files • Unicode • Testing done on localized software • Difficult to test everything • Interaction with foreign software • Automation is improbable
L10n • Steps vary from project to project based on objectives • Partial localization is possible • Common Steps • UI adjustments • I/O • Translation • Support/Installation • Customization
What to Watch For • User Interface • Language Barriers • Translations • Grammar • Text Length • Direction • Character Sets/Unicode • UTF-8/UTF-16
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds • Sounds
What to Watch For • User Interface • Cultural Differences • Laws/Censorship • Customs • Language Barriers • Translations • Grammar • Text Length/Direction • Character Sets/Unicode • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Cultural Differences • Laws/Censorship • Customs • Colors • Symbols • Sounds
What to Watch For • Code • Hardcoded • Default Values • Strings • Date/Time • MM/DD/YY • DD/MM/YY • Currency • Symbol • Digit groupings • print("This is a bad thing to have"); • cout << "This also is a bad thing to have”;
i18n Platform • All common programming languages can be internationalized • Java and many others have large support bases • IDE’s
Impact of Open Source on i18n • Allows for users to create own localized versions of software • Follows basic early i18n model with straight localization • Extra criteria from the developer
i18n Companies • Size is irrelevant • Many companies have become multinational • Consultants • Xencraft • RIC International • Lingoport • HighTechPassoport
Available Tools/Software • TranStrL- isolates embedded string • Various consultant in-house software • Globalyzer – rule set and tracking software • Cisco • McAfee • Philips • Yahoo • Translation Services
Available Tools/Software • ICU- International Components for Unicode • C/C++ and Java Libraries • OpenSource • Widespread Usage • jQueryplugin for web design • Eclipse • KBabel • API’s • And Many More!
Positives • Larger Consumer Base • Consumers are more likely to use localized software • Single Source Code • Expandability • Maintenance • Quality Assurance • Profits/Bottom Line/ROI
Negatives • Time to market • Reusability in other projects • Risk • Security Concerns • Flexibility of i18N • Performance of the system • Man-hours
Conclusion • Software is moving to the global market and staying there. The proper internationalization of the software greatly increases the chances for success with the software.
References • [1]Abufardeh, S., Magel, K. (2009). Software Internationalization: Crosscutting Concerns across the Development Lifecycle. Proceedings of International Conference on New Trends in Information and Service Science. 10.1109/NISS.2009.202. Retrieved from http://ieeexplore.ieee.org/Xplore • [2]Abufardeh, S., Magel, K. (2009). Software Internationalization: Testing Methods for Bidirectional Software. Proceedings of the Fifth International Joint Conference on INC, IMS, and IDC. 10.1109/NCM.2009.359. Retrieved from http://ieeexplore.ieee.org/Xplore • [3]Guo, X., Tay, W., Sun, T., Urra, R.A., (2008). Intelligent Multilingual Software Testing Tool. Proceedings of IEEE International Conference on Networking, Sensing, and Control. 10.1109/ICNSC.2008.4525316. Retrieved from http://ieeexplore.ieee.org/Xplore • [4]Lingoport. (2007). Software Internationalization Services and Tools to Ensure Software Localization Success. Retrieved from http://www.lingoport.com/ • [5]Microsoft (2011). Globalization Step-by-Step. Retrieved from http://msdn.microsoft.com/en-us/goglobal/bb688110.aspx • [6]Purvis, M., Hwang, P., Purvis, M., Madhavji, N., & Cranefield, S. (2001). A Practical Look at Software Internationalisation. Journal of Integrated Design & Process Science, 5(3), 79. Retrieved from EBSCOhost. • [7]Sun Microsystems (2001). SunTM Software Internationalization Taxonomy. Retrieved from http://developers.sun.com/dev/gadc/des_dev/i18ntaxonomy/i18n_taxonomy.pdf • [8]Wang, X., Zhang, L., Xie, T., Mei, H., Sun, J. (2009). Locating Need-To-Translate Constant Strings for Software Internationalization. Proceedings of the IEEE 31st International Conference on Software Engineering. 10.1109/ICSE.2009.5070535. Retrieved from http://ieeexplore.ieee.org/Xplore • [9]Yeo, A. (1996). Software internationalisation and localisation. Proceedings of the Sixth Australian Conference on Computer-Human Interaction, 10.1109/OZCHI.1996.560163 . Retrieved from http://ieeexplore.ieee.org/Xplore