有趣的缩写I18N,L10N及延伸知识

什么是 I18N 和 L10N ?
I18N 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”;与之类似,L10N 是 localization 的缩写形式,意即在 l 和 n 之间有 10 个字母,本意是指软件的“本地化”。

I18N 和 L10N 从何而来?它们有何区别?
按照软件开发的惯例,最初的软件只有英文版本,根据需要,作者再把软件界面和文档翻译成不同国家、地区的语言版本。但是由于实现翻译的途径、翻译的工作效率、翻译的可重用性等因素各不相同,使翻译工作面临很大困境,也阻碍了软件的推广和应用。为了方便地将软件翻译成不同语言的版本,就需要一套翻译规范和通用工具,这就导致了“国际化”机制的出现。仅仅翻译是不够的,同一种语言在不同国家、地区可能存在多个支系,它们在表达习惯、语法结构甚至文字种类和编码上都有不同,方言更是千奇百怪,通用的翻译其质量肯定是不高的。涉及到计算机领域,还存在操作习惯上的差别,而且对某种语言提供完美的输入、显示、打印、保存、传输并非一件轻而易举的事,这就导致了“本地化”机制的出现。简而言之,“国际化”是“本地化”的一部分,主要是指国际化的实现机制和翻译工作, “本地化”包含“国际化”,是对“国际化”的补充和完善,它还包括为实现对某种特定语言良好的支持而进行的有针对性的翻译调整以及对软件进行的打补丁工作。

I18N 和 L10N 的国际组织是什么?
I18N 和 L10N 的国际组织是 Openi18n 组织,其前身是 li18nux 组织。它原来是制定 GNU/Linux 自由操作系统上软件全球化标准的国际计划,后来扩充到 GNU/Linux 之外所有开放源代码的技术领域,因而更名为 Open Internationalization Initiative,由非营利组织 Free Standards Group 赞助,并为世界各大厂商所支持,对于 GNU/Linux 系统上的多国语言文字处理技术和环境有决定性的影响。各个开源软件开发组织通常都有负责“国际化”和“本地化”工作的分支机构。

I18N 主要使用什么工具工作?
I18N 主要使用 gettext 软件包使软件实现国际化支持。事实上它是一整套 I18N 解决方案。

什么是 PO 和 MO 文件?它们有何区别?
PO 是 Portable Object (可移植对象)的缩写形式;MO 是 Machine Object (机器对象) 的缩写形式。PO 文件是面向翻译人员的、提取于源代码的一种资源文件。当软件升级的时候,通过使用 gettext 软件包处理 PO 文件,可以在一定程度上使翻译成果得以继承,减轻翻译人员的负担。MO 文件是面向计算机的、由 PO 文件通过 gettext 软件包编译而成的二进制文件。程序通过读取 MO 文件使自身的界面转换成用户使用的语言。

时间: 2024-09-08 15:35:36

有趣的缩写I18N,L10N及延伸知识的相关文章

AngularJs 国际化(I18n/L10n)详解_AngularJS

一.I18n and L10n in AngularJS 1. 什么是I18n和L10n? 国际化(Internationalization),简称I18n,是让产品开发在一个他们可以简单地对产品进行语言.文化的本地化的方法的规范.本地化(Localization),简称L10n,一个使得应用.文本有适应特殊的文化或者语言市场的能力的规范.对于应用开发者,使一个程序国际化,意味着需要从程序中抽取所有字符串和其他区域较为特别的地方(例如日期和货币格式).使一个程序本地化,意味着需要提供根据I18n

算法:62进制的简单实现

62 进制需要的字符及次序: 0..9 a..z A..Z; 只实现了 62 进制字符串与正整数的互换. unit H62; interfaceuses SysUtils; function IntToH62(N: UInt64): string; //整数转到 62 进制字符串 function H62ToInt(S: string): UInt64; //62 进制字符串转到整数 implementationfunction _C2B(C: Char): Byte; inline; begi

