You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

100 lines
3.5 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
//
// Description
// This plugin assists in the translation of a link for a page written in the
// source language.
//
// You can use the plugin to translate the name of the target language page,
// without actually creating that target language page.
//
// You can also use the plugin to create that target language page (if it
// doesn't already exist), and tie it to the source language page.
//
require_once(__DIR__ . '/../debug/Tracer.php');
function wikiplugin_translationof_info()
{
$description =
tra('Translate a link from one language to another');
return [
'name' => tra('TranslationOf'),
'documentation' => 'PluginTranslationOf',
'description' => $description,
'prefs' => [ 'feature_multilingual', 'wikiplugin_translationof' ],
'iconname' => 'language',
'introduced' => 12,
'params' => [
'orig_page' => [
'required' => true,
'name' => tra('Original Page'),
'description' => tra('Name of the page from which this link will be translated.'),
'since' => '12.0',
'filter' => 'pagename',
'default' => '',
],
'translation_lang' => [
'required' => true,
'name' => tra('Translation Language'),
'description' => tr('Two letter language code of the language in which you want to translate this
link. Example:') . ' <code>fr</code>',
'since' => '12.0',
'filter' => 'alpha',
'default' => '',
],
'translation_page' => [
'required' => false,
'name' => tra('Translation Name'),
'description' => tra('Name of the page that will become the translation of the "Original Page".'),
'since' => '12.0',
'filter' => 'pagename',
'default' => '',
],
],
];
}
function wikiplugin_translationof($data, $params)
{
global $tracer;
$smarty = TikiLib::lib('smarty');
extract($params, EXTR_SKIP);
$anchor_text = $orig_page;
if (isset($translation_page) && $translation_page != '') {
$anchor_text = $translation_page;
}
if (isset($orig_page)) {
$orig_page = urlencode($orig_page);
}
$translation_name_arg = '';
if (isset($translation_page)) {
$translation_page = urlencode($translation_page);
$translation_name_arg = "&translation_name=$translation_page";
}
$translation_lang_arg = '';
if (isset($translation_lang)) {
$translation_lang_arg = "&target_lang=$translation_lang";
}
$tracer->trace('wikiplugin_translationof', "** \$translation_lang=$translation_lang");
$link = 'javascript:void(0)';
$popup_html = "<a href=\"tiki-edit_translation.php?page=$orig_page$translation_lang_arg$translation_name_arg#new_translation\">" . tr("Translate this link") . "</a>";
$popup_params = [ 'text' => $popup_html, 'sticky' => true, 'trigger' => 'mouseover'];
$smarty->loadPlugin('smarty_function_popup');
$mouseover = ' ' . smarty_function_popup($popup_params, $smarty->getEmptyInternalTemplate());
$html = "<a href=\"tiki-index.php?page=$orig_page\" $mouseover>$anchor_text</a>";
return $html;
}