it-swarm.asia

كيف يمكنني تصفية مصطلحات التصنيف حسب اللغة؟

لقد بحثت عن طريقة لتصفية مصطلحات التصنيف حسب اللغة (كما هو الحال بالنسبة للعقد) ، لكنني لم أجد أي طريقة للقيام بذلك.

هل تدعم وحدة المشاهدات ذلك التصفية في التصنيفات أيضًا ، أو في العقد فقط؟
كيف يمكنني تصفية مصطلحات التصنيف حسب اللغة؟

9
mohamad salama

بتمكين الوحدة آراء التدويل ، يتوفر خيار تصفية مصطلح التصنيف حسب اللغة. لاحظ أن الإصدار قيد التطوير حاليًا ولكنه يعمل مثل السحر.

screenshot showing effect of installing i18nviews

11
Nerrve

يمكنك استخدام مشاهدات التدويل الوحدة مع وحدة الترجمة التصنيفية (وهي جزء من التدويل ) للحصول على مرشح لغة لمصطلحات التصنيف.

ترجمة الآراء باستخدام التدويل. هذا العمل قيد التقدم ولا يمكن ترجمة جميع خصائص طرق العرض حتى الآن. يتطلب تدويل 6.x-1.5 أو أحدث .

3
Kristen

هنا حل آخر:

function mymodule_views_query_alter(&$view, &$query) {
  if ($view->name == 'yourviewmachinename') {
    $query->where[] = array(
      'conditions' => array(array(
        'field' => 'taxonomy_term_data.language',
        'value' => array('***CURRENT_LANGUAGE***'),
        'operator' => 'in',
      )),
      'args' => array(),
      'type' => 'AND',
    );
  }
}

المصدر هنا .

2
Ek Kosmos

لا تسمح وحدة المشاهدات بتصفية مصطلحات التصنيف حسب اللغة المرتبطة بها ، حيث Drupal لا يربط سوى اللغة بالعقد.

يمكنك ضبط العرض لإظهار العقد فقط بلغة محددة مسبقًا.

  • ضمن "معايير التصفية" ، حدد "إضافة"
  • في النموذج التالي ، حدد "ترجمة المحتوى: اللغة"
  • سيسمح لك النموذج التالي بتحديد اللغة التي تريد استخدامها لتصفية محتوى العرض بين "تحديد الكل" و "لغة المستخدم الحالية" و "لغة الموقع الافتراضية" و "لا توجد لغة" وإحدى اللغات الممكنة في الموقع.

أضفت هذا الفلتر في عرض مصطلح التصنيف الذي يأتي مع وحدة طرق العرض ، وحدد اللغة الإنجليزية كلغة لتصفية المحتوى ، وقمت بإنشاء عقدتين: واحدة باللغة الإنجليزية والأخرى باللغة اللاتينية. لقد خصصت لكل من العقد نفس مصطلح التصنيف ، واحد بمعرف يساوي 22.
عندما زرت http://example.com/taxonomy/term/22 ، أظهر العرض فعليًا المحتوى باللغة الإنجليزية فقط.

1
kiamlaluno

نظرًا لأنني أواجه بعض المشكلات الأخرى في وحدة طرق عرض التدويل ، أي أنه يبدو أنه يغير واجهة المستخدم المترجمة من طرق العرض (اتجاهات الاستدعاء ، ونص الرأس/التذييل وما إلى ذلك) ، فإنني أرفع الشفرة ذات الصلة لإنشاء فلاتر اللغة في وحدة منفصلة وحدة. استبدل MYMODULE أدناه باسم الوحدة النمطية الخاصة بك. يعمل بمثابة سحر بالنسبة لي!

/**
 * Code below is lifted from the i18nviews module. Gives the possibility to filter for
 * language on term views
 *
 * Implementation of hook_views_data_alter().
 *
 * Registers views handlers with dependency to i18n_taxonomy.
 */
function MYMODULE_views_data_alter(&$data) {

  // Add i18n language field to taxonomy_term_data. No clash.
  $data['taxonomy_term_data']['language'] = array(
    'group' => t('Taxonomy term'),
    'title' => t('Language'),
    'help' => t('The language the term is in.'),
    'field' => array(
      'handler' => 'MYMODULE_handler_field_taxonomy_term_language',
      'click sortable' => TRUE,
    ),
    'filter' => array(
      'handler' => 'MYMODULE_handler_filter_taxonomy_term_language',
    ),
    'argument' => array(
      'handler' => 'MYMODULE_handler_argument_taxonomy_term_language',
    ),
  );
}

