Securing langugae folder

时间:2019-11-06 作者:Skafec

我的语言有插件和主题翻译,它们工作得很好。

我不得不根据客户的需要更改一些插件和主题的翻译。

今天我更新了WooCommerce,我的自定义翻译丢失了。

我的问题是,有没有办法让整个wp内容/语言文件夹安全地更新?是否有办法将其添加到子主题或其他内容中,以确保自定义翻译的更新安全?

感谢(&A);当做

1 个回复
SO网友:Tim

简单的回答是使用位置wp-content/languages/woocommerce/ 存储自定义翻译。

看见WooCommerce documentation.

此位置应该不会受到所有WordPress更新的影响。不会修改与语言/插件和语言/主题并行的文件夹。

关于您的具体问题:

是否有办法确保整个wp内容/语言文件夹的更新安全?

你可以控制automatic 翻译更新auto_update_translation 滤器e、 g。

add_filter( \'auto_update_translation\', \'__return_false\' );
但是,此挂钩在执行以下操作时不会开火manual wp管理员更新。这只会在进行自动更新时保护文件夹,并会停止所有其他从翻译更新中受益的插件。

是否有办法将其添加到子主题或其他内容中,以确保自定义翻译的更新安全?

将插件的翻译添加到子主题中表明,WordPress通常会在您的主题中搜索其他插件本地化。It won\'t.

但是,可以使用过滤器更改加载的MO文件路径。下面是一个非常简单的示例:

function filter_load_textdomain_mofile( $mopath, $domain ){
  if( \'woocommerce\' === $domain ){
    $mopath = str_replace(\'/languages/plugins/\',\'/languages/other/\',$mopath);
  }
  return $mopath;
}
add_filter(\'load_textdomain_mofile\',\'filter_load_textdomain_mofile\',999,2);
您可以使用此筛选器执行各种操作,例如将翻译合并在一起等。。如果您需要对另一个没有提供替代安全位置的插件执行此操作,您可能会发现这很有用。

相关推荐

static array on functions.php

在函数中。php中,我想访问数据库一次,以获取一个ACF对象,然后在本地“保存”它,以防止对数据库的进一步请求。我想首先在“init”钩子中调用以下函数。然后,假设,当我在以后的挂钩上调用它时,由于使用了“static”关键字,$current\\u store var已经设置好了,函数将在第一个“if”返回已经保存的静态var时停止。它不起作用-当访问稍后挂钩上的函数时,“isset($current\\u store)”返回false。我做错了什么?function get_current_store