Kunena Discuss — удобный компонент для сайта на Joomla 3. Есть у него только один неоспоримый минус — это оставленная на доработку вебмастерам локализация (перевод на язык пользователей сайта) всех надписей, выдаваемых компонентом. Однажды я уже писал о том, как перевести надпись, выдаваемую Kunena Discuss, но с тех пор прошло много времени и с переводом на русский язык стало ещё хуже (после выхода обновления компонента).
Что конкретно из Kunena Discuss научимся переводить в этой статье
Не будем ставить перед собой глобальные цели. В этой статье рассмотрим только форму, выдаваемую в конце статьи, выдаваемую Kunena Discuss для её обсуждения. Это позволит нам работать всего лишь с одним фалом исходника и с одним файлом локализации. Для тех, кто захочет перевести всё и сразу — шанс разобраться, как это делается и закончить крупномасштабный перевод всего перевода Kunena Discuss. ;)
Как выглядит форма Kunena Discuss и какие поля нуждаются в переводе
Для тех, кто поставил и настроил компонент Kunena Discuss из всего выше написанного понятно, что конкретно будем переводить, а для тех, кто до сих пор теряется в догадках, — картинка с указателями:
Файл шаблона формы Kunena Discuss form.php
Первым делом найдём файл шаблона формы Kunena Discuss, который отвечает за вывод формы и разберёмся с текстовыми переменными, которые подставляются в вывод формы. Итак, файл шаблона формы Kunena Discuss называется form.php
и находится тут:
./plugins/content/kunenadiscuss/tmpl/form.php
Приведу полны листинг этого файла, так как он достаточно короткий:
<?php
/**
* Kunena Discuss Plugin
*
* @package Kunena.plg_content_kunenadiscuss
*
* @copyright (C) 2008 - 2017 Kunena Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @link http://www.kunena.org
**/
defined('_JEXEC') or die ();
$plugin = JPluginHelper::getPlugin('content', 'kunenadiscuss');
$pluginParams = new JRegistry($plugin->params);
$bootstrap = $pluginParams->get('bootstrap');
?>
<div id="kdiscuss-quick-post<?php echo $row->id ?>" class="kdiscuss-form">
<div><h3><?php echo JText::_('PLG_KUNENADISCUSS_DISCUSS') ?></h3></div>
<?php if (isset($this->msg)) : ?>
<?php echo $this->msg; ?>
<?php else: ?>
<div class="<?php echo $bootstrap; ?>12">
<div class="<?php echo $bootstrap; ?>6">
<div>
<div>
<?php if (!$this->user->exists()) : ?>
<div class="alert alert-info"><?php echo JText::_('PLG_KUNENADISCUSS_GEN_GUEST'); ?></div>
<?php endif; ?>
<form accept-charset="UTF-8" action="" method="POST" name="postform">
<div class="form-group">
<label for="name"><?php echo JText::_('PLG_KUNENADISCUSS_NAME') ?></label>
<input class="form-control" type="text" name="name" value="<?php echo $this->name ?>" <?php if ($this->user->exists())
{
echo 'disabled="disabled" ';
} ?> placeholder="<?php echo JText::_('PLG_KUNENADISCUSS_NAME') ?>"/>
</div>
<?php if (!$this->user->exists() && $this->config->askemail) : ?>
<div class="form-group">
<label for="email"><?php echo JText::_('PLG_KUNENADISCUSS_EMAIL') ?></label>
<input class="form-control" type="text" name="email" value="<?php echo $this->email ?>" required/>
</div>
<?php endif; ?>
<textarea class="form-control counted" name="message" placeholder="<?php echo JText::_('PLG_KUNENADISCUSS_MESSAGE') ?>" rows="5" style="margin-bottom:10px;width:100%"></textarea>
<?php if ($this->hasCaptcha()) : ?>
<?php echo $this->displayCaptcha();?>
<br />
<?php endif; ?>
<button class="btn btn-primary" type="submit"><?php echo JText::_('PLG_KUNENADISCUSS_SUBMIT') ?></button>
<input type="hidden" name="kdiscussContentId" value="<?php echo $row->id ?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
</div>
</div>
</div>
</div>
<?php endif; ?>
</div>
Поля с переменными, которые заменяются фразами в файле form.php
А вот теперь смотрим на картинку (ссылка на картинку откроется в новой вкладке) и в код ;)
Поле 1 (с картинки) — это переменная «PLG_KUNENADISCUSS_DISCUSS» в строке 17 файла form.php
Поле 2 (с картинки) — это переменная «PLG_KUNENADISCUSS_GEN_GUEST» в строке 26 файла form.php
Поле 3 (с картинки) — это переменная «PLG_KUNENADISCUSS_NAME» в строке 30 файла form.php
Поле 4 (с картинки) — это переменная «PLG_KUNENADISCUSS_NAME» в строке 34 файла form.php
Поля нет (на картинке) — это переменная «PLG_KUNENADISCUSS_EMAIL» в строке 39 файла form.php
Поле 5 (с картинки) — это переменная «PLG_KUNENADISCUSS_MESSAGE» в строке 44 файла form.php
Поле 6 (с картинки) — это переменная «PLG_KUNENADISCUSS_SUBMIT» в строке 51 файла form.php
Меняем значения найденных языковых констант в файле локализации ru-RU.plg_content_kunenadiscuss.ini
Те переменные, которые мы нашли в файле form.php
называются языковые константы, а их значения находятся в файле локализации ru-RU.plg_content_kunenadiscuss.ini
, который находится в директории:
./administrator/language/ru-RU/ru-RU.plg_content_kunenadiscuss.ini
Весь листинг не буду приводить, только то, что нужно поменять. Для этого нужно открыть файл ru-RU.plg_content_kunenadiscuss.ini
и поменять значения с фраз на английском языке на фразы на русском языке, предварительно сняв комментирование в виде символа ;
в начале строки.
Нас интересуют строки 12, 110, 14, 17, 18 и 19. Приступим:
Было:
; Using new INI string format for Joomla! 2.5
; PLG_KUNENADISCUSS_DESCRIPTION="Kunena Discuss enables your site visitors to discuss and comment on your content articles in designated forum categories."
; PLG_KUNENADISCUSS_DISCUSS="Discuss this article"
; PLG_KUNENADISCUSS_POSTS="Posts in discussion"
; PLG_KUNENADISCUSS_NAME="Name"
; PLG_KUNENADISCUSS_BY="by"
; PLG_KUNENADISCUSS_POSTED="Posted:"
; PLG_KUNENADISCUSS_EMAIL="Email"
; PLG_KUNENADISCUSS_MESSAGE="Message"
; PLG_KUNENADISCUSS_SUBMIT="Submit"
Стало:
; Using new INI string format for Joomla! 2.5
; PLG_KUNENADISCUSS_DESCRIPTION="Kunena Discuss enables your site visitors to discuss and comment on your content articles in designated forum categories."
PLG_KUNENADISCUSS_DISCUSS="Обсуждение этой статьи"
; PLG_KUNENADISCUSS_POSTS="Posts in discussion"
PLG_KUNENADISCUSS_NAME="Введите своё имя"
; PLG_KUNENADISCUSS_BY="by"
; PLG_KUNENADISCUSS_POSTED="Posted:"
PLG_KUNENADISCUSS_EMAIL="Емайл"
PLG_KUNENADISCUSS_MESSAGE="Введите своё сообщение"
PLG_KUNENADISCUSS_SUBMIT="Отправить!"
... и 110-я строчка:
Было:
; PLG_KUNENADISCUSS_GEN_GUEST="<strong>INFO</strong>: You are posting the message as a 'Guest'"
Стало:
PLG_KUNENADISCUSS_GEN_GUEST="<strong>ИНФОРМАЦИЯ</strong>: Вы оставите комментарий к этой статье как 'Гость'"
Сохраняем изменения значений языковых констант в файле локализации ru-RU.plg_content_kunenadiscuss.ini
и смотрим на результат
После того, как изменения значений языковых констант в файле локализации ru-RU.plg_content_kunenadiscuss.ini
были исправлены, нужно его сохранить. После этого все названия полей в форме Kunena Discuss на всех страницах будут на родном языке, как можно убедиться, посмотрев вниз этой статьи и даже оставить комментарий с вопросами или пожелания всего хорошего мне за то, что помог в решении руссификации этого компонента Joomla. ;)
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)