返回首页


一个快速的方式呈现在移动设备上的印度语言。简介
手机一直深受城市群众的青睐。通过移动设备是电话,但也应用程序的使用不仅使越来越多的农村群众。越来越多的人已经开始探索和使用手机娱乐等其他各种用途的,在音乐,游戏,聊天,也像银行和贸易的实用程序的形式。
在农村地区的移动电话用户的增长也是非常快的速度在增加。他们的应用程序使用的一个主要障碍是语言障碍。在母语的应用提供帮助用户个性化的整个应用程序,并增加应用程序中的农村群众的利益和激励他们使用的应用程序。
城市群众还可以享受在他们的母语在特定情况下所显示的内容。这在为如的情况下可以成立当应用程序显示了一种新型的总结,或在印度语言之一的电影审查。这家小型的定制,增强了读者的经验,在很大程度上,因为不管如何好做翻译,拳打对话有时语言是改变的时候失去了。
经济效益可以很容易地累积母语的应用程序,提供给农村群众。大多数现有的应用程序,可提供给他们提供本地语言支持。因此建立了移动领域公司针对农村人口,增加农民收入。一个更快的上市时间将确保在这一领域的早期成功。
各种方法和字体引擎通过开发呈现在手机上的印度语言。绘制自定义字体的一个常用的方法是基于图像的剪裁和使用语言的语法规则,秩序和裁剪的图像显示。每个不同的语言的规则,正在审议的语言加以研究和集成在应用程序代码。
有一个做大量的研究,对印度语言的语法规则前端。中央政府授权机构和印度语言的规则标准。对于任何字体引擎声称印度的语言渲染,它必须符合所有这些标准。BR}'Indix! - C语言编写的开源组件,为印度的字体渲染。 Indix CDAC印度语言的规则是事实上的实施。通过这个库移植到BREW,我们可以为应用程序提供支持印度语。这个库也能够毫不费力地显示多国语言文字。
Indix包含所有语言的规则,并计算需要显示的字形。它使用FreeType字体渲染计算字形的字体文件(TTF文件)。点击{A1}了解Indix更多。需求BREW SDK 3.1.2(或更高版本)RVDS 3.0Elf2mod实用工具:{A2}Visual Studio 2005中(或更高版本)INDIX来源:{A3}FREETYPE来源:{A4}对端口INDIX的步骤先决条件安装BREW SDK 3.1.2(或更高版本)和RVDS 3.0下载elf2mod公用事业下载freetype的来源下载Indix源第1步:设置Visual Studio工作区和链接
创建一个新的BREW的工作区,包括所有Indix和自由型(src和包括文件夹)。在项目的属性,以消除所有链接错误中指定所需的所有路径。第1步:设置Visual Studio工作区和链接
IO功能,在stdio.h BREW中不工作。我们都提供相同的工作在BREW的定义。给在BREW工作的标准IO和文件操作的所有定义。给它一个名字,说什么??EM> brew_stdio.h??

int b_fclose(IFile *pIFile)

{

if (pIFile == stdin || pIFile == stderr || pIFile == stdout) {

DBGPRINTF("fclose: cannot close stdin, stdout or stderr.");

      return 1;

}



      IFILE_Release(pIFile);

return 0;

 }

包括quot; \ brew_stdio.hquot; {PATH} \ \ ft2build.h。第三步:在文件的修改
替换#includelt; stdlib.hgt;以#include"AEEStdlib.h / STRONG>??。
在下列文件中的变化。文件:\ \ indix \印度\ \ indictypes.h
粘贴以下定义在文件的开始。{C}文件:\ \ freetype的\ CONFIG \ ftstdlib.h
改写如下所示的宏定义:
代替C函数与BREW宏的地方,例如内存和字符串操作适用。
例如:替补的定义,如:
#define ft_memchr   memchr

#define ft_memcmp   memcmp

#define ft_memcpy   memcpy

#define ft_memmove  memmove

		.

		.

		.

有了这样的宏:
代替C函数的功能。\ brew_stdio.h??文件操作。
例如:替补的定义,如:
#include <stdio.h />



#define FT_FILE     FILE

#define ft_fclose   fclose

#define ft_fopen    fopen

#define ft_fread    fread

#define ft_fseek    fseek

