翻译 WordPress 网站中未包含在 .po 文件中的主题文本
Translate theme texts in WordPress site not contained in .po file
我正在尝试向 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 的字符串翻译部分。
由于您的代码与主题中的某些设置相关联,因此您可以在 php 主题模板中使用 gettex native translatable function 直接覆盖它们。在下面的代码中,您需要将 'the title …'
替换为您的真实标题,将 'your_theme_slug'
替换为您的真实主题 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 个新的可翻译字符串。这是解决您的问题的最快方法。但是,如果还没有完成,启用 child 主题会更好,将这个更改的文件复制到其中,避免这种方式在主题更新时丢失更改…
所以,这就是我所做的,它似乎奏效了。我决定添加类似于 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 的字符串翻译选项卡中。从那里我做了翻译(在顶部菜单栏中选择显示所有语言后。)
几乎 完美。我还有一个问题,如果我不能很快自己解决,我会 post 解决这个问题。
我正在尝试向 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 的字符串翻译部分。
由于您的代码与主题中的某些设置相关联,因此您可以在 php 主题模板中使用 gettex native translatable function 直接覆盖它们。在下面的代码中,您需要将 'the title …'
替换为您的真实标题,将 'your_theme_slug'
替换为您的真实主题 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 个新的可翻译字符串。这是解决您的问题的最快方法。但是,如果还没有完成,启用 child 主题会更好,将这个更改的文件复制到其中,避免这种方式在主题更新时丢失更改…
所以,这就是我所做的,它似乎奏效了。我决定添加类似于 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 的字符串翻译选项卡中。从那里我做了翻译(在顶部菜单栏中选择显示所有语言后。)
几乎 完美。我还有一个问题,如果我不能很快自己解决,我会 post 解决这个问题。