Drupal - 对某项目进行批量taxonomy term语言模式转换

PHP中文网
リリース: 2016-05-25 16:58:42
オリジナル
1338 人が閲覧しました

项目有两种语言,taxonomy term的语言模式为Translate,转换为Localize。

 $debug = true;
  $machine_name = 'clinical_centres';
  $root = taxonomy_vocabulary_machine_name_load($machine_name);
  $root->i18n_mode =1;
  taxonomy_vocabulary_save($root);
  $tree = i18n_taxonomy_get_tree($root->vid,'en');
  dsm($tree);

  $tree_new = array();

  foreach($tree as $index=>$term){
    $term_und = i18n_taxonomy_term_get_translation($term,'und');
    $term_new = $term_und?$term_und:new stdClass();
    $term_new->name = $term->name;
    $term_new->description  = $term->description;
    $term_new->format = 'full_html';
    $term_new->vocabulary_machine_name = $machine_name;
    $term_new->language  = 'und';
    $term_new->vid  = $root->vid;//$root_new->vid;
    $term_new->parent[0]  =  0;
    $term_new->weight  =  $term->weight;

    if($term->parents[0]>0){
      foreach($tree as $tmp_index=>$tmp){
        if(in_array($tmp->tid, $term->parents)){
            $term_new->parent[0] = $tree_new[$tmp_index]->tid;
          break;
        }
      }
    }
    taxonomy_term_save($term_new);
    $tree_new[$index] = $term_new;

    $translation_set = i18n_translation_set_load($term->i18n_tsid);
    if($translation_set){
      $term_zh = $translation_set->get_item('zh-hant');
      $term_en = $translation_set->get_item('en');
      //译文
      i18n_string_textgroup('taxonomy')->update_translation(array('term', $term_new->tid, 'name'), 'zh-hant', $term_zh->name);

      i18n_taxonomy_taxonomy_term_delete($term_zh);
      taxonomy_term_delete($term_zh->tid);
      i18n_taxonomy_taxonomy_term_delete($term_en);
      taxonomy_term_delete($term_en->tid);
      $translation_set->get_translations();
      $translation_set->remove_language('zh-hant');
      $translation_set->remove_language('en');
      $translation_set->update_delete();
    }
  }
ログイン後にコピー
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!