# The m17n Library Documentation

### 1.6.2

## What is the m17n library?

The m17n library is a multilingual text processing library for the C language.

- It is a free and open source software.

- It is for any GNU/Linux and Unix applications/libraries.

- It realizes multilingualization of many aspects of applications/libraries.

The word "m17n" is an abbreviation of "multilingualization".

The m17n library provides following facilities to handle multilingual text.

- M-text: A data structure for a multilingual text. It is basically a string but with attributes called text property, and is designed to substitute for the C string. It is the most important object of the m17n library.

- Functions for creating and processing M-texts.

- Functions for converting M-texts from/to strings encoded in various existing formats.

- A huge character space, which contains all the Unicode characters and more non-Unicode characters.

- Chartable: A data structure that contains per-character information efficiently.

- Functions for inputting and displaying M-texts on a window system.

## How to use it?

Simply include <m17n.h> in your program, and link it with the m17n library by -lm17n. See Introduction for the detail.

## External libraries and data

The m17n library utilizes these external libraries. They are not mandatory but many functions of the m17n library depend on them.

- m17n-db -- http://www.m17n.org/m17n-lib-en/download/m17n-db-1.5.0.tar.gz

  Provide various information to the m17n library.

- libxml2 -- http://xmlsoft.org/

  Used by the functions mtext_serialize() and mtext_deserialize(). Those functions return NULL when libxml2 is not available,

- fribidi -- http://fribidi.sourceforge.net/

  Used for BIDI processing. If it is not available, the rendering engine of the m17n library can't handle such script as Arabic and Hebrew correctly.

- freetype -- http://www.freetype.org/

  Used for handling local fonts.

- fontconfig -- http://www.fontconfig.org/

  Used for handling local fonts supported by the freetype library.

- fontconfig -- http://freedesktop.org/Software/fontconfig

  Used for finding local fonts in combination with Xft.

- xft -- http://freedesktop.org/Software/Xft

  Used for drawing text with local fonts by X Render Extension of X server in combination with fontconfig.

- GD

  Used for rendering text with local fonts on bitmap/pixmap.

- libotf -- http://www.m17n.org/libotf/

  Used for handling OpenTypee fonts in combination with freetype and Xft.

- anthy -- http://anthy.sourceforge.jp/

  Used for the Japanese input method ja-anthy.mim.

- wordcut -- http://thaiwordseg.sourceforge.net/

  Used for finding Thai word boundary in the example program example/linebreak.c.

## Contact us:

Global IT Security Group
Information Technology Research Institute
National Institute of Advanced Industrial Science and Technology

Web: http://www.m17n.org/m17n-lib-en/

Bug report: m17n-lib-bug-XXXX@m17n.org (Replace XXXX with current year in 4 digits.)

Mailing lists: http://www.m17n.org/m17n-lib-en/mailinglist.html

## Acknowledgements

Special thanks to:

- Dimitri van Heesch <dimitri@stack.nl>

  Author of Doxygen <http://www.stack.nl/~dimitri/doxygen/>. Without this tool, it would have been impossible to create this documentation.

- Information-technology Promotion Agency (IPA), Japan

  Writing this documentation was partially funded by Information-technology Promotion Agency (IPA) <http://www.ipa.go.jp/about/english/index.html> in fiscal year 2001.

Copyright (C) 2001 Information-technology Promotion Agency (IPA)

Copyright (C) 2001-2011 National Institute of Advanced Industrial Science and Technology (AIST)

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Section, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the appendix entitled "GNU Free Documentation License".

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines