解决用 entity_translation 模块建立多语言网站,在 Views 无法翻译问题
来源:互联网 发布:c语言黑客代码大全 编辑:程序博客网 时间:2024/06/06 12:36
在用entrity_translation模块建立支持多语言网站时候,用Views的时候,不管怎么设置都无法显示中文(网站以英文为主,添加中文)
参考:https://www.drupal.org/node/1605406
需要修改下列文件 entity_translation.info
@@ -20,3 +20,4 @@ files[] = views/entity_translation_handler_field_label.inc files[] = views/entity_translation_handler_filter_entity_type.inc files[] = views/entity_translation_handler_filter_language.inc files[] = views/entity_translation_handler_filter_translation_exists.inc+files[] = views/entity_translation_handler_field_field.inc
在 entity_translation目录下找到 entity_translation.info
添加:views/entity_translation_handler_field_field.inc
----------------------------------------
打开 views\entity_translation.views.inc
@@ -224,4 +224,24 @@ function entity_translation_views_data_alter(&$data) { ); } }++ // Expose all translatable fields, using a handler based off Views' default+ // field handler, that allows users to select the language to display the+ // field in.+ foreach (field_info_fields() as $field) {+ if ($field['translatable'] && $field['storage']['type'] == 'field_sql_storage') {+ // Set defaults and just change the handler, title, group, and help.+ $defaults = field_views_field_default_views_data($field);+ foreach ($defaults as $table_name => $table_data) {+ if (isset($data[$table_name][$field['field_name']])) {+ $field_title = $table_data[$field['field_name']]['title'];+ $table_data[$field['field_name']]['title'] = t('!title: translated', array('!title' => $field_title));+ $table_data[$field['field_name']]['group'] = t('Entity translation');+ $table_data[$field['field_name']]['help'] .= ' ' . t('Show the field !title translated into a specified language', array('!title' => $field_title));+ $table_data[$field['field_name']]['field']['handler'] = 'entity_translation_handler_field_field';+ $data[$table_name][$field['field_name'] . '_et'] = $table_data[$field['field_name']];+ }+ }+ }+ } }
在最后添加 +后面的代码
------------------------------------------------
在views目录下,新建 entity_translation_handler_field_field.inc 文件
<?php/** * @file * This file contains a field handler for entity translation that shows field * content translated into a specified language. */class entity_translation_handler_field_field extends views_handler_field_field { function option_definition() { $options = parent::option_definition(); $options['language'] = array( 'default' => '***CURRENT_LANGUAGE***', ); return $options; } function options_form(&$form, &$form_state) { parent::options_form($form, $form_state); $languages = array( '***CURRENT_LANGUAGE***' => t("Current user's language"), '***DEFAULT_LANGUAGE***' => t("Default site language"), LANGUAGE_NONE => t('Language neutral'), ); $languages = array_merge($languages, locale_language_list()); $form['language'] = array( '#type' => 'select', '#title' => t('Language'), '#options' => $languages, '#default_value' => $this->options['language'], '#description' => t('Select the language to display this field in') ); } /** * Overrides parent::field_language, retrieving the language from the handler * options. */ function field_language($entity_type, $entity) { global $language_content; if (field_is_translatable($entity_type, $this->field_info)) { $default_language = language_default('language'); $language = str_replace(array('***CURRENT_LANGUAGE***', '***DEFAULT_LANGUAGE***'), array($language_content->language, $default_language), $this->options['language']); // Give the Field Language API a chance to fallback to a different language // (or LANGUAGE_NONE), in case the field has no data for the selected language. // field_view_field() does this as well, but since the returned language code // is used before calling it, the fallback needs to happen explicitly. $language = field_language($entity_type, $entity, $this->field_info['field_name'], $language); return $language; } else { return LANGUAGE_NONE; } }}
---------------------------------------------------
做好以上修改后,在Views的Fields里会多一个选项 Entity translation: Title
0 0
- 解决用 entity_translation 模块建立多语言网站,在 Views 无法翻译问题
- PlayFramework Play2 Java 关于解决在eclipse建立 views html 模板无法提示 笔记(2)
- PlayFramework Play2 Java 关于解决在eclipse建立 views html 模板无法提示
- 解决 wget 无法建立SSL问题
- 建立多语言Magento网站
- 解决PHP网站无法上传图片问题
- 模块在insmod之后无法rmmod问题
- 用xampp在本地建立的wordpress网站修改数据库密码后无法登陆
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
- Ubuntu 11.10中如何解决:Gtk-WARNING ___ 无法在模块路径中找到主题引擎:“pixmap”问题
- qt无法翻译问题
- 解决Mac上PyDev无法导入某些模块的问题
- 解决windows下angular2无法成功下载模块问题
- PDF预览之PDF.js在网站上建立pdf.js文档翻译
- 建立你网站的投票机制![翻译]
- Qt语言家使用问题:在语言家翻译了,但程序起来翻译就是不起作用
- 在Asp.net用C#建立动态Excel(外文翻译)
- 如何在自定义模块中theme特定的views字段
- C# URL操作
- .htaccess实现301网页永久重定向及302临时重定向
- URL重写:RewriteCond指令与RewriteRule 指令格式
- Dynamic dates in Selenium IDE
- Apache 中文乱码问题解决方法
- 解决用 entity_translation 模块建立多语言网站,在 Views 无法翻译问题
- BSCMAKE: error BK1506 : : No such file or directory 的解决
- 解决C++ 无法从void 转换为LRESULT的方法详解
- (面试)C语言指针程序改错题
- 怎样使用JS代码代码跳转的方法
- DirectX 9.0c游戏开发手记之RPG编程自学日志之15: Drawing with DirectX Graphics (用DirectX图形绘图)(第8-9节)
- LeetCode-Maximum Product Subarray
- linux cat 命令
- 如何快速使用上C++11