2016-07-24 95 views
2

我试图向Wordpress网站添加另一种语言。有些翻译是由一个名为Polylang的插件处理的,但我也使用.po/.mo文件来处理Polylang无法访问的一些文本。在WordPress网站中翻译不包含在.po文件中的主题文本

但是,即使在随主题提供的.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

我还没有尝试过。一旦我尝试过,我会给你反馈。我非常感谢你的回应。 –

回答

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的字符串翻译标签。从那里我做了翻译(选择顶部菜单栏中的显示所有语言后)。

它的工作原理几乎完美。我还有一个问题,如果我不能很快解决问题,我会发布一些问题。

3

由于您的代码与您的主题中的某些设置相关联,因此您可以直接在您的php主题模板中使用gettex native translatable function来覆盖它们。您需要在下面的代码在你真正的主题塞更换'the title …'通过你的真实标题和'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个新的可翻译字符串。这是解决您的问题的最快方法。但是,如果还没有完成,这将是更好的让子主题,复制此更改的文件进去,避免这样失去更改时主题得到更新...

参考:I18n for WordPress Developers (gettex)