Draft Java/ICU Internationalization Architecture Mark Davis.

Slides:



Advertisements
Similar presentations
Beyond Text Representation Building on Unicode to Implement a Multilingual Text Analysis Framework Thomas Hampp – IBM Germany Content Management Development.
Advertisements

Supporting Persistent Objects In Python Jeremy Hylton
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
MOD III. Input / Output Streams Byte streams Programs use byte streams to perform input and output of 8-bit bytes. This Stream handles the 8-bit.
Michael Pizzo Software Architect Data Programmability Microsoft Corporation.
26th Internationalization and Unicode ConferenceSan José, CA, September 2004 ICU Overview The Open-Source Unicode Library, v3.0 Markus Scherer ICU Manager.
What's new in Microsoft Visual C Preview
© Copyright 2012 STI INNSBRUCK Apache Lucene Ioan Toma based on slides from Aaron Bannert
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Crystal Reports User Function Libraries Bruce Ferguson Chelsea Technologies Ltd A Presentation to the Auckland Visual Basic User Group, 28 April, 1999.
23rd Internationalization and Unicode Conference, Prague, Czech Republic – March, 2003 Common XML Locale Repository Dr. Mark Davis
Lab#1 (14/3/1431h) Introduction To java programming cs425
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
CS-341 Dick Steflik Introduction. C++ General purpose programming language A superset of C (except for minor details) provides new flexible ways for defining.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Examining the Code [Reading assignment: Chapter 6, pp ]
24rd Internationalization and Unicode Conference, Atlanta, GA USA – Sept 2003 Common XML Locale Repository Dr. Mark Davis Steven.
26 April 2001 Unicode and Windows XP, IUC 18 (Hong Kong) Unicode and Windows XP Cathy Wissink Program Manager, Globalization Windows Division Microsoft.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Sophia Antipolis, September 2006 Multilinguality, localization and internationalization Miruna Bădescu Finsiel Romania.
San José, CA – September, 2004 Localizing with XLIFF and ICU Markus Scherer Raghuram (Ram) Viswanadha IBM San.
Overview of Microsoft.Net and Vb.Net ITSE 2349 Spring 2002 Material from Microsoft.Net an Overview for ACC faculty by Stuart Laughton and Introduction.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
119th International Unicode ConferenceSan Jose, California, September 2001 An Overview of ICU Helena Shih Chapman Doug Felt
Internationalization and the Java Stack Part 1 Matt Wheeler.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
The Company….  The Market Leader in Globalization Technology –Pioneers in visual translation environments –Solutions for major platforms & programming.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Unicode Support in ICU for Java Doug Felt Globalization Center of Competency, San Jose, CA.
Chapter 1 Introduction. Goal to learn about computers and programming to compile and run your first Java program to recognize compile-time and run-time.
.NET Framework Danish Sami UG Lead.NetFoundry
May 9, 2002Serguei A. Mokhov, 1 Kickstart Intro to Java Part I COMP346/ Operating Systems Revision 1.6 February 9, 2004.
Basic Java Syntax CSE301 University of Sunderland Harry R Erwin, PhD.
Open Your Mind to Open Source MPDO’s & EOPR’s Centre for IT & eGovernance AMR-APARD Hyderabad Welcome!
Chapter 14 Internationalization F Processing Date and Time –Locale –Date –TimeZone –Calendar and GregorianCalendar –DateFormat and SimpleDateFormat F Formatting.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 26 Internationalization.
Chapter 12: Internationalization Processing Date and Time Processing Date and Time  Locale  Date  TimeZone  Calendar and GregorianCalendar  DateFormat.
Core Java: Essential Features 08/05/2015 Kien Tran.
10 – 12 APRIL 2005 Riyadh, Saudi Arabia. Building multi-lingual ASP.Net application that handle western languages and Arabic with a single code base.
VB and C# Programming Basics. Overview Basic operations String processing Date processing Control structures Functions and subroutines.
Java Simple Types CSIS 3701: Advanced Object Oriented Programming.
Eagle: Maturation and Evolution 17th Annual Tcl Conference Joe Mistachkin.
Copenhagen, 6 June 2006 EC CHM Multilinguality Anton Cupcea Finsiel Romania.
Web Technologies COMP6115 Session 4: Adding a Database to a Web Site Dr. Paul Walcott Department of Computer Science, Mathematics and Physics University.
Chapter 14 Internationalization F Processing Date and Time –Locale –Date –TimeZone –Calendar and GregorianCalendar –DateFormat and SimpleDateFormat F Formatting.
C# C1 CSC 298 Elements of C# code (part 1). C# C2 Style for identifiers  Identifier: class, method, property (defined shortly) or variable names  class,
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
PHP vs. Python. Similarities are interpreted, high level languages with dynamic typing are Open Source are supported by large developer communities are.
1 Chapter 20 Internationalization. 2 Objectives F To describe Java's internationalization features (§ 20.1). F To construct a locale with language, country,
“Hello World” In Java Mehdi Einali Advanced Programming in Java 1.
Internationalization Slide 1©SoftMoore Consulting.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
INTRODUCTION CHAPTER #1 Visual Basic.NET. VB.Net General features It is an object oriented language  In the past VB had objects but focus was not placed.
San Jose, California September 2002 What is ICU? Roadmap and Myths Helena Shih Chapman ICU Development Manager IBM Globalization Center of Competency.
Cupertino, CA, USA / September, 2000First ICU Developer Workshop1 ICU Low-level Utilities and Resource Management Vladimir Weinstein Globalization Center.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Shared Memory December 2013.
MNCS: DMA Extensions for Multinational Character Strings DMA Technical Committee Integration Subcommittee June 16, 1999 [ notes]
Collation in ICU 1.8 Mark Davis Chief SW Globalization Architect IBM.
1/18/2000STScI Software Workshop Object-oriented Design Elements of the OPUS Application Programming Interface Data Processing Team.
Random Logic l Forum.NET l Localization & Globalization Forum.NET ● May 29, 2006.
KID - KLOE Integrated Dataflow
Chapter 14 Internationalization
Java programming lecture one
An ICU Overview Mark Davis Chief Globalization Architect, IBM
CS 3304 Comparative Languages
Operation System Program 4
Chapter 35 Internationalization
Eagle: Maturation and Evolution
Chap 1. Getting Started Objectives
Presentation transcript:

