Drupal 7在自定义php代码中获取本地化分类数据

时间:2011-10-04 09:52:56

标签: php drupal internationalization drupal-7

我正在研究一个drupal网站,我需要有一个分类数据的信息页面。

分类数据有一些额外的字段显示,包括自定义链接。

默认的分类法页面不允许自定义链接,它会显示与该术语相关联的内容,我不希望这样。

我制作了一个输出块的模块,我基本上使用了这段代码

$term = taxonomy_term_load($termId);

这很好用,但我无法获得分类法的翻译版本!我正在使用i18n模块。

如何获取分类标准的本地化版本?

提前致谢,

Jorik

3 个答案:

答案 0 :(得分:6)

taxonomy_term_view()的langcode参数用于按关联节点的语言进行过滤。它(不幸的是?)与术语本身的语言无关。

您可以使用

获取i18n本地化术语
$term = taxonomy_term_load($tid);
if (module_exists('i18n_taxonomy')) {
    module_load_include('inc', 'i18n', 'i18n_taxonomy.pages');
    $term = i18n_taxonomy_localize_terms($term);
}
print render(taxonomy_term_view($term, 'full'), $language->language);

答案 1 :(得分:1)

您需要通过taxonomy_term_view()运行您的术语对象,它将使用特定的语言代码为您构建视图。您可以使用全局$language对象获取页面的“当前”语言:

global $language;
$term = taxonomy_term_load($termId);
$view = taxonomy_term_view($term, 'full', $language->language);
$html_output = render($view);

答案 2 :(得分:0)

只是一个提示,在编写Views模块时并不完全支持本地化术语,就像默认的分类法页面那样。你可以查看http://drupal.org/project/i18nviews