首页 文章

使用mqtranslate plus和wordpress翻译菜单上的自定义链接

提问于
浏览
10

关注这个问题How can I translate my navigation menu's LINKS with qtranslate on wordpress?我也尝试翻译其他语言的导航菜单 .

我做了第一个答案写的所有内容:

  • function.php 上包含该功能

  • header.php 文件上添加 'walker' => new CustomLinkModifierWalker() .

  • 将导航菜单的名称更改为 <!- -:en- ->HOME<!- -:- -><!- -:gr- ->ΑΡΧΙΚΗ<!- -:- -> ,将URL更改为 /en|en|/|gr|

但是,翻译不起作用 . 菜单显示导航中的字符串,如 HOMEΑΡΧΙΚΗ ,链接为 /en|en|/|gr| .

我究竟做错了什么?或者还有另一种翻译菜单的方法吗?

在WordPress 4.0.1下

UPDATE

在没有上述代码的情况下将名称更改为 [:en]HOME[:el]ΑΡΧΙΚΗ 会使翻译起作用,但我仍然无法使URL工作 .

UPDATE 2

menu image

和navmenu代码:

希腊语:

<ul class="menu" id="nav-menu">
<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-1091"><a href="/">ΑΡΧΙΚΗ</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-1092"><a href="/#our-company">ΣΧΕΤΙΚΑ</a></li>
</ul>

对于英语:

<ul class="menu" id="nav-menu">
<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-1091"><a href="/">HOME</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-1092"><a href="/#our-company">ABOUT</a></li>
</ul>

UPDATE 3

我尝试添加包含标记的完整路径的URL,如下所示:

[:en]http://www.mydomain.gr/en[:el]http://www.mydomain.gr

但是在我点击"save button"后,网址输入为空 . 它不保存url路径 . UPDATE 4

我在functions.php和header.php上的行添加代码 . 现在我在管理页面上有一个可选的URL . 所以,我删除了URL并添加了可选项,如下所示:

<!--:en-->/en<!--:--><!--:el-->/<!--:-->

然后我在header.php上添加了代码:

<?php $defaults = array(
      'theme_location'  => 'other',
      'container'       => '',
      'echo'            => true,
      'fallback_cb'     => 'wp_page_menu',
      'before'          => '',
      'after'           => '',
      'link_before'     => '',
      'link_after'      => '',
    'items_wrap'      => '<ul id="nav-menu" class="%2$s">%3$s</ul>',
    'depth'           => 0,
    'walker'          => ''
    );
    wp_nav_menu( $defaults );
    wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' , 'walker' => new qTranslate_Menu_Walker() ) );
    ?>
  </div>

问题是这种格式的链接: /en/#about 工作但是这种格式的链接 /en/blog 不起作用并重定向到默认语言 .

