Globalizing Your Software By Parag Nemade Fedora Contributor

Slides:



Advertisements
Similar presentations
Internationalization / localization Data quality issues and e-Learning strategies Rui Figueira GBIF Portugal GBIF Mentoring project 2014 Madrid, 22 Jan.
Advertisements

JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
Multilingual support; interface languages Course material prepared by Greenstone Digital Library Project University of Waikato, New Zealand andNational.
CS211 Data Structures Sami Rollins Fall 2004.
Internationalization of Java Platform Presenter: Ataru Nakazawa Advisor: Xiaoping Jia Date: January 23, 2004.
1 ICS103 Programming in C Lecture 2: Introduction to C (1)
CS 101 Problem Solving and Structured Programming in C Sami Rollins Spring 2003.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
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.
MVC pattern and implementation in java
Internationalization (I18N) Sufficiency Testing Presented to Seattle Area Software Quality Assurance Group June 19, 2003.
Sakai: Localization & Internationalization Beth Kirschner University of Michigan
Internationalization and the Java Stack Part 1 Matt Wheeler.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
Internationalization and the Java Stack Matt Wheeler.
Company Confidential 1 This presentation is solely for the use of Patni personnel. No part of it may be circulated, quoted, or reproduced for distribution.
Bing Hong OSIsoft Internationalization &
Internationalization in the Java Stack Matt Wheeler.
Programming With C.
Chapter 1 Working with strings. Objectives Understand simple programs using character strings and the string library. Get acquainted with declarations,
Open Your Mind to Open Source MPDO’s & EOPR’s Centre for IT & eGovernance AMR-APARD Hyderabad Welcome!
C Programming Laboratory I. Introduction to C Language /* the first program for user */ #include int a=0; int main(void) { printf(“Hello World\n”); return.
1 Susan Su, manager Asian Globalization Center, Sun Microsystems August Localization imperatives, challenges, and solutions.
Graphical User Interfaces Tonga Institute of Higher Education.
Okalo Daniel Ikhena Dr. V. Z. Këpuska December 7, 2007.
Copenhagen, 6 June 2006 EC CHM Multilinguality Anton Cupcea Finsiel Romania.
©SoftMooreSlide 1 Introduction to HTML: Forms ©SoftMooreSlide 2 Forms Forms provide a simple mechanism for collecting user data and submitting it to.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
Computer Programming A simple example /* HelloWorld: A simple C program */ #include int main (void) { printf (“Hello world!\n”); return.
Chapter – 8 Software Tools.
Random Logic l Forum.NET l Localization & Globalization Forum.NET ● May 29, 2006.
1 April 9, Internationalization and Localization William Cohen NCSU CSC 591W April 9, 2008.
Globalization Subtitle Presenter name Presented by Fedora G11N
Internationalization
Metropolia 2013 C# programming and .NET framework
Introduction to C++ Programming
Chapter 2 Introduction to C++ Programming
Input and Output Upsorn Praphamontripong CS 1110
Fedora Project / Red Hat
Introduction to Python
Formatted Input/Output
Computer Programming Chapter 1: Introduction
Collecting Information from the User
Design localization-friendly user interface
Development activities
Design & Technology Grade 7 Python
CSC 113: Computer Programming (Theory = 03, Lab = 01)
Internationalization
A First Book of ANSI C Fourth Edition
Functions CIS 40 – Introduction to Programming in Python
The Websites Team Robert Mayr (robyduck).
Formatted Input/Output
Databases.
Introduction to CS Your First C Programs
Multilingual Application Testing
Computer Electronic device Accepts data - input
HOW TO CREATE A CLASS Steps:
Govt. Polytechnic,Dhangar
Introduction to C Topics Compilation Using the gcc Compiler
Introduction C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell.
Computer Electronic device Accepts data - input
Introduction to C++ Programming
Computer Science 111 Fundamentals of Programming I User Interfaces
Your first C and C++ programs
Introduction to C Topics Compilation Using the gcc Compiler
Appending or adding to a file using python
Let’s start from the beginning
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
Presentation transcript:

Globalizing Your Software By Parag Nemade Fedora Contributor

Agenda Introduction Internationalization Localization C – Example Python – Example

Introduction Globalization (G11N) is the process to globalize your work like software or business processes or any other thing that you want all world to understand and use it for their need in their own native language. For software, it is the process of adding internationalization (I18N) and localization (L10N) into your source code.

Internationalization Help to uniformly work your software across multiple regions. It includes adding i18n support in your code which will enable string entries for translators. Code to handle all international support without breaking core software functionality Should not create problem for data storage and display Help to set user locale settings such as date, number, currency, sorting, paper size. Users can input in their own language preferences.

Localization Translators to provide correct meaningful translations. (Mostly English to other language) Software will be available in additional languages not just only in English. Sometimes use minimal text compared to actual translations text to accommodate it on Labels, buttons. GUI messages, Documentation, websites, Marketing brochures are translated.

Code Flow for G11N Source Code Source Code Source Code Source Code I18N L10N G11N

Internationalization General G11N Workflow Internationalization Globalized Product/Software Product/Software Localization

Advantages No overlapping of translated strings over adjacent widgets, prevent re-translation For translators, it will be easy to just use single file like po format No need for duplicate strings translation, all are picked uniquely in pot file

Disadvantages Many places of messages in source code need to be modified to add g11n Extra time need to spent on testing i18n support Data encoding conversions Rendering of text (Character reordering, conjuncts) Text message length on UI widgets (auto-expansion, more space between adjacent widgets) Extra time need to spent on testing l10n support Translations text need to be minimized.

C – Example (Basic) #include <libintl.h> #include <locale.h> #include <stdio.h> #define _(X) gettext(X) int main(void) { setlocale(LC_ALL,""); bindtextdomain (“helloworld”, “.”); textdomain (“helloworld”); printf(_("Hello World!!\n")); return 0; }

C – Example (autotools) #include <config.h> #include <libintl.h> #include <locale.h> #include <stdio.h> #define _(X) gettext(X) int main(void) { setlocale(LC_ALL,""); #if ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); textdomain (GETTEXT_PACKAGE); #endif printf(_("Hello World!!\n")); return 0; }

C++ - Example #include <config.h> #include <libintl.h> #include <locale.h> #include <iostream> int main (){ setlocale(LC_ALL, ""); #if ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); textdomain (GETTEXT_PACKAGE); #endif std::cout << gettext("Hello world!!") << std::endl; }

Python - Example import gettext gettext.bindtextdomain('hello-py', '.') gettext.textdomain('hello-py') _ = gettext.gettext print _('Hello World!!')

G11N references Wiki → https://fedoraproject.org/wiki/G11N I18N → https://fedoraproject.org/wiki/I18N L10N →https://fedoraproject.org/wiki/L10N FLTG → https://fedoraproject.org/wiki/FLTG Zanata →http://fedora.zanata.org

Any Questions?

Thanks pnemade@fedoraproject.org #fedora-g11n on Freenode server