2010-01-14 89 views
2

我在Drupal中有多语言网站,但并非所有内容都已翻译。我只希望语言切换器块在内容页面中出现,只有在该内容翻译时才会显示。Drupal:仅在翻译内容时才显示语言切换器

语言切换程序块使用功能translation_path_get_translations获取正在查看的内容的翻译版本的路径。如果没有翻译的路径,该块不会打印切换器。

问题是,翻译后的版本有时处于与原始内容相同的路径下(例如,当它是视图或模块生成的内容时)。在这种情况下,虽然translation_path_get_translations不会返回任何已翻译的路径,但应该打印语言切换器,因为视图或模块将负责翻译。

例如,这些是翻译的内容的路径:

english/content-path-here 
portuguese/conteudo-aqui 

而这些是由视图或模块生成的内容的路径:

english/foobar 
portuguese/foobar 

所以,有一种方法解决这个问题?也许一种方法来确定给定的路径是否是“真实内容”(而不是视图/模块)?

谢谢。

+0

你将如何确定一个观点是翻译? – googletorp 2010-01-15 16:06:05

+0

googletorp,在这个特定的项目中,视图总是有一些翻译的内容可以显示。问题在于单节点。 – 2010-01-17 13:54:35

回答

2

嗯,我认为这是可能的,只能通过路径手动。
可能是帮助这个:


if ((arg(0) == 'node') && is_numeric(arg(1))) { 
    // that show you are on single node, and you can show block for translation 
} 
+0

谢谢!不是一个完美的解决方案,但在我的项目中工作:) – 2010-01-17 13:56:17