Commit 2c67b77c by Gideon Greenspan

1.5.4

parent c41db556
1.5.3
\ No newline at end of file
1.5.4
\ No newline at end of file
......@@ -220,11 +220,16 @@
if (@$closepost['parentid']==$oldquestion['postid'])
qa_post_unindex($closepost['postid']);
$setupdated=$hidden || !$wasqueued; // don't record approval of a post as an update action
$setupdated=$hidden || !$wasqueued; // don't record approval of a post as an update action...
qa_db_post_set_type($oldquestion['postid'], $hidden ? 'Q_HIDDEN' : 'Q',
$setupdated ? $userid : null, $setupdated ? qa_remote_ip_address() : null, QA_UPDATE_VISIBLE);
if (!$setupdated) { // ... for approval of a post, set created time to now instead
qa_db_post_set_created($oldquestion['postid'], null);
qa_db_hotness_update($oldquestion['postid']);
}
qa_db_category_path_qcount_update(qa_db_post_get_category_path($oldquestion['postid']));
qa_db_points_update_ifuser($oldquestion['userid'], array('qposts', 'aselects'));
qa_db_qcount_update();
......@@ -462,11 +467,14 @@
if ( ($comment['basetype']=='C') && ($comment['parentid']==$oldanswer['postid']) )
qa_post_unindex($comment['postid']);
$setupdated=$hidden || !$wasqueued; // don't record approval of a post as an update action
$setupdated=$hidden || !$wasqueued; // don't record approval of a post as an update action...
qa_db_post_set_type($oldanswer['postid'], $hidden ? 'A_HIDDEN' : 'A',
$setupdated ? $userid : null, $setupdated ? qa_remote_ip_address() : null, QA_UPDATE_VISIBLE);
if (!$setupdated) // ... for approval of a post, set created time to now instead
qa_db_post_set_created($oldanswer['postid'], null);
qa_db_points_update_ifuser($oldanswer['userid'], array('aposts', 'aselecteds'));
qa_db_post_acount_update($question['postid']);
qa_db_hotness_update($question['postid']);
......@@ -680,11 +688,14 @@
qa_post_unindex($oldcomment['postid']);
$setupdated=$hidden || !$wasqueued; // don't record approval of a post as an update action
$setupdated=$hidden || !$wasqueued; // don't record approval of a post as an update action...
qa_db_post_set_type($oldcomment['postid'], $hidden ? 'C_HIDDEN' : 'C',
$setupdated ? $userid : null, $setupdated ? qa_remote_ip_address() : null, QA_UPDATE_VISIBLE);
if (!$setupdated) // ... for approval of a post, set created time to now instead
qa_db_post_set_created($oldcomment['postid'], null);
qa_db_points_update_ifuser($oldcomment['userid'], array('cposts'));
qa_db_ccount_update();
......
......@@ -150,8 +150,10 @@
*/
{
if (qa_to_override(__FUNCTION__)) { $args=func_get_args(); return qa_call_override(__FUNCTION__, $args); }
return md5(QA_FINAL_MYSQL_HOSTNAME.'/'.QA_FINAL_MYSQL_USERNAME.'/'.QA_FINAL_MYSQL_PASSWORD.'/'.QA_FINAL_MYSQL_DATABASE.'/'.QA_MYSQL_TABLE_PREFIX);
$prefix=defined('QA_MYSQL_USERS_PREFIX') ? QA_MYSQL_USERS_PREFIX : QA_MYSQL_TABLE_PREFIX;
return md5(QA_FINAL_MYSQL_HOSTNAME.'/'.QA_FINAL_MYSQL_USERNAME.'/'.QA_FINAL_MYSQL_PASSWORD.'/'.QA_FINAL_MYSQL_DATABASE.'/'.$prefix);
}
......@@ -303,6 +305,14 @@
} else {
$handle=qa_handle_make_valid(@$fields['handle']);
if (strlen(@$fields['email'])) { // remove email address if it will cause a duplicate
$emailusers=qa_db_user_find_by_email($fields['email']);
if (count($emailusers)) {
unset($fields['email']);
unset($fields['confirmed']);
}
}
$userid=qa_create_new_user((string)@$fields['email'], null /* no password */, $handle,
isset($fields['level']) ? $fields['level'] : QA_USER_LEVEL_BASIC, @$fields['confirmed']);
......
......@@ -25,8 +25,8 @@
*/
define('QA_VERSION', '1.5.3'); // also used as suffix for .js and .css requests
define('QA_BUILD_DATE', '2012-09-26');
define('QA_VERSION', '1.5.4'); // also used as suffix for .js and .css requests
define('QA_BUILD_DATE', '2012-11-29');
// Execution section of this file - remainder contains function definitions
......@@ -715,13 +715,16 @@
}
function qa_sanitize_html_hook_tag($element, $attributes)
function qa_sanitize_html_hook_tag($element, $attributes=null)
/*
htmLawed hook function used to process tags in qa_sanitize_html(...)
*/
{
global $qa_sanitize_html_newwindow;
if (!isset($attributes)) // it's a closing tag
return '</'.$element.'>';
if ( ($element=='param') && (trim(strtolower(@$attributes['name']))=='allowscriptaccess') )
$attributes['name']='allowscriptaccess_denied';
......
......@@ -177,13 +177,19 @@
function qa_db_post_set_created($postid, $created)
/*
Set the created date of $postid to $created, which is a unix timestamp
Set the created date of $postid to $created, which is a unix timestamp. If created is NULL, set to now.
*/
{
qa_db_query_sub(
'UPDATE ^posts SET created=FROM_UNIXTIME(#) WHERE postid=#',
$created, $postid
);
if (isset($created))
qa_db_query_sub(
'UPDATE ^posts SET created=FROM_UNIXTIME(#) WHERE postid=#',
$created, $postid
);
else
qa_db_query_sub(
'UPDATE ^posts SET created=NOW() WHERE postid=#',
$postid
);
}
......
......@@ -207,8 +207,10 @@
if ($full) {
$selectspec['columns']['ocontent']=$poststable.'.content';
$selectspec['columns']['oformat']=$poststable.'.format';
$selectspec['columns']['oupdated']='UNIX_TIMESTAMP('.$poststable.'.updated)';
}
if ($fromupdated || $full)
$selectspec['columns']['oupdated']='UNIX_TIMESTAMP('.$poststable.'.updated)';
}
......
<?php
/*
htmLawed 1.1.10, 22 October 2011
htmLawed 1.1.14, 8 August 2012
Copyright Santosh Patnaik
LGPL v3 license
Dual licensed with LGPL 3 and GPL 2+
A PHP Labware internal utility; www.bioinformatics.org/phplabware/internal_utilities/htmLawed
See htmLawed_README.txt/htm
......@@ -194,7 +194,10 @@ for($i=-1, $ci=count($t); ++$i<$ci;){
echo '&lt;', $s, $e, $a, '&gt;';
}
if(isset($x[0])){
if($do < 3 or isset($ok['#pcdata'])){echo $x;}
if(strlen(trim($x)) && (($ql && isset($cB[$p])) or (isset($cB[$in]) && !$ql))){
echo '<div>', $x, '</div>';
}
elseif($do < 3 or isset($ok['#pcdata'])){echo $x;}
elseif(strpos($x, "\x02\x04")){
foreach(preg_split('`(\x01\x02[^\x01\x02]+\x02\x01)`', $x, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) as $v){
echo (substr($v, 0, 2) == "\x01\x02" ? $v : ($do > 4 ? preg_replace('`\S`', '', $v) : ''));
......@@ -202,7 +205,7 @@ for($i=-1, $ci=count($t); ++$i<$ci;){
}elseif($do > 4){echo preg_replace('`\S`', '', $x);}
}
// get markup
if(!preg_match('`^(/?)([a-zA-Z1-6]+)([^>]*)>(.*)`sm', $t[$i], $r)){$x = $t[$i]; continue;}
if(!preg_match('`^(/?)([a-z1-6]+)([^>]*)>(.*)`sm', $t[$i], $r)){$x = $t[$i]; continue;}
$s = null; $e = null; $a = null; $x = null; list($all, $s, $e, $a, $x) = $r;
// close tag
if($s){
......@@ -427,7 +430,7 @@ if($C['make_tag_strict'] && isset($eD[$e])){
// close tag
static $eE = array('area'=>1, 'br'=>1, 'col'=>1, 'embed'=>1, 'hr'=>1, 'img'=>1, 'input'=>1, 'isindex'=>1, 'param'=>1); // Empty ele
if(!empty($m[1])){
return (!isset($eE[$e]) ? "</$e>" : (($C['keep_bad'])%2 ? str_replace(array('<', '>'), array('&lt;', '&gt;'), $t) : ''));
return (!isset($eE[$e]) ? (empty($C['hook_tag']) ? "</$e>" : $C['hook_tag']($e)) : (($C['keep_bad'])%2 ? str_replace(array('<', '>'), array('&lt;', '&gt;'), $t) : ''));
}
// open tag & attr
......@@ -470,8 +473,8 @@ while(strlen($a)){
$aA[$nm] = '';
}
break; case 2: // Val
if(preg_match('`^"[^"]*"`', $a, $m) or preg_match("`^'[^']*'`", $a, $m) or preg_match("`^\s*[^\s\"']+`", $a, $m)){
$m = $m[0]; $w = 1; $mode = 0; $a = ltrim(substr_replace($a, '', 0, strlen($m)));
if(preg_match('`^((?:"[^"]*")|(?:\'[^\']*\')|(?:\s*[^\s"\']+))(.*)`', $a, $m)){
$a = ltrim($m[2]); $m = $m[1]; $w = 1; $mode = 0;
$aA[$nm] = trim(($m[0] == '"' or $m[0] == '\'') ? substr($m, 1, -1) : $m);
}
break;
......@@ -488,7 +491,7 @@ global $S;
$rl = isset($S[$e]) ? $S[$e] : array();
$a = array(); $nfr = 0;
foreach($aA as $k=>$v){
if(((isset($C['deny_attribute']['*']) ? isset($C['deny_attribute'][$k]) : !isset($C['deny_attribute'][$k])) or isset($rl[$k])) && ((!isset($rl['n'][$k]) && !isset($rl['n']['*'])) or isset($rl[$k])) && (isset($aN[$k][$e]) or (isset($aNU[$k]) && !isset($aNU[$k][$e])))){
if(((isset($C['deny_attribute']['*']) ? isset($C['deny_attribute'][$k]) : !isset($C['deny_attribute'][$k])) && (isset($aN[$k][$e]) or (isset($aNU[$k]) && !isset($aNU[$k][$e]))) && !isset($rl['n'][$k]) && !isset($rl['n']['*'])) or isset($rl[$k])){
if(isset($aNE[$k])){$v = $k;}
elseif(!empty($lcase) && (($e != 'button' or $e != 'input') or $k == 'type')){ // Rather loose but ?not cause issues
$v = (isset($aNL[($v2 = strtolower($v))])) ? $v2 : $v;
......@@ -622,7 +625,7 @@ if($e == 'u'){$e = 'span'; return 'text-decoration: underline;';}
static $fs = array('0'=>'xx-small', '1'=>'xx-small', '2'=>'small', '3'=>'medium', '4'=>'large', '5'=>'x-large', '6'=>'xx-large', '7'=>'300%', '-1'=>'smaller', '-2'=>'60%', '+1'=>'larger', '+2'=>'150%', '+3'=>'200%', '+4'=>'300%');
if($e == 'font'){
$a2 = '';
if(preg_match('`face\s*=\s*(\'|")([^=]+?)\\1`i', $a, $m) or preg_match('`face\s*=\s*([^"])(\S+)`i', $a, $m)){
if(preg_match('`face\s*=\s*(\'|")([^=]+?)\\1`i', $a, $m) or preg_match('`face\s*=(\s*)(\S+)`i', $a, $m)){
$a2 .= ' font-family: '. str_replace('"', '\'', trim($m[2])). ';';
}
if(preg_match('`color\s*=\s*(\'|")?(.+?)(\\1|\s|$)`i', $a, $m)){
......@@ -647,33 +650,42 @@ if(($w = strtolower($w)) == -1){
}
$s = strpos(" $w", 't') ? "\t" : ' ';
$s = preg_match('`\d`', $w, $m) ? str_repeat($s, $m[0]) : str_repeat($s, ($s == "\t" ? 1 : 2));
$n = preg_match('`[ts]([1-9])`', $w, $m) ? $m[1] : 0;
$N = preg_match('`[ts]([1-9])`', $w, $m) ? $m[1] : 0;
$a = array('br'=>1);
$b = array('button'=>1, 'input'=>1, 'option'=>1);
$c = array('caption'=>1, 'dd'=>1, 'dt'=>1, 'h1'=>1, 'h2'=>1, 'h3'=>1, 'h4'=>1, 'h5'=>1, 'h6'=>1, 'isindex'=>1, 'label'=>1, 'legend'=>1, 'li'=>1, 'object'=>1, 'p'=>1, 'pre'=>1, 'td'=>1, 'textarea'=>1, 'th'=>1);
$d = array('address'=>1, 'blockquote'=>1, 'center'=>1, 'colgroup'=>1, 'dir'=>1, 'div'=>1, 'dl'=>1, 'fieldset'=>1, 'form'=>1, 'hr'=>1, 'iframe'=>1, 'map'=>1, 'menu'=>1, 'noscript'=>1, 'ol'=>1, 'optgroup'=>1, 'rbc'=>1, 'rtc'=>1, 'ruby'=>1, 'script'=>1, 'select'=>1, 'table'=>1, 'tfoot'=>1, 'thead'=>1, 'tr'=>1, 'ul'=>1);
ob_start();
if(isset($d[$p])){echo str_repeat($s, ++$n);}
$t = explode('<', $t);
echo ltrim(array_shift($t));
for($i=-1, $j=count($t); ++$i<$j;){
$r = ''; list($e, $r) = explode('>', $t[$i]);
$x = $e[0] == '/' ? 0 : (substr($e, -1) == '/' ? 1 : ($e[0] != '!' ? 2 : -1));
$y = !$x ? ltrim($e, '/') : ($x > 0 ? substr($e, 0, strcspn($e, ' ')) : 0);
$e = "<$e>";
if(isset($d[$y])){
if(!$x){echo "\n", str_repeat($s, --$n), "$e\n", str_repeat($s, $n);}
else{echo "\n", str_repeat($s, $n), "$e\n", str_repeat($s, ($x != 1 ? ++$n : $n));}
echo ltrim($r); continue;
$d = array('address'=>1, 'blockquote'=>1, 'center'=>1, 'colgroup'=>1, 'dir'=>1, 'div'=>1, 'dl'=>1, 'fieldset'=>1, 'form'=>1, 'hr'=>1, 'iframe'=>1, 'map'=>1, 'menu'=>1, 'noscript'=>1, 'ol'=>1, 'optgroup'=>1, 'rbc'=>1, 'rtc'=>1, 'ruby'=>1, 'script'=>1, 'select'=>1, 'table'=>1, 'tbody'=>1, 'tfoot'=>1, 'thead'=>1, 'tr'=>1, 'ul'=>1);
$T = explode('<', $t);
$X = 1;
while($X){
$n = $N;
$t = $T;
ob_start();
if(isset($d[$p])){echo str_repeat($s, ++$n);}
echo ltrim(array_shift($t));
for($i=-1, $j=count($t); ++$i<$j;){
$r = ''; list($e, $r) = explode('>', $t[$i]);
$x = $e[0] == '/' ? 0 : (substr($e, -1) == '/' ? 1 : ($e[0] != '!' ? 2 : -1));
$y = !$x ? ltrim($e, '/') : ($x > 0 ? substr($e, 0, strcspn($e, ' ')) : 0);
$e = "<$e>";
if(isset($d[$y])){
if(!$x){
if($n){echo "\n", str_repeat($s, --$n), "$e\n", str_repeat($s, $n);}
else{++$N; ob_end_clean(); continue 2;}
}
else{echo "\n", str_repeat($s, $n), "$e\n", str_repeat($s, ($x != 1 ? ++$n : $n));}
echo ltrim($r); continue;
}
$f = "\n". str_repeat($s, $n);
if(isset($c[$y])){
if(!$x){echo $e, $f, ltrim($r);}
else{echo $f, $e, $r;}
}elseif(isset($b[$y])){echo $f, $e, $r;
}elseif(isset($a[$y])){echo $e, $f, ltrim($r);
}elseif(!$y){echo $f, $e, $f, ltrim($r);
}else{echo $e, $r;}
}
$f = "\n". str_repeat($s, $n);
if(isset($c[$y])){
if(!$x){echo $e, $f, ltrim($r);}
else{echo $f, $e, $r;}
}elseif(isset($b[$y])){echo $f, $e, $r;
}elseif(isset($a[$y])){echo $e, $f, ltrim($r);
}elseif(!$y){echo $f, $e, $f, ltrim($r);
}else{echo $e, $r;}
$X = 0;
}
$t = preg_replace('`[\n]\s*?[\n]+`', "\n", ob_get_contents());
ob_end_clean();
......@@ -686,7 +698,7 @@ return str_replace(array("\x01", "\x02", "\x03", "\x04", "\x05", "\x07"), array(
function hl_version(){
// rel
return '1.1.10';
return '1.1.14';
// eof
}
......
......@@ -220,7 +220,7 @@
break;
case 'non-users-missing':
$errorhtml='This Question2Answer site is sharing its users with another Q2A site, but it needs some additional database tables for its own content. Click below to create them.';
$errorhtml='This Question2Answer site is sharing its users with another Q2A site, but it needs some additional database tables for its own content. Please click below to create them.';
$buttons=array('nonuser' => 'Create Tables');
break;
......
......@@ -95,6 +95,7 @@
'me' => 'me',
'meta_order' => '^what^when^where^who', // you can reorder but DO NOT translate! e.g. <answered> <15 hours ago> <in Problems> <by me (500 points)>
'min_length_x' => 'Please provide more information - at least ^ characters',
'max_upload_size_x' => 'Maximum upload size is ^',
'moved' => 'moved',
'nav_account' => 'My Account',
'nav_activity' => 'All Activity',
......
......@@ -242,6 +242,7 @@
'buttons' => array(
'save' => array(
'tags' => 'onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('users/save_profile'),
),
),
......
......@@ -178,7 +178,8 @@
'buttons' => array(
'ask' => array(
'tags' => method_exists($editor, 'update_script') ? ('onClick="'.$editor->update_script('content').'"') : '',
'tags' => 'onClick="qa_show_waiting_after(this, false); '.
(method_exists($editor, 'update_script') ? $editor->update_script('content') : '').'"',
'label' => qa_lang_html('question/ask_button'),
),
),
......
......@@ -168,7 +168,7 @@
if (count($questions) && !qa_user_permit_error('permit_hide_show'))
$qa_content['form']['buttons']['hideall']=array(
'tags' => 'NAME="dohideall"',
'tags' => 'NAME="dohideall" onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('misc/hide_all_ip_button'),
);
......
......@@ -172,6 +172,7 @@
'buttons' => array(
'send' => array(
'tags' => 'onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('main/send_button'),
),
),
......
......@@ -335,6 +335,7 @@
'buttons' => array(
'save' => array(
'tags' => 'onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('main/save_button'),
),
......@@ -359,7 +360,8 @@
$form['fields']['content']=array_merge($form['fields']['content'],
qa_editor_load_field($editor, $qa_content, $content, $format, 'q_content', 12, true));
$form['buttons']['save']['tags']=method_exists($editor, 'update_script') ? ('onClick="'.$editor->update_script('q_content').'"') : '';
if (method_exists($editor, 'update_script'))
$form['buttons']['save']['tags']='onClick="qa_show_waiting_after(this, false); '.$editor->update_script('q_content').'"';
$form['hidden']['q_editor']=qa_html($editorname);
......@@ -502,6 +504,7 @@
'buttons' => array(
'close' => array(
'tags' => 'onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('question/close_form_button'),
),
......@@ -615,10 +618,11 @@
)
),
),
'buttons' => array(
'save' => array(
'tags' => method_exists($editor, 'update_script') ? ('onClick="'.$editor->update_script($prefix.'content').'"') : '',
'tags' => 'onClick="qa_show_waiting_after(this, false); '.
(method_exists($editor, 'update_script') ? $editor->update_script($prefix.'content') : '').'"',
'label' => qa_lang_html('main/save_button'),
),
......@@ -833,7 +837,8 @@
'buttons' => array(
'save' => array(
'tags' => method_exists($editor, 'update_script') ? ('onClick="'.$editor->update_script($prefix.'content').'"') : '',
'tags' => 'onClick="qa_show_waiting_after(this, false); '.
(method_exists($editor, 'update_script') ? $editor->update_script($prefix.'content') : '').'"',
'label' => qa_lang_html('main/save_button'),
),
......
......@@ -233,6 +233,7 @@
// Buttons for operating on the question
if (!$formrequested) { // don't show if another form is currently being shown on page
$clicksuffix=' onClick="qa_show_waiting_after(this, false);"'; // add to operations that write to database
$buttons=array();
if ($question['editbutton'])
......@@ -256,21 +257,21 @@
if ($question['flagbutton'])
$buttons['flag']=array(
'tags' => 'NAME="q_doflag"',
'tags' => 'NAME="q_doflag"'.$clicksuffix,
'label' => qa_lang_html($question['flagtohide'] ? 'question/flag_hide_button' : 'question/flag_button'),
'popup' => qa_lang_html('question/flag_q_popup'),
);
if ($question['unflaggable'])
$buttons['unflag']=array(
'tags' => 'NAME="q_dounflag"',
'tags' => 'NAME="q_dounflag"'.$clicksuffix,
'label' => qa_lang_html('question/unflag_button'),
'popup' => qa_lang_html('question/unflag_popup'),
);
if ($question['clearflaggable'])
$buttons['clearflags']=array(
'tags' => 'NAME="q_doclearflags"',
'tags' => 'NAME="q_doclearflags"'.$clicksuffix,
'label' => qa_lang_html('question/clear_flags_button'),
'popup' => qa_lang_html('question/clear_flags_popup'),
);
......@@ -284,45 +285,45 @@
if ($question['reopenable'])
$buttons['reopen']=array(
'tags' => 'NAME="q_doreopen"',
'tags' => 'NAME="q_doreopen"'.$clicksuffix,
'label' => qa_lang_html('question/reopen_button'),
);
if ($question['moderatable']) {
$buttons['approve']=array(
'tags' => 'NAME="q_doapprove"',
'tags' => 'NAME="q_doapprove"'.$clicksuffix,
'label' => qa_lang_html('question/approve_button'),
);
$buttons['reject']=array(
'tags' => 'NAME="q_doreject"',
'tags' => 'NAME="q_doreject"'.$clicksuffix,
'label' => qa_lang_html('question/reject_button'),
);
}
if ($question['hideable'])
$buttons['hide']=array(
'tags' => 'NAME="q_dohide"',
'tags' => 'NAME="q_dohide"'.$clicksuffix,
'label' => qa_lang_html('question/hide_button'),
'popup' => qa_lang_html('question/hide_q_popup'),
);
if ($question['reshowable'])
$buttons['reshow']=array(
'tags' => 'NAME="q_doreshow"',
'tags' => 'NAME="q_doreshow"'.$clicksuffix,
'label' => qa_lang_html('question/reshow_button'),
);
if ($question['deleteable'])
$buttons['delete']=array(
'tags' => 'NAME="q_dodelete"',
'tags' => 'NAME="q_dodelete"'.$clicksuffix,
'label' => qa_lang_html('question/delete_button'),
'popup' => qa_lang_html('question/delete_q_popup'),
);
if ($question['claimable'])
$buttons['claim']=array(
'tags' => 'NAME="q_doclaim"',
'tags' => 'NAME="q_doclaim"'.$clicksuffix,
'label' => qa_lang_html('question/claim_button'),
);
......
......@@ -140,6 +140,7 @@
'buttons' => array(
'register' => array(
'tags' => 'onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('users/register_button'),
),
),
......
......@@ -475,6 +475,7 @@
$qa_content['form_profile']['buttons']=array(
'save' => array(
'tags' => 'onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('users/save_user'),
),
......@@ -505,13 +506,13 @@
if (count($questions) && !qa_user_permit_error('permit_hide_show'))
$qa_content['form_profile']['buttons']['hideall']=array(
'tags' => 'NAME="dohideall"',
'tags' => 'NAME="dohideall" onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('users/hide_all_user_button'),
);
if ($loginlevel>=QA_USER_LEVEL_ADMIN)
$qa_content['form_profile']['buttons']['delete']=array(
'tags' => 'NAME="dodelete"',
'tags' => 'NAME="dodelete" onClick="qa_show_waiting_after(this, false);"',
'label' => qa_lang_html('users/delete_user_button'),
);
......
......@@ -1605,15 +1605,15 @@
{
$this->output('<UL CLASS="'.$class.'-tag-list">');
foreach ($post['q_tags'] as $tag)
$this->post_tag_item($tag, $class);
foreach ($post['q_tags'] as $taghtml)
$this->post_tag_item($taghtml, $class);
$this->output('</UL>');
}
function post_tag_item($tag, $class)
function post_tag_item($taghtml, $class)
{
$this->output('<LI CLASS="'.$class.'-tag-item">'.$tag.'</LI>');
$this->output('<LI CLASS="'.$class.'-tag-item">'.$taghtml.'</LI>');
}
function page_links()
......
......@@ -89,7 +89,7 @@
'location' => @$user['location']['name'],
'website' => @$user['website'],
'about' => @$user['bio'],
'avatar' => strlen(@$user['picture']) ? qa_retrieve_url($user['picture']) : null,
'avatar' => strlen(@$user['picture']['data']['url']) ? qa_retrieve_url($user['picture']['data']['url']) : null,
));
} catch (FacebookApiException $e) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -3,6 +3,6 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'C6HH5UF',version:'3.6.4',revision:'7575',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);
(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'C9A85WF',version:'3.6.5',revision:'7647',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);
if(g>=0)f.listeners.splice(g,1);}},hasListeners:function(d){var e=b(this)[d];return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(d&&d.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1})d=null;if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,iOS:/(ipad|iphone|ipod)/.test(b),isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';},secure:location.protocol=='https:'};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie9Compat=document.documentMode==9;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=d.iOS&&e>=534||!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.webkit?'webkit':'unknown');
if(d.quirks)d.cssClass+=' cke_browser_quirks';if(d.ie){d.cssClass+=' cke_browser_ie'+(d.version<7?'6':d.version>=8?document.documentMode:'7');if(d.quirks)d.cssClass+=' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=' cke_browser_gecko18';if(d.air)d.cssClass+=' cke_browser_air';return d;})();var b=a.env;var c=b.ie;if(a.status=='unloaded')(function(){a.event.implementOn(a);a.loadFullCore=function(){if(a.status!='basic_ready'){a.loadFullCore._load=1;return;}delete a.loadFullCore;var e=document.createElement('script');e.type='text/javascript';e.src=a.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendChild(e);};a.loadFullCoreTimeout=0;a.replaceClass='ckeditor';a.replaceByClassEnabled=1;var d=function(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore();var i=g(e,f,h);a.add(i);return i;}return null;};a.replace=function(e,f){return d(e,f,a.editor.replace);};a.appendTo=function(e,f,g){return d(e,f,a.editor.appendTo,g);};a.add=function(e){var f=this._.pending||(this._.pending=[]);f.push(e);};a.replaceAll=function(){var e=document.getElementsByTagName('textarea');for(var f=0;f<e.length;f++){var g=null,h=e[f];if(!h.name&&!h.id)continue;if(typeof arguments[0]=='string'){var i=new RegExp('(?:^|\\s)'+arguments[0]+'(?:$|\\s)');if(!i.test(h.className))continue;}else if(typeof arguments[0]=='function'){g={};if(arguments[0](h,g)===false)continue;}this.replace(h,g);}};(function(){var e=function(){var f=a.loadFullCore,g=a.loadFullCoreTimeout;if(a.replaceByClassEnabled)a.replaceAll(a.replaceClass);a.status='basic_ready';if(f&&f._load)f();else if(g)setTimeout(function(){if(a.loadFullCore)a.loadFullCore();},g*1000);};if(window.addEventListener)window.addEventListener('load',e,false);else if(window.attachEvent)window.attachEvent('onload',e);})();a.status='basic_loaded';})();})();
......@@ -5,7 +5,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Compressed version of core/ckeditor_base.js. See original for instructions.
/*jsl:ignore*/
if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.4',revision:'7575',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.5',revision:'7647',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
/*jsl:end*/
// Uncomment the following line to have a new timestamp generated for each
......
......@@ -5,7 +5,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Compressed version of core/ckeditor_base.js. See original for instructions.
/*jsl:ignore*/
if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.4',revision:'7575',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.5',revision:'7647',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
/*jsl:end*/
// Uncomment the following line to have a new timestamp generated for each
......
......@@ -3,4 +3,4 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
var CKEDITOR_LANGS=(function(){var b={af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',cy:'Welsh',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-gb':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',it:'Italian',ja:'Japanese',ka:'Georgian',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},c=[];for(var d in b)c.push({code:d,name:b[d]});c.sort(function(e,f){return e.name<f.name?-1:1;});return c;})();
var CKEDITOR_LANGS=(function(){var b={af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',cy:'Welsh',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-gb':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',it:'Italian',ja:'Japanese',ka:'Georgian',km:'Khmer',ko:'Korean',ku:'Kurdish',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',ug:'Uighur',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},c=[];for(var d in b)c.push({code:d,name:b[d]});c.sort(function(e,f){return e.name<f.name?-1:1;});return c;})();
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
af.js Found: 548 Missing: 29
ar.js Found: 470 Missing: 107
bg.js Found: 394 Missing: 183
bn.js Found: 292 Missing: 285
bs.js Found: 175 Missing: 402
ca.js Found: 549 Missing: 28
cs.js Found: 577 Missing: 0
cy.js Found: 575 Missing: 2
da.js Found: 575 Missing: 2
de.js Found: 575 Missing: 2
el.js Found: 391 Missing: 186
en-au.js Found: 347 Missing: 230
en-ca.js Found: 345 Missing: 232
en-gb.js Found: 517 Missing: 60
eo.js Found: 577 Missing: 0
es.js Found: 575 Missing: 2
et.js Found: 577 Missing: 0
eu.js Found: 417 Missing: 160
fa.js Found: 575 Missing: 2
fi.js Found: 575 Missing: 2
fo.js Found: 575 Missing: 2
fr-ca.js Found: 319 Missing: 258
fr.js Found: 575 Missing: 2
gl.js Found: 292 Missing: 285
gu.js Found: 575 Missing: 2
he.js Found: 575 Missing: 2
hi.js Found: 327 Missing: 250
hr.js Found: 575 Missing: 2
hu.js Found: 572 Missing: 5
id.js Found: 1 Missing: 576
is.js Found: 326 Missing: 251
it.js Found: 577 Missing: 0
ja.js Found: 493 Missing: 84
ka.js Found: 568 Missing: 9
km.js Found: 286 Missing: 291
ko.js Found: 304 Missing: 273
lt.js Found: 575 Missing: 2
lv.js Found: 294 Missing: 283
mk.js Found: 0 Missing: 577
mn.js Found: 320 Missing: 257
ms.js Found: 276 Missing: 301
nb.js Found: 577 Missing: 0
nl.js Found: 575 Missing: 2
no.js Found: 577 Missing: 0
pl.js Found: 575 Missing: 2
pt-br.js Found: 577 Missing: 0
pt.js Found: 326 Missing: 251
ro.js Found: 432 Missing: 145
ru.js Found: 575 Missing: 2
sk.js Found: 364 Missing: 213
sl.js Found: 426 Missing: 151
sr-latn.js Found: 287 Missing: 290
sr.js Found: 286 Missing: 291
sv.js Found: 550 Missing: 27
th.js Found: 298 Missing: 279
tr.js Found: 575 Missing: 2
ug.js Found: 572 Missing: 5
uk.js Found: 575 Missing: 2
vi.js Found: 577 Missing: 0
zh-cn.js Found: 577 Missing: 0
zh.js Found: 433 Missing: 144
af.js Found: 550 Missing: 28
ar.js Found: 470 Missing: 108
bg.js Found: 396 Missing: 182
bn.js Found: 292 Missing: 286
bs.js Found: 175 Missing: 403
ca.js Found: 549 Missing: 29
cs.js Found: 578 Missing: 0
cy.js Found: 578 Missing: 0
da.js Found: 576 Missing: 2
de.js Found: 577 Missing: 1
el.js Found: 391 Missing: 187
en-au.js Found: 347 Missing: 231
en-ca.js Found: 345 Missing: 233
en-gb.js Found: 517 Missing: 61
eo.js Found: 577 Missing: 1
es.js Found: 577 Missing: 1
et.js Found: 577 Missing: 1
eu.js Found: 417 Missing: 161
fa.js Found: 577 Missing: 1
fi.js Found: 578 Missing: 0
fo.js Found: 576 Missing: 2
fr-ca.js Found: 321 Missing: 257
fr.js Found: 577 Missing: 1
gl.js Found: 292 Missing: 286
gu.js Found: 577 Missing: 1
he.js Found: 577 Missing: 1
hi.js Found: 329 Missing: 249
hr.js Found: 577 Missing: 1
hu.js Found: 573 Missing: 5
id.js Found: 1 Missing: 577
is.js Found: 326 Missing: 252
it.js Found: 578 Missing: 0
ja.js Found: 495 Missing: 83
ka.js Found: 570 Missing: 8
km.js Found: 286 Missing: 292
ko.js Found: 304 Missing: 274
ku.js Found: 578 Missing: 0
lt.js Found: 577 Missing: 1
lv.js Found: 294 Missing: 284
mk.js Found: 0 Missing: 578
mn.js Found: 320 Missing: 258
ms.js Found: 276 Missing: 302
nb.js Found: 578 Missing: 0
nl.js Found: 575 Missing: 3
no.js Found: 578 Missing: 0
pl.js Found: 577 Missing: 1
pt-br.js Found: 578 Missing: 0
pt.js Found: 326 Missing: 252
ro.js Found: 433 Missing: 145
ru.js Found: 577 Missing: 1
sk.js Found: 577 Missing: 1
sl.js Found: 426 Missing: 152
sr-latn.js Found: 287 Missing: 291
sr.js Found: 286 Missing: 292
sv.js Found: 551 Missing: 27
th.js Found: 298 Missing: 280
tr.js Found: 577 Missing: 1
ug.js Found: 574 Missing: 4
uk.js Found: 577 Missing: 1
vi.js Found: 577 Missing: 1
zh-cn.js Found: 577 Missing: 1
zh.js Found: 435 Missing: 143
......@@ -13,12 +13,14 @@ fr.js Found: 30 Missing: 0
gu.js Found: 12 Missing: 18
he.js Found: 30 Missing: 0
it.js Found: 30 Missing: 0
ku.js Found: 30 Missing: 0
mk.js Found: 5 Missing: 25
nb.js Found: 30 Missing: 0
nl.js Found: 30 Missing: 0
no.js Found: 30 Missing: 0
pt-br.js Found: 30 Missing: 0
ro.js Found: 6 Missing: 24
sk.js Found: 30 Missing: 0
tr.js Found: 30 Missing: 0
ug.js Found: 27 Missing: 3
vi.js Found: 6 Missing: 24
......
......@@ -3,4 +3,92 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('a11yhelp','fa',{accessibilityHelp:{title:'دستورالعملهای دسترسی',contents:'راهنمای فهرست مطالب. برای بستن این کادر محاورهای ESC را فشار دهید.',legend:[{name:'عمومی',items:[{name:'نوار ابزار ویرایشگر',legend:'${toolbarFocus} را برای باز کردن نوار ابزار بفشارید. با کلید Tab و Shif-Tab در مجموعه نوار ابزار بعدی و قبلی حرکت کنید. برای حرکت در کلید نوار ابزار قبلی و بعدی با کلید جهتنمای راست و چپ جابجا شوید. کلید Space یا Enter را برای فعال کردن کلید نوار ابزار بفشارید.'},{name:'پنجره محاورهای ویرایشگر',legend:'در داخل یک پنجره محاورهای، کلید Tab را بفشارید تا به پنجرهی بعدی بروید، Shift+Tab برای حرکت به فیلد قبلی، فشردن Enter برای ثبت اطلاعات پنجره، فشردن Esc برای لغو پنجره محاورهای و برای پنجرههایی که چندین برگه دارند، فشردن Alt+F10 جهت رفتن به Tab-List. در نهایت حرکت به برگه بعدی با Tab یا کلید جهتنمای راست. حرکت به برگه قبلی با Shift+Tab یا کلید جهتنمای چپ. فشردن Space یا Enter برای انتخاب یک برگه.'},{name:'منوی متنی ویرایشگر',legend:'${contextMenu} یا کلید برنامههای کاربردی را برای باز کردن منوی متن را بفشارید. سپس میتوانید برای حرکت به گزینه بعدی منو با کلید Tab و یا کلید جهتنمای پایین جابجا شوید. حرکت به گزینه قبلی با Shift+Tab یا کلید جهتنمای بالا. فشردن Space یا Enter برای انتخاب یک گزینه از منو. باز کردن زیر شاخه گزینه منو جاری با کلید Space یا Enter و یا کلید جهتنمای راست و چپ. بازگشت به منوی والد با کلید Esc یا کلید جهتنمای چپ. بستن منوی متن با Esc.'},{name:'جعبه فهرست ویرایشگر',legend:'در داخل جعبه لیست، قلم دوم از اقلام لیست بعدی را با TAB و یا Arrow Down حرکت دهید. انتقال به قلم دوم از اقلام لیست قبلی را با SHIFT + TAB یا UP ARROW. کلید Space یا ENTER را برای انتخاب گزینه لیست بفشارید. کلید ESC را برای بستن جعبه لیست بفشارید.'},{name:'ویرایشگر عنصر نوار راه',legend:'برای رفتن به مسیر عناصر ${elementsPathFocus} را بفشارید. حرکت به کلید عنصر بعدی با کلید Tab یا کلید جهتنمای راست. برگشت به کلید قبلی با Shift+Tab یا کلید جهتنمای چپ. فشردن Space یا Enter برای انتخاب یک عنصر در ویرایشگر.'}]},{name:'فرمانها',items:[{name:'بازگشت فرمان',legend:'فشردن ${undo}'},{name:'انجام مجدد فرمان',legend:'فشردن ${redo}'},{name:'فرمان متن درشت',legend:'فشردن ${bold}'},{name:'فرمان متن کج',legend:'فشردن ${italic}'},{name:'فرمان متن زیرخطدار',legend:'فشردن ${underline}'},{name:'فرمان پیوند',legend:'فشردن ${link}'},{name:'بستن نوار ابزار فرمان',legend:'فشردن ${toolbarCollapse}'},{name:'راهنمای دسترسی',legend:'فشردن ${a11yHelp}'}]}]}});
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'a11yhelp', 'fa',
{
accessibilityHelp :
{
title : 'دستورالعمل‌های دسترسی',
contents : 'راهنمای فهرست مطالب. برای بستن این کادر محاوره‌ای ESC را فشار دهید.',
legend :
[
{
name : 'عمومی',
items :
[
{
name : 'نوار ابزار ویرایشگر',
legend:
'${toolbarFocus} را برای باز کردن نوار ابزار بفشارید. با کلید Tab و Shif-Tab در مجموعه نوار ابزار بعدی و قبلی حرکت کنید. برای حرکت در کلید نوار ابزار قبلی و بعدی با کلید جهت‌نمای راست و چپ جابجا شوید. کلید Space یا Enter را برای فعال کردن کلید نوار ابزار بفشارید.'
},
{
name : 'پنجره محاوره‌ای ویرایشگر',
legend :
'در داخل یک پنجره محاوره‌ای، کلید Tab را بفشارید تا به پنجره‌ی بعدی بروید، Shift+Tab برای حرکت به فیلد قبلی، فشردن Enter برای ثبت اطلاعات پنجره‌، فشردن Esc برای لغو پنجره محاوره‌ای و برای پنجره‌هایی که چندین برگه دارند، فشردن Alt+F10 جهت رفتن به Tab-List. در نهایت حرکت به برگه بعدی با Tab یا کلید جهت‌نمای راست. حرکت به برگه قبلی با Shift+Tab یا کلید جهت‌نمای چپ. فشردن Space یا Enter برای انتخاب یک برگه.'
},
{
name : 'منوی متنی ویرایشگر',
legend :
'${contextMenu} یا کلید برنامه‌های کاربردی را برای باز کردن منوی متن را بفشارید. سپس می‌توانید برای حرکت به گزینه بعدی منو با کلید Tab و یا کلید جهت‌نمای پایین جابجا شوید. حرکت به گزینه قبلی با Shift+Tab یا کلید جهت‌نمای بالا. فشردن Space یا Enter برای انتخاب یک گزینه از منو. باز کردن زیر شاخه گزینه منو جاری با کلید Space یا Enter و یا کلید جهت‌نمای راست و چپ. بازگشت به منوی والد با کلید Esc یا کلید جهت‌نمای چپ. بستن منوی متن با Esc.'
},
{
name : 'جعبه فهرست ویرایشگر',
legend :
'در داخل جعبه لیست، قلم دوم از اقلام لیست بعدی را با TAB و یا Arrow Down حرکت دهید. انتقال به قلم دوم از اقلام لیست قبلی را با SHIFT + TAB یا UP ARROW. کلید Space یا ENTER را برای انتخاب گزینه لیست بفشارید. کلید ESC را برای بستن جعبه لیست بفشارید.'
},
{
name : 'ویرایشگر عنصر نوار راه',
legend :
'برای رفتن به مسیر عناصر ${elementsPathFocus} را بفشارید. حرکت به کلید عنصر بعدی با کلید Tab یا کلید جهت‌نمای راست. برگشت به کلید قبلی با Shift+Tab یا کلید جهت‌نمای چپ. فشردن Space یا Enter برای انتخاب یک عنصر در ویرایشگر.'
}
]
},
{
name : 'فرمان‌ها',
items :
[
{
name : 'بازگشت فرمان',
legend : 'فشردن ${undo}'
},
{
name : 'انجام مجدد فرمان',
legend : 'فشردن ${redo}'
},
{
name : 'فرمان متن درشت',
legend : 'فشردن ${bold}'
},
{
name : 'فرمان متن کج',
legend : 'فشردن ${italic}'
},
{
name : 'فرمان متن زیرخط‌دار',
legend : 'فشردن ${underline}'
},
{
name : 'فرمان پیوند',
legend : 'فشردن ${link}'
},
{
name : 'بستن نوار ابزار فرمان',
legend : 'فشردن ${toolbarCollapse}'
},
{
name : 'راهنمای دسترسی',
legend : 'فشردن ${a11yHelp}'
}
]
}
]
}
});
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'a11yhelp', 'ku',
{
accessibilityHelp :
{
title : 'ڕێنمای لەبەردەستدابوون',
contents : 'پێکهاتەی یارمەتی. کلیك ESC بۆ داخستنی ئەم دیالۆگه.',
legend :
[
{
name : 'گشتی',
items :
[
{
name : 'تووڵامرازی ده‌ستكاریكه‌ر',
legend:
'کلیك ${toolbarFocus} بۆ ڕابەری تووڵامراز. بۆ گواستنەوەی پێشوو داهاتووی گرووپی تووڵامرازی داگرتنی کلیلی TAB له‌گه‌ڵ‌ SHIFT-TAB. بۆ گواستنەوەی پێشوو داهاتووی دووگمەی تووڵامرازی لەڕێی کلیلی تیری دەستی ڕاست یان کلیلی تیری دەستی چەپ. کلیکی کلیلی SPACE یان ENTER بۆ چالاککردنی دووگمەی تووڵامراز.'
},
{
name : 'دیالۆگی ده‌ستكاریكه‌ر',
legend :
'لەهەمانکاتدا کەتۆ لەدیالۆگی, کلیکی کلیلی TAB بۆ ڕابەری خانەی دیالۆگێکی تر, داگرتنی کلیلی SHIFT + TAB بۆ گواستنەوەی بۆ خانەی پێشووتر, کلیكی کلیلی ENTER بۆ ڕازیکردنی دیالۆگەکە, کلیكی کلیلی ESC بۆ هەڵوەشاندنەوەی دیالۆگەکە. بۆ دیالۆگی لەبازدەری (تابی) زیاتر, کلیكی کلیلی ALT + F10 بۆ ڕابه‌ری لیستی بازده‌ره‌کان. بۆ چوونه‌ بازده‌ری تابی داهاتوو کلیكی کلیلی TAB یان کلیلی تیری ده‌ستی ڕاست. بۆچوونه‌ بازده‌ری تابی پێشوو داگرتنی کلیلی SHIFT + TAB یان کلیلی تیری ده‌ستی چه‌پ. کلیی کلیلی SPACE یان ENTER بۆ هه‌ڵبژاردنی بازده‌ر (تاب).'
},
{
name : 'پێڕستی سه‌رنووسه‌ر',
legend :
'کلیك ${contextMenu} یان دوگمه‌ی لیسته‌(Menu) بۆ کردنه‌وه‌ی لیسته‌ی ده‌ق. بۆ چوونه‌ هه‌ڵبژارده‌یه‌کی تر له‌ لیسته‌ کلیکی کلیلی TAB یان کلیلی تیری ڕوو له‌خواره‌وه‌ بۆ چوون بۆ هه‌ڵبژارده‌ی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو له‌ سه‌ره‌وه. داگرتنی کلیلی SPACE یان ENTER بۆ هه‌ڵبژاردنی هه‌ڵبژارده‌ی لیسته‌. بۆ کردنه‌وه‌ی لقی ژێر لیسته‌ له‌هه‌ڵبژارده‌ی لیسته‌ کلیکی کلیلی SPACE یان ENTER یان کلیلی تیری ده‌ستی ڕاست. بۆ گه‌ڕانه‌وه بۆ سه‌ره‌وه‌ی لیسته‌ کلیکی کلیلی ESC یان کلیلی تیری ده‌ستی چه‌پ. بۆ داخستنی لیسته‌ کلیكی کلیلی ESC بکه.'
},
{
name : 'لیستی سنووقی سه‌رنووسه‌ر',
legend :
'له‌ناو سنوقی لیست, چۆن بۆ هه‌ڵنبژارده‌ی لیستێکی تر کلیکی کلیلی TAB یان کلیلی تیری ڕوو له‌خوار. چوون بۆ هه‌ڵبژارده‌ی لیستی پێشوو کلیکی کلیلی SHIFT + TAB یان کلیلی تیری ڕوو له‌سه‌ره‌وه‌. کلیکی کلیلی SPACE یان ENTER بۆ دیاریکردنی ‌هه‌ڵبژارده‌ی لیست. کلیکی کلیلی ESC بۆ داخستنی سنوقی لیست.'
},
{
name : 'تووڵامرازی توخم',
legend :
'کلیك ${elementsPathFocus} بۆ ڕابه‌ری تووڵامرازی توخمه‌کان. چوون بۆ دوگمه‌ی توخمێکی تر کلیکی کلیلی TAB یان کلیلی تیری ده‌ستی ڕاست. چوون بۆ دوگمه‌ی توخمی پێشوو کلیلی SHIFT+TAB یان کلیکی کلیلی تیری ده‌ستی چه‌پ. داگرتنی کلیلی SPACE یان ENTER بۆ دیاریکردنی توخمه‌که‌ له‌سه‌رنووسه.'
}
]
},
{
name : 'فه‌رمانه‌کان',
items :
[
{
name : 'فه‌رمانی پووچکردنه‌وه',
legend : 'کلیك ${undo}'
},
{
name : 'فه‌رمانی هه‌ڵگه‌ڕانه‌وه',
legend : 'کلیك ${redo}'
},
{
name : 'فه‌رمانی ده‌قی قه‌ڵه‌و',
legend : 'کلیك ${bold}'
},
{
name : 'فه‌رمانی ده‌قی لار',
legend : 'کلیك ${italic}'
},
{
name : 'فه‌رمانی ژێرهێڵ',
legend : 'کلیك ${underline}'
},
{
name : 'فه‌رمانی به‌سته‌ر',
legend : 'کلیك ${link}'
},
{
name : 'شارده‌نه‌وه‌ی تووڵامراز',
legend : 'کلیك ${toolbarCollapse}'
},
{
name : 'ده‌ستپێگه‌یشتنی یارمه‌تی',
legend : 'کلیك ${a11yHelp}'
}
]
}
]
}
});
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('a11yhelp','sk',{accessibilityHelp:{title:'Inštrukcie prístupnosti',contents:'Pomocný obsah. Pre zatvorenie tohto okna, stlačte ESC.',legend:[{name:'Všeobecne',items:[{name:'Lišta nástrojov editora',legend:'Stlačte ${toolbarFocus} pre navigáciu na lištu nástrojov. Medzi ďalšou a predchádzajúcou lištou nástrojov sa pohybujete s TAB a SHIFT-TAB. Medzi ďalším a predchádzajúcim tlačidlom na lište nástrojov sa pohybujete s pravou šípkou a ľavou šípkou. Stlačte medzerník alebo ENTER pre aktiváciu tlačidla lišty nástrojov.'},{name:'Editorový dialóg',legend:'V dialogu, stlačte TAB pre navigáciu na ďalšie dialógové pole, stlačte STIFT + TAB pre presun na predchádzajúce pole, stlačte ENTER pre odoslanie dialógu, stlačte ESC pre zrušenie dialógu. Pre dialógy, ktoré majú viac záložiek, stlačte ALT + F10 pre navigácou do zoznamu záložiek. Potom sa posúvajte k ďalšej žáložke pomocou TAB alebo pravou šípkou. Pre presun k predchádzajúcej záložke, stlačte SHIFT + TAB alebo ľavú šípku. Stlačte medzerník alebo ENTER pre vybranie záložky.'},{name:'Editorové kontextové menu',legend:'Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT + TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC.'},{name:'Editorov box zoznamu',legend:'V boxe zoznamu, presuňte sa na ďalšiu položku v zozname s TAB alebo dolnou šípkou. Presuňte sa k predchádzajúcej položke v zozname so SHIFT + TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti zoznamu. Stlačte ESC pre zatvorenie boxu zoznamu.'},{name:'Editorove pásmo cesty prvku',legend:'Stlačte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. Presuňte sa na tlačidlo ďalšieho prvku s TAB alebo pravou šípkou. Presuňte sa k predchádzajúcemu tlačidlu s SHIFT + TAB alebo ľavou šípkou. Stlačte medzerník alebo ENTER pre výber prvku v editore.'}]},{name:'Príkazy',items:[{name:'Vrátiť príkazy',legend:'Stlačte ${undo}'},{name:'Nanovo vrátiť príkaz',legend:'Stlačte ${redo}'},{name:'Príkaz na stučnenie',legend:'Stlačte ${bold}'},{name:'Príkaz na kurzívu',legend:'Stlačte ${italic}'},{name:'Príkaz na podčiarknutie',legend:'Stlačte ${underline}'},{name:'Príkaz na odkaz',legend:'Stlačte ${link}'},{name:'Príkaz na zbalenie lišty nástrojov',legend:'Stlačte ${toolbarCollapse}'},{name:'Pomoc prístupnosti',legend:'Stlačte ${a11yHelp}'}]}]}});
......@@ -3,4 +3,4 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('a11yhelp','zh-cn',{accessibilityHelp:{title:'辅助说明',contents:'帮助内容。要关闭此对话框请按 ESC 键。',legend:[{name:'常规',items:[{name:'编辑器工具栏',legend:'按 ${toolbarFocus} 以导航到工具栏,使用 TAB 键或 SHIFT+TAB 组合键以选择工具栏组,使用左右箭头键以选择按钮,按空格键或回车键以应用选中的按钮。'},{name:'编辑器对话框',legend:'在对话框内,TAB键移动到下一个字段,SHIFT + TAB 移动到上一个字段,ENTER键提交对话框,ESC键取消对话框。对于有多标签的对话框,用ALT + F10来移到标签列表。然后用TAB键或者向右箭头来移动到下一个标签;SHIFT + TAB或者向左箭头移动到上一个标签。用SPACE或者ENTER选择标签。'},{name:'编辑器上下文菜单',legend:'用 ${contextMenu}或者 应用程序键 打开上下文菜单。然后用TAB键或者向下箭头来移动到下一个菜单项;SHIFT + TAB或者向上箭头移动到上一个菜单项。用SPACE或者ENTER选择菜单项。用SPACE,ENTER或者向右箭头打开子菜单。返回菜单用ESC键或者向左箭头。用ESC关闭上下文菜单。'},{name:'编辑器列表框',legend:'在列表框中,移到下一列表项用TAB键或者向下箭头。移到上一列表项用SHIFT + TAB或者向上箭头,用SPACE或者ENTER选择列表项。用ESC收起列表框。'},{name:'编辑器元素路径栏',legend:'按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。'}]},{name:'命令',items:[{name:' 撤消命令',legend:'按 ${undo}'},{name:' 重做命令',legend:'按 ${redo}'},{name:' 加粗命令',legend:'按 ${bold}'},{name:' 倾斜命令',legend:'按 ${italic}'},{name:' 下划线命令',legend:'按 ${underline}'},{name:' 链接命令',legend:'按 ${link}'},{name:' 工具栏折叠命令',legend:'按 ${toolbarCollapse}'},{name:' 无障碍设计说明',legend:'按 ${a11yHelp}'}]}]}});
CKEDITOR.plugins.setLang('a11yhelp','zh-cn',{accessibilityHelp:{title:'辅助说明',contents:'帮助内容。要关闭此对话框请按 ESC 键。',legend:[{name:'常规',items:[{name:'编辑器工具栏',legend:'按 ${toolbarFocus} 导航到工具栏,使用 TAB 键或 SHIFT+TAB 组合键选择工具栏组,使用左右箭头键选择按钮,按空格键或回车键以应用选中的按钮。'},{name:'编辑器对话框',legend:'在对话框内,TAB 键移动到下一个字段,SHIFT + TAB 组合键移动到上一个字段,ENTER 键提交对话框,ESC 键取消对话框。对于有多标签的对话框,用ALT + F10来移到标签列表。然后用 TAB 键或者向右箭头来移动到下一个标签;SHIFT + TAB 组合键或者向左箭头移动到上一个标签。用 SPACE 键或者 ENTER 键选择标签。'},{name:'编辑器上下文菜单',legend:'用 ${contextMenu}或者 应用程序键 打开上下文菜单。然后用 TAB 键或者下箭头键来移动到下一个菜单项;SHIFT + TAB 组合键或者上箭头键移动到上一个菜单项。用 SPACE 键或者 ENTER 键选择菜单项。用 SPACE 键,ENTER 键或者右箭头键打开子菜单。返回菜单用 ESC 键或者左箭头键。用 ESC 键关闭上下文菜单。'},{name:'编辑器列表框',legend:'在列表框中,移到下一列表项用 TAB 键或者下箭头键。移到上一列表项用SHIFT + TAB 组合键或者上箭头键,用 SPACE 键或者 ENTER 键选择列表项。用 ESC 键收起列表框。'},{name:'编辑器元素路径栏',legend:'按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。'}]},{name:'命令',items:[{name:' 撤消命令',legend:'按 ${undo}'},{name:' 重做命令',legend:'按 ${redo}'},{name:' 加粗命令',legend:'按 ${bold}'},{name:' 倾斜命令',legend:'按 ${italic}'},{name:' 下划线命令',legend:'按 ${underline}'},{name:' 链接命令',legend:'按 ${link}'},{name:' 工具栏折叠命令',legend:'按 ${toolbarCollapse}'},{name:' 无障碍设计说明',legend:'按 ${a11yHelp}'}]}]}});
......@@ -3,4 +3,4 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function(){function a(c){var d=c.getStyle('overflow-y'),e=c.getDocument(),f=CKEDITOR.dom.element.createFromHtml('<span style="margin:0;padding:0;border:0;clear:both;width:1px;height:1px;display:block;">'+(CKEDITOR.env.webkit?'&nbsp;':'')+'</span>',e);e[CKEDITOR.env.ie?'getBody':'getDocumentElement']().append(f);var g=f.getDocumentPosition(e).y+f.$.offsetHeight;f.remove();c.setStyle('overflow-y',d);return g;};var b=function(c){if(!c.window)return;var d=c.document,e=new CKEDITOR.dom.element(d.getWindow().$.frameElement),f=d.getBody(),g=d.getDocumentElement(),h=c.window.getViewPaneSize().height,i=d.$.compatMode=='BackCompat'?f:g,j=a(i);j+=c.config.autoGrow_bottomSpace||0;var k=c.config.autoGrow_minHeight!=undefined?c.config.autoGrow_minHeight:200,l=c.config.autoGrow_maxHeight||Infinity;j=Math.max(j,k);j=Math.min(j,l);if(j!=h){j=c.fire('autoGrow',{currentHeight:h,newHeight:j}).newHeight;c.resize(c.container.getStyle('width'),j,true);}if(i.$.scrollHeight>i.$.clientHeight&&j<l)i.setStyle('overflow-y','hidden');else i.removeStyle('overflow-y');};CKEDITOR.plugins.add('autogrow',{init:function(c){c.addCommand('autogrow',{exec:b,modes:{wysiwyg:1},readOnly:1,canUndo:false,editorFocus:false});var d={contentDom:1,key:1,selectionChange:1,insertElement:1,mode:1};c.config.autoGrow_onStartup&&(d.instanceReady=1);for(var e in d)c.on(e,function(f){var g=c.getCommand('maximize');if(f.editor.mode=='wysiwyg'&&(!g||g.state!=CKEDITOR.TRISTATE_ON))setTimeout(function(){b(f.editor);b(f.editor);},100);});}});})();
(function(){function a(d){var e=d.getStyle('overflow-y'),f=d.getDocument(),g=CKEDITOR.dom.element.createFromHtml('<span style="margin:0;padding:0;border:0;clear:both;width:1px;height:1px;display:block;">'+(CKEDITOR.env.webkit?'&nbsp;':'')+'</span>',f);f[CKEDITOR.env.ie?'getBody':'getDocumentElement']().append(g);var h=g.getDocumentPosition(f).y+g.$.offsetHeight;g.remove();d.setStyle('overflow-y',e);return h;};function b(d){var e=d.document,f=e.getBody(),g=e.getDocumentElement();return e.$.compatMode=='BackCompat'?f:g;};var c=function(d){if(!d.window)return;var e=b(d),f=d.window.getViewPaneSize().height,g=a(e);g+=d.config.autoGrow_bottomSpace||0;var h=d.config.autoGrow_minHeight!=undefined?d.config.autoGrow_minHeight:200,i=d.config.autoGrow_maxHeight||Infinity;g=Math.max(g,h);g=Math.min(g,i);if(g!=f){g=d.fire('autoGrow',{currentHeight:f,newHeight:g}).newHeight;d.resize(d.container.getStyle('width'),g,true);}if(e.$.scrollHeight>e.$.clientHeight&&g<i)e.setStyle('overflow-y','hidden');else e.removeStyle('overflow-y');};CKEDITOR.plugins.add('autogrow',{init:function(d){d.addCommand('autogrow',{exec:c,modes:{wysiwyg:1},readOnly:1,canUndo:false,editorFocus:false});var e={contentDom:1,key:1,selectionChange:1,insertElement:1,mode:1};d.config.autoGrow_onStartup&&(e.instanceReady=1);for(var f in e)d.on(f,function(g){var h=d.getCommand('maximize');if(g.editor.mode=='wysiwyg'&&(!h||h.state!=CKEDITOR.TRISTATE_ON))setTimeout(function(){c(g.editor);c(g.editor);},100);});d.on('beforeCommandExec',function(g){if(g.data.name=='maximize'&&g.editor.mode=='wysiwyg')if(g.data.command.state==CKEDITOR.TRISTATE_OFF){var h=b(d);h.removeStyle('overflow');}else c(d);});}});})();
......@@ -16,11 +16,13 @@ gu.js Found: 5 Missing: 0
he.js Found: 5 Missing: 0
hr.js Found: 5 Missing: 0
it.js Found: 5 Missing: 0
ku.js Found: 5 Missing: 0
nb.js Found: 5 Missing: 0
nl.js Found: 5 Missing: 0
no.js Found: 5 Missing: 0
pl.js Found: 5 Missing: 0
pt-br.js Found: 5 Missing: 0
sk.js Found: 5 Missing: 0
tr.js Found: 5 Missing: 0
ug.js Found: 5 Missing: 0
uk.js Found: 5 Missing: 0
......
......@@ -3,4 +3,19 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('devtools','fa',{devTools:{title:'اطلاعات عنصر',dialogName:'نام پنجره محاورهای',tabName:'نام برگه',elementId:'ID عنصر',elementType:'نوع عنصر'}});
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'devtools', 'fa',
{
devTools :
{
title : 'اطلاعات عنصر',
dialogName : 'نام پنجره محاوره‌ای',
tabName : 'نام برگه',
elementId : 'ID عنصر',
elementType : 'نوع عنصر'
}
});
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'devtools', 'ku',
{
devTools :
{
title : 'زانیاری توخم',
dialogName : 'ناوی په‌نجه‌ره‌ی دیالۆگ',
tabName : 'ناوی بازده‌ر تاب',
elementId : 'ناسنامه‌ی توخم',
elementType : 'جۆری توخم'
}
});
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('devtools','sk',{devTools:{title:'Informácie o prvku',dialogName:'Názov okna dialógu',tabName:'Názov záložky',elementId:'ID prvku',elementType:'Typ prvku'}});
......@@ -3,4 +3,4 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.add('devtools',{lang:['en','bg','cs','cy','da','de','el','eo','et','fa','fi','fr','gu','he','hr','it','nb','nl','no','pl','pt-br','tr','ug','uk','vi','zh-cn'],init:function(a){a._.showDialogDefinitionTooltips=1;},onLoad:function(){CKEDITOR.document.appendStyleText(CKEDITOR.config.devtools_styles||'#cke_tooltip { padding: 5px; border: 2px solid #333; background: #ffffff }#cke_tooltip h2 { font-size: 1.1em; border-bottom: 1px solid; margin: 0; padding: 1px; }#cke_tooltip ul { padding: 0pt; list-style-type: none; }');}});(function(){function a(d,e,f,g){var h=d.lang.devTools,i='<a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.definition.'+(f?f.type=='text'?'textInput':f.type:'content')+'.html" target="_blank">'+(f?f.type:'content')+'</a>',j='<h2>'+h.title+'</h2>'+'<ul>'+'<li><strong>'+h.dialogName+'</strong> : '+e.getName()+'</li>'+'<li><strong>'+h.tabName+'</strong> : '+g+'</li>';if(f)j+='<li><strong>'+h.elementId+'</strong> : '+f.id+'</li>';j+='<li><strong>'+h.elementType+'</strong> : '+i+'</li>';return j+'</ul>';};function b(d,e,f,g,h,i){var j=e.getDocumentPosition(),k={'z-index':CKEDITOR.dialog._.currentZIndex+10,top:j.y+e.getSize('height')+'px'};c.setHtml(d(f,g,h,i));c.show();if(f.lang.dir=='rtl'){var l=CKEDITOR.document.getWindow().getViewPaneSize();k.right=l.width-j.x-e.getSize('width')+'px';}else k.left=j.x+'px';c.setStyles(k);};var c;CKEDITOR.on('reset',function(){c&&c.remove();c=null;});CKEDITOR.on('dialogDefinition',function(d){var e=d.editor;if(e._.showDialogDefinitionTooltips){if(!c){c=CKEDITOR.dom.element.createFromHtml('<div id="cke_tooltip" tabindex="-1" style="position: absolute"></div>',CKEDITOR.document);c.hide();c.on('mouseover',function(){this.show();});c.on('mouseout',function(){this.hide();});c.appendTo(CKEDITOR.document.getBody());}var f=d.data.definition.dialog,g=e.config.devtools_textCallback||a;f.on('load',function(){var h=f.parts.tabs.getChildren(),i;for(var j=0,k=h.count();j<k;j++){i=h.getItem(j);i.on('mouseover',function(){var l=this.$.id;b(g,this,e,f,null,l.substring(4,l.lastIndexOf('_')));});i.on('mouseout',function(){c.hide();});}f.foreach(function(l){if(l.type in {hbox:1,vbox:1})return;var m=l.getElement();if(m){m.on('mouseover',function(){b(g,this,e,f,l,f._.currentTabId);});m.on('mouseout',function(){c.hide();});}});});}});})();
CKEDITOR.plugins.add('devtools',{lang:['en','bg','cs','cy','da','de','el','eo','et','fa','fi','fr','gu','he','hr','it','ku','nb','nl','no','pl','pt-br','sk','tr','ug','uk','vi','zh-cn'],init:function(a){a._.showDialogDefinitionTooltips=1;},onLoad:function(){CKEDITOR.document.appendStyleText(CKEDITOR.config.devtools_styles||'#cke_tooltip { padding: 5px; border: 2px solid #333; background: #ffffff }#cke_tooltip h2 { font-size: 1.1em; border-bottom: 1px solid; margin: 0; padding: 1px; }#cke_tooltip ul { padding: 0pt; list-style-type: none; }');}});(function(){function a(d,e,f,g){var h=d.lang.devTools,i='<a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.definition.'+(f?f.type=='text'?'textInput':f.type:'content')+'.html" target="_blank">'+(f?f.type:'content')+'</a>',j='<h2>'+h.title+'</h2>'+'<ul>'+'<li><strong>'+h.dialogName+'</strong> : '+e.getName()+'</li>'+'<li><strong>'+h.tabName+'</strong> : '+g+'</li>';if(f)j+='<li><strong>'+h.elementId+'</strong> : '+f.id+'</li>';j+='<li><strong>'+h.elementType+'</strong> : '+i+'</li>';return j+'</ul>';};function b(d,e,f,g,h,i){var j=e.getDocumentPosition(),k={'z-index':CKEDITOR.dialog._.currentZIndex+10,top:j.y+e.getSize('height')+'px'};c.setHtml(d(f,g,h,i));c.show();if(f.lang.dir=='rtl'){var l=CKEDITOR.document.getWindow().getViewPaneSize();k.right=l.width-j.x-e.getSize('width')+'px';}else k.left=j.x+'px';c.setStyles(k);};var c;CKEDITOR.on('reset',function(){c&&c.remove();c=null;});CKEDITOR.on('dialogDefinition',function(d){var e=d.editor;if(e._.showDialogDefinitionTooltips){if(!c){c=CKEDITOR.dom.element.createFromHtml('<div id="cke_tooltip" tabindex="-1" style="position: absolute"></div>',CKEDITOR.document);c.hide();c.on('mouseover',function(){this.show();});c.on('mouseout',function(){this.hide();});c.appendTo(CKEDITOR.document.getBody());}var f=d.data.definition.dialog,g=e.config.devtools_textCallback||a;f.on('load',function(){var h=f.parts.tabs.getChildren(),i;for(var j=0,k=h.count();j<k;j++){i=h.getItem(j);i.on('mouseover',function(){var l=this.$.id;b(g,this,e,f,null,l.substring(4,l.lastIndexOf('_')));});i.on('mouseout',function(){c.hide();});}f.foreach(function(l){if(l.type in {hbox:1,vbox:1})return;var m=l.getElement();if(m){m.on('mouseover',function(){b(g,this,e,f,l,f._.currentTabId);});m.on('mouseout',function(){c.hide();});}});});}});})();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment