Как перевести контент в category.php или index.php с помощью qtranslate?

12 июл. 2013 г., 12:05:34
Просмотры: 27.4K
Голосов: 3

Мне интересно, как перевести контент в index.php (или category.php с помощью qtranslate?)

Я использую тему twenty twelve.

Мой код в index.php:

<?php
/**
* Основной шаблонный файл.
* @package WordPress
* @subpackage Twenty_Twelve
* @since Twenty Twelve 1.0
*/
?>
<?php get_header(); ?>
<?php 
$page_id = 1500;
$page_data = get_page( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
<section id="last-articles_homepage">
<h1>Latest News</h1>
...

Я хотел бы перевести контент внутри тега <section> и <h1>, например, на французский язык.

4
Комментарии

Вы читали инструкцию к плагину? Я никогда им не пользовался, но в инструкции сказано, что всё просто — достаточно посетить страницу/запись с языковым параметром в URL, например: ?lang=en или ?lang=fr...

t31os t31os
12 июл. 2013 г. 12:30:43

Значит, вы хотите перевести этот статический текст: 'Latest News'?

Krzysiek Dróżdż Krzysiek Dróżdż
12 июл. 2013 г. 12:30:55

@KrzysiekDróżdż : именно. Я пробовал [en:]Английский текст[fr:]Французский текст вместо статического текста, но это не сработало. (извините за мой плохой английский)

Exalight3666 Exalight3666
12 июл. 2013 г. 12:46:37

Двоеточие : должно быть перед указанием языка, а не после. Пример: [:en]

Mario Radomanana Mario Radomanana
15 апр. 2014 г. 14:19:26
Все ответы на вопрос 4
3
10

Это решение сработало для меня

<?php echo __('[:fr]Plus[:en]More'); ?>

Примечание: символ ":" ставится перед языком, а не после

15 апр. 2014 г. 09:44:54
Комментарии

IMO лучший ответ. Коротко, просто и отлично работает.

Julia Julia
10 февр. 2017 г. 14:24:50

Да, лучший ответ, отлично сработало для меня с qTranslate-X 3.4.6.8

kazes kazes
14 февр. 2017 г. 14:31:35

Согласно FAQ, это рекомендуемый способ сделать это. https://qtranslatexteam.wordpress.com/faq/

Arsen Kazydub Arsen Kazydub
18 янв. 2021 г. 11:54:24
4

Наиболее правильный способ сделать это - использовать систему перевода WordPress.

Вам следует заменить статический текст на:

<?php _e('ВАШ ТЕКСТ', 'your_text_domain'); ?>

И добавить текстовый домен в вашу тему.

Подробнее по теме: http://codex.wordpress.org/I18n_for_WordPress_Developers

Вы также можете...

... использовать функцию qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage.

Используйте её следующим образом:

<?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage('<!--en:-->Latest News<!--:--><!--fr:-->dernières Nouvelles<!--:-->'); ?>
12 июл. 2013 г. 12:58:19
Комментарии

это не работает... когда я вставляю его, я вижу текст на обоих языках на одной странице :/ даже если другие текстовые блоки отображаются на правильном языке (потому что они редактируются через админ-панель WordPress)

Exalight3666 Exalight3666
12 июл. 2013 г. 14:57:15

Какое решение вы используете? Пожалуйста, опубликуйте ваш код

Krzysiek Dróżdż Krzysiek Dróżdż
12 июл. 2013 г. 14:58:58

<?php ?> <?php get_header(); ?> <?php $page_id = 1500; $page_data = get_page( $page_id ); echo apply_filters('the_content', $page_data->post_content);

?>
<section id="last-articles_homepage">
<h1>Derniers articles<?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage('<!--en:-->Latest News<!--:--><!--fr:-->dDerniers articles<!--:-->'); ?></h1>
Exalight3666 Exalight3666
12 июл. 2013 г. 15:07:40

Должно быть: <h1><?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage('<!--en:-->Latest News<!--:--><!--fr:-->dDerniers articles<!--:-->'); ?></h1>

Krzysiek Dróżdż Krzysiek Dróżdż
12 июл. 2013 г. 15:09:16
1

Я нашел решение для похожей проблемы на форуме поддержки Qtranslate:

<?php if(qtrans_getLanguage() == "fr") : ?> <h1>Это французский</h1>
<?php endif ?> 
<?php if(qtrans_getLanguage() == "en") : ?> <h1>Это английский</h1> 
<?php endif ?>

Надеюсь, это сработает и для вас! :)

15 янв. 2014 г. 15:22:52
Комментарии

qtrans_getLanguage устарела, используйте qtranxf_getLanguage вместо этого

Jamel Zarga Jamel Zarga
31 мая 2018 г. 11:51:41
0

Я нашел это на Форуме WP, и это сработало для меня.

<?php _e("[:fr]Les réseaux sociaux[:en]Social Media[:ru]Социальные сети[:]"); ?>
11 февр. 2016 г. 07:02:03