Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 翻译WordPress站点中未包含在.po文件中的主题文本_Php_Wordpress_Wordpress Theming_Translation_Gettext - Fatal编程技术网

Php 翻译WordPress站点中未包含在.po文件中的主题文本

Php 翻译WordPress站点中未包含在.po文件中的主题文本,php,wordpress,wordpress-theming,translation,gettext,Php,Wordpress,Wordpress Theming,Translation,Gettext,我正在尝试向Wordpress站点添加另一种语言。一些翻译由一个名为Polylang的插件处理,但我也使用.po/.mo文件来处理Polylang无法访问的一些文本 但是,有些文本甚至没有显示在随主题提供的.po文件中 这里有一个例子 主题选项中有一个设置,用于设置与某些链接(标题和说明)关联的文本。主题模板中的php如下所示: <div id="homeheadlinks" class="col-md-4"> <a href="<?php echo $o

我正在尝试向Wordpress站点添加另一种语言。一些翻译由一个名为Polylang的插件处理,但我也使用.po/.mo文件来处理Polylang无法访问的一些文本

但是,有些文本甚至没有显示在随主题提供的.po文件中

这里有一个例子

主题选项中有一个设置,用于设置与某些链接(标题和说明)关联的文本。主题模板中的php如下所示:

<div id="homeheadlinks" class="col-md-4">
        <a href="<?php echo $options['unf_firstlink']?>" class="headbutton bone"><i class="golink"></i><?php echo $options['unf_firstlinktitle']?> <em><?php echo $options['unf_firstlinkdesc']?></em></a>
        <a href="<?php echo $options['unf_secondlink']?>" class="headbutton btwo"><i class="golink"></i><?php echo $options['unf_secondlinktitle']?> <em><?php echo $options['unf_secondlinkdesc']?></em></a>
        <a href="<?php echo $options['unf_thirdlink']?>" class="headbutton bthree"><i class="golink"></i><?php echo $options['unf_thirdlinktitle']?> <em><?php echo $options['unf_thirdlinkdesc']?></em></a>
    </div>

文本可以通过主题的选项进行更改,但是除了主语言之外,没有其他方法可以通过这种方式添加其他语言

如何为
$options['unf\u firstlinktitle']
$options['unf\u firstlinkdesc']
等项目添加翻译


需要明确的是,这些项目不会出现在Polylang的字符串翻译部分。

由于您的代码与主题中的某些设置相关联,您可以在php主题模板中直接覆盖它们。您需要在下面的代码中用真实的标题替换
,用真实的主题替换

    <div id="homeheadlinks" class="col-md-4">
        <a href="<?php echo $options['unf_firstlink']?>" class="headbutton bone"><i class="golink"></i><?php _e('the title …', 'your_theme_slug'); ?> <em><?php echo $options['unf_firstlinkdesc']?></em></a>
        <a href="<?php echo $options['unf_secondlink']?>" class="headbutton btwo"><i class="golink"></i><?php _e('the title …', 'your_theme_slug'); ?> <em><?php echo $options['unf_secondlinkdesc']?></em></a>
        <a href="<?php echo $options['unf_thirdlink']?>" class="headbutton bthree"><i class="golink"></i><?php _e('the title …', 'your_theme_slug'); ?> <em><?php echo $options['unf_thirdlinkdesc']?></em></a>
    </div>

然后,您需要使用Polylang重新扫描此模板以获得新字符串,然后您将找到3个新的可翻译字符串。这是解决问题的最快方法。但是,如果还没有完成,最好启用一个子主题,将更改后的文件复制到其中,避免在主题更新时丢失更改


参考资料:

所以,下面是我所做的,它似乎起了作用。我决定添加一些类似于LoicTheAztec建议的内容

在每个链接中,我都将它们更改为

<a href="<?php pll_e('http://mydomainname.com/englishpage/', 'mytheme-child') ?>" class="headbutton bone"><i class="golink"></i><?php pll_e('Link text', 'mytheme-child') ?> <em><?php pll_e ('Link description', 'mytheme-child') ?></em></a>https://wordpress.org/plugins/polylang-theme-strings/
https://wordpress.org/plugins/polylang-theme-strings/
然后我安装了插件,它将我用
pll_e()
创建的所有新字符串放入Polylang的字符串翻译选项卡中。在那里我做了翻译(在顶部的菜单栏中选择ShowAll Languages之后)


它几乎可以完美地工作。我还有一个问题,如果我自己不能很快解决的话,我会发布这个问题

我还没试过这个。一旦我尝试过,我会给你反馈。我非常感谢你的回复。