Index: openacs-4/packages/richtext-xinha/richtext-xinha.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/richtext-xinha.info,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/richtext-xinha/richtext-xinha.info 3 Jan 2016 20:46:21 -0000 1.1.2.1
@@ -0,0 +1,27 @@
+
+
+
+
blocks + - fixed Ticket #976 Loading message misplaced in IE7 + - fixed Ticket #977 TableOperations toolbar off-place in ext_example.html + - fixed Ticket #978 defining a padding fors in global css affects Xinha framework + - Ticket #979 improve checking for non-supported browsers + - fixed Ticket #934 SuperClean plugin returns just quotation when executed on localhost + - Ticket #929 Save changes on page unload fixed for Mozilla + - fixed Ticket #980 ImageManager color format bug + - fixed Ticket #981 No doctype in iframe content document/ editor always in quirks mode + - fixed Ticket #543 Stylist Panel overflow broken + - Ticket #983 added id for iframe + - fixed Ticket #984 !ExtendedFileManager produces php warning + - optimized icon file size + - fixed !JavaScript error in !ImageManager/!ExtendedFileManager image editor + - Ticket #908* Prompts broken in IE7: fixed for EFM, !ImageManager & !TableOperations + - Fixes for TableOperations, tickets #82, #908*, #912 and #947 + - fixed Ticket #998* whitespace added before and/or after content (in non-fullpage mode) + - fixed slow unloading in Mozilla + - Fix focus problem when switching from html to wysiwyg in Gecko. See ticket #900. + - fixed toolbar floating issue + - fixed #1003 HTML length limited to 1024 characters with plugin CharCounter + - Ticket #1000 new public methods for getting/setting editor content + - fixed #735 - IE eating scripts and comments at the beginning of pages. + - Added new config variables to set iframe width if less than editor width (ticket:322) and set alignment of toolbar buttons. + - added Basque translation for XinhaCore + - prevent an error if server is set to parse .js files as PHP + - Ticket #127 plugin HtmlEntities: Entities.js file corrupt + +Xinha 0.92beta + - fixed Ticket #831 stop empty anchors from being removed + - Make htmlarea.js just load XinhaCore.js instead of being a copy of it. + - fixed Ticket #445 Toggle TableBorder doesn't work if this.fullpage=true or using FullPage plugin + - fixed Ticket #551 shape and coord attributes of area element are ignored by IE + - fixed Ticket #650 SpellChecker is not compatible with FullPage plugin + - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE + - fixed Ticket #570 change behaviour of justify when an image is selected to make the image float left/right, + click the justify button again to undo it + - fixed Ticket #891 noscript content got escaped + - fixed Ticket #857 Firefox fails to load in fullpage mode when tag in wrong place. + - fixed Ticket #841 Spell Checker - Won't return to xinha. + - fixed Ticket #914 All buttons stay grey & this.getParentElement is not a function message when not calling + Xinha.loadPlugins() in xinha_init function + - fixed Ticket #911 Background color does not work in Firefox + - fixed Ticket #912 an error is thrown in Mozilla when clicking merge cells button and fewer than 2 cells are selected + - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE + - fixed Ticket #917 getHTMLWrapper in IE renders attributes like _stylist_usedtobe="[object Object]" + - fixed Ticket #556 stripBaseHref didn't work without baseHref defined explicitly. + - Update InsertPicture plugin Update + - fixed Ticket #921 EFM extended file manager - iframe height problem (IE) + - Ticket #923 colorPicker face lift & localisation + - fixed Ticket #924 EFM + ImageManager re-transforming of url to original image after automatic resize broken + - Ticket #900- retain editing position position between modes + - fixed Ticket #928 ImageManager fails if (another) Files.php exists in include path + - fixed Ticket #935 EFM demo_images php upload allowed: possible security risk + - Ticket #939 Japanese langage support + - fixed Ticket #3 Horizontal Rule Selection + - Plugin ExtendedFileManager: added doc to allowed upload extensions + - Plugin PasteText update + - Plugin HtmlEntities: default preset iso-8859-1 + - fixed Ticket #948 IE: inline styles are not rendered by DOMwalk getHTML() + - Plugin HorizontalRule update + - Plugin SaveSubmit update + - Plugin Linker update + - fixed Ticket #823 editor contents was not submitted when using JavaScript form.submit() without prior form.onsubmit() + - fixed Ticket #459 all body attributes removed in full page mode in FireFox + - _editor_url is now converted to absolute if it is relative. + - fixed Ticket #594 IE: insertHTML() inserts HTML outside editor when editor is not focussed + - Ticket #954 FullScreen mode can now be called programmatically or on startup with or without button + - fixed Ticket #321 FullScreen : select elements show through in IE6 + - fixed Ticket #953 Statusbar has ugly white gap at the bottom when switching back from full screen in IE + - fixed Ticket #952 FullScreen: scrollbars don't disappear in IE in QuirksMode + - fixed Ticket #603 Popop Dialog Height problems + - fixed Ticket #955 DOMwalk getHTML outputs empty attribute with value "true" instead of attribute name and some are skipped at all + +Xinha 0.91beta + - changed namespace from HTMLArea to Xinha + - the core file is now named XinhaCore.js instead of htmlarea.js, + please change your pages accordingly (the htmlarea.js will be removed!) + - the color picker script is now loaded on demand to reduce initial loading time + +Xinha 0.9beta +This equals Xinha revision 635 of Jan 11 2007 + - All JavaScript files over 2kb have been compressed using the dojo JavaScript compressor + - All gifs have been optimized using Trout's GIF Optimizer version 2.3 \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress.bat =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress.bat,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress.bat 3 Jan 2016 20:46:25 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +@echo off +FOR %%V IN (%*) DO copy %%V %%V_uncompressed.js +FOR %%V IN (%*) DO java -jar %~p0dojo_js_compressor.jar -c %%V_uncompressed.js > %%V 2>&1 + +FOR %%V IN (%*) DO del %%V_uncompressed.js + +# pause \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress.php 3 Jan 2016 20:46:25 -0000 1.1.2.1 @@ -0,0 +1,99 @@ + +die("Run this script to batch-compress the current Xinha snapshot. To run the script, open the file and comment out the die() command"); +$repository_url = 'http://svn.xinha.org/trunk'; +$version =''; +$date = date('r'); +error_reporting(E_ALL); +ini_set('show_errors',1); + +$return = array(); +function scan($dir, $durl = '',$min_size="0") +{ + static $seen = array(); + global $return; + $files = array(); + + $dir = realpath($dir); + if(isset($seen[$dir])) + { + return $files; + } + $seen[$dir] = TRUE; + $dh = @opendir($dir); + + + while($dh && ($file = readdir($dh))) + { + if($file !== '.' && $file !== '..') + { + $path = realpath($dir . '/' . $file); + $url = $durl . '/' . $file; + + if(preg_match("/\.svn|lang/",$path)) continue; + + if(is_dir($path)) + { + scan($path); + } + elseif(is_file($path)) + { + if(!preg_match("/\.js$/",$path) || filesize($path) < $min_size) continue; + $return[] = $path; + } + + } + } + @closedir($dh); + + return $files; +} +scan("../"); +$cwd = getcwd(); + +$root_dir = realpath($cwd.'/..'); + +print "Processing ".count($return)." files
"; + +$prefix = "/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */"; +if ($version) $prefix .= "\n/* This file is part of version $version released $date */"; + +$core_prefix = ' + /*-------------------------------------------------------------------------- + -- Xinha (is not htmlArea) - http://xinha.org + -- + -- Use of Xinha is granted by the terms of the htmlArea License (based on + -- BSD license) please read license.txt in this package for details. + -- + -- Copyright (c) 2005-2008 Xinha Developer Team and contributors + -- + -- Xinha was originally based on work by Mihai Bazon which is: + -- Copyright (c) 2003-2004 dynarch.com. + -- Copyright (c) 2002-2003 interactivetools.com, inc. + -- This copyright notice MUST stay intact for use. + -------------------------------------------------------------------------*/ +'; +foreach ($return as $file) +{ + set_time_limit ( 60 ); + print "Processed $file
"; + flush(); + $file_url = $repository_url.str_replace($root_dir,'',$file); + + copy($file,$file."_uncompr.js"); + + $file_prefix = $prefix."\n/* The URL of the most recent version of this file is $file_url */"; + + exec("echo \"".(preg_match('/XinhaCore.js$/',$file) ? $file_prefix.$core_prefix : $file_prefix)."\" > $file && java -jar ${cwd}/dojo_js_compressor.jar -c ${file}_uncompr.js >> $file 2>&1"); + if (preg_match('/js: ".*?", line \d+:/',file_get_contents($file)) || preg_match('/sh: java: command not found/', file_get_contents($file))) + { + unlink($file); + rename($file."_uncompr.js",$file); + } + else + { + unlink($file."_uncompr.js"); + } + +} +print "Operation complete." +?> Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress_yui.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress_yui.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compress_yui.php 3 Jan 2016 20:46:25 -0000 1.1.2.1 @@ -0,0 +1,107 @@ + +// This is script that uses the YUI compressor (http://www.julienlecomte.net/blog/2007/08/11/) +// It yields gradually better results than the dojo comressor, but it produces unreadable code +//die("Run this script to batch-compress the current Xinha snapshot. To run the script, open the file and comment out the die() command"); + +$repository_url = 'http://svn.xinha.org/trunk'; +$version =''; +$date = date('r'); + +$xinha_root = realpath(dirname(__FILE__).'/..'); + +error_reporting(E_ALL); +ini_set('show_errors',1); + +$return = array(); +function scan($dir, $durl = '',$min_size="3000") +{ + static $seen = array(); + global $return; + $files = array(); + + $dir = realpath($dir); + if(isset($seen[$dir])) + { + return $files; + } + $seen[$dir] = TRUE; + $dh = @opendir($dir); + + + while($dh && ($file = readdir($dh))) + { + if($file !== '.' && $file !== '..') + { + $path = realpath($dir . '/' . $file); + $url = $durl . '/' . $file; + + if(preg_match("/\.svn|lang/",$path)) continue; + + if(is_dir($path)) + { + scan($path); + } + elseif(is_file($path)) + { + if(!preg_match("/\.(js|css)$/",$path) || filesize($path) < $min_size) continue; + $return[] = $path; + } + + } + } + @closedir($dh); + + return $files; +} + +scan($xinha_root,0); + +print "Processing ".count($return)." files
"; + +$prefix = "/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */"; +if ($version) $prefix .= "\n/* This file is part of version $version released $date */"; +$core_prefix = ' + /*-------------------------------------------------------------------------- + -- Xinha (is not htmlArea) - http://xinha.org + -- + -- Use of Xinha is granted by the terms of the htmlArea License (based on + -- BSD license) please read license.txt in this package for details. + -- + -- Copyright (c) 2005-'.date('Y').' Xinha Developer Team and contributors + -- + -- Xinha was originally based on work by Mihai Bazon which is: + -- Copyright (c) 2003-2004 dynarch.com. + -- Copyright (c) 2002-2003 interactivetools.com, inc. + -- This copyright notice MUST stay intact for use. + -------------------------------------------------------------------------*/ +'; + +foreach ($return as $file) +{ + set_time_limit ( 60 ); + print "Processing $file\n"; + flush(); + + $file_url = $repository_url.str_replace($xinha_root,'',$file); + + copy($file,$file."_uncompr.js"); + + $file_prefix = $prefix."\n/* The URL of the most recent uncompressed version of this file is $file_url */"; + $ext = preg_replace('/.*?(\.js|\.css)$/','$1',$file); + + file_put_contents($file."_uncompr${ext}", preg_replace('/(\/\/[^\n]*)?(?![*])\\\[\n]/','',file_get_contents($file))); + + passthru("echo \"".(preg_match('/XinhaCore.js$/',$file) ? $file_prefix.$core_prefix : $prefix)."\" > $file && java -jar {$xinha_root}/contrib/yuicompressor-2.4.2.jar --charset UTF-8 ${file}_uncompr${ext} >> $file 2>&1"); + if (preg_match('/\d+:\d+:syntax error/',file_get_contents($file)) || preg_match('/sh: java: command not found/', file_get_contents($file))) + { + unlink($file); + rename($file."_uncompr${ext}",$file); + } + else + { + unlink($file."_uncompr${ext}"); + } + +} +print "Operation complete." +?> Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compression_readme.txt =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compression_readme.txt,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/compression_readme.txt 3 Jan 2016 20:46:25 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +You can use the compress.php to batch-convert the current Xinha snapshot. +You can use the compress.bat to compress JavaScript files by drag&drop in Windows. + +Please be aware that the language files cannot be compressed. + +If you want the original files to be kept, open compress.bat and remvove the # in the line +# FOR %%V IN (%*) DO del %%V_uncompressed.js \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/lc_merge_strings.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/lc_merge_strings.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/lc_merge_strings.php 3 Jan 2016 20:46:26 -0000 1.1.2.1 @@ -0,0 +1,178 @@ +, 2009-08-16 + +// Distributed under the same terms as Xinha itself. +// This notice MUST stay intact for use (see license.txt). + +// merge-strings.php - merge translation strings from master into +// individual language files. + + +function usage() +{ + print "merge-strings.php - merge translation strings\n"; + print "Options:\n"; + print " -l xx Process language xx. Required option\n"; + print " -m master Master file. Defaults to 'de.js'\n"; + print " -m base Base directory. Defaults to '..'\n"; + print " -v Verbose\n"; + print " -c Tell about files that must be created\n"; + print " -d Debug. Very noisy\n"; + exit(1); +} + +// This function taken from the php.net manual page for glob + +function rglob($pattern='*', $flags = 0, $path='') +{ + $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); + $files=glob($path.$pattern, $flags); + foreach ($paths as $path) + { + $files=array_merge($files,rglob($pattern, $flags, $path)); + } + return $files; +} + +error_reporting(E_ALL); + +$opts = getopt('l:b:m:cvd'); + +if ($opts === false) usage; +// here we should check extra options, but php lacks that functionality + +$lang = 'xx'; // The language we process +$create = 0; // Tell about missing files? +$verbose = 0; // Log the details to stdout? +$debug = 0; // ? +$basedir = '..'; // Base directory to process +$mastername = 'de.js'; // The best bet on a complete translation file + +if (isset($opts['l'])) $lang = $opts['l']; +else die("Missing -l option\n"); +if (isset($opts['c'])) $create = 1; +if (isset($opts['v'])) $verbose = 1; +if (isset($opts['d'])) $debug = 1; +if (isset($opts['b'])) $basedir = $opts['b']; +if (isset($opts['m'])) $mastername = $opts['m']; + +if (!preg_match('#/$#', $basedir)) $basedir .= '/'; + +// So, find all the master files + +$files = rglob($mastername, 0, $basedir); +if (count($files) == 0) +{ + print "No master files found. Check your -b and -m options!\n"; + exit(1); +} + +// and process them + +$filenum = 0; +foreach ($files as $masterjs) +{ + $langjs = preg_replace("/$mastername/", "$lang.js", $masterjs); + $langnew = $langjs.'.new'; + + if (!file_exists($langjs)) + { + if ($create) print "Missing file: $langjs\n"; + continue; + } + + // Populate $trans with the strings that must be translated + + $filenum++; + $min = fopen($masterjs, "r"); + $trans = array(); + $strings = 0; + while ($str = fgets($min)) + { + $str = trim($str); + if (preg_match('#^ *"([^"]*)" *: *"([^"]*)"(,)? *(//.*)?$#', $str, $m)) + { + if (isset($trans[$m[1]])) + { + print "Duplicate string in $masterjs: $m[1]\n"; + continue; + } + if ($debug) print "Translate: $m[1]\n"; + $trans[$m[1]] = 1; + $strings++; + } + } + fclose($min); + + // Now copy from $lin to $lout while verifying that the strings + // are still current. + // Break out when we hit the last string in the master (no ',' + // after the translation. + + $lin = fopen($langjs, "r"); + $lout = fopen($langnew, "w"); + $obsolete = 0; + $new = 0; + $kept = 0; + while ($fstr = fgets($lin)) + { + $str = trim($fstr); + if (preg_match('#^ *"([^"]*)" *: *"([^"]*)"(,)? *(//.*)?$#', $str, $m)) + { + if (!isset($trans[$m[1]])) + { + if ($verbose) print "Obsolete: $m[1]\n"; + $obsolete++; + fprintf($lout, " // \"%s\": \"%s\" // OBSOLETE\n", $m[1], $m[2]); + } + else + { + if ($debug) print "Keep: $m[1]\n"; + unset($trans[$m[1]]); + $strings--; + $kept++; + fprintf($lout, " \"%s\": \"%s\"%s\n", $m[1], $m[2], $strings ? ',' : ''); + } + if (!isset($m[3]) || $m[3] != ',') + break; + } + else + fprintf($lout, "%s", $fstr); + } + + // Add the strings that are missing + + foreach ($trans as $tr => $v) + { + if ($verbose) print("New: $tr\n"); + $new++; + $strings--; + fprintf($lout, " \"%s\": \"%s\"%s // NEW\n", $tr, $tr, $strings ? ',' : ''); + } + + // And then the final part of $lin + + while ($str = fgets($lin)) + fprintf($lout, "%s", $str); + + // Clean up, and tell user what happened + + fclose($lin); + fclose($lout); + + if ($obsolete == 0 && $new == 0) + { + if ($verbose) print "$langjs: Unchanged\n"; + unlink($langnew); + } + else + { + print "$langnew: $new new, $obsolete obsoleted, $kept unchanged entries.\n"; + // rename($langnew, $langjs); + } +} + +print "$filenum files processed.\n"; + +?> Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/lc_parse_strings.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/lc_parse_strings.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/lc_parse_strings.php 3 Jan 2016 20:46:26 -0000 1.1.2.1 @@ -0,0 +1,325 @@ +"; + while(!feof($fp)) { + $data .= fread($fp, 1024); + } + preg_match_all('#_lc\("([^"]+)"|_lc\(\'([^\']+)\'#', $data, $m); + foreach($m[1] as $i) { + if(trim(strip_tags($i))=="") continue; + $ret[] = $i; + } + foreach($m[2] as $i) { + if(trim(strip_tags($i))=="") continue; + $ret[] = $i; + } + } + } + + if($plugin=="TableOperations") + { + preg_match_all('#options = \\[([^\\]]+)\\];#', $data, $m); + foreach($m[1] as $i) { + preg_match_all('#"([^"]+)"#', $i, $m1); + foreach($m1[1] as $i) { + $ret[] = $i; + } + } + + //["cell-delete", "td", "Delete cell"], + preg_match_all('#\\["[^"]+",[ \t]*"[^"]+",[ \t]*"([^"]+)"\\]#', $data, $m); + foreach($m[1] as $i) { + $ret[] = $i; + } + } + + + $files = getFiles("$pluginDir/", "html$"); + $files = array_merge($files, getFiles("$pluginDir/", "php$")); + foreach($files as $file) + { + $ret = array_merge($ret, parseHtmlFile($file, $plugin)); + } + + $files = getFiles("$pluginDir/popups/", "html$"); + foreach($files as $file) + { + $ret = array_merge($ret, parseHtmlFile($file, $plugin)); + } + $ret = array_unique($ret); + + $langData[$plugin] = $ret; +} + +$plugins = getFiles("../modules/"); +foreach($plugins as $pluginDir) { + $plugin = substr($pluginDir, 12); + $ret = array(); + $files = getFiles("$pluginDir/", "js$"); + foreach($files as $file) + { + $fp = fopen($file, "r"); + $data = ""; + if($fp) { + echo "$file open...
"; + while(!feof($fp)) { + $data .= fread($fp, 1024); + } + preg_match_all('#_lc\("([^"]+)"|_lc\(\'([^\']+)\'#', $data, $m); + foreach($m[1] as $i) { + if(trim(strip_tags($i))=="") continue; + $ret[] = $i; + } + foreach($m[2] as $i) { + if(trim(strip_tags($i))=="") continue; + $ret[] = $i; + } + } + } + $ret = array_unique($ret); + $langData[$plugin] = $ret; +} + + +foreach($langData as $plugin=>$strings) { + if(sizeof($strings)==0) continue; + + + $data = "// I18N constants\n"; + $data .= "//\n"; + $data .= "// LANG: \"base\", ENCODING: UTF-8\n"; + $data .= "// Author: Translator-Name,\n"; + $data .= "//\n"; + $data .= "// Last revision: 06 september 2007\n"; + $data .= "// Please don´t remove this information\n"; + $data .= "// If you modify any source, please insert a comment with your name and e-mail\n"; + $data .= "//\n"; + $data .= "// Distributed under the same terms as HTMLArea itself.\n"; + $data .= "// This notice MUST stay intact for use (see license.txt).\n"; + $data .= "//\n"; + $data .= "// (Please, remove information below)\n"; + $data .= "// FOR TRANSLATORS:\n"; + $data .= "//\n"; + $data .= "// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE\n"; + $data .= "// (at least a valid email address)\n"; + $data .= "//\n"; + $data .= "// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;\n"; + $data .= "// (if this is not possible, please include a comment\n"; + $data .= "// that states what encoding is necessary.)\n"; + $data .= "\n"; + $data .= "{\n"; + sort($strings); + foreach($strings as $string) { + $string = str_replace(array('\\', '"'), array('\\\\', '\\"'), $string); + $data .= " \"".$string."\": \"\",\n"; + } + $data = substr($data, 0, -2); + $data .= "\n"; + $data .= "}\n"; + + if($plugin=="HTMLArea") { + $file = "../lang/base.js"; + $fp = fopen($file, "w"); + if(!$fp) continue; + fwrite($fp, $data); + fclose($fp); + echo "$file written...
"; + } elseif (($plugin=="InternetExplorer")||($plugin=="InsertTable")||($plugin=="InsertImage")||($plugin=="GetHtml")||($plugin=="Gecko")||($plugin=="Dialogs")||($plugin=="CreateLink")||($plugin=="ColorPicker")) { + $file = "../modules/$plugin/lang/base.js"; + $fp = fopen($file, "w"); + if(!$fp) continue; + fwrite($fp, $data); + fclose($fp); + echo "$file written...
"; + } elseif ($plugin=="FullScreen") { + $file = "../modules/$plugin/lang/base.js"; + $fp = fopen($file, "w"); + if(!$fp) continue; + fwrite($fp, $data); + fclose($fp); + echo "$file written...
"; + $file = "../plugins/$plugin/lang/base.js"; + $fp = fopen($file, "w"); + if(!$fp) continue; + fwrite($fp, $data); + fclose($fp); + echo "$file written...
"; + } else { + $file = "../plugins/$plugin/lang/base.js"; + $fp = fopen($file, "w"); + if(!$fp) continue; + fwrite($fp, $data); + fclose($fp); + echo "$file written...
"; + } +} + + + + +function parseHtmlFile($file, $plugin="") +{ + $ret = array(); + + $fp = fopen($file, "r"); + if(!$fp) { + die("invalid fp"); + } + $data = ""; + while(!feof($fp)) { + $data .= fread($fp, 1024); + } + + if($plugin=="FormOperations" || $plugin=="SuperClean" || $plugin=="Linker") { + //-tags for inline-dialog or panel-dialog based dialogs + $elems = array("l10n"); + } else { + $elems = array("title", "input", "select", "legend", "span", "option", "td", "button", "div", "label"); + } + foreach($elems as $elem) { + preg_match_all("#<{$elem}[^>]*>([^<^\"]+)$elem>#i", $data, $m); + foreach($m[1] as $i) { + if(trim(strip_tags($i))=="") continue; + if($i=="/") continue; + if($plugin=="ImageManager" && preg_match('#^--+$#', $i)) continue; //skip those ------ + if($plugin=="CharacterMap" && preg_match('#&[a-z0-9]+;#i', trim($i)) || $i=="@") continue; + if($plugin=="SpellChecker" && preg_match('#^\'\\.\\$[a-z]+\\.\'$#', $i)) continue; + $ret[] = trim($i); + } + } + + if($plugin=="FormOperations" || $plugin=="SuperClean" || $plugin=="Linker") + { + //_( for inline-dialog or panel-dialog based dialogs + preg_match_all('#"_\(([^"]+)\)"#i', $data, $m); + foreach($m[1] as $i) { + if(trim($i)=="") continue; + $ret[] = $i; + } + } + else + { + preg_match_all('#title="([^"]+)"#i', $data, $m); + foreach($m[1] as $i) { + if(trim(strip_tags($i))=="") continue; + if(strip_tags($i)==" - ") continue; //skip those - (ImageManager) + $ret[] = $i; + } + } + return($ret); +} + + +function getFiles($rootdirpath, $eregi_match='') { + $array = array(); + if ($dir = @opendir($rootdirpath)) { + $array = array(); + while (($file = readdir($dir)) !== false) { + if($file=="." || $file==".." || $file==".svn") continue; + if($eregi_match=="") + $array[] = $rootdirpath."/".$file; + else if(eregi($eregi_match,$file)) + $array[] = $rootdirpath."/".$file; + + } + closedir($dir); + } + return $array; +} + + + + + +?> \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/php-xinha.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/php-xinha.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/php-xinha.php 3 Jan 2016 20:46:26 -0000 1.1.2.1 @@ -0,0 +1,219 @@ + + * with (xinha_config.ImageManager) + * { + * '/home/your/directory', + * 'images_url' => '/directory' + * ) + * ) + * ?> + * } + * + * + */ + + function xinha_pass_to_php_backend($Data, $KeyLocation = 'Xinha:BackendKey', $ReturnPHP = FALSE) + { + + $bk = array(); + $bk['data'] = serialize($Data); + + @session_start(); + if(!isset($_SESSION[$KeyLocation])) + { + $_SESSION[$KeyLocation] = uniqid('Key_'); + } + + $bk['session_name'] = session_name(); + $bk['key_location'] = $KeyLocation; + $bk['hash'] = + function_exists('sha1') ? + sha1($_SESSION[$KeyLocation] . $bk['data']) + : md5($_SESSION[$KeyLocation] . $bk['data']); + + + // The data will be passed via a postback to the + // backend, we want to make sure these are going to come + // out from the PHP as an array like $bk above, so + // we need to adjust the keys. + $backend_data = array(); + foreach($bk as $k => $v) + { + $backend_data["backend_data[$k]"] = $v; + } + + // The session_start() above may have been after data was sent, so cookies + // wouldn't have worked. + $backend_data[session_name()] = session_id(); + + if($ReturnPHP) + { + return array('backend_data' => $backend_data); + } + else + { + echo 'backend_data = ' . xinha_to_js($backend_data) . "; \n"; + } + } + + /** Convert PHP data structure to Javascript */ + + function xinha_to_js($var, $tabs = 0) + { + if(is_numeric($var)) + { + return $var; + } + + if(is_string($var)) + { + return "'" . xinha_js_encode($var) . "'"; + } + + if(is_bool($var)) + { + return $var ? 'true': 'false'; + } + + if(is_array($var)) + { + $useObject = false; + foreach(array_keys($var) as $k) { + if(!is_numeric($k)) $useObject = true; + } + $js = array(); + foreach($var as $k => $v) + { + $i = ""; + if($useObject) { + if(preg_match('#^[a-zA-Z]+[a-zA-Z0-9]*$#', $k)) { + $i .= "$k: "; + } else { + $i .= "'$k': "; + } + } + $i .= xinha_to_js($v, $tabs + 1); + $js[] = $i; + } + if($useObject) { + $ret = "{\n" . xinha_tabify(implode(",\n", $js), $tabs) . "\n}"; + } else { + $ret = "[\n" . xinha_tabify(implode(",\n", $js), $tabs) . "\n]"; + } + return $ret; + } + + return 'null'; + } + + /** Like htmlspecialchars() except for javascript strings. */ + + function xinha_js_encode($string) + { + static $strings = "\\,\",',%,&,<,>,{,},@,\n,\r"; + + if(!is_array($strings)) + { + $tr = array(); + foreach(explode(',', $strings) as $chr) + { + $tr[$chr] = sprintf('\x%02X', ord($chr)); + } + $strings = $tr; + } + + return strtr($string, $strings); + } + + + /** Used by plugins to get the config passed via + * xinha_pass_to_backend() + * returns either the structure given, or NULL + * if none was passed or a security error was encountered. + */ + + function xinha_read_passed_data($KeyLocation = 'Xinha:BackendKey') + { + if(isset($_REQUEST['backend_data']) && is_array($_REQUEST['backend_data'])) + { + $bk = $_REQUEST['backend_data']; + session_name($bk['session_name']); + @session_start(); + if(!isset($_SESSION[$bk['key_location']])) return NULL; + + if($KeyLocation !== $bk['key_location']) + { + trigger_error('Programming Error - please contact the website administrator/programmer to alert them to this problem. A non-default backend key location is being used to pass backend data to Xinha, but the same key location is not being used to receive data. The special backend configuration has been ignored. To resolve this, find where you are using xinha_pass_to_php_backend and remove the non default key, or find the locations where xinha_read_passed_data is used (in Xinha) and add a parameter with the non default key location, or edit contrib/php-xinha.php and change the default key location in both these functions. See: http://trac.xinha.org/ticket/1518', E_USER_ERROR); + return NULL; + } + + if($bk['hash'] === + function_exists('sha1') ? + sha1($_SESSION[$bk['key_location']] . $bk['data']) + : md5($_SESSION[$bk['key_location']] . $bk['data'])) + { + return unserialize(ini_get('magic_quotes_gpc') ? stripslashes($bk['data']) : $bk['data']); + } + } + + return NULL; + } + + /** Used by plugins to get a query string that can be sent to the backend + * (or another part of the backend) to send the same data. + */ + + function xinha_passed_data_querystring() + { + $qs = array(); + if(isset($_REQUEST['backend_data']) && is_array($_REQUEST['backend_data'])) + { + foreach($_REQUEST['backend_data'] as $k => $v) + { + $v = ini_get('magic_quotes_gpc') ? stripslashes($v) : $v; + $qs[] = "backend_data[" . rawurlencode($k) . "]=" . rawurlencode($v); + } + } + + $qs[] = session_name() . '=' . session_id(); + return implode('&', $qs); + } + + + /** Just space-tab indent some text */ + function xinha_tabify($text, $tabs) + { + if($text) + { + return str_repeat(" ", $tabs) . preg_replace('/\n(.)/', "\n" . str_repeat(" ", $tabs) . "\$1", $text); + } + } + + /** Return upload_max_filesize value from php.ini in kilobytes (function adapted from php.net)**/ + function upload_max_filesize_kb() + { + $val = ini_get('upload_max_filesize'); + $val = trim($val); + $last = strtolower($val{strlen($val)-1}); + switch($last) + { + // The 'G' modifier is available since PHP 5.1.0 + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + } + return $val; +} +?> Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/test_server.py =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/test_server.py,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/contrib/test_server.py 3 Jan 2016 20:46:26 -0000 1.1.2.1 @@ -0,0 +1,61 @@ +#!/usr/bin/python +"""Runs a very basic file server so that we can test Xinha. By default, the +server runs on port 8080, but you can pass the -p or --port option to change +the port used.""" + +import os +import SimpleHTTPServer +import SocketServer + +# File server for testing Xinha + +def __main(): + """Use the embed_url.py program from the command-line + + The embed_url.py program downloads files and processes links in the case of + HTML files. See embed_url.py -h for more info. This procedure has the + sole purpose of reading in and verifying the command-line arguments before + passing them to the embed_url funtion.""" + + from getopt import getopt, GetoptError + from sys import argv, exit, stderr + + try: + options, arguments = getopt(argv[1:], "p:", ["port="]) + except GetoptError: + print "Invalid option" + __usage() + exit(2) + + PORT = 8080 + for option, value in options: + if option in ("-p", "--port"): + try: + PORT = int(value) + except ValueError: + print "'%s' is not a valid port number" % value + __usage() + exit(2) + + # SimpleHTTPRequestHandler serves data from the current directory, so if we + # are running from inside contrib, we have to change our current working + # directory + if os.path.split(os.getcwd())[1] == 'contrib': + os.chdir('..') + + Handler = SimpleHTTPServer.SimpleHTTPRequestHandler + + httpd = SocketServer.TCPServer(("", PORT), Handler) + + print "Serving at port %s" % PORT + print "Try viewing the example at http://localhost:%s/examples/Newbie.html" % PORT + httpd.serve_forever() + +def __usage(): + """ + Print the usage information contained in the module docstring + """ + print __doc__ + +if __name__ == '__main__': + __main() Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/Extended.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/Extended.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/Extended.html 3 Jan 2016 20:46:26 -0000 1.1.2.1 @@ -0,0 +1,317 @@ + + + + Settings + + + + + + + + +Settings+ + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ExtendedDemo.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ExtendedDemo.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ExtendedDemo.html 3 Jan 2016 20:46:27 -0000 1.1.2.1 @@ -0,0 +1,16 @@ + +Xinha Extended Example + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/Newbie.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/Newbie.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/Newbie.html 3 Jan 2016 20:46:27 -0000 1.1.2.1 @@ -0,0 +1,22 @@ + + + +Xinha Newbie Guide + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/XinhaConfig.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/XinhaConfig.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/XinhaConfig.js 3 Jan 2016 20:46:27 -0000 1.1.2.1 @@ -0,0 +1,134 @@ +xinha_editors = null; +xinha_init = null; +xinha_config = null; +xinha_plugins = null; + +// This contains the names of textareas we will make into Xinha editors +xinha_init = xinha_init ? xinha_init : function() +{ + /** STEP 1 *************************************************************** + * First, specify the textareas that shall be turned into Xinhas. + * For each one add the respective id to the xinha_editors array. + * I you want add more than on textarea, keep in mind that these + * values are comma seperated BUT there is no comma after the last value. + * If you are going to use this configuration on several pages with different + * textarea ids, you can add them all. The ones that are not found on the + * current page will just be skipped. + ************************************************************************/ + + xinha_editors = xinha_editors ? xinha_editors : + [ + 'myTextArea', 'anotherOne' + ]; + + /** STEP 2 *************************************************************** + * Now, what are the plugins you will be using in the editors on this + * page. List all the plugins you will need, even if not all the editors + * will use all the plugins. + * + * The list of plugins below is a good starting point, but if you prefer + * a simpler editor to start with then you can use the following + * + * xinha_plugins = xinha_plugins ? xinha_plugins : [ ]; + * + * which will load no extra plugins at all. + ************************************************************************/ + + xinha_plugins = xinha_plugins ? xinha_plugins : + [ + 'CharacterMap', + 'ContextMenu', + 'SmartReplace', + 'Stylist', + 'ExtendedFileManager', + 'Linker', + 'SuperClean', + 'TableOperations' + ]; + + // THIS BIT OF JAVASCRIPT LOADS THE PLUGINS, NO TOUCHING :) + if(!Xinha.loadPlugins(xinha_plugins, xinha_init)) return; + + + /** STEP 3 *************************************************************** + * We create a default configuration to be used by all the editors. + * If you wish to configure some of the editors differently this will be + * done in step 5. + * + * If you want to modify the default config you might do something like this. + * + * xinha_config = new Xinha.Config(); + * xinha_config.width = '640px'; + * xinha_config.height = '420px'; + * + * + * For a list of the available configuration options, see: + * http://trac.xinha.org/wiki/Documentation/ConfigVariablesList + * + *************************************************************************/ + + xinha_config = xinha_config ? xinha_config() : new Xinha.Config(); + + //this is the standard toolbar, feel free to remove buttons as you like + xinha_config.toolbar = + [ + ["popupeditor"], + ["separator","formatblock","fontname","fontsize","bold","italic","underline","strikethrough"], + ["separator","forecolor","hilitecolor","textindicator"], + ["separator","subscript","superscript"], + ["linebreak","separator","justifyleft","justifycenter","justifyright","justifyfull"], + ["separator","insertorderedlist","insertunorderedlist","outdent","indent"], + ["separator","inserthorizontalrule","createlink","insertimage","inserttable"], + ["linebreak","separator","undo","redo","selectall","print"], (Xinha.is_gecko ? [] : ["cut","copy","paste","overwrite","saveas"]), + ["separator","killword","clearfonts","removeformat","toggleborders","splitblock","lefttoright", "righttoleft"], + ["separator","htmlmode","showhelp","about"] + ]; + + // To adjust the styling inside the editor, we can load an external stylesheet like this + // NOTE : YOU MUST GIVE AN ABSOLUTE URL + xinha_config.pageStyleSheets = [ _editor_url + "examples/files/full_example.css" ]; + //if you're using Stylist, import a stylesheet like this + xinha_config.stylistLoadStylesheet(_editor_url + "examples/files/stylist.css"); + + + /** STEP 4 *************************************************************** + * We first create editors for the textareas. + * + * You can do this in two ways, either + * + * xinha_editors = Xinha.makeEditors(xinha_editors, xinha_config, xinha_plugins); + * + * if you want all the editor objects to use the same set of plugins, OR; + * + * xinha_editors = Xinha.makeEditors(xinha_editors, xinha_config); + * xinha_editors.myTextArea.registerPlugins(['Stylist']); + * xinha_editors.anotherOne.registerPlugins(['CSS','SuperClean']); + * + * if you want to use a different set of plugins for one or more of the + * editors. + ************************************************************************/ + + xinha_editors = Xinha.makeEditors(xinha_editors, xinha_config, xinha_plugins); + + /** STEP 5 *************************************************************** + * If you want to change the configuration variables of any of the + * editors, this is the place to do that, for example you might want to + * change the width and height of one of the editors, like this... + * + * xinha_editors.myTextArea.config.width = '640px'; + * xinha_editors.myTextArea.config.height = '480px'; + * + ************************************************************************/ + + + /** STEP 6 *************************************************************** + * Finally we "start" the editors, this turns the textareas into + * Xinha editors. + ************************************************************************/ + + Xinha.startEditors(xinha_editors); +} + +Xinha.addOnloadHandler(xinha_init); // this executes the xinha_init function on page load + // and does not interfere with window.onload properties set by other scripts + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/custom.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/custom.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/custom.css 3 Jan 2016 20:46:27 -0000 1.1.2.1 @@ -0,0 +1,40 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- CSS plugin example CSS file. This file is used by full_example.js + -- when the CSS plugin is included in an auto-generated example. + -- @TODO Make this CSS more useful. + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/examples/custom.css $ + -- $LastChangedDate: 2007-01-20 11:24:36 +1300 (Sat, 20 Jan 2007) $ + -- $LastChangedRevision: 677 $ + -- $LastChangedBy: ray $ + --------------------------------------------------------------------------*/ + +body { background-color: #234; color: #dd8; font-family: tahoma; font-size: 12px; } + +a:link, a:visited { color: #8cf; } +a:hover { color: #ff8; } + +h1 { background-color: #456; color: #ff8; padding: 2px 5px; border: 1px solid; border-color: #678 #012 #012 #678; } + +/* syntax highlighting (used by the first combo defined for the CSS plugin) */ + +pre { margin: 0px 1em; padding: 5px 1em; background-color: #000; border: 1px dotted #02d; border-left: 2px solid #04f; } +.code { color: #f5deb3; } +.string { color: #00ffff; } +.comment { color: #8fbc8f; } +.variable-name { color: #fa8072; } +.type { color: #90ee90; font-weight: bold; } +.reference { color: #ee82ee; } +.preprocessor { color: #faf; } +.keyword { color: #ffffff; font-weight: bold; } +.function-name { color: #ace; } +.html-tag { font-weight: bold; } +.html-helper-italic { font-style: italic; } +.warning { color: #ffa500; font-weight: bold; } +.html-helper-bold { font-weight: bold; } + +/* info combo */ + +.quote { font-style: italic; color: #ee9; } +.highlight { background-color: yellow; color: #000; } +.deprecated { text-decoration: line-through; color: #aaa; } Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/dynamic.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/dynamic.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/dynamic.css 3 Jan 2016 20:46:27 -0000 1.1.2.1 @@ -0,0 +1,56 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- DynamicCSS plugin example CSS file. Used by full_example.js + -- when the DynamicCSS plugin is included in an auto-generated example. + -- @TODO Make this CSS more useful. + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/examples/dynamic.css $ + -- $LastChangedDate: 2007-01-20 11:24:36 +1300 (Sat, 20 Jan 2007) $ + -- $LastChangedRevision: 677 $ + -- $LastChangedBy: ray $ + --------------------------------------------------------------------------*/ + +p { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 9pt; + FONT-WEIGHT: normal; + COLOR: #000000; +} + +p.p1 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 11pt; + FONT-WEIGHT: normal; + COLOR: #000000; +} + +p.p2 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 13pt; + FONT-WEIGHT: normal; + COLOR: #000000; +} + +div { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 9pt; + FONT-WEIGHT: bold; + COLOR: #000000; +} + +div.div1 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 11pt; + FONT-WEIGHT: bold; + COLOR: #000000; +} + +div.div2 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 13pt; + FONT-WEIGHT: bold; + COLOR: #000000; +} + +.quote { font-style: italic; color: #ee9; } +.highlight { background-color: yellow; color: #000; } +.deprecated { text-decoration: line-through; color: #aaa; } Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-body.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-body.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-body.html 3 Jan 2016 20:46:28 -0000 1.1.2.1 @@ -0,0 +1,206 @@ + + + + + + + +Example of Xinha + + + + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-dest.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-dest.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-dest.php 3 Jan 2016 20:46:28 -0000 1.1.2.1 @@ -0,0 +1,23 @@ + + + +Example of Xinha + + + +$value){ + if(substr($key,0,10) == 'myTextarea') { + echo ''.$key.'(source):
'.$value.'
'; + echo ''.$key.'(preview):
'.$value; + } + } +?> + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-menu.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-menu.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example-menu.php 3 Jan 2016 20:46:28 -0000 1.1.2.1 @@ -0,0 +1,357 @@ + + + + + + + +Example of Xinha + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example.html 3 Jan 2016 20:46:29 -0000 1.1.2.1 @@ -0,0 +1,16 @@ + +Xinha Extended Example + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/ext_example.js 3 Jan 2016 20:46:29 -0000 1.1.2.1 @@ -0,0 +1,155 @@ + + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha example logic. This javascript is used to auto-generate examples + -- as controlled by the options set in full_example-menu.html. it's called + -- from full_example-body.html. + -- + -- $HeadURL$ + -- $LastChangedDate$ + -- $LastChangedRevision$ + -- $LastChangedBy$ + --------------------------------------------------------------------------*/ + + var num = 1; + if(window.parent && window.parent != window) + { + var f = window.parent.menu.document.forms[0]; + _editor_lang = f.lang.value; + _editor_skin = f.skin.value; + num = parseInt(f.num.value); + if(isNaN(num)) + { + num = 1; + f.num.value = 1; + } + xinha_plugins = [ ]; + for(var x = 0; x < f.plugins.length; x++) + { + if(f.plugins[x].checked) xinha_plugins.push(f.plugins[x].value); + } + } + + xinha_editors = [ ] + for(var x = 0; x < num; x++) + { + var ta = 'myTextarea' + x; + xinha_editors.push(ta); + } + + xinha_config = function() + { + var config = new HTMLArea.Config(); + + if(window.parent && window.parent != window) { + var f = window.parent.menu.document.forms[0]; + if (f.width) config.width = f.width.value; + if (f.height) config.height = f.height.value; + if (f.sizeIncludesBars) config.sizeIncludesBars = f.sizeIncludesBars.value; + if (f.statusBar) config.statusBar = f.statusBar.value; + if (f.mozParaHandler) config.mozParaHandler = f.mozParaHandler.value; + if (f.undoSteps) config.undoSteps = f.undoSteps.value; + if (f.baseHref) config.baseHref = f.baseHref.value; + if (f.stripBaseHref) config.stripBaseHref = f.stripBaseHref.value; + if (f.stripSelfNamedAnchors) config.stripSelfNamedAnchors = f.stripSelfNamedAnchors.value; + if (f.only7BitPrintablesInURLs) config.only7BitPrintablesInURLs = f.only7BitPrintablesInURLs.value; + if (f.sevenBitClean) config.sevenBitClean = f.sevenBitClean.value; + if (f.killWordOnPaste) config.killWordOnPaste = f.killWordOnPaste.value; + if (f.flowToolbars) config.flowToolbars = f.flowToolbars.value; + if ((typeof CharacterMap != 'undefined') && (f.CharacterMapMode)) config.CharacterMap.mode = f.CharacterMapMode.value; + if ((typeof ListType != 'undefined') && (f.ListTypeMode)) config.ListType.mode = f.ListTypeMode.value; + } + + if(typeof CSS != 'undefined') + { + config.pageStyle = "@import url(custom.css);"; + } + + if(typeof Stylist != 'undefined') + { + // We can load an external stylesheet like this - NOTE : YOU MUST GIVE AN ABSOLUTE URL + // otherwise it won't work! + config.stylistLoadStylesheet(document.location.href.replace(/[^\/]*\.html/, 'stylist.css')); + + // Or we can load styles directly + config.stylistLoadStyles('p.red_text { color:red }'); + + // If you want to provide "friendly" names you can do so like + // (you can do this for stylistLoadStylesheet as well) + config.stylistLoadStyles('p.pink_text { color:pink }', {'p.pink_text' : 'Pretty Pink'}); + } + + if(typeof DynamicCSS != 'undefined') + { + config.pageStyle = "@import url(dynamic.css);"; + } + + if(typeof InsertWords != 'undefined') + { + // Register the keyword/replacement list + var keywrds1 = new Object(); + var keywrds2 = new Object(); + + keywrds1['-- Dropdown Label --'] = ''; + keywrds1['onekey'] = 'onevalue'; + keywrds1['twokey'] = 'twovalue'; + keywrds1['threekey'] = 'threevalue'; + + keywrds2['-- Insert Keyword --'] = ''; + keywrds2['Username'] = '%user%'; + keywrds2['Last login date'] = '%last_login%'; + config.InsertWords = { + combos : [ { options: keywrds1, context: "body" }, + { options: keywrds2, context: "li" } ] + } + + } + // Path for InsertPicture plugin + if(typeof InsertPicture != 'undefined') { + InsertPicture.PicturePath = '/schmal/pictures/'; + } + + return config; + } + + + var f = document.forms[0]; + f.method = 'post'; + f.action = 'ext_example-dest.php'; + f.innerHTML = ''; + + var lipsum = document.getElementById('lipsum').innerHTML; + + for(var x = 0; x < num; x++) + { + var ta = 'myTextarea' + x; + + var div = document.createElement('div'); + div.className = 'area_holder'; + + var txta = document.createElement('textarea'); + txta.id = ta; + txta.name = ta; + txta.value = lipsum; + txta.style.width="100%"; + txta.style.height="420px"; + + div.appendChild(txta); + f.appendChild(div); + } + + //check submitted values + var submit = document.createElement('input'); + submit.type = "submit"; + submit.value = "Submit"; + f.appendChild(submit); + + var _oldSubmitHandler = null; + if (document.forms[0].onsubmit != null) { + _oldSubmitHandler = document.forms[0].onsubmit; + } + function frame_onSubmit(){ + if (_oldSubmitHandler != null) { + _oldSubmitHandler(); + } + } + document.forms[0].onsubmit = frame_onSubmit; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example-body.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example-body.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example-body.html 3 Jan 2016 20:46:29 -0000 1.1.2.1 @@ -0,0 +1,185 @@ + + + + + + + +Example of Xinha + + + + + + + + + + + + + + + + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example-menu.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example-menu.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example-menu.html 3 Jan 2016 20:46:29 -0000 1.1.2.1 @@ -0,0 +1,216 @@ + + + + + +Example of Xinha + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.css 3 Jan 2016 20:46:29 -0000 1.1.2.1 @@ -0,0 +1,48 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha example CSS file. This is ripped from Trac ;) + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/examples/full_example.css $ + -- $LastChangedDate: 2007-01-20 11:24:36 +1300 (Sat, 20 Jan 2007) $ + -- $LastChangedRevision: 677 $ + -- $LastChangedBy: ray $ + --------------------------------------------------------------------------*/ + + body { + background: #fff; + color: #000; + margin: 10px; + } + body, th, td { + font: normal 13px verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif; + } + h1, h2, h3, h4 { + font-family: arial,verdana,'Bitstream Vera Sans',helvetica,sans-serif; + font-weight: bold; + letter-spacing: -0.018em; + } + h1 { font-size: 21px; margin: .15em 1em 0 0 } + h2 { font-size: 16px; margin: 2em 0 .5em; } + h3 { font-size: 14px; margin: 1.5em 0 .5em; } + hr { border: none; border-top: 1px solid #ccb; margin: 2em 0; } + address { font-style: normal } + img { border: none } + + :link, :visited { + text-decoration: none; + color: #b00; + border-bottom: 1px dotted #bbb; + } + :link:hover, :visited:hover { + background-color: #eee; + color: #555; + } + h1 :link, h1 :visited ,h2 :link, h2 :visited, h3 :link, h3 :visited, + h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited { + color: inherit; + } + + .area_holder + { + margin:10px; + } + label {font-size: 11px;} \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.html 3 Jan 2016 20:46:30 -0000 1.1.2.1 @@ -0,0 +1,16 @@ + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/full_example.js 3 Jan 2016 20:46:30 -0000 1.1.2.1 @@ -0,0 +1,155 @@ + + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha example logic. This javascript is used to auto-generate examples + -- as controlled by the options set in full_example-menu.html. it's called + -- from full_example-body.html. + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/examples/full_example.js $ + -- $LastChangedDate: 2007-06-14 06:34:34 +1200 (Thu, 14 Jun 2007) $ + -- $LastChangedRevision: 856 $ + -- $LastChangedBy: wymsy $ + --------------------------------------------------------------------------*/ + + var num = 1; + if(window.parent && window.parent != window) + { + var f = window.parent.menu.document.forms[0]; + _editor_lang = f.lang[f.lang.selectedIndex].value; + _editor_skin = f.skin[f.skin.selectedIndex].value; + + num = parseInt(f.num.value); + if(isNaN(num)) + { + num = 1; + f.num.value = 1; + } + xinha_plugins = [ ]; + for(var x = 0; x < f.plugins.length; x++) + { + if(f.plugins[x].checked) xinha_plugins.push(f.plugins[x].value); + } + } + + xinha_editors = [ ] + for(var x = 0; x < num; x++) + { + var ta = 'myTextarea' + x; + xinha_editors.push(ta); + } + + xinha_config = function() + { + var config = new Xinha.Config(); + + if(typeof CSS != 'undefined') + { + config.pageStyle = "@import url(custom.css);"; + } + + if(typeof Stylist != 'undefined') + { + // We can load an external stylesheet like this - NOTE : YOU MUST GIVE AN ABSOLUTE URL + // otherwise it won't work! + config.stylistLoadStylesheet(document.location.href.replace(/[^\/]*\.html/, 'stylist.css')); + + // Or we can load styles directly + config.stylistLoadStyles('p.red_text { color:red }'); + + // If you want to provide "friendly" names you can do so like + // (you can do this for stylistLoadStylesheet as well) + config.stylistLoadStyles('p.pink_text { color:pink }', {'p.pink_text' : 'Pretty Pink'}); + } + + if(typeof DynamicCSS != 'undefined') + { + config.pageStyle = "@import url(dynamic.css);"; + } + + if(typeof InsertWords != 'undefined') + { + // Register the keyword/replacement list + var keywrds1 = new Object(); + var keywrds2 = new Object(); + + keywrds1['-- Dropdown Label --'] = ''; + keywrds1['onekey'] = 'onevalue'; + keywrds1['twokey'] = 'twovalue'; + keywrds1['threekey'] = 'threevalue'; + + keywrds2['-- Insert Keyword --'] = ''; + keywrds2['Username'] = '%user%'; + keywrds2['Last login date'] = '%last_login%'; + config.InsertWords = { + combos : [ { options: keywrds1, context: "body" }, + { options: keywrds2, context: "li" } ] + } + + } + + if (typeof ListType != 'undefined') + { + if(window.parent && window.parent != window) + { + var f = window.parent.menu.document.forms[0]; + config.ListType.mode = f.elements['ListTypeMode'].options[f.elements['ListTypeMode'].selectedIndex].value; + } + } + + if (typeof CharacterMap != 'undefined') + { + if(window.parent && window.parent != window) + { + var f = window.parent.menu.document.forms[0]; + config.CharacterMap.mode = f.elements['CharacterMapMode'].options[f.elements['CharacterMapMode'].selectedIndex].value; + } + } + + if(typeof Filter != 'undefined') { + xinha_config.Filters = ["Word", "Paragraph"] + } + + return config; + } + + + var f = document.forms[0]; + f.innerHTML = ''; + + var lipsum = document.getElementById('lipsum').innerHTML; + + for(var x = 0; x < num; x++) + { + var ta = 'myTextarea' + x; + + var div = document.createElement('div'); + div.className = 'area_holder'; + + var txta = document.createElement('textarea'); + txta.id = ta; + txta.name = ta; + txta.value = lipsum; + txta.style.width="100%"; + txta.style.height="420px"; + + div.appendChild(txta); + f.appendChild(div); + } + + //check submitted values + var submit = document.createElement('input'); + submit.type = "submit"; + submit.id = "submit"; + submit.value = "submit"; + f.appendChild(submit); + + var _oldSubmitHandler = null; + if (document.forms[0].onsubmit != null) { + _oldSubmitHandler = document.forms[0].onsubmit; + } + function frame_onSubmit(){ + alert(document.getElementById("myTextarea0").value); + if (_oldSubmitHandler != null) { + _oldSubmitHandler(); + } + } + document.forms[0].onsubmit = frame_onSubmit; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/simple_example.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/simple_example.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/simple_example.html 3 Jan 2016 20:46:30 -0000 1.1.2.1 @@ -0,0 +1,54 @@ + + + + +Simple example of Xinha + + + + + + + + + + + + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/stylist.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/stylist.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/stylist.css 3 Jan 2016 20:46:30 -0000 1.1.2.1 @@ -0,0 +1,31 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Stylist plugin example CSS file. Used by full_example.js + -- when the Stylist plugin is included in an auto-generated example. + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/examples/stylist.css $ + -- $LastChangedDate: 2007-01-20 11:24:36 +1300 (Sat, 20 Jan 2007) $ + -- $LastChangedRevision: 677 $ + -- $LastChangedBy: ray $ + --------------------------------------------------------------------------*/ + +.bluetext +{ + color:blue; +} + +p.blue_paragraph +{ + color:darkblue; +} + +li.green_list_item +{ + color:green; +} + +h1.webdings_lvl_1 +{ + font-family:webdings; +} + +img.polaroid { border:1px solid black; background-color:white; padding:10px; padding-bottom:30px; } \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/testbed.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/testbed.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/testbed.html 3 Jan 2016 20:46:30 -0000 1.1.2.1 @@ -0,0 +1,196 @@ + + + + + + + + +Example of Xinha + + + + + + + + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/Extended.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/Extended.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/Extended.html 3 Jan 2016 20:46:31 -0000 1.1.2.1 @@ -0,0 +1,317 @@ + + + +Settings + + + + + + + + +Settings+ + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/custom.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/custom.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/custom.css 3 Jan 2016 20:46:31 -0000 1.1.2.1 @@ -0,0 +1,40 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- CSS plugin example CSS file. This file is used by full_example.js + -- when the CSS plugin is included in an auto-generated example. + -- @TODO Make this CSS more useful. + -- + -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/custom.css $ + -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $ + -- $LastChangedRevision:962 $ + -- $LastChangedBy:ray $ + --------------------------------------------------------------------------*/ + +body { background-color: #234; color: #dd8; font-family: tahoma; font-size: 12px; } + +a:link, a:visited { color: #8cf; } +a:hover { color: #ff8; } + +h1 { background-color: #456; color: #ff8; padding: 2px 5px; border: 1px solid; border-color: #678 #012 #012 #678; } + +/* syntax highlighting (used by the first combo defined for the CSS plugin) */ + +pre { margin: 0px 1em; padding: 5px 1em; background-color: #000; border: 1px dotted #02d; border-left: 2px solid #04f; } +.code { color: #f5deb3; } +.string { color: #00ffff; } +.comment { color: #8fbc8f; } +.variable-name { color: #fa8072; } +.type { color: #90ee90; font-weight: bold; } +.reference { color: #ee82ee; } +.preprocessor { color: #faf; } +.keyword { color: #ffffff; font-weight: bold; } +.function-name { color: #ace; } +.html-tag { font-weight: bold; } +.html-helper-italic { font-style: italic; } +.warning { color: #ffa500; font-weight: bold; } +.html-helper-bold { font-weight: bold; } + +/* info combo */ + +.quote { font-style: italic; color: #ee9; } +.highlight { background-color: yellow; color: #000; } +.deprecated { text-decoration: line-through; color: #aaa; } Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/dynamic.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/dynamic.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/dynamic.css 3 Jan 2016 20:46:31 -0000 1.1.2.1 @@ -0,0 +1,56 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- DynamicCSS plugin example CSS file. Used by full_example.js + -- when the DynamicCSS plugin is included in an auto-generated example. + -- @TODO Make this CSS more useful. + -- + -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/dynamic.css $ + -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $ + -- $LastChangedRevision:962 $ + -- $LastChangedBy:ray $ + --------------------------------------------------------------------------*/ + +p { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 9pt; + FONT-WEIGHT: normal; + COLOR: #000000; +} + +p.p1 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 11pt; + FONT-WEIGHT: normal; + COLOR: #000000; +} + +p.p2 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 13pt; + FONT-WEIGHT: normal; + COLOR: #000000; +} + +div { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 9pt; + FONT-WEIGHT: bold; + COLOR: #000000; +} + +div.div1 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 11pt; + FONT-WEIGHT: bold; + COLOR: #000000; +} + +div.div2 { + FONT-FAMILY: Arial, Helvetica; + FONT-SIZE: 13pt; + FONT-WEIGHT: bold; + COLOR: #000000; +} + +.quote { font-style: italic; color: #ee9; } +.highlight { background-color: yellow; color: #000; } +.deprecated { text-decoration: line-through; color: #aaa; } Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-body.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-body.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-body.html 3 Jan 2016 20:46:31 -0000 1.1.2.1 @@ -0,0 +1,206 @@ + + + + + + + +Example of Xinha + + + + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-dest.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-dest.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-dest.php 3 Jan 2016 20:46:31 -0000 1.1.2.1 @@ -0,0 +1,23 @@ + + + +Example of Xinha + + + +$value){ + if(substr($key,0,10) == 'myTextarea') { + echo ''.$key.'(source):
'.$value.'
'; + echo ''.$key.'(preview):
'.$value; + } + } +?> + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-menu.php =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-menu.php,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/ext_example-menu.php 3 Jan 2016 20:46:31 -0000 1.1.2.1 @@ -0,0 +1,357 @@ + + + + + + + +Example of Xinha + + + + + + + + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/full_example.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/full_example.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/full_example.css 3 Jan 2016 20:46:32 -0000 1.1.2.1 @@ -0,0 +1,78 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha example CSS file. This is ripped from Trac ;) + -- + -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/full_example.css $ + -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $ + -- $LastChangedRevision:962 $ + -- $LastChangedBy:ray $ + --------------------------------------------------------------------------*/ + + body { + background: #fff; + color: #000; + margin: 10px; + } + body, th, td { + font: normal 13px verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif; + } + h1, h2, h3, h4 { + font-family: arial,verdana,'Bitstream Vera Sans',helvetica,sans-serif; + font-weight: bold; + letter-spacing: -0.018em; + } + h1 { font-size: 21px; margin: .15em 1em 0 0 } + h2 { font-size: 16px; margin: 2em 0 .5em; } + h3 { font-size: 14px; margin: 1.5em 0 .5em; } + hr { border: none; border-top: 1px solid #ccb; margin: 2em 0; } + address { font-style: normal } + img { border: none } + + :link, :visited { + text-decoration: none; + color: #b00; + border-bottom: 1px dotted #bbb; + } + :link:hover, :visited:hover { + background-color: #eee; + color: #555; + } + h1 :link, h1 :visited ,h2 :link, h2 :visited, h3 :link, h3 :visited, + h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited { + color: inherit; + } + + .area_holder + { + margin:10px; + } + label {font-size: 11px;} + .navi_links { + width: 177px; + margin: 0; + padding: 0px; + list-style:none; + border: none; +} + +.navi_links li { + margin:0 0 3px 0; +} + +.navi_links li a { + font-size: 13px; + line-height: 16px; + height: 16px; + display:block; + color:#000; + text-decoration: none; + font-weight: bold; + background-color: #fff; + cursor: pointer; + border: 2px solid white; + +} + +.Link1 { +background-color: #DF1D1F !important; + +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/stylist.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/stylist.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/examples/files/stylist.css 3 Jan 2016 20:46:32 -0000 1.1.2.1 @@ -0,0 +1,31 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Stylist plugin example CSS file. Used by full_example.js + -- when the Stylist plugin is included in an auto-generated example. + -- + -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/stylist.css $ + -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $ + -- $LastChangedRevision:962 $ + -- $LastChangedBy:ray $ + --------------------------------------------------------------------------*/ + +.bluetext +{ + color:blue; +} + +p.blue_paragraph +{ + color:darkblue; +} + +li.green_list_item +{ + color:green; +} + +h1.webdings_lvl_1 +{ + font-family:webdings; +} + +img.polaroid { border:1px solid black; background-color:white; padding:10px; padding-bottom:30px; } \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/ed_buttons_main.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/ed_buttons_main.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/ed_charmap.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/ed_charmap.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/ed_selectall.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/ed_selectall.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/iconset.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/iconset.xml,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/iconset.xml 3 Jan 2016 20:46:33 -0000 1.1.2.1 @@ -0,0 +1,263 @@ + ++ + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/de/bold.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/de/bold.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/de/italic.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/de/italic.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/de/underline.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/de/underline.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/fr/bold.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/fr/bold.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/fr/strikethrough.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/fr/strikethrough.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/fr/underline.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Classic/fr/underline.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/LICENSE =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/LICENSE,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/LICENSE 3 Jan 2016 20:46:34 -0000 1.1.2.1 @@ -0,0 +1,121 @@ +License + +The Crystal Project are released under LGPL. + +GNU General Public License. + + 0. + + This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. + + Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. + 1. + + You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. + + You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + 2. + + You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + 1. The modified work must itself be a software library. + 2. You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. + 3. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. + 4. If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. + + (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) + + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + 3. + + You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. + + Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of the Library into a program that is not a library. + 4. + + You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. + 5. + + A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. + However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. + 6. + + As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: + 1. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) . + 2. Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. + 3. Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. + 4. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. + 5. Verify that the user has already received a copy of these materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + + It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. + 7. + + You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: + 1. + + Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. + 2. + + Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. + 8. + + You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + 9. + + You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. + 10. + + Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. + 11. + + If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + + This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + 12. + + If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + 13. + + The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. + 14. + + If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +No Warranty + + 15. + + Because the library is licensed free of charge, there is no warranty for the library, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide the library "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the library is with you. Should the library prove defective, you assume the cost of all necessary servicing, repair or correction. + 16. + + In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may modify and/or redistribute the library as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the library (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the library to operate with any other software), even if such holder or other party has been advised of the possibility of such damages. + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/README =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/README,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/README 3 Jan 2016 20:46:35 -0000 1.1.2.1 @@ -0,0 +1,3 @@ +These icons are from everaldo.com, in particular from the Open Office Crystal Icons set + +The Crystal Project are released under LGPL. \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/ed_buttons_main.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/ed_buttons_main.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/iconset.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/iconset.xml,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Crystal/iconset.xml 3 Jan 2016 20:46:35 -0000 1.1.2.1 @@ -0,0 +1,234 @@ + ++ ++ ++ +iconsets/Classic/ed_buttons_main.gif +3 +2 ++ +iconsets/Classic/de/bold.gif ++ +iconsets/Classic/fr/bold.gif ++ ++ +iconsets/Classic/ed_buttons_main.gif +2 +2 ++ +iconsets/Classic/de/italic.gif ++ ++ +iconsets/Classic/ed_buttons_main.gif +2 +0 ++ +iconsets/Classic/fr/underline.gif ++ +iconsets/Classic/de/underline.gif ++ ++ +iconsets/Classic/ed_buttons_main.gif +3 +0 ++ +iconsets/Classic/fr/strikethrough.gif ++ ++ +iconsets/Classic/ed_buttons_main.gif +3 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +2 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +4 +2 ++ ++ +iconsets/Classic/ed_buttons_main.gif +5 +2 ++ ++ +iconsets/Classic/ed_buttons_main.gif +5 +0 ++ ++ +iconsets/Classic/ed_buttons_main.gif +4 +0 ++ ++ +iconsets/Classic/ed_buttons_main.gif +4 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +3 +3 ++ ++ +iconsets/Classic/ed_buttons_main.gif +2 +3 ++ ++ +iconsets/Classic/ed_buttons_main.gif +0 +2 ++ ++ +iconsets/Classic/ed_buttons_main.gif +1 +2 ++ ++ +iconsets/Classic/ed_buttons_main.gif +6 +3 ++ ++ +iconsets/Classic/ed_buttons_main.gif +0 +3 ++ ++ +iconsets/Classic/ed_buttons_main.gif +1 +3 ++ ++ +iconsets/Classic/ed_buttons_main.gif +0 +0 ++ ++ +iconsets/Classic/ed_buttons_main.gif +0 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +1 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +1 +0 ++ ++ +iconsets/Classic/ed_buttons_main.gif +6 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +0 +4 ++ ++ +iconsets/Classic/ed_buttons_main.gif +1 +4 ++ ++ +iconsets/Classic/ed_buttons_main.gif +8 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +9 +1 ++ ++ +iconsets/Classic/ed_buttons_main.gif +4 +4 ++ ++ +iconsets/Classic/ed_buttons_main.gif +8 +2 ++ ++ +iconsets/Classic/ed_buttons_main.gif +9 +2 ++ ++ +iconsets/Classic/ed_buttons_main.gif +8 +0 ++ ++ +iconsets/Classic/ed_buttons_main.gif +9 +0 ++ ++ +iconsets/Classic/ed_selectall.gif ++ ++ +iconsets/Classic/ed_charmap.gif ++ ++ +plugins/SmartReplace/img.gif ++ + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/LICENSE =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/LICENSE,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/LICENSE 3 Jan 2016 20:46:35 -0000 1.1.2.1 @@ -0,0 +1,67 @@ +Creative Commons Attribution-ShareAlike 2.5 License Agreement + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + 1. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. + 2. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. + 3. "Licensor" means the individual or entity that offers the Work under the terms of this License. + 4. "Original Author" means the individual or entity who created the Work. + 5. "Work" means the copyrightable work of authorship offered under the terms of this License. + 6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + 7. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. + +2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + 1. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; + 2. to create and reproduce Derivative Works; + 3. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; + 4. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. + 5. + + For the avoidance of doubt, where the work is a musical composition: + 1. Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. + 2. Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). + 6. Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + 1. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested. + 2. You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.5 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License. + 3. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + 1. Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + 2. Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. + +Creative Commons may be contacted at http://creativecommons.org/. Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/README =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/README,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/README 3 Jan 2016 20:46:36 -0000 1.1.2.1 @@ -0,0 +1,3 @@ +These icons are from the Tango Desktop Project. The icons are released to the Public Domain. From http://tango.freedesktop.org: + +The Tango Desktop Project exists to help create a consistent graphical user interface experience for free and Open Source software. Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/ed_buttons_main.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/ed_buttons_main.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/iconset.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/iconset.xml,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/iconsets/Tango/iconset.xml 3 Jan 2016 20:46:36 -0000 1.1.2.1 @@ -0,0 +1,233 @@ + ++ ++ ++ + +iconsets/Crystal/ed_buttons_main.png +3 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +2 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +2 +0 ++ ++ +iconsets/Crystal/ed_buttons_main.png +3 +0 ++ ++ +iconsets/Crystal/ed_buttons_main.png +3 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +2 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +4 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +5 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +5 +0 ++ ++ +iconsets/Crystal/ed_buttons_main.png +4 +0 ++ ++ +iconsets/Crystal/ed_buttons_main.png +4 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +3 +3 ++ ++ +iconsets/Crystal/ed_buttons_main.png +2 +3 ++ ++ +iconsets/Crystal/ed_buttons_main.png +0 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +1 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +6 +3 ++ ++ +iconsets/Crystal/ed_buttons_main.png +0 +3 ++ ++ +iconsets/Crystal/ed_buttons_main.png +1 +3 ++ ++ +iconsets/Crystal/ed_buttons_main.png +0 +0 ++ ++ +iconsets/Crystal/ed_buttons_main.png +0 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +1 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +1 +0 ++ ++ +iconsets/Crystal/ed_buttons_main.png +6 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +0 +4 ++ ++ +iconsets/Crystal/ed_buttons_main.png +1 +4 ++ ++ +iconsets/Crystal/ed_buttons_main.png +8 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +9 +1 ++ ++ +iconsets/Crystal/ed_buttons_main.png +4 +4 ++ ++ +iconsets/Crystal/ed_buttons_main.png +8 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +9 +2 ++ ++ +iconsets/Crystal/ed_buttons_main.png +8 +0 ++ + ++ +iconsets/Crystal/ed_buttons_main.png +9 +0 ++ + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_about.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_about.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_center.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_center.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_justify.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_justify.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_left.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_left.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_right.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_align_right.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_blank.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_blank.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_buttons_main.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_buttons_main.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_buttons_main.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_buttons_main.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_charmap.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_charmap.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_clearfonts.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_clearfonts.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_color_bg.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_color_bg.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_color_fg.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_color_fg.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_copy.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_copy.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_custom.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_custom.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_cut.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_cut.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_delete.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_delete.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_bold.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_bold.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_italic.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_italic.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_strike.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_strike.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_sub.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_sub.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_sup.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_sup.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_underline.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_format_underline.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_help.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_help.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_hr.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_hr.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_html.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_html.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_image.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_image.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_indent_less.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_indent_less.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_indent_more.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_indent_more.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_killword.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_killword.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_left_to_right.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_left_to_right.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_link.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_link.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_list_bullet.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_list_bullet.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_list_num.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_list_num.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_overwrite.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_overwrite.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_paste.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_paste.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_print.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_print.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_redo.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_redo.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_right_to_left.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_right_to_left.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_rmformat.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_rmformat.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_save.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_save.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_save.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_save.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_saveas.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_saveas.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_selectall.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_selectall.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_show_border.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_show_border.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_splitblock.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_splitblock.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_splitcel.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_splitcel.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_undo.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_undo.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_word_cleaner.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/ed_word_cleaner.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fullscreen_maximize.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fullscreen_maximize.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fullscreen_minimize.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fullscreen_minimize.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/insert_table.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/insert_table.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/insertfilelink.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/insertfilelink.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/insertmacro.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/insertmacro.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tidy.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tidy.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/toggle_borders.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/toggle_borders.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/xinha-small-icon.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/xinha-small-icon.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/xinha_logo.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/xinha_logo.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/de/bold.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/de/bold.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/de/italic.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/de/italic.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/de/underline.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/de/underline.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fr/bold.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fr/bold.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fr/strikethrough.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fr/strikethrough.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fr/underline.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/fr/underline.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/COPYING =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/COPYING,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/COPYING 3 Jan 2016 20:46:49 -0000 1.1.2.1 @@ -0,0 +1,67 @@ +Creative Commons Attribution-ShareAlike 2.5 License Agreement + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + 1. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. + 2. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. + 3. "Licensor" means the individual or entity that offers the Work under the terms of this License. + 4. "Original Author" means the individual or entity who created the Work. + 5. "Work" means the copyrightable work of authorship offered under the terms of this License. + 6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + 7. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. + +2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + 1. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; + 2. to create and reproduce Derivative Works; + 3. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; + 4. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. + 5. + + For the avoidance of doubt, where the work is a musical composition: + 1. Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. + 2. Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). + 6. Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + 1. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested. + 2. You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.5 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License. + 3. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + 1. Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + 2. Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. + +Creative Commons may be contacted at http://creativecommons.org/. Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-new.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-new.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-open.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-open.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-print.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-print.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-save.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/document-save.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-copy.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-copy.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-redo.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-redo.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-select-all.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-select-all.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-undo.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/edit-undo.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/folder-new.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/folder-new.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-direction-left-to-right.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-direction-left-to-right.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-direction-right-to-left.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-direction-right-to-left.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-indent-less.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-indent-less.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-indent-more.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-indent-more.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-center.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-center.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-fill.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-fill.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-left.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-left.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-right.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-justify-right.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-background-color.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-background-color.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-bold.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-bold.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-color.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-color.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-italic.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-italic.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-strikethrough.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-strikethrough.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-subscript.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-subscript.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-superscript.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-superscript.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-underline.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/format-text-underline.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/go-up.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/go-up.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/insert-link.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/insert-link.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/insert-table.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/insert-table.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/toggle-borders.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/toggle-borders.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/view-fullscreen.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/view-fullscreen.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/view-restore.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/actions/view-restore.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/apps/accessories-character-map.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/apps/accessories-character-map.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/apps/help-browser.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/apps/help-browser.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/mimetypes/image-x-generic.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/mimetypes/image-x-generic.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/places/user-trash.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/16x16/places/user-trash.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/apps/internet-web-browser.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/apps/internet-web-browser.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/mimetypes/text-html.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/mimetypes/text-html.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/mimetypes/text-x-generic.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/mimetypes/text-x-generic.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/mimetypes/x-office-document.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/mimetypes/x-office-document.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/places/folder.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/places/folder.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/places/network-server.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/images/tango/32x32/places/network-server.png,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/b5.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/b5.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/b5.js 3 Jan 2016 20:46:58 -0000 1.1.2.1 @@ -0,0 +1,29 @@ +// I18N constants -- UTF-8 +// by Dave Lo -- dlo@interactivetools.com +{ + "Bold": "粗體", + "Italic": "斜體", + "Underline": "底線", + "Strikethrough": "刪除線", + "Subscript": "下標", + "Superscript": "上標", + "Justify Left": "位置靠左", + "Justify Center": "位置居中", + "Justify Right": "位置靠右", + "Justify Full": "位置左右平等", + "Ordered List": "順序清單", + "Bulleted List": "無序清單", + "Decrease Indent": "減小行前空白", + "Increase Indent": "加寬行前空白", + "Font Color": "文字顏色", + "Background Color": "背景顏色", + "Horizontal Rule": "水平線", + "Insert Web Link": "插入連結", + "Insert/Modify Image": "插入圖形", + "Insert Table": "插入表格", + "Toggle HTML Source": "切換HTML原始碼", + "Enlarge Editor": "放大", + "About this editor": "關於 Xinha", + "Help using editor": "說明", + "Current style": "字體例子" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ch.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ch.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ch.js 3 Jan 2016 20:46:58 -0000 1.1.2.1 @@ -0,0 +1,56 @@ +// I18N constants + +// LANG: "ch", ENCODING: UTF-8 +// Samuel Stone, http://stonemicro.com/ + +{ + "Bold": "粗體", + "Italic": "斜體", + "Underline": "底線", + "Strikethrough": "刪線", + "Subscript": "下標", + "Superscript": "上標", + "Justify Left": "靠左", + "Justify Center": "居中", + "Justify Right": "靠右", + "Justify Full": "整齊", + "Ordered List": "順序清單", + "Bulleted List": "無序清單", + "Decrease Indent": "伸排", + "Increase Indent": "縮排", + "Font Color": "文字顏色", + "Background Color": "背景顏色", + "Horizontal Rule": "水平線", + "Insert Web Link": "插入連結", + "Insert/Modify Image": "插入圖像", + "Insert Table": "插入表格", + "Toggle HTML Source": "切換HTML原始碼", + "Enlarge Editor": "伸出編輯系統", + "About this editor": "關於 Xinha", + "Help using editor": "說明", + "Current style": "字體例子", + "Undoes your last action": "回原", + "Redoes your last action": "重来", + "Cut selection": "剪制选项", + "Copy selection": "复制选项", + "Paste from clipboard": "贴上", + "Direction left to right": "从左到右", + "Direction right to left": "从右到左", + "OK": "好", + "Cancel": "取消", + "Path": "途徑", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "你在用純字編輯方式. 用 [<>] 按鈕轉回 所見即所得 編輯方式.", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "整頁式在Internet Explorer 上常出問題, 因為這是 Internet Explorer 的無名問題,我們無法解決。你可能看見一些垃圾,或遇到其他問題。我們已警告了你. 如果要轉到 正頁式 請按 好.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.", + "Cancel": "取消", + "Insert/Modify Link": "插入/改寫連結", + "New window (_blank)": "新窗户(_blank)", + "None (use implicit)": "無(use implicit)", + "Other": "其他", + "Same frame (_self)": "本匡 (_self)", + "Target:": "目標匡:", + "Title (tooltip):": "主題 (tooltip):", + "Top frame (_top)": "上匡 (_top)", + "URL:": "網址:", + "You must enter the URL where this link points to": "你必須輸入你要连结的網址" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/cz.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/cz.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/cz.js 3 Jan 2016 20:46:58 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants + +// LANG: "cz", ENCODING: UTF-8 +// Author: Jiri Löw,+ ++ ++ + +iconsets/Tango/ed_buttons_main.png +3 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +2 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +2 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +3 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +3 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +2 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +4 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +5 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +5 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +4 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +4 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +3 +3 ++ ++ +iconsets/Tango/ed_buttons_main.png +2 +3 ++ ++ +iconsets/Tango/ed_buttons_main.png +0 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +1 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +6 +3 ++ ++ +iconsets/Tango/ed_buttons_main.png +0 +3 ++ ++ +iconsets/Tango/ed_buttons_main.png +1 +3 ++ ++ +iconsets/Tango/ed_buttons_main.png +0 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +0 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +1 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +1 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +6 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +0 +4 ++ ++ +iconsets/Tango/ed_buttons_main.png +1 +4 ++ ++ +iconsets/Tango/ed_buttons_main.png +8 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +9 +1 ++ ++ +iconsets/Tango/ed_buttons_main.png +4 +4 ++ ++ +iconsets/Tango/ed_buttons_main.png +8 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +9 +2 ++ ++ +iconsets/Tango/ed_buttons_main.png +8 +0 ++ ++ +iconsets/Tango/ed_buttons_main.png +9 +0 ++ +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Tučně", + "Italic": "Kurzíva", + "Underline": "Podtržení", + "Strikethrough": "Přeškrtnutí", + "Subscript": "Dolní index", + "Superscript": "Horní index", + "Justify Left": "Zarovnat doleva", + "Justify Center": "Na střed", + "Justify Right": "Zarovnat doprava", + "Justify Full": "Zarovnat do stran", + "Ordered List": "Seznam", + "Bulleted List": "Odrážky", + "Decrease Indent": "Předsadit", + "Increase Indent": "Odsadit", + "Font Color": "Barva písma", + "Background Color": "Barva pozadí", + "Horizontal Rule": "Vodorovná čára", + "Insert Web Link": "Vložit odkaz", + "Insert/Modify Image": "Vložit obrázek", + "Insert Table": "Vložit tabulku", + "Toggle HTML Source": "Přepnout HTML", + "Enlarge Editor": "Nové okno editoru", + "About this editor": "O této aplikaci", + "Help using editor": "Nápověda aplikace", + "Current style": "Zvolený styl", + "Undoes your last action": "Vrátí poslední akci", + "Redoes your last action": "Opakuje poslední akci", + "Cut selection": "Vyjmout", + "Copy selection": "Kopírovat", + "Paste from clipboard": "Vložit", + "OK": "OK", + "Cancel": "Zrušit", + "Path": "Cesta", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jste v TEXTOVÉM REŽIMU. Použijte tlačítko [<>] pro přepnutí do WYSIWIG." +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/da.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/da.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/da.js 3 Jan 2016 20:46:59 -0000 1.1.2.1 @@ -0,0 +1,172 @@ +// I18N constants +// LANG: "da", ENCODING: UTF-8 +// Author: rene, +// Niels Baggesen, , 0.95, 2009-08-15 +{ + "Bold": "Fed", + "Italic": "Kursiv", + "Underline": "Understregning", + "Strikethrough": "Gennemstregning", + "Subscript": "Sænket skrift", + "Superscript": "Hævet skrift", + "Justify Left": "Venstrejuster", + "Justify Center": "Centrer", + "Justify Right": "Højrejuster", + "Justify Full": "Lige margener", + "Ordered List": "Ordnet liste", + "Bulleted List": "Punktliste", + "Decrease Indent": "Formindsk indrykning", + "Increase Indent": "Forøg indrykning", + "Font Color": "Skriftfarve", + "Background Color": "Baggrundsfarve", + "Horizontal Rule": "Vandret streg", + "Insert Web Link": "Indsæt hyperlink", + "Insert/Modify Image": "Indsæt/udskift billede", + "Insert Table": "Indsæt tabel", + "Toggle HTML Source": "HTML visning", + "Enlarge Editor": "Vis editor i popup", + "About this editor": "Om Xinha", + "Help using editor": "Hjælp", + "Current style": "Anvendt stil", + "Undoes your last action": "Fortryd sidste ændring", + "Redoes your last action": "Gentag sidste ændring", + "Cut selection": "Klip", + "Copy selection": "Kopier", + "Paste from clipboard": "Indsæt", + "Direction left to right": "Tekst venstre mod højre", + "Direction right to left": "Tekst højre mod venstre", + "Remove formatting": "Fjern formatering", + "Select all": "Vælg alt", + "Print document": "Udskriv dokument", + "Clear MSOffice tags": "MSOffice filter", + "Clear Inline Font Specifications": "Fjern skrift valg", + "Would you like to clear font typefaces?": "Vil du fjern skriftsnit valg", + "Would you like to clear font sizes?": "Vil du fjerne skriftstørrelse valg", + "Would you like to clear font colours?": "Vil du fjerne skriftfarve valg", + "Split Block": "Del blok", + "Toggle Borders": "Tabelkanter til/fra", + "Save as": "Gem som", + "Insert/Overwrite": "Indsæt/Overskriv", + "— format —": "— Format —", + "Heading 1": "Overskrift 1", + "Heading 2": "Overskrift 2", + "Heading 3": "Overskrift 3", + "Heading 4": "Overskrift 4", + "Heading 5": "Overskrift 5", + "Heading 6": "Overskrift 6", + "Normal": "Normal", + "Address": "Adresse", + "Formatted": "Formateret", + + //dialogs + "OK": "OK", + "Cancel": "Fortryd", + "Path": "STi", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Du er i TEXT mode. Brug [<>] knappen til at skifte til visuel editering.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Indsæt-knappen virker ikke i Mozilla-baserede browsere. Brug Ctrl-V på tastaturet for at indsætte.", + + "You need to select some text before create a link": "Du skal markere noget tekst for at indsætte et hyperlink", + "Your Document is not well formed. Check JavaScript console for details.": "Dit dokument er ikke syntaktisk korrekt. Åbn Javascript konsollen for at få flere detaljer.", + + "Alignment:": "Justering:", + "Not set": "Ubestemt", + "Left": "Venstre", + "Right": "Højre", + "Texttop": "Teksttop", + "Absmiddle": "Centreret", + "Baseline": "Grundlinje", + "Absbottom": "Bund", + "Bottom": "Tekstbund", + "Middle": "Midt", + "Top": "Top", + + "Layout": "Layout", + "Spacing": "Afstand", + "Horizontal:": "vandret:", + "Horizontal padding": "Vandret fyld", + "Vertical:": "lodret:", + "Vertical padding": "Lodret fyld", + "Border thickness:": "Kantbredde:", + "Leave empty for no border": "Tom hvis ingen kant", + + //Insert Link + "Insert/Modify Link": "Indsæt/rediger hyperlink", + "None (use implicit)": "ingen (implicit)", + "New window (_blank)": "Nyt vindue (_blank)", + "Same frame (_self)": "Samme ramme (_self)", + "Top frame (_top)": "Topramme (_top)", + "Other": "Andet", + "Target:": "Placering:", + "Title (tooltip):": "Titel (Tooltip):", + "URL:": "URL:", + "You must enter the URL where this link points to": "Du skal angive en mål-URL for linket", + + // Insert Table + "Insert Table": "Indsæt tabel", + "Rows:": "Rækker:", + "Number of rows": "Antal rækker", + "Cols:": "Søjler:", + "Number of columns": "Antal søjler", + "Width:": "Bredde:", + "Width of the table": "Tabelbredde", + "Percent": "Procent", + "Pixels": "Pixel", + "Em": "Geviert (Em)", + "Width unit": "Breddeenhed", + "Fixed width columns": "Fast-bredde søjler", + "Positioning of this table": "Placering af tabel", + "Cell spacing:": "Celleafstand:", + "Space between adjacent cells": "Afstand mellem celler", + "Cell padding:": "Cellefyld:", + "Space between content and border in cell": "Luft mellem indhold og kanter", + "You must enter a number of rows": "Du skal skrive antallet af rækker", + "You must enter a number of columns": "Du skal skrive antallet af søjler", + + // Insert Image + "Insert Image": "Indsæt billede", + "Image URL:": "Billede URL:", + "Enter the image URL here": "Angiv billedets URL", + "Preview": "Smugkig", + "Preview the image in a new window": "Smugkig af billedet i et nyt vindue", + "Alternate text:": "Alternativ text:", + "For browsers that don't support images": "for browsere der ikke understøtter billeder", + "Positioning of this image": "Placering af billedet", + "Image Preview:": "Billede smugkig:", + "You must enter the URL": "Du skal angive en URL", + + // de-buttons have letters matching danish :-) + "button_bold": "de/bold.gif", + "button_italic": "de/italic.gif", + "button_underline": "de/underline.gif", + + // Editor Help + "Keyboard shortcuts": "Tastaturgenveje", + "The editor provides the following key combinations:": "Editoren kender følgende kombinationer:", + "new paragraph": "Nyt afsnit", + "insert linebreak": "Indsæt linjeskift", + "Set format to paragraph": "Formater afsnit", + "Clean content pasted from Word": "Rens indhold kopieret fra Word", + "Headings": "Overskrift 1 til 6", + "Close": "Luk", + + // Loading messages + "Loading in progress. Please wait!": "Editoren hentes ind. Vent venligst.", + "Loading plugin $plugin" : "Plugin $plugin hentes", + "Register plugin $plugin" : "Plugin $plugin registreres", + "Constructing object": "Objekt registreres", + "Generate Xinha framework": "Xinha Framework genereres", + "Init editor size":"Størrelsen beregnes", + "Create Toolbar": "Opretter værktøjslinje", + "Create Statusbar" : "Opretter statuslinje", + "Register right panel" : "Registrerer højre panel", + "Register left panel" : "Registrerer venstre panel", + "Register bottom panel" : "Registrerer nederste panel", + "Register top panel" : "Registrerer øverste panel", + "Finishing" : "Afslutter", + + // ColorPicker + "Click a color..." : "Vælg farve", + "Sample" : "Eksempel", + "Web Safe: " : "Web Safe: ", + "Color: " : "Farve: " +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/de.js 3 Jan 2016 20:46:59 -0000 1.1.2.1 @@ -0,0 +1,171 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Bold": "Fett", + "Italic": "Kursiv", + "Underline": "Unterstrichen", + "Strikethrough": "Durchgestrichen", + "Subscript": "Tiefgestellt", + "Superscript": "Hochgestellt", + "Justify Left": "Linksbündig", + "Justify Center": "Zentriert", + "Justify Right": "Rechtsbündig", + "Justify Full": "Blocksatz", + "Ordered List": "Nummerierte Liste", + "Bulleted List": "Aufzählungsliste", + "Decrease Indent": "Einzug verkleinern", + "Increase Indent": "Einzug vergrößern", + "Font Color": "Schriftfarbe", + "Background Color": "Hindergrundfarbe", + "Horizontal Rule": "Horizontale Linie", + "Insert Web Link": "Hyperlink einfügen", + "Insert/Modify Image": "Bild einfügen/verändern", + "Insert Table": "Tabelle einfügen", + "Toggle HTML Source": "HTML Quelltext ein/ausschalten", + "Enlarge Editor": "Editor vergrößern", + "About this editor": "Über diesen Editor", + "Help using editor": "Hilfe", + "Current style": "Derzeitiger Stil", + "Undoes your last action": "Rückgängig", + "Redoes your last action": "Wiederholen", + "Cut selection": "Ausschneiden", + "Copy selection": "Kopieren", + "Paste from clipboard": "Einfügen aus der Zwischenablage", + "Direction left to right": "Textrichtung von Links nach Rechts", + "Direction right to left": "Textrichtung von Rechts nach Links", + "Remove formatting": "Formatierung entfernen", + "Select all": "Alles markieren", + "Print document": "Dokument ausdrucken", + "Clear MSOffice tags": "MSOffice filter", + "Clear Inline Font Specifications": "Zeichensatz Formatierungen entfernen", + "Would you like to clear font typefaces?": "Wollen Sie Zeichensatztypen entfernen", + "Would you like to clear font sizes?": "Wollen Sie Zeichensatzgrößen entfernen", + "Would you like to clear font colours?": "Wollen sie Zeichensatzfarben entfernen", + "Split Block": "Block teilen", + "Toggle Borders": "Tabellenränder ein/ausblenden", + "Save as": "speichern unter", + "Insert/Overwrite": "Einfügen/Überschreiben", + "— format —": "— Format —", + "Heading 1": "Überschrift 1", + "Heading 2": "Überschrift 2", + "Heading 3": "Überschrift 3", + "Heading 4": "Überschrift 4", + "Heading 5": "Überschrift 5", + "Heading 6": "Überschrift 6", + "Normal": "Normal (Absatz)", + "Address": "Adresse", + "Formatted": "Formatiert", + + //dialogs + "OK": "OK", + "Cancel": "Abbrechen", + "Path": "Pfad", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sie sind im Text-Modus. Benutzen Sie den [<>] Button, um in den visuellen Modus (WYSIWIG) zu gelangen.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Aus Sicherheitsgründen dürfen Skripte normalerweise nicht auf Ausschneiden/Kopieren/Einfügen zugreifen. Benutzen Sie bitte die entsprechenden Tastatur-Kommandos (Strg + x/c/v).", + + "You need to select some text before create a link": "Sie müssen einen Text markieren, um einen Link zu erstellen", + "Your Document is not well formed. Check JavaScript console for details.": "Ihr Dokument ist in keinem sauberen Format. Benutzen Sie die Javascript Console für weitere Informationen.", + + "Alignment:": "Ausrichtung:", + "Not set": "nicht eingestellt", + "Left": "links", + "Right": "rechts", + "Texttop": "oben bündig", + "Absmiddle": "mittig", + "Baseline": "Grundlinie", + "Absbottom": "unten bündig", + "Bottom": "unten", + "Middle": "zentriert", + "Top": "oben", + + "Layout": "Layout", + "Spacing": "Abstand", + "Horizontal:": "horizontal:", + "Horizontal padding": "horizontaler Inhaltsabstand", + "Vertical:": "vertikal:", + "Vertical padding": "vertikaler Inhaltsabstand", + "Border thickness:": "Randstärke:", + "Leave empty for no border": "leer lassen für keinen Rand", + + //Insert Link + "Insert/Modify Link": "Verknüpfung hinzufügen/ändern", + "None (use implicit)": "k.A. (implizit)", + "New window (_blank)": "Neues Fenster (_blank)", + "Same frame (_self)": "Selber Rahmen (_self)", + "Top frame (_top)": "Oberster Rahmen (_top)", + "Other": "Anderes", + "Target:": "Ziel:", + "Title (tooltip):": "Titel (Tooltip):", + "URL:": "URL:", + "You must enter the URL where this link points to": "Sie müssen eine Ziel-URL angeben für die Verknüpfung angeben", + + // Insert Table + "Insert Table": "Tabelle einfügen", + "Rows:": "Zeilen:", + "Number of rows": "Zeilenanzahl", + "Cols:": "Spalten:", + "Number of columns": "Spaltenanzahl", + "Width:": "Breite:", + "Width of the table": "Tabellenbreite", + "Percent": "Prozent", + "Pixels": "Pixel", + "Em": "Geviert", + "Width unit": "Größeneinheit", + "Fixed width columns": "Spalten mit fester Breite", + "Positioning of this table": "Positionierung der Tabelle", + "Cell spacing:": "Zellenabstand:", + "Space between adjacent cells": "Raum zwischen angrenzenden Zellen", + "Cell padding:": "Innenabstand:", + "Space between content and border in cell": "Raum zwischen Inhalt und Rand der Zelle", + "You must enter a number of rows": "Bitte geben Sie die Anzahl der Zeilen an", + "You must enter a number of columns": "Bitte geben Sie die Anzahl der Spalten an", + + // Insert Image + "Insert Image": "Bild einfügen", + "Image URL:": "Bild URL:", + "Enter the image URL here": "Bitte geben sie hier die Bild URL ein", + "Preview": "Voransicht", + "Preview the image in a new window": "Voransicht des Bildes in einem neuen Fenster", + "Alternate text:": "Alternativer Text:", + "For browsers that don't support images": "für Browser, die keine Bilder unterstützen", + "Positioning of this image": "Positionierung dieses Bildes", + "Image Preview:": "Bild Voransicht:", + "You must enter the URL": "Bitte geben Sie die URL ein", + +/* + "button_bold": "de/bold.gif", + "button_italic": "de/italic.gif", + "button_underline": "de/underline.gif", +*/ + + // Editor Help + "Keyboard shortcuts": "Tastaturkürzel", + "The editor provides the following key combinations:": "Der Editor unterstützt die folgenden kombinationen:", + "new paragraph": "Neuer Absatz(Paragraph)", + "insert linebreak": "Harter Umbruch einfügen", + "Set format to paragraph": "Setze Formatierung auf Absatz", + "Clean content pasted from Word": "Von Word eingefügter Text bereinigen", + "Headings": "Überschrift Typ 1 bis 6", + "Close": "Schließen", + + // Loading messages + "Loading in progress. Please wait!": "Editor wird geladen. Bitte warten !", + "Loading plugin $plugin" : "Plugin $plugin wird geladen", + "Register plugin $plugin" : "Plugin $plugin wird registriert", + "Constructing object": "Objekt wird generiert", + "Generate Xinha framework": "Xinha Framework wird generiert", + "Init editor size":"Größe wird berechnet", + "Create Toolbar": "Werkzeugleiste wird generiert", + "Create Statusbar" : "Statusleiste wird generiert", + "Register right panel" : "Rechtes Panel wird generiert", + "Register left panel" : "Linkes Panel wird generiert", + "Register bottom panel" : "Unteres Panel wird generiert", + "Register top panel" : "Oberes Panel wird generiert", + "Finishing" : "Laden wird abgeschlossen", + + // ColorPicker + "Click a color..." : "Farbe wählen", + "Sample" : "Beispiel", + "Web Safe: " : "Web Safe: ", + "Color: " : "Farbe: " +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ee.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ee.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ee.js 3 Jan 2016 20:46:59 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants + +// LANG: "ee", ENCODING: UTF-8 +// Author: Martin Raie, + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Paks", + "Italic": "Kursiiv", + "Underline": "Allakriipsutatud", + "Strikethrough": "Läbikriipsutatud", + "Subscript": "Allindeks", + "Superscript": "Ülaindeks", + "Justify Left": "Joonda vasakule", + "Justify Center": "Joonda keskele", + "Justify Right": "Joonda paremale", + "Justify Full": "Rööpjoonda", + "Ordered List": "Nummerdus", + "Bulleted List": "Täpploend", + "Decrease Indent": "Vähenda taanet", + "Increase Indent": "Suurenda taanet", + "Font Color": "Fondi värv", + "Background Color": "Tausta värv", + "Horizontal Rule": "Horisontaaljoon", + "Insert Web Link": "Lisa viit", + "Insert/Modify Image": "Lisa pilt", + "Insert Table": "Lisa tabel", + "Toggle HTML Source": "HTML/tavaline vaade", + "Enlarge Editor": "Suurenda toimeti aken", + "About this editor": "Teave toimeti kohta", + "Help using editor": "Spikker", + "Current style": "Kirjastiil", + "Undoes your last action": "Võta tagasi", + "Redoes your last action": "Tee uuesti", + "Cut selection": "Lõika", + "Copy selection": "Kopeeri", + "Paste from clipboard": "Kleebi", + "OK": "OK", + "Cancel": "Loobu", + "Path": "Path", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sa oled tekstireziimis. Kasuta nuppu [<>] lülitamaks tagasi WYSIWIG reziimi." +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/el.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/el.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/el.js 3 Jan 2016 20:46:59 -0000 1.1.2.1 @@ -0,0 +1,55 @@ +// I18N constants + +// LANG: "el", ENCODING: UTF-8 +// Author: Dimitris Glezos, dimitris@glezos.com + +{ + "Bold": "ΞΞ½ΟΞΏΞ½Ξ±", + "Italic": "Πλάγια", + "Underline": "Ξ�ΟΞΏΞ³ΟΞ±ΞΌΞΌΞΉΟΞΌΞΞ½Ξ±", + "Strikethrough": "ΞΞΉΞ±Ξ³ΟΞ±ΞΌΞΌΞΞ½Ξ±", + "Subscript": "ΞΡίκΟΞ·Ο", + "Superscript": "ΞΡίκΟΞ·Ο", + "Justify Left": "Ξ£ΟΞΏΞ―ΟΞΉΟΞ· ΞΟΞΉΟΟΞ΅ΟΞ¬", + "Justify Center": "Ξ£ΟΞΏΞ―ΟΞΉΟΞ· ΞΞΞ½ΟΟΞΏ", + "Justify Right": "Ξ£ΟΞΏΞ―ΟΞΉΟΞ· ΞΡξιά", + "Justify Full": "Ξ Ξ»Ξ�ΟΞ·Ο Ξ£ΟΞΏΞ―ΟΞΉΟΞ·", + "Ordered List": "ΞΟΞ―ΞΈΞΌΞ·ΟΞ·", + "Bulleted List": "ΞΞΏΟ ΞΊΞΊΞ―Ξ΄Ξ΅Ο", + "Decrease Indent": "ΞΡίΟΟΞ· ΞΟΞΏΟΞ�Ο", + "Increase Indent": "ΞΟΞΎΞ·ΟΞ· ΞΟΞΏΟΞ�Ο", + "Font Color": "Ξ§ΟΟΞΌΞ± ΞΟΞ±ΞΌΞΌΞ±ΟΞΏΟΡιΟΞ¬Ο", + "Background Color": "Ξ§ΟΟΞΌΞ± Ξ¦ΟΞ½ΟΞΏΟ ", + "Horizontal Rule": "ΞΟΞΉΞΆΟΞ½ΟΞΉΞ± ΞΟΞ±ΞΌΞΌΞ�", + "Insert Web Link": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� Ξ£Ο Ξ½Ξ΄ΞΟΞΌΞΏΟ ", + "Insert/Modify Image": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ�/Ξ�ΟΞΏΟΞΏΟΞΏΞ―Ξ·ΟΞ· ΞΞΉΞΊΟΞ½Ξ±Ο", + "Insert Table": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� Ξ Ξ―Ξ½Ξ±ΞΊΞ±", + "Toggle HTML Source": "ΞναλλαγΞ� ΟΞ΅/Ξ±ΟΟ HTML", + "Enlarge Editor": "ΞΡγΞΞ½ΞΈΟ Ξ½ΟΞ· Ξ΅ΟΡξΡΟΞ³Ξ±ΟΟΞ�", + "About this editor": "ΠληΟΞΏΟΞΏΟΞ―Ξ΅Ο", + "Help using editor": "ΞΞΏΞ�θΡια", + "Current style": "Ξ Ξ±ΟΟΞ½ ΟΟΟ Ξ»", + "Undoes your last action": "ΞΞ½Ξ±Ξ―ΟΞ΅ΟΞ· ΟΞ΅Ξ»Ξ΅Ο ΟΞ±Ξ―Ξ±Ο Ξ΅Ξ½ΞΟγΡιαΟ", + "Redoes your last action": "ΞΟΞ±Ξ½Ξ±ΟΞΏΟΞ¬ Ξ±ΟΟ Ξ±Ξ½Ξ±Ξ―ΟΞ΅ΟΞ·", + "Cut selection": "ΞΟΞΏΞΊΞΏΟΞ�", + "Copy selection": "ΞΞ½ΟΞΉΞ³ΟΞ±ΟΞ�", + "Paste from clipboard": "ΞΟΞΉΞΊΟλληΟΞ·", + "Direction left to right": "ΞΞ±ΟΞ΅ΟΞΈΟ Ξ½ΟΞ· Ξ±ΟΞΉΟΟΞ΅ΟΞ¬ ΟΟΞΏΟ Ξ΄Ξ΅ΞΎΞΉΞ¬", + "Direction right to left": "ΞΞ±ΟΞ΅ΟΞΈΟ Ξ½ΟΞ· Ξ±ΟΟ Ξ΄Ξ΅ΞΎΞΉΞ¬ ΟΟΞΏΟ ΟΞ± Ξ±ΟΞΉΟΟΞ΅ΟΞ¬", + "OK": "OK", + "Cancel": "ΞΞΊΟΟΟΟΞ·", + "Path": "ΞΞΉΞ±Ξ΄ΟΞΏΞΌΞ�", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "ΞΞ―ΟΟΞ΅ ΟΞ΅ TEXT MODE. Ξ§ΟΞ·ΟΞΉΞΌΞΏΟΞΏΞΉΞ�ΟΟΞ΅ ΟΞΏ ΞΊΞΏΟ ΞΌΟΞ― [<>] Ξ³ΞΉΞ± Ξ½Ξ± Ξ΅ΟΞ±Ξ½ΞΟΞΈΞ΅ΟΞ΅ ΟΟΞΏ WYSIWIG.", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Ξ ΞΊΞ±ΟΞ¬ΟΟΞ±ΟΞ· ΟΞ»Ξ�ΟΞ·Ο ΞΏΞΈΟΞ½Ξ·Ο ΞΟΡι ΟΟΞΏΞ²Ξ»Ξ�ΞΌΞ±ΟΞ± ΞΌΞ΅ ΟΞΏΞ½ Internet Explorer, Ξ»ΟΞ³Ο ΟΟαλμάΟΟΞ½ ΟΟΞΏΞ½ ίδιο ΟΞΏΞ½ browser. ΞΞ½ ΟΞΏ ΟΟΟΟΞ·ΞΌΞ± ΟΞ±Ο Ξ΅Ξ―Ξ½Ξ±ΞΉ Windows 9x ΞΌΟΞΏΟΡί ΞΊΞ±ΞΉ Ξ½Ξ± ΟΟΡιαΟΟΡίΟΞ΅ reboot. ΞΞ½ ΡίΟΟΞ΅ ΟΞ―Ξ³ΞΏΟ ΟΞΏΞΉ, ΟΞ±ΟΞ�ΟΟΞ΅ ΞΞ.", + "Cancel": "ΞΞΊΟΟΟΟΞ·", + "Insert/Modify Link": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ�/Ξ�ΟΞΏΟΞΏΟΞΏΞ―Ξ·ΟΞ· ΟΟνδΡΟΞΌΞΏΟ ", + "New window (_blank)": "ΞΞΞΏ ΟΞ±ΟΞ¬ΞΈΟ ΟΞΏ (_blank)", + "None (use implicit)": "ΞΞ±Ξ½ΞΞ½Ξ± (ΟΟΞ�ΟΞ· Ξ±ΟΟΞ»Ο ΟΞΏΟ )", + "Other": "Ξλλο", + "Same frame (_self)": "Ξδιο frame (_self)", + "Target:": "Target:", + "Title (tooltip):": "Ξ�Ξ―ΟΞ»ΞΏΟ (tooltip):", + "Top frame (_top)": "Ξ Ξ¬Ξ½Ο frame (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Ξ ΟΞΟΡι Ξ½Ξ± ΡιΟάγΡΟΞ΅ ΟΞΏ URL ΟΞΏΟ ΞΏΞ΄Ξ·Ξ³Ξ΅Ξ― Ξ±Ο ΟΟΟ ΞΏ ΟΟνδΡΟΞΌΞΏΟ" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/es.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/es.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/es.js 3 Jan 2016 20:46:59 -0000 1.1.2.1 @@ -0,0 +1,167 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Bold": "Negrita", + "Italic": "Cursiva", + "Underline": "Subrayado", + "Strikethrough": "Tachado", + "Subscript": "Subíndice", + "Superscript": "Superíndice", + "Justify Left": "Alinear a la izquierda", + "Justify Center": "Alinear al centro", + "Justify Right": "Alinear a la derecha", + "Justify Full": "Justificar", + "Ordered List": "Lista numerada", + "Bulleted List": "Lista no numerada", + "Decrease Indent": "Reducir sangría", + "Increase Indent": "Aumentar sangría", + "Font Color": "Color de la fuente", + "Background Color": "Color de fondo", + "Horizontal Rule": "Regla horizontal", + "Insert Web Link": "Insertar enlace web", + "Insert/Modify Image": "Insertar/modificar imagen", + "Insert Table": "Insertar una tabla", + "Toggle HTML Source": "Ver HTML", + "Enlarge Editor": "Editor a pantalla completa", + "About this editor": "Sobre este Editor", + "Help using editor": "Ayuda", + "Current style": "Estilo actual", + "Undoes your last action": "Deshacer", + "Redoes your last action": "Rehacer", + "Cut selection": "Cortar", + "Copy selection": "Copiar", + "Paste from clipboard": "Pegar desde el portapapeles", + "Direction left to right": "Dirección de izquierda a derecha", + "Direction right to left": "Dirección de derecha a izquierda", + "Remove formatting": "Borrar formato", + "Select all": "Seleccionar todo", + "Print document": "Imprimir documento", + "Clear MSOffice tags": "Borrar etiquetas de MSOffice", + "Clear Inline Font Specifications": "Borrar las etiquetas de fuente", + "Would you like to clear font typefaces?": "¿Desea eliminar las definiciaones de tipo de fuente?", + "Would you like to clear font sizes?": "¿Desea eliminar las definiciones de tamaño de fuente?", + "Would you like to clear font colours?": "¿Desea eliminar las definiciones de color de fuente?", + "Split Block": "Dividir el bloque", + "Toggle Borders": "Añadir/Quitar bordes", + "Save as": "Guardar como", + "Insert/Overwrite": "Insertar/Sobreescribir", + "— format —": "— formato —", + "— font —": "— fuente —", + "— size —": "— tamaño —", + "Heading 1": "Cabecera 1", + "Heading 2": "Cabecera 2", + "Heading 3": "Cabecera 3", + "Heading 4": "Cabecera 4", + "Heading 5": "Cabecera 5", + "Heading 6": "Cabecera 6", + "Normal": "Normal", + "Address": "Dirección", + "Formatted": "Formateado", + + //dialogs + "OK": "Aceptar", + "Cancel": "Cancelar", + "Path": "Ruta", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Se encuentra en MODO TEXTO. Use el botón [<>] para cambiar de nuevo al modo WYSIWYG", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "El botón de pegar no funciona en los navegadores de Mozilla por motivos de seguridad. Presione CTRL-V en su teclado para pegarlo directamente", + + "You need to select some text before create a link": "Necesita seleccionar algún texto antes de crear un link", + "Your Document is not well formed. Check JavaScript console for details.": "Su documento no está bien formado. Compruebe la consola de JavaScript para obtener más detalles", + + "Alignment:": "Alineación:", + "Not set": "No definido", + "Left": "Izquierda", + "Right": "Derecha", + "Texttop": "Texto Superior", + "Absmiddle": "Medio Absoluto", + "Baseline": "Línea base", + "Absbottom": "Inferior absoluto", + "Bottom": "Inferior", + "Middle": "Medio", + "Top": "Superior", + + "Layout": "Distribución", + "Spacing": "Espaciado", + "Horizontal:": "horizontal:", + "Horizontal padding": "Relleno horizontal", + "Vertical:": "Vertical:", + "Vertical padding": "Relleno Vertical", + "Border thickness:": "Tamaño del borde:", + "Leave empty for no border": "Vacío si no desea ningún borde", + + //Insert Link + "Insert/Modify Link": "Insertar/Modificar un enlace", + "None (use implicit)": "Vacío ( usar implícito )", + "New window (_blank)": "Nueva ventana (_blank)", + "Same frame (_self)": "Mismo marco (_self)", + "Top frame (_top)": "Marco superior (_top)", + "Other": "Otro", + "Target:": "Destino:", + "Title (tooltip):": "Título (Tooltip):", + "URL:": "URL:", + "You must enter the URL where this link points to": "Debe introducir la URL a donde apunta este enlace", + + // Insert Table + "Insert Table": "Añadir una tabla", + "Rows:": "Filas:", + "Number of rows": "Número de filas", + "Cols:": "Columnas:", + "Number of columns": "Número de columnas", + "Width:": "Ancho:", + "Width of the table": "Ancho de la tabla", + "Percent": "Porcentaje", + "Pixels": "Pixels", + "Em": "Em", + "Width unit": "Unidad de anchura", + "Fixed width columns": "Columnas de ancho fijo", + "Positioning of this table": "Posición de esta tabla", + "Cell spacing:": "Espaciado entre celdas:", + "Space between adjacent cells": "Espaciado entre celdas adyacentes", + "Cell padding:": "Relleno de celdas:", + "Space between content and border in cell": "Escapcio entre el contenido y el borde de la celda", + "You must enter a number of rows": "Debe introducir un número de filas", + "You must enter a number of columns": "Debe introducir un número de columnas", + + // Insert Image + "Insert Image": "Insertar una imagen", + "Image URL:": "Imagen URL:", + "Enter the image URL here": "", + "Preview": "Previsualizar", + "Preview the image in a new window": "Previsualizar en una nueva ventana", + "Alternate text:": "Texto alternativo:", + "For browsers that don't support images": "Para navegadores que no soportan imágenes", + "Positioning of this image": "Posición de la imagen", + "Image Preview:": "Previsualización de la imagen:", + "You must enter the URL": "Debe introducir la URL", + + // Editor Help + "Keyboard shortcuts": "Atajos de teclado", + "The editor provides the following key combinations:": "El editor proporciona las siguientes combinaciones:", + "new paragraph": "Nuevo parrafo", + "insert linebreak": "Insertar salto de línea", + "Set format to paragraph": "EStablecer el formato a parrafo", + "Clean content pasted from Word": "Limpiar el contenido pegado desde Word", + "Headings": "Cabeceras", + "Close": "Cerrar", + + // Loading messages + "Loading in progress. Please wait!": "Carga en proceso. Por favor espere.", + "Loading plugin $plugin" : "Cargando el plugin $plugin", + "Register plugin $plugin" : "Registro de plugin $plugin", + "Constructing object": "Construyendo objeto", + "Generate Xinha framework": "Generar Xinha framework", + "Init editor size":"Iniciar el tamaño del editor", + "Create Toolbar": "Crear barra de herramientas", + "Create Statusbar" : "Crear barra de estado", + "Register right panel" : "Registrar panel derecho", + "Register left panel" : "Registrar panel izquierdo", + "Register bottom panel" : "Registar panel inferior", + "Register top panel" : "Registar panel superior", + "Finishing" : "Finalizando", + + // ColorPicker + "Click a color..." : "Seleccione un color...", + "Sample" : "Muestra", + "Web Safe: " : "Color web: ", + "Color: " : "Color: " +} \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/eu.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/eu.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/eu.js 3 Jan 2016 20:47:00 -0000 1.1.2.1 @@ -0,0 +1,169 @@ +// I18N constants +// LANG: "eu", ENCODING: UTF-8 +{ + "Bold": "Lodia", + "Italic": "Etzana", + "Underline": "Azpimarratua", + "Strikethrough": "Marratua", + "Subscript": "Azpindizea", + "Superscript": "Goi-indizea", + "Justify Left": "Ezkerretara lerrokatu", + "Justify Center": "Zentratu", + "Justify Right": "Eskuinetara lerrokatu", + "Justify Full": "Justifikatu", + "Ordered List": "Zerrenda ordenatua", + "Bulleted List": "Zerrenda ez ordenatua", + "Decrease Indent": "Koska handitu", + "Increase Indent": "Koska txikitu", + "Font Color": "Testu-kolorea", + "Background Color": "Atzeko kolorea", + "Horizontal Rule": "Marra horizontala", + "Insert Web Link": "Lotura txertatu", + "Insert/Modify Image": "Irudia txertatu", + "Insert Table": "Taula txertatu", + "Toggle HTML Source": "Ikusi dokumentua HTML-n", + "Enlarge Editor": "Editorea handitu", + "About this editor": "Editoreari buruz...", + "Help using editor": "Laguntza", + "Current style": "Uneko estiloa", + "Undoes your last action": "Desegin", + "Redoes your last action": "Berregin", + "Cut selection": "Ebaki hautaketa", + "Copy selection": "Kopiatu hautaketa", + "Paste from clipboard": "Itsatsi arbelean dagoena", + "Direction left to right": "Ezkerretik eskuinetarako norabidea", + "Direction right to left": "Eskuinetik ezkerretarako norabidea", + "Remove formatting": "Formatoa kendu", + "Select all": "Dena aukeratu", + "Print document": "Dokumentua inprimatu", + "Clear MSOffice tags": "MSOffice etiketak ezabatu", + "Clear Inline Font Specifications": "Ezabatu testuaren ezaugarriak", + "Would you like to clear font typefaces?": "Letra-tipoak ezabatu nahi al dituzu?", + "Would you like to clear font sizes?": "Letra-tipoen neurriak ezabatu nahi al dituzu?", + "Would you like to clear font colours?": "Letra-tipoen koloreak ezabatu nahi al dituzu?", + "Split Block": "Blokea zatitu", + "Toggle Borders": "Ertzak trukatu", + "Save as": "Gorde honela:", + "Insert/Overwrite": "Txertatu/Gainidatzi", + "— format —": "— Formatua —", + "Heading 1": "Goiburua 1", + "Heading 2": "Goiburua 2", + "Heading 3": "Goiburua 3", + "Heading 4": "Goiburua 4", + "Heading 5": "Goiburua 5", + "Heading 6": "Goiburua 6", + "Normal": "Normala", + "Address": "Helbidea", + "Formatted": "Formateatua", + + //dialogs + "OK": "Ados", + "Cancel": "Utzi", + "Path": "Bidea", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "TESTU eran ari zara. Erabil ezazu [<>] botoia WYSIWIG erara itzultzeko.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Itsatsi botoia ez dabil Mozillan oinarritutako nabigatzaileetan (arrazoi teknikoengatik). Sacatu CTRL-V zure teklatuan, zuzenean itsasteko.", + + "You need to select some text before create a link": "Testu-atal bat aukeratu behar duzu lehendabizi, lotura bat sortzeko", + "Your Document is not well formed. Check JavaScript console for details.": "Zure dokumentuak ez du formatu zuzena. Begira ezazu JavaScript kontsola xehetasunetarako.", + + "Alignment:": "Lerrokatzea:", + "Not set": "Ez gaitua", + "Left": "Ezkerretara", + "Right": "Eskuinetara", + "Texttop": "Irudiaren goialdean", + "Absmiddle": "Irudiaren erdian", + "Baseline": "Irudiaren oinean", + "Absbottom": "Irudiaren behekaldean", + "Bottom": "Behean", + "Middle": "Erdian", + "Top": "Goian", + + "Layout": "Diseinua", + "Spacing": "Tartea", + "Horizontal:": "Horizontala:", + "Horizontal padding": "Betegarri horizontala", + "Vertical:": "Bertikala:", + "Vertical padding": "Betegarri bertikala", + "Border thickness:": "Ertzaren lodiera:", + "Leave empty for no border": "Uztazu hutsik ertzik ez sortzeko", + + //Insert Link + "Insert/Modify Link": "Lotura txertatu/aldatu", + "None (use implicit)": "Bat ere ez (implizituki erabili)", + "New window (_blank)": "Lehio berrian (_blank)", + "Same frame (_self)": "Frame berean (_self)", + "Top frame (_top)": "Goiko frame-an (_top)", + "Other": "Beste bat", + "Target:": "Helburua:", + "Title (tooltip):": "Izenburua (argibidea):", + "URL:": "URL-a:", + "You must enter the URL where this link points to": "Loturaren helburu den URL-a idatzi behar duzu", + + // Insert Table + "Insert Table": "Taula txertatu", + "Rows:": "Lerroak:", + "Number of rows": "Lerro-kopurua", + "Cols:": "Zutabeak:", + "Number of columns": "Zutabe-kopurua", + "Width:": "Zabalera:", + "Width of the table": "Taularen zabalera", + "Percent": "Portzentaia", + "Pixels": "Pixelak", + "Em": "Em", + "Width unit": "Zabalera-unitatea", + "Fixed width columns": "Zabalera finkodun zutabeak", + "Positioning of this table": "Taula honen kokapena", + "Cell spacing:": "Gelaxka-tartea:", + "Space between adjacent cells": "Gelaxka auzokideen arteko tartea", + "Cell padding:": "Gelaxkaren betegarria:", + "Space between content and border in cell": "Gelaxkaren edukia eta ertzaren arteko tartea", + "You must enter a number of rows": "Lerro-kopurua idatzi behar duzu", + "You must enter a number of columns": "Zutabe-kopurua idatzi behar duzu", + + // Insert Image + "Insert Image": "Irudia txertatu", + "Image URL:": "Irudiaren URL-a:", + "Enter the image URL here": "Idatz ezazu irudiaren URL-a hemen", + "Preview": "Aurrebista", + "Preview the image in a new window": "Aurreikusi irudia beste lehio batean", + "Alternate text:": "Testu alternatiboa:", + "For browsers that don't support images": "Irudirik onartzen ez duten nabigatzaileentzat", + "Positioning of this image": "Irudiaren kokapena", + "Image Preview:": "Irudiaren aurrebista:", + "You must enter the URL": "URL-a idatzi behar duzu", + + "button_bold": "de/bold.gif", + "button_italic": "de/italic.gif", + "button_underline": "de/underline.gif", + + // Editor Help + "Keyboard shortcuts": "Laster-teklak", + "The editor provides the following key combinations:": "Editoreak ondorengo tekla-konbinazioak eskaintzen ditu:", + "new paragraph": "Paragrafo berria", + "insert linebreak": "Lerro-jauzia txertatu", + "Set format to paragraph": "Formatua ezarri paragrafoari", + "Clean content pasted from Word": "Word-etik itsatsitako edukia ezabatu", + "Headings": "Goiburuak", + "Close": "Itxi", + + // Loading messages + "Loading in progress. Please wait!": "Kargatzen. Itxaron mesedez", + "Loading plugin $plugin" : "$plugin plugina kargatzen", + "Register plugin $plugin" : "$plugin plugina erregistratu", + "Constructing object": "Objektua eraikitzen", + "Generate Xinha framework": "Xinha Framework sortzen", + "Init editor size":"Editorearen hasierako neurria", + "Create Toolbar": "Tresna-barra sortu", + "Create Statusbar" : "Egoera-barra sortu", + "Register right panel" : "Eskuin-panela erregistratu", + "Register left panel" : "Ezker-panela erregistratu", + "Register bottom panel" : "Beheko panela erregistratu", + "Register top panel" : "Goiko panela erregistratu", + "Finishing" : "Bukatzen", + + // ColorPicker + "Click a color..." : "Kolore bat aukeratu...", + "Sample" : "Lagina", + "Web Safe: " : "Web Safe: ", + "Color: " : "Kolorea: " +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fa.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fa.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fa.js 3 Jan 2016 20:47:00 -0000 1.1.2.1 @@ -0,0 +1,169 @@ +// I18N constants +// LANG: "fa", ENCODING: UTF-8 +{ + "Bold": "ضخیم", + "Italic": "مورب", + "Underline": "زیر خط", + "Strikethrough": "رو خط", + "Subscript": "زیروند", + "Superscript": "بالاوند", + "Justify Left": "تراز از چپ", + "Justify Center": "تراز در وسط", + "Justify Right": "تراز در راست", + "Justify Full": "تراز از چپ و راست", + "Ordered List": "فهرست مرتب", + "Bulleted List": "فهرست گلوله ای", + "Decrease Indent": "کاهش سر خط", + "Increase Indent": "افزایش سر خط", + "Font Color": "رنگ فلم", + "Background Color": "رنگ پس زمینه", + "Horizontal Rule": "خط افقی", + "Insert Web Link": "افزودن لینک وب", + "Insert/Modify Image": "افزودن یا ویرایش تصویر", + "Insert Table": "افزودن جدول", + "Toggle HTML Source": "مشاهده یا عدم مشاهده متن در قالب HTML", + "Enlarge Editor": "بزرگ کردن ویرایش گر", + "About this editor": "درباره این ویرایش گر", + "Help using editor": "راهنمای استفاده ویرایش گر", + "Current style": "شیوه کنونی", + "Undoes your last action": "برگرداندن آخرین عمل", + "Redoes your last action": "انجام مجدد آخرین عمل", + "Cut selection": "بریدن انتخاب شده", + "Copy selection": "کپی انتخاب شده", + "Paste from clipboard": "چسباندن از تخته کار", + "Direction left to right": "جهت از چپ به راست", + "Direction right to left": "جهت از راست به چپ", + "Remove formatting": "حذف فرمت بندی", + "Select all": "انتخاب همه", + "Print document": "چاپ سند", + "Clear MSOffice tags": "پاک کردن متن از برچسب های MSOffice", + "Clear Inline Font Specifications": "پاک کردن متن از مشخصات فونت", + "Would you like to clear font typefaces?": "آیا تمایل دارید ظاهر فلم را پاک کنید؟", + "Would you like to clear font sizes?": "آیا تمایل دارید اندازه قلم را پاک کنید", + "Would you like to clear font colours?": "آیا تمایل دارید رنگ قلم را پاک کنید؟", + "Split Block": "بلاک جداسازی", + "Toggle Borders": "فعال/غیر فعال کردن لبه ها", + "Save as": "ذخیره مانند...", + "Insert/Overwrite": "افزودن/جانویسی", + "— format —": "— قالب —", + "Heading 1": "تیتر 1", + "Heading 2": "تیتر 2", + "Heading 3": "تیتر 3", + "Heading 4": "تیتر 4", + "Heading 5": "تیتر 5", + "Heading 6": "تیتر 6", + "Normal": "معمولی", + "Address": "آدرس", + "Formatted": "قالب بندی شده", + + //dialogs + "OK": "بله", + "Cancel": "انصراف", + "Path": "مسیر", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "در مد متنی هستید. از دکمه [<>] استفاده نمایید تا به مد WYSIWYG برگردید.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "دکمه چسباندن در مرورگرهای سری Mozilla کار نمی کند (به دلایل فنی امنیتی).برای چسباندن مستقیم ، دکمه CTRL-V را در صفحه کلید بزنید.", + "Your Document is not well formed. Check JavaScript console for details.": "سند شما بدرستی قالب بندی نشده است. برای اطلاعات بیشتر پایانه نمایش جاوااسکریپت را بررسی کنید.", + + "Alignment:": "تراز بندی", + "Not set": "تنظیم نشده", + "Left": "چپ", + "Right": "راست", + "Texttop": "بالای متن", + "Absmiddle": "دقیقا وسط", + "Baseline": "ابتدای خط", + "Absbottom": "دقیقا پایین", + "Bottom": "پایین", + "Middle": "وسط", + "Top": "بالا", + + "Layout": "لایه", + "Spacing": "فاصله گذاری", + "Horizontal:": "افقی", + "Horizontal padding": "پرکننده افقی", + "Vertical:": "عمودی", + "Vertical padding": "پرکننده عمودی", + "Border thickness:": "ضخامت لبه", + "Leave empty for no border": "برای بدون لبه خالی رها کن", + + //Insert Link + "Insert/Modify Link": "افزودن / ویرایش لینک", + "None (use implicit)": "هیچکدام (استفاده از بدون شرط)", + "New window (_blank)": "پنجره جدید (_blank)", + "Same frame (_self)": "فریم یکسان (_self)", + "Top frame (_top)": "فریم بالایی (_top)", + "Other": "سایر", + "Target:": "هدف", + "Title (tooltip):": "عنوان (راهنمای یک خطی)", + "URL:": "URL:", + "You must enter the URL where this link points to": "باید URLی که این لینک به آن اشاره دارد را وارد کنید", + "You need to select some text before creating a link": "باید قبل از ساخت لینک ، متنی را انتخاب نمایید", + + // Insert Table + "Insert Table": "افزودن جدول", + "Rows:": "ردیف ها", + "Number of rows": "تعداد ردیف ها", + "Cols:": "ستون ها", + "Number of columns": "تعداد ستون ها", + "Width:": "طول", + "Width of the table": "طول جدول", + "Percent": "درصد", + "Pixels": "پیکسل ها", + "Em": "Em", + "Width unit": "واحد طول", + "Fixed width columns": "ستون های طول ثابت", + "Positioning of this table": "موقعیت یابی این جدول", + "Cell spacing:": "فاصله سلول ها", + "Space between adjacent cells": "فاصله بین سلول های همجوار", + "Cell padding:": "پر کننده سلول", + "Space between content and border in cell": "فاصله بین محتوا و لبه در سلول", + "You must enter a number of rows": "باید تعداد ردیف ها را وارد کنید", + "You must enter a number of columns": "باید تعداد ستون ها را وارد کنید", + + // Insert Image + "Insert Image": "افزودن تصویر", + "Image URL:": "URL تصویر", + "Enter the image URL here": "URL تصویر را اینجا وارد کنید", + "Preview": "پیش نمایش", + "Preview the image in a new window": "پیش نمایش تصویر در پنجره ای جدید", + "Alternate text:": "متن جایگزین", + "For browsers that don't support images": "برای مرورگرهایی که از تصاویر پشتیبانی نمی کنند", + "Positioning of this image": "موقعیت یابی تصویر", + "Image Preview:": "پیش نمایش تصویر", + "You must enter the URL": "شما باید URL را وارد کنید", + + // toolbar + /* + "button_bold": "fr/bold.gif", + "button_underline": "fr/underline.gif", + "button_strikethrough": "fr/strikethrough.gif", + */ + + // Editor Help + "Xinha Help": "راهنمای Xinha", + "Editor Help": "راهنمای ویرایشگر", + "Keyboard shortcuts": "میانبرهای صفحه کلید", + "The editor provides the following key combinations:": "ویرایشگر استفاده از کلید های گروهی زیر را مسیر می سازد :", + "ENTER": "ENTREE", + "new paragraph": "پاراگراف جدید", + "SHIFT-ENTER": "SHIFT+ENTREE", + "insert linebreak": "افزودن جدا کننده خط", + "Set format to paragraph": "تغییر قالب به پاراگراف", + "Clean content pasted from Word": "تمیز کردن محتوای چسبانده شده از Word", + "Headings": "عنوان گذاری", + "Close": "بستن", + + // Loading messages + "Loading in progress. Please wait !": "بارگذاری در حال انجام است. لطفا صبر کنید !", + "Constructing main object": "ساختن شیء اصلی", + "Constructing object": "ساختن شیء", + "Register panel right": "ثبت قاب راست", + "Register panel left": "ثبت قاب چپ", + "Register panel top": "ثبت قاب بالا", + "Register panel bottom": "ثبت قاب پایین", + "Create Toolbar": "ساخت نوار ابزار", + "Create StatusBar": "ساخت نوار وضعیت", + "Generate Xinha object": "تولید شیء Xinha", + "Init editor size": "مقدار دهی اندازه ویرایشگر", + "Init IFrame": "مقدار دهی IFrame", + "Register plugin $plugin": "ثبت پلاگین $plugin" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fi.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fi.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fi.js 3 Jan 2016 20:47:00 -0000 1.1.2.1 @@ -0,0 +1,38 @@ +// I18N constants + +// LANG: "en", ENCODING: UTF-8 + +{ + "Bold": "Lihavoitu", + "Italic": "Kursivoitu", + "Underline": "Alleviivattu", + "Strikethrough": "Yliviivattu", + "Subscript": "Alaindeksi", + "Superscript": "Yläindeksi", + "Justify Left": "Tasaa vasemmat reunat", + "Justify Center": "Keskitä", + "Justify Right": "Tasaa oikeat reunat", + "Justify Full": "Tasaa molemmat reunat", + "Ordered List": "Numerointi", + "Bulleted List": "Luettelomerkit", + "Decrease Indent": "Pienennä sisennystä", + "Increase Indent": "Lisää sisennystä", + "Font Color": "Fontin väri", + "Background Color": "Taustaväri", + "Horizontal Rule": "Vaakaviiva", + "Insert Web Link": "Lisää linkki", + "Insert/Modify Image": "Lisää kuva", + "Insert Table": "Lisää taulukko", + "Toggle HTML Source": "HTML-lähdekoodi vs WYSIWYG", + "Enlarge Editor": "Suurenna editori", + "About this editor": "Tietoja editorista", + "Help using editor": "Näytä ohje", + "Current style": "Nykyinen tyyli", + "Undoes your last action": "Peruuta viimeinen toiminto", + "Redoes your last action": "Palauta viimeinen toiminto", + "Cut selection": "Leikkaa maalattu", + "Copy selection": "Kopioi maalattu", + "Paste from clipboard": "Liitä leikepyödältä", + "OK": "Hyväksy", + "Cancel": "Peruuta" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/fr.js 3 Jan 2016 20:47:00 -0000 1.1.2.1 @@ -0,0 +1,171 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Bold": "Gras", + "Italic": "Italique", + "Underline": "Souligné", + "Strikethrough": "Barré", + "Subscript": "Indice", + "Superscript": "Exposant", + "Justify Left": "Aligner à gauche", + "Justify Center": "Centrer", + "Justify Right": "Aligner à droite", + "Justify Full": "Justifier", + "Ordered List": "Liste numérotée", + "Bulleted List": "Liste à puces", + "Decrease Indent": "Diminuer le retrait", + "Increase Indent": "Augmenter le retrait", + "Font Color": "Couleur de police", + "Background Color": "Surlignage", + "Horizontal Rule": "Ligne horizontale", + "Insert Web Link": "Insérer un lien", + "Insert/Modify Image": "Insérer / Modifier une image", + "Insert Table": "Insérer un tableau", + "Toggle HTML Source": "Afficher / Masquer code source", + "Enlarge Editor": "Agrandir l'éditeur", + "About this editor": "A propos", + "Help using editor": "Aide", + "Current style": "Style courant", + "Undoes your last action": "Annuler la dernière action", + "Redoes your last action": "Répéter la dernière action", + "Cut selection": "Couper la sélection", + "Copy selection": "Copier la sélection", + "Paste from clipboard": "Coller depuis le presse-papier", + "Direction left to right": "Direction de gauche à droite", + "Direction right to left": "Direction de droite à gauche", + "Remove formatting": "Supprimer mise en forme", + "Select all": "Tout sélectionner", + "Print document": "Imprimer document", + "Clear MSOffice tags": "Supprimer tags MSOffice", + "Clear Inline Font Specifications": "Supprimer paramètres inline de la police", + "Would you like to clear font typefaces?": "Voulez-vous supprimer les types ?", + "Would you like to clear font sizes?": "Voulez-vous supprimer les tailles ?", + "Would you like to clear font colours?": "Voulez-vous supprimer les couleurs ?", + "Split Block": "Séparer les blocs", + "Toggle Borders": "Afficher / Masquer les bordures", + "Save as": "Enregistrer sous", + "Insert/Overwrite": "Insertion / Remplacement", + "— format —": "— Format —", + "Heading 1": "Titre 1", + "Heading 2": "Titre 2", + "Heading 3": "Titre 3", + "Heading 4": "Titre 4", + "Heading 5": "Titre 5", + "Heading 6": "Titre 6", + "Normal": "Normal", + "Address": "Adresse", + "Formatted": "Formaté", + + //dialogs + "OK": "OK", + "Cancel": "Annuler", + "Path": "Chemin", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Vous êtes en MODE TEXTE. Appuyez sur le bouton [<>] pour retourner au mode WYSIWYG.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Le bouton Coller ne fonctionne pas sur les navigateurs basés sur Mozilla (pour des raisons de sécurité). Pressez CTRL-V au clavier pour coller directement.", + "Your Document is not well formed. Check JavaScript console for details.": "Le document est mal formé. Vérifiez la console JavaScript pour plus de détails.", + + "Alignment:": "Alignement", + "Not set": "Indéfini", + "Left": "Gauche", + "Right": "Droite", + "Texttop": "Texttop", + "Absmiddle": "Absmiddle", + "Baseline": "Baseline", + "Absbottom": "Absbottom", + "Bottom": "Bas", + "Middle": "Milieu", + "Top": "Haut", + + "Layout": "Mise en page", + "Spacing": "Espacement", + "Horizontal:": "Horizontal", + "Horizontal padding": "Marge horizontale interne", + "Vertical:": "Vertical", + "Vertical padding": "Marge verticale interne", + "Border thickness:": "Epaisseur de bordure", + "Leave empty for no border": "Laisser vide pour pas de bordure", + + //Insert Link + "Insert/Modify Link": "Insérer / Modifier un lien", + "None (use implicit)": "Aucune (implicite)", + "New window (_blank)": "Nouvelle fenêtre (_blank)", + "Same frame (_self)": "Même frame (_self)", + "Top frame (_top)": "Frame principale (_top)", + "Other": "Autre", + "Target:": "Cible", + "Title (tooltip):": "Texte alternatif", + "URL:": "URL:", + "You must enter the URL where this link points to": "Vous devez entrer l'URL de ce lien", + "You need to select some text before creating a link": "Vous devez sélectionner du texte avant de créer un lien", + + // Insert Table + "Insert Table": "Insérer un tableau", + "Rows:": "Lignes", + "Number of rows": "Nombre de lignes", + "Cols:": "Colonnes", + "Number of columns": "Nombre de colonnes", + "Width:": "Largeur", + "Width of the table": "Largeur du tableau", + "Percent": "Pourcent", + "Pixels": "Pixels", + "Em": "Em", + "Width unit": "Unités de largeur", + "Fixed width columns": "Colonnes à taille fixe", + "Positioning of this table": "Position du tableau", + "Cell spacing:": "Espacement", + "Space between adjacent cells": "Espace entre les cellules adjacentes", + "Cell padding:": "Marge interne", + "Space between content and border in cell": "Espace entre le contenu et la bordure d'une cellule", + "You must enter a number of rows": "Vous devez entrer le nombre de lignes", + "You must enter a number of columns": "Vous devez entrer le nombre de colonnes", + + // Insert Image + "Insert Image": "Insérer une image", + "Image URL:": "URL image", + "Enter the image URL here": "Entrer l'URL de l'image ici", + "Preview": "Prévisualiser", + "Preview the image in a new window": "Prévisualiser l'image dans une nouvelle fenêtre", + "Alternate text:": "Texte alternatif", + "For browsers that don't support images": "Pour les navigateurs qui ne supportent pas les images", + "Positioning of this image": "Position de l'image", + "Image Preview:": "Prévisualisation", + "You must enter the URL": "Vous devez entrer l'URL", + + // toolbar +/* + "button_bold": "fr/bold.gif", + "button_underline": "fr/underline.gif", + "button_strikethrough": "fr/strikethrough.gif", +*/ + + // Editor Help + "Xinha Help": "Aide Xinha", + "Editor Help": "Aide de l'éditeur", + "Keyboard shortcuts": "Raccourcis clavier", + "The editor provides the following key combinations:": "L'éditeur fournit les combinaisons de touches suivantes :", + "ENTER": "ENTREE", + "new paragraph": "Nouveau paragraphe", + "SHIFT-ENTER": "SHIFT+ENTREE", + "insert linebreak": "Insère un saut de ligne", + "Set format to paragraph": "Applique le format paragraphe", + "Clean content pasted from Word": "Nettoyage du contenu copié depuis Word", + "Headings": "Titres", + "Close": "Fermer", + + // Loading messages + "Loading in progress. Please wait!": "Chargement en cours. Veuillez patienter!", + "Finishing" : "Chargement bientôt terminé", + "Constructing object": "Construction de l'objet", + "Create Toolbar": "Construction de la barre d'icones", + "Create Statusbar": "Construction de la barre de status", + "Register right panel" : "Enregistrement du panneau droit", + "Register left panel" : "Enregistrement du panneau gauche", + "Register bottom panel" : "Enregistrement du panneau supérieur", + "Register top panel" : "Enregistrement du panneau inférieur", + "Generate Xinha framework": "Génération de Xinha", + "Init editor size": "Initialisation de la taille d'édition", + "Init IFrame": "Initialisation de l'iframe", + "Register plugin $plugin": "Enregistrement du plugin $plugin", + "Loading plugin $plugin" : "Chargement du plugin $plugin" + +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/gb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/gb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/gb.js 3 Jan 2016 20:47:00 -0000 1.1.2.1 @@ -0,0 +1,29 @@ +// I18N constants -- Chinese GB +// by Dave Lo -- dlo@interactivetools.com +{ + "Bold": "粗体", + "Italic": "斜体", + "Underline": "底线", + "Strikethrough": "删除线", + "Subscript": "下标", + "Superscript": "上标", + "Justify Left": "位置靠左", + "Justify Center": "位置居中", + "Justify Right": "位置靠右", + "Justify Full": "位置左右平等", + "Ordered List": "顺序清单", + "Bulleted List": "无序清单", + "Decrease Indent": "减小行前空白", + "Increase Indent": "加宽行前空白", + "Font Color": "文字颜色", + "Background Color": "背景颜色", + "Horizontal Rule": "水平线", + "Insert Web Link": "插入连结", + "Insert/Modify Image": "插入图形", + "Insert Table": "插入表格", + "Toggle HTML Source": "切换HTML原始码", + "Enlarge Editor": "放大", + "About this editor": "关於 Xinha", + "Help using editor": "说明", + "Current style": "字体例子" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/he.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/he.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/he.js 3 Jan 2016 20:47:00 -0000 1.1.2.1 @@ -0,0 +1,64 @@ +// I18N constants + +// LANG: "he", ENCODING: UTF-8 +// Author: Liron Newman, http://www.eesh.net, + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "מודגש", + "Italic": "נטוי", + "Underline": "קו תחתי", + "Strikethrough": "קו אמצע", + "Subscript": "כתב עילי", + "Superscript": "כתב תחתי", + "Justify Left": " ישור לשמאל", + "Justify Center": "ישור למרכז", + "Justify Right": "ישור לימין", + "Justify Full": "ישור לשורה מלאה", + "Ordered List": "רשימה ממוספרת", + "Bulleted List": "רשימה לא ממוספרת", + "Decrease Indent": "הקטן כניסה", + "Increase Indent": "הגדל כניסה", + "Font Color": "צבע גופן", + "Background Color": "צבע רקע", + "Horizontal Rule": "קו אנכי", + "Insert Web Link": "הכנס היפר-קישור", + "Insert/Modify Image": "הכנס/שנה תמונה", + "Insert Table": "הכנס טבלה", + "Toggle HTML Source": "שנה מצב קוד HTML", + "Enlarge Editor": "הגדל את העורך", + "About this editor": "אודות עורך זה", + "Help using editor": "עזרה לשימוש בעורך", + "Current style": "סגנון נוכחי", + "Undoes your last action": "מבטל את פעולתך האחרונה", + "Redoes your last action": "מבצע מחדש את הפעולה האחרונה שביטלת", + "Cut selection": "גזור בחירה", + "Copy selection": "העתק בחירה", + "Paste from clipboard": "הדבק מהלוח", + "Direction left to right": "כיוון משמאל לימין", + "Direction right to left": "כיוון מימין לשמאל", + "OK": "אישור", + "Cancel": "ביטול", + "Path": "נתיב עיצוב", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "אתה במצב טקסט נקי (קוד). השתמש בכפתור [<>] כדי לחזור למצב WYSIWYG (תצוגת עיצוב).", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "מצב מסך מלא יוצר בעיות בדפדפן Internet Explorer, עקב באגים בדפדפן לא יכולנו לפתור את זה. את/ה עלול/ה לחוות תצוגת זבל, בעיות בתפקוד העורך ו/או קריסה של הדפדפן. אם המערכת שלך היא Windows 9x סביר להניח שתקבל/י ", + "Cancel": "ביטול", + "Insert/Modify Link": "הוסף/שנה קישור", + "New window (_blank)": "חלון חדש (_blank)", + "None (use implicit)": "ללא (השתמש ב-frame הקיים)", + "Other": "אחר", + "Same frame (_self)": "אותו frame (_self)", + "Target:": "יעד:", + "Title (tooltip):": "כותרת (tooltip):", + "Top frame (_top)": "Frame עליון (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "חובה לכתוב URL שאליו קישור זה מצביע" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/hu.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/hu.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/hu.js 3 Jan 2016 20:47:01 -0000 1.1.2.1 @@ -0,0 +1,64 @@ +// I18N constants + +// LANG: "hu", ENCODING: UTF-8 +// Author: Miklós Somogyi, + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Félkövér", + "Italic": "Dőlt", + "Underline": "Aláhúzott", + "Strikethrough": "Áthúzott", + "Subscript": "Alsó index", + "Superscript": "Felső index", + "Justify Left": "Balra zárt", + "Justify Center": "Középre zárt", + "Justify Right": "Jobbra zárt", + "Justify Full": "Sorkizárt", + "Ordered List": "Számozott lista", + "Bulleted List": "Számozatlan lista", + "Decrease Indent": "Behúzás csökkentése", + "Increase Indent": "Behúzás növelése", + "Font Color": "Karakterszín", + "Background Color": "Háttérszín", + "Horizontal Rule": "Elválasztó vonal", + "Insert Web Link": "Hiperhivatkozás beszúrása", + "Insert/Modify Image": "Kép beszúrása", + "Insert Table": "Táblázat beszúrása", + "Toggle HTML Source": "HTML forrás be/ki", + "Enlarge Editor": "Szerkesztő külön ablakban", + "About this editor": "Névjegy", + "Help using editor": "Súgó", + "Current style": "Aktuális stílus", + "Undoes your last action": "Visszavonás", + "Redoes your last action": "Újra végrehajtás", + "Cut selection": "Kivágás", + "Copy selection": "Másolás", + "Paste from clipboard": "Beillesztés", + "Direction left to right": "Irány balról jobbra", + "Direction right to left": "Irány jobbról balra", + "OK": "Rendben", + "Cancel": "Mégsem", + "Path": "Hierarchia", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Forrás mód. Visszaváltás [<>] gomb", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "A teljesképrenyős szerkesztés hibát okozhat Internet Explorer használata esetén, ez a böngésző a hibája, amit nem tudunk kikerülni. Szemetet észlelhet a képrenyőn, illetve néhány funkció hiányozhat és/vagy véletlenszerűen lefagyhat a böngésző. Windows 9x operaciós futtatása esetén elég valószínű, hogy ", + "Cancel": "Mégsem", + "Insert/Modify Link": "Hivatkozás Beszúrása/Módosítása", + "New window (_blank)": "Új ablak (_blank)", + "None (use implicit)": "Nincs (use implicit)", + "Other": "Más", + "Same frame (_self)": "Ugyanabba a keretbe (_self)", + "Target:": "Cél:", + "Title (tooltip):": "Cím (tooltip):", + "Top frame (_top)": "Felső keret (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Be kell írnia az URL-t, ahova a hivatkozás mutasson" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/it.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/it.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/it.js 3 Jan 2016 20:47:01 -0000 1.1.2.1 @@ -0,0 +1,55 @@ +// I18N constants + +// LANG: "it", ENCODING: UTF-8 +// Author: Mattia Landoni, http://www.webpresident.org/ + +{ + "Bold": "Grassetto", + "Italic": "Corsivo", + "Underline": "Sottolineato", + "Strikethrough": "Barrato", + "Subscript": "Pedice", + "Superscript": "Apice", + "Justify Left": "Sinistra", + "Justify Center": "Centrato", + "Justify Right": "Destra", + "Justify Full": "Giustificato", + "Ordered List": "Lista numerata", + "Bulleted List": "Lista non numerata", + "Decrease Indent": "Diminuisci indentazione", + "Increase Indent": "Aumenta indentazione", + "Font Color": "Colore font", + "Background Color": "Colore sfondo", + "Horizontal Rule": "Righello orizzontale", + "Insert Web Link": "Inserisci link", + "Insert/Modify Image": "Inserisci/modifica Immagine", + "Insert Table": "Inserisci tabella", + "Toggle HTML Source": "Visualizza/nascondi sorgente HTML", + "Enlarge Editor": "Allarga editor", + "About this editor": "Informazioni su Xinha", + "Help using editor": "Aiuto", + "Current style": "Stile corrente", + "Undoes your last action": "Annulla ultima azione", + "Redoes your last action": "Ripeti ultima azione", + "Cut selection": "Taglia", + "Copy selection": "Copia", + "Paste from clipboard": "Incolla", + "Direction left to right": "Testo da sx a dx", + "Direction right to left": "Testo da dx a sx", + "OK": "OK", + "Cancel": "Annulla", + "Path": "Percorso", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sei in MODALITA", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "E", + "Cancel": "Annulla", + "Insert/Modify Link": "Inserisci/modifica link", + "New window (_blank)": "Nuova finestra (_blank)", + "None (use implicit)": "Niente (usa implicito)", + "Other": "Altro", + "Same frame (_self)": "Stessa frame (_self)", + "Target:": "Target:", + "Title (tooltip):": "Title (suggerimento):", + "Top frame (_top)": "Pagina intera (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Devi inserire l'indirizzo a cui punta il link" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ja.js 3 Jan 2016 20:47:01 -0000 1.1.2.1 @@ -0,0 +1,175 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8N + +{ + "Bold": "太字", + "Italic": "斜体", + "Underline": "下線", + "Strikethrough": "打ち消し線", + "Subscript": "下付き添え字", + "Superscript": "上付き添え字", + "Justify Left": "左寄せ", + "Justify Center": "中央寄せ", + "Justify Right": "右寄せ", + "Justify Full": "均等割付", + "Ordered List": "番号付き箇条書き", + "Bulleted List": "記号付き箇条書き", + "Decrease Indent": "インデント解除", + "Increase Indent": "インデント設定", + "Font Color": "文字色", + "Background Color": "背景色", + "Horizontal Rule": "水平線", + "Insert Web Link": "リンクの挿入", + "Insert/Modify Image": "画像の挿入/修正", + "Insert Table": "テーブルを挿入", + "Toggle HTML Source": "HTML編集モードを切替", + "Enlarge Editor": "エディタを最大化", + "About this editor": "バージョン情報", + "Help using editor": "ヘルプ", + "Current style": "現在のスタイル", + "Undoes your last action": "元に戻す", + "Redoes your last action": "やり直し", + "Cut selection": "切り取り", + "Copy selection": "コピー", + "Paste from clipboard": "貼り付け", + "Direction left to right": "左から右へ", + "Direction right to left": "右から左へ", + "Remove formatting": "書式削除", + "Select all": "すべて選択", + "Print document": "印刷", + "Clear MSOffice tags": "MSOfficeタグをクリア", + "Clear Inline Font Specifications": "インラインフォント指定をクリア", + "Would you like to clear font typefaces?": "フォント名をクリアしますか?", + "Would you like to clear font sizes?": "サイズをクリアしますか?", + "Would you like to clear font colours?": "色をクリアしますか?", + "Split Block": "領域分割", + "Toggle Borders": "境界線の切替", + "Save as": "名前をつけて保存", + "Insert/Overwrite": "挿入/上書き", + "— format —": "— 書式 —", + "Heading 1": "見出し1", + "Heading 2": "見出し2", + "Heading 3": "見出し3", + "Heading 4": "見出し4", + "Heading 5": "見出し5", + "Heading 6": "見出し6", + "Normal": "標準", + "Address": "アドレス", + "Formatted": "整形済み", + "— font —": "— フォント —", + "— size —": "— サイズ —", + + //dialogs + "OK": "OK", + "Cancel": "中止", + "Path": "パス", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "テキストモードで操作しています。WYSIWYG編集に戻るには[<>]ボタンを使ってください。", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "MozillaベースのWebブラウザでは、貼り付けボタンは機能しません(技術的なセキュリティ上の理由で)。Ctrl+Vキーを押して直接貼り付けてください。", + "Your Document is not well formed. Check JavaScript console for details.": "この文書には構文的な問題があります。詳細はJavaScriptコンソールを参照してください。", + "You need to select some text before creating a link": "リンクを作成するにはテキストを選択する必要があります", + + "Alignment:": "行揃え:", + "Not set": "なし", + "Left": "左", + "Right": "右", + "Texttop": "テキスト上部", + "Absmiddle": "中央(絶対的)", + "Baseline": "ベースライン", + "Absbottom": "下(絶対的)", + "Bottom": "下", + "Middle": "中央", + "Top": "上", + + "Layout": "レイアウト", + "Spacing": "間隔", + "Horizontal:": "水平:", + "Horizontal padding": "水平余白", + "Vertical:": "垂直:", + "Vertical padding": "垂直余白", + "Border thickness:": "境界線の太さ:", + "Leave empty for no border": "境界線がない場合は空のままにする", + + //Insert Link + "Insert/Modify Link": "リンクの挿入/修正", + "None (use implicit)": "なし (デフォルトに任せる)", + "New window (_blank)": "新しいウィンドウ (_blank)", + "Same frame (_self)": "自己フレーム内 (_self)", + "Top frame (_top)": "最上位フレーム (_top)", + "Other": "その他", + "Target:": "ターゲット:", + "Title (tooltip):": "タイトル:", + "URL:": "URL:", + "You must enter the URL where this link points to": "このリンクが指し示すURLを入力してください", + + // Insert Table + "Insert Table": "テーブルの挿入", + "Rows:": "行:", + "Number of rows": "行数", + "Cols:": "列:", + "Number of columns": "列数", + "Width:": "幅:", + "Width of the table": "テーブルの幅", + "Percent": "パーセント(%)", + "Pixels": "ピクセル(px)", + "Em": "相対値(em)", + "Width unit": "幅の単位", + "Fixed width columns": "列の幅を固定", + "Positioning of this table": "このテーブルの配置", + "Cell spacing:": "セル間隔:", + "Space between adjacent cells": "隣接するセル間の距離", + "Cell padding:": "セル余白:", + "Space between content and border in cell": "セル内における内容と境界線との距離", + "You must enter a number of rows": "行数を入力してください", + "You must enter a number of columns": "列数を入力してください", + + // Insert Image + "Insert Image": "画像の挿入", + "Image URL:": "画像URL:", + "Enter the image URL here": "画像のURLをここに入力します", + "Preview": "表示", + "Preview the image in a new window": "ウィンドウで画像を表示", + "Alternate text:": "代替テキスト:", + "For browsers that don't support images": "画像表示をサポートしないブラウザに必要です", + "Positioning of this image": "画像の配置", + "Image Preview:": "画像表示:", + "You must enter the URL": "URLを入力する必要があります", + + //"button_bold": "fr/bold.gif", + //"button_underline": "fr/underline.gif", + //"button_strikethrough": "fr/strikethrough.gif", + + // Editor Help + "Xinha Help": "ヘルプ", + "Editor Help": "エディタのヘルプ", + "Keyboard shortcuts": "キーボードショートカット", + "The editor provides the following key combinations:": "エディタは以下のキー操作を提供しています:", + "ENTER": "ENTER", + "new paragraph": "新規段落", + "SHIFT-ENTER": "SHIFT+ENTER", + "insert linebreak": "段落内改行の挿入", + "Set format to paragraph": "段落書式の設定", + "Clean content pasted from Word": "Wordから貼り付けられた内容の清書", + "Headings": "見出し", + "Close": "閉じる", + + // Loading messages + "Loading in progress. Please wait!": "ロード中です。しばらくお待ちください", + "Loading plugin $plugin" : "ロード中プラグイン $plugin", + "Register plugin $plugin" : "登録中プラグイン $plugin", + "Constructing object": "オブジェクト構築中", + "Generate Xinha framework": "Xinhaフレームワーク生成中", + "Init editor size":"エディタサイズの初期化", + "Create Toolbar": "ツールバーの作成", + "Create Statusbar" : "ステータスバーの作成", + "Register right panel" : "登録 右パネル", + "Register left panel" : "登録 左パネル", + "Register bottom panel" : "登録 下パネル", + "Register top panel" : "登録 上パネル", + "Finishing" : "完了", + + // ColorPicker + "Click a color..." : "色をクリック...", + "Sample" : "サンプル", + "Web Safe: " : "Webセーフ: ", + "Color: " : "色: " +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/lt.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/lt.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/lt.js 3 Jan 2016 20:47:01 -0000 1.1.2.1 @@ -0,0 +1,53 @@ +// I18N constants + +// LANG: "lt", ENCODING: UTF-8 +// Author: Jaroslav Šatkevič, + +{ + "Bold": "Paryškinti", + "Italic": "Kursyvas", + "Underline": "Pabraukti", + "Strikethrough": "Perbraukti", + "Subscript": "Apatinis indeksas", + "Superscript": "Viršutinis indeksas", + "Justify Left": "Lygiavimas pagal kairę", + "Justify Center": "Lygiavimas pagal centrą", + "Justify Right": "Lygiavimas pagal dešinę", + "Justify Full": "Lygiuoti pastraipą", + "Ordered List": "Numeruotas sąrašas", + "Bulleted List": "Suženklintas sąrašas", + "Decrease Indent": "Sumažinti paraštę", + "Increase Indent": "Padidinti paraštę", + "Font Color": "Šrifto spalva", + "Background Color": "Fono spalva", + "Horizontal Rule": "Horizontali linija", + "Insert Web Link": "Įterpti nuorodą", + "Insert/Modify Image": "Įterpti paveiksliuką", + "Insert Table": "Įterpti lentelę", + "Toggle HTML Source": "Perjungti į HTML/WYSIWYG", + "Enlarge Editor": "Išplėstas redagavimo ekranas/Enlarge Editor", + "About this editor": "Apie redaktorių", + "Help using editor": "Pagalba naudojant redaktorių", + "Current style": "Dabartinis stilius", + "Undoes your last action": "Atšaukia paskutini jūsų veiksmą", + "Redoes your last action": "Pakartoja paskutinį atšauktą jūsų veiksmą", + "Cut selection": "Iškirpti", + "Copy selection": "Kopijuoti", + "Paste from clipboard": "Įterpti", + "OK": "OK", + "Cancel": "Atšaukti", + "Path": "Kelias", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jūs esete teksto režime. Naudokite [<>] mygtuką grįžimui į WYSIWYG.", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren", + "Cancel": "Atšaukti", + "Insert/Modify Link": "Idėti/Modifikuoti", + "New window (_blank)": "Naujas langas (_blank)", + "None (use implicit)": "None (use implicit)", + "Other": "Kitas", + "Same frame (_self)": "Same frame (_self)", + "Target:": "Target:", + "Title (tooltip):": "Pavadinimas (tooltip):", + "Top frame (_top)": "Top frame (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Jus privalote nurodyti URL į kuri rodo šitą nuoroda" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/lv.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/lv.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/lv.js 3 Jan 2016 20:47:01 -0000 1.1.2.1 @@ -0,0 +1,42 @@ +// I18N constants + +// LANG: "lv", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +// Translated by: Janis Klavins, + +{ + "Bold": "Trekniem burtiem", + "Italic": "Kurs�v�", + "Underline": "Pasv�trots", + "Strikethrough": "P�rsv�trots", + "Subscript": "Novietot zem rindas", + "Superscript": "Novietot virs rindas", + "Justify Left": "Izl�dzin�t pa kreisi", + "Justify Center": "Izl�dzin�t centr�", + "Justify Right": "Izl�dzin�t pa labi", + "Justify Full": "Izl�dzin�t pa visu lapu", + "Ordered List": "Numur�ts saraksts", + "Bulleted List": "Saraksts", + "Decrease Indent": "Samazin�t atk�pi", + "Increase Indent": "Palielin�t atk�pi", + "Font Color": "Burtu kr�sa", + "Background Color": "Fona kr�sa", + "Horizontal Rule": "Horizont�la atdal�t�jsv�tra", + "Insert Web Link": "Ievietot hipersaiti", + "Insert/Modify Image": "Ievietot att�lu", + "Insert Table": "Ievietot tabulu", + "Toggle HTML Source": "Skat�t HTML kodu", + "Enlarge Editor": "Palielin�t Redi��t�ju", + "About this editor": "Par �o redi��t�ju", + "Help using editor": "Redi��t�ja pal�gs", + "Current style": "Patreiz�jais stils", + "Undoes your last action": "Atcelt p�d�jo darb�bu", + "Redoes your last action": "Atk�rtot p�d�jo darb�bu", + "Cut selection": "Izgriezt iez�m�to", + "Copy selection": "Kop�t iez�m�to", + "Paste from clipboard": "Ievietot iez�m�to", + "OK": "Labi", + "Cancel": "Atcelt", + "Path": "Ce��", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "J�s patlaban darbojaties TEKSTA RE��M�. Lai p�rietu atpaka� uz GRAFISKO RE��MU (WYSIWIG), lietojiet [<>] pogu." +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/nb.js 3 Jan 2016 20:47:02 -0000 1.1.2.1 @@ -0,0 +1,78 @@ +// I18N constants + +// LANG: "nb", ENCODING: UTF-8 + +// - translated by ses +// Additional translations by Håvard Wigtil +// Additional translations by Kim Steinhaug + +{ + "Bold": "Fet", + "Italic": "Kursiv", + "Underline": "Understreket", + "Strikethrough": "Gjennomstreket", + "Subscript": "Nedsenket", + "Superscript": "Opphøyet", + "Justify Left": "Venstrejuster", + "Justify Center": "Midtjuster", + "Justify Right": "Høyrejuster", + "Justify Full": "Blokkjuster", + "Ordered List": "Nummerert liste", + "Bulleted List": "Punktliste", + "Decrease Indent": "Reduser innrykk", + "Increase Indent": "Øke innrykk", + "Font Color": "Tekstfarge", + "Background Color": "Bakgrundsfarge", + "Horizontal Rule": "Vannrett linje", + "Insert Web Link": "Lag lenke", + "Insert/Modify Image": "Sett inn bilde", + "Insert Table": "Sett inn tabell", + "Toggle HTML Source": "Vis kildekode", + "Enlarge Editor": "Vis i eget vindu", + "About this editor": "Om denne editor", + "Help using editor": "Hjelp", + "Current style": "Nåværende stil", + "Undoes your last action": "Angrer siste redigering", + "Redoes your last action": "Gjør om siste angring", + "Cut selection": "Klipp ut område", + "Copy selection": "Kopier område", + "Save as": "Lagre som", + "Paste from clipboard": "Lim inn", + "Remove formatting": "Fjern formattering", + "Direction left to right": "Fra venstre mot høyre", + "Direction right to left": "Fra høyre mot venstre", + "Insert/Overwrite": "Sett inn/Overskriv", + "OK": "OK", + "Cancel": "Avbryt", + "Path": "Tekstvelger", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Du er i tekstmodus Klikk på [<>] for å gå tilbake til WYSIWIG.", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Visning i eget vindu har kjente problemer med Internet Explorer, på grunn av problemer med denne nettleseren. Mulige problemer er et uryddig skjermbilde, manglende editorfunksjoner og/eller at nettleseren crasher. Hvis du bruker Windows 95 eller Windows 98 er det også muligheter for at Windows will crashe.\n\nTrykk ", + "Cancel": "Avbryt", + "Insert/Modify Link": "Rediger lenke", + "New window (_blank)": "Eget vindu (_blank)", + "None (use implicit)": "Ingen (bruk standardinnstilling)", + "Other": "Annen", + "Same frame (_self)": "Samme ramme (_self)", + "Target:": "Mål:", + "Title (tooltip):": "Tittel (tooltip):", + "Top frame (_top)": "Toppramme (_top)", + "URL:": "Adresse:", + "You must enter the URL where this link points to": "Du må skrive inn en adresse som denne lenken skal peke til", + "Clear Inline Font Specifications": "Fjerne inline font spesifikasjoner", + "Would you like to clear font typefaces?": "Ønsker du å fjerne skrifttyper", + "Would you like to clear font sizes?": "Ønsker du å fjerne skrift størrelser", + "Would you like to clear font colours?": "Ønsker du å fjerne farger på skriften", + "Print document": "Skriv ut dokumentet", + "Split Block": "Seperasjonsblokk", + "Toggle Borders": "Skru av/på hjelpelinjer på tabeller", + "Select all": "Merk alt", + // Loading messages + "Loading in progress. Please wait !": "WYSIWYG laster, vennligst vent!", + "Constructing main object": "Vennligst vent", + "Create Toolbar": "Lag verktøylinje", + "Register panel right": "Registrer høyrepanel", + "Register panel left": "Registrer venstrepanel", + "Register panel top": "Registrer toppanel", + "Register panel bottom": "Registrer bunnpanel" + +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/nl.js 3 Jan 2016 20:47:02 -0000 1.1.2.1 @@ -0,0 +1,64 @@ +// I18N constants + +// LANG: "nl", ENCODING: UTF-8 +// Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Vet", + "Italic": "Cursief", + "Underline": "Onderstrepen", + "Strikethrough": "Doorhalen", + "Subscript": "Subscript", + "Superscript": "Superscript", + "Justify Left": "Links uitlijnen", + "Justify Center": "Centreren", + "Justify Right": "Rechts uitlijnen", + "Justify Full": "Uitvullen", + "Ordered List": "Nummering", + "Bulleted List": "Opsommingstekens", + "Decrease Indent": "Inspringing verkleinen", + "Increase Indent": "Inspringing vergroten", + "Font Color": "Tekstkleur", + "Background Color": "Achtergrondkleur", + "Horizontal Rule": "Horizontale lijn", + "Insert Web Link": "Hyperlink invoegen/aanpassen", + "Insert/Modify Image": "Afbeelding invoegen/aanpassen", + "Insert Table": "Tabel invoegen", + "Toggle HTML Source": "HTML broncode", + "Enlarge Editor": "Vergroot Editor", + "About this editor": "Over deze editor", + "Help using editor": "Xinha help", + "Current style": "Huidige stijl", + "Undoes your last action": "Ongedaan maken", + "Redoes your last action": "Herhalen", + "Cut selection": "Knippen", + "Copy selection": "Kopi?ren", + "Paste from clipboard": "Plakken", + "Direction left to right": "Tekstrichting links naar rechts", + "Direction right to left": "Tekstrichting rechts naar links", + "OK": "OK", + "Cancel": "Annuleren", + "Path": "Pad", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Je bent in TEKST-mode. Gebruik de [<>] knop om terug te keren naar WYSIWYG-mode.", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Fullscreen-mode veroorzaakt problemen met Internet Explorer door bugs in de webbrowser die we niet kunnen omzeilen. Hierdoor kunnen de volgende effecten optreden: verknoeide teksten, een verlies aan editor-functionaliteit en/of willekeurig vastlopen van de webbrowser. Als u Windows 95 of 98 gebruikt, is het zeer waarschijnlijk dat u een algemene beschermingsfout (", + "Cancel": "Annuleren", + "Insert/Modify Link": "Hyperlink invoegen/aanpassen", + "New window (_blank)": "Nieuw venster (_blank)", + "None (use implicit)": "Geen", + "Other": "Ander", + "Same frame (_self)": "Zelfde frame (_self)", + "Target:": "Doel:", + "Title (tooltip):": "Titel (tooltip):", + "Top frame (_top)": "Bovenste frame (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Geef de URL in waar de link naar verwijst" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/no.js 3 Jan 2016 20:47:02 -0000 1.1.2.1 @@ -0,0 +1,78 @@ +// I18N constants + +// LANG: "no", ENCODING: UTF-8 + +// - translated by ses +// Additional translations by Håvard Wigtil +// Additional translations by Kim Steinhaug + +{ + "Bold": "Fet", + "Italic": "Kursiv", + "Underline": "Understreket", + "Strikethrough": "Gjennomstreket", + "Subscript": "Nedsenket", + "Superscript": "Opphøyet", + "Justify Left": "Venstrejuster", + "Justify Center": "Midtjuster", + "Justify Right": "Høyrejuster", + "Justify Full": "Blokkjuster", + "Ordered List": "Nummerert liste", + "Bulleted List": "Punktliste", + "Decrease Indent": "Reduser innrykk", + "Increase Indent": "Øke innrykk", + "Font Color": "Tekstfarge", + "Background Color": "Bakgrundsfarge", + "Horizontal Rule": "Vannrett linje", + "Insert Web Link": "Lag lenke", + "Insert/Modify Image": "Sett inn bilde", + "Insert Table": "Sett inn tabell", + "Toggle HTML Source": "Vis kildekode", + "Enlarge Editor": "Vis i eget vindu", + "About this editor": "Om denne editor", + "Help using editor": "Hjelp", + "Current style": "Nåværende stil", + "Undoes your last action": "Angrer siste redigering", + "Redoes your last action": "Gjør om siste angring", + "Cut selection": "Klipp ut område", + "Copy selection": "Kopier område", + "Save as": "Lagre som", + "Paste from clipboard": "Lim inn", + "Remove formatting": "Fjern formattering", + "Direction left to right": "Fra venstre mot høyre", + "Direction right to left": "Fra høyre mot venstre", + "Insert/Overwrite": "Sett inn/Overskriv", + "OK": "OK", + "Cancel": "Avbryt", + "Path": "Tekstvelger", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Du er i tekstmodus Klikk på [<>] for å gå tilbake til WYSIWIG.", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Visning i eget vindu har kjente problemer med Internet Explorer, på grunn av problemer med denne nettleseren. Mulige problemer er et uryddig skjermbilde, manglende editorfunksjoner og/eller at nettleseren crasher. Hvis du bruker Windows 95 eller Windows 98 er det også muligheter for at Windows will crashe.\n\nTrykk ", + "Cancel": "Avbryt", + "Insert/Modify Link": "Rediger lenke", + "New window (_blank)": "Eget vindu (_blank)", + "None (use implicit)": "Ingen (bruk standardinnstilling)", + "Other": "Annen", + "Same frame (_self)": "Samme ramme (_self)", + "Target:": "Mål:", + "Title (tooltip):": "Tittel (tooltip):", + "Top frame (_top)": "Toppramme (_top)", + "URL:": "Adresse:", + "You must enter the URL where this link points to": "Du må skrive inn en adresse som denne lenken skal peke til", + "Clear Inline Font Specifications": "Fjerne inline font spesifikasjoner", + "Would you like to clear font typefaces?": "Ønsker du å fjerne skrifttyper", + "Would you like to clear font sizes?": "Ønsker du å fjerne skrift størrelser", + "Would you like to clear font colours?": "Ønsker du å fjerne farger på skriften", + "Print document": "Skriv ut dokumentet", + "Split Block": "Seperasjonsblokk", + "Toggle Borders": "Skru av/på hjelpelinjer på tabeller", + "Select all": "Merk alt" + // Loading messages + "Loading in progress. Please wait !": "WYSIWYG laster, vennligst vent!", + "Constructing main object": "Vennligst vent", + "Create Toolbar": "Lag verktøylinje", + "Register panel right": "Registrer høyrepanel", + "Register panel left": "Registrer venstrepanel", + "Register panel top": "Registrer toppanel", + "Register panel bottom": "Registrer bunnpanel" + +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/pl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/pl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/pl.js 3 Jan 2016 20:47:02 -0000 1.1.2.1 @@ -0,0 +1,125 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl +{ + "Bold": "Pogrubienie", + "Italic": "Pochylenie", + "Underline": "Podkreślenie", + "Strikethrough": "Przekreślenie", + "Subscript": "Indeks dolny", + "Superscript": "Indeks górny", + "Justify Left": "Wyrównaj do lewej", + "Justify Center": "Wyśrodkuj", + "Justify Right": "Wyrównaj do prawej", + "Justify Full": "Wyjustuj", + "Ordered List": "Numerowanie", + "Bulleted List": "Wypunktowanie", + "Decrease Indent": "Zmniejsz wcięcie", + "Increase Indent": "Zwiększ wcięcie", + "Font Color": "Kolor czcionki", + "Background Color": "Kolor tła", + "Horizontal Rule": "Linia pozioma", + "Insert Web Link": "Wstaw adres sieci Web", + "Insert/Modify Image": "Wstaw obraz", + "Insert Table": "Wstaw tabelę", + "Toggle HTML Source": "Edycja WYSIWYG/w źródle strony", + "Enlarge Editor": "Pełny ekran", + "About this editor": "Informacje o tym edytorze", + "Help using editor": "Pomoc", + "Current style": "Obecny styl", + "Undoes your last action": "Cofa ostatnio wykonane polecenie", + "Redoes your last action": "Ponawia ostatnio wykonane polecenie", + "Cut selection": "Wycina zaznaczenie do schowka", + "Copy selection": "Kopiuje zaznaczenie do schowka", + "Paste from clipboard": "Wkleja zawartość schowka", + "Direction left to right": "Kierunek tekstu lewo-prawo", + "Direction right to left": "Kierunek tekstu prawo-lewo", + "Remove formatting": "Usuń formatowanie", + "Select all": "Zaznacz wszystko", + "Print document": "Drukuj dokument", + "Clear MSOffice tags": "Wyczyść tagi MSOffice", + "Clear Inline Font Specifications": "Wycisz bezpośrednie przypisania czcionek", + "Split Block": "Podziel blok", + "Toggle Borders": "Włącz / wyłącz ramki", + + "— format —": "— Format —", + "Heading 1": "Nagłówek 1", + "Heading 2": "Nagłówek 2", + "Heading 3": "Nagłówek 3", + "Heading 4": "Nagłówek 4", + "Heading 5": "Nagłówek 5", + "Heading 6": "Nagłówek 6", + "Normal": "Normalny", + "Address": "Adres", + "Formatted": "Preformatowany", + + //dialogs + "OK": "OK", + "Cancel": "Anuluj", + "Path": "Ścieżka", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jesteś w TRYBIE TEKSTOWYM. Użyj przycisku [<>], aby przełączyć się na tryb WYSIWYG.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Przycisk Wklej nie działa w przeglądarkach Mozilla z uwagi na ustawienia bezpieczeństwa. Naciśnij CRTL-V, aby wkleić zawartość schowka.", + + "Alignment:": "Wyrównanie:", + "Not set": "Nie ustawione", + "Left": "Do lewej", + "Right": "Do prawej", + "Texttop": "Góra tekstu", + "Absmiddle": "Abs. środek", + "Baseline": "Linia bazowa", + "Absbottom": "Abs. dół", + "Bottom": "Dół", + "Middle": "Środek", + "Top": "Góra", + + "Layout": "Layout", + "Spacing": "Spacjowanie", + "Horizontal:": "Poziome:", + "Horizontal padding": "Wcięcie poziome", + "Vertical:": "Pionowe:", + "Vertical padding": "Wcięcie pionowe", + "Border thickness:": "Grubość obramowania:", + "Leave empty for no border": "Bez ramek - zostaw puste", + + //Insert Link + "Insert/Modify Link": "Wstaw/edytuj odnośnik", + "None (use implicit)": "Brak", + "New window (_blank)": "Nowe okno (_blank)", + "Same frame (_self)": "Ta sama ramka (_self)", + "Top frame (_top)": "Główna ramka (_top)", + "Other": "Inne", + "Target:": "Okno docelowe:", + "Title (tooltip):": "Tytuł (tooltip):", + "URL:": "URL:", + "You must enter the URL where this link points to": "Musisz podać URL, na jaki będzie wskazywał odnośnik", + + // Insert Table + "Insert Table": "Wstaw tabelę", + "Rows:": "Wierszy:", + "Number of rows": "Liczba wierszy", + "Cols:": "Kolumn:", + "Number of columns": "Liczba kolumn", + "Width:": "Szerokość:", + "Width of the table": "Szerokość tabeli", + "Percent": "Procent", + "Pixels": "Pikseli", + "Em": "Em", + "Width unit": "Jednostka", + "Fixed width columns": "Kolumny o stałej szerokości", + "Positioning of this table": "Pozycjonowanie tabeli", + "Cell spacing:": "Odstęp komórek:", + "Space between adjacent cells": "Przestrzeń pomiędzy komórkami", + "Cell padding:": "Wcięcie komórek:", + "Space between content and border in cell": "Przestrzeń między krawędzią a zawartością komórki", + + // Insert Image + "Insert Image": "Wstaw obrazek", + "Image URL:": "URL obrazka:", + "Enter the image URL here": "Podaj URL obrazka", + "Preview": "Podgląd", + "Preview the image in a new window": "Podgląd obrazka w nowym oknie", + "Alternate text:": "Tekst alternatywny:", + "For browsers that don't support images": "Dla przeglądarek, które nie obsługują obrazków", + "Positioning of this image": "Pozycjonowanie obrazka", + "Image Preview:": "Podgląd obrazka:" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/pt_br.js 3 Jan 2016 20:47:02 -0000 1.1.2.1 @@ -0,0 +1,184 @@ +// I18N constants +// +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation +// +// Initial basic work by Alex Piaz +// +// Author: Marcio Barbosa, +// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br +// +// Last revision: 06 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail +// +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt) +{ + "About": "Sobre", + "About Xinha": "Sobre o Xinha", + "Absbottom": "Inferior absoluto", + "Absmiddle": "Meio absoluto", + "Alignment:": "Alinhamento", + "Alternate text:": "Texto alternativo", + "Baseline": "Linha base", + "Bold": "Negrito", + "Border thickness:": "Espessura da borda", + "Bottom": "Botão", + "CTRL-0 (zero)": "CTRL-0 (zero)", + "CTRL-1 .. CTRL-6": "CTRL-1 .. CTRL-6", + "CTRL-A": "CTRL-A", + "CTRL-B": "CTRL-B", + "CTRL-C": "CTRL-C", + "CTRL-E": "CTRL-E", + "CTRL-I": "CTRL-I", + "CTRL-J": "CTRL-J", + "CTRL-L": "CTRL-L", + "CTRL-N": "CTRL-N", + "CTRL-R": "CTRL-R", + "CTRL-S": "CTRL-S", + "CTRL-U": "CTRL-U", + "CTRL-V": "CTRL-V", + "CTRL-X": "CTRL-X", + "CTRL-Y": "CTRL-Y", + "CTRL-Z": "CTRL-Z", + "Cancel": "Cancelar", + "Cell padding:": "Espaçamento interno da célula:", + "Cell spacing:": "Espaçamento da célula:", + "Clean content pasted from Word": "Limpar conteúdo copiado do Word", + "Close": "Fechar", + "Collapse borders:": "Bordas fechadas:", + "Cols:": "Colunas:", + "Constructing object": "Construindo objeto", + "Copy selection": "Copiar seleção", + "Create Statusbar": "Criar barra de informação (statusbar)", + "Create Toolbar": "Criar Barra de Ferramentas", + "Current style": "Estilo Atual", + "Cut selection": "Recortar seleção", + "Developer": "Desenvolvedor", + "ENTER": "ENTRAR", + "Editor Help": "Ajuda do Editor", + "Em": "Em", + "Enter the image URL here": "Entre aqui com a URL da imagem", + "Finishing": "Terminando", + "Fixed width columns": "Colunas com largura fixa", + "For browsers that don't support images": "Para navegadores que não suportam imagens", + "Generate Xinha framework": "Gerar Área de Trabalho do Xinha", + "Headings": "Títulos", + "Horizontal padding": "Espaçamento interno horizontal", + "Horizontal:": "Horizontal:", + "Image Preview:": "Visualização da Imagem:", + "Image URL:": "URL da imagem:", + "Init editor size": "Iniciar tamanho do editor", + "Insert Image": "Inserir Imagem", + "Insert Table": "Inserir Tabela", + "Insert/Modify Link": "Inserir/Modificar Link", + "Italic": "Itálico", + "Justify Center": "Justificar Centralizado", + "Justify Full": "Justificar Completamente", + "Justify Left": "Justificar à Esquerda", + "Justify Right": "Justificar à Direita", + "Keyboard shortcuts": "Atalhos de Teclado", + "Layout": "Esquema", + "Leave empty for no border": "Deixe em branco para não ter bordas", + "Left": "Esquerda", + "License": "Licença", + "Loading in progress. Please wait!": "Carregamento em processo. Por favor, aguarde!", + "Middle": "Meio", + "Name": "Nome", + "New window (_blank)": "Nova janela (_blank)", + "None (use implicit)": "Nenhum (uso implicito)", + "Not set": "Não definido", + "Number of columns": "Número de colunas", + "Number of rows": "Número de linhas", + "OK": "OK", + "Paste from clipboard": "Colar da Área de Transferência", + "Path": "Caminho", + "Percent": "Porcentagem", + "Pixels": "Pixels", + "Plugins": "Plugins", + "Positioning of this image": "Posicionamento desta imagem", + "Positioning of this table": "Posicionamento desta tabela", + "Preview": "Visualização", + "Preview the image in a new window": "Visualizar a imagem em uma nova janela", + "Redoes your last action": "Refazer sua última ação", + "Right": "Direita", + "Rows:": "Linhas:", + "SHIFT-ENTER": "SHIFT-ENTER", + "Same frame (_self)": "Mesmo frame (_self)", + "Select Color": "Selecionar côr", + "Select all": "Selecionar tudo", + "Set format to paragraph": "Definir formato para o parágrafo", + "Space between adjacent cells": "Espaço entre células adjacentes", + "Space between content and border in cell": "Espaço entre conteúdo e borda na célula", + "Spacing": "Espaçamento", + "Sponsored by": "Patrocinado por", + "Strikethrough": "Tachado", + "Target:": "Destino:", + "Texttop": "Texto no topo", + "Thanks": "Agradecimentos", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "O botão Colar não funciona em navegadores baseado no Mozilla (por razões técnicas de segurança). Pressione CTRL-V no seu teclado para colar diretamente.", + "The editor provides the following key combinations:": "Este editor fornece a seguinte combinação de teclas:", + "Title (tooltip):": "Título (tooltip)", + "Top": "Topo", + "Top frame (_top)": "Frame no topo (_top)", + "URL:": "URL:", + "Underline": "Sublinhado", + "Undoes your last action": "Desfazer sua última ação", + "Version": "Versão", + "Vertical padding": "Espaçamento interno vertical", + "Vertical:": "Vertical:", + "Width of the table": "Larguran da tabela", + "Width unit": "Unidade de largura", + "Width:": "Largura:", + "Would you like to clear font colours?": "Deseja limpar as cores de fonte", + "Would you like to clear font sizes?": "Deseja limpar os tamanhos de fonte", + "Would you like to clear font typefaces?": "Deseja limpar os tipos de fonte", + "Xinha Help": "Ajuda do Xinha", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Você está no MODO TEXTO. Use o botão [<>] para mudar para o modo de Visualização (WYSIWYG)", + "Your Document is not well formed. Check JavaScript console for details.": "Seu Documento não está formatado corretamente. Verifique o console do JavaScript para maiores detalhes.", + "insert linebreak": "inserir quebra de linha", + "new paragraph": "novo parágrafo", + + // not find with lc_parse_strings.php + "Subscript": "Subescrito", + "Superscript": "Sobrescrito", + "Direction left to right": "Da esquerda para direita", + "Direction right to left": "Da direita para esquerda", + "Remove formatting": "Remover formatação", + "Select all": "Selecionar tudo", + "Print document": "Imprimir documento", + "Clear MSOffice tags": "Limpar tags do MS Office", + "Clear Inline Font Specifications": "Limpar especificações de fontes inline", + "Split Block": "Dividir Bloco", + "Toggle Borders": "Mudar Bordas", + "Save as": "Salvar como", + "Insert/Overwrite": "Inserir/Sobrescrever", + "— format —": "— formato —", + "Heading 1": "Título 1", + "Heading 2": "Título 2", + "Heading 3": "Título 3", + "Heading 4": "Título 4", + "Heading 5": "Título 5", + "Heading 6": "Título 6", + "Normal": "Normal", + "Address": "Endereço", + "Formatted": "Formatado", + "— font —": "— fonte —", + "— size —": "— tamanho —", + "Ordered List": "Lista Numerada", + "Bulleted List": "Lista Marcadores", + "Decrease Indent": "Diminuir Indentação", + "Increase Indent": "Aumentar Indentação", + "Font Color": "Cor da Fonte", + "Background Color": "Cor do Fundo", + "Horizontal Rule": "Linha Horizontal", + "Insert Web Link": "Inserir Link", + "Insert/Modify Image": "Inserir/Modificar Imagem", + "Insert Table": "Inserir Tabela", + "Toggle HTML Source": "Ver Código-Fonte", + "Enlarge Editor": "Expandir Editor", + "About this editor": "Sobre este editor", + "Help using editor": "Ajuda - Usando o editor" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ro.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ro.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ro.js 3 Jan 2016 20:47:03 -0000 1.1.2.1 @@ -0,0 +1,63 @@ +// I18N constants + +// LANG: "ro", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Îngroşat", + "Italic": "Italic", + "Underline": "Subliniat", + "Strikethrough": "Tăiat", + "Subscript": "Indice jos", + "Superscript": "Indice sus", + "Justify Left": "Aliniere la stânga", + "Justify Center": "Aliniere pe centru", + "Justify Right": "Aliniere la dreapta", + "Justify Full": "Aliniere în ambele părţi", + "Ordered List": "Listă ordonată", + "Bulleted List": "Listă marcată", + "Decrease Indent": "Micşorează alineatul", + "Increase Indent": "Măreşte alineatul", + "Font Color": "Culoarea textului", + "Background Color": "Culoare de fundal", + "Horizontal Rule": "Linie orizontală", + "Insert Web Link": "Inserează/modifică link", + "Insert/Modify Image": "Inserează/modifică imagine", + "Insert Table": "Inserează un tabel", + "Toggle HTML Source": "Sursa HTML / WYSIWYG", + "Enlarge Editor": "Maximizează editorul", + "About this editor": "Despre editor", + "Help using editor": "Documentaţie (devel)", + "Current style": "Stilul curent", + "Undoes your last action": "Anulează ultima acţiune", + "Redoes your last action": "Reface ultima acţiune anulată", + "Cut selection": "Taie în clipboard", + "Copy selection": "Copie în clipboard", + "Paste from clipboard": "Aduce din clipboard", + "Direction left to right": "Direcţia de scriere: stânga - dreapta", + "Direction right to left": "Direcţia de scriere: dreapta - stânga", + "OK": "OK", + "Cancel": "Anulează", + "Path": "Calea", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Eşti în modul TEXT. Apasă butonul [<>] pentru a te întoarce în modul WYSIWYG.", + "Cancel": "Renunţă", + "Insert/Modify Link": "Inserează/modifcă link", + "New window (_blank)": "Fereastră nouă (_blank)", + "None (use implicit)": "Nimic (foloseşte ce-i implicit)", + "Other": "Alt target", + "Same frame (_self)": "Aceeaşi fereastră (_self)", + "Target:": "Ţinta:", + "Title (tooltip):": "Titlul (tooltip):", + "Top frame (_top)": "Fereastra principală (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Trebuie să introduceţi un URL" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ru.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ru.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/ru.js 3 Jan 2016 20:47:03 -0000 1.1.2.1 @@ -0,0 +1,185 @@ +// I18N constants + +// LANG: "ru", ENCODING: UTF-8 +// Author: Yulya Shtyryakova, + +// Some additions by: Alexey Kirpichnikov, +// I took French version as a source of English phrases because French version was the most comprehensive +// (fr.js was the largest file, actually) %) + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Полужирный", + "Italic": "Наклонный", + "Underline": "Подчеркнутый", + "Strikethrough": "Перечеркнутый", + "Subscript": "Нижний индекс", + "Superscript": "Верхний индекс", + "Justify Left": "По левому краю", + "Justify Center": "По центру", + "Justify Right": "По правому краю", + "Justify Full": "По ширине", + "Ordered List": "Нумерованный список", + "Bulleted List": "Маркированный список", + "Decrease Indent": "Уменьшить отступ", + "Increase Indent": "Увеличить отступ", + "Font Color": "Цвет шрифта", + "Background Color": "Цвет фона", + "Horizontal Rule": "Горизонтальный разделитель", + "Insert Web Link": "Вставить гиперссылку", + "Insert/Modify Image": "Вставить изображение", + "Insert Table": "Вставить таблицу", + "Toggle HTML Source": "Показать Html-код", + "Enlarge Editor": "Увеличить редактор", + "About this editor": "О редакторе", + "Help using editor": "Помощь", + "Current style": "Текущий стиль", + "Undoes your last action": "Отменить", + "Redoes your last action": "Повторить", + "Cut selection": "Вырезать", + "Copy selection": "Копировать", + "Paste from clipboard": "Вставить", + "Direction left to right": "Направление слева направо", + "Direction right to left": "Направление справа налево", + "Remove formatting": "Убрать форматирование", + "Select all": "Выделить все", + "Print document": "Печать", + "Clear MSOffice tags": "Удалить разметку MSOffice", + "Clear Inline Font Specifications": "Удалить непосредственное задание шрифтов", + "Would you like to clear font typefaces?": "Удалить типы шрифтов?", + "Would you like to clear font sizes?": "Удалить размеры шрифтов ?", + "Would you like to clear font colours?": "Удалить цвета шрифтов ?", + "Split Block": "Разделить блок", + "Toggle Borders": "Включить/выключить отображение границ", + "Save as": "Сохранить как", + "Insert/Overwrite": "Вставка/замена", + "— format —": "— форматирование —", + "Heading 1": "Заголовок 1", + "Heading 2": "Заголовок 2", + "Heading 3": "Заголовок 3", + "Heading 4": "Заголовок 4", + "Heading 5": "Заголовок 5", + "Heading 6": "Заголовок 6", + "Normal": "Обычный текст", + "Address": "Адрес", + "Formatted": "Отформатированный текст", + + "— font —": "— шрифт —", + "— size —": "— размер —", + + +// Диалоги + + "OK": "OK", + "Cancel": "Отмена", + "Path": "Путь", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Вы в режиме отображения Html-кода. нажмите кнопку [<>], чтобы переключиться в визуальный режим.", + +"The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Кнопка Вставить не работает в браузерах на основе Mozilla (по техническим причинам, связанным с безопасностью). Нажмите Ctrl-V на клавиатуре, чтобы вставить.", + + "Your Document is not well formed. Check JavaScript console for details.": "Ваш документ неправильно сформирован. Посмотрите Консоль JavaScript, чтобы узнать подробности.", + + "Alignment:": "Выравнивание", + "Not set": "Не установлено", + "Left": "По левому краю", + "Right": "По правому краю", + "Texttop": "По верхней границе текста", + "Absmiddle": "По середине текста", + "Baseline": "По нижней границе текста", + "Absbottom": "По нижней границе", + "Bottom": "По нижнему краю", + "Middle": "Посредине", + "Top": "По верхнему краю", + + "Layout": "Расположение", + "Spacing": "Поля", + "Horizontal:": "По горизонтали", + "Horizontal padding": "Горизонтальные поля", + "Vertical:": "По вертикали", + "Vertical padding": "Вертикальные поля", + "Border thickness:": "Толщина рамки", + "Leave empty for no border": "Оставьте пустым, чтобы убрать рамку", + + //Insert Link + "Insert/Modify Link": "Вставка/изменение ссылки", + "None (use implicit)": "По умолчанию", + "New window (_blank)": "Новое окно (_blank)", + "Same frame (_self)": "То же окно (_self)", + "Top frame (_top)": "Родительское окно (_top)", + "Other": "Другое", + "Target:": "Открывать в окне:", + "Title (tooltip):": "Всплывающая подсказка", + "URL:": "URL:", + "You must enter the URL where this link points to": "Вы должны указать URL, на который будет указывать ссылка", + "You need to select some text before creating a link": "Вы должны выделить текст, который будет преобразован в ссылку", + + // Insert Table + "Insert Table": "Вставка таблицы", + "Rows:": "Строки", + "Number of rows": "Количество строк", + "Cols:": "Столбцы", + "Number of columns": "Количество столбцов", + "Width:": "Ширина", + "Width of the table": "Ширина таблицы", + "Percent": "проценты", + "Pixels": "пикселы", + "Em": "em", + "Width unit": "Единицы измерения", + "Fixed width columns": "Столбцы фиксированной ширины", + "Positioning of this table": "Расположение таблицы", + "Cell spacing:": "Расстояние между ячейками", + "Space between adjacent cells": "Расстояние между соседними ячейками", + "Cell padding:": "Поля в ячейках", + "Space between content and border in cell": "Расстояние между границей ячейки и текстом", + "You must enter a number of rows": "Вы должны ввести количество строк", + "You must enter a number of columns": "Вы должны ввести количество столбцов", + + // Insert Image + "Insert Image": "Вставка изображения", + "Image URL:": "URL изображения", + "Enter the image URL here": "Вставьте адрес изображения", + "Preview": "Предварительный просмотр", + "Preview the image in a new window": "Предварительный просмотр в отдельном окне", + "Alternate text:": "Альтернативный текст", + "For browsers that don't support images": "Для браузеров, которые не отображают картинки", + "Positioning of this image": "Расположение изображения", + "Image Preview:": "Предварительный просмотр", + "You must enter the URL": "Вы должны ввести URL", + + // Editor Help + "Xinha Help": "Помощь", + "Editor Help": "Помощь", + "Keyboard shortcuts": "Горячие клавиши", + "The editor provides the following key combinations:": "Редактор поддерживает следующие комбинации клавиш:", + "ENTER": "ENTER", + "new paragraph": "новый абзац", + "SHIFT-ENTER": "SHIFT+ENTER", + "insert linebreak": "перенос строки", + "Set format to paragraph": "Отформатировать абзац", + "Clean content pasted from Word": "Очистить текст, вставленный из Word", + "Headings": "Заголовки", + "Close": "Закрыть", + + // Loading messages + "Loading in progress. Please wait !": "Загрузка... Пожалуйста, подождите.", + "Constructing main object": "Создание главного объекта", + "Constructing object": "Создание объекта", + "Register panel right": "Регистрация правой панели", + "Register panel left": "Регистрация левой панели", + "Register panel top": "Регистрация верхней панели", + "Register panel bottom": "Регистрация нижней панели", + "Create Toolbar": "Создание панели инструментов", + "Create StatusBar": "Создание панели состояния", + "Generate Xinha object": "Создание объекта Xinha", + "Init editor size": "Инициализация размера редактора", + "Init IFrame": "инициализация iframe", + "Register plugin $plugin": "Регистрация $plugin" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/se.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/se.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/se.js 3 Jan 2016 20:47:03 -0000 1.1.2.1 @@ -0,0 +1,32 @@ +// LANG: "se", ENCODING: UTF-8 + +// Swedish version for htmlArea v3.0 - Alpha Release +// - translated by pat + +{ + "Bold": "Fet", + "Italic": "Kursiv", + "Underline": "Understruken", + "Strikethrough": "Genomstruken", + "Subscript": "Nedsänkt", + "Superscript": "Upphöjd", + "Justify Left": "Vänsterjustera", + "Justify Center": "Centrera", + "Justify Right": "Högerjustera", + "Justify Full": "Marginaljustera", + "Ordered List": "Numrerad lista", + "Bulleted List": "Punktlista", + "Decrease Indent": "Minska indrag", + "Increase Indent": "Öka indrag", + "Font Color": "Textfärg", + "Background Color": "Bakgrundsfärg", + "Horizontal Rule": "Vågrät linje", + "Insert Web Link": "Infoga länk", + "Insert/Modify Image": "Infoga bild", + "Insert Table": "Infoga tabell", + "Toggle HTML Source": "Visa källkod", + "Enlarge Editor": "Visa i eget fönster", + "About this editor": "Om denna editor", + "Help using editor": "Hjälp", + "Current style": "Nuvarande stil" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sh.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sh.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sh.js 3 Jan 2016 20:47:03 -0000 1.1.2.1 @@ -0,0 +1,140 @@ +// I18N constants + +// LANG: "sh", ENCODING: UTF-8 | ISO-8859-2 +// Author: Ljuba Ranković, http://www.rankovic.net/ljubar + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Masno", + "Italic": "Kurziv", + "Underline": "Podvučeno", + "Strikethrough": "Precrtano", + "Subscript": "Indeks-tekst", + "Superscript": "Eksponent-tekst", + "Justify Left":"Ravnanje ulevo", + "Justify Center": "Ravnanje po simetrali", + "Justify Right": "Ravnanje udesno", + "Justify Full": "Puno ravnanje", + "Ordered List": "Lista sa rednim brojevima", + "Bulleted List": "Lista sa simbolima", + "Decrease Indent": "smanji uvlačenje", + "Increase Indent": "Povećaj uvlačenje", + "Font Color": "Boja slova", + "Background Color": "Boja pozadine", + "Horizontal Rule": "Horizontalna linija", + "Insert Web Link": "Dodaj web link", + "Insert/Modify Image": "Dodaj/promeni sliku", + "Insert Table": "Ubaci tabelu", + "Toggle HTML Source": "Prebaci na HTML kod", + "Enlarge Editor": "Povećaj editor", + "About this editor": "O ovom editoru", + "Help using editor": "Pomoć pri korišćenju editora", + "Current style": "Važeći stil", + "Undoes your last action": "Poništava poslednju radnju", + "Redoes your last action": "Vraća poslednju radnju", + "Cut selection": "Iseci izabrano", + "Copy selection": "Kopiraj izabrano", + "Paste from clipboard": "Zalepi iz klipborda", + "Direction left to right": "Pravac s leva na desno", + "Direction right to left": "Pravac s desna na levo", + "Remove formatting": "Ukoni formatiranje", + "Select all": "Izaberi sve", + "Print document": "Štampaj dokument", + "Clear MSOffice tags": "Obriši MSOffice tagove", + "Clear Inline Font Specifications": "Obriši dodeljene osobine fonta", + "Split Block": "Podeli blok", + "Toggle Borders": "Izmeni okvire", + + "— format —": "— Format —", + "Heading 1": "Zaglavlje 1", + "Heading 2": "Zaglavlje 2", + "Heading 3": "Zaglavlje 3", + "Heading 4": "Zaglavlje 4", + "Heading 5": "Zaglavlje 5", + "Heading 6": "Zaglavlje 6", + "Normal": "Običan", + "Address": "Adresa", + "Formatted": "Formatiran", + + // dialogs + "OK": "OK", + "Cancel": "Poništi", + "Path": "Putanja", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Nalazite se u TEXT režimu. Koristite [<>] dugme za povratak na WYSIWYG.", + + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "", + + "Alignment:": "Ravnanje", + "Not set": "Nije postavljeno", + "Left": "Levo", + "Right": "Desno", + "Texttop": "Vrh teksta", + "Absmiddle": "Apsolutna sredina", + "Baseline": "Donja linija", + "Absbottom": "Apsolutno dno", + "Bottom": "Dno", + "Middle": "Sredina", + "Top": "Vrh", + + "Layout": "Prelom", + "Spacing": "Razmak", + "Horizontal:": "Po horizontali", + "Horizontal padding": "Horizontalno odstojanje", + "Vertical:": "Po vertikali", + "Vertical padding": "Vertikalno odstojanje", + "Border thickness:": "Debljina okvira", + "Leave empty for no border": "Ostavi prazno kad nema okvira", + + // Insert Link + "Insert/Modify Link": "Dodaj/promeni Link", + "None (use implicit)": "koristi podrazumevano", + "New window (_blank)": "Novom prozoru (_blank)", + "Same frame (_self)": "Isti frejm (_self)", + "Top frame (_top)": "Glavni frejm (_top)", + "Other": "Drugo", + "Target:": "Otvori u:", + "Title (tooltip):": "Naziv (tooltip):", + "URL:": "URL:", + "You must enter the URL where this link points to": "Morate uneti URL na koji vodi ovaj link", + + // Insert Table + "Insert Table": "Ubaci tabelu", + "Rows:": "Redovi", + "Number of rows": "Broj redova", + "Cols:": "Kolone", + "Number of columns": "Broj kolona", + "Width:": "Širina", + "Width of the table": "Širina tabele", + "Percent": "Procenat", + "Pixels": "Pikseli", + "Em": "Em", + "Width unit": "Jedinica širine", + "Fixed width columns": "Fiksirana širina kolona", + "Positioning of this table": "Postavljanje ove tabele", + "Cell spacing:": "Rastojanje ćelija", + "Space between adjacent cells": "Rastojanje naspramnih ćelija", + "Cell padding:": "Unutrašnja odstojanja u ćeliji", + "Space between content and border in cell": "Rastojanje između sadržaja i okvira ćelije", + + // Insert Image + "Insert Image": "Ubaci sliku", + "Image URL:": "URL slike", + "Enter the image URL here": "Unesite URL slike ovde", + "Preview": "Pregled", + "Preview the image in a new window": "Pregledaj sliku u novom prozoru", + "Alternate text:": "Alternativni tekst", + "For browsers that don't support images": "Za pretraživače koji ne podržavaju slike", + "Positioning of this image": "Postavljanje ove slike", + "Image Preview:": "Pregled slike", + + // Select Color popup + "Select Color": "Izaberite boju" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/si.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/si.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/si.js 3 Jan 2016 20:47:03 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants + +// LANG: "si", ENCODING: UTF-8 +// Author: Tomaz Kregar, x_tomo_x@email.si + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Krepko", + "Italic": "Ležeče", + "Underline": "Podčrtano", + "Strikethrough": "Prečrtano", + "Subscript": "Podpisano", + "Superscript": "Nadpisano", + "Justify Left": "Poravnaj levo", + "Justify Center": "Na sredino", + "Justify Right": "Poravnaj desno", + "Justify Full": "Porazdeli vsebino", + "Ordered List": "Oštevilčevanje", + "Bulleted List": "Označevanje", + "Decrease Indent": "Zmanjšaj zamik", + "Increase Indent": "Povečaj zamik", + "Font Color": "Barva pisave", + "Background Color": "Barva ozadja", + "Horizontal Rule": "Vodoravna črta", + "Insert Web Link": "Vstavi hiperpovezavo", + "Insert/Modify Image": "Vstavi sliko", + "Insert Table": "Vstavi tabelo", + "Toggle HTML Source": "Preklopi na HTML kodo", + "Enlarge Editor": "Povečaj urejevalnik", + "About this editor": "Vizitka za urejevalnik", + "Help using editor": "Pomoč za urejevalnik", + "Current style": "Trenutni slog", + "Undoes your last action": "Razveljavi zadnjo akcijo", + "Redoes your last action": "Uveljavi zadnjo akcijo", + "Cut selection": "Izreži", + "Copy selection": "Kopiraj", + "Paste from clipboard": "Prilepi", + "OK": "V redu", + "Cancel": "Prekliči", + "Path": "Pot", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Si v tekstovnem načinu. Uporabi [<>] gumb za prklop nazaj na WYSIWYG." +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sr.js 3 Jan 2016 20:47:04 -0000 1.1.2.1 @@ -0,0 +1,140 @@ +// I18N constants + +// LANG: "sh", ENCODING: UTF-8 | ISO-8859-5 +// Author: Ljuba Ranković, http://www.rankovic.net/ljubar + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "Масно", + "Italic": "Курзив", + "Underline": "Подвучено", + "Strikethrough": "Прецртано", + "Subscript": "Индекс-текст", + "Superscript": "Експонент-текст", + "Justify Left": "Равнање улево", + "Justify Center": "Равнање по симетрали", + "Justify Right": "Равнање удесно", + "Justify Full": "Пуно равнање", + "Ordered List": "Листа са редним бројевима", + "Bulleted List": "Листа са симболима", + "Decrease Indent": "Смањи увлачење", + "Increase Indent": "Повећај увлачење", + "Font Color": "Боја слова", + "Background Color": "Боја позадине", + "Horizontal Rule": "Хоризонтална линија", + "Insert Web Link": "додај веб линк", + "Insert/Modify Image": "додај/промени слику", + "Insert Table": "Убаци табелу", + "Toggle HTML Source": "Пребаци на приказ ХТМЛ кода", + "Enlarge Editor": "Повећај едитор", + "About this editor": "О овом едитору", + "Help using editor": "Помоћ при коришћењу едитора", + "Current style": "Важећи стил", + "Undoes your last action": "Поништава последњу радњу", + "Redoes your last action": "Враћа последњу радњу", + "Cut selection": "Исеци изабрано", + "Copy selection": "Копирај изабрано", + "Paste from clipboard": "Залепи из клипборда", + "Direction left to right": "Правац с лева на десно", + "Direction right to left": "Правац с десна на лево", + "Remove formatting": "Уклони форматирање", + "Select all": "Изабери све", + "Print document": "Штампај документ", + "Clear MSOffice tags": "Обриши MSOffice тагове", + "Clear Inline Font Specifications": "Обриши примењене особине фонта", + "Split Block": "Подели блок", + "Toggle Borders": "Пребаци оквирне линије", + + "— format —": "— Format —", + "Heading 1": "Заглавље 1", + "Heading 2": "Заглавље 2", + "Heading 3": "Заглавље 3", + "Heading 4": "Заглавље 4", + "Heading 5": "Заглавље 5", + "Heading 6": "Заглавље 6", + "Normal": "обичан", + "Address": "адреса", + "Formatted": "форматиран", + + // dialogs + "OK": "OK", + "Cancel": "Поништи", + "Path": "Путања", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Налазите се у ТЕКСТ режиму. Користите [<>] дугме за повратак на ШВТИД (WYSIWYG).", + + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Дугме 'залепи' не ради у претраживачима породице Mozilla (из разлога сигурности). Притисните CTRL-V на тастатури да директно залепите.", + + "Alignment:": "Равнање", + "Not set": "Није постављено", + "Left": "Лево", + "Right": "Десно", + "Texttop": "Врх текста", + "Absmiddle": "Апсолутна средина", + "Baseline": "Доња линија", + "Absbottom": "Апсолутно дно", + "Bottom": "Дно", + "Middle": "Средина", + "Top": "Врх", + + "Layout": "Прелом", + "Spacing": "Размак", + "Horizontal:": "По хоризонтали", + "Horizontal padding": "Хортизонтално одстојање", + "Vertical:": "По вертикали", + "Vertical padding": "Вертикално одстојање", + "Border thickness:": "Дебљина оквира", + "Leave empty for no border": "Остави празно кад нема оквира", + + // Insert Link + "Insert/Modify Link": "додај/промени линк", + "None (use implicit)": "користи подразумевано", + "New window (_blank)": "Новом прозору (_blank)", + "Same frame (_self)": "Исти фрејм (_self)", + "Top frame (_top)": "Главни фрејм (_top)", + "Other": "Друго", + "Target:": "Отвори у:", + "Title (tooltip):": "Назив (tooltip):", + "URL:": "УРЛ:", + "You must enter the URL where this link points to": "Морате унети УРЛ на који води овај линк", + + // Insert Table + "Insert Table": "Убаци табелу", + "Rows:": "Редови", + "Number of rows": "Број редова", + "Cols:": "Колоне", + "Number of columns": "Број колона", + "Width:": "Ширина", + "Width of the table": "Ширина табеле", + "Percent": "Процената", + "Pixels": "Пиксела", + "Em": "Ем", + "Width unit": "Јединица ширине", + "Fixed width columns": "Фиксирана ширина колоне", + "Positioning of this table": "Постављање ове табеле", + "Cell spacing:": "Размак између ћелија", + "Space between adjacent cells": "Размак између наспрамних ћелија", + "Cell padding:": "Унутрашња одстојања од ивица ћелије", + "Space between content and border in cell": "Растојање између садржаја у ћелији и њеног оквира", + + // Insert Image + "Insert Image": "Убаци слику", + "Image URL:": "УРЛ слике", + "Enter the image URL here": "Унесите УРЛ слике овде", + "Preview": "Преглед", + "Preview the image in a new window": "Прегледај слику у новом прозору", + "Alternate text:": "алтернативни текст", + "For browsers that don't support images": "За претраживаче који не подржавају слике", + "Positioning of this image": "Постављање ове слике", + "Image Preview:": "Преглед слике", + + // Select Color popup + "Select Color": "Изабери боју" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sv.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sv.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/sv.js 3 Jan 2016 20:47:04 -0000 1.1.2.1 @@ -0,0 +1,116 @@ +// I18N constants +// LANG: "sv", ENCODING: UTF-8 + +// Swedish version for htmlArea v3.0 +// Initital translation by pat +// Synced with additional contants in rev. 477 (Mar 2006) by Thomas Loo + +{ + "Bold": "Fet", + "Italic": "Kursiv", + "Underline": "Understruken", + "Strikethrough": "Genomstruken", + "Subscript": "Nedsänkt", + "Superscript": "Upphöjd", + "Justify Left": "Vänsterjustera", + "Justify Center": "Centrera", + "Justify Right": "Högerjustera", + "Justify Full": "Marginaljustera", + "Ordered List": "Numrerad lista", + "Bulleted List": "Punktlista", + "Decrease Indent": "Minska indrag", + "Increase Indent": "Öka indrag", + "Font Color": "Textfärg", + "Background Color": "Bakgrundsfärg", + "Horizontal Rule": "Vågrät linje", + "Insert Web Link": "Infoga länk", + "Insert/Modify Image": "Infoga bild", + "Toggle HTML Source": "Visa källkod", + "Enlarge Editor": "Visa i eget fönster", + "About this editor": "Om denna editor", + "Help using editor": "Hjälp", + "Current style": "Nuvarande stil", + + "Undoes your last action": "Ångra kommando", + "Redoes your last action": "Upprepa kommando", + "Select all": "Markera allt", + "Print document": "Skriv ut", + "Clear MSOffice tags": "Städa bort MS Office taggar", + "Clear Inline Font Specifications": "Rensa inbäddad typsnittsinformation", + "Remove formatting": "Rensa formattering", + "Toggle Borders": "Objektramar", + "Split Block": "Dela block", + "Direction left to right": "Vänster till höger", + "Direction right to left": "Höger till vänster", + + "Insert/Overwrite": "Infoga/Skriv över", + "OK": "OK", + "Cancel": "Avbryt", + "Path": "Objekt", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Du befinner dig i texläge. Klicka på ikonen [<>] ovan för att växla tillbaka till WYSIWIG läge", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Visning i fullskärmsläga fungerar dåligt i din webläsare. Möjliga problem resulterar i en ryckig editor, saknade editorfunktioner och/eller att webläsaren kraschar. Om du använder Windows 95/98 finns också möjligheten att Windows kraschar.\n\nTryck ", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Denna knapp fungerar ej i Mozillabaserad webläsare, använd istället snabbtangenterna CTRL-V på tangentbordet för att klistra in.", + + "Insert/Modify Link": "Redigera länk", + "New window (_blank)": "Nytt fönster (_blank)", + "None (use implicit)": "Ingen (använd standardinställing)", + "Other": "Annan", + "Same frame (_self)": "Samma ram (_self)", + "Target:": "Mål:", + "Title (tooltip):": "Titel (tooltip):", + "Top frame (_top)": "Toppram (_top)", + "URL:": "Sökväg:", + "You must enter the URL where this link points to": "Du måsta ange en adress till vilken länken skall peka på", + "Would you like to clear font typefaces?": "Radera alla typsnittsinformation ?", + "Would you like to clear font sizes?": "Radera alla fontstorlekar ?", + "Would you like to clear font colours?": "Ta bort all textfärger ?", + + "You need to select some text before creating a link": "Du måsta markera ett objekt att applicera länken på!", + + // Insert Table + "Insert Table": "Infoga tabell", + "Rows:": "Rader:", + "Number of rows": "Antal rader", + "Cols:": "Kolumner:", + "Number of columns": "Antal kolumner", + "Width:": "Bredd:", + "Width of the table": "Tabellbredd", + "Percent": "Procent", + "Pixels": "Pixlar", + "Em": "", + "Width unit": "Breddenheter", + "Fixed width columns": "Fixerad bredd", + "Alignment:": "Marginaljustering", + "Positioning of this table": "Tabellposition", + "Border thickness:": "Ramtjocklek", + "Leave empty for no border": "Lämna fältet tomt för att undvika ramar", + "Spacing": "Cellegenskaper", + "Cell spacing:": "Cellmarginaler:", + "Space between adjacent cells": "Utrymme mellan celler", + "Cell padding:": "Cellindrag:", + "Space between content and border in cell": "Utrymme mellan ram och cellinnehåll", + "You must enter a number of rows": "Ange ental rader", + "You must enter a number of columns": "Ange antal kolumner", + + // Editor Help + "Keyboard shortcuts": "Snabbtangenter", + "The editor provides the following key combinations:": "Editorn nyttjar följande kombinationer:", + "new paragraph": "Ny paragraf ", + "insert linebreak": "Infoga radbrytning ", + "Set format to paragraph": "Aktivera paragrafläge", + "Clean content pasted from Word": "Rensa innehåll inklistrat från MS Word", + "Headings": "Skapa standardrubrik", + "Cut selection": "Klipp ut markering", + "Copy selection": "Kopiera markering", + "Paste from clipboard": "Klistra in", + "Close": "Stäng", + + // Loading messages + "Loading in progress. Please wait !": "Editorn laddas. Vänta...", + "Constructing main object": "Skapar huvudobjekt", + "Create Toolbar": "Skapar verktygspanel", + "Register panel right": "Registerar panel höger", + "Register panel left": "Registerar panel vänster", + "Register panel top": "Registerar toppanel", + "Register panel bottom": "Registerar fotpanel" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/th.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/th.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/th.js 3 Jan 2016 20:47:04 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants + +// LANG: "th", ENCODING: UTF-8 +// Author: Suchin Prasongbundit, + +// FOR TRANSLATORS: +// +// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE +// (at least a valid email address) +// +// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; +// (if this is not possible, please include a comment +// that states what encoding is necessary.) + +{ + "Bold": "ตัวหนา", + "Italic": "ตัวเอียง", + "Underline": "ขีดเส้นใต้", + "Strikethrough": "ขีดทับ", + "Subscript": "ตัวห้อย", + "Superscript": "ตัวยก", + "Justify Left": "จัดชิดซ้าย", + "Justify Center": "จัดกึ่งกลาง", + "Justify Right": "จัดชิดขวา", + "Justify Full": "จัดเต็มขอบ", + "Ordered List": "เลขลำดับ", + "Bulleted List": "ลำดับ", + "Decrease Indent": "ลดย่อหน้า", + "Increase Indent": "เพิ่มย่อหน้า", + "Font Color": "สีขอบแบบอักษร", + "Background Color": "สีพื้นหลัง", + "Horizontal Rule": "เส้นกึ่งกลาง", + "Insert Web Link": "ิเพิ่มลิ้งค์", + "Insert/Modify Image": "เพิ่ม/แก้ไขภาพ", + "Insert Table": "เพิ่มตาราง", + "Toggle HTML Source": "สลับการแสดงโค้ด HTML", + "Enlarge Editor": "ขยายให้เต็มจอ", + "About this editor": "เกี่ยวกับโปรแกรมนี้", + "Help using editor": "การใช้งานโปรแกรม", + "Current style": "รูปแบบปัจจุบัน", + "Undoes your last action": "ย้อนกลับ", + "Redoes your last action": "ทำซ้ำ", + "Cut selection": "ตัดส่วนที่เลือก", + "Copy selection": "สำเนาส่วนที่เลือก", + "Paste from clipboard": "วางจากคลิปบอร์ด", + "OK": "ตกลง", + "Cancel": "ยกเลิก", + "Path": "เส้นทาง", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "คุณอยู่ในโหมดธรรมดา กดที่ปุ่ม [<>] เพื่อสลับกลับไปยังโหมดพิมพ์งานแบบเวิร์ด" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/vn.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/vn.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/lang/vn.js 3 Jan 2016 20:47:04 -0000 1.1.2.1 @@ -0,0 +1,56 @@ +// I18N constants : Vietnamese +// LANG: "en", ENCODING: UTF-8 +// Author: Nguyễn Đình Nam, +// Modified 21/07/2004 by Phạm Mai Quân + +{ + "Bold": "Đậm", + "Italic": "Nghiêng", + "Underline": "Gạch Chân", + "Strikethrough": "Gạch Xóa", + "Subscript": "Viết Xuống Dưới", + "Superscript": "Viết Lên Trên", + "Justify Left": "Căn Trái", + "Justify Center": "Căn Giữa", + "Justify Right": "Căn Phải", + "Justify Full": "Căn Đều", + "Ordered List": "Danh Sách Có Thứ Tự (1, 2, 3)", + "Bulleted List": "Danh Sách Phi Thứ Tự (Chấm đầu dòng)", + "Decrease Indent": "Lùi Ra Ngoài", + "Increase Indent": "Thụt Vào Trong", + "Font Color": "Màu Chữ", + "Background Color": "Màu Nền", + "Horizontal Rule": "Dòng Kẻ Ngang", + "Insert Web Link": "Tạo Liên Kết", + "Insert/Modify Image": "Chèn Ảnh", + "Insert Table": "Chèn Bảng", + "Toggle HTML Source": "Chế Độ Mã HTML", + "Enlarge Editor": "Phóng To Ô Soạn Thảo", + "About this editor": "Tự Giới Thiệu", + "Help using editor": "Giúp Đỡ", + "Current style": "Định Dạng Hiện Thời", + "Undoes your last action": "Hủy thao tác trước", + "Redoes your last action": "Lấy lại thao tác vừa bỏ", + "Cut selection": "Cắt", + "Copy selection": "Sao chép", + "Paste from clipboard": "Dán", + "Direction left to right": "Viết từ trái sang phải", + "Direction right to left": "Viết từ phải sang trái", + "OK": "Đồng ý", + "Cancel": "Hủy", + "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Chế độ phóng to ô soạn thảo có thể gây lỗi với Internet Explorer vì một số lỗi của trình duyệt này, vì thế chế độ này có thể sẽ không chạy. Hiển thị không đúng, lộn xộn, không có đầy đủ chức năng, và cũng có thể làm trình duyệt của bạn bị tắt ngang. Nếu bạn đang sử dụng Windows 9x bạn có thể bị báo lỗi ", + "Path": "Đường Dẫn", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Bạn đang ở chế độ text. Sử dụng nút [<>] để chuyển lại chế độ WYSIWIG.", + "Cancel": "Hủy", + "Insert/Modify Link": "Thêm/Chỉnh sửa đường dẫn", + "New window (_blank)": "Cửa sổ mới (_blank)", + "None (use implicit)": "Không (sử dụng implicit)", + "OK": "Đồng ý", + "Other": "Khác", + "Same frame (_self)": "Trên cùng khung (_self)", + "Target:": "Nơi hiện thị:", + "Title (tooltip):": "Tiêu đề (của hướng dẫn):", + "Top frame (_top)": "Khung trên cùng (_top)", + "URL:": "URL:", + "You must enter the URL where this link points to": "Bạn phải điền địa chỉ (URL) mà đường dẫn sẽ liên kết tới" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/AboutBox.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/AboutBox.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/AboutBox.js 3 Jan 2016 20:47:05 -0000 1.1.2.1 @@ -0,0 +1,156 @@ +// Paste Plain Text plugin for Xinha + +// Distributed under the same terms as Xinha itself. +// This notice MUST stay intact for use (see license.txt). +(function(){ +Xinha.plugins.AboutBox = AboutBox; +function AboutBox(editor) { + this.editor = editor; +} + +AboutBox._pluginInfo = { + name : "AboutBox", + developer : "The Xinha Core Developer Team" +}; + +AboutBox.prototype._lc = function(string) { + return Xinha._lc(string, 'AboutBox'); +}; + + +AboutBox.prototype._prepareDialog = function() +{ + var self = this; + var editor = this.editor; + + Xinha.loadStyle ('about.css', 'AboutBox', 'aboutCSS'); +/// Now we have everything we need, so we can build the dialog. + this.dialog = new Xinha.Dialog(editor, AboutBox.html, 'Xinha',{width:600}) + + this.dialog.getElementById('close').onclick = function() { self.dialog.hide()}; + this.dialog.getElementById('xinha_logo').src = _editor_url + 'images/xinha_logo.gif'; + + var tabs = this.dialog.getElementsByClassName('tab'); + this.currentTab = tabs[0]; + tabs.forEach(function(tab){ + //alert (tab); + tab.onclick = function() { + if (self.currentTab) + { + Xinha._removeClass(self.currentTab,'tab-current'); + self.dialog.getElementById(self.currentTab.rel).style.display = 'none'; + } + Xinha._addClass(tab, 'tab-current'); + tab.blur(); + self.currentTab = tab; + self.dialog.getElementById(tab.rel).style.display = 'block'; + } + }) + this.fillPlugins(); + this.fillVersion(); + this.dialog.onresize = function () + { + this.getElementById("content").style.height = + parseInt(this.height,10) // the actual height of the dialog + - this.getElementById('h1').offsetHeight // the title bar + - this.getElementById('buttons').offsetHeight // the buttons + - 100 // we have a padding at the bottom, gotta take this into acount + + 'px'; // don't forget this ;) + + //this.getElementById("content").style.width =(this.width - 2) + 'px'; // and the width + } +}; +AboutBox.prototype.fillPlugins = function() +{ + var e = this.editor; + var tbody = this.dialog.getElementById('plugins_table'); + var tr,td,a; + var j = 0; + for (var i in e.plugins) + { + var info = e.plugins[i]; + tr = document.createElement('tr'); + if (j%2) tr.style.backgroundColor = '#e5e5e5'; + tbody.appendChild(tr); + td = document.createElement('td'); + td.innerHTML = info.name; + if (info.version) td.innerHTML += ' v'+info.version; + tr.appendChild(td); + + td = document.createElement('td'); + if (info.developer) + { + if (info.developer_url) + { + td.innerHTML = ''+info.developer+''; + } + else + { + td.innerHTML = info.developer + } + } + tr.appendChild(td); + + td = document.createElement('td'); + if (info.sponsor) + { + if (info.sponsor_url) + { + td.innerHTML = ''+info.sponsor+''; + } + else + { + td.innerHTML = info.sponsor + } + } + tr.appendChild(td); + + td = document.createElement('td'); + if (info.license) + { + td.innerHTML = info.license; + } + else + { + td.innerHTML = 'htmlArea'; + } + tr.appendChild(td); + j++; + } +} +AboutBox.prototype.fillVersion = function() +{ + var ver = Xinha.version; + this.dialog.getElementById('version').innerHTML = ' ' + + '\nRelease: ' + ver.Release + ' (' + ver.Date + ')' + + '\nHead: ' + ver.Head + + '\nRevision: ' + ver.Revision + + '\nLast Changed By: ' + ver.RevisionBy + + '\n' + + ''; +} +AboutBox.prototype.show = function() +{ + var self = this; + if (!AboutBox.html) + { + if (AboutBox.loading) return; + AboutBox.loading = true; + Xinha._getback(Xinha.getPluginDir("AboutBox") + '/dialog.html', function(getback) { AboutBox.html = getback; self.show()}); + return; + } + if (!this.dialog) this._prepareDialog(); + + // here we can pass values to the dialog + // each property pair consists of the "name" of the input we want to populate, and the value to be set + var inputs = + { + inputArea : '' // we want the textarea always to be empty on showing + } + // now calling the show method of the Xinha.Dialog object to set the values and show the actual dialog + this.dialog.show(inputs); + + // Init the sizes (only if we have set up the custom resize function) + //this.dialog.onresize(); +}; +})() Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/about.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/about.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/about.css 3 Jan 2016 20:47:05 -0000 1.1.2.1 @@ -0,0 +1,51 @@ +.dialog .about.buttons a.tab { + color: #000; + cursor: pointer; + margin-left: -5px; + float: left; position: relative; + border: 1px solid #555; + top: -3px; left: -2px; + padding: 2px 10px 3px 10px; + border-top: none; background-color: #CCC; + -moz-border-radius: 0px 0px 4px 4px; + -webkit-border-radius: 4px; + -webkit-border-top-left-radius:0; + -webkit-border-top-right-radius:0; + + z-index: 0; + text-decoration:none; +} +.dialog .about.buttons a.tab-current +{ + top: -4px; + background-color: #f5f6f6; + padding: 3px 10px 4px 10px; + z-index: 10; +} + +.dialog .about.buttons { + background-color:white; + padding:3px 3px 0 10px; +} + +.dialog .about.content .tab-content { + padding-bottom:15px; + width:95%; +} +.dialog .about.content { + height:300px; + overflow:auto; + background-color:#f5f6f6; +} +.dialog .about.content table.plugins{ + width:95%; + border: 1px solid black; + margin: 1em; +} +.dialog .about.content table.plugins th{ + font-weight: bold; + background-color: #CCC; +} +.dialog .about.content table.plugins td{ + padding:3px; +} \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/dialog.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/dialog.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/AboutBox/dialog.html 3 Jan 2016 20:47:05 -0000 1.1.2.1 @@ -0,0 +1,95 @@ ++
+ +About this editor +++ \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/ColorPicker/ColorPicker.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/ColorPicker/ColorPicker.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/ColorPicker/ColorPicker.js 3 Jan 2016 20:47:05 -0000 1.1.2.1 @@ -0,0 +1,906 @@ + + /** + * Gogo Internet Services Color Picker Javascript Widget + * colorPicker for short. + * + * @author James Sleeman++ + + + ++ A free WYSIWYG editor replacement for + + <textarea> + + fields. +
++ Visit the Xinha Website + for more information. +
++ Use of Xinha is granted by the terms of the htmlArea License (based on BSD license) +
+Copyright (c) 2005-2009 Xinha Developer Team and contributors++ Xinha was originally based on work by Mihai Bazon which is: +
++ Copyright (c) 2003-2004 dynarch.com. + Copyright (c) 2002-2003 interactivetools.com, inc. + This copyright notice MUST stay intact for use. +++ * @date June, 2005 + * + * The colorPicker class provides access to a color map for selecting + * colors which will be passed back to a callback (usually such a callback would + * write the RGB hex value returned into a field, but that's up to you). + * + * The color map presented is a standard rectangular pallate with 0->360 degrees of + * hue on the Y axis and 0->100% saturation on the X axis, the value (brightness) is + * selectable as a vertical column of grey values. Also present is a one row of + * white->grey->black for easy selection of these colors. + * + * A checkbox is presented, which when checked will force the palatte into "web safe" + * mode, only colours in the "web safe palatte" of 216 colors will be shown, the palatte + * is adjusted so that the normal blend of colours are "rounded" to the nearest web safe + * one. It should be noted that "web safe" colours really are a thing of the past, + * not only can pretty much every body display several million colours, but it's actually + * been found that of those 216 web safe colours only 20 to 30 are actually going to be + * displayed equally on the majority of monitors, and those are mostly yellows! + * + * =Usage Example= + * {{{ + * "; + break; + } + return html; +}; + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/GetHtml/TransformInnerHTML.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/GetHtml/TransformInnerHTML.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/GetHtml/TransformInnerHTML.js 3 Jan 2016 20:47:11 -0000 1.1.2.1 @@ -0,0 +1,231 @@ +/** + * Based on XML_Utility functions submitted by troels_kn. + * credit also to adios, who helped with reg exps: + * http://www.sitepoint.com/forums/showthread.php?t=201052 + * + * A replacement for Xinha.getHTML + * + * Features: + * - Generates XHTML code + * - Much faster than Xinha.getHTML + * - Eliminates the hacks to accomodate browser quirks + * - Returns correct code for Flash objects and scripts + * - Formats html in an indented, readable format in html mode + * - Preserves script and pre formatting + * - Preserves formatting in comments + * - Removes contenteditable from body tag in full-page mode + * - Supports only7BitPrintablesInURLs config option + * - Supports htmlRemoveTags config option + */ + +function GetHtmlImplementation(editor) { + this.editor = editor; +} + +GetHtmlImplementation._pluginInfo = { + name : "GetHtmlImplementation TransformInnerHTML", + version : "1.0", + developer : "Nelson Bright", + developer_url : "http://www.brightworkweb.com/", + sponsor : "", + sponsor_url : "", + license : "htmlArea" +}; + +Xinha.RegExpCache = [ +/*00*/ /<\s*\/?([^\s\/>]+)[\s*\/>]/gi,//lowercase tags +/*01*/ /(\s+)_moz[^=>]*=[^\s>]*/gi,//strip _moz attributes +/*02*/ /\s*=\s*(([^'"][^>\s]*)([>\s])|"([^"]+)"|'([^']+)')/g,// find attributes +/*03*/ /\/>/g,//strip singlet terminators +/*04*/ /<(br|hr|img|input|link|meta|param|embed|area)((\s*\S*="[^"]*")*)>/g,//terminate singlet tags +/*05*/ /(<\w+\s+(\w*="[^"]*"\s+)*)(checked|compact|declare|defer|disabled|ismap|multiple|no(href|resize|shade|wrap)|readonly|selected)([\s>])/gi,//expand singlet attributes +/*06*/ /(="[^']*)'([^'"]*")/,//check quote nesting +/*07*/ /&(?=(?!(#[0-9]{2,5};|[a-zA-Z0-9]{2,6};|#x[0-9a-fA-F]{2,4};))[^<]*>)/g,//expand query ampersands not in html entities +/*08*/ /<\s+/g,//strip tagstart whitespace +/*09*/ /\s+(\/)?>/g,//trim whitespace +/*10*/ /\s{2,}/g,//trim extra whitespace +/*11*/ /\s+([^=\s]+)((="[^"]+")|([\s>]))/g,// lowercase attribute names +/*12*/ /\s+contenteditable(=[^>\s\/]*)?/gi,//strip contenteditable +/*13*/ /((href|src)=")([^\s]*)"/g, //find href and src for stripBaseHref() +/*14*/ /<\/?(div|p|h[1-6]|table|tr|td|th|ul|ol|li|dl|dt|dd|blockquote|object|br|hr|img|embed|param|pre|script|html|head|body|meta|link|title|area|input|form|textarea|select|option)[^>]*>/g, +/*15*/ /<\/(div|p|h[1-6]|table|tr|ul|ol|dl|blockquote|html|head|body|script|form|select)( [^>]*)?>/g,//blocklevel closing tag +/*16*/ /<(div|p|h[1-6]|table|tr|ul|ol|dl|blockquote|object|html|head|body|script|form|select)( [^>]*)?>/g,//blocklevel opening tag +/*17*/ /<(td|th|li|dt|dd|option|br|hr|embed|param|pre|meta|link|title|area|input|textarea)[^>]*>/g,//singlet tag or output on 1 line +/*18*/ /(^|<\/(pre|script)>)(\s|[^\s])*?(<(pre|script)[^>]*>|$)/g,//find content NOT inside pre and script tags +/*19*/ /( ]*>)([\s\S])*?(<\/pre>)/g,//find content inside pre tags +/*20*/ /(^|)([\s\S]*?)(?=|$)/g,//find content NOT inside comments +/*21*/ /\S*=""/g, //find empty attributes +/*22*/ /|<\?[\s\S]*?\?>|<\/?\w[^>]*>/g, //find all tags, including comments and php +/*23*/ /(^|<\/script>)[\s\S]*?(');//strip returns added into scripts + return s; +}; + +Xinha.getHTML = function(root, outputRoot, editor) { + var html = ""; + var c = Xinha.RegExpCache; + + if(root.nodeType == 11) {//document fragment + //we can't get innerHTML from the root (type 11) node, so we + //copy all the child nodes into a new div and get innerHTML from the div + var div = document.createElement("div"); + var temp = root.insertBefore(div,root.firstChild); + for (j = temp.nextSibling; j; j = j.nextSibling) { + temp.appendChild(j.cloneNode(true)); + } + html += temp.innerHTML.replace(c[23], function(strn) { //skip content inside script tags + strn = strn.replace(c[22], function(tag){ + if(/^<[!\?]/.test(tag)) return tag; //skip comments and php tags + else return editor.cleanHTML(tag)}); + return strn; + }); + + } else { + + var root_tag = (root.nodeType == 1) ? root.tagName.toLowerCase() : ''; + if (outputRoot) { //only happens with tag in fullpage mode + html += "<" + root_tag; + var attrs = root.attributes; // strangely, this doesn't work in moz + for (i = 0; i < attrs.length; ++i) { + var a = attrs.item(i); + if (!a.specified) { + continue; + } + var name = a.nodeName.toLowerCase(); + var value = a.nodeValue; + html += " " + name + '="' + value + '"'; + } + html += ">"; + } + if(root_tag == "html") { + innerhtml = editor._doc.documentElement.innerHTML; + } else { + innerhtml = root.innerHTML; + } + //pass tags to cleanHTML() one at a time + //includes support for htmlRemoveTags config option + html += innerhtml.replace(c[23], function(strn) { //skip content inside script tags + strn = strn.replace(c[22], function(tag){ + if(/^<[!\?]/.test(tag)) return tag; //skip comments and php tags + else if(!(editor.config.htmlRemoveTags && editor.config.htmlRemoveTags.test(tag.replace(/<([^\s>\/]+)/,'$1')))) + return editor.cleanHTML(tag); + else return ''}); + return strn; + }); + //IE drops all ,, tags in a list except the last one + if(Xinha.is_ie) { + html = html.replace(/<(li|dd|dt)( [^>]*)?>/g,'$1><$1$2>'). + replace(/(<[uod]l[^>]*>[\s\S]*?)<\/(li|dd|dt)>/g, '$1'). + replace(/\s*<\/(li|dd|dt)>(\s*<\/(li|dd|dt)>)+/g, '$1>'). + replace(/(][\s\S]*?)(<\/d[dt]>)+/g, '$1 '); + } + if(Xinha.is_gecko) + html = html.replace(/
\n$/, ''); //strip trailing
added by moz + //Cleanup redundant whitespace before in IE and Mozilla + html = html.replace(/\s*(<\/(li|dd|dt)>)/g, '$1'); + if (outputRoot) { + html += "" + root_tag + ">"; + } + html = Xinha.indent(html); + }; +// html = Xinha.htmlEncode(html); + + return html; +}; + +/** + * Escapes dollar signs ($) to make them safe to use in regex replacement functions by replacing each $ in the input with $$. + * + * This is advisable any time the replacement string for a call to replace() is a variable and could contain dollar signs that should not be interpreted as references to captured groups (e.g., when you want the text "$10" and not the first captured group followed by a 0). + * See http://trac.xinha.org/ticket/1337 + */ +Xinha._escapeDollars = function(str) { + return str.replace(/\$/g, "$$$$"); +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/GetHtml/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/GetHtml/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/GetHtml/lang/pt_br.js 3 Jan 2016 20:47:12 -0000 1.1.2.1 @@ -0,0 +1,18 @@ +// I18N constants +// +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation +// +// Author: Marcio Barbosa,+// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br +// +// Last revision: 06 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail +// +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Your Document is not well formed. Check JavaScript console for details.": "Seu documento não está formatado corretamente. Verifique os detalhes no console do Javascript." +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InlineStyler/InlineStyler.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InlineStyler/InlineStyler.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InlineStyler/InlineStyler.js 3 Jan 2016 20:47:12 -0000 1.1.2.1 @@ -0,0 +1,505 @@ +Xinha.InlineStyler = function(element, editor, dialog, doc) +{ + this.element = element; + this.editor = editor; + this.dialog = dialog; + this.doc = doc ? doc : document; + this.inputs = { + styles : {}, + aux : {} + } + this.styles = {}; + this.auxData = {}; //units and such +} + +Xinha.InlineStyler.getLength = function(value) +{ + var len = parseInt(value); + if (isNaN(len)) + { + len = ""; + } + return len; +}; + +// Applies the style found in "params" to the given element. +Xinha.InlineStyler.prototype.applyStyle = function(params) +{ + var element = this.element; + var style = element.style; + + for (var i in params) + { + if (typeof params[i] == 'function') + continue; + if (params[i] != null) + var val = params[i].value || params[i]; + + switch (i) + { + case "backgroundImage": + if (/\S/.test(val)) + { + style.backgroundImage = "url(" + val + ")"; + } + else + { + style.backgroundImage = "none"; + } + break; + case "borderCollapse": + style.borderCollapse = params[i] == "on" ? "collapse" : "separate"; + break; + case "width": + if (/\S/.test(val)) + { + style.width = val + this.inputs.aux["widthUnit"].value; + } + else + { + style.width = ""; + } + break; + case "height": + if (/\S/.test(val)) + { + style.height = val + this.inputs.aux["heightUnit"].value; + } + else + { + style.height = ""; + } + break; + case "textAlign": + if (val == "char") + { + var ch = this.inputs.aux["textAlignChar"].value; + if (ch == '"') + { + ch = '\\"'; + } + style.textAlign = '"' + ch + '"'; + } + else + if (val == "-") + { + style.textAlign = ""; + } + else + { + style.textAlign = val; + } + break; + case "verticalAlign": + element.vAlign = ""; + if (val == "-") + { + style.verticalAlign = ""; + + } + else + { + style.verticalAlign = val; + } + break; + case "float": + if (Xinha.is_ie) { + style.styleFloat = val; + } + else { + style.cssFloat = val; + } + break; + case "borderWidth": + style[i] = val ? val + "px" : '0px'; + break; + default: + style[i] = val; + break; + // case "f_st_margin": + // style.margin = val + "px"; + // break; + // case "f_st_padding": + // style.padding = val + "px"; + // break; + } + } +}; + +Xinha.InlineStyler.prototype.createStyleLayoutFieldset = function() +{ + var self = this; + var editor = this.editor; + var doc = this.doc; + var el = this.element; + var fieldset = doc.createElement("fieldset"); + var legend = doc.createElement("legend"); + fieldset.appendChild(legend); + legend.innerHTML = Xinha._lc("Layout", "TableOperations"); + var table = doc.createElement("table"); + fieldset.appendChild(table); + table.style.width = "100%"; + var tbody = doc.createElement("tbody"); + table.appendChild(tbody); + + var tagname = el.tagName.toLowerCase(); + var tr, td, input, select, option, options, i; + + if (tagname != "td" && tagname != "tr" && tagname != "th") + { + tr = doc.createElement("tr"); + tbody.appendChild(tr); + td = doc.createElement("td"); + td.className = "label"; + tr.appendChild(td); + td.innerHTML = Xinha._lc("Float", "TableOperations") + ":"; + td = doc.createElement("td"); + tr.appendChild(td); + select = doc.createElement("select"); + select.name = this.dialog.createId("float"); + td.appendChild(select); + this.inputs.styles['float'] = select; + + options = ["None", "Left", "Right"]; + for (var i = 0; i < options.length; ++i) + { + var Val = options[i]; + var val = options[i].toLowerCase(); + option = doc.createElement("option"); + option.innerHTML = Xinha._lc(Val, "TableOperations"); + option.value = val; + if (Xinha.is_ie) { + option.selected = (("" + el.style.styleFloat).toLowerCase() == val); + } + else { + option.selected = (("" + el.style.cssFloat).toLowerCase() == val); + } + select.appendChild(option); + } + } + + tr = doc.createElement("tr"); + tbody.appendChild(tr); + td = doc.createElement("td"); + td.className = "label"; + tr.appendChild(td); + td.innerHTML = Xinha._lc("Width", "TableOperations") + ":"; + td = doc.createElement("td"); + tr.appendChild(td); + input = doc.createElement("input"); + input.name = this.dialog.createId("width"); + input.type = "text"; + input.value = Xinha.InlineStyler.getLength(el.style.width); + input.size = "5"; + this.inputs.styles['width'] = input; + input.style.marginRight = "0.5em"; + td.appendChild(input); + select = doc.createElement("select"); + select.name = this.dialog.createId("widthUnit"); + this.inputs.aux['widthUnit'] = select; + option = doc.createElement("option"); + option.innerHTML = Xinha._lc("percent", "TableOperations"); + option.value = "%"; + option.selected = /%/.test(el.style.width); + select.appendChild(option); + option = doc.createElement("option"); + option.innerHTML = Xinha._lc("pixels", "TableOperations"); + option.value = "px"; + option.selected = /px/.test(el.style.width); + select.appendChild(option); + td.appendChild(select); + + select.style.marginRight = "0.5em"; + td.appendChild(doc.createTextNode(Xinha._lc("Text align", "TableOperations") + ":")); + select = doc.createElement("select"); + select.name = this.dialog.createId("textAlign"); + select.style.marginLeft = select.style.marginRight = "0.5em"; + td.appendChild(select); + this.inputs.styles['textAlign'] = select; + options = ["Left", "Center", "Right", "Justify", "-"]; + if (tagname == "td") + { + options.push("Char"); + } + input = doc.createElement("input"); + this.inputs.aux['textAlignChar'] = input; + input.name= this.dialog.createId("textAlignChar"); + input.size = "1"; + input.style.fontFamily = "monospace"; + td.appendChild(input); + + for (var i = 0; i < options.length; ++i) + { + var Val = options[i]; + var val = Val.toLowerCase(); + option = doc.createElement("option"); + option.value = val; + option.innerHTML = Xinha._lc(Val, "TableOperations"); + option.selected = ((el.style.textAlign.toLowerCase() == val) || (el.style.textAlign == "" && Val == "-")); + select.appendChild(option); + } + var textAlignCharInput = input; + function setCharVisibility(value) + { + textAlignCharInput.style.visibility = value ? "visible" : "hidden"; + if (value) + { + textAlignCharInput.focus(); + textAlignCharInput.select(); + } + } + select.onchange = function() + { + setCharVisibility(this.value == "char"); + }; + setCharVisibility(select.value == "char"); + + tr = doc.createElement("tr"); + tbody.appendChild(tr); + td = doc.createElement("td"); + td.className = "label"; + tr.appendChild(td); + td.innerHTML = Xinha._lc("Height", "TableOperations") + ":"; + td = doc.createElement("td"); + tr.appendChild(td); + input = doc.createElement("input"); + input.name = this.dialog.createId("height"); + input.type = "text"; + input.value = Xinha.InlineStyler.getLength(el.style.height); + input.size = "5"; + this.inputs.styles['height'] = input; + input.style.marginRight = "0.5em"; + td.appendChild(input); + select = doc.createElement("select"); + select.name = this.dialog.createId("heightUnit"); + this.inputs.aux['heightUnit'] = select; + option = doc.createElement("option"); + option.innerHTML = Xinha._lc("percent", "TableOperations"); + option.value = "%"; + option.selected = /%/.test(el.style.height); + select.appendChild(option); + option = doc.createElement("option"); + option.innerHTML = Xinha._lc("pixels", "TableOperations"); + option.value = "px"; + option.selected = /px/.test(el.style.height); + select.appendChild(option); + td.appendChild(select); + + select.style.marginRight = "0.5em"; + td.appendChild(doc.createTextNode(Xinha._lc("Vertical align", "TableOperations") + ":")); + select = doc.createElement("select"); + select.name = this.dialog.createId("verticalAlign"); + this.inputs.styles['verticalAlign'] = select; + select.style.marginLeft = "0.5em"; + td.appendChild(select); + options = ["Top", "Middle", "Bottom", "Baseline", "-"]; + for (var i = 0; i < options.length; ++i) + { + var Val = options[i]; + var val = Val.toLowerCase(); + option = doc.createElement("option"); + option.value = val; + option.innerHTML = Xinha._lc(Val, "TableOperations"); + option.selected = ((el.style.verticalAlign.toLowerCase() == val) || (el.style.verticalAlign == "" && Val == "-")); + select.appendChild(option); + } + + return fieldset; +}; + +// Returns an HTML element containing the style attributes for the given +// element. This can be easily embedded into any dialog; the functionality is +// also provided. +Xinha.InlineStyler.prototype.createStyleFieldset = function() +{ + var editor = this.editor; + var doc = this.doc; + var el = this.element; + + var fieldset = doc.createElement("fieldset"); + var legend = doc.createElement("legend"); + fieldset.appendChild(legend); + legend.innerHTML = Xinha._lc("CSS Style", "TableOperations"); + var table = doc.createElement("table"); + fieldset.appendChild(table); + table.style.width = "100%"; + var tbody = doc.createElement("tbody"); + table.appendChild(tbody); + + var tr, td, input, select, option, options, i; + + tr = doc.createElement("tr"); + tbody.appendChild(tr); + td = doc.createElement("td"); + tr.appendChild(td); + td.className = "label"; + td.innerHTML = Xinha._lc("Background", "TableOperations") + ":"; + td = doc.createElement("td"); + tr.appendChild(td); + + input = doc.createElement("input"); + input.name = this.dialog.createId("backgroundColor"); + input.value = Xinha._colorToRgb( el.style.backgroundColor ); + input.type = "hidden"; + this.inputs.styles['backgroundColor'] = input; + input.style.marginRight = "0.5em"; + td.appendChild(input); + new Xinha.colorPicker.InputBinding(input) + + td.appendChild(doc.createTextNode(" " + Xinha._lc("Image URL", "TableOperations") + ": ")); + input = doc.createElement("input"); + input.name = this.dialog.createId("backgroundImage"); + input.type = "text"; + this.inputs.styles['backgroundImage'] = input; + if (el.style.backgroundImage.match(/url\(\s*(.*?)\s*\)/)) + input.value = RegExp.$1; + // input.style.width = "100%"; + td.appendChild(input); + + tr = doc.createElement("tr"); + tbody.appendChild(tr); + td = doc.createElement("td"); + tr.appendChild(td); + td.className = "label"; + td.innerHTML = Xinha._lc("FG Color", "TableOperations") + ":"; + td = doc.createElement("td"); + tr.appendChild(td); + input = doc.createElement("input"); + input.name = this.dialog.createId("color"); + input.value = Xinha._colorToRgb( el.style.color ); + input.type = "hidden"; + this.inputs.styles['color'] = input; + input.style.marginRight = "0.5em"; + td.appendChild(input); + new Xinha.colorPicker.InputBinding(input) + + // for better alignment we include an invisible field. + input = doc.createElement("input"); + input.style.visibility = "hidden"; + input.type = "text"; + td.appendChild(input); + + tr = doc.createElement("tr"); + tbody.appendChild(tr); + td = doc.createElement("td"); + tr.appendChild(td); + td.className = "label"; + td.innerHTML = Xinha._lc("Border", "TableOperations") + ":"; + td = doc.createElement("td"); + tr.appendChild(td); + input = doc.createElement("input"); + input.name = this.dialog.createId("borderColor"); + input.value = Xinha._colorToRgb( el.style.borderColor ); + input.type = "hidden"; + this.inputs.styles['borderColor'] = input; + input.style.marginRight = "0.5em"; + td.appendChild(input); + new Xinha.colorPicker.InputBinding(input) + + select = doc.createElement("select"); + select.name = this.dialog.createId("borderStyle"); + var borderFields = []; + td.appendChild(select); + this.inputs.styles['borderStyle'] = select; + options = ["none", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]; + var currentBorderStyle = el.style.borderStyle; + // Gecko reports "solid solid solid solid" for "border-style: solid". + // That is, "top right bottom left" -- we only consider the first + // value. + if (currentBorderStyle.match(/([^\s]*)\s/)) currentBorderStyle = RegExp.$1; + for (var i=0;i Insert Image + + +++ + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/insert_image.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/insert_image.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/insert_image.html 3 Jan 2016 20:47:12 -0000 1.1.2.1 @@ -0,0 +1,173 @@ + + + +Image Preview:
+ +Insert Image + + + + + + + + + + +Insert Image+ + + + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/insert_image.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/insert_image.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/insert_image.js 3 Jan 2016 20:47:12 -0000 1.1.2.1 @@ -0,0 +1,109 @@ + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha (is not htmlArea) - http://xinha.org + -- + -- Use of Xinha is granted by the terms of the htmlArea License (based on + -- BSD license) please read license.txt in this package for details. + -- + -- Copyright (c) 2005-2008 Xinha Developer Team and contributors + -- + -- This is the Xinha standard implementation of an image insertion plugin + -- + -- he file is loaded as a special plugin by the Xinha Core when no alternative method (plugin) is loaded. + -- + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/modules/InsertImage/insert_image.js $ + -- $LastChangedDate: 2010-02-18 15:14:45 +1300 (Thu, 18 Feb 2010) $ + -- $LastChangedRevision: 1239 $ + -- $LastChangedBy: gogo $ + --------------------------------------------------------------------------*/ + +InsertImage._pluginInfo = { + name : "InsertImage", + origin : "Xinha Core", + version : "$LastChangedRevision: 1239 $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'), + developer : "The Xinha Core Developer Team", + developer_url : "$HeadURL: http://svn.xinha.webfactional.com/trunk/modules/InsertImage/insert_image.js $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'), + sponsor : "", + sponsor_url : "", + license : "htmlArea" +}; + +function InsertImage(editor) { + this.editor = editor; + var cfg = editor.config; + var self = this; + + + if(typeof editor._insertImage == 'undefined') + { + editor._insertImage = function() { self.show(); }; + // editor.config.btnList.insertimage[3] = function() { self.show(); } + } + } + +InsertImage.prototype._lc = function(string) { + return Xinha._lc(string, 'Xinha'); +}; + +InsertImage.prototype.onGenerateOnce = function() +{ + InsertImage.loadAssets(); +}; + +InsertImage.loadAssets = function() +{ + var self = InsertImage; + if (self.loading) return; + self.loading = true; + Xinha._getback(_editor_url + 'modules/InsertImage/dialog.html', function(getback) { self.html = getback; self.dialogReady = true; }); + Xinha._getback(_editor_url + 'modules/InsertImage/pluginMethods.js', function(getback) { eval(getback); self.methodsReady = true; }); +}; +InsertImage.prototype.onUpdateToolbar = function() +{ + if (!(InsertImage.dialogReady && InsertImage.methodsReady)) + { + this.editor._toolbarObjects.insertimage.state("enabled", false); + } + else this.onUpdateToolbar = null; +}; + +InsertImage.prototype.prepareDialog = function() +{ + var self = this; + var editor = this.editor; + + var dialog = this.dialog = new Xinha.Dialog(editor, InsertImage.html, 'Xinha',{width:410}) + // Connect the OK and Cancel buttons + dialog.getElementById('ok').onclick = function() {self.apply();} + + dialog.getElementById('cancel').onclick = function() { self.dialog.hide()}; + + dialog.getElementById('preview').onclick = function() { + var f_url = dialog.getElementById("f_url"); + var url = f_url.value; + + if (!url) { + alert(dialog._lc("You must enter the URL")); + f_url.focus(); + return false; + } + dialog.getElementById('ipreview').src = url; + return false; + } + this.dialog.onresize = function () + { + var newHeightForPreview = + parseInt(this.height,10) + - this.getElementById('h1').offsetHeight + - this.getElementById('buttons').offsetHeight + - this.getElementById('inputs').offsetHeight + - parseInt(this.rootElem.style.paddingBottom,10); // we have a padding at the bottom, gotta take this into acount + + + this.getElementById("ipreview").style.height = ((newHeightForPreview > 0) ? newHeightForPreview : 0) + "px"; // no-go beyond 0 + + this.getElementById("ipreview").style.width = this.width - 2 + 'px'; // and the width + + } + this.dialogReady = true; +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/pluginMethods.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/pluginMethods.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertImage/pluginMethods.js 3 Jan 2016 20:47:12 -0000 1.1.2.1 @@ -0,0 +1,152 @@ +InsertImage.prototype.show = function(image) +{ + if (!this.dialog) this.prepareDialog(); + + var editor = this.editor; + if ( typeof image == "undefined" ) + { + image = editor.getParentElement(); + if ( image && image.tagName.toLowerCase() != 'img' ) + { + image = null; + } + } + + if ( image ) + { + function getSpecifiedAttribute(element,attribute) + { + var a = element.attributes; + for (var i=0;iInsert Table + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/insert_table.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/insert_table.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/insert_table.html 3 Jan 2016 20:47:13 -0000 1.1.2.1 @@ -0,0 +1,157 @@ + + + +Insert Table + + + + + + + + + + +Insert Table+ + + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/insert_table.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/insert_table.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/insert_table.js 3 Jan 2016 20:47:13 -0000 1.1.2.1 @@ -0,0 +1,94 @@ + + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha (is not htmlArea) - http://xinha.org + -- + -- Use of Xinha is granted by the terms of the htmlArea License (based on + -- BSD license) please read license.txt in this package for details. + -- + -- Copyright (c) 2005-2008 Xinha Developer Team and contributors + -- + -- Xinha was originally based on work by Mihai Bazon which is: + -- Copyright (c) 2003-2004 dynarch.com. + -- Copyright (c) 2002-2003 interactivetools.com, inc. + -- This copyright notice MUST stay intact for use. + -- + -- This is the Xinha standard implementation of a table insertion plugin + -- + -- The file is loaded by the Xinha Core when no alternative method (plugin) is loaded. + -- + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/modules/InsertTable/insert_table.js $ + -- $LastChangedDate: 2010-11-17 17:08:18 +1300 (Wed, 17 Nov 2010) $ + -- $LastChangedRevision: 1272 $ + -- $LastChangedBy: ejucovy $ + --------------------------------------------------------------------------*/ +InsertTable._pluginInfo = { + name : "InsertTable", + origin : "Xinha Core", + version : "$LastChangedRevision: 1272 $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'), + developer : "The Xinha Core Developer Team", + developer_url : "$HeadURL: http://svn.xinha.webfactional.com/trunk/modules/InsertTable/insert_table.js $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'), + sponsor : "", + sponsor_url : "", + license : "htmlArea" +}; + +function InsertTable(editor) { + this.editor = editor; + var cfg = editor.config; + var self = this; + + if(typeof editor._insertTable == 'undefined') { + editor._insertTable = function() { + self.show(); + } + } +} + +InsertTable.prototype._lc = function(string) { + return Xinha._lc(string, 'Xinha'); +}; + + +InsertTable.prototype.onGenerateOnce = function() +{ + InsertTable.loadAssets(); +}; +InsertTable.loadAssets = function() +{ + var self = InsertTable; + if (self.loading) return; + self.loading = true; + Xinha._getback(_editor_url + 'modules/InsertTable/dialog.html', function(getback) { self.html = getback; self.dialogReady = true; }); + Xinha._getback(_editor_url + 'modules/InsertTable/pluginMethods.js', function(getback) { eval(getback); self.methodsReady = true; }); +}; + +InsertTable.prototype.onUpdateToolbar = function() +{ + if (!(InsertTable.dialogReady && InsertTable.methodsReady)) + { + this.editor._toolbarObjects.inserttable.state("enabled", false); + } + else this.onUpdateToolbar = null; +}; + +InsertTable.prototype.prepareDialog = function() +{ + var self = this; + var editor = this.editor; + + var dialog = this.dialog = new Xinha.Dialog(editor, InsertTable.html, 'Xinha',{width:400}) + // Connect the OK and Cancel buttons + dialog.getElementById('ok').onclick = function() {self.apply();} + dialog.getElementById('cancel').onclick = function() { self.dialog.hide()}; + + this.borderColorPicker = new Xinha.colorPicker.InputBinding(dialog.getElementById('border_color')); + + this.dialog.onresize = function () + { + this.getElementById("layout_fieldset").style.width =(this.width / 2) + 50 + 'px'; + this.getElementById("spacing_fieldset").style.width =(this.width / 2) - 120 + 'px'; + } + + this.dialogReady = true; +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/pluginMethods.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/pluginMethods.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InsertTable/pluginMethods.js 3 Jan 2016 20:47:13 -0000 1.1.2.1 @@ -0,0 +1,118 @@ +InsertTable.prototype.show = function(image) +{ + if (!this.dialog) this.prepareDialog(); + + var editor = this.editor; + + var values = + { + "caption" : '', + "rows" : '2', + "cols" : '4', + "width" : '100', + "unit" : '%', + "fixed" : '', + "align" : '', + "border" : '1', + "border_style" : 'dotted', + "border_color" : '#000000', + "border_collapse" : 'on', + "spacing" : '', + "padding" : '5' + } + // update the color of the picker manually + this.borderColorPicker.setColor('#000000'); + // now calling the show method of the Xinha.Dialog object to set the values and show the actual dialog + this.dialog.show(values); + this.dialog.onresize(); +}; + +InsertTable.prototype.apply = function() +{ + var editor = this.editor; + var doc = editor._doc; + var param = this.dialog.getValues(); + + if (!param.rows || !param.cols) + { + if (!param.rows) + { + this.dialog.getElementById("rows_alert").style.display = ''; + } + if (!param.cols) + { + this.dialog.getElementById("columns_alert").style.display = ''; + } + return; + } + // selection is only restored on dialog.hide() + this.dialog.hide(); + // create the table element + var table = doc.createElement("table"); + // assign the given arguments + + for ( var field in param ) + { + var value = param[field]; + if ( !value ) + { + continue; + } + switch (field) + { + case "width": + table.style.width = value + param.unit.value; + break; + case "align": + table.align = value.value; + break; + case "border": + table.style.border = value + 'px ' + param.border_style.value + ' ' + param.border_color; + break; + case "border_collapse": + table.style.borderCollapse = (value == 'on') ? 'collapse' : '' ; + break; + case "spacing": + table.cellSpacing = parseInt(value, 10); + break; + case "padding": + table.cellPadding = parseInt(value, 10); + break; + } + } + if (param.caption) + { + var caption = table.createCaption(); + caption.appendChild(doc.createTextNode(param.caption)); + } + var cellwidth = 0; + if ( param.fixed ) + { + cellwidth = Math.floor(100 / parseInt(param.cols, 10)); + } + var tbody = doc.createElement("tbody"); + table.appendChild(tbody); + for ( var i = 0; i < param.rows; ++i ) + { + var tr = doc.createElement("tr"); + tbody.appendChild(tr); + for ( var j = 0; j < param.cols; ++j ) + { + var td = doc.createElement("td"); + // @todo : check if this line doesnt stop us to use pixel width in cells + if (cellwidth && i===0) + { + td.style.width = cellwidth + "%"; + } + if (param.border) + { + td.style.border = param.border + 'px ' + param.border_style.value + ' ' + param.border_color; + } + tr.appendChild(td); + // Browsers like to see something inside the cell ( ). + td.appendChild(doc.createTextNode('\u00a0')); + } + } + // insert the table + editor.insertNodeAtSelection(table); +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InternetExplorer/InternetExplorer.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InternetExplorer/InternetExplorer.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/modules/InternetExplorer/InternetExplorer.js 3 Jan 2016 20:47:13 -0000 1.1.2.1 @@ -0,0 +1,935 @@ + + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha (is not htmlArea) - http://xinha.gogo.co.nz/ + -- + -- Use of Xinha is granted by the terms of the htmlArea License (based on + -- BSD license) please read license.txt in this package for details. + -- + -- Xinha was originally based on work by Mihai Bazon which is: + -- Copyright (c) 2003-2004 dynarch.com. + -- Copyright (c) 2002-2003 interactivetools.com, inc. + -- This copyright notice MUST stay intact for use. + -- + -- This is the Internet Explorer compatability plugin, part of the + -- Xinha core. + -- + -- The file is loaded as a special plugin by the Xinha Core when + -- Xinha is being run under an Internet Explorer based browser. + -- + -- It provides implementation and specialisation for various methods + -- in the core where different approaches per browser are required. + -- + -- Design Notes:: + -- Most methods here will simply be overriding Xinha.prototype.+ -- and should be called that, but methods specific to IE should + -- be a part of the InternetExplorer.prototype, we won't trample on + -- namespace that way. + -- + -- $HeadURL: http://svn.xinha.webfactional.com/trunk/modules/InternetExplorer/InternetExplorer.js $ + -- $LastChangedDate: 2010-05-12 00:31:04 +1200 (Wed, 12 May 2010) $ + -- $LastChangedRevision: 1260 $ + -- $LastChangedBy: gogo $ + --------------------------------------------------------------------------*/ + +InternetExplorer._pluginInfo = { + name : "Internet Explorer", + origin : "Xinha Core", + version : "$LastChangedRevision: 1260 $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'), + developer : "The Xinha Core Developer Team", + developer_url : "$HeadURL: http://svn.xinha.webfactional.com/trunk/modules/InternetExplorer/InternetExplorer.js $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'), + sponsor : "", + sponsor_url : "", + license : "htmlArea" +}; + +function InternetExplorer(editor) { + this.editor = editor; + editor.InternetExplorer = this; // So we can do my_editor.InternetExplorer.doSomethingIESpecific(); +} + +/** Allow Internet Explorer to handle some key events in a special way. + */ + +InternetExplorer.prototype.onKeyPress = function(ev) +{ + // Shortcuts + if(this.editor.isShortCut(ev)) + { + switch(this.editor.getKey(ev).toLowerCase()) + { + case 'n': + { + this.editor.execCommand('formatblock', false, ' '); + Xinha._stopEvent(ev); + return true; + } + break; + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + { + this.editor.execCommand('formatblock', false, '
'); + Xinha._stopEvent(ev); + return true; + } + break; + } + } + + switch(ev.keyCode) + { + case 8: // KEY backspace + case 46: // KEY delete + { + if(this.handleBackspace()) + { + Xinha._stopEvent(ev); + return true; + } + } + break; + + case 9: // KEY tab, see ticket #1121 + { + Xinha._stopEvent(ev); + return true; + } + + } + + return false; +} + +/** When backspace is hit, the IE onKeyPress will execute this method. + * It preserves links when you backspace over them and apparently + * deletes control elements (tables, images, form fields) in a better + * way. + * + * @returns true|false True when backspace has been handled specially + * false otherwise (should pass through). + */ + +InternetExplorer.prototype.handleBackspace = function() +{ + var editor = this.editor; + var sel = editor.getSelection(); + if ( sel.type == 'Control' ) + { + var elm = editor.activeElement(sel); + Xinha.removeFromParent(elm); + return true; + } + + // This bit of code preseves links when you backspace over the + // endpoint of the link in IE. Without it, if you have something like + // link_here | + // where | is the cursor, and backspace over the last e, then the link + // will de-link, which is a bit tedious + var range = editor.createRange(sel); + var r2 = range.duplicate(); + r2.moveStart("character", -1); + var a = r2.parentElement(); + // @fixme: why using again a regex to test a single string ??? + if ( a != range.parentElement() && ( /^a$/i.test(a.tagName) ) ) + { + r2.collapse(true); + r2.moveEnd("character", 1); + r2.pasteHTML(''); + r2.select(); + return true; + } +}; + +InternetExplorer.prototype.inwardHtml = function(html) +{ + // Both IE and Gecko use strike internally instead of del (#523) + // Xinha will present del externally (see Xinha.prototype.outwardHtml + html = html.replace(/<(\/?)del(\s|>|\/)/ig, "<$1strike$2"); + // ie eats scripts and comments at beginning of page, so + // make sure there is something before the first script on the page + html = html.replace(/( + + + + + + Abbreviation+ + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/background-image.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/background-image.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/background-image.js 3 Jan 2016 20:47:17 -0000 1.1.2.1 @@ -0,0 +1,31 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/BackgroundImage/background-image.js */ +function BackgroundImage(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"bgImage",tooltip:this._lc("Set page background image"),image:_1.imgURL("ed_bgimage.gif","BackgroundImage"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("bgImage","inserthorizontalrule",1); +} +BackgroundImage._pluginInfo={name:"BackgroundImage",version:"1.0",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de/",c_owner:"Udo Schmal & Schaffrath NeueMedien",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de.de/",license:"htmlArea"}; +BackgroundImage.prototype._lc=function(_5){ +return Xinha._lc(_5,"BackgroundImage"); +}; +BackgroundImage.prototype.buttonPress=function(_6){ +_6._popupDialog("plugin://BackgroundImage/bgimage",function(_7){ +if(_7){ +if(Xinha.is_ie){ +_6.focusEditor(); +} +if(_7=="*"){ +_6._doc.body.background=""; +}else{ +_6._doc.body.background=_7; +} +} +},null); +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/blufur.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/blufur.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/palecnvs.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/palecnvs.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/ppplcnvs.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/ppplcnvs.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/ylwsand.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/ylwsand.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/blufur.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/blufur.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/palecnvs.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/palecnvs.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/ppplcnvs.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/ppplcnvs.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/ylwsand.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/backgrounds/thumbnails/ylwsand.jpg,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/img/ed_bgimage.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/img/ed_bgimage.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/de.js 3 Jan 2016 20:47:18 -0000 1.1.2.1 @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Set page background image": "Seiten-Hintergrundbild setzen", + "Set Page Background Image": "Seiten-Hintergrundbild setzen", + "Remove Current Background": "Aktuellen Hintergrund entfernen", + "Cancel": "Abbrechen" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/fr.js 3 Jan 2016 20:47:19 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Set page background image": "Définir l'image de fond", + "Set Page Background Image": "Définir l'Image de Fond", + "Remove Current Background": "Supprimer le fond actuel", + "Cancel": "Annuler" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/ja.js 3 Jan 2016 20:47:19 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Set page background image": "ページの背景画像を設定", + "Set Page Background Image": "ページの背景画像を設定", + "Remove Current Background": "現在の背景画像を除去", + "Cancel": "中止" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/nb.js 3 Jan 2016 20:47:19 -0000 1.1.2.1 @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Set page background image": "Velg bakgrunnsbilde på siden", + "Set Page Background Image": "Velg bakgrunnsbilde på Siden", + "Remove Current Background": "Fjern gjeldende bakgrunn", + "Cancel": "Avbryt" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/nl.js 3 Jan 2016 20:47:19 -0000 1.1.2.1 @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Set page background image": "Pagina achtergrond afbeelding instellen", + "Set Page Background Image": "Pagina Achtergrond Afbeelding Instellen", + "Remove Current Background": "Huidige Achtergrond Afbeelding Verwijderen", + "Cancel": "Annuleren" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/no.js 3 Jan 2016 20:47:19 -0000 1.1.2.1 @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Set page background image": "Velg bakgrunnsbilde på siden", + "Set Page Background Image": "Velg Bakgrunnsbilde På Siden", + "Remove Current Background": "Fjern gjeldende bakgrunn", + "Cancel": "Avbryt" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/lang/pt_br.js 3 Jan 2016 20:47:20 -0000 1.1.2.1 @@ -0,0 +1,21 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation + +// Author: Marcio Barbosa,+// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Cancel": "Cancelar", + "Remove Current Background": "Remover fundo atual", + "Set Page Background Image": "Definir Imagem de Fundo", + "Set page background image": "Definir imagem de fundo" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/popups/bgimage.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/popups/bgimage.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/BackgroundImage/popups/bgimage.html 3 Jan 2016 20:47:20 -0000 1.1.2.1 @@ -0,0 +1,49 @@ + + + + Set Page Background Image + + + + + + + + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSS/CSS.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSS/CSS.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSS/CSS.js 3 Jan 2016 20:47:20 -0000 1.1.2.1 @@ -0,0 +1,149 @@ +// Simple CSS (className) plugin for the editor +// Sponsored by http://www.miro.com.au +// Implementation by Mihai Bazon, http://dynarch.com/mishoo. +// +// (c) dynarch.com 2003 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +// +// $Id: CSS.js,v 1.1.2.1 2016/01/03 20:47:20 gustafn Exp $ +// @TODO This is the default and won't be very useful to others. +// We should make this better. +Xinha.Config.prototype.cssPluginConfig = + { + combos : [ + { label: "Syntax", + // menu text // CSS class + options: { "None" : "", + "Code" : "code", + "String" : "string", + "Comment" : "comment", + "Variable name" : "variable-name", + "Type" : "type", + "Reference" : "reference", + "Preprocessor" : "preprocessor", + "Keyword" : "keyword", + "Function name" : "function-name", + "Html tag" : "html-tag", + "Html italic" : "html-helper-italic", + "Warning" : "warning", + "Html bold" : "html-helper-bold" + }, + context: "pre" + }, + { label: "Info", + options: { "None" : "", + "Quote" : "quote", + "Highlight" : "highlight", + "Deprecated" : "deprecated" + } + } + ] + }; + +function CSS(editor, params) { + this.editor = editor; + var cfg = editor.config; + var self = this; + var plugin_config; + if(params && params.length) + { + plugin_config = params[0]; + } + else + { + plugin_config = editor.config.cssPluginConfig; + } + + var combos = plugin_config.combos; + + for (var i = 0; i < combos.length; i++) { + var combo = combos[i]; + var id = "CSS-class" + i; + var css_class = { + id : id, + options : combo.options, + action : function(editor) { self.onSelect(editor, this, combo.context, combo.updatecontextclass); }, + refresh : function(editor) { self.updateValue(editor, this); }, + context : combo.context + }; + cfg.registerDropdown(css_class); + cfg.addToolbarElement(["T[" + combo.label + "]", id, "separator"] , "formatblock", -1); + } +} + +CSS._pluginInfo = { + name : "CSS", + version : "1.0", + developer : "Mihai Bazon", + developer_url : "http://dynarch.com/mishoo/", + c_owner : "Mihai Bazon", + sponsor : "Miro International", + sponsor_url : "http://www.miro.com.au", + license : "htmlArea" +}; + +CSS.prototype.onSelect = function(editor, obj, context, updatecontextclass) { + var tbobj = editor._toolbarObjects[obj.id]; + var index = tbobj.element.selectedIndex; + var className = tbobj.element.value; + + // retrieve parent element of the selection + var parent = editor.getParentElement(); + var surround = true; + + var is_span = (parent && parent.tagName.toLowerCase() == "span"); + var update_parent = (context && updatecontextclass && parent && parent.tagName.toLowerCase() == context); + + if (update_parent) { + parent.className = className; + editor.updateToolbar(); + return; + } + + if (is_span && index == 0 && !/\S/.test(parent.style.cssText)) { + while (parent.firstChild) { + parent.parentNode.insertBefore(parent.firstChild, parent); + } + parent.parentNode.removeChild(parent); + editor.updateToolbar(); + return; + } + + if (is_span) { + // maybe we could simply change the class of the parent node? + if (parent.childNodes.length == 1) { + parent.className = className; + surround = false; + // in this case we should handle the toolbar updation + // ourselves. + editor.updateToolbar(); + } + } + + // Other possibilities could be checked but require a lot of code. We + // can't afford to do that now. + if (surround) { + // shit happens ;-) most of the time. this method works, but + // it's dangerous when selection spans multiple block-level + // elements. + editor.surroundHTML("", ""); + } +}; + +CSS.prototype.updateValue = function(editor, obj) { + var select = editor._toolbarObjects[obj.id].element; + var parent = editor.getParentElement(); + if (typeof parent.className != "undefined" && /\S/.test(parent.className)) { + var options = select.options; + var value = parent.className; + for (var i = options.length; --i >= 0;) { + var option = options[i]; + if (value == option.value) { + select.selectedIndex = i; + return; + } + } + } + select.selectedIndex = 0; +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSSDropdowns/CSSDropdowns.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSSDropdowns/CSSDropdowns.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSSDropdowns/CSSDropdowns.js 3 Jan 2016 20:47:20 -0000 1.1.2.1 @@ -0,0 +1,149 @@ +// Simple CSS (className) plugin for the editor +// Sponsored by http://www.miro.com.au +// Implementation by Mihai Bazon, http://dynarch.com/mishoo. +// +// (c) dynarch.com 2003 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +// +// $Id: CSSDropdowns.js,v 1.1.2.1 2016/01/03 20:47:20 gustafn Exp $ +// @TODO This is the default and won't be very useful to others. +// We should make this better. +Xinha.Config.prototype.cssPluginConfig = + { + combos : [ + { label: "Syntax", + // menu text // CSS class + options: { "None" : "", + "Code" : "code", + "String" : "string", + "Comment" : "comment", + "Variable name" : "variable-name", + "Type" : "type", + "Reference" : "reference", + "Preprocessor" : "preprocessor", + "Keyword" : "keyword", + "Function name" : "function-name", + "Html tag" : "html-tag", + "Html italic" : "html-helper-italic", + "Warning" : "warning", + "Html bold" : "html-helper-bold" + }, + context: "pre" + }, + { label: "Info", + options: { "None" : "", + "Quote" : "quote", + "Highlight" : "highlight", + "Deprecated" : "deprecated" + } + } + ] + }; + +function CSSDropdowns(editor, params) { + this.editor = editor; + var cfg = editor.config; + var self = this; + var plugin_config; + if(params && params.length) + { + plugin_config = params[0]; + } + else + { + plugin_config = editor.config.cssPluginConfig; + } + + var combos = plugin_config.combos; + + for (var i = 0; i < combos.length; i++) { + var combo = combos[i]; + var id = "CSS-class" + i; + var css_class = { + id : id, + options : combo.options, + action : function(editor) { self.onSelect(editor, this, combo.context, combo.updatecontextclass); }, + refresh : function(editor) { self.updateValue(editor, this); }, + context : combo.context + }; + cfg.registerDropdown(css_class); + cfg.addToolbarElement(["T[" + combo.label + "]", id, "separator"] , "formatblock", -1); + } +} + +CSSDropdowns._pluginInfo = { + name : "CSSDropdowns", + version : "1.0", + developer : "Mihai Bazon", + developer_url : "http://dynarch.com/mishoo/", + c_owner : "Mihai Bazon", + sponsor : "Miro International", + sponsor_url : "http://www.miro.com.au", + license : "htmlArea" +}; + +CSSDropdowns.prototype.onSelect = function(editor, obj, context, updatecontextclass) { + var tbobj = editor._toolbarObjects[obj.id]; + var index = tbobj.element.selectedIndex; + var className = tbobj.element.value; + + // retrieve parent element of the selection + var parent = editor.getParentElement(); + var surround = true; + + var is_span = (parent && parent.tagName.toLowerCase() == "span"); + var update_parent = (context && updatecontextclass && parent && parent.tagName.toLowerCase() == context); + + if (update_parent) { + parent.className = className; + editor.updateToolbar(); + return; + } + + if (is_span && index == 0 && !/\S/.test(parent.style.cssText)) { + while (parent.firstChild) { + parent.parentNode.insertBefore(parent.firstChild, parent); + } + parent.parentNode.removeChild(parent); + editor.updateToolbar(); + return; + } + + if (is_span) { + // maybe we could simply change the class of the parent node? + if (parent.childNodes.length == 1) { + parent.className = className; + surround = false; + // in this case we should handle the toolbar updation + // ourselves. + editor.updateToolbar(); + } + } + + // Other possibilities could be checked but require a lot of code. We + // can't afford to do that now. + if (surround) { + // shit happens ;-) most of the time. this method works, but + // it's dangerous when selection spans multiple block-level + // elements. + editor.surroundHTML("", ""); + } +}; + +CSSDropdowns.prototype.updateValue = function(editor, obj) { + var select = editor._toolbarObjects[obj.id].element; + var parent = editor.getParentElement(); + if (typeof parent.className != "undefined" && /\S/.test(parent.className)) { + var options = select.options; + var value = parent.className; + for (var i = options.length; --i >= 0;) { + var option = options[i]; + if (value == option.value) { + select.selectedIndex = i; + return; + } + } + } + select.selectedIndex = 0; +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSSPicker/CSSPicker.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSSPicker/CSSPicker.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CSSPicker/CSSPicker.js 3 Jan 2016 20:47:20 -0000 1.1.2.1 @@ -0,0 +1,167 @@ +/** CSS Picker Plugin by Justin Rovang + * + * For full documentation, please see + * http://bitbucket.org/rovangju/xinha_csspicker/wiki/Home + * + * SAMPLE CONFIG: + * + * You can configure the appearance of the item/style list using the following CSS classes: + * .CSSPickerOption (Normal state) + * .CSSPickerOptionOver (Mouse-over state, typically border change) + * .CSSPickerOptionActive (Indicator for active classes under the selection/carat) + * + * Keys are CSS Class names + * wrapper: tag to wrap selected text with + * name: friendly name to display in panel with that class style applied to it. + * + * Sample config: + * CSSPicker.cssList = { + * 'xinhaDashedBox' : { 'wrapper':'div', 'name':'Breakout box' } + * 'xinhaMiniHeadline' : { 'wrapper':'div', 'name':'Sub-headline' } + * } + * + */ + +function CSSPicker(editor, args) { + this.editor = editor; + var CSSPicker = this; +} + +CSSPicker._pluginInfo = { + name : "CSSPicker", + version : "2008-12-01", + author : "Justin Rovang" +} + +CSSPicker.prototype.onGenerateOnce = function() { + var editor = this.editor; + var CSSPicker = this; + editor._cssPicker = editor.addPanel("right"); + + this.main = document.createElement("div"); + editor._cssPicker.style.backgroundColor='#dee5f8'; + editor._cssPicker.appendChild(this.main); + + Xinha.freeLater(this,"main"); + editor.showPanel(editor._cssPicker); +} + + +CSSPicker.prototype.onUpdateToolbar = function() { + if(this.editor._cssPicker) { + if(this._timeoutID) window.clearTimeout(this._timeoutID); + var e = this.editor; + this._timeoutID = window.setTimeout(function() { e._gen(); }, 250); //1000 = 1sec / 500=.5sec / 250=.25sec + } +} + +Xinha.prototype.listStyles = function(s) { + var editor = this; + var mySel = this.getSelection(); + var myRange; + if(Xinha.is_ie) { + myRange = this.saveSelection();//mySel; + mySel = this.createRange(mySel).text; + } + + var d = document.createElement("div"); + + d.className='CSSPickerOption'; + + /* If our carat is within an active class, highlight it */ + var toggleState = editor.getStyleInfo(s); + if(toggleState) Xinha._addClass(d, 'CSSPickerOptionActive'); + + d.align='center'; + d.innerHTML=''+CSSPicker.cssList[s].name+''; + d.onclick = function() { + editor.wrapStyle(s, mySel, myRange, CSSPicker.cssList[s].wrapper); + return false; + }; + + Xinha._addEvent(d, 'mouseover', function(ev) { + Xinha._addClass(d, 'CSSPickerOptionOver'); + }); + + Xinha._addEvent(d, 'mouseout', function(ev) { + Xinha._removeClass(d, 'CSSPickerOptionOver'); + }); + + return d; +} + +Xinha.prototype._gen = function() { + this.plugins.CSSPicker.instance.main.innerHTML=''; + for(var s in CSSPicker.cssList) { + this.plugins.CSSPicker.instance.main.appendChild(this.listStyles(s)); + } + return true; +} + +/* + (string) s: style name + (string) sel: selection text + (object) myRange: selection object + (string) sWrapper: wrapper tag (e.g.: div, span) +*/ +Xinha.prototype.wrapStyle = function(s, sel, myRange, sWrapper) { + if(!sWrapper) sWrapper="div"; + sWrapper=sWrapper.toLowerCase(); + + /* The reason for these next lines is that we want the user to be able to place + * their cursor below the new div element. Otherwise they can't which makes + * placing anything after a div wrapper difficult/almost impossible. */ + var divBreak=''; + if(sWrapper=="div") divBreak='
'; + + var editor=this; + this.focusEditor(); + if(Xinha.is_ie) this.restoreSelection(myRange); + + /* + * First - Get parent elements and see if the style is already applied. + */ + var toggleState = editor.getStyleInfo(s); + if(!toggleState) { + /* Create a new wrapper when: + * 1. Selected text has no 'snug' wrapper around it already. + * 2. If it does have a 'snug' wrapper, only append to the className if it's of the same type (span or div) + */ + if(sel == '') sel = ' '; //We insert this if the selection is empty, making it easier for carat placement via click + + this.insertHTML("<"+sWrapper+" class='"+s+"'>"+sel+""+sWrapper+">"+divBreak); + /* Modify the 'snug' wrapper if the above conditions are not met for a new element: */ + } + else { + /* 1. If the current ancestor has -just- this classname. It should be removed. + * 2. If it has more than one class, it should be removed from the list of the parents + */ + Xinha._removeClass(toggleState, s); + } + + return true; +} + +Xinha.prototype.getStyleInfo = function(sClassToProbe) { + var editor = this; + var aList = this.getAllAncestors(); + var a,s; + + if(aList) aList.pop(); //We don't want the body element to show up in this list. + if(aList.length > 0) { + for(var o in aList){ + a = aList[o]; + /* Instead of break down and rebuild the array for this search, we're going + * to do some string trickery... + * // NOTE: THIS MAY BE PRONE TO PARTIAL MATCHES. SOLUTION IS TO ADD A SPACE PREPEND + */ + if(a.className) { + s = a.className.trim()+' '; + if(s.toLowerCase().match(sClassToProbe.toLowerCase()+' ')) { + return a; + } + } + } + } + return false; +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/CharCounter.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/CharCounter.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/CharCounter.js 3 Jan 2016 20:47:20 -0000 1.1.2.1 @@ -0,0 +1,101 @@ +// Charcounter for Xinha +// (c) Udo Schmal & L.N.Schaffrath NeueMedien +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). + +function CharCounter(editor) { + this.editor = editor; + this._Chars = 0; + this._Words = 0; + this._HTML = 0; + this.onKeyPress = this.__onKeyPress; +} + +Xinha.Config.prototype.CharCounter = +{ + 'showChar': true, // show the characters count, + 'showWord': true, // show the words count, + 'showHtml': true, // show the exact html count + 'separator': ' | ', // separator used to join informations + 'maxHTML' : -1 // -1 for unlimited length, other number for limiting the length of the edited HTML +}; + +CharCounter._pluginInfo = { + name : "CharCounter", + version : "1.31", + developer : "Udo Schmal", + developer_url : "http://www.schaffrath-neuemedien.de", + sponsor : "L.N.Schaffrath NeueMedien", + sponsor_url : "http://www.schaffrath-neuemedien.de", + c_owner : "Udo Schmal & L.N.Schaffrath NeueMedien", + license : "htmlArea" +}; + +CharCounter.prototype._lc = function(string) { + return Xinha._lc(string, "CharCounter"); +}; + + +CharCounter.prototype.onGenerateOnce = function() { + var self = this; + if (this.charCount==null) { + var charCount = self.editor.registerStatusWidget('CharCounter', ['wysiwyg']); + this.charCount = charCount; + } +}; + +CharCounter.prototype.__onKeyPress= function(ev) { + if ((ev.keyCode != 8) && (ev.keyCode !=46)) { // not backspace & delete + if (this.editor.config.CharCounter.maxHTML!=-1) { + var contents = this.editor.getHTML(); + if (contents.length >= this.editor.config.CharCounter.maxHTML) { + Xinha._stopEvent(ev); + return true; + } + } + } +} + +CharCounter.prototype._updateCharCount= function() { + var editor = this.editor; + var cfg = editor.config; + var contents = editor.getHTML(); + var string = new Array(); + if (cfg.CharCounter.showHtml) { + string[string.length] = this._lc("HTML") + ": " + contents.length; + } + this._HTML = contents.length; + if (cfg.CharCounter.showWord || cfg.CharCounter.showChar) { + contents = contents.replace(/<\/?\s*!--[^-->]*-->/gi, "" ); + contents = contents.replace(/<(.+?)>/g, '');//Don't count HTML tags + contents = contents.replace(/ /gi, ' '); + contents = contents.replace(/([\n\r\t])/g, ' ');//convert newlines and tabs into space + contents = contents.replace(/( +)/g, ' ');//count spaces only once + contents = contents.replace(/&(.*);/g, ' ');//Count htmlentities as one keystroke + contents = contents.replace(/^\s*|\s*$/g, '');//trim + } + if (cfg.CharCounter.showWord) { + this._Words = 0; + for (var x=0;x=1) { this._Words++; } + string[string.length] = this._lc("Words") + ": " + this._Words ; + } + if (cfg.CharCounter.showChar) { + string[string.length] = this._lc("Chars") + ": " + contents.length; + this._Chars = contents.length; + } + this.charCount.innerHTML = string.join(cfg.CharCounter.separator); +}; + +CharCounter.prototype.onUpdateToolbar = function() { + this.charCount.innerHTML = this._lc("... in progress"); + if(this._timeoutID) { + window.clearTimeout(this._timeoutID); + } + var e = this; + this._timeoutID = window.setTimeout(function() {e._updateCharCount();}, 1000); +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/char-counter.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/char-counter.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/char-counter.js 3 Jan 2016 20:47:21 -0000 1.1.2.1 @@ -0,0 +1,109 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/CharCounter/char-counter.js */ +function CharCounter(_1){ +this.editor=_1; +this._Chars=0; +this._Words=0; +this._HTML=0; +this.onKeyPress=this.__onKeyPress; +} +Xinha.Config.prototype.CharCounter={"showChar":true,"showWord":true,"showHtml":true,"separator":" | ","maxHTML":-1}; +CharCounter._pluginInfo={name:"CharCounter",version:"1.31",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de",c_owner:"Udo Schmal & L.N.Schaffrath NeueMedien",license:"htmlArea"}; +CharCounter.prototype._lc=function(_2){ +return Xinha._lc(_2,"CharCounter"); +}; +CharCounter.prototype.onGenerateOnce=function(){ +var _3=this; +if(this.charCount==null){ +var _4=document.createElement("span"); +_4.style.padding="2px 5px"; +if(Xinha.is_ie){ +_4.style.styleFloat="right"; +}else{ +_4.style.cssFloat="right"; +} +var _5=document.createElement("div"); +_5.style.height=_5.style.width=_5.style.lineHeight=_5.style.fontSize="1px"; +_5.style.clear="both"; +if(Xinha.is_ie){ +this.editor._statusBarTree.style.styleFloat="left"; +}else{ +this.editor._statusBarTree.style.cssFloat="left"; +} +this.editor._statusBar.appendChild(_4); +this.editor._statusBar.appendChild(_5); +this.charCount=_4; +} +}; +CharCounter.prototype.__onKeyPress=function(ev){ +if((ev.keyCode!=8)&&(ev.keyCode!=46)){ +if(this.editor.config.CharCounter.maxHTML!=-1){ +var _7=this.editor.getHTML(); +if(_7.length>=this.editor.config.CharCounter.maxHTML){ +Xinha._stopEvent(ev); +return true; +} +} +} +}; +CharCounter.prototype._updateCharCount=function(){ +var _8=this.editor; +var _9=_8.config; +var _a=_8.getHTML(); +var _b=new Array(); +if(_9.CharCounter.showHtml){ +_b[_b.length]=this._lc("HTML")+": "+_a.length; +} +this._HTML=_a.length; +if(_9.CharCounter.showWord||_9.CharCounter.showChar){ +_a=_a.replace(/<\/?\s*!--[^-->]*-->/gi,""); +_a=_a.replace(/<(.+?)>/g,""); +_a=_a.replace(/ /gi," "); +_a=_a.replace(/([\n\r\t])/g," "); +_a=_a.replace(/( +)/g," "); +_a=_a.replace(/&(.*);/g," "); +_a=_a.replace(/^\s*|\s*$/g,""); +} +if(_9.CharCounter.showWord){ +this._Words=0; +for(var x=0;x<_a.length;x++){ +if(_a.charAt(x)==" "){ +this._Words++; +} +} +if(this._Words>=1){ +this._Words++; +} +_b[_b.length]=this._lc("Words")+": "+this._Words; +} +if(_9.CharCounter.showChar){ +_b[_b.length]=this._lc("Chars")+": "+_a.length; +this._Chars=_a.length; +} +this.charCount.innerHTML=_b.join(_9.CharCounter.separator); +}; +CharCounter.prototype.onUpdateToolbar=function(){ +this.charCount.innerHTML=this._lc("... in progress"); +if(this._timeoutID){ +window.clearTimeout(this._timeoutID); +} +var e=this; +this._timeoutID=window.setTimeout(function(){ +e._updateCharCount(); +},1000); +}; +CharCounter.prototype.onMode=function(_e){ +switch(_e){ +case "textmode": +this.charCount.style.display="none"; +break; +case "wysiwyg": +this.charCount.style.display=""; +break; +default: +alert("Mode <"+_e+"> not defined!"); +return false; +} +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/de.js 3 Jan 2016 20:47:21 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Chars": "Zeichen", + "Words": "Worte", + "... in progress": "... in Bearbeitung" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/fr.js 3 Jan 2016 20:47:22 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Chars": "Caractères", + "Words": "Mots" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/ja.js 3 Jan 2016 20:47:22 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Chars": "文字数", + "Words": "単語数", + "... in progress": "... 処理中" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/nb.js 3 Jan 2016 20:47:22 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Chars": "Tegn" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/nl.js 3 Jan 2016 20:47:22 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Chars": "Tekens", + "Words": "Woorden", + "... in progress": "... wordt verwerkt" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/no.js 3 Jan 2016 20:47:22 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Chars": "Tegn" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharCounter/lang/pt_br.js 3 Jan 2016 20:47:23 -0000 1.1.2.1 @@ -0,0 +1,21 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation + +// Author: Marcio Barbosa, +// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "... in progress": "... em processo", + "Chars": "Caracteres", + "HTML": "HTML", + "Words": "Palavras" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/CharacterMap.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/CharacterMap.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/CharacterMap.css 3 Jan 2016 20:47:23 -0000 1.1.2.1 @@ -0,0 +1,43 @@ +.CharacterMap { +background-color:white; +} +.CharacterMap a.entity { + font-size:12px; + width:18px; + display:block; + float:left; + padding:2px; + text-decoration:none; + color:#000; + text-align:center; + +} +.CharacterMap a.light { + background-color:#ffffff; +} +.CharacterMap a.dark { + background-color:#f7f8fd; +} +.CharacterMap a.entity:hover { + background-color:#ffd760; + color:#000; +} +.popup td.character { + font-family:Verdana,Arial,Helvetica,sans-serif; + font-size:14px; + font-weight:bold; + text-align:center; + background:#fff; + padding:4px; +} +.popup td.character-hilite { + background:#ffd760; +} +.popup form { + text-align:center; +} +.popup table { + cursor:pointer; + background-color:#ADAD9C; + border:1px inset; +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/CharacterMap.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/CharacterMap.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/CharacterMap.js 3 Jan 2016 20:47:23 -0000 1.1.2.1 @@ -0,0 +1,124 @@ +// Character Map plugin for Xinha +// Original Author - Bernhard Pfeifer novocaine@gmx.net +Xinha.loadStyle( 'CharacterMap.css', 'CharacterMap' ); + +function CharacterMap( editor ) +{ + this.editor = editor; + var cfg = editor.config; + var self = this; + cfg.registerButton( + { + id : 'insertcharacter', + tooltip : Xinha._lc( 'Insert special character', 'CharacterMap' ), + image : editor.imgURL('images/tango/16x16/apps/accessories-character-map.png'), + textMode : false, + action : function() { self.show(); } + } + ); + cfg.addToolbarElement('insertcharacter', 'createlink', -1); + +} + +// configuration mode : panel or popup +Xinha.Config.prototype.CharacterMap = +{ + 'mode': 'popup' // configuration mode : panel or popup +}; + +CharacterMap._pluginInfo = +{ + name : "CharacterMap", + version : "2.0", + developer : "Laurent Vilday", + developer_url : "http://www.mokhet.com/", + c_owner : "Xinha community", + sponsor : "", + sponsor_url : "", + license : "HTMLArea" +}; + +CharacterMap._isActive = false; + + +CharacterMap.prototype.addEntity = function ( entite, pos ) +{ + var editor = this.editor; + var self = this; + var a = document.createElement( 'a' ); + Xinha._addClass( a, 'entity' ); + a.innerHTML = entite; + a.href = 'javascript:void(0)'; + Xinha._addClass(a, (pos%2)? 'light':'dark'); + a.onclick = function() + { + if (Xinha.is_ie) editor.focusEditor(); + editor.insertHTML( entite ); + //self._isActive = false; + //editor.hidePanel( editor._CharacterMap ); + return false; + }; + this.dialog.main.appendChild( a ); + a = null; +}; + +CharacterMap.prototype.onGenerateOnce = function() +{ + this._prepareDialog(); +}; + +CharacterMap.prototype._prepareDialog = function() +{ + var self = this; + var editor = this.editor; + + var html = ' '; + + // Now we have everything we need, so we can build the dialog. + this.dialog = new Xinha.Dialog(editor, html, 'CharacterMap',{width:300},{modal:false}); + Xinha._addClass( this.dialog.rootElem, 'CharacterMap' ); + + if (editor.config.CharacterMap && editor.config.CharacterMap.mode == 'panel') this.dialog.attachToPanel('right'); + + var entites = + [ + 'Ÿ', 'š', '@', '"', '¡', '¢', '£', '¤', '¥', '¦', + '§', '¨', '©', 'ª', '«', '¬', '¯', '°', '±', '²', + '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', + '½', '¾', '¿', '×', 'Ø', '÷', 'ø', 'ƒ', 'ˆ', + '˜', '–', '—', '‘', '’', '‚', '“', '”', '„', + '†', '‡', '•', '…', '‰', '‹', '›', '€', '™', + 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', + 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', + 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '®', '×', 'Ù', 'Ú', + 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', + 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', + 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', + 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', + 'ÿ', 'Œ', 'œ', 'Š' + ]; + + for ( var i=0; i
Insert special character +// (c) systemconcept.de 2004 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Insert special character": "Sonderzeichen einfügen", + "Cancel": "Abbrechen" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/es.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/es.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/es.js 3 Jan 2016 20:47:24 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "es", ENCODING: UTF-8 +// translated: Derick Leony +{ + "Edit HTML for selected text": "Editar código HTML del texto seleccionado", + "Tag Editor": "Editor de Etiquetas" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/fr.js 3 Jan 2016 20:47:24 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert special character": "Insérer un caractère spécial", + "Cancel": "Annuler" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/it.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/it.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/it.js 3 Jan 2016 20:47:24 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "it", ENCODING: UTF-8 +{ + "Insert special character": "Inserisca il carattere speciale", + "Cancel": "Annullamento" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/ja.js 3 Jan 2016 20:47:25 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Insert special character": "特殊文字を挿入", + "Cancel": "中止" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/nb.js 3 Jan 2016 20:47:25 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert special character": "Sett inn tegn", + "Cancel": "Avbryt" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/nl.js 3 Jan 2016 20:47:25 -0000 1.1.2.1 @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Sponsored by http://www.systemconcept.de +// Author: Holger Hees, +// (c) systemconcept.de 2004 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Insert special character": "Speciaal character invoegen", + "Cancel": "Annuleer" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/no.js 3 Jan 2016 20:47:25 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert special character": "Sett inn tegn", + "Cancel": "Avbryt" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/pt_br.js 3 Jan 2016 20:47:25 -0000 1.1.2.1 @@ -0,0 +1,19 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation + +// Author: Marcio Barbosa, +// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Cancel": "Cancelar", + "Insert special character": "Inserir caracter especial" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/ru.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/ru.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/ru.js 3 Jan 2016 20:47:26 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +// Author: Andrei Blagorazumov, a@fnr.ru +{ + "Insert special character": "Вставить специальный символ", + "Cancel": "Отменить" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/sv.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/sv.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/lang/sv.js 3 Jan 2016 20:47:26 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "sv" (Swedish), ENCODING: UTF-8 +// translated: Erik Dalén +{ + "Insert special character": "Infoga tecken", + "Cancel": "Avbryt" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/popups/select_character.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/popups/select_character.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/CharacterMap/popups/select_character.html 3 Jan 2016 20:47:26 -0000 1.1.2.1 @@ -0,0 +1,184 @@ + + + + Insert special character + + + + + + ++
+ Ÿ +š +@ +" +¡ +¢ +£ +¤ +¥ +¦ +§ +¨ +© +ª +« +¬ ++ ¯ +° +± +² +³ +´ +µ +¶ +· +¸ +¹ +º +» +¼ +½ +¾ ++ ¿ +× +Ø +÷ +ø +ƒ +ˆ +˜ +– +— +‘ +’ +‚ +“ +” +„ ++ † +‡ +• +… +‰ +‹ +› +€ +™ +À +Á + +à +Ä +Å +Æ ++ Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö ++ ® +× +Ù +Ú +Û +Ü +Ý +Þ +ß +à +á +â +ã +ä +å +æ ++ ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö ++ +÷ +ø +ù +ú +û +ü +ý +þ +ÿ +Œ +œ +Š ++
+ + + \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/clientside-spellcheck.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/clientside-spellcheck.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/clientside-spellcheck.js 3 Jan 2016 20:47:26 -0000 1.1.2.1 @@ -0,0 +1,36 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ClientsideSpellcheck/clientside-spellcheck.js */ +function ClientsideSpellcheck(_1){ +this.editor=_1; +var _2=_1.config; +var bl=ClientsideSpellcheck.btnList; +var _4=this; +var id="clientsidespellcheck"; +_2.registerButton(id,this._lc("Spell Check using ieSpell"),_1.imgURL("clientside-spellcheck.gif","ClientsideSpellcheck"),false,function(_6,id){ +_4.buttonPress(_6,id); +}); +if(Xinha.is_ie){ +_2.addToolbarElement("clientsidespellcheck","print",1); +} +} +ClientsideSpellcheck._pluginInfo={name:"ClientsideSpellcheck",version:"1.0",developer:"Michael Harris",developer_url:"http://www.jonesinternational.edu",c_owner:"Red Egg Software",sponsor:"Jones International University",sponsor_url:"http://www.jonesinternational.edu",license:"htmlArea"}; +ClientsideSpellcheck.prototype._lc=function(_8){ +return Xinha._lc(_8,"ClientsideSpellcheck"); +}; +ClientsideSpellcheck.prototype.buttonPress=function(_9){ +try{ +var _a=new ActiveXObject("ieSpell.ieSpellExtension"); +_a.CheckAllLinkedDocuments(document); +} +catch(exception){ +if(exception.number==-2146827859){ +if(confirm(this.lc("ieSpell not detected. Click Ok to go to download page."))){ +window.open("http://www.iespell.com/download.php","DownLoad"); +} +}else{ +alert(this.lc("ieSpell can only be used in Internet Explorer")); +} +} +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/img/he-spell-check.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/img/he-spell-check.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/de.js 3 Jan 2016 20:47:27 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Spell Check using ieSpell": "Englische Rechtschreibkontrolle mit ieSpell", + "ieSpell can only be used in Internet Explorer": "ieSpell kann nur mit dem Internet Explorer benutzt werden", + "ieSpell not detected. Click Ok to go to download page.": "ieSpell wurde nicht gefunden. Drücken sie Ok um ieSpeck herunter zu laden." +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/ja.js 3 Jan 2016 20:47:27 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Spell Check using ieSpell": "スペルチェックに ieSpell を使う", + "ieSpell can only be used in Internet Explorer": "ieSpell は Internet Explorer でのみ使用できます", + "ieSpell not detected. Click Ok to go to download page.": "ieSpell が検知されませんでした。OK をクリックしてダウンロードページを開いてください。" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/nb.js 3 Jan 2016 20:47:27 -0000 1.1.2.1 @@ -0,0 +1,3 @@ +// Dummy file + +{}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/nl.js 3 Jan 2016 20:47:28 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Spell Check using ieSpell": "Engelse spellingscontrole met ieSpell", + "ieSpell can only be used in Internet Explorer": "ieSpell kan alleen worden gebruikt in Internet Explorer", + "ieSpell not detected. Click Ok to go to download page.": "ieSpell werd niet gevonden. Klik op Ok om ieSpell te downloaden" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ClientsideSpellcheck/lang/pt_br.js 3 Jan 2016 20:47:28 -0000 1.1.2.1 @@ -0,0 +1,18 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation + +// Author: Marcio Barbosa,+// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Spell Check using ieSpell": "Verificação Ortográfica utilizando ieSpell" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/1.pl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/1.pl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/1.pl 3 Jan 2016 20:47:28 -0000 1.1.2.1 @@ -0,0 +1,38 @@ +#! /usr/bin/perl -w + +use strict; + +my $file = 'context-menu.js'; +my $outfile = $file.'-i18n'; +my $langfile = 'en.js'; + +open FILE, "<$file"; +#open OUTFILE, ">$outfile"; +#open LANGFILE, ">$langfile"; +my %texts = (); +while ( ) { + if (/"(.*?)"/) { + my $inline = $_; + chomp $inline; + my $key = $1; + my $val = $1; + print "Key: [$key]: "; + my $line = ; + if (defined $line) { + chomp $line; + if ($line =~ /(\S+)/) { + $key = $1; + print "-- using $key\n"; + } + $texts{$val} = $key; + } else { + print " -- skipped...\n"; + } + } +} +#close LANGFILE; +#close OUTFILE; +close FILE; + +print "\n\n\n"; +print '"', join("\"\n\"", sort keys %texts), '"', "\n"; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/ContextMenu.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/ContextMenu.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/ContextMenu.js 3 Jan 2016 20:47:28 -0000 1.1.2.1 @@ -0,0 +1,501 @@ +// Context Menu Plugin for HTMLArea-3.0 +// Sponsored by www.americanbible.org +// Implementation by Mihai Bazon, http://dynarch.com/mishoo/ +// +// (c) dynarch.com 2003. +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +// +// $Id: ContextMenu.js,v 1.1.2.1 2016/01/03 20:47:28 gustafn Exp $ + +Xinha.loadStyle("menu.css", "ContextMenu"); + +function ContextMenu(editor) { + this.editor = editor; +} + +ContextMenu._pluginInfo = { + name : "ContextMenu", + version : "1.0", + developer : "Mihai Bazon", + developer_url : "http://dynarch.com/mishoo/", + c_owner : "dynarch.com", + sponsor : "American Bible Society", + sponsor_url : "http://www.americanbible.org", + license : "htmlArea" +}; + +Xinha.Config.prototype.ContextMenu = { + disableMozillaSpellCheck : false, + customHooks : { } // 'a': [ ['Label', function() { alert('Action'); }, 'Tooltip', '/icon.jpg' ] ] +} + +ContextMenu.prototype.onGenerate = function() { + var self = this; + var doc = this.editordoc = this.editor._iframe.contentWindow.document; + Xinha._addEvents(doc, ["contextmenu"], + function (event) { + return self.popupMenu(Xinha.is_ie ? self.editor._iframe.contentWindow.event : event); + }); + this.currentMenu = null; + + if (this.editor.config.ContextMenu.disableMozillaSpellCheck) { + this.editordoc.body.spellcheck = false; // Firefox spellchecking is quite confusing for the user when they don't get the browser context menu + } +}; + +ContextMenu.prototype.getContextMenu = function(target) { + var self = this; + var editor = this.editor; + var config = editor.config; + var menu = []; + var tbo = this.editor.plugins.TableOperations; + if (tbo) tbo = tbo.instance; + + var selection = editor.hasSelectedText(); + if (!Xinha.is_gecko) { + if (selection) { + menu.push([ Xinha._lc("Cut", "ContextMenu"), function() { editor.execCommand("cut"); }, null, config.btnList["cut"][1] ], + [ Xinha._lc("Copy", "ContextMenu"), function() { editor.execCommand("copy"); }, null, config.btnList["copy"][1] ]); + menu.push([ Xinha._lc("Paste", "ContextMenu"), function() { editor.execCommand("paste"); }, null, config.btnList["paste"][1] ]); + } + } + var currentTarget = target; + var elmenus = []; + + var link = null; + var table = null; + var tr = null; + var td = null; + var img = null; + + function tableOperation(opcode) { + tbo.buttonPress(editor, opcode); + } + + function insertPara(after) { + var el = currentTarget; + var par = el.parentNode; + var p = editor._doc.createElement("p"); + p.appendChild(editor._doc.createElement("br")); + par.insertBefore(p, after ? el.nextSibling : el); + var sel = editor._getSelection(); + var range = editor._createRange(sel); + if (!Xinha.is_ie) { + sel.removeAllRanges(); + range.selectNodeContents(p); + range.collapse(true); + sel.addRange(range); + } else { + range.moveToElementText(p); + range.collapse(true); + range.select(); + } + } + + for (; target; target = target.parentNode) { + var tag = target.tagName; + if (!tag) + continue; + tag = tag.toLowerCase(); + switch (tag) { + case "img": + img = target; + elmenus.push(null, + [ Xinha._lc("_Image Properties...", "ContextMenu"), + function() { + editor._insertImage(img); + }, + Xinha._lc("Show the image properties dialog", "ContextMenu"), + config.btnList["insertimage"][1] ] + ); + break; + case "a": + link = target; + elmenus.push(null, + [ Xinha._lc("_Modify Link...", "ContextMenu"), + function() { editor.config.btnList['createlink'][3](editor); }, + Xinha._lc("Current URL is", "ContextMenu") + ': ' + link.href, + config.btnList["createlink"][1] ], + + [ Xinha._lc("Chec_k Link...", "ContextMenu"), + function() { window.open(link.href); }, + Xinha._lc("Opens this link in a new window", "ContextMenu") ], + + [ Xinha._lc("_Remove Link...", "ContextMenu"), + function() { + if (confirm(Xinha._lc("Please confirm that you want to unlink this element.", "ContextMenu") + "\n" + + Xinha._lc("Link points to:", "ContextMenu") + " " + link.href)) { + while (link.firstChild) + link.parentNode.insertBefore(link.firstChild, link); + link.parentNode.removeChild(link); + } + }, + Xinha._lc("Unlink the current element", "ContextMenu") ] + ); + break; + case "td": + td = target; + if (!tbo) break; + elmenus.push(null, + [ Xinha._lc("C_ell Properties...", "ContextMenu"), + function() { tableOperation("TO-cell-prop"); }, + Xinha._lc("Show the Table Cell Properties dialog", "ContextMenu"), + config.btnList["TO-cell-prop"][1] ], + + [ Xinha._lc("Insert Cell After", "ContextMenu"), + function() { tableOperation("TO-cell-insert-after"); }, + Xinha._lc("Insert Cell After", "ContextMenu"), + config.btnList["TO-cell-insert-after"][1] ], + + [ Xinha._lc("Insert Cell Before", "ContextMenu"), + function() { tableOperation("TO-cell-insert-before"); }, + Xinha._lc("Insert Cell After", "ContextMenu"), + config.btnList["TO-cell-insert-before"][1] ], + + [ Xinha._lc("Delete Cell", "ContextMenu"), + function() { tableOperation("TO-cell-delete"); }, + Xinha._lc("Delete Cell", "ContextMenu"), + config.btnList["TO-cell-delete"][1] ], + + [ Xinha._lc("Merge Cells", "ContextMenu"), + function() { tableOperation("TO-cell-merge"); }, + Xinha._lc("Merge Cells", "ContextMenu"), + config.btnList["TO-cell-merge"][1] ] + ); + break; + case "tr": + tr = target; + if (!tbo) break; + elmenus.push(null, + [ Xinha._lc("Ro_w Properties...", "ContextMenu"), + function() { tableOperation("TO-row-prop"); }, + Xinha._lc("Show the Table Row Properties dialog", "ContextMenu"), + config.btnList["TO-row-prop"][1] ], + + [ Xinha._lc("I_nsert Row Before", "ContextMenu"), + function() { tableOperation("TO-row-insert-above"); }, + Xinha._lc("Insert a new row before the current one", "ContextMenu"), + config.btnList["TO-row-insert-above"][1] ], + + [ Xinha._lc("In_sert Row After", "ContextMenu"), + function() { tableOperation("TO-row-insert-under"); }, + Xinha._lc("Insert a new row after the current one", "ContextMenu"), + config.btnList["TO-row-insert-under"][1] ], + + [ Xinha._lc("_Delete Row", "ContextMenu"), + function() { tableOperation("TO-row-delete"); }, + Xinha._lc("Delete the current row", "ContextMenu"), + config.btnList["TO-row-delete"][1] ] + ); + break; + case "table": + table = target; + if (!tbo) break; + elmenus.push(null, + [ Xinha._lc("_Table Properties...", "ContextMenu"), + function() { tableOperation("TO-table-prop"); }, + Xinha._lc("Show the Table Properties dialog", "ContextMenu"), + config.btnList["TO-table-prop"][1] ], + + [ Xinha._lc("Insert _Column Before", "ContextMenu"), + function() { tableOperation("TO-col-insert-before"); }, + Xinha._lc("Insert a new column before the current one", "ContextMenu"), + config.btnList["TO-col-insert-before"][1] ], + + [ Xinha._lc("Insert C_olumn After", "ContextMenu"), + function() { tableOperation("TO-col-insert-after"); }, + Xinha._lc("Insert a new column after the current one", "ContextMenu"), + config.btnList["TO-col-insert-after"][1] ], + + [ Xinha._lc("De_lete Column", "ContextMenu"), + function() { tableOperation("TO-col-delete"); }, + Xinha._lc("Delete the current column", "ContextMenu"), + config.btnList["TO-col-delete"][1] ] + ); + break; + case "body": + elmenus.push(null, + [ Xinha._lc("Justify Left", "ContextMenu"), + function() { editor.execCommand("justifyleft"); }, null, + config.btnList["justifyleft"][1] ], + [ Xinha._lc("Justify Center", "ContextMenu"), + function() { editor.execCommand("justifycenter"); }, null, + config.btnList["justifycenter"][1] ], + [ Xinha._lc("Justify Right", "ContextMenu"), + function() { editor.execCommand("justifyright"); }, null, + config.btnList["justifyright"][1] ], + [ Xinha._lc("Justify Full", "ContextMenu"), + function() { editor.execCommand("justifyfull"); }, null, + config.btnList["justifyfull"][1] ] + ); + break; + } + } + + if (selection && !link) + menu.push(null, [ Xinha._lc("Make lin_k...", "ContextMenu"), + function() { editor.config.btnList['createlink'][3](editor); }, + Xinha._lc("Create a link", "ContextMenu"), + config.btnList["createlink"][1] ]); + + if(editor.config.ContextMenu.customHooks[currentTarget.tagName.toLowerCase()]) + { + var items = editor.config.ContextMenu.customHooks[currentTarget.tagName.toLowerCase()]; + + for (var i = 0; i < items.length; ++i) + { + menu.push(items[i]); + } + } + + for (var i = 0; i < elmenus.length; ++i) + menu.push(elmenus[i]); + + if (!/html|body/i.test(currentTarget.tagName)) + menu.push(null, + [ Xinha._lc({string: "Remove the $elem Element...", replace: {elem: "<" + currentTarget.tagName + ">"}}, "ContextMenu"), + function() { + if (confirm(Xinha._lc("Please confirm that you want to remove this element:", "ContextMenu") + " " + + currentTarget.tagName)) { + var el = currentTarget; + var p = el.parentNode; + p.removeChild(el); + if (Xinha.is_gecko) { + if (p.tagName.toLowerCase() == "td" && !p.hasChildNodes()) + p.appendChild(editor._doc.createElement("br")); + editor.forceRedraw(); + editor.focusEditor(); + editor.updateToolbar(); + if (table) { + var save_collapse = table.style.borderCollapse; + table.style.borderCollapse = "collapse"; + table.style.borderCollapse = "separate"; + table.style.borderCollapse = save_collapse; + } + } + } + }, + Xinha._lc("Remove this node from the document", "ContextMenu") ], + [ Xinha._lc("Insert paragraph before", "ContextMenu"), + function() { insertPara(false); }, + Xinha._lc("Insert a paragraph before the current node", "ContextMenu") ], + [ Xinha._lc("Insert paragraph after", "ContextMenu"), + function() { insertPara(true); }, + Xinha._lc("Insert a paragraph after the current node", "ContextMenu") ] + ); + if (!menu[0]) menu.shift(); //If the menu begins with a separator, remove it for cosmetical reasons + return menu; +}; + +ContextMenu.prototype.popupMenu = function(ev) { + var self = this; + if (this.currentMenu) + { + this.closeMenu(); + } + function getPos(el) { + var r = { x: el.offsetLeft, y: el.offsetTop }; + if (el.offsetParent) { + var tmp = getPos(el.offsetParent); + r.x += tmp.x; + r.y += tmp.y; + } + return r; + } + function documentClick(ev) { + ev || (ev = window.event); + if (!self.currentMenu) { + alert(Xinha._lc("How did you get here? (Please report!)", "ContextMenu")); + return false; + } + var el = Xinha.is_ie ? ev.srcElement : ev.target; + for (; el != null && el != self.currentMenu; el = el.parentNode); + if (el == null) + self.closeMenu(); + //Xinha._stopEvent(ev); + //return false; + } + var keys = []; + function keyPress(ev) { + ev || (ev = window.event); + Xinha._stopEvent(ev); + if (ev.keyCode == 27) { + self.closeMenu(); + return false; + } + var key = String.fromCharCode(Xinha.is_ie ? ev.keyCode : ev.charCode).toLowerCase(); + for (var i = keys.length; --i >= 0;) { + var k = keys[i]; + if (k[0].toLowerCase() == key) + k[1].__msh.activate(); + } + } + self.closeMenu = function() { + self.currentMenu.parentNode.removeChild(self.currentMenu); + self.currentMenu = null; + Xinha._removeEvent(document, "mousedown", documentClick); + Xinha._removeEvent(self.editordoc, "mousedown", documentClick); + if (keys.length > 0) + Xinha._removeEvent(self.editordoc, "keypress", keyPress); + if (Xinha.is_ie) + self.iePopup.hide(); + } + var target = Xinha.is_ie ? ev.srcElement : ev.target; + var ifpos = getPos(self.editor._htmlArea);//_iframe); + var x = ev.clientX + ifpos.x; + var y = ev.clientY + ifpos.y; + + var div; + var doc; + if (!Xinha.is_ie) { + doc = document; + } else { + // IE stinks + var popup = this.iePopup = window.createPopup(); + doc = popup.document; + doc.open(); + doc.write(""); + doc.close(); + } + div = doc.createElement("div"); + if (Xinha.is_ie) + div.unselectable = "on"; + div.oncontextmenu = function() { return false; }; + div.className = "htmlarea-context-menu"; + if (!Xinha.is_ie) { + div.style.visibility = "hidden"; + div.style.left = div.style.top = "-200px"; + } + doc.body.appendChild(div); + + var table = doc.createElement("table"); + div.appendChild(table); + table.cellSpacing = 0; + table.cellPadding = 0; + var parent = doc.createElement("tbody"); + table.appendChild(parent); + + var options = this.getContextMenu(target); + for (var i = 0; i < options.length; ++i) { + var option = options[i]; + var item = doc.createElement("tr"); + parent.appendChild(item); + if (Xinha.is_ie) + item.unselectable = "on"; + else item.onmousedown = function(ev) { + Xinha._stopEvent(ev); + return false; + }; + if (!option) { + item.className = "separator"; + var td = doc.createElement("td"); + td.className = "icon"; + var IE_IS_A_FUCKING_SHIT = '>'; + if (Xinha.is_ie) { + td.unselectable = "on"; + IE_IS_A_FUCKING_SHIT = " unselectable='on' style='height=1px'> "; + } + td.innerHTML = " "; + var td1 = td.cloneNode(true); + td1.className = "label"; + item.appendChild(td); + item.appendChild(td1); + } else { + var label = option[0]; + item.className = "item"; + item.__msh = { + item: item, + label: label, + action: option[1], + tooltip: option[2] || null, + icon: option[3] || null, + activate: function() { + self.closeMenu(); + self.editor.focusEditor(); + this.action(); + } + }; + label = label.replace(/_([a-zA-Z0-9])/, "$1"); + if (label != option[0]) + keys.push([ RegExp.$1, item ]); + label = label.replace(/__/, "_"); + var td1 = doc.createElement("td"); + if (Xinha.is_ie) + td1.unselectable = "on"; + item.appendChild(td1); + td1.className = "icon"; + if (item.__msh.icon) + { + var t = Xinha.makeBtnImg(item.__msh.icon, doc); + td1.appendChild(t); + } + var td2 = doc.createElement("td"); + if (Xinha.is_ie) + td2.unselectable = "on"; + item.appendChild(td2); + td2.className = "label"; + td2.innerHTML = label; + item.onmouseover = function() { + this.className += " hover"; + self.editor._statusBarTree.innerHTML = this.__msh.tooltip || ' '; + }; + item.onmouseout = function() { this.className = "item"; }; + item.oncontextmenu = function(ev) { + this.__msh.activate(); + if (!Xinha.is_ie) + Xinha._stopEvent(ev); + return false; + }; + item.onmouseup = function(ev) { + var timeStamp = (new Date()).getTime(); + if (timeStamp - self.timeStamp > 500) + this.__msh.activate(); + if (!Xinha.is_ie) + Xinha._stopEvent(ev); + return false; + }; + //if (typeof option[2] == "string") + //item.title = option[2]; + } + } + + if (!Xinha.is_ie) { + /* keep then menu from overflowing the client window boundaries */ + + /* provide a virtual margin to leave a swoosh of air between the + meny and the window edge. This should probably go into the menu + container css as margin 10px instead... + */ + var margin = 10; + + if (y + div.offsetHeight + margin > window.innerHeight) + y = window.innerHeight - div.offsetHeight - margin; + if (x + div.offsetWidth + margin > window.innerWidth) + x = window.innerWidth - div.offsetWidth - margin; + + div.style.left = x + "px"; + div.style.top = y + "px"; + div.style.visibility = "visible"; + + } else { + // To get the size we need to display the popup with some width/height + // then we can get the actual size of the div and redisplay the popup at the + // correct dimensions. + this.iePopup.show(ev.screenX, ev.screenY, 300,50); + var w = div.offsetWidth; + var h = div.offsetHeight; + this.iePopup.show(ev.screenX, ev.screenY, w, h); + } + + this.currentMenu = div; + this.timeStamp = (new Date()).getTime(); + + Xinha._addEvent(document, "mousedown", documentClick); + Xinha._addEvent(this.editordoc, "mousedown", documentClick); + if (keys.length > 0) + Xinha._addEvent(this.editordoc, "keypress", keyPress); + + Xinha._stopEvent(ev); + return false; +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/context-menu.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/context-menu.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/context-menu.js 3 Jan 2016 20:47:28 -0000 1.1.2.1 @@ -0,0 +1,390 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ContextMenu/context-menu.js */ +Xinha.loadStyle("menu.css","ContextMenu"); +function ContextMenu(_1){ +this.editor=_1; +} +ContextMenu._pluginInfo={name:"ContextMenu",version:"1.0",developer:"Mihai Bazon",developer_url:"http://dynarch.com/mishoo/",c_owner:"dynarch.com",sponsor:"American Bible Society",sponsor_url:"http://www.americanbible.org",license:"htmlArea"}; +Xinha.Config.prototype.ContextMenu={disableMozillaSpellCheck:false}; +ContextMenu.prototype.onGenerate=function(){ +var _2=this; +var _3=this.editordoc=this.editor._iframe.contentWindow.document; +Xinha._addEvents(_3,["contextmenu"],function(_4){ +return _2.popupMenu(Xinha.is_ie?_2.editor._iframe.contentWindow.event:_4); +}); +this.currentMenu=null; +if(this.editor.config.ContextMenu.disableMozillaSpellCheck){ +this.editordoc.body.spellcheck=false; +} +}; +ContextMenu.prototype.getContextMenu=function(_5){ +var _6=this; +var _7=this.editor; +var _8=_7.config; +var _9=[]; +var _a=this.editor.plugins.TableOperations; +if(_a){ +_a=_a.instance; +} +var _b=_7.hasSelectedText(); +if(!Xinha.is_gecko){ +if(_b){ +_9.push([Xinha._lc("Cut","ContextMenu"),function(){ +_7.execCommand("cut"); +},null,_8.btnList["cut"][1]],[Xinha._lc("Copy","ContextMenu"),function(){ +_7.execCommand("copy"); +},null,_8.btnList["copy"][1]]); +_9.push([Xinha._lc("Paste","ContextMenu"),function(){ +_7.execCommand("paste"); +},null,_8.btnList["paste"][1]]); +} +} +var _c=_5; +var _d=[]; +var _e=null; +var _f=null; +var tr=null; +var td=null; +var img=null; +function tableOperation(_13){ +_a.buttonPress(_7,_13); +} +function insertPara(_14){ +var el=_c; +var par=el.parentNode; +var p=_7._doc.createElement("p"); +p.appendChild(_7._doc.createElement("br")); +par.insertBefore(p,_14?el.nextSibling:el); +var sel=_7._getSelection(); +var _19=_7._createRange(sel); +if(!Xinha.is_ie){ +sel.removeAllRanges(); +_19.selectNodeContents(p); +_19.collapse(true); +sel.addRange(_19); +}else{ +_19.moveToElementText(p); +_19.collapse(true); +_19.select(); +} +} +for(;_5;_5=_5.parentNode){ +var tag=_5.tagName; +if(!tag){ +continue; +} +tag=tag.toLowerCase(); +switch(tag){ +case "img": +img=_5; +_d.push(null,[Xinha._lc("_Image Properties...","ContextMenu"),function(){ +_7._insertImage(img); +},Xinha._lc("Show the image properties dialog","ContextMenu"),_8.btnList["insertimage"][1]]); +break; +case "a": +_e=_5; +_d.push(null,[Xinha._lc("_Modify Link...","ContextMenu"),function(){ +_7.config.btnList["createlink"][3](_7); +},Xinha._lc("Current URL is","ContextMenu")+": "+_e.href,_8.btnList["createlink"][1]],[Xinha._lc("Chec_k Link...","ContextMenu"),function(){ +window.open(_e.href); +},Xinha._lc("Opens this link in a new window","ContextMenu")],[Xinha._lc("_Remove Link...","ContextMenu"),function(){ +if(confirm(Xinha._lc("Please confirm that you want to unlink this element.","ContextMenu")+"\n"+Xinha._lc("Link points to:","ContextMenu")+" "+_e.href)){ +while(_e.firstChild){ +_e.parentNode.insertBefore(_e.firstChild,_e); +} +_e.parentNode.removeChild(_e); +} +},Xinha._lc("Unlink the current element","ContextMenu")]); +break; +case "td": +td=_5; +if(!_a){ +break; +} +_d.push(null,[Xinha._lc("C_ell Properties...","ContextMenu"),function(){ +tableOperation("TO-cell-prop"); +},Xinha._lc("Show the Table Cell Properties dialog","ContextMenu"),_8.btnList["TO-cell-prop"][1]],[Xinha._lc("Insert Cell After","ContextMenu"),function(){ +tableOperation("TO-cell-insert-after"); +},Xinha._lc("Insert Cell After","ContextMenu"),_8.btnList["TO-cell-insert-after"][1]],[Xinha._lc("Insert Cell Before","ContextMenu"),function(){ +tableOperation("TO-cell-insert-before"); +},Xinha._lc("Insert Cell After","ContextMenu"),_8.btnList["TO-cell-insert-before"][1]],[Xinha._lc("Delete Cell","ContextMenu"),function(){ +tableOperation("TO-cell-delete"); +},Xinha._lc("Delete Cell","ContextMenu"),_8.btnList["TO-cell-delete"][1]],[Xinha._lc("Merge Cells","ContextMenu"),function(){ +tableOperation("TO-cell-merge"); +},Xinha._lc("Merge Cells","ContextMenu"),_8.btnList["TO-cell-merge"][1]]); +break; +case "tr": +tr=_5; +if(!_a){ +break; +} +_d.push(null,[Xinha._lc("Ro_w Properties...","ContextMenu"),function(){ +tableOperation("TO-row-prop"); +},Xinha._lc("Show the Table Row Properties dialog","ContextMenu"),_8.btnList["TO-row-prop"][1]],[Xinha._lc("I_nsert Row Before","ContextMenu"),function(){ +tableOperation("TO-row-insert-above"); +},Xinha._lc("Insert a new row before the current one","ContextMenu"),_8.btnList["TO-row-insert-above"][1]],[Xinha._lc("In_sert Row After","ContextMenu"),function(){ +tableOperation("TO-row-insert-under"); +},Xinha._lc("Insert a new row after the current one","ContextMenu"),_8.btnList["TO-row-insert-under"][1]],[Xinha._lc("_Delete Row","ContextMenu"),function(){ +tableOperation("TO-row-delete"); +},Xinha._lc("Delete the current row","ContextMenu"),_8.btnList["TO-row-delete"][1]]); +break; +case "table": +_f=_5; +if(!_a){ +break; +} +_d.push(null,[Xinha._lc("_Table Properties...","ContextMenu"),function(){ +tableOperation("TO-table-prop"); +},Xinha._lc("Show the Table Properties dialog","ContextMenu"),_8.btnList["TO-table-prop"][1]],[Xinha._lc("Insert _Column Before","ContextMenu"),function(){ +tableOperation("TO-col-insert-before"); +},Xinha._lc("Insert a new column before the current one","ContextMenu"),_8.btnList["TO-col-insert-before"][1]],[Xinha._lc("Insert C_olumn After","ContextMenu"),function(){ +tableOperation("TO-col-insert-after"); +},Xinha._lc("Insert a new column after the current one","ContextMenu"),_8.btnList["TO-col-insert-after"][1]],[Xinha._lc("De_lete Column","ContextMenu"),function(){ +tableOperation("TO-col-delete"); +},Xinha._lc("Delete the current column","ContextMenu"),_8.btnList["TO-col-delete"][1]]); +break; +case "body": +_d.push(null,[Xinha._lc("Justify Left","ContextMenu"),function(){ +_7.execCommand("justifyleft"); +},null,_8.btnList["justifyleft"][1]],[Xinha._lc("Justify Center","ContextMenu"),function(){ +_7.execCommand("justifycenter"); +},null,_8.btnList["justifycenter"][1]],[Xinha._lc("Justify Right","ContextMenu"),function(){ +_7.execCommand("justifyright"); +},null,_8.btnList["justifyright"][1]],[Xinha._lc("Justify Full","ContextMenu"),function(){ +_7.execCommand("justifyfull"); +},null,_8.btnList["justifyfull"][1]]); +break; +} +} +if(_b&&!_e){ +_9.push(null,[Xinha._lc("Make lin_k...","ContextMenu"),function(){ +_7.config.btnList["createlink"][3](_7); +},Xinha._lc("Create a link","ContextMenu"),_8.btnList["createlink"][1]]); +} +for(var i=0;i<_d.length;++i){ +_9.push(_d[i]); +} +if(!/html|body/i.test(_c.tagName)){ +_9.push(null,[Xinha._lc({string:"Remove the $elem Element...",replace:{elem:"<"+_c.tagName+">"}},"ContextMenu"),function(){ +if(confirm(Xinha._lc("Please confirm that you want to remove this element:","ContextMenu")+" "+_c.tagName)){ +var el=_c; +var p=el.parentNode; +p.removeChild(el); +if(Xinha.is_gecko){ +if(p.tagName.toLowerCase()=="td"&&!p.hasChildNodes()){ +p.appendChild(_7._doc.createElement("br")); +} +_7.forceRedraw(); +_7.focusEditor(); +_7.updateToolbar(); +if(_f){ +var _1e=_f.style.borderCollapse; +_f.style.borderCollapse="collapse"; +_f.style.borderCollapse="separate"; +_f.style.borderCollapse=_1e; +} +} +} +},Xinha._lc("Remove this node from the document","ContextMenu")],[Xinha._lc("Insert paragraph before","ContextMenu"),function(){ +insertPara(false); +},Xinha._lc("Insert a paragraph before the current node","ContextMenu")],[Xinha._lc("Insert paragraph after","ContextMenu"),function(){ +insertPara(true); +},Xinha._lc("Insert a paragraph after the current node","ContextMenu")]); +} +if(!_9[0]){ +_9.shift(); +} +return _9; +}; +ContextMenu.prototype.popupMenu=function(ev){ +var _20=this; +if(this.currentMenu){ +this.closeMenu(); +} +function getPos(el){ +var r={x:el.offsetLeft,y:el.offsetTop}; +if(el.offsetParent){ +var tmp=getPos(el.offsetParent); +r.x+=tmp.x; +r.y+=tmp.y; +} +return r; +} +function documentClick(ev){ +ev||(ev=window.event); +if(!_20.currentMenu){ +alert(Xinha._lc("How did you get here? (Please report!)","ContextMenu")); +return false; +} +var el=Xinha.is_ie?ev.srcElement:ev.target; +for(;el!=null&&el!=_20.currentMenu;el=el.parentNode){ +} +if(el==null){ +_20.closeMenu(); +} +} +var _26=[]; +function keyPress(ev){ +ev||(ev=window.event); +Xinha._stopEvent(ev); +if(ev.keyCode==27){ +_20.closeMenu(); +return false; +} +var key=String.fromCharCode(Xinha.is_ie?ev.keyCode:ev.charCode).toLowerCase(); +for(var i=_26.length;--i>=0;){ +var k=_26[i]; +if(k[0].toLowerCase()==key){ +k[1].__msh.activate(); +} +} +} +_20.closeMenu=function(){ +_20.currentMenu.parentNode.removeChild(_20.currentMenu); +_20.currentMenu=null; +Xinha._removeEvent(document,"mousedown",documentClick); +Xinha._removeEvent(_20.editordoc,"mousedown",documentClick); +if(_26.length>0){ +Xinha._removeEvent(_20.editordoc,"keypress",keyPress); +} +if(Xinha.is_ie){ +_20.iePopup.hide(); +} +}; +var _2b=Xinha.is_ie?ev.srcElement:ev.target; +var _2c=getPos(_20.editor._htmlArea); +var x=ev.clientX+_2c.x; +var y=ev.clientY+_2c.y; +var div; +var doc; +if(!Xinha.is_ie){ +doc=document; +}else{ +var _31=this.iePopup=window.createPopup(); +doc=_31.document; +doc.open(); +doc.write(""); +doc.close(); +} +div=doc.createElement("div"); +if(Xinha.is_ie){ +div.unselectable="on"; +} +div.oncontextmenu=function(){ +return false; +}; +div.className="htmlarea-context-menu"; +if(!Xinha.is_ie){ +div.style.left=div.style.top="0px"; +} +doc.body.appendChild(div); +var _32=doc.createElement("table"); +div.appendChild(_32); +_32.cellSpacing=0; +_32.cellPadding=0; +var _33=doc.createElement("tbody"); +_32.appendChild(_33); +var _34=this.getContextMenu(_2b); +for(var i=0;i<_34.length;++i){ +var _36=_34[i]; +var _37=doc.createElement("tr"); +_33.appendChild(_37); +if(Xinha.is_ie){ +_37.unselectable="on"; +}else{ +_37.onmousedown=function(ev){ +Xinha._stopEvent(ev); +return false; +}; +} +if(!_36){ +_37.className="separator"; +var td=doc.createElement("td"); +td.className="icon"; +var _3a=">"; +if(Xinha.is_ie){ +td.unselectable="on"; +_3a=" unselectable='on' style='height=1px'> "; +} +td.innerHTML=""; +var td1=td.cloneNode(true); +td1.className="label"; +_37.appendChild(td); +_37.appendChild(td1); +}else{ +var _3c=_36[0]; +_37.className="item"; +_37.__msh={item:_37,label:_3c,action:_36[1],tooltip:_36[2]||null,icon:_36[3]||null,activate:function(){ +_20.closeMenu(); +_20.editor.focusEditor(); +this.action(); +}}; +_3c=_3c.replace(/_([a-zA-Z0-9])/,"$1"); +if(_3c!=_36[0]){ +_26.push([RegExp.$1,_37]); +} +_3c=_3c.replace(/__/,"_"); +var td1=doc.createElement("td"); +if(Xinha.is_ie){ +td1.unselectable="on"; +} +_37.appendChild(td1); +td1.className="icon"; +if(_37.__msh.icon){ +var t=Xinha.makeBtnImg(_37.__msh.icon,doc); +td1.appendChild(t); +} +var td2=doc.createElement("td"); +if(Xinha.is_ie){ +td2.unselectable="on"; +} +_37.appendChild(td2); +td2.className="label"; +td2.innerHTML=_3c; +_37.onmouseover=function(){ +this.className+=" hover"; +_20.editor._statusBarTree.innerHTML=this.__msh.tooltip||" "; +}; +_37.onmouseout=function(){ +this.className="item"; +}; +_37.oncontextmenu=function(ev){ +this.__msh.activate(); +if(!Xinha.is_ie){ +Xinha._stopEvent(ev); +} +return false; +}; +_37.onmouseup=function(ev){ +var _41=(new Date()).getTime(); +if(_41-_20.timeStamp>500){ +this.__msh.activate(); +} +if(!Xinha.is_ie){ +Xinha._stopEvent(ev); +} +return false; +}; +} +} +if(!Xinha.is_ie){ +div.style.left=x+"px"; +div.style.top=y+"px"; +}else{ +this.iePopup.show(ev.screenX,ev.screenY,300,50); +var w=div.offsetWidth; +var h=div.offsetHeight; +this.iePopup.show(ev.screenX,ev.screenY,w,h); +} +this.currentMenu=div; +this.timeStamp=(new Date()).getTime(); +Xinha._addEvent(document,"mousedown",documentClick); +Xinha._addEvent(this.editordoc,"mousedown",documentClick); +if(_26.length>0){ +Xinha._addEvent(this.editordoc,"keypress",keyPress); +} +Xinha._stopEvent(ev); +return false; +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/menu.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/menu.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/menu.css 3 Jan 2016 20:47:28 -0000 1.1.2.1 @@ -0,0 +1,67 @@ +/* styles for the ContextMenu /HTMLArea */ +/* The ContextMenu plugin is (c) dynarch.com 2003. */ +/* Distributed under the same terms as HTMLArea itself */ + +div.htmlarea-context-menu { + position: absolute; + border: 1px solid #aca899; + padding: 2px; + background-color: #fff; + color: #000; + cursor: default; + z-index: 1000; +} + +div.htmlarea-context-menu table { + font: 11px tahoma,verdana,sans-serif; + border-collapse: collapse; +} + +div.htmlarea-context-menu tr.item td.icon img { +/* taken care of by xinha.makeBtnImg() */ +/* width: 18px; */ +/* height: 18px; */ +} + +div.htmlarea-context-menu tr.item td.icon { + padding: 0px 3px; + width: 18px; + height: 18px; + background-color: #cdf; +} + +div.htmlarea-context-menu tr.item td.label { + padding: 1px 10px 1px 3px; +} + +div.htmlarea-context-menu tr.separator td { + padding: 2px 0px; +} + +div.htmlarea-context-menu tr.separator td div { + border-top: 1px solid #aca899; + overflow: hidden; + position: relative; +} + +div.htmlarea-context-menu tr.separator td.icon { + background-color: #cdf; +} + +div.htmlarea-context-menu tr.separator td.icon div { +/* margin-left: 3px; */ + border-color: #fff; +} + +div.htmlarea-context-menu tr.separator td.label div { + margin-right: 3px; +} + +div.htmlarea-context-menu tr.item.hover { + background-color: #316ac5; + color: #fff; +} + +div.htmlarea-context-menu tr.item.hover td.icon { + background-color: #619af5; +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/de.js 3 Jan 2016 20:47:29 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Raimund Meyer xinha@ray-of-light.org +{ + "Cut": "Ausschneiden", + "Copy": "Kopieren", + "Paste": "Einfügen", + "_Image Properties...": "Eigenschaften", + "Show the image properties dialog": "Fenster für die Bildoptionen anzeigen", + "_Modify Link...": "Link ändern", + "Current URL is": "Aktuelle URL ist", + "Chec_k Link...": "Link testen", + "Opens this link in a new window": "Diesen Link in neuem Fenster öffnen", + "_Remove Link...": "Link entfernen", + "Please confirm that you want to unlink this element.": "Wollen sie diesen Link wirklich entfernen?", + "Link points to:": "Link zeigt auf:", + "Unlink the current element": "Link auf Element entfernen", + "C_ell Properties...": "Zellenoptionen", + "Show the Table Cell Properties dialog": "Zellenoptionen anzeigen", + "Ro_w Properties...": "Zeilenoptionen", + "Show the Table Row Properties dialog": "Zeilenoptionen anzeigen", + "I_nsert Row Before": "Zeile einfügen vor Position", + "Insert a new row before the current one": "Zeile einfügen vor der aktuellen Position", + "In_sert Row After": "Zeile einügen nach Position", + "Insert a new row after the current one": "Zeile einfügen nach der aktuellen Position", + "_Delete Row": "Zeile löschen", + "Delete the current row": "Zeile löschen", + "_Table Properties...": "Tabellenoptionen", + "Show the Table Properties dialog": "Tabellenoptionen anzeigen", + "Insert _Column Before": "Spalte einfügen vor Position", + "Insert a new column before the current one": "Spalte einfügen vor der aktuellen Position", + "Insert C_olumn After": "Spalte einfügen nach Position", + "Insert a new column after the current one": "Spalte einfügen nach der aktuellen Position", + "De_lete Column": "Spalte löschen", + "Delete the current column": "Spalte löschen", + "Justify Left": "Linksbündig", + "Justify Center": "Zentriert", + "Justify Right": "Rechtsbündig", + "Justify Full": "Blocksatz", + "Make lin_k...": "Link erstellen", + "Create a link": "Link erstellen", + "Remove the $elem Element...": "Element $elem entfernen...", + "Please confirm that you want to remove this element:": "Wollen sie dieses Element wirklich entfernen?", + "Remove this node from the document": "Dieses Element aus dem Dokument entfernen", + "Insert paragraph before": "Absatz einfügen vor Position", + "Insert a paragraph before the current node": "Absatz einfügen vor der aktuellen Position", + "Insert paragraph after": "Absatz einfügen hinter Position", + "Insert a paragraph after the current node": "Absatz einfügen hinter der aktuellen Position", + "How did you get here? (Please report!)": "Wie sind Sie denn hier hin gekommen? (Please report!)" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/el.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/el.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/el.js 3 Jan 2016 20:47:29 -0000 1.1.2.1 @@ -0,0 +1,47 @@ +// I18N constants +// LANG: "el", ENCODING: UTF-8 +// Author: Dimitris Glezos, dimitris@glezos.com +{ + "Cut": "ΞΟΞΏΞΊΞΏΟΞ�", + "Copy": "ΞΞ½ΟΞΉΞ³ΟΞ±ΟΞ�", + "Paste": "ΞΟΞΉΞΊΟλληΟΞ·", + "_Image Properties...": "ΞδιΟΟΞ·ΟΞ΅Ο ΞΞΉΞΊΟΞ½Ξ±Ο...", + "_Modify Link...": "Ξ�ΟΞΏΟΞΏΟΞΏΞ―Ξ·ΟΞ· ΟΟ Ξ½Ξ΄ΞΟΞΌΞΏΟ ...", + "Chec_k Link...": "ΞλΡγΟΞΏΟ ΟΟ Ξ½Ξ΄ΞΟΞΌΟΞ½...", + "_Remove Link...": "ΞΞΉΞ±Ξ³ΟΞ±ΟΞ� ΟΟ Ξ½Ξ΄ΞΟΞΌΞΏΟ ...", + "C_ell Properties...": "ΞδιΟΟΞ·ΟΞ΅Ο ΞΊΞ΅Ξ»ΞΉΞΏΟ...", + "Ro_w Properties...": "ΞδιΟΟΞ·ΟΞ΅Ο Ξ³ΟΞ±ΞΌΞΌΞ�Ο...", + "I_nsert Row Before": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� Ξ³ΟΞ±ΞΌΞΌΞ�Ο ΟΟΞΉΞ½", + "In_sert Row After": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� Ξ³ΟΞ±ΞΌΞΌΞ�Ο ΞΌΞ΅ΟΞ¬", + "_Delete Row": "ΞΞΉΞ±Ξ³ΟΞ±ΟΞ� Ξ³ΟΞ±ΞΌΞΌΞ�Ο", + "_Table Properties...": "ΞδιΟΟΞ·ΟΞ΅Ο ΟΞ―Ξ½Ξ±ΞΊΞ±...", + "Insert _Column Before": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� ΟΟΞ�Ξ»Ξ·Ο ΟΟΞΉΞ½", + "Insert C_olumn After": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� ΟΟΞ�Ξ»Ξ·Ο ΞΌΞ΅ΟΞ¬", + "De_lete Column": "ΞΞΉΞ±Ξ³ΟΞ±ΟΞ� ΟΟΞ�ληΟ", + "Justify Left": "Ξ£ΟΞΏΞ―ΟΞ·ΟΞ· ΞΟΞΉΟΟΞ΅ΟΞ¬", + "Justify Center": "Ξ£ΟΞΏΞ―ΟΞ·ΟΞ· ΞΞΞ½ΟΟΞΏ", + "Justify Right": "Ξ£ΟΞΏΞ―ΟΞ·ΟΞ· ΞΡξιά", + "Justify Full": "Ξ Ξ»Ξ�ΟΞ·Ο Ξ£ΟΞΏΞ―ΟΞ·ΟΞ·", + "Make lin_k...": "ΞΞ·ΞΌΞΉΞΏΟ ΟΞ³Ξ―Ξ± ΟΟ Ξ½Ξ΄ΞΟΞΌΞΏΟ ...", + "Remove the $elem Element...": "ΞΟΞ±Ξ―ΟΞ΅ΟΞ· $elem ΟΟΞΏΞΉΟΞ΅Ξ―ΞΏΟ ...", + "Please confirm that you want to remove this element:": "ΞΞ―ΟΟΞ΅ Ξ²ΞΞ²Ξ±ΞΉΞΏΟ ΟΟΟ ΞΈΞλΡΟΞ΅ Ξ½Ξ± Ξ±ΟΞ±ΞΉΟΞΟΞ΅ΟΞ΅ ΟΞΏ ΟΟΞΏΞΉΟΡίο ", + "Remove this node from the document": "ΞΟΞ±Ξ―ΟΞ΅ΟΞ· Ξ±Ο ΟΞΏΟ ΟΞΏΟ ΞΊΟΞΌΞ²ΞΏΟ Ξ±ΟΟ ΟΞΏ ΞΞ³Ξ³ΟΞ±ΟΞΏ", + "How did you get here? (Please report!)": "Ξ ΟΟ Ξ�ΟΞΈΞ±ΟΞ΅ ΞΌΞΟΟΞΉ ΡδΟ; (Ξ Ξ±ΟακαλοΟΞΌΞ΅ Ξ±Ξ½Ξ±ΟΞΟΞ΅ΟΞ΅ ΟΞΏ!)", + "Show the image properties dialog": "ΞΞΌΟάνιΟΞ· διαλΟΞ³ΞΏΟ ΞΌΞ΅ ΟΞΉΟ ΞδιΟΟΞ·ΟΞ΅Ο Ξ΅ΞΉΞΊΟΞ½Ξ±Ο", + "Modify URL": "Ξ�ΟΞΏΟΞΏΟΞΏΞ―Ξ·ΟΞ· URL", + "Current URL is": "Ξ�ΞΏ ΟΟΞΟΟΞ½ URL Ρίναι", + "Opens this link in a new window": "ΞνοίγΡι Ξ±Ο ΟΟ ΟΞΏΞ½ ΟΟνδΡΟΞΌΞΏ ΟΞ΅ ΞΞ½Ξ± Ξ½ΞΞΏ ΟΞ±ΟΞ¬ΞΈΟ ΟΞΏ", + "Please confirm that you want to unlink this element.": "ΞΞ―ΟΟΞ΅ Ξ²ΞΞ²Ξ±ΞΉΞΏΟ ΟΟΟ ΞΈΞλΡΟΞ΅ Ξ½Ξ± Ξ±ΟΞ±ΞΉΟΞΟΞ΅ΟΞ΅ ΟΞΏΞ½ ΟΟνδΡΟΞΌΞΏ Ξ±ΟΟ Ξ±Ο ΟΟ ΟΞΏ ΟΟΞΏΞΉΟΡίο:", + "Link points to:": "Ξ ΟΟΞ½Ξ΄Ξ΅ΞΌΞΏΟ ΞΏΞ΄Ξ·Ξ³Ξ΅Ξ― ΡδΟ:", + "Unlink the current element": "ΞΟΞ±Ξ―ΟΞ΅ΟΞ· ΟΟ Ξ½Ξ΄ΞΟΞΌΞΏΟ Ξ±ΟΟ ΟΞΏ ΟΞ±ΟΟΞ½ ΟΟΞΏΞΉΟΡίο", + "Show the Table Cell Properties dialog": "ΞΞΌΟάνιΟΞ· διαλΟΞ³ΞΏΟ ΞΌΞ΅ ΟΞΉΟ ΞδιΟΟΞ·ΟΞ΅Ο ΞΊΞ΅Ξ»ΞΉΞΏΟ Ξ Ξ―Ξ½Ξ±ΞΊΞ±", + "Show the Table Row Properties dialog": "ΞΞΌΟάνιΟΞ· διαλΟΞ³ΞΏΟ ΞΌΞ΅ ΟΞΉΟ ΞδιΟΟΞ·ΟΞ΅Ο Ξ³ΟΞ±ΞΌΞΌΞ�Ο Ξ Ξ―Ξ½Ξ±ΞΊΞ±", + "Insert a new row before the current one": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� ΞΌΞΉΞ±Ο Ξ½ΞΞ±Ο Ξ³ΟΞ±ΞΌΞΌΞ�Ο ΟΟΞΉΞ½ ΟΞ·Ξ½ Ξ΅ΟιλΡγμΞΞ½Ξ·", + "Insert a new row after the current one": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� ΞΌΞΉΞ±Ο Ξ½ΞΞ±Ο Ξ³ΟΞ±ΞΌΞΌΞ�Ο ΞΌΞ΅ΟΞ¬ ΟΞ·Ξ½ Ξ΅ΟιλΡγμΞΞ½Ξ·", + "Delete the current row": "ΞΞΉΞ±Ξ³ΟΞ±ΟΞ� Ξ΅ΟιλΡγμΞΞ½Ξ·Ο Ξ³ΟΞ±ΞΌΞΌΞ�Ο", + "Show the Table Properties dialog": "ΞΞΌΟάνιΟΞ· διαλΟΞ³ΞΏΟ ΞΌΞ΅ ΟΞΉΟ ΞδιΟΟΞ·ΟΞ΅Ο Ξ Ξ―Ξ½Ξ±ΞΊΞ±", + "Insert a new column before the current one": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� Ξ½ΞΞ±Ο ΟΟΞ�Ξ»Ξ·Ο ΟΟΞΉΞ½ ΟΞ·Ξ½ Ξ΅ΟιλΡγμΞΞ½Ξ·", + "Insert a new column after the current one": "ΞΞΉΟΞ±Ξ³ΟΞ³Ξ� Ξ½ΞΞ±Ο ΟΟΞ�Ξ»Ξ·Ο ΞΌΞ΅ΟΞ¬ ΟΞ·Ξ½ Ξ΅ΟιλΡγμΞΞ½Ξ·", + "Delete the current column": "ΞΞΉΞ±Ξ³ΟΞ±ΟΞ� Ξ΅ΟιλΡγμΞΞ½Ξ·Ο ΟΟΞ�ληΟ", + "Create a link": "ΞΞ·ΞΌΞΉΞΏΟ ΟΞ³Ξ―Ξ± ΟΟ Ξ½Ξ΄ΞΟΞΌΞΏΟ " +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/es.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/es.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/es.js 3 Jan 2016 20:47:29 -0000 1.1.2.1 @@ -0,0 +1,51 @@ +// I18N constants +// LANG: "es", ENCODING: UTF-8 +// translated: Derick Leony+{ + "Cut": "Cortar", + "Copy": "Copiar", + "Paste": "Pegar", + "_Image Properties...": "_Propiedades de imagen...", + "_Modify Link...": "_Modificar hipervínculo...", + "Chec_k Link...": "_Verificar hipervínculo...", + "_Remove Link...": "_Suprimir hipervínculo...", + "C_ell Properties...": "P_ropiedades de celda...", + "Ro_w Properties...": "Pr_opiedades de la fila...", + "I_nsert Row Before": "_Insertar fila delante", + "In_sert Row After": "I_nsertar fila detrás", + "_Delete Row": "S_uprimir fila", + "_Table Properties...": "Propi_edades de la tabla...", + "Insert _Column Before": "Insert_ar columna delante", + "Insert C_olumn After": "Insertar _columna detrás", + "De_lete Column": "_Suprimir columna", + "Justify Left": "Alinear a la izquierda", + "Justify Center": "Centrar", + "Justify Right": "Alinear a la derecha", + "Justify Full": "Justificar", + "Make lin_k...": "Convertir en _hipervínculo...", + "Remove the $elem Element...": "Suprimir el elemento $elem...", + "Insert paragraph before": "Insertar párrafo delante", + "Insert paragraph after": "Insertar párrafo detrás", + "Please confirm that you want to remove this element:": "Por favor, confirme que desea suprimir este elemento:", + "Remove this node from the document": "Suprimir este nodo del documento", + "How did you get here? (Please report!)": "¿Cómo ha llegado aquí? (¡Por favor reporte el error!)", + "Show the image properties dialog": "Mostrar el diálogo de propiedades de imagen", + "Modify URL": "Modificar URL", + "Current URL is": "La URL actual es", + "Opens this link in a new window": "Abre este hipervínculo en una ventana nueva", + "Please confirm that you want to unlink this element.": "Por favor, confirme que desea suprimir el hipervínculo de este elemento.", + "Link points to:": "El hipervínculo apunta a:", + "Unlink the current element": "Suprimir el hipervínculo del elemento actual", + "Show the Table Cell Properties dialog": "Mostrar el diálogo Propiedades de la Celda", + "Show the Table Row Properties dialog": "Mostrar el diálogo Propiedades de la Fila", + "Insert a new row before the current one": "Insertar una fila nueva antes de la actual", + "Insert a new row after the current one": "Insertar una fila nueva después de la actual", + "Delete the current row": "Suprimir la fila actual", + "Show the Table Properties dialog": "Mostrar el diálogo Propiedades de la Tabla", + "Insert a new column before the current one": "Insertar una columna nueva antes de la actual", + "Insert a new column after the current one": "Insertar una columna nueva después de la actual", + "Delete the current column": "Suprimir la columna actual", + "Create a link": "Crear un hipervínculo", + "Insert a paragraph before the current node": "Insertar un párrafo antes del nodo actual", + "Insert a paragraph after the current node": "Insertar un párrafo después del nodo actual" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/fr.js 3 Jan 2016 20:47:29 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Cut": "Couper", + "Copy": "Copier", + "Paste": "Coller", + "_Image Properties...": "_Propriétés de l'image...", + "_Modify Link...": "_Modifier le lien...", + "Chec_k Link...": "_Vérifier le lien...", + "_Remove Link...": "_Supprimer le lien...", + "C_ell Properties...": "P_ropriétés de la cellule...", + "Ro_w Properties...": "Pr_opriétés de la rangée...", + "I_nsert Row Before": "Insérer une rangée a_vant", + "In_sert Row After": "Insér_er une rangée après", + "_Delete Row": "Suppr_imer une rangée", + "_Table Properties...": "Proprié_tés de la table...", + "Insert _Column Before": "I_nsérer une colonne avant", + "Insert C_olumn After": "Insérer une colonne après", + "De_lete Column": "_Supprimer la colonne", + "Justify Left": "Aligner à gauche", + "Justify Center": "Aligner au centre", + "Justify Right": "Aligner à droite", + "Justify Full": "Justifier", + "Make lin_k...": "Convertir en lien...", + "Remove the $elem Element...": "Supprimer Élément $elem...", + "Insert paragraph before": "Insérer un paragraphe avant", + "Insert paragraph after": "Insérer un paragraphe après", + "Please confirm that you want to remove this element:": "Confirmer la suppression de cet élément:", + "Remove this node from the document": "Supprimer ce noeud du document", + "How did you get here? (Please report!)": "Comment êtes-vous arrivé ici ? (Reportez le bug SVP !)", + "Show the image properties dialog": "Afficher le dialogue des propriétés d'image", + "Modify URL": "Modifier l'URL", + "Current URL is": "L'URL courante est", + "Opens this link in a new window": "Ouvrir ce lien dans une nouvelle fenêtre", + "Please confirm that you want to unlink this element.": "Voulez-vous vraiment enlever le lien présent sur cet élément.", + "Link points to:": "Le lien pointe sur:", + "Unlink the current element": "Enlever le lien sur cet élément", + "Show the Table Cell Properties dialog": "Afficher la boite de propriété des cellules", + "Show the Table Row Properties dialog": "Afficher la boite de propriété des rangées", + "Insert a new row before the current one": "Insérer une nouvelle rangée avant celle-ci", + "Insert a new row after the current one": "Insérer une nouvelle rangée après celle-ci", + "Delete the current row": "Supprimer la rangée courante", + "Show the Table Properties dialog": "Afficher la boite de propriété de tableau", + "Insert a new column before the current one": "Insérer une nouvelle rangée avant celle-ci", + "Insert a new column after the current one": "Insérer une nouvelle colonne après celle-ci", + "Delete the current column": "Supprimer cette colonne", + "Create a link": "Créer un lien", + "Insert a paragraph before the current node": "Insérer un paragraphe avant le noeud courant", + "Insert a paragraph after the current node": "Insérer un paragraphe après le noeud courant" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/he.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/he.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/he.js 3 Jan 2016 20:47:30 -0000 1.1.2.1 @@ -0,0 +1,47 @@ +// I18N constants +// LANG: "he", ENCODING: UTF-8 +// Author: Liron Newman, http://www.eesh.net, +{ + "Cut": "גזור", + "Copy": "העתק", + "Paste": "הדבק", + "_Image Properties...": "_מאפייני תמונה...", + "_Modify Link...": "_שנה קישור...", + "Chec_k Link...": "בדו_ק קישור...", + "_Remove Link...": "_הסר קישור...", + "C_ell Properties...": "מאפייני ת_א...", + "Ro_w Properties...": "מאפייני _טור...", + "I_nsert Row Before": "ה_כנס שורה לפני", + "In_sert Row After": "הכנ_ס שורה אחרי", + "_Delete Row": "_מחק שורה", + "_Table Properties...": "מאפייני ט_בלה...", + "Insert _Column Before": "הכנס _טור לפני", + "Insert C_olumn After": "הכנס ט_ור אחרי", + "De_lete Column": "מח_ק טור", + "Justify Left": "ישור לשמאל", + "Justify Center": "ישור למרכז", + "Justify Right": "ישור לימין", + "Justify Full": "ישור לשורה מלאה", + "Make lin_k...": "צור קי_שור...", + "Remove the $elem Element...": "הסר את אלמנט ה- $elem...", + "Please confirm that you want to remove this element:": "אנא אשר שברצונך להסיר את האלמנט הזה:", + "Remove this node from the document": "הסרה של node זה מהמסמך", + "How did you get here? (Please report!)": "איך הגעת הנה? (אנא דווח!)", + "Show the image properties dialog": "מציג את חלון הדו-שיח של מאפייני תמונה", + "Modify URL": "שינוי URL", + "Current URL is": "URL נוכחי הוא", + "Opens this link in a new window": "פתיחת קישור זה בחלון חדש", + "Please confirm that you want to unlink this element.": "אנא אשר שאתה רוצה לנתק את אלמנט זה.", + "Link points to:": "הקישור מצביע אל:", + "Unlink the current element": "ניתוק את האלמנט הנוכחי", + "Show the Table Cell Properties dialog": "מציג את חלון הדו-שיח של מאפייני תא בטבלה", + "Show the Table Row Properties dialog": "מציג את חלון הדו-שיח של מאפייני שורה בטבלה", + "Insert a new row before the current one": "הוספת שורה חדשה לפני הנוכחית", + "Insert a new row after the current one": "הוספת שורה חדשה אחרי הנוכחית", + "Delete the current row": "מחיקת את השורה הנוכחית", + "Show the Table Properties dialog": "מציג את חלון הדו-שיח של מאפייני טבלה", + "Insert a new column before the current one": "הוספת טור חדש לפני הנוכחי", + "Insert a new column after the current one": "הוספת טור חדש אחרי הנוכחי", + "Delete the current column": "מחיקת את הטור הנוכחי", + "Create a link": "יצירת קישור" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/ja.js 3 Jan 2016 20:47:30 -0000 1.1.2.1 @@ -0,0 +1,53 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Cut": "切り取り", + "Copy": "コピー", + "Paste": "貼り付け", + "_Image Properties...": "画像のプロパティ(_I)...", + "Show the image properties dialog": "この画像のプロパティダイアログを表示します", + "_Modify Link...": "リンクの修正(_M)...", + "Current URL is": "現在のURL", + "Chec_k Link...": "リンクを確認(_K)...", + "Opens this link in a new window": "このリンクを新しいウィンドウで開きます", + "_Remove Link...": "リンクの削除(_R)", + "Please confirm that you want to unlink this element.": "この要素のリンクを削除します。よろしいですか。", + "Link points to:": "リンク先:", + "Unlink the current element": "この要素のリンクを解除", + "C_ell Properties...": "セルのプロパティ(_E)...", + "Ro_w Properties...": "行のプロパティ(_W)...", + "Show the Table Row Properties dialog": "テーブル行のプロパティダイアログを表示します", + "I_nsert Row Before": "上に行を挿入(_N)", + "Insert a new row before the current one": "選択中の行の上に一行挿入します", + "In_sert Row After": "下に行を挿入(_S)", + "Insert a new row after the current one": "選択中の行の下に一行挿入します", + "_Delete Row": "行の削除(_D)", + "Delete the current row": "選択中の行を削除します", + "_Table Properties...": "テーブルのプロパティ(_T)...", + "Show the Table Properties dialog": "テーブルのプロパティダイアログを表示します", + "Insert _Column Before": "左に列を挿入(_C)", + "Insert a new column before the current one": "選択中の列の左に一列挿入します", + "Insert C_olumn After": "右に列を挿入(_O)", + "Insert a new column after the current one": "選択中の列の右に一列挿入します", + "De_lete Column": "列の削除(_L)", + "Delete the current column": "選択中の列を削除します", + "Justify Left": "左寄せ", + "Justify Center": "中央寄せ", + "Justify Right": "右寄せ", + "Justify Full": "均等割付", + "Make lin_k...": "リンクの作成(_K)...", + "Create a link": "新たなリンクを作成します", + "Remove the $elem Element...": "$elem 要素を削除 ...", + "Please confirm that you want to remove this element:": "この要素を削除します。よろしいですか。:", + "Remove this node from the document": "ドキュメントからこのノードを削除します", + "Insert paragraph before": "前に段落を挿入", + "Insert a paragraph before the current node": "選択中のノードの手前に段落を挿入します", + "Insert paragraph after": "後に段落を挿入", + "Insert a paragraph after the current node": "選択中のノードの後に段落を挿入します", + "How did you get here? (Please report!)": "どうやってここに来ましたか?(どうか報告を!)", + "Show the Table Cell Properties dialog": "テーブルセルのプロパティダイアログを表示します", + "Insert Cell Before": "前にセルを挿入", + "Insert Cell After": "後にセルを挿入", + "Delete Cell": "セルの削除", + "Merge Cells": "セルの結合" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/nb.js 3 Jan 2016 20:47:30 -0000 1.1.2.1 @@ -0,0 +1,53 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +// Used key commands +// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w : English +// H B j R m F v : Norwegian +{ + "Cut": "Klipp ut", + "Copy": "Kopier", + "Paste": "Lim inn", + "_Image Properties...": "_Bildeegenskaper...", + "Show the image properties dialog": "Vis bildeegenskaper", + "_Modify Link...": "_Rediger Link...", + "Current URL is": "Gjeldende URL er", + "Chec_k Link...": "Sje_kk Link...", + "Opens this link in a new window": "Åpner denne link i nytt vindu", + "_Remove Link...": "_Fjerne Link...", + "Please confirm that you want to unlink this element.": "Vennligst bekreft at du ønsker å fjerne link på elementet", + "Link points to:": "Link peker til:", + "Unlink the current element": "Fjerne link på gjeldende element", + "C_ell Properties...": "C_elleegenskaper...", + "Show the Table Cell Properties dialog": "Vis egenskaper for celle", + "Ro_w Properties...": "Rad Egenskaper... (_w)", + "Show the Table Row Properties dialog": "Vis egenskaper for rad", + "I_nsert Row Before": "Sett I_nn rad før", + "Insert a new row before the current one": "Sett inn ny rad før gjeldende", + "In_sert Row After": "_Sett inn rad etter", + "Insert a new row after the current one": "Sett inn ny rad etter gjeldende", + "_Delete Row": "Slett rad (_d)", + "Delete the current row": "Slett gjeldende rad", + "_Table Properties...": "_Tabellegenskaper...", + "Show the Table Properties dialog": "Vis egenskaper for tabellen", + "Insert _Column Before": "Sett inn kolonne etter (_c)", + "Insert a new column before the current one": "Sett inn kolonne før gjeldende", + "Insert C_olumn After": "Sett inn k_olonne etter", + "Insert a new column after the current one": "Sett inn kolonne etter gjeldende", + "De_lete Column": "S_lett kolonne", + "Delete the current column": "Slett gjeldende kolonne", + "Justify Left": "_Venstrejuster", + "Justify Center": "_Midtjuster", + "Justify Right": "_Høyrejuster", + "Justify Full": "Blokk_juster", + "Make lin_k...": "Lag len_ke...", + "Create a link": "Lag ny link", + "Remove the $elem Element...": "Fjerne $elem elementet...", + "Please confirm that you want to remove this element:": "Vennligst bekreft at du ønsker å fjerne elementet:", + "Remove this node from the document": "Fjerne denne node fra dokumentet", + "Insert paragraph before": "Sett inn paragraf før", + "Insert a paragraph before the current node": "Sett inn paragraf før gjeldende node", + "Insert paragraph after": "Sett inn paragraf etter", + "Insert a paragraph after the current node": "Sett inn paragraf etter gjeldende node", + "How did you get here? (Please report!)": "Hva skjedde? (Vennligst beskriv)" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/nl.js 3 Jan 2016 20:47:30 -0000 1.1.2.1 @@ -0,0 +1,47 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl +{ + "Cut": "Knippen", + "Copy": "Kopiëren", + "Paste": "Plakken", + "_Image Properties...": "Eigenschappen afbeelding...", + "_Modify Link...": "Hyperlin_k aanpassen...", + "Chec_k Link...": "Controleer hyperlin_k...", + "_Remove Link...": "Ve_rwijder hyperlink...", + "C_ell Properties...": "C_eleigenschappen...", + "Ro_w Properties...": "Rijeigenscha_ppen...", + "I_nsert Row Before": "Rij invoegen boven", + "In_sert Row After": "Rij invoegen onder", + "_Delete Row": "Rij _verwijderen", + "_Table Properties...": "_Tabeleigenschappen...", + "Insert _Column Before": "Kolom invoegen voor", + "Insert C_olumn After": "Kolom invoegen na", + "De_lete Column": "Kolom verwijderen", + "Justify Left": "Links uitlijnen", + "Justify Center": "Centreren", + "Justify Right": "Rechts uitlijnen", + "Justify Full": "Uitvullen", + "Make lin_k...": "Maak hyperlin_k...", + "Remove the $elem Element...": "Verwijder het $elem element...", + "Please confirm that you want to remove this element:": "Is het werkelijk de bedoeling dit element te verwijderen:", + "Remove this node from the document": "Verwijder dit punt van het document", + "How did you get here? (Please report!)": "Hoe kwam je hier? (A.U.B. doorgeven!)", + "Show the image properties dialog": "Laat het afbeeldingseigenschappen dialog zien", + "Modify URL": "Aanpassen URL", + "Current URL is": "Huidig URL is", + "Opens this link in a new window": "Opend deze hyperlink in een nieuw venster", + "Please confirm that you want to unlink this element.": "Is het werkelijk de bedoeling dit element te unlinken.", + "Link points to:": "Hyperlink verwijst naar:", + "Unlink the current element": "Unlink het huidige element", + "Show the Table Cell Properties dialog": "Laat de tabel celeigenschappen dialog zien", + "Show the Table Row Properties dialog": "Laat de tabel rijeigenschappen dialog zien", + "Insert a new row before the current one": "Voeg een nieuwe rij in boven de huidige", + "Insert a new row after the current one": "Voeg een nieuwe rij in onder de huidige", + "Delete the current row": "Verwijder de huidige rij", + "Show the Table Properties dialog": "Laat de tabel eigenschappen dialog zien", + "Insert a new column before the current one": "Voeg een nieuwe kolom in voor de huidige", + "Insert a new column after the current one": "Voeg een nieuwe kolom in na de huidige", + "Delete the current column": "Verwijder de huidige kolom", + "Create a link": "Maak een hyperlink" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/no.js 3 Jan 2016 20:47:30 -0000 1.1.2.1 @@ -0,0 +1,53 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +// Used key commands +// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w : English +// H B j R m F v : Norwegian +{ + "Cut": "Klipp ut", + "Copy": "Kopier", + "Paste": "Lim inn", + "_Image Properties...": "_Bildeegenskaper...", + "Show the image properties dialog": "Vis bildeegenskaper", + "_Modify Link...": "_Rediger Link...", + "Current URL is": "Gjeldende URL er", + "Chec_k Link...": "Sje_kk Link...", + "Opens this link in a new window": "Åpner denne link i nytt vindu", + "_Remove Link...": "_Fjerne Link...", + "Please confirm that you want to unlink this element.": "Vennligst bekreft at du ønsker å fjerne link på elementet", + "Link points to:": "Link peker til:", + "Unlink the current element": "Fjerne link på gjeldende element", + "C_ell Properties...": "C_elleegenskaper...", + "Show the Table Cell Properties dialog": "Vis egenskaper for celle", + "Ro_w Properties...": "Rad Egenskaper... (_w)", + "Show the Table Row Properties dialog": "Vis egenskaper for rad", + "I_nsert Row Before": "Sett I_nn rad før", + "Insert a new row before the current one": "Sett inn ny rad før gjeldende", + "In_sert Row After": "_Sett inn rad etter", + "Insert a new row after the current one": "Sett inn ny rad etter gjeldende", + "_Delete Row": "Slett rad (_d)", + "Delete the current row": "Slett gjeldende rad", + "_Table Properties...": "_Tabellegenskaper...", + "Show the Table Properties dialog": "Vis egenskaper for tabellen", + "Insert _Column Before": "Sett inn kolonne etter (_c)", + "Insert a new column before the current one": "Sett inn kolonne før gjeldende", + "Insert C_olumn After": "Sett inn k_olonne etter", + "Insert a new column after the current one": "Sett inn kolonne etter gjeldende", + "De_lete Column": "S_lett kolonne", + "Delete the current column": "Slett gjeldende kolonne", + "Justify Left": "_Venstrejuster", + "Justify Center": "_Midtjuster", + "Justify Right": "_Høyrejuster", + "Justify Full": "Blokk_juster", + "Make lin_k...": "Lag len_ke...", + "Create a link": "Lag ny link", + "Remove the $elem Element...": "Fjerne $elem elementet...", + "Please confirm that you want to remove this element:": "Vennligst bekreft at du ønsker å fjerne elementet:", + "Remove this node from the document": "Fjerne denne node fra dokumentet", + "Insert paragraph before": "Sett inn paragraf før", + "Insert a paragraph before the current node": "Sett inn paragraf før gjeldende node", + "Insert paragraph after": "Sett inn paragraf etter", + "Insert a paragraph after the current node": "Sett inn paragraf etter gjeldende node", + "How did you get here? (Please report!)": "Hva skjedde? (Vennligst beskriv)" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/pl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/pl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/pl.js 3 Jan 2016 20:47:31 -0000 1.1.2.1 @@ -0,0 +1,50 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl +{ + "Cut": "Wytnij", + "Copy": "Kopiuj", + "Paste": "Wklej", + "_Image Properties...": "Właściwości obrazka", + "Show the image properties dialog": "Pokaż okienko właściwości obrazka", + "_Modify Link...": "Zmień odnośnik", + "Current URL is": "Bieżący URL odnośnika", + "Chec_k Link...": "Sprawdź odnośnik", + "Opens this link in a new window": "Otwiera ten odnośnik w nowym oknie", + "_Remove Link...": "Usuń odnośnik", + "Please confirm that you want to unlink this element.": "Na pewno chcesz usunąć odnośnik?", + "Link points to:": "Odnośnik wskazuje na:", + "Unlink the current element": "Usuń odnośnik z zaznaczonego elementu", + "C_ell Properties...": "Właściwości komórki", + "Show the Table Cell Properties dialog": "Pokaż okno właściwości komórki", + "Ro_w Properties...": "Właściwości wiersza", + "Show the Table Row Properties dialog": "Pokaż okno właściwości wiersza", + "I_nsert Row Before": "Wstaw wiersz przed", + "Insert a new row before the current one": "Wstaw nowy wiersz przed bieżącym", + "In_sert Row After": "Wstaw wiersz po", + "Insert a new row after the current one": "Wstaw nowy wiersz po bieżącym", + "_Delete Row": "Usuń wiersz", + "Delete the current row": "Usuń bieżący wiersz", + "_Table Properties...": "Właściwości tabeli", + "Show the Table Properties dialog": "Pokaż okienko właściwości tabeli", + "Insert _Column Before": "Wstaw kolumnę przed", + "Insert a new column before the current one": "Wstaw nową kolumnę przed bieżącą", + "Insert C_olumn After": "Wstaw kolumnę po", + "Insert a new column after the current one": "Wstaw nową kolumnę po bieżącej", + "De_lete Column": "Usuń kolumnę", + "Delete the current column": "Usuwa bieżącą kolumnę", + "Justify Left": "Wyrównaj do lewej", + "Justify Center": "Wycentruj", + "Justify Right": "Wyrównaj do prawej", + "Justify Full": "Wyjustuj", + "Make lin_k...": "Utwórz odnośnik", + "Create a link": "Utwórz odnośnik", + "Remove the $elem Element...": "Usuń $elem...", + "Please confirm that you want to remove this element:": "Na pewno chcesz usunąć ten element?", + "Remove this node from the document": "Usuń ten element z dokumentu", + "Insert paragraph before": "Wstaw akapit przed", + "Insert a paragraph before the current node": "Wstaw akapit przed bieżącym elementem", + "Insert paragraph after": "Wstaw akapit po", + "Insert a paragraph after the current node": "Wstaw akapit po bieżącym elemencie", + "How did you get here? (Please report!)": "Jak tu trafiłeś (Proszę, podaj okoliczności!)" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/pt_br.js 3 Jan 2016 20:47:31 -0000 1.1.2.1 @@ -0,0 +1,65 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Brazilian Portuguese Translation +// Author: Marcio Barbosa, +// Site: www.mpg.com.br +// Please don´t remove this information - Por favor, não remova esta informação +// If you modify this source, please insert a comment with your name and e-mail +// Se modificar esta fonte, insira um comentário com seu nome e e-mail + +// Last revision: September 2007 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Cut": "Recortar", + "Copy": "Copiar", + "Paste": "Colar", + "_Image Properties...": "Propriedades da imagem...", + "Show the image properties dialog": "Mostrar a caixa de diálogo das Propriedades da imagem", + "_Modify Link...": "Modificar link", + "Current URL is": "A URL corrente é", + "Chec_k Link...": "Verificar Link...", + "Opens this link in a new window": "Abrir este link em uma nova janela", + "_Remove Link...": "Remover Link", + "Please confirm that you want to unlink this element.": "Por favor, confirme que deseja retirar o link do elemento.", + "Link points to:": "Link para:", + "Unlink the current element": "Remover link do elemento atual", + "C_ell Properties...": "Propriedades da célula", + "Show the Table Cell Properties dialog": "Mostrar caixa de diálogo de Propriedades da Célula", + "Ro_w Properties...": "Propriedades da Linha", + "Show the Table Row Properties dialog": "Mostrar caixa de diálogo de Propriedades da Linha", + "I_nsert Row Before": "Inserir linha antes deste ponto", + "Insert a new row before the current one": "Inserir uma nova linha antes desta", + "In_sert Row After": "Inserir linha depois deste ponto", + "Insert a new row after the current one": "Inserir uma linha após esta", + "_Delete Row": "Apagar linha", + "Delete the current row": "Apagar a linha atual", + "_Table Properties...": "Propriedades da Tabela", + "Show the Table Properties dialog": "Mostrar caixa de diálogo de Propriedades da Tabela", + "Insert _Column Before": "Inserir coluna antes deste ponto", + "Insert a new column before the current one": "Inserir uma nova coluna antes desta", + "Insert C_olumn After": "Inserir coluna após este ponto", + "Insert a new column after the current one": "Inserir uma nova coluna após esta", + "De_lete Column": "Apagar Coluna", + "Delete the current column": "Apagar a coluna atual", + "Justify Left": "Justificar à esquerda", + "Justify Center": "Justificar centralizado", + "Justify Right": "Justificar à direita", + "Justify Full": "Justificação completa", + "Make lin_k...": "Criar link...", + "Create a link": "Criar um novo link", + "Remove the $elem Element...": "Remover o elemento $elem...", + "Please confirm that you want to remove this element:": "Por favor, confirme que deseja remover este elemento:", + "Remove this node from the document": "Remover este nó do documento", + "Insert paragraph before": "Inserir um parágrafo antes", + "Insert a paragraph before the current node": "Inserir um parágrafo antes do nó atual", + "Insert paragraph after": "Inserir um parágrafo após", + "Insert a paragraph after the current node": "Inserir um parágrafo após o nó atual", + "How did you get here? (Please report!)": "Como você começou aqui? (Por favor, informe!)", + "Show the Table Cell Properties dialog": "Mostrar Propriedades da Tabelas", + "Insert Cell Before": "Inserir Célula Antes", + "Insert Cell After": "Inserir Célula Depois", + "Delete Cell": "Apagar Célula", + "Merge Cells": "Mesclar Células" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/sv.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/sv.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/ContextMenu/lang/sv.js 3 Jan 2016 20:47:31 -0000 1.1.2.1 @@ -0,0 +1,54 @@ +// I18N constants +// LANG: "sv", ENCODING: UTF-8 +// Swedish version for rev. 477 (Mar 2006) by Thomas Loo + +// TODO: Proper keybindings +// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w : English +// H B j R m F v : Swedish +{ + "Cut": "Klipp ut", + "Copy": "Kopiera", + "Paste": "Klistra in", + "_Image Properties...": "_Bildegenskaper...", + "Show the image properties dialog": "Visa bildegenskaper", + "_Modify Link...": "_Redigera Länk...", + "Current URL is": "Aktuellt URL är", + "Chec_k Link...": "Kontrollera länk...", + "Opens this link in a new window": "Öppna länk i nytt fönster", + "_Remove Link...": "_Ta bort länk...", + "Please confirm that you want to unlink this element.": "Bekräfta borttagning av länk", + "Link points to:": "Länken pekar mot:", + "Unlink the current element": "Ta bort länk kopplad till elementet", + "C_ell Properties...": "C_ellegenskaper...", + "Show the Table Cell Properties dialog": "Visa egenskaper for cellen", + "Ro_w Properties...": "Radegenskaper... (_w)", + "Show the Table Row Properties dialog": "Visa egenskaper för rad", + "I_nsert Row Before": "I_nfoga rad före", + "Insert a new row before the current one": "Infoga ny rad före aktuell", + "In_sert Row After": "Infoga rad efter aktuell rad", + "Insert a new row after the current one": "Infoga ny rad efter aktuell", + "_Delete Row": "Radera rad (_d)", + "Delete the current row": "T bort aktuell rad", + "_Table Properties...": "_Tabellegenskaper...", + "Show the Table Properties dialog": "Visa tabellegenskaper", + "Insert _Column Before": "Infoga kolumn efter (_c)", + "Insert a new column before the current one": "Infoga kolumn före aktuell", + "Insert C_olumn After": "Infoga k_olumn efter", + "Insert a new column after the current one": "Infoga kolumn efter aktuell", + "De_lete Column": "_Radera kolumn", + "Delete the current column": "Radera aktuell kolumn", + "Justify Left": "_Vänsterjustera", + "Justify Center": "_Centerjustera", + "Justify Right": "_Högerjustera", + "Justify Full": "Block_justera", + "Make lin_k...": "Skapa län_k...", + "Create a link": "SKapa ny länk", + "Remove the $elem Element...": "Radera elementet $elem...", + "Please confirm that you want to remove this element:": "Bekräfta borttagning av element:", + "Remove this node from the document": "Radera nod från dokumentet", + "Insert paragraph before": "Infoga paragraf före", + "Insert a paragraph before the current node": "Infoga paragraf före aktuell nod", + "Insert paragraph after": "Infoga paragraf efter", + "Insert a paragraph after the current node": "Infoga paragraf efter aktuell nod", + "How did you get here? (Please report!)": "Hur hamnade du här? (Beskriv förloppet)" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/DefinitionList.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/DefinitionList.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/DefinitionList.js 3 Jan 2016 20:47:31 -0000 1.1.2.1 @@ -0,0 +1,99 @@ +// DefinitionList plugin for Xinha +// Distributed under the same terms as Xinha itself. +// This notice MUST stay intact for use (see license.txt). + + +function DefinitionList(editor) { + this.editor = editor; + var cfg = editor.config; + var bl = DefinitionList.btnList; + var self = this; + // register the toolbar buttons provided by this plugin + for (var i = 0; i < bl.length; ++i) { + var btn = bl[i]; + if (!btn) { + continue; + } + var id = btn[0]; + cfg.registerButton(id, this._lc(btn[1]), editor.imgURL("ed_" + btn[0] + ".gif", "DefinitionList"), false, + function(editor, id) { + // dispatch button press event + self.buttonPress(editor, id); + }); + } + + // We'll insert the buttons next to the UL/OL buttons, if they exist. + // If neither of those buttons exists, addToolbarElement puts our buttons + // at the beginning of the toolbar, which is good enough. + cfg.addToolbarElement("dl", ["insertunorderedlist", "insertorderedlist"], 1); + cfg.addToolbarElement("dt", "dl", 1); + cfg.addToolbarElement("dd", "dt", 1); +} + +DefinitionList._pluginInfo = { + name : "DefinitionList", + version : "1.1", + developer : "Udo Schmal", + developer_url : "", + c_owner : "Udo Schmal", + license : "htmlArea" +}; + +// the list of buttons added by this plugin +DefinitionList.btnList = [ + ["dl", "definition list"], + ["dt", "definition term"], + ["dd", "definition description"] + ]; + +DefinitionList.prototype._lc = function(string) { + return Xinha._lc(string, 'DefinitionList'); +}; + +DefinitionList.prototype.onGenerate = function() { + this.editor.addEditorStylesheet(Xinha.getPluginDir('DefinitionList') + '/definition-list.css'); +}; + +DefinitionList.prototype.buttonPress = function(editor,button_id) { + var pe; + var dx; + if (button_id=='dl') { //definition list + pe = editor.getParentElement(); + if( pe.tagName.toLowerCase() != 'body' ) { + while (pe.parentNode.tagName.toLowerCase() != 'body') { + pe = pe.parentNode; + } + } + dx = editor._doc.createElement(button_id); + dx.innerHTML = ' '; + if( pe.tagName.toLowerCase() == 'body' ) { + pe.appendChild(dx); + }else if(pe.parentNode.lastChild==pe) { + pe.parentNode.appendChild(dx); + }else{ + pe.parentNode.insertBefore(dx,pe.nextSibling); + } + } else if ((button_id=='dt')||(button_id=='dd')) { //definition term or description + pe = editor.getParentElement(); + while (pe && (pe.nodeType == 1) && (pe.tagName.toLowerCase() != 'body')) { + if(pe.tagName.toLowerCase() == 'dl') { + dx = editor._doc.createElement(button_id); + dx.innerHTML = ' '; + pe.appendChild(dx); + break; + }else if((pe.tagName.toLowerCase() == 'dt')||(pe.tagName.toLowerCase() == 'dd')){ + dx = editor._doc.createElement(button_id); + dx.innerHTML = ' '; + if(pe.parentNode.lastChild==pe) { + pe.parentNode.appendChild(dx); + }else{ + pe.parentNode.insertBefore(dx,pe.nextSibling); + } + break; + } + pe = pe.parentNode; + } + if(pe.tagName.toLowerCase() == 'body') + alert('You can insert a definition term or description only in a definition list!'); + } +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/definition-list.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/definition-list.css,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/definition-list.css 3 Jan 2016 20:47:31 -0000 1.1.2.1 @@ -0,0 +1,15 @@ +dl { border: 1px dotted #800000; } +dt { + background-image: url(img/ed_dt.gif); + background-repeat: no-repeat; + background-position: left top; + padding-left: 19px; + color: #800000; +} +dd { + background-image: url(img/ed_dd.gif); + background-repeat: no-repeat; + background-position: left top; + padding-left: 19px; + color: #800000; +} \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/definition-list.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/definition-list.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/definition-list.js 3 Jan 2016 20:47:31 -0000 1.1.2.1 @@ -0,0 +1,74 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/DefinitionList/definition-list.js */ +function DefinitionList(_1){ +this.editor=_1; +var _2=_1.config; +var bl=DefinitionList.btnList; +var _4=this; +var _5=["linebreak"]; +for(var i=0;i +// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "definition list": "Lista de definição", + "definition term": "Termo de definição", + "definition description": "Descrição de definição" +} \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/lang/ru.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/lang/ru.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DefinitionList/lang/ru.js 3 Jan 2016 20:47:33 -0000 1.1.2.1 @@ -0,0 +1,10 @@ +// I18N constants + +// LANG: "ru", ENCODING: UTF-8 + +// Author: Helen Mitkina (zerok) +{ + "definition list": "Список с определением", + "definition term": "Заголовок", + "definition description": "Пояснение" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DoubleClick/DoubleClick.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DoubleClick/DoubleClick.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DoubleClick/DoubleClick.js 3 Jan 2016 20:47:33 -0000 1.1.2.1 @@ -0,0 +1,66 @@ +// Double Click Plugin for Xinha +// Implementation by Marijn Kampf http://www.marijn.org +// Sponsored by http://www.smiling-faces.com +// +// (c) Marijn Kampf 2004. +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +// +// Cut-n-paste version of double click plugin. +// Almost no original code used. Based on +// Luis HTMLarea and Mihai Bazon Context Menu +// +// +// + +DoubleClick._pluginInfo = { + name : "DoubleClick", + version : "1.0", + developer : "Marijn Kampf", + developer_url : "http://www.marijn.org", + c_owner : "Marijn Kampf", + sponsor : "smiling-faces.com", + sponsor_url : "http://www.smiling-faces.com", + license : "htmlArea" +}; + +function DoubleClick(editor) { + this.editor = editor; + + // ADDING CUSTOM DOUBLE CLICK ACTIONS + // format of the dblClickList elements is "TAGNAME: [ ACTION ]" + // - TAGNAME: tagname of the tag that is double clicked + // - ACTION: function that gets called when the button is clicked. + // it has the following prototype: + // function(editor, event) + // - editor is the Xinha object that triggered the call + // - target is the selected object + this.editor.dblClickList = { + // Edit Link dialog + a: [ function(e) {e.config.btnList['createlink'][3](e); } ], + // Follow link + //a: [ function(editor, target) { window.location = target.href; properties(target); } ], + + img: [ function(e) {e.execCommand("insertimage");} ], + td: [ function(e) {e.execCommand("inserttable");} ] + }; +} + +DoubleClick.prototype.onGenerate = function() { + var self = this; + var doc = this.editordoc = this.editor._iframe.contentWindow.document; + Xinha._addEvents(doc, ["dblclick"], + function (event) { + return self.onDoubleClick(Xinha.is_ie ? self.editor._iframe.contentWindow.event : event); + }); + this.currentClick = null; +}; + +DoubleClick.prototype.onDoubleClick = function(ev) { + var target = Xinha.is_ie ? ev.srcElement : ev.target; + var tagName = target.tagName.toLowerCase(); + + if (this.editor.dblClickList[tagName] != undefined) { + this.editor.dblClickList[tagName][0](this.editor, target); + } +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DoubleClick/double-click.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DoubleClick/double-click.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DoubleClick/double-click.js 3 Jan 2016 20:47:33 -0000 1.1.2.1 @@ -0,0 +1,30 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/DoubleClick/double-click.js */ +DoubleClick._pluginInfo={name:"DoubleClick",version:"1.0",developer:"Marijn Kampf",developer_url:"http://www.marijn.org",c_owner:"Marijn Kampf",sponsor:"smiling-faces.com",sponsor_url:"http://www.smiling-faces.com",license:"htmlArea"}; +function DoubleClick(_1){ +this.editor=_1; +this.editor.dblClickList={a:[function(e){ +e.config.btnList["createlink"][3](e); +}],img:[function(e){ +e.execCommand("insertimage"); +}],td:[function(e){ +e.execCommand("inserttable"); +}]}; +} +DoubleClick.prototype.onGenerate=function(){ +var _5=this; +var _6=this.editordoc=this.editor._iframe.contentWindow.document; +Xinha._addEvents(_6,["dblclick"],function(_7){ +return _5.onDoubleClick(Xinha.is_ie?_5.editor._iframe.contentWindow.event:_7); +}); +this.currentClick=null; +}; +DoubleClick.prototype.onDoubleClick=function(ev){ +var _9=Xinha.is_ie?ev.srcElement:ev.target; +var _a=_9.tagName.toLowerCase(); +if(this.editor.dblClickList[_a]!=undefined){ +this.editor.dblClickList[_a][0](this.editor,_9); +} +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/DynamicCSS.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/DynamicCSS.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/DynamicCSS.js 3 Jan 2016 20:47:33 -0000 1.1.2.1 @@ -0,0 +1,237 @@ +// Dynamic CSS (className) plugin for HTMLArea +// Sponsored by http://www.systemconcept.de +// Implementation by Holger Hees +// +// (c) systemconcept.de 2004 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). + +function DynamicCSS(editor, args) { + this.editor = editor; + var cfg = editor.config; + var self = this; + +/*var cssArray=null; + var cssLength=0;*/ + var lastTag=null; + var lastClass=null; + + var css_class = { + id : "DynamicCSS-class", + tooltip : this._lc("Choose stylesheet"), + options : {"":""}, + action : function(editor) { self.onSelect(editor, this); }, + refresh : function(editor) { self.updateValue(editor, this); } + }; + cfg.registerDropdown(css_class); + cfg.addToolbarElement(["T[CSS]", "DynamicCSS-class", "separator"] , "formatblock", -1); +} + +DynamicCSS.parseStyleSheet=function(editor){ + iframe = editor._iframe.contentWindow.document; + + cssArray=DynamicCSS.cssArray; + if(!cssArray) cssArray=new Array(); + + for(i=0;i '; + } + else{ + className='none'; + if(tagName=='all') cssName=Xinha._lc("Default", 'DynamicCSS'); + else cssName='<'+Xinha._lc("Default", 'DynamicCSS')+'>'; + } + cssArray[tagName][className]=cssName; + DynamicCSS.cssLength++; + } + } + } + // ImportRule (Mozilla) + else if(cssRules[rule].styleSheet){ + cssArray=DynamicCSS.applyCSSRule(cssRules[rule].styleSheet.cssRules,cssArray); + } + } + return cssArray; +}; + +DynamicCSS._pluginInfo = { + name : "DynamicCSS", + version : "1.5.2", + developer : "Holger Hees", + developer_url : "http://www.systemconcept.de/", + c_owner : "Holger Hees", + sponsor : "System Concept GmbH", + sponsor_url : "http://www.systemconcept.de/", + license : "htmlArea" +}; + +DynamicCSS.prototype._lc = function(string) { + return Xinha._lc(string, 'DynamicCSS'); +}; + +DynamicCSS.prototype.onSelect = function(editor, obj) { + var tbobj = editor._toolbarObjects[obj.id]; + var index = tbobj.element.selectedIndex; + var className = tbobj.element.value; + + var parent = editor.getParentElement(); + + if(className!='none'){ + parent.className=className; + DynamicCSS.lastClass=className; + } + else{ + if(Xinha.is_gecko) parent.removeAttribute('class'); + else parent.removeAttribute('className'); + } + editor.updateToolbar(); +}; + +/*DynamicCSS.prototype.onMode = function(mode) { + if(mode=='wysiwyg'){ + // reparse possible changed css files + DynamicCSS.cssArray=null; + this.updateValue(this.editor,this.editor.config.customSelects["DynamicCSS-class"]); + } +}*/ + +DynamicCSS.prototype.reparseTimer = function(editor, obj, instance) { + // new attempt of rescan stylesheets in 1,2,4 and 8 second (e.g. for external css-files with longer initialisation) + if(DynamicCSS.parseCount<9){ + setTimeout(function () { + DynamicCSS.cssLength=0; + DynamicCSS.parseStyleSheet(editor); + if(DynamicCSS.cssOldLength!=DynamicCSS.cssLength){ + DynamicCSS.cssOldLength=DynamicCSS.cssLength; + DynamicCSS.lastClass=null; + instance.updateValue(editor, obj); + } + instance.reparseTimer(editor, obj, instance); + },DynamicCSS.parseCount*1000); + DynamicCSS.parseCount=DynamicCSS.parseCount*2; + } +}; + +DynamicCSS.prototype.updateValue = function(editor, obj) { + cssArray=DynamicCSS.cssArray; + // initial style init + if(!cssArray){ + DynamicCSS.cssLength=0; + DynamicCSS.parseStyleSheet(editor); + cssArray=DynamicCSS.cssArray; + DynamicCSS.cssOldLength=DynamicCSS.cssLength; + DynamicCSS.parseCount=1; + this.reparseTimer(editor,obj,this); + } + + var parent = editor.getParentElement(); + var tagName = parent.tagName.toLowerCase(); + var className = parent.className; + + if(this.lastTag!=tagName || this.lastClass!=className){ + this.lastTag=tagName; + this.lastClass=className; + + var select = editor._toolbarObjects[obj.id].element; + + while(select.length>0){ + select.options[select.length-1] = null; + } + + select.options[0]=new Option(this._lc("Default"),'none'); + if(cssArray){ + // style class only allowed if parent tag is not body or editor is in fullpage mode + if(tagName!='body' || editor.config.fullPage){ + if(cssArray[tagName]){ + for(cssClass in cssArray[tagName]){ + if(typeof cssArray[tagName][cssClass] != 'string') continue; + if(cssClass=='none') select.options[0]=new Option(cssArray[tagName][cssClass],cssClass); + else select.options[select.length]=new Option(cssArray[tagName][cssClass],cssClass); + } + } + + if(cssArray['all']){ + for(cssClass in cssArray['all']){ + if(typeof cssArray['all'][cssClass] != 'string') continue; + select.options[select.length]=new Option(cssArray['all'][cssClass],cssClass); + } + } + } + else if(cssArray[tagName] && cssArray[tagName]['none']) select.options[0]=new Option(cssArray[tagName]['none'],'none'); + } + + select.selectedIndex = 0; + + if (typeof className != "undefined" && /\S/.test(className)) { + var options = select.options; + for (var i = options.length; --i >= 0;) { + var option = options[i]; + if (className == option.value) { + select.selectedIndex = i; + break; + } + } + if(select.selectedIndex == 0){ + select.options[select.length]=new Option(this._lc("Undefined"),className); + select.selectedIndex=select.length-1; + } + } + + if(select.length>1) select.disabled=false; + else select.disabled=true; + } +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/de.js 3 Jan 2016 20:47:33 -0000 1.1.2.1 @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// Sponsored by http://www.systemconcept.de +// Author: Holger Hees, +// (c) systemconcept.de 2004 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Default": "Standard", + "Undefined": "Nicht definiert", + "Choose stylesheet": "Wählen Sie einen StyleSheet aus" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/fr.js 3 Jan 2016 20:47:34 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Default": "Défaut", + "Undefined": "Non défini", + "Choose stylesheet": "Choisir feuille de style" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/ja.js 3 Jan 2016 20:47:34 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Default": "なし", + "Undefined": "未定義", + "Choose stylesheet": "スタイルシートの選択" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/nb.js 3 Jan 2016 20:47:34 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Default": "Standard", + "Undefined": "Udefinert", + "Choose stylesheet": "Velg stilsett" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/nl.js 3 Jan 2016 20:47:34 -0000 1.1.2.1 @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Sponsored by http://www.systemconcept.de +// Author: Holger Hees, +// (c) systemconcept.de 2004 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Default": "Default", + "Undefined": "Ungedefinieerd", + "Choose stylesheet": "Kies stylesheet" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/no.js 3 Jan 2016 20:47:34 -0000 1.1.2.1 @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Default": "Standard", + "Undefined": "Udefinert", + "Choose stylesheet": "Velg stilsett" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/DynamicCSS/lang/pt_br.js 3 Jan 2016 20:47:34 -0000 1.1.2.1 @@ -0,0 +1,21 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation + +// Author: Marcio Barbosa, +// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). + +{ + "Choose stylesheet": "Escolher estilo", + "Default": "Padrão", + "Undefined": "Indefinido" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/EditTag.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/EditTag.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/EditTag.js 3 Jan 2016 20:47:35 -0000 1.1.2.1 @@ -0,0 +1,56 @@ +// Character Map plugin for Xinha +// Sponsored by http://www.systemconcept.de +// Implementation by Holger Hees based on HTMLArea XTD 1.5 (http://mosforge.net/projects/htmlarea3xtd/) +// Original Author - Bernhard Pfeifer novocaine@gmx.net +// +// (c) systemconcept.de 2004 +// Distributed under the same terms as Xinha itself. +// This notice MUST stay intact for use (see license.txt). + +function EditTag(editor) { + this.editor = editor; + var cfg = editor.config; + var self = this; + + cfg.registerButton({ + id : "edittag", + tooltip : this._lc("Edit HTML for selected text"), + image : editor.imgURL("ed_edit_tag.gif", "EditTag"), + textMode : false, + action : function(editor) { + self.buttonPress(editor); + } + }); + + cfg.addToolbarElement("edittag", "htmlmode",1); + +} + +EditTag._pluginInfo = { + name : "EditTag", + version : "1.0", + developer : "Pegoraro Marco", + developer_url : "http://www.sin-italia.com/", + c_owner : "Marco Pegoraro", + sponsor : "Sin Italia", + sponsor_url : "http://www.sin-italia.com/", + license : "htmlArea" +}; + +EditTag.prototype._lc = function(string) { + return Xinha._lc(string, 'EditTag'); +}; + +EditTag.prototype.buttonPress = function(editor) { + // Costruzione dell'oggetto parametri da passare alla dialog. + outparam = { + content : editor.getSelectedHTML() + }; // Fine costruzione parametri per il passaggio alla dialog. + editor._popupDialog( "plugin://EditTag/edit_tag", function( html ) { + if ( !html ) { + //user must have pressed Cancel + return false; + } + editor.insertHTML( html ); + }, outparam); +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/edit-tag.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/edit-tag.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/edit-tag.js 3 Jan 2016 20:47:35 -0000 1.1.2.1 @@ -0,0 +1,26 @@ +/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ +/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */ +/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/EditTag/edit-tag.js */ +function EditTag(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"edittag",tooltip:this._lc("Edit HTML for selected text"),image:_1.imgURL("ed_edit_tag.gif","EditTag"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("edittag","htmlmode",1); +} +EditTag._pluginInfo={name:"EditTag",version:"1.0",developer:"Pegoraro Marco",developer_url:"http://www.sin-italia.com/",c_owner:"Marco Pegoraro",sponsor:"Sin Italia",sponsor_url:"http://www.sin-italia.com/",license:"htmlArea"}; +EditTag.prototype._lc=function(_5){ +return Xinha._lc(_5,"EditTag"); +}; +EditTag.prototype.buttonPress=function(_6){ +outparam={content:_6.getSelectedHTML()}; +_6._popupDialog("plugin://EditTag/edit_tag",function(_7){ +if(!_7){ +return false; +} +_6.insertHTML(_7); +},outparam); +}; + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/img/ed_edit_tag.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/img/ed_edit_tag.gif,v diff -u -N -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/de.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/de.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/de.js 3 Jan 2016 20:47:35 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Edit HTML for selected text": "HTML im ausgewählten Bereich bearbeiten", + "Tag Editor": "HTML tag Editor" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/fr.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/fr.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/fr.js 3 Jan 2016 20:47:35 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Edit HTML for selected text": "Editer le code HTML du texte sélectionné", + "Tag Editor": "Editeur de tag HTML" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/ja.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/ja.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/ja.js 3 Jan 2016 20:47:36 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Edit HTML for selected text": "選択中テキストのHTMLを編集します", + "Tag Editor": "タグエディタ" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/nb.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/nb.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/nb.js 3 Jan 2016 20:47:36 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Edit HTML for selected text": "Rediger HTML for den valgte teksten" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/nl.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/nl.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/nl.js 3 Jan 2016 20:47:36 -0000 1.1.2.1 @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Edit HTML for selected text": "HTML bewerken voor geselecteerde tekst", + "Tag Editor": "HTML tag Editor" +}; Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/no.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/no.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/no.js 3 Jan 2016 20:47:36 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "no", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Edit HTML for selected text": "Rediger HTML for den valgte teksten" +}; \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/pt_br.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/pt_br.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/lang/pt_br.js 3 Jan 2016 20:47:36 -0000 1.1.2.1 @@ -0,0 +1,22 @@ +// I18N constants + +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation + +// Author: Marcio Barbosa, +// MSN: tomarshall@msn.com - ICQ: 69419933 +// Site: http://www.mpg.com.br + +// Last revision: 05 september 2007 +// Please don´t remove this information +// If you modify any source, please insert a comment with your name and e-mail + +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Cancel": "Cancelar", + "Edit HTML for selected text": "Editar HTML para texto selecionado", + "Edit Tag By Peg": "Editar Tag por Peg", + "OK": "OK", + "Tag Editor": "Editor de Tag" +} Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/popups/edit_tag.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/popups/edit_tag.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EditTag/popups/edit_tag.html 3 Jan 2016 20:47:36 -0000 1.1.2.1 @@ -0,0 +1,38 @@ + + + + Edit Tag By Peg + + + + + + +Tag Editor+ + + + Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EnterParagraphs/enter-paragraphs.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EnterParagraphs/enter-paragraphs.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/EnterParagraphs/enter-paragraphs.js 3 Jan 2016 20:47:37 -0000 1.1.2.1 @@ -0,0 +1,1090 @@ +// tabs 2 + +/** +* @fileoverview By Adam Wright, for The University of Western Australia +* +* Distributed under the same terms as Xinha itself. +* This notice MUST stay intact for use (see license.txt). +* +* Heavily modified by Yermo Lamers of DTLink, LLC, College Park, Md., USA. +* For more info see http://www.areaedit.com +*/ + +/** +* plugin Info +*/ + +EnterParagraphs._pluginInfo = + { + name : "EnterParagraphs", + version : "1.0", + developer : "Adam Wright", + developer_url : "http://www.hipikat.org/", + sponsor : "The University of Western Australia", + sponsor_url : "http://www.uwa.edu.au/", + license : "htmlArea" + }; + +// ------------------------------------------------------------------ + +// "constants" + +/** +* Whitespace Regex +*/ + +EnterParagraphs.prototype._whiteSpace = /^\s*$/; + +/** +* The pragmatic list of which elements a paragraph may not contain +*/ + +EnterParagraphs.prototype._pExclusions = /^(address|blockquote|body|dd|div|dl|dt|fieldset|form|h1|h2|h3|h4|h5|h6|hr|li|noscript|ol|p|pre|table|ul)$/i; + +/** +* elements which may contain a paragraph +*/ + +EnterParagraphs.prototype._pContainers = /^(body|del|div|fieldset|form|ins|map|noscript|object|td|th)$/i; + +/** +* Elements which may not contain paragraphs, and would prefer a break to being split +*/ + +EnterParagraphs.prototype._pBreak = /^(address|pre|blockquote)$/i; + +/** +* Elements which may not contain children +*/ + +EnterParagraphs.prototype._permEmpty = /^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i; + +/** +* Elements which count as content, as distinct from whitespace or containers +*/ + +EnterParagraphs.prototype._elemSolid = /^(applet|br|button|hr|img|input|table)$/i; + +/** +* Elements which should get a new P, before or after, when enter is pressed at either end +*/ + +EnterParagraphs.prototype._pifySibling = /^(address|blockquote|del|div|dl|fieldset|form|h1|h2|h3|h4|h5|h6|hr|ins|map|noscript|object|ol|p|pre|table|ul|)$/i; +EnterParagraphs.prototype._pifyForced = /^(ul|ol|dl|table)$/i; + +/** +* Elements which should get a new P, before or after a close parent, when enter is pressed at either end +*/ + +EnterParagraphs.prototype._pifyParent = /^(dd|dt|li|td|th|tr)$/i; + +// --------------------------------------------------------------------- + +/** +* EnterParagraphs Constructor +*/ + +function EnterParagraphs(editor) + { + + this.editor = editor; + + // [STRIP + // create a ddt debug trace object. There may be multiple editors on + // the page each EnterParagraphs .. to distinguish which instance + // is generating the message we tack on the name of the textarea. + + //this.ddt = new DDT( editor._textArea + ":EnterParagraphs Plugin" ); + + // uncomment to turn on debugging messages. + + //this.ddt._ddtOn(); + + //this.ddt._ddt( "enter-paragraphs.js","23", "EnterParagraphs(): constructor" ); + + // STRIP] + + // hook into the event handler to intercept key presses if we are using + // gecko (Mozilla/FireFox) + + if (Xinha.is_gecko) + { + //this.ddt._ddt( "enter-paragraphs.js","23", "EnterParagraphs(): we are gecko. Setting event handler." ); + this.onKeyPress = this.__onKeyPress; + } + + } // end of constructor. + +// ------------------------------------------------------------------ + +/** +* name member for debugging +* +* This member is used to identify objects of this class in debugging +* messages. +*/ + +EnterParagraphs.prototype.name = "EnterParagraphs"; + +/** +* Gecko's a bit lacking in some odd ways... +*/ + +EnterParagraphs.prototype.insertAdjacentElement = function(ref,pos,el) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "122", "insertAdjacentElement(): top with pos '" + pos + "' ref:", ref ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "122", "insertAdjacentElement(): top with el:", el ); + + if ( pos == 'BeforeBegin' ) + { + ref.parentNode.insertBefore(el,ref); + } + else if ( pos == 'AfterEnd' ) + { + ref.nextSibling ? ref.parentNode.insertBefore(el,ref.nextSibling) : ref.parentNode.appendChild(el); + } + else if ( pos == 'AfterBegin' && ref.firstChild ) + { + ref.insertBefore(el,ref.firstChild); + } + else if ( pos == 'BeforeEnd' || pos == 'AfterBegin' ) + { + ref.appendChild(el); + } + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "122", "insertAdjacentElement(): bottom with ref:", ref ); + + }; // end of insertAdjacentElement() + +// ---------------------------------------------------------------- + +/** +* Passes a global parent node or document fragment to forEachNode +* +* @param root node root node to start search from. +* @param mode string function to apply to each node. +* @param direction string traversal direction "ltr" (left to right) or "rtl" (right_to_left) +* @param init boolean +*/ + +EnterParagraphs.prototype.forEachNodeUnder = function ( root, mode, direction, init ) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "144", "forEachNodeUnder(): top mode is '" + mode + "' direction is '" + direction + "' starting with root node:", root ); + + // Identify the first and last nodes to deal with + + var start, end; + + // nodeType 11 is DOCUMENT_FRAGMENT_NODE which is a container. + + if ( root.nodeType == 11 && root.firstChild ) + { + start = root.firstChild; + end = root.lastChild; + } + else + { + start = end = root; + } + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "144", "forEachNodeUnder(): start node is:", start ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "144", "forEachNodeUnder(): initial end node is:", end ); + + // traverse down the right hand side of the tree getting the last child of the last + // child in each level until we reach bottom. + while ( end.lastChild ) + end = end.lastChild; + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "144", "forEachNodeUnder(): end node after descent is:", end ); + + return this.forEachNode( start, end, mode, direction, init); + + }; // end of forEachNodeUnder() + +// ----------------------------------------------------------------------- + +/** +* perform a depth first descent in the direction requested. +* +* @param left_node node "start node" +* @param right_node node "end node" +* @param mode string function to apply to each node. cullids or emptyset. +* @param direction string traversal direction "ltr" (left to right) or "rtl" (right_to_left) +* @param init boolean or object. +*/ + +EnterParagraphs.prototype.forEachNode = function (left_node, right_node, mode, direction, init) + { + + //this.ddt._ddt( "enter-paragraphs.js", "175", "forEachNode(): top - mode is:" + mode + "' direction '" + direction + "'" ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode(): top - left node is:", left_node ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode(): top - right node is:", right_node ); + + // returns "Brother" node either left or right. + + var getSibling = function(elem, direction) + { + return ( direction == "ltr" ? elem.nextSibling : elem.previousSibling ); + }; + + var getChild = function(elem, direction) + { + return ( direction == "ltr" ? elem.firstChild : elem.lastChild ); + }; + + var walk, lookup, fnReturnVal; + + // FIXME: init is a boolean in the emptyset case and an object in + // the cullids case. Used inconsistently. + + var next_node = init; + + // used to flag having reached the last node. + + var done_flag = false; + + // loop ntil we've hit the last node in the given direction. + // if we're going left to right that's the right_node and visa-versa. + + while ( walk != direction == "ltr" ? right_node : left_node ) + { + + // on first entry, walk here is null. So this is how + // we prime the loop with the first node. + + if ( !walk ) + { + walk = direction == "ltr" ? left_node : right_node; + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode(): !walk - current node is:", walk ); + } + else + { + + // is there a child node? + + if ( getChild(walk,direction) ) + { + + // descend down into the child. + + walk = getChild(walk,direction); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode():descending to child node:", walk ); + + } + else + { + + // is there a sibling node on this level? + + if ( getSibling(walk,direction) ) + { + + // move to the sibling. + + walk = getSibling(walk,direction); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode(): moving to sibling node:", walk ); + + } + else + { + lookup = walk; + + // climb back up the tree until we find a level where we are not the end + // node on the level (i.e. that we have a sibling in the direction + // we are searching) or until we reach the end. + + while ( !getSibling(lookup,direction) && lookup != (direction == "ltr" ? right_node : left_node) ) + { + lookup = lookup.parentNode; + } + + // did we find a level with a sibling? + + // walk = ( lookup.nextSibling ? lookup.nextSibling : lookup ) ; + + walk = ( getSibling(lookup,direction) ? getSibling(lookup,direction) : lookup ) ; + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode(): climbed back up (or found right node):", walk ); + + } + } + + } // end of else walk. + + // have we reached the end? either as a result of the top while loop or climbing + // back out above. + + done_flag = (walk==( direction == "ltr" ? right_node : left_node)); + + // call the requested function on the current node. Functions + // return an array. + // + // Possible functions are _fenCullIds, _fenEmptySet + // + // The situation is complicated by the fact that sometimes we want to + // return the base node and sometimes we do not. + // + // next_node can be an object (this.takenIds), a node (text, el, etc) or false. + + //this.ddt._ddt( "enter-paragraphs.js", "175", "forEachNode(): calling function" ); + + switch( mode ) + { + + case "cullids": + + fnReturnVal = this._fenCullIds(walk, next_node ); + break; + + case "find_fill": + + fnReturnVal = this._fenEmptySet(walk, next_node, mode, done_flag); + break; + + case "find_cursorpoint": + + fnReturnVal = this._fenEmptySet(walk, next_node, mode, done_flag); + break; + + } + + // If this node wants us to return, return next_node + + if ( fnReturnVal[0] ) + { + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "175", "forEachNode(): returning node:", fnReturnVal[1] ); + + return fnReturnVal[1]; + } + + // are we done with the loop? + + if ( done_flag ) + { + break; + } + + // Otherwise, pass to the next node + + if ( fnReturnVal[1] ) + { + next_node = fnReturnVal[1]; + } + + } // end of while loop + + //this.ddt._ddt( "enter-paragraphs.js", "175", "forEachNode(): returning false." ); + + return false; + + }; // end of forEachNode() + +// ------------------------------------------------------------------- + +/** +* Find a post-insertion node, only if all nodes are empty, or the first content +* +* @param node node current node beinge examined. +* @param next_node node next node to be examined. +* @param node string "find_fill" or "find_cursorpoint" +* @param last_flag boolean is this the last node? +*/ + +EnterParagraphs.prototype._fenEmptySet = function( node, next_node, mode, last_flag) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "263", "_fenEmptySet() : top with mode '" + mode + "' and last_flag '" + last_flag + "' and node:", node ); + + // Mark this if it's the first base + + if ( !next_node && !node.firstChild ) + { + next_node = node; + } + + // Is it an element node and is it considered content? (br, hr, etc) + // or is it a text node that is not just whitespace? + // or is it not an element node and not a text node? + + if ( (node.nodeType == 1 && this._elemSolid.test(node.nodeName)) || + (node.nodeType == 3 && !this._whiteSpace.test(node.nodeValue)) || + (node.nodeType != 1 && node.nodeType != 3) ) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "263", "_fenEmptySet() : found content in node:", node ); + + switch( mode ) + { + + case "find_fill": + + // does not return content. + + return new Array(true, false ); + break; + + case "find_cursorpoint": + + // returns content + + return new Array(true, node ); + break; + + } + + } + + // In either case (fill or findcursor) we return the base node. The avoids + // problems in terminal cases (beginning or end of document or container tags) + + if ( last_flag ) + { + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "263", "_fenEmptySet() : return 'base' node:", next_node ); + + return new Array( true, next_node ); + } + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "263", "_fenEmptySet() : bottom returning false and :", next_node ); + + return new Array( false, next_node ); + + }; // end of _fenEmptySet() + +// ------------------------------------------------------------------------------ + +/** +* remove duplicate Id's. +* +* @param ep_ref enterparagraphs reference to enterparagraphs object +*/ + +EnterParagraphs.prototype._fenCullIds = function ( ep_ref, node, pong ) + { + + //this.ddt._ddt( "enter-paragraphs.js", "299", "_fenCullIds(): top" ); + + // Check for an id, blast it if it's in the store, otherwise add it + + if ( node.id ) + { + + //this.ddt._ddt( "enter-paragraphs.js", "299", "_fenCullIds(): node '" + node.nodeName + "' has an id '" + node.id + "'" ); + + pong[node.id] ? node.id = '' : pong[node.id] = true; + } + + return new Array(false,pong); + + }; + +// --------------------------------------------------------------------------------- + +/** +* Grabs a range suitable for paragraph stuffing +* +* @param rng Range +* @param search_direction string "left" or "right" +* +* @todo check blank node issue in roaming loop. +*/ + +EnterParagraphs.prototype.processSide = function( rng, search_direction) + { + + //this.ddt._ddt( "enter-paragraphs.js", "329", "processSide(): top search_direction == '" + search_direction + "'" ); + + var next = function(element, search_direction) + { + return ( search_direction == "left" ? element.previousSibling : element.nextSibling ); + }; + + var node = search_direction == "left" ? rng.startContainer : rng.endContainer; + var offset = search_direction == "left" ? rng.startOffset : rng.endOffset; + var roam, start = node; + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "337", "processSide(): starting with node:", node ); + + // Never start with an element, because then the first roaming node might + // be on the exclusion list and we wouldn't know until it was too late + + while ( start.nodeType == 1 && !this._permEmpty.test(start.nodeName) ) + { + start = ( offset ? start.lastChild : start.firstChild ); + } + + // Climb the tree, left or right, until our course of action presents itself + // + // if roam is NULL try start. + // if roam is NOT NULL, try next node in our search_direction + // If that node is NULL, get our parent node. + // + // If all the above turns out NULL end the loop. + // + // FIXME: gecko (firefox 1.0.3) - enter "test" into an empty document and press enter. + // sometimes this loop finds a blank text node, sometimes it doesn't. + + while ( roam = roam ? ( next(roam,search_direction) ? next(roam,search_direction) : roam.parentNode ) : start ) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "357", "processSide(): roaming loop, search_direction is '" + search_direction + "' current node is: ", roam ); + + // next() is an inline function defined above that returns the next node depending + // on the direction we're searching. + + if ( next(roam,search_direction) ) + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): Checking next node '" + next(roam,search_direction).NodeName + "' for _pExclusions list." ); + + // If the next sibling's on the exclusion list, stop before it + + if ( this._pExclusions.test(next(roam,search_direction).nodeName) ) + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): Node '" + next(roam,search_direction).NodeName + "' is on the _pExclusions list. Stopping before it." ); + + return this.processRng(rng, search_direction, roam, next(roam,search_direction), (search_direction == "left"?'AfterEnd':'BeforeBegin'), true, false); + } + } + else + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): No next node, examing parent node '" + roam.parentNode.nodeName + "' for containers or exclusions." ); + + // If our parent's on the container list, stop inside it + + if (this._pContainers.test(roam.parentNode.nodeName)) + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): Parent Node '" + roam.parentNode.nodeName + "' is on the _pContainer list. Stopping inside it." ); + + return this.processRng(rng, search_direction, roam, roam.parentNode, (search_direction == "left"?'AfterBegin':'BeforeEnd'), true, false); + } + else if (this._pExclusions.test(roam.parentNode.nodeName)) + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): Parent Node '" + roam.parentNode.nodeName + "' is on the _pExclusion list." ); + + // chop without wrapping + + if (this._pBreak.test(roam.parentNode.nodeName)) + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): Parent Node '" + roam.parentNode.nodeName + "' is on the _pBreak list." ); + + return this.processRng(rng, search_direction, roam, roam.parentNode, + (search_direction == "left"?'AfterBegin':'BeforeEnd'), false, (search_direction == "left" ?true:false)); + } + else + { + + //this.ddt._ddt( "enter-paragraphs.js", "371", "processSide(): Parent Node '" + roam.parentNode.nodeName + "' is not on the _pBreak list." ); + + // the next(roam,search_direction) in this call is redundant since we know it's false + // because of the "if next(roam,search_direction)" above. + // + // the final false prevents this range from being wrapped in's most likely + // because it's already wrapped. + + return this.processRng(rng, + search_direction, + (roam = roam.parentNode), + (next(roam,search_direction) ? next(roam,search_direction) : roam.parentNode), + (next(roam,search_direction) ? (search_direction == "left"?'AfterEnd':'BeforeBegin') : (search_direction == "left"?'AfterBegin':'BeforeEnd')), + false, + false); + } + } + } + } + + //this.ddt._ddt( "enter-paragraphs.js", "424", "processSide(): bottom" ); + + }; // end of processSide() + +// ------------------------------------------------------------------------------ + +/** +* processRng - process Range. +* +* Neighbour and insertion identify where the new node, roam, needs to enter +* the document; landmarks in our selection will be deleted before insertion +* +* @param rn Range original selected range +* @param search_direction string Direction to search in. +* @param roam node +* @param insertion string may be AfterBegin of BeforeEnd +* @return array +*/ + +EnterParagraphs.prototype.processRng = function(rng, search_direction, roam, neighbour, insertion, pWrap, preBr) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "398", "processRng(): top - roam arg is:", roam ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "398", "processRng(): top - neighbor arg is:", neighbour ); + + //this.ddt._ddt( "enter-paragraphs.js", "398", "processRng(): top - insertion arg is: '" + insertion + "'" ); + + var node = search_direction == "left" ? rng.startContainer : rng.endContainer; + var offset = search_direction == "left" ? rng.startOffset : rng.endOffset; + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "447", "processRng(): range start (or end) is at offset '" + offset + "' is node :", node ); + + // Define the range to cut, and extend the selection range to the same boundary + + var editor = this.editor; + var newRng = editor._doc.createRange(); + + newRng.selectNode(roam); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "522", "processRng(): selecting newRng is:", newRng ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "522", "processRng(): selecting original rng is:", rng ); + + // extend the range in the given direction. + + if ( search_direction == "left") + { + newRng.setEnd(node, offset); + rng.setStart(newRng.startContainer, newRng.startOffset); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "522", "processRng(): extending direction left - newRng is:", newRng ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "522", "processRng(): extending direction left - rng is:", rng ); + + } + else if ( search_direction == "right" ) + { + + newRng.setStart(node, offset); + rng.setEnd(newRng.endContainer, newRng.endOffset); + + //this.ddt._ddt( "enter-paragraphs.js", "522", "processRng(): right - new range start is '" + offset + "' end offset is '" + newRng.endOffset + "'" ); + } + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "522", "processRng(): rng is:", rng ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "522", "processRng(): newRng is:", newRng ); + + // Clone the range and remove duplicate ids it would otherwise produce + + var cnt = newRng.cloneContents(); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "509", "processRng(): culling duplicate ids from:", cnt ); + + // in this case "init" is an object not a boolen. + + this.forEachNodeUnder( cnt, "cullids", "ltr", this.takenIds, false, false); + + // Special case, for inserting paragraphs before some blocks when caret is at + // their zero offset. + // + // Used to "open up space" in front of a list, table. Usefull if the list is at + // the top of the document. (otherwise you'd have no way of "moving it down"). + + var pify, pifyOffset, fill; + pify = search_direction == "left" ? (newRng.endContainer.nodeType == 3 ? true:false) : (newRng.startContainer.nodeType == 3 ? false:true); + pifyOffset = pify ? newRng.startOffset : newRng.endOffset; + pify = pify ? newRng.startContainer : newRng.endContainer; + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "521", "processRng(): pify is '" + pify.nodeName + "' pifyOffset is '" + pifyOffset + "':", pify ); + + if ( this._pifyParent.test(pify.nodeName) && pify.parentNode.childNodes.item(0) == pify ) + { + while ( !this._pifySibling.test(pify.nodeName) ) + { + pify = pify.parentNode; + } + } + + // NODE TYPE 11 is DOCUMENT_FRAGMENT NODE + // I do not profess to understand any of this, simply applying a patch that others say is good - ticket:446 + if ( cnt.nodeType == 11 && !cnt.firstChild) + { + if (pify.nodeName != "BODY" || (pify.nodeName == "BODY" && pifyOffset != 0)) + { //WKR: prevent body tag in empty doc + cnt.appendChild(editor._doc.createElement(pify.nodeName)); + } + } + + // YmL: Added additional last parameter for fill case to work around logic + // error in forEachNode() + + //this.ddt._ddt( "enter-paragraphs.js", "612", "processRng(): find_fill in cnt." ); + + fill = this.forEachNodeUnder(cnt, "find_fill", "ltr", false ); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "612", "processRng(): fill node:" , fill ); + + if ( fill && + this._pifySibling.test(pify.nodeName) && + ( (pifyOffset == 0) || ( pifyOffset == 1 && this._pifyForced.test(pify.nodeName) ) ) ) + { + + //this.ddt._ddt( "enter-paragraphs.js", "544", "processRng(): pify handling. Creating p tag followed by nbsp tag" ); + + roam = editor._doc.createElement( 'p' ); + roam.innerHTML = " "; + + // roam = editor._doc.createElement('p'); + // roam.appendChild(editor._doc.createElement('br')); + + // for these cases, if we are processing the left hand side we want it to halt + // processing instead of doing the right hand side. (Avoids adding another
 
+ // after the list etc. + + if ((search_direction == "left" ) && pify.previousSibling) + { + + //this.ddt._ddt( "enter-paragraphs.js", "682", "processRng(): returning created roam AfterEnd" ); + + return new Array(pify.previousSibling, 'AfterEnd', roam); + } + else if (( search_direction == "right") && pify.nextSibling) + { + + //this.ddt._ddt( "enter-paragraphs.js", "682", "processRng(): returning created roam BeforeBegin" ); + + return new Array(pify.nextSibling, 'BeforeBegin', roam); + } + else + { + + //this.ddt._ddt( "enter-paragraphs.js", "682", "processRng(): returning created roam for direction '" + search_direction + "'" ); + + return new Array(pify.parentNode, (search_direction == "left"?'AfterBegin':'BeforeEnd'), roam); + } + + } + + // If our cloned contents are 'content'-less, shove a break in them + + if ( fill ) + { + + // Ill-concieved? + // + // 3 is a TEXT node and it should be empty. + // + + if ( fill.nodeType == 3 ) + { + // fill = fill.parentNode; + + fill = editor._doc.createDocumentFragment(); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "575", "processRng(): fill.nodeType is 3. Moving up to parent:", fill ); + } + + if ( (fill.nodeType == 1 && !this._elemSolid.test()) || fill.nodeType == 11 ) + { + + // FIXME:/CHECKME: When Xinha is switched from WYSIWYG to text mode + // Xinha.getHTMLWrapper() will strip out the trailing br. Not sure why. + + // fill.appendChild(editor._doc.createElement('br')); + + var pterminator = editor._doc.createElement( 'p' ); + pterminator.innerHTML = " "; + + fill.appendChild( pterminator ); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "583", "processRng(): fill type is 1 and !elemsolid or it's type 11. Appending an nbsp tag:", fill ); + + } + else + { + + //this.ddt._ddt( "enter-paragraphs.js", "583", "processRng(): inserting a br tag before." ); + + // fill.parentNode.insertBefore(editor._doc.createElement('br'),fill); + + var pterminator = editor._doc.createElement( 'p' ); + pterminator.innerHTML = " "; + + fill.parentNode.insertBefore(parentNode,fill); + + } + } + + // YmL: If there was no content replace with fill + // (previous code did not use fill and we ended up with the + //test
because Gecko was finding two empty text nodes + // when traversing on the right hand side of an empty document. + + if ( fill ) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "606", "processRng(): no content. Using fill.", fill ); + + roam = fill; + } + else + { + // And stuff a shiny new object with whatever contents we have + + //this.ddt._ddt( "enter-paragraphs.js", "606", "processRng(): creating p tag or document fragment - pWrap is '" + pWrap + "' " ); + + roam = (pWrap || (cnt.nodeType == 11 && !cnt.firstChild)) ? editor._doc.createElement('p') : editor._doc.createDocumentFragment(); + roam.appendChild(cnt); + } + + if (preBr) + { + //this.ddt._ddt( "enter-paragraphs.js", "767", "processRng(): appending a br based on preBr flag" ); + + roam.appendChild(editor._doc.createElement('br')); + } + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "606", "processRng(): bottom with roam:", roam ); + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "606", "processRng(): bottom with neighbour:", neighbour ); + + // Return the nearest relative, relative insertion point and fragment to insert + + return new Array(neighbour, insertion, roam); + + }; // end of processRng() + +// ---------------------------------------------------------------------------------- + +/** +* are we anthat should be handled by the browser? +* +* there is no good way to "get out of" ordered or unordered lists from Javascript. +* We have to pass the onKeyPress 13 event to the browser so it can take care of +* getting us "out of" the list. +* +* The Gecko engine does a good job of handling all the normal cases except the "press +* enter at the first position" where we want a  
inserted before the list. The +* built-in behavior is to open up abefore the current entry (not good). +* +* @param rng Range range. +*/ + +EnterParagraphs.prototype.isNormalListItem = function(rng) + { + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "863", "isNormaListItem(): checking rng for list end:", rng ); + + var node, listNode; + + node = rng.startContainer; + + if (( typeof node.nodeName != 'undefined') && + ( node.nodeName.toLowerCase() == 'li' )) + { + + //this.ddt._ddt( "enter-paragraphs.js", "863", "isNormaListItem(): node is a list item"); + + // are we a list item? + + listNode = node; + } + else if (( typeof node.parentNode != 'undefined' ) && + ( typeof node.parentNode.nodeName != 'undefined' ) && + ( node.parentNode.nodeName.toLowerCase() == 'li' )) + { + + //this.ddt._ddt( "enter-paragraphs.js", "863", "isNormaListItem(): parent is a list item"); + + // our parent is a list item. + + listNode = node.parentNode; + + } + else + { + //this.ddt._ddt( "enter-paragraphs.js", "863", "isNormaListItem(): not list item"); + + // neither we nor our parent are a list item. this is not a normal + // li case. + + return false; + } + + // at this point we have a listNode. Is it the first list item? + + if ( ! listNode.previousSibling ) + { + //this.ddt._ddt( "enter-paragraphs.js", "839", "isNormaListItem(): we are the first li." ); + + // are we on the first character of the first li? + + if ( rng.startOffset == 0 ) + { + //this.ddt._ddt( "enter-paragraphs.js", "839", "isNormaListItem(): we are on the first character." ); + + return false; + } + } + + //this.ddt._ddt( "enter-paragraphs.js", "839", "isNormaListItem(): this is a normal list item case." ); + return true; + + }; // end of isNormalListItem() + +// ---------------------------------------------------------------------------------- +/** +* Called when a key is pressed in the editor +*/ + +EnterParagraphs.prototype.__onKeyPress = function(ev) + { + + //this.ddt._ddt( "enter-paragraphs.js", "517", "__onKeyPress(): top with keyCode '" + ev.keyCode + "'" ); + + // If they've hit enter and shift is not pressed, handle it + + if (ev.keyCode == 13 && !ev.shiftKey && this.editor._iframe.contentWindow.getSelection) + { + //this.ddt._ddt( "enter-paragraphs.js", "517", "__onKeyPress(): calling handleEnter" ); + + return this.handleEnter(ev); + } + + //this.ddt._ddt( "enter-paragraphs.js", "517", "__onKeyPress(): bottom" ); + + }; // end of _onKeyPress() + +// ----------------------------------------------------------------------------------- + +/** +* Handles the pressing of an unshifted enter for Gecko +*/ + +EnterParagraphs.prototype.handleEnter = function(ev) + { + + //this.ddt._ddt( "enter-paragraphs.js", "537", "handleEnter(): top" ); + + var cursorNode; + + // Grab the selection and associated range + + var sel = this.editor.getSelection(); + var rng = this.editor.createRange(sel); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "757", "handleEnter(): initial range is: ", rng ); + + // if we are at the end of a list and the node is empty let the browser handle + // it to get us out of the list. + + if ( this.isNormalListItem(rng) ) + { + //this.ddt._ddt( "enter-paragraphs.js", "757", "handleEnter(): we are at the end of a list with a blank item. Letting the browser handle it." ); + return true; + } + + // as far as I can tell this isn't actually used. + + this.takenIds = new Object(); + + // Grab ranges for document re-stuffing, if appropriate + // + // pStart and pEnd are arrays consisting of + // [0] neighbor node + // [1] insertion type + // [2] roam + + //this.ddt._ddt( "enter-paragraphs.js", "537", "handleEnter(): calling processSide on left side." ); + + var pStart = this.processSide(rng, "left"); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "757", "handleEnter(): after processing left side range is: ", rng ); + + //this.ddt._ddt( "enter-paragraphs.js", "537", "handleEnter(): calling processSide on right side." ); + + var pEnd = this.processSide(rng, "right"); + + // used to position the cursor after insertion. + + cursorNode = pEnd[2]; + + // Get rid of everything local to the selection + + sel.removeAllRanges(); + rng.deleteContents(); + + // Grab a node we'll have after insertion, since fragments will be lost + // + // we'll use this to position the cursor. + + //this.ddt._ddt( "enter-paragraphs.js", "712", "handleEnter(): looking for cursor position" ); + + var holdEnd = this.forEachNodeUnder( cursorNode, "find_cursorpoint", "ltr", false, true); + + if ( ! holdEnd ) + { + alert( "INTERNAL ERROR - could not find place to put cursor after ENTER" ); + } + + // Insert our carefully chosen document fragments + + if ( pStart ) + { + + //this.ddt._ddt( "enter-paragraphs.js", "712", "handleEnter(): inserting pEnd" ); + + this.insertAdjacentElement(pStart[0], pStart[1], pStart[2]); + } + + if ( pEnd && pEnd.nodeType != 1) + { + + //this.ddt._ddt( "enter-paragraphs.js", "712", "handleEnter(): inserting pEnd" ); + + this.insertAdjacentElement(pEnd[0], pEnd[1], pEnd[2]); + } + + // Move the caret in front of the first good text element + + if ((holdEnd) && (this._permEmpty.test(holdEnd.nodeName) )) + { + + //this.ddt._ddt( "enter-paragraphs.js", "712", "handleEnter(): looping to find cursor element." ); + + var prodigal = 0; + while ( holdEnd.parentNode.childNodes.item(prodigal) != holdEnd ) + { + prodigal++; + } + + sel.collapse( holdEnd.parentNode, prodigal); + } + else + { + + // holdEnd might be false. + + try + { + sel.collapse(holdEnd, 0); + + //this.ddt._ddtDumpNode( "enter-paragraphs.js", "1057", "handleEnter(): scrolling to element:", holdEnd ); + + // interestingly, scrollToElement() scroll so the top if holdEnd is a text node. + + if ( holdEnd.nodeType == 3 ) + { + holdEnd = holdEnd.parentNode; + } + + this.editor.scrollToElement(holdEnd); + } + catch (e) + { + // we could try to place the cursor at the end of the document. + } + } + + this.editor.updateToolbar(); + + Xinha._stopEvent(ev); + + return true; + + }; // end of handleEnter() + +// END \ No newline at end of file Index: openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/Equation/ASCIIMathML.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/Equation/ASCIIMathML.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/richtext-xinha/www/resources/xinha-nightly/plugins/Equation/ASCIIMathML.js 3 Jan 2016 20:47:37 -0000 1.1.2.1 @@ -0,0 +1,3365 @@ +/* +ASCIIMathML.js +============== +This file contains JavaScript functions to convert ASCII math notation +and LaTeX to Presentation MathML. Simple graphics commands are also +translated to SVG images. The conversion is done while the (X)HTML +page loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet +Explorer 6/7 + MathPlayer (http://www.dessci.com/en/products/mathplayer/) + +Adobe SVGview 3.03 (http://www.adobe.com/svg/viewer/install/). + +Just add the next line to your (X)HTML page with this file in the same folder: + + + +(using the graphics in IE also requires the file "d.svg" in the same folder). +This is a convenient and inexpensive solution for authoring MathML and SVG. + +Version 2.1 Oct 8, 2008, (c) Peter Jipsen http://www.chapman.edu/~jipsen +This version extends ASCIIMathML.js with LaTeXMathML.js and ASCIIsvg.js. +Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js +If you use it on a webpage, please send the URL to jipsen@chapman.edu + +The LaTeXMathML modifications were made by Douglas Woodall, June 2006. +(for details see header on the LaTeXMathML part in middle of file) +Extensive clean-up and improvements by Paulo Soares, Oct 2007. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License +(at http://www.gnu.org/licences/lgpl.html) for more details. +*/ + +var mathcolor = "blue"; // change it to "" (to inherit) or another color +var mathfontsize = "1em"; // change to e.g. 1.2em for larger math +var mathfontfamily = "serif"; // change to "" to inherit (works in IE) + // or another family (e.g. "arial") +var automathrecognize = false; // writing "amath" on page makes this true +var checkForMathML = true; // check if browser can display MathML +var notifyIfNoMathML = true; // display note at top if no MathML capability +var alertIfNoMathML = false; // show alert box if no MathML capability +var translateOnLoad = true; // set to false to do call translators from js +var translateLaTeX = true; // false to preserve $..$, $$..$$ +var translateLaTeXformatting = true; // false to preserve \emph,\begin{},\end{} +var translateASCIIMath = true; // false to preserve `..` +var translateASCIIsvg = true; // false to preserve agraph.., \begin{graph}.. +var avoidinnerHTML = false; // set true if assigning to innerHTML gives error +var displaystyle = true; // puts limits above and below large operators +var showasciiformulaonhover = true; // helps students learn ASCIIMath +var decimalsign = "."; // change to "," if you like, beware of `(1,2)`! +var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters +var AMdocumentId = "wikitext" // PmWiki element containing math (default=body) +var checkforprocessasciimathinmoodle = false; // true for systems like Moodle +var dsvglocation = ""; // path to d.svg (blank if same as ASCIIMathML.js loc) + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ + +var isIE = document.createElementNS==null; +var noMathML = false, translated = false; + +if (isIE) { // avoid adding MathPlayer info explicitly to each webpage + document.write(""); + document.write(""); +} + +// Add a stylesheet, replacing any previous custom stylesheet (adapted from TW) +function setStylesheet(s) { + var id = "AMMLcustomStyleSheet"; + var n = document.getElementById(id); + if(document.createStyleSheet) { + // Test for IE's non-standard createStyleSheet method + if(n) + n.parentNode.removeChild(n); + // This failed without the + document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd"," "); + } else { + if(n) { + n.replaceChild(document.createTextNode(s),n.firstChild); + } else { + n = document.createElement("style"); + n.type = "text/css"; + n.id = id; + n.appendChild(document.createTextNode(s)); + document.getElementsByTagName("head")[0].appendChild(n); + } + } +} + +setStylesheet("#AMMLcloseDiv \{font-size:0.8em; padding-top:1em; color:#014\}\n#AMMLwarningBox \{position:absolute; width:100%; top:0; left:0; z-index:200; text-align:center; font-size:1em; font-weight:bold; padding:0.5em 0 0.5em 0; color:#ffc; background:#c30\}"); + +function init(){ + var msg, warnings = new Array(); + if (document.getElementById==null){ + alert("This webpage requires a recent browser such as Mozilla Firefox/Netscape 7+ or Internet Explorer 6+ with MathPlayer and Adobe SVGviewer"); + return null; + } + if (checkForMathML && (msg = checkMathML())) warnings.push(msg); + if (checkIfSVGavailable && (msg = checkSVG())) warnings.push(msg); + if (warnings.length>0) displayWarnings(warnings); + if (!noMathML) initSymbols(); + return true; +} + +function checkMathML(){ + if (navigator.appName.slice(0,8)=="Netscape") + if (navigator.appVersion.slice(0,1)>="5") noMathML = null; + else noMathML = true; + else if (navigator.appName.slice(0,9)=="Microsoft") + try { + var ActiveX = new ActiveXObject("MathPlayer.Factory.1"); + noMathML = null; + } catch (e) { + noMathML = true; + } + else if (navigator.appName.slice(0,5)=="Opera") + if (navigator.appVersion.slice(0,3)>="9.5") noMathML = null; + else noMathML = true; +//noMathML = true; //uncomment to check + if (noMathML && notifyIfNoMathML) { + var msg = "To view the ASCIIMathML notation use Internet Explorer + MathPlayer or Mozilla Firefox 2.0 or later."; + if (alertIfNoMathML) + alert(msg); + else return msg; + } +} + +function hideWarning(){ + var body = document.getElementsByTagName("body")[0]; + body.removeChild(document.getElementById('AMMLwarningBox')); + body.onclick = null; +} + +function displayWarnings(warnings) { + var i, frag, nd = createElementXHTML("div"); + var body = document.getElementsByTagName("body")[0]; + body.onclick=hideWarning; + nd.id = 'AMMLwarningBox'; + for (i=0; i =", tag:"mo", output:"\u2265", tex:"ge", ttype:CONST}, +{input:"geq", tag:"mo", output:"\u2265", tex:null, ttype:CONST}, +{input:"-<", tag:"mo", output:"\u227A", tex:"prec", ttype:CONST}, +{input:"-lt", tag:"mo", output:"\u227A", tex:null, ttype:CONST}, +{input:">-", tag:"mo", output:"\u227B", tex:"succ", ttype:CONST}, +{input:"-<=", tag:"mo", output:"\u2AAF", tex:"preceq", ttype:CONST}, +{input:">-=", tag:"mo", output:"\u2AB0", tex:"succeq", ttype:CONST}, +{input:"in", tag:"mo", output:"\u2208", tex:null, ttype:CONST}, +{input:"!in", tag:"mo", output:"\u2209", tex:"notin", ttype:CONST}, +{input:"sub", tag:"mo", output:"\u2282", tex:"subset", ttype:CONST}, +{input:"sup", tag:"mo", output:"\u2283", tex:"supset", ttype:CONST}, +{input:"sube", tag:"mo", output:"\u2286", tex:"subseteq", ttype:CONST}, +{input:"supe", tag:"mo", output:"\u2287", tex:"supseteq", ttype:CONST}, +{input:"-=", tag:"mo", output:"\u2261", tex:"equiv", ttype:CONST}, +{input:"~=", tag:"mo", output:"\u2245", tex:"cong", ttype:CONST}, +{input:"~~", tag:"mo", output:"\u2248", tex:"approx", ttype:CONST}, +{input:"prop", tag:"mo", output:"\u221D", tex:"propto", ttype:CONST}, + +//logical symbols +{input:"and", tag:"mtext", output:"and", tex:null, ttype:SPACE}, +{input:"or", tag:"mtext", output:"or", tex:null, ttype:SPACE}, +{input:"not", tag:"mo", output:"\u00AC", tex:"neg", ttype:CONST}, +{input:"=>", tag:"mo", output:"\u21D2", tex:"implies", ttype:CONST}, +{input:"if", tag:"mo", output:"if", tex:null, ttype:SPACE}, +{input:"<=>", tag:"mo", output:"\u21D4", tex:"iff", ttype:CONST}, +{input:"AA", tag:"mo", output:"\u2200", tex:"forall", ttype:CONST}, +{input:"EE", tag:"mo", output:"\u2203", tex:"exists", ttype:CONST}, +{input:"_|_", tag:"mo", output:"\u22A5", tex:"bot", ttype:CONST}, +{input:"TT", tag:"mo", output:"\u22A4", tex:"top", ttype:CONST}, +{input:"|--", tag:"mo", output:"\u22A2", tex:"vdash", ttype:CONST}, +{input:"|==", tag:"mo", output:"\u22A8", tex:"models", ttype:CONST}, + +//grouping brackets +{input:"(", tag:"mo", output:"(", tex:null, ttype:LEFTBRACKET}, +{input:")", tag:"mo", output:")", tex:null, ttype:RIGHTBRACKET}, +{input:"[", tag:"mo", output:"[", tex:null, ttype:LEFTBRACKET}, +{input:"]", tag:"mo", output:"]", tex:null, ttype:RIGHTBRACKET}, +{input:"{", tag:"mo", output:"{", tex:null, ttype:LEFTBRACKET}, +{input:"}", tag:"mo", output:"}", tex:null, ttype:RIGHTBRACKET}, +{input:"|", tag:"mo", output:"|", tex:null, ttype:LEFTRIGHT}, +//{input:"||", tag:"mo", output:"||", tex:null, ttype:LEFTRIGHT}, +{input:"(:", tag:"mo", output:"\u2329", tex:"langle", ttype:LEFTBRACKET}, +{input:":)", tag:"mo", output:"\u232A", tex:"rangle", ttype:RIGHTBRACKET}, +{input:"<<", tag:"mo", output:"\u2329", tex:null, ttype:LEFTBRACKET}, +{input:">>", tag:"mo", output:"\u232A", tex:null, ttype:RIGHTBRACKET}, +{input:"{:", tag:"mo", output:"{:", tex:null, ttype:LEFTBRACKET, invisible:true}, +{input:":}", tag:"mo", output:":}", tex:null, ttype:RIGHTBRACKET, invisible:true}, + +//miscellaneous symbols +{input:"int", tag:"mo", output:"\u222B", tex:null, ttype:CONST}, +{input:"dx", tag:"mi", output:"{:d x:}", tex:null, ttype:DEFINITION}, +{input:"dy", tag:"mi", output:"{:d y:}", tex:null, ttype:DEFINITION}, +{input:"dz", tag:"mi", output:"{:d z:}", tex:null, ttype:DEFINITION}, +{input:"dt", tag:"mi", output:"{:d t:}", tex:null, ttype:DEFINITION}, +{input:"oint", tag:"mo", output:"\u222E", tex:null, ttype:CONST}, +{input:"del", tag:"mo", output:"\u2202", tex:"partial", ttype:CONST}, +{input:"grad", tag:"mo", output:"\u2207", tex:"nabla", ttype:CONST}, +{input:"+-", tag:"mo", output:"\u00B1", tex:"pm", ttype:CONST}, +{input:"O/", tag:"mo", output:"\u2205", tex:"emptyset", ttype:CONST}, +{input:"oo", tag:"mo", output:"\u221E", tex:"infty", ttype:CONST}, +{input:"aleph", tag:"mo", output:"\u2135", tex:null, ttype:CONST}, +{input:"...", tag:"mo", output:"...", tex:"ldots", ttype:CONST}, +{input:":.", tag:"mo", output:"\u2234", tex:"therefore", ttype:CONST}, +{input:"/_", tag:"mo", output:"\u2220", tex:"angle", ttype:CONST}, +{input:"\\ ", tag:"mo", output:"\u00A0", tex:null, ttype:CONST}, +{input:"quad", tag:"mo", output:"\u00A0\u00A0", tex:null, ttype:CONST}, +{input:"qquad", tag:"mo", output:"\u00A0\u00A0\u00A0\u00A0", tex:null, ttype:CONST}, +{input:"cdots", tag:"mo", output:"\u22EF", tex:null, ttype:CONST}, +{input:"vdots", tag:"mo", output:"\u22EE", tex:null, ttype:CONST}, +{input:"ddots", tag:"mo", output:"\u22F1", tex:null, ttype:CONST}, +{input:"diamond", tag:"mo", output:"\u22C4", tex:null, ttype:CONST}, +{input:"square", tag:"mo", output:"\u25A1", tex:null, ttype:CONST}, +{input:"|__", tag:"mo", output:"\u230A", tex:"lfloor", ttype:CONST}, +{input:"__|", tag:"mo", output:"\u230B", tex:"rfloor", ttype:CONST}, +{input:"|~", tag:"mo", output:"\u2308", tex:"lceiling", ttype:CONST}, +{input:"~|", tag:"mo", output:"\u2309", tex:"rceiling", ttype:CONST}, +{input:"CC", tag:"mo", output:"\u2102", tex:null, ttype:CONST}, +{input:"NN", tag:"mo", output:"\u2115", tex:null, ttype:CONST}, +{input:"QQ", tag:"mo", output:"\u211A", tex:null, ttype:CONST}, +{input:"RR", tag:"mo", output:"\u211D", tex:null, ttype:CONST}, +{input:"ZZ", tag:"mo", output:"\u2124", tex:null, ttype:CONST}, +{input:"f", tag:"mi", output:"f", tex:null, ttype:UNARY, func:true}, +{input:"g", tag:"mi", output:"g", tex:null, ttype:UNARY, func:true}, + +//standard functions +{input:"lim", tag:"mo", output:"lim", tex:null, ttype:UNDEROVER}, +{input:"Lim", tag:"mo", output:"Lim", tex:null, ttype:UNDEROVER}, +{input:"sin", tag:"mo", output:"sin", tex:null, ttype:UNARY, func:true}, +{input:"cos", tag:"mo", output:"cos", tex:null, ttype:UNARY, func:true}, +{input:"tan", tag:"mo", output:"tan", tex:null, ttype:UNARY, func:true}, +{input:"sinh", tag:"mo", output:"sinh", tex:null, ttype:UNARY, func:true}, +{input:"cosh", tag:"mo", output:"cosh", tex:null, ttype:UNARY, func:true}, +{input:"tanh", tag:"mo", output:"tanh", tex:null, ttype:UNARY, func:true}, +{input:"cot", tag:"mo", output:"cot", tex:null, ttype:UNARY, func:true}, +{input:"sec", tag:"mo", output:"sec", tex:null, ttype:UNARY, func:true}, +{input:"csc", tag:"mo", output:"csc", tex:null, ttype:UNARY, func:true}, +{input:"log", tag:"mo", output:"log", tex:null, ttype:UNARY, func:true}, +{input:"ln", tag:"mo", output:"ln", tex:null, ttype:UNARY, func:true}, +{input:"det", tag:"mo", output:"det", tex:null, ttype:UNARY, func:true}, +{input:"dim", tag:"mo", output:"dim", tex:null, ttype:CONST}, +{input:"mod", tag:"mo", output:"mod", tex:null, ttype:CONST}, +{input:"gcd", tag:"mo", output:"gcd", tex:null, ttype:UNARY, func:true}, +{input:"lcm", tag:"mo", output:"lcm", tex:null, ttype:UNARY, func:true}, +{input:"lub", tag:"mo", output:"lub", tex:null, ttype:CONST}, +{input:"glb", tag:"mo", output:"glb", tex:null, ttype:CONST}, +{input:"min", tag:"mo", output:"min", tex:null, ttype:UNDEROVER}, +{input:"max", tag:"mo", output:"max", tex:null, ttype:UNDEROVER}, + +//arrows +{input:"uarr", tag:"mo", output:"\u2191", tex:"uparrow", ttype:CONST}, +{input:"darr", tag:"mo", output:"\u2193", tex:"downarrow", ttype:CONST}, +{input:"rarr", tag:"mo", output:"\u2192", tex:"rightarrow", ttype:CONST}, +{input:"->", tag:"mo", output:"\u2192", tex:"to", ttype:CONST}, +{input:">->", tag:"mo", output:"\u21A3", tex:"rightarrowtail", ttype:CONST}, +{input:"->>", tag:"mo", output:"\u21A0", tex:"twoheadrightarrow", ttype:CONST}, +{input:">->>", tag:"mo", output:"\u2916", tex:"twoheadrightarrowtail", ttype:CONST}, +{input:"|->", tag:"mo", output:"\u21A6", tex:"mapsto", ttype:CONST}, +{input:"larr", tag:"mo", output:"\u2190", tex:"leftarrow", ttype:CONST}, +{input:"harr", tag:"mo", output:"\u2194", tex:"leftrightarrow", ttype:CONST}, +{input:"rArr", tag:"mo", output:"\u21D2", tex:"Rightarrow", ttype:CONST}, +{input:"lArr", tag:"mo", output:"\u21D0", tex:"Leftarrow", ttype:CONST}, +{input:"hArr", tag:"mo", output:"\u21D4", tex:"Leftrightarrow", ttype:CONST}, +//commands with argument +{input:"sqrt", tag:"msqrt", output:"sqrt", tex:null, ttype:UNARY}, +{input:"root", tag:"mroot", output:"root", tex:null, ttype:BINARY}, +{input:"frac", tag:"mfrac", output:"/", tex:null, ttype:BINARY}, +{input:"/", tag:"mfrac", output:"/", tex:null, ttype:INFIX}, +{input:"stackrel", tag:"mover", output:"stackrel", tex:null, ttype:BINARY}, +{input:"_", tag:"msub", output:"_", tex:null, ttype:INFIX}, +{input:"^", tag:"msup", output:"^", tex:null, ttype:INFIX}, +{input:"hat", tag:"mover", output:"\u005E", tex:null, ttype:UNARY, acc:true}, +{input:"bar", tag:"mover", output:"\u00AF", tex:"overline", ttype:UNARY, acc:true}, +{input:"vec", tag:"mover", output:"\u2192", tex:null, ttype:UNARY, acc:true}, +{input:"dot", tag:"mover", output:".", tex:null, ttype:UNARY, acc:true}, +{input:"ddot", tag:"mover", output:"..", tex:null, ttype:UNARY, acc:true}, +{input:"ul", tag:"munder", output:"\u0332", tex:"underline", ttype:UNARY, acc:true}, +{input:"text", tag:"mtext", output:"text", tex:null, ttype:TEXT}, +{input:"mbox", tag:"mtext", output:"mbox", tex:null, ttype:TEXT}, +AMquote, +{input:"bb", tag:"mstyle", atname:"fontweight", atval:"bold", output:"bb", tex:null, ttype:UNARY}, +{input:"mathbf", tag:"mstyle", atname:"fontweight", atval:"bold", output:"mathbf", tex:null, ttype:UNARY}, +{input:"sf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"sf", tex:null, ttype:UNARY}, +{input:"mathsf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"mathsf", tex:null, ttype:UNARY}, +{input:"bbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"bbb", tex:null, ttype:UNARY, codes:AMbbb}, +{input:"mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"mathbb", tex:null, ttype:UNARY, codes:AMbbb}, +{input:"cc", tag:"mstyle", atname:"mathvariant", atval:"script", output:"cc", tex:null, ttype:UNARY, codes:AMcal}, +{input:"mathcal", tag:"mstyle", atname:"mathvariant", atval:"script", output:"mathcal", tex:null, ttype:UNARY, codes:AMcal}, +{input:"tt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"tt", tex:null, ttype:UNARY}, +{input:"mathtt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"mathtt", tex:null, ttype:UNARY}, +{input:"fr", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"fr", tex:null, ttype:UNARY, codes:AMfrk}, +{input:"mathfrak", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"mathfrak", tex:null, ttype:UNARY, codes:AMfrk} +]; + +function compareNames(s1,s2) { + if (s1.input > s2.input) return 1 + else return -1; +} + +var AMnames = []; //list of input symbols + +function initSymbols() { + var texsymbols = [], i; + for (i=0; i =n where str appears or would be inserted +// assumes arr is sorted + if (n==0) { + var h,m; + n = -1; + h = arr.length; + while (n+1 > 1; + if (arr[m] =str +} + +function AMgetSymbol(str) { +//return maximal initial substring of str that appears in names +//return null if there is none + var k = 0; //new pos + var j = 0; //old pos + var mk; //match pos + var st; + var tagst; + var match = ""; + var more = true; + for (var i=1; i<=str.length && more; i++) { + st = str.slice(0,i); //initial substring of length i + j = k; + k = position(AMnames, st, j); + if (k =AMnames[k]; + } + AMpreviousSymbol=AMcurrentSymbol; + if (match!=""){ + AMcurrentSymbol=AMsymbols[mk].ttype; + return AMsymbols[mk]; + } +// if str[0] is a digit or - return maxsubstring of digits.digits + AMcurrentSymbol=CONST; + k = 1; + st = str.slice(0,1); + var integ = true; + while ("0"<=st && st<="9" && k<=str.length) { + st = str.slice(k,k+1); + k++; + } + if (st == decimalsign) { + st = str.slice(k,k+1); + if ("0"<=st && st<="9") { + integ = false; + k++; + while ("0"<=st && st<="9" && k<=str.length) { + st = str.slice(k,k+1); + k++; + } + } + } + if ((integ && k>1) || k>2) { + st = str.slice(0,k-1); + tagst = "mn"; + } else { + k = 2; + st = str.slice(0,1); //take 1 character + tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi"); + } + if (st=="-" && AMpreviousSymbol==INFIX) { + AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse + return {input:st, tag:tagst, output:st, ttype:UNARY, func:true}; + } + return {input:st, tag:tagst, output:st, ttype:CONST}; +} + +function AMremoveBrackets(node) { + var st; + if (node.nodeName=="mrow") { + st = node.firstChild.firstChild.nodeValue; + if (st=="(" || st=="[" || st=="{") node.removeChild(node.firstChild); + } + if (node.nodeName=="mrow") { + st = node.lastChild.firstChild.nodeValue; + if (st==")" || st=="]" || st=="}") node.removeChild(node.lastChild); + } +} + +/*Parsing ASCII math expressions with the following grammar +v ::= [A-Za-z] | greek letters | numbers | other constant symbols +u ::= sqrt | text | bb | other unary symbols for font commands +b ::= frac | root | stackrel binary symbols +l ::= ( | [ | { | (: | {: left brackets +r ::= ) | ] | } | :) | :} right brackets +S ::= v | lEr | uS | bSS Simple expression +I ::= S_S | S^S | S_S^S | S Intermediate expression +E ::= IE | I/I Expression +Each terminal symbol is translated into a corresponding mathml node.*/ + +var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol; + +function AMparseSexpr(str) { //parses str and returns [node,tailstr] + var symbol, node, result, i, st,// rightvert = false, + newFrag = document.createDocumentFragment(); + str = AMremoveCharsAndBlanks(str,0); + symbol = AMgetSymbol(str); //either a token or a bracket or empty + if (symbol == null || symbol.ttype == RIGHTBRACKET && AMnestingDepth > 0) { + return [null,str]; + } + if (symbol.ttype == DEFINITION) { + str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length); + symbol = AMgetSymbol(str); + } + switch (symbol.ttype) { case UNDEROVER: + case CONST: + str = AMremoveCharsAndBlanks(str,symbol.input.length); + return [createMmlNode(symbol.tag, //its a constant + document.createTextNode(symbol.output)),str]; + case LEFTBRACKET: //read (expr+) + AMnestingDepth++; + str = AMremoveCharsAndBlanks(str,symbol.input.length); + result = AMparseExpr(str,true); + AMnestingDepth--; + if (typeof symbol.invisible == "boolean" && symbol.invisible) + node = createMmlNode("mrow",result[0]); + else { + node = createMmlNode("mo",document.createTextNode(symbol.output)); + node = createMmlNode("mrow",node); + node.appendChild(result[0]); + } + return [node,result[1]]; + case TEXT: + if (symbol!=AMquote) str = AMremoveCharsAndBlanks(str,symbol.input.length); + if (str.charAt(0)=="{") i=str.indexOf("}"); + else if (str.charAt(0)=="(") i=str.indexOf(")"); + else if (str.charAt(0)=="[") i=str.indexOf("]"); + else if (symbol==AMquote) i=str.slice(1).indexOf("\"")+1; + else i = 0; + if (i==-1) i = str.length; + st = str.slice(1,i); + if (st.charAt(0) == " ") { + node = createMmlNode("mspace"); + node.setAttribute("width","1ex"); + newFrag.appendChild(node); + } + newFrag.appendChild( + createMmlNode(symbol.tag,document.createTextNode(st))); + if (st.charAt(st.length-1) == " ") { + node = createMmlNode("mspace"); + node.setAttribute("width","1ex"); + newFrag.appendChild(node); + } + str = AMremoveCharsAndBlanks(str,i+1); + return [createMmlNode("mrow",newFrag),str]; + case UNARY: + str = AMremoveCharsAndBlanks(str,symbol.input.length); + result = AMparseSexpr(str); + if (result[0]==null) return [createMmlNode(symbol.tag, + document.createTextNode(symbol.output)),str]; + if (typeof symbol.func == "boolean" && symbol.func) { // functions hack + st = str.charAt(0); + if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") { + return [createMmlNode(symbol.tag, + document.createTextNode(symbol.output)),str]; + } else { + node = createMmlNode("mrow", + createMmlNode(symbol.tag,document.createTextNode(symbol.output))); + node.appendChild(result[0]); + return [node,result[1]]; + } + } + AMremoveBrackets(result[0]); + if (symbol.input == "sqrt") { // sqrt + return [createMmlNode(symbol.tag,result[0]),result[1]]; + } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent + node = createMmlNode(symbol.tag,result[0]); + node.appendChild(createMmlNode("mo",document.createTextNode(symbol.output))); + return [node,result[1]]; + } else { // font change command + if (!isIE && typeof symbol.codes != "undefined") { + for (i=0; i 64 && st.charCodeAt(j)<91) newst = newst + + String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]); + else newst = newst + st.charAt(j); + if (result[0].nodeName=="mi") + result[0]=createMmlNode("mo"). + appendChild(document.createTextNode(newst)); + else result[0].replaceChild(createMmlNode("mo"). + appendChild(document.createTextNode(newst)), + result[0].childNodes[i]); + } + } + node = createMmlNode(symbol.tag,result[0]); + node.setAttribute(symbol.atname,symbol.atval); + return [node,result[1]]; + } + case BINARY: + str = AMremoveCharsAndBlanks(str,symbol.input.length); + result = AMparseSexpr(str); + if (result[0]==null) return [createMmlNode("mo", + document.createTextNode(symbol.input)),str]; + AMremoveBrackets(result[0]); + var result2 = AMparseSexpr(result[1]); + if (result2[0]==null) return [createMmlNode("mo", + document.createTextNode(symbol.input)),str]; + AMremoveBrackets(result2[0]); + if (symbol.input=="root" || symbol.input=="stackrel") + newFrag.appendChild(result2[0]); + newFrag.appendChild(result[0]); + if (symbol.input=="frac") newFrag.appendChild(result2[0]); + return [createMmlNode(symbol.tag,newFrag),result2[1]]; + case INFIX: + str = AMremoveCharsAndBlanks(str,symbol.input.length); + return [createMmlNode("mo",document.createTextNode(symbol.output)),str]; + case SPACE: + str = AMremoveCharsAndBlanks(str,symbol.input.length); + node = createMmlNode("mspace"); + node.setAttribute("width","1ex"); + newFrag.appendChild(node); + newFrag.appendChild( + createMmlNode(symbol.tag,document.createTextNode(symbol.output))); + node = createMmlNode("mspace"); + node.setAttribute("width","1ex"); + newFrag.appendChild(node); + return [createMmlNode("mrow",newFrag),str]; + case LEFTRIGHT: +// if (rightvert) return [null,str]; else rightvert = true; + AMnestingDepth++; + str = AMremoveCharsAndBlanks(str,symbol.input.length); + result = AMparseExpr(str,false); + AMnestingDepth--; + var st = ""; + if (result[0].lastChild!=null) + st = result[0].lastChild.firstChild.nodeValue; + if (st == "|") { // its an absolute value subterm + node = createMmlNode("mo",document.createTextNode(symbol.output)); + node = createMmlNode("mrow",node); + node.appendChild(result[0]); + return [node,result[1]]; + } else { // the "|" is a \mid so use unicode 2223 (divides) for spacing + node = createMmlNode("mo",document.createTextNode("\u2223")); + node = createMmlNode("mrow",node); + return [node,str]; + } + default: +//alert("default"); + str = AMremoveCharsAndBlanks(str,symbol.input.length); + return [createMmlNode(symbol.tag, //its a constant + document.createTextNode(symbol.output)),str]; + } +} + +function AMparseIexpr(str) { + var symbol, sym1, sym2, node, result, underover; + str = AMremoveCharsAndBlanks(str,0); + sym1 = AMgetSymbol(str); + result = AMparseSexpr(str); + node = result[0]; + str = result[1]; + symbol = AMgetSymbol(str); + if (symbol.ttype == INFIX && symbol.input != "/") { + str = AMremoveCharsAndBlanks(str,symbol.input.length); +// if (symbol.input == "/") result = AMparseIexpr(str); else ... + result = AMparseSexpr(str); + if (result[0] == null) // show box in place of missing argument + result[0] = createMmlNode("mo",document.createTextNode("\u25A1")); + else AMremoveBrackets(result[0]); + str = result[1]; +// if (symbol.input == "/") AMremoveBrackets(node); + if (symbol.input == "_") { + sym2 = AMgetSymbol(str); + underover = (sym1.ttype == UNDEROVER); + if (sym2.input == "^") { + str = AMremoveCharsAndBlanks(str,sym2.input.length); + var res2 = AMparseSexpr(str); + AMremoveBrackets(res2[0]); + str = res2[1]; + node = createMmlNode((underover?"munderover":"msubsup"),node); + node.appendChild(result[0]); + node.appendChild(res2[0]); + node = createMmlNode("mrow",node); // so sum does not stretch + } else { + node = createMmlNode((underover?"munder":"msub"),node); + node.appendChild(result[0]); + } + } else { + node = createMmlNode(symbol.tag,node); + node.appendChild(result[0]); + } + } + return [node,str]; +} + +function AMparseExpr(str,rightbracket) { + var symbol, node, result, i, nodeList = [], + newFrag = document.createDocumentFragment(); + do { + str = AMremoveCharsAndBlanks(str,0); + result = AMparseIexpr(str); + node = result[0]; + str = result[1]; + symbol = AMgetSymbol(str); + if (symbol.ttype == INFIX && symbol.input == "/") { + str = AMremoveCharsAndBlanks(str,symbol.input.length); + result = AMparseIexpr(str); + if (result[0] == null) // show box in place of missing argument + result[0] = createMmlNode("mo",document.createTextNode("\u25A1")); + else AMremoveBrackets(result[0]); + str = result[1]; + AMremoveBrackets(node); + node = createMmlNode(symbol.tag,node); + node.appendChild(result[0]); + newFrag.appendChild(node); + symbol = AMgetSymbol(str); + } + else if (node!=undefined) newFrag.appendChild(node); + } while ((symbol.ttype != RIGHTBRACKET && + (symbol.ttype != LEFTRIGHT || rightbracket) + || AMnestingDepth == 0) && symbol!=null && symbol.output!=""); + if (symbol.ttype == RIGHTBRACKET || symbol.ttype == LEFTRIGHT) { +// if (AMnestingDepth > 0) AMnestingDepth--; + var len = newFrag.childNodes.length; + if (len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 && + newFrag.childNodes[len-2].nodeName == "mo" && + newFrag.childNodes[len-2].firstChild.nodeValue == ",") { //matrix + var right = newFrag.childNodes[len-1].lastChild.firstChild.nodeValue; + if (right==")" || right=="]") { + var left = newFrag.childNodes[len-1].firstChild.firstChild.nodeValue; + if (left=="(" && right==")" && symbol.output != "}" || + left=="[" && right=="]") { + var pos = []; // positions of commas + var matrix = true; + var m = newFrag.childNodes.length; + for (i=0; matrix && i 1) matrix = pos[i].length == pos[i-2].length; + } + if (matrix) { + var row, frag, n, k, table = document.createDocumentFragment(); + for (i=0; i (-,-,...,-,-) + n = node.childNodes.length; + k = 0; + node.removeChild(node.firstChild); //remove ( + for (j=1; j 2) { + newFrag.removeChild(newFrag.firstChild); //remove ) + newFrag.removeChild(newFrag.firstChild); //remove, + } + table.appendChild(createMmlNode("mtr",row)); + } + node = createMmlNode("mtable",table); + if (typeof symbol.invisible == "boolean" && symbol.invisible) node.setAttribute("columnalign","left"); + newFrag.replaceChild(node,newFrag.firstChild); + } + } + } + } + str = AMremoveCharsAndBlanks(str,symbol.input.length); + if (typeof symbol.invisible != "boolean" || !symbol.invisible) { + node = createMmlNode("mo",document.createTextNode(symbol.output)); + newFrag.appendChild(node); + } + } + return [newFrag,str]; +} + +function parseMath(str,latex) { + var frag, node; + AMnestingDepth = 0; + frag = latex ? LMparseExpr(str.replace(/^\s+/g,""),false,false)[0] : AMparseExpr(str.replace(/^\s+/g,""),false)[0]; + node = createMmlNode("mstyle",frag); + node.setAttribute("mathcolor",mathcolor); + node.setAttribute("fontfamily",mathfontfamily); + node.setAttribute("mathsize",mathfontsize); + if (displaystyle) node.setAttribute("displaystyle","true"); + node = createMmlNode("math",node); + if (showasciiformulaonhover) //fixed by djhsu so newline + node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko + return node; +} + +function strarr2docFrag(arr, linebreaks, latex) { + var newFrag=document.createDocumentFragment(); + var expr = false; + for (var i=0; i,\\|!:;'~]|\\.(?!(?:\x20|$))|"+ambigAMtoken+englishAMtoken+simpleAMtoken; + var re = new RegExp("(^|\\s)((("+token+")\\s?)(("+token+secondenglishAMtoken+")\\s?)+)([,.?]?(?=\\s|$))","g"); + str = str.replace(re," `$2`$7"); + var arr = str.split(AMdelimiter1); + var re1 = new RegExp("(^|\\s)([b-zB-HJ-Z+*<>]|"+texcommand+ambigAMtoken+simpleAMtoken+")(\\s|\\n|$)","g"); + var re2 = new RegExp("(^|\\s)([a-z]|"+texcommand+ambigAMtoken+simpleAMtoken+")([,.])","g"); // removed |\d+ for now + for (i=0; i 1 || mtch) { + if (!noMathML) { + frg = strarr2docFrag(arr,n.nodeType==8,latex); + var len = frg.childNodes.length; + n.parentNode.replaceChild(frg,n); + return len-1; + } else return 0; + } + } + } else return 0; + } else if (n.nodeName!="math") { + for (i=0; i +This is a convenient and inexpensive solution for authoring MathML. + +Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen +Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js +For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt +If you use it on a webpage, please send the URL to jipsen@chapman.edu + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +General Public License (at http://www.gnu.org/license/lgpl.html) +for more details. + +LaTeXMathML.js (ctd) +============== + +Content between $...$ and $$...$$ is converted by this part of the file +*/ + +// all further global variables start with "LM" + +// Commented out by DRW to prevent 1/2 turning into a 2-line fraction +// LMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX}, +// Commented out by DRW so that " prints literally in equations +// LMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT}; + +var LMsymbols = [ +//Greek letters +{input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST}, +{input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST}, +{input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST}, +{input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST}, +{input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST}, +{input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST}, +{input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST}, +{input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST}, +{input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST}, +{input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST}, +{input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST}, +{input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST}, +{input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST}, +{input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST}, +{input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST}, +{input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST}, +{input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST}, +{input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST}, +{input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST}, +{input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST}, +{input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST}, +{input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST}, +{input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST}, +{input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST}, +{input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST}, +{input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST}, +{input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST}, +{input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST}, +{input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST}, +{input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST}, +{input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST}, +{input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST}, +{input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST}, +{input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST}, +{input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST}, +{input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST}, +{input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST}, +{input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST}, +{input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST}, +{input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST}, + +//fractions +{input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST}, +{input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST}, +{input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST}, +{input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST}, +{input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST}, +{input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST}, +{input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST}, +{input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST}, +{input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST}, +{input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST}, +{input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST}, +{input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST}, +{input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST}, +{input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST}, +{input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST}, + +//binary operation symbols +{input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST}, +{input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST}, +{input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST}, +{input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST}, +{input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST}, +{input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST}, +{input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST}, +{input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST}, +{input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST}, +{input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST}, +//{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST}, +{input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST}, +{input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST}, +{input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST}, +{input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST}, +{input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST}, +{input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST}, +{input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST}, +{input:"\\land", tag:"mo", output:"\u2227", ttype:CONST}, +{input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST}, +{input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST}, +{input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST}, +{input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST}, +{input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST}, +{input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST}, +{input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST}, +{input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST}, +{input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST}, +{input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST}, +{input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST}, +{input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST}, +{input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST}, +{input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST}, +{input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST}, +{input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST}, +{input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST}, +{input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST}, +{input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST}, + + +//BIG Operators +{input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER}, +{input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER}, +{input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER}, +{input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER}, +{input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER}, +{input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER}, +{input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER}, +{input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER}, +{input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER}, +{input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER}, +{input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER}, +{input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER}, +{input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER}, +{input:"\\int", tag:"mo", output:"\u222B", ttype:CONST}, +{input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST}, + +//binary relation symbols +{input:":=", tag:"mo", output:":=", ttype:CONST}, +{input:"\\lt", tag:"mo", output:"<", ttype:CONST}, +{input:"\\gt", tag:"mo", output:">", ttype:CONST}, +{input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST}, +{input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST}, +{input:"\\le", tag:"mo", output:"\u2264", ttype:CONST}, +{input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST}, +{input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST}, +{input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST}, +{input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST}, +{input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST}, +{input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST}, +{input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST}, +{input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST}, +{input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST}, +{input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST}, +{input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST}, +{input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST}, +{input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST}, +{input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST}, +{input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST}, +{input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST}, +{input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST}, +{input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST}, +{input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST}, +{input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST}, +{input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST}, +{input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST}, +{input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST}, +{input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST}, +{input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST}, +{input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST}, +{input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST}, +{input:"\\in", tag:"mo", output:"\u2208", ttype:CONST}, +{input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST}, +{input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST}, +{input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST}, +{input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST}, +{input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST}, +{input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST}, +{input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST}, +{input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST}, +{input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST}, +{input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST}, +{input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST}, + +//matrices +{input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true}, +{input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true}, +{input:"\\\\", output:"}&{", ttype:DEFINITION}, +{input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION}, +{input:"\\end{array}", output:"}}", ttype:DEFINITION}, + +//grouping and literal brackets -- ieval is for IE +{input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG}, +{input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG}, +{input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG}, +{input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG}, +{input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET}, +{input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET}, +{input:"{", output:"{", ttype:LEFTBRACKET, invisible:true}, +{input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true}, + +{input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY}, +{input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY}, +{input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY}, +{input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY}, +{input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY}, +{input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY}, +{input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY}, +{input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY}, + +// rtag:"mi" causes space to be inserted before a following sin, cos, etc. +// (see function LMparseExpr() ) +{input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY}, + +// "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em +{input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY}, +{input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY}, +{input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY}, +{input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY}, +{input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY}, +{input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY}, +{input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY}, +{input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY}, +{input:"\\setminus", tag:"mo", output:"\\", ttype:CONST}, + +//miscellaneous symbols +{input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE}, +{input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE}, +{input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE}, +{input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE}, +{input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE}, +{input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE}, +{input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE}, +{input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE}, +//{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width +{input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST}, +{input:"'", tag:"mo", output:"\u02B9", ttype:CONST}, +{input:"''", tag:"mo", output:"\u02BA", ttype:CONST}, +{input:"'''", tag:"mo", output:"\u2034", ttype:CONST}, +{input:"''''", tag:"mo", output:"\u2057", ttype:CONST}, +{input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST}, +{input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST}, +{input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST}, +{input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST}, +{input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST}, +{input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST}, +{input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST}, +{input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST}, +{input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST}, +{input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST}, +{input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST}, +{input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST}, +{input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST}, +{input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST}, +{input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION}, +{input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST}, +{input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST}, +{input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST}, +{input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST}, +{input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST}, +//{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST}, +{input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST}, +//{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST}, +{input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST}, +{input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST}, +{input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST}, +{input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST}, +{input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST}, +{input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST}, +{input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST}, +{input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST}, + +//standard functions +//Note UNDEROVER *must* have tag:"mo" to work properly +{input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true}, +{input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true}, +{input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true}, +{input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true}, +{input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true}, +{input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true}, +{input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true}, +{input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true}, +{input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true}, +{input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true}, +{input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true}, +{input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST? +{input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true}, +{input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST? +{input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true}, +{input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER}, +{input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true}, +{input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true}, +{input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER}, +{input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER}, +{input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER}, +{input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true}, +{input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true}, +{input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER}, +{input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER}, +{input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true}, +{input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true}, +{input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true}, +{input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true}, +{input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER}, +{input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true}, +{input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true}, + +//arrows +{input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST}, +{input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST}, +{input:"\\to", tag:"mo", output:"\u2192", ttype:CONST}, +{input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST}, +{input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST}, +{input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST}, +{input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST}, +{input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST}, +{input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST}, +{input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST}, +{input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST}, +{input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION}, +{input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST}, +{input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST}, +{input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST}, +{input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST}, +{input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG}, +{input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG}, +{input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG}, +{input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG}, +{input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG}, +{input:"\\implies", tag:"mo", output:"\u21D2", ttype:LONG}, +{input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG}, +{input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST}, + // disaster if LONG + +//commands with argument + +{input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY}, +{input:"\\root", tag:"mroot", output:"root", ttype:BINARY}, +{input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY}, +{input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY}, +{input:"\\atop", tag:"mfrac", output:"", ttype:INFIX}, +{input:"\\choose", tag:"mfrac", output:"", ttype:INFIX}, +{input:"_", tag:"msub", output:"_", ttype:INFIX}, +{input:"^", tag:"msup", output:"^", ttype:INFIX}, +{input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT}, +{input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT}, + +//diacritical marks +{input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true}, +//{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true}, +//{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true}, +//{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true}, +//{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true}, +{input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true}, +{input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true}, +{input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true}, +{input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true}, +{input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true}, +//{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true}, +{input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true}, +{input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true}, +{input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true}, +{input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true}, +{input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true}, +{input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true}, +{input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true}, +//{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true}, +{input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true}, +{input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true}, +{input:"\\overbrace", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true}, +{input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true}, +{input:"\\underbrace", tag:"munder", output:"\u23B5", ttype:UNARY, acc:true}, +{input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true}, +//{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true}, + +//typestyles and fonts +{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY}, +{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY}, +{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY}, +{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY}, +{input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION}, +{input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY}, +{input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY}, +{input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY}, +{input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY}, +{input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY}, +{input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY}, +{input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY}, +{input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb}, +{input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal}, +{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk} +]; + +var LMnames = []; //list of input symbols + +function LMremoveCharsAndBlanks(str,n) { +//remove n characters and any following blanks + var st; + st = str.slice(n); + for (var i=0; i =LMnames[k]; + } + LMpreviousSymbol=LMcurrentSymbol; + if (match!=""){ + LMcurrentSymbol=LMsymbols[mk].ttype; + return LMsymbols[mk]; + } + LMcurrentSymbol=CONST; + k = 1; + st = str.slice(0,1); //take 1 character + if ("0"<=st && st<="9") tagst = "mn"; + else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi"); +/* +// Commented out by DRW (not fully understood, but probably to do with +// use of "/" as an INFIX version of "\\frac", which we don't want): +//} +//if (st=="-" && LMpreviousSymbol==INFIX) { +// LMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse +// return {input:st, tag:tagst, output:st, ttype:UNARY, func:true}; +//} +*/ + return {input:st, tag:tagst, output:st, ttype:CONST}; +} + + +/*Parsing ASCII math expressions with the following grammar +v ::= [A-Za-z] | greek letters | numbers | other constant symbols +u ::= sqrt | text | bb | other unary symbols for font commands +b ::= frac | root | stackrel binary symbols +l ::= { | \left left brackets +r ::= } | \right right brackets +S ::= v | lEr | uS | bSS Simple expression +I ::= S_S | S^S | S_S^S | S Intermediate expression +E ::= IE | I/I Expression +Each terminal symbol is translated into a corresponding mathml node.*/ + +var LMpreviousSymbol,LMcurrentSymbol; + +function LMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag] + var symbol, node, result, result2, i, st,// rightvert = false, + newFrag = document.createDocumentFragment(); + str = LMremoveCharsAndBlanks(str,0); + symbol = LMgetSymbol(str); //either a token or a bracket or empty + if (symbol == null || symbol.ttype == RIGHTBRACKET) + return [null,str,null]; + if (symbol.ttype == DEFINITION) { + str = symbol.output+LMremoveCharsAndBlanks(str,symbol.input.length); + symbol = LMgetSymbol(str); + if (symbol == null || symbol.ttype == RIGHTBRACKET) + return [null,str,null]; + } + str = LMremoveCharsAndBlanks(str,symbol.input.length); + switch (symbol.ttype) { + case SPACE: + node = createMmlNode(symbol.tag); + node.setAttribute(symbol.atname,symbol.atval); + return [node,str,symbol.tag]; + case UNDEROVER: + if (isIE) { + if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols + str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc. + symbol = LMgetSymbol(str); + symbol.ttype = UNDEROVER; + str = LMremoveCharsAndBlanks(str,symbol.input.length); + } + } + return [createMmlNode(symbol.tag, + document.createTextNode(symbol.output)),str,symbol.tag]; + case CONST: + var output = symbol.output; + if (isIE) { + if (symbol.input == "'") + output = "\u2032"; + else if (symbol.input == "''") + output = "\u2033"; + else if (symbol.input == "'''") + output = "\u2033\u2032"; + else if (symbol.input == "''''") + output = "\u2033\u2033"; + else if (symbol.input == "\\square") + output = "\u25A1"; // same as \Box + else if (symbol.input.substr(0,5) == "\\frac") { + // botch for missing fractions + var denom = symbol.input.substr(6,1); + if (denom == "5" || denom == "6") { + str = symbol.input.replace(/\\frac/,"\\frac ")+str; + return [node,str,symbol.tag]; + } + } + } + node = createMmlNode(symbol.tag,document.createTextNode(output)); + return [node,str,symbol.tag]; + case LONG: // added by DRW + node = createMmlNode(symbol.tag,document.createTextNode(symbol.output)); + node.setAttribute("minsize","1.5"); + node.setAttribute("maxsize","1.5"); + node = createMmlNode("mover",node); + node.appendChild(createMmlNode("mspace")); + return [node,str,symbol.tag]; + case STRETCHY: // added by DRW + if (isIE && symbol.input == "\\backslash") + symbol.output = "\\"; // doesn't expand, but then nor does "\u2216" + node = createMmlNode(symbol.tag,document.createTextNode(symbol.output)); + if (symbol.input == "|" || symbol.input == "\\vert" || + symbol.input == "\\|" || symbol.input == "\\Vert") { + node.setAttribute("lspace","0em"); + node.setAttribute("rspace","0em"); + } + node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here + if (symbol.rtag != null) + return [node,str,symbol.rtag]; + else + return [node,str,symbol.tag]; + case BIG: // added by DRW + var atval = symbol.atval; + if (isIE) + atval = symbol.ieval; + symbol = LMgetSymbol(str); + if (symbol == null) + return [null,str,null]; + str = LMremoveCharsAndBlanks(str,symbol.input.length); + node = createMmlNode(symbol.tag,document.createTextNode(symbol.output)); + if (isIE) { // to get brackets to expand + var space = createMmlNode("mspace"); + space.setAttribute("height",atval+"ex"); + node = createMmlNode("mrow",node); + node.appendChild(space); + } else { // ignored in IE + node.setAttribute("minsize",atval); + node.setAttribute("maxsize",atval); + } + return [node,str,symbol.tag]; + case LEFTBRACKET: //read (expr+) + if (symbol.input == "\\left") { // left what? + symbol = LMgetSymbol(str); + if (symbol != null) { + if (symbol.input == ".") + symbol.invisible = true; + str = LMremoveCharsAndBlanks(str,symbol.input.length); + } + } + result = LMparseExpr(str,true,false); + if (symbol==null || + (typeof symbol.invisible == "boolean" && symbol.invisible)) + node = createMmlNode("mrow",result[0]); + else { + node = createMmlNode("mo",document.createTextNode(symbol.output)); + node = createMmlNode("mrow",node); + node.appendChild(result[0]); + } + return [node,result[1],result[2]]; + case MATRIX: //read (expr+) + if (symbol.input == "\\begin{array}") { + var mask = ""; + symbol = LMgetSymbol(str); + str = LMremoveCharsAndBlanks(str,0); + if (symbol == null) + mask = "l"; + else { + str = LMremoveCharsAndBlanks(str,symbol.input.length); + if (symbol.input != "{") + mask = "l"; + else do { + symbol = LMgetSymbol(str); + if (symbol != null) { + str = LMremoveCharsAndBlanks(str,symbol.input.length); + if (symbol.input != "}") + mask = mask+symbol.input; + } + } while (symbol != null && symbol.input != "" && symbol.input != "}"); + } + result = LMparseExpr("{"+str,true,true); +// if (result[0]==null) return [createMmlNode("mo", +// document.createTextNode(symbol.input)),str]; + node = createMmlNode("mtable",result[0]); + mask = mask.replace(/l/g,"left "); + mask = mask.replace(/r/g,"right "); + mask = mask.replace(/c/g,"center "); + node.setAttribute("columnalign",mask); + node.setAttribute("displaystyle","false"); + if (isIE) + return [node,result[1],null]; +// trying to get a *little* bit of space around the array +// (IE already includes it) + var lspace = createMmlNode("mspace"); + lspace.setAttribute("width","0.167em"); + var rspace = createMmlNode("mspace"); + rspace.setAttribute("width","0.167em"); + var node1 = createMmlNode("mrow",lspace); + node1.appendChild(node); + node1.appendChild(rspace); + return [node1,result[1],null]; + } else { // eqnarray + result = LMparseExpr("{"+str,true,true); + node = createMmlNode("mtable",result[0]); + if (isIE) + node.setAttribute("columnspacing","0.25em"); // best in practice? + else + node.setAttribute("columnspacing","0.167em"); // correct (but ignored?) + node.setAttribute("columnalign","right center left"); + node.setAttribute("displaystyle","true"); + node = createMmlNode("mrow",node); + return [node,result[1],null]; + } + case TEXT: + if (str.charAt(0)=="{") i=str.indexOf("}"); + else i = 0; + if (i==-1) + i = str.length; + st = str.slice(1,i); + if (st.charAt(0) == " ") { + node = createMmlNode("mspace"); + node.setAttribute("width","0.33em"); // was 1ex + newFrag.appendChild(node); + } + newFrag.appendChild( + createMmlNode(symbol.tag,document.createTextNode(st))); + if (st.charAt(st.length-1) == " ") { + node = createMmlNode("mspace"); + node.setAttribute("width","0.33em"); // was 1ex + newFrag.appendChild(node); + } + str = LMremoveCharsAndBlanks(str,i+1); + return [createMmlNode("mrow",newFrag),str,null]; + case UNARY: + result = LMparseSexpr(str); + if (result[0]==null) return [createMmlNode(symbol.tag, + document.createTextNode(symbol.output)),str]; + if (typeof symbol.func == "boolean" && symbol.func) { // functions hack + st = str.charAt(0); +// if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") { + if (st=="^" || st=="_" || st==",") { + return [createMmlNode(symbol.tag, + document.createTextNode(symbol.output)),str,symbol.tag]; + } else { + node = createMmlNode("mrow", + createMmlNode(symbol.tag,document.createTextNode(symbol.output))); + if (isIE) { + var space = createMmlNode("mspace"); + space.setAttribute("width","0.167em"); + node.appendChild(space); + } + node.appendChild(result[0]); + return [node,result[1],symbol.tag]; + } + } + if (symbol.input == "\\sqrt") { // sqrt + if (isIE) { // set minsize, for \surd + var space = createMmlNode("mspace"); + space.setAttribute("height","1.2ex"); + space.setAttribute("width","0em"); // probably no effect + node = createMmlNode(symbol.tag,result[0]) +// node.setAttribute("minsize","1"); // ignored +// node = createMmlNode("mrow",node); // hopefully unnecessary + node.appendChild(space); + return [node,result[1],symbol.tag]; + } else + return [createMmlNode(symbol.tag,result[0]),result[1],symbol.tag]; + } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent + node = createMmlNode(symbol.tag,result[0]); + var output = symbol.output; + if (isIE) { + if (symbol.input == "\\hat") + output = "\u0302"; + else if (symbol.input == "\\widehat") + output = "\u005E"; + else if (symbol.input == "\\bar") + output = "\u00AF"; + else if (symbol.input == "\\grave") + output = "\u0300"; + else if (symbol.input == "\\tilde") + output = "\u0303"; + } + var node1 = createMmlNode("mo",document.createTextNode(output)); + if (symbol.input == "\\vec" || symbol.input == "\\check") + // don't allow to stretch + node1.setAttribute("maxsize","1.2"); + // why doesn't "1" work? \vec nearly disappears in firefox + if (isIE && symbol.input == "\\bar") + node1.setAttribute("maxsize","0.5"); + if (symbol.input == "\\underbrace" || symbol.input == "\\underline") + node1.setAttribute("accentunder","true"); + else + node1.setAttribute("accent","true"); + node.appendChild(node1); + if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace") + node.ttype = UNDEROVER; + return [node,result[1],symbol.tag]; + } else { // font change or displaystyle command + if (!isIE && typeof symbol.codes != "undefined") { + for (i=0; i 64 && st.charCodeAt(j)<91) newst = newst + + String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]); + else newst = newst + st.charAt(j); + if (result[0].nodeName=="mi") + result[0]=createMmlNode("mo"). + appendChild(document.createTextNode(newst)); + else result[0].replaceChild(createMmlNode("mo"). + appendChild(document.createTextNode(newst)),result[0].childNodes[i]); + } + } + node = createMmlNode(symbol.tag,result[0]); + node.setAttribute(symbol.atname,symbol.atval); + if (symbol.input == "\\scriptstyle" || + symbol.input == "\\scriptscriptstyle") + node.setAttribute("displaystyle","false"); + return [node,result[1],symbol.tag]; + } + case BINARY: + result = LMparseSexpr(str); + if (result[0]==null) return [createMmlNode("mo", + document.createTextNode(symbol.input)),str,null]; + result2 = LMparseSexpr(result[1]); + if (result2[0]==null) return [createMmlNode("mo", + document.createTextNode(symbol.input)),str,null]; + if (symbol.input=="\\root" || symbol.input=="\\stackrel") + newFrag.appendChild(result2[0]); + newFrag.appendChild(result[0]); + if (symbol.input=="\\frac") newFrag.appendChild(result2[0]); + return [createMmlNode(symbol.tag,newFrag),result2[1],symbol.tag]; + case INFIX: + str = LMremoveCharsAndBlanks(str,symbol.input.length); + return [createMmlNode("mo",document.createTextNode(symbol.output)), + str,symbol.tag]; + default: + return [createMmlNode(symbol.tag, //its a constant + document.createTextNode(symbol.output)),str,symbol.tag]; + } +} + +function LMparseIexpr(str) { + var symbol, sym1, sym2, node, result, tag, underover; + str = LMremoveCharsAndBlanks(str,0); + sym1 = LMgetSymbol(str); + result = LMparseSexpr(str); + node = result[0]; + str = result[1]; + tag = result[2]; + symbol = LMgetSymbol(str); + if (symbol.ttype == INFIX) { + str = LMremoveCharsAndBlanks(str,symbol.input.length); + result = LMparseSexpr(str); + if (result[0] == null) // show box in place of missing argument + result[0] = createMmlNode("mo",document.createTextNode("\u25A1")); + str = result[1]; + tag = result[2]; + if (symbol.input == "_" || symbol.input == "^") { + sym2 = LMgetSymbol(str); + tag = null; // no space between x^2 and a following sin, cos, etc. +// This is for \underbrace and \overbrace + underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER)); +// underover = (sym1.ttype == UNDEROVER); + if (symbol.input == "_" && sym2.input == "^") { + str = LMremoveCharsAndBlanks(str,sym2.input.length); + var res2 = LMparseSexpr(str); + str = res2[1]; + tag = res2[2]; // leave space between x_1^2 and a following sin etc. + node = createMmlNode((underover?"munderover":"msubsup"),node); + node.appendChild(result[0]); + node.appendChild(res2[0]); + } else if (symbol.input == "_") { + node = createMmlNode((underover?"munder":"msub"),node); + node.appendChild(result[0]); + } else { + node = createMmlNode((underover?"mover":"msup"),node); + node.appendChild(result[0]); + } + node = createMmlNode("mrow",node); // so sum does not stretch + } else { + node = createMmlNode(symbol.tag,node); + if (symbol.input == "\\atop" || symbol.input == "\\choose") + node.setAttribute("linethickness","0ex"); + node.appendChild(result[0]); + if (symbol.input == "\\choose") + node = createMmlNode("mfenced",node); + } + } + return [node,str,tag]; +} + +function LMparseExpr(str,rightbracket,matrix) { + var symbol, node, result, i, tag, + newFrag = document.createDocumentFragment(); + do { + str = LMremoveCharsAndBlanks(str,0); + result = LMparseIexpr(str); + node = result[0]; + str = result[1]; + tag = result[2]; + symbol = LMgetSymbol(str); + if (node!=undefined) { + if ((tag == "mn" || tag == "mi") && symbol!=null && + typeof symbol.func == "boolean" && symbol.func) { + // Add space before \sin in 2\sin x or x\sin x + var space = createMmlNode("mspace"); + space.setAttribute("width","0.167em"); + node = createMmlNode("mrow",node); + node.appendChild(space); + } + newFrag.appendChild(node); + } + } while ((symbol.ttype != RIGHTBRACKET) + && symbol!=null && symbol.output!=""); + tag = null; + if (symbol.ttype == RIGHTBRACKET) { + if (symbol.input == "\\right") { // right what? + str = LMremoveCharsAndBlanks(str,symbol.input.length); + symbol = LMgetSymbol(str); + if (symbol != null && symbol.input == ".") + symbol.invisible = true; + if (symbol != null) + tag = symbol.rtag; + } + if (symbol!=null) + str = LMremoveCharsAndBlanks(str,symbol.input.length); // ready to return + var len = newFrag.childNodes.length; + if (matrix && + len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 && + newFrag.childNodes[len-2].nodeName == "mo" && + newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix + var pos = []; // positions of ampersands + var m = newFrag.childNodes.length; + for (i=0; matrix && i -&-&...&-&- + n = node.childNodes.length; + k = 0; + for (j=0; j 2) { + newFrag.removeChild(newFrag.firstChild); //remove + newFrag.removeChild(newFrag.firstChild); //remove & + } + table.appendChild(createMmlNode("mtr",row)); + } + return [table,str]; + } + if (typeof symbol.invisible != "boolean" || !symbol.invisible) { + node = createMmlNode("mo",document.createTextNode(symbol.output)); + newFrag.appendChild(node); + } + } + return [newFrag,str,tag]; +} + +var tcnt = 0, dcnt = 0; //theorem and definition counters + +function simpleLaTeXformatting(st) { + st = st.replace(/\$\$((.|\n)*?)\$\$/g,"$\\displaystyle{$1}$
"); + st = st.replace(/\\begin{(theorem|lemma|proposition|corollary)}((.|\n)*?)\\end{\1}/g,function(r,s,t){tcnt++; return ""+s.charAt(0).toUpperCase()+s.slice(1)+" "+tcnt+". "+t.replace(/^\s*<\/?\w+\/?>|\s*<\/?\w+\/?>$/g,"")+""}); + st = st.replace(/\\begin{(definition|example|remark|problem|exercise|conjecture|solution)}((.|\n)*?)\\end{\1}/g,function(r,s,t){dcnt++; return ""+s.charAt(0).toUpperCase()+s.slice(1)+" "+dcnt+". "+t.replace(/^\s*<\/?\w+\/?>|\s*<\/?\w+\/?>$/g,"")}); + st = st.replace(/\\begin{proof}((.|\n)*?)\\end{proof}/g,function(s,t){return "Proof: "+t.replace(/^\s*<\/?\w+\/?>|\s*<\/?\w+\/?>$/g,"")+" □"}); + st = st.replace(/\\emph{(.*?)}/g,"$1"); + st = st.replace(/\\textbf{(.*?)}/g,"$1"); + st = st.replace(/\\cite{(.*?)}/g,"[$1]"); + st = st.replace(/\\chapter{(.*?)}/g,"$1
"); + st = st.replace(/\\section{(.*?)}(\s*<\/?(br|p)\s?\/?>)?/g,"$1
"); + st = st.replace(/\\subsection{((.|\n)*?)}/g,"$1
"); + st = st.replace(/\\begin{itemize}(\s*<\/?(br|p)\s?\/?>)?/g,""); + st = st.replace(/\\item\s((.|\n)*?)(?=(\\item|\\end))/g,"
"); + st = st.replace(/\\begin{enumerate}(\s*<\/?(br|p)\s?\/?>)?/g,"- $1
"); + st = st.replace(/\\end{itemize}(\s*<\/?(br|p)\s?\/?>)?/g,""); + st = st.replace(/\\end{enumerate}(\s*<\/?(br|p)\s?\/?>)?/g,"
"); + st = st.replace(/\\item\[(.*?)]{(.*?)}/g,"$1 $2 "); + st = st.replace(/\\begin{description}/g,""); + st = st.replace(/\\end{description}/g,"
"); + st = st.replace(/\\newline\b/g,"
"); + st = st.replace(/\\newpage\b/g,"
"); + st = st.replace(/\\par\b/g,""); + st = st.replace(/\\bigskip/g,"
"); + st = st.replace(/\\medskip/g,"
"); + st = st.replace(/\\smallskip/g,"
"); + st = st.replace(/\\begin{center}((.|\n)*?)\\end{center}/g,"
$1 "); + return st +} + +function ASCIIandgraphformatting(st) { + st = st.replace(/(.*?)<\/sup>(\s|(\S))/gi,"^{$1} $3"); +//st = st.replace(/<\/?font.*?>/gi,""); // do this only in amath...endamath + st = st.replace(/(Proof:)/g,"$1"); + st = st.replace(/QED/g," □"); + st = st.replace(/(\\?end{?a?math}?)/ig,"$1"); + st = st.replace(/(\bamath\b|\\begin{a?math})/ig,"$1"); + st = st.replace(/([>\n])(Theorem|Lemma|Proposition|Corollary|Definition|Example|Remark|Problem|Exercise|Conjecture|Solution)(:|\W\W?(\w|\s|-|\.)*?\W?:)/g,"$1$2$3"); + st = st.replace(/