#define ft_ftell    ftell

		.

		.

		.

:
#include "brew_stdio.h" 	// to override the c function definitions 

			// with BREW definitions.



#define FT_FILE     IFile

#define ft_fclose   b_fclose

#define ft_fopen    b_fopen

#define ft_fread    b_fread

#define ft_fseek    b_fseek

#define ft_ftell    b_ftell

		.

		.

		.
文件:\ \ indix \ otlayout \ \ fterrcompat.h
Indix对freetype的1.4开发。然而,最新的源代码是免费的类型2.3.9。有一个小的修改在函数宏ALLOC_ARRAY和REALLOC_ARRAY。定义需要修改为新的来源。
//#define ALLOC_ARRAY( _pointer_, _count_, _type_ ) \

//  FT_SET_ERROR (FT_MEM_ALLOC_ARRAY( _pointer_, _count_, _type_))



#define ALLOC_ARRAY( _pointer_, _count_, _type_ ) \

FT_SET_ERROR (FT_MEM_ALLOC( _pointer_, _count_* sizeof ( _type_ )))



/* FT_MEM_REALLOC macro broken in 2.1.0 */

//#define REALLOC_ARRAY( _pointer_, _old_, _new_, _type_ ) \

//  FT_SET_ERROR ( FT_MEM_REALLOC( _pointer_, (_old_) * sizeof ( _type_ ),   \

//                (_new_) * sizeof ( _type_ ) ) )



#define REALLOC_ARRAY( _pointer_, _old_, _new_, _type_ ) \

FT_SET_ERROR ( FT_REALLOC( _pointer_, (_old_) * sizeof ( _type_ ),\

                (_new_) * sizeof ( _type_ ) ) )?/pre>







Step 4: Optimization (optional)

Indix supports font rendering from ttf?font files. However, freetype provides support for many more font formats. In order to optimize the executable size, only relevant drivers and modules should be loaded.

Freetype upfront loads all the default modules. This can be optimized by commenting out the unnecessary modules and loading only relevant modules in ftmodule.h.

File: .\include\freetype\config\ftmodule.h

FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )

//FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class )

//FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )

		.

		.

		.
步骤5:示例程序
Indix让您提供多语种的文字。 Indix和FreeType一起返回1或N字形指数对应的单个位图图像。它不返回串联整个形象。
为了显示一个字符串,示例程序连接个别位图写入BMP文件。此图片是使用BREW的API来显示屏幕上的文字呈现。要呈现新的语言indix支持,我们只需添加ttf文件,需要初始化,在initialiazeFont字体()函数如下所示。
nCurrScriptId = IX_IndicGetScriptId(ch);

			if(nCurrScriptId == IX_S_DEVA)

				ftError = IX_openAnOpenTypeFont

				(&anOTFont, FONTFILE, IX_S_DEVA);

			else if(nCurrScriptId == IX_S_TELU)

				ftError = IX_openAnOpenTypeFont

				(&anOTFont, FONTTELUGU, IX_S_TELU);



			else if(nCurrScriptId == IX_S_TAML)

				ftError = IX_openAnOpenTypeFont

				(&anOTFont, FONTTAMIL, IX_S_TAML);

			else if(nCurrScriptId == IX_S_ORYA)

				ftError = IX_openAnOpenTypeFont

				(&anOTFont, FONTORIYA, IX_S_ORYA);

			else if(nCurrScriptId == IX_S_GUJR)

				ftError = IX_openAnOpenTypeFont

				(&anOTFont, FONTGUJARATI, IX_S_GUJR);



			else /*if(nCurrScriptId == IX_S_LATIN)*/

				ftError = IX_openAnOpenTypeFont

				(&anOTFont, FONTENGLISH, IX_S_LATIN);

是指从附件ft_BREW.c就如何使文本的更多细节。步骤6:编译和链接在RVDS
包含到一个工作区的所有源文件,并使用默认的BREW设置。
{S0}目标设置:邮政连接器被禁用,因为我们使用的BREW elf2mod实用程序从ELF生成mod文件

回答

评论会员: 时间:2
据我记得这已经被覆盖,为了让您它被包裹在一个LT没有抢你的GridView的HTML形式RUNAT = servergt;标签。 {A5}