Update of /cvsroot/php-blog/additional_plugins/serendipity_event_babelfish
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29979/additional_plugins/serendipity_event_babelfish
Modified Files:
serendipity_event_babelfish.php
Log Message:
Update to make it universal - user can now specify URL for the translation engine and select translation pairs.
Index: serendipity_event_babelfish.php
===================================================================
RCS file: /cvsroot/php-blog/additional_plugins/serendipity_event_babelfish/serendipity_event_babelfish.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- serendipity_event_babelfish.php 2 Dec 2004 08:20:57 -0000 1.4
+++ serendipity_event_babelfish.php 2 Dec 2004 16:41:30 -0000 1.5
@@ -1,30 +1,35 @@
<?php // $Id$
switch ($serendipity['lang']) {
case 'de':
- @define('PLUGIN_BABELFISH_VERSION', '1.0');
+ @define('PLUGIN_BABELFISH_VERSION', '1.1');
@define('PLUGIN_BABELFISH_NAME', 'Babelfisch');
- @define('PLUGIN_BABELFISH_DESCRIPTION', 'Übersetzt Blog-Einträge');
- @define('PLUGIN_BABELFISH_TRANSLATE', 'Übersetze nach ');
+ @define('PLUGIN_BABELFISH_DESCRIPTION', 'Ñbersetzt Blog-EintrÐge');
+ @define('PLUGIN_BABELFISH_TRANSLATE', 'Ñbersetze nach ');
+ @define('PLUGIN_BABELFISH_URL_DESC', 'URL to the website used for translation');
+ @define('PLUGIN_BABELFISH_PAIRS_DESC', 'Translation pairs to be used');
break;
case 'en':
default:
- @define('PLUGIN_BABELFISH_VERSION', '1.0');
+ @define('PLUGIN_BABELFISH_VERSION', '1.1');
@define('PLUGIN_BABELFISH_NAME', 'Babelfish');
@define('PLUGIN_BABELFISH_DESCRIPTION', 'Translate blog entries (trash!)');
@define('PLUGIN_BABELFISH_TRANSLATE', 'Translate to ');
+ @define('PLUGIN_BABELFISH_URL_DESC', 'URL to the website used for translation');
+ @define('PLUGIN_BABELFISH_PAIRS_DESC', 'Translation pairs to be used');
+ break;
+ case 'ru':
+ default:
+ @define('PLUGIN_BABELFISH_VERSION', '1.1');
+ @define('PLUGIN_BABELFISH_NAME', 'Babelfish');
+ @define('PLUGIN_BABELFISH_DESCRIPTION', 'ÐвÑомаÑиÑеÑкий пеÑевод запиÑей блога на дÑÑгие ÑзÑки');
+ @define('PLUGIN_BABELFISH_TRANSLATE', 'Translate to ');
+ @define('PLUGIN_BABELFISH_URL_DESC', 'URL ÑайÑа, коÑоÑÑй иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¿ÐµÑевода');
+ @define('PLUGIN_BABELFISH_PAIRS_DESC', 'ÐоддеÑживаемÑе паÑÑ Ð¿ÐµÑеводов Ñ ÑазнÑÑ
ÑзÑков');
break;
}
class serendipity_event_babelfish extends serendipity_event
{
- var $translation_table = array(
- 'en' => array('de', 'es', 'fr', 'it', 'pt'),
- 'de' => array('en', 'fr'),
- 'es' => array('en'),
- 'fr' => array('en', 'de'),
- 'it' => array('en'),
- 'pt' => array('en')
- );
function introspect(&$propbag)
{
@@ -32,6 +37,12 @@
$propbag->add('name', PLUGIN_BABELFISH_NAME);
$propbag->add('description', PLUGIN_BABELFISH_DESCRIPTION);
+
+ $propbag->add('configuration',array(
+ 'EngineURL',
+ 'TranslationPairs'
+ ));
+
$propbag->add('event_hooks',
array(
'frontend_display' => true,
@@ -45,6 +56,26 @@
{
$title = PLUGIN_BABELFISH_NAME;
}
+
+ function introspect_config_item($name, &$propbag)
+ {
+ switch ($name) {
+
+ case 'EngineURL':
+ $propbag->add('type', 'string');
+ $propbag->add('name', $name);
+ $propbag->add('description', PLUGIN_BABELFISH_URL_DESC);
+ $propbag->add('default', 'http://babelfish.altavista.com/babelfish/trurl_pagecontent?url=$bfURL&lp=$bfFromLang%5F$bfToLang');
+ break;
+ case 'TranslationPairs':
+ $propbag->add('type', 'string');
+ $propbag->add('name', $name);
+ $propbag->add('description', PLUGIN_BABELFISH_PAIRS_DESC);
+ $propbag->add('default', 'en->de,en->es,en->fr,en->it,en->pt,de->en,de->fr,es->en,fr->en,fr->de,it->en,pt->en,ru->en');
+ break;
+ };
+ return true;
+ }
function event_hook($event, &$bag, &$eventData, $addData = null) {
global $serendipity;
@@ -86,32 +117,42 @@
if ($bag->get('scrambles_true_content') && is_array($addData) && isset($addData['no_scramble'])) {
return true;
}
- $msg = '<div class="serendipity_babelfish">'.PLUGIN_BABELFISH_TRANSLATE;
- foreach($this->translation_table[$serendipity['lang']] as $target_lang) {
- $msg .=
- ' <a href="http://translate.google.com/translate?u=' .
- urlencode(
- serendipity_archiveURL(
- $eventData['id'],
- $eventData['title']
- )
- ) .
- '&langpair=' .
- $serendipity[lang] . '%7C' . $target_lang .
- '">' .
- $target_lang .
- '</a>';
+
+ $pairs = split(',', $this->get_config('TranslationPairs'));
+
+ $msg = '';
+
+ foreach($pairs as $pair) {
+ list($src_lang, $dst_lang) = split('->', $pair);
+
+ if ($src_lang == $serendipity[lang]) {
+
+ if ($msg == '') {
+ $msg = '<div class="serendipity_babelfish">'.PLUGIN_BABELFISH_TRANSLATE;
+ }
+
+ $bfURL=urlencode(
+ serendipity_archiveURL(
+ $eventData['id'],
+ $eventData['title']
+ ));
+ $bfFromLang=$src_lang;
+ $bfToLang=$dst_lang;
+
+ $line=$this->get_config('EngineURL');
+ eval("\$line = \"$line\";");
+
+ $msg .= ' <a href="' . $line.'">'.$dst_lang.'</a>';
+ }
+ }
+ $msg .= '</div>';
+ $eventData['body'] .= $msg;
+ break;
+
+ default:
+ return false;
}
- $msg .= '</div>';
- $eventData['body'] .= $msg;
- break;
-
- default:
- return false;
- }
- } else {
- return false;
}
}
}
-?>
+?>
\ No newline at end of file
|