金莎娱乐电子游戏网GNU Gettext

GNU Gettext,gnugettext

一、简介

当下,无论是商业照旧免费软件都以西班牙语的,并用克罗地亚共和国(Republika Hrvatska)语做为文书档案。直到以往,为使别的非日文语言客户也能够进行交互所做的干活如故不足,所以那对非土耳其语语言的国家很不利。可是,随着GNU
gettext工具的发行,这种气象大大改良了,未来大约具备的GNU程序是在一个特定框架下边编辑的,在那一个框架下,能够很轻松把立陶宛语的前后相继音讯翻译成别的语言。就算能够翻译,那么客户可以在程序运转的时候设置语言选取和次序实行相互。gettext用一种十一分不错的措施化解了那么些看起来特别辛劳的难题,那些法子简化了程序猿和翻译者的办事,並且更首要的是它同意程序猿和翻译者独立的干活。本文介绍怎么样在系统下使用GNUgettext工具来帮忙本地化语言。

 

二、源码下载

http://ftp.gnu.org/gnu/gettext/

 

三、实例

http://blog.sina.com.cn/s/blog_593abc890100noo7.html

 

参考:http://blog.chinaunix.net/uid-9525959-id-2001515.html

Gettext,gnugettext 一、简要介绍当前,无论是商业依旧无需付费软件都是马耳他语的,并用马耳他语做为文书档案。直到今后,为使其余非西班牙语语言客商也能够…

一、简介

一、简介

眼前公司筹划扩展国外交事务务,所以要给 Django 系统增多 国际化与本土壤化学
支持。国际化一般简称 i18n ,代表 Internationalization 中 i 和 n 有
18 个假名;本地化简称 L10n ,表示 Localization 中 l 和 n 中有 12个假名。风趣的一些是,一般会用小写的 i 和题诗的 L 幸免混淆。

此时此刻,无论是商业照旧无需付费软件都以斯洛伐克(Slovak)语的,并用塞尔维亚语做为文书档案。直到现在,为使别的非斯洛伐克(Slovak)语语言客户也能够实行交互所做的做事仍然不足,所以那对非印度语印尼语语言的国家很不利于。但是,随着GNU
gettext工具的发行,这种情形大大改进了,今后差不离全部的GNU程序是在一个一定框架上边编辑的,在这几个框架下,能够很轻松把塞尔维亚共和国(Republic of Serbia)语的次第音信翻译成其余语言。借使能够翻译,那么客商能够在程序运维的时候设置语言选用和次序开展互相。gettext用一种特别精美的不二法门消除了这一个看起来特别拮据的难题,那些办法简化了程序猿和翻译者的专门的工作,况且更主要的是它同意程序猿和翻译者独立的做事。本文介绍怎么样在系统下使用GNUgettext工具来支撑本地化语言。

当前,无论是商业还是免费软件都以乌克兰(УКРАЇНА)语的,并用日语做为文书档案。直到未来,为使其余非德文语言客商也能够进行互动所做的行事仍然不足,所以这对非匈牙利(Magyarország)语语言的国度很不利于。但是,随着GNU
gettext工具的批发,这种光景大大改革了,以往差相当少全体的GNU程序是在一个特定框架下边编辑的,在这么些框架下,能够很轻易把法语的次第音讯翻译成其余语言。假如能够翻译,那么顾客能够在程序运营的时候设置语言选用和次序进行交互。gettext用一种非常漂亮的措施化解了那一个看起来拾壹分窘迫的主题材料,这一个方法简化了程序猿和翻译者的做事,而且更首要的是它同意程序员和翻译者独立的行事。本文介绍怎样在系统下采用GNUgettext工具来支撑本地化语言。

轻易易行来讲:i18n 是为国际化搭建框架,L10n
是针对性分裂地域的适配。举个简单的例子:

二、源码下载

 

i18n:

http://ftp.gnu.org/gnu/gettext/

二、源码下载

datetime.now().strftime('%Y/%m/%d') # before i18n
datetime.now().strftime(timeformat) # after i18n

三、实例

http://ftp.gnu.org/gnu/gettext/

L10n:

http://blog.sina.com.cn/s/blog_593abc890100noo7.html

参考:http://blog.chinaunix.net/uid-9525959-id-2001515.html

 

timeformat = {
 'cn': '%Y/%m/%d',
 'us': '%m/%d/%Y',
 'fr': '%d/%m/%Y',
 ...
}

三、实例

更是切实的定义能够看的解释。

http://blog.sina.com.cn/s/blog_593abc890100noo7.html

i18n
的界定十二分广,包涵多语言、时区、货币单位、单复数、字符编码以致是文字阅读顺序(RTL)等等。那篇小说只关怀
i18n 的多语言 方面。

 

金莎娱乐电子游戏网 1

参考:http://blog.chinaunix.net/uid-9525959-id-2001515.html

↑ 法文的 windows 系统,文字乃至界面包车型客车样子都与汉语版的相反

基本步骤

Django
作为二个大而全的框架,已经提供了一套多语言的实施方案,我某个相比了一下,并未能找到在
Django 种类下比法定方案幸好用的库。Django 的方案得以归纳分为四步:

  1. 有个别少不了的布署
  2. 在代码中标志须要翻译的公文
  3. 应用 makemessages 命令生成 po 文件
  4. 编写翻译 compilemessages 命令编写翻译 mo 文件

上面咱们详细来探视

第一步:配置

先是在 settings.py 中参加那多少个内容

LOCALE_PATHS = (
 os.path.join(__file__, 'language'),
)
MIDDLEWARE = (
 ...
 'django.middleware.locale.LocaleMiddleware',
 ...
)
LANGUAGES = (
 ('en', 'English'),
 ('zh', '中文'),
)

LOCALE_PATHS :钦定下边第三步和第四步生成文书的职位。老版的 Django
须要手动新建好这一个目录。

LocaleMiddleware :能够让 Django 识别并精选稳妥的语言。

LANGUAGES :钦定了这么些工程能提供什么样语言。

第二步:标识文本

前边从未多语言的需求,所以我们在 AJAX 相应代码中一向写了华语,比方那样:

return JsonResponse({"msg": "内容过长", "code": 1, "data": None})

当今亟待多语言了,就必要告诉 Django
哪些内容是内需翻译的。对于地点的例子来讲,正是写成那样:

from django.utils.translation import gettext as _

return JsonResponse({"msg": _("内容过长"), "code": 1, "data": None})

相关文章