我创建了一个有三个暴露过滤器的视图。一切正常,除了我无法翻译或更改下拉列表的默认字符串(-Any-)这一事实。有没有办法将此字符串更改为更有意义的内容,如“请选择”并使其可翻译,以便德语版本显示“Bittewählen”?我有两个可能有用的屏幕截图:
和
进一步的改进是能够将“任何”文本更改为“请选择一个(此处的字段名称)”,但我对此失去了希望=)
答案 0 :(得分:23)
对于任何想要将“ - Any - ”的值更改为特定内容的人,请使用自定义模块覆盖如下所示:
function yourmodulename_form_alter(&$form, $form_state, $form_id) {
if($form_state['view']->name == 'your_view_name_here') {
$form['your_dropdown_name']['#options']['All'] = t('- Type -'); // overrides <All> on the dropdown
}
}
您可能想要执行此操作的原因是,如果您有3个(例如)3个单独字段的下拉列表。然后使用它们对用户来说不是很有用(特别是如果你没有使用标签)。
在上面的代码中,只需记住将“yourmodulename”更改为模块的名称。
your_view_name_here应该是您的视图的名称(用下划线替换破折号 - 例如“property-search-bar”将变为“property_search_bar”)
将“your_dropdown_name”更改为字段名称 - 我通过安装并启用了devel模块的dsm($form)
找到了此项。这通常是您下拉列表的字段名称,因此它可能类似于“field_my_custom_value”。
希望这可以帮助任何需要它的人!
答案 1 :(得分:9)
三个选项:
在Drupal 7中(Drupal6仅在细节上有所不同)
/**
* String overrides:
*
* To override specific strings on your site with or without enabling locale
* module, add an entry to this list. This functionality allows you to change
* a small number of your site's default English language interface strings.
*
* Remove the leading hash signs to enable.
*/
$conf['locale_custom_strings_en'][''] = array(
'<Any>' => 'Whatever!',
);
但请注意,这会将完整字符串<Any>
(区分大小写)的每个出现更改为Whatever
,而不仅仅是单一形式的。
答案 2 :(得分:2)
在D6中,视图公开的过滤器标签不可翻译。 转到管理&gt;网站建设&gt;视图和选择标签工具。 将“标签”替换为“可选的单选曝光过滤器上的任何”值:'可翻译' - 任意 - '。 重要提示:使用至少一种非默认语言的语言访问带有公开过滤器的视图。 然后你可以翻译“ - 任何 - ”通过Aminister&gt;网站建设&gt;翻译界面(区分大小写)。
答案 3 :(得分:1)
或者你可以简单地使用一行jQuery代码:
$(document).ready(function(){
$("#views-exposed-form-url-name-display-name #edit-tid-all a").text("All");
});
答案 4 :(得分:1)
Better Exposed Filter module允许您更改视图公开过滤器中的“-any-”标签。
答案 5 :(得分:0)
我宁愿选择简单的解决方案:String Overrides。 有了这个,您只需在网站上添加要更改的字符串,并将其替换为您想要的任何内容(当然是字符串)。
答案 6 :(得分:0)
可能是模块https://www.drupal.org/project/views_advanced_labels有帮助吗? 我找到了,但还没试过。