我正在尝试将另一种语言添加到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_firstlinktitle']
和$options['unf_firstlinkdesc']
等项目添加翻译。
为了清楚起见,这些项目没有出现在Polylang的字符串翻译部分。
答案 0 :(得分:3)
由于您的代码与主题中的某些设置相关联,因此您可以使用php主题模板中的gettex native translatable function直接覆盖它们。您需要在下面的代码中用您的真实标题替换 'the title …'
,并用您的真实主题slug替换 'your_theme_slug'
:
<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个新的可翻译字符串。这是解决问题的最快方法。但是,如果还没有完成,那么启用子主题,将这个已更改的文件复制到其中会更好,避免这种方式在主题更新时失去更改...
答案 1 :(得分:0)
所以,这就是我所做的,它似乎有效。我决定添加类似于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/
然后我安装了插件Polylang Theme Strings,它将我用pll_e()
创建的所有新字符串放入Polylang的字符串翻译选项卡中。从那里我做了翻译(在顶部菜单栏中选择显示所有语言后。)
它完全可以 。我还有另外一个问题,如果我不能尽快解决这个问题,我会发布这个问题。