Software Applications for Cultural Diversity
Total Page:16
File Type:pdf, Size:1020Kb
Software Applications for Cultural Diversity Rod Davis, SIL International [email protected], [email protected] Good morning, my name is Rod Davis from SIL International. I work as the IT Manager for SIL’s office here in Bamako. I’m here on behalf of Michael Cochran, the head of Software Development in Dallas, Texas. 1 AboutAbout SILSIL InternationalInternational • faith-based International NGO • language-based development • research, translation and literacy • active in 20% of the world’s languages SIL is a faith-based International Non-Governmental Organisation that partners with language communities to help them meet the language-based parts of their development goals. For the last 70 years SIL has served people groups through research, translation and literacy. Today we have active projects in 20% of the world’s languages. 2 SILSIL LanguageLanguage SoftwareSoftware DevelopmentDevelopment • 53 software development personnel • Member of the Unicode Consortium and very active on behalf of minority languages • 60 software titles to support the work of language fieldworkers Over the years SIL has developed software to meet the challenges we face. Today we have 26 people working full-time on software development and another 27 working part-time. We are a member of the Unicode Consortium and are very active in ensuring that minority languages are included. SIL has developed more than 60 pieces of software to support the work of its fieldworkers. Most are available to download free of charge. 3 One of the Biggest Challenges: Dealing with Complex Scripts • Encoding – Transition to Unicode • Input (Keyboarding) – Complexity – Extensibility • Type Design – Unicode based – Smart-font compiler technology • Rendering – Diacritic placement, Contextual shaping, Ligatures, Reordering/splitting, Bi-directionality We have had to overcome a variety of challenges. For example languages with complex scripts present a variety of keyboarding and rendering challenges. These challenges can be categorized into four different, but closely related, domains: encoding, input, type design, and rendering. 4 Solutions in Dealing with Complex Scripts • Encoding – TechKit, a utility to convert legacy encodings to Unicode – http://scripts.sil.org: SIL resource site with information, tutorials, utilities, etc. for making the transition to Unicode • Input – Keyman (Windows); http://tavultesoft.com – KMFL (a Linux ‘Keyman’ still under development) – IMEs (Input Method Editors) • Type Design – Graphite Compiler adds Graphite rendering tables to a TrueType font, giving it ‘smart-font’ capability • Rendering – Graphite rendering engine: Can handle basic display of any complex script in use today. • NOTE: These technologies can benefit not only ‘complex scripts’, but also orthographies with special diacritics or a few non-Roman characters. Our software development staff has been very active in developing solutions in each of these domains. A lot of thought and work has been put into providing tools and resources for making the transition to Unicode. Keyman is a keyboarding solution that was developed by the son of an SIL member; this product is in wide use and very mature. Graphite is the culmination of an effort to provide an extensible, open-source solution to handling any complex script system in use today. 5 WhatWhat isis aa SmartSmart Font?Font? • A font containing data describing how the glyphs are to displayed. • The smart font data is in the form of tables inside the font file itself. • A rendering engine interprets the font tables to appropriately render the glyphs. • In contrast, a ‘dumb font’ has only a direct correspondence between the data characters and the displayed glyphs. Smart font technology was developed to deal with the complex rendering issues associated with complex scripts. A smart font incorporates tables within the font file itself that contain data, associated with the codepoints, that specify how to display a glyph and how to appropriately contextualize that glyph within text. This is in contrast to a ‘dumb font’, that has only a direct correspondence between the data characters and the displayed glyphs. 6 WhatWhat isis Graphite?Graphite? • A package, developed by SIL International, that can be embedded into other applications, adding "smart font behavior" to that application. • This package includes the following: – A programming language (GDL) for specifying the font's behavior – A compiler for building the smart font – A rendering engine for displaying text using the smart font • Note that it is open-source: http://graphite.sil.org/ http://sourceforge.net/projects/silgraphite Note that this is a package designed for software developers. The package includes: A programming language (GDL) for specifying the font's behavior A compiler for building the smart font A rendering engine for displaying text using the smart font To be useful it must be embedded in another application and a smart font created. 7 WhatWhat MakesMakes GraphiteGraphite Special?Special? • It differs from other complex script technologies: – Unlike OpenType, it does NOT assume that script-specific information is incorporated at the application or operating system level (as in Uniscribe). – It is extensible, and provides support for characters in Unicode’s Private Use Area ranges … unlike Uniscribe, which handles only script behaviors already part of the Unicode standard. – It is an open-source solution versus proprietary. – It can handle basic display of any complex script in use today. – The following slides demonstrate the types of rendering difficulties that Graphite was designed to handle: Graphite, unlike other existing solutions, is flexible, extensible, open-source. It is appropriate in every respect for incorporating into software used in minority language scripts for which other solutions would not work well (or at all). It can handle basic display of any complex script in use today, as we can see on the following slides. 8 http://scripts.sil.org/ Applications dealing with complex scripts need to handle different baselines and directions… 9 http://scripts.sil.org/ context sensitive glyphs… 10 http://scripts.sil.org/ multiple and contextually positioned diacritics… 11 http://scripts.sil.org/ glyphs that are typed in one order but are then displayed in another order… 12 http://scripts.sil.org/ and glyphs that split or combine in various contexts. 13 SILSIL’’ss WorkWork withwith UNESCOUNESCO • In 2003, SIL International and UNESCO engaged in a cooperative project as part of UNESCO’s Initiative B@bel effort. http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&cat_id=Babel • Goal: Enable the development of complex script support in information and communication technologies (ICTs). • Project SILA: A Graphite-enabled version of Mozilla – Project Goal: To enable minority language communities to publish on the Internet … • Graphite-enabled Edit Control Version 0.9 – basic Graphite edit control for data input applications – SDK for Windows 2000/XP, developer’s guide and well-commented source code • Modified version of WorldPad -- Graphite-Enabled Text Processor – Simple text processor for Windows 2000/XP For most of 2003, UNESCO and SIL International were engaged in a cooperative project as part of UNESCO’s Initiative B@bel effort. The stated goal was to enable the development of complex script support in information and communication technologies (ICTs). 14 GraphiteGraphite--enabledenabled MozillaMozilla Contrast Internet Explorer on the left with Graphite-enabled Mozilla on the right. The Graphite-enabled version of Mozilla displays the multiple diacritics separately as intended. http://sila.mozdev.org/silab2.htm On the left you can see that Internet Explorer just displays multiple diacritics all superimposed on one another, whereas on the right, Graphite-enabled Mozilla displays the diacritics separately as intended. 15 GraphiteGraphite--enabledenabled MozillaMozilla EE--mailmail Here is an e-mail in Burmese script. We developed the Graphite-enabled version of Mozilla in partnership with UNESCO as part of their Initiative B@bel. 16 GraphiteGraphite--enabledenabled MozillaMozilla InstantInstant MessagingMessaging Here is instant messaging with Burmese script in both the input field and the display area. 17 GraphiteGraphite--enabledenabled WorldPadWorldPad http://www.ethnologue.com/tools_docs/fieldworks.asp The Graphite rendering engine enables the WorldPad word-processing application to stack several diacritics both above and below the base glyph. 18 LessonsLessons learnedlearned We are participating in or have created several open source development efforts. We have learned that… – FLOSS (Free/Libre Open Source Software) Linux is very attractive to low income groups we work with. – Setup and maintenance of open source OS and software is too complex for most of our end users. – Open source development is complex. – Getting support for complex minority scripts into the “core” builds of open source software is hard. – Localization of software is complex and time consuming. – Despite the difficulties, the benefits are great and we are heading in this direction on a number of fronts. We are participating in or have created several open source development efforts. We have learned that… •open source development is complex •getting support for complex minority scripts into the “core” builds of open source software is hard •localization of software is complex and time consuming •setup and maintenance of FLOSS is too complex for most of our end users 19 WhatWhat