时间:2021-05-02
目前对大多数人来说是一个无用的功能, 甚至有人认为这是 WordPress 卑鄙地偷偷地在页面上埋了一个扯淡的脚本, 所以网上能找到的都是如何卸载脚本的方法. 在我们卸载之前, 是不是应该先了解一下这是怎样的一个功能, 添加脚本的意图是什么? 本文将说明 l10n.js 脚本存在的意义, 本地化脚本的使用方法和对其未来的展望.
复制代码
代码如下:
i18n 和 l10n
i18n[1] 和 l10n[2] 是 IT 领域常用的缩写术语, 分别是国际化和本地化的意思. i18n 指应用程序能够为不同的国家和语言环境的用户群体提供本地化的服务, 而 l10n 则是在用户使用环境实现本地化特性, 国际化和本地化泛指语言环境的多语言实现. 如: WordPress 是一个支持国际化的程序, 只要提供对应国家语言包并制定国家代号, 就能替换整个网站的语言环境.
JavaScript 本地化
如前面的例子, WordPress 一直支持国际化, 并提供 _e() 和 __() 两个 PHP 方法对程序进行本地化. 但随着前端 JavaScript 应用越来越多, 后端的国际化已经满足不了所有需求, 有必要引入 JavaScript 的国际化和本地化.
若你使用的主题支持 wp_head() 方法, 将在页面加载 l10n.js 文件, 而且用户可以通过简单的代码向页面注入本地化资源. l10n.js 是一个 JavaScript 本地化的工具库, 包含 convertEntities() 方法, 可以将 HTML 对象还原成原来的值, 所以它会在所有注入的 JavaScript 脚本和本地化资源之前载入.
使用的方法
我们可以为每一个要载入的 JavaScript 文件定义本地化资源. 实现代码如下[3]:
复制代码
代码如下:
执行后将在页面上生成代码如下:
复制代码
代码如下:
本地化资源会在指定脚本之前载入和定义. 其中 {ROOT DIR} 是网站的根目录.
此时如果我们可以通过以下代码进行测试:
复制代码
代码如下:
利弊和应用场合
好处前面说了很多, 可以方便地进行前端本地化 (需要后端 PHP 配合). 缺点也很明显, 会在每次页面加载时计算本地化资源, 并且载入大量 JavaScript 代码, 增加系统负担和延长页面加载时间.
JavaScript 本地化是 WordPress 主题和插件制作中让人较为烦恼的地方, 一些插件开发者会在页面上自行定义 l10n 对象, 可以参考 WP-RecentComments 插件的做法. WordPress 这次强行引入, 很可能会被主题和插件开发者广泛应用. 也就是说, 不久的将来你未必敢卸载掉它, 否则某些插件将运行不了.
卸载和恢复的方法
虽说 l10n.js 文件很小, 好歹会发出一个请求, 如果你真的认为没用, 可以在 functions.php 中添加以下代码将它卸载掉.
复制代码
代码如下:
如函数名, 这个方法不是禁用, 而是注销. 也就是说, 一旦你注销就没有了, 就算删除这段代码也不会还原. 如果在注销后希望回复需要使用以下方法:
复制代码
代码如下:
总结
WordPress 的想法很好, 但这实现方式叫我该如何吐槽, 希望 "支持 JavaScript 本地化" 不是通过主题审核的必要条件. 作为前端, 多少有点页面洁癖, 我已经将这个脚本注销掉了. 另外, 看到 WordPress 3.1 那夺目的 Admin Bar 我淡定地笑了, 祝 WordPress 越来越臃肿.
注解
internationalization, 国际化的意思. 因为单词前后字母 i 和 n 之间有 18 个字母存在, 所以缩写成 i18n.
localization, 本地化的意思. 因为单词前后字母 l 和 n 之间有 10 个字母存在, 所以缩写成 l10n.
代码引用自WordPress Codex - wp_localize_script.
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言本文先简要介绍在ASP.NETCore2.0里实施全球化和本地化,默认的本地化从资源文件(resx)里读取本地化字符串。本文然后提供一个简单示例,说明如何自
个人推荐享友资讯,享友资讯是一个集资讯、社交、本地化营销为一体的本地化精准营销平台,可进行本地化投放。网上营销首推华遨软件,之前用过一些软件,但是通用型的软件的
在WordPress中,__()函数和__e()函数被用来识别php文件中被标示的、需要被翻译成其它语言或本地化的字符串。两个函数间的唯一功能性区别在于:_e(
在StartupConfigureServices注册本地化所需要的服务AddLocalization和ConfigurepublicvoidConfigure
2015年4月24日,优麒麟开发团队很高兴地宣布今天发布15.04正式版本。此次发布的版本以本地化体验和稳定性为主,我们修复了之前版本积累的很多本地化/国际化问