1

对不起我的英语我正在尝试建立一个多语言网站。我在 youtube 上遵循了有关该问题的教程。这很好。它会引导您完成设置所有这些模块和设置的丛林。但他没有涵盖的是基于视图模块的输出解决方案。

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

好的,所以我在想:在“高级”部分的“查看-编辑”下,我看到了“FIELD-LANGUAGE”选项。默认情况下,它设置为 CURRENT-USER-LANGUAGE。我将其更改为默认站点语言。这会产生影响,即视图显示每种语言、默认语言及其翻译版本。现在,如果我要创建一个函数,它会在选择语言时取消设置内容,一切都会好的。现在我到目前为止发现的是:我在 template_preprocess-views-view 级别打印了一个 DSM($variables['view']。在 RESULTS 下,我看到了两个对象,默认的表示和翻译的版本.我可以使用对象的node_language中的字符串值,因此它应该根据语言显示或不显示。但由于我不是PHP的专家,我不知道如何进一步进行。我' 我正在考虑在 html 级别上编写一个函数并检索它的 classes_array 的特定值,当它处于英语模式时,该值将是:i18n-en。因此,基于该值,我将取消设置那些我不想在视图视图结果下显示的对象。但是我怎样才能将行为传递给查看,或者这毕竟是正确的方法?嗯,希望大家有足够的耐心理解我的问题。提前非常感谢。马塞尔 提前非常感谢。马塞尔 提前非常感谢。马塞尔

4

1 回答 1

0

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

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

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

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

于 2014-07-25T12:14:47.450 回答