如何在主题上下文之外“手动”加载翻译/测试域?

时间:2018-09-24 作者:Luca Reghellin

因此,我需要从php/html模板(当前使用mpdf库)开始构建一个pdf文件。所以my-pdf-template.php 文件永远不会显示在网站前端,而是位于主主题的文件夹中。mpdf会在某个时候加载它,并将其用作模板来格式化生成的pdf。

在当前导入的模板上使用wp函数wp-blog-header.php, 除l10n功能外,一切正常(_e, __) 不要工作。没有错误,只是他们找不到上下文的翻译(或者,他们认为它不是另一种语言,所以显示默认值)。

如何让他们在这里也能使用?或者,让他们相信当前语言是默认语言的另一种?

1 个回复
SO网友:Luca Reghellin

已发现:

load_textdomain(\'my-text-domain\', TEMPLATEPATH . \'/languages/\'. $my_locale . \'.mo\');
在某些情况下,还原以前的文本域可能很有用,因此我们应该进行备份。我在代码中隐藏了一个旧函数,它完成了所有功能,就是这个函数:

function __2($string, $textdomain, $locale){
  global $l10n;

  if(isset($l10n[$textdomain])) $backup = $l10n[$textdomain];
  load_textdomain($textdomain, get_template_directory() . \'/languages/\'. $locale . \'.mo\');
  $translation = __($string,$textdomain);
  if(isset($bkup)) $l10n[$textdomain] = $backup;

  return $translation;
}

结束

相关推荐

month name translation

我使用birdtips主题,它将发布日期格式化为$birdtips_posted = date(__(\'Y. F j.\', \'birdtips\'), strtotime(get_the_time(\"Y-m-d\"))); 其中Y.F.j.已经被改写以反映我的语言。据我所知,\\uuuu是翻译功能,但我如何告诉Wordpress我使用匈牙利语,它会自动翻译月份名称,或者我应该在中给出名称。采购订单文件?