Draft Java/ICU Internationalization Architecture Mark Davis

Summary: Java / ICU Shared basic architecture –Locales, resources, services, data-driven –Same development team: Java and C/C++ –Core ICU4j part of Java 1.1 and later –API syntax customized to programming language Cross-platform Fully extensible Thread-safe model Open Source: ICU4j, ICU4c

Locales Name, not data structure Language, Country, Variant –English –English, US –Norwegian, Norway, Nynorsk –Italy, Italian, Euro

Resources General Purpose: map Key Data –Application-Specific Data –General Services Data String String Array:recurse Key Data:recurse Java: arbitrary Objects as well

Resources Inheritance Find Resource en_us_some-variant en_us en defLang_defCountry defLang root Results cached Find Bundle

Data Flexible loading structure Memory mapped files DLLs Simple loading

Services Locale-Independent –Unicode characters: storage / access, properties –Character conversion Locale or ID-Dependent Explicit or Default Locale –Format/parse: number/currency/date-time/msgs,… –Language-sensitive collation, searching,… –Boundaries: character, word, line-wrap, sentence –Display names: country / language –Transliteration, casing

Open, Use, Close Java col = Collator.getInstance ( aLocale ); … sortKey = col.getSortKey ( aStr ); ICU4c col = ucol_open( aLocale, &err); … keyLen = ucol_getSortKey ( col, aStr, -1, sortKey, maxLen ); … ucol_close ( col );

Why Open/Close? –Amortize setup over multiple uses With convenience routines for one-time or simple use –Full Multi-locale, Multi-thread Example: Open sortFrance and sortUS Use at same time, in same thread or different threads Constant data shared between threads –Note: Different threads need different opens

Threading Common read- only data French Common read- only data German Thread 1Thread 2 Collator State Ptr Collator State Ptr Collator State Ptr

Error Handling Java –Exceptions C / C++ –Local error parameter: &err –Supports chaining –Minimal compiler demands

Data Driven Wherever possible, services are data-driven. Examples –Collations: z < þ or И < Й –Numbers: #,##0.00 –Transliterations: a <> α or ps <> ψ Services: built at compile time or runtime Services: built by merging –E.g. French + Arabic sorting

Data Storage Format Java –Class files (compiled) –Property files (processed at runtime) ICU4c –Precompiled DLLs or Memory-mapped file –Flattened structure: memory structure = disk –Collation ICU4c 1.7

Character Conversions List supported names, aliases Low-level buffer support We handle details no copying parts

Summary: Java / ICU Shared basic architecture –Locales, resources, services, data-driven –Same development team: Java and C/C++ –Core ICU4j part of Java 1.1 and later –API syntax customized to programming language Cross-platform Fully extensible Thread-safe Open Source: ICU4j, ICU4c