国际化自动完成JS变量

时间:2019-04-29 作者:Marco Diaz

我正在使用一个插件(我的第一个插件),它通过数组使用自动完成(通过JQuery UI),我想知道如果我想让我的插件完全可翻译,是否也需要翻译数组。

jQuery(function(){ 
   let supportedServices = [
    \'Academia\', \'Airbnb\', \'Amazon\', \'AppStore\', \'Bandcamp\', \'Blogger\',
   ];

   jQuery(\'#service_name \').autocomplete({
    source: supportedServices,
    classes: {
     "ui-autocomplete": "contactmefy_ui_autocomplete"
    },
    select: SomeFunction,
   });
});
在这种情况下,最好使用新的wp-i18n JavaScript包?Internationalization in WordPress 5.0

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

我想知道如果我想让我的插件完全可翻译,我是否也必须翻译数组。

如果你不这样做,它就不能完全翻译,是吗?所以,是的,你需要让这些可以翻译,这样才是真的。

在这种情况下,最好使用新的wp-i18n JavaScript包?Internationalization in WordPress 5.0

有可能,是的。前一种仍然有效的方法是wp_localize_script() 用于。例如,如果将此脚本按如下方式排队:

wp_enqueue_script( \'my-plugin\', // etc. etc.
然后可以提供如下可翻译字符串:

wp_localize_script(
    \'my-plugin\',
    \'myPlugin\',
    [
        \'supportedServices\' => [
            __( \'Academia\', \'my-plugin\' ),
            __( \'Airbnb\', \'my-plugin\' ),
            __( \'Amazon\', \'my-plugin\' ),
            __( \'AppStore\', \'my-plugin\' ),
            __( \'Bandcamp\', \'my-plugin\' ),
            __( \'Blogger\',\'my-plugin\' ),
        ],
    ]
);
支持的服务名称现在可以在PHP中翻译,但您可以在JavaScript中访问它们,如下所示:

let supportedServices = myPlugin.supportedServices;

相关推荐

400错误请求-JavaScript应用程序调用自定义wp-json终结点

我已成功创建了新的端点/路由,可以通过wp-json. 不仅如此,我还可以使用Restlet客户端从浏览器外部成功地向该端点发出post请求。我的端点句柄json 在请求主体内,转换和编辑数据,然后进行外部api调用,然后从外部api将新数据发送回客户端。然而,当我在wordpress站点上运行调用此api的应用程序时,我得到400 Bad Request. 我处理函数中许多地方的错误,并根据数据中可能出现的错误类型发回特定的错误消息,但我似乎找不到这些错误的来源。我已设置WP_DEBUG 到true,