Java的Struts框架中的主题模板和国际化设置_Mysql

主题模板 如果不指定一个主题,然后Struts2中会使用默认的XHTML主题.例如Struts 2中选择标签: <s:textfield name="name" label="Name" /> 生成HTML标记: <tr> <td class="tdLabel"> <label for="empinfo_name" class="label">Name:<

Yii框架登录流程分析_php实例

本文详细分析了Yii框架的登录流程.分享给大家供大家参考.具体分析如下: Yii对于新手来说上手有点难度,特别是关于session,cookie和用户验证.现在我们就Yii中登录流程,来讲讲Yii开发中如何设置session,cookie和用户验证方面的一些通用知识 1. 概述 Yii是一个全栈式的MVC框架,所谓全栈式指的是Yii框架本身实现了web开发中所要用到的所有功能,比如MVC,ORM(DAO/ActiveRecord), 全球化(I18N/L10N), 缓存(caching), 基于

ASP.NET MVC之国际化(十一)

前言 在项目中遇到国际化语言的问题是常有的事情,之前在做关于MVC国际化语言时,刚开始打算全部利用AngularJS来实现,但是渐渐发现对于页面Title难以去控制其语言转换,于是对于页面Tiltle利用后台的资源文件来实现而前台利用AngularJS来实现,这样更好简洁和方便,本节我们来讲讲MVC中的国际化问题. 话题引入 为了效率的问题全部利用前端脚本实现是个不错的选择,但是有时候也稍显麻烦一点,本文只讨论利用MVC来实现,下面我们首先来看一个例子. 我们在项目新建一个il8n文件夹在此下面

用户体验:Login这个词用法是错误的

优秀的网站交互体验对于细节的处理是很到位的,比如我们在一些网站中经常见到的一些文字,随着时间的改变,这些文字也发生了很大的变化,这就是网站交互体验的改进. Login这个词用法是错误的.Login不是一个动作,这就好象"鞋"不是一个动作一样.他是一个名词,意思是the Login Interface(登录的界面). 并且还提出,正确用法应该是Sign in,仔细想想的确应该如此.在早期网站登录看到最多的就是Login和Register,偶尔还见有中文网站的图形修饰上有Login和Reg

Ruby元编程的白魔法书

在Ruby的世界中,程序员们享受着各种光怪陆离的语法糖,也经历着各种各样的陷阱.而这一切的根本就在于Ruby强大 的元编程能力.元编程就像Ruby世界的魔法,当其是白魔法的时候可以帮助你把程序变得异常简洁,美观:而当其是黑魔法 的时候,你将会迷失在一些很难解释的Bug中. <Ruby元编程>就是一部告诉大家如何使用,控制Ruby元编程魔法的 秘籍.该书的写作手法非常值得称道,作者把所有的知识点浓缩在了一个星期的工作过程中,通过一个菜鸟和大牛针对项目 中遇到的各种问题的讨论,解决来引入各种元编程

python编写爬虫小程序

  我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地.下面就看看如何使用python来实现这样一个功能. 起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么"装饰器"啊."多线程"啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的下载,结果居然没找到!!CSDN有个不完整的还骗走了我一个积分!!尼玛!! 怒了,准备写个程序直接去爬廖雪峰的教程,然后再html

你的团队需要一套工具指南

在某个公众号里看过这样一句话,"一流的公司只有一个共同点--他们都有好的产品." 最近又了解了一些管理工具和开发工具,突然发现,其实一流的公司还有另一个共同点,他们往往都拥有一套适合自己的工具,包括但不限于管理工具.开发工具.运维工具-- "培训团队使用一些工具从而节省时间和人力成本,是最成功的时间投资之一." 或许使用工具总是需要一些学习成本,但从长远来看,是一笔很划算的买卖. 我们中的一部分人在工作和生活中总在尝试使用一些有趣的工具来梳理思想和知识,比如 Eve