Drupal:如何根据语言创建一个函数,以便它不显示实体?

时间:2013-10-25 11:55:17

标签: php drupal multilingual

抱歉我的英文 我试图建立一个多语言网站。我在youtube上关注了这个问题的教程。这很好。它引导您完成设置所有这些模块和设置的丛林。但他没有涉及的是基于视图模块的输出解决方案。

我试着四处寻找,但似乎没有解决方法如何让视图模块根据语言显示正确的语言。通过选择语言可以正确切换其他所有内容。

好的,所以我在想: 在“高级”部分的“查看 - 编辑”下,我看到了“FIELD-LANGUAGE”选项。默认情况下,它设置为CURRENT-USER-LANGUAGE。我把它改成了DEFAULT-SITE-LAN​​GUAGE。这会导致影响,视图显示每种语言,默认值和它的翻译版本。 现在,如果我要创建一个函数,那么在选择语言时会取消内容,一切都会好的。现在我发现到目前为止:我在template_preprocess-views-view级别打印出一个DSM($ variables ['view']。在结果下,我看到两个对象,默认表示和翻译版本我可以使用一个对象的node_language的字符串值,所以它应该显示或不依赖于语言。但是因为我不是PHP的大师,所以我不知道如何继续进行。 我想在html级别编写一个函数并检索它的classes_array的特定值,当它处于英语模式时,该值将为:i18n-en。因此,基于该值,我将取消设置那些我不想在视图视图结果下显示的对象。但是我怎样才能将行为传递给查看,或者这是正确的方法吗? 好吧,我希望你们都有足够的耐心了解我的问题。 非常感谢提前。 烫发

1 个答案:

答案 0 :(得分:0)

我不确定你想要达到的目标。

您始终拥有全局对象$语言,您可以检查当前语言:

if ($language->language == 'en') do something language dependent...

编辑视图时,您可以创建语言上下文过滤器,从PHP计算所需的语言,并使用views_embed_view()或views_get_view_results()并使用语言将结果限制为一种(或多种)语言。