SoC 2006/Internationalization

From AbiWiki

(Difference between revisions)
Jump to: navigation, search
 
(One intermediate revision not shown)
Line 1: Line 1:
 +
Email:  blackhawkDOTmitATgmailDOTcom
-
*Email:*  blackhawk[[DOTmitATgmailDOTcom|DOTmitATgmailDOTcom]]
+
SUBMITTED TO Google Summer of Code, June 2006
-
*SUBMITTED TO:* Google Summer of Code, June 2006
+
MENTORING ORGANIZATION: AbiWord Community
 +
MENTOR: Tomas Frydrych, Core Developer, AbiWord
-
*MENTORING ORGANIZATION:* [[AbiWord|AbiWord]] Community
+
PROJECT TITLE: Internationalization and Architecture Enhancement of Rendering Mechanism in [[AbiWord|AbiWord]]
-
*MENTOR:* Tomas Frydrych, Core Developer, [[AbiWord|AbiWord]]
+
== Synopsis ==
-
+
-
 
+
-
*PROJECT TITLE:*  *_Internationalization and Architecture Enhancement of Rendering Mechanism in [[AbiWord|AbiWord]]_*
+
-
 
+
-
+
-
*SYNOPSIS:*
+
The project deals with enabling and pushing Pango API down the existing graphics code base for internationalized text to implement complex text language support (e.g, Indic languages), bi-directional  
The project deals with enabling and pushing Pango API down the existing graphics code base for internationalized text to implement complex text language support (e.g, Indic languages), bi-directional  
Line 23: Line 19:
-
*BENEFITS to the [[AbiWord|AbiWord]] Community / OSS Community:*
+
== Benefits to the [[AbiWord|AbiWord]] Community / OSS Community ==
[[AbiWord|AbiWord]] is an elegant cross-platform light weight word processor which runs on virtually any operating system with minimal porting  
[[AbiWord|AbiWord]] is an elegant cross-platform light weight word processor which runs on virtually any operating system with minimal porting  
Line 29: Line 25:
it reaches to a larger number of users across the globe.
it reaches to a larger number of users across the globe.
-
_But, the most striking feature of integrating Pango with [[AbiWord|AbiWord]] would be, making [[AbiWord|AbiWord]] a feasible option for the *OLPC* project._
+
But, the most striking feature of integrating Pango with [[AbiWord|AbiWord]] would be, making [[AbiWord|AbiWord]] a feasible option for the OLPC project.
-
 
