问题描述
以下代码来自acf字段。
你能告诉我在这种情况下如何翻译它们吗?
<div class="acf-input">
<div class="acf-file-uploader" data-library="all" data-mime_types="" data-uploader="basic">
<input type="hidden" name="acf[field_60bc51d8898c5]" value="" data-name="id"> <div class="show-if-value file-wrap">
<div class="file-icon">
<img data-name="icon" src="" alt="">
</div>
<div class="file-info">
<p>
<strong data-name="title"></strong>
</p>
<p>
<strong>File name:</strong>
<a data-name="filename" href="" target="_blank"></a>
</p>
<p>
<strong>filesize:</strong>
<span data-name="filesize"></span>
</p>
</div>
<div class="acf-actions -hover">
<a class="acf-icon -cancel dark" data-name="remove" href="#" title="Delete"></a>
</div>
</div>
<div class="hide-if-value">
<label class="acf-basic-uploader">
<input type="file" name="acf[field_60bc51d2899c5]" id="acf-field_60bc51d2899c5">
</label>
</div>
</div>
</div>
谢谢。
解决方法
如果您只想翻译几个单词而不是整个插件,那么您可以使用以下方法!
因此,每个完善的插件/主题都有一个与之关联的 text domain
,以便您可以连接到它并操纵由该插件/主题生成的任何文本。例如,text domain
插件的 woocommerce
是 woocommerce
!对于 ACF
插件,它是 acf
!
通常您可以在插件的主文件中找到 text domain
。对于 ACF
插件,您可以在位于插件根目录的 acf.php
中找到它。请看下面的截图!
找到 text domain
后,您可以使用 gettext
、ngettext
等 filter hooks
钩住它!看下面的代码:
add_filter('gettext','your_theme_translate_acf_fields',20,3);
function your_theme_translate_acf_fields($translated,$text,$domain)
{
if ('acf' == $domain) :
switch ($translated) {
case 'No file chosen': // THIS IS THE TEXT GENERATED BY THE ACF PLUGIN
$translated = 'ファイルが選択されていません';
break;
case 'Choose File': // THIS IS THE TEXT GENERATED BY THE ACF PLUGIN
$translated = 'ファイルを選ぶ';
break;
}
endif;
return $translated;
}
注意:大小写很重要!
代码转到您的活动主题的 functions.php
。经测试有效!
Wordpress 翻译过滤器钩子:
gettext
ngettext
如果您想先翻译任何插件,请检查 .pot 文件。该文件位于 wp-content>plugins>plugins-name>languages 中。您可以使用 POedit 编辑该文件。您可以翻译成任何语言。