Intereting Posts
Перегрузка MetaTable Отключить плагин на определенной странице администратора Предупреждение Предупреждение $ wpdb-> подготовить неправильное количество переданных аргументов Как закодировать пользовательские поля в шаблоне страницы? Как создать дочернюю тему, которую я сделал POST через сторонний плагин? Как создать эту постоянную ссылку: post_type / postname / custom_inner_page Найдите, какая структура Permalink является лучшей Переходные процессы и CRON + пользовательские поля: кэширование данных за сообщение Показать все термины в пользовательской таксономии со всеми дочерними терминами, завернутыми в ul Толкот никогда не называется (странное поведение) Как я могу безопасно увеличить лимит символов для почтовых паролей? Многоузловая установка с общей базой данных и сообщениями, но разные налоги, доставка и т. Д. Отключить обновления основного ядра WP, но отправить уведомление по электронной почте Интеграция кнопки buynow в paypal с wordpress для цифровой загрузки Код плагина ebook не работает

Как добавить многоязычную поддержку qtranslate для мультимедиа?

Многоязычный плагин qtranslate работает для пользовательских типов сообщений, но нет возможности переводить информацию о медиа, такую ​​как название, описание, подписи для изображений.

Я использую следующий код (WP v3.7.1), чтобы добавить поддержку для перевода таможенных таксономий:

add_action('admin_init', 'qtranslate_edit_taxonomies'); function qtranslate_edit_taxonomies(){ $args=array( 'public' => true , '_builtin' => false ); $output = 'object'; // or objects $operator = 'and'; // 'and' or 'or' $taxonomies = get_taxonomies($args,$output,$operator); if ($taxonomies) { foreach ($taxonomies as $taxonomy ) { add_action( $taxonomy->name.'_add_form', 'qtrans_modifyTermFormFor'); add_action( $taxonomy->name.'_edit_form', 'qtrans_modifyTermFormFor'); } } } 

Я думаю, что qtrans_modifyTermFormFor может использоваться для любого окна ввода, но я не знаю, какой крючок использовать. Я проверил media.php, но не повезло.

Есть ли что-нибудь, что можно сделать, как приведенный выше пример для вложений данных вложений?

Solutions Collecting From Web of "Как добавить многоязычную поддержку qtranslate для мультимедиа?"

Хороший вопрос .

Ну .. После прочтения Rcalleja ответьте. Вы можете использовать плагин, предоставленный, но на самом деле нет необходимости в нем, ни для взлома кода, ни для жонглирования php.

Все, что вам нужно сделать, это использовать quicktags в полях вложений:

 [:en]English Description[:fr]French description[:de]German description 

После этого (и теперь это зависит от доступа к файлам тем, но если вы здесь, я предполагаю, что это не проблема), вам нужно будет использовать небольшую встроенную функцию, называемую qtrans_use() которая сообщает qtranslate, какой язык использование ..

 qtrans_use('fr',$string,false); 

например, если вы используете очень популярную функцию the_post_thumbnail() , вам придется перевести атрибуты it. поскольку он использует wp_get_attachment_image , мы знаем, что атрибуты, например, (от codex):

 $default_attr = array( 'src' => $src, 'class' => "attachment-$size", 'alt' => trim(strip_tags( $wp_postmeta->_wp_attachment_image_alt )), ); 

Теперь нам нужно получить название alt и title:

 $thumb_id = get_post_thumbnail_id(get_the_ID()); $alt = get_post_meta($thumb_id, '_wp_attachment_image_alt', true); $title = get_post_meta($thumb_id, '_wp_attachment_image_title', true); 

Итак, поставив 2 и 2 вместе:

  $attr = array( 'alt' => qtrans_use('de',$alt,false), 'title' => qtrans_use('de',$alt,false), ); 

а потом

 the_post_thumbnail('my_size',$attr); 

et voila ! title и description будут на немецком языке .. ( 'de' )

(«de» – просто пример, чтобы автоматизировать процесс, была бы другая встроенная функция qtrans_getLanguage()qtrans_getLanguage() )

Я использовал этот метод в прошлом, и он всегда работал для меня. На самом деле, можно перевести любые аспекты wordpress с помощью qtranslate, без необходимости в дополнительных плагинах.

qtranlaste – один из лучших написанных плагинов (хотя и немного старый ..), и я сам являюсь его большим поклонником. Автор использовал внутренние фильтры и крючки задолго до того, как большинство нынешних «экспертов» начали применять их в плагинах или даже знали о существовании. на самом деле, это (IMHO) лучший плагин для перевода.

Проблема в том, что (как и сам WordPress) он очень обширен и расширяем, но он имеет много фильтров и функций, которые плохо документированы, что требует «копать в код».

К счастью, кто-то уже это сделал.

ИЗМЕНИТЬ I:

Существует также еще один способ фильтрации всего post thumbnail созданного HTML, с post_thumbnail_html фильтра post_thumbnail_html . Но так как вышеупомянутый метод является общим и может быть применен к любому элементу (а не только к миниатюре), и поскольку вы специально не задавали вопрос о больших сообщениях, кроме средств массовой информации вообще, я думал, что это предпочтительнее объяснять, а не намного более конкретный один .

Вы можете загрузить плагин с исправлением от GitHub.

  • qTranslate Multimedia Language – github

Извлекает папку qTranslate в ваш каталог плагина WordPress и перезаписывает вашу фактическую папку «qTranslate».

Если вы предпочитаете, вы можете извлечь qtranslate_hook.php файл qtranslate_hook.php в свою папку плагинов.

Теперь вы должны выбрать язык для носителя из панели инструментов /wp-admin .

Затем с помощью этого исправления вы можете использовать метод get_attachment_language($attachment_id) для получения языка.

Вам необходимо создать один медиафайл для каждого требуемого языка. Каждый из них имеет название, описание, подписи на выбранном языке. И измените логику вашего шаблона, чтобы показать только вложения текущего языка.