📜  wordpress javascript 本地化 - Javascript (1)

📅  最后修改于: 2023-12-03 15:21:12.989000             🧑  作者: Mango

Wordpress Javascript 本地化 - Javascript

在 Wordpress 的主题或插件开发中,经常需要用到 Javascript 进行前端交互,但是默认情况下这些 Javascript 脚本都是以英文为基础语言编写的,如果想要使得这些脚本能够支持多语言的本地化,就需要用到 Wordpress 提供的本地化 API 。本文将介绍 Wordpress 的 Javascript 本地化方法。

什么是 Javascript 本地化?

Javascript 本地化是指动态的将 Javascript 脚本中的文本块转换成特定语言的文本块,即将所需的文案翻译成多种语言格式。

在 Wordpress 中,我们可以使用 wp_localize_script 函数来实现 Javascript 本地化。

wp_localize_script 函数
函数说明

wp_localize_script 函数用于在 Wordpress 中将数据本地化,从而在 Javascript 中使用。它可以将 PHP 中的 $data 数组中的数据转换为 Javascript 对象,然后被传递给在前端加载的 Javascript 脚本,在其中使用本地化后的语言文本。

这个函数接受四个参数:

wp_localize_script( $handle, $name, $data, $priority );
  • $handle:必选,要本地化的脚本的句柄(句柄:指 Wordpress 中对脚本进行的注册和加载,避免脚本相互覆盖的一个重要指标),必须是先于 wp_localize_script 函数之前通过 wp_enqueue_script 函数加载的脚本,它也可以是一个由数组指定的脚本。
  • $name:必选,一个Javascript 变量名,它被用来存储本地化之后的数据。
  • $data:必选,一个数组,包含要本地化的数据。
  • $priority:可选,要本地化的脚本的优先级。
使用示例

下面是一个使用实例,我们可以将 $data 数组中的数据本地化:

<?php

// 将 "Hello world" 本地化成多种语言格式
$data = array(
    'translation' => array(
        'hello_world' => __( 'Hello world!', 'my-plugin' ),
    ),
);

// 注册并加载 JavaScript 文件
wp_register_script( 'hello-world', 'path/to/hello-world.js', array(), '1.', true );

// 本地化 JSON 数据并传递到 JavaScript 中
wp_localize_script( 'hello-world', 'my_plugin_data', $data );

// 加载 JavaScript 文件
wp_enqueue_script( 'hello-world' );

然后,我们可以在 hello-world.js 中通过 my_plugin_data.translation.hello_world 获取本地化后的文本块。例如:

alert( my_plugin_data.translation.hello_world );
总结

本地化是一个关键的流程,它能够在不同的语言环境下改进 Wordpress 的用户体验。使用 Wordpress 提供的 wp_localize_script 函数,可以轻松地在 Javascript 脚本中支持多语言本地化。