/**
 * Field handler to provide simple renderer that shows term language.
 */
class MYMODULE_handler_field_taxonomy_term_language extends views_handler_field_taxonomy {
  function render($values) {
    $languages = locale_language_list();
    $value = isset($languages[$values->{$this->field_alias}]) ? $languages[$values->{$this->field_alias}] : '';
    $value = $this->get_value($values);
    return $this->render_link($this->sanitize_value($value), $values);
  }
}

/**
 * Filter by language
 */
class MYMODULE_handler_filter_taxonomy_term_language extends views_handler_filter_in_operator {
  function get_value_options() {
    if (!isset($this->value_options)) {
      $this->value_title = t('Language');
      $languages = array(
        '***CURRENT_LANGUAGE***' => t("Current user's language"),
        '***DEFAULT_LANGUAGE***' => t("Default site language"),
        LANGUAGE_NONE => t('No language')
      );
      $languages = array_merge($languages, locale_language_list());
      $this->value_options = $languages;
    }
  }
}

/**
 * Argument handler to accept a language.
 */
class MYMODULE_handler_argument_taxonomy_term_language extends views_handler_argument {
  function construct() {
    parent::construct('language');
  }

  /**
   * Override the behavior of summary_name(). Get the user friendly version
   * of the language.
   */
  function summary_name($data) {
    return $this->term_language($data->{$this->name_alias});
  }

  /**
   * Override the behavior of title(). Get the user friendly version of the
   * node type.
   */
  function title() {
    return $this->term_language($this->argument);
  }

  function term_language($langcode) {
    $languages = locale_language_list();
    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
  }
}
0
vegardjo

أضف إلى نموذج YOUR_MODULE.model الخاص بك

function YOUR_MODULE_views_data_alter(&$data) {
  $opts['title'] = 'Language';
  $opts['table'] = 'taxonomy_term_data';
  $opts['help'] = 'Taxonomy term language.';
  $opts['filter']['handler'] = 'YOUR_MODULE_handler_filter_language';
  $data['taxonomy_term_data']['language'] = $opts;
}

أضف إلى YOUR_MODULE.info الخاص بك

files[] = views/handlers/filter/YOUR_MODULE_handler_filter_language.inc

إنشاء ملف "طرق العرض/المعالجات/الفلتر/YOUR_MODULE_handler_filter_language.inc" داخل دليل الوحدة النمطية ووضع المحتوى التالي:

/**
 * @file
 * Views handler to filter language by term.
 */

/**
 * Filter by submission status
 */
class YOUR_MODULE_handler_filter_language extends views_handler_filter_in_operator {
  function get_value_options() {
    $languages = array(
      '***CURRENT_LANGUAGE***' => t("Current user's language"),
      '***DEFAULT_LANGUAGE***' => t("Default site language"),
      LANGUAGE_NONE            => t('Language neutral'),
    );
    $this->value_title = t('Language');
    $options = array_merge($languages, locale_language_list());
    $this->value_options = $options;
  }

  // '0' won't work as a key for checkboxes.
  function value_form(&$form, &$form_state) {
    parent::value_form($form, $form_state);
    $form['value']['#type'] = 'select';
  }
}

ستظهر محو جميع ذاكرة التخزين المؤقت والمعيار الجديد.

أو استخدم الوحدة الخاصة بي تصنيف Akuma

0
Nikita Makarov

تصفية اللغة لترجمة الكيانات. مطلوب عامل تصفية لغة في قسم "معايير التصفية" في طريقة العرض فقط إذا كنت تستخدم نظام ترجمة العقدة. إذا كنت تستخدم بدلاً من ذلك النظام الأكثر حداثة ترجمة الكيان المتاح لـ Drupal 7 ، ما عليك سوى تعديل إعداد "لغة الحقل" في قسم "أخرى" في العرض.

كيفية القيام بذلك لمصطلحات التصنيف. لقد جربت ذلك لمصطلحات التصنيف وهي تعمل. ما عليك سوى التأكد من إضافة المثال الصحيح من مثيلين للحقل لكل حقل قابل للترجمة ، وهو الحقل الذي يحتوي على وصف "يظهر في: تصنيف المصطلح: your-vocab-name". لمزيد من التفاصيل ، انظر في العدد # 1841434 .

0
tanius