【问题标题】:Wordpress : load_textdomain won't load my .mo file (not for a theme nor a plugin but for a template part)Wordpress:load_textdomain 不会加载我的 .mo 文件(不是用于主题或插件,而是用于模板部分)
【发布时间】:2013-11-30 08:06:44
【问题描述】:

我正在使用 Yoast 的方法在我的 Wordpress 站点中构建一个 html 站点地图。但需要翻译。

它使用了一个页面模板page-sitemap.php,它使用了一个模板部分

<?php get_template_part('/partials/sitemap');  ?>

在这个模板部分我...

load_textdomain( 'site-map', TEMPLATEPATH.'/partials/languages' );

函数返回假。 (" 如果 .mo 文件不可读或导入失败 - 返回 false。否则返回 true。")

路径适合我列出文件夹 TEMPLATEPATH.'/partials/languages' 的文件,它显示了我的语言文件。

如您所见,我的域名是“站点地图”。我的 .mo 文件是 site-map-fr_FR.mo 为什么加载不出来?

感谢您提供任何线索, 尼古拉斯

【问题讨论】:

    标签: wordpress translation


    【解决方案1】:

    我找到了答案: load_textdomain('站点地图', TEMPLATEPATH.'/partials/languages'); ... 给出包含 .mo 文件的文件夹的路径。但是每个单独的 mo 文件的路径都应该在它自己的 oad_textdomain 指令中使用:

    load_textdomain('site-map', TEMPLATEPATH.'/partials/languages/site-map-fr_FR.mo'); 
    load_textdomain('site-map', TEMPLATEPATH.'/partials/languages/site-map-en_US.mo'); 
    load_textdomain('site-map', TEMPLATEPATH.'/partials/languages/site-map-es_ES.mo'); 
    load_textdomain('site-map', TEMPLATEPATH.'/partials/languages/site-map-ru_RU.mo'); 
    load_textdomain('site-map', TEMPLATEPATH.'/partials/languages/site-map-de_DE.mo');
    

    真可惜,这是一个非常明显且无用的线程... 对不起!

    【讨论】:

    • 不要羞愧,一定要为你之后的许多迷失的灵魂铺平道路:)
    【解决方案2】:

    试试load_theme_textdomain('site-map', TEMPLATEPATH.'/partials/languages'); 代替你的函数。

    【讨论】:

    • 谢谢,但没有效果。我认为 load_theme_textdomain 仅用于主题翻译。但这些文件确实在我的主题文件夹中...
    • @OneMinute 请抱歉这个愚蠢的问题,但你是否更改了 wp-config.php 中的 WPLANG 常量?
    • 好吧,瓦莱里,没那么傻:) ...我正在使用 WPML 插件,因此语言状态由插件处理。无论如何,load_textdomain 函数返回一个 false,这意味着 mo 文件没有被加载。这是问题的根源...
    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2014-08-12
    • 2011-01-11
    • 1970-01-01
    相关资源
    最近更新 更多