l10n

软件I18N/L10N软件国际化与本地化

喜夏-厌秋 提交于 2020-03-12 16:08:10
I18N/L10N:是指软件的国际化和本地化,通俗的讲就是语言的国际化和本地化。国际语言:英语、汉语、德语... 本地化:繁体、简体、藏语...国家内部的语言。 I18N: 软件国际化,即internationalization 一个过程,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”,通过修改代码来实现代码的文化独立性,即代码不依赖与任何特定文化的信息。L18n是一个代码修改的过程,目的是实现代码完全独立与任何特定的 文化信息。这类信息保存在外部文件中,在程序运行的时候被装入。这样就不光要把所有与特定文化有关的字符串都抽取出来放在外部的文件中,还要把图标,图片 从程序中抽取出来,以文本的形式表示。L18n支持的语言有很多,公司里目前支持的语言有:中文、德文、意大利文、日文、繁体中文、西班牙文、葡萄牙文、韩文、瑞典文、英文。 L10N:软件本地化,即localization 的缩写形式,意即在 l 和 n 之间有 10 个字母,本意是指软件的“本地化”。最初的软件只有英文版本,根据需要,作者再把软件界面和 文档翻译成不同国家、地区的语言版本。但是由于实现翻译的途径、翻译的工作效率、翻译的可重用性等因素各不相同,使翻译工作面临很大困境,也阻碍了软件的 推广和应用。为了方便地将软件翻译成不同语言的版本,就需要一套翻译规范和通用工具,这就导致了“国际化”机制的出现

一个前端工程师眼里的NodeJS

你离开我真会死。 提交于 2019-12-05 15:25:56
JavaScript单线程的误解   在我接触JavaScript(无论浏览器还是NodeJS)的时间里,总是遇到有朋友有多线程的需求。而在NodeJS方面,有朋友甚至直接说到,NodeJS是单线程的,无法很好的利用多核CPU。   诚然,在前端的浏览器中,由于前端的JavaScript与UI占据同一线程,执行JavaScript确实为UI响应造成了一定程度上的麻烦。但是,除非用到超大的循环语句执行JavaScript,或是用阻塞式的Ajax,或是太过频繁的定时器执行外,JavaScript并没有给前端应用带来明显的问题,所以也很少有朋友抱怨JavaScript是单线程而不能很好利用多核CPU的问题,因为没有因此出现性能瓶颈。   但是,我们可以用Ajax和Web Worker回应这个误解。当Ajax请求发送之后,除非是同步请求,否则其余的JavaScript代码会很快被执行到。在Ajax发送完成,直到接收到响应的这段时间里,这个网络请求并不会阻塞JavaScript的执行,而网络请求已经发生,这是必然的事。那么,答案就很明显了,JavaScript确实是执行在单线程上的,但是,整个Web应用执行的宿主(浏览器)并非以单线程的方式在执行。而Web Worker的诞生,就是直接为了解决JavaScript与UI占用同一线程造成的UI响应问题的

AngularJs学习笔记--I18n/L10n

假装没事ソ 提交于 2019-12-04 05:25:49
一、I18n and L10n in AngularJS 1. 什么是 I18n 和 L10n?   国际化( Internationalization ),简称 I18n ,是让产品开发在一个他们可以简单地对产品进行语言、文化的本地化的方法的规范。本地化( Localization ),简称 L10n ,一个使得应用、文本有适应特殊的文化或者语言市场的能力的规范。对于应用开发者,使一个程序国际化,意味着需要从程序中抽取所有字符串和其他区域较为特别的地方(例如日期和货币格式)。使一个程序本地化,意味着需要提供根据 I18n 抽取出来的块进行翻译和格式本地化。 2. 当前 angular 支持什么级别的 I18n 、 L10n ?   当前, angular 对 datetime 、 number 、 currency 过滤器提供 I18n 、 L10n 支持。   此外, angular 通过 ngPluralize directive ( http://docs.angularjs.org/api/ng.directive:ngPluralize )支持多元化的本地化。   所有可本地化的控件都依赖于通过 $locale 服务管理的区域设定特性规则集。   为了让读者看到实际例子,官方准备了一些网页例子,展示如何通过区域规则集合变量使用 angular 过滤器。我们可以在