5 回答

  • 2

    试图找出在菜单上保存URL字段时是否有一个过程调用过程,看起来WordPress正在自行执行此操作而不留下取消过滤的可能性 .

    因此,考虑到这一点,我通过使用名为Optional URL的额外字段来提供解决方案,如果此字段填充了某些内容(未过滤的内容),则WordPress将使用该字段而不是正常情况下的URL字段 .

    所以在最底层的functions.php上请放置此代码,或者将其放在另一个脚本上并将其包含在函数中:

    //Return the custom meta
        function um_add_optional_url( $menu_item ) {
            $menu_item->optional_url = get_post_meta( $menu_item->ID, '_menu_item_optional_url', true );
            return $menu_item;
        }
        add_filter( 'wp_setup_nav_menu_item', 'um_add_optional_url' );
    
        //Update and save the optional url
        function um_update_optional_url( $menu_id, $menu_item_db_id, $args ) {
            if ( is_array( $_REQUEST['menu-item-optional-url']) ) {
                $subtitle_value = $_REQUEST['menu-item-optional-url'][$menu_item_db_id];
                update_post_meta( $menu_item_db_id, '_menu_item_optional_url', $subtitle_value );
            }
        }
        add_action( 'wp_update_nav_menu_item', 'um_update_optional_url', 10, 3 );
        //Custom Menu Walker to get the stored values
        class qTranslate_Menu_Walker extends Walker {
            /**
             * What the class handles.
             *
             * @see Walker::$tree_type
             * @since 3.0.0
             * @var string
             */
            public $tree_type = array( 'post_type', 'taxonomy', 'custom' );
    
            /**
             * Database fields to use.
             *
             * @see Walker::$db_fields
             * @since 3.0.0
             * @todo Decouple this.
             * @var array
             */
            public $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' );
    
            /**
             * Starts the list before the elements are added.
             *
             * @see Walker::start_lvl()
             *
             * @since 3.0.0
             *
             * @param string $output Passed by reference. Used to append additional content.
             * @param int    $depth  Depth of menu item. Used for padding.
             * @param array  $args   An array of arguments. @see wp_nav_menu()
             */
            public function start_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "\n$indent<ul class=\"sub-menu\">\n";
            }
    
            /**
             * Ends the list of after the elements are added.
             *
             * @see Walker::end_lvl()
             *
             * @since 3.0.0
             *
             * @param string $output Passed by reference. Used to append additional content.
             * @param int    $depth  Depth of menu item. Used for padding.
             * @param array  $args   An array of arguments. @see wp_nav_menu()
             */
            public function end_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
            }
    
            /**
             * Start the element output.
             *
             * @see Walker::start_el()
             *
             * @since 3.0.0
             *
             * @param string $output Passed by reference. Used to append additional content.
             * @param object $item   Menu item data object.
             * @param int    $depth  Depth of menu item. Used for padding.
             * @param array  $args   An array of arguments. @see wp_nav_menu()
             * @param int    $id     Current item ID.
             */
            public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
                $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
    
                $classes = empty( $item->classes ) ? array() : (array) $item->classes;
                $classes[] = 'menu-item-' . $item->ID;
    
                /**
                 * Filter the CSS class(es) applied to a menu item's list item element.
                 *
                 * @since 3.0.0
                 * @since 4.1.0 The `$depth` parameter was added.
                 *
                 * @param array  $classes The CSS classes that are applied to the menu item's `<li>` element.
                 * @param object $item    The current menu item.
                 * @param array  $args    An array of {@see wp_nav_menu()} arguments.
                 * @param int    $depth   Depth of menu item. Used for padding.
                 */
                $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
                $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
    
                /**
                 * Filter the ID applied to a menu item's list item element.
                 *
                 * @since 3.0.1
                 * @since 4.1.0 The `$depth` parameter was added.
                 *
                 * @param string $menu_id The ID that is applied to the menu item's `<li>` element.
                 * @param object $item    The current menu item.
                 * @param array  $args    An array of {@see wp_nav_menu()} arguments.
                 * @param int    $depth   Depth of menu item. Used for padding.
                 */
                $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth );
                $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
    
                $output .= $indent . '<li' . $id . $class_names .'>';
    
                $atts = array();
                $atts['title']  = ! empty( $item->attr_title ) ? $item->attr_title : '';
                $atts['target'] = ! empty( $item->target )     ? $item->target     : '';
                $atts['rel']    = ! empty( $item->xfn )        ? $item->xfn        : '';
                $atts['href']   = ! empty( $item->url )        ? $item->url        : '';
    
                /**
                 * Filter the HTML attributes applied to a menu item's anchor element.
                 *
                 * @since 3.6.0
                 * @since 4.1.0 The `$depth` parameter was added.
                 *
                 * @param array $atts {
                 *     The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
                 *
                 *     @type string $title  Title attribute.
                 *     @type string $target Target attribute.
                 *     @type string $rel    The rel attribute.
                 *     @type string $href   The href attribute.
                 * }
                 * @param object $item  The current menu item.
                 * @param array  $args  An array of {@see wp_nav_menu()} arguments.
                 * @param int    $depth Depth of menu item. Used for padding.
                 */
                $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
    
                $attributes = '';
                foreach ( $atts as $attr => $value ) {
                    if ( ! empty( $value ) ) {
                        $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
                        //Inject the optional URL in case it exists and the attribute is href
                        if('href' === $attr){
                            if(property_exists($item,'optional_url') && $item->optional_url){
                                $value = __($item->optional_url);
                            }
                        }
                        $attributes .= ' ' . $attr . '="' . $value . '"';
                    }
                }
    
                $item_output = $args->before;
                $item_output .= '<a'. $attributes .'>';
                //$item_output .= property_exists($item,'optional_url') ? $item->optional_url : "no";
                /** This filter is documented in wp-includes/post-template.php */
                $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
                $item_output .= '</a>';
                $item_output .= $args->after;
    
                /**
                 * Filter a menu item's starting output.
                 *
                 * The menu item's starting output only includes `$args->before`, the opening `<a>`,
                 * the menu item's title, the closing `</a>`, and `$args->after`. Currently, there is
                 * no filter for modifying the opening and closing `<li>` for a menu item.
                 *
                 * @since 3.0.0
                 *
                 * @param string $item_output The menu item's starting HTML output.
                 * @param object $item        Menu item data object.
                 * @param int    $depth       Depth of menu item. Used for padding.
                 * @param array  $args        An array of {@see wp_nav_menu()} arguments.
                 */
                $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
            }
    
            /**
             * Ends the element output, if needed.
             *
             * @see Walker::end_el()
             *
             * @since 3.0.0
             *
             * @param string $output Passed by reference. Used to append additional content.
             * @param object $item   Page data object. Not used.
             * @param int    $depth  Depth of page. Not Used.
             * @param array  $args   An array of arguments. @see wp_nav_menu()
             */
            public function end_el( &$output, $item, $depth = 0, $args = array() ) {
                $output .= "</li>\n";
            }
    
        } // Walker_Nav_Menu
    
    
    //Custom Walker on edit screen  
    add_filter( 'wp_edit_nav_menu_walker', 'custom_nav_edit_walker',10,2 );
    function custom_nav_edit_walker($walker,$menu_id) {
        return 'Walker_Nav_Menu_Edit_Custom';
    }
    
    class Walker_Nav_Menu_Edit_Custom extends Walker_Nav_Menu  {
        /**
         * @see Walker_Nav_Menu::start_lvl()
         * @since 3.0.0
         *
         * @param string $output Passed by reference.
         */
        function start_lvl( &$output, $depth = 0, $args = array() ) {
            $indent = str_repeat("\t", $depth);
            $output .= "\n$indent<ul class=\"sub-menu\">\n";
        }
    
        /**
         * @see Walker_Nav_Menu::end_lvl()
         * @since 3.0.0
         *
         * @param string $output Passed by reference.
         */
        function end_lvl( &$output, $depth = 0, $args = array() ) {
            $indent = str_repeat("\t", $depth);
            $output .= "$indent</ul>\n";
        }
        /**
         * @see Walker::start_el()
         * @since 3.0.0
         *
         * @param string $output Passed by reference. Used to append additional content.
         * @param object $item Menu item data object.
         * @param int $depth Depth of menu item. Used for padding.
         * @param object $args
         */
        function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
            global $_wp_nav_menu_max_depth;
            $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth;
    
            $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
    
            ob_start();
            $item_id = esc_attr( $item->ID );
            $removed_args = array(
                'action',
                'customlink-tab',
                'edit-menu-item',
                'menu-item',
                'page-tab',
                '_wpnonce',
            );
    
            $original_title = '';
            if ( 'taxonomy' == $item->type ) {
                $original_title = get_term_field( 'name', $item->object_id, $item->object, 'raw' );
                if ( is_wp_error( $original_title ) )
                    $original_title = false;
            } elseif ( 'post_type' == $item->type ) {
                $original_object = get_post( $item->object_id );
                $original_title = $original_object->post_title;
            }
    
            $classes = array(
                'menu-item menu-item-depth-' . $depth,
                'menu-item-' . esc_attr( $item->object ),
                'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? 'active' : 'inactive'),
            );
    
            $title = $item->title;
    
            if ( ! empty( $item->_invalid ) ) {
                $classes[] = 'menu-item-invalid';
                /* translators: %s: title of menu item which is invalid */
                $title = sprintf( __( '%s (Invalid)' ), $item->title );
            } elseif ( isset( $item->post_status ) && 'draft' == $item->post_status ) {
                $classes[] = 'pending';
                /* translators: %s: title of menu item in draft status */
                $title = sprintf( __('%s (Pending)'), $item->title );
            }
    
            $title = empty( $item->label ) ? $title : $item->label;
    
            ?>
        <li id="menu-item-<?php echo $item_id; ?>" class="<?php echo implode(' ', $classes ); ?>">
            <dl class="menu-item-bar">
                <dt class="menu-item-handle">
                    <span class="item-title"><?php echo esc_html( $title ); ?></span>
                    <span class="item-controls">
                        <span class="item-type"><?php echo esc_html( $item->type_label ); ?></span>
                        <span class="item-order hide-if-js">
                            <a href="<?php
                            echo wp_nonce_url(
                                add_query_arg(
                                    array(
                                        'action' => 'move-up-menu-item',
                                        'menu-item' => $item_id,
                                    ),
                                    remove_query_arg($removed_args, admin_url( 'nav-menus.php' ) )
                                ),
                                'move-menu_item'
                            );
                            ?>" class="item-move-up"><abbr title="<?php esc_attr_e('Move up'); ?>">&#8593;</abbr></a>
                            |
                            <a href="<?php
                            echo wp_nonce_url(
                                add_query_arg(
                                    array(
                                        'action' => 'move-down-menu-item',
                                        'menu-item' => $item_id,
                                    ),
                                    remove_query_arg($removed_args, admin_url( 'nav-menus.php' ) )
                                ),
                                'move-menu_item'
                            );
                            ?>" class="item-move-down"><abbr title="<?php esc_attr_e('Move down'); ?>">&#8595;</abbr></a>
                        </span>
                        <a class="item-edit" id="edit-<?php echo $item_id; ?>" title="<?php esc_attr_e('Edit Menu Item'); ?>" href="<?php
                        echo ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? admin_url( 'nav-menus.php' ) : add_query_arg( 'edit-menu-item', $item_id, remove_query_arg( $removed_args, admin_url( 'nav-menus.php#menu-item-settings-' . $item_id ) ) );
                        ?>"><?php _e( 'Edit Menu Item' ); ?></a>
                    </span>
                </dt>
            </dl>
    
            <div class="menu-item-settings" id="menu-item-settings-<?php echo $item_id; ?>">
                <?php if( 'custom' == $item->type ) : ?>
                    <p class="field-url description description-wide">
                        <label for="edit-menu-item-url-<?php echo $item_id; ?>">
                            <?php _e( 'URL' ); ?>
    <input type="text" id="edit-menu-item-url-<?php echo $item_id; ?>" class="widefat code edit-menu-item-url" name="menu-item-url[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->url ); ?>" /> </label> </p> <?php endif; ?> <p class="description description-thin"> <label for="edit-menu-item-title-<?php echo $item_id; ?>"> <?php _e( 'Navigation Label' ); ?>
    <input type="text" id="edit-menu-item-title-<?php echo $item_id; ?>" class="widefat edit-menu-item-title" name="menu-item-title[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->title ); ?>" /> </label> </p> <p class="description description-thin"> <label for="edit-menu-item-attr-title-<?php echo $item_id; ?>"> <?php _e( 'Title Attribute' ); ?>
    <input type="text" id="edit-menu-item-attr-title-<?php echo $item_id; ?>" class="widefat edit-menu-item-attr-title" name="menu-item-attr-title[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->post_excerpt ); ?>" /> </label> </p> <p class="field-link-target description"> <label for="edit-menu-item-target-<?php echo $item_id; ?>"> <input type="checkbox" id="edit-menu-item-target-<?php echo $item_id; ?>" value="_blank" name="menu-item-target[<?php echo $item_id; ?>]"<?php checked( $item->target, '_blank' ); ?> /> <?php _e( 'Open link in a new window/tab' ); ?> </label> </p> <p class="field-css-classes description description-thin"> <label for="edit-menu-item-classes-<?php echo $item_id; ?>"> <?php _e( 'CSS Classes (optional)' ); ?>
    <input type="text" id="edit-menu-item-classes-<?php echo $item_id; ?>" class="widefat code edit-menu-item-classes" name="menu-item-classes[<?php echo $item_id; ?>]" value="<?php echo esc_attr( implode(' ', $item->classes ) ); ?>" /> </label> </p> <p class="field-xfn description description-thin"> <label for="edit-menu-item-xfn-<?php echo $item_id; ?>"> <?php _e( 'Link Relationship (XFN)' ); ?>
    <input type="text" id="edit-menu-item-xfn-<?php echo $item_id; ?>" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->xfn ); ?>" /> </label> </p> <p class="field-description description description-wide"> <label for="edit-menu-item-description-<?php echo $item_id; ?>"> <?php _e( 'Description' ); ?>
    <textarea id="edit-menu-item-description-<?php echo $item_id; ?>" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description[<?php echo $item_id; ?>]"><?php echo esc_html( $item->description ); // textarea_escaped ?></textarea> <span class="description"><?php _e('The description will be displayed in the menu if the current theme supports it.'); ?></span> </label> </p> <?php /* * This is the added field */ if($item->type == 'custom'): ?> <p class="field-custom description description-wide"> <label for="edit-menu-item-custom-<?php echo $item_id; ?>"> <?php _e( 'Optional URL' ); ?>
    <input type="text" id="edit-menu-item-custom-<?php echo $item_id; ?>" class="widefat code edit-menu-item-custom" name="menu-item-optional-url[<?php echo $item_id; ?>]" value="<?php echo $item->optional_url; ?>" /> <span class="description">Place an URL to use instead of the original one, while this one does not strip tags (stays unfiltered)</span> </label> </p> <?php endif; /* * end added field */ ?> <div class="menu-item-actions description-wide submitbox"> <?php if( 'custom' != $item->type && $original_title !== false ) : ?> <p class="link-to-original"> <?php printf( __('Original: %s'), '<a href="' . esc_attr( $item->url ) . '">' . esc_html( $original_title ) . '</a>' ); ?> </p> <?php endif; ?> <a class="item-delete submitdelete deletion" id="delete-<?php echo $item_id; ?>" href="<?php echo wp_nonce_url( add_query_arg( array( 'action' => 'delete-menu-item', 'menu-item' => $item_id, ), remove_query_arg($removed_args, admin_url( 'nav-menus.php' ) ) ), 'delete-menu_item_' . $item_id ); ?>"><?php _e('Remove'); ?></a> <span class="meta-sep"> | </span> <a class="item-cancel submitcancel" id="cancel-<?php echo $item_id; ?>" href="<?php echo esc_url( add_query_arg( array('edit-menu-item' => $item_id, 'cancel' => time()), remove_query_arg( $removed_args, admin_url( 'nav-menus.php' ) ) ) ); ?>#menu-item-settings-<?php echo $item_id; ?>"><?php _e('Cancel'); ?></a> </div> <input class="menu-item-data-db-id" type="hidden" name="menu-item-db-id[<?php echo $item_id; ?>]" value="<?php echo $item_id; ?>" /> <input class="menu-item-data-object-id" type="hidden" name="menu-item-object-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->object_id ); ?>" /> <input class="menu-item-data-object" type="hidden" name="menu-item-object[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->object ); ?>" /> <input class="menu-item-data-parent-id" type="hidden" name="menu-item-parent-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_item_parent ); ?>" /> <input class="menu-item-data-position" type="hidden" name="menu-item-position[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_order ); ?>" /> <input class="menu-item-data-type" type="hidden" name="menu-item-type[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->type ); ?>" /> </div><!-- .menu-item-settings--> <ul class="menu-item-transport"></ul> <?php $output .= ob_get_clean(); } }

    比编辑你的header.php或你在哪里调用 wp_nav_menu 函数并将这个新的walker作为参数传递:

    wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' , 'walker' => new qTranslate_Menu_Walker() ) );
    

    qTranslate_Menu_Walker 是新的walker,用可选URL替换了URL

    PS:使用 <!--:en-->These language tags instead<!--:-->

  • 1

    qtranslate很长一段时间都有这个问题,如果你有一个链接你的实现是有效的,但如果你有不同语言的不同链接,这将不起作用 . 解决此问题的方法非常简单,您只需添加不同语言的菜单,在 Headers 中,您可以根据用户选择的当前语言调用这些菜单 .

    <?php
    if(qtrans_getLanguage()=='en') // put your code here if the current language code is 'en' (English)
    {
    
    wp_nav_menu( array('menu' => 'Nav_en' ));
    
    } elseif(qtrans_getLanguage()=='es') // put your code here if the current language code is 'es' (Español)
    {
    wp_nav_menu( array('menu' => 'Nav' ));
    }
    ?>
    

    编辑:

    使用单个菜单实现此功能的另一种方法是将此代码添加到functions.php中

    // Makes menu urls work with Qtranslate
    function qtranslate_menu_item( $menu_item ) {
      if (stripos($menu_item->url, get_site_url()) !== false){
        $menu_item->url = qtrans_convertURL($menu_item->url);
      }     
      return $menu_item;
    }
    
    add_filter('wp_setup_nav_menu_item', 'qtranslate_menu_item', 0);
    /**************************************************/
    
  • -3

    嗨Anastasios Ventouris,

    我在wordpress设置中检查了新插件,有一个名为 "Transposh Translation Filter" 的插件 . 它将在我的wordpress中正常工作所有在wordpress网站中加载的内容,包括菜单,自定义菜单链接和所有这些东西在我的wordpress中正常工作 .

    您刚刚在管理员端添加语言名称,然后转到小部件方面添加此小部件,以显示您的翻译插件 .

    现在你选择非洲语言,它会用这种语言转换你的网站数据,并在你的屏幕上显示正确的格式和输出 .

    试试这个插件,让我知道你的观点和想法 .

  • 4

    mqTranslate已被弃用,转而使用qTranslate X.我强烈建议您使用qTranslate X,而不是找到弃用的插件的解决方案 . 它更加用户友好,并具有其他功能 .

  • 1

    您可以尝试此更新代码..

    <!--:en-->Ayahuasca<!--:--><!--:ru-->Аяуаска<!--:-->
    

    这是用于菜单翻译的更新代码 . 翻译你的网站使用mqTranslate而不是qTranslate的另外一件事都有相同的功能,但mqTranslate有更多的wordpress升级版.....

    我希望这能帮到您

    Screen shots for menu translating

相关问题