返回顶部
首页 > 资讯 > CMS >WordPress的JavaScript 本地化实现
  • 183
分享到

WordPress的JavaScript 本地化实现

JavaScript本地化 2022-06-12 02:06:09 183人浏览 薄情痞子
摘要

目前对大多数人来说是一个无用的功能, 甚至有人认为这是 WordPress 卑鄙地偷偷地在页面上埋了一个扯淡的脚本, 所以网上能找到的都是如何卸载脚本的方法. 在我们卸载之前, 是不是应该先了解一下这是怎样的一个功能,

目前对大多数人来说是一个无用的功能, 甚至有人认为这是 WordPress 卑鄙地偷偷地在页面上埋了一个扯淡的脚本, 所以网上能找到的都是如何卸载脚本的方法. 在我们卸载之前, 是不是应该先了解一下这是怎样的一个功能, 添加脚本的意图是什么? 本文将说明 l10n.js 脚本存在的意义, 本地化脚本的使用方法和对其未来的展望.


复制代码代码如下:

<script type='text/javascript' src='{ROOT DIR}/wp-includes/js/l10n.js?ver=20101110'></script>

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]:


复制代码代码如下:

// 必须先载入一个 Javascript 文件

wp_enqueue_script('some_handle', '/some_javascript.js');

// 组装本地化数据, 使用 __() 制作本地化内容

$data = array( 'some_string' => __( 'Some string to translate' ) );

// 加载本地化脚本. 这里必须指定一个需要载入的 JavaScript 文件.

wp_localize_script( 'some_handle', 'object_name', $data );

执行后将在页面上生成代码如下:


复制代码代码如下:

var object_name = {

some_string: "Some string to translate"

};

<script type='text/javascript' src='{ROOT DIR}/some_javascript.js?ver=3.1'></script>

本地化资源会在指定脚本之前载入和定义. 其中 {ROOT DIR} 是网站的根目录.

此时如果我们可以通过以下代码进行测试:


复制代码代码如下:

alert(object_name.some_string); // 弹出对话框, 显示 'Some string to translate'

利弊和应用场合

好处前面说了很多, 可以方便地进行前端本地化 (需要后端 php 配合). 缺点也很明显, 会在每次页面加载时计算本地化资源, 并且载入大量 JavaScript 代码, 增加系统负担和延长页面加载时间.

JavaScript 本地化是 WordPress 主题和插件制作中让人较为烦恼的地方, 一些插件开发者会在页面上自行定义 l10n 对象, 可以参考 WP-RecentComments 插件的做法. WordPress 这次强行引入, 很可能会被主题和插件开发者广泛应用. 也就是说, 不久的将来你未必敢卸载掉它, 否则某些插件将运行不了.

卸载和恢复的方法

虽说 l10n.js 文件很小, 好歹会发出一个请求, 如果你真的认为没用, 可以在 functions.php 中添加以下代码将它卸载掉.


复制代码代码如下:

wp_dereGISter_script('l10n');

如函数名, 这个方法不是禁用, 而是注销. 也就是说, 一旦你注销就没有了, 就算删除这段代码也不会还原. 如果在注销后希望回复需要使用以下方法:


复制代码代码如下:

wp_register_script('l10n');

总结

WordPress 的想法很好, 但这实现方式叫我该如何吐槽, 希望 "支持 JavaScript 本地化" 不是通过主题审核的必要条件. 作为前端, 多少有点页面洁癖, 我已经将这个脚本注销掉了. 另外, 看到 WordPress 3.1 那夺目的 Admin Bar 我淡定地笑了, 祝 WordPress 越来越臃肿.

注解
  1. internationalization, 国际化的意思. 因为单词前后字母 i 和 n 之间有 18 个字母存在, 所以缩写成 i18n.
  2. localization, 本地化的意思. 因为单词前后字母 l 和 n 之间有 10 个字母存在, 所以缩写成 l10n.
  3. 代码引用自 WordPress Codex - wp_localize_script.

--结束END--

本文标题: WordPress的JavaScript 本地化实现

