Перевод (руссификация) формы Kunena Discuss на Joomla 3

Kunena Discuss — удобный компонент для сайта на Joomla 3. Есть у него только один неоспоримый минус — это оставленная на доработку вебмастерам локализация (перевод на язык пользователей сайта) всех надписей, выдаваемых компонентом. Однажды я уже писал о том, как перевести надпись, выдаваемую Kunena Discuss, но с тех пор прошло много времени и с переводом на русский язык стало ещё хуже (после выхода обновления компонента).



Что конкретно из 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() &amp;& $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. ;)

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню