diff --git a/phpgwapi/js/htmlarea/plugins/ContextMenu/lang/lang.php b/phpgwapi/js/htmlarea/plugins/ContextMenu/lang/lang.php
new file mode 100644
index 0000000000..f49f456c3e
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/ContextMenu/lang/lang.php
@@ -0,0 +1,94 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-ContextMenu');
+
+// I18N constants
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+ContextMenu.I18N = {
+ // Items that appear in menu. Please note that an underscore (_)
+ // character in the translation (right column) will cause the following
+ // letter to become underlined and be shortcut for that menu option.
+
+ "Cut" : "",
+ "Copy" : "",
+ "Paste" : "",
+ "Image Properties" : "",
+ "Modify Link" : "",
+ "Check Link" : "",
+ "Remove Link" : "",
+ "Cell Properties" : "",
+ "Row Properties" : "",
+ "Insert Row Before" : "",
+ "Insert Row After" : "",
+ "Delete Row" : "",
+ "Table Properties" : "",
+ "Insert Column Before" : "",
+ "Insert Column After" : "",
+ "Delete Column" : "",
+ "Justify Left" : "",
+ "Justify Center" : "",
+ "Justify Right" : "",
+ "Justify Full" : "",
+ "Make link" : "",
+ "Remove the" : "",
+ "Element" : "",
+
+ // Other labels (tooltips and alert/confirm box messages)
+
+ "Please confirm that you want to remove this element:" : "",
+ "Remove this node from the document" : "",
+ "How did you get here? (Please report!)" : "",
+ "Show the image properties dialog" : "",
+ "Modify URL" : "",
+ "Current URL is" : "",
+ "Opens this link in a new window" : "",
+ "Please confirm that you want to unlink this element." : "",
+ "Link points to:" : "",
+ "Unlink the current element" : "",
+ "Show the Table Cell Properties dialog" : "",
+ "Show the Table Row Properties dialog" : "",
+ "Insert a new row before the current one" : "",
+ "Insert a new row after the current one" : "",
+ "Delete the current row" : "",
+ "Show the Table Properties dialog" : "",
+ "Insert a new column before the current one" : "",
+ "Insert a new column after the current one" : "",
+ "Delete the current column" : "",
+ "Create a link" : ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/FullPage/lang/lang.php b/phpgwapi/js/htmlarea/plugins/FullPage/lang/lang.php
new file mode 100644
index 0000000000..ef5a0d9fdc
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/FullPage/lang/lang.php
@@ -0,0 +1,53 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-FullPage');
+
+// I18N for the FullPage plugin
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+FullPage.I18N = {
+ "Alternate style-sheet:": "",
+ "Background color:": "",
+ "Cancel": "",
+ "DOCTYPE:": "",
+ "Document properties": "",
+ "Document title:": "",
+ "OK": "",
+ "Primary style-sheet:": "",
+ "Text color:": ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/HtmlTidy/lang/lang.php b/phpgwapi/js/htmlarea/plugins/HtmlTidy/lang/lang.php
new file mode 100644
index 0000000000..d9bc8a5abb
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/HtmlTidy/lang/lang.php
@@ -0,0 +1,46 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-HtmlTidy');
+
+// I18N constants
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Adam Wright, http://blog.hipikat.org/
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+HtmlTidy.I18N = {
+ "tidying" : "",
+ "HT-html-tidy" : ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/ListType/lang/lang.php b/phpgwapi/js/htmlarea/plugins/ListType/lang/lang.php
new file mode 100644
index 0000000000..ca38f0bfdb
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/ListType/lang/lang.php
@@ -0,0 +1,51 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-ListType');
+
+// I18N constants
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+ListType.I18N = {
+ "Decimal" : "",
+ "Lower roman" : "",
+ "Upper roman" : "",
+ "Lower latin" : "",
+ "Upper latin" : "",
+ "Lower greek" : "",
+ "ListStyleTooltip" : ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/SpellChecker/lang/lang.php b/phpgwapi/js/htmlarea/plugins/SpellChecker/lang/lang.php
new file mode 100644
index 0000000000..72cd33dee9
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/SpellChecker/lang/lang.php
@@ -0,0 +1,66 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-SpellChecker');
+
+// I18N constants
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+SpellChecker.I18N = {
+ "CONFIRM_LINK_CLICK" : "",
+ "Cancel" : "",
+ "Dictionary" : "",
+ "Finished list of mispelled words" : "",
+ "I will open it in a new page." : "",
+ "Ignore all" : "",
+ "Ignore" : "",
+ "NO_ERRORS" : "",
+ "NO_ERRORS_CLOSING" : "",
+ "OK" : "",
+ "Original word" : "",
+ "Please wait. Calling spell checker." : "",
+ "Please wait: changing dictionary to" : "",
+ "QUIT_CONFIRMATION" : "",
+ "Re-check" : "",
+ "Replace all" : "",
+ "Replace with" : "",
+ "Replace" : "",
+ "Revert" : "",
+ "SC-spell-check" : "",
+ "Suggestions" : "",
+ "pliz weit ;-)" : ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/TableOperations/lang/lang.php b/phpgwapi/js/htmlarea/plugins/TableOperations/lang/lang.php
new file mode 100644
index 0000000000..d58ae8ab0e
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/TableOperations/lang/lang.php
@@ -0,0 +1,118 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-TableOperations');
+
+// I18N constants
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Mihai Bazon, http: //dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+TableOperations.I18N = {
+ "Align": "",
+ "All four sides": "",
+ "Background": "",
+ "Baseline": "",
+ "Border": "",
+ "Borders": "",
+ "Bottom": "",
+ "CSS Style": "",
+ "Caption": "",
+ "Cell Properties": "",
+ "Center": "",
+ "Char": "",
+ "Collapsed borders": "",
+ "Color": "",
+ "Description": "",
+ "FG Color": "",
+ "Float": "",
+ "Frames": "",
+ "Height": "",
+ "How many columns would you like to merge?": "",
+ "How many rows would you like to merge?": "",
+ "Image URL": "",
+ "Justify": "",
+ "Layout": "",
+ "Left": "",
+ "Margin": "",
+ "Middle": "",
+ "No rules": "",
+ "No sides": "",
+ "None": "",
+ "Padding": "",
+ "Please click into some cell": "",
+ "Right": "",
+ "Row Properties": "",
+ "Rules will appear between all rows and columns": "",
+ "Rules will appear between columns only": "",
+ "Rules will appear between rows only": "",
+ "Rules": "",
+ "Spacing and padding": "",
+ "Spacing": "",
+ "Summary": "",
+ "TO-cell-delete": "",
+ "TO-cell-insert-after": "",
+ "TO-cell-insert-before": "",
+ "TO-cell-merge": "",
+ "TO-cell-prop": "",
+ "TO-cell-split": "",
+ "TO-col-delete": "",
+ "TO-col-insert-after": "",
+ "TO-col-insert-before": "",
+ "TO-col-split": "",
+ "TO-row-delete": "",
+ "TO-row-insert-above": "",
+ "TO-row-insert-under": "",
+ "TO-row-prop": "",
+ "TO-row-split": "",
+ "TO-table-prop": "",
+ "Table Properties": "",
+ "Text align": "",
+ "The bottom side only": "",
+ "The left-hand side only": "",
+ "The right and left sides only": "",
+ "The right-hand side only": "",
+ "The top and bottom sides only": "",
+ "The top side only": "",
+ "Top": "",
+ "Unset color": "",
+ "Vertical align": "",
+ "Width": "",
+ "not-del-last-cell": "",
+ "not-del-last-col": "",
+ "not-del-last-row": "",
+ "percent": "",
+ "pixels": ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/UploadImage/lang/lang.php b/phpgwapi/js/htmlarea/plugins/UploadImage/lang/lang.php
new file mode 100644
index 0000000000..6984e872d1
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/UploadImage/lang/lang.php
@@ -0,0 +1,54 @@
+ *
+* This file is derived from htmlareas's lang/en.js file *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$GLOBALS['phpgw_info']['flags'] = Array(
+ 'currentapp' => 'home', // can't be phpgwapi, nor htmlarea (no own directory)
+ 'noheader' => True,
+ 'nonavbar' => True,
+ 'noappheader' => True,
+ 'noappfooter' => True,
+ 'nofooter' => True,
+ 'nocachecontrol' => True // allow cacheing
+);
+
+include('../../../../../../header.inc.php');
+$GLOBALS['phpgw']->translation->add_app('htmlarea-SpellChecker');
+
+// I18N for the FullPage plugin
+
+// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+?>
+UploadImage.I18N = {
+ "Alternate style-sheet:": "",
+ "Background color:": "",
+ "Cancel": "",
+ "DOCTYPE:": "",
+ "Document properties": "",
+ "Document title:": "",
+ "OK": "",
+ "Primary style-sheet:": "",
+ "Text color:": "",
+ "Upload Image": ""
+};
diff --git a/phpgwapi/js/htmlarea/plugins/merge_langs b/phpgwapi/js/htmlarea/plugins/merge_langs
new file mode 100755
index 0000000000..05fd14a92b
--- /dev/null
+++ b/phpgwapi/js/htmlarea/plugins/merge_langs
@@ -0,0 +1,117 @@
+#!/usr/bin/php -q
+ *
+* -------------------------------------------- *
+* This program 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 (at your *
+* option) any later version. *
+\**************************************************************************/
+
+/* $Id$ */
+
+$plugin_dir = realpath(dirname(__FILE__));
+$setup_dir = realpath(dirname(__FILE__).'/../../../setup');
+
+function load_langfile($lang)
+{
+ global $setup_dir;
+
+ $lang_file = $setup_dir.'/phpgw_'.$lang.'.lang';
+
+ $arr = array();
+ if (file_exists($lang_file))
+ {
+ foreach(file($lang_file) as $line)
+ {
+ @list($phrase,$app,$lang,$trans) = split("[\t\n\r]",$line);
+ $arr[$phrase] = array(
+ 'app' => $app,
+ 'trans' => $trans,
+ );
+ }
+ }
+ return $arr;
+}
+
+function save_langfile($lang,$arr)
+{
+ $content = '';
+ ksort($arr);
+ foreach($arr as $phrase => $data)
+ {
+ $content .= "$phrase\t$data[app]\t$lang\t$data[trans]\n";
+ }
+ global $setup_dir;
+ $lang_file = $setup_dir.'/phpgw_'.$lang.'.lang';
+
+ if ($f = fopen($lang_file,'w'))
+ {
+ fwrite($f,$content);
+ }
+ fclose($f);
+}
+
+$d = opendir($plugin_dir);
+while ($plugin = readdir($d))
+{
+ if (!is_dir($plugin) || $plugin == 'CVS' || $plugin == 'CSS' || $plugin[0] == '.') continue;
+
+ if (!@file_exists($lang_file = $plugin_dir.'/'.$plugin.'/lang/en.js')) continue;
+ $lang_file = file_get_contents($lang_file);
+
+ if (!preg_match_all('/"([^"]+)"[ \t:]+"([^"]+)"/',$lang_file,$matches)) continue;
+ $token2en = array();
+ foreach($matches[1] as $n => $token)
+ {
+ $token2en[$token] = $matches[2][$n];
+ }
+
+ $l = opendir($plugin_dir.'/'.$plugin.'/lang');
+
+ while ($lang_file = readdir($l))
+ {
+ if (!preg_match('/.js$/',$lang_file)) continue;
+
+ $lang = substr($lang_file,0,2);
+ $lang_file = $plugin_dir.'/'.$plugin.'/lang/'.$lang_file;
+ echo "\nprocessing: $lang_file\n";
+
+ $lang_file = file_get_contents($lang_file);
+
+ if (preg_match_all('/"([^"]+)"[ \t:]+"([^"]+)"/',$lang_file,$matches))
+ {
+ $arr = load_langfile($lang);
+ $needs_save = false;
+
+ foreach($matches[1] as $n => $token)
+ {
+ if (!isset($token2en[$token])) continue;
+
+ $phrase = strtolower($token2en[$token]);
+
+ if (!$phrase) continue;
+
+ if (isset($arr[$phrase]))
+ {
+ if ($arr[$phrase]['app'] != 'common' && $arr[$phrase]['app'] != 'htmlarea-'.$plugin)
+ {
+ $arr[$phrase]['app'] = 'common';
+ }
+ continue;
+ }
+ $arr[$phrase] = array(
+ 'app' => 'htmlarea-'.$plugin,
+ 'trans' => $matches[2][$n],
+ );
+ echo "adding: $phrase = ".$matches[2][$n]."\n";
+ $needs_save = true;
+ }
+ if ($needs_save) save_langfile($lang,$arr);
+ }
+ }
+}
+closedir($d);
\ No newline at end of file