Intereting Posts
Использование esc_url () на URL-адресе более одного раза как изменить ссылку на некоторые страницы wordpress Изменение встроенного поведения функциональности тега ajax типа «вперед» WordPress Как сделать кнопку «удалить» неактивной в некоторых категориях? Выбор пользовательского таксономического тега Front-End Сообщения в блоге не отображаются в качестве подписок на странице блога Скользящий карусель в wordpress Расширенная форма поиска с фильтрами для пользовательских таксономий Пользовательские ссылки для разбивки на страницы Неустранимая ошибка: вызов неопределенной функции dbDelta () Не удается получить пользовательское поле RSS из сообщений Пользовательское приложение PHP со словом wordpress Как отобразить сообщение об обновлениях в списке плагинов Вызовите настраиваемое поле, используя php Показывать только похожие сообщения, когда другая должность имеет такой же срок

Как добавить многоязычную поддержку 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) для получения языка.

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