If you plan to offer your product in other languages, “internationalization” is a critical element in your overall development process.
Internationalization is the first step of a two-step process. It consists in generalizing your product to support as many languages as required. The second step - localization - consists in adapting the product to meet the needs of different languages and cultures. Internationalization reduces cost and time-to-market by making localization easier and avoiding work duplication.
Unfortunately, the complexity of internationalization is often underestimated, resulting in missed deadlines and cost overruns. This complexity arises primarily from the large number of issues involved and from their inherent pervasiveness: language issues can potentially affect every system, every component, every third-party tool, every line of code, every document, every help file, every test script, and every business process involved in releasing your product to the world.
Our workshop is designed to deliver maximum value in a minimum amount of time. The class is hosted at the location of your choice, either at your site or at a remote conference facility to minimize distractions. It is now also available in a self-paced eLearning format allowing organizations to train all new and old staff, at any time, at any place, at any pace.
- The first day is intended for all audiences: Software Architects/Managers, Software Engineers, Test Engineers, Tech Writing, Product Managers, Solution Managers, User Experience, Release Management, Customer Support, Directors, and any other stakeholders. Technical concepts are presented in a non-technical manner using visually intuitive and compelling graphics.
- The remaining time is targeted more for technical staff, but much of it remains understandable by all. Software architects, managers and engineers, as well as product managers should attend.
This workshop will prepare you for all aspects of an internationalization project. You will know the issues, you will know the pitfalls and you will know the solutions. The workshop will provide you with a clear understanding of industry best practices, how to apply them and what their benefits are.
All attending stakeholders within your organization will share a common terminology which is the most critical ingredient to enable clarity of design, good communication and true understanding.
The agenda described below is for a 3-day session. The first part (chapters 1 to 6) can also be used as an independent introductory module for all stakeholders. In its eLearning format, the course lasts roughly 12.5 hours, and can comfortably be taken in 10 sessions of 60-90 minutes each.
- The Problem Domain: What Are We Up Against?
The characteristics of different languages and writing systems are presented visually. Particular attention is paid to the requirements of Asian and Arabic languages. Differences in cultural conventions are also highlighted. This chapter tells us WHAT issues programmers, webmasters and managers should be concerned with (and often are not aware of).
- The globalization dimension; languages and scripts
- Asian & Middle-Eastern languages
- Visual presentation of linguistic & cultural differences that impact development
- Text processing: searching, sorting, transcoding, etc.
- Cultural formats: date, time, calendars, currency, etc.
- Key Globalization Concepts
Internationalization and Localization. Translation and what translators need. Levels of internationalization complexity. This chapter tells us WHY we should be concerned with the issues presented above, i.e. WHY we should prepare for translation.
- Globalization, Internationalization, Localization, Translation
- Internationalization complexity: dimensions and levels
- Ensuring translation quality
- Maintaining a global product: localizing the next version!
- Optimizing localization: glossaries & translation memories
- Graphical Model of Internationalization
An animated graphical model that illustrates the three basic tasks of internationalization: resource externalization, cultural generalization and preparation of the localization kit. Each of the three tasks is explored in more detail. This chapter shows us HOW, in general terms applicable to both software and Web sites, to prepare for translation
- Graphical model of core internationalization tasks
- Resource externalization
- Cultural generalization
- Localization kit generation and strategy
- Internationalization Project Management
From the business case to customer support, through requirements, architecture & analysis, development and testing. Avoiding the pitfalls; managing risk.
- Business case and ROI
- Multilingual requirements
- Risk management: the “baseline and compare” strategy
- Evaluation & planning;
- Roles and responsibilities
- Common myths and pitfalls
- Do’s and Don’ts
Numerous practical examples from real projects, visually illustrated.
- Dimensions of evil: concatenation, alignment, abbreviation
- Pluralization and message formatting
- Indexes and sorted lists
- Clueless Manipulation
- Testing internationalization
A brief and visual overview of internationalization testing issues for all (programmers, managers, etc.)
- A model of multilingual testing
- Testing resource externalization & pseudo-translation
- Testing cultural generalization & regression tests and pseudo-translation
- Testing the localization kit/infrastructure and localization process
- Managing multilingual testing: platform coverage and bug workflow
- Character Sets
- Single-byte character sets
- Multi-byte Asian character sets on Windows and Unix
- Unicode: a 21-bit character set
- Unicode: Character Set & Standard
- The 10 Unicode design principles
- The Unicode standard, annexes and technical reports
- UCD: Unicode Character Database
- Unicode resources: tools, books, etc.
- Unicode Representation: Choosing the Proper Form
- Standard encodings: UTF-8, UTF-16, UTF-32
- Encoding size comparisons
- Serialization & the Byte-Order Mark (BOM)
- Compression schemes: SCSU & BOCU-1
- Data stability: Unicode normalization
- The four Unicode normalization forms
- Unicode Implementation
- Unicode books, tools and libraries
- Transcoding and its complexity for bidirectional languages
- Text Boundaries: Grapheme Clusters, Words, Lines, Sentences
- Collation-Based Processes, Multilingual Collation Standards
- Data structures for efficient Unicode processing
- Locale identification: BCP 47
- Locale architecture (locale vs. language and country)
- Locale negotiation
- Complexities of language selection & suggested strategies
- Practical advice
- Resource organization & naming strategies
- The localization process
- inventory resource types & simplify
- define export format (XLIFF or …?)
- create extraction and merging tools
- The overall resource life-cycle
- Practical advice
- Input and Output
- Input methods and reading fields
- Fonts & text rendering
- Pan-Unicode fonts, font linking, Noto font
- Font attributes
- Debugging tips
Onsite attendee will receive a 650+ page booklet, with ample room for notes, complete with table of contents and glossary. The booklet is designed as a practical easy-to-use reference “book” for regular use during an internationalization project.
eLearning attendees will receive a PDF certification document if they pass the quizzes. The glossary mentioned above is available in HTML format on the eLearning site, while the booklets can be purchased separately.
The Arabic script is the most difficult to deal with in software.
This workshop teaches the key aspects of Arabization i.e. the process of adding Arabic support to software systems. It starts with a brief overview of the Arabic culture and follows with the Arabic writing system and its contextual rules, complex ligatures, harakat (vowels), numbers and bi-directional display, etc.
The workshop then covers Arabic data representation in depth: characters sets, encodings, contextual forms, Unicode Arabic blocks and the specific encoding issues for all character classes: letters, digits, neutrals, mirrors, lam-alef, harakat, etc.
With this foundation in place, it moves on to the Unicode Bidirectional Algorithm (UBA) describing basic concepts, rules, character classes, testing tools, development issues, etc. A chapter of common UBA problems and fixes is also presented.
Two more chapters focus on Input and Output. Input concerns the complexities of Arabic data entry and editing, including strange UBA side-effects and how to mitigate them. Output is about modern UI design issues including common controls, font selection, justification, etc.
The remaining chapters review Arabic/bidi support on major platforms: one chapter each for the Web, Android and IOS.
This course is intended for software/app developers, web developers, testers and team leaders, or anyone involved in Arabic support that has some technical background.
After taking this workshop you will be ready to start arabizing your product. You will know the main issues and common pitfalls and you will know the solutions. You will know what requirements to consider, what changes your software or Web site or app requires, and how to implement those changes.
The agenda described below is for a 1 ½-day session (with exercises, 2 days are required).
This workshop presumes that attendees have already taken the "All About Internationalization" workshop, either onsite or in the self-paced eLearning format.
- Arabic Culture
- History of the Arabic script, calligraphy, religion
- Arabic in today's world
- Arabic Writing System
- Basic Arabic alphabet (abjad), Persian vs. Arabic, Romanization
- Contextual shapes, kashida (tatweel), harakat, lam-alef and other ligatures
- Numeric display, digit shapes, decimal and thousands separators, mathematics
- Arabic Data Representation
- Logical vs. visual order, contextual forms vs. characters
- Legacy encodings (ASMO, ISO, Windows) & the Unicode Arabic blocks
- Representation and transcoding for: letters, harakat, numbers, neutrals, mirrors…
- The Unicode Bidirectional Algorithm (UBA)
- Basic concepts: Base direction, language insertions, directional runs
- Neutral character rules and mirror characters
- Numeric classes, rules, examples
- Bidi controls: RLM, LRM, RLE, LRE, RLO, LRO, PDF.
- New Unicode 6.3 directional isolates: LRI, RLI, FSI, PDI.
- Arabic Data Entry & Editing
- Arabic keyboard layouts and usage: selecting language and direction
- Entering text: sliding ("push-mode"), "jumping neutrals", mirrors, etc.
- The bidi cursor: selection operations with keyboard and mouse
- Quirks of bidi editing
- Selected UBA Problems & Fixes
- Hanging neutrals & parentheses
- Adjacent insertion reversal, mirrors or numbers on the wrong side
- Phone numbers, MAC adresses
- Embedded UBA problems: inside Word, PowerPoint, browsers, etc.
- A bug in Arabic Google Maps!
- Arabic Data Display
- Fonts: harakat support, ligatures, font pairing, font attributes
- Line wrapping and justification
- Layout: directional images, graphs, bidi forms, bidi digits, 2-column bidi form…
- Common controls: navigation, undo/redo, progress bars, buttons, ratings, sliders…
- Arabic on the Web
- Text metadata: encoding, language, direction
- Arabic HTML
- Arabic CSS
- Arabic Email
Each attendee will receive a 400+ page booklet, with ample room for notes, complete with table of contents and glossary. The booklet is designed to serve as a practical easy-to-use reference “book” for regular use during an internationalization project.