50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

L20n: 来自 Mozilla 的 JavaScript 本地化框架

  • 2014-02-19
  • 本文字数:895 字

    阅读完需:约 3 分钟

L20n 是一款开源的 JavaScript 本地化框架,由 Mozilloa 贡献。L20n 设计得极富表达能力,拥有很多特性,比如屏幕尺寸适配,良好的关注点分离,对复用的优雅处理,当有多个变量时支持默认等等。

Staś Małolepszy 对项目背后的动机做了如下解释 ——

对 Mozilla 项目本地化的过程中,我们发现 UI 中 90-95% 的信息是简单的键值对,并不需要 L20n 的高级功能。

那为什么还要开发 L20n 呢?原因就是剩余 5% 的信息,它们是应用 UI 成败的关键。这些剩余的信息非常重要,我们无法视而不见,而且它们是用户体验的关键。

基于以上原因,项目尽可能保持简单应用场景的简洁,同时也支持复杂的本地化应用场景。

以下是 L20n 的一些优秀特性 -

  • 丰富的表达能力 —— L20n 支持插值(创建更复杂的实体),复用语法差异的处理,相同实体有多个变量,等等,组合之后创建更加丰富的格式。
  • 适应屏幕尺寸 —— 你可以定义多个屏幕尺寸,实体有不同的变量来适应特定的屏幕尺寸
  • 关注点分离 - 可以将本地化相关的问题在语言中隔离,而不会影响应用使用的其他语言,甚至是应用的源码。
  • 提供 API,除了具有绑定 HTML 元素,使 HTML 元素能够本地化的能力外,API 也是非阻塞和安全的。

L20n 引入了默认值概念,它虽然简单但是十分强大 —— 它允许你给一个实体定义多个变量,也可以在没有要求任何特定变量时定义一个默认值。默认值的引入使翻译者能够渐进地调整他们的内容,甚至增加更多变量,同时保证使用对应实体的既有代码不会受到影响(只是使用默认值即可)。这也是允许不同的本地化具有不同级别的复杂度,并且不会导致其他的本地化变复杂的关键所在。

以下是项目相关的学习资源 ——

L20n 在 2012 年就已经开始开发了,到 2013 年 11 月发布了 1.0 的发布候选版。

查看英文原文: JavaScript Localization Framework From Mozilla


感谢吴海星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-02-19 22:092213
用户头像

发布了 28 篇内容, 共 12.1 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

聊聊销售背后的策略

吴晨曦

创业 销售管理

5分钟学会6个阿里内部编程的方法

Java架构师迁哥

前嗅教你大数据:常见几种编码介绍

前嗅大数据

大数据 编码 编码指南

阿里内部“高并发通关秘籍”曝光,看完带给你独一无二的认知!

比伯

Java 编程 架构 面试 计算机

面试无忧:源码+实践,讲到MySQL调优的底层算法实现

小Q

Java 数据库 学习 面试 算法

二分发代码模板

小兵

监控之美——监控系统选型分析及误区探讨

华章IT

运维 云原生 监控 Prometheus

现在Php、Java、Python横行霸道的市场,C++程序员们都在干什么呢?

ShenDu_Linux

c++ 程序员 编程语言 C语言 软件工程师

今年最火的 Golang 云原生开源项目,可能就是它了!

孙健波

Kubernetes k8s OAM KubeVela CloudNative

苹果开始告别英特尔

罗燕珊

macOS Big Sur 芯片 苹果 MacBook 英特尔

甲方日常 59

句子

工作 随笔杂谈 日常

《华为数据之道》读书笔记:第 6 章 面向“自助消费”的数据服务建设

方志

数据中台 数据仓库 数字化转型 数据治理

Spring 源码学习 02:关于 Spring IoC 和 Bean 的概念

程序员小航

spring 源码 源码分析 ioc

Spock单元测试框架实战指南四 - 异常测试

Java老k

单元测试 spock

《华为数据之道》读书笔记:第 8 章 打造“清洁数据”的质量综合管理能力

方志

数字化转型 数据质量管理

《华为数据之道》读书笔记:第 7章 打造“数字孪生”的数据全量感知能力

方志

数据中台 数字化转型

区块链政务系统开发解决方案

t13823115967

区块链+ 区块链开发落地 政务系统开发解决方案

根治可扩展、高可用、高性能“神器”:SpringCloud+Nginx高并发编程手册

Java架构追梦

Java nginx 架构 面试 微服务

区块链开发落地,联盟链系统平台搭建

t13823115967

区块链 区块链开发落地 联盟链系统平台搭建

JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来

小Q

Java 学习 架构 面试 JVM

CPU飙高问题排查

程序猿玄微子

三万字无坑搭建基于Docker+K8S+GitLab/SVN+Jenkins+Harbor持续集成交付环境!!

冰河

Docker 云原生 k8s

架构师训练营第一期-第十周学习总结

卖猪肉的大叔

极客大学架构师训练营

一枚程序猿的MacBook M1详细体验报告

Zhendong

使用 Go 实现 Async/Await 模式

Roc

channel goroutines Async Go 语言

磁盘到底是怎样工作的?一文理解硬盘结构

Guanngxu

操作系统

【薪火计划】06 - 你推崇的领导方式是怎么样的?

码上生长

管理

微博和B站屏蔽马保国相关信息:自媒体蹭热度要适可而止

石头IT视角

Nginx的反向代理与负载均衡--配置Nginx

Linux服务器开发

nginx 负载均衡 反向代理 后端 Linux服务器

免费下载O’Reilly出版社全新之作《建立机器学习流水线》

计算机与AI

学习

架构师训练营第 1 期 - 第 10 周 - 学习总结

wgl

极客大学架构师训练营

L20n: 来自 Mozilla 的 JavaScript 本地化框架_JavaScript_Roopesh Shenoy_InfoQ精选文章