From bc9639dac29d76030bbf1f7258ab4b037250e327 Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 19 Aug 2014 11:55:01 +0800 Subject: [PATCH 01/16] Supplementary Chinese translation --- lang/chinese-simplified.php | 153 +++++++++++++++++++++++++++++++++++- 1 file changed, 152 insertions(+), 1 deletion(-) diff --git a/lang/chinese-simplified.php b/lang/chinese-simplified.php index aa2a0d7..64accae 100644 --- a/lang/chinese-simplified.php +++ b/lang/chinese-simplified.php @@ -1,7 +1,7 @@  and HTML equivalents (eg &). Translations on right side. @@ -107,6 +107,139 @@ $text = array( // /LIB + "bug-files-check" => + array( + "Found in" => "发现在:" + ), + + "file-control" => + array( + "Sorry" => "抱歉", + "does not seem..." => "似乎不存在于服务器上", + "Sorry, could not..." => "抱歉, 不能得到的内容", + "Sorry, cannot create..." => "抱歉, 不能创建文件夹", + "Sorry, cannot copy" => "抱歉, 不能复制", + "into" => "到", + "Uploaded file(s) OK" => "上传文件完成", + "Sorry, cannot upload" => "抱歉, 不能上传", + "Sorry, cannot upload..." => "抱歉, 在演示模式不能上传文件", + "Sorry, cannot rename" => "抱歉, 不能重命名", + "Maybe public write..." => "也许父文件夹也需要写入权限?", + "Sorry, cannot move" => "抱歉, 不能移动", + "Sorry, cannot save" => "抱歉, 不能保存", + "Sorry, cannot replace..." => "抱歉, 目标不能替换文本", + "Sorry, cannot change..." => "抱歉, 目标不能更改权限", + "Sorry, cannot delete..." => "抱歉, 不能删除根级别ROOT", + "Sorry, cannot delete" => "抱歉, 不能删除", + "Sorry, this file..." => "抱歉, 此文件已更改, 不能保存", + "Reload this file..." => "重新加载该文件, 你的版本复制到一个新文件?", + "There was a..." => "这些代码还没有完全准备好. 所以 ICEcoder 需要再次重新加载.", + "displayed at" => "显示在", + "Enter filename to..." => "输入文件名并保存到", + "That file exists..." => "该文件已存在, 要覆盖吗?", + "Saving" => "正在保" + ), + + "get-branch" => + array( + "There are no..." => "本地文件与 GitHub repo 没有明显差异. 切换回普通模式?", + "Sorry, there was..." => "抱歉, 这里有一个错误, 代码:", + "Your local folder..." => "你的本地文件夹是空的, 你是否想克隆" + ), + + "github-manager" => + array( + "Sorry, cannot create..." => "抱歉, 不能创建目录到", + "Cannot update config..." => "不能更新配置文件. 请对", + "and try again" => "增加写入权限, 并再次尝试", + "saving github paths" => "正在保存 github 路径...", + "github paths" => "github 路径", + "Choose existing path" => "选择现有路径", + "Local path" => "本地路径", + "Remote GitHub path" => "远程 GitHub 路径", + "Choose" => "选择", + "Set local and..." => "设置本地路径和远程路径需要去除空格", + "Update" => "更新", + "Add new path" => "增加新路径", + "Add" => "增加", + "Usage Info" => "使用方法:", + "Enter relative local..." => ">输入本地相对路径 (/server/myfiles) 和 GitHub 绝对路径 (https://github.com/user/repo 或 https://github.com/user/repo/tree/branch 各分支), 按照示例. 完成后你就建立了这两个地点的源路径, 它是成对数存在.", + "You can then..." => "你可以选择一个路径作为 ICEcoder 的根目录.", + "The file manager..." => "文件管理器右侧会显示一个新的GitHub的图标, 您可以点击执行, 会自动校验并显示本地与github源之间的差异. 这些差别可以被提交并推送到在GitHub上的远程路径或克隆到你的本地路径, 用来同步您的文件.", + "If you want..." => "如果你想设置的另一个根路径, 这可以在 帮助 > 设置窗口 中进行设置." + ), + + "github" => + array( + "Sorry, you do..." => "抱歉, 您的服务器没有启用 OpenSSL 的 PHP 实例, 所以 https 目前不可用. GitHub 的数据传输必须要 https 连接, 请修改 php.ini 设置, 重启你的服务器并重新尝试" + ), + + "headers" => + array( + "Bad CSRF token..." => "错误的 CSRF token. 请在 https://github.com/mattpass/ICEcoder 报告错误信息, 以便我们修复它." + ), + + "help" => + array( + "shortcuts" => "快捷键", + "Within document" => "文档", + "On Tabs" => "选项卡", + "Within file manager" => "文件管理器", + "Anywhere" => "其他", + "Space" => "空格", + "Click" => "单击", + "or" => "或", + "Left click" => "左键单击", + "Middle click" => "中键单击", + "Double click tap..." => "双击 / 点击 (移动端)", + "Right click" => "右键单击", + "Middle scrollwheel" => "中间滚轮滚动", + "Drag" => "拖动", + "Autocomplete add snippet" => "自动完成 / 添加片段", + "Multiple select" => "多选", + "Move line up" => "向上移动行", + "Move line down" => "向下移动行", + "Duplicate lines" => "复制行", + "Remove lines" => "删除行", + "Insert line before" => "前插入行", + "Insert line after" => "后插入行", + "Search for selected" => "搜索选择", + "Jump to definition" => "跳转到 / 跳转回", + "Comment uncomment" => "注释 / 清除注释", + "Insert tab indent" => "插入tab / 插入选择", + "Wrap with div" => "封装 <div>", + "Wrap with span" => "封装 <span>", + "Wrap unwrap p" => "封装 / 撤销封装 with <p>", + "Wrap unwrap a" => "封装 / 撤销封装 with <a>", + "Wrap unwrap b" => "封装 / 撤销封装 with <b>", + "Wrap unwrap i" => "封装 / 撤销封装 with <i>", + "Wrap unwrap strong" => "封装 / 撤销封装 with <strong>", + "Wrap unwrap em" => "封装 / 撤销封装 with <em>", + "Wrap unwrap h1..." => "封装 / 撤销封装 with <h1> - <h3>", + "End line with..." => "换行 <br>", + "Close tab" => "关闭选项卡", + "Select file folder" => "选择文件 / 文件夹", + "Open file" => "打开文件", + "Range select" => "范围选择", + "Options for selected" => "所选的选项", + "Delete selected" => "删除已选", + "Next previous tab" => "下一个 / 上一个 选项卡", + "Next tab" => "下一个选项卡", + "Previous tab" => "上一个选项卡", + "New tab" => "新建选项卡", + "Close current tab" => "关闭当前选项卡", + "Open file prompt" => "打开文件的提", + "Find" => "搜索", + "Focus on Go..." => "光标定位到转到行的输入框", + "Save" => "保存", + "Save as" => "另存为...", + "View webpage" => "预览网页", + "Contract expand file..." => "收缩 / 扩展文件管理器", + "Fold unfold current..." => "折叠 / 展开当前行", + "Refocus on document" => "重新聚焦于文档", + "Cancel tasks" => "取消任务" + ), + "login" => array( "set password" => "设置密码", @@ -116,6 +249,24 @@ $text = array( "auto-check for updates" => "自动检测更新", "To put into..." => "要禁用多用户模式, 请打开设置或打开文件 lib/config___settings.php 并更改 multiUser 为 true , 并重新载入本页面", "multi-user" => "多用户" + ), + + "multiple-results" => + array( + "rename all" => "重命名所有", + "replace all" => "全部替换", + "document" => "文档", + "Found" => "找到", + "times" => "时间", + "replace" => "替换", + "file folder" => "文件/文件夹", + "rename to" => "重命名为", + "rename" => "重命名", + "file" => "文件", + "No matches found" => "没有找到匹配", + "selected" => "选择", + "found in" => "查询结果在", + "Replaced" => "已替换" ) ); ?> \ No newline at end of file From cdd38a88d29b32bef3610b108530f09fc9d0ba80 Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 19 Aug 2014 12:52:52 +0800 Subject: [PATCH 02/16] Supplementary Traditional Chinese translation Improved Simplified Chinese translation of individual errors. --- lang/chinese-simplified.php | 18 +++++++++--------- lang/chinese-traditional.php | Bin 3850 -> 10574 bytes 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lang/chinese-simplified.php b/lang/chinese-simplified.php index 64accae..91b1c42 100644 --- a/lang/chinese-simplified.php +++ b/lang/chinese-simplified.php @@ -115,7 +115,7 @@ $text = array( "file-control" => array( "Sorry" => "抱歉", - "does not seem..." => "似乎不存在于服务器上", + "does not seem..." => "服务器上不存在", "Sorry, could not..." => "抱歉, 不能得到的内容", "Sorry, cannot create..." => "抱歉, 不能创建文件夹", "Sorry, cannot copy" => "抱歉, 不能复制", @@ -137,7 +137,7 @@ $text = array( "displayed at" => "显示在", "Enter filename to..." => "输入文件名并保存到", "That file exists..." => "该文件已存在, 要覆盖吗?", - "Saving" => "正在保" + "Saving" => "正在保存" ), "get-branch" => @@ -163,15 +163,15 @@ $text = array( "Add new path" => "增加新路径", "Add" => "增加", "Usage Info" => "使用方法:", - "Enter relative local..." => ">输入本地相对路径 (/server/myfiles) 和 GitHub 绝对路径 (https://github.com/user/repo 或 https://github.com/user/repo/tree/branch 各分支), 按照示例. 完成后你就建立了这两个地点的源路径, 它是成对数存在.", - "You can then..." => "你可以选择一个路径作为 ICEcoder 的根目录.", - "The file manager..." => "文件管理器右侧会显示一个新的GitHub的图标, 您可以点击执行, 会自动校验并显示本地与github源之间的差异. 这些差别可以被提交并推送到在GitHub上的远程路径或克隆到你的本地路径, 用来同步您的文件.", - "If you want..." => "如果你想设置的另一个根路径, 这可以在 帮助 > 设置窗口 中进行设置." + "Enter relative local..." => "输入本地相对路径 (/server/myfiles) 和 GitHub 绝对路径 (https://github.com/user/repo 或 https://github.com/user/repo/tree/branch 各分支), 按照示例. 完成后你就建立了这两个地点的源路径, 它是成对数存在.", + "You can then..." => "你可以选择一个路径作为 ICEcoder 的根路径.", + "The file manager..." => "文件管理器右侧会显示一个新的GitHub图标, 您可以点击执行, 会自动校验并显示本地与github源之间的差异. 这些差别可以被提交并推送到在GitHub上的远程路径或克隆到你的本地路径, 用来同步您的文件.", + "If you want..." => "如果你想设置的另一个根路径, 可以在 帮助 > 设置窗口 中进行设置." ), "github" => array( - "Sorry, you do..." => "抱歉, 您的服务器没有启用 OpenSSL 的 PHP 实例, 所以 https 目前不可用. GitHub 的数据传输必须要 https 连接, 请修改 php.ini 设置, 重启你的服务器并重新尝试" + "Sorry, you do..." => "抱歉, 您的服务器没有启用 OpenSSL 的 PHP 实例, 所以 https 目前不可用. GitHub 的数据传输必须要用 https 连接, 请修改 php.ini 设置, 重启你的服务器并重新尝试" ), "headers" => @@ -228,7 +228,7 @@ $text = array( "Previous tab" => "上一个选项卡", "New tab" => "新建选项卡", "Close current tab" => "关闭当前选项卡", - "Open file prompt" => "打开文件的提", + "Open file prompt" => "打开文件的提示", "Find" => "搜索", "Focus on Go..." => "光标定位到转到行的输入框", "Save" => "保存", @@ -236,7 +236,7 @@ $text = array( "View webpage" => "预览网页", "Contract expand file..." => "收缩 / 扩展文件管理器", "Fold unfold current..." => "折叠 / 展开当前行", - "Refocus on document" => "重新聚焦于文档", + "Refocus on document" => "光标重新聚焦于文档", "Cancel tasks" => "取消任务" ), diff --git a/lang/chinese-traditional.php b/lang/chinese-traditional.php index bc5c641a07508ca71bd8b56d8391d17bcd89efcb..c88f11d59abf93c9f4775febefb37e93f0d9500f 100644 GIT binary patch literal 10574 zcmb_i>r)ihw*M@D#V+esN~@4b>U_9Wi805ZCf) zrSxg~o&MvW|Ni5TEg7e~iGFP_m|C=bU?Y)sP2+~wEWDzb zv9Nt6Z@5OrH(mT@*u6fq$qCCAXMH2*ox@LA@$I!MZNmJqWZg6hrtN#;l$jHs7~RD$ zPPdRLp|+lIY~fnDye~W}Yqm5s{fBS<zIPOXD<+-L4n()MlldT0Sb3<4e$M(pGmX?;2Cr*5MPMkcOK3CuUC72$S^E1Kf z?Af$?E_i)Qjy_|R=x@2PQoX-g`LG!DZ=6k~&z)>;f<)yI7gCg%%HB>eKQ3oid9jnc z=Wta;PQM1+<7h3ed$+UlCTHOtC>?K(a1N+_w?H(6WRhfB1K{~;Nd+rwq%k4^8g z3Z_SkZ2QbmW%nJ+Z8JPyeDHwo2eX z>8~GHpl?E;SF-%bm|**5?b(W4ei&`qQL;tJwtPXvq!&56-e0aQj>(yIIdGdR5(>MH*GLPg`%YDH>nOClRxFV6=mHiKhHC}d%*JJsa zd~7&8Cnq;5yUTKZ6}K>*LR5EIxqto3Gu74fT96k+WqS>WQ{7)rDuaL5AI`IQ-04z5 znWk*3{yr7_GJg_R=yWsPBR-FYYt-gsZbZ7)CuZdO91H6(yC5$gIzSF@1v9Vo67FZj zqi*XD@h+B~HGgWntk>HwoWFKaT>kFT)lgvY_$>tT9b~b#(<6+VhE*`qg~;*M$pbir zy~AWG>hwJjR(Oyce0&#zM;lCfy_lu@0Kws|EROe%#EHCtOz1h?=Ak1A=0_^qeU+WZ z!Tj^eho9xzBZ^0;eg8eP_Biehebf{KwWmMV_Q0~ntF2DKaYYeXD!xJW#rw69&3gZK zFg+Bdmha3SaS3-N)DdoxyE`2CEJ{&01!RijXynoXlU*+s93!h_o$^kDl(edBkIGwb zlG567`_yI}C7X|Gn|mzaYSC1wMJ@0Z3~ed)($;FBwlq|Gy3Y$2N=4*hI5|{Ij%*+s z=|!_(CRT=@*Jqb_rNg8|8uHYK#^v38EbVb`i>wZL<)G?Jn}N8O1EB z6{T+F0jA=EjxDDX=9T}o66!piu5PdM@9nN-$F|{U<+#4gmr8|#mvK$g7QU0qsW4O? z8(5XEC*|-^F!@;P=H#4`5<=_M*c`I#S0x~Vu6miUuT!g$P%`X z6zfJuET8-$M;D-Ry-zzs6QPR4?i!kuukI#^&X;@#%}p^GYPF%~viv}3=cF8D&M-q&b<=`loXJ9aAd@a0+5TGYYH_Be7a+6g{UC97FvoKhi6oCzi+w;3JRcanTevgWIRHz&H9aUV9@+J!{(s!I<;Vw3T3xSzck%^iw zuKqU;mn0?2eligr-Wt`LOX$(fS-@dWvAxW6#NJ@6YmJaYseZH@@(l0k&$bseHZ{{4=yp`0KDvMPw_OyG<5)bd?MGP-)p?3kL>K!^r?VqY!#Ic;mE%k&v6-Q$fjWFx zn8fYe(KtISg1S?-_BhS6sv|q11@A9agGN*5+c`PBOjG#BW#};D8yMacmT-tk zykaUH3D@$bYlAvhKd09Etvfo~?aW{*mdpDsLOx!A<{}!?InI*Gw6F)V zmWLYFi`!{L8N0r?flCslpo=zu6?J*3W*~LPYSi|&DR5PLin<}+zhkdNcmG=6@D-~t ze?m?060D&!!`P+J+SO_$}viSQm6HxtuKu=W&cY0rlvW6t!?qygY$@{Ng@ zU1z|3c0y@HuAJ9Ct_=?fhNDzn5!#WDCg20PwO)Pj3cghBrF{HLFpIWtj*~~I9$z3o zJfqmYFo1AUwWpIjrr~tCMj-%H>C}*cnidOA21r(ynxJAa94JYZk)Sa=3|WN zINBr&unHWbCRB3y@RBqW&;9tk3P9ZWb6j zssq0vZB`D-NEvFXlT#A}n!S3B=BoOlT-g~!GLQq$D9P_kvE~Tw_1nRastvL)yC;XSWunaGQrlyz>1(3tI9H3M?>@czIM;$F3}4Rw8yX$?Y3OG1)vhtNVI&nv^PTE;v^$@ zltC78PB3Nl`9nGRl(13225=1j+R~7z8>^Sj(4S-y1Z9vY@c2d-S0&0w4$jI6V> zO~7(N@H@~M#3eN3wm?O=Ktji$NnP;d2AEo+>jHN@KysS{U_%$~!$5su7^Rs6GiSZ; zX)v*jdX1p|u#RR<0QzkK0HN(|7StC%m~K#!j-T5hPUB$#&zlBNL$A^PuK^Rbc6MAs z$8jSW`&>fFw8W|^EC8mDxxDmrR5Uy<6?H>ABC;F?cc~yRR}MY|!*^xhT^J<~p5bD~ zN0cWFtzk^`{sc7n9t9YWP>BIwb>k}3I3ZrO#WjX5!n6)lB|(7lIdPOQN`JMW*v`G%!B8wFp1+r@o#Nr7iLL% z)rxl6S^-Lg$BBsVij~bm<3m&w`iH45IGB<&74Vy4oP+9*XCaH=u8}eTEY2w66puR9 z7aONpl@9ercW4)+tA<^)F2D|*LIK_}360?nWexcz*gdH2J;(o}A?ku_#Lpr@c_vy& zLU_VJCG>2oSTxZzlei?9N1AW#5==NU6s&6i?Ft?}EZ~0{BGX#Pr8y*Uw&x0FJbv9Q zDR`8`%Bj1Q-PDj5p(8P27VvT?i73krlo9Z)t%$YqN=0uu@(;4za zpUylQO~rHC$I;Yac`k{jYCC}@0{kKDS1Zq&)6Y0sWpA>gkI=CMqUwr$x6|waCh$Mc!Jb+ za-4EkN5RXJdiWMcZGvJ7g)^wkR2;7z1n0y_OF6H)aYxRNC$GTOB0W8*Zyb)i0gUv4 zQZ;DtlfeZA@idZh)&U*>2HyQU`tkywf!ws5l1C`NHVdhayD!*;1gZZGwxm-ObHZ~G zQv;oP$%^GG6C2~r0KvmkP-TA{$uff5aV&bIS{!7#fBYn9 z#1$fZ5~K)LBei-F#rw`5zlgRHWDd|CGc__DW5VhZ(5(#azr(8;#p(20`TBu2JRC-} z;Q&aG(<#b@_HoRAcSlYxfFI2C{eg0IRGRRyKmWf{Sf4p2s8pNI*a8c;mNtGSp=^NP^s=5;|7W|2OE00Q_z(oe{oJXwRG3f87ZImZt2fmqFBxl+z@8mNUGXWUKu&So#5l454Y4c;1%`77O&_{L*tTL zsVOF^P2q0%@abq-(iZYt5}kQuVDt$>^dzGMMeD2uZ51n?_;%tu2XhoYYQiI27d`QT zNJS#Q6)Fqm*n0q$EGO}r&D$u*Pw&zAMEL7+?b#FlnkhogJNSJ#y7UNh?GlW>O{c$T I`s&>O0mf+s9{>OV delta 25 gcmX>X)Fn4ThLK^T%nF{(vZ{7W>|C1GT=sTc0Aqs&G5`Po From 4e3d73e8b9a75f569a35f6756296b791a385546e Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 21 Aug 2014 14:38:10 +0200 Subject: [PATCH 03/16] Create germna.php file Added german language file. --- lang/german.php | 273 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 lang/german.php diff --git a/lang/german.php b/lang/german.php new file mode 100644 index 0000000..4e2ced5 --- /dev/null +++ b/lang/german.php @@ -0,0 +1,273 @@ + and HTML equivalents (eg &). Translations on right side. + +$text = array( + +// / [ROOT LEVEL] + + "editor" => + array( + "Click icons for..." => "Klick auf das Icon
für Hilfe &
Anwendungsbeispielen
", + "server" => "Server", + "Server name, OS..." => "Servername, OS & IP:", + "Root" => "Root:", + "ICEcoder root" => "ICEcoder root:", + "PHP version" => "PHP Version:", + "Date & time" => "Datum & Uhrzeit:", + "your device" => "Dein Gerät", + "Browser" => "Browser:", + "Your IP" => "Deine IP:", + "files" => "Dateien", + "Last 10 files..." => "Die letzten 10 geöffneten Dateien:", + "none" => "[nichts]", + "test suite" => "Test Suite", + "Run unit tests" => "Unittest starten", + "dev mode" => "Entwicklermodus", + "Status" => "Status", + "Using" => "Verwenden", + "You can switch..." => "Du kannst den Entwicklermodus in der in lib/config__settings.php ein- und ausschateln", + "results" => "Ergebnis" + + ), + + "files" => + array( + "Lock" => "Sperren", + "Refresh" => "Erneueren", + "ROOT" => "[ROOT]" + + ), + + "index" => + array( + "UPDATE INFO" => "Update Infos", + "now available" => "jetzt verfügbar", + "Your version is" => "Deine Version ist", + "Update now" => "Aktualisiere jetzt", + "You have some..." => "Du hast einige nicht gespeicherete Datein", + "working" => "arbeite", + "Color picker" => "Farbauswahl", + "New File" => "Neue Datei", + "New Folder" => "Neuer Ordner", + "Upload File(s)" => "Dateie(n) hochladen", + "Paste" => "Einfügen", + "Open" => "Öffnen", + "Copy" => "Kopiere", + "Duplicate" => "Duplizieren", + "Delete" => "Löschen", + "Rename" => "Umbenennen", + "View Webpage" => "Webseite anzeigen", + "Download" => "Herunterladen", + "Properties" => "Einstellungen", + "File" => "Datei", + "Edit" => "Editieren", + "Remote" => "Fernzugriff", + "Help" => "Hilfe", + "Save" => "Speichern", + "Save As" => "Speichern als", + "Live Preview" => "Live Vorschau", + "Upload" => "Hochladen", + "Zip" => "Zip", + "Print" => "Drucken", + "Fullscreen toggle" => "Vollbildmodus wechseln", + "Logout" => "Ausloggen", + "Undo" => "Rückgängig", + "Redo" => "Wiederherstellen", + "Indent more" => "Einzug vergrößern", + "Indent less" => "Einzug verkleinern", + "Autocomplete" => "Auto vervollständigen", + "Comment/Uncomment" => "Kommentieren/Auskommentieren", + "Jump to Definition" => "Springe zur Definition", + "Manual" => "Anleitung", + "Shortcuts" => "Schnellzugriffe", + "Settings" => "Einstellungen", + "Search for selected" => "Nach selektiertem suchen", + "website" => "Website", + "Close all tabs" => "Alle Tabs schließen", + "Alphabetize tabs" => "Tabs alphabetisch sortieren", + "Find" => "Finden", + "in" => "in", + "and" => "und", + "replace" => "ersetzen", + "replace all" => "alle ersetzen", + "this document" => "dieses Dokument", + "open documents" => "geöffnete Dokumente", + "all files" => "Alle Dateien", + "all filenames" => "Alle Dateinamen", + "Turn on/off..." => "Codeassistenten ein- ausschalten", + "Code Assist" => "Codeassistent", + "Go to Line" => "Geh zur Zeile", + "View" => "Anzeigen", + "Bug reporting not active" => "Fehlermeldungen sind nicht aktiv" + ), + +// /LIB + + "bug-files-check" => + array( + "Found in" => "Gefunden in:" + ), + + "file-control" => + array( + "Sorry" => "Entschuldigung", + "does not seem..." => "Es scheint auf dem Server nicht zu existieren", + "Sorry, could not..." => "Entschuldigung, kann den Inhalte von", + "Sorry, cannot create..." => "Entschuldigung, kann den Ordner nicht erstellen in", + "Sorry, cannot copy" => "Entschuldigung, kann nicht kopieren", + "into" => "in", + "Uploaded file(s) OK" => "Hoch geladene Datei(n) OK", + "Sorry, cannot upload" => "Entschuldigung, kann nicht hochladen", + "Sorry, cannot upload..." => "Entschuldigung, kann solange nicht hochladen, solange der Demo Modus aktiv ist", + "Sorry, cannot rename" => "Entschuldigung, kann nicht umbenennen", + "Maybe public write..." => "Vielleicht fehlen Schreibrechte auf dem übergeordneten Ordner?", + "Sorry, cannot move" => "Entschuldigung, kann nicht verschieben", + "Sorry, cannot save" => "Entschuldigung, kann nicht speichern", + "Sorry, cannot replace..." => "Entschuldigung, kann den Text nicht ersetzen", + "Sorry, cannot change..." => "Entschuldigung, kann die Berechtigung nicht ändern für", + "Sorry, cannot delete..." => "Entschuldigung, kann das Hauptverzeichnis nicht löschen", + "Sorry, cannot delete" => "Entschuldigung, kann nicht löschen", + "Sorry, this file..." => "Entschuldigung, die Datei wurde geändert, kann nicht speichern", + "Reload this file..." => "Soll die Datei mit deiner neueren Version neu geladen werden?", + "There was a..." => "Irgend was ist schief gelaufen. ICEcoder lädt einfach noch mal neu.", + "displayed at" => "angezeigt bei", + "Enter filename to..." => "Dateinamen eingeben um es zu speichern", + "That file exists..." => "Die Datei existiert bereits, überschreiben?", + "Saving" => "Speichere" + ), + + "get-branch" => + array( + "There are no..." => "Es gibt keinen Unterschied zwischen der lokalen Datei und dem im GitHub Repo. Zurück zum regulären Modus?", + "Sorry, there was..." => "Entschuldigung, es ist ein Fehler aufgetreten. Fehlercode:", + "Your local folder..." => "Dein lokales Verzeichnis ist leer, soll es geklont werden" + ), + + "github-manager" => + array( + "Sorry, cannot create..." => "Entschuldigung, kann Verzeichnis nicht anlegen", + "Cannot update config..." => "Kannn die Config Datei nicht aktualisieren. Bitte Lese- und Schreibrechte setzen", + "and try again" => "und versuch es noch einmal", + "saving github paths" => "Speichere GitHub Pfad ...", + "github paths" => "GitHub Pfad", + "Choose existing path" => "Wähle existierenden Pfad", + "Local path" => "Lokaler Pfad", + "Remote GitHub path" => "Ferner GitHub Pfad", + "Choose" => "Whähle", + "Set local and..." => "Lösch lokalen und fernen Pfad", + "Update" => "Aktualisieren", + "Add new path" => "Neuen Pfad hinzufügen", + "Add" => "Hinfzufügen", + "Usage Info" => "Infos zur Verwendung:", + "Enter relative local..." => "Gib den relativen, lokalen Pfad (z.B. /server/meineDateien) und absoluten GitHub Pfad (z.B. https://github.com/user/repo oder https://github.com/user/repo/tree/branch für branches), wie im Beispiel an. Dadurch werden die entsprechenden Quellverzeichnisse als Paar angelegt.", + "You can then..." => "Du kannst ein Paar auswählenn, welches als neues Root Verzeichnis in ICECoder festgelegt wird.", + "The file manager..." => "Im Dateimanager erscheint ein GitHub Icon. Durch einen Klick auf das Icon, werden die Unterschiede zwischen beiden Versionen angezeigt. Diese Unterschiede können committed und zum GitHub Repo gepusht, oder zum lokale Pfad geklont werden.", + "If you want..." => "Soll ein weiterers Hauptverzeichnis gesetzt werden, kann dies in den Einstellungen vorgenommen werden." + ), + + "github" => + array( + "Sorry, you do..." => "Es scheint so, als sei OpenSSL nicht mit PHP geladen worden, dadurch steht https nicht zur verfügung. Dies wird jedoch für den Datentransfer zu GitHub benötigt. Bitte die PHP.ini entsprechend anpassen und neu starten." + ), + + "headers" => + array( + "Bad CSRF token..." => "Fehlerhafter CSRF Token. Bitte den Fehler an https://github.com/mattpass/ICEcoder damit das Problem gelöst werden kann." + ), + + "help" => + array( + "shortcuts" => "shortcuts", + "Within document" => "Innerhalb des Dokuments", + "On Tabs" => "Geöffnete Tabs", + "Within file manager" => "Innerhalb des Dateimanagers", + "Anywhere" => "Überall", + "Space" => "Leerzeichen", + "Click" => "Klick", + "or" => "oder", + "Left click" => "Linksklick", + "Middle click" => "mittlerer Klick", + "Double click tap..." => "Doppelklick / Tap (Mobile)", + "Right click" => "Rechtsklick", + "Middle scrollwheel" => "mittleres Mausrad", + "Drag" => "Ziehen", + "Autocomplete add snippet" => "Autocomplete / snippet hinzufügen", + "Multiple select" => "Mehrfachauswahl", + "Move line up" => "Zeile höher", + "Move line down" => "Zeile runter", + "Duplicate lines" => "Zeile(n) duplizieren", + "Remove lines" => "Zeile(n) entfernen", + "Insert line before" => "Zeile vorher einfügen", + "Insert line after" => "Zeile danach einügen, + "Search for selected" => "Nach dem gesuchten auswählen", + "Jump to definition" => "Zur Definition springen / zur¨ck springen", + "Comment uncomment" => "Kommentieren / Auskommentieren", + "Insert tab indent" => "Tab einfügen / Gedankenstrich selektiert", + "Wrap with div" => "Mit <div> umschließen", + "Wrap with span" => "Mit <span> umschließen", + "Wrap unwrap p" => "Umschließen / unwrap with <p>", + "Wrap unwrap a" => "Umschließen / Mit <a> auschließen", + "Wrap unwrap b" => "Umschließen / Mit <b> auschließen", + "Wrap unwrap i" => "Umschließen / Mit <i> auschließen", + "Wrap unwrap strong" => "Umschließen / Mit <strong> auschließen", + "Wrap unwrap em" => "Umschließen / Mit <em> auschließen", + "Wrap unwrap h1..." => "Umschließen / Mit <h1> - <h3> auschließen", + "End line with..." => "Zeile abschließ mit <br>", + "Close tab" => "Tab schließen", + "Select file folder" => "Datei / Verzeichnis ausählen", + "Open file" => "Datei öffnen", + "Range select" => "Bereich auswählen", + "Options for selected" => "Optionen für ausgewählte", + "Delete selected" => "Ausgewählte löschen", + "Next previous tab" => "Nächster / Vorheriger Tab", + "Next tab" => "Nächster Tab", + "Previous tab" => "Vorheriger Tab", + "New tab" => "Neuer Tab", + "Close current tab" => "Aktuellen Tab schließen", + "Open file prompt" => "Datei öffnen Dialog anzeigen", + "Find" => "Finden", + "Focus on Go..." => "Fokus auf Gehe zu Zeile Feld setzen", + "Save" => "Speichern", + "Save as" => "Speichern als ...", + "View webpage" => "Webseite anzeigen", + "Contract expand file..." => "Alle Dateien / Verzeichnisse anzeigen", + "Fold unfold current..." => "Aktuelle Zeile einklappen", + "Refocus on document" => "Erneut den Fokus auf das Dokument setzen", + "Cancel tasks" => "Vorgang abbrechen" + ), + + "login" => + array( + "set password" => "Passwort setzen", + "login" => "Login", + "To disable registration..." => "Um den Registrierungsmodus zu deaktivieren, öffne im Menü die Einstellungen oder die Datein lib/config___settings.php und setze unter enableRegistration auf false, danach lade die Seite erneut.", + "Registration mode enabled" => "Registrierungsmodus aktiviert", + "auto-check for updates" => "Automatisch nach Update suchen", + "To put into..." => "Um den Mehrbenutzermodus zu aktivieren, öffne im Menü die Einstellungen oder die Datein lib/config___settings.php und setze unter multiUser auf true, danach lade die Seite erneut", + "multi-user" => "Mehrbenutzermodus" + ), + + "multiple-results" => + array( + "rename all" => "Alle umbenennen", + "replace all" => "Alle ersetzen + "document" => "Dokument", + "Found" => "Gefunden", + "times" => "", + "replace" => "ersetzen", + "file folder" => "Datei/Verzeichnis", + "rename to" => "Umbenennen nach", + "rename" => "Umbenennen", + "file" => "Datei", + "No matches found" => "Nichts gefunden", + "selected" => "Ausgewählte", + "found in" => "Gefunden in", + "Replaced" => "Ersetzen" + ) + +); +?> From 90a58f03008d87fb886a41147e29a3c56166a0d9 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:21:05 +0100 Subject: [PATCH 04/16] Final English text items --- lang/english.php | 156 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 3 deletions(-) diff --git a/lang/english.php b/lang/english.php index 6a4f489..76fe676 100644 --- a/lang/english.php +++ b/lang/english.php @@ -29,8 +29,7 @@ $text = array( "dev mode" => "dev mode", "Status" => "Status", "Using" => "Using", - "You can switch..." => "You can switch dev mode on/off -in lib/config__settings.php", + "You can switch..." => "You can switch dev mode on/off in lib/config__settings.php", "results" => "results" ), @@ -177,7 +176,7 @@ in lib/config__settings.php", "headers" => array( - "Bad CSRF token..." => "Baddd CSRF token. Please report the error info at https://github.com/mattpass/ICEcoder so it can be fixed." + "Bad CSRF token..." => "Bad CSRF token. Please report the error info at https://github.com/mattpass/ICEcoder so it can be fixed." ), "help" => @@ -241,6 +240,34 @@ in lib/config__settings.php", "Cancel tasks" => "Cancel tasks" ), + "ice-coder" => + array( + "No text selected..." => "No text selected to search on", + "Creating Folder" => "Creating Folder", + "Sorry you can..." => "Sorry, you can only have 100 files open at a time!", + "Opening File" => "Opening File", + "Enter relative file..." => "Enter relative file path (prefixed with /) or remote URL", + "Getting" => "Getting", + "Please enter the..." => "Please enter the new name for", + "Renaming to" => "Renaming to", + "Moving to" => "Moving to", + "Deleting File" => "Deleting File", + "Pasting File" => "Pasting File", + "Sorry cannot paste..." => "Sorry, cannot paste a whole root", + "Nothing to paste..." => "Nothing to paste, copy a file/folder first!", + "Replacing text in" => "Replacing text in", + "Cancelled tasks" => "Cancelled tasks", + "Open previous files" => "Open previous files?", + "Please enter your..." => "Please enter your GitHub token (either personal access token or client/secret pair token). See tooltip next to Github Auth Token on Help > Settings screen for more info", + "This will compare..." => "This will compare and show a diff view between your local dir and the repo. OK?", + "Please note for..." => "Please note: for updating to work properly, you need to have write/delete access on all ICEcoder dirs & files. If you need to recover this version of ICEcoder for any reason, you'll find it in the /tmp dir. Click OK to proceed with an auto-update or cancel to visit the ICEcoder site so you can grab the zip and update manually.", + "You can start..." => "You can start bug reporting in Help > Settings", + "Error cannot find..." => "Error: cannot find/access the error file paths", + "No new errors..." => "No new errors found", + "You have made..." => "You have made changes. Are you sure you want to close without saving?", + "Close all tabs" => "Close all tabs?" + ), + "login" => array( "set password" => "set password", @@ -268,6 +295,129 @@ in lib/config__settings.php", "selected" => "selected", "found in" => "found in", "Replaced" => "Replaced" + ), + + "plugins-manager" => + array( + "ICEcoder needs to..." => "ICEcoder needs to reload to make this plugin usable. Reload now?", + "saving plugins" => "saving plugins...", + "Cannot update config..." => "Cannot update config file. Please set public write permissions on", + "and try again" => "and try again", + "couldnt delete dir" => "could not delete dir", + "couldnt delete file" => "could not delete file", + "plugins" => "plugins", + "Guide to writing..." => "Guide to writing plugins", + "Manage Installed" => "Manage Installed", + "URL" => "URL", + "Target" => "Target", + "Timer" => "Timer", + "Update" => "Update", + "Install" => "Install", + "Uninstall" => "Uninstall", + "Reload after install..." => "Reload after install required" + ), + + "properties" => + array( + "properties" => "properties", + "Size" => "Size", + "Modified" => "Modified", + "Last access" => "Last access", + "Type" => "Type", + "Readable Writeable" => "Readable / Writeable", + "Relative path" => "Relative path", + "Absolute path" => "Absolute path", + "Contains" => "Contains", + "Permissions" => "Permissions", + "Owner" => "Owner", + "Group" => "Group", + "Public" => "Public", + "Read" => "Read", + "Write" => "Write", + "Execute" => "Execute", + "Change to" => "Change to", + "update" => "update" + ), + + "settings-common" => + array( + "Your document does..." => "Your document does not appear to be in UTF-8 encoding so has been converted" + ), + + "settings-save-current-files" => + array( + "Cannot update config..." => "Cannot update config file. Please set public write permissions on", + "and try again" => "and try again" + ), + + "settings-screen" => + array( + "settings" => "settings", + "version" => "version", + "website" => "website", + "git" => "git", + "codemirror dir" => "codemirror dir", + "codemirror version" => "codemirror version", + "file manager root" => "file manager root", + "Free to use..." => "Free to use it for your own purposes, commercial or not, just let me know of any cool uses or customisations. :)

No warranty or liability accepted for anything, all responsibility of use is your own.

A lot of fantastic people and companies have helped build ICEcoder and there is too many to thank here. Please see the full list at", + "functionality" => "functionality", + "check for updates..." => "check for updates on load", + "auto open last..." => "auto open last files on login", + "when finding in..." => "when finding in files, exclude", + "assisting" => "assisting", + "code assist" => "code assist", + "visible tabs" => "visible tabs", + "locked nav" => "locked nav", + "tag wrapper command" => "tag wrapper command", + "auto-complete on" => "auto-complete on", + "security" => "security", + "new password" => "new password", + "8 chars min" => "8 chars min", + "confirm password" => "confirm password", + "banned files/folders" => "banned files/folders", + "banned paths" => "banned paths", + "ip addresses" => "ip addresses", + "Slash prefixed comma..." => "Slash prefixed, comma delimited", + "Comma delimited" => "Comma delimited", + "style" => "style", + "theme" => "theme", + "line wrapping" => "line wrapping", + "indent type" => "indent type", + "indent size" => "indent size", + "font size" => "font size", + "layout" => "layout", + "plugin panel aligned" => "plugin panel aligned", + "file manager" => "file manager", + "root" => "root", + "Slash prefixed" => "Slash prefixed", + "bug reporting" => "bug reporting", + "check in files" => "check in files", + "every" => "every", + "secs getting last" => "secs, getting last", + "lines" => "lines", + "multi-user" => "multi-user", + "Make sure you..." => "Make sure you do not lock yourself out", + "Registration" => "Registration", + "auth token" => "auth token", + "Required to get..." => "Required to get diffs, commit to your GitHub hosted repo etc. If you do not have one, you can use a:".PHP_EOL.PHP_EOL. + "- personal access token (https://help.github.com/articles/creating-an-access-token-for-command-line-use), or".PHP_EOL. + "- full client/secret pair token (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL. + "It is not recommended you set your token here however and is more secure to enter it when requested by ICEcoder as that will keep it in session only.".PHP_EOL.PHP_EOL. + "However, if you work in a trusted and secure environment, it is more efficient to set it here.", + "Sorry cannot commit..." => "Sorry, cannot commit settings in demo mode", + "update" => "update" + ), + + "settings-update" => + array( + "Cannot update config..." => "Cannot update config file. Please set public write permissions on", + "and try again" => "and try again", + "and press refresh" => "and press refresh" + ), + + "updater" => + array( + "Update appears to..." => "Update appears to be successful" ) ); From 115169b16bfaac4f64018534dc7e6493289f6302 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:22:44 +0100 Subject: [PATCH 05/16] alert & console.log the action and $file Commented out, but useful for people to uncomment to see what's happening if path issues etc --- lib/file-control.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/file-control.php b/lib/file-control.php index 5bff096..e6b9d62 100644 --- a/lib/file-control.php +++ b/lib/file-control.php @@ -23,6 +23,8 @@ if (strpos($file,$docRoot)===false && $_GET['action']!="getRemoteFile") {$file=s $fileLoc = substr(str_replace($docRoot,"",$file),0,strrpos(str_replace($docRoot,"",$file),"/")); $fileName = basename($file); +// echo ";alert('".xssClean($_GET['action'],"html")." : ".$file."');console.log('".xssClean($_GET['action'],"html")." : ".$file."');"; + // If we're due to open a file... if ($_GET['action']=="load") { echo 'action="load";'; From f5d19d99d4dcbd47dec42c93d323b37051692858 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:24:30 +0100 Subject: [PATCH 06/16] Get the ice-coder lang array into a JS array So the /lib/ice-coder.js file can make use of it --- index.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/index.php b/index.php index a6ab92f..7b71113 100644 --- a/index.php +++ b/index.php @@ -53,6 +53,21 @@ window.onbeforeunload = function() { } } } + +t = { + $value) { + $tOutput .= '"'.$key.'" : "'.$value.'",'.PHP_EOL; +} +echo rtrim($tOutput,",".PHP_EOL).PHP_EOL; + +// Back to the lang array for index +$t = $text['index']; +?> +} From 195ba788bb82f169fa0f8a9ef8ccbb53b703dec3 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:25:57 +0100 Subject: [PATCH 07/16] JS lang items used and print pre wrap fix --- lib/ice-coder.js | 64 +++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/lib/ice-coder.js b/lib/ice-coder.js index 092b201..04bba70 100644 --- a/lib/ice-coder.js +++ b/lib/ice-coder.js @@ -115,7 +115,7 @@ var ICEcoder = { if (!dontSetEditor) { this.editor.style.width = ICEcoder.content.style.width = (winW-this.filesW) + "px"; ICEcoder.content.style.height = (winH-headerH-tabsBarH-findBarH-26) + "px"; - + // Resize the CodeMirror instances to match the window size setTimeout(function(){ for (var i=0;iCreating Folder
'+newFolder); + top.ICEcoder.serverMessage(''+top.t['Creating Folder']+'
'+newFolder); } }, @@ -724,7 +724,7 @@ var ICEcoder = { canOpenFile = true; // Limit to 100 files open at a time if (top.ICEcoder.openFiles.length>=100) { - top.ICEcoder.message('Sorry, you can only have 100 files open at a time!'); + top.ICEcoder.message(top.t['Sorry you can...']); canOpenFile = false; } @@ -735,7 +735,7 @@ var ICEcoder = { if (shortURL!="/[NEW]") { top.ICEcoder.thisFileFolderLink = top.ICEcoder.thisFileFolderLink.replace(/\//g,"|"); top.ICEcoder.serverQueue("add","lib/file-control.php?action=load&file="+top.ICEcoder.thisFileFolderLink+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Opening File
'+top.ICEcoder.shortURL); + top.ICEcoder.serverMessage(''+top.t['Opening File']+'
'+top.ICEcoder.shortURL); } else { top.ICEcoder.createNewTab(); } @@ -757,7 +757,7 @@ var ICEcoder = { openPrompt: function() { var fileLink; - if(fileLink = top.ICEcoder.getInput('Enter relative file path (prefixed with /) or remote URL','')) { + if(fileLink = top.ICEcoder.getInput(top.t['Enter relative file...'],'')) { fileLink.indexOf("://")>-1 ? top.ICEcoder.getRemoteFile(fileLink) : top.ICEcoder.openFile(fileLink); @@ -767,7 +767,7 @@ var ICEcoder = { // Get remote file contents getRemoteFile: function(remoteFile) { top.ICEcoder.serverQueue("add","lib/file-control.php?action=getRemoteFile&file="+remoteFile+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Getting
'+remoteFile); + top.ICEcoder.serverMessage(''+top.t['Getting']+'
'+remoteFile); }, // Save a file @@ -784,7 +784,7 @@ var ICEcoder = { } filePath = filePath.replace("||","|"); top.ICEcoder.serverQueue("add","lib/file-control.php?action=save&file="+filePath+"&fileMDT="+ICEcoder.openFileMDTs[ICEcoder.selectedTab-1]+"&saveType="+saveType+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Saving
'+ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(top.iceRoot,"")); + top.ICEcoder.serverMessage(''+top.t['Saving']+'
'+ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(top.iceRoot,"")); }, // Prompt a rename dialog @@ -798,7 +798,7 @@ var ICEcoder = { shortURL = oldName.replace(/\|/g,"/"); } if (!newName) { - newName = top.ICEcoder.getInput('Please enter the new name for',shortURL); + newName = top.ICEcoder.getInput(top.t['Please enter the...'],shortURL); } if (newName) { i = top.ICEcoder.openFiles.indexOf(shortURL.replace(/\|/g,"/")); @@ -811,7 +811,7 @@ var ICEcoder = { top.get('tab'+(i+1)).title = newName; } top.ICEcoder.serverQueue("add","lib/file-control.php?action=rename&file="+newName+"&oldFileName="+oldName.replace(/\|/g,"/")+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Renaming to
'+newName); + top.ICEcoder.serverMessage(''+top.t['Renaming to']+'
'+newName); top.ICEcoder.setPreviousFiles(); } @@ -832,7 +832,7 @@ var ICEcoder = { top.get('tab'+(i+1)).title = newName; } top.ICEcoder.serverQueue("add","lib/file-control.php?action=move&file="+newName+"&oldFileName="+oldName.replace(/\|/g,"/")+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Moving to
'+newName); + top.ICEcoder.serverMessage(''+top.t['Moving to']+'
'+newName); top.ICEcoder.setPreviousFiles(); } @@ -846,7 +846,7 @@ var ICEcoder = { tgtListDisplay = tgtFiles.toString().replace(/\|/g,"/").replace(/,/g,"\n"); if (tgtFiles.length>0 && top.ICEcoder.ask('Delete:\n\n'+tgtListDisplay+'?')) { top.ICEcoder.serverQueue("add","lib/file-control.php?action=delete&file="+tgtFiles.join(";")+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Deleting File
'+tgtListDisplay); + top.ICEcoder.serverMessage(''+top.t['Deleting File']+'
'+tgtListDisplay); }; }, @@ -870,13 +870,13 @@ var ICEcoder = { for (var i=0; iPasting File
'+top.ICEcoder.copiedFiles[i].toString().replace(/\|/g,"/").replace(/,/g,"\n")); + top.ICEcoder.serverMessage(''+top.t['Pasting File']+'
'+top.ICEcoder.copiedFiles[i].toString().replace(/\|/g,"/").replace(/,/g,"\n")); } else { - top.ICEcoder.message("Sorry, cannot paste a whole root"); + top.ICEcoder.message(top.t['Sorry cannot paste...']); } } } else { - top.ICEcoder.message("Nothing to paste, copy a file/folder first!"); + top.ICEcoder.message(top.t['Nothing to paste...']); } }, @@ -1029,7 +1029,7 @@ var ICEcoder = { if (locNest.childNodes[i].className) { // Identify if the item we're considering is a file or folder elemType = locNest.childNodes[i].className.indexOf('directory')>0 ? "folder" : "file"; - + // Get the name of the item nameLI = locNest.childNodes[i].getElementsByTagName('span')[0].innerHTML; @@ -1290,7 +1290,7 @@ var ICEcoder = { // Replace text in a file replaceInFile: function(fileRef,find,replace) { top.ICEcoder.serverQueue("add","lib/file-control.php?action=replaceText&fileRef="+fileRef.replace(/\//g,"|")+"&find="+find+"&replace="+replace+"&csrf="+top.ICEcoder.csrf); - top.ICEcoder.serverMessage('Replacing text in
'+fileRef); + top.ICEcoder.serverMessage(''+top.t['Replacing text in']+'
'+fileRef); }, // ============== @@ -1686,7 +1686,7 @@ var ICEcoder = { ICEcoder.serverQueueItems.splice(1,ICEcoder.serverQueueItems.length); } top.ICEcoder.showHide('hide',top.get('loadingMask')); - top.ICEcoder.serverMessage('Cancelled tasks'); + top.ICEcoder.serverMessage(''+top.t['Cancelled tasks']+''); setTimeout(function() {top.ICEcoder.serverMessage();},2000); }, @@ -1702,7 +1702,7 @@ var ICEcoder = { // Opens the last files we had open autoOpenFiles: function() { - if (top.ICEcoder.previousFiles.length>0 && top.ICEcoder.ask('Open previous files?\n\n'+top.ICEcoder.previousFiles.length+' files:\n'+top.ICEcoder.previousFiles.join('\n').replace(/\|/g,"/").replace(new RegExp(top.docRoot+top.iceRoot,'gi'),""))) { + if (top.ICEcoder.previousFiles.length>0 && top.ICEcoder.ask(top.t['Open previous files']+'\n\n'+top.ICEcoder.previousFiles.length+' files:\n'+top.ICEcoder.previousFiles.join('\n').replace(/\|/g,"/").replace(new RegExp(top.docRoot+top.iceRoot,'gi'),""))) { for (var i=0;i Settings screen for more info','')) { + if (githubAuthToken = top.ICEcoder.getInput(top.t['Please enter your...'],'')) { top.ICEcoder.filesFrame.contentWindow.frames['fileControl'].location.href = "lib/github.php?action=auth&token="+githubAuthToken+"&goNext="+goNext+"&csrf="+top.ICEcoder.csrf; // Clear the token from the var for security githubAuthToken = ""; @@ -1774,7 +1774,7 @@ var ICEcoder = { if (!top.ICEcoder.githubAuthTokenSet) { top.ICEcoder.githubTokenAsk('loadFiles'); - } else if (top.ICEcoder.githubDiff || top.ICEcoder.ask("This will compare and show a diff view between your local dir and the repo. OK?")) { + } else if (top.ICEcoder.githubDiff || top.ICEcoder.ask(top.t['This will compare...'])) { top.ICEcoder.githubDiff = !top.ICEcoder.githubDiff; gHDiff = top.ICEcoder.githubDiff ? "true" : "false"; @@ -1953,11 +1953,7 @@ var ICEcoder = { update: function() { var autoUpdate; - autoUpdate = confirm( "Updating is currently an experimental feature. While it should work fine, please note there may be issues here, plus the following isn't yet part of this:\n\n" - +"- Settings not ported to new version\n- Plugins not ported to new version\n- Any mods you've made not ported to new version\n\n" - +"If you have write access on the whole of ICEcoder (ie, running locally) it should work fine. If tho you need to recover ICEcoder for any reason, you'll find this current version in its tmp dir.\n\n" - +"Click OK to proceed with an auto-update or cancel to visit the ICEcoder site so you can grab the zip and update manually" - ); + autoUpdate = confirm(top.t['Please note for...']); if (autoUpdate) { top.ICEcoder.showHide('show',top.get('loadingMask')); window.location = "lib/updater.php"; @@ -1982,13 +1978,13 @@ var ICEcoder = { var bugReportOpenFilePos; if(top.ICEcoder.bugReportStatus=="off") { - top.ICEcoder.message('You can start bug reporting in Help > Settings'); + top.ICEcoder.message(top.t['You can start...']); } if(top.ICEcoder.bugReportStatus=="error") { - top.ICEcoder.message('Error: can\'t find/access the error file paths'); + top.ICEcoder.message(top.t['Error cannot find...']); } if(top.ICEcoder.bugReportStatus=="ok") { - top.ICEcoder.message('No new errors found'); + top.ICEcoder.message(top.t['No new errors...']); } if(top.ICEcoder.bugReportStatus=="bugs") { // Close bug-report without saving previousFiles and without confirming close if we made changes on the bug report @@ -2045,13 +2041,13 @@ var ICEcoder = { } top.ICEcoder.bugFilesSizesActual = statusArray['filesSizesSeen']; top.ICEcoder.bugReportPath = statusArray['bugReportPath']; - + } }; // console.log('Calling '+bugCheckURL+' via XHR'); xhr.open("GET",bugCheckURL,true); xhr.send(); - + },parseInt(top.ICEcoder.bugFileCheckTimer*1000,10)); // State that we're checking for bugs top.ICEcoder.bugReportStatus = "ok"; @@ -2079,7 +2075,7 @@ var ICEcoder = { cM = top.ICEcoder.getcMInstance(); printIFrame = top.ICEcoder.filesFrame.contentWindow.frames['fileControl']; // Print page content injected into iFrame, escaped with pre and xssClean - printIFrame.window.document.body.innerHTML = 'ICEcoder code output
'+top.ICEcoder.xssClean(cM.getValue())+'
'; + printIFrame.window.document.body.innerHTML = 'ICEcoder code output
'+top.ICEcoder.xssClean(cM.getValue())+'
'; printIFrame.focus(); printIFrame.print(); // Focus back on code @@ -2256,7 +2252,7 @@ var ICEcoder = { cM = ICEcoder.getcMInstance(); okToRemove = true; if (!dontAsk && ICEcoder.savedPoints[closeTabNum-1]!=top.ICEcoder.getcMInstance(closeTabNum).changeGeneration()) { - okToRemove = top.ICEcoder.ask('You have made changes.\n\nAre you sure you want to close without saving?'); + okToRemove = top.ICEcoder.ask(top.t['You have made...']); } if (okToRemove) { @@ -2319,7 +2315,7 @@ var ICEcoder = { // Close all tabs closeAllTabs: function() { - if (top.ICEcoder.cMInstances.length>0 && ICEcoder.ask("Close all tabs?")) { + if (top.ICEcoder.cMInstances.length>0 && ICEcoder.ask(top.t['Close all tabs'])) { for (var i=top.ICEcoder.cMInstances.length; i>0; i--) { top.ICEcoder.closeTab(i, i>1? true:false); } From 0d4ca6a483654385112208cfb10b34df1abd4649 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:29:11 +0100 Subject: [PATCH 08/16] Final language replacement placeholders --- lib/plugins-manager.php | 33 +++++----- lib/properties.php | 45 ++++++------- lib/settings-common.php | 8 ++- lib/settings-save-current-files.php | 8 ++- lib/settings-screen.php | 98 +++++++++++++---------------- lib/settings-update.php | 10 ++- lib/updater.php | 3 +- 7 files changed, 106 insertions(+), 99 deletions(-) diff --git a/lib/plugins-manager.php b/lib/plugins-manager.php index b6eda70..ff559be 100644 --- a/lib/plugins-manager.php +++ b/lib/plugins-manager.php @@ -1,6 +1,7 @@ if (top.confirm('ICEcoder needs to reload to make this plugin usable.\\n\\nReload now?')) {top.window.location.reload();} else {window.location='plugins-manager.php?updatedPlugins&csrf='+top.ICEcoder.csrf;}"; + echo ""; } else { header("Location: plugins-manager.php?updatedPlugins&csrf=".$_SESSION["csrf"]); echo ""; } - die("saving plugins..."); + die("".$t['saving plugins'].""); } else { - echo ""; + echo ""; } } @@ -174,11 +175,11 @@ function deletePlugin($dir) { chdir('.'); deletePlugin($dir.$file.'/'); if(is_dir($dir.$file)) { - rmdir($dir.$file) or DIE("couldn't delete dir: $dir$file
"); + rmdir($dir.$file) or DIE("".$t['couldnt delete dir'].": $dir$file
"); } } else - unlink($dir.$file) or DIE("couldn't delete file: $dir$file
"); + unlink($dir.$file) or DIE("".$t['couldnt delete file'].": $dir$file
"); } } closedir($mydir); @@ -197,24 +198,24 @@ function deletePlugin($dir) { -

plugins

+

-','writingPlugins')" style="position: absolute; top: 26px; right: 20px">
Guide to writing plugins
+','writingPlugins')" style="position: absolute; top: 26px; right: 20px">
0) { ?>
-

Manage Installed


+


- - - + + + '; echo ''; - echo ''; + echo ''; echo ''; ?>
URLTargetTimer
Update
'.$t['Update'].'
@@ -240,7 +241,7 @@ function deletePlugin($dir) { ?>
-

Install / Uninstall


+


'.PHP_EOL; } - $installUninstallButton = '
Install
'; + $installUninstallButton = '
'.$t['Install'].'
'; for ($j=0; $jUninstall'; + $installUninstallButton = '
'.$t['Uninstall'].'
'; } } - $reloadExtra = $pluginsData[$i]['reload'] == 'true' ? '
Reload after install required' : ''; + $reloadExtra = $pluginsData[$i]['reload'] == 'true' ? '
'.$t['Reload after install...'].'' : ''; echo '
'; echo ''; $styleExtra = ($i % 2 == 1 || $i == count($pluginsData)-1) ? "0" : "30px"; diff --git a/lib/properties.php b/lib/properties.php index c55858a..0994352 100644 --- a/lib/properties.php +++ b/lib/properties.php @@ -1,6 +1,7 @@ @@ -14,13 +15,13 @@ include("settings.php"); -

properties

+


-Size: : = 1024) { } echo number_format($outputSize, 2, '.', '').$outputUnit." (".number_format($bytes)." bytes)"; ?> -Modified: -Last access: +: +:

-Type: -Readable / Writeable: +: +: / -Relative path: +:

-Absolute path:
+:
-Contains:
:



-Permissions: +:
'.$pluginsData[$i]['name'].''.$pluginsData[$i]['name'].$reloadExtra.'
- + - - - + + + - - - + + + - - - + + +
OwnerGroupPublic
onClick="changePerms();showButton()"> Read onClick="changePerms();showButton()"> Read onClick="changePerms();showButton()"> Read onClick="changePerms();showButton()"> onClick="changePerms();showButton()"> onClick="changePerms();showButton()">
onClick="changePerms();showButton()"> Write onClick="changePerms();showButton()"> Write onClick="changePerms();showButton()"> Write onClick="changePerms();showButton()"> onClick="changePerms();showButton()"> onClick="changePerms();showButton()">
onClick="changePerms();showButton()"> Execute onClick="changePerms();showButton()"> Execute onClick="changePerms();showButton()"> Execute onClick="changePerms();showButton()"> onClick="changePerms();showButton()"> onClick="changePerms();showButton()">
-Change to:
+:
">
-
update
+
"; + echo ""; } // Update our last10Files var? @@ -46,7 +50,7 @@ if ($_SESSION['loggedIn'] && isset($_GET["saveFiles"]) && $_GET['saveFiles']) { fwrite($fh, $settingsContents); fclose($fh); } else { - echo ""; + echo ""; } } } diff --git a/lib/settings-screen.php b/lib/settings-screen.php index 7af9921..f08908f 100644 --- a/lib/settings-screen.php +++ b/lib/settings-screen.php @@ -1,6 +1,7 @@ @@ -41,88 +42,86 @@ for ($i=0;$i -

settings

+

- version:
+ :
v

- website:
+ :
https://icecoder.net

- git:
+ :
https://github.com/mattpass/ICEcoder

- codemirror dir:
+ :


- codemirror version:
+ :


- file manager root:
+ :


-

ICEcoder by Matt Pass (@mattpass)

- Free to use it for your own purposes, commercial or not, just let me know of any cool uses or customisations. :)

- No warranty or liability accepted for anything, all responsibility of use is your own.

- A lot of fantastic people and companies have helped build ICEcoder and there's too many to thank here. Please see the full list at https://icecoder.net +
ICEcoder on Twitter (@icecoder)

+ https://icecoder.net

-

functionality

-> check for updates on load
-> auto open last files on login
+

+>
+>

-when finding in files, exclude:
+:
">

-

assisting

-> code assist
-> visible tabs
-> locked nav

-tag wrapper command
+

+>
+>
+>

+


-auto-complete on
+


-

security

-new password [?]
+

+ [?]

-confirm password
+


-banned files/folders
+
">
-banned paths [?]
+ [?]
">
-ip addresses [?]
+ [?]
">
-

style

-theme
+

+
@@ -142,7 +141,7 @@ for ($i=0;$i - indent type
+
">
- font size
+
">


@@ -178,8 +177,8 @@ function findSequence(goal) {
-

layout

- plugin panel aligned
+

+
">


-

bug reporting

- check in files [?]
+

+ [?]
"> - every + "> - secs, getting last + "> - lines +

-

multi-user [?]

+

[?]

>Multi-User Registration '; + echo ' onclick="showButton()" id="enableRegistration"> '.$t['Registration'].' '; ?>

github

- auth token [?]
+ [?]
">
diff --git a/lib/settings-update.php b/lib/settings-update.php index 518c9a1..4624038 100644 --- a/lib/settings-update.php +++ b/lib/settings-update.php @@ -1,4 +1,8 @@ top.ICEcoder.message('Cannot update config file. Please set public write permissions on lib/".$settingsFile." and try again');"; + echo ""; } // OK, now the config file has been updated, update our current session with new arrays @@ -73,8 +77,8 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset $isEnableRegistration = $_POST['enableRegistration'] ? "true" : "false"; $generalSettingsContents = str_replace('"enableRegistration" => true','"enableRegistration" => '.$isEnableRegistration,$generalSettingsContents); $generalSettingsContents = str_replace('"enableRegistration" => false','"enableRegistration" => '.$isEnableRegistration,$generalSettingsContents); - - $fConfigSettings = fopen($configSettings, 'w') or die("Can't update config file. Please set public write permissions on ".$configSettings." and press refresh"); + + $fConfigSettings = fopen($configSettings, 'w') or die($t['Cannot update config']." ".$configSettings." ".$t['and press refresh']); fwrite($fConfigSettings, $generalSettingsContents); fclose($fConfigSettings); diff --git a/lib/updater.php b/lib/updater.php index 11019f8..375cc81 100644 --- a/lib/updater.php +++ b/lib/updater.php @@ -1,6 +1,7 @@ @@ -192,7 +193,7 @@ startUpdate(); if ($updateDone) { echo 'Updated successfully!

'; echo 'Restarting ICEcoder...'; - echo ''; + echo ''; } else { echo 'Something appears to have gone wrong :-/

'; echo 'Please report bugs at https://github.com/mattpass/ICEcoder

'; From f96651b9e8a8837109b94e38e9ef1f15eb5e58d1 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:30:43 +0100 Subject: [PATCH 09/16] Load English first, then merge lang ontop It's English ontop of English for now, but 2nd include can be changed in the code here and soon to be set via the UI. --- lib/settings.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/settings.php b/lib/settings.php index de03dbb..3d7e808 100644 --- a/lib/settings.php +++ b/lib/settings.php @@ -40,7 +40,12 @@ If ($ICEcoderUserSettings["versionNo"] != $ICEcoderSettings["versionNo"]) { $ICEcoder = $ICEcoderSettings + $ICEcoderUserSettings; // Include language file +// Load English first as foundation include(dirname(__FILE__)."/../lang/english.php"); +$englishText = $text; +// Load chosen language ontop to replace English +include(dirname(__FILE__)."/../lang/english.php"); +$text = array_merge($englishText, $text); $_SESSION['text'] = $text; // Login not required or we're in demo mode and have password set in our settings, log us straight in From 34074e5e6450641b3592cbdfb24a685e3d383b4c Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 14:44:12 +0100 Subject: [PATCH 10/16] Dutch language initial commit --- lang/dutch.php | 155 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 lang/dutch.php diff --git a/lang/dutch.php b/lang/dutch.php new file mode 100644 index 0000000..2fdb3f0 --- /dev/null +++ b/lang/dutch.php @@ -0,0 +1,155 @@ + and HTML equivalents (eg &). Translations on right side. +// Special chars: http://www.ascii.cl/htmlcodes.htm + +$text = array( + +// / [ROOT LEVEL] + + "editor" => + array( + "Click icons for..." => "Klik op de icoontjes
voor hulp &
gebruiks info
", + "server" => "server", + "Server name, OS..." => "Server naam, besturingssysteem & IP:", + "Root" => "Root:", + "ICEcoder root" => "ICEcoder root:", + "PHP version" => "PHP versie:", + "Date & time" => "Datum & tijd:", + "your device" => "Uw apparaat", + "Browser" => "Browser:", + "Your IP" => "Uw IP:", + "files" => "bestanden", + "Last 10 files..." => "Laatste 10 geopende bestanden:", + "none" => "[none]", + "test suite" => "test suite", + "Run unit tests" => "Voer unit tests uit", + "dev mode" => "Ontwikkelaars modus", + "Status" => "Status", + "Using" => "Gebruikt", + "You can switch..." => "U kunt de ontwikkelaars modus aan/uit zetten +in lib/config__settings.php", + "results" => "resultaten" + + ), + + "files" => + array( + "Lock" => "Vergrendelen", + "Refresh" => "Vernieuwen", + "ROOT" => "[ROOT]" + + ), + + "index" => + array( + "UPDATE INFO" => "UPDATE INFO", + "now available" => "nu beschikbaar", + "Your version is" => "Uw versie is", + "Update now" => "Nu updaten", + "You have some..." => "Er zijn wijzigingen die niet opgeslagen zijn", + "working" => "bezig", + "Color picker" => "Kleuren kiezer", + "New File" => "Nieuw bestand", + "New Folder" => "Nieuwe map", + "Upload File(s)" => "Upload bestand(en)", + "Paste" => "Plakken", + "Open" => "Open", + "Copy" => "Kopiëren", + "Duplicate" => "Dupliceren", + "Delete" => "Verwijderen", + "Rename" => "Hernoemen", + "View Webpage" => "Bekijk webpagina", + "Download" => "Download", + "Properties" => "Eigenschappen", + "File" => "Bestand", + "Edit" => "Bewerken", + "Remote" => "Remote", + "Help" => "Help", + "Save" => "Opslaan", + "Save As" => "Opslaan als", + "Live Preview" => "Voorbeeld", + "Upload" => "Upload", + "Zip" => "Zip", + "Print" => "Print", + "Fullscreen toggle" => "Schakelen volledig scherm", + "Logout" => "Uitloggen", + "Undo" => "Ongedaan maken", + "Redo" => "Opnieuw", + "Indent more" => "Rechts inspringen", + "Indent less" => "Links verspringen", + "Autocomplete" => "Autocomplete", + "Comment/Uncomment" => "Commentaar maken", + "Jump to Definition" => "Spring naar definitie", + "Manual" => "Manual", + "Shortcuts" => "Snelkoppeling", + "Settings" => "Opties", + "Search for selected" => "Zoek naar geselecteerd", + "website" => "website", + "Close all tabs" => "Sluit alle tabbladen", + "Alphabetize tabs" => "Sorteer tabbladen", + "Find" => "Zoek", + "in" => "in", + "and" => "en", + "replace" => "vervangen", + "replace all" => "alles vervangen", + "this document" => "dit document", + "open documents" => "open documenten", + "all files" => "alle bestanden", + "all filenames" => "alle bestandsnamen", + "Turn on/off..." => "Schakel code assistent aan/uit", + "Code Assist" => "Code assistent", + "Go to Line" => "Ga naar regel", + "View" => "Beeld", + "Bug reporting not active" => "Bug rapportage niet actief" + ), + +// /LIB + + "bug-files-check" => + array( + "Found in" => "Gevonden in:" + ), + + "file-control" => + array( + "Sorry" => "Sorry", + "does not seem..." => "bestaat niet op de server", + "Sorry, could not..." => "Sorry, kan geen gegevens ophalen van", + "Sorry, cannot create..." => "Sorry, kan geen map aanmaken op", + "Sorry, cannot copy" => "Sorry, kan niet het volgende niet kopiëren", + "into" => "naar", + "Uploaded file(s) OK" => "Geüploade bestand(en)", + "Sorry, cannot upload" => "Sorry, kan niet uploaden", + "Sorry, cannot upload..." => "Sorry, kan niet uploaden in de demo modus", + "Sorry, cannot rename" => "Sorry, kan niet hernoemen", + "Maybe public write..." => "Misschien zijn er publieke schrijfrechten nodig voor deze, of de bovenliggende map?", + "Sorry, cannot move" => "Sorry, kan niet worden verplaatst", + "Sorry, cannot save" => "Sorry, kan niet opslaan", + "Sorry, cannot replace..." => "Sorry, Kan geen tekst vervangen in", + "Sorry, cannot change..." => "Sorry, kan de rechten niet wijzigen voor", + "Sorry, cannot delete..." => "Sorry, kan de root level niet verwijderen", + "Sorry, cannot delete" => "Sorry, kan niet verwijderd worden", + "Sorry, this file..." => "Sorry, het bestand is gewijzigd, maar kan niet worden opgeslagen", + "Reload this file..." => "Vernieuw dit bestand en kopieer de huidige versie naar een nieuw bestand?", + "There was a..." => "Er was een technisch probleem, mogelijk was er iets niet gereed. ICEcodeer heeft bestandsbeheer opnieuw geladen.", + "displayed at" => "weergegeven op", + "Enter filename to..." => "Voer een bestandsnaam in om het op te slaan op", + "That file exists..." => "Dit bestand bestaat al, overschrijven?", + "Saving" => "Opslaan" + ), + + "login" => + array( + "set password" => "sla wachtwoord op", + "login" => "login", + "To disable registration..." => "Om de registratie modus uit te zetten, open het menu opties of open lib/config___settings.php en wijzig enableRegistration naar false", + "Registration mode enabled" => "Registratie modus aan", + "auto-check for updates" => "automatisch controleren op updates", + "To put into..." => "Om de multi-user modus te gebruiken, open het menu opties of open lib/config___settings.php en verander multiUser naar true", + "multi-user" => "multi-user" + ) +); +?> From f4894fa83833d3607d1da065974ec3a43a7c198b Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Thu, 21 Aug 2014 15:31:33 +0100 Subject: [PATCH 11/16] LI shortcut added CTRL+Alt+8 shortcut for
  • Remove old, unused h4-h6 shortcuts from array Help screen is a little higher to allow for the new shortcut Minified JS file brought up to date --- lang/english.php | 1 + lib/help.php | 1 + lib/ice-coder.js | 5 +- lib/ice-coder.min.js | 166 +++++++++++++++++++++---------------------- 4 files changed, 88 insertions(+), 85 deletions(-) diff --git a/lang/english.php b/lang/english.php index 76fe676..582d4bb 100644 --- a/lang/english.php +++ b/lang/english.php @@ -215,6 +215,7 @@ $text = array( "Wrap unwrap i" => "Wrap / unwrap with <i>", "Wrap unwrap strong" => "Wrap / unwrap with <strong>", "Wrap unwrap em" => "Wrap / unwrap with <em>", + "Wrap unwrap li" => "Wrap / unwrap with <li>", "Wrap unwrap h1..." => "Wrap / unwrap with <h1> - <h3>", "End line with..." => "End line with <br>", "Close tab" => "Close tab", diff --git a/lib/help.php b/lib/help.php index 0818724..fc60c37 100644 --- a/lib/help.php +++ b/lib/help.php @@ -41,6 +41,7 @@ $t = $text['help']; + Alt + i
    + Alt + g
    + Alt + e
    + + Alt + 8
    + Alt + 1, 2 3
    + Alt + Enter

    diff --git a/lib/ice-coder.js b/lib/ice-coder.js index 04bba70..a307aff 100644 --- a/lib/ice-coder.js +++ b/lib/ice-coder.js @@ -405,7 +405,7 @@ var ICEcoder = { cM.indentLine(endLine+2,'subtract'); }); } else { - if ( ['p','a','b','i','strong','em','h1','h2','h3','h4','h5','h6'].indexOf(tag)>-1 && + if ( ['p','a','b','i','strong','em','h1','h2','h3','li'].indexOf(tag)>-1 && cM.getSelection().substr(0,tag.length+1) == "<"+tagStart && cM.getSelection().substr(-(tag.length+3)) == "") { // Undo wrapper @@ -1721,7 +1721,7 @@ var ICEcoder = { // Show the help screen helpScreen: function() { - top.get('mediaContainer').innerHTML = ''; + top.get('mediaContainer').innerHTML = ''; top.ICEcoder.showHide('show',top.get('blackMask')); }, @@ -2555,6 +2555,7 @@ var ICEcoder = { else if (key==49) {top.ICEcoder.tagWrapper('h1'); return false;} else if (key==50) {top.ICEcoder.tagWrapper('h2'); return false;} else if (key==51) {top.ICEcoder.tagWrapper('h3'); return false;} + else if (key==56) {top.ICEcoder.tagWrapper('li'); return false;} else if (key==13) {top.ICEcoder.addLineBreakAtEnd(); return false;} else {return key;} // Alt+Enter (Insert Line After) diff --git a/lib/ice-coder.min.js b/lib/ice-coder.min.js index 57f3d40..aa7e0c8 100644 --- a/lib/ice-coder.min.js +++ b/lib/ice-coder.min.js @@ -1,42 +1,42 @@ var get=function(a){return top.document.getElementById(a)},ICEcoder={filesW:250,minFilesW:14,maxFilesW:250,selectedTab:0,savedPoints:[],canSwitchTabs:!0,openFiles:[],openFileMDTs:[],cMInstances:[],nextcMInstance:1,selectedFiles:[],findMode:!1,lockedNav:!0,htmlTagArray:[],mouseDown:!1,draggingFilesW:!1,draggingTab:!1,draggingWithKey:!1,tabLeftPos:[],tabBGcurrent:"#141414",tabBGselected:"#49d",tabBGopen:"#c3c3c3",tabBGnormal:"transparent",tabFGcurrent:"#fff",tabFGselected:"#fff",tabFGopenFile:"#000", -tabFGnormalFile:"#eee",tabFGnormalTab:"#888",serverQueueItems:[],previewWindow:!1,pluginIntervalRefs:[],overPopup:!1,cmdKey:!1,fmReady:!1,bugReportStatus:"off",bugReportPath:"",bugFilesSizesSeen:[],bugFilesSizesActual:[],githubDiff:!1,ready:!1,initAliases:function(){for(var a="header files fileOptions optionsFile optionsEdit optionsRemote optionsHelp filesFrame editor tabsBar findBar content footer nestValid nestDisplay charDisplay byteDisplay".split(" "),b=0;bICEcoder.minFilesW+1?ICEcoder.filesW-=Math.ceil((ICEcoder.filesW-ICEcoder.minFilesW)/2):ICEcoder.filesW=ICEcoder.minFilesW;("expand"==a&&ICEcoder.filesW==ICEcoder.maxFilesW||"contract"==a&&ICEcoder.filesW==ICEcoder.minFilesW)&&clearInterval(ICEcoder.changeFilesInt);ICEcoder.setLayout()},canResizeFilesW:function(){top.ICEcoder.ready&&"w-resize"==top.document.body.style.cursor?top.ICEcoder.mouseDown&& -(top.ICEcoder.filesW=top.ICEcoder.maxFilesW=250<=top.ICEcoder.mouseX&&400>=top.ICEcoder.mouseX?top.ICEcoder.mouseX:250>top.ICEcoder.mouseX?250:400,top.ICEcoder.files.style.width=top.ICEcoder.filesFrame.style.width=top.ICEcoder.filesW+"px",top.ICEcoder.setLayout(),top.ICEcoder.draggingFilesW=!0):top.ICEcoder.draggingFilesW=!1},lockUnlockNav:function(){var a;a=top.filesFrame.contentWindow.document.getElementById("fmLock");ICEcoder.lockedNav=!ICEcoder.lockedNav;a.style.backgroundPosition=ICEcoder.lockedNav? -"0 0":"-16px 0"},showHidePlugins:function(a){get("plugins").style.width="show"==a?"55px":"3px";get("plugins").style.background="show"==a?"#333":"transparent";"show"==a&&ICEcoder.changeFilesW("expand")},contentCleanUp:function(){var a,b;a=ICEcoder.getcMInstance();b=a.getValue();b=b.replace(//g,"");a.setValue(b);a.clearHistory();top.ICEcoder.savedPoints[top.ICEcoder.selectedTab-1]=a.changeGeneration()},undo:function(){ICEcoder.getcMInstance().undo()},redo:function(){ICEcoder.getcMInstance().redo()}, -indent:function(a){var b;b=ICEcoder.getcMInstance();"more"==a?top.ICEcoder.content.contentWindow.CodeMirror.commands.indentMore(b):top.ICEcoder.content.contentWindow.CodeMirror.commands.indentLess(b)},moveLines:function(a){var b,c,d,e,f;b=top.ICEcoder.getcMInstance();c=b.getCursor("start");d=b.getCursor("end");"up"==a&&0=c.line;e--)b.replaceRange(b.getLine(e),{line:e+1,ch:0},{line:e+1,ch:1E6});b.replaceRange(f,{line:"up"==a?d.line:c.line,ch:0},{line:"up"==a?d.line:c.line,ch:1E6});b.setSelection({line:c.line+("up"==a?-1:1),ch:c.ch},{line:d.line+("up"==a?-1:1),ch:d.ch})}))},highlightLine:function(a){var b;b=top.ICEcoder.getcMInstance();b.setSelection({line:a,ch:0},{line:a,ch:b.lineInfo(a).text.length})},focus:function(){var a;/iPhone|iPad|iPod/i.test(navigator.userAgent)|| -(a=top.ICEcoder.getcMInstance())&&a.focus()},goToLine:function(a){ICEcoder.getcMInstance().setCursor(a?a-1:top.get("goToLineNo").value-1);top.ICEcoder.focus();return!1},lineCommentToggle:function(){var a,b,c,d;a=ICEcoder.getcMInstance();b=a.getCursor().ch;c=a.getCursor().line;d=a.getLine(c);ICEcoder.lineCommentToggleSub(a,b,c,d,d.length,2)},highlightBlock:function(a,b){var c,d,e,f;c=top.ICEcoder.getcMInstance();if(b)top.ICEcoder.dontUpdateNest?c.setCursor(top.ICEcoder.cursorOrigLine,top.ICEcoder.cursorOrigCh): -top.ICEcoder.getNestLocation("updateNestDisplay"),top.ICEcoder.dontUpdateNest=!1;else{top.ICEcoder.cursorOrigCh=c.getCursor().ch;top.ICEcoder.cursorOrigLine=c.getCursor().line;top.ICEcoder.dontUpdateNest=!0;d={};d.ch=c.getCursor().ch;d.line=c.getCursor().line;for(var g=top.ICEcoder.htmlTagArray.length-1;g>=a;g--)e=c.getSearchCursor("<"+top.ICEcoder.htmlTagArray[g],d),e.findPrevious(),d.ch=e.from().ch,d.line=e.from().line,g==a&&(f=c.getSearchCursor(">",d),f.findNext(),c.setCursor(f.from().line,f.from().ch+ -1),top.ICEcoder.getNestLocation(),ICEcoder.htmlTagArray.length-1!=a&&g++);e.from()&&(d={},top.ICEcoder.startPosLine=d.line=e.from().line,top.ICEcoder.startPosCh=d.ch=e.from().ch,e={},e.line=top.ICEcoder.content.contentWindow.CodeMirror.fold.xml(c,d)||d.line,e.line=e.line.to?e.line.to.line:e.line,e.ch=c.getLine(e.line).indexOf("")+top.ICEcoder.htmlTagArray[a].length+3,top.ICEcoder.dontSelect?top.ICEcoder.dontSelect=!1:c.setSelection(d,e),c.scrollIntoView(d))}},setPosition:function(a, -b,c){var d;d=ICEcoder.getcMInstance();c=d.getLine(b).indexOf(">",d.getLine(b).indexOf("<"+c))+1;d.setCursor(b,c);top.ICEcoder.focus();for(d=b=0;d<=a;d++)b=ICEcoder.nestDisplay.innerHTML.indexOf(">",b+1);ICEcoder.nestDisplay.innerHTML=ICEcoder.nestDisplay.innerHTML.substr(0,b).replace(/<(?:.|\n)*?>/gm,"");top.ICEcoder.dontUpdateNest=!1;top.ICEcoder.dontSelect=!0},tagWrapper:function(a){var b,c,d,e;b=ICEcoder.getcMInstance();c=a;"div"==a?(d=b.getCursor("start").line,e=b.getCursor().line,b.operation(function(){b.replaceSelection("
    \n"+ -b.getSelection()+"\n
    ","around");for(var a=d+1;a<=e+1;a++)b.indentLine(a);b.indentLine(e+2,"prev");b.indentLine(e+2,"subtract")})):-1<"p a b i strong em h1 h2 h3 h4 h5 h6".split(" ").indexOf(a)&&b.getSelection().substr(0,a.length+1)=="<"+c&&b.getSelection().substr(-(a.length+3))==""?b.replaceSelection(b.getSelection().substr(b.getSelection().indexOf(">")+1,b.getSelection().length-b.getSelection().indexOf(">")-1-a.length-3),"around"):("a"==a&&(c='a href=""'),b.replaceSelection("<"+c+">"+ -b.getSelection()+"","around"),"a"==a&&b.setCursor({line:b.getCursor("start").line,ch:b.getCursor("start").ch+9}))},addLineBreakAtEnd:function(a){var b;b=ICEcoder.getcMInstance();a||(a=b.getCursor().line);b.replaceRange(b.getLine(a)+"
    ",{line:a,ch:0},{line:a,ch:1E6})},insertLineBefore:function(a){var b;b=ICEcoder.getcMInstance();a||(a=b.getCursor().line);b.operation(function(){b.replaceRange("\n"+b.getLine(a),{line:a,ch:0},{line:a,ch:1E6});b.setCursor({line:b.getCursor().line-1,ch:0});b.execCommand("indentAuto")})}, -insertLineAfter:function(a){var b;b=ICEcoder.getcMInstance();a||(a=b.getCursor().line);b.operation(function(){b.replaceRange(b.getLine(a)+"\n",{line:a,ch:0},{line:a,ch:1E6});b.execCommand("indentAuto")})},duplicateLines:function(a){var b,c,d;b=ICEcoder.getcMInstance();!a&&b.somethingSelected()?(c=b.getCursor("start"),d=b.getCursor("end"),a=c.line!=d.line&&d.ch==b.getLine(d.line).length?"\n":"",b.replaceSelection(b.getSelection()+a+b.getSelection(),"end"),b.setSelection(c,d)):(a||(a=b.getCursor().line), -c=b.getCursor().ch,b.replaceRange(b.getLine(a)+"\n"+b.getLine(a),{line:a,ch:0},{line:a,ch:1E6}),b.setCursor(a+1,c))},removeLines:function(a){var b,c;b=ICEcoder.getcMInstance();!a&&b.somethingSelected()?b.replaceSelection("","end"):(a||(a=b.getCursor().line),c=b.getCursor().ch,b.execCommand("deleteLine"),b.setCursor(a-1,c))},jumpToDefinition:function(){var a,b;a=ICEcoder.getcMInstance();b=a.getTokenAt(a.getCursor()).string;if(a.somethingSelected()&&top.ICEcoder.origCurorPos)a.setCursor(top.ICEcoder.origCurorPos); -else for(top.ICEcoder.origCurorPos=a.getCursor(),a=["var "+b,"function "+b,b+"=function",b+"= function",b+" =function",b+" = function",b+"=new function",b+"= new function",b+" =new function",b+" = new function","window['"+b+"']",'window["'+b+'"]',"this['"+b+"']",'this["'+b+'"]',b+":",b+" :","def "+b,"class "+b],b=0;bICEcoder.minFilesW+1?ICEcoder.filesW-=Math.ceil((ICEcoder.filesW-ICEcoder.minFilesW)/2):ICEcoder.filesW=ICEcoder.minFilesW;("expand"==a&&ICEcoder.filesW==ICEcoder.maxFilesW||"contract"==a&&ICEcoder.filesW==ICEcoder.minFilesW)&&clearInterval(ICEcoder.changeFilesInt);ICEcoder.setLayout()},canResizeFilesW:function(){top.ICEcoder.ready&&"w-resize"== +top.document.body.style.cursor?top.ICEcoder.mouseDown&&(top.ICEcoder.filesW=top.ICEcoder.maxFilesW=250<=top.ICEcoder.mouseX&&400>=top.ICEcoder.mouseX?top.ICEcoder.mouseX:250>top.ICEcoder.mouseX?250:400,top.ICEcoder.files.style.width=top.ICEcoder.filesFrame.style.width=top.ICEcoder.filesW+"px",top.ICEcoder.setLayout(),top.ICEcoder.draggingFilesW=!0):top.ICEcoder.draggingFilesW=!1},lockUnlockNav:function(){var a;a=top.filesFrame.contentWindow.document.getElementById("fmLock");ICEcoder.lockedNav=!ICEcoder.lockedNav; +a.style.backgroundPosition=ICEcoder.lockedNav?"0 0":"-16px 0"},showHidePlugins:function(a){get("plugins").style.width="show"==a?"55px":"3px";get("plugins").style.background="show"==a?"#333":"transparent";"show"==a&&ICEcoder.changeFilesW("expand")},contentCleanUp:function(){var a,b;a=ICEcoder.getcMInstance();b=a.getValue();b=b.replace(//g,"");a.setValue(b);a.clearHistory();top.ICEcoder.savedPoints[top.ICEcoder.selectedTab-1]=a.changeGeneration()},undo:function(){ICEcoder.getcMInstance().undo()}, +redo:function(){ICEcoder.getcMInstance().redo()},indent:function(a){var b;b=ICEcoder.getcMInstance();"more"==a?top.ICEcoder.content.contentWindow.CodeMirror.commands.indentMore(b):top.ICEcoder.content.contentWindow.CodeMirror.commands.indentLess(b)},moveLines:function(a){var b,c,d,e,f;b=top.ICEcoder.getcMInstance();c=b.getCursor("start");d=b.getCursor("end");"up"==a&&0=c.line;e--)b.replaceRange(b.getLine(e),{line:e+1,ch:0},{line:e+1,ch:1E6});b.replaceRange(f,{line:"up"==a?d.line:c.line,ch:0},{line:"up"==a?d.line:c.line,ch:1E6});b.setSelection({line:c.line+("up"==a?-1:1),ch:c.ch},{line:d.line+("up"==a?-1:1),ch:d.ch})}))},highlightLine:function(a){var b;b=top.ICEcoder.getcMInstance();b.setSelection({line:a,ch:0},{line:a,ch:b.lineInfo(a).text.length})},focus:function(){var a; +/iPhone|iPad|iPod/i.test(navigator.userAgent)||(a=top.ICEcoder.getcMInstance())&&a.focus()},goToLine:function(a){ICEcoder.getcMInstance().setCursor(a?a-1:top.get("goToLineNo").value-1);top.ICEcoder.focus();return!1},lineCommentToggle:function(){var a,b,c,d;a=ICEcoder.getcMInstance();b=a.getCursor().ch;c=a.getCursor().line;d=a.getLine(c);ICEcoder.lineCommentToggleSub(a,b,c,d,d.length,2)},highlightBlock:function(a,b){var c,d,e,f;c=top.ICEcoder.getcMInstance();if(b)top.ICEcoder.dontUpdateNest?c.setCursor(top.ICEcoder.cursorOrigLine, +top.ICEcoder.cursorOrigCh):top.ICEcoder.getNestLocation("updateNestDisplay"),top.ICEcoder.dontUpdateNest=!1;else{top.ICEcoder.cursorOrigCh=c.getCursor().ch;top.ICEcoder.cursorOrigLine=c.getCursor().line;top.ICEcoder.dontUpdateNest=!0;d={};d.ch=c.getCursor().ch;d.line=c.getCursor().line;for(var g=top.ICEcoder.htmlTagArray.length-1;g>=a;g--)e=c.getSearchCursor("<"+top.ICEcoder.htmlTagArray[g],d),e.findPrevious(),d.ch=e.from().ch,d.line=e.from().line,g==a&&(f=c.getSearchCursor(">",d),f.findNext(),c.setCursor(f.from().line, +f.from().ch+1),top.ICEcoder.getNestLocation(),ICEcoder.htmlTagArray.length-1!=a&&g++);e.from()&&(d={},top.ICEcoder.startPosLine=d.line=e.from().line,top.ICEcoder.startPosCh=d.ch=e.from().ch,e={},e.line=top.ICEcoder.content.contentWindow.CodeMirror.fold.xml(c,d)||d.line,e.line=e.line.to?e.line.to.line:e.line,e.ch=c.getLine(e.line).indexOf("")+top.ICEcoder.htmlTagArray[a].length+3,top.ICEcoder.dontSelect?top.ICEcoder.dontSelect=!1:c.setSelection(d,e),c.scrollIntoView(d))}}, +setPosition:function(a,b,c){var d;d=ICEcoder.getcMInstance();c=d.getLine(b).indexOf(">",d.getLine(b).indexOf("<"+c))+1;d.setCursor(b,c);top.ICEcoder.focus();for(d=b=0;d<=a;d++)b=ICEcoder.nestDisplay.innerHTML.indexOf(">",b+1);ICEcoder.nestDisplay.innerHTML=ICEcoder.nestDisplay.innerHTML.substr(0,b).replace(/<(?:.|\n)*?>/gm,"");top.ICEcoder.dontUpdateNest=!1;top.ICEcoder.dontSelect=!0},tagWrapper:function(a){var b,c,d,e;b=ICEcoder.getcMInstance();c=a;"div"==a?(d=b.getCursor("start").line,e=b.getCursor().line, +b.operation(function(){b.replaceSelection("
    \n"+b.getSelection()+"\n
    ","around");for(var a=d+1;a<=e+1;a++)b.indentLine(a);b.indentLine(e+2,"prev");b.indentLine(e+2,"subtract")})):-1<"p a b i strong em h1 h2 h3 li".split(" ").indexOf(a)&&b.getSelection().substr(0,a.length+1)=="<"+c&&b.getSelection().substr(-(a.length+3))==""?b.replaceSelection(b.getSelection().substr(b.getSelection().indexOf(">")+1,b.getSelection().length-b.getSelection().indexOf(">")-1-a.length-3),"around"):("a"== +a&&(c='a href=""'),b.replaceSelection("<"+c+">"+b.getSelection()+"","around"),"a"==a&&b.setCursor({line:b.getCursor("start").line,ch:b.getCursor("start").ch+9}))},addLineBreakAtEnd:function(a){var b;b=ICEcoder.getcMInstance();a||(a=b.getCursor().line);b.replaceRange(b.getLine(a)+"
    ",{line:a,ch:0},{line:a,ch:1E6})},insertLineBefore:function(a){var b;b=ICEcoder.getcMInstance();a||(a=b.getCursor().line);b.operation(function(){b.replaceRange("\n"+b.getLine(a),{line:a,ch:0},{line:a,ch:1E6}); +b.setCursor({line:b.getCursor().line-1,ch:0});b.execCommand("indentAuto")})},insertLineAfter:function(a){var b;b=ICEcoder.getcMInstance();a||(a=b.getCursor().line);b.operation(function(){b.replaceRange(b.getLine(a)+"\n",{line:a,ch:0},{line:a,ch:1E6});b.execCommand("indentAuto")})},duplicateLines:function(a){var b,c,d;b=ICEcoder.getcMInstance();!a&&b.somethingSelected()?(c=b.getCursor("start"),d=b.getCursor("end"),a=c.line!=d.line&&d.ch==b.getLine(d.line).length?"\n":"",b.replaceSelection(b.getSelection()+ +a+b.getSelection(),"end"),b.setSelection(c,d)):(a||(a=b.getCursor().line),c=b.getCursor().ch,b.replaceRange(b.getLine(a)+"\n"+b.getLine(a),{line:a,ch:0},{line:a,ch:1E6}),b.setCursor(a+1,c))},removeLines:function(a){var b,c;b=ICEcoder.getcMInstance();!a&&b.somethingSelected()?b.replaceSelection("","end"):(a||(a=b.getCursor().line),c=b.getCursor().ch,b.execCommand("deleteLine"),b.setCursor(a-1,c))},jumpToDefinition:function(){var a,b;a=ICEcoder.getcMInstance();b=a.getTokenAt(a.getCursor()).string;if(a.somethingSelected()&& +top.ICEcoder.origCurorPos)a.setCursor(top.ICEcoder.origCurorPos);else for(top.ICEcoder.origCurorPos=a.getCursor(),a=["var "+b,"function "+b,b+"=function",b+"= function",b+" =function",b+" = function",b+"=new function",b+"= new function",b+" =new function",b+" = new function","window['"+b+"']",'window["'+b+'"]',"this['"+b+"']",'this["'+b+'"]',b+":",b+" :","def "+b,"class "+b],b=0;be.replace(/\d+/g,g)?c:e;if(0c&&("LI"!=d.childNodes[c].nodeName&& c++,b=d.childNodes[c].childNodes[0].childNodes[1],b.id==f&&(a=!0),!0==a&&-1==top.ICEcoder.selectedFiles.indexOf(b.id)&&(ICEcoder.selectDeselectFile("select",b),top.ICEcoder.selectedFiles.push(b.id)),b.id!=e);c+=2);else ICEcoder.selectDeselectFile("select",b),top.ICEcoder.selectedFiles.push(c)}else top.ICEcoder.deselectAllFiles(),ICEcoder.selectDeselectFile("select",b),top.ICEcoder.selectedFiles.push(c);document.findAndReplace.target[2].innerHTML=top.ICEcoder.selectedFiles[0]?"selected files":"all files"; document.findAndReplace.target[3].innerHTML=top.ICEcoder.selectedFiles[0]?"selected filenames":"all filenames";top.ICEcoder.hideFileMenu()},deselectAllFiles:function(){for(var a,b=0;bCreating Folder
    "+b)},openFile:function(a){var b;a&&(top.ICEcoder.thisFileFolderLink=a,top.ICEcoder.thisFileFolderType="file");"/[NEW]"!=top.ICEcoder.thisFileFolderLink&&!1!==top.ICEcoder.isOpen(top.ICEcoder.thisFileFolderLink)? -top.ICEcoder.switchTab(top.ICEcoder.isOpen(top.ICEcoder.thisFileFolderLink)+1):""!=top.ICEcoder.thisFileFolderLink&&"file"==top.ICEcoder.thisFileFolderType&&(a=top.ICEcoder.thisFileFolderLink.replace(/\|/g,"/"),b=!0,100<=top.ICEcoder.openFiles.length&&(top.ICEcoder.message("Sorry, you can only have 100 files open at a time!"),b=!1),b&&(top.ICEcoder.shortURL=a,"/[NEW]"!=a?(top.ICEcoder.thisFileFolderLink=top.ICEcoder.thisFileFolderLink.replace(/\//g,"|"),top.ICEcoder.serverQueue("add","lib/file-control.php?action=load&file="+ -top.ICEcoder.thisFileFolderLink+"&csrf="+top.ICEcoder.csrf),top.ICEcoder.serverMessage("Opening File
    "+top.ICEcoder.shortURL)):top.ICEcoder.createNewTab(),top.ICEcoder.fMIconVis("fMView",1)))},openFilesFromList:function(a){for(var b=0;bGetting
    "+a)},saveFile:function(a){var b,c;a=a?"saveAs":"save";b=ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(top.iceRoot,"").replace(/\//g,"|");"|[NEW]"==b&&0Saving
    "+ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(top.iceRoot,""))},renameFile:function(a,b){var c,d;a?c=a.replace(/\|/g,"/"):(c=top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,"/"),a=top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length- -1].replace(/\|/g,"/"));b||(b=top.ICEcoder.getInput("Please enter the new name for",c));b&&(d=top.ICEcoder.openFiles.indexOf(c.replace(/\|/g,"/")),-1', -c=top.ICEcoder.openFiles[d],top.get("tab"+(d+1)).innerHTML=closeTabLink+" "+c.slice(c.lastIndexOf("/")).replace(/\//,""),top.get("tab"+(d+1)).title=b),top.ICEcoder.serverQueue("add","lib/file-control.php?action=rename&file="+b+"&oldFileName="+a.replace(/\|/g,"/")+"&csrf="+top.ICEcoder.csrf),top.ICEcoder.serverMessage("Renaming to
    "+b),top.ICEcoder.setPreviousFiles())},moveFile:function(a,b){var c,d;b&&(d=top.ICEcoder.openFiles.indexOf(a.replace(/\|/g,"/")),-1"+top.t["Creating Folder"]+"
    "+b)},openFile:function(a){var b;a&&(top.ICEcoder.thisFileFolderLink=a,top.ICEcoder.thisFileFolderType="file");"/[NEW]"!=top.ICEcoder.thisFileFolderLink&&!1!==top.ICEcoder.isOpen(top.ICEcoder.thisFileFolderLink)? +top.ICEcoder.switchTab(top.ICEcoder.isOpen(top.ICEcoder.thisFileFolderLink)+1):""!=top.ICEcoder.thisFileFolderLink&&"file"==top.ICEcoder.thisFileFolderType&&(a=top.ICEcoder.thisFileFolderLink.replace(/\|/g,"/"),b=!0,100<=top.ICEcoder.openFiles.length&&(top.ICEcoder.message(top.t["Sorry you can..."]),b=!1),b&&(top.ICEcoder.shortURL=a,"/[NEW]"!=a?(top.ICEcoder.thisFileFolderLink=top.ICEcoder.thisFileFolderLink.replace(/\//g,"|"),top.ICEcoder.serverQueue("add","lib/file-control.php?action=load&file="+ +top.ICEcoder.thisFileFolderLink+"&csrf="+top.ICEcoder.csrf),top.ICEcoder.serverMessage(""+top.t["Opening File"]+"
    "+top.ICEcoder.shortURL)):top.ICEcoder.createNewTab(),top.ICEcoder.fMIconVis("fMView",1)))},openFilesFromList:function(a){for(var b=0;b"+top.t.Getting+"
    "+a)},saveFile:function(a){var b,c;a=a?"saveAs":"save";b=ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(top.iceRoot,"").replace(/\//g,"|");"|[NEW]"==b&&0"+top.t.Saving+"
    "+ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(top.iceRoot,""))},renameFile:function(a,b){var c,d;a?c=a.replace(/\|/g,"/"):(c=top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g, +"/"),a=top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,"/"));b||(b=top.ICEcoder.getInput(top.t["Please enter the..."],c));b&&(d=top.ICEcoder.openFiles.indexOf(c.replace(/\|/g,"/")),-1', +c=top.ICEcoder.openFiles[d],top.get("tab"+(d+1)).innerHTML=closeTabLink+" "+c.slice(c.lastIndexOf("/")).replace(/\//,""),top.get("tab"+(d+1)).title=b),top.ICEcoder.serverQueue("add","lib/file-control.php?action=rename&file="+b+"&oldFileName="+a.replace(/\|/g,"/")+"&csrf="+top.ICEcoder.csrf),top.ICEcoder.serverMessage(""+top.t["Renaming to"]+"
    "+b),top.ICEcoder.setPreviousFiles())},moveFile:function(a,b){var c,d;b&&(d=top.ICEcoder.openFiles.indexOf(a.replace(/\|/g,"/")),-1',c=top.ICEcoder.openFiles[d],top.get("tab"+(d+1)).innerHTML=closeTabLink+" "+c.slice(c.lastIndexOf("/")).replace(/\//,""),top.get("tab"+(d+1)).title= -b),top.ICEcoder.serverQueue("add","lib/file-control.php?action=move&file="+b+"&oldFileName="+a.replace(/\|/g,"/")+"&csrf="+top.ICEcoder.csrf),top.ICEcoder.serverMessage("Moving to
    "+b),top.ICEcoder.setPreviousFiles())},deleteFiles:function(a){var b;a=a?a:top.ICEcoder.selectedFiles;b=a.toString().replace(/\|/g,"/").replace(/,/g,"\n");0Deleting File
    "+b))},copyFiles:function(a,b,c){top.ICEcoder.copiedFiles=[];for(var d=0;dPasting File
    "+top.ICEcoder.copiedFiles[b].toString().replace(/\|/g,"/").replace(/,/g,"\n"))):top.ICEcoder.message("Sorry, cannot paste a whole root");else top.ICEcoder.message("Nothing to paste, copy a file/folder first!")},duplicateFiles:function(a){var b;top.ICEcoder.copiedFiles&&(b=top.ICEcoder.copiedFiles);top.ICEcoder.copyFiles(a,"dontShowPaste","dontHide");a=a[0].substr(0,a[0].lastIndexOf("|"));top.ICEcoder.pasteFiles(a);"undefined"!= -typeof b&&(top.ICEcoder.copiedFiles=b)},uploadFilesSelect:function(a){top.get("uploadDir").value=a;top.get("fileInput").click()},uploadFilesSubmit:function(a){""!=top.get("fileInput").value&&(top.ICEcoder.showHide("show",top.get("loadingMask")),top.get("uploadFilesForm").submit(),event.preventDefault())},showHideFileNav:function(a,b){var c=["optionsFile","optionsEdit","optionsRemote","optionsHelp"];if("hide"==a)fileNavInt=setTimeout(function(){for(var a=0;a"+top.t["Moving to"]+"
    "+b),top.ICEcoder.setPreviousFiles())},deleteFiles:function(a){var b;a=a?a:top.ICEcoder.selectedFiles;b=a.toString().replace(/\|/g,"/").replace(/,/g,"\n");0"+top.t["Deleting File"]+"
    "+b))},copyFiles:function(a,b,c){top.ICEcoder.copiedFiles=[];for(var d=0;d"+top.t["Pasting File"]+"
    "+top.ICEcoder.copiedFiles[b].toString().replace(/\|/g,"/").replace(/,/g,"\n"))):top.ICEcoder.message(top.t["Sorry cannot paste..."]);else top.ICEcoder.message(top.t["Nothing to paste..."])},duplicateFiles:function(a){var b;top.ICEcoder.copiedFiles&&(b=top.ICEcoder.copiedFiles);top.ICEcoder.copyFiles(a,"dontShowPaste","dontHide");a=a[0].substr(0,a[0].lastIndexOf("|")); +top.ICEcoder.pasteFiles(a);"undefined"!=typeof b&&(top.ICEcoder.copiedFiles=b)},uploadFilesSelect:function(a){top.get("uploadDir").value=a;top.get("fileInput").click()},uploadFilesSubmit:function(a){""!=top.get("fileInput").value&&(top.ICEcoder.showHide("show",top.get("loadingMask")),top.get("uploadFilesForm").submit(),event.preventDefault())},showHideFileNav:function(a,b){var c=["optionsFile","optionsEdit","optionsRemote","optionsHelp"];if("hide"==a)fileNavInt=setTimeout(function(){for(var a=0;a< +c.length;a++)top.ICEcoder.showHide("hide",top.get(c[a])),top.get(c[a]+"Nav").style.color=""},150);else for(var d=0;dc&&(b-=b+a-c),top.get("fileMenu").style.top=b+"px");return!1},showFileMenu:function(){top.get("fileMenu").style.display="inline-block";setTimeout(function(){top.get("fileMenu").style.opacity= "1"},4)},hideFileMenu:function(){top.get("fileMenu").style.display="none";top.get("fileMenu").style.opacity="0"},updateFileManagerList:function(a,b,c,d,e,f,g){var m,h,k,n,p,l,r;if("add"==a&&!top.get("filesFrame").contentWindow.document.getElementById(b.replace(/\/$/,"").replace(/\//g,"|")+"|"+c)){m="file"==g?"pft-file ext-"+c.substr(c.indexOf(".")+1):"pft-directory";d="file"==g?664:705;b||(b="/");b=b.replace(top.iceRoot,"");h=top.get("filesFrame").contentWindow.document.getElementById(b.replace(/\//g, @@ -45,24 +45,24 @@ top.get(c[a])),top.get(c[a]+"Nav").style.color=""},150);else for(var d=0;dc||"folder"==g&&"file"==l||h==k.childNodes.length-1)){l=document.createElement("li");l.className=m;l.draggable=!0;l.ondrag=function(a){top.ICEcoder.draggingWithKeyTest(a);top.ICEcoder.getcMInstance()&&top.ICEcoder.getcMInstance().focus()};l.ondragend=function(){top.ICEcoder.dropFile(this)};l.innerHTML=p;h== k.childNodes.length-1?(k.appendChild(l),k.appendChild(n)):(k.insertBefore(l,k.childNodes[h]),k.insertBefore(n,k.childNodes[h+1]));break}"file"!=g||f||(top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1]=b+c)}"rename"==a&&(f=e.replace(/\//g,"|"),h=top.get("filesFrame").contentWindow.document.getElementById(f),h.innerHTML=c,h.id=b.replace(/\//g,"|")+"|"+c,h.parentNode.title=h.id.replace(/\|/g,"/"),targetElemPerms=top.get("filesFrame").contentWindow.document.getElementById(f+"_perms"),targetElemPerms.id= b.replace(/\//g,"|")+"|"+c+"_perms");"move"==a&&(top.ICEcoder.updateFileManagerList("add",b,c,!1,!1,!1,g),top.ICEcoder.updateFileManagerList("delete",e.substr(0,e.lastIndexOf("/")),c));"chmod"==a&&(f=top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,"/"),h=top.get("filesFrame").contentWindow.document.getElementById(f.replace(/\//g,"|")+"_perms"),h.innerHTML=d);"delete"==a&&(h=top.get("filesFrame").contentWindow.document.getElementById((""==top.iceRoot?b.replace(/\/$/,"").replace(/\//g, -"|"):"")+"|"+c).parentNode.parentNode,top.ICEcoder.openCloseDir(h.childNodes[0],!1),h.parentNode.removeChild(h))},refreshFileManager:function(){top.ICEcoder.showHide("show",top.get("loadingMask"));top.ICEcoder.filesFrame.src="files.php";top.ICEcoder.filesFrame.style.opacity="0";top.ICEcoder.filesFrame.onload=function(){top.ICEcoder.filesFrame.style.opacity="1";top.ICEcoder.showHide("hide",top.get("loadingMask"))}},draggingWithKeyTest:function(a){var b;b=a.keyCode?a.keyCode:a.which?a.which:a.charCode; -if(224==b||91==b||93==b)top.ICEcoder.cmdKey=!0;top.ICEcoder.draggingWithKey=a.ctrlKey||top.ICEcoder.cmdKey?"CTRL":!1},dropFile:function(a){var b,c;b=a.childNodes[0].childNodes[1].id.replace(/\|/g,"/");fileName=b.substr(b.lastIndexOf("/")+1);"editor"==top.ICEcoder.area&&top.ICEcoder.pasteURL(b);"files"==top.ICEcoder.area&&setTimeout(function(){c="folder"==ICEcoder.thisFileFolderType?ICEcoder.thisFileFolderLink:ICEcoder.thisFileFolderLink.substr(0,ICEcoder.thisFileFolderLink.lastIndexOf("|"));"CTRL"== -top.ICEcoder.draggingWithKey?(top.ICEcoder.copyFiles(top.ICEcoder.selectedFiles),top.ICEcoder.pasteFiles(c)):top.ICEcoder.moveFile(b,c.replace(/\|/g,"/")+"/"+fileName)},4);top.ICEcoder.mouseDown=!1},findReplaceOptions:function(){top.get("rText").style.display=top.get("replace").style.display=top.get("rTarget").style.display="and"==document.findAndReplace.connector.value?"inline-block":"none"},findReplace:function(a,b,c){var d,e,f;d=a.toLowerCase();e=top.get("replace").value;f=top.get("results");if((a= -ICEcoder.getcMInstance())&&0a.getScrollInfo().clientHeight;if(b)f.innerHTML=ICEcoder.results.length+" results";else{for(e=ICEcoder.findResult=0;eICEcoder.results.length-1&&(ICEcoder.findResult=0);f.innerHTML="Highlighted result "+(ICEcoder.findResult+1)+" of "+ICEcoder.results.length+" results";b=a.getSearchCursor(d,a.getCursor(),!0);b.findNext();b.from()||(b=a.getSearchCursor(d,{line:0,ch:0},!0),b.findNext());a.setSelection(b.from(),b.to());top.ICEcoder.focus();top.ICEcoder.findMode=!0}d=c?parseInt(top.ICEcoder.content.style.height,10)/a.lineCount():a.defaultTextHeight();b=c?0:a.heightAtLine(0);top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.right= c?"17px":"0";f="";for(e=1;e<=a.lineCount();e++)c=-1
  • ';top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").innerHTML=f;top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.display="inline-block";return!0}f.innerHTML="No results";top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").innerHTML= "";top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.display="none";return!1}""!=d&&c?(f=b=a="","and"==document.findAndReplace.connector.value&&(a="&replace="+e),0<=document.findAndReplace.target.value.indexOf("file")&&(b="&target="+document.findAndReplace.target.value.replace(/ /g,"-")),"selected files"==document.findAndReplace.target.value&&(f="&selectedFiles="+top.ICEcoder.selectedFiles.join(":")),d=d.replace(/\'/g,"'"),d!=encodeURIComponent(d)?d="ICEcoder:"+encodeURIComponent(d): d,top.ICEcoder.showHide("show",top.get("loadingMask")),top.get("mediaContainer").innerHTML=''):(f.innerHTML="No results",top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").innerHTML="",top.ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.display="none")},replaceInFile:function(a,b,c){top.ICEcoder.serverQueue("add", -"lib/file-control.php?action=replaceText&fileRef="+a.replace(/\//g,"|")+"&find="+b+"&replace="+c+"&csrf="+top.ICEcoder.csrf);top.ICEcoder.serverMessage("Replacing text in
    "+a)},getNestLocation:function(a){var b,c,d;if(b=ICEcoder.getcMInstance()){c=b.getValue();b=b.getTokenAt(b.getCursor()).state;d=!1;"undefined"!=typeof b&&(d=b.context);"undefined"!=typeof b.curState&&"undefined"!=typeof b.curState.htmlState&&(d=b.curState.htmlState.context);ICEcoder.htmlTagArray=[];if(d)for(;d;d=d.prev)"undefined"!= -typeof d.tagName&&ICEcoder.htmlTagArray.unshift(d.tagName);ICEcoder.tagString=ICEcoder.htmlTagArray[ICEcoder.htmlTagArray.length-1];"JavaScript"==ICEcoder.caretLocType&&(ICEcoder.tagString="script");a&&!top.ICEcoder.dontUpdateNest&&(ICEcoder.nestDisplay.innerHTML="","undefined"!=typeof ICEcoder.openFiles[ICEcoder.selectedTab-1]&&(a=ICEcoder.openFiles[ICEcoder.selectedTab-1],ICEcoder.getNestLocationSub(c,a)))}},getCaretPosition:function(){var a,b,c,d;a=ICEcoder.getcMInstance();b=a.getCursor().line; -c=a.getCursor().ch;for(var e=d=0;e=a||10<=a)&&top.ICEcoder.mouseX>parseInt(top.ICEcoder.files.style.width,10)&&(top.ICEcoder.tabDragMouseX=top.ICEcoder.mouseX- -parseInt(top.ICEcoder.files.style.width,10)-top.ICEcoder.tabDragMouseXStart,top.ICEcoder.tabDragMove());if(top.ICEcoder.ready&&(top.ICEcoder.mouseDown||(top.ICEcoder.draggingFilesW=!1),a=!ICEcoder.draggingTab&&(top.ICEcoder.mouseX>top.ICEcoder.filesW-7&&top.ICEcoder.mouseX").replace(/\<\/b\>/g,"").replace(/\<br\>/g,"
    "),b.style.left="0"):setTimeout(function(){b.style.left="2000px"},200);b.style.opacity=a?1:0},cssColorPreview:function(){var a,b,c,d;if(a=ICEcoder.getcMInstance()){b=a.getLine(a.getCursor().line);for(c=/(#[\da-f]{3}(?:[\da-f]{3})?\b|\b(?:rgb|hsl)a?\([\s\d%,.-]+\)|\b[a-z]+\b)/gi;(d= -c.exec(b))&&a.getCursor().ch>d.index+d[0].length;);(b=top.get("content").contentWindow.document.getElementById("cssColor"))&&b.parentNode.removeChild(b);top.ICEcoder.codeAssist&&"CSS"==top.ICEcoder.caretLocType&&(b=top.document.createElement("div"),b.id="cssColor",b.style.position="absolute",b.style.display="block",b.style.width=b.style.height="20px",b.style.zIndex="1000",b.style.background=d?d[0]:"",b.style.cursor="pointer",b.onclick=function(){top.ICEcoder.showColorPicker(d[0])},""==b.style.backgroundColor&& -(b.style.display="none"),top.get("header").appendChild(b),a.addWidget(a.getCursor(),top.get("cssColor"),!0))}},showColorPicker:function(a){top.get("blackMask").style.visibility="visible";top.get("mediaContainer").innerHTML='



    '; +"lib/file-control.php?action=replaceText&fileRef="+a.replace(/\//g,"|")+"&find="+b+"&replace="+c+"&csrf="+top.ICEcoder.csrf);top.ICEcoder.serverMessage(""+top.t["Replacing text in"]+"
    "+a)},getNestLocation:function(a){var b,c,d;if(b=ICEcoder.getcMInstance()){c=b.getValue();b=b.getTokenAt(b.getCursor()).state;d=!1;"undefined"!=typeof b&&(d=b.context);"undefined"!=typeof b.curState&&"undefined"!=typeof b.curState.htmlState&&(d=b.curState.htmlState.context);ICEcoder.htmlTagArray=[];if(d)for(;d;d= +d.prev)"undefined"!=typeof d.tagName&&ICEcoder.htmlTagArray.unshift(d.tagName);ICEcoder.tagString=ICEcoder.htmlTagArray[ICEcoder.htmlTagArray.length-1];"JavaScript"==ICEcoder.caretLocType&&(ICEcoder.tagString="script");a&&!top.ICEcoder.dontUpdateNest&&(ICEcoder.nestDisplay.innerHTML="","undefined"!=typeof ICEcoder.openFiles[ICEcoder.selectedTab-1]&&(a=ICEcoder.openFiles[ICEcoder.selectedTab-1],ICEcoder.getNestLocationSub(c,a)))}},getCaretPosition:function(){var a,b,c,d;a=ICEcoder.getcMInstance(); +b=a.getCursor().line;c=a.getCursor().ch;for(var e=d=0;e=a||10<=a)&&top.ICEcoder.mouseX>parseInt(top.ICEcoder.files.style.width, +10)&&(top.ICEcoder.tabDragMouseX=top.ICEcoder.mouseX-parseInt(top.ICEcoder.files.style.width,10)-top.ICEcoder.tabDragMouseXStart,top.ICEcoder.tabDragMove());if(top.ICEcoder.ready&&(top.ICEcoder.mouseDown||(top.ICEcoder.draggingFilesW=!1),a=!ICEcoder.draggingTab&&(top.ICEcoder.mouseX>top.ICEcoder.filesW-7&&top.ICEcoder.mouseX").replace(/\<\/b\>/g,"").replace(/\<br\>/g,"
    "),b.style.left="0"):setTimeout(function(){b.style.left="2000px"},200);b.style.opacity=a?1:0},cssColorPreview:function(){var a,b,c,d;if(a=ICEcoder.getcMInstance()){b= +a.getLine(a.getCursor().line);for(c=/(#[\da-f]{3}(?:[\da-f]{3})?\b|\b(?:rgb|hsl)a?\([\s\d%,.-]+\)|\b[a-z]+\b)/gi;(d=c.exec(b))&&a.getCursor().ch>d.index+d[0].length;);(b=top.get("content").contentWindow.document.getElementById("cssColor"))&&b.parentNode.removeChild(b);top.ICEcoder.codeAssist&&"CSS"==top.ICEcoder.caretLocType&&(b=top.document.createElement("div"),b.id="cssColor",b.style.position="absolute",b.style.display="block",b.style.width=b.style.height="20px",b.style.zIndex="1000",b.style.background= +d?d[0]:"",b.style.cursor="pointer",b.onclick=function(){top.ICEcoder.showColorPicker(d[0])},""==b.style.backgroundColor&&(b.style.display="none"),top.get("header").appendChild(b),a.addWidget(a.getCursor(),top.get("cssColor"),!0))}},showColorPicker:function(a){top.get("blackMask").style.visibility="visible";top.get("mediaContainer").innerHTML='



    '; farbtastic("picker","color");a&&top.get("picker").farbtastic.setColor(a)},drawCanvasImage:function(a){var b,c,d,e,f,g,m,h,k,n,p;b=top.get("canvasPicker").getContext("2d");c=new Image;c.src=a.src;c.onload=function(){top.get("canvasPicker").width=a.width;top.get("canvasPicker").height=a.height;b.drawImage(c,0,0,a.width,a.height)};top.get("canvasPicker").onmousemove=function(a){d=a.pageX-this.offsetLeft;e=a.pageY-this.offsetTop;f=b.getImageData(d,e,1,1).data;g=f[0];m=f[1];h=f[2];k=g+","+m+","+h;n=top.ICEcoder.rgbToHex(g, m,h);top.get("rgbMouseXY").value=k;top.get("hexMouseXY").value="#"+n;top.get("hexMouseXY").style.backgroundColor=top.get("rgbMouseXY").style.backgroundColor="#"+n;p=128>g||128>m||128>h&&200>g&&200>m&&50Cancelled tasks');setTimeout(function(){top.ICEcoder.serverMessage()},2E3)},setPreviousFiles:function(){var a;a=top.ICEcoder.openFiles.join(",").replace(/\//g, -"|").replace(/(\|\[NEW\])|(,\|\[NEW\])/g,"").replace(/(^,)|(,$)/g,"");""==a&&(a="CLEAR");top.ICEcoder.serverQueue("add","lib/settings.php?saveFiles="+a+"&csrf="+top.ICEcoder.csrf)},autoOpenFiles:function(){if(0';top.ICEcoder.showHide("show",top.get("blackMask"))},propertiesScreen:function(a){top.get("mediaContainer").innerHTML=''; -top.ICEcoder.showHide("show",top.get("blackMask"))},pluginsManager:function(){top.get("mediaContainer").innerHTML='';top.ICEcoder.showHide("show",top.get("blackMask"))},githubManager:function(){top.get("mediaContainer").innerHTML='';top.ICEcoder.showHide("show",top.get("blackMask"))},githubDiffToggle:function(){var a; -if(top.ICEcoder.githubDiff||top.ICEcoder.ask("This will compare and show a diff view between your local dir and the repo. OK?"))top.ICEcoder.githubDiff=!top.ICEcoder.githubDiff,a=top.ICEcoder.githubDiff?"true":"false",top.ICEcoder.filesFrame.src="files.php?githubDiff="+a+"&csrf="+top.ICEcoder.csrf;alert("This is a work in progress, unfinished at present and due for an ICEcoder v4.2 release. Currently ~40% done.")},useNewSettings:function(a,b,c,d,e,f,g,m,h,k,n,p,l,r,s){var q;top.ICEcoder.theme=a.slice(a.lastIndexOf("/")+ -1,a.lastIndexOf("."));"editor"==top.ICEcoder.theme&&(top.ICEcoder.theme="icecoder");q=document.createElement("link");q.setAttribute("rel","stylesheet");q.setAttribute("type","text/css");q.setAttribute("href",a);top.ICEcoder.content.contentWindow.document.getElementsByTagName("head")[0].appendChild(q);a=-1<"3024-day base16-light eclipse elegant neat paraiso-light solarized xq-light".split(" ").indexOf(top.ICEcoder.theme)?"#ccc":"#000";top.ICEcoder.switchTab(top.ICEcoder.selectedTab);b!=top.ICEcoder.codeAssist&& -(top.get("codeAssist").checked=b,top.ICEcoder.codeAssistToggle());c!=top.ICEcoder.lockedNav&&top.ICEcoder.lockUnlockNav();c||(ICEcoder.changeFilesW("contract"),top.ICEcoder.hideFileMenu());c=ICEcoder.content.contentWindow.document.styleSheets[4];b=c.rules?"rules":"cssRules";c[b][0].style.fontSize=g;c[b][4].style["border-left-width"]=f?"1px":"0";c[b][4].style["margin-left"]=f?"-1px":"0";c[b][2].style.cssText="background-color: "+a+" !important";top.ICEcoder.lineWrapping=m;top.ICEcoder.indentWithTabs= -h;top.ICEcoder.indentSize=k;for(f=0;fchMod "+b+" on
    "+a)},openPreviewWindow:function(){if(0'+top.t["Cancelled tasks"]+"");setTimeout(function(){top.ICEcoder.serverMessage()},2E3)},setPreviousFiles:function(){var a; +a=top.ICEcoder.openFiles.join(",").replace(/\//g,"|").replace(/(\|\[NEW\])|(,\|\[NEW\])/g,"").replace(/(^,)|(,$)/g,"");""==a&&(a="CLEAR");top.ICEcoder.serverQueue("add","lib/settings.php?saveFiles="+a+"&csrf="+top.ICEcoder.csrf)},autoOpenFiles:function(){if(0');top.ICEcoder.showHide(a?"hide":"show",top.get("blackMask"))},helpScreen:function(){top.get("mediaContainer").innerHTML=''; +top.ICEcoder.showHide("show",top.get("blackMask"))},showManual:function(a,b){var c;c=b?"#"+b:"";top.get("mediaContainer").innerHTML='';top.ICEcoder.showHide("show",top.get("blackMask"))},propertiesScreen:function(a){top.get("mediaContainer").innerHTML=''; +top.ICEcoder.showHide("show",top.get("blackMask"))},pluginsManager:function(){top.get("mediaContainer").innerHTML='';top.ICEcoder.showHide("show",top.get("blackMask"))},githubTokenAsk:function(a){if(githubAuthToken=top.ICEcoder.getInput(top.t["Please enter your..."],""))top.ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href="lib/github.php?action=auth&token="+githubAuthToken+"&goNext="+ +a+"&csrf="+top.ICEcoder.csrf,githubAuthToken=""},githubManager:function(){top.ICEcoder.githubAuthTokenSet?(top.get("mediaContainer").innerHTML='',top.ICEcoder.showHide("show",top.get("blackMask"))):top.ICEcoder.githubTokenAsk("showManager")},githubDiffToggle:function(){var a;alert("This is a work in progress, unfinished at present and due for an ICEcoder v4.2 release. Currently ~70% done.");if(!top.ICEcoder.githubAuthTokenSet)top.ICEcoder.githubTokenAsk("loadFiles"); +else if(top.ICEcoder.githubDiff||top.ICEcoder.ask(top.t["This will compare..."]))top.ICEcoder.githubDiff=!top.ICEcoder.githubDiff,a=top.ICEcoder.githubDiff?"true":"false",top.ICEcoder.filesFrame.src="files.php?githubDiff="+a+"&csrf="+top.ICEcoder.csrf},useNewSettings:function(a,b,c,d,e,f,g,m,h,k,n,p,l,r,s,t){var q;top.ICEcoder.theme=a.slice(a.lastIndexOf("/")+1,a.lastIndexOf("."));"editor"==top.ICEcoder.theme&&(top.ICEcoder.theme="icecoder");q=document.createElement("link");q.setAttribute("rel","stylesheet"); +q.setAttribute("type","text/css");q.setAttribute("href",a);top.ICEcoder.content.contentWindow.document.getElementsByTagName("head")[0].appendChild(q);a=-1<"3024-day base16-light eclipse elegant neat paraiso-light solarized xq-light".split(" ").indexOf(top.ICEcoder.theme)?"#ccc":"#000";top.ICEcoder.switchTab(top.ICEcoder.selectedTab);b!=top.ICEcoder.codeAssist&&(top.get("codeAssist").checked=b,top.ICEcoder.codeAssistToggle());c!=top.ICEcoder.lockedNav&&top.ICEcoder.lockUnlockNav();c||(ICEcoder.changeFilesW("contract"), +top.ICEcoder.hideFileMenu());c=ICEcoder.content.contentWindow.document.styleSheets[4];b=c.rules?"rules":"cssRules";c[b][0].style.fontSize=g;c[b][4].style["border-left-width"]=f?"1px":"0";c[b][4].style["margin-left"]=f?"-1px":"0";c[b][2].style.cssText="background-color: "+a+" !important";top.ICEcoder.lineWrapping=m;top.ICEcoder.indentWithTabs=h;top.ICEcoder.indentSize=k;for(f=0;fchMod "+b+" on
    "+a)},openPreviewWindow:function(){if(0 Settings");"error"==top.ICEcoder.bugReportStatus&&top.ICEcoder.message("Error: can't find/access the error file paths");"ok"==top.ICEcoder.bugReportStatus&&top.ICEcoder.message("No new errors found");"bugs"==top.ICEcoder.bugReportStatus&&(a=top.ICEcoder.openFiles.indexOf(top.ICEcoder.bugReportPath.replace(/\|/g,"/")),-1/g,">").replace(/"/g, -""").replace(/'/g,"'")},printCode:function(){var a,b;a=top.ICEcoder.getcMInstance();b=top.ICEcoder.filesFrame.contentWindow.frames.fileControl;b.window.document.body.innerHTML="ICEcoder code output
    "+top.ICEcoder.xssClean(a.getValue())+"
    ";b.focus();b.print();a.focus()},indicateChanges:function(){var a;if(!top.ICEcoder.loadingFile){a="ICEcoder v "+top.ICEcoder.versionNo;for(var b=1;b<=top.ICEcoder.savedPoints.length;b++)if(top.ICEcoder.savedPoints[b- +"off"==top.ICEcoder.bugReportStatus&&top.ICEcoder.message(top.t["You can start..."]);"error"==top.ICEcoder.bugReportStatus&&top.ICEcoder.message(top.t["Error cannot find..."]);"ok"==top.ICEcoder.bugReportStatus&&top.ICEcoder.message(top.t["No new errors..."]);"bugs"==top.ICEcoder.bugReportStatus&&(a=top.ICEcoder.openFiles.indexOf(top.ICEcoder.bugReportPath.replace(/\|/g,"/")),-1/g,">").replace(/"/g,""").replace(/'/g,"'")},printCode:function(){var a, +b;a=top.ICEcoder.getcMInstance();b=top.ICEcoder.filesFrame.contentWindow.frames.fileControl;b.window.document.body.innerHTML='ICEcoder code output
    '+top.ICEcoder.xssClean(a.getValue())+"
    ";b.focus();b.print();a.focus()},indicateChanges:function(){var a;if(!top.ICEcoder.loadingFile){a="ICEcoder v "+top.ICEcoder.versionNo;for(var b=1;b<=top.ICEcoder.savedPoints.length;b++)if(top.ICEcoder.savedPoints[b- 1]!=top.ICEcoder.getcMInstance(b).changeGeneration()){a+=" \u2744";break}top.document.title=a}},switchTab:function(a,b){var c;ICEcoder.selectedTab=a;if(c=ICEcoder.getcMInstance()){ICEcoder.switchMode();for(var d=0;d '+c.slice(c.lastIndexOf("/")).replace(/\//, "");top.get("tab"+a).title="/"+top.ICEcoder.openFiles[a-1].replace(/\//,"")},redoTabHighlight:function(a){for(var b,c,d=1;d<=ICEcoder.savedPoints.length;d++)top.get("tab"+d).childNodes[0]&&(top.get("tab"+d).childNodes[0].childNodes[0].style.backgroundColor=ICEcoder.savedPoints[d-1]!=top.ICEcoder.getcMInstance(d).changeGeneration()?"#b00":"transparent"),b=d==a?top.ICEcoder.tabFGselected:top.ICEcoder.tabFGnormalTab,"undefined"!=typeof top.ICEcoder.openFiles[d-1]&&"/[NEW]"!=top.ICEcoder.openFiles[d- 1]&&(c=top.ICEcoder.filesFrame.contentWindow.document.getElementById(top.ICEcoder.openFiles[d-1].replace(/\//g,"|")))&&(c.style.backgroundColor=d==a?top.ICEcoder.tabBGcurrent:top.ICEcoder.tabBGopen,c.style.color=d==a?top.ICEcoder.tabFGcurrent:top.ICEcoder.tabFGopenFile),top.get("tab"+d).style.color=b,top.get("tab"+d).style.background=d==a?top.ICEcoder.tabBGcurrent:top.ICEcoder.tabBGopen},closeTab:function(a,b,c){var d;a||(a=top.ICEcoder.selectedTab);ICEcoder.getcMInstance();d=!0;c||ICEcoder.savedPoints[a- -1]==top.ICEcoder.getcMInstance(a).changeGeneration()||(d=top.ICEcoder.ask("You have made changes.\n\nAre you sure you want to close without saving?"));if(d){c=top.ICEcoder.openFiles[a-1];for(d=a;db?parseInt(c*g,10)-parseInt(c*(g-1),10):150,e=0==g?53:parseInt(top.get("tab"+g).style.left,10),f=0==g?0:parseInt(top.get("tab"+g).style.width,10)+18,a?d=-18:(top.get("tab"+(g+1)).style.left=e+f+"px",top.get("tab"+(g+1)).style.width=d+"px"),top.ICEcoder.tabLeftPos.push(e+f);top.get("newTab").style.left=e+f+d+18+"px"}},tabDragStart:function(a){top.ICEcoder.draggingTab=a;top.ICEcoder.diffStartX=top.ICEcoder.mouseX;top.ICEcoder.tabDragMouseXStart=(top.ICEcoder.mouseX- -(parseInt(top.ICEcoder.files.style.width,10)+53+18))%150;top.get("tab"+a).style.zIndex=2;for(var b=1;b<=top.ICEcoder.openFiles.length;b++)top.get("tab"+b).className=b!==a?"tab tabSlide":"tab tabDrag"},tabDragMove:function(){var a,b;a=parseInt(top.get("tab"+top.ICEcoder.openFiles.length).style.width,10)+18;top.ICEcoder.thisLeft=a=53<=top.ICEcoder.tabDragMouseX?top.ICEcoder.tabDragMouseX<=parseInt(top.get("newTab").style.left,10)-a?top.ICEcoder.tabDragMouseX:parseInt(top.get("newTab").style.left,10)- -a:53;top.get("tab"+top.ICEcoder.draggingTab).style.left=a+"px";top.ICEcoder.dragTabNo=top.ICEcoder.draggingTab;for(var c=1;c<=top.ICEcoder.openFiles.length;c++)top.get("tab"+c).style.opacity=c==top.ICEcoder.draggingTab?1:.5,b=top.ICEcoder.tabLeftPos[c]?top.ICEcoder.tabLeftPos[c]-top.ICEcoder.tabLeftPos[c-1]:b,c!=top.ICEcoder.draggingTab&&(c=top.ICEcoder.tabLeftPos[c-1]?top.ICEcoder.tabLeftPos[c-1]-b:top.ICEcoder.tabLeftPos[c-1])},tabDragEnd:function(){var a,b;top.ICEcoder.setTabWidths();for(var c=1;c<=top.ICEcoder.openFiles.length;c++)top.ICEcoder.thisLeft>=top.ICEcoder.tabLeftPos[c-1]&&(a=top.ICEcoder.thisLeft==top.ICEcoder.tabLeftPos[0]?1:top.ICEcoder.dragTabNo>c?c+1:c),top.get("tab"+c).className="tab",top.get("tab"+c).style.opacity=1,c!=top.ICEcoder.dragTabNo?top.get("tab"+c).style.zIndex=1:setTimeout(function(){top.get("tab"+ -c).style.zIndex=1},150);if(top.ICEcoder.thisLeft&&!1!==top.ICEcoder.thisLeft){b=[];for(c=1;c<=top.ICEcoder.openFiles.length;c++)b.push(c);b.splice(top.ICEcoder.dragTabNo-1,1);b.splice(a-1,0,top.ICEcoder.dragTabNo);ICEcoder.sortTabs(b)}top.ICEcoder.setTabWidths();top.ICEcoder.draggingTab=!1;top.ICEcoder.thisLeft=!1},sortTabs:function(a){var b,c,d;b=[ICEcoder.savedPoints,ICEcoder.openFiles,ICEcoder.openFileMDTs,ICEcoder.cMInstances];c=[[],[],[],[]];for(var e=0;eb?parseInt(c*g,10)-parseInt(c* +(g-1),10):150,e=0==g?53:parseInt(top.get("tab"+g).style.left,10),f=0==g?0:parseInt(top.get("tab"+g).style.width,10)+18,a?d=-18:(top.get("tab"+(g+1)).style.left=e+f+"px",top.get("tab"+(g+1)).style.width=d+"px"),top.ICEcoder.tabLeftPos.push(e+f);top.get("newTab").style.left=e+f+d+18+"px"}},tabDragStart:function(a){top.ICEcoder.draggingTab=a;top.ICEcoder.diffStartX=top.ICEcoder.mouseX;top.ICEcoder.tabDragMouseXStart=(top.ICEcoder.mouseX-(parseInt(top.ICEcoder.files.style.width,10)+53+18))%150;top.get("tab"+ +a).style.zIndex=2;for(var b=1;b<=top.ICEcoder.openFiles.length;b++)top.get("tab"+b).className=b!==a?"tab tabSlide":"tab tabDrag"},tabDragMove:function(){var a,b;a=parseInt(top.get("tab"+top.ICEcoder.openFiles.length).style.width,10)+18;top.ICEcoder.thisLeft=a=53<=top.ICEcoder.tabDragMouseX?top.ICEcoder.tabDragMouseX<=parseInt(top.get("newTab").style.left,10)-a?top.ICEcoder.tabDragMouseX:parseInt(top.get("newTab").style.left,10)-a:53;top.get("tab"+top.ICEcoder.draggingTab).style.left=a+"px";top.ICEcoder.dragTabNo= +top.ICEcoder.draggingTab;for(var c=1;c<=top.ICEcoder.openFiles.length;c++)top.get("tab"+c).style.opacity=c==top.ICEcoder.draggingTab?1:.5,b=top.ICEcoder.tabLeftPos[c]?top.ICEcoder.tabLeftPos[c]-top.ICEcoder.tabLeftPos[c-1]:b,c!=top.ICEcoder.draggingTab&&(c=top.ICEcoder.tabLeftPos[c-1]?top.ICEcoder.tabLeftPos[c-1]-b:top.ICEcoder.tabLeftPos[c- +1])},tabDragEnd:function(){var a,b;top.ICEcoder.setTabWidths();for(var c=1;c<=top.ICEcoder.openFiles.length;c++)top.ICEcoder.thisLeft>=top.ICEcoder.tabLeftPos[c-1]&&(a=top.ICEcoder.thisLeft==top.ICEcoder.tabLeftPos[0]?1:top.ICEcoder.dragTabNo>c?c+1:c),top.get("tab"+c).className="tab",top.get("tab"+c).style.opacity=1,c!=top.ICEcoder.dragTabNo?top.get("tab"+c).style.zIndex=1:setTimeout(function(){top.get("tab"+c).style.zIndex=1},150);if(top.ICEcoder.thisLeft&&!1!==top.ICEcoder.thisLeft){b=[];for(c= +1;c<=top.ICEcoder.openFiles.length;c++)b.push(c);b.splice(top.ICEcoder.dragTabNo-1,1);b.splice(a-1,0,top.ICEcoder.dragTabNo);ICEcoder.sortTabs(b)}top.ICEcoder.setTabWidths();top.ICEcoder.draggingTab=!1;top.ICEcoder.thisLeft=!1},sortTabs:function(a){var b,c,d;b=[ICEcoder.savedPoints,ICEcoder.openFiles,ICEcoder.openFileMDTs,ICEcoder.cMInstances];c=[[],[],[],[]];for(var e=0;e Date: Thu, 21 Aug 2014 21:52:27 +0200 Subject: [PATCH 12/16] Added new messages added new messages fixed some typos --- lang/german.php | 127 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 125 insertions(+), 2 deletions(-) diff --git a/lang/german.php b/lang/german.php index 4e2ced5..e2c4bc7 100644 --- a/lang/german.php +++ b/lang/german.php @@ -202,7 +202,7 @@ $text = array( "Duplicate lines" => "Zeile(n) duplizieren", "Remove lines" => "Zeile(n) entfernen", "Insert line before" => "Zeile vorher einfügen", - "Insert line after" => "Zeile danach einügen, + "Insert line after" => "Zeile danach einügen", "Search for selected" => "Nach dem gesuchten auswählen", "Jump to definition" => "Zur Definition springen / zur¨ck springen", "Comment uncomment" => "Kommentieren / Auskommentieren", @@ -254,7 +254,7 @@ $text = array( "multiple-results" => array( "rename all" => "Alle umbenennen", - "replace all" => "Alle ersetzen + "replace all" => "Alle ersetzen", "document" => "Dokument", "Found" => "Gefunden", "times" => "", @@ -268,6 +268,129 @@ $text = array( "found in" => "Gefunden in", "Replaced" => "Ersetzen" ) + + "plugins-manager" => + array( + "ICEcoder needs to..." => "ICEcoder muss neu geladen werden, damit das Plugin genutzt werden kann. Jetzt neu laden?", + "saving plugins" => "speicher Plugins ...", + "Cannot update config..." => "Kann die Konfigurationsdatei nicht aktualisieren. Bitte Schreibrechte vergeben", + "and try again" => "und es nochmal versuchen", + "couldnt delete dir" => "kann Verzeichnis nicht löschen", + "couldnt delete file" => "kann Datei nicht löschen", + "plugins" => "Plugins", + "Guide to writing..." => "Anleitung zum erstellen von Plugins", + "Manage Installed" => "Geführte Installtion", + "URL" => "URL", + "Target" => "Ziel", + "Timer" => "Timer", + "Update" => "Update", + "Install" => "Installieren", + "Uninstall" => "Deinstallieren", + "Reload after install..." => "Neuladen nach der Installation erforderlich" + ), + + "properties" => + array( + "properties" => "Eigenschaften", + "Size" => "Größe", + "Modified" => "Verändert", + "Last access" => "Letzter Zugriff", + "Type" => "Typ", + "Readable Writeable" => "Lesbar / Schreibbar", + "Relative path" => "Relativer Pfad", + "Absolute path" => "Absoluter Pfad", + "Contains" => "Beinhaltet", + "Permissions" => "Berechtigungen", + "Owner" => "Besitzer", + "Group" => "Gruppe", + "Public" => "Öffentlich", + "Read" => "Lesen", + "Write" => "Schreiben", + "Execute" => "Ausführen", + "Change to" => "Ändern um", + "update" => "aktualisieren" + ), + + "settings-common" => + array( + "Your document does..." => "Das Dokument scheint nicht in UTF-8 codiert zu sein, darum wurde es angepasst" + ), + + "settings-save-current-files" => + array( + "Cannot update config..." => "Kann Konfigurationsdatei nicht aktualisieren. Bitte Schreibrechte vergeben", + "and try again" => "und versuch es noch mal" + ), + + "settings-screen" => + array( + "settings" => "Einstellungen", + "version" => "Version", + "website" => "Website", + "git" => "git", + "codemirror dir" => "gespiegeltes Verzeichnis", + "codemirror version" => "gespiegelte Version", + "file manager root" => "Grundverzeichnis vom Dateimanager", + "Free to use..." => "Kostenfrei nutzbar, kommerziell oder nicht. Gebt mir Bescheid über eure Nutzung oder Anpassungen. :)

    Keine Garantie oder Haftung, Nutzung auf eigene Gefahr.

    Viele fantastische Leute und Unternehmen haben dabei geholfen ICEcoder zu dem zu machen, was es heute ist. Und es sind zu viele um ihnen einzelen zu danken. Eine vollständige Liste gibt es unter", + "functionality" => "Funktionalität", + "check for updates..." => "Bei jedem Ladem nach Updates suchen", + "auto open last..." => "Lade automatisch alle zuletzt geöffneten Datein beim Login", + "when finding in..." => "bei der Suche in Dateien ausschließen", + "assisting" => "assestieren", + "code assist" => "Codeassistent", + "visible tabs" => "sichtbare Tabs", + "locked nav" => "gesperrte Navigation", + "tag wrapper command" => "Tag für Wrapper Kommando setzen", + "auto-complete on" => "auto-complete an", + "security" => "Sicherheit", + "new password" => "neues Passwort", + "8 chars min" => "8 Zeichen mindestens", + "confirm password" => "Passwort bestätigen", + "banned files/folders" => "verbannte Dateien/Verzeichnisse", + "banned paths" => "verbannte Verzeichnisse", + "ip addresses" => "IP Adressen", + "Slash prefixed comma..." => "Schrägstrich vorangestellt, durch Komma getrennt", + "Comma delimited" => "Komma getrennt", + "style" => "Style", + "theme" => "Theme", + "line wrapping" => "Zeilenumbruch", + "indent type" => "Gedankenstrich Typ", + "indent size" => "Größe Gedankenstrich", + "font size" => "Schriftgröße", + "layout" => "Layout", + "plugin panel aligned" => "Plugin-Panel ausgerichtet", + "file manager" => "Dateimanager", + "root" => "Stamm", + "Slash prefixed" => "Schrägstrich vorangestellt", + "bug reporting" => "Fehlermeldung", + "check in files" => "Dateien einchecken", + "every" => "jeden", + "secs getting last" => "Sekunden, immer zuletzt", + "lines" => "Zeilen", + "multi-user" => "Mehrbenutzer", + "Make sure you..." => "Sei sicher, dass du dich nicht selber aussperrst", + "Registration" => "Registrieren", + "auth token" => "Authetifizierungs-Token", + "Required to get..." => "Notwendig für diffs, commits des bei GitHub gehosteten Repository usw.. Wenn du keinen hast, kannst du einen:".PHP_EOL.PHP_EOL. + "- persönlichen Zugriffs Token (https://help.github.com/articles/creating-an-access-token-for-command-line-use) erstellen, oder".PHP_EOL. + "- Full Client/geheimen Token (http://developer.github.com/v3/oauth) erstellen.".PHP_EOL.PHP_EOL. + "Es ist nicht zu empfehlen den Token hier zu speichern, sondern wenn ICEcoder dazu auffordert. Dadurch gilt der Token immer nur pro Sitzung.".PHP_EOL.PHP_EOL. + "Jedoch, wenn du in einer sicheren und vertrauensvollen Umgebung (privater PC, Laptop, ..) arbeitest, ist es Sinnvoll ihn hier einzugeben.", + "Sorry cannot commit..." => "Entschuldigung, kann Einstellungen im Demo-Modus nicht übernehmen", + "update" => "aktualisieren" + ), + + "settings-update" => + array( + "Cannot update config..." => "Kann Konfigurationsdatei nicht aktualisieren. Bitte Schreibrechte vergeben", + "and try again" => "und versuch es noch einmal", + "and press refresh" => "und drück Neu laden" + ), + + "updater" => + array( + "Update appears to..." => "Update scheint erolgreich gelaufen zu sein" + ) ); ?> From 32e05ea8ac439a7e2ade9a779894f88c810bcd99 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 21 Aug 2014 21:53:16 +0200 Subject: [PATCH 13/16] Missed the header --- lang/german.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/german.php b/lang/german.php index e2c4bc7..fce8561 100644 --- a/lang/german.php +++ b/lang/german.php @@ -1,7 +1,7 @@ and HTML equivalents (eg &). Translations on right side. From e41cb4dc09552dd0b2e9d7e348caf5116d64ef21 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Fri, 22 Aug 2014 08:07:37 +0100 Subject: [PATCH 14/16] Comma missing after array --- lang/german.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/german.php b/lang/german.php index fce8561..da359e5 100644 --- a/lang/german.php +++ b/lang/german.php @@ -1,4 +1,4 @@ - "Ausgewählte", "found in" => "Gefunden in", "Replaced" => "Ersetzen" - ) + ), "plugins-manager" => array( @@ -393,4 +393,4 @@ $text = array( ) ); -?> +?> \ No newline at end of file From 34b34bcc885ec4be128ab979e9619b8c605a7145 Mon Sep 17 00:00:00 2001 From: lzh Date: Fri, 22 Aug 2014 15:42:28 +0800 Subject: [PATCH 15/16] Updated Chinese translation --- lang/chinese-simplified.php | 169 +++++++++++++++++++++++++++++++++-- lang/chinese-traditional.php | 167 ++++++++++++++++++++++++++++++++-- 2 files changed, 321 insertions(+), 15 deletions(-) diff --git a/lang/chinese-simplified.php b/lang/chinese-simplified.php index 91b1c42..a640586 100644 --- a/lang/chinese-simplified.php +++ b/lang/chinese-simplified.php @@ -109,7 +109,7 @@ $text = array( "bug-files-check" => array( - "Found in" => "发现在:" + "Found in" => "搜索到:" ), "file-control" => @@ -209,13 +209,14 @@ $text = array( "Insert tab indent" => "插入tab / 插入选择", "Wrap with div" => "封装 <div>", "Wrap with span" => "封装 <span>", - "Wrap unwrap p" => "封装 / 撤销封装 with <p>", - "Wrap unwrap a" => "封装 / 撤销封装 with <a>", - "Wrap unwrap b" => "封装 / 撤销封装 with <b>", - "Wrap unwrap i" => "封装 / 撤销封装 with <i>", - "Wrap unwrap strong" => "封装 / 撤销封装 with <strong>", - "Wrap unwrap em" => "封装 / 撤销封装 with <em>", - "Wrap unwrap h1..." => "封装 / 撤销封装 with <h1> - <h3>", + "Wrap unwrap p" => "封装 / 撤销封装 <p>", + "Wrap unwrap a" => "封装 / 撤销封装 <a>", + "Wrap unwrap b" => "封装 / 撤销封装 <b>", + "Wrap unwrap i" => "封装 / 撤销封装 <i>", + "Wrap unwrap strong" => "封装 / 撤销封装 <strong>", + "Wrap unwrap em" => "封装 / 撤销封装 <em>", + "Wrap unwrap li" => "封装 / 撤销封装 <li>", + "Wrap unwrap h1..." => "封装 / 撤销封装 <h1> - <h3>", "End line with..." => "换行 <br>", "Close tab" => "关闭选项卡", "Select file folder" => "选择文件 / 文件夹", @@ -240,6 +241,34 @@ $text = array( "Cancel tasks" => "取消任务" ), + "ice-coder" => + array( + "No text selected..." => "搜索中没有选中的文本", + "Creating Folder" => "正在创建文件夹", + "Sorry you can..." => "抱歉, 只能同时打开100个文件!", + "Opening File" => "正在打开文件", + "Enter relative file..." => "输入本地相对路径 (前缀 /) 或远程 URL", + "Getting" => "正在获取", + "Please enter the..." => "请输入新的名称为", + "Renaming to" => "正在重命名", + "Moving to" => "正在移动到", + "Deleting File" => "正在删除文件", + "Pasting File" => "正在粘贴文件", + "Sorry cannot paste..." => "抱歉, 无法粘贴到根路径", + "Nothing to paste..." => "粘贴失败, 请先复制一个文件 / 文件夹!", + "Replacing text in" => "正在替换文本", + "Cancelled tasks" => "取消任务", + "Open previous files" => "打开以前的文件?", + "Please enter your..." => "请输入您的 GitHub token (允许使用个人令牌或客户端令牌). 可以查看 Github Auth Token 的帮助 > 更多信息在设置窗口", + "This will compare..." => "将比较和显示你的本地目录和 GitHub repo 之间的差异. 确定吗?", + "Please note for..." => "请注意: 需要更新才能正常工作, 你需要为所有 ICEcoder 文件和文件夹设置写入和删除权限. 如果您需要恢复 ICEcoder 到这个版本, 你可以在 /tmp 目录找到它们. 点击 OK 继续使用自动升级或点击 cancel 访问 ICEcoder 网站, 您也可以到 grab 的项目首页下载 zip 来进行手动更新.", + "You can start..." => "你可以在 帮助 > 设置中启动错误报告", + "Error cannot find..." => "错误: 无法找到/进入错误文件路径", + "No new errors..." => "没有新的错误被找到", + "You have made..." => "您已做的更改未保存。您确定要关闭它而不保存吗?", + "Close all tabs" => "是否关闭所有选项卡?" + ), + "login" => array( "set password" => "设置密码", @@ -267,6 +296,130 @@ $text = array( "selected" => "选择", "found in" => "查询结果在", "Replaced" => "已替换" + ), + + "plugins-manager" => + array( + "ICEcoder needs to..." => "ICEcoder 需要重新加载,这个插件才可以使用。现在刷新吗?", + "saving plugins" => "正在保存插件...", + "Cannot update config..." => "不能更新配置文件. 请为", + "and try again" => "设置写入权限并刷新重试", + "couldnt delete dir" => "不能删除目录", + "couldnt delete file" => "不能删除文件", + "plugins" => "插件", + "Guide to writing..." => "编写插件指南", + "Manage Installed" => "管理已安装", + "URL" => "URL", + "Target" => "目标", + "Timer" => "定时器", + "Update" => "更新", + "Install" => "安装", + "Uninstall" => "卸载", + "Reload after install..." => "安装后需要刷新" + ), + + "properties" => + array( + "properties" => "属性", + "Size" => "尺寸", + "Modified" => "修改", + "Last access" => "最近访问", + "Type" => "类型", + "Readable Writeable" => "可读 / 可写", + "Relative path" => "相对路径", + "Absolute path" => "绝对路径", + "Contains" => "包含", + "Permissions" => "权限", + "Owner" => "所有者", + "Group" => "组", + "Public" => "公众", + "Read" => "读取", + "Write" => "写入", + "Execute" => "执行", + "Change to" => "更改为", + "update" => "更新" + ), + + "settings-common" => + array( + "Your document does..." => "你的文档不是UTF-8编码, 它将被转换" + ), + + "settings-save-current-files" => + array( + "Cannot update config..." => "不能更新配置文件. 请为", + "and try again" => "增加写入权限并再次尝试" + ), + + "settings-screen" => + array( + "settings" => "设置", + "version" => "版本", + "website" => "网站", + "git" => "git", + "codemirror dir" => "codemirror 目录", + "codemirror version" => "codemirror 版本", + "file manager root" => "文件管理器的根目录ROOT", + "Free to use..." => "您可以自由使用它, 无论商业与否, 只需让我知道有任何很酷的使用或有定制的:)同样我们无任何责任和任何担保, 使用所有的责任是你的. 很多个人和公司为 ICEcoder 作出过贡献, 在此篇幅有限无法一一列举, 请访问贡献者详细列表", + "functionality" => "功能", + "check for updates..." => "启动时检查更新", + "auto open last..." => "启动时自动载入最后打开的文件", + "when finding in..." => "在查找文件时, 排除", + "assisting" => "辅助", + "code assist" => "代码辅助", + "visible tabs" => "缩进线可见", + "locked nav" => "锁定导航", + "tag wrapper command" => "标签封装命令", + "auto-complete on" => "打开自动完成", + "security" => "安全", + "new password" => "新密码", + "8 chars min" => "最少8个字符", + "confirm password" => "确认密码", + "banned files/folders" => "禁止文件 / 文件夹", + "banned paths" => "禁止路径", + "ip addresses" => "ip 地址", + "Slash prefixed comma..." => "斜线前缀, 以半角逗号分隔", + "Comma delimited" => "以半角逗号分隔", + "style" => "样式", + "theme" => "主题", + "line wrapping" => "换行", + "indent type" => "缩进类型", + "indent size" => "缩进大小", + "font size" => "字体大小", + "layout" => "布局", + "plugin panel aligned" => "插件板对齐", + "file manager" => "文件管理器", + "root" => "root", + "Slash prefixed" => "斜线前缀", + "bug reporting" => "错误报告", + "check in files" => "检查文件", + "every" => "任何", + "secs getting last" => "秒, 最后得到", + "lines" => "行", + "multi-user" => "多用户", + "Make sure you..." => "确保你没有把自己锁了", + "Registration" => "启用注册", + "auth token" => "auth token", + "Required to get..." => "如需要得到差异列表, 提交您 GitHub 上托管的 repo 等. 如果你还没有一个, 您可以使用:".PHP_EOL.PHP_EOL. + "- 个人访问令牌 (https://help.github.com/articles/creating-an-access-token-for-command-line-use), 或".PHP_EOL. + "- 完整的客户端/机密双令牌 (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL. + "我们不建议您在此处设置您的令牌, 更安全的方式是当ICEcoder要求输入时将其只保存在会话中.".PHP_EOL.PHP_EOL. + "然而, 如果你在一个值得信赖和安全的环境中工作, 把它设置在这里是更有效的.", + "Sorry cannot commit..." => "抱歉, 设置不能在演示模式下提交", + "update" => "更新" + ), + + "settings-update" => + array( + "Cannot update config..." => "不能更新配置文件. 请为", + "and try again" => " 增加写入权限并重新尝试", + "and press refresh" => "增加写入权限并刷新" + ), + + "updater" => + array( + "Update appears to..." => "更新似乎是成功的" ) + ); ?> \ No newline at end of file diff --git a/lang/chinese-traditional.php b/lang/chinese-traditional.php index c88f11d..fb8ace3 100644 --- a/lang/chinese-traditional.php +++ b/lang/chinese-traditional.php @@ -209,13 +209,14 @@ $text = array( "Insert tab indent" => "插入tab / 插入選擇", "Wrap with div" => "封裝 <div>", "Wrap with span" => "封裝 <span>", - "Wrap unwrap p" => "封裝 / 撤銷封裝 with <p>", - "Wrap unwrap a" => "封裝 / 撤銷封裝 with <a>", - "Wrap unwrap b" => "封裝 / 撤銷封裝 with <b>", - "Wrap unwrap i" => "封裝 / 撤銷封裝 with <i>", - "Wrap unwrap strong" => "封裝 / 撤銷封裝 with <strong>", - "Wrap unwrap em" => "封裝 / 撤銷封裝 with <em>", - "Wrap unwrap h1..." => "封裝 / 撤銷封裝 with <h1> - <h3>", + "Wrap unwrap p" => "封裝 / 撤銷封裝 <p>", + "Wrap unwrap a" => "封裝 / 撤銷封裝 <a>", + "Wrap unwrap b" => "封裝 / 撤銷封裝 <b>", + "Wrap unwrap i" => "封裝 / 撤銷封裝 <i>", + "Wrap unwrap strong" => "封裝 / 撤銷封裝 <strong>", + "Wrap unwrap em" => "封裝 / 撤銷封裝 <em>", + "Wrap unwrap li" => "封装 / 撤销封装 <li>", + "Wrap unwrap h1..." => "封裝 / 撤銷封裝 <h1> - <h3>", "End line with..." => "換行 <br>", "Close tab" => "關閉選項卡", "Select file folder" => "選擇文件 / 文件夾", @@ -240,6 +241,34 @@ $text = array( "Cancel tasks" => "取消任务" ), + "ice-coder" => + array( + "No text selected..." => "搜索中沒有選中的文件", + "Creating Folder" => "正在創建文件夾", + "Sorry you can..." => "抱歉, 衹能同時打開100個文件!", + "Opening File" => "正在打開文件", + "Enter relative file..." => "輸入本地相對路徑 (前綴 /) 或遠程 URL", + "Getting" => "正在獲取", + "Please enter the..." => "請輸入新的名稱爲", + "Renaming to" => "正在重命名", + "Moving to" => "正在移動到", + "Deleting File" => "正在刪除文件", + "Pasting File" => "正在粘貼文件", + "Sorry cannot paste..." => "抱歉, 無法粘貼到根路徑", + "Nothing to paste..." => "粘貼失敗, 請先複製一個文件 / 文件夾!", + "Replacing text in" => "正在替換文本", + "Cancelled tasks" => "取消任務", + "Open previous files" => "打開以前的文件?", + "Please enter your..." => "請輸入您的 GitHub token (允許使用個人令牌或客戶端令牌). 可以查看 Github Auth Token 的幫助 > 更多信息在 幫助 > 設置窗口", + "This will compare..." => "將比較和顯示您的本地目錄和 GitHub repo 之間的差異. 確定嗎?", + "Please note for..." => "請注意: 需要更新才能工作, 您需要爲所有 ICEcoder 文件和文件夾設置寫如何刪除權限. 如果您需要恢復 ICEcoder 到這個版本, 您可以在 /tmp 目錄找到它們. 點擊 OK 繼續使用自動升級或點擊 cancel 訪問 ICEcoder 官方網站, 您也可以到 GitHub 的項目首頁下載 zip 來手動進行更新.", + "You can start..." => "您可以在 幫助 > 設置中啓動錯誤報告", + "Error cannot find..." => "錯誤: 無法找到和進入錯誤日志文件路徑", + "No new errors..." => "沒有新的錯誤被找到", + "You have made..." => "您已做的更改未保存。您確定要關閉它而不保存嗎?", + "Close all tabs" => "是否關閉所有選項卡?" + ), + "login" => array( "set password" => "設置密碼", @@ -267,6 +296,130 @@ $text = array( "selected" => "選擇", "found in" => "查詢結果在", "Replaced" => "已替換" + ), + + "plugins-manager" => + array( + "ICEcoder needs to..." => "ICEcoder 需要重新加載, 這個插件才可以使用。現在刷新嗎?", + "saving plugins" => "正在保存插件...", + "Cannot update config..." => "不能更新配置文件. 請爲", + "and try again" => "設置寫入權限并刷新重試", + "couldnt delete dir" => "不能刪除目錄", + "couldnt delete file" => "不能刪除文件", + "plugins" => "插件", + "Guide to writing..." => "編寫插件指南", + "Manage Installed" => "管理已安裝", + "URL" => "URL", + "Target" => "目標", + "Timer" => "定時器", + "Update" => "更新", + "Install" => "安裝", + "Uninstall" => "卸載", + "Reload after install..." => "安裝后需要刷新" + ), + + "properties" => + array( + "properties" => "屬性", + "Size" => "尺寸", + "Modified" => "修改", + "Last access" => "最近訪問", + "Type" => "類型", + "Readable Writeable" => "可讀 / 可寫", + "Relative path" => "相對路徑", + "Absolute path" => "絕對路徑", + "Contains" => "包含", + "Permissions" => "權限", + "Owner" => "所有者", + "Group" => "組", + "Public" => "公衆", + "Read" => "讀取", + "Write" => "寫入", + "Execute" => "執行", + "Change to" => "更改爲", + "update" => "更新" + ), + + "settings-common" => + array( + "Your document does..." => "你的文檔不是 UTF-8 編碼, 它將被轉換" + ), + + "settings-save-current-files" => + array( + "Cannot update config..." => "不能更新配置文件. 請爲", + "and try again" => "增加寫入權限并再次嘗試" + ), + + "settings-screen" => + array( + "settings" => "設置", + "version" => "版本", + "website" => "網站", + "git" => "git", + "codemirror dir" => "codemirror 目錄", + "codemirror version" => "codemirror 版本", + "file manager root" => "文件管理器的根目錄 ROOT", + "Free to use..." => "您可以免費使用它, 無論商業與否, 衹需讓我知道任何很酷的或有定製的:)同樣我們無任何責任和任何擔保, 使用所有的責任都是你的. 很多個人和公司爲 ICEcoder 作出過貢獻, 在此篇幅有限無法一一列舉, 請訪問貢獻者詳細列表", + "functionality" => "功能", + "check for updates..." => "啓動時檢查更新", + "auto open last..." => "啓動時自動載入最后打開的文件", + "when finding in..." => "在查找文件時, 排除", + "assisting" => "輔助", + "code assist" => "代碼輔助", + "visible tabs" => "縮進綫可見", + "locked nav" => "鎖定導航", + "tag wrapper command" => "標簽封裝命令", + "auto-complete on" => "打開自動完成", + "security" => "安全", + "new password" => "新密碼", + "8 chars min" => "至少8個字符", + "confirm password" => "確認密碼", + "banned files/folders" => "禁止文件 / 文件夾", + "banned paths" => "禁止路徑", + "ip addresses" => "ip 地址", + "Slash prefixed comma..." => "斜綫前綴, 以半角逗號分隔", + "Comma delimited" => "以半角逗號分隔", + "style" => "樣式", + "theme" => "主題", + "line wrapping" => "換行", + "indent type" => "縮進類型", + "indent size" => "縮進大小", + "font size" => "字體大小", + "layout" => "佈局", + "plugin panel aligned" => "插件版對齊", + "file manager" => "文件管理器", + "root" => "root", + "Slash prefixed" => "斜綫前綴", + "bug reporting" => "報告錯誤", + "check in files" => "檢查文件", + "every" => "任何", + "secs getting last" => "秒, 最後得到", + "lines" => "行", + "multi-user" => "多用戶", + "Make sure you..." => "確保你沒有把自己鎖了", + "Registration" => "啓用注冊", + "auth token" => "auth token", + "Required to get..." => "如需要得到差異列表, 提交您 GitHub 上托管的 repo 等. 如果你還沒有一個, 你可以使用:".PHP_EOL.PHP_EOL. + "- 個人令牌訪問 (https://help.github.com/articles/creating-an-access-token-for-command-line-use), 或".PHP_EOL. + "- 完整的客戶端/機密雙令牌 (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL. + "我們不建議您在此處設置令牌, 更安全的方式是當 ICEcoder 要求輸入時將其隻保存在會話中.".PHP_EOL.PHP_EOL. + "然而, 如果你在一個信賴和安全的環境下工作, 把它設置在這裏是更有效的.", + "Sorry cannot commit..." => "抱歉, 在演示模式下不能提交設置", + "update" => "更新" + ), + + "settings-update" => + array( + "Cannot update config..." => "不能更新配置文件. 請爲", + "and try again" => " 增加寫入權限并重新嘗試", + "and press refresh" => " 增加寫入權限并重新嘗試" + ), + + "updater" => + array( + "Update appears to..." => "更新似乎是成功的" ) + ); ?> \ No newline at end of file From 95b5126227f0682ba61fa3c6484c5cbceb7c5e77 Mon Sep 17 00:00:00 2001 From: lzh Date: Fri, 22 Aug 2014 16:57:22 +0800 Subject: [PATCH 16/16] An error search drop-down box MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If these two values ​​are translated into Chinese, will lead to a drop-down box to select the Replace option, it canceled the translation. --- lang/chinese-simplified.php | 4 ++-- lang/chinese-traditional.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lang/chinese-simplified.php b/lang/chinese-simplified.php index a640586..0724201 100644 --- a/lang/chinese-simplified.php +++ b/lang/chinese-simplified.php @@ -90,8 +90,8 @@ $text = array( "Close all tabs" => "关闭所有选项卡", "Alphabetize tabs" => "按字母顺序排列的选项卡", "Find" => "搜索", - "in" => "搜索", - "and" => "替换", + "in" => "in", + "and" => "and", "replace" => "替换", "replace all" => "替换所有", "this document" => "当前文件", diff --git a/lang/chinese-traditional.php b/lang/chinese-traditional.php index fb8ace3..58384b8 100644 --- a/lang/chinese-traditional.php +++ b/lang/chinese-traditional.php @@ -90,8 +90,8 @@ $text = array( "Close all tabs" => "關閉所有選項卡", "Alphabetize tabs" => "按字母順序排序選項卡", "Find" => "檢索", - "in" => "檢索", - "and" => "替換", + "in" => "in", + "and" => "and", "replace" => "替換", "replace all" => "替換所有", "this document" => "當前文件",