本文链接: https://lsjlt.com/news/31993.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WordPress的JavaScript 本地化实现
    目前对大多数人来说是一个无用的功能, 甚至有人认为这是 WordPress 卑鄙地偷偷地在页面上埋了一个扯淡的脚本, 所以网上能找到的都是如何卸载脚本的方法. 在我们卸载之前, 是不是应该先了解一下这是怎样的一个功能, ...
    99+
    2022-06-12
    JavaScript 本地化
  • 如何理解WordPress的JavaScript本地化
    本篇文章为大家展示了如何理解WordPress的JavaScript本地化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。WordPress 升级到 3.1 之后, ...
    99+
    2024-04-02
  • ASP.NET MVC实现本地化和全球化
    在开发多语言网站时,我们可以为某种语言创建一个资源文件,根据浏览器所设置的不同语言偏好,让运行时选择具体使用哪个资源文件。资源文件在生成程序集的时候被嵌入到程序集。 本篇体验,在AS...
    99+
    2022-11-13
    ASP.NET MVC 本地化 全球化
  • ASP.NET实现Web网站本地化
    1、重写InitializeCulture方法。 在Global.asax中的Application_BeginRequest获取或设置语言,每次页面的请求都首先运行这个方法,然后再...
    99+
    2024-04-02
  • Django中的国际化和本地化如何实现
    Django中的国际化和本地化可以通过以下步骤来实现: 在settings.py中设置语言和时区: LANGUAGE_CODE ...
    99+
    2024-03-05
    Django
  • VB中怎么实现国际化和本地化
    在VB中实现国际化和本地化可以通过使用资源文件来实现。资源文件是一种存储不同语言文本、图像等资源的文件,可以根据用户的语言设置来加载...
    99+
    2024-04-03
    VB
  • 用 PHP 实现语言本地化的最佳实践
    PHP 是一种流行的编程语言,广泛用于 Web 开发。它提供了一系列强大的功能来本地化应用程序,使它们可以在不同的语言和地区使用。本文将探讨 PHP 中语言本地化的最佳实践,以帮助您创建可扩展、用户友好的应用程序。 1. 使用gettex...
    99+
    2024-02-16
    PHP 语言本地化 国际化
  • ASP.NET如何实现Web网站本地化
    本文小编为大家详细介绍“ASP.NET如何实现Web网站本地化”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET如何实现Web网站本地化”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、重写Initi...
    99+
    2023-07-02
  • Vue中的Strorage本地化存储怎么实现
    本文小编为大家详细介绍“Vue中的Strorage本地化存储怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中的Strorage本地化存储怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Sto...
    99+
    2023-06-30
  • Javascript怎么实现浏览器本地存储
    今天小编给大家分享一下Javascript怎么实现浏览器本地存储的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • 怎么实现移除WordPress版本号
    这篇文章将为大家详细讲解有关怎么实现移除WordPress版本号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码实现移除 WordPress 版本号默认情况下,WordPress会在页头输出版本号,有一...
    99+
    2023-06-06
  • ASP.NET Core WebAPI实现本地化(单资源文件)
    在Startup ConfigureServices 注册本地化所需要的服务AddLocalization和 Configure<RequestLocalizationO...
    99+
    2022-06-07
    本地化 webapi core ASP net ASP.NET 源文件
  • JavaScript本地存储怎么实现用户名存储
    这篇文章主要介绍了JavaScript本地存储怎么实现用户名存储的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript本地存储怎么实现用户名存储文章都会有所收获,下面我们一起来看看吧。一、本地存储1...
    99+
    2023-07-02
  • JavaScript实现简单获取本地图片主色调
    目录一、实现效果二、实现1、实现思路2、实现代码三、总结与思考一、实现效果 鲜花 大海 森林 二、实现 1、实现思路 其实思路很简单,就是将一张大图先缩小为一张小图,再遍历里面...
    99+
    2023-03-07
    JavaScript获取图片主色调 JavaScript获取图片色调 JavaScript图片色调 JavaScript图片
  • JavaScript本地存储实现用户名存储案例
    目录一、本地存储1.1 本地存储特性1.2 window.sessionStorage1.3 window.localStorage用户名存储案例一、本地存储 1.1 本地存储特性 ...
    99+
    2024-04-02
  • 前端JavaScript实现本地模糊搜索功能的方法实例
    目录一、项目前景二、涉及知识点Object.assign()的用法filter()方法indexOf()模糊查询DEMO完整代码如下:总结一、项目前景 随着vue、react在实际...
    99+
    2024-04-02
  • wordpress非插件实现xml格式网站地图
    废话不多说,直接上代码复制代码代码如下:<phprequire('./wp-blog-header.php');header("Content-type: text/xml");header('HTTP/1.1 200 ...
    99+
    2024-04-02
  • js实现本地持久化存储登录注册
    本文实例为大家分享了js实现本地持久化存储登录注册的具体代码,供大家参考,具体内容如下 1.登录html文件 <!DOCTYPE html> <html lang...
    99+
    2024-04-02
  • docker images本地迁移的实现
    最近在学习docker,经常遇到的一个问题是,在下载docker image的时候,由于众所周知的网络原因导致失败,虽然网上也有很多解决方案,比如使用Docker Hub Mirro...
    99+
    2024-04-02
  • 3分钟实现iOS语言本地化/国际化(图文教程)
    前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。往往一些应用程序需要提供给多个国家的人群使用,或者一个国家...
    99+
    2022-05-19
    iOS 本地化 国际化
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作