Commit 39049bb6 authored by Stefan Galinski's avatar Stefan Galinski 🎮

[TASK] Add missing changes of the 4.1.6 release (svn migration issue)

parent 8ad3ccac
--- Used Versions ---
* TinyMCE - 4.0.28
* Languages - 28.05.2014
\ No newline at end of file
* TinyMCE - 4.1.3
* Languages - 30.07.2014
\ No newline at end of file
......@@ -3,13 +3,14 @@
/***************************************************************
* Copyright notice
*
* (c) Stefan Galinski (stefan.galinski@gmail.com)
* (c) sgalinski Internet Services (http://www.sgalinski.de)
*
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
......@@ -17,7 +18,7 @@
*
* This script 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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
......@@ -30,6 +31,12 @@
* $tinyMCE = t3lib_div::makeInstance('tinyMCE');
* $tinyMCE->loadConfiguration($configuration);
* $javascript = $tinyMCE->getJS();
*
* Basic Configuration:
*
* tinymce.init({
* selector: 'textarea'
* });
*/
class tinyMCE {
/**
......@@ -54,7 +61,6 @@ class tinyMCE {
public function loadConfiguration($configuration = '', $forceLanguage = FALSE) {
self::$init = FALSE;
$this->tinymceConfiguration = $this->prepareTinyMCEConfiguration($configuration);
if (!$forceLanguage) {
$this->setLanguage();
}
......@@ -93,37 +99,72 @@ class tinyMCE {
$languageKey = 'en';
}
$this->tinymceConfiguration['language'] = $languageKey;
$this->addConfigurationOption('language', $languageKey);
}
/**
* Returns a configuration string from the tinymce configuration array
* Returns a file that contains the tinymce configuration
*
* @param bool $loadConfigurationWithTimer useful in relation with AJAX
* @return string
*/
protected function buildConfigString() {
$configuration = $this->tinymceConfiguration['preJS'];
$configuration .= 'tinymce.init({' . "\n";
$configurationOptions = array();
if (count($this->tinymceConfiguration)) {
foreach ($this->tinymceConfiguration as $option => $value) {
if (in_array($option, array('preJS', 'postJS'))) {
continue;
}
protected function getConfiguration($loadConfigurationWithTimer = FALSE) {
// $configurationOptions = array();
// foreach ($this->tinymceConfiguration['strings'] as $option => $value) {
// $value = '\'' . str_replace('\'', '\\\'', $value) . '\'';
// $configurationOptions[] = "\t" . $option . ': ' . $value;
// }
//
// foreach ($this->tinymceConfiguration['boolAndInt'] as $option => $value) {
// if (is_numeric($value)) {
// if (strpos($value, '.')) {
// $value = (float) $value;
// } else {
// $value = (int) $value;
// }
// }
// $configurationOptions[] = "\t" . $option . ': ' . $value;
// }
//
// foreach ($this->tinymceConfiguration['arrays'] as $option => $value) {
// $configurationOptions[] = "\t" . $option . ': ' . $value;
// }
//
// foreach ($this->tinymceConfiguration['objects'] as $option => $value) {
// $configurationOptions[] = "\t" . $option . ': ' . $value;
// }
//
// foreach ($this->tinymceConfiguration['functions'] as $option => $value) {
// $configurationOptions[] = "\t" . $option . ': ' . $value;
// }
// $configuration .= implode(",\n", $configurationOptions);
if (!in_array($value, array('false', 'true'))) {
$value = '\'' . $value . '\'';
$configuration = $this->tinymceConfiguration['preJS'];
$configuration .= '
var executeTinymceInit = function() {
if (!tinymce || !tinymce.init) {
return;
}
$configurationOptions[] = "\t" . $option . ' : ' . $value;
}
tinymce.init({
' . $this->replaceTypo3Paths($this->tinymceConfiguration['configurationData']) . '
});
};
executeTinymceInit();
';
if ($loadConfigurationWithTimer) {
$configuration .= 'window.setInterval(executeTinymceInit, 1000);' . "\n";
}
$configuration .= implode(",\n", $configurationOptions);
$configuration .= "\n" . '});';
$configuration .= $this->tinymceConfiguration['postJS'];
return $configuration;
$filename = 'tinymceConfiguration' . sha1($configuration) . '.js';
$file = PATH_site . 'typo3temp/' . $filename;
if (!is_file($file)) {
file_put_contents($file, $configuration);
t3lib_div::fixPermissions($file);
}
return $this->getPath($file, TRUE);
}
/**
......@@ -131,61 +172,150 @@ class tinyMCE {
*
* Note: This function can only be called once for each loaded configuration.
*
* @param bool $loadConfigurationWithTimer
* @return string
*/
public function getJS() {
public function getJS($loadConfigurationWithTimer = FALSE) {
$output = '';
if (!self::$init) {
self::$init = TRUE;
$script = $GLOBALS['BACK_PATH'] . t3lib_extMgm::extRelPath('tinymce') . 'tinymce/tinymce.min.js';
$output = '<script type="text/javascript" src="' . $script . '"></script>';
$script = $this->getConfiguration($loadConfigurationWithTimer);
$output .= '<script type="text/javascript" src="' . $script . '"></script>';
}
return $output;
}
/**
* Loads the required javascript via the given page renderer instance
*
* @param t3lib_PageRenderer $pageRenderer
* @param bool $loadConfigurationWithTimer
* @return void
*/
public function loadJsViaPageRenderer(t3lib_PageRenderer $pageRenderer, $loadConfigurationWithTimer = FALSE) {
if (self::$init) {
return $output;
return;
}
self::$init = TRUE;
$script = $GLOBALS['BACK_PATH'] . t3lib_extMgm::extRelPath('tinymce') . 'tinymce/tinymce.min.js';
$output = '<script type="text/javascript" src="' . $script . '"></script>';
$output .= '<script type="text/javascript">' . "\n" . $this->buildConfigString() . "\n" . '</script>';
$pageRenderer->addJsLibrary('tinymce', $script, 'text/javascript', FALSE, TRUE, '', TRUE);
return $output;
$script = $this->getConfiguration($loadConfigurationWithTimer);
$pageRenderer->addJsFile($script, 'text/javascript', FALSE, TRUE, '', TRUE);
}
/**
* Parses and processes the tinyMCE configuration
*
* Note: Unfortunately we didn't solved the riddle how to parse object and function blocks. So we can't parse
* the configuration in detail. Also the regexp has some other possible minor flaws. Recursion (?R) could be a
* possible way.
*
* @param string $configuration file reference or configuration string
* @return array
*/
protected function prepareTinyMCEConfiguration($configuration) {
$configurationArray = array();
if (is_file($configuration)) {
$configuration = file_get_contents($configuration);
// try to resolve a potential TYPO3 file path
$configurationFile = t3lib_div::getFileAbsFileName($configuration);
if (is_file($configurationFile)) {
$configuration = file_get_contents($configurationFile);
}
// split config into first and last javascript parts (applied later again into the config variables)
// additionally the config part is matched to get the options
$start = '(.*)((tinymce|tinyMCE|tinyMCE_GZ)\.init.*?\(.*?\{.*?';
$end = '.*?\}.*?\).*?;)(.*)';
$pattern = '/' . $start . $end . '/is';
$pattern = '/(.*)tinymce\.init\s*\(\s*\{(.*?)\}\s*\)\s*;?(.*)/is';
preg_match($pattern, $configuration, $matches);
// add preJS and postJS
$configurationArray['preJS'] = $matches[1];
$configurationArray['postJS'] = $matches[4];
// split options into an array (first time strings and the second call splits bool values)
$pattern = '([[:print:]]+?)[\s]*?:[\s]*["|\']{1}(.*?)["|\']{1}[,|\n|}]{1}.*?';
preg_match_all('/' . $pattern . '/i', $matches[2], $options);
for ($i = 0; $i < count($options[1]); ++$i) {
$configurationArray[$options[1][$i]] = $options[2][$i];
}
$configurationArray['preJS'] = trim($matches[1]);
$configurationArray['configurationData'] = trim($matches[2]);
$configurationArray['postJS'] = trim($matches[3]);
$options = array();
$boolPattern = '([[:print:]]+?)[\s]*?:[\s]*(false|true)[,|\n|}]{1}.*?';
preg_match_all('/' . $boolPattern . '/i', $matches[2], $options);
for ($i = 0; $i < count($options[1]); ++$i) {
$configurationArray[$options[1][$i]] = $options[2][$i];
}
// split options into an array (four value types: values in quotes, int/booleans, arrays, objects, functions)
// $pattern = '([^:\[\(\{]+?)\s*:\s*(?:(\[.*?\])|(\{.*\})|(function.*\})|["\']([^"\']*)["|\']\s*|([^,\n]*))[,\n]\n?';
// preg_match_all('/' . $pattern . '/is', $matches[2] . "\n", $options);
// for ($i = 0; $i < count($options[1]); ++$i) {
// if (trim($options[2][$i]) !== '') {
// // array
// $configurationArray['arrays'][trim($options[1][$i])] = trim($options[2][$i]);
// } elseif (trim($options[3][$i]) !== '') {
// // object
// $configurationArray['objects'][trim($options[1][$i])] = trim($options[3][$i]);
// } elseif (trim($options[4][$i]) !== '') {
// // function
// $configurationArray['functions'][trim($options[1][$i])] = trim($options[4][$i]);
// } elseif (trim($options[6][$i]) !== '') {
// // int/bool
// $configurationArray['boolAndInt'][trim($options[1][$i])] = trim($options[6][$i]);
// } else {
// // quoted value (value can be empty)
// $configurationArray['strings'][trim($options[1][$i])] = trim($options[5][$i]);
// }
// }
return $configurationArray;
}
/**
* Adds a basic configuration value to the parsed configuration
*
* @param string $key
* @param mixed $value
*/
public function addConfigurationOption($key, $value) {
if (is_numeric($value)) {
if (strpos($value, '.')) {
$value = (float) $value;
} else {
$value = (int) $value;
}
} elseif (strpos(trim($value), '[') === FALSE && strpos(trim($value), '{') === FALSE &&
strpos(trim($value), 'function') === FALSE
) {
$value = '\'' . $value . '\'';
}
$this->tinymceConfiguration['configurationData'] .= ",\n" . $key . ': ' . $value . "\n";
}
/**
* Replaces any TYPO3 extension path with the domain prefixed one.
*
* @param string $configuration
* @return string
*/
protected function replaceTypo3Paths($configuration) {
$replacementFunction = function ($value) {
// getPath should be used, but this causes a php exception with PHP 5.3 as $this isn't set there
return '\'' . t3lib_div::getIndpEnv('TYPO3_SITE_URL') .
str_replace(PATH_site, '', t3lib_div::getFileAbsFileName($value[1])) . '\'';
};
return preg_replace_callback('/["\'](EXT:[^"\']*)["\']/is', $replacementFunction, $configuration);
}
/**
* Resolves a relative path like EXT:tinymce/... into an absolute one that contains either the
* current host or the path to the file in the file system.
*
* @param string $relativePath
* @param bool $returnWithDomain
* @return string
*/
protected function getPath($relativePath, $returnWithDomain = FALSE) {
$finalPath = $absolutePath = t3lib_div::getFileAbsFileName($relativePath);
if ($returnWithDomain) {
$finalPath = t3lib_div::getIndpEnv('TYPO3_SITE_URL') . str_replace(PATH_site, '', $absolutePath);
}
return $finalPath;
}
}
?>
\ No newline at end of file
......@@ -3,48 +3,38 @@
/***************************************************************
* Extension Manager/Repository config file for ext "tinymce".
*
* Auto generated 19-06-2013 19:08
* Auto generated 05-08-2014 22:42
*
* Manual updates:
* Only the data in the array - everything else is removed by next
* writing. "version" and "dependencies" must not be touched!
***************************************************************/
$EM_CONF[$_EXTKEY] = array(
$EM_CONF[$_EXTKEY] = array (
'title' => 'tinyMCE',
'description' => 'tinymce sources with compressor and spellchecker',
'description' => 'TinyMCE sources including a PHP API',
'category' => 'misc',
'shy' => 0,
'version' => '4.0.28',
'dependencies' => '',
'conflicts' => '',
'priority' => '',
'loadOrder' => '',
'module' => '',
'version' => '4.1.6',
'state' => 'stable',
'uploadfolder' => 0,
'uploadfolder' => false,
'createDirs' => '',
'modify_tables' => '',
'clearcacheonload' => 0,
'lockType' => '',
'clearcacheonload' => false,
'author' => 'Stefan Galinski',
'author_email' => 'stefan.galinski@gmail.com',
'author_company' => '',
'CGLcompliance' => '',
'CGLcompliance_note' => '',
'constraints' => array(
'depends' => array(
'author_email' => 'stefan@sgalinski.de',
'author_company' => 'sgalinski Internet Services',
'constraints' =>
array (
'depends' =>
array (
'php' => '5.2.0-5.5.99',
'typo3' => '4.5.0-6.2.99',
),
'conflicts' => array(
'conflicts' =>
array (
),
'suggests' => array(
'suggests' =>
array (
),
),
'suggests' => array(
),
'_md5_values_when_last_written' => 'a:130:{s:17:"class.tinymce.php";s:4:"9f76";s:12:"ext_icon.gif";s:4:"b163";s:8:"VERSIONS";s:4:"03df";s:14:"doc/manual.sxw";s:4:"9ab1";s:19:"tinymce/license.txt";s:4:"045d";s:22:"tinymce/tinymce.min.js";s:4:"c326";s:19:"tinymce/langs/ar.js";s:4:"b84e";s:22:"tinymce/langs/bg_BG.js";s:4:"d436";s:19:"tinymce/langs/bs.js";s:4:"2d58";s:19:"tinymce/langs/ca.js";s:4:"f051";s:19:"tinymce/langs/cs.js";s:4:"01dd";s:19:"tinymce/langs/da.js";s:4:"46e4";s:19:"tinymce/langs/de.js";s:4:"71be";s:22:"tinymce/langs/de_AT.js";s:4:"f463";s:19:"tinymce/langs/el.js";s:4:"8592";s:19:"tinymce/langs/es.js";s:4:"e8f5";s:19:"tinymce/langs/fa.js";s:4:"f502";s:19:"tinymce/langs/fi.js";s:4:"b5fb";s:19:"tinymce/langs/fo.js";s:4:"f1e4";s:22:"tinymce/langs/fr_FR.js";s:4:"1c57";s:19:"tinymce/langs/gl.js";s:4:"6248";s:22:"tinymce/langs/he_IL.js";s:4:"8894";s:19:"tinymce/langs/hr.js";s:4:"74c3";s:22:"tinymce/langs/hu_HU.js";s:4:"35b8";s:19:"tinymce/langs/it.js";s:4:"c1b2";s:19:"tinymce/langs/ja.js";s:4:"8bbc";s:22:"tinymce/langs/ka_GE.js";s:4:"9ec8";s:22:"tinymce/langs/ko_KR.js";s:4:"df84";s:19:"tinymce/langs/lv.js";s:4:"577a";s:22:"tinymce/langs/nb_NO.js";s:4:"8580";s:19:"tinymce/langs/nl.js";s:4:"d0aa";s:19:"tinymce/langs/pl.js";s:4:"13e6";s:22:"tinymce/langs/pt_BR.js";s:4:"92f0";s:22:"tinymce/langs/pt_PT.js";s:4:"5062";s:23:"tinymce/langs/readme.md";s:4:"a803";s:19:"tinymce/langs/ro.js";s:4:"c10f";s:19:"tinymce/langs/ru.js";s:4:"34f8";s:22:"tinymce/langs/si_LK.js";s:4:"7d08";s:19:"tinymce/langs/sk.js";s:4:"2ed5";s:22:"tinymce/langs/sl_SI.js";s:4:"6817";s:19:"tinymce/langs/sr.js";s:4:"bbc6";s:22:"tinymce/langs/sv_SE.js";s:4:"cae3";s:22:"tinymce/langs/th_TH.js";s:4:"1f29";s:22:"tinymce/langs/tr_TR.js";s:4:"4eb4";s:19:"tinymce/langs/ug.js";s:4:"c056";s:19:"tinymce/langs/uk.js";s:4:"f551";s:22:"tinymce/langs/vi_VN.js";s:4:"8371";s:22:"tinymce/langs/zh_CN.js";s:4:"d5e5";s:22:"tinymce/langs/zh_TW.js";s:4:"266b";s:37:"tinymce/plugins/advlist/plugin.min.js";s:4:"2ac2";s:36:"tinymce/plugins/anchor/plugin.min.js";s:4:"461c";s:38:"tinymce/plugins/autolink/plugin.min.js";s:4:"001c";s:40:"tinymce/plugins/autoresize/plugin.min.js";s:4:"c031";s:38:"tinymce/plugins/autosave/plugin.min.js";s:4:"1bcc";s:36:"tinymce/plugins/bbcode/plugin.min.js";s:4:"1a72";s:37:"tinymce/plugins/charmap/plugin.min.js";s:4:"92c1";s:34:"tinymce/plugins/code/plugin.min.js";s:4:"0ae7";s:44:"tinymce/plugins/compat3x/editable_selects.js";s:4:"7908";s:38:"tinymce/plugins/compat3x/form_utils.js";s:4:"c561";s:34:"tinymce/plugins/compat3x/mctabs.js";s:4:"55cc";s:42:"tinymce/plugins/compat3x/tiny_mce_popup.js";s:4:"8164";s:36:"tinymce/plugins/compat3x/validate.js";s:4:"6814";s:41:"tinymce/plugins/contextmenu/plugin.min.js";s:4:"722b";s:44:"tinymce/plugins/directionality/plugin.min.js";s:4:"589d";s:39:"tinymce/plugins/emoticons/plugin.min.js";s:4:"3a62";s:45:"tinymce/plugins/emoticons/img/smiley-cool.gif";s:4:"e26e";s:44:"tinymce/plugins/emoticons/img/smiley-cry.gif";s:4:"e72b";s:51:"tinymce/plugins/emoticons/img/smiley-embarassed.gif";s:4:"d591";s:54:"tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif";s:4:"c12d";s:46:"tinymce/plugins/emoticons/img/smiley-frown.gif";s:4:"5993";s:49:"tinymce/plugins/emoticons/img/smiley-innocent.gif";s:4:"ec04";s:45:"tinymce/plugins/emoticons/img/smiley-kiss.gif";s:4:"4ae8";s:49:"tinymce/plugins/emoticons/img/smiley-laughing.gif";s:4:"c37f";s:52:"tinymce/plugins/emoticons/img/smiley-money-mouth.gif";s:4:"11c1";s:47:"tinymce/plugins/emoticons/img/smiley-sealed.gif";s:4:"bb82";s:46:"tinymce/plugins/emoticons/img/smiley-smile.gif";s:4:"2968";s:50:"tinymce/plugins/emoticons/img/smiley-surprised.gif";s:4:"2e13";s:51:"tinymce/plugins/emoticons/img/smiley-tongue-out.gif";s:4:"5ec3";s:50:"tinymce/plugins/emoticons/img/smiley-undecided.gif";s:4:"3c0c";s:45:"tinymce/plugins/emoticons/img/smiley-wink.gif";s:4:"8972";s:45:"tinymce/plugins/emoticons/img/smiley-yell.gif";s:4:"19bb";s:37:"tinymce/plugins/example/plugin.min.js";s:4:"c3c3";s:48:"tinymce/plugins/example_dependency/plugin.min.js";s:4:"8751";s:38:"tinymce/plugins/fullpage/plugin.min.js";s:4:"3fc4";s:40:"tinymce/plugins/fullscreen/plugin.min.js";s:4:"fa63";s:32:"tinymce/plugins/hr/plugin.min.js";s:4:"e1f5";s:35:"tinymce/plugins/image/plugin.min.js";s:4:"67b5";s:44:"tinymce/plugins/insertdatetime/plugin.min.js";s:4:"b58c";s:35:"tinymce/plugins/layer/plugin.min.js";s:4:"3d20";s:42:"tinymce/plugins/legacyoutput/plugin.min.js";s:4:"a16d";s:34:"tinymce/plugins/link/plugin.min.js";s:4:"0042";s:35:"tinymce/plugins/lists/plugin.min.js";s:4:"5d74";s:37:"tinymce/plugins/media/moxieplayer.swf";s:4:"9217";s:35:"tinymce/plugins/media/plugin.min.js";s:4:"fcfb";s:41:"tinymce/plugins/nonbreaking/plugin.min.js";s:4:"8c71";s:41:"tinymce/plugins/noneditable/plugin.min.js";s:4:"a30c";s:39:"tinymce/plugins/pagebreak/plugin.min.js";s:4:"fe88";s:35:"tinymce/plugins/paste/plugin.min.js";s:4:"27c1";s:37:"tinymce/plugins/preview/plugin.min.js";s:4:"3980";s:35:"tinymce/plugins/print/plugin.min.js";s:4:"7216";s:34:"tinymce/plugins/save/plugin.min.js";s:4:"7e44";s:43:"tinymce/plugins/searchreplace/plugin.min.js";s:4:"2ed3";s:42:"tinymce/plugins/spellchecker/plugin.min.js";s:4:"f376";s:38:"tinymce/plugins/tabfocus/plugin.min.js";s:4:"cfc7";s:35:"tinymce/plugins/table/plugin.min.js";s:4:"f822";s:38:"tinymce/plugins/template/plugin.min.js";s:4:"a61b";s:39:"tinymce/plugins/textcolor/plugin.min.js";s:4:"eefa";s:42:"tinymce/plugins/visualblocks/plugin.min.js";s:4:"f0fa";s:49:"tinymce/plugins/visualblocks/css/visualblocks.css";s:4:"697c";s:41:"tinymce/plugins/visualchars/plugin.min.js";s:4:"4327";s:39:"tinymce/plugins/wordcount/plugin.min.js";s:4:"7507";s:46:"tinymce/skins/lightgray/content.inline.min.css";s:4:"4498";s:39:"tinymce/skins/lightgray/content.min.css";s:4:"ecd7";s:40:"tinymce/skins/lightgray/skin.ie7.min.css";s:4:"6d5c";s:36:"tinymce/skins/lightgray/skin.min.css";s:4:"6007";s:47:"tinymce/skins/lightgray/fonts/icomoon-small.eot";s:4:"fba6";s:47:"tinymce/skins/lightgray/fonts/icomoon-small.svg";s:4:"25df";s:47:"tinymce/skins/lightgray/fonts/icomoon-small.ttf";s:4:"bb2e";s:48:"tinymce/skins/lightgray/fonts/icomoon-small.woff";s:4:"b407";s:41:"tinymce/skins/lightgray/fonts/icomoon.eot";s:4:"29e3";s:41:"tinymce/skins/lightgray/fonts/icomoon.svg";s:4:"de6a";s:41:"tinymce/skins/lightgray/fonts/icomoon.ttf";s:4:"4c53";s:42:"tinymce/skins/lightgray/fonts/icomoon.woff";s:4:"8621";s:39:"tinymce/skins/lightgray/fonts/readme.md";s:4:"7a0f";s:38:"tinymce/skins/lightgray/img/anchor.gif";s:4:"abd3";s:38:"tinymce/skins/lightgray/img/loader.gif";s:4:"394b";s:38:"tinymce/skins/lightgray/img/object.gif";s:4:"f372";s:37:"tinymce/skins/lightgray/img/trans.gif";s:4:"12bf";s:37:"tinymce/skins/lightgray/img/wline.gif";s:4:"c136";s:34:"tinymce/themes/modern/theme.min.js";s:4:"356d";}',
);
?>
\ No newline at end of file
ext_icon.png

905 Bytes

......@@ -9,7 +9,7 @@ tinymce.addI18n('az',{
"Paste": "\u018flav\u0259 et",
"Close": "Ba\u011fla",
"Font Family": "Font stili",
"Pre": "Qabaqcadan",
"Pre": "Pre",
"Align right": "Sa\u011f t\u0259r\u0259f \u00fczr\u0259",
"New document": "Yeni s\u0259n\u0259d",
"Blockquote": "Sitat",
......@@ -28,10 +28,10 @@ tinymce.addI18n('az',{
"Header 1": "Ba\u015fl\u0131q 1",
"Superscript": "Yuxar\u0131 indeks",
"Clear formatting": "Format\u0131 t\u0259mizl\u0259",
"Font Sizes": "Font \u00f6l\u00e7\u00fcs\u00fc",
"Font Sizes": "Font \u00f6l\u00e7\u00fcl\u0259ri",
"Subscript": "A\u015fa\u011f\u0131 indeks",
"Header 6": "Ba\u015fl\u0131q 6\u00e7",
"Redo": "Ir\u0259li",
"Header 6": "Ba\u015fl\u0131q 6",
"Redo": "\u0130r\u0259li",
"Paragraph": "Paraqraf",
"Ok": "Oldu",
"Bold": "Qal\u0131n",
......@@ -176,6 +176,9 @@ tinymce.addI18n('az',{
"Insert template": "\u015eablon \u0259lav\u0259 et",
"Templates": "\u015eablonlar",
"Background color": "Arxafon r\u0259ngi",
"Custom...": "\u00c7\u0259kilm\u0259...",
"Custom color": "\u00c7\u0259kilm\u0259 r\u0259ng",
"No color": "R\u0259ngsiz",
"Text color": "M\u0259tnin r\u0259ngi",
"Show blocks": "Bloklar\u0131 g\u00f6st\u0259r",
"Show invisible characters": "G\u00f6r\u00fcnm\u0259y\u0259n simvollar\u0131 g\u00f6st\u0259r",
......
......@@ -66,6 +66,7 @@ tinymce.addI18n('be',{
"Restore last draft": "\u0410\u0434\u043d\u0430\u045e\u043b\u0435\u043d\u043d\u0435 \u0430\u043f\u043e\u0448\u043d\u044f\u0433\u0430 \u043f\u0440\u0430\u0435\u043a\u0442\u0430",
"Special character": "\u0421\u043f\u0435\u0446\u044b\u044f\u043b\u044c\u043d\u044b\u044f \u0441\u0456\u043c\u0432\u0430\u043b\u044b",
"Source code": "\u0417\u044b\u0445\u043e\u0434\u043d\u044b \u043a\u043e\u0434",
"Color": "\u041a\u043e\u043b\u0435\u0440",
"Right to left": "\u0421\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u0430",
"Left to right": "\u0417\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0430",
"Emoticons": "\u0414\u0430\u0434\u0430\u0446\u044c \u0441\u043c\u0430\u0439\u043b",
......@@ -128,11 +129,13 @@ tinymce.addI18n('be',{
"Finish": "\u0421\u043a\u043e\u043d\u0447\u044b\u0446\u044c",
"Ignore all": "\u0406\u0433\u043d\u0430\u0440\u0430\u0432\u0430\u0446\u044c \u0443\u0441\u0435",
"Ignore": "\u0406\u0433\u043d\u0430\u0440\u0430\u0432\u0430\u0446\u044c",
"Add to Dictionary": "\u0414\u0430\u0434\u0430\u0446\u044c \u0443 \u0441\u043b\u043e\u045e\u043d\u0456\u043a",
"Insert row before": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
"Rows": "\u0420\u0430\u0434\u043a\u0456",
"Height": "\u0412\u044b\u0448\u044b\u043d\u044f",
"Paste row after": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a \u0437\u043d\u0456\u0437\u0443",
"Alignment": "\u0412\u044b\u0440\u0430\u045e\u043d\u043e\u045e\u0432\u0430\u043d\u043d\u0435",
"Border color": "\u041a\u043e\u043b\u0435\u0440 \u043c\u044f\u0436\u044b",
"Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u043b\u0443\u043f\u043a\u043e\u045e",
"Row": "\u0420\u0430\u0434\u043e\u043a",
"Insert column before": "\u0414\u0430\u0434\u0430\u0446\u044c \u0441\u043b\u0443\u043f\u043e\u043a \u0437\u043b\u0435\u0432\u0430",
......@@ -176,6 +179,9 @@ tinymce.addI18n('be',{
"Insert template": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0448\u0430\u0431\u043b\u043e\u043d",
"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b",
"Background color": "\u041a\u043e\u043b\u0435\u0440 \u0444\u043e\u043d\u0443",
"Custom...": "\u041a\u0430\u0440\u044b\u0441\u0442\u0430\u0446\u043a\u0456...",
"Custom color": "\u041a\u0430\u0440\u044b\u0441\u0442\u0430\u0446\u043a\u0456 \u043a\u043e\u043b\u0435\u0440",
"No color": "\u0411\u0435\u0437 \u043a\u043e\u043b\u0435\u0440\u0443",
"Text color": "\u041a\u043e\u043b\u0435\u0440 \u0442\u044d\u043a\u0441\u0442\u0443",
"Show blocks": "\u041f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u0431\u043b\u043e\u043a\u0456",
"Show invisible characters": "\u041f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u043d\u044f\u0431\u0430\u0447\u043d\u044b\u044f \u0441\u0456\u043c\u0432\u0430\u043b\u044b",
......
tinymce.addI18n('ca',{
"Cut": "Retalla",
"Heading 5": "Encap\u00e7alament 5",
"Header 2": "Cap\u00e7alera 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "El vostre navegador no suporta l'acc\u00e9s directe al portaobjectes. Si us plau, feu servir les dreceres de teclat Ctrl+X\/C\/V.",
"Heading 4": "Encap\u00e7alament 4",
"Div": "Div",
"Heading 2": "Encap\u00e7alament 2",
"Paste": "Enganxa",
"Close": "Tanca",
"Font Family": "Fam\u00edlia de la font",
......@@ -11,6 +14,8 @@ tinymce.addI18n('ca',{
"New document": "Nou document",
"Blockquote": "Cita",
"Numbered list": "Llista enumerada",
"Heading 1": "Encap\u00e7alament 1",
"Headings": "Encap\u00e7alaments",
"Increase indent": "Augmentar sagnat",
"Formats": "Formats",
"Headers": "Cap\u00e7aleres",
......@@ -34,6 +39,8 @@ tinymce.addI18n('ca',{
"Italic": "Cursiva",
"Align center": "Centrat",
"Header 5": "Cap\u00e7alera 5",
"Heading 6": "Encap\u00e7alament 6",
"Heading 3": "Encap\u00e7alament 3",
"Decrease indent": "Disminuir sagnat",
"Header 4": "Cap\u00e7alera 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Enganxar ara est\u00e0 en mode text pla. Els continguts s'enganxaran com a text pla fins que desactivis aquesta opci\u00f3. ",
......@@ -59,6 +66,7 @@ tinymce.addI18n('ca',{
"Restore last draft": "Restaurar l'\u00faltim esborrany",
"Special character": "Car\u00e0cter especial",
"Source code": "Codi font",
"Color": "Color",
"Right to left": "De dreta a esquerra",
"Left to right": "D'esquerra a dreta",
"Emoticons": "Emoticones",
......@@ -91,9 +99,9 @@ tinymce.addI18n('ca',{
"Insert link": "Inserir enlla\u00e7",
"New window": "Finestra nova",
"None": "Cap",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que has escrit sembla un enlla\u00e7 extern. Vols afegir-li el prefix obligatori http:\/\/ ?",
"Target": "Dest\u00ed",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que has escrit sembla una adre\u00e7a de correu electr\u00f2nic. Vols afegir-li el prefix obligatori mailto: ?",
"Insert\/edit link": "Inserir\/editar enlla\u00e7",
"Insert\/edit video": "Inserir\/editar v\u00eddeo",
"Poster": "P\u00f3ster",
......@@ -121,11 +129,13 @@ tinymce.addI18n('ca',{
"Finish": "Finalitzar",
"Ignore all": "Ignorar tots",
"Ignore": "Ignorar",
"Add to Dictionary": "Afegir al diccionari",
"Insert row before": "Inserir fila a sobre",
"Rows": "Files",
"Height": "Al\u00e7ada",
"Paste row after": "Enganxar fila a sota",
"Alignment": "Aliniament",
"Border color": "Color de vora",
"Column group": "Grup de columna",
"Row": "Fila",
"Insert column before": "Inserir columna abans",
......@@ -141,15 +151,20 @@ tinymce.addI18n('ca',{
"Paste row before": "Enganxar fila a sobre",
"Scope": "\u00c0mbit",
"Delete table": "Esborrar taula",
"H Align": "Al\u00edniament H",
"Top": "Superior",
"Header cell": "Cel\u00b7la de cap\u00e7alera",
"Column": "Columna",
"Row group": "Grup de fila",
"Cell": "Cel\u00b7la",
"Header": "Cap\u00e7alera",
"Middle": "Mitj\u00e0",
"Cell type": "Tipus de cel\u00b7la",
"Copy row": "Copiar fila",
"Row properties": "Propietats de fila",
"Table properties": "Propietats de taula",
"Row group": "Grup de fila",
"Bottom": "Inferior",
"V Align": "Al\u00edniament V",
"Header": "Cap\u00e7alera",
"Right": "A la dreta",
"Insert column after": "Inserir columna despr\u00e9s",
"Cols": "Cols",
......@@ -164,6 +179,9 @@ tinymce.addI18n('ca',{
"Insert template": "Inserir plantilla",
"Templates": "Plantilles",
"Background color": "Color del fons",
"Custom...": "Personalitzar...",
"Custom color": "Personalitzar el color",
"No color": "Sense color",
"Text color": "Color del text",
"Show blocks": "Mostrar blocs",
"Show invisible characters": "Mostrar car\u00e0cters invisibles",
......
......@@ -66,6 +66,7 @@ tinymce.addI18n('cs',{
"Restore last draft": "Obnovit posledn\u00ed koncept",
"Special character": "Speci\u00e1ln\u00ed znak",
"Source code": "Zdrojov\u00fd k\u00f3d",
"Color": "Barva",
"Right to left": "Zprava doleva",
"Left to right": "Zleva doprava",
"Emoticons": "Emotikony",
......@@ -128,6 +129,7 @@ tinymce.addI18n('cs',{
"Finish": "Ukon\u010dit",
"Ignore all": "Ignorovat v\u0161e",
"Ignore": "Ignorovat",
"Add to Dictionary": "P\u0159idat do slovn\u00edku",
"Insert row before": "Vlo\u017eit \u0159\u00e1dek nad",
"Rows": "\u0158\u00e1dek",
"Height": "V\u00fd\u0161ka",
......@@ -176,6 +178,9 @@ tinymce.addI18n('cs',{
"Insert template": "Vlo\u017eit \u0161ablonu",
"Templates": "\u0160ablony",
"Background color": "Barva pozad\u00ed",
"Custom...": "Vlastn\u00ed...",
"Custom color": "Vlastn\u00ed barva",
"No color": "Bez barvy",
"Text color": "Barva p\u00edsma",
"Show blocks": "Uk\u00e1zat bloky",
"Show invisible characters": "Zobrazit speci\u00e1ln\u00ed znaky",
......
......@@ -66,6 +66,7 @@ tinymce.addI18n('da',{
"Restore last draft": "Genopret sidste kladde",
"Special character": "Specielle tegn",
"Source code": "Kildekode",
"Color": "Farve",
"Right to left": "H\u00f8jre til venstre",
"Left to right": "Venstre til h\u00f8jre",
"Emoticons": "Emot-ikoner",
......@@ -128,11 +129,13 @@ tinymce.addI18n('da',{
"Finish": "F\u00e6rdig",
"Ignore all": "Ignorer alt",
"Ignore": "Ignorer",
"Add to Dictionary": "Tilf\u00f8j til ordbog",
"Insert row before": "Inds\u00e6t r\u00e6kke f\u00f8r",
"Rows": "R\u00e6kker",
"Height": "H\u00f8jde",
"Paste row after": "Inds\u00e6t r\u00e6kke efter",
"Alignment": "Tilpasning",
"Border color": "Kant farve",
"Column group": "Kolonne gruppe",
"Row": "R\u00e6kke",
"Insert column before": "Inds\u00e6t kolonne f\u00f8r",
......@@ -148,15 +151,20 @@ tinymce.addI18n('da',{
"Paste row before": "Inds\u00e6t r\u00e6kke f\u00f8r",
"Scope": "Anvendelsesomr\u00e5de",
"Delete table": "Slet tabel",
"H Align": "H juster",
"Top": "Top",
"Header cell": "Sidehoved celle",
"Column": "Kolonne",
"Row group": "R\u00e6kke gruppe",
"Cell": "Celle",
"Header": "Sidehoved",
"Middle": "Midt",
"Cell type": "Celle type",
"Copy row": "Kopier r\u00e6kke",
"Row properties": "R\u00e6kke egenskaber",
"Table properties": "Tabel egenskaber",
"Row group": "R\u00e6kke gruppe",
"Bottom": "Bund",
"V Align": "V juster",
"Header": "Sidehoved",
"Right": "H\u00f8jre",
"Insert column after": "Inds\u00e6t kolonne efter",
"Cols": "Kolonne",
......@@ -171,6 +179,9 @@ tinymce.addI18n('da',{
"Insert template": "Inds\u00e6t skabelon",
"Templates": "Skabeloner",
"Background color": "Baggrunds farve",
"Custom...": "Brugerdefineret...",
"Custom color": "Brugerdefineret farve",
"No color": "Ingen farve",
"Text color": "Tekst farve",
"Show blocks": "Vis klokke",
"Show invisible characters": "Vis usynlige tegn",
......
......@@ -66,6 +66,7 @@ tinymce.addI18n('de',{
"Restore last draft": "Letzten Entwurf wiederherstellen",
"Special character": "Sonderzeichen",
"Source code": "Quelltext",
"Color": "Farbe",
"Right to left": "Von rechts nach links",
"Left to right": "Von links nach rechts",
"Emoticons": "Emoticons",
......@@ -128,11 +129,13 @@ tinymce.addI18n('de',{
"Finish": "Ende",
"Ignore all": "Alles Ignorieren",
"Ignore": "Ignorieren",
"Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen",
"Insert row before": "Neue Zeile davor einf\u00fcgen ",
"Rows": "Zeilen",