+
-
*PROJECT  DETAILS:*
+
== Project Details ==
-
The project aims at working on the existing Graphics class using Pango library to implement multiple locale support for [[AbiWord|AbiWord]]. Currently, [[AbiWord|AbiWord]] cannot represent most of the Indic languages (viz, Devanagari, Punjabi, Tamil etc) and other scripts where a combination of glyphs is used to represent a character, generally termed as  
+
The project aims at working on the existing Graphics class using Pango library to implement multiple locale support for [[AbiWord|AbiWord]]. Currently, [[AbiWord|AbiWord]] cannot represent most of the Indic languages (viz, Devanagari, Punjabi, Tamil etc) and other scripts where a combination of glyphs is used to represent a character, generally termed as ''Ligature''. Pango, as an API, supports this functionality, as it has been written for laying out and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.x.
-
''Ligature''. Pango, as an API, supports this functionality, as it has been written for laying out and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.x.
+
Some of the Planned/Potential features proposed for the program include:
Some of the Planned/Potential features proposed for the program include:
Line 59: Line 53:
-
*DELIVERABLES:*
+
== Deliverables ==
-
''Internationalization and Pango Intergration on [[AbiWord|AbiWord]]''
+
Internationalization and Pango Intergration on AbiWord
-
*MOTIVATION:*
+
== Motivation ==
-
Gone are the days , where software used to *speak* only one human language at a time. Each country or region needed its own version. In some cases, internationally relevant features were shipped onto the
+
Gone are the days, where software used to speak only one human language at a time. Each country or region needed its own version. In some cases, internationally relevant features were shipped onto the
-
English language products, while in other cases, the English and international versions were completely separate products, perhaps sharing some basic code, but often sharing little more than the product''s name.
+
English language products, while in other cases, the English and international versions were completely separate products, perhaps sharing some basic code, but often sharing little more than the product's name.
-
Even if a piece of software was functionally suitable for use in more than one country, producing an appropriate language version of that product was difficult. This was because the menus, dialog boxes and messages which made that product''s user interface (UI) were often written directly in the program source code (using printf type constructs).  
+
Even if a piece of software was functionally suitable for use in more than one country, producing an appropriate language version of that product was difficult. This was because the menus, dialog boxes and messages which made that product's user interface (UI) were often written directly in the program source code (using printf type constructs).  
Luckily, today  more and more software developers have realized that if they design their products from the beginning to understand  
Luckily, today  more and more software developers have realized that if they design their products from the beginning to understand  
the requirements of  ''multi-locale computing'', these products will reach global markets sooner, be less expensive, and probably  
the requirements of  ''multi-locale computing'', these products will reach global markets sooner, be less expensive, and probably  
-
be much more successful than  products designed in the *old fashioned way*. Such multi-locale products can be called ''globally enabled''. Globally enabled software is a software that supports a wide range of languages, human cultural conventions, fonts,encodings and other features that make it useful, not just in one country or region, but around the world.
+
be much more successful than  products designed in the old fashioned way. Such multi-locale products can be called ''globally enabled''. Globally enabled software is a software that supports a wide range of languages, human cultural conventions, fonts,encodings and other features that make it useful, not just in one country or region, but around the world.
-
_Hence, the aim of this project is to make ''[[AbiWord|AbiWord]]'', *a globally enabled software product*._
+
Hence, the aim of this project is to make AbiWord, '''a globally enabled software product'''.
-
*PROJECT  SCHEDULE:*
+
== Project Schedule ==
-
3 weeks : [Literature Survey]
+
*3 weeks : [Literature Survey]
-
* Understanding the [[AbiWord|AbiWord]] Source Code Directory Structure.  
+
** Understanding the [[AbiWord|AbiWord]] Source Code Directory Structure.  
-
* Understanding the general application framewok with specific
+
** Understanding the general application framewok with specific emphasis on the graphics framework.    
-
  emphasis on the graphics framework.    
+
-
6-7 weeks:
+
*6-7 weeks:
-
* Code Review and design.
+
** Code Review and design.
-
* Code Generation.
+
** Code Generation.
-
* Bug Fixing/Triaging.
+
** Bug Fixing/Triaging.
-
* Testing.
+
** Testing.
-
2 weeks:
+
*2 weeks:
-
* Optimization.  
+
** Optimization.  
-
1 week:
+
*1 week:
-
* Documentation.  
+
** Documentation.  
-
FUTURE ENHANCEMENTS:
+
== Future Enhancements ==
-
Implementing a cross platform solution to the Graphics class using *Cairo*. Cairo provides sub-pixel text positioning and variety of otherfeatures which can be integrated with Pango to provide a complete solution with high quality text handling and graphics rendering.
+
Implementing a cross platform solution to the Graphics class using Cairo. Cairo provides sub-pixel text positioning and variety of other features which can be integrated with Pango to provide a complete solution with high quality text handling and graphics rendering.
-
*BIODATA:*
+
== Bio ==
I am a Senior Undergraduate Student in Computer Science and Engineering with a deep passion for Open Source. I have already  
I am a Senior Undergraduate Student in Computer Science and Engineering with a deep passion for Open Source. I have already  
undertaken, and am currently working on a similar open source project which involves Pango for internationalized text. Hence, my knowledge of Pango and prior work in this field will surely help me in successfully completing this project and achieving all the set goals on time.
undertaken, and am currently working on a similar open source project which involves Pango for internationalized text. Hence, my knowledge of Pango and prior work in this field will surely help me in successfully completing this project and achieving all the set goals on time.
In tune with my interest in research and development, I have embarked upon a number of research projects which have received national and  
In tune with my interest in research and development, I have embarked upon a number of research projects which have received national and  
-
international recognition through institutes like  IIT''s, IEEE, IE ISTE etc.   
+
international recognition through institutes like  IIT's, IEEE, IE ISTE etc.   
-
==== Contributors ====
+
[[Category:Summer of Code]]
-
* Main.[[DomLachowicz|DomLachowicz]] - 24 May 2006
+
[[Category:SoC Proposals]]
-
[[Category:To Convert]]
+

Current revision as of 19:27, 26 December 2010

Email: blackhawkDOTmitATgmailDOTcom


SUBMITTED TO Google Summer of Code, June 2006


MENTORING ORGANIZATION: AbiWord Community

MENTOR: Tomas Frydrych, Core Developer, AbiWord

PROJECT TITLE: Internationalization and Architecture Enhancement of Rendering Mechanism in AbiWord


Contents

Synopsis

The project deals with enabling and pushing Pango API down the existing graphics code base for internationalized text to implement complex text language support (e.g, Indic languages), bi-directional language support (i.e languages having a mix of both RTL text as well as LTR text e.g, Arabic, Hebrew etc.) and other text rendering features for AbiWord.


Benefits to the AbiWord Community / OSS Community

AbiWord is an elegant cross-platform light weight word processor which runs on virtually any operating system with minimal porting requirements. Since, this project deals with *internationalizing* AbiWord and enhancing its existing features for multiple locales, it reaches to a larger number of users across the globe.

But, the most striking feature of integrating Pango with AbiWord would be, making AbiWord a feasible option for the OLPC project.

Project Details

The project aims at working on the existing Graphics class using Pango library to implement multiple locale support for AbiWord. Currently, AbiWord cannot represent most of the Indic languages (viz, Devanagari, Punjabi, Tamil etc) and other scripts where a combination of glyphs is used to represent a character, generally termed as Ligature. Pango, as an API, supports this functionality, as it has been written for laying out and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.x.

Some of the Planned/Potential features proposed for the program include:

  • Complete replacement and overhaul of the existing Graphics class

i.e, gr_UnixGraphics with gr_UnixGraphicsPango class for handling on-screen rendering as well as printing. [At present, the Pango class inherits from the base Unix class].

on the *gnome-print* front. At present gnome-print is already in use but there is a mismatch between the on-screen rendering and the print rendering, especially for composite characters. Hence, gnome-print work specific to the pango graphics class has to be done.

  • Implement features through which print can be enabled via

gnome-print from the command line.

  • Optimizing performance, of both, memory as well as speed, which

involves some compile time options to allow AbiWord to work well on low specifications systems too (viz, Embedded Devices).

  • Working on the existing code to make it optimized, stable and

feature complete.


Deliverables

Internationalization and Pango Intergration on AbiWord


Motivation

Gone are the days, where software used to speak only one human language at a time. Each country or region needed its own version. In some cases, internationally relevant features were shipped onto the English language products, while in other cases, the English and international versions were completely separate products, perhaps sharing some basic code, but often sharing little more than the product's name. Even if a piece of software was functionally suitable for use in more than one country, producing an appropriate language version of that product was difficult. This was because the menus, dialog boxes and messages which made that product's user interface (UI) were often written directly in the program source code (using printf type constructs). Luckily, today more and more software developers have realized that if they design their products from the beginning to understand the requirements of multi-locale computing, these products will reach global markets sooner, be less expensive, and probably be much more successful than products designed in the old fashioned way. Such multi-locale products can be called globally enabled. Globally enabled software is a software that supports a wide range of languages, human cultural conventions, fonts,encodings and other features that make it useful, not just in one country or region, but around the world.

Hence, the aim of this project is to make AbiWord, a globally enabled software product.


Project Schedule

  • 3 weeks : [Literature Survey]
    • Understanding the AbiWord Source Code Directory Structure.
    • Understanding the general application framewok with specific emphasis on the graphics framework.
  • 6-7 weeks:
    • Code Review and design.
    • Code Generation.
    • Bug Fixing/Triaging.
    • Testing.
  • 2 weeks:
    • Optimization.
  • 1 week:
    • Documentation.


Future Enhancements

Implementing a cross platform solution to the Graphics class using Cairo. Cairo provides sub-pixel text positioning and variety of other features which can be integrated with Pango to provide a complete solution with high quality text handling and graphics rendering.


Bio

I am a Senior Undergraduate Student in Computer Science and Engineering with a deep passion for Open Source. I have already undertaken, and am currently working on a similar open source project which involves Pango for internationalized text. Hence, my knowledge of Pango and prior work in this field will surely help me in successfully completing this project and achieving all the set goals on time. In tune with my interest in research and development, I have embarked upon a number of research projects which have received national and international recognition through institutes like IIT's, IEEE, IE ISTE etc.

Personal tools