Compare commits
897 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
330ec0d605 | ||
|
|
462ee75980 | ||
|
|
0470231a37 | ||
|
|
6f9c127c1b | ||
|
|
3facbe2de6 | ||
|
|
ea49fed017 | ||
|
|
166b5e34b9 | ||
|
|
e52998079b | ||
|
|
863f13d3cf | ||
|
|
f2b4535d31 | ||
|
|
5695d2c3c7 | ||
|
|
879feca2ce | ||
|
|
4ee4ab9247 | ||
|
|
af86a93993 | ||
|
|
343c07c238 | ||
|
|
7fd08afe14 | ||
|
|
6117145239 | ||
|
|
1403136d0e | ||
|
|
fc0a994b6b | ||
|
|
9712c369c1 | ||
|
|
85a9cfaecd | ||
|
|
c34b2608cc | ||
|
|
ad30ff3c45 | ||
|
|
74355c0d00 | ||
|
|
208897b040 | ||
|
|
8d6c58af36 | ||
|
|
12e6bedf6d | ||
|
|
0cb99eb48f | ||
|
|
45ec256d4f | ||
|
|
04fa37a358 | ||
|
|
c21d57e36e | ||
|
|
de5e759ac9 | ||
|
|
bb1c047ece | ||
|
|
67d44e56bb | ||
|
|
c7c984f66a | ||
|
|
d320bb7172 | ||
|
|
fb82ab881c | ||
|
|
366ad3257e | ||
|
|
75de0f3a08 | ||
|
|
47f64bf874 | ||
|
|
400ef8cfce | ||
|
|
797df35ffe | ||
|
|
551f3f248b | ||
|
|
a2cf9483d6 | ||
|
|
77329e9119 | ||
|
|
7faf1099b0 | ||
|
|
8893a29bd3 | ||
|
|
669827653e | ||
|
|
c6058959e3 | ||
|
|
b3acb61201 | ||
|
|
7d66f32e5b | ||
|
|
0583f1ea1c | ||
|
|
f278394346 | ||
|
|
ba634bbeed | ||
|
|
a488c19d61 | ||
|
|
c1982279f4 | ||
|
|
ed6a9bb03c | ||
|
|
4d7ac54e6b | ||
|
|
fac5bf8662 | ||
|
|
8f1cca087b | ||
|
|
d826469c49 | ||
|
|
878ceef2ec | ||
|
|
e1a1b1b1cf | ||
|
|
9f408abb34 | ||
|
|
52d7d0819c | ||
|
|
46a0e62a84 | ||
|
|
bd692990cb | ||
|
|
9b7f0bd15a | ||
|
|
fcd1b4fb64 | ||
|
|
c96c5cd12b | ||
|
|
db3130f911 | ||
|
|
ae37460e92 | ||
|
|
2e601a4ccc | ||
|
|
f76270b7b9 | ||
|
|
694daa15aa | ||
|
|
0d8cd9a612 | ||
|
|
2171dd5664 | ||
|
|
9a9d66ffb9 | ||
|
|
b5566c8382 | ||
|
|
385d4e0efd | ||
|
|
8eeb64ad09 | ||
|
|
caa9fab5b4 | ||
|
|
c087283e46 | ||
|
|
55f8b9adc2 | ||
|
|
9cb89463bb | ||
|
|
3a48fd9cdd | ||
|
|
c4bba758c7 | ||
|
|
db44da92f1 | ||
|
|
bedd75c0c5 | ||
|
|
c277d3a6bb | ||
|
|
f681cc88c9 | ||
|
|
c106c0a410 | ||
|
|
50a4a3e4bc | ||
|
|
586a4e6a64 | ||
|
|
ef98e4f5ab | ||
|
|
7f039d81d8 | ||
|
|
ab39f9f51b | ||
|
|
47263bdbed | ||
|
|
b65a7a690e | ||
|
|
3dc26528b4 | ||
|
|
73305b3be2 | ||
|
|
de4c63c37e | ||
|
|
8b720dd0e6 | ||
|
|
f0a2bbc531 | ||
|
|
c322c501ac | ||
|
|
5f948d9c56 | ||
|
|
b2d13e0e30 | ||
|
|
4a1ba5dfe3 | ||
|
|
6861fa9ced | ||
|
|
29857e7d70 | ||
|
|
b50bc5e598 | ||
|
|
aaf1ce1526 | ||
|
|
36b20938b7 | ||
|
|
670e3c47a6 | ||
|
|
4ef49f0172 | ||
|
|
aef3340d0f | ||
|
|
3ea34fb87a | ||
|
|
efdf729f83 | ||
|
|
5ce3a9912c | ||
|
|
2897c75a3d | ||
|
|
fe29a57cdb | ||
|
|
f75bd9fe53 | ||
|
|
a7c0123072 | ||
|
|
3b84af75d2 | ||
|
|
505f5b35c7 | ||
|
|
77c0f61d7b | ||
|
|
8d5715ebcd | ||
|
|
cab12fd73c | ||
|
|
7acd53dd54 | ||
|
|
edbe8af62f | ||
|
|
6f50a23f3b | ||
|
|
53e5a4e3cb | ||
|
|
b1ef03513c | ||
|
|
e8cc6c540a | ||
|
|
f137a95704 | ||
|
|
453850a891 | ||
|
|
b3e2b497ff | ||
|
|
c8b1e573b5 | ||
|
|
180d26f837 | ||
|
|
07117591e5 | ||
|
|
d72c8a46d5 | ||
|
|
a24d9fc8da | ||
|
|
39541f4c81 | ||
|
|
7fc5c23b50 | ||
|
|
edc9f858fc | ||
|
|
429fab5c17 | ||
|
|
1c7d96a026 | ||
|
|
394a264ca9 | ||
|
|
1a2a921753 | ||
|
|
b650b64455 | ||
|
|
d43278fbf7 | ||
|
|
4a23fe12a3 | ||
|
|
2d45e6e297 | ||
|
|
df685b308e | ||
|
|
2b44096c4e | ||
|
|
b5550d4ba8 | ||
|
|
7e40f9c044 | ||
|
|
add96dc9d2 | ||
|
|
5fe097a84a | ||
|
|
0651eedf1e | ||
|
|
f7089ec6ca | ||
|
|
2f66afa4e4 | ||
|
|
6e12da596c | ||
|
|
cf26b5b4e2 | ||
|
|
ebf12f327f | ||
|
|
34d0dec862 | ||
|
|
24c6b870fc | ||
|
|
860590214d | ||
|
|
1d69fabce2 | ||
|
|
669d06a4c6 | ||
|
|
ce38b126dc | ||
|
|
18d66850fa | ||
|
|
78a4a35b17 | ||
|
|
e524012ec0 | ||
|
|
3432f9c331 | ||
|
|
f1b090351a | ||
|
|
2371455f45 | ||
|
|
27b2953d9d | ||
|
|
b90dbda803 | ||
|
|
3d0625231f | ||
|
|
d66d41b17f | ||
|
|
741a2bcc93 | ||
|
|
24c4409c12 | ||
|
|
94512c31dd | ||
|
|
56d1f60675 | ||
|
|
defc8d4ffa | ||
|
|
51661a41dd | ||
|
|
1ffea52e69 | ||
|
|
0e64cbdc7f | ||
|
|
b77fc4d3bb | ||
|
|
1fce0da413 | ||
|
|
5e1557171f | ||
|
|
35d1b01727 | ||
|
|
94310226b4 | ||
|
|
af19a5b825 | ||
|
|
aa939e2655 | ||
|
|
cd96fe4326 | ||
|
|
eff7e7fa85 | ||
|
|
de1704a617 | ||
|
|
40a2db446a | ||
|
|
bf997fba42 | ||
|
|
e462633dab | ||
|
|
760a90dadc | ||
|
|
bbac17a2b7 | ||
|
|
10f269734c | ||
|
|
b6baa39f0b | ||
|
|
2a4d75bf9d | ||
|
|
15bce56967 | ||
|
|
14f84ad668 | ||
|
|
cea9a4e299 | ||
|
|
dff76a439d | ||
|
|
4751e1c24a | ||
|
|
ec14772abd | ||
|
|
4f47e717e6 | ||
|
|
41e3e1c821 | ||
|
|
5ec63bb973 | ||
|
|
e05fc594b7 | ||
|
|
79669fe8c7 | ||
|
|
68078c028c | ||
|
|
fa2478f2f7 | ||
|
|
8c237d3551 | ||
|
|
5ae9e0b92e | ||
|
|
3258c45eb9 | ||
|
|
b797acea90 | ||
|
|
91f47a4e20 | ||
|
|
cfc4410275 | ||
|
|
bc552d2d2f | ||
|
|
30025333dd | ||
|
|
5ac87ffbf7 | ||
|
|
a08586252a | ||
|
|
d1e4404038 | ||
|
|
b235b40715 | ||
|
|
9b7d987d0b | ||
|
|
5b88f7172b | ||
|
|
4c5583e191 | ||
|
|
bafe89a7f3 | ||
|
|
1942b3143d | ||
|
|
28d03e07b5 | ||
|
|
6579378e19 | ||
|
|
8a57b241bd | ||
|
|
ff39f44569 | ||
|
|
9ea459787e | ||
|
|
084269bf35 | ||
|
|
b601ea0e85 | ||
|
|
574e71f5e7 | ||
|
|
8189985a72 | ||
|
|
bfc1babb64 | ||
|
|
4edbf8d79d | ||
|
|
f411370e32 | ||
|
|
2ea0ae8793 | ||
|
|
ed08585867 | ||
|
|
15eba478ac | ||
|
|
16da2d6a88 | ||
|
|
0b7120633d | ||
|
|
14ab734c96 | ||
|
|
414e814de2 | ||
|
|
d14fae9dd4 | ||
|
|
114b7e5d10 | ||
|
|
4c27e23d80 | ||
|
|
fbd8475b6e | ||
|
|
d348191a37 | ||
|
|
3958742c12 | ||
|
|
0e11386448 | ||
|
|
ee1d3cfcc0 | ||
|
|
491191ebde | ||
|
|
bf44a2515e | ||
|
|
869d184939 | ||
|
|
401568677e | ||
|
|
ea7a697e7d | ||
|
|
a029eceb9d | ||
|
|
7ef86360d8 | ||
|
|
746b133a9a | ||
|
|
c141fc2864 | ||
|
|
cc5cd166be | ||
|
|
2409bc19c2 | ||
|
|
297e482b11 | ||
|
|
46c1bdce02 | ||
|
|
be74745318 | ||
|
|
cd2e2747c5 | ||
|
|
3a7e728871 | ||
|
|
3db00273dd | ||
|
|
e47b21ce80 | ||
|
|
7adefd1ff0 | ||
|
|
1276e894b5 | ||
|
|
9c90ffea43 | ||
|
|
1ace4e4ed9 | ||
|
|
cf8a214a24 | ||
|
|
24ea1b108f | ||
|
|
3b0a00af02 | ||
|
|
2ad6f7fbc8 | ||
|
|
54dd10b3bd | ||
|
|
cc62871815 | ||
|
|
72da926a4d | ||
|
|
d2f34c50df | ||
|
|
8454d918e8 | ||
|
|
048577270b | ||
|
|
113e045f26 | ||
|
|
9c35206e3b | ||
|
|
a807e598fe | ||
|
|
fbfd58b788 | ||
|
|
4314ca2917 | ||
|
|
f3b89056ac | ||
|
|
d887eca03c | ||
|
|
9ba08fbf48 | ||
|
|
15fe43098f | ||
|
|
05de070294 | ||
|
|
024e943d9f | ||
|
|
f82914207d | ||
|
|
941801078c | ||
|
|
296eeff33d | ||
|
|
0715782e3a | ||
|
|
44aca5ad1b | ||
|
|
d24a2745ce | ||
|
|
8da637c650 | ||
|
|
b9be8cb70d | ||
|
|
99a9c7ef80 | ||
|
|
744cfbad16 | ||
|
|
2db030c772 | ||
|
|
a7e4c28b2f | ||
|
|
7115b9e22c | ||
|
|
4cb2ac98d3 | ||
|
|
28881db771 | ||
|
|
7791fe21f0 | ||
|
|
73148eabed | ||
|
|
5f0d7a5a19 | ||
|
|
86b62d52a0 | ||
|
|
6c656f3b8f | ||
|
|
eaf466c2ce | ||
|
|
4efb9732a5 | ||
|
|
f80eacbd32 | ||
|
|
7cb52f4fc4 | ||
|
|
06fba7c7cb | ||
|
|
9499e98066 | ||
|
|
c2ec4b0ae3 | ||
|
|
ac3f3c4328 | ||
|
|
6857dadec5 | ||
|
|
9619dce24f | ||
|
|
f10909160a | ||
|
|
693b871456 | ||
|
|
4612e5036d | ||
|
|
abbc92d319 | ||
|
|
dec62a3380 | ||
|
|
80216b434d | ||
|
|
95b5126227 | ||
|
|
34b34bcc88 | ||
|
|
e41cb4dc09 | ||
|
|
a6b45171ab | ||
|
|
32e05ea8ac | ||
|
|
0bbc9347aa | ||
|
|
f4894fa838 | ||
|
|
34074e5e64 | ||
|
|
d5bca0c38a | ||
|
|
f96651b9e8 | ||
|
|
0d4ca6a483 | ||
|
|
195ba788bb | ||
|
|
f5d19d99d4 | ||
|
|
115169b16b | ||
|
|
90a58f0300 | ||
|
|
4e3d73e8b9 | ||
|
|
cdd38a88d2 | ||
|
|
bc9639dac2 | ||
|
|
38b7de4b5c | ||
|
|
1ee215516b | ||
|
|
92c4ec0223 | ||
|
|
aab3c5a433 | ||
|
|
ee9e053bb9 | ||
|
|
21ab41e677 | ||
|
|
2d76f1f7f3 | ||
|
|
9cd6f8ee8a | ||
|
|
b8f02708e0 | ||
|
|
d201e85d86 | ||
|
|
ec05132fa8 | ||
|
|
664d8058b5 | ||
|
|
87450c0f78 | ||
|
|
84d1402eef | ||
|
|
6746e0bc52 | ||
|
|
a0bc6e8c31 | ||
|
|
5de4cd657e | ||
|
|
230e8a0983 | ||
|
|
3d66db04ae | ||
|
|
6a81152b05 | ||
|
|
c988f76612 | ||
|
|
cc152db8ba | ||
|
|
6fedd41ced | ||
|
|
64c2cfa06f | ||
|
|
82c80a24b2 | ||
|
|
504e2e20fe | ||
|
|
21b4c8bc12 | ||
|
|
f6aff03fb9 | ||
|
|
30561cc2ae | ||
|
|
e8035c122c | ||
|
|
69aec81200 | ||
|
|
9b55729c91 | ||
|
|
d4131f3238 | ||
|
|
dbffc2925c | ||
|
|
8ec0d518ad | ||
|
|
3bf0e2e4db | ||
|
|
4803eb2bac | ||
|
|
8509a62f06 | ||
|
|
bc8d715a56 | ||
|
|
b0fd03f571 | ||
|
|
a55102106e | ||
|
|
78c3308686 | ||
|
|
fe6424a02b | ||
|
|
047a33a604 | ||
|
|
85e8d93190 | ||
|
|
5c2e7c0adf | ||
|
|
d63c1bf2ca | ||
|
|
36b03e840d | ||
|
|
b7731e03ff | ||
|
|
5c29bb106a | ||
|
|
52b29423d0 | ||
|
|
4707e15c12 | ||
|
|
484911c103 | ||
|
|
5aa5dc82bb | ||
|
|
5d4e22d363 | ||
|
|
d5b6355261 | ||
|
|
f71a16552e | ||
|
|
f2d06a1a2c | ||
|
|
ed5f2259c3 | ||
|
|
b344d1e91e | ||
|
|
5f051baeca | ||
|
|
4122a90175 | ||
|
|
823c2c1b5f | ||
|
|
5f778043e4 | ||
|
|
38c7885718 | ||
|
|
bada48ae76 | ||
|
|
2624469d61 | ||
|
|
40fbc83547 | ||
|
|
284f5acfb7 | ||
|
|
227e3cbb94 | ||
|
|
362c9935bf | ||
|
|
58eebb15fb | ||
|
|
10b6a3556f | ||
|
|
77559afe60 | ||
|
|
20f6e838ba | ||
|
|
ffef82fe76 | ||
|
|
3a98c3a457 | ||
|
|
dabb9ba79c | ||
|
|
f5cd2b46b9 | ||
|
|
5e792b80a9 | ||
|
|
020a95bd80 | ||
|
|
13d63575f6 | ||
|
|
4870fe9560 | ||
|
|
882e026f76 | ||
|
|
2136ad1955 | ||
|
|
fa97918684 | ||
|
|
05daab79c1 | ||
|
|
57a789f046 | ||
|
|
61cc4b82f0 | ||
|
|
a8168fed86 | ||
|
|
47af30e0b6 | ||
|
|
277dc67243 | ||
|
|
0e48b8d5a3 | ||
|
|
3bc4deac68 | ||
|
|
6a50c1ce2b | ||
|
|
55def4402a | ||
|
|
b23e2fe40b | ||
|
|
8133adeab8 | ||
|
|
a470daf9f5 | ||
|
|
1a85a1ddc3 | ||
|
|
ab8ad37467 | ||
|
|
b811cfe92f | ||
|
|
fa40d9dad7 | ||
|
|
16c7e5d010 | ||
|
|
d5e6fb041f | ||
|
|
f00686c679 | ||
|
|
45fef223ce | ||
|
|
89c811d140 | ||
|
|
17ec5f517c | ||
|
|
56511b66bb | ||
|
|
4f5ed727f0 | ||
|
|
75885aecf5 | ||
|
|
fa48d0d2f0 | ||
|
|
ec44407e25 | ||
|
|
394067ff07 | ||
|
|
ed800a01ce | ||
|
|
599af8d96b | ||
|
|
9a2881cd7b | ||
|
|
6e7612d3ec | ||
|
|
0413ec4414 | ||
|
|
c88d4f46e3 | ||
|
|
1306853e1e | ||
|
|
078068e252 | ||
|
|
69d8ddce77 | ||
|
|
3926d4468c | ||
|
|
493950667b | ||
|
|
d6a7db8f3e | ||
|
|
d6fcf5a121 | ||
|
|
328a8a9808 | ||
|
|
0daf6c3081 | ||
|
|
1d5c74e424 | ||
|
|
c6bb782118 | ||
|
|
b45817ec65 | ||
|
|
a15dfda92c | ||
|
|
6030e9a4ca | ||
|
|
a3c0243772 | ||
|
|
3d89af7e17 | ||
|
|
03655c4c4b | ||
|
|
acfcb6bf9d | ||
|
|
57593d730f | ||
|
|
a141a4bdf5 | ||
|
|
33e751027d | ||
|
|
e65d2b0805 | ||
|
|
9d7f7f8e93 | ||
|
|
91f14785b7 | ||
|
|
1267a3c895 | ||
|
|
0748f495df | ||
|
|
83f6c5cf53 | ||
|
|
1385d65a2b | ||
|
|
68e5e0b5a5 | ||
|
|
72e98816f0 | ||
|
|
641ff79493 | ||
|
|
dff16e9b3f | ||
|
|
7264deee67 | ||
|
|
f08552c5e3 | ||
|
|
b131ef1524 | ||
|
|
b6c16d938d | ||
|
|
842d7e5b37 | ||
|
|
91a28990e0 | ||
|
|
7843b5fac6 | ||
|
|
bdf3d6615e | ||
|
|
1c81713063 | ||
|
|
12ced2c7fc | ||
|
|
43ddc3d78f | ||
|
|
400524169e | ||
|
|
6b35c5dd2c | ||
|
|
33b2c7a06c | ||
|
|
04a11bdc4a | ||
|
|
9ee6a80209 | ||
|
|
686813e6be | ||
|
|
08c17154a8 | ||
|
|
0beb6df2c8 | ||
|
|
68a08d9636 | ||
|
|
5ea9c857e9 | ||
|
|
147a3863a6 | ||
|
|
fba79948c8 | ||
|
|
29e5dc0eae | ||
|
|
949e5790a3 | ||
|
|
b05e3f73b1 | ||
|
|
5dbf7982ce | ||
|
|
5a82761df8 | ||
|
|
748c378ff8 | ||
|
|
edf297305d | ||
|
|
869e2eb206 | ||
|
|
d2149be2ef | ||
|
|
c9399446eb | ||
|
|
e7aa4b4507 | ||
|
|
a0e3a04d1a | ||
|
|
210c92b52c | ||
|
|
a6435ec894 | ||
|
|
aab8e5cb3d | ||
|
|
b0743473f1 | ||
|
|
7b04a95eda | ||
|
|
4b8e40b20e | ||
|
|
70ca67b3d5 | ||
|
|
f5be67675b | ||
|
|
b2117ece23 | ||
|
|
56688c3836 | ||
|
|
3192015816 | ||
|
|
b6884e05cb | ||
|
|
f159d3710f | ||
|
|
51d9865dfc | ||
|
|
ecffe3a43e | ||
|
|
ddd7924960 | ||
|
|
93798fce93 | ||
|
|
0ad8c80514 | ||
|
|
b4d2947709 | ||
|
|
95f146a1c4 | ||
|
|
6aa3f45ef4 | ||
|
|
1bcc773bba | ||
|
|
116f8bdff7 | ||
|
|
c83e375e20 | ||
|
|
c73bd8f66c | ||
|
|
91ea437f37 | ||
|
|
5b71272bc3 | ||
|
|
51098b1ea3 | ||
|
|
02565fa3b8 | ||
|
|
4ebed7f960 | ||
|
|
8668c9ee3b | ||
|
|
c80cbbdc0a | ||
|
|
1584a7d1a6 | ||
|
|
62ec680dc0 | ||
|
|
3d8bd14774 | ||
|
|
59a749c5ce | ||
|
|
4124d64a58 | ||
|
|
39398cecae | ||
|
|
7df2a8c0ac | ||
|
|
cb5d3d8b1a | ||
|
|
8b30c8b2eb | ||
|
|
272bc177ce | ||
|
|
7c230cf09a | ||
|
|
638c61e014 | ||
|
|
ae864faa84 | ||
|
|
bfea966a14 | ||
|
|
58e7c5ec42 | ||
|
|
080aaea4f7 | ||
|
|
eb634555df | ||
|
|
d42ea6f54b | ||
|
|
3c4a0eba6d | ||
|
|
a7f3205edb | ||
|
|
71875e8f5b | ||
|
|
bccc613de0 | ||
|
|
accf9b0936 | ||
|
|
aa5ee237c9 | ||
|
|
1024c3ff50 | ||
|
|
1c915d81da | ||
|
|
31aceb7226 | ||
|
|
8f06223c07 | ||
|
|
73047549a6 | ||
|
|
ade86eda6b | ||
|
|
03c0842ba2 | ||
|
|
5dcfe80e71 | ||
|
|
3e0f41b585 | ||
|
|
887c7c1873 | ||
|
|
67ab6c8f9c | ||
|
|
af0e81e690 | ||
|
|
e54d735614 | ||
|
|
d298de35cf | ||
|
|
c55c154856 | ||
|
|
4a36e1ec64 | ||
|
|
53d712b0ba | ||
|
|
801597f91f | ||
|
|
af0de2020e | ||
|
|
1a5540de98 | ||
|
|
bac9dd697c | ||
|
|
62c28202a0 | ||
|
|
33b47df99b | ||
|
|
58075d175d | ||
|
|
581cef9550 | ||
|
|
d393018cd3 | ||
|
|
67a2c86173 | ||
|
|
8918abde7e | ||
|
|
b1277ab4a8 | ||
|
|
b692360fb0 | ||
|
|
bbd96d39ab | ||
|
|
6fcb600fd9 | ||
|
|
0da9371c4d | ||
|
|
209fb3be48 | ||
|
|
2817e9c34b | ||
|
|
ffed16ef15 | ||
|
|
43cc344b8b | ||
|
|
0a4c4f14eb | ||
|
|
61a22c060e | ||
|
|
1e322fedcd | ||
|
|
0da7ca2e4d | ||
|
|
f134eca08b | ||
|
|
6c717e995a | ||
|
|
07f5a9b548 | ||
|
|
951637127b | ||
|
|
6aa2d0e533 | ||
|
|
82b6af34ca | ||
|
|
d91ea35dfe | ||
|
|
1e0ff0dfd6 | ||
|
|
7147373d86 | ||
|
|
d86326aca8 | ||
|
|
b37a723296 | ||
|
|
7af428572d | ||
|
|
0c2962ca15 | ||
|
|
fcc1af71ec | ||
|
|
77b7a88651 | ||
|
|
f6e508fbff | ||
|
|
1ef5f94953 | ||
|
|
9fbf1e7504 | ||
|
|
c67d93e869 | ||
|
|
57d96b0bf9 | ||
|
|
50d2dadea2 | ||
|
|
bf755abbf4 | ||
|
|
ebc2764aab | ||
|
|
2912e351f5 | ||
|
|
f0e47e07bc | ||
|
|
ee917776f0 | ||
|
|
fe2719a6e3 | ||
|
|
0765ab378b | ||
|
|
0c9db2c573 | ||
|
|
12a8f2e81c | ||
|
|
ace40e0c29 | ||
|
|
c9e163a2df | ||
|
|
93d717c1aa | ||
|
|
b3510dfb67 | ||
|
|
5c347829a2 | ||
|
|
89e34fb24e | ||
|
|
9160b5cc8f | ||
|
|
00b02af6e6 | ||
|
|
6701c18929 | ||
|
|
659befd66a | ||
|
|
424992a783 | ||
|
|
0ab6745704 | ||
|
|
927471e165 | ||
|
|
72cd067341 | ||
|
|
0128499d73 | ||
|
|
9c4a74c406 | ||
|
|
8e139c481c | ||
|
|
45ad87c2eb | ||
|
|
cee91cc2d3 | ||
|
|
f4e2f24f65 | ||
|
|
f0da80b886 | ||
|
|
cf11fb5c3d | ||
|
|
729b48566e | ||
|
|
4f97378655 | ||
|
|
1a848823c5 | ||
|
|
526edbaca7 | ||
|
|
fa98c842d0 | ||
|
|
c7a0a4a493 | ||
|
|
cfa3fd69e0 | ||
|
|
e3bc4db204 | ||
|
|
6589e819f4 | ||
|
|
eefaebace8 | ||
|
|
35887450ce | ||
|
|
0f74645173 | ||
|
|
3388e090bb | ||
|
|
1d50425de1 | ||
|
|
4b69c44559 | ||
|
|
c673beab9d | ||
|
|
ce5b63a91c | ||
|
|
660d44cd76 | ||
|
|
3922ffcafb | ||
|
|
6d84279d46 | ||
|
|
bfbac046db | ||
|
|
3d071d8687 | ||
|
|
330d668d07 | ||
|
|
d07b5c550c | ||
|
|
3fbbeb0c5d | ||
|
|
637a853141 | ||
|
|
28387df059 | ||
|
|
6765770dea | ||
|
|
43d22c40a8 | ||
|
|
438aa25cc1 | ||
|
|
98a340a751 | ||
|
|
568cb08e4a | ||
|
|
93c76533d6 | ||
|
|
64a7520466 | ||
|
|
1b7d647d60 | ||
|
|
046bec29b2 | ||
|
|
13df17f236 | ||
|
|
631de2350d | ||
|
|
aa8ac56ff7 | ||
|
|
8df54367c5 | ||
|
|
a194aad9e9 | ||
|
|
fd2197eace | ||
|
|
c0983e0a62 | ||
|
|
4df33254d0 | ||
|
|
1c7fb3b61c | ||
|
|
c592e704ba | ||
|
|
e92662fd9b | ||
|
|
1dbc102cfc | ||
|
|
65c77f7d93 | ||
|
|
e715d02ea1 | ||
|
|
e5fac3efa3 | ||
|
|
4eb6d699c1 | ||
|
|
5c80c1eb94 | ||
|
|
60cbfd486c | ||
|
|
a5b36447b3 | ||
|
|
ce62da5b5c | ||
|
|
5e4a185e9d | ||
|
|
08765c7957 | ||
|
|
28e71adaf5 | ||
|
|
ea79d2900e | ||
|
|
28c59f88e9 | ||
|
|
fb3dc200fb | ||
|
|
e7223c96b7 | ||
|
|
90a531d2a8 | ||
|
|
1f1c71b218 | ||
|
|
b39fdaca95 | ||
|
|
65039feeba | ||
|
|
c62dabc3e3 | ||
|
|
b1f22c4421 | ||
|
|
2814739c1e | ||
|
|
d2cb97ab0a | ||
|
|
98514ac46f | ||
|
|
aaa10a5fff | ||
|
|
49c3f0e4bb | ||
|
|
673c779ca5 | ||
|
|
8c74c7a77c | ||
|
|
376d564004 | ||
|
|
26f3265299 | ||
|
|
d3d5554969 | ||
|
|
5ea3854043 | ||
|
|
ca08a101d1 | ||
|
|
d4de692822 | ||
|
|
2dc702efc6 | ||
|
|
8601363d46 | ||
|
|
110a342bb1 | ||
|
|
e4caebc368 | ||
|
|
934d353537 | ||
|
|
11465d1946 | ||
|
|
fdc5bc34fd | ||
|
|
10a91df31c | ||
|
|
c503830c25 | ||
|
|
0195524f17 | ||
|
|
c2ce4bed8f | ||
|
|
fd8b77a9df | ||
|
|
4b83741dbe | ||
|
|
ab5fbe8a9c | ||
|
|
30aef59c55 | ||
|
|
813d5f01dd | ||
|
|
040a19a400 | ||
|
|
13a5298be7 | ||
|
|
b366e47197 | ||
|
|
9bbc41d7b7 | ||
|
|
4a8703d5f0 | ||
|
|
dcb5c886fa | ||
|
|
fbc6425a13 | ||
|
|
332f2a492d | ||
|
|
86cab45ce2 | ||
|
|
0759aad72f | ||
|
|
9781a05d78 | ||
|
|
8c61b0ebc0 | ||
|
|
1d8f8dcdf9 | ||
|
|
8716026ae8 | ||
|
|
6dbef7c929 | ||
|
|
47775ac085 | ||
|
|
51aa38764a | ||
|
|
2b8010c24a | ||
|
|
8a24eeff24 | ||
|
|
863ece66fa | ||
|
|
b8f696ad69 | ||
|
|
40b31c7d00 | ||
|
|
d85983bbe9 | ||
|
|
143e006e55 | ||
|
|
68a8d6e052 | ||
|
|
ca22316ae4 | ||
|
|
46c0ec9c63 | ||
|
|
c9d4be3d1c | ||
|
|
f9b008f7d2 | ||
|
|
f2474ba8da | ||
|
|
52fc11eb57 | ||
|
|
72ab42e7bf | ||
|
|
5b32c96f1d | ||
|
|
846204c244 | ||
|
|
c0e62ad8e8 | ||
|
|
31bbbe098a | ||
|
|
0fb89ceb06 | ||
|
|
0f904e66d4 | ||
|
|
74739343d4 | ||
|
|
d4f1b9988b | ||
|
|
cd38113da2 | ||
|
|
c95772122f | ||
|
|
3196275bb1 | ||
|
|
483ee12ccd | ||
|
|
ba14dfdc46 | ||
|
|
b7a2e7d097 | ||
|
|
6ff8dcffc1 | ||
|
|
bc8903d3c8 | ||
|
|
6e43e7a336 | ||
|
|
df81050c2a | ||
|
|
ebfafc66cb | ||
|
|
bccf5d0f48 | ||
|
|
761a9f4505 | ||
|
|
5f29c44a9e | ||
|
|
c5b22427f3 | ||
|
|
d3737f5a62 | ||
|
|
7bef57ca76 | ||
|
|
ebff4cd1c0 | ||
|
|
b0dc96c888 | ||
|
|
13e1b933e1 | ||
|
|
b25cab1fe6 | ||
|
|
01ebefcb74 | ||
|
|
e536b0d5e2 | ||
|
|
2147f1f129 | ||
|
|
e684a1e91b | ||
|
|
6f95aeac8f | ||
|
|
f071f84eb4 | ||
|
|
8db478d8f0 | ||
|
|
ce481b0f25 | ||
|
|
6af16d7fca | ||
|
|
850cc3b2bd | ||
|
|
a1363ef41b | ||
|
|
71f82251f6 | ||
|
|
eaf39661ba | ||
|
|
2b991d9958 | ||
|
|
eed8b29753 | ||
|
|
ebc8e3a27b | ||
|
|
aa2ed93d74 | ||
|
|
ba520e6aa1 | ||
|
|
61373e87ea | ||
|
|
4dd95b1b0f | ||
|
|
f160b4fa80 | ||
|
|
de637f1048 | ||
|
|
f628868a8e | ||
|
|
9dd2221841 | ||
|
|
24d68efd4b | ||
|
|
ad8c3da48b | ||
|
|
7255ea4805 | ||
|
|
47cf80102c | ||
|
|
2cebe069f2 | ||
|
|
3326ba5784 | ||
|
|
5e5fa22566 | ||
|
|
95dbad842d | ||
|
|
5576c9e2e9 | ||
|
|
3577fc613e | ||
|
|
7bdeefd7e1 | ||
|
|
df2697c68b | ||
|
|
d859075e97 | ||
|
|
d6c282a70a | ||
|
|
f541fae982 | ||
|
|
054cc5cad9 |
11
.gitignore
vendored
@@ -1,4 +1,9 @@
|
||||
error-log.txt
|
||||
backups/*.zip
|
||||
lib/config*.php
|
||||
!lib/config-template.php
|
||||
backups/*
|
||||
!backups/index.php
|
||||
lib/config-*
|
||||
plugins/*
|
||||
!plugins/index.php
|
||||
test/test-file1.txt
|
||||
tmp/*
|
||||
!tmp/index.php
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (C) 2013 by Marijn Haverbeke <marijnh@gmail.com>
|
||||
Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -17,7 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Please note that some subdirectories of the CodeMirror distribution
|
||||
include their own LICENSE files, and are released under different
|
||||
licences.
|
||||
@@ -32,7 +32,7 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.CodeMirror-hint-active {
|
||||
li.CodeMirror-hint-active {
|
||||
background: #08f;
|
||||
color: white;
|
||||
}
|
||||
73
CodeMirror/addon/lint/lint.css
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
/* The lint marker gutter */
|
||||
.CodeMirror-lint-markers {
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-tooltip {
|
||||
background-color: infobackground;
|
||||
border: 1px solid black;
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
color: infotext;
|
||||
font-family: monospace;
|
||||
font-size: 10pt;
|
||||
overflow: hidden;
|
||||
padding: 2px 5px;
|
||||
position: fixed;
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
z-index: 100;
|
||||
max-width: 600px;
|
||||
opacity: 0;
|
||||
transition: opacity .4s;
|
||||
-moz-transition: opacity .4s;
|
||||
-webkit-transition: opacity .4s;
|
||||
-o-transition: opacity .4s;
|
||||
-ms-transition: opacity .4s;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
|
||||
background-position: left bottom;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-mark-error {
|
||||
background-image:
|
||||
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
|
||||
;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-mark-warning {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
|
||||
}
|
||||
|
||||
.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
|
||||
padding-left: 18px;
|
||||
background-position: top left;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
|
||||
}
|
||||
|
||||
.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
|
||||
}
|
||||
|
||||
.CodeMirror-lint-marker-multiple {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
|
||||
background-repeat: no-repeat;
|
||||
background-position: right bottom;
|
||||
width: 100%; height: 100%;
|
||||
}
|
||||
55
CodeMirror/lib/codemirror-compressed.js
vendored
Normal file
@@ -4,10 +4,7 @@
|
||||
/* Set height, width, borders, and global font properties here */
|
||||
font-family: monospace;
|
||||
height: 300px;
|
||||
}
|
||||
.CodeMirror-scroll {
|
||||
/* Set scrolling behaviour here */
|
||||
overflow: auto;
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* PADDING */
|
||||
@@ -36,28 +33,62 @@
|
||||
min-width: 20px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.CodeMirror-guttermarker { color: black; }
|
||||
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||
|
||||
/* CURSOR */
|
||||
|
||||
.CodeMirror div.CodeMirror-cursor {
|
||||
border-left: 1px solid black;
|
||||
z-index: 3;
|
||||
}
|
||||
/* Shown when moving in bi-directional text */
|
||||
.CodeMirror div.CodeMirror-secondarycursor {
|
||||
border-left: 1px solid silver;
|
||||
}
|
||||
.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
|
||||
.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
background: #7e7;
|
||||
}
|
||||
.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
|
||||
z-index: 1;
|
||||
}
|
||||
/* Can style cursor different in overwrite (non-insert) mode */
|
||||
.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}
|
||||
|
||||
.cm-tab { display: inline-block; }
|
||||
.cm-animate-fat-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||
-moz-animation: blink 1.06s steps(1) infinite;
|
||||
animation: blink 1.06s steps(1) infinite;
|
||||
}
|
||||
@-moz-keyframes blink {
|
||||
0% { background: #7e7; }
|
||||
50% { background: none; }
|
||||
100% { background: #7e7; }
|
||||
}
|
||||
@-webkit-keyframes blink {
|
||||
0% { background: #7e7; }
|
||||
50% { background: none; }
|
||||
100% { background: #7e7; }
|
||||
}
|
||||
@keyframes blink {
|
||||
0% { background: #7e7; }
|
||||
50% { background: none; }
|
||||
100% { background: #7e7; }
|
||||
}
|
||||
|
||||
/* Can style cursor different in overwrite (non-insert) mode */
|
||||
div.CodeMirror-overwrite div.CodeMirror-cursor {}
|
||||
|
||||
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||
|
||||
.CodeMirror-ruler {
|
||||
border-left: 1px solid #ccc;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
/* DEFAULT THEME */
|
||||
|
||||
@@ -65,16 +96,16 @@
|
||||
.cm-s-default .cm-atom {color: #219;}
|
||||
.cm-s-default .cm-number {color: #164;}
|
||||
.cm-s-default .cm-def {color: #00f;}
|
||||
.cm-s-default .cm-variable {color: black;}
|
||||
.cm-s-default .cm-variable,
|
||||
.cm-s-default .cm-punctuation,
|
||||
.cm-s-default .cm-property,
|
||||
.cm-s-default .cm-operator {}
|
||||
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||
.cm-s-default .cm-variable-3 {color: #085;}
|
||||
.cm-s-default .cm-property {color: black;}
|
||||
.cm-s-default .cm-operator {color: black;}
|
||||
.cm-s-default .cm-comment {color: #a50;}
|
||||
.cm-s-default .cm-string {color: #a11;}
|
||||
.cm-s-default .cm-string-2 {color: #f50;}
|
||||
.cm-s-default .cm-meta {color: #555;}
|
||||
.cm-s-default .cm-error {color: #f00;}
|
||||
.cm-s-default .cm-qualifier {color: #555;}
|
||||
.cm-s-default .cm-builtin {color: #30a;}
|
||||
.cm-s-default .cm-bracket {color: #997;}
|
||||
@@ -90,11 +121,19 @@
|
||||
.cm-header, .cm-strong {font-weight: bold;}
|
||||
.cm-em {font-style: italic;}
|
||||
.cm-link {text-decoration: underline;}
|
||||
.cm-strikethrough {text-decoration: line-through;}
|
||||
|
||||
.cm-s-default .cm-error {color: #f00;}
|
||||
.cm-invalidchar {color: #f00;}
|
||||
|
||||
.CodeMirror-composing { border-bottom: 2px solid; }
|
||||
|
||||
/* Default styles for common addons */
|
||||
|
||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||
|
||||
/* STOP */
|
||||
|
||||
@@ -102,24 +141,24 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
the editor. You probably shouldn't touch them. */
|
||||
|
||||
.CodeMirror {
|
||||
line-height: 1;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.CodeMirror-scroll {
|
||||
overflow: scroll !important; /* Things will break if this is overridden */
|
||||
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||
/* See overflow: hidden in .CodeMirror */
|
||||
margin-bottom: -30px; margin-right: -30px;
|
||||
padding-bottom: 30px; padding-right: 30px;
|
||||
padding-bottom: 30px;
|
||||
height: 100%;
|
||||
outline: none; /* Prevent dragging from highlighting the element */
|
||||
position: relative;
|
||||
}
|
||||
.CodeMirror-sizer {
|
||||
position: relative;
|
||||
border-right: 30px solid transparent;
|
||||
}
|
||||
|
||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||
@@ -149,27 +188,36 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
|
||||
.CodeMirror-gutters {
|
||||
position: absolute; left: 0; top: 0;
|
||||
padding-bottom: 30px;
|
||||
z-index: 3;
|
||||
}
|
||||
.CodeMirror-gutter {
|
||||
white-space: normal;
|
||||
height: 100%;
|
||||
padding-bottom: 30px;
|
||||
margin-bottom: -32px;
|
||||
display: inline-block;
|
||||
margin-bottom: -30px;
|
||||
/* Hack to make IE7 behave */
|
||||
*zoom:1;
|
||||
*display:inline;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper {
|
||||
position: absolute;
|
||||
z-index: 4;
|
||||
height: 100%;
|
||||
}
|
||||
.CodeMirror-gutter-elt {
|
||||
position: absolute;
|
||||
cursor: default;
|
||||
z-index: 4;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.CodeMirror-lines {
|
||||
cursor: text;
|
||||
min-height: 1px; /* prevents collapsing before first draw */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
/* Reset some styles that the rest of the page might have set */
|
||||
@@ -186,12 +234,14 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
.CodeMirror-wrap pre {
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.CodeMirror-linebackground {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: 0; bottom: 0;
|
||||
@@ -204,17 +254,26 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.CodeMirror-widget {
|
||||
display: inline-block;
|
||||
.CodeMirror-widget {}
|
||||
|
||||
.CodeMirror-code {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.CodeMirror-wrap .CodeMirror-scroll {
|
||||
overflow-x: hidden;
|
||||
/* Force content-box sizing for the elements where we expect it */
|
||||
.CodeMirror-scroll,
|
||||
.CodeMirror-sizer,
|
||||
.CodeMirror-gutter,
|
||||
.CodeMirror-gutters,
|
||||
.CodeMirror-linenumber {
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.CodeMirror-measure {
|
||||
position: absolute;
|
||||
width: 100%; height: 0px;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
@@ -222,16 +281,24 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
|
||||
.CodeMirror div.CodeMirror-cursor {
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
border-right: none;
|
||||
width: 0;
|
||||
}
|
||||
.CodeMirror-focused div.CodeMirror-cursor {
|
||||
|
||||
div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
}
|
||||
.CodeMirror-focused div.CodeMirror-cursors {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.CodeMirror-selected { background: #d9d9d9; }
|
||||
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||
.CodeMirror-crosshair { cursor: crosshair; }
|
||||
.CodeMirror ::selection { background: #d7d4f0; }
|
||||
.CodeMirror ::-moz-selection { background: #d7d4f0; }
|
||||
|
||||
.cm-searching {
|
||||
background: #ffa;
|
||||
@@ -241,9 +308,18 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
|
||||
.CodeMirror span { *vertical-align: text-bottom; }
|
||||
|
||||
/* Used to force a border model for a node */
|
||||
.cm-force-border { padding-right: .1px; }
|
||||
|
||||
@media print {
|
||||
/* Hide the cursor when printing */
|
||||
.CodeMirror div.CodeMirror-cursor {
|
||||
.CodeMirror div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
/* See issue #2901 */
|
||||
.cm-tab-wrap-hack:after { content: ''; }
|
||||
|
||||
/* Help users use markselection to safely style text background */
|
||||
span.CodeMirror-selectedtext { background: none; }
|
||||
40
CodeMirror/theme/3024-day.css
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
|
||||
Name: 3024 day
|
||||
Author: Jan T. Sott (http://github.com/idleberg)
|
||||
|
||||
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
||||
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-3024-day.CodeMirror {background: #f7f7f7; color: #3a3432;}
|
||||
.cm-s-3024-day div.CodeMirror-selected {background: #d6d5d4 !important;}
|
||||
.cm-s-3024-day.CodeMirror ::selection { background: #d6d5d4; }
|
||||
.cm-s-3024-day.CodeMirror ::-moz-selection { background: #d9d9d9; }
|
||||
|
||||
.cm-s-3024-day .CodeMirror-gutters {background: #f7f7f7; border-right: 0px;}
|
||||
.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }
|
||||
.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }
|
||||
.cm-s-3024-day .CodeMirror-linenumber {color: #807d7c;}
|
||||
|
||||
.cm-s-3024-day .CodeMirror-cursor {border-left: 1px solid #5c5855 !important;}
|
||||
|
||||
.cm-s-3024-day span.cm-comment {color: #cdab53;}
|
||||
.cm-s-3024-day span.cm-atom {color: #a16a94;}
|
||||
.cm-s-3024-day span.cm-number {color: #a16a94;}
|
||||
|
||||
.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute {color: #01a252;}
|
||||
.cm-s-3024-day span.cm-keyword {color: #db2d20;}
|
||||
.cm-s-3024-day span.cm-string {color: #fded02;}
|
||||
|
||||
.cm-s-3024-day span.cm-variable {color: #01a252;}
|
||||
.cm-s-3024-day span.cm-variable-2 {color: #01a0e4;}
|
||||
.cm-s-3024-day span.cm-def {color: #e8bbd0;}
|
||||
.cm-s-3024-day span.cm-bracket {color: #3a3432;}
|
||||
.cm-s-3024-day span.cm-tag {color: #db2d20;}
|
||||
.cm-s-3024-day span.cm-link {color: #a16a94;}
|
||||
.cm-s-3024-day span.cm-error {background: #db2d20; color: #5c5855;}
|
||||
|
||||
.cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;}
|
||||
.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important;}
|
||||
39
CodeMirror/theme/3024-night.css
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
|
||||
Name: 3024 night
|
||||
Author: Jan T. Sott (http://github.com/idleberg)
|
||||
|
||||
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
||||
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-3024-night.CodeMirror {background: #090300; color: #d6d5d4;}
|
||||
.cm-s-3024-night div.CodeMirror-selected {background: #3a3432 !important;}
|
||||
.cm-s-3024-night.CodeMirror ::selection { background: rgba(58, 52, 50, .99); }
|
||||
.cm-s-3024-night.CodeMirror ::-moz-selection { background: rgba(58, 52, 50, .99); }
|
||||
.cm-s-3024-night .CodeMirror-gutters {background: #090300; border-right: 0px;}
|
||||
.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }
|
||||
.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }
|
||||
.cm-s-3024-night .CodeMirror-linenumber {color: #5c5855;}
|
||||
|
||||
.cm-s-3024-night .CodeMirror-cursor {border-left: 1px solid #807d7c !important;}
|
||||
|
||||
.cm-s-3024-night span.cm-comment {color: #cdab53;}
|
||||
.cm-s-3024-night span.cm-atom {color: #a16a94;}
|
||||
.cm-s-3024-night span.cm-number {color: #a16a94;}
|
||||
|
||||
.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute {color: #01a252;}
|
||||
.cm-s-3024-night span.cm-keyword {color: #db2d20;}
|
||||
.cm-s-3024-night span.cm-string {color: #fded02;}
|
||||
|
||||
.cm-s-3024-night span.cm-variable {color: #01a252;}
|
||||
.cm-s-3024-night span.cm-variable-2 {color: #01a0e4;}
|
||||
.cm-s-3024-night span.cm-def {color: #e8bbd0;}
|
||||
.cm-s-3024-night span.cm-bracket {color: #d6d5d4;}
|
||||
.cm-s-3024-night span.cm-tag {color: #db2d20;}
|
||||
.cm-s-3024-night span.cm-link {color: #a16a94;}
|
||||
.cm-s-3024-night span.cm-error {background: #db2d20; color: #807d7c;}
|
||||
|
||||
.cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;}
|
||||
.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
@@ -15,7 +15,6 @@
|
||||
.cm-s-ambiance .cm-string { color: #8f9d6a; }
|
||||
.cm-s-ambiance .cm-string-2 { color: #9d937c; }
|
||||
.cm-s-ambiance .cm-meta { color: #D2A8A1; }
|
||||
.cm-s-ambiance .cm-error { color: #AF2018; }
|
||||
.cm-s-ambiance .cm-qualifier { color: yellow; }
|
||||
.cm-s-ambiance .cm-builtin { color: #9999cc; }
|
||||
.cm-s-ambiance .cm-bracket { color: #24C2C7; }
|
||||
@@ -26,22 +25,20 @@
|
||||
.cm-s-ambiance .cm-hr { color: pink; }
|
||||
.cm-s-ambiance .cm-link { color: #F4C20B; }
|
||||
.cm-s-ambiance .cm-special { color: #FF9D00; }
|
||||
.cm-s-ambiance .cm-error { color: #AF2018; }
|
||||
|
||||
.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
|
||||
.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }
|
||||
|
||||
.cm-s-ambiance .CodeMirror-selected {
|
||||
background: rgba(255, 255, 255, 0.15);
|
||||
}
|
||||
.cm-s-ambiance .CodeMirror-focused .CodeMirror-selected {
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
}
|
||||
.cm-s-ambiance .CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
|
||||
.cm-s-ambiance.CodeMirror-focused .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
|
||||
.cm-s-ambiance.CodeMirror ::selection { background: rgba(255, 255, 255, 0.10); }
|
||||
.cm-s-ambiance.CodeMirror ::-moz-selection { background: rgba(255, 255, 255, 0.10); }
|
||||
|
||||
/* Editor styling */
|
||||
|
||||
.cm-s-ambiance.CodeMirror {
|
||||
line-height: 1.40em;
|
||||
font-family: Monaco, Menlo,"Andale Mono","lucida console","Courier New",monospace !important;
|
||||
color: #E6E1DC;
|
||||
background-color: #202020;
|
||||
-webkit-box-shadow: inset 0 0 10px black;
|
||||
@@ -57,15 +54,18 @@
|
||||
|
||||
.cm-s-ambiance .CodeMirror-linenumber {
|
||||
text-shadow: 0px 1px 1px #4d4d4d;
|
||||
color: #222;
|
||||
color: #111;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }
|
||||
.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }
|
||||
|
||||
.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor {
|
||||
border-left: 1px solid #7991E8;
|
||||
}
|
||||
|
||||
.cm-s-ambiance .activeline {
|
||||
.cm-s-ambiance .CodeMirror-activeline-background {
|
||||
background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
|
||||
}
|
||||
|
||||
38
CodeMirror/theme/base16-dark.css
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
|
||||
Name: Base16 Default Dark
|
||||
Author: Chris Kempson (http://chriskempson.com)
|
||||
|
||||
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)
|
||||
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-base16-dark.CodeMirror {background: #151515; color: #e0e0e0;}
|
||||
.cm-s-base16-dark div.CodeMirror-selected {background: #303030 !important;}
|
||||
.cm-s-base16-dark.CodeMirror ::selection { background: rgba(48, 48, 48, .99); }
|
||||
.cm-s-base16-dark.CodeMirror ::-moz-selection { background: rgba(48, 48, 48, .99); }
|
||||
.cm-s-base16-dark .CodeMirror-gutters {background: #151515; border-right: 0px;}
|
||||
.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }
|
||||
.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }
|
||||
.cm-s-base16-dark .CodeMirror-linenumber {color: #505050;}
|
||||
.cm-s-base16-dark .CodeMirror-cursor {border-left: 1px solid #b0b0b0 !important;}
|
||||
|
||||
.cm-s-base16-dark span.cm-comment {color: #8f5536;}
|
||||
.cm-s-base16-dark span.cm-atom {color: #aa759f;}
|
||||
.cm-s-base16-dark span.cm-number {color: #aa759f;}
|
||||
|
||||
.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute {color: #90a959;}
|
||||
.cm-s-base16-dark span.cm-keyword {color: #ac4142;}
|
||||
.cm-s-base16-dark span.cm-string {color: #f4bf75;}
|
||||
|
||||
.cm-s-base16-dark span.cm-variable {color: #90a959;}
|
||||
.cm-s-base16-dark span.cm-variable-2 {color: #6a9fb5;}
|
||||
.cm-s-base16-dark span.cm-def {color: #d28445;}
|
||||
.cm-s-base16-dark span.cm-bracket {color: #e0e0e0;}
|
||||
.cm-s-base16-dark span.cm-tag {color: #ac4142;}
|
||||
.cm-s-base16-dark span.cm-link {color: #aa759f;}
|
||||
.cm-s-base16-dark span.cm-error {background: #ac4142; color: #b0b0b0;}
|
||||
|
||||
.cm-s-base16-dark .CodeMirror-activeline-background {background: #202020 !important;}
|
||||
.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
38
CodeMirror/theme/base16-light.css
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
|
||||
Name: Base16 Default Light
|
||||
Author: Chris Kempson (http://chriskempson.com)
|
||||
|
||||
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)
|
||||
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-base16-light.CodeMirror {background: #f5f5f5; color: #202020;}
|
||||
.cm-s-base16-light div.CodeMirror-selected {background: #e0e0e0 !important;}
|
||||
.cm-s-base16-light.CodeMirror ::selection { background: #e0e0e0; }
|
||||
.cm-s-base16-light.CodeMirror ::-moz-selection { background: #e0e0e0; }
|
||||
.cm-s-base16-light .CodeMirror-gutters {background: #f5f5f5; border-right: 0px;}
|
||||
.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }
|
||||
.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }
|
||||
.cm-s-base16-light .CodeMirror-linenumber {color: #b0b0b0;}
|
||||
.cm-s-base16-light .CodeMirror-cursor {border-left: 1px solid #505050 !important;}
|
||||
|
||||
.cm-s-base16-light span.cm-comment {color: #8f5536;}
|
||||
.cm-s-base16-light span.cm-atom {color: #aa759f;}
|
||||
.cm-s-base16-light span.cm-number {color: #aa759f;}
|
||||
|
||||
.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute {color: #90a959;}
|
||||
.cm-s-base16-light span.cm-keyword {color: #ac4142;}
|
||||
.cm-s-base16-light span.cm-string {color: #f4bf75;}
|
||||
|
||||
.cm-s-base16-light span.cm-variable {color: #90a959;}
|
||||
.cm-s-base16-light span.cm-variable-2 {color: #6a9fb5;}
|
||||
.cm-s-base16-light span.cm-def {color: #d28445;}
|
||||
.cm-s-base16-light span.cm-bracket {color: #202020;}
|
||||
.cm-s-base16-light span.cm-tag {color: #ac4142;}
|
||||
.cm-s-base16-light span.cm-link {color: #aa759f;}
|
||||
.cm-s-base16-light span.cm-error {background: #ac4142; color: #505050;}
|
||||
|
||||
.cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;}
|
||||
.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
|
||||
.cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; }
|
||||
.cm-s-blackboard.CodeMirror ::selection { background: rgba(37, 59, 118, .99); }
|
||||
.cm-s-blackboard.CodeMirror ::-moz-selection { background: rgba(37, 59, 118, .99); }
|
||||
.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
|
||||
.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }
|
||||
.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }
|
||||
.cm-s-blackboard .CodeMirror-linenumber { color: #888; }
|
||||
.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }
|
||||
|
||||
@@ -16,10 +20,13 @@
|
||||
.cm-s-blackboard .cm-string { color: #61CE3C; }
|
||||
.cm-s-blackboard .cm-string-2 { color: #61CE3C; }
|
||||
.cm-s-blackboard .cm-meta { color: #D8FA3C; }
|
||||
.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
|
||||
.cm-s-blackboard .cm-builtin { color: #8DA6CE; }
|
||||
.cm-s-blackboard .cm-tag { color: #8DA6CE; }
|
||||
.cm-s-blackboard .cm-attribute { color: #8DA6CE; }
|
||||
.cm-s-blackboard .cm-header { color: #FF6400; }
|
||||
.cm-s-blackboard .cm-hr { color: #AEAEAE; }
|
||||
.cm-s-blackboard .cm-link { color: #8DA6CE; }
|
||||
.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
|
||||
|
||||
.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;}
|
||||
.cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}
|
||||
@@ -1,6 +1,10 @@
|
||||
.cm-s-cobalt.CodeMirror { background: #002240; color: white; }
|
||||
.cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; }
|
||||
.cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); }
|
||||
.cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); }
|
||||
.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
|
||||
.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }
|
||||
.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
|
||||
.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }
|
||||
.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
@@ -12,7 +16,10 @@
|
||||
.cm-s-cobalt span.cm-meta { color: #ff9d00; }
|
||||
.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
|
||||
.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }
|
||||
.cm-s-cobalt span.cm-error { color: #9d1e15; }
|
||||
.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
|
||||
.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
|
||||
.cm-s-cobalt span.cm-link { color: #845dc4; }
|
||||
.cm-s-cobalt span.cm-error { color: #9d1e15; }
|
||||
|
||||
.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;}
|
||||
.cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}
|
||||
33
CodeMirror/theme/colorforth.css
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
.cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
|
||||
.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
|
||||
.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
|
||||
.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
|
||||
.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
|
||||
.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
.cm-s-colorforth span.cm-comment { color: #ededed; }
|
||||
.cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; }
|
||||
.cm-s-colorforth span.cm-keyword { color: #ffd900; }
|
||||
.cm-s-colorforth span.cm-builtin { color: #00d95a; }
|
||||
.cm-s-colorforth span.cm-variable { color: #73ff00; }
|
||||
.cm-s-colorforth span.cm-string { color: #007bff; }
|
||||
.cm-s-colorforth span.cm-number { color: #00c4ff; }
|
||||
.cm-s-colorforth span.cm-atom { color: #606060; }
|
||||
|
||||
.cm-s-colorforth span.cm-variable-2 { color: #EEE; }
|
||||
.cm-s-colorforth span.cm-variable-3 { color: #DDD; }
|
||||
.cm-s-colorforth span.cm-property {}
|
||||
.cm-s-colorforth span.cm-operator {}
|
||||
|
||||
.cm-s-colorforth span.cm-meta { color: yellow; }
|
||||
.cm-s-colorforth span.cm-qualifier { color: #FFF700; }
|
||||
.cm-s-colorforth span.cm-bracket { color: #cc7; }
|
||||
.cm-s-colorforth span.cm-tag { color: #FFBD40; }
|
||||
.cm-s-colorforth span.cm-attribute { color: #FFF700; }
|
||||
.cm-s-colorforth span.cm-error { color: #f00; }
|
||||
|
||||
.cm-s-colorforth .CodeMirror-selected { background: #333d53 !important; }
|
||||
|
||||
.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }
|
||||
|
||||
.cm-s-colorforth .CodeMirror-activeline-background {background: #253540 !important;}
|
||||
@@ -11,15 +11,13 @@
|
||||
.cm-s-eclipse span.cm-comment {color: #3F7F5F;}
|
||||
.cm-s-eclipse span.cm-string {color: #2A00FF;}
|
||||
.cm-s-eclipse span.cm-string-2 {color: #f50;}
|
||||
.cm-s-eclipse span.cm-error {color: #f00;}
|
||||
.cm-s-eclipse span.cm-qualifier {color: #555;}
|
||||
.cm-s-eclipse span.cm-builtin {color: #30a;}
|
||||
.cm-s-eclipse span.cm-bracket {color: #cc7;}
|
||||
.cm-s-eclipse span.cm-tag {color: #170;}
|
||||
.cm-s-eclipse span.cm-attribute {color: #00c;}
|
||||
.cm-s-eclipse span.cm-link {color: #219;}
|
||||
.cm-s-eclipse span.cm-error {color: #f00;}
|
||||
|
||||
.cm-s-eclipse .CodeMirror-matchingbracket {
|
||||
outline:1px solid grey;
|
||||
color:black !important;
|
||||
}
|
||||
.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}
|
||||
.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
|
||||
@@ -6,5 +6,8 @@
|
||||
.cm-s-elegant span.cm-qualifier {color: #555;}
|
||||
.cm-s-elegant span.cm-keyword {color: #730;}
|
||||
.cm-s-elegant span.cm-builtin {color: #30a;}
|
||||
.cm-s-elegant span.cm-error {background-color: #fdd;}
|
||||
.cm-s-elegant span.cm-link {color: #762;}
|
||||
.cm-s-elegant span.cm-error {background-color: #fdd;}
|
||||
|
||||
.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;}
|
||||
.cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
|
||||
@@ -1,21 +1,34 @@
|
||||
.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }
|
||||
.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; }
|
||||
.cm-s-erlang-dark.CodeMirror ::selection { background: rgba(179, 101, 57, .99); }
|
||||
.cm-s-erlang-dark.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); }
|
||||
.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
|
||||
.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
|
||||
.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
|
||||
.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
.cm-s-erlang-dark span.cm-atom { color: #845dc4; }
|
||||
.cm-s-erlang-dark span.cm-atom { color: #f133f1; }
|
||||
.cm-s-erlang-dark span.cm-attribute { color: #ff80e1; }
|
||||
.cm-s-erlang-dark span.cm-bracket { color: #ff9d00; }
|
||||
.cm-s-erlang-dark span.cm-builtin { color: #eaa; }
|
||||
.cm-s-erlang-dark span.cm-comment { color: #77f; }
|
||||
.cm-s-erlang-dark span.cm-def { color: #e7a; }
|
||||
.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
|
||||
.cm-s-erlang-dark span.cm-keyword { color: #ffee80; }
|
||||
.cm-s-erlang-dark span.cm-meta { color: #50fefe; }
|
||||
.cm-s-erlang-dark span.cm-number { color: #ffd0d0; }
|
||||
.cm-s-erlang-dark span.cm-operator { color: #d11; }
|
||||
.cm-s-erlang-dark span.cm-operator { color: #d55; }
|
||||
.cm-s-erlang-dark span.cm-property { color: #ccc; }
|
||||
.cm-s-erlang-dark span.cm-qualifier { color: #ccc; }
|
||||
.cm-s-erlang-dark span.cm-quote { color: #ccc; }
|
||||
.cm-s-erlang-dark span.cm-special { color: #ffbbbb; }
|
||||
.cm-s-erlang-dark span.cm-string { color: #3ad900; }
|
||||
.cm-s-erlang-dark span.cm-string-2 { color: #ccc; }
|
||||
.cm-s-erlang-dark span.cm-tag { color: #9effff; }
|
||||
.cm-s-erlang-dark span.cm-variable { color: #50fe50; }
|
||||
.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
|
||||
.cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }
|
||||
.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
|
||||
|
||||
.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;}
|
||||
.cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
|
||||
40
CodeMirror/theme/icecoder-classic.css
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
/* ICEcoder classic theme by Matt Pass */
|
||||
|
||||
.cm-s-icecoder-classic {color: #666; background: #161612}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-keyword {color: #eee; font-weight:bold}
|
||||
.cm-s-icecoder-classic span.cm-atom {color: #8b67cc}
|
||||
.cm-s-icecoder-classic span.cm-number {color: #080}
|
||||
.cm-s-icecoder-classic span.cm-def {color: #ca7919}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-variable {color: #85b525}
|
||||
.cm-s-icecoder-classic span.cm-variable-2 {color: #c71e5b}
|
||||
.cm-s-icecoder-classic span.cm-variable-3 {color: #080}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-property {color: #85b525}
|
||||
.cm-s-icecoder-classic span.cm-operator {color: #080}
|
||||
.cm-s-icecoder-classic span.cm-comment {color: #444}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-string {color: #ccb100}
|
||||
.cm-s-icecoder-classic span.cm-string-2 {color: #cc6d00}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-meta {color: #555}
|
||||
.cm-s-icecoder-classic span.cm-error {color: #d00}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-qualifier {color: #555}
|
||||
.cm-s-icecoder-classic span.cm-builtin {color: #0052a3}
|
||||
.cm-s-icecoder-classic span.cm-bracket {color: #cc7}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-tag {color: #e8e8e8}
|
||||
.cm-s-icecoder-classic span.cm-attribute {color: #099}
|
||||
|
||||
.cm-s-icecoder-classic span.cm-header {color: #808}
|
||||
.cm-s-icecoder-classic span.cm-quote {color: #070}
|
||||
.cm-s-icecoder-classic span.cm-hr {color: #888}
|
||||
.cm-s-icecoder-classic span.cm-link {color: #cc0}
|
||||
|
||||
.cm-s-icecoder-classic .CodeMirror-cursor {border-left: 1px solid white !important}
|
||||
.cm-s-icecoder-classic .CodeMirror-selected {color: #fff !important; background: #037 !important}
|
||||
.cm-s-icecoder-classic .CodeMirror-gutters {background: #161612; min-width: 41px; border-right: 0}
|
||||
.cm-s-icecoder-classic .CodeMirror-linenumber {color: #555; cursor: default}
|
||||
.cm-s-icecoder-classic .CodeMirror-matchingbracket {border: 1px solid grey; color: black !important}
|
||||
@@ -5,18 +5,18 @@ Ported to CodeMirror by Peter Kroon
|
||||
.cm-s-lesser-dark {
|
||||
line-height: 1.3em;
|
||||
}
|
||||
.cm-s-lesser-dark {
|
||||
font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Monaco', Courier, monospace !important;
|
||||
}
|
||||
|
||||
.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }
|
||||
.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/
|
||||
.cm-s-lesser-dark.CodeMirror ::selection { background: rgba(69, 68, 59, .99); }
|
||||
.cm-s-lesser-dark.CodeMirror ::-moz-selection { background: rgba(69, 68, 59, .99); }
|
||||
.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/
|
||||
|
||||
div.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
|
||||
.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
|
||||
|
||||
.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }
|
||||
.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }
|
||||
.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }
|
||||
.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }
|
||||
|
||||
.cm-s-lesser-dark span.cm-keyword { color: #599eff; }
|
||||
@@ -32,7 +32,6 @@ div.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
|
||||
.cm-s-lesser-dark span.cm-string { color: #BCD279; }
|
||||
.cm-s-lesser-dark span.cm-string-2 {color: #f50;}
|
||||
.cm-s-lesser-dark span.cm-meta { color: #738C73; }
|
||||
.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
|
||||
.cm-s-lesser-dark span.cm-qualifier {color: #555;}
|
||||
.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
|
||||
.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
|
||||
@@ -42,3 +41,7 @@ div.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
|
||||
.cm-s-lesser-dark span.cm-quote {color: #090;}
|
||||
.cm-s-lesser-dark span.cm-hr {color: #999;}
|
||||
.cm-s-lesser-dark span.cm-link {color: #00c;}
|
||||
.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
|
||||
|
||||
.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A !important;}
|
||||
.cm-s-lesser-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
|
||||
95
CodeMirror/theme/liquibyte.css
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
.cm-s-liquibyte.CodeMirror {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
line-height: 1.2em;
|
||||
font-size: 1em;
|
||||
}
|
||||
.CodeMirror-focused .cm-matchhighlight {
|
||||
text-decoration: underline;
|
||||
text-decoration-color: #0f0;
|
||||
text-decoration-style: wavy;
|
||||
}
|
||||
.cm-trailingspace {
|
||||
text-decoration: line-through;
|
||||
text-decoration-color: #f00;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
.cm-tab {
|
||||
text-decoration: line-through;
|
||||
text-decoration-color: #404040;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }
|
||||
.cm-s-liquibyte .CodeMirror-gutter-elt div{ font-size: 1.2em; }
|
||||
.cm-s-liquibyte .CodeMirror-guttermarker { }
|
||||
.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }
|
||||
.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0;}
|
||||
.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee !important; }
|
||||
|
||||
.cm-s-liquibyte span.cm-comment { color: #008000; }
|
||||
.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-string { color: #ff8000; }
|
||||
.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }
|
||||
|
||||
.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-variable-3 { color: #c080ff; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-operator { color: #fff; }
|
||||
|
||||
.cm-s-liquibyte span.cm-meta { color: #0f0; }
|
||||
.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-bracket { color: #cc7; }
|
||||
.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }
|
||||
.cm-s-liquibyte span.cm-error { color: #f00; }
|
||||
|
||||
.cm-s-liquibyte .CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25) !important; }
|
||||
|
||||
.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }
|
||||
|
||||
.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15) !important;}
|
||||
|
||||
/* Default styles for common addons */
|
||||
div.CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }
|
||||
div.CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }
|
||||
.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }
|
||||
/* Scrollbars */
|
||||
/* Simple */
|
||||
div.CodeMirror-simplescroll-horizontal div:hover, div.CodeMirror-simplescroll-vertical div:hover {
|
||||
background-color: rgba(80, 80, 80, .7);
|
||||
}
|
||||
div.CodeMirror-simplescroll-horizontal div, div.CodeMirror-simplescroll-vertical div {
|
||||
background-color: rgba(80, 80, 80, .3);
|
||||
border: 1px solid #404040;
|
||||
border-radius: 5px;
|
||||
}
|
||||
div.CodeMirror-simplescroll-vertical div {
|
||||
border-top: 1px solid #404040;
|
||||
border-bottom: 1px solid #404040;
|
||||
}
|
||||
div.CodeMirror-simplescroll-horizontal div {
|
||||
border-left: 1px solid #404040;
|
||||
border-right: 1px solid #404040;
|
||||
}
|
||||
div.CodeMirror-simplescroll-vertical {
|
||||
background-color: #262626;
|
||||
}
|
||||
div.CodeMirror-simplescroll-horizontal {
|
||||
background-color: #262626;
|
||||
border-top: 1px solid #404040;
|
||||
}
|
||||
/* Overlay */
|
||||
div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {
|
||||
background-color: #404040;
|
||||
border-radius: 5px;
|
||||
}
|
||||
div.CodeMirror-overlayscroll-vertical div {
|
||||
border: 1px solid #404040;
|
||||
}
|
||||
div.CodeMirror-overlayscroll-horizontal div {
|
||||
border: 1px solid #404040;
|
||||
}
|
||||
37
CodeMirror/theme/mbo.css
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
/****************************************************************/
|
||||
/* Based on mbonaci's Brackets mbo theme */
|
||||
/* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme */
|
||||
/* Create your own: http://tmtheme-editor.herokuapp.com */
|
||||
/****************************************************************/
|
||||
|
||||
.cm-s-mbo.CodeMirror {background: #2c2c2c; color: #ffffec;}
|
||||
.cm-s-mbo div.CodeMirror-selected {background: #716C62 !important;}
|
||||
.cm-s-mbo.CodeMirror ::selection { background: rgba(113, 108, 98, .99); }
|
||||
.cm-s-mbo.CodeMirror ::-moz-selection { background: rgba(113, 108, 98, .99); }
|
||||
.cm-s-mbo .CodeMirror-gutters {background: #4e4e4e; border-right: 0px;}
|
||||
.cm-s-mbo .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }
|
||||
.cm-s-mbo .CodeMirror-linenumber {color: #dadada;}
|
||||
.cm-s-mbo .CodeMirror-cursor {border-left: 1px solid #ffffec !important;}
|
||||
|
||||
.cm-s-mbo span.cm-comment {color: #95958a;}
|
||||
.cm-s-mbo span.cm-atom {color: #00a8c6;}
|
||||
.cm-s-mbo span.cm-number {color: #00a8c6;}
|
||||
|
||||
.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute {color: #9ddfe9;}
|
||||
.cm-s-mbo span.cm-keyword {color: #ffb928;}
|
||||
.cm-s-mbo span.cm-string {color: #ffcf6c;}
|
||||
.cm-s-mbo span.cm-string.cm-property {color: #ffffec;}
|
||||
|
||||
.cm-s-mbo span.cm-variable {color: #ffffec;}
|
||||
.cm-s-mbo span.cm-variable-2 {color: #00a8c6;}
|
||||
.cm-s-mbo span.cm-def {color: #ffffec;}
|
||||
.cm-s-mbo span.cm-bracket {color: #fffffc; font-weight: bold;}
|
||||
.cm-s-mbo span.cm-tag {color: #9ddfe9;}
|
||||
.cm-s-mbo span.cm-link {color: #f54b07;}
|
||||
.cm-s-mbo span.cm-error {border-bottom: #636363; color: #ffffec;}
|
||||
.cm-s-mbo span.cm-qualifier {color: #ffffec;}
|
||||
|
||||
.cm-s-mbo .CodeMirror-activeline-background {background: #494b41 !important;}
|
||||
.cm-s-mbo .CodeMirror-matchingbracket {color: #222 !important;}
|
||||
.cm-s-mbo .CodeMirror-matchingtag {background: rgba(255, 255, 255, .37);}
|
||||
46
CodeMirror/theme/mdn-like.css
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
MDN-LIKE Theme - Mozilla
|
||||
Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
|
||||
Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
|
||||
GitHub: @peterkroon
|
||||
|
||||
The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation
|
||||
|
||||
*/
|
||||
.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }
|
||||
.cm-s-mdn-like .CodeMirror-selected { background: #cfc !important; }
|
||||
.cm-s-mdn-like.CodeMirror ::selection { background: #cfc; }
|
||||
.cm-s-mdn-like.CodeMirror ::-moz-selection { background: #cfc; }
|
||||
|
||||
.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }
|
||||
.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
|
||||
div.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }
|
||||
|
||||
.cm-s-mdn-like .cm-keyword { color: #6262FF; }
|
||||
.cm-s-mdn-like .cm-atom { color: #F90; }
|
||||
.cm-s-mdn-like .cm-number { color: #ca7841; }
|
||||
.cm-s-mdn-like .cm-def { color: #8DA6CE; }
|
||||
.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }
|
||||
.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def { color: #07a; }
|
||||
|
||||
.cm-s-mdn-like .cm-variable { color: #07a; }
|
||||
.cm-s-mdn-like .cm-property { color: #905; }
|
||||
.cm-s-mdn-like .cm-qualifier { color: #690; }
|
||||
|
||||
.cm-s-mdn-like .cm-operator { color: #cda869; }
|
||||
.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }
|
||||
.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }
|
||||
.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/
|
||||
.cm-s-mdn-like .cm-meta { color: #000; } /*?*/
|
||||
.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/
|
||||
.cm-s-mdn-like .cm-tag { color: #997643; }
|
||||
.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/
|
||||
.cm-s-mdn-like .cm-header { color: #FF6400; }
|
||||
.cm-s-mdn-like .cm-hr { color: #AEAEAE; }
|
||||
.cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }
|
||||
.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }
|
||||
|
||||
div.cm-s-mdn-like .CodeMirror-activeline-background {background: #efefff;}
|
||||
div.cm-s-mdn-like span.CodeMirror-matchingbracket {outline:1px solid grey; color: inherit;}
|
||||
|
||||
.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }
|
||||
@@ -1,25 +1,25 @@
|
||||
/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
|
||||
|
||||
/*<!--breakpoint-->*/
|
||||
.breakpoints {width: .8em;}
|
||||
.breakpoint { color: #822; }
|
||||
|
||||
/*<!--match-->*/
|
||||
span.CodeMirror-matchhighlight { background: #494949 }
|
||||
.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67; !important }
|
||||
.cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; }
|
||||
.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }
|
||||
|
||||
/*<!--activeline-->*/
|
||||
.activeline {background: #253540 !important;}
|
||||
.cm-s-midnight .CodeMirror-activeline-background {background: #253540 !important;}
|
||||
|
||||
.cm-s-midnight.CodeMirror {
|
||||
background: #0F192A;
|
||||
color: #D1EDFF;
|
||||
}
|
||||
|
||||
.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
|
||||
.cm-s-midnight.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
|
||||
|
||||
.cm-s-midnight div.CodeMirror-selected {background: #314D67 !important;}
|
||||
.cm-s-midnight.CodeMirror ::selection { background: rgba(49, 77, 103, .99); }
|
||||
.cm-s-midnight.CodeMirror ::-moz-selection { background: rgba(49, 77, 103, .99); }
|
||||
.cm-s-midnight .CodeMirror-gutters {background: #0F192A; border-right: 1px solid;}
|
||||
.cm-s-midnight .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
|
||||
.cm-s-midnight .CodeMirror-linenumber {color: #D0D0D0;}
|
||||
.cm-s-midnight .CodeMirror-cursor {
|
||||
border-left: 1px solid #F8F8F0 !important;
|
||||
@@ -29,24 +29,19 @@ span.CodeMirror-matchhighlight { background: #494949 }
|
||||
.cm-s-midnight span.cm-atom {color: #AE81FF;}
|
||||
.cm-s-midnight span.cm-number {color: #D1EDFF;}
|
||||
|
||||
.cm-s-midnight span.cm-property, .cm-s-tropicaleve span.cm-attribute {color: #A6E22E;}
|
||||
.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute {color: #A6E22E;}
|
||||
.cm-s-midnight span.cm-keyword {color: #E83737;}
|
||||
.cm-s-midnight span.cm-string {color: #1DC116;}
|
||||
|
||||
.cm-s-midnight span.cm-variable {color: #FFAA3E;}
|
||||
.cm-s-midnight span.cm-variable-2 {color: #FFAA3E;}
|
||||
.cm-s-midnight span.cm-def {color: #4DD;}
|
||||
.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}
|
||||
.cm-s-midnight span.cm-bracket {color: #D1EDFF;}
|
||||
.cm-s-midnight span.cm-tag {color: #008;}
|
||||
.cm-s-midnight span.cm-tag {color: #449;}
|
||||
.cm-s-midnight span.cm-link {color: #AE81FF;}
|
||||
.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}
|
||||
|
||||
.cm-s-midnight .CodeMirror-matchingbracket {
|
||||
text-decoration: underline;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.typ { color: #FFAA3E; }
|
||||
.atn { color: #606; }
|
||||
.atv { color: #080; }
|
||||
.dec { color: #606; }
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
.cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;}
|
||||
.cm-s-monokai div.CodeMirror-selected {background: #49483E !important;}
|
||||
.cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); }
|
||||
.cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); }
|
||||
.cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;}
|
||||
.cm-s-monokai .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
|
||||
.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}
|
||||
.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}
|
||||
|
||||
@@ -14,14 +18,15 @@
|
||||
.cm-s-monokai span.cm-keyword {color: #f92672;}
|
||||
.cm-s-monokai span.cm-string {color: #e6db74;}
|
||||
|
||||
.cm-s-monokai span.cm-variable {color: #a6e22e;}
|
||||
.cm-s-monokai span.cm-variable {color: #f8f8f2;}
|
||||
.cm-s-monokai span.cm-variable-2 {color: #9effff;}
|
||||
.cm-s-monokai span.cm-def {color: #fd971f;}
|
||||
.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
|
||||
.cm-s-monokai span.cm-bracket {color: #f8f8f2;}
|
||||
.cm-s-monokai span.cm-tag {color: #f92672;}
|
||||
.cm-s-monokai span.cm-link {color: #ae81ff;}
|
||||
.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
|
||||
|
||||
.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;}
|
||||
.cm-s-monokai .CodeMirror-matchingbracket {
|
||||
text-decoration: underline;
|
||||
color: white !important;
|
||||
@@ -7,3 +7,6 @@
|
||||
.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
|
||||
.cm-s-neat span.cm-meta {color: #555;}
|
||||
.cm-s-neat span.cm-link { color: #3a3; }
|
||||
|
||||
.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;}
|
||||
.cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
|
||||
43
CodeMirror/theme/neo.css
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
/* neo theme for codemirror */
|
||||
|
||||
/* Color scheme */
|
||||
|
||||
.cm-s-neo.CodeMirror {
|
||||
background-color:#ffffff;
|
||||
color:#2e383c;
|
||||
line-height:1.4375;
|
||||
}
|
||||
.cm-s-neo .cm-comment {color:#75787b}
|
||||
.cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3}
|
||||
.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a}
|
||||
.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328}
|
||||
.cm-s-neo .cm-string {color:#b35e14}
|
||||
.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65}
|
||||
|
||||
|
||||
/* Editor styling */
|
||||
|
||||
.cm-s-neo pre {
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.cm-s-neo .CodeMirror-gutters {
|
||||
border:none;
|
||||
border-right:10px solid transparent;
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
.cm-s-neo .CodeMirror-linenumber {
|
||||
padding:0;
|
||||
color:#e0e2e5;
|
||||
}
|
||||
|
||||
.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }
|
||||
.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }
|
||||
|
||||
.cm-s-neo div.CodeMirror-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
background: rgba(155,157,162,0.37);
|
||||
z-index: 1;
|
||||
}
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }
|
||||
.cm-s-night div.CodeMirror-selected { background: #447 !important; }
|
||||
.cm-s-night.CodeMirror ::selection { background: rgba(68, 68, 119, .99); }
|
||||
.cm-s-night.CodeMirror ::-moz-selection { background: rgba(68, 68, 119, .99); }
|
||||
.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
|
||||
.cm-s-night .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }
|
||||
.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }
|
||||
.cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
@@ -14,8 +18,11 @@
|
||||
.cm-s-night span.cm-meta { color: #7678e2; }
|
||||
.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
|
||||
.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }
|
||||
.cm-s-night span.cm-error { color: #9d1e15; }
|
||||
.cm-s-night span.cm-bracket { color: #8da6ce; }
|
||||
.cm-s-night span.cm-comment { color: #6900a1; }
|
||||
.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
|
||||
.cm-s-night span.cm-link { color: #845dc4; }
|
||||
.cm-s-night span.cm-error { color: #9d1e15; }
|
||||
|
||||
.cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;}
|
||||
.cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
|
||||
38
CodeMirror/theme/paraiso-dark.css
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
|
||||
Name: Paraíso (Dark)
|
||||
Author: Jan T. Sott
|
||||
|
||||
Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
|
||||
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-paraiso-dark.CodeMirror {background: #2f1e2e; color: #b9b6b0;}
|
||||
.cm-s-paraiso-dark div.CodeMirror-selected {background: #41323f !important;}
|
||||
.cm-s-paraiso-dark.CodeMirror ::selection { background: rgba(65, 50, 63, .99); }
|
||||
.cm-s-paraiso-dark.CodeMirror ::-moz-selection { background: rgba(65, 50, 63, .99); }
|
||||
.cm-s-paraiso-dark .CodeMirror-gutters {background: #2f1e2e; border-right: 0px;}
|
||||
.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }
|
||||
.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }
|
||||
.cm-s-paraiso-dark .CodeMirror-linenumber {color: #776e71;}
|
||||
.cm-s-paraiso-dark .CodeMirror-cursor {border-left: 1px solid #8d8687 !important;}
|
||||
|
||||
.cm-s-paraiso-dark span.cm-comment {color: #e96ba8;}
|
||||
.cm-s-paraiso-dark span.cm-atom {color: #815ba4;}
|
||||
.cm-s-paraiso-dark span.cm-number {color: #815ba4;}
|
||||
|
||||
.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute {color: #48b685;}
|
||||
.cm-s-paraiso-dark span.cm-keyword {color: #ef6155;}
|
||||
.cm-s-paraiso-dark span.cm-string {color: #fec418;}
|
||||
|
||||
.cm-s-paraiso-dark span.cm-variable {color: #48b685;}
|
||||
.cm-s-paraiso-dark span.cm-variable-2 {color: #06b6ef;}
|
||||
.cm-s-paraiso-dark span.cm-def {color: #f99b15;}
|
||||
.cm-s-paraiso-dark span.cm-bracket {color: #b9b6b0;}
|
||||
.cm-s-paraiso-dark span.cm-tag {color: #ef6155;}
|
||||
.cm-s-paraiso-dark span.cm-link {color: #815ba4;}
|
||||
.cm-s-paraiso-dark span.cm-error {background: #ef6155; color: #8d8687;}
|
||||
|
||||
.cm-s-paraiso-dark .CodeMirror-activeline-background {background: #4D344A !important;}
|
||||
.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
38
CodeMirror/theme/paraiso-light.css
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
|
||||
Name: Paraíso (Light)
|
||||
Author: Jan T. Sott
|
||||
|
||||
Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
|
||||
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-paraiso-light.CodeMirror {background: #e7e9db; color: #41323f;}
|
||||
.cm-s-paraiso-light div.CodeMirror-selected {background: #b9b6b0 !important;}
|
||||
.cm-s-paraiso-light.CodeMirror ::selection { background: #b9b6b0; }
|
||||
.cm-s-paraiso-light.CodeMirror ::-moz-selection { background: #b9b6b0; }
|
||||
.cm-s-paraiso-light .CodeMirror-gutters {background: #e7e9db; border-right: 0px;}
|
||||
.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }
|
||||
.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }
|
||||
.cm-s-paraiso-light .CodeMirror-linenumber {color: #8d8687;}
|
||||
.cm-s-paraiso-light .CodeMirror-cursor {border-left: 1px solid #776e71 !important;}
|
||||
|
||||
.cm-s-paraiso-light span.cm-comment {color: #e96ba8;}
|
||||
.cm-s-paraiso-light span.cm-atom {color: #815ba4;}
|
||||
.cm-s-paraiso-light span.cm-number {color: #815ba4;}
|
||||
|
||||
.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute {color: #48b685;}
|
||||
.cm-s-paraiso-light span.cm-keyword {color: #ef6155;}
|
||||
.cm-s-paraiso-light span.cm-string {color: #fec418;}
|
||||
|
||||
.cm-s-paraiso-light span.cm-variable {color: #48b685;}
|
||||
.cm-s-paraiso-light span.cm-variable-2 {color: #06b6ef;}
|
||||
.cm-s-paraiso-light span.cm-def {color: #f99b15;}
|
||||
.cm-s-paraiso-light span.cm-bracket {color: #41323f;}
|
||||
.cm-s-paraiso-light span.cm-tag {color: #ef6155;}
|
||||
.cm-s-paraiso-light span.cm-link {color: #815ba4;}
|
||||
.cm-s-paraiso-light span.cm-error {background: #ef6155; color: #776e71;}
|
||||
|
||||
.cm-s-paraiso-light .CodeMirror-activeline-background {background: #CFD1C4 !important;}
|
||||
.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
53
CodeMirror/theme/pastel-on-dark.css
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Pastel On Dark theme ported from ACE editor
|
||||
* @license MIT
|
||||
* @copyright AtomicPages LLC 2014
|
||||
* @author Dennis Thompson, AtomicPages LLC
|
||||
* @version 1.1
|
||||
* @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
|
||||
*/
|
||||
|
||||
.cm-s-pastel-on-dark.CodeMirror {
|
||||
background: #2c2827;
|
||||
color: #8F938F;
|
||||
line-height: 1.5;
|
||||
font-size: 14px;
|
||||
}
|
||||
.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2) !important; }
|
||||
.cm-s-pastel-on-dark.CodeMirror ::selection { background: rgba(221,240,255,0.2); }
|
||||
.cm-s-pastel-on-dark.CodeMirror ::-moz-selection { background: rgba(221,240,255,0.2); }
|
||||
|
||||
.cm-s-pastel-on-dark .CodeMirror-gutters {
|
||||
background: #34302f;
|
||||
border-right: 0px;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }
|
||||
.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }
|
||||
.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }
|
||||
.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }
|
||||
.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }
|
||||
.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }
|
||||
.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }
|
||||
.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }
|
||||
.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }
|
||||
.cm-s-pastel-on-dark span.cm-string { color: #66A968; }
|
||||
.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }
|
||||
.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }
|
||||
.cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; }
|
||||
.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }
|
||||
.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }
|
||||
.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }
|
||||
.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }
|
||||
.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }
|
||||
.cm-s-pastel-on-dark span.cm-error {
|
||||
background: #757aD8;
|
||||
color: #f8f8f0;
|
||||
}
|
||||
.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031) !important; }
|
||||
.cm-s-pastel-on-dark .CodeMirror-matchingbracket {
|
||||
border: 1px solid rgba(255,255,255,0.25);
|
||||
color: #8F938F !important;
|
||||
margin: -1px -1px 0 -1px;
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
.cm-s-rubyblue { font-family: Trebuchet, Verdana, sans-serif; } /* - customized editor font - */
|
||||
|
||||
.cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
|
||||
.cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; }
|
||||
.cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); }
|
||||
.cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); }
|
||||
.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }
|
||||
.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }
|
||||
.cm-s-rubyblue .CodeMirror-linenumber { color: white; }
|
||||
.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
@@ -14,8 +16,10 @@
|
||||
.cm-s-rubyblue span.cm-meta { color: #F0F; }
|
||||
.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
|
||||
.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
|
||||
.cm-s-rubyblue span.cm-error { color: #AF2018; }
|
||||
.cm-s-rubyblue span.cm-bracket { color: #F0F; }
|
||||
.cm-s-rubyblue span.cm-link { color: #F4C20B; }
|
||||
.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
|
||||
.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
|
||||
.cm-s-rubyblue span.cm-error { color: #AF2018; }
|
||||
|
||||
.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;}
|
||||
165
CodeMirror/theme/solarized.css
vendored
Normal file
@@ -0,0 +1,165 @@
|
||||
/*
|
||||
Solarized theme for code-mirror
|
||||
http://ethanschoonover.com/solarized
|
||||
*/
|
||||
|
||||
/*
|
||||
Solarized color pallet
|
||||
http://ethanschoonover.com/solarized/img/solarized-palette.png
|
||||
*/
|
||||
|
||||
.solarized.base03 { color: #002b36; }
|
||||
.solarized.base02 { color: #073642; }
|
||||
.solarized.base01 { color: #586e75; }
|
||||
.solarized.base00 { color: #657b83; }
|
||||
.solarized.base0 { color: #839496; }
|
||||
.solarized.base1 { color: #93a1a1; }
|
||||
.solarized.base2 { color: #eee8d5; }
|
||||
.solarized.base3 { color: #fdf6e3; }
|
||||
.solarized.solar-yellow { color: #b58900; }
|
||||
.solarized.solar-orange { color: #cb4b16; }
|
||||
.solarized.solar-red { color: #dc322f; }
|
||||
.solarized.solar-magenta { color: #d33682; }
|
||||
.solarized.solar-violet { color: #6c71c4; }
|
||||
.solarized.solar-blue { color: #268bd2; }
|
||||
.solarized.solar-cyan { color: #2aa198; }
|
||||
.solarized.solar-green { color: #859900; }
|
||||
|
||||
/* Color scheme for code-mirror */
|
||||
|
||||
.cm-s-solarized {
|
||||
line-height: 1.45em;
|
||||
color-profile: sRGB;
|
||||
rendering-intent: auto;
|
||||
}
|
||||
.cm-s-solarized.cm-s-dark {
|
||||
color: #839496;
|
||||
background-color: #002b36;
|
||||
text-shadow: #002b36 0 1px;
|
||||
}
|
||||
.cm-s-solarized.cm-s-light {
|
||||
background-color: #fdf6e3;
|
||||
color: #657b83;
|
||||
text-shadow: #eee8d5 0 1px;
|
||||
}
|
||||
|
||||
.cm-s-solarized .CodeMirror-widget {
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
.cm-s-solarized .cm-keyword { color: #cb4b16 }
|
||||
.cm-s-solarized .cm-atom { color: #d33682; }
|
||||
.cm-s-solarized .cm-number { color: #d33682; }
|
||||
.cm-s-solarized .cm-def { color: #2aa198; }
|
||||
|
||||
.cm-s-solarized .cm-variable { color: #839496; }
|
||||
.cm-s-solarized .cm-variable-2 { color: #b58900; }
|
||||
.cm-s-solarized .cm-variable-3 { color: #6c71c4; }
|
||||
|
||||
.cm-s-solarized .cm-property { color: #2aa198; }
|
||||
.cm-s-solarized .cm-operator {color: #6c71c4;}
|
||||
|
||||
.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
|
||||
|
||||
.cm-s-solarized .cm-string { color: #859900; }
|
||||
.cm-s-solarized .cm-string-2 { color: #b58900; }
|
||||
|
||||
.cm-s-solarized .cm-meta { color: #859900; }
|
||||
.cm-s-solarized .cm-qualifier { color: #b58900; }
|
||||
.cm-s-solarized .cm-builtin { color: #d33682; }
|
||||
.cm-s-solarized .cm-bracket { color: #cb4b16; }
|
||||
.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
|
||||
.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
|
||||
.cm-s-solarized .cm-tag { color: #93a1a1 }
|
||||
.cm-s-solarized .cm-attribute { color: #2aa198; }
|
||||
.cm-s-solarized .cm-header { color: #586e75; }
|
||||
.cm-s-solarized .cm-quote { color: #93a1a1; }
|
||||
.cm-s-solarized .cm-hr {
|
||||
color: transparent;
|
||||
border-top: 1px solid #586e75;
|
||||
display: block;
|
||||
}
|
||||
.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
|
||||
.cm-s-solarized .cm-special { color: #6c71c4; }
|
||||
.cm-s-solarized .cm-em {
|
||||
color: #999;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
.cm-s-solarized .cm-strong { color: #eee; }
|
||||
.cm-s-solarized .cm-error,
|
||||
.cm-s-solarized .cm-invalidchar {
|
||||
color: #586e75;
|
||||
border-bottom: 1px dotted #dc322f;
|
||||
}
|
||||
|
||||
.cm-s-solarized.cm-s-dark .CodeMirror-selected { background: #073642; }
|
||||
.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
|
||||
.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection { background: rgba(7, 54, 66, 0.99); }
|
||||
|
||||
.cm-s-solarized.cm-s-light .CodeMirror-selected { background: #eee8d5; }
|
||||
.cm-s-solarized.cm-s-light.CodeMirror ::selection { background: #eee8d5; }
|
||||
.cm-s-solarized.cm-s-lightCodeMirror ::-moz-selection { background: #eee8d5; }
|
||||
|
||||
/* Editor styling */
|
||||
|
||||
|
||||
|
||||
/* Little shadow on the view-port of the buffer view */
|
||||
.cm-s-solarized.CodeMirror {
|
||||
-moz-box-shadow: inset 7px 0 12px -6px #000;
|
||||
-webkit-box-shadow: inset 7px 0 12px -6px #000;
|
||||
box-shadow: inset 7px 0 12px -6px #000;
|
||||
}
|
||||
|
||||
/* Gutter border and some shadow from it */
|
||||
.cm-s-solarized .CodeMirror-gutters {
|
||||
border-right: 1px solid;
|
||||
}
|
||||
|
||||
/* Gutter colors and line number styling based of color scheme (dark / light) */
|
||||
|
||||
/* Dark */
|
||||
.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
|
||||
background-color: #002b36;
|
||||
border-color: #00232c;
|
||||
}
|
||||
|
||||
.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
|
||||
text-shadow: #021014 0 -1px;
|
||||
}
|
||||
|
||||
/* Light */
|
||||
.cm-s-solarized.cm-s-light .CodeMirror-gutters {
|
||||
background-color: #fdf6e3;
|
||||
border-color: #eee8d5;
|
||||
}
|
||||
|
||||
/* Common */
|
||||
.cm-s-solarized .CodeMirror-linenumber {
|
||||
color: #586e75;
|
||||
padding: 0 5px;
|
||||
}
|
||||
.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
|
||||
.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
|
||||
.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
|
||||
|
||||
.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
|
||||
color: #586e75;
|
||||
}
|
||||
|
||||
.cm-s-solarized .CodeMirror-lines .CodeMirror-cursor {
|
||||
border-left: 1px solid #819090;
|
||||
}
|
||||
|
||||
/*
|
||||
Active line. Negative margin compensates left padding of the text in the
|
||||
view-port
|
||||
*/
|
||||
.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
}
|
||||
.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
|
||||
background: rgba(0, 0, 0, 0.10);
|
||||
}
|
||||
30
CodeMirror/theme/the-matrix.css
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
|
||||
.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D !important; }
|
||||
.cm-s-the-matrix.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); }
|
||||
.cm-s-the-matrix.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); }
|
||||
.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
|
||||
.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
|
||||
.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
|
||||
.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
|
||||
.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; }
|
||||
|
||||
.cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;}
|
||||
.cm-s-the-matrix span.cm-atom {color: #3FF;}
|
||||
.cm-s-the-matrix span.cm-number {color: #FFB94F;}
|
||||
.cm-s-the-matrix span.cm-def {color: #99C;}
|
||||
.cm-s-the-matrix span.cm-variable {color: #F6C;}
|
||||
.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}
|
||||
.cm-s-the-matrix span.cm-variable-3 {color: #96F;}
|
||||
.cm-s-the-matrix span.cm-property {color: #62FFA0;}
|
||||
.cm-s-the-matrix span.cm-operator {color: #999}
|
||||
.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}
|
||||
.cm-s-the-matrix span.cm-string {color: #39C;}
|
||||
.cm-s-the-matrix span.cm-meta {color: #C9F;}
|
||||
.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}
|
||||
.cm-s-the-matrix span.cm-builtin {color: #30a;}
|
||||
.cm-s-the-matrix span.cm-bracket {color: #cc7;}
|
||||
.cm-s-the-matrix span.cm-tag {color: #FFBD40;}
|
||||
.cm-s-the-matrix span.cm-attribute {color: #FFF700;}
|
||||
.cm-s-the-matrix span.cm-error {color: #FF0000;}
|
||||
|
||||
.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}
|
||||
35
CodeMirror/theme/tomorrow-night-bright.css
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
|
||||
Name: Tomorrow Night - Bright
|
||||
Author: Chris Kempson
|
||||
|
||||
Port done by Gerard Braad <me@gbraad.nl>
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-tomorrow-night-bright.CodeMirror {background: #000000; color: #eaeaea;}
|
||||
.cm-s-tomorrow-night-bright div.CodeMirror-selected {background: #424242 !important;}
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-gutters {background: #000000; border-right: 0px;}
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-linenumber {color: #424242;}
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}
|
||||
|
||||
.cm-s-tomorrow-night-bright span.cm-comment {color: #d27b53;}
|
||||
.cm-s-tomorrow-night-bright span.cm-atom {color: #a16a94;}
|
||||
.cm-s-tomorrow-night-bright span.cm-number {color: #a16a94;}
|
||||
|
||||
.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute {color: #99cc99;}
|
||||
.cm-s-tomorrow-night-bright span.cm-keyword {color: #d54e53;}
|
||||
.cm-s-tomorrow-night-bright span.cm-string {color: #e7c547;}
|
||||
|
||||
.cm-s-tomorrow-night-bright span.cm-variable {color: #b9ca4a;}
|
||||
.cm-s-tomorrow-night-bright span.cm-variable-2 {color: #7aa6da;}
|
||||
.cm-s-tomorrow-night-bright span.cm-def {color: #e78c45;}
|
||||
.cm-s-tomorrow-night-bright span.cm-bracket {color: #eaeaea;}
|
||||
.cm-s-tomorrow-night-bright span.cm-tag {color: #d54e53;}
|
||||
.cm-s-tomorrow-night-bright span.cm-link {color: #a16a94;}
|
||||
.cm-s-tomorrow-night-bright span.cm-error {background: #d54e53; color: #6A6A6A;}
|
||||
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-activeline-background {background: #2a2a2a !important;}
|
||||
.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
38
CodeMirror/theme/tomorrow-night-eighties.css
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
|
||||
Name: Tomorrow Night - Eighties
|
||||
Author: Chris Kempson
|
||||
|
||||
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
||||
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000; color: #CCCCCC;}
|
||||
.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D !important;}
|
||||
.cm-s-tomorrow-night-eighties.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); }
|
||||
.cm-s-tomorrow-night-eighties.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); }
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000; border-right: 0px;}
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}
|
||||
|
||||
.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}
|
||||
|
||||
.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}
|
||||
|
||||
.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}
|
||||
.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a; color: #6A6A6A;}
|
||||
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600 !important;}
|
||||
.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
|
||||
@@ -1,7 +1,11 @@
|
||||
.cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/
|
||||
.cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/
|
||||
.cm-s-twilight.CodeMirror ::selection { background: rgba(50, 50, 50, 0.99); }
|
||||
.cm-s-twilight.CodeMirror ::-moz-selection { background: rgba(50, 50, 50, 0.99); }
|
||||
|
||||
.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }
|
||||
.cm-s-twilight .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }
|
||||
.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }
|
||||
.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
@@ -16,11 +20,13 @@
|
||||
.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/
|
||||
.cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/
|
||||
.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/
|
||||
.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
|
||||
.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/
|
||||
.cm-s-twilight .cm-tag { color: #997643; } /**/
|
||||
.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/
|
||||
.cm-s-twilight .cm-header { color: #FF6400; }
|
||||
.cm-s-twilight .cm-hr { color: #AEAEAE; }
|
||||
.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
|
||||
.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
|
||||
|
||||
.cm-s-twilight .CodeMirror-activeline-background {background: #27282E !important;}
|
||||
.cm-s-twilight .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
|
||||
@@ -2,8 +2,12 @@
|
||||
|
||||
.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }
|
||||
.cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; }
|
||||
.cm-s-vibrant-ink.CodeMirror ::selection { background: rgba(53, 73, 60, 0.99); }
|
||||
.cm-s-vibrant-ink.CodeMirror ::-moz-selection { background: rgba(53, 73, 60, 0.99); }
|
||||
|
||||
.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
|
||||
.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
|
||||
.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }
|
||||
.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
@@ -11,17 +15,20 @@
|
||||
.cm-s-vibrant-ink .cm-atom { color: #FC0; }
|
||||
.cm-s-vibrant-ink .cm-number { color: #FFEE98; }
|
||||
.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
|
||||
.cm-s-vibrant-ink span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #FFC66D }
|
||||
.cm-s-vibrant-ink span.cm-variable-3, .cm-s-cobalt span.cm-def { color: #FFC66D }
|
||||
.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D }
|
||||
.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D }
|
||||
.cm-s-vibrant-ink .cm-operator { color: #888; }
|
||||
.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
|
||||
.cm-s-vibrant-ink .cm-string { color: #A5C25C }
|
||||
.cm-s-vibrant-ink .cm-string-2 { color: red }
|
||||
.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
|
||||
.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
|
||||
.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
|
||||
.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
|
||||
.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
|
||||
.cm-s-vibrant-ink .cm-header { color: #FF6400; }
|
||||
.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
|
||||
.cm-s-vibrant-ink .cm-link { color: blue; }
|
||||
.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
|
||||
|
||||
.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E !important;}
|
||||
.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
|
||||
@@ -21,8 +21,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }
|
||||
.cm-s-xq-dark span.CodeMirror-selected { background: #a8f !important; }
|
||||
.cm-s-xq-dark .CodeMirror-selected { background: #27007A !important; }
|
||||
.cm-s-xq-dark.CodeMirror ::selection { background: rgba(39, 0, 122, 0.99); }
|
||||
.cm-s-xq-dark.CodeMirror ::-moz-selection { background: rgba(39, 0, 122, 0.99); }
|
||||
.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
|
||||
.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }
|
||||
.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }
|
||||
.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }
|
||||
.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
|
||||
@@ -38,9 +42,12 @@ THE SOFTWARE.
|
||||
.cm-s-xq-dark span.cm-comment {color: gray;}
|
||||
.cm-s-xq-dark span.cm-string {color: #9FEE00;}
|
||||
.cm-s-xq-dark span.cm-meta {color: yellow;}
|
||||
.cm-s-xq-dark span.cm-error {color: #f00;}
|
||||
.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}
|
||||
.cm-s-xq-dark span.cm-builtin {color: #30a;}
|
||||
.cm-s-xq-dark span.cm-bracket {color: #cc7;}
|
||||
.cm-s-xq-dark span.cm-tag {color: #FFBD40;}
|
||||
.cm-s-xq-dark span.cm-attribute {color: #FFF700;}
|
||||
.cm-s-xq-dark span.cm-error {color: #f00;}
|
||||
|
||||
.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E !important;}
|
||||
.cm-s-xq-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
|
||||
@@ -32,12 +32,12 @@ THE SOFTWARE.
|
||||
.cm-s-xq-light span.cm-comment {color: #0080FF; font-style: italic;}
|
||||
.cm-s-xq-light span.cm-string {color: red;}
|
||||
.cm-s-xq-light span.cm-meta {color: yellow;}
|
||||
.cm-s-xq-light span.cm-error {color: #f00;}
|
||||
.cm-s-xq-light span.cm-qualifier {color: grey}
|
||||
.cm-s-xq-light span.cm-builtin {color: #7EA656;}
|
||||
.cm-s-xq-light span.cm-bracket {color: #cc7;}
|
||||
.cm-s-xq-light span.cm-tag {color: #3F7F7F;}
|
||||
.cm-s-xq-light span.cm-attribute {color: #7F007F;}
|
||||
.cm-s-xq-light span.cm-error {color: #f00;}
|
||||
|
||||
.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff !important;}
|
||||
.cm-s-xq-light .CodeMirror-matchingbracket {border:1px solid grey;color:black !important;background:yellow;}
|
||||
.cm-s-xq-light .CodeMirror-matchingbracket {outline:1px solid grey;color:black !important;background:yellow;}
|
||||
37
CodeMirror/theme/zenburn.css
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* "
|
||||
* Using Zenburn color palette from the Emacs Zenburn Theme
|
||||
* https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
|
||||
*
|
||||
* Also using parts of https://github.com/xavi/coderay-lighttable-theme
|
||||
* "
|
||||
* From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
|
||||
*/
|
||||
|
||||
.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }
|
||||
.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }
|
||||
.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white !important; }
|
||||
.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }
|
||||
.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }
|
||||
.cm-s-zenburn span.cm-comment { color: #7f9f7f; }
|
||||
.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }
|
||||
.cm-s-zenburn span.cm-atom { color: #bfebbf; }
|
||||
.cm-s-zenburn span.cm-def { color: #dcdccc; }
|
||||
.cm-s-zenburn span.cm-variable { color: #dfaf8f; }
|
||||
.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }
|
||||
.cm-s-zenburn span.cm-string { color: #cc9393; }
|
||||
.cm-s-zenburn span.cm-string-2 { color: #cc9393; }
|
||||
.cm-s-zenburn span.cm-number { color: #dcdccc; }
|
||||
.cm-s-zenburn span.cm-tag { color: #93e0e3; }
|
||||
.cm-s-zenburn span.cm-property { color: #dfaf8f; }
|
||||
.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }
|
||||
.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }
|
||||
.cm-s-zenburn span.cm-meta { color: #f0dfaf; }
|
||||
.cm-s-zenburn span.cm-header { color: #f0efd0; }
|
||||
.cm-s-zenburn span.cm-operator { color: #f0efd0; }
|
||||
.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }
|
||||
.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }
|
||||
.cm-s-zenburn .CodeMirror-activeline { background: #000000; }
|
||||
.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }
|
||||
.cm-s-zenburn .CodeMirror-selected { background: #545454; }
|
||||
.cm-s-zenburn .CodeMirror-focused .CodeMirror-selected { background: #4f4f4f; }
|
||||
@@ -1,7 +1,7 @@
|
||||
Copyright: © 2013 Matt Pass
|
||||
Website: mattpass.com
|
||||
Email: matt@mattpass.com
|
||||
Twitter: @mattpass
|
||||
Copyright: © 2015 ICEcoder Ltd
|
||||
Website: icecoder.net
|
||||
Email: info@icecoder.net
|
||||
Twitter: @icecoder
|
||||
|
||||
#ICEcoder License
|
||||
##Standard Open Source Initiative MIT License
|
||||
|
||||
66
README.md
@@ -3,72 +3,30 @@
|
||||
|
||||
ICEcoder is a web IDE / browser based code editor, which allows you to develop websites directly within the web browser. It uses the brilliant CodeMirror for code highlighting & editing, with a slick IDE wrapped around it to make the whole thing work.
|
||||
|
||||
<img src="http://icecoder.net/images/icecoder-v2-5-browser-code-editor.png" alt="ICEcoder web IDE">
|
||||
<img src="https://icecoder.net/images/icecoder-v5-0-browser-code-editor.png" alt="ICEcoder web IDE">
|
||||
|
||||
###Requirements
|
||||
You can run ICEcoder either online or locally, on Linux, Windows or Mac based platforms. The only requirement is to have PHP 5 available (5.3 recommended). You can have this either as a vanilla installation or via a program such as WAMP or XAMPP (for Windows) or MAMP (for Mac).
|
||||
|
||||
###Features you'd expect
|
||||
* Context aware code highlighting
|
||||
* Supports HTML, CSS, LESS, JavaScript, CoffeeScript, PHP, Python, Ruby, Markdown & more
|
||||
* Smart tab key system (selected text indents line)
|
||||
* File manager
|
||||
* Find & replace/replace all
|
||||
* Document tabs indicate current doc & changes made
|
||||
* Code folding
|
||||
* Open last files on load
|
||||
* Web based, access from anywhere
|
||||
* Free, open source & customisable
|
||||
|
||||
###Cool features you wouldn't expect
|
||||
* Find & replace in current doc, open docs, files & filenames
|
||||
* Found match & current position counter
|
||||
* Indicates content type cursor is on
|
||||
* Account login to keep certain files secure
|
||||
* Restrict files, ban files and restrict by IP
|
||||
* Settings to change functionality & editor theme
|
||||
* Code Assist system
|
||||
* Displays nest position of text cursor, hover to select, click to set cursor
|
||||
* Nest structure OK/broken indicator
|
||||
* Highlight word and press CTRL+I to Google search that
|
||||
* Adds end tags as you type and in a context aware way
|
||||
* Can rename open files (whoaah!)
|
||||
* CTRL+Enter open current webpage in new tab
|
||||
* Window to view live edits
|
||||
* ESC = Comment/Uncomment line, incl partial lines
|
||||
* Image viewer
|
||||
* Colour preview block on CSS colours, ie red, #f00 or RGBA(255,0,0,0.5)
|
||||
* MySQL Database management via Adminer plugin
|
||||
* Backs up files every 30 mins or on click of backup plugin icon
|
||||
* Github repo syncing with ICErepo plugin
|
||||
* Linux terminal
|
||||
* JS Hint validation as you type
|
||||
* Emmet snippet typing booster
|
||||
* HTML & JavaScript code hinting
|
||||
* Alphanumeric tab sorting
|
||||
* Tag wrappers
|
||||
* Config template
|
||||
* Farbtastic color picker integrated
|
||||
|
||||
###Installation
|
||||
|
||||
####Step 1: Clone the repo
|
||||
####Step 1: Get ICEcoder
|
||||
Either download the zip or clone from Github using:
|
||||
|
||||
```
|
||||
$ git clone git@github:mattpass/ICEcoder
|
||||
$ git clone git://github.com/mattpass/ICEcoder
|
||||
```
|
||||
|
||||
####Step 2: Place in your document root (online or local)
|
||||
```
|
||||
Put in a new sub-dir URL such as yourdomain.com/_coder or localhost/_coder
|
||||
Set write permissions (757 or 775 depending on your system) on the 'backups', 'lib' and 'test' folders plus 'test/test-file1.txt'
|
||||
```
|
||||
* Put in a new sub-dir URL such as yourdomain.com/ICEcoder or localhost/ICEcoder
|
||||
* Set write permissions (757 or 775 depending on your system) on the 'backups', 'lib', 'plugins', 'test' and 'tmp' folders
|
||||
|
||||
*(Note: A small number of web servers give an internal server error here, if you get this, try 755 instead)*
|
||||
|
||||
####Step 3: Start coding
|
||||
```
|
||||
Visit the sub-dir URL in your browser and enter a password
|
||||
Now you're setup, auto-logged in and ready to code!
|
||||
```
|
||||
* Visit the sub-dir URL in your browser and enter a password
|
||||
|
||||
**Now you're setup, auto-logged in and ready to code!**
|
||||
|
||||
Suitable for commercial & non-commercial projects, just let me know if it's useful to you and any cool customisations you make to it. I take no responsibility for anything, your usage is all down to you.
|
||||
|
||||
@@ -76,4 +34,4 @@ It's fully open source and MIT licensed. I'm happy for you to take it, make it y
|
||||
|
||||
Plenty of comments included in the code to assist with understanding, customising etc.
|
||||
|
||||
Comments, improvements & feedback welcomed!
|
||||
Comments, improvements & feedback welcomed!
|
||||
|
||||
4
backups/index.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header("Location: ../");
|
||||
die();
|
||||
?>
|
||||
328
editor.php
@@ -1,92 +1,128 @@
|
||||
<?php include("lib/settings.php");?>
|
||||
<?php
|
||||
include("lib/headers.php");
|
||||
include("lib/settings.php");
|
||||
$t = $text['editor'];
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html style="margin: 0" onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false; if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'editor');top.ICEcoder.canResizeFilesW()}">
|
||||
<html style="margin: 0" onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false; if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'editor');top.ICEcoder.canResizeFilesW()}" onDrop="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'editor')}">
|
||||
<head>
|
||||
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?> editor</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/hint/show-hint.css">
|
||||
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror.css?microtime=<?php echo microtime(true);?>">
|
||||
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/hint/show-hint.css?microtime=<?php echo microtime(true);?>">
|
||||
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/lint/lint.css?microtime=<?php echo microtime(true);?>">
|
||||
<!--
|
||||
codemirror-compressed.js
|
||||
incls: codemirror
|
||||
modes: clike, coffeescript, css, htmlmixed, javascript, less, markdown, php, python, ruby & xml
|
||||
utils: closetag, xml-fold, brace-fold, show-hint, javascript-hint, html-hint, searchcursor, match-highlighter
|
||||
modes: clike, coffeescript, css, erlang, go, htmlmixed, javascript, julia, lua, markdown, perl, php, python, ruby, rust, sass, sql, xml, yaml
|
||||
addon: brace-fold, closebrackets, closetag, css-hint, html-hint, javascript-hint, javascript-lint, lint, match-highlighter, searchcursor, show-hint, sql-hint, trailingspace, xml-fold, xml-hint
|
||||
//-->
|
||||
<script src="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror-compressed.js"></script>
|
||||
<script src="lib/mmd.js"></script>
|
||||
<script src="lib/foldcode.js"></script>
|
||||
<script src="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror-compressed.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<?php
|
||||
if (file_exists(dirname(__FILE__)."/plugins/jshint/jshint-2.5.6.min.js")) {
|
||||
echo '<script src="plugins/jshint/jshint-2.5.6.min.js?microtime='.microtime(true).'></script>';
|
||||
};?>
|
||||
<script src="lib/mmd.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<script src="lib/foldcode.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<?php
|
||||
if (file_exists(dirname(__FILE__)."/plugins/emmet/emmet.min.js")) {
|
||||
echo '<script src="plugins/emmet/emmet.min.js"></script>';
|
||||
echo '<script src="plugins/emmet/emmet.min.js?microtime='.microtime(true).'"></script>';
|
||||
};?>
|
||||
<?php
|
||||
if (file_exists(dirname(__FILE__)."/plugins/pesticide/pesticide.js")) {
|
||||
echo '<script src="plugins/pesticide/pesticide.js?microtime='.microtime(true).'"></script>';
|
||||
};?>
|
||||
<?php
|
||||
if (file_exists(dirname(__FILE__)."/plugins/stats.js/stats.min.js")) {
|
||||
echo '<script src="plugins/stats.js/stats.min.js?microtime='.microtime(true).'"></script>';
|
||||
};?>
|
||||
<link rel="stylesheet" href="<?php
|
||||
if ($ICEcoder["theme"]=="default") {echo 'lib/editor.css';} else {echo $ICEcoder["codeMirrorDir"].'/theme/'.$ICEcoder["theme"].'.css';};
|
||||
$activeLineBG = array_search($ICEcoder["theme"],array("eclipse","elegant","neat")) !== false ? "#ccc" : "#000";
|
||||
echo "?microtime=".microtime(true);
|
||||
if (array_search($ICEcoder["theme"],array("3024-day","base16-light","eclipse","elegant","mdn-like","neat","neo","paraiso-light","solarized","the-matrix","xq-light")) !== false) {
|
||||
$activeLineBG = "#ccc";
|
||||
} elseif (array_search($ICEcoder["theme"],array("3024-night","blackboard","colorforth","liquibyte","night","tomorrow-night-bright","tomorrow-night-eighties","vibrant-ink")) !== false) {
|
||||
$activeLineBG = "#888";
|
||||
} else {
|
||||
$activeLineBG = "#000";
|
||||
}
|
||||
?>">
|
||||
|
||||
<style type="text/css">
|
||||
/* Make sure this next one remains the 1st item, updated with JS */
|
||||
.CodeMirror {position: absolute; top: 0px; width: 100%; font-size: <?php echo $ICEcoder["fontSize"];?>; z-index: 1}
|
||||
.CodeMirror {position: absolute; top: 0; width: 100%; font-size: <?php echo $ICEcoder["fontSize"];?>; z-index: 1}
|
||||
.CodeMirror-scroll {} /* was: height: auto; overflow: visible */
|
||||
/* Make sure this next one remains the 3rd item, updated with JS */
|
||||
.cm-s-activeLine {background: <?php echo $activeLineBG;?> !important}
|
||||
.cm-matchhighlight, .CodeMirror-focused .cm-matchhighlight {color: #fff !important; background: #06c !important}
|
||||
/* Make sure this next one remains the 5th item, updated with JS */
|
||||
.cm-tab:after {position: relative; display: inline-block; width: 0; left: -1.4em; overflow: visible; color: #aaa; content: "<?php if($ICEcoder["visibleTabs"]) {echo '\\21e5';};?>";}
|
||||
.lint-error {font-family: arial; font-size: 80%; background: #ccc; color: #b00; padding: 3px 5px}
|
||||
.lint-error-icon {background: #b00; color: #fff; font-weight: bold; border-radius: 50%; padding: 0 3px; margin-right: 5px}
|
||||
.cm-tab {border-left-width: <?php echo $ICEcoder["visibleTabs"] ? "1px" : "0";?>; margin-left: <?php echo $ICEcoder["visibleTabs"] ? "-1px" : "0";?>; border-left-style: solid; border-left-color: rgba(255,255,255,0.15)}
|
||||
.cm-trailingspace {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);
|
||||
background-position: bottom left;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.CodeMirror-foldmarker {font-family: arial; line-height: .3; color: #b00; cursor: pointer;
|
||||
text-shadow: #fff 1px 1px 2px, #fff -1px -1px 2px, #fff 1px -1px 2px, #fff -1px 1px 2px;
|
||||
}
|
||||
.folds {display: inline-block; width: 13px}
|
||||
.fold {position: absolute; display: inline-block; width: 13px; height: 13px; font-size: 14px; text-align: center; cursor: pointer}
|
||||
.foldOn {background: #800; color: #ddd}
|
||||
.foldOff {background: #383838; color: #666}
|
||||
.foldOff {background: rgba(255,255,255,0.04); color: #666}
|
||||
h2 {color: rgba(0,198,255,0.7)}
|
||||
.heading {color:#888}
|
||||
.cm-s-diff {left: 50%}
|
||||
.diffGreen {background: #0b0 !important; color: #000 !important}
|
||||
.diffRed {background: #800 !important; color: #fff !important}
|
||||
.diffGrey {background: #444 !important; color: #fff !important}
|
||||
.diffGreyLighter {background: #888 !important; color: #222 !important}
|
||||
.diffNone {}
|
||||
.info {font-size: 10px; color: rgba(0,198,255,0.7); cursor: help}
|
||||
</style>
|
||||
|
||||
<link rel="stylesheet" href="lib/file-types.css">
|
||||
<link rel="stylesheet" href="lib/file-types.css?microtime=<?php echo microtime(true);?>">
|
||||
<link rel="stylesheet" href="lib/file-type-icons.css?microtime=<?php echo microtime(true);?>">
|
||||
</head>
|
||||
|
||||
<body style="color: #fff; margin: 0" onKeyDown="return top.ICEcoder.interceptKeys('content', event);" onKeyUp="top.ICEcoder.resetKeys(event);">
|
||||
|
||||
<?php if ($ICEcoder['demoMode']) {?>
|
||||
<div style="position: absolute; display: inline-block; width: 99px; height: 50px; top: 0; right: 30px; background: url('images/big-arrow.gif') 0 -10px no-repeat; text-align: center; font-family: arial; font-size: 10px; padding-top: 60px"><b>Click logo<br>for help &<br>usage info</b></div>
|
||||
<?php ;}; ?>
|
||||
<body style="color: #fff; margin: 0" onKeyDown="return top.ICEcoder.interceptKeys('content', event);" onKeyUp="top.ICEcoder.resetKeys(event);" onBlur="parent.ICEcoder.resetKeys(event);">
|
||||
|
||||
<div style="display: none; margin: 32px 43px 0 43px; padding: 10px; width: 500px; font-family: arial; font-size: 10px; color: #ddd; background: #333" id="dataMessage"></div>
|
||||
|
||||
<div style="margin: 20px 43px 32px 43px; font-family: arial; font-size: 10px; color: #ddd">
|
||||
<div style="float: left; margin-right: 50px">
|
||||
<h2 style="color: rgba(0,198,255,0.7)">server</h2>
|
||||
<span style="color:#888">Server name, OS & IP:</span><br>
|
||||
<?php echo $_SERVER['SERVER_NAME']."   ".$_SERVER['SERVER_SOFTWARE']."   ".$_SERVER['SERVER_ADDR'];?><br><br>
|
||||
<span style="color:#888">Root:</span><br>
|
||||
<div style="float: left; width: 300px; margin-right: 50px">
|
||||
<h2><?php echo $t['server'];?></h2>
|
||||
<span class="heading"><?php echo $t['Server name, OS...'];?></span><br>
|
||||
<?php echo $_SERVER['SERVER_NAME']."   ".$_SERVER['SERVER_SOFTWARE']."   ".(isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:"Unknown");?><br><br>
|
||||
<span class="heading"><?php echo $t['Root'];?></span><br>
|
||||
<?php echo $docRoot;?><br><br>
|
||||
<span style="color:#888">ICEcoder root:</span><br>
|
||||
<span class="heading"><?php echo $t['ICEcoder root'];?></span><br>
|
||||
<?php echo $docRoot.$iceRoot;?><br><br>
|
||||
<span style="color:#888">PHP version:</span><br>
|
||||
<span class="heading"><?php echo $t['PHP version'];?></span><br>
|
||||
<?php echo phpversion();?><br><br>
|
||||
<span style="color:#888">Date & time:</span><br>
|
||||
<span id="serverDT"></span><br><br><br>
|
||||
<span class="heading"><?php echo $t['Date & time'];?></span><br>
|
||||
<span id="serverDT"></span><br><br>
|
||||
<h2><?php echo $t['your device'];?></h2>
|
||||
<span class="heading"><?php echo $t['Browser'];?></span><br>
|
||||
<?php echo xssClean($_SERVER['HTTP_USER_AGENT'],"html");?><br><br>
|
||||
<span class="heading"><?php echo $t['Your IP'];?></span><br>
|
||||
<?php echo $_SERVER['REMOTE_ADDR'];?><br><br>
|
||||
</div>
|
||||
|
||||
<div style="float: left">
|
||||
<h2 style="color: rgba(0,198,255,0.7)">files</h2>
|
||||
<span style="color:#888">Last 10 files opened:</span><br>
|
||||
<h2><?php echo $t['files'];?></h2>
|
||||
<span class="heading"><?php echo $t['Last 10 files...'];?></span><br>
|
||||
<ul class="fileManager" style="margin-left: 0; line-height: 20px">
|
||||
<?php
|
||||
$last10FilesArray = explode(",",$ICEcoder["last10Files"]);
|
||||
for ($i=0;$i<count($last10FilesArray);$i++) {
|
||||
if ($ICEcoder["last10Files"]=="") {
|
||||
echo '[none]<br><br>';
|
||||
echo '<div style="display: inline-block; margin-left: -39px; margin-top: -4px">'.$t['none'].'</div><br><br>';
|
||||
} else {
|
||||
$fileFolderName = str_replace("\\","/",$last10FilesArray[$i]);
|
||||
// Get extension (prefix 'ext-' to prevent invalid classes from extensions that begin with numbers)
|
||||
$ext = "ext-".pathinfo($docRoot.$iceRoot.$fileFolderName, PATHINFO_EXTENSION);
|
||||
$class = 'pft-file '.strtolower($ext);
|
||||
echo '<li class="'.$class.'" style="margin-left: -16px">';
|
||||
echo '<li class="pft-file '.strtolower($ext).'" style="margin-left: -21px">';
|
||||
echo '<a style="cursor:pointer" onClick="top.ICEcoder.openFile(\''.str_replace("|","/",$last10FilesArray[$i]).'\')">';
|
||||
echo str_replace($docRoot,"",str_replace("|","/",$last10FilesArray[$i]));
|
||||
echo '</a></li>'.PHP_EOL;
|
||||
@@ -97,13 +133,7 @@ $activeLineBG = array_search($ICEcoder["theme"],array("eclipse","elegant","neat"
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div style="clear: both">
|
||||
<h2 style="color: rgba(0,198,255,0.7)">your device</h2>
|
||||
<span style="color:#888">Browser:</span><br>
|
||||
<?php echo $_SERVER['HTTP_USER_AGENT'];?><br><br>
|
||||
<span style="color:#888">Your IP:</span><br>
|
||||
<?php echo $_SERVER['REMOTE_ADDR'];?>
|
||||
</div>
|
||||
<div style="clear: both"></div>
|
||||
<script>
|
||||
var nDT=<?php echo time()*1000;?>;
|
||||
setInterval(function(){
|
||||
@@ -120,154 +150,134 @@ $activeLineBG = array_search($ICEcoder["theme"],array("eclipse","elegant","neat"
|
||||
</script>
|
||||
<?php if(is_dir('test') && !$ICEcoder['demoMode']) {?>
|
||||
<div style="float: left; margin-right: 50px">
|
||||
<br><br>
|
||||
<h2 style="color: rgba(0,198,255,0.7)">test suite</h2>
|
||||
<span style="color:#888">Run unit tests:</span><br>
|
||||
<a href="javascript:top.ICEcoder.filesFrame.contentWindow.frames['testControl'].location.href = 'test'" style="color: #fff">Run unit tests</a><div id="unitTestResults"></div>
|
||||
<h2><?php echo $t['test suite'];?></h2>
|
||||
<span class="heading"><?php echo $t['Run unit tests'];?></span><br>
|
||||
<a nohref onclick="top.ICEcoder.filesFrame.contentWindow.frames['testControl'].location.href = 'test'" style="color: #fff; cursor: pointer"><?php echo $t['Run unit tests'];?></a><div id="unitTestResults"></div>
|
||||
</div>
|
||||
<?php ;};?>
|
||||
<?php if($ICEcoder['devMode']) {?>
|
||||
<?php
|
||||
;};
|
||||
?>
|
||||
<div style="float: left">
|
||||
<br><br>
|
||||
<h2 style="color: rgba(0,198,255,0.7)">dev mode on</h2>
|
||||
<span style="color:#888">Status:</span><br>
|
||||
Using ice-coder.js
|
||||
<h2><?php echo $t['dev mode'];?> <?php echo $ICEcoder['devMode'] ? "on" : "off";?></h2>
|
||||
<span class="heading"><?php echo $t['Status'];?>:</span><br>
|
||||
<?php echo $t['Using']?> <?php echo $ICEcoder['devMode'] ? "ice-coder.js" : "ice-coder.min.js";?> <a title="<?php echo $t['You can switch...'];?>" class="info">[?]</a>
|
||||
</div>
|
||||
<?php ;};?>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
CodeMirror.keyMap.ICEcoder = {
|
||||
// "Tab": "defaultTab", **Now used by Emmet**
|
||||
"Tab": function(cm) {
|
||||
return cm.somethingSelected()
|
||||
? (top.ICEcoder.indentAuto
|
||||
? cm.execCommand("indentAuto") // Honour our own setting indentAuto
|
||||
: cm.indentSelection("add") // Add indent (this is default handler in CodeMirror)
|
||||
)
|
||||
: CodeMirror.Pass // Falls through to default or Emmet plugin
|
||||
},
|
||||
"Shift-Tab": "indentLess",
|
||||
"Ctrl-Space": "autocomplete",
|
||||
"Ctrl-Up" : false,
|
||||
"Ctrl-Down" : false,
|
||||
"Esc" : false,
|
||||
fallthrough: ["default"]
|
||||
};
|
||||
CodeMirror.commands.autocomplete = function(cm) {
|
||||
if (top.ICEcoder.caretLocType=="JavaScript") {
|
||||
CodeMirror.showHint(cm, CodeMirror.javascriptHint);
|
||||
} else {
|
||||
CodeMirror.showHint(cm, CodeMirror.htmlHint);
|
||||
|
||||
// CodeMirror does not honor indentWithTabs = false properly when handling Tab key
|
||||
// Marijn said that it is by design, so we need to make a workaround of our own
|
||||
(function(){
|
||||
// let's back up original insertTab function which actually puts
|
||||
var originalInsertTabFunction = CodeMirror.commands.insertTab;
|
||||
// and replace it with our own, which branches on whether our ICEcoder.indentWithTabs value is true or false
|
||||
CodeMirror.commands.insertTab = function(cm){
|
||||
if (top.ICEcoder.indentWithTabs){
|
||||
// if it is true, then we should still put there, let's use original function
|
||||
return originalInsertTabFunction(cm);
|
||||
} else {
|
||||
// otherwise - let's call another handler, insertSoftTab which will do the job
|
||||
return cm.execCommand("insertSoftTab");
|
||||
}
|
||||
}
|
||||
}
|
||||
}());
|
||||
|
||||
function createNewCMInstance(num) {
|
||||
// Establish the filename for the tab
|
||||
var fileName = top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1];
|
||||
top.ICEcoder['cM'+num+'waiting'] = "";
|
||||
top.ICEcoder['cM'+num+'widgets'] = [];
|
||||
|
||||
window['cM'+num] = CodeMirror(document.body, {
|
||||
// Define our CodeMirror options
|
||||
var cMOptions = {
|
||||
mode: "application/x-httpd-php",
|
||||
lineNumbers: true,
|
||||
gutters: ["folds","CodeMirror-linenumbers"],
|
||||
gutters: ["folds","CodeMirror-lint-markers","CodeMirror-linenumbers"],
|
||||
lineWrapping: top.ICEcoder.lineWrapping,
|
||||
indentWithTabs: top.ICEcoder.indentWithTabs,
|
||||
indentUnit: top.ICEcoder.indentSize,
|
||||
tabSize: top.ICEcoder.indentSize,
|
||||
electricChars: false,
|
||||
autoCloseTags: true,
|
||||
autoCloseBrackets: true,
|
||||
highlightSelectionMatches: true,
|
||||
keyMap: "ICEcoder",
|
||||
onKeyEvent: function(thisCM, e) {
|
||||
top.ICEcoder.redoChangedContent(e);
|
||||
top.ICEcoder.findReplace(top.document.getElementById('find').value,true,false);
|
||||
top.ICEcoder.getCaretPosition();
|
||||
top.ICEcoder.updateCharDisplay();
|
||||
top.ICEcoder.updateByteDisplay();
|
||||
tok = thisCM.getTokenAt(thisCM.getCursor());
|
||||
}
|
||||
});
|
||||
showTrailingSpace: true,
|
||||
lint: false,
|
||||
keyMap: "ICEcoder"
|
||||
};
|
||||
|
||||
window['cM'+num].on("cursorActivity", function(thisCM) {
|
||||
top.ICEcoder.getCaretPosition();
|
||||
top.ICEcoder.updateCharDisplay();
|
||||
top.ICEcoder.updateByteDisplay();
|
||||
window['cM'+num].removeLineClass(top.ICEcoder['cMActiveLine'+num], "background");
|
||||
if(window['cM'+num].getCursor('start').line == window['cM'+num].getCursor().line) {
|
||||
top.ICEcoder['cMActiveLine'+num] = window['cM'+num].addLineClass(window['cM'+num].getCursor().line, "background","cm-s-activeLine");
|
||||
}
|
||||
top.ICEcoder.cssColorPreview();
|
||||
}
|
||||
);
|
||||
// Start editor instances, main and diff
|
||||
window['cM'+num] = CodeMirror(document.body, cMOptions);
|
||||
window['cM'+num+'diff'] = CodeMirror(document.body, cMOptions);
|
||||
|
||||
window['cM'+num].on("change", function(thisCM, changeObj) {
|
||||
// If we're not loading the file, it's a change, so update tab
|
||||
if (!top.ICEcoder.loadingFile) {
|
||||
top.ICEcoder.changedContent[top.ICEcoder.selectedTab-1] = 1;
|
||||
top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);
|
||||
}
|
||||
top.ICEcoder.getCaretPosition();
|
||||
top.ICEcoder.dontUpdateNest = false;
|
||||
top.ICEcoder.updateCharDisplay();
|
||||
top.ICEcoder.updateByteDisplay();
|
||||
top.ICEcoder.updateNestingIndicator();
|
||||
if (top.ICEcoder.findMode) {
|
||||
top.ICEcoder.results.splice(top.ICEcoder.findResult,1);
|
||||
top.document.getElementById('results').innerHTML = top.ICEcoder.results.length + " results";
|
||||
top.ICEcoder.findMode = false;
|
||||
}
|
||||
if (top.ICEcoder.codeAssist) {
|
||||
clearTimeout(window['cM'+num+'waiting']);
|
||||
window['cM'+num+'waiting'] = setTimeout(top.ICEcoder.updateHints, 100);
|
||||
}
|
||||
var filepath = top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1];
|
||||
var filename = filepath.substr(filepath.lastIndexOf("/")+1);
|
||||
var fileExt = filename.substr(filename.lastIndexOf(".")+1);
|
||||
for (var i=changeObj.from.line; i<changeObj.from.line+changeObj.text.length; i++) {
|
||||
top.ICEcoder.content.contentWindow.CodeMirror.newFoldFunction(top.ICEcoder.content.contentWindow.CodeMirror[["coffee","css","js","less","php","py","rb","ruby"].indexOf(fileExt) > -1 ? "braceRangeFinder" : "tagRangeFinder"],null,"+","-",true)(thisCM, i);
|
||||
}
|
||||
// Update HTML edited files live
|
||||
if (top.ICEcoder.previewWindow.location) {
|
||||
if (top.ICEcoder.previewWindow.location.pathname==filepath) {
|
||||
if (["htm","html","txt"].indexOf(fileExt) > -1) {
|
||||
top.ICEcoder.previewWindow.document.documentElement.innerHTML = window['cM'+num].getValue();
|
||||
} else if (["md"].indexOf(fileExt) > -1) {
|
||||
top.ICEcoder.previewWindow.document.documentElement.innerHTML = mmd(window['cM'+num].getValue());
|
||||
}
|
||||
} else if (["css"].indexOf(fileExt) > -1) {
|
||||
if (top.ICEcoder.previewWindow.document.documentElement.innerHTML.indexOf(filename) > -1) {
|
||||
var css = window['cM'+num].getValue();
|
||||
var style = document.createElement('style');
|
||||
style.type = 'text/css';
|
||||
style.id = "ICEcoder"+filepath.replace(/\//g,"_");
|
||||
if (style.styleSheet){
|
||||
style.styleSheet.cssText = css;
|
||||
} else {
|
||||
style.appendChild(document.createTextNode(css));
|
||||
}
|
||||
if (top.ICEcoder.previewWindow.document.getElementById(style.id)) {
|
||||
top.ICEcoder.previewWindow.document.documentElement.removeChild(top.ICEcoder.previewWindow.document.getElementById(style.id));
|
||||
}
|
||||
top.ICEcoder.previewWindow.document.documentElement.appendChild(style);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
// Define actions for those...
|
||||
|
||||
window['cM'+num].on("scroll", function(thisCM) {
|
||||
top.ICEcoder.mouseDown=false;
|
||||
}
|
||||
);
|
||||
// Focus
|
||||
window['cM'+num] .on("focus", function(thisCM) {top.ICEcoder.cMonFocus(thisCM,'cM'+num)});
|
||||
window['cM'+num+'diff'] .on("focus", function(thisCM) {top.ICEcoder.cMonFocus(thisCM,'cM'+num+'diff')});
|
||||
|
||||
window['cM'+num].on("gutterClick", function(thisCM, line, gutter, clickEvent) {
|
||||
var filepath = top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1];
|
||||
var filename = filepath.substr(filepath.lastIndexOf("/")+1);
|
||||
var fileExt = filename.substr(filename.lastIndexOf(".")+1);
|
||||
["coffee","css","js","less","php","py","rb","ruby"].indexOf(fileExt) > -1
|
||||
? codeFoldBrace(window['cM'+num], line) : codeFoldTag(window['cM'+num], line);
|
||||
}
|
||||
);
|
||||
// Blur
|
||||
window['cM'+num] .on("blur", function(thisCM) {top.ICEcoder.cMonBlur(thisCM,'cM'+num)});
|
||||
window['cM'+num+'diff'] .on("blur", function(thisCM) {top.ICEcoder.cMonBlur(thisCM,'cM'+num+'diff')});
|
||||
|
||||
// Now create the active line for this CodeMirror object
|
||||
top.ICEcoder['cMActiveLine'+num] = window['cM'+num].addLineClass(0, "background", "cm-s-activeLine");
|
||||
// Keyup
|
||||
window['cM'+num] .on("keyup", function(thisCM) {top.ICEcoder.cMonKeyUp(thisCM,'cM'+num)});
|
||||
window['cM'+num+'diff'] .on("keyup", function(thisCM) {top.ICEcoder.cMonKeyUp(thisCM,'cM'+num+'diff')});
|
||||
|
||||
// Cursor activity
|
||||
window['cM'+num] .on("cursorActivity", function(thisCM) {top.ICEcoder.cMonCursorActivity(thisCM,'cM'+num)});
|
||||
window['cM'+num+'diff'] .on("cursorActivity", function(thisCM) {top.ICEcoder.cMonCursorActivity(thisCM,'cM'+num+'diff')});
|
||||
|
||||
// Before selection change
|
||||
window['cM'+num] .on("beforeSelectionChange", function(thisCM, changeObj) {top.ICEcoder.prevLine = thisCM.getCursor().line;});
|
||||
window['cM'+num+'diff'] .on("beforeSelectionChange", function(thisCM, changeObj) {top.ICEcoder.prevLineDiff = thisCM.getCursor().line;});
|
||||
|
||||
// Change
|
||||
window['cM'+num] .on("change", function(thisCM, changeObj) {top.ICEcoder.cMonChange(thisCM,'cM'+num,changeObj)});
|
||||
window['cM'+num+'diff'] .on("change", function(thisCM, changeObj) {top.ICEcoder.cMonChange(thisCM,'cM'+num+'diff',changeObj)});
|
||||
|
||||
// Scroll
|
||||
window['cM'+num] .on("scroll", function(thisCM) {top.ICEcoder.cMonScroll(thisCM,'cM'+num)});
|
||||
window['cM'+num+'diff'] .on("scroll", function(thisCM) {top.ICEcoder.cMonScroll(thisCM,'cM'+num+'diff')});
|
||||
|
||||
// Gutter click
|
||||
window['cM'+num] .on("gutterClick", function(thisCM, line, gutter, clickEvent) {CodeMirror.doFold(thisCM.getLine(line).indexOf("{")>-1 ? "brace" : "xml",null,"+","-",false)(thisCM, line);});
|
||||
window['cM'+num+'diff'] .on("gutterClick", function(thisCM, line, gutter, clickEvent) {CodeMirror.doFold(thisCM.getLine(line).indexOf("{")>-1 ? "brace" : "xml",null,"+","-",false)(thisCM, line);});
|
||||
|
||||
// Input read
|
||||
window['cM'+num] .on("inputRead", function(thisCM) {top.ICEcoder.cMonInputRead(thisCM,'cM'+num)});
|
||||
window['cM'+num+'diff'] .on("inputRead", function(thisCM) {top.ICEcoder.cMonInputRead(thisCM,'cM'+num+'diff')});
|
||||
|
||||
// Render line
|
||||
window['cM'+num] .on("renderLine", function(thisCM, line, element) {top.ICEcoder.cMonRenderLine(thisCM,'cM'+num,line,element)});
|
||||
window['cM'+num+'diff'] .on("renderLine", function(thisCM, line, element) {top.ICEcoder.cMonRenderLine(thisCM,'cM'+num+'diff',line,element)});
|
||||
|
||||
// Now create the active lines for them
|
||||
top.ICEcoder['cMActiveLinecM'+num] = window['cM'+num].addLineClass(0, "background", "cm-s-activeLine");
|
||||
top.ICEcoder['cMActiveLinecM'+num+'diff'] = window['cM'+num+'diff'].addLineClass(0, "background", "cm-s-activeLine");
|
||||
};
|
||||
|
||||
var codeFoldTag = CodeMirror.newFoldFunction(CodeMirror.tagRangeFinder,null,"+","-",false);
|
||||
var codeFoldBrace = CodeMirror.newFoldFunction(CodeMirror.braceRangeFinder,null,"+","-",false);
|
||||
</script>
|
||||
|
||||
<div style="position: absolute; display: none; width: 5px; height: 100%; top: 0; right: 0; background: rgba(255,255,255,0.1); overflow: hidden; z-index: 2" id="resultsBar"></div>
|
||||
|
||||
<?php include_once("processes/on-editor-load.php"); ?>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -1,341 +0,0 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
BIN
favicon.png
|
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 1.3 KiB |
55
files.php
@@ -1,27 +1,62 @@
|
||||
<?php include("lib/settings.php");?>
|
||||
<?php
|
||||
include("lib/headers.php");
|
||||
include("lib/settings.php");
|
||||
$t = $text['files'];
|
||||
|
||||
// Is our dir in the list of GitHub local paths?
|
||||
$isGitHubRepoDir = in_array($ICEcoder["root"],$ICEcoder['githubLocalPaths']);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false; if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'files');top.ICEcoder.canResizeFilesW()}" onContextMenu="top.ICEcoder.rightClickedFile=top.ICEcoder.thisFileFolderLink; return top.ICEcoder.showMenu(event)" onClick="top.ICEcoder.selectFileFolder(event)">
|
||||
<html onMouseDown="top.ICEcoder.mouseDown=true; top.ICEcoder.boxSelect(event,'down')" onMouseUp="top.ICEcoder.mouseDown=false; top.ICEcoder.boxSelect(event,'up'); if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'files');top.ICEcoder.canResizeFilesW(); top.ICEcoder.boxSelect(event,'drag')}" onDrop="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'files')}" onContextMenu="top.ICEcoder.selectFileFolder(event); return top.ICEcoder.showMenu(event)" onClick="if (!top.ICEcoder.fmDraggedBox) {top.ICEcoder.selectFileFolder(event)} else {top.ICEcoder.fmDraggedBox = false}" onDragStart="top.ICEcoder.selectFileFolder(event);" onDragOver="event.preventDefault();event.stopPropagation()">
|
||||
<head>
|
||||
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?> file manager</title>
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<link rel="stylesheet" type="text/css" href="lib/files.css">
|
||||
<link rel="stylesheet" type="text/css" href="lib/file-types.css">
|
||||
<script src="lib/ice-coder<?php if (!$ICEcoder['devMode']) {echo '.min';};?>.js" type="text/javascript"></script>
|
||||
<link rel="stylesheet" type="text/css" href="lib/files.css?microtime=<?php echo microtime(true);?>">
|
||||
<link rel="stylesheet" type="text/css" href="lib/file-types.css?microtime=<?php echo microtime(true);?>">
|
||||
<link rel="stylesheet" type="text/css" href="lib/file-type-icons.css?microtime=<?php echo microtime(true);?>">
|
||||
<script src="lib/ice-coder<?php if (!$ICEcoder['devMode']) {echo '.min';}; echo ".js?microtime=".microtime(true);?>" type="text/javascript"></script>
|
||||
<style>
|
||||
ul.fileManager li a span { font-size: <?php echo $ICEcoder["fontSize"];?>; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body onDblClick="top.ICEcoder.openFile()" onKeyDown="return top.ICEcoder.interceptKeys('files', event);" onKeyUp="top.ICEcoder.resetKeys(event);">
|
||||
<body onFocus="top.ICEcoder.files.style.background='#444'" onBlur="top.ICEcoder.files.style.background='#383838'" onload="top.ICEcoder.showHideGithubNav(top.ICEcoder.githubDiff ? 'show' : 'hide')" onDblClick="top.ICEcoder.openFile()" onKeyDown="return top.ICEcoder.interceptKeys('files', event);" onKeyUp="top.ICEcoder.resetKeys(event);" onBlur="parent.ICEcoder.resetKeys(event);">
|
||||
|
||||
<div title="Refresh" onClick="top.ICEcoder.refreshFileManager()" class="refresh"></div>
|
||||
<div title="<?php echo $t['Lock'];?>" onClick="top.ICEcoder.lockUnlockNav()" id="fmLock" class="lock"></div>
|
||||
<div title="<?php echo $t['Refresh'];?>" onClick="top.ICEcoder.refreshFileManager()" class="refresh"></div>
|
||||
<div title="<?php echo $t['Plugins'];?>" onClick="top.ICEcoder.showHidePlugins(top.get('plugins').style.width != '55px' ? 'show' : 'hide')" class="plugins"></div>
|
||||
<?php
|
||||
$_SESSION['githubDiff'] = false;
|
||||
if ($isGitHubRepoDir) {
|
||||
$classExtra = !isset($_GET["githubDiff"]) || $_GET["githubDiff"] == "false" ? "Off" : "On";
|
||||
if ($classExtra == "On") {
|
||||
$_SESSION['githubDiff'] = true;
|
||||
// Make sure we are showing the diff pane
|
||||
echo "<script>top.ICEcoder.setSplitPane('on');</script>";
|
||||
}
|
||||
echo '<div title="GitHub" onClick="top.ICEcoder.githubDiffToggle()" class="github'.$classExtra.'"></div>';
|
||||
}
|
||||
?>
|
||||
|
||||
<ul class="fileManager">
|
||||
<li class="pft-directory dirOpen"><a nohref title="/" onMouseOver="top.ICEcoder.overFileFolder('folder','/')" onMouseOut="top.ICEcoder.overFileFolder('folder','')" onClick="top.ICEcoder.openCloseDir(this)" style="position: relative; left:-22px"> <span id="|">/ <?php echo $iceRoot == "" ? "[ROOT]" : trim($iceRoot,"/");?></span> <span style="color: #888; font-size: 8px" id="|_perms"><?php echo $serverType=="Linux" ? substr(sprintf('%o', fileperms($docRoot.$iceRoot)), -3) : "";?></span></a></li><?php include("lib/get-branch.php");?>
|
||||
<li class="pft-directory dirOpen"><a nohref title="/" onMouseOver="top.ICEcoder.overFileFolder('folder','/')" onMouseOut="top.ICEcoder.overFileFolder('folder','')" onClick="top.ICEcoder.openCloseDir(this)" style="position: relative; left:-22px"> <span id="|">/ <?php
|
||||
echo $iceRoot == "" ? $t['ROOT'] : trim($iceRoot,"/");
|
||||
$thisPermVal = $serverType=="Linux" ? substr(sprintf('%o', fileperms($docRoot.$iceRoot)), -3) : "";
|
||||
$permColors = $thisPermVal == 777 ? 'background: #800; color: #eee' : 'color: #888';
|
||||
?></span> <span style="<?php echo $permColors;?>; font-size: 8px" id="|_perms"><?php echo $thisPermVal;;?></span></a></li><?php
|
||||
// tree file items generated by the iFrame 'fileControl' below which loads in the items at location=| (ie, the root)
|
||||
?>
|
||||
</ul>
|
||||
|
||||
<iframe name="fileControl" style="display: none"></iframe>
|
||||
<iframe name="fileControl" src="lib/get-branch.php?location=|&csrf=<?php echo $_SESSION['csrf'];?>" style="display: none"></iframe>
|
||||
|
||||
<iframe name="testControl" style="display: none"></iframe>
|
||||
|
||||
|
||||
<iframe name="processControl" style="display: none"></iframe>
|
||||
|
||||
<div class="fmDragBox" id="fmDragBox"></div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 430 B |
BIN
images/bug-reporting-icons.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
images/checkbox.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 73 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 990 B After Width: | Height: | Size: 999 B |
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
images/nav-close-all.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 480 B |
|
Before Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 65 B |
BIN
images/select-arrow.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
images/split-pane-controls.gif
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
323
index.php
@@ -1,18 +1,27 @@
|
||||
<?php include("lib/settings.php");
|
||||
<?php
|
||||
include("lib/headers.php");
|
||||
include("lib/settings.php");
|
||||
$t = $text['index'];
|
||||
|
||||
// Check IP permissions
|
||||
if (!in_array($_SERVER["REMOTE_ADDR"], $_SESSION['allowedIPs']) && !in_array("*", $_SESSION['allowedIPs'])) {
|
||||
header('Location: /');
|
||||
die("Sorry, not in allowed IPs list");
|
||||
};
|
||||
|
||||
$updateMsg = '';
|
||||
// Check for updates
|
||||
if ($ICEcoder["checkUpdates"]) {
|
||||
$icv_url = "http://icecoder.net/latest-version?thisVersion=".$ICEcoder["versionNo"];
|
||||
$icv_url = "https://icecoder.net/latest-version?thisVersion=".$ICEcoder["versionNo"];
|
||||
if (ini_get('allow_url_fopen')) {
|
||||
$icvInfo = explode("\n",file_get_contents($icv_url,false,$context));
|
||||
$icvInfo = @file_get_contents($icv_url,false,$context);
|
||||
if (!$icvInfo) {
|
||||
$icvInfo = file_get_contents(str_replace("https:","http:",$icv_url), false, $context);
|
||||
}
|
||||
$icvInfo = explode("\n",$icvInfo);
|
||||
} elseif (function_exists('curl_init')) {
|
||||
$ch = curl_init($icv_url);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
$icvInfo = explode("\n", curl_exec($ch));
|
||||
}
|
||||
@@ -21,61 +30,91 @@ if ($ICEcoder["checkUpdates"]) {
|
||||
$thisV = $ICEcoder["versionNo"];
|
||||
if (strpos($thisV,"beta")>-1 && !strpos($icv,"beta") && str_replace(" beta","",$thisV) == $icv) {$thisV-=0.1;};
|
||||
if ($thisV<$icv) {
|
||||
$updateMsg = ";top.ICEcoder.dataMessage('<b>UPDATE INFO:</b> ICEcoder v ".$icv." now available. (Your version is v ".$ICEcoder["versionNo"]."). Get it free from <a href=\\'http://icecoder.net\\' target=\\'_blank\\' style=\\'color:#ddd\\'>icecoder.net</a><br>".$icvI."');";
|
||||
$updateMsg = ";top.ICEcoder.dataMessage('<b>".$t['UPDATE INFO'].":</b> ICEcoder v ".$icv." ".$t['now available'].". (".$t['Your version is']." v ".$ICEcoder["versionNo"].").<br><br><a onclick=\\'top.ICEcoder.update()\\' style=\\'color:#fff; background: #b00; padding: 5px; text-decoration: none; cursor: pointer\\'>".$t['Update now']."</a><br><br>".$icvI."');";
|
||||
}
|
||||
}
|
||||
|
||||
$isMac = strpos($_SERVER['HTTP_USER_AGENT'], "Macintosh")>-1 ? true : false;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false; if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'top');top.ICEcoder.canResizeFilesW()}">
|
||||
<html onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false; if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'top');top.ICEcoder.canResizeFilesW()}" onMouseWheel="if (!top.ICEcoder.getcMInstance().hasFocus() && !top.ICEcoder.getcMdiffInstance().hasFocus()) {event.wheelDelta > 0 ? top.ICEcoder.nextTab() : top.ICEcoder.previousTab();}">
|
||||
<head>
|
||||
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?></title>
|
||||
<style>
|
||||
#tabsBar.tabsBar .tab { font-size: <?php echo $ICEcoder["fontSize"];?>; }
|
||||
</style>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<link rel="stylesheet" type="text/css" href="lib/ice-coder.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.5, user-scalable=no">
|
||||
<link rel="stylesheet" type="text/css" href="lib/ice-coder.css?microtime=<?php echo microtime(true);?>">
|
||||
<link rel="icon" type="image/png" href="favicon.png">
|
||||
<script>
|
||||
iceRoot = "<?php echo $ICEcoder['root']; ?>";
|
||||
|
||||
window.onbeforeunload = function() {
|
||||
if (top.ICEcoder.changedContent.indexOf(1)>-1) {
|
||||
return "You have some unsaved changes.";
|
||||
for(var i=1;i<=ICEcoder.savedPoints.length;i++) {
|
||||
if (ICEcoder.savedPoints[i-1]!=top.ICEcoder.getcMInstance(i).changeGeneration()) {
|
||||
return "<?php echo $t['You have some...'];?>.";
|
||||
}
|
||||
}
|
||||
return "<?php echo $t['Are you sure...'];?>";
|
||||
}
|
||||
|
||||
t = {
|
||||
<?php
|
||||
// Load the lang array for what's in the JS file
|
||||
$t = $text['ice-coder'];
|
||||
$tOutput = "";
|
||||
foreach ($t as $key => $value) {
|
||||
$tOutput .= '"'.$key.'" : "'.$value.'",'.PHP_EOL;
|
||||
}
|
||||
echo rtrim($tOutput,",".PHP_EOL).PHP_EOL;
|
||||
|
||||
// Back to the lang array for index
|
||||
$t = $text['index'];
|
||||
?>
|
||||
}
|
||||
</script>
|
||||
<script language="JavaScript" src="lib/ice-coder<?php if (!$ICEcoder['devMode']) {echo '.min';};?>.js"></script>
|
||||
<script src="lib/mmd.js"></script>
|
||||
<?php
|
||||
if (file_exists(dirname(__FILE__)."/plugins/jshint/jshint.js")) {
|
||||
echo '<script src="plugins/jshint/jshint.js"></script>';
|
||||
}
|
||||
?>
|
||||
<script src="farbtastic/farbtastic.js"></script>
|
||||
<link rel="stylesheet" href="farbtastic/farbtastic.css" type="text/css">
|
||||
<script language="JavaScript" src="lib/ice-coder<?php if (!$ICEcoder['devMode']) {echo '.min';};?>.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<script src="lib/mmd.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<script src="farbtastic/farbtastic.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<script src="lib/difflib.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<link rel="stylesheet" href="farbtastic/farbtastic.css?microtime=<?php echo microtime(true);?>" type="text/css">
|
||||
</head>
|
||||
|
||||
<body onLoad="<?php
|
||||
echo 'top.ICEcoder.previousFiles = [';
|
||||
if ($ICEcoder["previousFiles"]!="") {
|
||||
$openFilesArray = explode(",",$ICEcoder["previousFiles"]);
|
||||
echo "'".implode("','",$openFilesArray)."'";
|
||||
}
|
||||
echo "];top.ICEcoder.theme = '";
|
||||
echo $ICEcoder["theme"]=="default" ? 'icecoder' : $ICEcoder["theme"];
|
||||
echo "'";
|
||||
echo ";top.ICEcoder.fontSize = '";
|
||||
echo $ICEcoder["fontSize"];
|
||||
echo "'";
|
||||
echo ';top.ICEcoder.openLastFiles = ';
|
||||
echo $ICEcoder["openLastFiles"] ? 'true' : 'false';
|
||||
echo ';top.ICEcoder.lineWrapping = ';
|
||||
echo $ICEcoder["lineWrapping"] ? 'true' : 'false';
|
||||
echo ';top.ICEcoder.indentWithTabs = ';
|
||||
echo $ICEcoder["indentWithTabs"] ? 'true' : 'false';
|
||||
echo ';top.ICEcoder.indentSize = ';
|
||||
echo $ICEcoder["indentSize"];
|
||||
echo ';top.ICEcoder.demoMode = ';
|
||||
echo $ICEcoder["demoMode"] ? 'true' : 'false';
|
||||
?>;ICEcoder.init()<?php echo $updateMsg.$onLoadExtras;?>" onResize="ICEcoder.setLayout()" onKeyDown="return ICEcoder.interceptKeys('coder',event);" onKeyUp="parent.ICEcoder.resetKeys(event);">
|
||||
echo "top.ICEcoder.versionNo = '".$ICEcoder["versionNo"]."';".
|
||||
'top.ICEcoder.previousFiles = [';
|
||||
if ($ICEcoder["previousFiles"]!="") {
|
||||
$openFilesArray = explode(",",$ICEcoder["previousFiles"]);
|
||||
echo "'".implode("','",$openFilesArray)."'";
|
||||
}
|
||||
echo "];";
|
||||
echo "top.ICEcoder.theme = '".($ICEcoder["theme"]=="default" ? 'icecoder' : $ICEcoder["theme"])."';".
|
||||
"top.ICEcoder.fontSize = '".$ICEcoder["fontSize"]."';".
|
||||
"top.ICEcoder.openLastFiles = ".($ICEcoder["openLastFiles"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.updateDiffOnSave = ".($ICEcoder["updateDiffOnSave"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.languageUser = '".$ICEcoder["languageUser"]."';".
|
||||
"top.ICEcoder.codeAssist = ".($ICEcoder["codeAssist"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.lockedNav = ".($ICEcoder["lockedNav"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.lineWrapping = ".($ICEcoder["lineWrapping"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.indentWithTabs = ".($ICEcoder["indentWithTabs"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.indentAuto = ".($ICEcoder["indentAuto"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.indentSize = ".$ICEcoder["indentSize"].";".
|
||||
"top.ICEcoder.demoMode = ".($ICEcoder["demoMode"] ? 'true' : 'false').";".
|
||||
"top.ICEcoder.tagWrapperCommand = '".$ICEcoder["tagWrapperCommand"]."';".
|
||||
"top.ICEcoder.autoComplete = '".$ICEcoder["autoComplete"]."';".
|
||||
"top.ICEcoder.bugFilePaths = ['".implode("','",$ICEcoder["bugFilePaths"])."'];".
|
||||
"top.ICEcoder.bugFileCheckTimer = ".$ICEcoder["bugFileCheckTimer"].";".
|
||||
"top.ICEcoder.bugFileMaxLines = ".$ICEcoder["bugFileMaxLines"].";".
|
||||
"top.ICEcoder.newDirPerms = ".$ICEcoder["newDirPerms"].";".
|
||||
"top.ICEcoder.newFilePerms = ".$ICEcoder["newFilePerms"].";";
|
||||
if($ICEcoder["githubAuthToken"] != "") {
|
||||
$_SESSION['githubAuthToken'] = $ICEcoder["githubAuthToken"];
|
||||
echo "top.ICEcoder.githubAuthTokenSet = true;";
|
||||
}
|
||||
echo "top.ICEcoder.csrf = '".$_SESSION["csrf"]."';";
|
||||
?>ICEcoder.init()<?php echo $updateMsg.$onLoadExtras;?>;top.ICEcoder.content.style.visibility='visible';top.ICEcoder.filesFrame.contentWindow.frames['processControl'].location.href = 'processes/on-load.php';<?php if(isset($_GET["display"]) && $_GET["display"] == "updated") {echo "top.ICEcoder.updated();";};?>" onResize="ICEcoder.setLayout()" onKeyDown="return ICEcoder.interceptKeys('coder',event);" onKeyUp="parent.ICEcoder.resetKeys(event);" onBlur="parent.ICEcoder.resetKeys(event);">
|
||||
|
||||
<div id="blackMask" class="blackMask" onClick="if (!ICEcoder.overPopup) {ICEcoder.showHide('hide',this)}" onContextMenu="return false">
|
||||
<div class="popupVCenter">
|
||||
@@ -84,63 +123,130 @@ if (file_exists(dirname(__FILE__)."/plugins/jshint/jshint.js")) {
|
||||
</div>
|
||||
|
||||
<div id="loadingMask" class="blackMask" style="visibility: visible" onContextMenu="return false">
|
||||
<span class="progressBar" id="progressBar" style="-webkit-animation:fullexpand 10s ease-out; -moz-animation:fullexpand 10s ease-out"></span>
|
||||
<div class="popupVCenter">
|
||||
<div class="popup">
|
||||
<div class="circleOutside"></div>
|
||||
<div class="circleInside"></div>
|
||||
working...
|
||||
<div class="spinner"></div>
|
||||
<?php echo $t['working'];?>...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="fileMenu" class="fileMenu" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract');this.style.display='none'" onContextMenu="return false">
|
||||
<div id="plugins" class="plugins" style="<?php echo $ICEcoder["pluginPanelAligned"];?>: 0" onMouseOver="top.ICEcoder.showHidePlugins('show')" onMouseOut="top.ICEcoder.showHidePlugins('hide')" onClick="top.ICEcoder.showHidePlugins('hide')">
|
||||
<div style="padding: 15px">
|
||||
<a nohref onClick="top.ICEcoder.showColorPicker(top.document.getElementById('color') ? top.document.getElementById('color').value : '#123456')" title="Farbtastic
|
||||
<?php echo $t['Color picker'];?>"><img src="images/color-picker.png" style="cursor: pointer" alt="Color Picker"></a><br><br>
|
||||
<div id="pluginsOptional"><?php echo $pluginsDisplay; ?></div>
|
||||
<a nohref onclick="top.ICEcoder.pluginsManager()" title="<?php echo $t['Plugins Manager'];?>" style="color: #fff; cursor: pointer">+ / -</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="fileMenu" class="fileMenu" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract');top.ICEcoder.hideFileMenu()" style="opacity: 0" onContextMenu="return false">
|
||||
<span id="folderMenuItems">
|
||||
<a href="javascript:top.ICEcoder.newFile()" onMouseOver="ICEcoder.showFileMenu()">New File</a>
|
||||
<a href="javascript:top.ICEcoder.newFolder()" onMouseOver="ICEcoder.showFileMenu()">New Folder</a>
|
||||
<a href="javascript:top.ICEcoder.uploadFilesSelect(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Upload File(s)</a>
|
||||
<a href="javascript:top.ICEcoder.newFile()" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['New File'];?></a>
|
||||
<a href="javascript:top.ICEcoder.newFolder()" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['New Folder'];?></a>
|
||||
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
|
||||
<a href="javascript:top.ICEcoder.uploadFilesSelect(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Upload File(s)'];?></a>
|
||||
<div style="display: none">
|
||||
<form enctype="multipart/form-data" id="uploadFilesForm" action="lib/file-control.php?action=upload&file=/uploaded" method="POST" target="fileControl">
|
||||
<form enctype="multipart/form-data" id="uploadFilesForm" action="lib/file-control-xhr.php?action=upload&file=/uploaded" method="POST" target="fileControl">
|
||||
<input type="hidden" name="folder" id="uploadDir" value="/">
|
||||
<input type="file" name="filesInput[]" id="fileInput" onchange="top.ICEcoder.uploadFilesSubmit(this)" multiple>
|
||||
<input type="submit" value="Upload File">
|
||||
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
<a href="javascript:top.ICEcoder.pasteFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()" id="fmMenuPasteOption" style="display: none">Paste</a>
|
||||
<a href="javascript:top.ICEcoder.pasteFiles(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()" id="fmMenuPasteOption" style="display: none"><?php echo $t['Paste'];?></a>
|
||||
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
|
||||
</span>
|
||||
<a href="javascript:top.ICEcoder.copyFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Copy</a>
|
||||
<a href="javascript:top.ICEcoder.deleteFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Delete</a>
|
||||
<a href="javascript:top.ICEcoder.openFilesFromList(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Open'];?></a>
|
||||
<a href="javascript:top.ICEcoder.copyFiles(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Copy'];?></a>
|
||||
<a href="javascript:top.ICEcoder.duplicateFiles(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Duplicate'];?></a>
|
||||
<a href="javascript:top.ICEcoder.deleteFiles(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Delete'];?></a>
|
||||
<span id="singleFileMenuItems">
|
||||
<a href="javascript:top.ICEcoder.renameFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Rename</a>
|
||||
<a href="javascript:window.open(top.ICEcoder.rightClickedFile.replace(/\|/g,'/'))" onMouseOver="ICEcoder.showFileMenu()">View Webpage</a>
|
||||
<a href="javascript:top.ICEcoder.renameFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Rename'];?></a>
|
||||
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
|
||||
<a nohref onClick="window.open(iceRoot + top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,'/'))" onMouseOver="ICEcoder.showFileMenu()" style="cursor: pointer"><?php echo $t['View Webpage'];?></a>
|
||||
</span>
|
||||
<a href="javascript:top.ICEcoder.zipIt(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Zip It!</a>
|
||||
<a href="javascript:top.ICEcoder.propertiesScreen(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Properties</a>
|
||||
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
|
||||
<?php
|
||||
if (file_exists(dirname(__FILE__)."/plugins/zip-it/index.php")) {
|
||||
echo '<a href="javascript:top.ICEcoder.zipIt(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()">Zip It!</a>'.PHP_EOL;
|
||||
};
|
||||
?>
|
||||
<a href="javascript:top.ICEcoder.downloadFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Download'];?></a>
|
||||
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
|
||||
<a href="javascript:top.ICEcoder.propertiesScreen(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Properties'];?></a>
|
||||
</div>
|
||||
|
||||
<div id="header" class="header" onContextMenu="return false">
|
||||
<div class="tools">
|
||||
<a nohref onClick="top.ICEcoder.showColorPicker(top.document.getElementById('color') ? top.document.getElementById('color').value : '#123456')" title="Color Picker"><img src="images/color-picker.png" style="margin-top: 3px; cursor: pointer" alt="Color Picker"></a>
|
||||
</div>
|
||||
<div class="plugins" id="pluginsContainer">
|
||||
<?php echo $pluginsDisplay; ?>
|
||||
</div>
|
||||
<div class="version"><a href="javascript:top:ICEcoder.logout()">logout</a> : v <?php echo $ICEcoder["versionNo"];?></div><img src="images/full-screen.gif" id="screenMode" class="screenModeIcon" onClick="top.ICEcoder.fullScreenSwitcher()">
|
||||
<img src="images/ice-coder.png" class="logo" onClick="ICEcoder.helpScreen()" onContextMenu="ICEcoder.settingsScreen()">
|
||||
</div>
|
||||
<div id="header" class="header" onContextMenu="return false"></div>
|
||||
|
||||
<div id="files" class="files" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract'); top.document.getElementById('fileMenu').style.display='none';">
|
||||
<div class="account" id="account">
|
||||
<div class="accountOptions">
|
||||
<div title="Save" onClick="ICEcoder.fMIcon('save')" id="fMSave" class="save"></div>
|
||||
<div title="Open" onClick="ICEcoder.fMIcon('open')" id="fMOpen" class="open"></div>
|
||||
<div title="New File" onClick="ICEcoder.fMIcon('newFile')" id="fMNewFile" class="newFile"></div>
|
||||
<div title="New Folder" onClick="ICEcoder.fMIcon('newFolder')" id="fMNewFolder" class="newFolder"></div>
|
||||
<div title="Delete" onClick="ICEcoder.fMIcon('delete')" id="fMDelete" class="delete"></div>
|
||||
<div title="Rename" onClick="ICEcoder.fMIcon('rename')" id="fMRename" class="rename"></div>
|
||||
<div title="View" onClick="ICEcoder.fMIcon('view')" id="fMView" class="view"></div>
|
||||
|
||||
<div title="Lock" onClick="ICEcoder.lockUnlockNav()" id="fmLock" class="lock"></div>
|
||||
<div id="files" class="files" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract'); top.ICEcoder.hideFileMenu();" onContextMenu="return false">
|
||||
<div id="fileNav" class="fileNav">
|
||||
<ul>
|
||||
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsFile')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsFile')}" id="optionsFileNav"><?php echo $t['File'];?></a></li>
|
||||
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsEdit')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsEdit')}" id="optionsEditNav"><?php echo $t['Edit'];?></a></li>
|
||||
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsSource')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsSource')}" id="optionsSourceNav"><?php echo $t['Source'];?></a></li>
|
||||
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsHelp')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsHelp')}" id="optionsHelpNav"><?php echo $t['Help'];?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="githubNav" class="githubNav">
|
||||
<div class="commit" id="githubNavCommit" onclick="top.ICEcoder.githubAction('commit')">Commit</div>
|
||||
<div class="selected" id="githubNavSelectedCount">Selected: 0</div>
|
||||
<div class="pull" id="githubNavPull" onclick="top.ICEcoder.githubAction('pull')">Pull</div>
|
||||
</div>
|
||||
<div class="options" id="fileOptions">
|
||||
<div id="optionsFile" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
|
||||
<ul>
|
||||
<li><a nohref onClick="ICEcoder.newFile()"><?php echo $t['New File'];?>...</a></li>
|
||||
<li><a nohref onClick="ICEcoder.newFolder()"><?php echo $t['New Folder'];?>...</a></li>
|
||||
<li><a nohref onClick="ICEcoder.openPrompt()"><?php echo $t['Open'];?>...</a></li>
|
||||
<li><a nohref onClick="ICEcoder.saveFile()"><?php echo $t['Save'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.saveFile('saveAs')"><?php echo $t['Save As'];?>...</a></li>
|
||||
<li><a nohref onclick="ICEcoder.openPreviewWindow()"><?php echo $t['Live Preview'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.downloadFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Download'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.copyFiles(top.ICEcoder.selectedFiles)"><?php echo $t['Copy'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.pasteFiles(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Paste'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.deleteFiles(top.ICEcoder.selectedFiles)"><?php echo $t['Delete'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.duplicateFiles(top.ICEcoder.selectedFiles)"><?php echo $t['Duplicate'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.renameFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Rename'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.uploadFilesSelect(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Upload'];?>...</a></li>
|
||||
<li><a nohref onclick="ICEcoder.zipIt(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Zip'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.propertiesScreen(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Properties'];?>...</a></li>
|
||||
<li><a nohref onClick="ICEcoder.printCode()"><?php echo $t['Print'];?>...</a></li>
|
||||
<li><a nohref onClick="ICEcoder.fullScreenSwitcher()"><?php echo $t['Fullscreen toggle'];?></a></li>
|
||||
<li><a nohref onClick="ICEcoder.logout()"><?php echo $t['Logout'];?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="optionsEdit" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
|
||||
<ul>
|
||||
<li><a nohref onclick="ICEcoder.undo()"><?php echo $t['Undo'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.redo()"><?php echo $t['Redo'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.indent('more')"><?php echo $t['Indent more'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.indent('less')"><?php echo $t['Indent less'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.autocomplete()"><?php echo $t['Autocomplete'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.lineCommentToggle()"><?php echo $t['Comment/Uncomment'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.jumpToDefinition()"><?php echo $t['Jump to Definition'];?></a></li>
|
||||
<li><a nohref onClick="ICEcoder.settingsScreen()"><?php echo $t['Settings'];?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="optionsSource" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
|
||||
<ul>
|
||||
<li><a nohref onclick="ICEcoder.refreshFileManager()">Localhost</a></li>
|
||||
<li><a nohref onclick="ICEcoder.githubManager()">GitHub</a></li>
|
||||
<li><a nohref onclick="ICEcoder.message('SVN integration coming soon')">SVN</a></li>
|
||||
<li><a nohref onclick="ICEcoder.message('Bitbucket integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">Bitbucket</a></li>
|
||||
<li><a nohref onclick="ICEcoder.message('Amazon AWS integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">Amazon AWS</a></li>
|
||||
<li><a nohref onclick="ICEcoder.message('Dropbox integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">Dropbox</a></li>
|
||||
<li><a nohref onclick="ICEcoder.message('FTP integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">FTP</a></li>
|
||||
<li><a nohref onclick="ICEcoder.message('SSH integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">SSH</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="optionsHelp" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
|
||||
<ul>
|
||||
<li><a nohref onclick="ICEcoder.showManual('<?php echo $ICEcoder["versionNo"];?>')"><?php echo $t['Manual'];?></a></li>
|
||||
<li><a nohref onClick="ICEcoder.helpScreen()"><?php echo $t['Shortcuts'];?></a></li>
|
||||
<li><a nohref onclick="ICEcoder.searchForSelected()"><?php echo $t['Search for selected'];?></a></li>
|
||||
<li><a href="https://icecoder.net" target="_blank">ICEcoder <?php echo $t['website'];?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<iframe id="filesFrame" class="frame" name="ff" src="files.php" style="opacity: 0" onLoad="this.style.opacity='1';this.contentWindow.onscroll=function(){top.ICEcoder.mouseDown=false}"></iframe>
|
||||
@@ -149,58 +255,67 @@ if (file_exists(dirname(__FILE__)."/plugins/jshint/jshint.js")) {
|
||||
|
||||
<div id="editor" class="editor">
|
||||
<div id="tabsBar" class="tabsBar" onContextMenu="return false">
|
||||
<a nohref onClick="top.ICEcoder.closeAllTabs()"><img src="images/nav-close.gif" class="closeAllTabs" title="Close all tabs"></a>
|
||||
<a nohref onClick="top.ICEcoder.alphaTabs()"><img src="images/nav-alpha.png" class="alphaTabs" title="Alphabetize tabs"></a>
|
||||
<a nohref onClick="top.ICEcoder.closeAllTabs()"><img src="images/nav-close-all.gif" class="closeAllTabs" title="<?php echo $t['Close all tabs'];?>"></a>
|
||||
<a nohref onClick="top.ICEcoder.alphaTabs()"><img src="images/nav-alpha.png" class="alphaTabs" title="<?php echo $t['Alphabetize tabs'];?>"></a>
|
||||
<?php
|
||||
for ($i=1;$i<=100;$i++) {
|
||||
echo '<div id="tab'.$i.'" class="tab" onMouseDown="ICEcoder.canSwitchTabs ? ICEcoder.switchTab(parseInt(this.id.slice(3),10)) : ICEcoder.canSwitchTabs=true; thisColor=top.ICEcoder.tabFGselected; if (!top.ICEcoder.overCloseLink) {ICEcoder.tabDragStart(parseInt(this.id.slice(3),10))}" onMouseOver="thisColor=this.style.color;this.style.color=top.ICEcoder.tabFGselected" onMouseOut="this.style.color=thisColor"></div>';
|
||||
echo '<div id="tab'.$i.'" class="tab" onMouseDown="ICEcoder.canSwitchTabs ? ICEcoder.switchTab(parseInt(this.id.slice(3),10)) : ICEcoder.canSwitchTabs=true; thisColor=top.ICEcoder.tabFGselected; if (!top.ICEcoder.overCloseLink) {ICEcoder.tabDragStart(parseInt(this.id.slice(3),10))}; if (event.button==1) {ICEcoder.closeTab(parseInt(this.id.slice(3),10)); return false};" onMouseOver="thisColor=this.style.color;this.style.color=top.ICEcoder.tabFGselected" onMouseOut="this.style.color=thisColor"></div>';
|
||||
}
|
||||
?><div class="newTab" onClick="ICEcoder.newTab()" id="newTab"><img src="images/nav-new.png"></div>
|
||||
?><div class="newTab" onClick="ICEcoder.newTab()" id="newTab">+</div>
|
||||
</div>
|
||||
<div id="findBar" class="findBar" onContextMenu="return false">
|
||||
<form name="findAndReplace" onSubmit="ICEcoder.findReplace(top.document.getElementById('find').value,false,true);return false">
|
||||
<div class="findReplace">
|
||||
<div class="findText">Find</div>
|
||||
<input type="text" name="find" value="" id="find" class="textbox find" onKeyUp="ICEcoder.findReplace(top.document.getElementById('find').value,true,false)">
|
||||
<div class="findText"><?php echo $t['Find'];?></div>
|
||||
<input type="text" name="find" value="" id="find" class="textbox find" onKeyUp="ICEcoder.findReplace(top.document.getElementById('find').value,true,false,event.keyCode == 27)">
|
||||
|
||||
<select name="connector" onChange="ICEcoder.findReplaceOptions()">
|
||||
<option>in</option>
|
||||
<option>and</option>
|
||||
</select>
|
||||
<div class="replaceText" id="rText" style="display: none">
|
||||
<select name="replaceAction" class="replaceAction">
|
||||
<option>replace</option>
|
||||
<option>replace all</option>
|
||||
<div class="selectWrapper" style="width: 41px">
|
||||
<select name="connector" onChange="ICEcoder.findReplaceOptions()" style="width: 40px; margin-top: 4px">
|
||||
<option><?php echo $t['in'];?></option>
|
||||
<option><?php echo $t['and'];?></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="replaceText" id="rText" style="display: none">
|
||||
<div class="selectWrapper" style="width: 75px; overflow: visible">
|
||||
<select name="replaceAction" style="width: 72px; margin-top: -2px">
|
||||
<option><?php echo $t['replace'];?></option>
|
||||
<option><?php echo $t['replace all'];?></option>
|
||||
</select>
|
||||
</div>
|
||||
with
|
||||
</div>
|
||||
<input type="text" name="replace" value="" id="replace" class="textbox replace" style="display: none">
|
||||
<div class="targetText" id="rTarget" style="display: none">in</div>
|
||||
<select name="target" onChange="ICEcoder.updateResultsDisplay(this.value=='this document' ? 'show' : 'hide')">
|
||||
<option>this document</option>
|
||||
<option>open documents</option>
|
||||
<option>all files</option>
|
||||
<option>all filenames</option>
|
||||
</select>
|
||||
<div class="selectWrapper" style="width: 104px">
|
||||
<select name="target" onChange="ICEcoder.updateResultsDisplay(this.value=='this document' ? 'show' : 'hide')" style="width: 101px; margin-top: 4px; margin-left: 2px">
|
||||
<option><?php echo $t['this document'];?></option>
|
||||
<option><?php echo $t['open documents'];?></option>
|
||||
<option><?php echo $t['all files'];?></option>
|
||||
<option><?php echo $t['all filenames'];?></option>
|
||||
</select>
|
||||
</div>
|
||||
<input type="submit" name="submit" value=">>" class="submit">
|
||||
<div class="results" id="results"></div>
|
||||
</div>
|
||||
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
|
||||
</form>
|
||||
<form onSubmit="return ICEcoder.goToLine()">
|
||||
<div class="codeAssist" title="Turn on/off JS Hint & CSS color previews"><input type="checkbox" name="codeAssist" id="codeAssist" checked onClick="top.ICEcoder.codeAssistToggle()">Code Assist</div>
|
||||
<div class="goLine">Go to Line<input type="text" name="goToLine" value="" id="goToLineNo" class="textbox goToLine">
|
||||
<div class="codeAssist" title="<?php echo $t['Turn on/off...'];?>">
|
||||
<input type="checkbox" name="codeAssist" id="codeAssist" class="codeAssistCheckbox" <?php if ($ICEcoder['codeAssist']) {echo 'checked ';};?>>
|
||||
<span class="codeAssistDisplay" id="codeAssistDisplay" style="background-position: <?php echo $ICEcoder['codeAssist'] ? "0" : "-16";?> 0" onClick="top.ICEcoder.codeAssistToggle()"></span> <?php echo $t['Code Assist'];?>
|
||||
</div>
|
||||
<div class="goLine"><?php echo $t['Go to Line'];?> <input type="text" name="goToLine" value="" id="goToLineNo" class="textbox goToLine">
|
||||
<div class="view" title="<?php echo $t['View'];?>" onClick="top.ICEcoder.openPreviewWindow()" id="fMView"></div>
|
||||
<div class="bug" title="<?php echo $t['Bug reporting not active'];?>" onClick="top.ICEcoder.openBugReport()" id="bugIcon"></div>
|
||||
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
<iframe name="contentFrame" id="content" src="editor.php" class="code"></iframe>
|
||||
</div>
|
||||
|
||||
<div class="footer" id="footer" onContextMenu="return false">
|
||||
<div class="system" id="system">
|
||||
<div onClick="top.ICEcoder.openPreviewWindow()" class="preview" title="Preview Window"></div>
|
||||
<div onClick="top.ICEcoder.openTerminal()" class="terminal" title="Terminal"></div>
|
||||
</div>
|
||||
<div class="nesting" id="nestValid"></div>
|
||||
<div class="nestDisplay" id="nestDisplay"></div>
|
||||
<div class="splitPaneControls" id="splitPaneControls"><div class="off" id="splitPaneControlsOff" title="<?php echo $t['Single pane'];?>" onclick="top.ICEcoder.setSplitPane('off')"></div><div class="on" id="splitPaneControlsOn" title="<?php echo $t['Diff pane also'];?>" onclick="top.ICEcoder.setSplitPane('on')" style="opacity: 0.5"></div></div>
|
||||
<div class="byteDisplay" id="byteDisplay" style="display: none" onClick="top.ICEcoder.showDisplay('char')"></div>
|
||||
<div class="charDisplay" id="charDisplay" style="display: inline-block" onClick="top.ICEcoder.showDisplay('byte')"></div>
|
||||
</div>
|
||||
|
||||
427
lang/chinese-simplified.php
Normal file
@@ -0,0 +1,427 @@
|
||||
<?php
|
||||
// Chinese language translation
|
||||
// by: @lzh370 (GitHub)
|
||||
// lzh370@qq.com
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>点击图标<br>求助 &<br>使用信息</b>",
|
||||
"server" => "服务器",
|
||||
"Server name, OS..." => "服务器名称, OS & IP:",
|
||||
"Root" => "根目录:",
|
||||
"ICEcoder root" => "ICEcoder 根目录:",
|
||||
"PHP version" => "PHP 版本:",
|
||||
"Date & time" => "日期 & 时间:",
|
||||
"your device" => "你的设备",
|
||||
"Browser" => "浏览器:",
|
||||
"Your IP" => "你的 IP:",
|
||||
"files" => "文件",
|
||||
"Last 10 files..." => "最后10个打开的文件:",
|
||||
"none" => "[none]",
|
||||
"test suite" => "测试套件",
|
||||
"Run unit tests" => "运行单元测试",
|
||||
"dev mode" => "开发模式",
|
||||
"Status" => "状态",
|
||||
"Using" => "使用",
|
||||
"You can switch..." => "你可以在 lib/config__settings.php 中设置开发模式开关",
|
||||
"results" => "结果"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "锁定",
|
||||
"Refresh" => "刷新",
|
||||
"ROOT" => "[ROOT]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "更新信息",
|
||||
"now available" => "现在可以",
|
||||
"Your version is" => "你的版本是",
|
||||
"Update now" => "现在更新",
|
||||
"You have some..." => "你有一些未保存的更改",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "载入中",
|
||||
"Color picker" => "颜色选择器",
|
||||
"New File" => "新建文件",
|
||||
"New Folder" => "新建文件夹",
|
||||
"Upload File(s)" => "上传文件",
|
||||
"Paste" => "粘贴",
|
||||
"Open" => "打开",
|
||||
"Copy" => "复制",
|
||||
"Duplicate" => "副本",
|
||||
"Delete" => "删除",
|
||||
"Rename" => "重命名",
|
||||
"View Webpage" => "预览网页",
|
||||
"Download" => "下载",
|
||||
"Properties" => "属性",
|
||||
"File" => "文件",
|
||||
"Edit" => "编辑",
|
||||
"Remote" => "远程",
|
||||
"Help" => "帮助",
|
||||
"Save" => "保存",
|
||||
"Save As" => "另存为",
|
||||
"Live Preview" => "实时预览",
|
||||
"Upload" => "上传",
|
||||
"Zip" => "压缩",
|
||||
"Print" => "打印",
|
||||
"Fullscreen toggle" => "全屏切换",
|
||||
"Logout" => "退出",
|
||||
"Undo" => "撤销",
|
||||
"Redo" => "重做",
|
||||
"Indent more" => "增加缩进",
|
||||
"Indent less" => "减少缩进",
|
||||
"Autocomplete" => "自动完成",
|
||||
"Comment/Uncomment" => "注释 / 清除注释",
|
||||
"Jump to Definition" => "跳转至指定行",
|
||||
"Manual" => "手册",
|
||||
"Shortcuts" => "快捷键",
|
||||
"Settings" => "设置",
|
||||
"Search for selected" => "搜索选择",
|
||||
"website" => "网站",
|
||||
"Close all tabs" => "关闭所有选项卡",
|
||||
"Alphabetize tabs" => "按字母顺序排列的选项卡",
|
||||
// "Find" => "搜索",
|
||||
// "in" => "in",
|
||||
// "and" => "and",
|
||||
// "replace" => "替换",
|
||||
// "replace all" => "替换所有",
|
||||
// "this document" => "当前文件",
|
||||
// "open documents" => "打开的文件",
|
||||
// "all files" => "所有文件",
|
||||
// "all filenames" => "所有文件名",
|
||||
"Turn on/off..." => "开启/关闭代码辅助",
|
||||
"Code Assist" => "代码辅助",
|
||||
"Go to Line" => "转到行",
|
||||
"View" => "预览",
|
||||
"Bug reporting not active" => "错误报告没有激活"
|
||||
),
|
||||
|
||||
// /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" => "封装 / 撤销封装 <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" => "选择文件 / 文件夹",
|
||||
"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" => "取消任务"
|
||||
),
|
||||
|
||||
"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" => "设置密码",
|
||||
"login" => "登陆",
|
||||
"To disable registration..." => "要禁用注册模式, 请打开设置或打开文件 lib/config___settings.php 并更改 enableRegistration 为 false , 并重新载入本页面",
|
||||
"Registration mode enabled" => "注册模式已启用",
|
||||
"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" => "已替换"
|
||||
),
|
||||
|
||||
"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" => "字体大小",
|
||||
"auto indent" => "auto indent",
|
||||
"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..." => "更新似乎是成功的"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
427
lang/chinese-traditional.php
Normal file
@@ -0,0 +1,427 @@
|
||||
<?php
|
||||
// Traditional Chinese language translation
|
||||
// by: @lzh370 (GitHub)
|
||||
// lzh370@qq.com
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>點擊圖標<br>求助 &<br>實用信息</b>",
|
||||
"server" => "伺服器",
|
||||
"Server name, OS..." => "伺服器名稱, OS & IP:",
|
||||
"Root" => "根目錄:",
|
||||
"ICEcoder root" => "ICEcoder 根目錄:",
|
||||
"PHP version" => "PHP 版本:",
|
||||
"Date & time" => "日期 & 時間:",
|
||||
"your device" => "你的設備",
|
||||
"Browser" => "瀏覽器:",
|
||||
"Your IP" => "你的 IP:",
|
||||
"files" => "文件",
|
||||
"Last 10 files..." => "最後10個打開的文件:",
|
||||
"none" => "[none]",
|
||||
"test suite" => "測試套件",
|
||||
"Run unit tests" => "運行單元測試",
|
||||
"dev mode" => "開發模式",
|
||||
"Status" => "狀態",
|
||||
"Using" => "使用",
|
||||
"You can switch..." => "你可以在 lib/config__settings.php 中設置開發模式開關",
|
||||
"results" => "結果"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "鎖定",
|
||||
"Refresh" => "刷新",
|
||||
"ROOT" => "[ROOT]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "更新信息",
|
||||
"now available" => "現在可以",
|
||||
"Your version is" => "你的版本是",
|
||||
"Update now" => "現在更新",
|
||||
"You have some..." => "你有一些未保存的更改",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "裝載中",
|
||||
"Color picker" => "顔色選擇器",
|
||||
"New File" => "新建文件",
|
||||
"New Folder" => "新建文件夾",
|
||||
"Upload File(s)" => "上傳文件",
|
||||
"Paste" => "粘貼",
|
||||
"Open" => "打開",
|
||||
"Copy" => "複製",
|
||||
"Duplicate" => "副本",
|
||||
"Delete" => "刪除",
|
||||
"Rename" => "重命名",
|
||||
"View Webpage" => "預覽網頁",
|
||||
"Download" => "下載",
|
||||
"Properties" => "屬性",
|
||||
"File" => "文件",
|
||||
"Edit" => "編輯",
|
||||
"Remote" => "遠程",
|
||||
"Help" => "幫助",
|
||||
"Save" => "保存",
|
||||
"Save As" => "另存爲",
|
||||
"Live Preview" => "實時預覽",
|
||||
"Upload" => "上傳",
|
||||
"Zip" => "壓縮",
|
||||
"Print" => "打印",
|
||||
"Fullscreen toggle" => "全屏切換",
|
||||
"Logout" => "登出",
|
||||
"Undo" => "撤銷",
|
||||
"Redo" => "重做",
|
||||
"Indent more" => "增加縮進",
|
||||
"Indent less" => "减少縮進",
|
||||
"Autocomplete" => "自動完成",
|
||||
"Comment/Uncomment" => "注釋 / 清除注釋",
|
||||
"Jump to Definition" => "跳轉指定行",
|
||||
"Manual" => "手冊",
|
||||
"Shortcuts" => "快捷鍵",
|
||||
"Settings" => "選項",
|
||||
"Search for selected" => "搜索選項",
|
||||
"website" => "網站",
|
||||
"Close all tabs" => "關閉所有選項卡",
|
||||
"Alphabetize tabs" => "按字母順序排序選項卡",
|
||||
// "Find" => "檢索",
|
||||
// "in" => "in",
|
||||
// "and" => "and",
|
||||
// "replace" => "替換",
|
||||
// "replace all" => "替換所有",
|
||||
// "this document" => "當前文件",
|
||||
// "open documents" => "打開的文件",
|
||||
// "all files" => "所有文件",
|
||||
// "all filenames" => "所有文件名",
|
||||
"Turn on/off..." => "開啓/關閉代碼輔助",
|
||||
"Code Assist" => "代碼輔助",
|
||||
"Go to Line" => "轉到行",
|
||||
"View" => "預覽",
|
||||
"Bug reporting not active" => "錯誤報告沒有激活"
|
||||
),
|
||||
|
||||
// /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" => "封裝 / 撤銷封裝 <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" => "選擇文件 / 文件夾",
|
||||
"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" => "取消任务"
|
||||
),
|
||||
|
||||
"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" => "設置密碼",
|
||||
"login" => "登錄",
|
||||
"To disable registration..." => "要禁用注冊模式, 請進入選項或打開文件 lib/config___settings.php 并更改 enableRegistration 爲 false , 并重新載入本頁面",
|
||||
"Registration mode enabled" => "注冊模式已啓用",
|
||||
"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" => "已替換"
|
||||
),
|
||||
|
||||
"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" => "字體大小",
|
||||
"auto indent" => "auto indent",
|
||||
"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..." => "更新似乎是成功的"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
429
lang/dutch.php
Normal file
@@ -0,0 +1,429 @@
|
||||
<?php
|
||||
// Dutch language translation
|
||||
// Door: Julian Kaagman
|
||||
// @dutchwaters (GitHub)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> 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..." => "<strong>Klik op de icoontjes<br>voor hulp &<br>gebruiks info</strong>",
|
||||
"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",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"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" => "Extern",
|
||||
"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" => "Automatisch aanvullen",
|
||||
"Comment/Uncomment" => "Commentaar maken",
|
||||
"Jump to Definition" => "Spring naar definitie",
|
||||
"Manual" => "Handleiding",
|
||||
"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 codehulp aan/uit",
|
||||
"Code Assist" => "Codehulp",
|
||||
"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"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "Er zijn geen verschillen aangetroffen tussen de lokale en de Github repo. Wilt u terug schakelen naar de normale modus?",
|
||||
"Sorry, there was..." => "Sorry, er is een fout opgetreden, foutcode:",
|
||||
"Your local folder..." => "Uw lokale map is leeg, wilt u de inhoud klonen"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Sorry, kan geen map aanmaken op",
|
||||
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
|
||||
"and try again" => "en probeer het opnieuw",
|
||||
"saving github paths" => "opslaan Github paden...",
|
||||
"github paths" => "Github paden",
|
||||
"Choose existing path" => "Kies een bestaand pad",
|
||||
"Local path" => "Lokaal pad",
|
||||
"Remote GitHub path" => "Extern Github pad",
|
||||
"Choose" => "Kies",
|
||||
"Set local and..." => "Maak het lokale en externe pad leeg, om te verwijderen",
|
||||
"Update" => "Update",
|
||||
"Add new path" => "Nieuw pad toevoegen",
|
||||
"Add" => "Toevoegen",
|
||||
"Usage Info" => "Gebruiks Info:",
|
||||
"Enter relative local..." => "Voer relatieve lokale paden (bv /server/mijnbestanden) en absolute Github paden (bv https://github.com/user/repo of https://github.com/user/repo/tree/branch voor vertakkingen (branches)), zoals het voorbeeld. Als je dit doet worden de bron paden op beide locaties gevestigd als een paar.",
|
||||
"You can then..." => "You can then choose a path pair and this then becomes your new root path in ICEcoder.",
|
||||
"The file manager..." => "The file manager then displays a new GitHub icon, which you can click on to perform and show a diff check between the 2 sources. These diffs can then be committed and pushed to the remote path at GitHub or cloned to your local path, to sync your files.",
|
||||
"If you want..." => "If you want to set another root path, this can be done in the Settings screen."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Sorry, you do not appear to have OpenSSL loaded on your PHP instance, so https is not available. This is required for GitHub data transfer, please amend php.ini settings, restart your server and try again"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Foute CSRF token. Graag de fout informatie delen op https://github.com/mattpass/ICEcoder zodat het kan worden opgelost."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "snelkoppelingen",
|
||||
"Within document" => "Binnen het document",
|
||||
"On Tabs" => "Op Tabs",
|
||||
"Within file manager" => "Binnen bestandsbeheer",
|
||||
"Anywhere" => "Overal",
|
||||
"Space" => "Spatie",
|
||||
"Click" => "Klik",
|
||||
"or" => "of",
|
||||
"Left click" => "Linker muisklik",
|
||||
"Middle click" => "Middelste muisklik",
|
||||
"Double click tap..." => "Dubbel klikken / tap (mobiele apparatuur)",
|
||||
"Right click" => "Rechter muisklik",
|
||||
"Middle scrollwheel" => "Midden scrollwiel",
|
||||
"Drag" => "Slepen",
|
||||
"Autocomplete add snippet" => "Aanvullen / toevoegen snippet",
|
||||
"Multiple select" => "Multi selecteren",
|
||||
"Move line up" => "Verplaats regel omhoog",
|
||||
"Move line down" => "Verplaats regel omlaag",
|
||||
"Duplicate lines" => "Kopieer regel(s)",
|
||||
"Remove lines" => "Verwijder regel(s)",
|
||||
"Insert line before" => "Regel invoegen voor",
|
||||
"Insert line after" => "Regel invoegen na",
|
||||
"Search for selected" => "Zoek naar geselecteerd",
|
||||
"Jump to definition" => "Spring naar definitie / spring terug",
|
||||
"Comment uncomment" => "Commentaar (ongedaan) maken",
|
||||
"Insert tab indent" => "Invoegen tab / verspringen geselecteerd",
|
||||
"Wrap with div" => "Omhullen met <div>",
|
||||
"Wrap with span" => "Omhullen met <span>",
|
||||
"Wrap unwrap p" => "Omhullen / onthullen met <p>",
|
||||
"Wrap unwrap a" => "Omhullen / onthullen met <a>",
|
||||
"Wrap unwrap b" => "Omhullen / onthullen met <b>",
|
||||
"Wrap unwrap i" => "Omhullen / onthullen met <i>",
|
||||
"Wrap unwrap strong" => "Omhullen / onthullen met <strong>",
|
||||
"Wrap unwrap em" => "Omhullen / onthullen met <em>",
|
||||
"Wrap unwrap li" => "Omhullen / onthullen met <li>",
|
||||
"Wrap unwrap h1..." => "Omhullen / onthullen met <h1> - <h3>",
|
||||
"End line with..." => "Eindig regel met <br>",
|
||||
"Close tab" => "Sluit tab",
|
||||
"Select file folder" => "Selecteer bestand / map",
|
||||
"Open file" => "Open bestand",
|
||||
"Range select" => "Selecteer bereik",
|
||||
"Options for selected" => "Opties voor geselecteerd",
|
||||
"Delete selected" => "Verwijder geselecteerde",
|
||||
"Next previous tab" => "Volgende / vorige tab",
|
||||
"Next tab" => "Volgende tab",
|
||||
"Previous tab" => "Vorige tab",
|
||||
"New tab" => "Nieuw tab",
|
||||
"Close current tab" => "Sluit huidige tab",
|
||||
"Open file prompt" => "Open bestands prompt",
|
||||
"Find" => "Zoek",
|
||||
"Focus on Go..." => "Focus op ga naar regel invoer",
|
||||
"Save" => "Opslaan",
|
||||
"Save as" => "Opslaan als...",
|
||||
"View webpage" => "Bekijk webpagina",
|
||||
"Contract expand file..." => "Inklappen / uitklappen bestandsbeheer",
|
||||
"Fold unfold current..." => "Vouwen / uitvouwen huidige regel",
|
||||
"Refocus on document" => "Herfocus op document",
|
||||
"Cancel tasks" => "Annuleer taken"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "Geen tekst geselecteerd om te zoeken",
|
||||
"Creating Folder" => "Aanmaken map",
|
||||
"Sorry you can..." => "Sorry, je kan maximaal 100 bestanden open hebben staan!",
|
||||
"Opening File" => "Openen bestand",
|
||||
"Enter relative file..." => "Geef relatieve bestands pad (voorafgaand door een slash) of een externe URL",
|
||||
"Getting" => "Ophalen",
|
||||
"Please enter the..." => "Voer de nieuwe naam in voor",
|
||||
"Renaming to" => "Hernoemen naar",
|
||||
"Moving to" => "Verplaatsen naar",
|
||||
"Deleting File" => "Bestand verwijderen",
|
||||
"Pasting File" => "Bestand plakken",
|
||||
"Sorry cannot paste..." => "Sorry, kan niet de gehele root plakken",
|
||||
"Nothing to paste..." => "Er is niets om te plakken, kopieer eerst een bestand of map!",
|
||||
"Replacing text in" => "Wijzig de tekst in",
|
||||
"Cancelled tasks" => "Geannuleerde taken",
|
||||
"Open previous files" => "Open voorgaande bestand(en)?",
|
||||
"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..." => "Let op: om de update goed te laten doorvoeren, moet je schrijfrechten hebben op alle bestanden en mappen van ICEcoder. Moet je deze versie van ICEcoder herstellen, dan vind je die in de map /tmp. Klik op ok om door te gaan met automatisch updaten, of druk op annuleren om af te breken. Voor een handmatige update kun je het zip bestand van de ICEcoder website downloaden.",
|
||||
"You can start..." => "U kunt bug rapporteren aanzetten in: Help > Settings",
|
||||
"Error cannot find..." => "Fout: kan geen toegang krijgen of de bestands paden vinden",
|
||||
"No new errors..." => "Geen nieuwe fouten gevonden",
|
||||
"You have made..." => "Er zijn wijzigingen aangetroffen. Wilt u verder gaan zonder op te slaan?",
|
||||
"Close all tabs" => "Sluit alle tabbladen?"
|
||||
),
|
||||
|
||||
"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"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "hernoem alles",
|
||||
"replace all" => "vervang alles",
|
||||
"document" => "document",
|
||||
"Found" => "Gevonden",
|
||||
"times" => "keer",
|
||||
"replace" => "vervang",
|
||||
"file folder" => "bestand/map",
|
||||
"rename to" => "hernoemen naar",
|
||||
"rename" => "hernoemen",
|
||||
"file" => "bestand",
|
||||
"No matches found" => "Geen overeenkomsten gevonden",
|
||||
"selected" => "geselecteerd",
|
||||
"found in" => "gevonden in",
|
||||
"Replaced" => "Vervangen"
|
||||
),
|
||||
|
||||
"plugins-manager" =>
|
||||
array(
|
||||
"ICEcoder needs to..." => "ICEcoder moet opnieuw worden geladen om deze plug-in te gebruiken. Nu opnieuw laden?",
|
||||
"saving plugins" => "opslaan plug-ins...",
|
||||
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
|
||||
"and try again" => "en probeer het opnieuw",
|
||||
"couldnt delete dir" => "kan de map niet verwijderen",
|
||||
"couldnt delete file" => "kan bestand niet verwijderen",
|
||||
"plugins" => "plug-ins",
|
||||
"Guide to writing..." => "Gids om plug-ins te schrijven",
|
||||
"Manage Installed" => "Beheer geÏnstalleerd",
|
||||
"URL" => "URL",
|
||||
"Target" => "Doel",
|
||||
"Timer" => "Timer",
|
||||
"Update" => "Update",
|
||||
"Install" => "Installeren",
|
||||
"Uninstall" => "DeÏnstalleren",
|
||||
"Reload after install..." => "Opnieuw laden na installatie vereist"
|
||||
),
|
||||
|
||||
"properties" =>
|
||||
array(
|
||||
"properties" => "eigenschappen",
|
||||
"Size" => "Groote",
|
||||
"Modified" => "Aangepast",
|
||||
"Last access" => "Laatst geopend",
|
||||
"Type" => "Type",
|
||||
"Readable Writeable" => "Leesbaar / Schrijfbaar",
|
||||
"Relative path" => "Relatief pad",
|
||||
"Absolute path" => "Absoluut pad",
|
||||
"Contains" => "Bevat",
|
||||
"Permissions" => "Rechten",
|
||||
"Owner" => "Eigenaar",
|
||||
"Group" => "Groep",
|
||||
"Public" => "Publiek",
|
||||
"Read" => "Lezen",
|
||||
"Write" => "Schrijven",
|
||||
"Execute" => "Uitvoeren",
|
||||
"Change to" => "Veranderen naar",
|
||||
"update" => "update"
|
||||
),
|
||||
|
||||
"settings-common" =>
|
||||
array(
|
||||
"Your document does..." => "Het bleek dat uw bestand niet gebruik maakte van UTF-8 codering, dus is het geconverteerd"
|
||||
),
|
||||
|
||||
"settings-save-current-files" =>
|
||||
array(
|
||||
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
|
||||
"and try again" => "en probeer het opnieuw"
|
||||
),
|
||||
|
||||
"settings-screen" =>
|
||||
array(
|
||||
"settings" => "instellingen",
|
||||
"version" => "versie",
|
||||
"website" => "website",
|
||||
"git" => "git",
|
||||
"codemirror dir" => "codemirror dir",
|
||||
"codemirror version" => "codemirror versie",
|
||||
"file manager root" => "bestandsbeheer root",
|
||||
"Free to use..." => "Vrij voor eigen gebruik, commercieel of persoonlijk. :)<br><br>Wij zijn niet aansprakelijk en bieden geen garantie, gebruik op eigen risico.<br><br>Een hoop fantastische mensen, en bedrijven hebben meegeholpen aan de ontwikkeling van ICEcoder waarvoor bedankt. Zie wie er allemaal heeft bijgedragen op",
|
||||
"functionality" => "functionaliteit",
|
||||
"check for updates..." => "check voor updates bij laden",
|
||||
"auto open last..." => "automatisch openen laatst geopende bestanden na inloggen",
|
||||
"when finding in..." => "when finding in files, exclude",
|
||||
"assisting" => "assisteren",
|
||||
"code assist" => "codehulp",
|
||||
"visible tabs" => "zichtbare tabs",
|
||||
"locked nav" => "vergrendelde nav",
|
||||
"tag wrapper command" => "tag wrapper command",
|
||||
"auto-complete on" => "automatisch aanvullen",
|
||||
"security" => "beveiliging",
|
||||
"new password" => "nieuw wachtwoord",
|
||||
"8 chars min" => "minimaal 8 tekens",
|
||||
"confirm password" => "herhaal wachtwoord",
|
||||
"banned files/folders" => "uitgesloten bestanden/mappen",
|
||||
"banned paths" => "uitgesloten paden",
|
||||
"ip addresses" => "ip adressen",
|
||||
"Slash prefixed comma..." => "Slash prefixed, komma gescheiden",
|
||||
"Comma delimited" => "komma gescheiden",
|
||||
"style" => "style",
|
||||
"theme" => "thema",
|
||||
"line wrapping" => "regel omslag",
|
||||
"indent type" => "inspring type",
|
||||
"indent size" => "inspring size",
|
||||
"font size" => "lettergrootte",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "lay-out",
|
||||
"plugin panel aligned" => "plug-in paneel positie",
|
||||
"file manager" => "bestandsbeheer",
|
||||
"root" => "root",
|
||||
"Slash prefixed" => "Slash prefixed",
|
||||
"bug reporting" => "bug rapportage",
|
||||
"check in files" => "check in bestanden",
|
||||
"every" => "elke",
|
||||
"secs getting last" => "seconde, verstuur laatste",
|
||||
"lines" => "regels",
|
||||
"multi-user" => "multi-user",
|
||||
"Make sure you..." => "Zorg ervoor dat je niet jezelf buitensluit",
|
||||
"Registration" => "Registratie",
|
||||
"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..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
|
||||
"and try again" => "probeer het opnieuw",
|
||||
"and press refresh" => "en druk vernieuwen"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "Update lijkt succesvol te zijn verlopen"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
456
lang/english.php
Normal file
@@ -0,0 +1,456 @@
|
||||
<?php
|
||||
// English language translation
|
||||
// by: @mattpass (GitHub)
|
||||
// @mattpass (Twitter)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"server" => "server",
|
||||
"Server name, OS..." => "Server name, OS & IP:",
|
||||
"Root" => "Root:",
|
||||
"ICEcoder root" => "ICEcoder root:",
|
||||
"PHP version" => "PHP version:",
|
||||
"Date & time" => "Date & time:",
|
||||
"your device" => "your device",
|
||||
"Browser" => "Browser:",
|
||||
"Your IP" => "Your IP:",
|
||||
"files" => "files",
|
||||
"Last 10 files..." => "Last 10 files opened:",
|
||||
"none" => "[none]",
|
||||
"test suite" => "test suite",
|
||||
"Run unit tests" => "Run unit tests",
|
||||
"dev mode" => "dev mode",
|
||||
"Status" => "Status",
|
||||
"Using" => "Using",
|
||||
"You can switch..." => "You can switch dev mode on/off in lib/config__settings.php"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "Lock",
|
||||
"Refresh" => "Refresh",
|
||||
"Plugins" => "Plugins",
|
||||
"ROOT" => "[ROOT]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "UPDATE INFO",
|
||||
"now available" => "now available",
|
||||
"Your version is" => "Your version is",
|
||||
"Update now" => "Update now",
|
||||
"You have some..." => "You have some unsaved changes",
|
||||
"Are you sure..." => "Are you sure you want to close?",
|
||||
"working" => "working",
|
||||
"Color picker" => "Color picker",
|
||||
"Plugins Manager" => "Plugins Manager",
|
||||
"New File" => "New File",
|
||||
"New Folder" => "New Folder",
|
||||
"Upload File(s)" => "Upload File(s)",
|
||||
"Paste" => "Paste",
|
||||
"Open" => "Open",
|
||||
"Copy" => "Copy",
|
||||
"Duplicate" => "Duplicate",
|
||||
"Delete" => "Delete",
|
||||
"Rename" => "Rename",
|
||||
"View Webpage" => "View Webpage",
|
||||
"Download" => "Download",
|
||||
"Properties" => "Properties",
|
||||
"File" => "File",
|
||||
"Edit" => "Edit",
|
||||
"Source" => "Source",
|
||||
"Help" => "Help",
|
||||
"Save" => "Save",
|
||||
"Save As" => "Save As",
|
||||
"Live Preview" => "Live Preview",
|
||||
"Upload" => "Upload",
|
||||
"Zip" => "Zip",
|
||||
"Print" => "Print",
|
||||
"Fullscreen toggle" => "Fullscreen toggle",
|
||||
"Logout" => "Logout",
|
||||
"Undo" => "Undo",
|
||||
"Redo" => "Redo",
|
||||
"Indent more" => "Indent more",
|
||||
"Indent less" => "Indent less",
|
||||
"Autocomplete" => "Autocomplete",
|
||||
"Comment/Uncomment" => "Comment/Uncomment",
|
||||
"Jump to Definition" => "Jump to Definition",
|
||||
"Manual" => "Manual",
|
||||
"Shortcuts" => "Shortcuts",
|
||||
"Settings" => "Settings",
|
||||
"Search for selected" => "Search for selected",
|
||||
"website" => "website",
|
||||
"Close all tabs" => "Close all tabs",
|
||||
"Alphabetize tabs" => "Alphabetize tabs",
|
||||
"Find" => "Find",
|
||||
"in" => "in",
|
||||
"and" => "and",
|
||||
"replace" => "replace",
|
||||
"replace all" => "replace all",
|
||||
"this document" => "this document",
|
||||
"open documents" => "open documents",
|
||||
"all files" => "all files",
|
||||
"all filenames" => "all filenames",
|
||||
"Turn on/off..." => "Turn on/off code assist",
|
||||
"Code Assist" => "Code Assist",
|
||||
"Go to Line" => "Go to Line",
|
||||
"View" => "View",
|
||||
"Bug reporting not active" => "Bug reporting not active",
|
||||
"Single pane" => "Single pane",
|
||||
"Diff pane also" => "Diff pane also"
|
||||
),
|
||||
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "Found in:"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "Sorry",
|
||||
"does not seem..." => "does not seem to exist on the server",
|
||||
"Sorry, could not..." => "Sorry, could not get contents of",
|
||||
"Sorry, cannot create..." => "Sorry, cannot create folder at",
|
||||
"Sorry, cannot copy" => "Sorry, cannot copy",
|
||||
"into" => "into",
|
||||
"Uploaded file(s) OK" => "Uploaded file(s) OK",
|
||||
"Sorry, cannot upload" => "Sorry, cannot upload",
|
||||
"Sorry, cannot upload..." => "Sorry, cannot upload whilst in demo mode",
|
||||
"Sorry, cannot rename" => "Sorry, cannot rename",
|
||||
"Maybe public write..." => "Maybe public write permissions needed on this or parent folder?",
|
||||
"Sorry, cannot move" => "Sorry, cannot move",
|
||||
"Sorry, cannot save" => "Sorry, cannot save",
|
||||
"Sorry, cannot replace..." => "Sorry, cannot replace text in",
|
||||
"Sorry, cannot change..." => "Sorry, cannot change permissions on",
|
||||
"Sorry, cannot delete..." => "Sorry, cannot delete the root level",
|
||||
"Sorry, cannot delete" => "Sorry, cannot delete",
|
||||
"Sorry, this file..." => "Sorry, this file has changed, cannot save",
|
||||
"Reload this file..." => "Reload this file and copy your version to a diff pane?",
|
||||
"There was a..." => "There was a tech hiccup, likely something was not quite ready. So ICEcoder reloaded its file control again.",
|
||||
"displayed at" => "displayed at",
|
||||
"Enter filename to..." => "Enter filename to save at",
|
||||
"That file exists..." => "That file exists already, overwrite?",
|
||||
"Saving" => "Saving"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "There are no differences between the local and GitHub repo. Switch back to regular mode?",
|
||||
"Sorry, there was..." => "Sorry, there was an error, code:",
|
||||
"Your local folder..." => "Your local folder is empty, would you like to clone"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Sorry, cannot create folder at",
|
||||
"Cannot update config..." => "Cannot update config file. Please set public write permissions on",
|
||||
"and try again" => "and try again",
|
||||
"saving github paths" => "saving github paths...",
|
||||
"github paths" => "github paths",
|
||||
"Choose existing path" => "Choose existing path",
|
||||
"Local path" => "Local path",
|
||||
"Slash prefixed" => "Slash prefixed",
|
||||
"Remote GitHub path" => "Remote GitHub path",
|
||||
"Absolute URL beginning..." => "Absolute URL, beginning https://github.com",
|
||||
"Choose" => "Choose",
|
||||
"Set local and..." => "Set local and remote path to blank to remove",
|
||||
"Update" => "Update",
|
||||
"Add new path" => "Add new path",
|
||||
"Add" => "Add",
|
||||
"Usage Info" => "Usage Info:",
|
||||
"Enter relative local..." => "Enter relative local paths (eg /server/myfiles) and absolute GitHub paths (eg https://github.com/user/repo or https://github.com/user/repo/tree/branch for branches), as per the examples. With this done you have established the source paths at both locations, as a pair.",
|
||||
"You can then..." => "You can then choose a path pair and this then becomes your new root path in ICEcoder.",
|
||||
"The file manager..." => "The file manager then displays a new GitHub icon, which you can click on to perform and show a diff check between the 2 sources. These diffs can then be committed and pushed to the remote path at GitHub or cloned to your local path, to sync your files.",
|
||||
"If you want..." => "If you want to set another root path, this can be done in the Settings screen."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Sorry, you do not appear to have OpenSSL loaded on your PHP instance, so https is not available. This is required for GitHub data transfer, please amend php.ini settings, restart your server and try again"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Bad CSRF token. Please report the error info at https://github.com/mattpass/ICEcoder so it can be fixed."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "shortcuts",
|
||||
"Within document" => "Within document",
|
||||
"On Tabs" => "On Tabs",
|
||||
"Within file manager" => "Within file manager",
|
||||
"Anywhere" => "Anywhere",
|
||||
"Space" => "Space",
|
||||
"Click" => "Click",
|
||||
"or" => "or",
|
||||
"Left click" => "Left click",
|
||||
"Middle click" => "Middle click",
|
||||
"Double click tap..." => "Double click / tap (mobile)",
|
||||
"Right click" => "Right click",
|
||||
"Middle scrollwheel" => "Middle scrollwheel",
|
||||
"Drag" => "Drag",
|
||||
"Autocomplete add snippet" => "Autocomplete / add snippet",
|
||||
"Multiple select" => "Multiple select",
|
||||
"Move line up" => "Move line up",
|
||||
"Move line down" => "Move line down",
|
||||
"Duplicate lines" => "Duplicate line(s)",
|
||||
"Remove lines" => "Remove line(s)",
|
||||
"Insert line before" => "Insert line before",
|
||||
"Insert line after" => "Insert line after",
|
||||
"Search for selected" => "Search for selected",
|
||||
"Jump to definition" => "Jump to definition / jump back",
|
||||
"Comment uncomment" => "Comment / uncomment",
|
||||
"Insert tab indent" => "Insert tab / auto indent selected",
|
||||
"Insert more" => "Indent more",
|
||||
"Insert less" => "Indent less",
|
||||
"Wrap with div" => "Wrap with <div>",
|
||||
"Wrap with span" => "Wrap with <span>",
|
||||
"Wrap unwrap p" => "Wrap / unwrap with <p>",
|
||||
"Wrap unwrap a" => "Wrap / unwrap with <a>",
|
||||
"Wrap unwrap b" => "Wrap / unwrap with <b>",
|
||||
"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",
|
||||
"Select file folder" => "Select file / folder",
|
||||
"Open file" => "Open file",
|
||||
"Range select" => "Range select",
|
||||
"Options for selected" => "Options for selected",
|
||||
"Delete selected" => "Delete selected",
|
||||
"Next previous tab" => "Next / previous tab",
|
||||
"Next tab" => "Next tab",
|
||||
"Previous tab" => "Previous tab",
|
||||
"New tab" => "New tab",
|
||||
"Close current tab" => "Close current tab",
|
||||
"Open file prompt" => "Open file prompt",
|
||||
"Find" => "Find",
|
||||
"Focus on Go..." => "Focus on Go to line input",
|
||||
"Save" => "Save",
|
||||
"Save as" => "Save as...",
|
||||
"View webpage" => "View webpage",
|
||||
"Contract expand file..." => "Contract / expand file manager",
|
||||
"Fold unfold current..." => "Fold / unfold current line",
|
||||
"Refocus on document" => "Refocus on document",
|
||||
"Cancel tasks" => "Cancel tasks"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "No text selected to search on",
|
||||
"all files" => "all files",
|
||||
"all filenames" => "all filenames",
|
||||
"selected files" => "selected files",
|
||||
"selected filenames" => "selected filenames",
|
||||
"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\\nYou can enter \\n'/path/file:123' or \\n'/path/file(123)' or \\n'/path/file.ext line 123' \\nto go directly to particular line",
|
||||
"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!",
|
||||
"and" => "and",
|
||||
"this document" => "this document",
|
||||
"replace" => "replace",
|
||||
"replace all" => "replace all",
|
||||
"file" => "file",
|
||||
"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 access on all ICEcoder dirs & files. It will first check if this is the case and list any unwriteable (and therefore unmoveable) files.\\n\\nIf you need to recover this version of ICEcoder for any reason, you'll find it in the /tmp dir.\\n\\nClick OK to proceed with the check and 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?",
|
||||
"results" => "results"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "set password",
|
||||
"login" => "login",
|
||||
"To disable registration..." => "To disable registration mode, open the settings menu or open lib/config___settings.php and change enableRegistration to false then reload this page",
|
||||
"Registration mode enabled" => "Registration mode enabled",
|
||||
"auto-check for updates" => "auto-check for updates",
|
||||
"To put into..." => "To put into multi-user mode, open the settings menu or open lib/config___settings.php and change multiUser to true then reload this page",
|
||||
"multi-user" => "multi-user"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "rename all",
|
||||
"replace all" => "replace all",
|
||||
"document" => "document",
|
||||
"Found" => "Found",
|
||||
"times" => "times",
|
||||
"replace" => "replace",
|
||||
"file folder" => "file/folder",
|
||||
"rename to" => "rename to",
|
||||
"rename" => "rename",
|
||||
"file" => "file",
|
||||
"No matches found" => "No matches found",
|
||||
"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",
|
||||
"Get in contact..." => "Get in contact by...",
|
||||
"You may use..." => "You may use ICEcoder for your own purposes, commercial or not, just let us know of any cool uses or customisations. :)<br><br>No warranty or liability accepted for anything, all responsibility of use is your own.",
|
||||
"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",
|
||||
"auto indent" => "auto indent",
|
||||
"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"
|
||||
),
|
||||
|
||||
"find-in-files" =>
|
||||
array(
|
||||
"Enter path to search in" => "Enter path to search in",
|
||||
"Enter semicolon-separated masks of files to look at (e.g. *.php;*.html;*.js)" => "Enter semicolon-separated masks of files to look at (e.g. *.php;*.html;*.js)",
|
||||
"Type of text" => "Type of text",
|
||||
"Fixed text" => "Fixed text",
|
||||
"Regular expression" => "Regular expression",
|
||||
"Case sensitive" => "Case sensitive",
|
||||
"Yes" => "Yes",
|
||||
"No" => "No",
|
||||
"Search" => "Search",
|
||||
)
|
||||
);
|
||||
?>
|
||||
425
lang/french.php
Normal file
@@ -0,0 +1,425 @@
|
||||
<?php
|
||||
// French language translation
|
||||
// par: @krisxoofoo (GitHub)
|
||||
// @kris_fr Twitter)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>Cliquez sur les icônes<br>pour l'aide &<br>et infos d'utilisation</b>",
|
||||
"server" => "Serveur",
|
||||
"Server name, OS..." => "Nom du serveur, OS & IP :",
|
||||
"Root" => "Racine :",
|
||||
"ICEcoder root" => "Racine d'ICEcoder :",
|
||||
"PHP version" => "Version PHP :",
|
||||
"Date & time" => "Date & heure :",
|
||||
"your device" => "Votre équipement",
|
||||
"Browser" => "Navigateur :",
|
||||
"Your IP" => "Votre IP :",
|
||||
"files" => "Fichiers",
|
||||
"Last 10 files..." => "10 derniers fichiers ouverts :",
|
||||
"none" => "[aucun]",
|
||||
"test suite" => "Suite de test",
|
||||
"Run unit tests" => "Lancer les tests unit",
|
||||
"dev mode" => "Mode dev",
|
||||
"Status" => "Statuts",
|
||||
"Using" => "Utilise",
|
||||
"You can switch..." => "Vous pouvez basculer le mode dev on/off
|
||||
dans lib/config__settings.php",
|
||||
"results" => "résultats"
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "Verrouiller",
|
||||
"Refresh" => "Rafraîchir",
|
||||
"ROOT" => "[RACINE]"
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "INFO DE MISE A JOUR",
|
||||
"now available" => "actuellement disponible",
|
||||
"Your version is" => "Votre version est la",
|
||||
"Update now" => "Mettre à jour maintenant",
|
||||
"You have some..." => "Vous avez quelques changements non sauvegardés",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "en progression",
|
||||
"Color picker" => "Sélecteur de couleur",
|
||||
"New File" => "Nouveau fichier",
|
||||
"New Folder" => "Nouveau dossier",
|
||||
"Upload File(s)" => "Télécharger le(s) Fichier(s)",
|
||||
"Paste" => "Coller",
|
||||
"Open" => "Ouvrir",
|
||||
"Copy" => "Copier",
|
||||
"Duplicate" => "Dupliquer",
|
||||
"Delete" => "Effacer",
|
||||
"Rename" => "Renommer",
|
||||
"View Webpage" => "Afficher la page web",
|
||||
"Download" => "Télécharger",
|
||||
"Properties" => "Propriétés",
|
||||
"File" => "Fichier",
|
||||
"Edit" => "Editer",
|
||||
"Remote" => "Distant",
|
||||
"Help" => "Aide",
|
||||
"Save" => "Enregistrer",
|
||||
"Save As" => "Enregistrer sous",
|
||||
"Live Preview" => "Prévisualisation",
|
||||
"Upload" => "Télécharger",
|
||||
"Zip" => "Compresser",
|
||||
"Print" => "Imprimer",
|
||||
"Fullscreen toggle" => "Basculer en mode plein écran",
|
||||
"Logout" => "Déconnexion",
|
||||
"Undo" => "Annuler",
|
||||
"Redo" => "Refaire",
|
||||
"Indent more" => "Plus d'indentation",
|
||||
"Indent less" => "Moins d'indentation",
|
||||
"Autocomplete" => "Autocomplétion",
|
||||
"Comment/Uncomment" => "Commenter/Décommenter",
|
||||
"Jump to Definition" => "Aller à la Définition",
|
||||
"Manual" => "Manuel",
|
||||
"Shortcuts" => "Raccourcis",
|
||||
"Settings" => "Préférences",
|
||||
"Search for selected" => "Rechercher pour la sélection",
|
||||
"website" => "Site internet",
|
||||
"Close all tabs" => "Fermer les onglets",
|
||||
"Alphabetize tabs" => "Onglets par ordre alphabétique",
|
||||
// "Find" => "Chercher",
|
||||
// "in" => "dans",
|
||||
// "and" => "et",
|
||||
// "replace" => "remplacer",
|
||||
// "replace all" => "remplacer tout",
|
||||
// "this document" => "ce document",
|
||||
// "open documents" => "les documents ouverts",
|
||||
// "all files" => "tous les fichiers",
|
||||
// "all filenames" => "tous les noms de fichiers",
|
||||
"Turn on/off..." => "Basculer on/off l'assistance au code",
|
||||
"Code Assist" => "Assistance au Code",
|
||||
"Go to Line" => "Aller à la ligne",
|
||||
"View" => "Afficher",
|
||||
"Bug reporting not active" => "Le signalement de dysfonctionnement n'est pas actif"
|
||||
),
|
||||
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "Trouvé dans :"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "Désolé",
|
||||
"does not seem..." => "ne semble pas exister sur le serveur",
|
||||
"Sorry, could not..." => "Désolé, impossibilité de récupérer le contenu de",
|
||||
"Sorry, cannot create..." => "Désolé, impossibilité de créer le dossier sur",
|
||||
"Sorry, cannot copy" => "Désolé, impossibilité de copier",
|
||||
"into" => "dans",
|
||||
"Uploaded file(s) OK" => "Téléchargement du (des) fichier(s) réussi(s)",
|
||||
"Sorry, cannot upload" => "Désolé, impossibilité de télécharger",
|
||||
"Sorry, cannot upload..." => "Désolé, impossibilité de télécharger en mode démo",
|
||||
"Sorry, cannot rename" => "Désolé, impossibilité de renommer",
|
||||
"Maybe public write..." => " Peut-être que les permissions d'écriture publique sont nécessaires sur ce dossier ou son répertoire ?",
|
||||
"Sorry, cannot move" => "Désolé, impossibilité de déplacer",
|
||||
"Sorry, cannot save" => "Désolé, impossibilité de sauvegarder",
|
||||
"Sorry, cannot replace..." => "Désolé, impossibilité de remplacer le texte dans ",
|
||||
"Sorry, cannot change..." => "Désolé, impossibilité de changer les permissions sur",
|
||||
"Sorry, cannot delete..." => "Désolé, imossibilité de supprimer le dossier racine",
|
||||
"Sorry, cannot delete" => "Désolé, impossibilité d'effacer",
|
||||
"Sorry, this file..." => "Désolé, le fichier a été modifié, impossibilité de sauvegarder",
|
||||
"Reload this file..." => "Recharger le fichier, et copier votre version dans un nouveau document ?",
|
||||
"There was a..." => "Un problème technique a été rencontré, probablement quelque chose qui n'était pas tout à fait prêt. ICEcoder a donc relancé à nouveau son contrôle de fichier.",
|
||||
"displayed at" => "affiché sur",
|
||||
"Enter filename to..." => "Saisissez le nom du fichier à enregistrer sur",
|
||||
"That file exists..." => "Ce fichier existe déjà, voulez vous l'écraser ?",
|
||||
"Saving" => "Sauvegardé"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "Il n'y a pas de différences entre le repo local et celui de GitHub. Revenir en mode normal ?",
|
||||
"Sorry, there was..." => "Désolé, il y avait une erreur, le code :",
|
||||
"Your local folder..." => " Votre dossier local est vide, voulez-vous le cloner ?"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Désolé, impossible de créer un dossier dans",
|
||||
"Cannot update config..." => "Impossibilité de mettre à jour le fichier de configuration. Veuillez vérifier les permissions d'écriture.",
|
||||
"and try again" => "et essayez de nouveau",
|
||||
"saving github paths" => "chemins github sauvegardés ...",
|
||||
"github paths" => "chemins github",
|
||||
"Choose existing path" => "Choisis le chemin existant",
|
||||
"Local path" => "Chemin local",
|
||||
"Remote GitHub path" => "Chemin distant GitHub",
|
||||
"Choose" => "Choisir",
|
||||
"Set local and..." => "Définir le chemin d'accès local et distant à blanc pour le retirer ",
|
||||
"Update" => "Mise à jour",
|
||||
"Add new path" => "Ajouter un nouveau chemin",
|
||||
"Add" => "Ajouter",
|
||||
"Usage Info" => "Info d'utilisation :",
|
||||
"Enter relative local..." => "Entrez les chemins relatifs locaux (par exemple / serveur / mesfichiers) et les chemins absolus GitHub (par exemple https://github.com/user/repo ou https://github.com/user/repo/tree/branch pour les branches). Avec ceci, vous aurez établi les chemins source sur les deux sites, comme une paire.",
|
||||
"You can then..." => "Vous pouvez ensuite choisir une paire de chemin, et cela devient alors votre nouveau chemin d'accès racine dans ICEcoder.",
|
||||
"The file manager..." => "Le gestionnaire de fichiers affiche alors une nouvelle icône GitHub, que vous pouvez cliquer dessus pour exécuter et afficher une vérification des différences entre les 2 sources. Ces différences peuvent être versées et basculées dans le projet distant GitHub ou clonées sur votre version locale du projet, afin de synchroniser vos fichiers.",
|
||||
"If you want..." => " Si vous souhaitez définir un autre chemin d'accès à la racine, cela peut être fait dans l'écran des paramètres."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Désolé, vous ne semblez pas avoir OpenSSL chargé sur votre instance de PHP, https n'est donc pas disponible. Cela est nécessaire pour le transfert de données GitHub, veuillez modifier les paramètres du fichier php.ini, redémarrez votre serveur et essayez à nouveau."
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Mauvais jeton CSRF. S'il vous plaît, envoyer un rapport de l'erreur à https://github.com/mattpass/ICEcoder si vous désirez qu'il soit corrigé."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "raccourcis",
|
||||
"Within document" => "Dans un fichier",
|
||||
"On Tabs" => "Dans les onglets",
|
||||
"Within file manager" => "Dans le gestionnaire de fichiers",
|
||||
"Anywhere" => "N'importe où",
|
||||
"Space" => "Espace",
|
||||
"Click" => "Clic",
|
||||
"or" => "ou",
|
||||
"Left click" => "Clic gauche",
|
||||
"Middle click" => "Clic du milieu",
|
||||
"Double click tap..." => "Double clic / touche (mobile)",
|
||||
"Right click" => "Clic droit",
|
||||
"Middle scrollwheel" => "Roulette du milieu",
|
||||
"Drag" => "Glisser",
|
||||
"Autocomplete add snippet" => "Saisie semi-automatique / ajouter un extrait",
|
||||
"Multiple select" => "Sélection multiple",
|
||||
"Move line up" => "Aller à la ligne supérieure",
|
||||
"Move line down" => "Aller à la ligne inférieure",
|
||||
"Duplicate lines" => "Dupliquer la(les) ligne(s)",
|
||||
"Remove lines" => "Supprimer la(les) ligne(s)",
|
||||
"Insert line before" => "Insérer un ligne avant",
|
||||
"Insert line after" => "Insérer une ligne après",
|
||||
"Search for selected" => "Rechercher pour la sélection",
|
||||
"Jump to definition" => "Aller à la définition / revenir en arrière",
|
||||
"Comment uncomment" => "Commenter / Décommenter",
|
||||
"Insert tab indent" => "Insérer un tableau / indent selected",
|
||||
"Wrap with div" => "Plier avec <div>",
|
||||
"Wrap with span" => "Plier avec <span>",
|
||||
"Wrap unwrap p" => "Plier / déplier avec <p>",
|
||||
"Wrap unwrap a" => "Plier / déplier avec <a>",
|
||||
"Wrap unwrap b" => "Plier / déplier avec <b>",
|
||||
"Wrap unwrap i" => "Plier / déplier avec <i>",
|
||||
"Wrap unwrap strong" => "Plier / déplier avec <strong>",
|
||||
"Wrap unwrap em" => "Plier / déplier avec <em>",
|
||||
"Wrap unwrap h1..." => "Plier / déplier avec <h1> - <h3>",
|
||||
"End line with..." => "Fin de ligne avec <br>",
|
||||
"Close tab" => "Fermer l'onglet",
|
||||
"Select file folder" => "Sélectionner fichier / dossier",
|
||||
"Open file" => "Ouvrir le fichier",
|
||||
"Range select" => "Sélection de la plage",
|
||||
"Options for selected" => "Options pour sélectionner",
|
||||
"Delete selected" => "Suppression de la sélection",
|
||||
"Next previous tab" => "Onglet suivant / précédent",
|
||||
"Next tab" => "Onglet suivant",
|
||||
"Previous tab" => "Onglet précédent",
|
||||
"New tab" => "Nouvel onglet",
|
||||
"Close current tab" => "Fermer l'onglet courant",
|
||||
"Open file prompt" => "Ouvrir une invite de fichier",
|
||||
"Find" => "Chercher",
|
||||
"Focus on Go..." => " Focus sur le début de ligne",
|
||||
"Save" => "Enregistrer",
|
||||
"Save as" => "Enregistrer sous...",
|
||||
"View webpage" => "Afficher la page web",
|
||||
"Contract expand file..." => "Réduire / agrandir le gestionnaire de fichiers",
|
||||
"Fold unfold current..." => "Plier / déplier la ligne courante",
|
||||
"Refocus on document" => "Revenir sur le document",
|
||||
"Cancel tasks" => "Quitter les tâches"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "Aucun texte sélectionné pour la recherche sur",
|
||||
"Creating Folder" => "réation de dossier",
|
||||
"Sorry you can..." => "Désolé, vous ne pouvez pas avoir plus de 100 fichiers ouverts en même temps !",
|
||||
"Opening File" => "Ouverture de fichier",
|
||||
"Enter relative file..." => "Entrez le chemin relatif du fichier (préfixé avec un /) ou l'URL distante",
|
||||
"Getting" => "Obtention",
|
||||
"Please enter the..." => "S'il vous plait, saisissez le nouveau nom pour",
|
||||
"Renaming to" => "Renommé en",
|
||||
"Moving to" => "Déplacé vers",
|
||||
"Deleting File" => "Suppression fichier",
|
||||
"Pasting File" => "Collage fichier",
|
||||
"Sorry cannot paste..." => "Désolé, il n'est pas possible de coller une racine",
|
||||
"Nothing to paste..." => "Rien à coller, copiez un fichier/dossier en premier !",
|
||||
"Replacing text in" => "Remplacement de texte dans",
|
||||
"Cancelled tasks" => "Tâches annulés",
|
||||
"Open previous files" => "Ouvrir les fichiers précédents ?",
|
||||
"Please enter your..." => "S'il vous plaît entrez votre token GitHub (soit l'accès par token personnel ou le token client / paire secrète). Voir l'info-bulle à côté de Github Auth Token sur écran Aide> Paramètres pour plus d'infos",
|
||||
"This will compare..." => "Ceci compare et montre une vue des différences entre votre répertoire local et le repo. D'accord ?",
|
||||
"Please note for..." => "S'il vous plaît, noter : la mise à jour fonctionne correctement, vous devez avoir les permissions d'écriture / suppression à tous les répertoires et fichiers d'ICEcoder. Si vous avez besoin de récupérer cette version d'ICEcoder pour une raison quelconque, vous la trouverez dans le répertoire / tmp. Cliquez sur OK pour procéder à une mise à jour automatique, ou annuler et visiter le site d'ICEcoder de sorte que vous pouvez récupérer le fichier zip et mettre à jour manuellement.",
|
||||
"You can start..." => "Vous pouvez reporter un dysfonctionnement dans Aide > Préférences",
|
||||
"Error cannot find..." => "Erreur : ne peut pas trouver / accéder aux chemins des fichiers d'erreur",
|
||||
"No new errors..." => "Aucune nouvelle erreur trouvée",
|
||||
"You have made..." => "Vous avez réalisé des modifications. Etes vous sûr(e) de désirer quitter sans sauvegarder ?",
|
||||
"Close all tabs" => "Fermer tous les onglets?"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "Définir un mot de passe",
|
||||
"login" => "Connexion",
|
||||
"To disable registration..."=> "Pour désactiver le mode 'enregsitrement', ouvrir le menu des préférences ou le fichier lib/config___settings.php et modifier enableRegistration à 'false', puis recharger cette page",
|
||||
"Registration mode enabled" => "Mode Enregistrement activé",
|
||||
"auto-check for updates" => "Vérification automatique des mises à jour",
|
||||
"To put into..." => "Pour passer en mode 'multi-utilisateur', ouvrir le menu des preférences ou le ifchier lib/config___settings.php et modifier multiUser à 'true', puis recharger cette page",
|
||||
"multi-user" => "Multi-utilisateur"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "Tout renommer",
|
||||
"replace all" => "Tout remplacer",
|
||||
"document" => "document",
|
||||
"Found" => "trouvé",
|
||||
"times" => "date",
|
||||
"replace" => "remplacer",
|
||||
"file folder" => "fichier/dossier",
|
||||
"rename to" => "renommer en",
|
||||
"rename" => "renommer",
|
||||
"file" => "fichier",
|
||||
"No matches found" => "Aucun résultat de trouver",
|
||||
"selected" => "sélectionné",
|
||||
"found in" => "trouvé dans",
|
||||
"Replaced" => "Remplacé"
|
||||
),
|
||||
|
||||
"plugins-manager" =>
|
||||
array(
|
||||
"ICEcoder needs to..." => "ICEcoder a besoin d'être rechargé pour rendre ce plugin utilisable. Le faire maintenant ?",
|
||||
"saving plugins" => "sauvegarde des plugins ...",
|
||||
"Cannot update config..." => "Impossibilité de mettre à jour le fichier de configuration. Vérifiez les permissions d'écriture",
|
||||
"and try again" => "et essayez de nouveau",
|
||||
"couldnt delete dir" => "ne peut pas effacer le dossier",
|
||||
"couldnt delete file" => "ne peut pas effacer le fichier",
|
||||
"plugins" => "plugins",
|
||||
"Guide to writing..." => "Guide pour écrire des plugins",
|
||||
"Manage Installed" => "Gestionnaire installé",
|
||||
"URL" => "URL",
|
||||
"Target" => "Cible",
|
||||
"Timer" => "Compteur",
|
||||
"Update" => "Mise à jour",
|
||||
"Install" => "Installation",
|
||||
"Uninstall" => "Désinstallation",
|
||||
"Reload after install..." => "Une reconnexion est nécessaire après l'installation"
|
||||
),
|
||||
|
||||
"properties" =>
|
||||
array(
|
||||
"properties" => "propriétés",
|
||||
"Size" => "Taille",
|
||||
"Modified" => "Dernière modification",
|
||||
"Last access" => "Dernier accès",
|
||||
"Type" => "Type",
|
||||
"Readable Writeable" => "Lisible / Inscriptible",
|
||||
"Relative path" => "Chemin relatif",
|
||||
"Absolute path" => "Chemin absolute",
|
||||
"Contains" => "Contenu",
|
||||
"Permissions" => "Permissions",
|
||||
"Owner" => "Propriétaire",
|
||||
"Group" => "Groupe",
|
||||
"Public" => "Public",
|
||||
"Read" => "Lire",
|
||||
"Write" => "Ecrire",
|
||||
"Execute" => "Exécuter",
|
||||
"Change to" => "Modifier en",
|
||||
"update" => "mise à jour"
|
||||
),
|
||||
|
||||
"settings-common" =>
|
||||
array(
|
||||
"Your document does..." => "Votre document ne semble pas être en UTF-8 et a donc été converti"
|
||||
),
|
||||
|
||||
"settings-save-current-files" =>
|
||||
array(
|
||||
"Cannot update config..." => "Impossibilité de mettre à jour le fichier de configuration. Vérifiez les permissions d'écriture sur celui-ci",
|
||||
"and try again" => "et essayez de nouveau"
|
||||
),
|
||||
|
||||
"settings-screen" =>
|
||||
array(
|
||||
"settings" => "préférences",
|
||||
"version" => "version",
|
||||
"website" => "Site internet",
|
||||
"git" => "git",
|
||||
"codemirror dir" => "chemin de codemirror",
|
||||
"codemirror version" => "version de codemirror ",
|
||||
"file manager root" => "racine du gestionnaire de fichiers",
|
||||
"Free to use..." => "Libre de l'utiliser pour vos propres fins, commerciales ou non, faites moi juste savoir de toute utilisation sympa ou personnalisations. :)<br><br>Aucune garantie ou responsabilité est acceptées de notre part, toute responsabilité d'utilisation est de votre ressort.<br><br>De nombreuses personnes fantastiques et d'entreprises ont contribué à réaliser ICEcoder et il est important de les remercier ici. S'il vous plaît, parcourez la liste complète sur",
|
||||
"functionality" => "fonctionnalités",
|
||||
"check for updates..." => "Vérifier les mises à jour",
|
||||
"auto open last..." => "affichage des derniers fichiers",
|
||||
"when finding in..." => "extension à exclure des recherches",
|
||||
"assisting" => "assistant",
|
||||
"code assist" => "Assistance de code",
|
||||
"visible tabs" => "onglets visibles",
|
||||
"locked nav" => "navigation vérouillée",
|
||||
"tag wrapper command" => "commande de tag",
|
||||
"auto-complete on" => "auto-complétion sur",
|
||||
"security" => "sécurité",
|
||||
"new password" => "nouveau mot de passe",
|
||||
"8 chars min" => "8 caractères minimum",
|
||||
"confirm password" => "confirmation du mot de passe",
|
||||
"banned files/folders" => "fichiers/dossiers bannis",
|
||||
"banned paths" => "chemins bannis",
|
||||
"ip addresses" => "adresses ip",
|
||||
"Slash prefixed comma..."=> "Slash préfixé, séparées par des virgules",
|
||||
"Comma delimited" => "Délimité par des virgules",
|
||||
"style" => "style",
|
||||
"theme" => "thème",
|
||||
"line wrapping" => "retour à la ligne",
|
||||
"indent type" => "indent type",
|
||||
"indent size" => "indent size",
|
||||
"font size" => "font size",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "disposition",
|
||||
"plugin panel aligned" => "panneau des plugins aligné",
|
||||
"file manager" => "gestionnaire de fichiers",
|
||||
"root" => "racine",
|
||||
"Slash prefixed" => "Slash préfixé",
|
||||
"bug reporting" => "Rapport de dysfonctionnement",
|
||||
"check in files" => "vérifier dans les fichiers",
|
||||
"every" => "chaque",
|
||||
"secs getting last" => "secondes, obtenir le dernier",
|
||||
"lines" => "lignes",
|
||||
"multi-user" => "multi-utilisateurs",
|
||||
"Make sure you..." => "Assurez-vous que vous ne vous bloquez pas sur",
|
||||
"Registration" => "Enregistrement",
|
||||
"auth token" => "auth token",
|
||||
"Required to get..." => "Nécessaire pour obtenir les diffs, procéder à un commit sur votre projet sous GitHub. Si vous n'en avez pas, vous pouvez utiliser un :".PHP_EOL.PHP_EOL.
|
||||
"- jeton/token d'accès personel (https://help.github.com/articles/creating-an-access-token-for-command-line-use), ou un jeton/token ".PHP_EOL.
|
||||
" client/paire secrète (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
|
||||
"Il n'est pas recommandé de définir votre jeton ici, cependant, il est plus sûr de l'entrer à la demande d'ICEcoder car cela le garde uniquement en session.".PHP_EOL.PHP_EOL.
|
||||
"Cependant, si vous travaillez dans un environnement fiable et sécurisé, il est plus efficace de le mettre ici.",
|
||||
"Sorry cannot commit..." => "Désolé, vous ne pouvez pas modifier les préférences en mode de démonstration",
|
||||
"update" => "Mise à jour"
|
||||
),
|
||||
|
||||
"settings-update" =>
|
||||
array(
|
||||
"Cannot update config..." => "Impossibilité de mettre à jour le fichier de configuration. Vérifiez les permissions d'écriture sur celui-ci",
|
||||
"and try again" => "et essayez de nouveau",
|
||||
"and press refresh" => "et pressez le rafraîchissement de la page"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "La mise à jour semble s'être réalisée avec succès"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
398
lang/german.php
Normal file
@@ -0,0 +1,398 @@
|
||||
<?php
|
||||
// German language translation
|
||||
// by: @olliiee (GitHub)
|
||||
// @trolliusgigant (Twitter)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>Klick auf das Icon<br>für Hilfe &<br>Anwendungsbeispielen</b>",
|
||||
"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" => "Jetzt aktualisieren",
|
||||
"You have some..." => "Du hast einige nicht gespeicherete Dateien",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "arbeite",
|
||||
"Color picker" => "Farbauswahl",
|
||||
"New File" => "Neue Datei",
|
||||
"New Folder" => "Neuer Ordner",
|
||||
"Upload File(s)" => "Datei(en) hochladen",
|
||||
"Paste" => "Einfügen",
|
||||
"Open" => "Öffnen",
|
||||
"Copy" => "Kopieren",
|
||||
"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 Auswahl 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..." => "Kann die Config Datei nicht aktualisieren. Bitte 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ßen mit <br>",
|
||||
"Close tab" => "Tab schließen",
|
||||
"Select file folder" => "Datei / Verzeichnis auswä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"
|
||||
),
|
||||
|
||||
"plugins-manager" =>
|
||||
array(
|
||||
"ICEcoder needs to..." => "ICEcoder muss neu geladen werden, damit das Plugin genutzt werden kann. Jetzt neu laden?",
|
||||
"saving plugins" => "speichere 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" => "CodeMirror Verzeichnis",
|
||||
"codemirror version" => "CodeMirror Version",
|
||||
"file manager root" => "Stammverzeichnis vom Dateimanager",
|
||||
"Free to use..." => "Kostenfrei nutzbar, kommerziell oder nicht. Gebt mir Bescheid über eure Nutzung oder Anpassungen. :)<br><br>Keine Garantie oder Haftung, Nutzung auf eigene Gefahr.<br><br>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" => "Assistenten",
|
||||
"code assist" => "Codeassistent",
|
||||
"visible tabs" => "sichtbare Tabs",
|
||||
"locked nav" => "gesperrte Navigation",
|
||||
"tag wrapper command" => "Kommando für Tag Wrapper",
|
||||
"auto-complete on" => "Auto-Vervollständigen mit",
|
||||
"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" => "Einrückung mit",
|
||||
"indent size" => "Tabweite",
|
||||
"font size" => "Schriftgröße",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "Layout",
|
||||
"plugin panel aligned" => "Ausrichtung Plugin-Panel",
|
||||
"file manager" => "Dateimanager",
|
||||
"root" => "Stammordner",
|
||||
"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" => "Authentifizierungs-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"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
437
lang/italian.php
Normal file
@@ -0,0 +1,437 @@
|
||||
<?php
|
||||
// Italian language translation
|
||||
// by: @pietrondo (GitHub)
|
||||
// @pietrobravo (Twitter)
|
||||
// blog.pietrocapriata.me (sito web)
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>Clicca le icone<br>per l'aiuto &<br>la guida</b>",
|
||||
"server" => "server",
|
||||
"Server name, OS..." => "Nome server, Sistema operativo e indirizzo IP...",
|
||||
"Root" => "Root:",
|
||||
"ICEcoder root" => "ICEcoder root:",
|
||||
"PHP version" => "Versione PHP",
|
||||
"Date & time" => "Ora e data:",
|
||||
"your device" => "dispositivo in uso",
|
||||
"Browser" => "Browser:",
|
||||
"Your IP" => "Il tuo IP:",
|
||||
"files" => "file",
|
||||
"Last 10 files..." => "Ultimi 10 file aperti:",
|
||||
"none" => "[none]",
|
||||
"test suite" => "prova suite",
|
||||
"Run unit tests" => "Esegui test di unità",
|
||||
"dev mode" => "modalità sviluppo",
|
||||
"Status" => "Stato",
|
||||
"Using" => "Utilizzo",
|
||||
"You can switch..." => "È possibile attivare/disattivare la modalità sviluppo nel file lib/config__settings.php"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "Blocca",
|
||||
"Refresh" => "Aggiorna",
|
||||
"ROOT" => "[ROOT]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "INFORMAZIONI AGGIORNAMENTO",
|
||||
"now available" => "Èora disponibile",
|
||||
"Your version is" => "La tua versione Egrave;",
|
||||
"Update now" => "Aggiorna ora",
|
||||
"You have some..." => "Ci sono modifiche non salvate",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "working",
|
||||
"Color picker" => "Selettore di colore",
|
||||
"New File" => "Nuovo file",
|
||||
"New Folder" => "Nuova cartella",
|
||||
"Upload File(s)" => "Carica File",
|
||||
"Paste" => "Incolla",
|
||||
"Open" => "Apri",
|
||||
"Copy" => "Copia",
|
||||
"Duplicate" => "Duplica",
|
||||
"Delete" => "Elimina",
|
||||
"Rename" => "Rinomina",
|
||||
"View Webpage" => "Visualizza la pagina web",
|
||||
"Download" => "Download",
|
||||
"Properties" => "Propietà",
|
||||
"File" => "File",
|
||||
"Edit" => "Modifica",
|
||||
"Remote" => "Remoto",
|
||||
"Help" => "Aiuto",
|
||||
"Save" => "Salva",
|
||||
"Save As" => "Salva come",
|
||||
"Live Preview" => "Anteprima",
|
||||
"Upload" => "Upload",
|
||||
"Zip" => "Comprimi",
|
||||
"Print" => "Stampa",
|
||||
"Fullscreen toggle" => "Modalità schermo intero",
|
||||
"Logout" => "Logout",
|
||||
"Undo" => "Annulla",
|
||||
"Redo" => "Riesegui",
|
||||
"Indent more" => "Aumenta rientro",
|
||||
"Indent less" => "Riduci rientro",
|
||||
"Autocomplete" => "Autocompleta",
|
||||
"Comment/Uncomment" => "Commenta/Rimuovi commento",
|
||||
"Jump to Definition" => "Vai alla Definizione",
|
||||
"Manual" => "Manuale",
|
||||
"Shortcuts" => "Scorciatorie",
|
||||
"Settings" => "Configurazione",
|
||||
"Search for selected" => "Cerca selezionato",
|
||||
"website" => "sito web",
|
||||
"Close all tabs" => "Chiudi tutte le schede",
|
||||
"Alphabetize tabs" => "Ordina le schede",
|
||||
"Find" => "Trova",
|
||||
"in" => "in",
|
||||
"and" => "e",
|
||||
"replace" => "sostituisci",
|
||||
"replace all" => "sostituisci tutto",
|
||||
"this document" => "questo documento",
|
||||
"open documents" => "apri documenti",
|
||||
"all files" => "tutti i file",
|
||||
"all filenames" => "tutti i nomi",
|
||||
"Turn on/off..." => "Attiva/disattiva code assist",
|
||||
"Code Assist" => "Code Assist",
|
||||
"Go to Line" => "Vai alla linea",
|
||||
"View" => "Visualizza",
|
||||
"Bug reporting not active" => "Segnalazione bug non attiva"
|
||||
),
|
||||
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "Trovato in:"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "Spiacente",
|
||||
"does not seem..." => "non sembra esistere sul server",
|
||||
"Sorry, could not..." => "Siamo spiacenti, non è possibile ottenere i contenuti di",
|
||||
"Sorry, cannot create..." => "Siamo spiacenti, non è possibile creare una cartella a",
|
||||
"Sorry, cannot copy" => "Siamo spiacenti, non è possibile copiare",
|
||||
"into" => "into",
|
||||
"Uploaded file(s) OK" => "Upload file Ok",
|
||||
"Sorry, cannot upload" => "Siamo spiacenti, non è possibile caricare",
|
||||
"Sorry, cannot upload..." => "Siamo spiacenti , non è possibile caricare mentre in modalità demo",
|
||||
"Sorry, cannot rename" => "Siamo spiacenti , non è possibile rinominare",
|
||||
"Maybe public write..." => "Forse sono necessari permessi di scrittura pubblica su questa o sulla cartella principale??",
|
||||
"Sorry, cannot move" => "Siamo spiacenti, non è possibile muovere",
|
||||
"Sorry, cannot save" => "Siamo spiacenti, non è possibile salvare",
|
||||
"Sorry, cannot replace..." => "Siamo spiacenti, non è possibile sostituire il testo",
|
||||
"Sorry, cannot change..." => "Siamo spiacenti, non è possibile cambiare i permessi",
|
||||
"Sorry, cannot delete..." => "Siamo spiacenti, non è possibile cancellare la cartella root",
|
||||
"Sorry, cannot delete" => "Siamo spiacenti, non è possibile cancellare",
|
||||
"Sorry, this file..." => "Siamo spiacenti, questo file è stato cambiato, non è possibile salvarlo",
|
||||
"Reload this file..." => "Ricarica questo file e copia la tua versione in un pannello differente",
|
||||
"There was a..." => "C'è stato un problema tecnico, probabilmente qualcosa che non era ancora pronto. Così ICEcoder ha ricaricato di nuovo il file.",
|
||||
"displayed at" => "visualizzato in",
|
||||
"Enter filename to..." => "Inserisci il nome del file da salvare in",
|
||||
"That file exists..." => "Questo file esiste già, sovrascrivere??",
|
||||
"Saving" => "Stiamo salvando"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "Non ci sono differenze tra il repo locale e GitHub. Tornare alla modalità normale??",
|
||||
"Sorry, there was..." => "Spiacente, c'è stato un errore, il codice:",
|
||||
"Your local folder..." => "La cartella locale è vuota, ti piacerebbe clonare"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Siamo spiacenti, non è possibile creare la cartella in",
|
||||
"Cannot update config..." => "Impossibile aggiornare il file di configurazione. Si prega di impostare i permessi di scrittura pubblica su",
|
||||
"and try again" => "e prova ancora",
|
||||
"saving github paths" => "salvando il percorso di github...",
|
||||
"github paths" => "percorso di github",
|
||||
"Choose existing path" => "Scegli il percorso esistente",
|
||||
"Local path" => "Percorso locale",
|
||||
"Remote GitHub path" => "Remote GitHub path",
|
||||
"Choose" => "Scegli",
|
||||
"Set local and..." => "Imposta percorso locale e remoto, lasciare vuoto per per rimuovere",
|
||||
"Update" => "Aggiorna",
|
||||
"Add new path" => "Aggiungi nuovo percorso",
|
||||
"Add" => "Aggiungi",
|
||||
"Usage Info" => "Usage Info:",
|
||||
"Enter relative local..." => "Inserisci percorsi locali relativi (ad esempio / server / myfiles) e percorsi assoluti GitHub (ad es https://github.com/user/repo o https://github.com/user/repo/tree/branch per le filiali), come da gli esempi.",
|
||||
"You can then..." => "È quindi possibile scegliere un percorso e questo allora diventa il tuo nuovo percorso principale in ICEcoder.",
|
||||
"The file manager..." => "Il file manager visualizza una nuova icona GitHub, su cui è possibile fare clic su per eseguire e mostrare un controllo diff tra le 2 fonti. Questi diff possono essere validati e inviati al percorso remoto a GitHub o clonati in un percorso locale, per la sincronizzazione dei file.",
|
||||
"If you want..." => "If you want to set another root path, this can be done in the Settings screen."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Siamo spiacenti, non sembra avere OpenSSL caricato nella vostra installazione PHP, quindi https non è disponibile. Questo è necessario per GitHub il trasferimento dei dati, si prega di modificare le impostazioni di php.ini, di riavviare il server e riprovare"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Bad CSRF token. Per favore riporta l'errore a https://github.com/mattpass/ICEcoder così che possa essere fixato."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "shortcuts",
|
||||
"Within document" => "all'interno del documento",
|
||||
"On Tabs" => "Sulle Tabs",
|
||||
"Within file manager" => "All'interno del file manager",
|
||||
"Anywhere" => "Dappertutto",
|
||||
"Space" => "Spazio",
|
||||
"Click" => "Click",
|
||||
"or" => "o",
|
||||
"Left click" => "Click Sinistro",
|
||||
"Middle click" => "Click centrale",
|
||||
"Double click tap..." => "Doppio click / tap (mobile)",
|
||||
"Right click" => "Click Destro",
|
||||
"Middle scrollwheel" => "scrollwheel Medio",
|
||||
"Drag" => "Trascina",
|
||||
"Autocomplete add snippet" => "Completamento automatico / aggiungi snippet",
|
||||
"Multiple select" => "Selezione multiple",
|
||||
"Move line up" => "Vai alla linea sopra",
|
||||
"Move line down" => "Vai alla linea sotto",
|
||||
"Duplicate lines" => "Duplica linea(e)",
|
||||
"Remove lines" => "Rimuovi linea(e)",
|
||||
"Insert line before" => "Inserisci linea prima di",
|
||||
"Insert line after" => "Inserisci linea dopo di",
|
||||
"Search for selected" => "Cerca selezionati",
|
||||
"Jump to definition" => "Vai a definizione / torna indietro",
|
||||
"Comment uncomment" => "Commento / decommenta",
|
||||
"Insert tab indent" => "Inserisci tab / rientro selezionato",
|
||||
"Wrap with div" => "Includi con <div>",
|
||||
"Wrap with span" => "Includi <span>",
|
||||
"Wrap unwrap p" => "Includi / escludi con <p>",
|
||||
"Wrap unwrap a" => "Includi / escludi con <a>",
|
||||
"Wrap unwrap b" => "Includi / escludi con <b>",
|
||||
"Wrap unwrap i" => "Includi / escludi con <i>",
|
||||
"Wrap unwrap strong" => "Includi / escludi con <strong>",
|
||||
"Wrap unwrap em" => "Includi / escludi con <em>",
|
||||
"Wrap unwrap li" => "Includi / escludi con <li>",
|
||||
"Wrap unwrap h1..." => "Includi / escludi con <h1> - <h3>",
|
||||
"End line with..." => "Finisci la linea con <br>",
|
||||
"Close tab" => "Chiudi tab",
|
||||
"Select file folder" => "Seleziona file, cartella",
|
||||
"Open file" => "Apri file",
|
||||
"Range select" => "Seleziona range",
|
||||
"Options for selected" => "Opzioni per selezionati",
|
||||
"Delete selected" => "Elimina selezionati",
|
||||
"Next previous tab" => "Tab successiva / precedente",
|
||||
"Next tab" => "Tab successiva",
|
||||
"Previous tab" => "Tab precedente",
|
||||
"New tab" => "Nuova tab",
|
||||
"Close current tab" => "Chiudi tab corrente",
|
||||
"Open file prompt" => "Open file prompt",
|
||||
"Find" => "Trova",
|
||||
"Focus on Go..." => "Focus on Go to line input",
|
||||
"Save" => "Salva",
|
||||
"Save as" => "Salva come...",
|
||||
"View webpage" => "Vedi pagina web",
|
||||
"Contract expand file..." => "Contrai / espandi file manager",
|
||||
"Fold unfold current..." => "Piega / dispiega riga corrente",
|
||||
"Refocus on document" => "Refocus sul documento",
|
||||
"Cancel tasks" => "Cancella compito"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "Nessun testo selezionato per la ricerc",
|
||||
"all files" => "tutti i file",
|
||||
"all filenames" => "tutti i nomi dei file",
|
||||
"selected files" => "seleziona file",
|
||||
"selected filenames" => "seleziona nomi dei file",
|
||||
"Creating Folder" => "Sto creando una cartla",
|
||||
"Sorry you can..." => "Spiacente, puoi avere solo 100 file aperti a volta!",
|
||||
"Opening File" => "Apertura file",
|
||||
"Enter relative file..." => "Digita il percorso relativo (con / di prefisso) o l'url remoto",
|
||||
"Getting" => "Getting",
|
||||
"Please enter the..." => "Per favore digita un nuovo nome per",
|
||||
"Renaming to" => "Rinominando a ",
|
||||
"Moving to" => "Muovendo a",
|
||||
"Deleting File" => "Eliminando file",
|
||||
"Pasting File" => "Incollando file",
|
||||
"Sorry cannot paste..." => "Spiacente, ma non puoi copiare un intera radice",
|
||||
"Nothing to paste..." => "Niente da copiare, copia prima un file o una cartella!",
|
||||
"and" => "e",
|
||||
"this document" => "questo documento",
|
||||
"replace" => "sostituisci",
|
||||
"replace all" => "sostituisci tutto",
|
||||
"file" => "file",
|
||||
"Replacing text in" => "Sostituisci il testo con",
|
||||
"Cancelled tasks" => "Compiti cancellati",
|
||||
"Open previous files" => "Aprire i file precedenti?",
|
||||
"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..." => "Questo confronterà e mostrarà la diff tra il dir locale e il repository. Ok?",
|
||||
"Please note for..." => "Si prega di notare: affinche l'aggiornamento funzioni correttamente, è necessario disporre dei permessi di scrittura e cancellazione su tutti le cartelle e file di ICEcoder e. Se è necessario ripristinare questa versione di ICEcoder per qualsiasi motivo, lo troverete nella directory / tmp dir. Fare clic su OK per procedere con l'aggiornamento automatico o annullare a visitare il sito ICEcoder in modo da poter utilizzare la zip e aggiornare manualmente.",
|
||||
"You can start..." => "Puoi ripoertare il bug in Help > Settings",
|
||||
"Error cannot find..." => "Error: cannot find/access the error file paths",
|
||||
"No new errors..." => "Nessun nuovo errore trovato",
|
||||
"You have made..." => "Hai fatto alcuni cambiamenti. Sei sicuro che vuoi chiudere senza prima salvare?",
|
||||
"Close all tabs" => "Chiudere tutte le tabs?",
|
||||
"results" => "risultati"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "imposta password",
|
||||
"login" => "login",
|
||||
"To disable registration..." => "Per disattivare la modalità di registrazione, apri il menu delle impostazioni o aprire lib/config___settings.php e cambia enableRegistration in false quindi ricarica questa pagina",
|
||||
"Registration mode enabled" => "Modalità di registrazione abilitata",
|
||||
"auto-check for updates" => "auto-check per aggiornamenti",
|
||||
"To put into..." => "Per mettere in modalità multi-utente, aprire il menu delle impostazioni o apri lib / config ___ settings.php e cambiare multiutente su true quindi ricarica questa pagina",
|
||||
"multi-user" => "multi-user"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "rename all",
|
||||
"replace all" => "replace all",
|
||||
"document" => "document",
|
||||
"Found" => "Found",
|
||||
"times" => "times",
|
||||
"replace" => "replace",
|
||||
"file folder" => "file/folder",
|
||||
"rename to" => "rename to",
|
||||
"rename" => "rename",
|
||||
"file" => "file",
|
||||
"No matches found" => "No matches found",
|
||||
"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" => "Proprietà",
|
||||
"Size" => "Dimensione",
|
||||
"Modified" => "Modificato",
|
||||
"Last access" => "Ultimo accesso",
|
||||
"Type" => "Type",
|
||||
"Readable Writeable" => "Leggibile / Scrivibile",
|
||||
"Relative path" => "Percorso relativo",
|
||||
"Absolute path" => "Percorso assoluto",
|
||||
"Contains" => "Contiene",
|
||||
"Permissions" => "Permessi",
|
||||
"Owner" => "Proprietario",
|
||||
"Group" => "Gruppo",
|
||||
"Public" => "Pubblico",
|
||||
"Read" => "Lettura",
|
||||
"Write" => "Scrittura",
|
||||
"Execute" => "Esecuzione",
|
||||
"Change to" => "Cambia a",
|
||||
"update" => "aggiorna"
|
||||
),
|
||||
|
||||
"settings-common" =>
|
||||
array(
|
||||
"Your document does..." => "Il tuo documento non sembra essere in formato UTF-8 per questo viene corretto"
|
||||
),
|
||||
|
||||
"settings-save-current-files" =>
|
||||
array(
|
||||
"Cannot update config..." => "Impossibile aggiornare il file di configurazione. Si prega di impostare i permessi di scrittura pubblica su",
|
||||
"and try again" => "e prova ancora"
|
||||
),
|
||||
|
||||
"settings-screen" =>
|
||||
array(
|
||||
"settings" => "settings",
|
||||
"version" => "versione",
|
||||
"website" => "sito web",
|
||||
"git" => "git",
|
||||
"codemirror dir" => "dir codemirror ",
|
||||
"codemirror version" => "versione codemirror ",
|
||||
"file manager root" => "root di file manager ",
|
||||
"Free to use..." => "Libero di usarlo per i propri scopi, commerciali e non, facendomelo solo sapere per eventuali nuovi e interessanti utilizzi o personalizzazioni. :) <br> Nessuna garanzia o responsabilità, tutte le responsabilità di utilizzo è vostra. <br> Un sacco di aziende e persone fantastiche hanno contribuito a costruire ICEcoder e ce ne sarebbero troppi da ringraziare. Si prega di consultare la lista completa a",
|
||||
"functionality" => "funzionalità",
|
||||
"check for updates..." => "controlla aggiornamenti all'avvio",
|
||||
"auto open last..." => "Apri automaticamente ultimi file al login",
|
||||
"when finding in..." => "quando trovi nei file, escludi",
|
||||
"assisting" => "assisting",
|
||||
"code assist" => "code assist",
|
||||
"visible tabs" => "tab visibili",
|
||||
"locked nav" => "navigazione bloccata",
|
||||
"tag wrapper command" => "tag wrapper command",
|
||||
"auto-complete on" => "auto-completamento attivo",
|
||||
"security" => "sicurezza",
|
||||
"new password" => "nuova password",
|
||||
"8 chars min" => "8 caratteri minimo",
|
||||
"confirm password" => "conferma password",
|
||||
"banned files/folders" => "file e cartelle vietati",
|
||||
"banned paths" => "percorsi vietati",
|
||||
"ip addresses" => "indirizzo ip",
|
||||
"Slash prefixed comma..." => "slash di prefisso, delimitato da virgole",
|
||||
"Comma delimited" => "delimitato da virgole",
|
||||
"style" => "style",
|
||||
"theme" => "tema",
|
||||
"line wrapping" => "a capo automatico",
|
||||
"indent type" => "tipo di rientro",
|
||||
"indent size" => "dimensioni rientro",
|
||||
"font size" => "dimensione font ",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "layout",
|
||||
"plugin panel aligned" => "Pannello plug inallineato",
|
||||
"file manager" => "file manager",
|
||||
"root" => "root",
|
||||
"Slash prefixed" => "barra obliqua prefisso",
|
||||
"bug reporting" => "bug reporting",
|
||||
"check in files" => "check in files",
|
||||
"every" => "ogni",
|
||||
"secs getting last" => "secs, getting last",
|
||||
"lines" => "linee",
|
||||
"multi-user" => "multi-user",
|
||||
"Make sure you..." => "Assicurati di non bloccarti fuori",
|
||||
"Registration" => "Registrazione",
|
||||
"auth token" => "auth token",
|
||||
"Required to get..." => "Necessario per ottenere diff, validare il votro repo GitHub ospitato ecc Se non ne avete uno, è possibile utilizzare un:".PHP_EOL.PHP_EOL.
|
||||
"-
|
||||
token di accesso personale (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.
|
||||
"Non è consigliabile impostare il token qui e comunque è più sicuro inserirlo quando richiesto dal ICEcoder e verrà tenuto solamente durante la sessione.".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..." => "Siamo spiacenti, non è possibile modificare le impostazioni in modalità demo",
|
||||
"update" => "aggiorna"
|
||||
),
|
||||
|
||||
"settings-update" =>
|
||||
array(
|
||||
"Cannot update config..." => "Non posso aggiornare il file config. Per favore permetti l'accesso pubblico di scrittura",
|
||||
"and try again" => "e prova ancora",
|
||||
"and press refresh" => "e premi aggiorna"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "L'aggiornamento sembra andato bene"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
428
lang/norwegian.php
Normal file
@@ -0,0 +1,428 @@
|
||||
<?php
|
||||
// Norwegian language translation
|
||||
// by: @koseelg (GitHub)
|
||||
// @koseelg (Twitter)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>Klikk på ikoner<br>for hjelp &<br>bruk av info</b>",
|
||||
"server" => "server",
|
||||
"Server name, OS..." => "Server navn, OS & IP:",
|
||||
"Root" => "Root:",
|
||||
"ICEcoder root" => "ICEcoder root:",
|
||||
"PHP version" => "PHP versjon:",
|
||||
"Date & time" => "Dato & tid:",
|
||||
"your device" => "din enhet",
|
||||
"Browser" => "Nettleser:",
|
||||
"Your IP" => "Din IP:",
|
||||
"files" => "filer",
|
||||
"Last 10 files..." => "Siste 10 åpne filer:",
|
||||
"none" => "[none]",
|
||||
"test suite" => "test suite",
|
||||
"Run unit tests" => "Kjør unit tests",
|
||||
"dev mode" => "utvikler modus",
|
||||
"Status" => "Status",
|
||||
"Using" => "Brukes",
|
||||
"You can switch..." => "Du kan slå utvikler modus på/av i lib/config__settings.php",
|
||||
"results" => "resultater"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "Steng",
|
||||
"Refresh" => "Last igjen",
|
||||
"ROOT" => "[ROOT]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "UPDATE INFO",
|
||||
"now available" => "Nå tilgjengelig",
|
||||
"Your version is" => "Din versjon er",
|
||||
"Update now" => "Oppdater nå",
|
||||
"You have some..." => "Du har noe ulagrede endringer",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "arbeider",
|
||||
"Color picker" => "Fargevelger",
|
||||
"New File" => "Ny Fil",
|
||||
"New Folder" => "Ny Mappe",
|
||||
"Upload File(s)" => "Last opp Fil(er)",
|
||||
"Paste" => "Lim inn",
|
||||
"Open" => "Åpne",
|
||||
"Copy" => "Kopier",
|
||||
"Duplicate" => "Duplikat",
|
||||
"Delete" => "Slett",
|
||||
"Rename" => "Gi annet navn",
|
||||
"View Webpage" => "Vis Webside",
|
||||
"Download" => "Last ned",
|
||||
"Properties" => "Egenskaper",
|
||||
"File" => "Fil",
|
||||
"Edit" => "Redigere",
|
||||
"Remote" => "Ekstern",
|
||||
"Help" => "Hjelp",
|
||||
"Save" => "Lagre",
|
||||
"Save As" => "Lagre Som",
|
||||
"Live Preview" => "Direkte Forhåndsvisning",
|
||||
"Upload" => "Last opp",
|
||||
"Zip" => "Zip",
|
||||
"Print" => "Skriv ut",
|
||||
"Fullscreen toggle" => "Fullskjerm svitsj",
|
||||
"Logout" => "Loggut",
|
||||
"Undo" => "Angre",
|
||||
"Redo" => "Gjenta",
|
||||
"Indent more" => "Større innrykk",
|
||||
"Indent less" => "Mindre innrykk",
|
||||
"Autocomplete" => "Autokomplettere",
|
||||
"Comment/Uncomment" => "Kommentar/Fjern Kommentar",
|
||||
"Jump to Definition" => "Hopp til Definisjon",
|
||||
"Manual" => "Manual",
|
||||
"Shortcuts" => "Snarveier",
|
||||
"Settings" => "Innstillinger",
|
||||
"Search for selected" => "Søk for utvalgte",
|
||||
"website" => "webside",
|
||||
"Close all tabs" => "Lukk alle faner",
|
||||
"Alphabetize tabs" => "Ordne faner alfabetisk",
|
||||
"Find" => "Finn",
|
||||
"in" => "i",
|
||||
"and" => "og",
|
||||
"replace" => "erstatt",
|
||||
"replace all" => "erstatt alt",
|
||||
"this document" => "dette dokumentet",
|
||||
"open documents" => "åpne dokumenter",
|
||||
"all files" => "alle filer",
|
||||
"all filenames" => "alle filenavn",
|
||||
"Turn on/off..." => "Svitsj på/av kode assistenten",
|
||||
"Code Assist" => "Kode Assistenten",
|
||||
"Go to Line" => "Gå til Linje",
|
||||
"View" => "Vis",
|
||||
"Bug reporting not active" => "Bug rapportering ikke aktiv"
|
||||
),
|
||||
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "Funnet i:"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "Beklager",
|
||||
"does not seem..." => "synes ikke å eksistere på serveren",
|
||||
"Sorry, could not..." => "Beklager, kunne ikke få innholdet i",
|
||||
"Sorry, cannot create..." => "Beklager, kan ikke opprette mappe på",
|
||||
"Sorry, cannot copy" => "Beklager, kan ikke kopiere",
|
||||
"into" => "inn",
|
||||
"Uploaded file(s) OK" => "Opplastete fil(er) OK",
|
||||
"Sorry, cannot upload" => "Beklager, kan ikke laste opp",
|
||||
"Sorry, cannot upload..." => "Beklager, kan ikke laste opp i demo-modus",
|
||||
"Sorry, cannot rename" => "Beklager, kan ikke endre navn",
|
||||
"Maybe public write..." => "Kanskje det trengs offentlige skriverettigheter på denne, eller overordnede mappen?",
|
||||
"Sorry, cannot move" => "Beklager, kan ikke flytte",
|
||||
"Sorry, cannot save" => "Beklager, kan ikke lagre",
|
||||
"Sorry, cannot replace..." => "Beklager, kan ikke erstatte tekst i",
|
||||
"Sorry, cannot change..." => "Beklager, kan ikke endre tillatelser på",
|
||||
"Sorry, cannot delete..." => "Beklager, kan ikke slette rotnivå",
|
||||
"Sorry, cannot delete" => "Beklager, kan ikke slette",
|
||||
"Sorry, this file..." => "Beklager, denne filen er endret, kan ikke lagre",
|
||||
"Reload this file..." => "Skal denne filen lastes igjen og kopieres denne versjon til et nytt dokument?",
|
||||
"There was a..." => "Dette var en teknisk hikke, sannsynligvis var noe ikke helt klar. Så ICEcoder laster sin kontrollfil på nytt.",
|
||||
"displayed at" => "vises på",
|
||||
"Enter filename to..." => "Skriv inn filnavnet for å lagre på",
|
||||
"That file exists..." => "Denne filen eksisterer allerede, skriv over?",
|
||||
"Saving" => "Lagring"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "Det er ingen forskjeller mellom det lokale og GitHub lagringssted. Gå tilbake til vanlig modus?",
|
||||
"Sorry, there was..." => "Beklager, det var en feil, kode:",
|
||||
"Your local folder..." => "Din lokale mappe er tom, ønsker du å klone"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Beklager, kan ikke opprette mappe på",
|
||||
"Cannot update config..." => "Kan ikke oppdatere konfigurasjonsfilen. Vennligst sett offentlige skriverettigheter",
|
||||
"and try again" => "og prøv igjen",
|
||||
"saving github paths" => "lagre GitHub stier...",
|
||||
"github paths" => "github stier",
|
||||
"Choose existing path" => "Velg eksisterende sti",
|
||||
"Local path" => "Lokal sti",
|
||||
"Remote GitHub path" => "Ekstern GitHub sti",
|
||||
"Choose" => "Velg",
|
||||
"Set local and..." => "Sett lokal og ekstern sti til tomt, for å fjerne",
|
||||
"Update" => "Oppdater",
|
||||
"Add new path" => "Legg til ny sti",
|
||||
"Add" => "Legg til",
|
||||
"Usage Info" => "Bruksinfo:",
|
||||
"Enter relative local..." => "Oppgi relative lokale stier (f.e. /server/myfiles) og absolutte GitHub stier (f.e. https://github.com/user/repo eller https://github.com/user/repo/tree/branch for grener), som eksemplene. Med dette har du etablert kildestier på begge steder, som et par.",
|
||||
"You can then..." => "Du kan deretter velge en stipar og dette blir da den nye rot stien i ICEcoder.",
|
||||
"The file manager..." => "Filbehandleren viser deretter et nytt GitHub-ikon, som du kan klikke på, for å utføre en sjekk og vise forskjell mellom de 2 kildene. Disse forskjellene kan da være påkrevd, og flyttes til den eksterne stien på GitHub eller klones til din lokale sti, for å synkronisere filene dine.",
|
||||
"If you want..." => "Hvis du ønsker å velge en annen root sti, kan dette gjøres i skjermbildet Innstillinger."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Beklager, det ser ikke ut til å ha lastet inn OpenSSL på PHP instans, så https er ikke tilgjengelig. Dette er nødvendig for GitHub dataoverføring, du kan endre php.ini innstillingene, start serveren på nytt og prøv igjen"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Bad CSRF token. Vennligst rapporter feilinfoen på https://github.com/mattpass/ICEcoder slik at det kan fikses."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "snarveier",
|
||||
"Within document" => "Innenfor dokument",
|
||||
"On Tabs" => "På faner",
|
||||
"Within file manager" => "Innenfor filbehandler",
|
||||
"Anywhere" => "Hvor som helst",
|
||||
"Space" => "Mellomrom",
|
||||
"Click" => "Klikk",
|
||||
"or" => "eller",
|
||||
"Left click" => "Venstre klikk",
|
||||
"Middle click" => "Middel klikk",
|
||||
"Double click tap..." => "Dobbel klikk / tap (mobil)",
|
||||
"Right click" => "Høyre klikk",
|
||||
"Middle scrollwheel" => "Middel rullehjul",
|
||||
"Drag" => "Dra",
|
||||
"Autocomplete add snippet" => "Autofullfør/legg til kodebiten",
|
||||
"Multiple select" => "Flere valg",
|
||||
"Move line up" => "Flytt linje opp",
|
||||
"Move line down" => "Flytt linje ned",
|
||||
"Duplicate lines" => "Dupliser linje(r)",
|
||||
"Remove lines" => "Slett linje(r)",
|
||||
"Insert line before" => "Sett inn linje før",
|
||||
"Insert line after" => "Sett inn linje etter",
|
||||
"Search for selected" => "Søk etter valgt",
|
||||
"Jump to definition" => "Hopp til definisjon/hopp tilbake",
|
||||
"Comment uncomment" => "Kommentar/fjern kommentar",
|
||||
"Insert tab indent" => "Sett inn innrykk/valgt innrykk",
|
||||
"Wrap with div" => "Wrap med <div>",
|
||||
"Wrap with span" => "Wrap med <span>",
|
||||
"Wrap unwrap p" => "Wrap/uwrap med <p>",
|
||||
"Wrap unwrap a" => "Wrap/uwrap med <a>",
|
||||
"Wrap unwrap b" => "Wrap/uwrap med <b>",
|
||||
"Wrap unwrap i" => "Wrap/uwrap med <i>",
|
||||
"Wrap unwrap strong" => "Wrap/uwrap med <strong>",
|
||||
"Wrap unwrap em" => "Wrap/uwrap med <em>",
|
||||
"Wrap unwrap li" => "Wrap/uwrap med <li>",
|
||||
"Wrap unwrap h1..." => "Wrap/uwrap med <h1> - <h3>",
|
||||
"End line with..." => "Avslutt linje med <br>",
|
||||
"Close tab" => "Lukk fane",
|
||||
"Select file folder" => "Velg fil/mappe",
|
||||
"Open file" => "Åpne fil",
|
||||
"Range select" => "Velg område",
|
||||
"Options for selected" => "Egenskaper for valgt",
|
||||
"Delete selected" => "Slett valgt",
|
||||
"Next previous tab" => "Neste/forige fane",
|
||||
"Next tab" => "Neste fane",
|
||||
"Previous tab" => "Forige fane",
|
||||
"New tab" => "Ny fane",
|
||||
"Close current tab" => "Lukk gjeldende fane",
|
||||
"Open file prompt" => "Åpne fil prompt",
|
||||
"Find" => "Finn",
|
||||
"Focus on Go..." => "Fokus på Gå til linje inndata",
|
||||
"Save" => "Lagre",
|
||||
"Save as" => "Lagre som...",
|
||||
"View webpage" => "Vis webside",
|
||||
"Contract expand file..." => "Trekk sammen/utvid filbehandler",
|
||||
"Fold unfold current..." => "Brett/utfold gjeldende linje",
|
||||
"Refocus on document" => "Refokusere på dokument",
|
||||
"Cancel tasks" => "Avbryt oppgaver"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "Ingen tekst valgt til å søke på",
|
||||
"Creating Folder" => "Lage mappe",
|
||||
"Sorry you can..." => "Beklager, du kan bare ha 100 filer åpne samtidig!",
|
||||
"Opening File" => "Åpner Fil",
|
||||
"Enter relative file..." => "Oppgi den relative filstien (med prefiks /) eller ekstern URL",
|
||||
"Getting" => "Får",
|
||||
"Please enter the..." => "Skriv inn det nye navnet på",
|
||||
"Renaming to" => "Endre navn til",
|
||||
"Moving to" => "Flytt til",
|
||||
"Deleting File" => "Slett Fil",
|
||||
"Pasting File" => "Lim inn Fil",
|
||||
"Sorry cannot paste..." => "Beklager, kan ikke lime inn en hel rot mappe",
|
||||
"Nothing to paste..." => "Ingenting å lime inn, kopiere en fil/mappe først!",
|
||||
"Replacing text in" => "Erstatte tekst i",
|
||||
"Cancelled tasks" => "Kansellerte oppgaver",
|
||||
"Open previous files" => "Åpne siste filer?",
|
||||
"Please enter your..." => "Skriv inn GitHub token (enten personlig tilgang token eller kunde/hemmelig par token). Se verktøytips ved siden av Github Auth Token på Hjelp-skjermbildet > Innstillinger for mer info",
|
||||
"This will compare..." => "Det vil sammenlignes og vise en forskjell mellom din lokale mappe og lagringsstedet. OK?",
|
||||
"Please note for..." => "Vennligst merk: for at oppdatering skal fungere skikkelig, må du ha skrive/slette tilgang til alle ICEcoder kataloger og filer. Hvis du trenger å gjenopprette denne versjonen av ICEcoder av en eller annen grunn, vil du finne den i /tmp mappen. Klikk OK for å fortsette med en auto-oppdatering eller avbryt for å besøke ICEcoder området slik at du kan ta tak i zip-filen og oppdatere manuelt.",
|
||||
"You can start..." => "Du kan starte feilrapportering i Hjelp > Innstillinger",
|
||||
"Error cannot find..." => "Feil: kan ikke finne/få tilgang til feil filstier",
|
||||
"No new errors..." => "Ingen feil funnet",
|
||||
"You have made..." => "Du har gjort endringer. Er du sikker på, at du vil lukke uten å lagre?",
|
||||
"Close all tabs" => "Lukk alle faner?"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "sett passord",
|
||||
"login" => "logginn",
|
||||
"To disable registration..." => "Hvis du vil deaktivere registreringsmodus, åpne innstillingsmenyen eller åpne lib/config ___ settings.php og endre/aktiver Påmelding til 'false', deretter laste siden om igjen",
|
||||
"Registration mode enabled" => "Registreringsmodus aktivert",
|
||||
"auto-check for updates" => "auto-sjekk for oppdateringer",
|
||||
"To put into..." => "Å sette til flerbrukermodus, åpne innstillingsmenyen eller åpne lib/config ___ settings.php og endre flerbruker til 'true', deretter laste siden om igjen",
|
||||
"multi-user" => "flerbruker"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "endre navn på alle",
|
||||
"replace all" => "erstatte alle",
|
||||
"document" => "dokument",
|
||||
"Found" => "Funnet",
|
||||
"times" => "ganger",
|
||||
"replace" => "erstatte",
|
||||
"file folder" => "fil/mappe",
|
||||
"rename to" => "endre navn til",
|
||||
"rename" => "endre navn",
|
||||
"file" => "fil",
|
||||
"No matches found" => "Ingen treff",
|
||||
"selected" => "valgt",
|
||||
"found in" => "funnet i",
|
||||
"Replaced" => "Erstattet"
|
||||
),
|
||||
|
||||
"plugins-manager" =>
|
||||
array(
|
||||
"ICEcoder needs to..." => "ICEcoder må startes om igjen, for å gjøre programtillegget kjørbar. Start om igjen nå?",
|
||||
"saving plugins" => "lagre programtillegg...",
|
||||
"Cannot update config..." => "Kan ikke oppdatere konfigurasjonsfilen. Vennligst sett offentlige skriverettigheter",
|
||||
"and try again" => "og prøv igjen",
|
||||
"couldnt delete dir" => "kan ikke slette mappe",
|
||||
"couldnt delete file" => "kan ikke slette fil",
|
||||
"plugins" => "programtillegg",
|
||||
"Guide to writing..." => "Guide til skriving av programtillegg",
|
||||
"Manage Installed" => "Administrer installerte",
|
||||
"URL" => "URL",
|
||||
"Target" => "Mål",
|
||||
"Timer" => "Tidsur",
|
||||
"Update" => "Oppdater",
|
||||
"Install" => "Installer",
|
||||
"Uninstall" => "Avinstaller",
|
||||
"Reload after install..." => "Omstart etter installasjon nødvendig"
|
||||
),
|
||||
|
||||
"properties" =>
|
||||
array(
|
||||
"properties" => "egenskaper",
|
||||
"Size" => "Størrelse",
|
||||
"Modified" => "Endret",
|
||||
"Last access" => "Siste tilgang",
|
||||
"Type" => "Type",
|
||||
"Readable Writeable" => "Lesbar/Skrivbar",
|
||||
"Relative path" => "Relativ sti",
|
||||
"Absolute path" => "Absolute sti",
|
||||
"Contains" => "Inneholder",
|
||||
"Permissions" => "Tillatelser",
|
||||
"Owner" => "Eier",
|
||||
"Group" => "Gruppe",
|
||||
"Public" => "Offentlig",
|
||||
"Read" => "Lese",
|
||||
"Write" => "Skrive",
|
||||
"Execute" => "Kjøre",
|
||||
"Change to" => "Endre til",
|
||||
"update" => "oppdatere"
|
||||
),
|
||||
|
||||
"settings-common" =>
|
||||
array(
|
||||
"Your document does..." => "Dokumentet ser ikke ut til å være i UTF-8 koding, derfor har det blitt omgjort"
|
||||
),
|
||||
|
||||
"settings-save-current-files" =>
|
||||
array(
|
||||
"Cannot update config..." => "Kan ikke oppdatere konfigurasjonsfilen. Vennligst sett offentlige skriverettigheter",
|
||||
"and try again" => "og prøv igjen"
|
||||
),
|
||||
|
||||
"settings-screen" =>
|
||||
array(
|
||||
"settings" => "innstillinger",
|
||||
"version" => "versjon",
|
||||
"website" => "webside",
|
||||
"git" => "git",
|
||||
"codemirror dir" => "codemirror mappe",
|
||||
"codemirror version" => "codemirror versjon",
|
||||
"file manager root" => "filbehandler root",
|
||||
"Free to use..." => "Gratis å bruke den til eget formål, kommersielle eller ikke, bare gi meg beskjed om eventuelle kule bruk eller tilpasninger. :) <br>Ingen garanti eller erstatningsansvar aksepteres for noe som helst, det er ditt eget ansvar for all bruk.<br>Mange fantastiske mennesker og bedrifter har bidratt til å bygge ICEcoder og det er for mange å takke her. Vennligst se hele listen på",
|
||||
"functionality" => "funksjonalitet",
|
||||
"check for updates..." => "se etter oppdateringer ved start",
|
||||
"auto open last..." => "åpne automatisk siste filer ved innlogging",
|
||||
"when finding in..." => "når funnet blant filer, utelukke",
|
||||
"assisting" => "assistere",
|
||||
"code assist" => "code assistent",
|
||||
"visible tabs" => "synlige faner",
|
||||
"locked nav" => "låst navi",
|
||||
"tag wrapper command" => "tag wrapper kommando",
|
||||
"auto-complete on" => "autokompletering på",
|
||||
"security" => "sikkerhet",
|
||||
"new password" => "nytt passord",
|
||||
"8 chars min" => "min. 8 tegn",
|
||||
"confirm password" => "bekreft passord",
|
||||
"banned files/folders" => "forbudte filer/mapper",
|
||||
"banned paths" => "forbudte stier",
|
||||
"ip addresses" => "ip adresser",
|
||||
"Slash prefixed comma..." => "Slash som prefiks, komma som skille",
|
||||
"Comma delimited" => "Skilled med komma",
|
||||
"style" => "stil",
|
||||
"theme" => "tema",
|
||||
"line wrapping" => "linjebryting",
|
||||
"indent type" => "innrykk type",
|
||||
"indent size" => "innrykk størr.",
|
||||
"font size" => "skrift størr.",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "layout",
|
||||
"plugin panel aligned" => "programtilleggspanel justert",
|
||||
"file manager" => "filbehandler",
|
||||
"root" => "root",
|
||||
"Slash prefixed" => "Slash prefiks",
|
||||
"bug reporting" => "feil rapportering",
|
||||
"check in files" => "sjekke blant filer",
|
||||
"every" => "hver",
|
||||
"secs getting last" => "sek., får siste",
|
||||
"lines" => "linjer",
|
||||
"multi-user" => "flerbruker",
|
||||
"Make sure you..." => "Pass på, at du ikke stenger deg ut selv",
|
||||
"Registration" => "Registrering",
|
||||
"auth token" => "auth token",
|
||||
"Required to get..." => "Nødvendig for å skille, bestemme ditt lagringssted på GitHub lageret etc. Hvis du ikke har en, kan du bruke en:".PHP_EOL.PHP_EOL.
|
||||
"- personal access token (https://help.github.com/articles/creating-an-access-token-for-command-line-use), eller".PHP_EOL.
|
||||
"- full client/secret pair token (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
|
||||
"Det anbefales ikke, at du setter token din her midlertidig, og vær sikre på å oppgi den, når du blir bedt av ICEcoder, som vil holde den i økten sin.".PHP_EOL.PHP_EOL.
|
||||
"Men hvis du jobber i et trygt og sikkert miljø, er det mer effektivt å sette den her.",
|
||||
"Sorry cannot commit..." => "Beklager, kan ikke bekrefte innstillinger i demo-modus",
|
||||
"update" => "oppdatere"
|
||||
),
|
||||
|
||||
"settings-update" =>
|
||||
array(
|
||||
"Cannot update config..." => "Kan ikke oppdatere konfigurasjonsfilen. Vennligst sett offentlige skriverettigheter;",
|
||||
"and try again" => "og prøv igjen",
|
||||
"and press refresh" => "og trykk refresh"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "Oppdatering synes å være vellykket"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
|
||||
425
lang/persian.php
Normal file
@@ -0,0 +1,425 @@
|
||||
<?php
|
||||
// Persian language translation
|
||||
// by: @voltan (GitHub)
|
||||
// @azizabadi_ (Twitter)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>بر روی آیکن ها کلیک کنید<br>برای راهنمایی &<br>اطلاعات استفاده</b>",
|
||||
"server" => "سرور",
|
||||
"Server name, OS..." => "نام سرور ، سیستم عامل و آی پی :",
|
||||
"Root" => "روت:",
|
||||
"ICEcoder root" => "ICEcoder روت :",
|
||||
"PHP version" => "نسخه پی اچ پی:",
|
||||
"Date & time" => "زمان و تاریخ :",
|
||||
"your device" => "دستگاه شما",
|
||||
"Browser" => "مرورگر :",
|
||||
"Your IP" => "آی پی شما:",
|
||||
"files" => "فایل ها",
|
||||
"Last 10 files..." => "آخرین ۱۰ فایل باز شده",
|
||||
"none" => "[پوچ]",
|
||||
"test suite" => "تست سویت",
|
||||
"Run unit tests" => "اجرای تست های واحد",
|
||||
"dev mode" => "حالت توسعه دهنده",
|
||||
"Status" => "وضعیت",
|
||||
"Using" => "استفاده",
|
||||
"You can switch..." => "شما میتوانید حالت توسعه را از lib/config__settings.php روشن یا خاموش کنید",
|
||||
"results" => "نتایج"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "قفل",
|
||||
"Refresh" => "بارگذاری مجدد",
|
||||
"ROOT" => "[ریشه]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "اطلاعات به روز رسانی",
|
||||
"now available" => "هم اکنون در دسترس است",
|
||||
"Your version is" => "نسخه مورد استفاده شما",
|
||||
"Update now" => "به روز کنید",
|
||||
"You have some..." => "شما چند تغییر ذخیره نشده دارید",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "در حال کار",
|
||||
"Color picker" => "اشاره گر رنگ",
|
||||
"New File" => "فایل جدید",
|
||||
"New Folder" => "پوشه جدید",
|
||||
"Upload File(s)" => "بارگذاری فایل",
|
||||
"Paste" => "چسباندن",
|
||||
"Open" => "باز کردن",
|
||||
"Copy" => "کپی کردن",
|
||||
"Duplicate" => "تهیه نسخه دوم",
|
||||
"Delete" => "حذف",
|
||||
"Rename" => "تغیر نام",
|
||||
"View Webpage" => "نمایش وب سایت",
|
||||
"Download" => "دریافت",
|
||||
"Properties" => "ویژگی ها",
|
||||
"File" => "فایل",
|
||||
"Edit" => "ویرایش",
|
||||
"Remote" => "کنترل از راه دور",
|
||||
"Help" => "کمک",
|
||||
"Save" => "ذخیره",
|
||||
"Save As" => "ذخیره به عنوان",
|
||||
"Live Preview" => "پیش نمایش زنده",
|
||||
"Upload" => "بارگذاری",
|
||||
"Zip" => "زیپ",
|
||||
"Print" => "چاپ",
|
||||
"Fullscreen toggle" => "نمایش تمام صفحه",
|
||||
"Logout" => "خروج",
|
||||
"Undo" => "برگشت",
|
||||
"Redo" => "ازنو",
|
||||
"Indent more" => "کم کردن فاصله",
|
||||
"Indent less" => "زیاد کردن فاصله",
|
||||
"Autocomplete" => "تکمیل خودکار",
|
||||
"Comment/Uncomment" => "نظر/ضد نظر",
|
||||
"Jump to Definition" => "انتقال به تعریف",
|
||||
"Manual" => "دستی",
|
||||
"Shortcuts" => "کلید های میانبر",
|
||||
"Settings" => "تنظیمات",
|
||||
"Search for selected" => "جستجو برای انتخاب شده ها",
|
||||
"website" => "وب سایت",
|
||||
"Close all tabs" => "بستن همه پنجره ها",
|
||||
"Alphabetize tabs" => "مرتب سازی پنجره ها بر اساس حروف الفبا",
|
||||
// "Find" => "یافتن",
|
||||
// "in" => "در",
|
||||
// "and" => "و",
|
||||
// "replace" => "جایگزین کردن",
|
||||
// "replace all" => "جایگزین کردن همه",
|
||||
// "this document" => "این سند",
|
||||
// "open documents" => "سند های باز",
|
||||
// "all files" => "همه فایل ها",
|
||||
// "all filenames" => "همه نام فایل ها",
|
||||
"Turn on/off..." => "روشن / خاموش کردن کد کمد",
|
||||
"Code Assist" => "کد کمک",
|
||||
"Go to Line" => "برو به خط",
|
||||
"View" => "نمایش",
|
||||
"Bug reporting not active" => "گزارش اشکال فعال نیست"
|
||||
),
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "یافتن در :"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "متاسفیم",
|
||||
"does not seem..." => "به نظر می رسد بر روی سرور موجود نیست",
|
||||
"Sorry, could not..." => "متاسفانه نمی توانیم اطلاعات را دریافت کنیم",
|
||||
"Sorry, cannot create..." => "متاسفانه نمی توانیم یک شاخه در مسیر زیر ایجاد کنیم",
|
||||
"Sorry, cannot copy" => "متاسفانه نمی توانیم کپی کنیم",
|
||||
"into" => "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..." => "متاسفانه نمی توانیم دسترسی ریشه را تغییر دهیم",
|
||||
"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..." => "تغییراتی بین مخزن محلی و مخزن گیت وجود دارد ، به حالت معمول برگردد؟",
|
||||
"Sorry, there was..." => "متاسفانه خطای روی داده است . کد خطا : ",
|
||||
"Your local folder..." => "شاخه محلی شما خالی است ، آیا میخواهید تکثیر کنید ؟"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "متاسفانه نمیتوانیم یک شاخه بسازیم در :",
|
||||
"Cannot update config..." => "متاسفانه نمیتوان فایل تنظیمات را به روز کرد. لطفا دسترسی نوشتن را اضافه کنید به",
|
||||
"and try again" => "و مجددا تلاش نمایید",
|
||||
"saving github paths" => "ذخیره مسیر های گیت هاب ...",
|
||||
"github paths" => "مسیر های گیت هاب",
|
||||
"Choose existing path" => "انتخاب یک مسیر موجود",
|
||||
"Local path" => "مسیر محلی",
|
||||
"Remote GitHub path" => "مسیر ریموت گیت هاب",
|
||||
"Choose" => "انتخاب",
|
||||
"Set local and..." => "برای حذف مسیر محلی و ریموت ، آنها را به صورت خالی تنظیم کرده و ذخیره کنید",
|
||||
"Update" => "به روز رسانی",
|
||||
"Add new path" => "اضافه کردن مسیر جدید",
|
||||
"Add" => "اضافه کردن",
|
||||
"Usage Info" => "اطلاعات مورد استفاده :",
|
||||
"Enter relative local..." => "Enter relative local paths (eg /server/myfiles) and absolute GitHub paths (eg https://github.com/user/repo or https://github.com/user/repo/tree/branch for branches), as per the examples. With this done you have established the source paths at both locations, as a pair.",
|
||||
"You can then..." => "شما میتوانید یک جفت مسیر انتخاب کنید و مسیر جدید ریشه خود را در ICEcoder وارد کنید.",
|
||||
"The file manager..." => "The file manager then displays a new GitHub icon, which you can click on to perform and show a diff check between the 2 sources. These diffs can then be committed and pushed to the remote path at GitHub or cloned to your local path, to sync your files.",
|
||||
"If you want..." => "اگر میخواهید یک مسیر ریشه دیگر تنظیم کنید ، به صفحه تنظیمات بروید."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "متاسفانه امکان استفاده از OpenSSL در تنظیمات پی اچ پی شما وجود ندارد, بنابر این https در دسترس نیست. این گزینه برای انتقال فایل با گیت هاب لازم است, لطفا تنظیمات php.ini خود را به روز کنید, سرور خود را مجددا راه اندازی کنید و سپس امتحان کنید"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "توکن CSRF اشتباه. لطفا خطا را در 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" => "وارد کردن تب / انتخاب شده داخل است",
|
||||
"Wrap with div" => "قرار دادن با <div>",
|
||||
"Wrap with span" => "قرار دادن با <span>",
|
||||
"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" => "انتخاب فایل / پوشه",
|
||||
"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" => "لغو تسک"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "هیچ متنی برای جستجو انتخاب نشده است",
|
||||
"Creating Folder" => "در حال ساخت پوشه",
|
||||
"Sorry you can..." => "متاسفانه ، شما می توانید حداکثر ۱۰۰ فایل را هم زمان باز کنید !",
|
||||
"Opening File" => "در حال باز کردن فایل",
|
||||
"Enter relative file..." => "قراردادن مسیر فایل مشابه ( ابتدا با / ) یا لینک ریموت",
|
||||
"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..." => "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..." => "این گزینه تفاوت بین فایل محلی شما و تغییرات سرور را نمایش می دهد. مورد تایید است؟",
|
||||
"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..." => "شما می توانید ارسال خطا را از منوی کمک رسانی > تنظیمات انجام دهید",
|
||||
"Error cannot find..." => "خطا : نمی توانید به فایل / مسیر فایل های خطا دسترسی پیدا کنید.",
|
||||
"No new errors..." => "هیچ خطای جدیدی پیدا نشد",
|
||||
"You have made..." => "شما تغییراتی اعمال کرده اید. آیا اطمینان دارید که میخواهید بدون ذخیره کردن فایل را ببندید؟",
|
||||
"Close all tabs" => "بستن همه تب ها؟"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "تنظیم واژه رمز",
|
||||
"login" => "ورود",
|
||||
"To disable registration..." => "برای غیر فعال کردن حالت ثبت نام ، منوی تنظیمات را باز کنید و یا فایل lib/config___settings.php را باز کنید و گزینه enableRegistration را به false تغییر دهید. سپس این صفحه را بارگذاری مجدد نمایید",
|
||||
"Registration mode enabled" => "حالت ثبت نام فعال است",
|
||||
"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" => "جایگزین شود"
|
||||
),
|
||||
|
||||
"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" => "آدرس",
|
||||
"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" => "گیت",
|
||||
"codemirror dir" => "مسیر کد آینه",
|
||||
"codemirror version" => "نسخه کد آینه",
|
||||
"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. :)<br><br>No warranty or liability accepted for anything, all responsibility of use is your own.<br><br>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" => "تابع بندی",
|
||||
"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" => "حداقل ۸ کارکتر",
|
||||
"confirm password" => "تایید پسورد",
|
||||
"banned files/folders" => "فایل ها / پوشه های مسدود شده",
|
||||
"banned paths" => "مسیر های مسدود شده",
|
||||
"ip addresses" => "آدرس آی پی",
|
||||
"Slash prefixed comma..." => "پیشوند اسلش, با کاما از هم جدا کنید",
|
||||
"Comma delimited" => "با کما جدا شوند",
|
||||
"style" => "استایل",
|
||||
"theme" => "قالب",
|
||||
"line wrapping" => "وارپینگ خط",
|
||||
"indent type" => "نوع برجسته کردن",
|
||||
"indent size" => "اندازه برجسته کردن",
|
||||
"font size" => "اندازه فونت",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "لایه",
|
||||
"plugin panel aligned" => "تراز پنل پلاگین",
|
||||
"file manager" => "مدیریت فایل",
|
||||
"root" => "ریشه",
|
||||
"Slash prefixed" => "پیشوند اسلش",
|
||||
"bug reporting" => "گزارش باگ",
|
||||
"check in files" => "فایل های چک این",
|
||||
"every" => "همه",
|
||||
"secs getting last" => "دریافت فهرست",
|
||||
"lines" => "خط",
|
||||
"multi-user" => "چند کاربره",
|
||||
"Make sure you..." => "مطمئن شوید خود را خاریج از اینجا قفل نکرده اید",
|
||||
"Registration" => "ثبت نام",
|
||||
"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..." => "متاسفانه نمی توان در حالت نمایشی تنظیمات را تغییر داد",
|
||||
"update" => "به روز کردن"
|
||||
),
|
||||
|
||||
"settings-update" =>
|
||||
array(
|
||||
"Cannot update config..." => "نمی توان فایل تنظیمات را به روز کرد ، لطفا دسترسی نوشتن را اعمال کنید در",
|
||||
"and try again" => "و مجدد تلاش کنید",
|
||||
"and press refresh" => "و صفحه را مجدد بارگذاری کنید"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "با موفقیت به روز شد"
|
||||
)
|
||||
);
|
||||
?>
|
||||
439
lang/portuguese-brazilian.php
Normal file
@@ -0,0 +1,439 @@
|
||||
<?php
|
||||
// Português do Brasil
|
||||
// by: @leonardoroese (GitHub)
|
||||
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>Ícones<br>para ajuda &<br>info. utilização</b>",
|
||||
"server" => "Servidor",
|
||||
"Server name, OS..." => "Nome do Servidor, OS & IP:",
|
||||
"Root" => "Raiz:",
|
||||
"ICEcoder root" => "ICEcoder raiz:",
|
||||
"PHP version" => "Versâo do PHP:",
|
||||
"Date & time" => "Data e Hora:",
|
||||
"your device" => "seu dispositivo",
|
||||
"Browser" => "Exibir:",
|
||||
"Your IP" => "Seu IP:",
|
||||
"files" => "arquivos",
|
||||
"Last 10 files..." => "ùltimos 10 arquivos abertos:",
|
||||
"none" => "[nenhum]",
|
||||
"test suite" => "suíte de teste",
|
||||
"Run unit tests" => "Executar testes unitários",
|
||||
"dev mode" => "modo desenv.",
|
||||
"Status" => "Status",
|
||||
"Using" => "Usando",
|
||||
"You can switch..." => "Você pode alterar modo desenv. on/off em lib/config__settings.php"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "Trava",
|
||||
"Refresh" => "Atualizar",
|
||||
"ROOT" => "[RAIZ]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "INFO ATUALIZAÇÃO",
|
||||
"now available" => "disponível agora",
|
||||
"Your version is" => "Sua versão é",
|
||||
"Update now" => "Atualizar já",
|
||||
"You have some..." => "Voce possui alterações não salvas",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "trabalhando",
|
||||
"Color picker" => "Color picker",
|
||||
"New File" => "Novo Arquivo",
|
||||
"New Folder" => "Nova Pasta",
|
||||
"Upload File(s)" => "Carregar arquivo(s)",
|
||||
"Paste" => "Colar",
|
||||
"Open" => "Abrir",
|
||||
"Copy" => "Copiar",
|
||||
"Duplicate" => "Duplicar",
|
||||
"Delete" => "Excluir",
|
||||
"Rename" => "Renomear",
|
||||
"View Webpage" => "Exibir Página Web",
|
||||
"Download" => "Download",
|
||||
"Properties" => "Propriedades",
|
||||
"File" => "Arquivo",
|
||||
"Remote" => "Remoto",
|
||||
"Edit" => "Editar",
|
||||
"Source" => "Fonte",
|
||||
"Help" => "Ajuda",
|
||||
"Save" => "Salvar",
|
||||
"Save As" => "Salvar Como",
|
||||
"Live Preview" => "Preview",
|
||||
"Upload" => "Upload",
|
||||
"Zip" => "Zip",
|
||||
"Print" => "Imprimir",
|
||||
"Fullscreen toggle" => "Exibir tela cheia",
|
||||
"Logout" => "Sair",
|
||||
"Undo" => "Desfazer",
|
||||
"Redo" => "Refazer",
|
||||
"Indent more" => "Indentar +",
|
||||
"Indent less" => "Indentar -",
|
||||
"Autocomplete" => "Autocompletar",
|
||||
"Comment/Uncomment" => "Comentar/Descomentar",
|
||||
"Jump to Definition" => "Ir para definição",
|
||||
"Manual" => "Manual",
|
||||
"Shortcuts" => "Atalhos",
|
||||
"Settings" => "Configurações",
|
||||
"Search for selected" => "Procurar por selecionado",
|
||||
"website" => "website",
|
||||
"Close all tabs" => "Fechar todas as abas",
|
||||
"Alphabetize tabs" => "Ordenar abas por nome",
|
||||
"Find" => "Procurar",
|
||||
"in" => "em",
|
||||
"and" => "e",
|
||||
"replace" => "substituir",
|
||||
"replace all" => "substituir tudo",
|
||||
"this document" => "este documento",
|
||||
"open documents" => "documentos abertos",
|
||||
"all files" => "todos os arquivos",
|
||||
"all filenames" => "todos nomes de arquivo",
|
||||
"Turn on/off..." => "Ligar/Desligar Assistente",
|
||||
"Code Assist" => "Assistente",
|
||||
"Go to Line" => "Ir para linha",
|
||||
"View" => "Exibir",
|
||||
"Bug reporting not active" => "Relatório de Bug desativado"
|
||||
),
|
||||
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "Encontrado em:"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "Desculpe",
|
||||
"does not seem..." => "Não encontrado no servidor",
|
||||
"Sorry, could not..." => "Desculpe, conteudo não encontrado para",
|
||||
"Sorry, cannot create..." => "Desculpe, não é possível criar pasta",
|
||||
"Sorry, cannot copy" => "Desculpe, não é possível copy",
|
||||
"into" => "into",
|
||||
"Uploaded file(s) OK" => "Arquivos carregados",
|
||||
"Sorry, cannot upload" => "Desculpe, não é possível carregar",
|
||||
"Sorry, cannot upload..." => "Desculpe, não é possível carregar lista no modo DEMO",
|
||||
"Sorry, cannot rename" => "Desculpe, não é possível renomear",
|
||||
"Maybe public write..." => "A pasta superior possui permissão de escrita?",
|
||||
"Sorry, cannot move" => "Desculpe, não é possível mover",
|
||||
"Sorry, cannot save" => "Desculpe, não é possível salvar",
|
||||
"Sorry, cannot replace..." => "Desculpe, não é possível substituir texto em",
|
||||
"Sorry, cannot change..." => "Desculpe, não é possível mudar permissões para",
|
||||
"Sorry, cannot delete..." => "Desculpe, não é possível excluir nível raiz",
|
||||
"Sorry, cannot delete" => "Desculpe, não é possível remover",
|
||||
"Sorry, this file..." => "Desculpe, este arquivo foi modificado, não é possível salvar",
|
||||
"Reload this file..." => "Recarregar e copiar sua versão?",
|
||||
"There was a..." => "Ocorreu algum problema. O ICEcoder recarregou o arquivo de controle novamente",
|
||||
"displayed at" => "exibido em",
|
||||
"Enter filename to..." => "Informe o nome do aquivo para salvar",
|
||||
"That file exists..." => "Este arquivo já existe, sobrescrever?",
|
||||
"Saving" => "Salvando"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "Não há diferenças entre loca/Github. Retornar para modo normal?",
|
||||
"Sorry, there was..." => "Desculpe, ocorreu um erro, código:",
|
||||
"Your local folder..." => "Sua pasta local está vazia, gostaria de clonar"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Desculpe, não foi possível criar em",
|
||||
"Cannot update config..." => "Não é possível atualizar config. Habilitar permissões públicas",
|
||||
"and try again" => "e tentar novamente",
|
||||
"saving github paths" => "salvando caminhos Github...",
|
||||
"github paths" => "caminhos Github",
|
||||
"Choose existing path" => "Escolha caminho existente",
|
||||
"Local path" => "Caminho local",
|
||||
"Remote GitHub path" => "Caminho remoto Github",
|
||||
"Choose" => "Selecione",
|
||||
"Set local and..." => "Alterar caminho local e remoto como vazio para excluír",
|
||||
"Update" => "Atualizar",
|
||||
"Add new path" => "Adicionar novo caminho",
|
||||
"Add" => "Adicionar",
|
||||
"Usage Info" => "Info. de utilização:",
|
||||
"Enter relative local..." => "Informe os caminhos relativos (ex.: /server/myfiles) e absolutos do GitHub (ex.: https://github.com/user/repo ou https://github.com/user/repo/tree/branch for branches).Com isso estabelece os caminho dos fontes em ambos locais, como pares.",
|
||||
"You can then..." => "Você pode então escolher um caminho par para ser a raiz do ICEcoder.",
|
||||
"The file manager..." => "O gerenciador de arquivo exibirá o ícone GitHub, você pode clicar para verificar a diferença entre arquivos.Essas diferenças podem ser efetivadas e enviadas ao diretório remoto do GitHub ou clonado para pasta local, para sincronizar seus arquivos.",
|
||||
"If you want..." => "Se quiser configurar novo caminho raiz, pode ser feito na tela de configurações."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Desculpe, o OpenSSL não foi encontrado, https indisponível. Isso é necessário para o GitHub transferir dados, verificar php.ini, reinicie o sistema e tente novamente"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Erro na chave CSRF. Reportar em https://github.com/mattpass/ICEcoder para ser corrigido."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "atalhos",
|
||||
"Within document" => "Neste documento",
|
||||
"On Tabs" => "Em abas",
|
||||
"Within file manager" => "No gerenciador de arquivos",
|
||||
"Anywhere" => "Qualquer Lugar",
|
||||
"Space" => "Espaço",
|
||||
"Click" => "Clique",
|
||||
"or" => "ou",
|
||||
"Left click" => "Clique esquerdo",
|
||||
"Middle click" => "Clique Meio",
|
||||
"Double click tap..." => "Clique duplo / toque (mobile)",
|
||||
"Right click" => "Clique direito",
|
||||
"Middle scrollwheel" => "Meio scroll",
|
||||
"Drag" => "Arrastar",
|
||||
"Autocomplete add snippet" => "Auto-completar / adicionar snippet",
|
||||
"Multiple select" => "Multipla seleção",
|
||||
"Move line up" => "Move linha acima",
|
||||
"Move line down" => "Move linha abaixo",
|
||||
"Duplicate lines" => "Duplicar linha(s)",
|
||||
"Remove lines" => "Remover linha(s)",
|
||||
"Insert line before" => "Inserir linha antes",
|
||||
"Insert line after" => "Inserir linha após",
|
||||
"Search for selected" => "Procurar selecionado",
|
||||
"Jump to definition" => "Ir para definição / voltar",
|
||||
"Comment uncomment" => "Commentar / descomentar",
|
||||
"Insert tab indent" => "Inserir aba / auto indent selected",
|
||||
"Insert more" => "Indentar +",
|
||||
"Insert less" => "Indentar -",
|
||||
"Wrap with div" => "Quabra com <div>",
|
||||
"Wrap with span" => "Quabra com <span>",
|
||||
"Wrap unwrap p" => "Quabra / desfaz com <p>",
|
||||
"Wrap unwrap a" => "Quabra / desfaz com <a>",
|
||||
"Wrap unwrap b" => "Quabra / desfaz com <b>",
|
||||
"Wrap unwrap i" => "Quabra / desfaz com <i>",
|
||||
"Wrap unwrap strong" => "Quabra / desfaz com <strong>",
|
||||
"Wrap unwrap em" => "Quabra / desfaz com <em>",
|
||||
"Wrap unwrap li" => "Quabra / desfaz com <li>",
|
||||
"Wrap unwrap h1..." => "Quabra / desfaz com <h1> - <h3>",
|
||||
"End line with..." => "Fim de linha com <br>",
|
||||
"Close tab" => "Fechar aba",
|
||||
"Select file folder" => "Selecionar arquivo / pasta",
|
||||
"Open file" => "Abrir arquivo",
|
||||
"Range select" => "Seleção",
|
||||
"Options for selected" => "Opções para seleção",
|
||||
"Delete selected" => "Excluir selecionado",
|
||||
"Next previous tab" => "Próxima aba / anterior",
|
||||
"Next tab" => "Próxima aba",
|
||||
"Previous tab" => "Aba anterior",
|
||||
"New tab" => "Nova aba",
|
||||
"Close current tab" => "Fechar aba atual",
|
||||
"Open file prompt" => "Abrir prompt de comando",
|
||||
"Find" => "Buscar",
|
||||
"Focus on Go..." => "Foco campo ir para linha",
|
||||
"Save" => "Salvar",
|
||||
"Save as" => "Salvar como...",
|
||||
"View webpage" => "Exibir página",
|
||||
"Contract expand file..." => "Contrair / expandir gerenciador de arquivos",
|
||||
"Fold unfold current..." => "Contrair / expandir linha atual",
|
||||
"Refocus on document" => "Foco no documento",
|
||||
"Cancel tasks" => "Cancelar tarefas"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "Sem texto selecionado para buscar",
|
||||
"all files" => "todos arquivos",
|
||||
"all filenames" => "todos nomes de arquivos",
|
||||
"selected files" => "arquivos selecionados",
|
||||
"selected filenames" => "nomes de arquivos selecionados",
|
||||
"Creating Folder" => "Criando pasta",
|
||||
"Sorry you can..." => "Deculpe, permitido abrir máx. 100 arquivos!",
|
||||
"Opening File" => "Abrindo arquivo",
|
||||
"Enter relative file..." => "Informe caminho relativo (prefixado por /) ou URL remota",
|
||||
"Getting" => "Selecionando",
|
||||
"Please enter the..." => "Informe novo nome para",
|
||||
"Renaming to" => "Renomeando para",
|
||||
"Moving to" => "Movendo para",
|
||||
"Deleting File" => "Excluindo arquivo",
|
||||
"Pasting File" => "Colando arquivo",
|
||||
"Sorry cannot paste..." => "Desculpe, não é possível colar em toda raiz",
|
||||
"Nothing to paste..." => "Nada para colar,copiar arquivo/pasta primeiro!",
|
||||
"and" => "e",
|
||||
"this document" => "este documento",
|
||||
"replace" => "substituir",
|
||||
"replace all" => "substituir tudo",
|
||||
"file" => "arquivo",
|
||||
"Replacing text in" => "Substituindo texto em",
|
||||
"Cancelled tasks" => "Tarefas canceladas",
|
||||
"Open previous files" => "Abrir arquivos anteriores?",
|
||||
"Please enter your..." => "Informe sua chave GitHub (chave pessoal ou par). Veja dica próximo à chave Github em Ajuda > Configurações para mais informações",
|
||||
"This will compare..." => "Esta ação irá comparar e exibir diferenças do seu repositório local. OK?",
|
||||
"Please note for..." => "Atenção: para atualizar corretamente, é necessário permissâo de escrita em todos os diretórios/arquivos do ICEcoder. \\n\\nSe por algum motivo necessite recuperar esta versão do ICEcoder, estará disponível na pasta /tmp.\\n\\nClique OK para prosseguir com a atualização, ou cancelar para visitar a página do ICEcoder na internet onde poderá baixar a atualização manualmente.",
|
||||
"You can start..." => "Voce pode reportar um bug em Ajuda > Configurações",
|
||||
"Error cannot find..." => "Erro: não é possível acessar caminho/arquivo de erros",
|
||||
"No new errors..." => "Nenhum erro encontrado",
|
||||
"You have made..." => "Voce fez alterações. Deseja realmente fechar sem salvar?",
|
||||
"Close all tabs" => "Fechar todas as abas?",
|
||||
"results" => "resultados"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "altera senha",
|
||||
"login" => "login",
|
||||
"To disable registration..." => "Para desabilitar modo registro, acesse menu/configurações ou em lib/config___settings.php altere enableRegistration para false e recarregue esta página",
|
||||
"Registration mode enabled" => "Modo registro habilitado",
|
||||
"auto-check for updates" => "verificar atualizações auto.",
|
||||
"To put into..." => "Para habilitar multi-usuários, acesse menu/configurações ou em lib/config___settings.php altere multiUser para true e recarregue esta página",
|
||||
"multi-user" => "multi-usuários"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "renomear tudo",
|
||||
"replace all" => "substituir tudo",
|
||||
"document" => "documento",
|
||||
"Found" => "Encontrado",
|
||||
"times" => "vezes",
|
||||
"replace" => "substituir",
|
||||
"file folder" => "arquivo/pasta",
|
||||
"rename to" => "renomear para",
|
||||
"rename" => "renomear",
|
||||
"file" => "arquivo",
|
||||
"No matches found" => "Nenhum resultado encontrado",
|
||||
"selected" => "selecionado",
|
||||
"found in" => "encontrado em",
|
||||
"Replaced" => "Substituído(s)"
|
||||
),
|
||||
|
||||
"plugins-manager" =>
|
||||
array(
|
||||
"ICEcoder needs to..." => "ICEcoder deve ser reiniciado para habilitar plugin. Deseja Reiniciar?",
|
||||
"saving plugins" => "salvando plugins...",
|
||||
"Cannot update config..." => "Não foi possível atualizar arquivo de configuração. Verifique permissões de escrita.",
|
||||
"and try again" => "e tente novamente",
|
||||
"couldnt delete dir" => "não foi possível excluir pasta",
|
||||
"couldnt delete file" => "não foi possível excluir arquivo",
|
||||
"plugins" => "plugins",
|
||||
"Guide to writing..." => "Guia para criar plugins",
|
||||
"Manage Installed" => "Gerenciar plugins",
|
||||
"URL" => "URL",
|
||||
"Target" => "Alvo",
|
||||
"Timer" => "Temporizador",
|
||||
"Update" => "Atualizar",
|
||||
"Install" => "Instalar",
|
||||
"Uninstall" => "Desinstalar",
|
||||
"Reload after install..." => "Atualização necessária após instalação"
|
||||
),
|
||||
|
||||
"properties" =>
|
||||
array(
|
||||
"properties" => "propriedades",
|
||||
"Size" => "Tamanho",
|
||||
"Modified" => "Modificado",
|
||||
"Last access" => "Último acesso",
|
||||
"Type" => "Tipo",
|
||||
"Readable Writeable" => "Leitura / Escrita",
|
||||
"Relative path" => "Caminho relativo",
|
||||
"Absolute path" => "Caminho absoluto",
|
||||
"Contains" => "Contem",
|
||||
"Permissions" => "Permissões",
|
||||
"Owner" => "Proprietário",
|
||||
"Group" => "Grupo",
|
||||
"Public" => "Público",
|
||||
"Read" => "Ler",
|
||||
"Write" => "Salvar",
|
||||
"Execute" => "Executar",
|
||||
"Change to" => "Alterar para",
|
||||
"update" => "atualizar"
|
||||
),
|
||||
|
||||
"settings-common" =>
|
||||
array(
|
||||
"Your document does..." => "Seu arquivo não está no formato UTF-8, deve ser convertido"
|
||||
),
|
||||
|
||||
"settings-save-current-files" =>
|
||||
array(
|
||||
"Cannot update config..." => "Não foi possível atualizar arquivo de configuração. Verifique permissões de acesso (públicas)",
|
||||
"and try again" => "e tente novamente"
|
||||
),
|
||||
|
||||
"settings-screen" =>
|
||||
array(
|
||||
"settings" => "configurações",
|
||||
"version" => "versão",
|
||||
"website" => "website",
|
||||
"git" => "git",
|
||||
"codemirror dir" => "pasta codemirror",
|
||||
"codemirror version" => "versão codemirror",
|
||||
"file manager root" => "Raiz gerenciador de arquivos",
|
||||
"Free to use..." => "Livre para utilização para seus propósitos, comercial ou não, mas aviseme sobre sua implementação se puder. :)<br><br>Sem garantias, Muitas empresas e pessoas fantásticas contribuiram para desenvolver o ICEcoder, há muito o que agradecermos aqui. Veja a lista completa aqui",
|
||||
"functionality" => "funcionalidade",
|
||||
"check for updates..." => "verificar atualizações ao iniciar",
|
||||
"auto open last..." => "carregar últimos arquvos abertos ao iniciar",
|
||||
"when finding in..." => "ao buscar arquivos, excluir",
|
||||
"assisting" => "assistindo",
|
||||
"code assist" => "Assist. de cód.",
|
||||
"visible tabs" => "Abas visíveis",
|
||||
"locked nav" => "Trava Nav.",
|
||||
"tag wrapper command" => "comando de quebra",
|
||||
"auto-complete on" => "hab. auto-completar",
|
||||
"security" => "segurança",
|
||||
"new password" => "nova senha",
|
||||
"8 chars min" => "mín. 8 carac.",
|
||||
"confirm password" => "confirmar senha",
|
||||
"banned files/folders" => "arquivos/pastas bloqueados",
|
||||
"banned paths" => "caminhos bloqueados",
|
||||
"ip addresses" => "endereços IP",
|
||||
"Slash prefixed comma..." => "Prefixo barra, separado por vígula",
|
||||
"Comma delimited" => "Separado por vírgula",
|
||||
"style" => "estilo",
|
||||
"theme" => "tema",
|
||||
"line wrapping" => "quebra de linha",
|
||||
"indent type" => "indent type",
|
||||
"indent size" => "indent size",
|
||||
"font size" => "tam. fonte",
|
||||
"auto indent" => "auto indent",
|
||||
"layout" => "layout",
|
||||
"plugin panel aligned" => "painel plugin alinhado",
|
||||
"file manager" => "gerenciador de arquivos",
|
||||
"root" => "raiz",
|
||||
"Slash prefixed" => "Prefixo barra",
|
||||
"bug reporting" => "reportar erro",
|
||||
"check in files" => "verificar em arquivos",
|
||||
"every" => "tudo",
|
||||
"secs getting last" => "segs, pegando últimos",
|
||||
"lines" => "linhas",
|
||||
"multi-user" => "multi-usuário",
|
||||
"Make sure you..." => "Cuidado para nâo travar seu usuário",
|
||||
"Registration" => "Cadastro",
|
||||
"auth token" => "Chave de Autenticação",
|
||||
"Required to get..." => "RNecessário para verificar diferenças, e efetivar alterações no GitHub. Se não tiver uma pode usar:".PHP_EOL.PHP_EOL.
|
||||
"- chave de acesso pessoal (https://help.github.com/articles/creating-an-access-token-for-command-line-use), or".PHP_EOL.
|
||||
"- cliente/par secreto (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
|
||||
"Não é recomendado configurar sua chave aqui, mas quando solicitado pelo ICEcoderpara mantes em sessão apenas.".PHP_EOL.PHP_EOL.
|
||||
"No entanto, se trabalhar em ambiente seguro, é melhor setar essa propriedade.",
|
||||
"Sorry cannot commit..." => "Desculpe, não é permitido efetivar atulização no modo DEMO",
|
||||
"update" => "atualizar"
|
||||
),
|
||||
|
||||
"settings-update" =>
|
||||
array(
|
||||
"Cannot update config..." => "Não foi possível atualizar arquivo de configuração. Verifique permissões de acesso (públicas)",
|
||||
"and try again" => "e tentar novamente",
|
||||
"and press refresh" => "e pressione atulizar"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "Atualização completada"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
436
lang/spanish.php
Normal file
@@ -0,0 +1,436 @@
|
||||
<?php
|
||||
// Spanish language translation
|
||||
// by: @unix4you2 (GitHub)
|
||||
|
||||
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &). Translations on right side.
|
||||
|
||||
$text = array(
|
||||
|
||||
// / [ROOT LEVEL]
|
||||
|
||||
"editor" =>
|
||||
array(
|
||||
"Click icons for..." => "<b>Clic en los iconos<br>para ayuda &<br>modo de uso</b>",
|
||||
"server" => "servidor",
|
||||
"Server name, OS..." => "Nombre del servidor, OS & IP:",
|
||||
"Root" => "Raiz:",
|
||||
"ICEcoder root" => "Raiz de ICEcoder:",
|
||||
"PHP version" => "Versión PHP:",
|
||||
"Date & time" => "Fecha y hora:",
|
||||
"your device" => "su dispositivo",
|
||||
"Browser" => "Navegador:",
|
||||
"Your IP" => "Su IP:",
|
||||
"files" => "archivos",
|
||||
"Last 10 files..." => "Ultimos 10 archivos abiertos:",
|
||||
"none" => "[ninguno]",
|
||||
"test suite" => "modo de pruebas",
|
||||
"Run unit tests" => "Ejecutar tests unitarios",
|
||||
"dev mode" => "modo desarrollo",
|
||||
"Status" => "Estado",
|
||||
"Using" => "Usando",
|
||||
"You can switch..." => "Usted puede cambiar el modo de desarrollo cambiando su valor on/off en lib/config__settings.php"
|
||||
|
||||
),
|
||||
|
||||
"files" =>
|
||||
array(
|
||||
"Lock" => "Bloquear",
|
||||
"Refresh" => "Actualizar",
|
||||
"ROOT" => "[RAIZ]"
|
||||
|
||||
),
|
||||
|
||||
"index" =>
|
||||
array(
|
||||
"UPDATE INFO" => "INFORMACION DE ACTUALIZACION",
|
||||
"now available" => "ahora disponible",
|
||||
"Your version is" => "Su versión es",
|
||||
"Update now" => "Actualizar ahora",
|
||||
"You have some..." => "Usted tiene cambios sin guardar",
|
||||
"Are you sure you want to close?" => "Are you sure you want to close?",
|
||||
"working" => "trabajando",
|
||||
"Color picker" => "Selector de color",
|
||||
"New File" => "Nuevo archivo",
|
||||
"New Folder" => "Nueva carpeta",
|
||||
"Upload File(s)" => "Cargar archivo(s)",
|
||||
"Paste" => "Pegar",
|
||||
"Open" => "Abrir",
|
||||
"Copy" => "Copiar",
|
||||
"Duplicate" => "Duplicar",
|
||||
"Delete" => "Eliminar",
|
||||
"Rename" => "Renombrar",
|
||||
"View Webpage" => "Ver página web",
|
||||
"Download" => "Descargar",
|
||||
"Properties" => "Propiedades",
|
||||
"File" => "Archivo",
|
||||
"Edit" => "Editar",
|
||||
"Source" => "Fuente",
|
||||
"Help" => "Ayuda",
|
||||
"Save" => "Guardar",
|
||||
"Save As" => "Guardar como",
|
||||
"Live Preview" => "Vista previa",
|
||||
"Upload" => "Cargar",
|
||||
"Zip" => "Comprimir",
|
||||
"Print" => "Imprimir",
|
||||
"Fullscreen toggle" => "Cambiar a pantalla completa",
|
||||
"Logout" => "Salir",
|
||||
"Undo" => "Deshacer",
|
||||
"Redo" => "Rehacer",
|
||||
"Indent more" => "Aumentar sangría",
|
||||
"Indent less" => "Disminuir sangría",
|
||||
"Autocomplete" => "Autocompletar",
|
||||
"Comment/Uncomment" => "Comentar/Descomentar",
|
||||
"Jump to Definition" => "Saltar a la definición",
|
||||
"Manual" => "Manual",
|
||||
"Shortcuts" => "Accesos directos",
|
||||
"Settings" => "Configuración",
|
||||
"Search for selected" => "Buscar por lo seleccionado",
|
||||
"website" => "sitio web",
|
||||
"Close all tabs" => "Cerrar todas las pestañas",
|
||||
"Alphabetize tabs" => "Ordenar pestañas",
|
||||
"Find" => "Buscar",
|
||||
"in" => "en",
|
||||
"and" => "y",
|
||||
"replace" => "reemplazar",
|
||||
"replace all" => "reemplazar todo",
|
||||
"this document" => "este documento",
|
||||
"open documents" => "abrir documentos",
|
||||
"all files" => "todos los archivos",
|
||||
"all filenames" => "todos los nombres de archivo",
|
||||
"Turn on/off..." => "Encender o apagar asistente de código",
|
||||
"Code Assist" => "Asistente de código",
|
||||
"Go to Line" => "Ir a la línea",
|
||||
"View" => "Ver",
|
||||
"Bug reporting not active" => "Reporte de Errores no activado"
|
||||
),
|
||||
|
||||
// /LIB
|
||||
|
||||
"bug-files-check" =>
|
||||
array(
|
||||
"Found in" => "Encontrado en:"
|
||||
),
|
||||
|
||||
"file-control" =>
|
||||
array(
|
||||
"Sorry" => "Lo siento",
|
||||
"does not seem..." => "parace no existir en el servidor",
|
||||
"Sorry, could not..." => "Lo siento, no puedo obtener el contenido de",
|
||||
"Sorry, cannot create..." => "Lo siento, no puedo crear carpeta en",
|
||||
"Sorry, cannot copy" => "Lo siento, no puedo copiar",
|
||||
"into" => "into",
|
||||
"Uploaded file(s) OK" => "Carga de archivo(s) OK",
|
||||
"Sorry, cannot upload" => "Lo siento, no se puede cargar",
|
||||
"Sorry, cannot upload..." => "Lo siento, no se puede cargar en modo demostración",
|
||||
"Sorry, cannot rename" => "Lo siento, no puedo renombrar",
|
||||
"Maybe public write..." => "Posiblemente sea necesario permisos publicos en esta carpeta o su carpeta padre?",
|
||||
"Sorry, cannot move" => "Lo siento, no puedo mover",
|
||||
"Sorry, cannot save" => "Lo siento, no puedo guardar",
|
||||
"Sorry, cannot replace..." => "Lo siento, no puedo reemplazar texto en",
|
||||
"Sorry, cannot change..." => "Lo siento, no puedo cambiar permisos sobre",
|
||||
"Sorry, cannot delete..." => "Lo siento, no puedo eliminar el nivel raiz",
|
||||
"Sorry, cannot delete" => "Lo siento, no puedo eliminar",
|
||||
"Sorry, this file..." => "Lo siento, este archivo ha cambiado, no puedo almacenar",
|
||||
"Reload this file..." => "Recargar este archivo y copiar su version en un panel diferente?",
|
||||
"There was a..." => "Hay un problema técnico, como algo que todavía parece no estar listo. ICEcoder volvió a cargar su archivo de control nuevamente.",
|
||||
"displayed at" => "Mostrado en",
|
||||
"Enter filename to..." => "Ingrese el nombre de archivo para guardar",
|
||||
"That file exists..." => "Ese archivo ya existeThat, sobreescribir?",
|
||||
"Saving" => "Guardando"
|
||||
),
|
||||
|
||||
"get-branch" =>
|
||||
array(
|
||||
"There are no..." => "No hay diferencias entre el repositorio local y GitHub. Regresar al modo regular?",
|
||||
"Sorry, there was..." => "Lo siento, hay un error, código:",
|
||||
"Your local folder..." => "Su carpeta local está vacía, desea clonarla"
|
||||
),
|
||||
|
||||
"github-manager" =>
|
||||
array(
|
||||
"Sorry, cannot create..." => "Lo siento, no puedo crear un archivo en",
|
||||
"Cannot update config..." => "No puedo actualizar el archivo de configuración. Por favor establezca permisos publicos para",
|
||||
"and try again" => "e intente nuevamente",
|
||||
"saving github paths" => "almacenando rutas de GitHub...",
|
||||
"github paths" => "Rutas de GitHub",
|
||||
"Choose existing path" => "Seleccionar una ruta existente",
|
||||
"Local path" => "Ruta local",
|
||||
"Remote GitHub path" => "Ruta remota GitHub",
|
||||
"Choose" => "Seleccionar",
|
||||
"Set local and..." => "Establecer las rutas locales y remotas en blanco para removerlas",
|
||||
"Update" => "Actualizar",
|
||||
"Add new path" => "Agregar nueva ruta",
|
||||
"Add" => "Agregar",
|
||||
"Usage Info" => "Modo de uso:",
|
||||
"Enter relative local..." => "Ingrese las rutas locales relativas (ej /server/myfiles) y las rutas absolutas para GitHub (ej https://github.com/user/repo ó https://github.com/user/repo/tree/branch para indicar ramas), según los ejemplos. Con esto usted establece las rutas de fuentes para ambas ubicaciones, como un par.",
|
||||
"You can then..." => "Entonces usted podrá seleccionar un par y este se convertira en su nueva raiz de trabajo en ICEcoder.",
|
||||
"The file manager..." => "Entonces el administrador de archivos muestra un nuevo icono para GitHub, el cual usted puede usar para ver y verificar diferencias entre las dos rutas. Esas diferencias pueden ser convertidas a un commit y enviadas a la ruta remota en GitHub o clonadas en su ruta local, para sincronizar sus archivos.",
|
||||
"If you want..." => "Si lo desea puede crear una nueva ruta raíz por medio de la pantalla de Configuración."
|
||||
),
|
||||
|
||||
"github" =>
|
||||
array(
|
||||
"Sorry, you do..." => "Lo siento, usted no parece contar con OpenSSL cargado en su instancia de PHP, por lo tanto conexiones https no están disponibles. Esto es requerido para la transferencia de datos a GitHub, por favor ajuste su php.ini, reinicie su servidor web e intente nuevamente"
|
||||
),
|
||||
|
||||
"headers" =>
|
||||
array(
|
||||
"Bad CSRF token..." => "Token CSRF incorrecto. Por favor reporte este error en https://github.com/mattpass/ICEcoder para que pueda ser solucionado."
|
||||
),
|
||||
|
||||
"help" =>
|
||||
array(
|
||||
"shortcuts" => "accesos directos",
|
||||
"Within document" => "En los documentos",
|
||||
"On Tabs" => "En las fichas",
|
||||
"Within file manager" => "En el administrador de archivos",
|
||||
"Anywhere" => "Cualquier parte",
|
||||
"Space" => "Espacio",
|
||||
"Click" => "Click",
|
||||
"or" => "o",
|
||||
"Left click" => "Click izquierdo",
|
||||
"Middle click" => "Click central",
|
||||
"Double click tap..." => "Doble click / tap (móviles)",
|
||||
"Right click" => "Click derecho",
|
||||
"Middle scrollwheel" => "Rueda del ratón",
|
||||
"Drag" => "Arrastrar",
|
||||
"Autocomplete add snippet" => "Autocompletar / agregar fragmento",
|
||||
"Multiple select" => "Selección múltiple",
|
||||
"Move line up" => "Mover línea arriba",
|
||||
"Move line down" => "Mover línea abajo",
|
||||
"Duplicate lines" => "Duplicar linea(s)",
|
||||
"Remove lines" => "Remover linea(s)",
|
||||
"Insert line before" => "Insertar linea antes",
|
||||
"Insert line after" => "Insertar linea después",
|
||||
"Search for selected" => "Buscar lo seleccionado",
|
||||
"Jump to definition" => "Saltar a definición / saltar atrás",
|
||||
"Comment uncomment" => "Comentar / descomentar",
|
||||
"Insert tab indent" => "Insertar ficha / auto sangría seleccionado",
|
||||
"Insert more" => "Aumentar sangría",
|
||||
"Insert less" => "Disminuir sangría",
|
||||
"Wrap with div" => "Envolver con <div>",
|
||||
"Wrap with span" => "Envolver con <span>",
|
||||
"Wrap unwrap p" => "Envolver / Desenvolver con <p>",
|
||||
"Wrap unwrap a" => "Envolver / Desenvolver con <a>",
|
||||
"Wrap unwrap b" => "Envolver / Desenvolver con <b>",
|
||||
"Wrap unwrap i" => "Envolver / Desenvolver con <i>",
|
||||
"Wrap unwrap strong" => "Envolver / Desenvolver con <strong>",
|
||||
"Wrap unwrap em" => "Envolver / Desenvolver con <em>",
|
||||
"Wrap unwrap li" => "Envolver / Desenvolver con <li>",
|
||||
"Wrap unwrap h1..." => "Envolver / Desenvolver con <h1> - <h3>",
|
||||
"End line with..." => "Terminar línea con <br>",
|
||||
"Close tab" => "Cerrar ficha",
|
||||
"Select file folder" => "Seleccionar archivo / carpeta",
|
||||
"Open file" => "Abrir archivo",
|
||||
"Range select" => "Seleccionar rango",
|
||||
"Options for selected" => "Opciones para lo seleccionado",
|
||||
"Delete selected" => "Eliminar seleccionados",
|
||||
"Next previous tab" => "Ficha siguiente / previa",
|
||||
"Next tab" => "Ficha siguiente",
|
||||
"Previous tab" => "Ficha previa",
|
||||
"New tab" => "Nueva ficha",
|
||||
"Close current tab" => "Cerrar ficha actual",
|
||||
"Open file prompt" => "Línea de apertura de archivos",
|
||||
"Find" => "Buscar",
|
||||
"Focus on Go..." => "Obtener foco en la opción Ir a Linea",
|
||||
"Save" => "Guardar",
|
||||
"Save as" => "Guardar como...",
|
||||
"View webpage" => "Ver pagina web",
|
||||
"Contract expand file..." => "Contraer / expandir administrador de archivos",
|
||||
"Fold unfold current..." => "Contraer / expandir línea actual",
|
||||
"Refocus on document" => "Reasignar foco al documento",
|
||||
"Cancel tasks" => "Cancelar tareas"
|
||||
),
|
||||
|
||||
"ice-coder" =>
|
||||
array(
|
||||
"No text selected..." => "No hay texto seleccionado para buscar",
|
||||
"all files" => "todos los archivos",
|
||||
"all filenames" => "todos los nombres de archivo",
|
||||
"selected files" => "archivos seleccionados",
|
||||
"selected filenames" => "nombres de archivos seleccionados",
|
||||
"Creating Folder" => "Creando Carpeta",
|
||||
"Sorry you can..." => "Lo siento, usted sólo puede tener 100 archivos abiertos al tiempo!",
|
||||
"Opening File" => "Abriendo archivo",
|
||||
"Enter relative file..." => "Entre una ruta relativa (iniciando con /) o una URL remota",
|
||||
"Getting" => "Obteniendo",
|
||||
"Please enter the..." => "Por favor ingrese el nuevo nombre para",
|
||||
"Renaming to" => "Renombrando a",
|
||||
"Moving to" => "Moviendo a",
|
||||
"Deleting File" => "Eliminando Archivo",
|
||||
"Pasting File" => "Copiando Archivo",
|
||||
"Sorry cannot paste..." => "Lo siento, no puedo pegar toda una raíz",
|
||||
"Nothing to paste..." => "Nada para pegar, copie un archivo/carpeta primero!",
|
||||
"and" => "y",
|
||||
"this document" => "este documento",
|
||||
"replace" => "reemplazar",
|
||||
"replace all" => "reemplazar todo",
|
||||
"file" => "archivo",
|
||||
"Replacing text in" => "Reemplazando texto en",
|
||||
"Cancelled tasks" => "Tareas canceladas",
|
||||
"Open previous files" => "Abrir archivos previos?",
|
||||
"Please enter your..." => "Por favor entre su token de GitHub (para acceso personal). Ver ayuda cerca al Token de autenticación de Github en la ayuda > Vea pantalla de configuración para más información",
|
||||
"This will compare..." => "Esto compara y muestra las diferencias entre su ruta local y el repositorio. OK?",
|
||||
"Please note for..." => "Importante: para que la actualización trabaje correctamente, usted necesita tener derechos de acceso a todos los directorios y archivos de ICEcoder. Esto sera chequeado previamente y se presentara una lista de archivos sin acceso (por lo tanto no movibles).\\n\\nSi usted necesita restablecer esta version de ICEcoder por alguna razón, usted la encontrara en la carpeta /tmp.\\n\\nClick en OK para proceder con la verificación y auto-instalación, ó cancelar para visitar el sitio de ICEcoder para descargar el ZIP y hacerlo manualmente.",
|
||||
"You can start..." => "Usted puede iniciar el reporte de errores en la pantalla de Ayuda > Configuración",
|
||||
"Error cannot find..." => "Error: no puedo encontrar o accesar las rutas de archivos de error",
|
||||
"No new errors..." => "No fueron encontrados nuevos errores",
|
||||
"You have made..." => "Usted ha realizado cambios. Esta seguro que quiere cerrar sin guardar?",
|
||||
"Close all tabs" => "Cerrar todas las fichas?",
|
||||
"results" => "resultados"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
"set password" => "establecer clave",
|
||||
"login" => "ingreso",
|
||||
"To disable registration..." => "Para deshabilitar el modo de registro, vaya a la opción de Configuración or abra el archivo lib/config___settings.php y cambie enableRegistration a false y recargue la página",
|
||||
"Registration mode enabled" => "Modo de registro activado",
|
||||
"auto-check for updates" => "auto-buscar por actualizaciones",
|
||||
"To put into..." => "Para usar el modo multiusuario, vaya a la opcion de Configuración o abra el archivo lib/config___settings.php y cambie multiUser a true y recargue la página",
|
||||
"multi-user" => "multi-usuario"
|
||||
),
|
||||
|
||||
"multiple-results" =>
|
||||
array(
|
||||
"rename all" => "renombrar todo",
|
||||
"replace all" => "reemplazar todo",
|
||||
"document" => "documento",
|
||||
"Found" => "Encontrado",
|
||||
"times" => "veces",
|
||||
"replace" => "reemplazar",
|
||||
"file folder" => "archivo/carpeta",
|
||||
"rename to" => "renombrar a",
|
||||
"rename" => "renombrar",
|
||||
"file" => "archivo",
|
||||
"No matches found" => "No se encontraron coincidencias",
|
||||
"selected" => "seleccionado",
|
||||
"found in" => "encontrado en",
|
||||
"Replaced" => "Reemplezado"
|
||||
),
|
||||
|
||||
"plugins-manager" =>
|
||||
array(
|
||||
"ICEcoder needs to..." => "ICEcoder necesita recargar para activar este plugin. Recargar ahora?",
|
||||
"saving plugins" => "guardando plugins...",
|
||||
"Cannot update config..." => "No puedo actualizar el archivo de configuración. Por favor establezca permisos publicos sobre",
|
||||
"and try again" => "e intente de nuevo",
|
||||
"couldnt delete dir" => "no puedo borrar el directorio",
|
||||
"couldnt delete file" => "no puedo borrar el archivo",
|
||||
"plugins" => "plugins",
|
||||
"Guide to writing..." => "Guia para escribir plugins",
|
||||
"Manage Installed" => "Administrador instalado",
|
||||
"URL" => "URL",
|
||||
"Target" => "Objetivo",
|
||||
"Timer" => "Temporizador",
|
||||
"Update" => "Actualizar",
|
||||
"Install" => "Instalar",
|
||||
"Uninstall" => "Desinstalar",
|
||||
"Reload after install..." => "Se requiere recargar después de instalar"
|
||||
),
|
||||
|
||||
"properties" =>
|
||||
array(
|
||||
"properties" => "propiedades",
|
||||
"Size" => "Tamaño",
|
||||
"Modified" => "Modificado",
|
||||
"Last access" => "Ultimo acceso",
|
||||
"Type" => "Tipo",
|
||||
"Readable Writeable" => "Leible / Escribible",
|
||||
"Relative path" => "Ruta relativa",
|
||||
"Absolute path" => "Ruta absoluta",
|
||||
"Contains" => "Contiene",
|
||||
"Permissions" => "Permisos",
|
||||
"Owner" => "Propietario",
|
||||
"Group" => "Grupo",
|
||||
"Public" => "Publico",
|
||||
"Read" => "Leer",
|
||||
"Write" => "Escribir",
|
||||
"Execute" => "Ejecutar",
|
||||
"Change to" => "Cambiar a",
|
||||
"update" => "actualizar"
|
||||
),
|
||||
|
||||
"settings-common" =>
|
||||
array(
|
||||
"Your document does..." => "Su documento no parece estar en UTF-8 entonces se ha convertido"
|
||||
),
|
||||
|
||||
"settings-save-current-files" =>
|
||||
array(
|
||||
"Cannot update config..." => "No puedo actualizar el archivo de configuracion. Por favor establezca permisos publicos sobre",
|
||||
"and try again" => "e intente de nuevo"
|
||||
),
|
||||
|
||||
"settings-screen" =>
|
||||
array(
|
||||
"settings" => "configuraciones",
|
||||
"version" => "version",
|
||||
"website" => "sitio web",
|
||||
"git" => "git",
|
||||
"codemirror dir" => "directorio codemirror",
|
||||
"codemirror version" => "version codemirror",
|
||||
"file manager root" => "administrador de archivos raiz",
|
||||
"Free to use..." => "Libre para usarlo para cualquier propósito, comercial o no, solo dejeme saber cualquier uso o mejora. :)<br><br>No se da garantia de ningun tipo, su uso se encuentra bajo su responsabilidad.<br><br>Muchas personas y compañías han ayudado a construir ICEcoder por lo que les damos las gracias. Por favor vea la lista completa en",
|
||||
"functionality" => "funcionalidad",
|
||||
"check for updates..." => "verificar por actualizaciones en la carga",
|
||||
"auto open last..." => "auto cargar los ultimos archivos al ingresar",
|
||||
"when finding in..." => "excluir cuando se busca en archivos ",
|
||||
"assisting" => "asistir",
|
||||
"code assist" => "asistencia de código",
|
||||
"visible tabs" => "Fichas visibles",
|
||||
"locked nav" => "Navegacion bloqueada",
|
||||
"tag wrapper command" => "Comando envuelto",
|
||||
"auto-complete on" => "auto-completar encendido",
|
||||
"security" => "seguridad",
|
||||
"new password" => "nueva clave",
|
||||
"8 chars min" => "8 caracteres min",
|
||||
"confirm password" => "confirmar clave",
|
||||
"banned files/folders" => "archivos/carpetas prohibidos",
|
||||
"banned paths" => "rutas prohibidas",
|
||||
"ip addresses" => "direcciones ip",
|
||||
"Slash prefixed comma..." => "Prefijo slash, delimitado por comas",
|
||||
"Comma delimited" => "Delimitado por comas",
|
||||
"style" => "estilo",
|
||||
"theme" => "tema",
|
||||
"line wrapping" => "ajuste de línea",
|
||||
"indent type" => "tipode sangría",
|
||||
"indent size" => "Tamaño de sangría",
|
||||
"font size" => "tamaño de letra",
|
||||
"layout" => "disposición",
|
||||
"plugin panel aligned" => "alineacion del panel de plugins",
|
||||
"file manager" => "administrador de archivos",
|
||||
"root" => "raiz",
|
||||
"Slash prefixed" => "Prefijo Slash",
|
||||
"bug reporting" => "reporte de errores",
|
||||
"check in files" => "chequear en archivos",
|
||||
"every" => "cada",
|
||||
"secs getting last" => "seg, obteniendo últimas",
|
||||
"lines" => "lineas",
|
||||
"multi-user" => "multi-usuario",
|
||||
"Make sure you..." => "Este seguro de no bloquearse a sí mismo",
|
||||
"Registration" => "Registro",
|
||||
"auth token" => "token autenticación",
|
||||
"Required to get..." => "Requerido para obtener diferencias, enviar cambios a repos GitHub, etc. Si usted no tiene uno, usted puede usar un:".PHP_EOL.PHP_EOL.
|
||||
"- token personal de acceso (https://help.github.com/articles/creating-an-access-token-for-command-line-use), ó".PHP_EOL.
|
||||
"- full client/secret pair token (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
|
||||
"Esto no es recomendado para establecer su token pues es mas seguro ingresarlo cuando sea solicitado por ICEcoder y así permenecerá en la sesión activa unicamente.".PHP_EOL.PHP_EOL.
|
||||
"De todas formas, si usted trabaj en un ambiente seguro, es más eficiente establecer esto aquí.",
|
||||
"Sorry cannot commit..." => "Lo siento, no puedo enviar configuraciones en modo demo",
|
||||
"update" => "actualizar"
|
||||
),
|
||||
|
||||
"settings-update" =>
|
||||
array(
|
||||
"Cannot update config..." => "No puedo actualizar archivo de configuración. Establezca permisos publicos sobre",
|
||||
"and try again" => "e intente de nuevo",
|
||||
"and press refresh" => "y presione actualizar"
|
||||
),
|
||||
|
||||
"updater" =>
|
||||
array(
|
||||
"Update appears to..." => "La actualización parece haber sido satisfactoria"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
115
lib/bug-files-check.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
// Load common functions
|
||||
include("headers.php");
|
||||
include_once("settings-common.php");
|
||||
$text = $_SESSION['text'];
|
||||
$t = $text['bug-files-check'];
|
||||
|
||||
$files = explode(",",str_replace("|","/",$_GET['files']));
|
||||
$filesSizesSeen = explode(",",$_GET['filesSizesSeen']);
|
||||
$maxLines = $_GET['maxLines'];
|
||||
|
||||
$result = "ok";
|
||||
|
||||
for ($i=0; $i<count($files); $i++) {
|
||||
// Work out the real path for a file
|
||||
$files[$i] = realpath($_SERVER['DOCUMENT_ROOT'].$files[$i]);
|
||||
// If we can't find that file or it doesn't start with the doc root, it's an error
|
||||
if (!file_exists($files[$i]) || strpos(str_replace("\\","/",$files[$i]),$_SERVER['DOCUMENT_ROOT']) !== 0) {
|
||||
$result = "error";
|
||||
} else {
|
||||
$filesSizesSeen[$i] = filesize($files[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($result != "error") {
|
||||
|
||||
$filesWithNewBugs = 0;
|
||||
|
||||
for ($i=0; $i<count($files); $i++) {
|
||||
// If we have set a filesize value previously and it's different to now, there's new bugs
|
||||
$fileSizesSeenArray = explode(",",$_GET['filesSizesSeen']);
|
||||
if ($fileSizesSeenArray[$i]!="null" && $fileSizesSeenArray[$i] != $filesSizesSeen[$i]) {
|
||||
$result = "bugs";
|
||||
$filesWithNewBugs++;
|
||||
|
||||
$filename = $files[$i];
|
||||
$chars = ($filesSizesSeen[$i]-$fileSizesSeenArray[$i]);
|
||||
$buffer = 4096;
|
||||
$lines = $maxLines+1+1; // 1 (possibly) for end of file and 1 for partial lines
|
||||
|
||||
// Open the file
|
||||
$f = fopen($filename, "rb");
|
||||
|
||||
// Jump to last character
|
||||
fseek($f, 0, SEEK_END);
|
||||
|
||||
// If we don't have a line at end, deduct 1 from $lines to get
|
||||
if(fread($f, 1) != "\n") $lines -= 1;
|
||||
|
||||
// Start reading
|
||||
$output = "";
|
||||
$chunk = "";
|
||||
|
||||
// While we would like more
|
||||
while(ftell($f) > 0 && $chars > 0 && $lines > 0) {
|
||||
|
||||
// Figure out how far back we should jump
|
||||
$seek = min($chars, $buffer);
|
||||
|
||||
// Do the jump (backwards, relative to where we are)
|
||||
fseek($f, -$seek, SEEK_CUR);
|
||||
|
||||
// Read a chunk and prepend it to our output
|
||||
$output = ($chunk = fread($f, $seek)).$output;
|
||||
|
||||
// Jump back to where we started reading
|
||||
fseek($f, -mb_strlen($chunk, '8bit'), SEEK_CUR);
|
||||
|
||||
// Take this seek chunk off the number of chars
|
||||
$chars -= $seek;
|
||||
|
||||
// Deduct new lines found in this chunk from $lines
|
||||
$lines -= substr_count($chunk, "\n");
|
||||
}
|
||||
|
||||
// Close file
|
||||
fclose($f);
|
||||
|
||||
// OK, now we have bug lines to output, save to our file
|
||||
$output = rtrim(str_replace("\r\n","\n",$output));
|
||||
$output = explode("\n",$output);
|
||||
$output = array_slice($output, -$maxLines);
|
||||
$output = $t['Found in']." ".$filename."...\n".implode("\n",$output);
|
||||
|
||||
if ($filesWithNewBugs==1) {
|
||||
file_put_contents("../tmp/bug-report.log", $output);
|
||||
} else {
|
||||
file_put_contents("../tmp/bug-report.log", "\n\n".$output, FILE_APPEND);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Get dir name tmp dir's parent
|
||||
$tmpLoc = dirname(__FILE__);
|
||||
$tmpLoc = explode(DIRECTORY_SEPARATOR,$tmpLoc);
|
||||
$tmpLoc = $tmpLoc[count($tmpLoc)-2];
|
||||
|
||||
// Output result and status array
|
||||
$status = array(
|
||||
"files" => $files,
|
||||
"filesSizesSeen" => $filesSizesSeen,
|
||||
"maxLines" => $maxLines,
|
||||
"bugReportPath" => "|".$tmpLoc."|tmp|bug-report.log",
|
||||
"result" => $result
|
||||
);
|
||||
|
||||
// Include our process once our bug checking work is done
|
||||
include("../processes/on-bug-check.php");
|
||||
|
||||
// Finally, display our status in JSON format as the XHR response text
|
||||
echo json_encode($status);
|
||||
|
||||
?>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?php
|
||||
$ICEcoder = array(
|
||||
"root" => "",
|
||||
"checkUpdates" => true,
|
||||
"openLastFiles" => true,
|
||||
"findFilesExclude" => array("_coder","ICEcoder",".doc",".gif",".jpg",".jpeg",".pdf",".png",".swf",".xml",".zip"),
|
||||
"codeAssist" => true,
|
||||
"visibleTabs" => false,
|
||||
"lockedNav" => true,
|
||||
"accountPassword" => "",
|
||||
"bannedFiles" => array("_coder","ICEcoder"),
|
||||
"bannedPaths" => array("/var/www/.git","/var/www/sites/all/modules","/var/www/sites/default/files"),
|
||||
"allowedIPs" => array("*"),
|
||||
"plugins" => array(
|
||||
array("Adminer","plugins/adminer/icon.png","margin-top: 3px","plugins/adminer/adminer-3.6.3-mysql-en.php","_blank",""),
|
||||
array("JS Hint","plugins/jshint/icon.png","margin-top: 3px","http://www.jshint.com","_blank",""),
|
||||
array("Emmet","plugins/emmet/icon.png","margin-top: 3px","http://docs.emmet.io","_blank",""),
|
||||
array("ICErepo","plugins/ice-repo/icon.png","margin-top: 3px","plugins/ice-repo","_blank",""),
|
||||
array("Dochub","plugins/dochub/icon.png","margin-top: 3px","http://dochub.io","_blank",""),
|
||||
array("Voke","plugins/voke/icon.png","margin-top: 3px","http://voke.fm","_blank",""),
|
||||
array("Regexplained","plugins/regexplained/icon.png","margin-top: 3px","http://leaverou.github.io/regexplained","_blank",""),
|
||||
array("wireframe|cc","plugins/wireframecc/icon.png","margin-top: 3px","http://wireframe.cc","_blank",""),
|
||||
array("TinyPNG","plugins/tinypng/icon.png","margin-top: 7px","http://tinypng.org","_blank",""),
|
||||
array("Zip It!","plugins/zip-it/icon.png","margin-top: 3px; margin-left: 3px","plugins/zip-it/?zip=|&exclude=*.doc*.gif*.jpg*.jpeg*.pdf*.png*.swf*.xml*.zip","fileControl:<b>Zipping Files</b>","30")
|
||||
),
|
||||
"theme" => "default",
|
||||
"fontSize" => "13px",
|
||||
"lineWrapping" => true,
|
||||
"indentWithTabs" => true,
|
||||
"indentSize" => 4,
|
||||
"previousFiles" => "",
|
||||
"last10Files" => ""
|
||||
);
|
||||
?>
|
||||
39
lib/config___users-template.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
$ICEcoderUserSettings = array(
|
||||
"versionNo" => "5.0",
|
||||
"licenseEmail" => "",
|
||||
"licenseCode" => "",
|
||||
"configCreateDate" => 0,
|
||||
"root" => "",
|
||||
"checkUpdates" => true,
|
||||
"openLastFiles" => true,
|
||||
"updateDiffOnSave" => true,
|
||||
"languageUser" => "english.php",
|
||||
"findFilesExclude" => array(".doc",".gif",".jpg",".jpeg",".pdf",".png",".swf",".xml",".zip"),
|
||||
"codeAssist" => true,
|
||||
"visibleTabs" => false,
|
||||
"lockedNav" => true,
|
||||
"tagWrapperCommand" => "ctrl+alt",
|
||||
"autoComplete" => "keypress",
|
||||
"password" => "",
|
||||
"bannedFiles" => array(),
|
||||
"bannedPaths" => array("/var/www/.git","/var/www/sites/all/modules","/var/www/sites/default/files"),
|
||||
"allowedIPs" => array("*"),
|
||||
"theme" => "default",
|
||||
"fontSize" => "13px",
|
||||
"lineWrapping" => true,
|
||||
"indentWithTabs" => true,
|
||||
"indentAuto" => true,
|
||||
"indentSize" => 4,
|
||||
"pluginPanelAligned" => "left",
|
||||
"bugFilePaths" => array(),
|
||||
"bugFileCheckTimer" => 0,
|
||||
"bugFileMaxLines" => 0,
|
||||
"githubAuthToken" => "",
|
||||
"plugins" => array(),
|
||||
"githubLocalPaths" => array(),
|
||||
"githubRemotePaths" => array(),
|
||||
"previousFiles" => "",
|
||||
"last10Files" => ""
|
||||
);
|
||||
?>
|
||||
412
lib/difflib.js
Normal file
@@ -0,0 +1,412 @@
|
||||
/***
|
||||
This is part of jsdifflib v1.0. <http://snowtide.com/jsdifflib>
|
||||
|
||||
Copyright (c) 2007, Snowtide Informatics Systems, Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Snowtide Informatics Systems nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
||||
***/
|
||||
/* Author: Chas Emerick <cemerick@snowtide.com> */
|
||||
var __whitespace = {" ":true, "\t":true, "\n":true, "\f":true, "\r":true};
|
||||
|
||||
var difflib = {
|
||||
defaultJunkFunction: function (c) {
|
||||
return __whitespace.hasOwnProperty(c);
|
||||
},
|
||||
|
||||
stripLinebreaks: function (str) { return str.replace(/^[\n\r]*|[\n\r]*$/g, ""); },
|
||||
|
||||
stringAsLines: function (str) {
|
||||
var lfpos = str.indexOf("\n");
|
||||
var crpos = str.indexOf("\r");
|
||||
var linebreak = ((lfpos > -1 && crpos > -1) || crpos < 0) ? "\n" : "\r";
|
||||
|
||||
var lines = str.split(linebreak);
|
||||
for (var i = 0; i < lines.length; i++) {
|
||||
lines[i] = difflib.stripLinebreaks(lines[i]);
|
||||
}
|
||||
|
||||
return lines;
|
||||
},
|
||||
|
||||
// iteration-based reduce implementation
|
||||
__reduce: function (func, list, initial) {
|
||||
if (initial != null) {
|
||||
var value = initial;
|
||||
var idx = 0;
|
||||
} else if (list) {
|
||||
var value = list[0];
|
||||
var idx = 1;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (; idx < list.length; idx++) {
|
||||
value = func(value, list[idx]);
|
||||
}
|
||||
|
||||
return value;
|
||||
},
|
||||
|
||||
// comparison function for sorting lists of numeric tuples
|
||||
__ntuplecomp: function (a, b) {
|
||||
var mlen = Math.max(a.length, b.length);
|
||||
for (var i = 0; i < mlen; i++) {
|
||||
if (a[i] < b[i]) return -1;
|
||||
if (a[i] > b[i]) return 1;
|
||||
}
|
||||
|
||||
return a.length == b.length ? 0 : (a.length < b.length ? -1 : 1);
|
||||
},
|
||||
|
||||
__calculate_ratio: function (matches, length) {
|
||||
return length ? 2.0 * matches / length : 1.0;
|
||||
},
|
||||
|
||||
// returns a function that returns true if a key passed to the returned function
|
||||
// is in the dict (js object) provided to this function; replaces being able to
|
||||
// carry around dict.has_key in python...
|
||||
__isindict: function (dict) {
|
||||
return function (key) { return dict.hasOwnProperty(key); };
|
||||
},
|
||||
|
||||
// replacement for python's dict.get function -- need easy default values
|
||||
__dictget: function (dict, key, defaultValue) {
|
||||
return dict.hasOwnProperty(key) ? dict[key] : defaultValue;
|
||||
},
|
||||
|
||||
SequenceMatcher: function (a, b, isjunk) {
|
||||
this.set_seqs = function (a, b) {
|
||||
this.set_seq1(a);
|
||||
this.set_seq2(b);
|
||||
}
|
||||
|
||||
this.set_seq1 = function (a) {
|
||||
if (a == this.a) return;
|
||||
this.a = a;
|
||||
this.matching_blocks = this.opcodes = null;
|
||||
}
|
||||
|
||||
this.set_seq2 = function (b) {
|
||||
if (b == this.b) return;
|
||||
this.b = b;
|
||||
this.matching_blocks = this.opcodes = this.fullbcount = null;
|
||||
this.__chain_b();
|
||||
}
|
||||
|
||||
this.__chain_b = function () {
|
||||
var b = this.b;
|
||||
var n = b.length;
|
||||
var b2j = this.b2j = {};
|
||||
var populardict = {};
|
||||
for (var i = 0; i < b.length; i++) {
|
||||
var elt = b[i];
|
||||
if (b2j.hasOwnProperty(elt)) {
|
||||
var indices = b2j[elt];
|
||||
if (n >= 200 && indices.length * 100 > n) {
|
||||
populardict[elt] = 1;
|
||||
delete b2j[elt];
|
||||
} else {
|
||||
indices.push(i);
|
||||
}
|
||||
} else {
|
||||
b2j[elt] = [i];
|
||||
}
|
||||
}
|
||||
|
||||
for (var elt in populardict) {
|
||||
if (populardict.hasOwnProperty(elt)) {
|
||||
delete b2j[elt];
|
||||
}
|
||||
}
|
||||
|
||||
var isjunk = this.isjunk;
|
||||
var junkdict = {};
|
||||
if (isjunk) {
|
||||
for (var elt in populardict) {
|
||||
if (populardict.hasOwnProperty(elt) && isjunk(elt)) {
|
||||
junkdict[elt] = 1;
|
||||
delete populardict[elt];
|
||||
}
|
||||
}
|
||||
for (var elt in b2j) {
|
||||
if (b2j.hasOwnProperty(elt) && isjunk(elt)) {
|
||||
junkdict[elt] = 1;
|
||||
delete b2j[elt];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.isbjunk = difflib.__isindict(junkdict);
|
||||
this.isbpopular = difflib.__isindict(populardict);
|
||||
}
|
||||
|
||||
this.find_longest_match = function (alo, ahi, blo, bhi) {
|
||||
var a = this.a;
|
||||
var b = this.b;
|
||||
var b2j = this.b2j;
|
||||
var isbjunk = this.isbjunk;
|
||||
var besti = alo;
|
||||
var bestj = blo;
|
||||
var bestsize = 0;
|
||||
var j = null;
|
||||
var k;
|
||||
|
||||
var j2len = {};
|
||||
var nothing = [];
|
||||
for (var i = alo; i < ahi; i++) {
|
||||
var newj2len = {};
|
||||
var jdict = difflib.__dictget(b2j, a[i], nothing);
|
||||
for (var jkey in jdict) {
|
||||
if (jdict.hasOwnProperty(jkey)) {
|
||||
j = jdict[jkey];
|
||||
if (j < blo) continue;
|
||||
if (j >= bhi) break;
|
||||
newj2len[j] = k = difflib.__dictget(j2len, j - 1, 0) + 1;
|
||||
if (k > bestsize) {
|
||||
besti = i - k + 1;
|
||||
bestj = j - k + 1;
|
||||
bestsize = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
j2len = newj2len;
|
||||
}
|
||||
|
||||
while (besti > alo && bestj > blo && !isbjunk(b[bestj - 1]) && a[besti - 1] == b[bestj - 1]) {
|
||||
besti--;
|
||||
bestj--;
|
||||
bestsize++;
|
||||
}
|
||||
|
||||
while (besti + bestsize < ahi && bestj + bestsize < bhi &&
|
||||
!isbjunk(b[bestj + bestsize]) &&
|
||||
a[besti + bestsize] == b[bestj + bestsize]) {
|
||||
bestsize++;
|
||||
}
|
||||
|
||||
while (besti > alo && bestj > blo && isbjunk(b[bestj - 1]) && a[besti - 1] == b[bestj - 1]) {
|
||||
besti--;
|
||||
bestj--;
|
||||
bestsize++;
|
||||
}
|
||||
|
||||
while (besti + bestsize < ahi && bestj + bestsize < bhi && isbjunk(b[bestj + bestsize]) &&
|
||||
a[besti + bestsize] == b[bestj + bestsize]) {
|
||||
bestsize++;
|
||||
}
|
||||
|
||||
return [besti, bestj, bestsize];
|
||||
}
|
||||
|
||||
this.get_matching_blocks = function () {
|
||||
if (this.matching_blocks != null) return this.matching_blocks;
|
||||
var la = this.a.length;
|
||||
var lb = this.b.length;
|
||||
|
||||
var queue = [[0, la, 0, lb]];
|
||||
var matching_blocks = [];
|
||||
var alo, ahi, blo, bhi, qi, i, j, k, x;
|
||||
while (queue.length) {
|
||||
qi = queue.pop();
|
||||
alo = qi[0];
|
||||
ahi = qi[1];
|
||||
blo = qi[2];
|
||||
bhi = qi[3];
|
||||
x = this.find_longest_match(alo, ahi, blo, bhi);
|
||||
i = x[0];
|
||||
j = x[1];
|
||||
k = x[2];
|
||||
|
||||
if (k) {
|
||||
matching_blocks.push(x);
|
||||
if (alo < i && blo < j)
|
||||
queue.push([alo, i, blo, j]);
|
||||
if (i+k < ahi && j+k < bhi)
|
||||
queue.push([i + k, ahi, j + k, bhi]);
|
||||
}
|
||||
}
|
||||
|
||||
matching_blocks.sort(difflib.__ntuplecomp);
|
||||
|
||||
var i1 = 0, j1 = 0, k1 = 0, block = 0;
|
||||
var i2, j2, k2;
|
||||
var non_adjacent = [];
|
||||
for (var idx in matching_blocks) {
|
||||
if (matching_blocks.hasOwnProperty(idx)) {
|
||||
block = matching_blocks[idx];
|
||||
i2 = block[0];
|
||||
j2 = block[1];
|
||||
k2 = block[2];
|
||||
if (i1 + k1 == i2 && j1 + k1 == j2) {
|
||||
k1 += k2;
|
||||
} else {
|
||||
if (k1) non_adjacent.push([i1, j1, k1]);
|
||||
i1 = i2;
|
||||
j1 = j2;
|
||||
k1 = k2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (k1) non_adjacent.push([i1, j1, k1]);
|
||||
|
||||
non_adjacent.push([la, lb, 0]);
|
||||
this.matching_blocks = non_adjacent;
|
||||
return this.matching_blocks;
|
||||
}
|
||||
|
||||
this.get_opcodes = function () {
|
||||
if (this.opcodes != null) return this.opcodes;
|
||||
var i = 0;
|
||||
var j = 0;
|
||||
var answer = [];
|
||||
this.opcodes = answer;
|
||||
var block, ai, bj, size, tag;
|
||||
var blocks = this.get_matching_blocks();
|
||||
for (var idx in blocks) {
|
||||
if (blocks.hasOwnProperty(idx)) {
|
||||
block = blocks[idx];
|
||||
ai = block[0];
|
||||
bj = block[1];
|
||||
size = block[2];
|
||||
tag = '';
|
||||
if (i < ai && j < bj) {
|
||||
tag = 'replace';
|
||||
} else if (i < ai) {
|
||||
tag = 'delete';
|
||||
} else if (j < bj) {
|
||||
tag = 'insert';
|
||||
}
|
||||
if (tag) answer.push([tag, i, ai, j, bj]);
|
||||
i = ai + size;
|
||||
j = bj + size;
|
||||
|
||||
if (size) answer.push(['equal', ai, i, bj, j]);
|
||||
}
|
||||
}
|
||||
|
||||
return answer;
|
||||
}
|
||||
|
||||
// this is a generator function in the python lib, which of course is not supported in javascript
|
||||
// the reimplementation builds up the grouped opcodes into a list in their entirety and returns that.
|
||||
this.get_grouped_opcodes = function (n) {
|
||||
if (!n) n = 3;
|
||||
var codes = this.get_opcodes();
|
||||
if (!codes) codes = [["equal", 0, 1, 0, 1]];
|
||||
var code, tag, i1, i2, j1, j2;
|
||||
if (codes[0][0] == 'equal') {
|
||||
code = codes[0];
|
||||
tag = code[0];
|
||||
i1 = code[1];
|
||||
i2 = code[2];
|
||||
j1 = code[3];
|
||||
j2 = code[4];
|
||||
codes[0] = [tag, Math.max(i1, i2 - n), i2, Math.max(j1, j2 - n), j2];
|
||||
}
|
||||
if (codes[codes.length - 1][0] == 'equal') {
|
||||
code = codes[codes.length - 1];
|
||||
tag = code[0];
|
||||
i1 = code[1];
|
||||
i2 = code[2];
|
||||
j1 = code[3];
|
||||
j2 = code[4];
|
||||
codes[codes.length - 1] = [tag, i1, Math.min(i2, i1 + n), j1, Math.min(j2, j1 + n)];
|
||||
}
|
||||
|
||||
var nn = n + n;
|
||||
var group = [];
|
||||
var groups = [];
|
||||
for (var idx in codes) {
|
||||
if (codes.hasOwnProperty(idx)) {
|
||||
code = codes[idx];
|
||||
tag = code[0];
|
||||
i1 = code[1];
|
||||
i2 = code[2];
|
||||
j1 = code[3];
|
||||
j2 = code[4];
|
||||
if (tag == 'equal' && i2 - i1 > nn) {
|
||||
group.push([tag, i1, Math.min(i2, i1 + n), j1, Math.min(j2, j1 + n)]);
|
||||
groups.push(group);
|
||||
group = [];
|
||||
i1 = Math.max(i1, i2-n);
|
||||
j1 = Math.max(j1, j2-n);
|
||||
}
|
||||
|
||||
group.push([tag, i1, i2, j1, j2]);
|
||||
}
|
||||
}
|
||||
|
||||
if (group && !(group.length == 1 && group[0][0] == 'equal')) groups.push(group)
|
||||
|
||||
return groups;
|
||||
}
|
||||
|
||||
this.ratio = function () {
|
||||
matches = difflib.__reduce(
|
||||
function (sum, triple) { return sum + triple[triple.length - 1]; },
|
||||
this.get_matching_blocks(), 0);
|
||||
return difflib.__calculate_ratio(matches, this.a.length + this.b.length);
|
||||
}
|
||||
|
||||
this.quick_ratio = function () {
|
||||
var fullbcount, elt;
|
||||
if (this.fullbcount == null) {
|
||||
this.fullbcount = fullbcount = {};
|
||||
for (var i = 0; i < this.b.length; i++) {
|
||||
elt = this.b[i];
|
||||
fullbcount[elt] = difflib.__dictget(fullbcount, elt, 0) + 1;
|
||||
}
|
||||
}
|
||||
fullbcount = this.fullbcount;
|
||||
|
||||
var avail = {};
|
||||
var availhas = difflib.__isindict(avail);
|
||||
var matches = numb = 0;
|
||||
for (var i = 0; i < this.a.length; i++) {
|
||||
elt = this.a[i];
|
||||
if (availhas(elt)) {
|
||||
numb = avail[elt];
|
||||
} else {
|
||||
numb = difflib.__dictget(fullbcount, elt, 0);
|
||||
}
|
||||
avail[elt] = numb - 1;
|
||||
if (numb > 0) matches++;
|
||||
}
|
||||
|
||||
return difflib.__calculate_ratio(matches, this.a.length + this.b.length);
|
||||
}
|
||||
|
||||
this.real_quick_ratio = function () {
|
||||
var la = this.a.length;
|
||||
var lb = this.b.length;
|
||||
return _calculate_ratio(Math.min(la, lb), la + lb);
|
||||
}
|
||||
|
||||
this.isjunk = isjunk ? isjunk : difflib.defaultJunkFunction;
|
||||
this.a = this.b = null;
|
||||
this.set_seqs(a, b);
|
||||
}
|
||||
};
|
||||
21
lib/download.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
|
||||
// Establish the real absolute path to the file
|
||||
$file = realpath($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['file'])));
|
||||
// If it doesn't exist, or doesn't start with the $docRoot, stop here
|
||||
if (!file_exists($file) || strpos(str_replace("\\","/",$file),$docRoot) !== 0) {
|
||||
die("<script>alert('Sorry, that file doesn\'t appear to exist');</script>");
|
||||
}
|
||||
|
||||
if (file_exists($file)) {
|
||||
header('Content-Description: File Transfer');
|
||||
header('Content-Disposition: attachment; filename='.basename($file));
|
||||
header('Content-Length: '.filesize($file));
|
||||
ob_clean();
|
||||
flush();
|
||||
readfile($file);
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
@@ -1,40 +1,40 @@
|
||||
/* ICEcoder default theme: Based VERY loosely on Monokai */
|
||||
/* ICEcoder default theme by Matt Pass */
|
||||
|
||||
.cm-s-icecoder {color: #666; background: #1c1c19}
|
||||
.cm-s-icecoder {color: #666; background: #141612}
|
||||
|
||||
.cm-s-icecoder span.cm-keyword {color: #f8f8f8; font-weight:bold}
|
||||
.cm-s-icecoder span.cm-atom {color: #ae81ff}
|
||||
.cm-s-icecoder span.cm-number {color: #0a0}
|
||||
.cm-s-icecoder span.cm-def {color: #fd971f}
|
||||
.cm-s-icecoder span.cm-keyword {color: #eee; font-weight:bold} /* off-white 1 */
|
||||
.cm-s-icecoder span.cm-atom {color: #e1c76e} /* yellow */
|
||||
.cm-s-icecoder span.cm-number {color: #6cb5d9} /* blue */
|
||||
.cm-s-icecoder span.cm-def {color: #b9ca4a} /* green */
|
||||
|
||||
.cm-s-icecoder span.cm-variable {color: #a6e22e}
|
||||
.cm-s-icecoder span.cm-variable-2 {color: #f92672}
|
||||
.cm-s-icecoder span.cm-variable-3 {color: #0a0}
|
||||
.cm-s-icecoder span.cm-variable {color: #6cb5d9} /* blue */
|
||||
.cm-s-icecoder span.cm-variable-2 {color: #bf255c} /* pink */
|
||||
.cm-s-icecoder span.cm-variable-3 {color: #f9602c} /* orange */
|
||||
|
||||
.cm-s-icecoder span.cm-property {color: #a6e22e}
|
||||
.cm-s-icecoder span.cm-operator {color: #0a0}
|
||||
.cm-s-icecoder span.cm-comment {color: #444}
|
||||
.cm-s-icecoder span.cm-property {color: #eee} /* off-white 1 */
|
||||
.cm-s-icecoder span.cm-operator {color: #9179bb} /* purple */
|
||||
.cm-s-icecoder span.cm-comment {color: #97a3aa} /* grey-blue */
|
||||
|
||||
.cm-s-icecoder span.cm-string {color: #fd0}
|
||||
.cm-s-icecoder span.cm-string-2 {color: #f80}
|
||||
.cm-s-icecoder span.cm-string {color: #b9ca4a} /* green */
|
||||
.cm-s-icecoder span.cm-string-2 {color: #6cb5d9} /* blue */
|
||||
|
||||
.cm-s-icecoder span.cm-meta {color: #555}
|
||||
.cm-s-icecoder span.cm-error {color: #f00}
|
||||
.cm-s-icecoder span.cm-meta {color: #555} /* grey */
|
||||
.cm-s-icecoder span.cm-error {color: #d00} /* red */
|
||||
|
||||
.cm-s-icecoder span.cm-qualifier {color: #555}
|
||||
.cm-s-icecoder span.cm-builtin {color: #06c}
|
||||
.cm-s-icecoder span.cm-bracket {color: #cc7}
|
||||
.cm-s-icecoder span.cm-qualifier {color: #555} /* grey */
|
||||
.cm-s-icecoder span.cm-builtin {color: #214e7b} /* bright blue */
|
||||
.cm-s-icecoder span.cm-bracket {color: #cc7} /* grey-yellow */
|
||||
|
||||
.cm-s-icecoder span.cm-tag {color: #e8e8e8}
|
||||
.cm-s-icecoder span.cm-attribute {color: #0bb}
|
||||
.cm-s-icecoder span.cm-tag {color: #e8e8e8} /* off-white 2 */
|
||||
.cm-s-icecoder span.cm-attribute {color: #099} /* teal */
|
||||
|
||||
.cm-s-icecoder span.cm-header {color: #a0a}
|
||||
.cm-s-icecoder span.cm-quote {color: #090}
|
||||
.cm-s-icecoder span.cm-hr {color: #999}
|
||||
.cm-s-icecoder span.cm-link {color: #ff0}
|
||||
.cm-s-icecoder span.cm-header {color: #6a0d6a} /* purple-pink */
|
||||
.cm-s-icecoder span.cm-quote {color: #186718} /* dark green */
|
||||
.cm-s-icecoder span.cm-hr {color: #888} /* mid-grey */
|
||||
.cm-s-icecoder span.cm-link {color: #e1c76e} /* yellow */
|
||||
|
||||
.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white !important}
|
||||
.cm-s-icecoder .CodeMirror-selected {color: #fff !important; background: #037 !important}
|
||||
.cm-s-icecoder .CodeMirror-gutters {background: #333; min-width: 41px; text-align: right; border-right: 1px solid #ccc}
|
||||
.cm-s-icecoder .CodeMirror-linenumber {color: #999; cursor: default}
|
||||
.cm-s-icecoder .CodeMirror-gutters {background: #141612; min-width: 41px; border-right: 0}
|
||||
.cm-s-icecoder .CodeMirror-linenumber {color: #555; cursor: default}
|
||||
.cm-s-icecoder .CodeMirror-matchingbracket {border: 1px solid grey; color: black !important}
|
||||
617
lib/file-control-xhr.php
Normal file
@@ -0,0 +1,617 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['file-control'];
|
||||
|
||||
// ===============================
|
||||
// SET OUR ERROR INFO TO A DEFAULT
|
||||
// ===============================
|
||||
|
||||
$error = false;
|
||||
$errorStr = "false";
|
||||
$errorMsg = "None";
|
||||
|
||||
// ==============================
|
||||
// GET CLEANED FILENAMES OR ERROR
|
||||
// ==============================
|
||||
|
||||
// Get the save type if any
|
||||
$saveType = isset($_GET['saveType']) ? strClean($_GET['saveType']) : "";
|
||||
|
||||
// Establish the filename/new filename
|
||||
$file = str_replace("|","/",strClean(
|
||||
isset($_POST['newFileName']) && $_POST['newFileName']!=""
|
||||
? $_POST['newFileName']
|
||||
: $_REQUEST['file']
|
||||
));
|
||||
|
||||
// Establish the actual name as we may have HTML entities in filename
|
||||
$file = html_entity_decode($file);
|
||||
|
||||
// Put the original $file var aside for use
|
||||
$fileOrig = $file;
|
||||
|
||||
// Trim any +'s or spaces from the end of file
|
||||
$file = rtrim(rtrim($file,'+'),' ');
|
||||
|
||||
// Also remove [NEW] from $file, we can consider $_GET['action'] or $fileOrig to pick that up
|
||||
$file = rtrim($file,'[NEW]');
|
||||
|
||||
// Make each path in $file a full path (; seperated list)
|
||||
$allFiles = explode(";",$file);
|
||||
for ($i=0; $i<count($allFiles); $i++) {
|
||||
if (strpos($allFiles[$i],$docRoot)===false && $_GET['action']!="getRemoteFile") {
|
||||
$allFiles[$i]=str_replace("|","/",$docRoot.$iceRoot.$allFiles[$i]);
|
||||
}
|
||||
};
|
||||
$file = implode(";",$allFiles);
|
||||
|
||||
// Establish the $fileLoc and $fileName (used in single file cases, eg opening. Multiple file cases, eg deleting, is worked out in that loop)
|
||||
$fileLoc = substr(str_replace($docRoot,"",$file),0,strrpos(str_replace($docRoot,"",$file),"/"));
|
||||
$fileName = basename($file);
|
||||
|
||||
// Check through all files to make sure they're valid/safe
|
||||
$allFiles = explode(";",$file);
|
||||
for ($i=0; $i<count($allFiles); $i++) {
|
||||
|
||||
// Uncomment to alert and console.log the action and file, useful for debugging
|
||||
// echo ";alert('".xssClean($_GET['action'],"html")." : ".$allFiles[$i]."');console.log('".xssClean($_GET['action'],"html")." : ".$allFiles[$i]."');";
|
||||
|
||||
// Die if the file requested isn't something we expect
|
||||
if(
|
||||
// A local folder that isn't the doc root or starts with the doc root
|
||||
($_GET['action']!="getRemoteFile" &&
|
||||
rtrim($allFiles[$i],"/") !== rtrim($docRoot,"/") &&
|
||||
strpos(realpath(rtrim(dirname($allFiles[$i]),"/")),realpath(rtrim($docRoot,"/"))) !== 0
|
||||
) ||
|
||||
// Or a remote URL that doesn't start http
|
||||
($_GET['action']=="getRemoteFile" && strpos($allFiles[$i],"http") !== 0)
|
||||
) {
|
||||
$error = true;
|
||||
$errorStr = "true";
|
||||
$errorMsg = "Sorry! - problem with file requested";
|
||||
};
|
||||
}
|
||||
|
||||
// ============
|
||||
// SAVING FILES
|
||||
// ============
|
||||
|
||||
if (!$error && $_GET['action']=="save") {
|
||||
|
||||
// ====================================
|
||||
// NEW FILES AND SAVE AS XHR LOOPAROUND
|
||||
// ====================================
|
||||
|
||||
if (strpos($fileOrig,"[NEW]")>0||$saveType=="saveAs") {
|
||||
$finalAction = strpos($fileOrig,"[NEW]")>0 ? "save as" : "save";
|
||||
$fileURL = isset($file) ? $file : "";
|
||||
$fileMDTURLPart = isset($_GET["fileMDT"]) && $_GET["fileMDT"]!="undefined" ? "&fileMDT=".numClean($_GET['fileMDT']) : "";
|
||||
$doNext = '
|
||||
top.ICEcoder.serverMessage();
|
||||
fileLoc = "'.$fileLoc.'";
|
||||
newFileName = top.ICEcoder.getInput("'.$t['Enter filename to...'].' "+(fileLoc!="" ? fileLoc : "/"),"");
|
||||
if (newFileName) {
|
||||
if (newFileName.substr(0,1)!="/") {newFileName = "/" + newFileName};
|
||||
newFileName = fileLoc + newFileName;
|
||||
if (top.ICEcoder.filesFrame.contentWindow.document.getElementById(newFileName.replace(/\\\//g,"|"))) {
|
||||
overwriteOK = top.ICEcoder.ask("'.$t['That file exists...'].'");
|
||||
}
|
||||
};
|
||||
|
||||
if ("undefined" == typeof newFileName || (newFileName && "undefined" == typeof overwriteOK) || ("undefined" != typeof overwriteOK && overwriteOK)) {
|
||||
newFileName = "'.$docRoot.'" + newFileName;
|
||||
saveURL = "lib/file-control-xhr.php?action=save'.$fileMDTURLPart.'&csrf='.$_GET["csrf"].'";
|
||||
|
||||
var xhr = top.ICEcoder.xhrObj();
|
||||
|
||||
xhr.onreadystatechange=function() {
|
||||
if (xhr.readyState==4 && xhr.status==200) {
|
||||
/* console.log(xhr.responseText); */
|
||||
var statusObj = JSON.parse(xhr.responseText);
|
||||
/* Set the actions end time and time taken in JSON object */
|
||||
statusObj.action.timeEnd = new Date().getTime();
|
||||
statusObj.action.timeTaken = statusObj.action.timeEnd - statusObj.action.timeStart;
|
||||
/* console.log(statusObj); */
|
||||
|
||||
if (statusObj.status.error) {
|
||||
top.ICEcoder.message(statusObj.status.errorMsg);
|
||||
} else {
|
||||
eval(statusObj.action.doNext);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
/* console.log(\'Calling \'+saveURL+\' via XHR\'); */
|
||||
xhr.open("POST",saveURL,true);
|
||||
xhr.setRequestHeader(\'Content-type\', \'application/x-www-form-urlencoded\');
|
||||
xhr.send(\'timeStart='.$_POST["timeStart"].'&file='.$fileURL.'&newFileName=\'+newFileName+\'&contents=\'+top.document.getElementById(\'saveTemp1\').value);
|
||||
top.ICEcoder.serverMessage("<b>'.$t['Saving'].'</b><br>" + "'.($finalAction == "Save" ? "newFileName" : "'".$fileName."'").'");
|
||||
} else {
|
||||
top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);
|
||||
}';
|
||||
|
||||
// ===================
|
||||
// FILE CONTENT SAVING
|
||||
// ===================
|
||||
|
||||
} elseif (isset($_POST['contents'])) {
|
||||
$finalAction = isset($_POST["newFileName"]) ? "save as" : "save";
|
||||
|
||||
// =================
|
||||
// FILE IS WRITEABLE
|
||||
// =================
|
||||
|
||||
if (!$demoMode && ((file_exists($file) && is_writable($file)) || isset($_POST['newFileName']) && $_POST['newFileName']!="")) {
|
||||
$filemtime = $serverType=="Linux" ? filemtime($file) : "1000000";
|
||||
|
||||
// =======================
|
||||
// MDT'S MATCH, WRITE FILE
|
||||
// =======================
|
||||
|
||||
if (!(isset($_GET['fileMDT']))||$filemtime==$_GET['fileMDT']) {
|
||||
// Newly created files have the perms set too
|
||||
$setPerms = (!file_exists($file)) ? true : false;
|
||||
// get old file contents, if file exists, and count stats on usage \n and \r there
|
||||
// in this case we can keep line endings, which file had before, without
|
||||
// making code version control systems going crazy about line endings change in whole file.
|
||||
$oldContents = file_exists($file)?file_get_contents($file):'';
|
||||
$unixNewLines = preg_match_all('/[^\r][\n]/u', $oldContents);
|
||||
$windowsNewLines = preg_match_all('/[\r][\n]/u', $oldContents);
|
||||
$fh = fopen($file, 'w') or die($t['Sorry, cannot save']);
|
||||
// replace \r\n (Windows), \r (old Mac) and \n (Linux) line endings with whatever we chose to be lineEnding
|
||||
$contents = $_POST['contents'];
|
||||
$contents = str_replace("\r\n", $ICEcoder["lineEnding"], $contents);
|
||||
$contents = str_replace("\r", $ICEcoder["lineEnding"], $contents);
|
||||
$contents = str_replace("\n", $ICEcoder["lineEnding"], $contents);
|
||||
if (($unixNewLines > 0) || ($windowsNewLines > 0)){
|
||||
if ($unixNewLines > $windowsNewLines){
|
||||
$contents = str_replace($ICEcoder["lineEnding"], "\n", $contents);
|
||||
} elseif ($windowsNewLines > $unixNewLines){
|
||||
$contents = str_replace($ICEcoder["lineEnding"], "\r\n", $contents);
|
||||
}
|
||||
}
|
||||
// Now write that content, close the file and clear the statcache
|
||||
fwrite($fh, $contents);
|
||||
fclose($fh);
|
||||
if ($setPerms) {
|
||||
chmod($file,octdec($ICEcoder['newFilePerms']));
|
||||
}
|
||||
clearstatcache();
|
||||
$filemtime = $serverType=="Linux" ? filemtime($file) : "1000000";
|
||||
$doNext = 'top.ICEcoder.openFileMDTs[top.ICEcoder.selectedTab-1]="'.$filemtime.'";';
|
||||
// Reload file manager, rename tab & remove old file highlighting if it was a new file
|
||||
if (isset($_POST['newFileName']) && $_POST['newFileName']!="") {
|
||||
$doNext .= 'top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'add\',\''.$fileLoc.'\',\''.$fileName.'\',false,false,false,\'file\');';
|
||||
$doNext .= 'top.ICEcoder.renameTab(top.ICEcoder.selectedTab,\''.$fileLoc."/".$fileName.'\');';
|
||||
if (!strpos($_REQUEST['file'],"[NEW]")) {
|
||||
// We're saving as a new file, so unhighlight the old name in the file manager if visible
|
||||
$doNext .= "fileLink = top.ICEcoder.filesFrame.contentWindow.document.getElementById('".str_replace("/","|",$fileLoc)."|".basename($_REQUEST['file'])."');";
|
||||
$doNext .= "if (fileLink) {fileLink.style.backgroundColor = top.ICEcoder.tabBGnormal; fileLink.style.color = top.ICEcoder.tabFGnormalFile};";
|
||||
}
|
||||
}
|
||||
// Reload previewWindow window if not a Markdown file
|
||||
// In doing this, we check on an interval for the page to be complete and if we last saw it loading
|
||||
// When we are done loading, so set the loading status to false and load plugins ontop...
|
||||
$doNext .= 'if (top.ICEcoder.previewWindow.location && top.ICEcoder.previewWindow.location.pathname.indexOf(".md")==-1) {
|
||||
top.ICEcoder.previewWindowLoading = false;
|
||||
top.ICEcoder.previewWindow.location.reload(true);
|
||||
|
||||
top.ICEcoder.checkPreviewWindowLoadingInt = setInterval(function() {
|
||||
if (top.ICEcoder.previewWindow.document.readyState != "loading" && top.ICEcoder.previewWindowLoading) {
|
||||
top.ICEcoder.previewWindowLoading = false;
|
||||
try {top.ICEcoder.doPesticide();} catch(err) {};
|
||||
try {top.ICEcoder.doStatsJS(\'save\');} catch(err) {};
|
||||
clearInterval(top.ICEcoder.checkPreviewWindowLoadingInt);
|
||||
} else {
|
||||
top.ICEcoder.previewWindowLoading = top.ICEcoder.previewWindow.document.readyState == "loading" ? true : false;
|
||||
}
|
||||
},4);
|
||||
|
||||
};';
|
||||
|
||||
// Copy over content to diff pane if we have that setting on
|
||||
$doNext .= '
|
||||
cM = top.ICEcoder.getcMInstance();
|
||||
cMdiff = top.ICEcoder.getcMdiffInstance();
|
||||
if (top.ICEcoder.updateDiffOnSave) {
|
||||
cMdiff.setValue(cM.getValue());
|
||||
};
|
||||
';
|
||||
|
||||
// Finally, set previous files, indicate changes, set saved points and redo tabs
|
||||
$doNext .= '
|
||||
top.ICEcoder.setPreviousFiles();
|
||||
setTimeout(function(){top.ICEcoder.indicateChanges()},4);
|
||||
top.ICEcoder.savedPoints[top.ICEcoder.selectedTab-1] = cM.changeGeneration();
|
||||
top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);';
|
||||
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-save.php");
|
||||
|
||||
// ======================================================
|
||||
// MDT'S DON'T MATCH, OFFER TO LOAD FILE & SHOW DIFF VIEW
|
||||
// ======================================================
|
||||
|
||||
} else {
|
||||
$loadedFile = toUTF8noBOM(file_get_contents($file,false,$context),true);
|
||||
$doNext = '
|
||||
var loadedFile = document.createElement("textarea");
|
||||
loadedFile.value = "'.str_replace('"','\\\"',str_replace("\r","\\\\r",str_replace("\n","\\\\n",str_replace("</textarea>","<ICEcoder:/:textarea>",$loadedFile)))).'";
|
||||
var refreshFile = top.ICEcoder.ask("'.$t['Sorry, this file...'].'\\\n'.$file.'\\\n\\\n'.$t['Reload this file...'].'");
|
||||
if (refreshFile) {
|
||||
var cM = top.ICEcoder.getcMInstance();
|
||||
var thisTab = top.ICEcoder.selectedTab;
|
||||
var userVersionFile = cM.getValue();
|
||||
/* Revert back to original */
|
||||
cM.setValue(loadedFile.value);
|
||||
top.ICEcoder.savedPoints[thisTab-1] = cM.changeGeneration();
|
||||
top.ICEcoder.openFileMDTs[top.ICEcoder.selectedTab-1] = "'.$filemtime.'";
|
||||
cM.clearHistory();
|
||||
/* Now for the new version in the diff pane */
|
||||
top.ICEcoder.setSplitPane(\'on\');
|
||||
var cMdiff = top.ICEcoder.getcMdiffInstance();
|
||||
cMdiff.setValue(userVersionFile);
|
||||
};';
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
|
||||
// ===================
|
||||
// FILE IS UNWRITEABLE
|
||||
// ===================
|
||||
|
||||
} else {
|
||||
$finalAction = "nothing";
|
||||
$doNext = "top.ICEcoder.message('".$t['Sorry, cannot save']."\\\\n".$file."');";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
}
|
||||
};
|
||||
|
||||
// ==========
|
||||
// NEW FOLDER
|
||||
// ==========
|
||||
|
||||
if (!$error && $_GET['action']=="newFolder") {
|
||||
if (!$demoMode && is_writable($docRoot.$fileLoc)) {
|
||||
mkdir($file, octdec($ICEcoder['newDirPerms']));
|
||||
// Reload file manager
|
||||
$doNext = 'top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'add\',\''.$fileLoc.'\',\''.$fileName.'\',false,false,false,\'folder\');';
|
||||
$finalAction = "newFolder";
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-new-dir.php");
|
||||
} else {
|
||||
$doNext = "top.ICEcoder.message('".$t['Sorry, cannot create...']."\\\\n".$fileLoc."');";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// ================
|
||||
// MOVE FILE/FOLDER
|
||||
// ================
|
||||
|
||||
if (!$error && $_GET['action']=="move") {
|
||||
$moved=false;
|
||||
$doNext = "";
|
||||
$srcDir = $docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName']));
|
||||
$tgtDir = $docRoot.$fileLoc."/".$fileName;
|
||||
if ($srcDir != $tgtDir && $fileLoc != "") {
|
||||
if (!$demoMode && is_writable($srcDir)) {
|
||||
if(rename($srcDir,$tgtDir)) {
|
||||
// Reload file manager
|
||||
$fileOrFolder = is_dir($docRoot.$fileLoc."/".$fileName) ? "folder" : "file";
|
||||
$doNext .= 'top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'move\',\''.$fileLoc.'\',\''.$fileName.'\',\'\',\''.str_replace($iceRoot,"",strClean(str_replace("|","/",$_GET['oldFileName']))).'\',false,\''.$fileOrFolder.'\');';
|
||||
$finalAction = "move";
|
||||
$moved=true;
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-dir-move.php");
|
||||
}
|
||||
}
|
||||
if (!$moved) {
|
||||
$doNext .= "top.ICEcoder.message('".$t['Sorry, cannot move']."\\\\n".str_replace("|","/",strClean($_GET['oldFileName']))."\\\\n\\\\n".$t['Maybe public write...']."');";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
} else {
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// ==================
|
||||
// RENAME FILE/FOLDER
|
||||
// ==================
|
||||
|
||||
if (!$error && $_GET['action']=="rename") {
|
||||
$renamed=false;
|
||||
if (!$demoMode && is_writable($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])))) {
|
||||
if(rename($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])),$docRoot.$fileLoc."/".$fileName)) {
|
||||
// Reload file manager
|
||||
$doNext = 'top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'rename\',\''.$fileLoc.'\',\''.$fileName.'\',\'\',\''.str_replace($iceRoot,"",strClean($_GET['oldFileName'])).'\');';
|
||||
$finalAction = "rename";
|
||||
$renamed=true;
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-dir-rename.php");
|
||||
}
|
||||
}
|
||||
if (!$renamed) {
|
||||
$doNext = "top.ICEcoder.message('".$t['Sorry, cannot rename']."\\\\n".strClean($_GET['oldFileName'])."\\\\n\\\\n".$t['Maybe public write...']."');";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// =================
|
||||
// PASTE FILE/FOLDER
|
||||
// =================
|
||||
|
||||
if (!$error && $_GET['action']=="paste") {
|
||||
$source = $file;
|
||||
$dest = str_replace("//","/",$docRoot.$iceRoot.strClean(str_replace("|","/",$_GET['location']))."/".basename($source));
|
||||
if (!$demoMode && is_writable(dirname($dest))) {
|
||||
if (is_dir($source)) {
|
||||
$fileOrFolder = "folder";
|
||||
if (!is_dir($dest)) {
|
||||
mkdir($dest, octdec($ICEcoder['newDirPerms']));
|
||||
} else {
|
||||
for ($i=2; $i<1000000000; $i++) {
|
||||
if (!is_dir($dest." (".$i.")")) {
|
||||
$dest = $dest." (".$i.")";
|
||||
mkdir($dest, octdec($ICEcoder['newDirPerms']));
|
||||
$i=1000000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($iterator = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS),
|
||||
RecursiveIteratorIterator::SELF_FIRST) as $item
|
||||
) {
|
||||
if ($item->isDir()) {
|
||||
mkdir($dest.DIRECTORY_SEPARATOR.$iterator->getSubPathName(), octdec($ICEcoder['newDirPerms']));
|
||||
} else {
|
||||
copy($item, $dest.DIRECTORY_SEPARATOR.$iterator->getSubPathName());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$fileOrFolder = "file";
|
||||
if (!file_exists($dest)) {
|
||||
copy($source, $dest);
|
||||
} else {
|
||||
for ($i=2; $i<1000000000; $i++) {
|
||||
if (!file_exists($dest." (".$i.")")) {
|
||||
$dest = $dest." (".$i.")";
|
||||
copy($source, $dest);
|
||||
$i=1000000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Reload file manager
|
||||
$doNext = 'top.ICEcoder.updateFileManagerList(\'add\',\''.strClean(str_replace("|","/",$_GET['location'])).'\',\''.basename($dest).'\',false,false,false,\''.$fileOrFolder.'\');';
|
||||
$finalAction = "pasteFile";
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-dir-paste.php");
|
||||
} else {
|
||||
$doNext = "top.ICEcoder.message('".$t['Sorry, cannot copy']." \\\\n".str_replace($docRoot,"",$source)."\\\\n ".$t['into']." \\\\n".str_replace($docRoot,"",$dest)."');";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// ==============
|
||||
// UPLOAD FILE(S)
|
||||
// ==============
|
||||
|
||||
if (!$error && $_GET['action']=="upload") {
|
||||
if (!$demoMode) {
|
||||
$doNext = "";
|
||||
class fileUploader {
|
||||
public function __construct($uploads) {
|
||||
global $docRoot,$iceRoot,$ICEcoder,$doNext;
|
||||
$uploadDir=$docRoot.$iceRoot.str_replace("..","",str_replace("|","/",strClean($_POST['folder'])."/"));
|
||||
foreach($uploads as $current) {
|
||||
$this->uploadFile=$uploadDir.$current->name;
|
||||
$fileName = $current->name;
|
||||
// Get & set existing perms for existing files, or set to newFilePerms setting for new files
|
||||
if (file_exists($this->uploadFile)) {
|
||||
$chmodInfo = substr(sprintf('%o', fileperms($this->uploadFile)), -4);
|
||||
$setPerms = substr($chmodInfo,1,3); // reduces 0755 down to 755
|
||||
} else {
|
||||
$setPerms = $ICEcoder['newFilePerms'];
|
||||
}
|
||||
if ($this->upload($current,$this->uploadFile,$setPerms)) {
|
||||
$doNext .= 'top.ICEcoder.updateFileManagerList(\'add\',top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,\'/\'),\''.str_replace("'","\'",$fileName).'\',false,false,true,\'file\'); top.ICEcoder.serverMessage("'.$t['Uploaded file(s) OK'].'");setTimeout(function(){top.ICEcoder.serverMessage();},2000);';
|
||||
$finalAction = "upload";
|
||||
} else {
|
||||
$doNext .= "top.ICEcoder.message('".$t['Sorry, cannot upload']." \\\\n".$fileName."\\\\n ".$t['into']." \\\\n'+top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,'/'));";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function upload($current,$uploadFile,$setPerms){
|
||||
if(move_uploaded_file($current->tmp_name,$uploadFile)){
|
||||
chmod($uploadFile,octdec($setPerms));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getDetails($fileArr) {
|
||||
foreach($fileArr['name'] as $keyee => $info) {
|
||||
$uploads[$keyee]->name=$fileArr['name'][$keyee];
|
||||
$uploads[$keyee]->type=$fileArr['type'][$keyee];
|
||||
$uploads[$keyee]->tmp_name=$fileArr['tmp_name'][$keyee];
|
||||
$uploads[$keyee]->error=$fileArr['error'][$keyee];
|
||||
}
|
||||
return $uploads;
|
||||
}
|
||||
|
||||
if($_FILES['filesInput']){
|
||||
$uploads = getDetails($_FILES['filesInput']);
|
||||
$fileUploader=new fileUploader($uploads);
|
||||
}
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-upload.php");
|
||||
} else {
|
||||
$doNext .= "top.ICEcoder.message('".$t['Sorry, cannot upload...']."');";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
|
||||
$doNext .= "top.ICEcoder.hideFileMenu();top.document.getElementById('fileInput').value='';top.ICEcoder.showHide('hide',top.document.getElementById('loadingMask'));";
|
||||
|
||||
// Upload is not handled by XHR methods, but form post, so we need to manually trigger $doNext in a script tag
|
||||
echo "<script>".$doNext."</script>";
|
||||
};
|
||||
|
||||
// ========================
|
||||
// DELETE FILE(S)/FOLDER(S)
|
||||
// ========================
|
||||
|
||||
if (!$error && $_GET['action']=="delete") {
|
||||
$doNext = "";
|
||||
$filesArray = explode(";",$file); // May contain more than one file here
|
||||
for ($i=0;$i<count($filesArray);$i++) {
|
||||
$fullPath = str_replace($docRoot,"",$filesArray[$i]);
|
||||
$fullPath = str_replace($iceRoot,"",$fullPath);
|
||||
$fullPath = $docRoot.$iceRoot.$fullPath;
|
||||
|
||||
if (rtrim($fullPath,"/") == rtrim($docRoot,"/")) {
|
||||
$doNext .= "top.ICEcoder.message('".$t['Sorry, cannot delete...']."');";
|
||||
} else if (!$demoMode && is_writable($fullPath)) {
|
||||
is_dir($fullPath)
|
||||
? rrmdir($fullPath)
|
||||
: unlink($fullPath);
|
||||
$fileName = basename($fullPath);
|
||||
$fileLoc = dirname(str_replace($docRoot,"",$fullPath));
|
||||
if ($fileLoc=="" || $fileLoc=="\\") {$fileLoc="/";};
|
||||
// Reload file manager
|
||||
$doNext .= 'top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'delete\',\''.$fileLoc.'\',\''.$fileName.'\');';
|
||||
$finalAction = "delete";
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-dir-delete.php");
|
||||
} else {
|
||||
$doNext .= "top.ICEcoder.message('".$t['Sorry, cannot delete']."\\\\n".str_replace($docRoot,"",$fullPath)."');";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// The function to recursively remove folders & files
|
||||
function rrmdir($dir) {
|
||||
if (is_dir($dir)) {
|
||||
$objects = scandir($dir);
|
||||
foreach ($objects as $object) {
|
||||
if ($object != "." && $object != "..") {
|
||||
filetype($dir."/".$object) == "dir"
|
||||
? rrmdir($dir."/".$object)
|
||||
: unlink($dir."/".$object);
|
||||
}
|
||||
}
|
||||
reset($objects);
|
||||
rmdir($dir);
|
||||
}
|
||||
};
|
||||
|
||||
// ======================
|
||||
// REPLACE TEXT IN A FILE
|
||||
// ======================
|
||||
|
||||
if (!$error && $_GET['action']=="replaceText") {
|
||||
$doNext = "";
|
||||
if (!$demoMode && is_writable($file)) {
|
||||
$loadedFile = toUTF8noBOM(file_get_contents($file,false,$context),true);
|
||||
$newContent = str_replace(strClean($_GET['find']),strClean($_GET['replace']),$loadedFile);
|
||||
$fh = fopen($file, 'w') or die($t['Sorry, cannot save']);
|
||||
fwrite($fh, $newContent);
|
||||
fclose($fh);
|
||||
$finalAction = "replaceText";
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-replace-text.php");
|
||||
} else {
|
||||
$doNext .= "top.ICEcoder.message('".$t['Sorry, cannot replace...']."\\\\n".$file."');";
|
||||
$finalAction = "nothing";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// ==========================
|
||||
// GET CONTENTS OF REMOTE URL
|
||||
// ==========================
|
||||
|
||||
if (!$error && $_GET['action']=="getRemoteFile") {
|
||||
$doNext = "";
|
||||
if ($remoteFile = toUTF8noBOM(file_get_contents($file,false,$context),true)) {
|
||||
// replace \r\n (Windows), \r (old Mac) and \n (Linux) line endings with whatever we chose to be lineEnding
|
||||
$remoteFile = str_replace("\r\n", $ICEcoder["lineEnding"], $remoteFile);
|
||||
$remoteFile = str_replace("\r", $ICEcoder["lineEnding"], $remoteFile);
|
||||
$remoteFile = str_replace("\n", $ICEcoder["lineEnding"], $remoteFile);
|
||||
$doNext .= 'top.ICEcoder.newTab();';
|
||||
$doNext .= 'top.ICEcoder.getcMInstance().setValue(\''.str_replace("\r","",str_replace("\t","\\\\t",str_replace("\n","\\\\n",str_replace("'","\\\\'",str_replace("\\","\\\\",preg_quote($remoteFile)))))).'\');';
|
||||
$finalAction = "getRemoteFile";
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-get-remote-file.php");
|
||||
} else {
|
||||
$finalAction = "nothing";
|
||||
$doNext .= 'top.ICEcoder.message(\''.$t['Sorry, could not...'].' '.$file.'\');';
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
};
|
||||
|
||||
// =======================
|
||||
// CHANGING FILE/DIR PERMS
|
||||
// =======================
|
||||
|
||||
if (!$error && $_GET['action']=="perms") {
|
||||
if (!$demoMode && is_writable($file)) {
|
||||
chmod($file,octdec(numClean($_GET['perms'])));
|
||||
// Reload file manager
|
||||
$doNext = 'top.ICEcoder.updateFileManagerList(\'chmod\',\''.$fileLoc.'\',\''.$fileName.'\',\''.numClean($_GET['perms']).'\');';
|
||||
$finalAction = "perms";
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-dir-perms.php");
|
||||
} else {
|
||||
$finalAction = "nothing";
|
||||
$doNext = "top.ICEcoder.message('".$t['Sorry, cannot change...']." \\n".strClean($file)."');";
|
||||
}
|
||||
$doNext .= 'top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// ===================
|
||||
// JSON DATA TO RETURN
|
||||
// ===================
|
||||
|
||||
// No $filemtime yet? Get it now!
|
||||
if (!isset($filemtime)) {
|
||||
$filemtime = $serverType=="Linux" ? filemtime($file) : "1000000";
|
||||
}
|
||||
|
||||
echo '{
|
||||
"file": {
|
||||
"absPath": "'.$file.'",
|
||||
"relPath": "'.$fileLoc.'/'.$fileName.'",
|
||||
"name": "'.$fileName.'",
|
||||
"path": "'.dirname($file).'",
|
||||
"bytes": "'.filesize($file).'",
|
||||
"modifiedDT": "'.$filemtime.'"
|
||||
},
|
||||
"action": {
|
||||
"initial" : "'.$_GET["action"].'",
|
||||
"final" : "'.$finalAction.'",
|
||||
"timeStart": '.$_POST["timeStart"].',
|
||||
"timeEnd": 0,
|
||||
"timeTaken": 0,
|
||||
"csrf": "'.$_GET["csrf"].'",
|
||||
"doNext" : "'.preg_replace('/\r|\n/','',str_replace(' ','',str_replace('"','\"',$doNext))).'top.ICEcoder.switchMode();"
|
||||
},
|
||||
"status": {
|
||||
"error" : '.($error ? 'true' : 'false').',
|
||||
"errorStr" : "'.$errorStr.'",
|
||||
"errorMsg" : "'.$errorMsg.'"
|
||||
}
|
||||
}';
|
||||
?>
|
||||
@@ -1,4 +1,13 @@
|
||||
<?php include("settings.php");?>
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['file-control'];
|
||||
?>
|
||||
<?php if ($_SESSION['githubDiff']) { ?>
|
||||
<script src="github.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<script src="underscore-min.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<?php ;}; ?>
|
||||
<script>
|
||||
<?php
|
||||
// Get the save type if any
|
||||
$saveType = isset($_GET['saveType']) ? strClean($_GET['saveType']) : "";
|
||||
@@ -7,336 +16,98 @@ $saveType = isset($_GET['saveType']) ? strClean($_GET['saveType']) : "";
|
||||
$file = str_replace("|","/",strClean(
|
||||
isset($_POST['newFileName']) && $_POST['newFileName']!=""
|
||||
? $_POST['newFileName']
|
||||
: $_GET['file']
|
||||
: $_REQUEST['file']
|
||||
));
|
||||
|
||||
// Establish the actual name as we may have HTML entities in filename
|
||||
$file = html_entity_decode($file);
|
||||
|
||||
// Put the original $file var aside for use
|
||||
$fileOrig = $file;
|
||||
|
||||
// Trim any +'s or spaces from the end of file
|
||||
$file = rtrim(rtrim($file,'+'),' ');
|
||||
|
||||
// Make $file a full path and establish the $fileLoc and $fileName
|
||||
if (strpos($file,$docRoot)===false && $_GET['action']!="getRemoteFile") {$file=str_replace("|","/",$docRoot.$iceRoot.$file);};
|
||||
// Also remove [NEW] from $file, we can consider $_GET['action'] or $fileOrig to pick that up
|
||||
$file = rtrim($file,'[NEW]');
|
||||
|
||||
// Make each path in $file a full path (; seperated list)
|
||||
$allFiles = explode(";",$file);
|
||||
for ($i=0; $i<count($allFiles); $i++) {
|
||||
if (strpos($allFiles[$i],$docRoot)===false && $_GET['action']!="getRemoteFile") {
|
||||
$allFiles[$i]=str_replace("|","/",$docRoot.$iceRoot.$allFiles[$i]);
|
||||
}
|
||||
};
|
||||
$file = implode(";",$allFiles);
|
||||
|
||||
// Establish the $fileLoc and $fileName (used in single file cases, eg opening. Multiple file cases, eg deleting, is worked out in that loop)
|
||||
$fileLoc = substr(str_replace($docRoot,"",$file),0,strrpos(str_replace($docRoot,"",$file),"/"));
|
||||
$fileName = basename($file);
|
||||
|
||||
// Check through all files to make sure they're valid/safe
|
||||
$allFiles = explode(";",$file);
|
||||
for ($i=0; $i<count($allFiles); $i++) {
|
||||
|
||||
// Uncomment to alert and console.log the action and file, useful for debugging
|
||||
// echo ";alert('".xssClean($_GET['action'],"html")." : ".$allFiles[$i]."');console.log('".xssClean($_GET['action'],"html")." : ".$allFiles[$i]."');";
|
||||
|
||||
// Die if the file requested isn't something we expect
|
||||
if(
|
||||
// A local folder that isn't the doc root or starts with the doc root
|
||||
($_GET['action']!="getRemoteFile" &&
|
||||
rtrim($allFiles[$i],"/") !== rtrim($docRoot,"/") &&
|
||||
strpos(realpath(rtrim(dirname($allFiles[$i]),"/")),realpath(rtrim($docRoot,"/"))) !== 0
|
||||
) ||
|
||||
// Or a remote URL that doesn't start http
|
||||
($_GET['action']=="getRemoteFile" && strpos($allFiles[$i],"http") !== 0)
|
||||
) {
|
||||
die("alert('Sorry! - problem with file requested');</script>");
|
||||
};
|
||||
}
|
||||
|
||||
// If we're due to open a file...
|
||||
if ($_GET['action']=="load") {
|
||||
echo '<script>action="load";</script>';
|
||||
|
||||
echo 'action="load";';
|
||||
$lineNumber = max(isset($_REQUEST['lineNumber'])?intval($_REQUEST['lineNumber']):1, 1);
|
||||
if (file_exists($file)) {
|
||||
$finfo = "";
|
||||
$finfo = "text";
|
||||
// Determine what to do based on mime type
|
||||
if (function_exists('finfo_open')) {
|
||||
$finfoMIME = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$finfoMIME = finfo_open(FILEINFO_MIME);
|
||||
$finfo = finfo_file($finfoMIME, $file);
|
||||
finfo_close($finfoMIME);
|
||||
} else {
|
||||
$fileExt = pathinfo($file, PATHINFO_EXTENSION);
|
||||
if (array_search($fileExt,array("coffee","css","htm","html","js","less","md","php","py","rb","ruby","txt","xml"))!==false) {$finfo = "text";};
|
||||
$fileExt = explode(" ",pathinfo($file, PATHINFO_EXTENSION));
|
||||
$fileExt = $fileExt[0];
|
||||
if (array_search($fileExt,array("gif","jpg","jpeg","png"))!==false) {$finfo = "image";};
|
||||
if (array_search($fileExt,array("doc","docx","ppt","rtf","pdf","zip","tar","gz","swf","asx","asf","midi","mp3","wav","aiff","mov","qt","wmv","mp4","odt","odg","odp"))!==false) {$finfo = "other";};
|
||||
}
|
||||
if (strpos($finfo,"text")===0 || strpos($finfo,"empty")!==false) {
|
||||
echo '<script>fileType="text";';
|
||||
echo 'top.ICEcoder.shortURL = top.ICEcoder.rightClickedFile = top.ICEcoder.thisFileFolderLink = "'.$fileLoc."/".$fileName.'";';
|
||||
echo '</script>';
|
||||
if (strpos($finfo,"text")===0 || strpos($finfo, "application/xml")===0 || strpos($finfo,"empty")!==false) {
|
||||
echo 'fileType="text";';
|
||||
echo 'top.ICEcoder.shortURL = top.ICEcoder.thisFileFolderLink = "'.$fileLoc."/".$fileName.'";';
|
||||
$loadedFile = toUTF8noBOM(file_get_contents($file,false,$context),true);
|
||||
echo '<textarea name="loadedFile" id="loadedFile">'.str_replace("</textarea>","<ICEcoder:/:textarea>",str_replace("&","&",$loadedFile)).'</textarea>';
|
||||
echo '</script><textarea name="loadedFile" id="loadedFile">'.htmlentities($loadedFile).'</textarea><script>';
|
||||
// Run our custom processes
|
||||
include_once("../processes/on-file-load.php");
|
||||
} else if (strpos($finfo,"image")===0) {
|
||||
echo '<script>fileType="image";fileName=\''.$fileLoc."/".$fileName.'\'</script>';
|
||||
echo 'fileType="image";fileName=\''.$fileLoc."/".$fileName.'\';';
|
||||
} else {
|
||||
echo '<script>fileType="other";window.open(\'http://'.$_SERVER['SERVER_NAME'].$fileLoc."/".$fileName.'\');</script>';
|
||||
echo 'fileType="other";window.open(\'http://'.$_SERVER['SERVER_NAME'].$fileLoc."/".$fileName.'\');';
|
||||
};
|
||||
} else {
|
||||
echo '<script>fileType="nothing"; top.ICEcoder.message(\'Sorry, '.$fileLoc."/".$fileName.' doesn\\\'t seem to exist on the server\');</script>';
|
||||
echo 'fileType="nothing"; top.ICEcoder.message(\''.$t['Sorry'].', '.$fileLoc."/".$fileName.' '.$t['does not seem...'].'\');';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// Get the contents of a remote URL
|
||||
if ($_GET['action']=="getRemoteFile") {
|
||||
if ($remoteFile = toUTF8noBOM(file_get_contents($file,false,$context),true)) {
|
||||
// replace \r\n (Windows), \r (old Mac) and \n (Linux) line endings with whatever we chose to be lineEnding
|
||||
$remoteFile = str_replace("\r\n", $ICEcoder["lineEnding"], $remoteFile);
|
||||
$remoteFile = str_replace("\r", $ICEcoder["lineEnding"], $remoteFile);
|
||||
$remoteFile = str_replace("\n", $ICEcoder["lineEnding"], $remoteFile);
|
||||
echo '<script>top.ICEcoder.newTab();</script>';
|
||||
echo '<textarea name="remoteFile" id="remoteFile">'.str_replace("</textarea>","<ICEcoder:/:textarea>",str_replace("&","&",$remoteFile)).'</textarea>';
|
||||
echo '<script>top.ICEcoder.getcMInstance().setValue(document.getElementById("remoteFile").value);action="getRemoteFile";</script>';
|
||||
} else {
|
||||
echo '<script>action="nothing"; top.ICEcoder.message(\'Sorry, could\\\'t get contents of '.$file.'\');</script>';
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// If we're due to add a new folder...
|
||||
if ($_GET['action']=="newFolder") {
|
||||
if (!$demoMode && is_writable($docRoot.$fileLoc)) {
|
||||
mkdir($file, 0705);
|
||||
// Reload file manager
|
||||
echo '<script>top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'add\',\''.$fileLoc.'\',\''.$fileName.'\');action="newFolder";</script>';
|
||||
} else {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot create folder at\\n".$fileLoc."')</script>";
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// If we're due to paste a new file...
|
||||
if ($_GET['action']=="paste") {
|
||||
$source = $file;
|
||||
$dest = str_replace("//","/",$docRoot.strClean(str_replace("|","/",$_GET['location']))."/".basename($source));
|
||||
if (!$demoMode && is_writable(dirname($dest))) {
|
||||
if (is_dir($source)) {
|
||||
if (!is_dir($dest)) {
|
||||
mkdir($dest, 0705);
|
||||
} else {
|
||||
for ($i=2; $i<1000000000; $i++) {
|
||||
if (!is_dir($dest." (".$i.")")) {
|
||||
$dest = $dest." (".$i.")";
|
||||
mkdir($dest, 0705);
|
||||
$i=1000000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($iterator = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS),
|
||||
RecursiveIteratorIterator::SELF_FIRST) as $item
|
||||
) {
|
||||
if ($item->isDir()) {
|
||||
mkdir($dest.DIRECTORY_SEPARATOR.$iterator->getSubPathName(), 0705);
|
||||
} else {
|
||||
copy($item, $dest.DIRECTORY_SEPARATOR.$iterator->getSubPathName());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!file_exists($dest)) {
|
||||
copy($source, $dest);
|
||||
} else {
|
||||
for ($i=2; $i<1000000000; $i++) {
|
||||
if (!file_exists($dest." (".$i.")")) {
|
||||
$dest = $dest." (".$i.")";
|
||||
copy($source, $dest);
|
||||
$i=1000000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Reload file manager
|
||||
echo '<script>top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'add\',\''.strClean(str_replace("|","/",$_GET['location'])).'\',\''.basename($dest).'\');action="pasteFile";</script>';
|
||||
} else {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot copy \\n".str_replace($docRoot,"",$source)."\\n into \\n".str_replace($docRoot,"",$dest)."')</script>";
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// If we're due to upload files...
|
||||
if ($_GET['action']=="upload") {
|
||||
if (!$demoMode) {
|
||||
class fileUploader {
|
||||
public function __construct($uploads) {
|
||||
global $docRoot;
|
||||
$uploadDir=$docRoot.$iceRoot.str_replace("..","",str_replace("|","/",strClean($_POST['folder'])."/"));
|
||||
foreach($uploads as $current) {
|
||||
$this->uploadFile=$uploadDir.$current->name;
|
||||
$fileName = $current->name;
|
||||
if ($this->upload($current,$this->uploadFile)) {
|
||||
echo '<script>action="upload"; top.ICEcoder.updateFileManagerList(\'add\',top.ICEcoder.rightClickedFile.replace(/\|/g,\'/\'),\''.$fileName.'\',false,false,true); top.ICEcoder.serverMessage("Uploaded file(s) OK");setTimeout(function(){top.ICEcoder.serverMessage();},2000);</script>';
|
||||
} else {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot upload \\n".$fileName."\\n into \\n'+top.ICEcoder.rightClickedFile.replace(/\|/g,'/'))</script>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function upload($current,$uploadFile){
|
||||
if(move_uploaded_file($current->tmp_name,$uploadFile)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getDetails($fileArr) {
|
||||
foreach($fileArr['name'] as $keyee => $info) {
|
||||
$uploads[$keyee]->name=$fileArr['name'][$keyee];
|
||||
$uploads[$keyee]->type=$fileArr['type'][$keyee];
|
||||
$uploads[$keyee]->tmp_name=$fileArr['tmp_name'][$keyee];
|
||||
$uploads[$keyee]->error=$fileArr['error'][$keyee];
|
||||
}
|
||||
return $uploads;
|
||||
}
|
||||
|
||||
if($_FILES['filesInput']){
|
||||
$uploads = getDetails($_FILES['filesInput']);
|
||||
$fileUploader=new fileUploader($uploads);
|
||||
}
|
||||
} else {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot upload whilst in demo mode');</script>";
|
||||
}
|
||||
|
||||
echo "<script>top.ICEcoder.hideFileMenu();top.document.getElementById('fileInput').value='';top.ICEcoder.showHide('hide',top.document.getElementById('loadingMask'));</script>";
|
||||
}
|
||||
|
||||
// If we're due to rename a file/folder...
|
||||
if ($_GET['action']=="rename") {
|
||||
if (!$demoMode && is_writable($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])))) {
|
||||
if(rename($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])),$docRoot.$fileLoc."/".$fileName)) {
|
||||
// Reload file manager
|
||||
echo '<script>top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'rename\',\''.$fileLoc.'\',\''.$fileName.'\',\'\',\''.str_replace($iceRoot,"",strClean($_GET['oldFileName'])).'\');';
|
||||
echo 'action="rename";</script>';
|
||||
$renamed=true;
|
||||
} else {
|
||||
$renamed=false;
|
||||
}
|
||||
} else {
|
||||
$renamed=false;
|
||||
}
|
||||
if (!$renamed) {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot rename\\n".strClean($_GET['oldFileName'])."\\n\\nMaybe public write permissions needed on this or parent folder?');</script>";
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// If we're due to replace text in a file...
|
||||
if ($_GET['action']=="replaceText") {
|
||||
if (!$demoMode && is_writable(str_replace("|","/",strClean($_GET['fileRef'])))) {
|
||||
$file = str_replace("|","/",strClean($_GET['fileRef']));
|
||||
$loadedFile = toUTF8noBOM(file_get_contents($file,false,$context),true);
|
||||
$newContent = str_replace(strClean($_GET['find']),strClean($_GET['replace']),$loadedFile);
|
||||
$fh = fopen($file, 'w') or die("Sorry, cannot save");
|
||||
fwrite($fh, $newContent);
|
||||
fclose($fh);
|
||||
echo '<script>action="replaceText";</script>';
|
||||
} else {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot replace text in\\n".strClean($_GET['fileRef'])."');</script>";
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// If we're due to change permissions on a file/folder...
|
||||
if ($_GET['action']=="perms") {
|
||||
if (!$demoMode && is_writable($file)) {
|
||||
chmod($file,octdec(numClean($_GET['perms'])));
|
||||
// Reload file manager
|
||||
echo '<script>top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'chmod\',\''.$fileLoc.'\',\''.$fileName.'\',\''.numClean($_GET['perms']).'\');';
|
||||
echo 'action="perms";</script>';
|
||||
} else {
|
||||
echo "<script>action='nothing'; top.ICEcoder.message('Sorry, cannot change permissions on \\n".strClean($file)."');</script>";
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// If we're due to delete a file...
|
||||
if ($_GET['action']=="delete") {
|
||||
$filesArray = explode(";",$file); // May contain more than one file here
|
||||
for ($i=0;$i<=count($filesArray)-1;$i++) {
|
||||
$fullPath = str_replace($docRoot,"",$filesArray[$i]);
|
||||
$fullPath = str_replace($iceRoot,"",$fullPath);
|
||||
$fullPath = $docRoot.$iceRoot.$fullPath;
|
||||
if (!$demoMode && is_writable($fullPath)) {
|
||||
is_dir($fullPath)
|
||||
? rrmdir($fullPath)
|
||||
: unlink($fullPath);
|
||||
$fileName = basename($fullPath);
|
||||
$fileLoc = dirname(str_replace($docRoot,"",$fullPath));
|
||||
if ($fileLoc=="" || $fileLoc=="\\") {$fileLoc="/";};
|
||||
// Reload file manager
|
||||
echo '<script>top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'delete\',\''.$fileLoc.'\',\''.$fileName.'\');';
|
||||
echo 'action="delete";</script>';
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('Sorry can\\'t delete\\n".str_replace($docRoot,"",$fullPath)."');</script>";
|
||||
}
|
||||
echo '<script>action="nothing";</script>';
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
|
||||
// The function to recursively remove folders & files
|
||||
function rrmdir($dir) {
|
||||
if (is_dir($dir)) {
|
||||
$objects = scandir($dir);
|
||||
foreach ($objects as $object) {
|
||||
if ($object != "." && $object != "..") {
|
||||
filetype($dir."/".$object) == "dir"
|
||||
? rrmdir($dir."/".$object)
|
||||
: unlink($dir."/".$object);
|
||||
}
|
||||
}
|
||||
reset($objects);
|
||||
rmdir($dir);
|
||||
}
|
||||
}
|
||||
|
||||
if ($_GET['action']=="save") {
|
||||
echo '<script>action="save";</script>';
|
||||
// on the form posting via a reload, save the file
|
||||
if (isset($_POST['contents'])) {
|
||||
if (!$demoMode && ((file_exists($file) && is_writable($file)) || isset($_POST['newFileName']) && $_POST['newFileName']!="")) {
|
||||
$filemtime = $serverType=="Linux" ? filemtime($file) : "1000000";
|
||||
if (!(isset($_GET['fileMDT']))||$filemtime==$_GET['fileMDT']) {
|
||||
$fh = fopen($file, 'w') or die("Sorry, cannot save");
|
||||
// replace \r\n (Windows), \r (old Mac) and \n (Linux) line endings with whatever we chose to be lineEnding
|
||||
$contents = $_POST['contents'];
|
||||
$contents = str_replace("\r\n", $ICEcoder["lineEnding"], $contents);
|
||||
$contents = str_replace("\r", $ICEcoder["lineEnding"], $contents);
|
||||
$contents = str_replace("\n", $ICEcoder["lineEnding"], $contents);
|
||||
// Now write that content, close the file and clear the statcache
|
||||
fwrite($fh, $contents);
|
||||
fclose($fh);
|
||||
clearstatcache();
|
||||
$filemtime = $serverType=="Linux" ? filemtime($file) : "1000000";
|
||||
echo '<script>top.ICEcoder.openFileMDTs[top.ICEcoder.selectedTab-1]="'.$filemtime.'";</script>';
|
||||
// Reload file manager, rename tab & remove old file highlighting if it was a new file
|
||||
if (isset($_POST['newFileName']) && $_POST['newFileName']!="") {
|
||||
echo '<script>top.ICEcoder.selectedFiles=[];top.ICEcoder.updateFileManagerList(\'add\',\''.$fileLoc.'\',\''.$fileName.'\');';
|
||||
echo 'top.ICEcoder.renameTab(top.ICEcoder.selectedTab,\''.$fileLoc."/".$fileName.'\');</script>';
|
||||
if (!strpos($_GET['file'],"[NEW]")) {
|
||||
// We're saving as a new file, so unhighlight the old name in the file manager if visible
|
||||
echo "<script>fileLink = top.ICEcoder.filesFrame.contentWindow.document.getElementById('".str_replace("/","|",$fileLoc)."|".basename($_GET['file'])."');</script>";
|
||||
echo "<script>if (fileLink) {fileLink.style.backgroundColor = top.ICEcoder.tabBGnormal; fileLink.style.color = top.ICEcoder.tabFGnormalFile};</script>";
|
||||
}
|
||||
}
|
||||
// Reload previewWindow window if not a Markdown file
|
||||
echo '<script>if (top.ICEcoder.previewWindow.location && top.ICEcoder.previewWindow.location.pathname.indexOf(".md")==-1) {top.ICEcoder.previewWindow.location.reload()};</script>';
|
||||
echo '<script>top.ICEcoder.setPreviousFiles();action="doneSave";</script>';
|
||||
} else {
|
||||
$loadedFile = toUTF8noBOM(file_get_contents($file,false,$context),true);
|
||||
echo '<textarea name="loadedFile" id="loadedFile">'.str_replace("</textarea>","<ICEcoder:/:textarea>",htmlentities($loadedFile)).'</textarea>';
|
||||
echo '<textarea name="userVersionFile" id="userVersionFile"></textarea>';
|
||||
?>
|
||||
<script>
|
||||
var refreshFile = top.ICEcoder.ask('Sorry, this file has changed, cannot save\n<?php echo $file;?>\n\nReload this file and copy your version to a new document?');
|
||||
if (refreshFile) {
|
||||
var cM = top.ICEcoder.getcMInstance();
|
||||
var thisTab = top.ICEcoder.selectedTab;
|
||||
document.getElementById('userVersionFile').value = cM.getValue();
|
||||
// Revert back to original
|
||||
cM.setValue(document.getElementById('loadedFile').value);
|
||||
top.ICEcoder.changedContent[thisTab-1] = 0;
|
||||
top.ICEcoder.openFileMDTs[top.ICEcoder.selectedTab-1] = "<?php echo $filemtime; ?>";
|
||||
cM.clearHistory();
|
||||
// Now for the new file
|
||||
top.ICEcoder.newTab();
|
||||
cM = top.ICEcoder.getcMInstance();
|
||||
cM.setValue(document.getElementById('userVersionFile').value);
|
||||
cM.clearHistory();
|
||||
// Finally, switch back to original tab
|
||||
top.ICEcoder.switchTab(thisTab);
|
||||
}
|
||||
action='nothing';
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
} else {
|
||||
echo "<script>action='nothing';top.ICEcoder.message('Sorry, cannot write\\n".$file."')</script>";
|
||||
}
|
||||
echo '<script>top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);</script>';
|
||||
}
|
||||
};
|
||||
?>
|
||||
<script>
|
||||
if (action=="load") {
|
||||
if (fileType=="text") {
|
||||
setTimeout(function() {
|
||||
if (!top.ICEcoder.content.contentWindow.createNewCMInstance) {
|
||||
console.log('There was tech hiccup, likely something wasn\'t quite ready. So ICEcoder reloaded it\'s file control again.');
|
||||
window.location.reload();
|
||||
console.log('<?php echo $t['There was a...']; ?>');
|
||||
window.location.reload(true);
|
||||
<?php
|
||||
if (file_exists($file)) {
|
||||
?>
|
||||
@@ -351,24 +122,58 @@ if (action=="load") {
|
||||
top.ICEcoder.setLayout();
|
||||
top.ICEcoder.content.contentWindow.createNewCMInstance(top.ICEcoder.nextcMInstance);
|
||||
|
||||
<?php if ($_SESSION['githubDiff']) { ?>
|
||||
// If we're in GitHub diff mode and have a split pane display, get the content for the diff pane
|
||||
if (top.ICEcoder.githubDiff && top.ICEcoder.splitPane) {
|
||||
<?php
|
||||
// Get our GitHub relative site path & local path
|
||||
$ghRemoteURLPos = array_search($ICEcoder["root"],$ICEcoder['githubLocalPaths']);
|
||||
|
||||
$ghLocalURLPaths = $ICEcoder['githubLocalPaths'];
|
||||
$ghLocalPath = $ghLocalURLPaths[$ghRemoteURLPos];
|
||||
|
||||
$ghRemoteURLPaths = $ICEcoder['githubRemotePaths'];
|
||||
$ghRemoteURL = $ghRemoteURLPaths[$ghRemoteURLPos];
|
||||
|
||||
$ghRemoteURL = str_replace("https://github.com/","",$ghRemoteURL);
|
||||
$ghRemoteURL = str_replace("/","|",$ghRemoteURL);
|
||||
|
||||
// If the file is not in a sub-sub dir of the doc root
|
||||
if (!strpos($fileLoc,"/",1)) {
|
||||
// The file path is simply the file name in the root
|
||||
$ghFilePath = $fileName;
|
||||
} else {
|
||||
// We need to get rid of the root dir and trailing slash
|
||||
$ghFilePath = substr(str_replace($ghLocalPath,"",$fileLoc),1);
|
||||
// If it's not within a sub-dir, it's just the filename, otherwise prefix with dir path and pipe
|
||||
$ghFilePath = $ghFilePath == "" ? $fileName : $ghFilePath."|".$fileName;
|
||||
}
|
||||
?>
|
||||
|
||||
top.ICEcoder.filesFrame.contentWindow.frames['processControl'].location.href = "github.php?action=read&repo=<?php echo $ghRemoteURL;?>&filePath=<?php echo $ghFilePath;?>&csrf="+top.ICEcoder.csrf;
|
||||
}
|
||||
<?php ;}; ?>
|
||||
|
||||
// Set the value & innerHTML of the code textarea to that of our loaded file plus make it visible (it's hidden on ICEcoder's load)
|
||||
top.ICEcoder.switchMode();
|
||||
cM = top.ICEcoder.getcMInstance();
|
||||
cM.setValue(document.getElementById('loadedFile').value);
|
||||
top.ICEcoder.savedPoints[top.ICEcoder.selectedTab-1] = cM.changeGeneration();
|
||||
top.document.getElementById('content').style.visibility='visible';
|
||||
top.ICEcoder.switchTab(top.ICEcoder.selectedTab);
|
||||
cM.focus();
|
||||
top.ICEcoder.switchTab(top.ICEcoder.selectedTab,'noFocus');
|
||||
setTimeout(function(){top.ICEcoder.filesFrame.contentWindow.focus();},0);
|
||||
|
||||
// Then clean it up, set the text cursor, update the display and get the character data
|
||||
top.ICEcoder.contentCleanUp();
|
||||
top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].removeLineClass(top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab], "background");
|
||||
top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab] = top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].addLineClass(0, "background", "cm-s-activeLine");
|
||||
top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].removeLineClass(top.ICEcoder['cMActiveLinecM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]], "background");
|
||||
top.ICEcoder['cMActiveLinecM'+top.ICEcoder.selectedTab] = top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].addLineClass(0, "background", "cm-s-activeLine");
|
||||
top.ICEcoder.nextcMInstance++;
|
||||
top.ICEcoder.openFileMDTs.push('<?php echo $serverType=="Linux" ? filemtime($file) : "1000000"; ?>');
|
||||
for (var i=0; i<cM.lineCount(); i++) {
|
||||
top.ICEcoder.content.contentWindow.CodeMirror.newFoldFunction(top.ICEcoder.content.contentWindow.CodeMirror[["coffee","css","js","less","php","py","rb","ruby"].indexOf('<?php echo pathinfo($file, PATHINFO_EXTENSION);?>') > -1 ? "braceRangeFinder" : "tagRangeFinder"],null,"+","-",true)(cM, i);
|
||||
top.ICEcoder.content.contentWindow.CodeMirror.doFold(cM.getLine(i).indexOf("{")>-1?"brace":"xml",null,"+","-",true)(cM, i);
|
||||
}
|
||||
top.ICEcoder.loadingFile = false;
|
||||
top.ICEcoder.goToLine(<?php echo $lineNumber; ?>);
|
||||
<?php
|
||||
;};
|
||||
?>
|
||||
@@ -380,7 +185,7 @@ if (action=="load") {
|
||||
top.document.getElementById('blackMask').style.visibility = "visible";
|
||||
top.document.getElementById('mediaContainer').innerHTML =
|
||||
"<canvas id=\"canvasPicker\" width=\"1\" height=\"1\" style=\"position: absolute; margin: 10px 0 0 10px; cursor: crosshair\" onmouseover=\"top.ICEcoder.overPopup=true\" onmouseout=\"top.ICEcoder.overPopup=false\"></canvas>" +
|
||||
"<img src=\"<?php echo $fileLoc."/".$fileName;?>\" class=\"whiteGlow\" style=\"border: solid 10px #fff; max-width: 700px; max-height: 500px; background-color: #000; background-image: url('images/checkerboard.png')\" onLoad=\"reducedImgMsg = (this.naturalWidth > 700 || this.naturalHeight > 500) ? ', displayed at ' + this.width + ' x ' + this.height : ''; document.getElementById('imgInfo').innerHTML += ' (' + this.naturalWidth + ' x ' + this.naturalHeight + reducedImgMsg + ')'; top.ICEcoder.drawCanvasImage(this)\"><br>" +
|
||||
"<img src=\"<?php echo $fileLoc."/".$fileName;?>\" class=\"whiteGlow\" style=\"border: solid 10px #fff; max-width: 700px; max-height: 500px; background-color: #000; background-image: url('images/checkerboard.png')\" onLoad=\"reducedImgMsg = (this.naturalWidth > 700 || this.naturalHeight > 500) ? ', <?php echo $t['displayed at']; ?> ' + this.width + ' x ' + this.height : ''; document.getElementById('imgInfo').innerHTML += ' (' + this.naturalWidth + ' x ' + this.naturalHeight + reducedImgMsg + ')'; top.ICEcoder.drawCanvasImage(this)\"><br>" +
|
||||
"<div class=\"whiteGlow\" style=\"display: inline-block; margin-top: -10px; border: solid 10px #fff; color: #000; background-color: #fff\" id=\"imgInfo\" onmouseover=\"top.ICEcoder.overPopup=true\" onmouseout=\"top.ICEcoder.overPopup=false\">" +
|
||||
"<b><?php echo $fileLoc."/".$fileName;?></b>" +
|
||||
"</div><br>" +
|
||||
@@ -394,41 +199,6 @@ if (action=="load") {
|
||||
}
|
||||
</script>
|
||||
|
||||
<form name="saveFile" action="file-control.php?action=save&file=<?php if (isset($file)) {echo $file;}; if (isset($_GET['fileMDT']) && $_GET['fileMDT']!="undefined") {echo "&fileMDT=".numClean($_GET['fileMDT']);};?>" method="POST">
|
||||
<textarea name="contents"></textarea>
|
||||
<input type="hidden" name="newFileName" value="">
|
||||
</form>
|
||||
|
||||
<script>
|
||||
if (action=="save") {
|
||||
<?php
|
||||
if (strpos($file,"[NEW]")>0||$saveType=="saveAs") {
|
||||
?>
|
||||
fileLoc = '<?php echo $fileLoc;?>';
|
||||
newFileName = top.ICEcoder.getInput('Enter filename to save at '+fileLoc,'');
|
||||
if (newFileName) {
|
||||
if (newFileName.substr(0,1)!="/") {newFileName = "/" + newFileName}
|
||||
newFileName = fileLoc + newFileName;
|
||||
if (top.document.getElementById('filesFrame').contentWindow.document.getElementById(newFileName.replace(/\//g,"|"))) {
|
||||
overwriteOK = top.ICEcoder.ask('That file exists already, overwrite?');
|
||||
}
|
||||
}
|
||||
document.saveFile.newFileName.value = '<?php echo $docRoot; ?>' + newFileName;
|
||||
<?php ;};?>
|
||||
if ("undefined" == typeof newFileName || (newFileName && "undefined" == typeof overwriteOK) || ("undefined" != typeof overwriteOK && overwriteOK)) {
|
||||
top.ICEcoder.serverMessage('<b>Saving</b><br>'+ <?php echo strpos($file,"[NEW]")>0 ? "newFileName" : "'$file'"; ?>);
|
||||
document.saveFile.contents.value = top.document.getElementById('saveTemp1').value;
|
||||
document.saveFile.submit();
|
||||
} else {
|
||||
top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0);
|
||||
action=="nothing";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if (action=="doneSave") {
|
||||
top.ICEcoder.changedContent[top.ICEcoder.selectedTab-1] = 0;
|
||||
top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);
|
||||
}
|
||||
// Finally, switch mode in case we have saved, renamed file etc
|
||||
top.ICEcoder.switchMode();
|
||||
</script>
|
||||
29
lib/file-type-icons.css
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Additional file types */
|
||||
.fileManager LI.ext-c:before {background-position: -48px 0}
|
||||
.fileManager LI.ext-cpp:before {background-position: -64px 0}
|
||||
.fileManager LI.ext-cs:before {background-position: -80px 0}
|
||||
.fileManager LI.ext-coffee:before {background-position: -96px 0}
|
||||
.fileManager LI.ext-css:before {background-position: -112px 0}
|
||||
.fileManager LI.ext-erl:before {background-position: -128px 0}
|
||||
.fileManager LI.ext-gif:before {background-position: -144px 0}
|
||||
.fileManager LI.ext-go:before {background-position: -160px 0}
|
||||
.fileManager LI.ext-htm:before, .fileManager LI.ext-html:before {background-position: -176px 0}
|
||||
.fileManager LI.ext-jpg:before, .fileManager LI.ext-jpeg:before {background-position: -192px 0}
|
||||
.fileManager LI.ext-java:before {background-position: -208px 0}
|
||||
.fileManager LI.ext-js:before, .fileManager LI.ext-json:before {background-position: -224px 0}
|
||||
.fileManager LI.ext-jl:before {background-position: -240px 0}
|
||||
.fileManager LI.ext-less:before {background-position: -256px 0}
|
||||
.fileManager LI.ext-lua:before {background-position: -272px 0}
|
||||
.fileManager LI.ext-md:before {background-position: -288px 0}
|
||||
.fileManager LI.ext-pl:before {background-position: -304px 0}
|
||||
.fileManager LI.ext-php:before {background-position: -320px 0}
|
||||
.fileManager LI.ext-png:before {background-position: -336px 0}
|
||||
.fileManager LI.ext-py:before {background-position: -352px 0}
|
||||
.fileManager LI.ext-rb:before, .fileManager LI.ext-ruby:before {background-position: -368px 0}
|
||||
.fileManager LI.ext-rs:before {background-position: -384px 0}
|
||||
.fileManager LI.ext-scss:before {background-position: -400px 0}
|
||||
.fileManager LI.ext-sql:before {background-position: -416px 0}
|
||||
.fileManager LI.ext-txt:before {background-position: -432px 0}
|
||||
.fileManager LI.ext-xml:before {background-position: -448px 0}
|
||||
.fileManager LI.ext-yaml:before {background-position: -464px 0}
|
||||
.fileManager LI.ext-zip:before {background-position: -480px 0}
|
||||
@@ -1,19 +1,19 @@
|
||||
.fileManager {
|
||||
margin: 15px 0 15px 22px;
|
||||
margin: 0 0 15px 20px;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-o-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.fileManager span {font-family: helvetica, arial, swiss, verdana}
|
||||
.fileManager span {font-family: helvetica, arial, swiss, verdana; padding: 1px 3px; border-radius: 3px}
|
||||
.fileManager a {color: #eee; text-decoration: none; cursor: pointer}
|
||||
.fileManager .pft-directory, .fileManager .pft-file {list-style-image: url(../images/blank.gif)}
|
||||
.fileManager ul, .fileManager li {margin-left: 15px}
|
||||
|
||||
/* Default file */
|
||||
.fileManager LI.pft-directory:before, .fileManager LI.pft-file:before {
|
||||
position: absolute; display: block; width: 16px; height: 16px; content: ""; margin-top: -2px; margin-left: -23px; background:url(../images/file-folder-icons.png) no-repeat 0 0;
|
||||
position: absolute; display: block; width: 16px; height: 16px; content: ""; margin-top: -2px; margin-left: -20px; background:url(../images/file-folder-icons.png) no-repeat 0 0;
|
||||
}
|
||||
.fileManager LI.dirOpen:before {background-position: -16px 0}
|
||||
|
||||
@@ -22,20 +22,4 @@
|
||||
margin-top: -19px;
|
||||
}
|
||||
}
|
||||
.fileManager LI.pft-file:before {background-position: -32px 0}
|
||||
|
||||
/* Additional file types */
|
||||
.fileManager LI.ext-coffee:before {background-position: -48px 0}
|
||||
.fileManager LI.ext-css:before {background-position: -64px 0}
|
||||
.fileManager LI.ext-gif:before {background-position: -80px 0}
|
||||
.fileManager LI.ext-htm:before, .fileManager LI.ext-html:before {background-position: -96px 0}
|
||||
.fileManager LI.ext-jpg:before, .fileManager LI.ext-jpeg:before {background-position: -112px 0}
|
||||
.fileManager LI.ext-js:before {background-position: -128px 0}
|
||||
.fileManager LI.ext-less:before {background-position: -144px 0}
|
||||
.fileManager LI.ext-md:before {background-position: -160px 0}
|
||||
.fileManager LI.ext-php:before {background-position: -176px 0}
|
||||
.fileManager LI.ext-png:before {background-position: -192px 0}
|
||||
.fileManager LI.ext-py:before {background-position: -208px 0}
|
||||
.fileManager LI.ext-rb:before, .fileManager LI.ext-ruby:before {background-position: -224px 0}
|
||||
.fileManager LI.ext-txt:before {background-position: -240px 0}
|
||||
.fileManager LI.ext-zip:before {background-position: -256px 0}
|
||||
.fileManager LI.pft-file:before {background-position: -32px 0}
|
||||
@@ -17,6 +17,21 @@ table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
body {margin: 0; overflow: auto}
|
||||
body {margin: 0; overflow: auto;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.refresh {position: fixed; display: inline-block; width: 14px; height: 14px; background: url('../images/file-manager-icons.png') -100px -16px no-repeat; right: 0; margin-right: 15px; cursor: pointer}
|
||||
.lock {position: fixed; display: inline-block; width: 12px; height: 16px; background: url('../images/file-manager-icons.png') 0 0 no-repeat; right: 0; margin-right: 16px; top: 0; cursor: pointer}
|
||||
.refresh {position: fixed; display: inline-block; width: 14px; height: 14px; background: url('../images/file-manager-icons.png') -32px 0 no-repeat; right: 0; margin-right: 15px; top: 25px; cursor: pointer}
|
||||
.plugins {position: fixed; display: inline-block; width: 16px; height: 16px; background: url('../images/file-manager-icons.png') -64px 0 no-repeat; right: 0; margin-right: 15px; top: 47px; cursor: pointer}
|
||||
.githubOn {position: fixed; display: inline-block; width: 14px; height: 14px; background: url('../images/file-manager-icons.png') -80px 0 no-repeat; right: 0; margin-right: 15px; top: 72px; cursor: pointer}
|
||||
.githubOff {position: fixed; display: inline-block; width: 14px; height: 14px; background: url('../images/file-manager-icons.png') -96px 0 no-repeat; right: 0; margin-right: 15px; top: 72px; cursor: pointer}
|
||||
.fmDragBox {position: absolute; display: inline-block; width: 0; height: 0; top: 0; left: 0; background: rgba(0,198,255,0.3);
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
// Modified version of CodeMirror's codefold.js to show guttermarkers
|
||||
|
||||
CodeMirror.newFoldFunction = function(rangeFinder, widget, markOn, markOff, dontCollapse) {
|
||||
CodeMirror.doFold = function(foldType, widget, markOn, markOff, dontCollapse) {
|
||||
|
||||
if (widget == null) widget = "\u2194";
|
||||
if (typeof widget == "string") {
|
||||
var text = document.createTextNode(widget);
|
||||
@@ -25,7 +26,7 @@ CodeMirror.newFoldFunction = function(rangeFinder, widget, markOn, markOff, dont
|
||||
|
||||
return function(cm, pos) {
|
||||
if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0);
|
||||
var range = rangeFinder(cm, pos);
|
||||
var range = CodeMirror.fold[foldType](cm, pos);
|
||||
foldable = range && (range.from.line != range.to.line || range.from.ch != range.to.ch) ? true : false;
|
||||
if (!foldable) cm.setGutterMarker(pos.line, "folds", null);
|
||||
if (!range) return;
|
||||
|
||||
@@ -1,26 +1,133 @@
|
||||
<?php
|
||||
if (!isset($ICEcoder['root'])) {
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
}
|
||||
|
||||
if (!$_SESSION['loggedIn']) {
|
||||
header("Location: ../");
|
||||
die();
|
||||
}
|
||||
|
||||
$text = $_SESSION['text'];
|
||||
$t = $text['get-branch'];
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?> get branch</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<?php if ($_SESSION['githubDiff']) { ?>
|
||||
<script src="github.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<?php ;}; ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
// Need to get dir contents recursively? (Used by GitHub diff mode)
|
||||
if ($_SESSION['githubDiff']) {
|
||||
// Function to sort given values alphabetically
|
||||
function alphasort($a, $b) {
|
||||
return strcmp($a->getPathname(), $b->getPathname());
|
||||
}
|
||||
|
||||
// Class to put forward the values for sorting
|
||||
class SortingIterator implements IteratorAggregate {
|
||||
private $iterator = null;
|
||||
public function __construct(Traversable $iterator, $callback) {
|
||||
$array = iterator_to_array($iterator);
|
||||
usort($array, $callback);
|
||||
$this->iterator = new ArrayIterator($array);
|
||||
}
|
||||
public function getIterator() {
|
||||
return $this->iterator;
|
||||
}
|
||||
}
|
||||
|
||||
// Get a full list of dirs & files and begin sorting using above class & function
|
||||
$path = $docRoot.$iceRoot;
|
||||
$objectList = new SortingIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST), 'alphasort');
|
||||
|
||||
// Iterator to get files
|
||||
$iter = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS),
|
||||
RecursiveIteratorIterator::SELF_FIRST,
|
||||
RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied"
|
||||
);
|
||||
|
||||
// Check if dir has .gitignore file
|
||||
function hasGitignore($dir) {
|
||||
return is_file("$dir/.gitignore");
|
||||
}
|
||||
|
||||
// Get a list of .gitignore files into $gi array
|
||||
$gi = array();
|
||||
if(hasGitignore($path)) {
|
||||
$gi[] = "$path/.gitignore";
|
||||
}
|
||||
foreach ($iter as $scanpath) {
|
||||
if (is_dir($scanpath) && strpos($scanpath,".git") == false) {
|
||||
$thisDir = str_replace("\\","/",$scanpath);
|
||||
if(hasGitignore($thisDir)) {
|
||||
$gi[] = $thisDir."/.gitignore";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get $matches array containing existing files listed in .gitignore
|
||||
function parseGitignore($file) { # $file = '/absolute/path/to/.gitignore'
|
||||
$dir = dirname($file);
|
||||
$matches = array();
|
||||
$lines = file($file);
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '') continue; # empty line
|
||||
if (substr($line, 0, 1) == '#') continue; # a comment
|
||||
if (substr($line, 0, 1) == '!') { # negated glob
|
||||
$line = substr($line, 1);
|
||||
$files = array_diff(glob("$dir/*"), glob("$dir/$line"));
|
||||
} else { # normal glob
|
||||
$files = glob("$dir/$line");
|
||||
}
|
||||
$matches = array_merge($matches, $files);
|
||||
}
|
||||
return $matches;
|
||||
}
|
||||
|
||||
// Cycle through all .gitignore files running above function to get a list of $excluded files
|
||||
// Exclude the .git dir as first item as we don't want to see that
|
||||
$excluded = array("/.git");
|
||||
foreach ($gi as $scanpath) {
|
||||
$excludedTest = (parseGitignore($scanpath));
|
||||
if (count($excludedTest) > 0) {
|
||||
$excluded = array_merge($excluded, $excludedTest);
|
||||
}
|
||||
}
|
||||
|
||||
$objectListArray = array();
|
||||
foreach ($objectList as $objectRef) {
|
||||
$fileFolderName = @ltrim(substr(str_replace("\\","/",$objectRef->getPathname()), strlen($path)),"/");
|
||||
array_push($objectListArray,$fileFolderName);
|
||||
}
|
||||
}
|
||||
|
||||
// If we're just getting a branch, get that and set as the finalArray
|
||||
$scanDir = $docRoot.$iceRoot;
|
||||
$location = "";
|
||||
if (isset($_GET['location'])) {
|
||||
echo '<div id="branch">';
|
||||
$location = str_replace("|","/",$_GET['location']);
|
||||
}
|
||||
echo '<div id="branch" style="display: none">';
|
||||
$location = str_replace("|","/",$_GET['location']);
|
||||
if ($location=="/") {$location = "";};
|
||||
|
||||
$dirArray = $filesArray = $finalArray = array();
|
||||
$finalArray = scanDir($scanDir.$location);
|
||||
foreach($finalArray as $entry) {
|
||||
$canAdd = true;
|
||||
for ($i=0;$i<count($_SESSION['bannedFiles']);$i++) {
|
||||
if(strpos($entry,$_SESSION['bannedFiles'][$i])!==false) {$canAdd = false;}
|
||||
if($_SESSION['bannedFiles'][$i] != "" && strpos($entry,$_SESSION['bannedFiles'][$i])!==false) {$canAdd = false;}
|
||||
}
|
||||
if ($docRoot.$iceRoot.$location."/".$entry == $docRoot.$ICEcoderDir) {
|
||||
$canAdd = false;
|
||||
}
|
||||
if ($entry != "." && $entry != ".." && $canAdd) {
|
||||
is_dir($docRoot.$iceRoot.$location."/".$entry)
|
||||
@@ -30,8 +137,8 @@ foreach($finalArray as $entry) {
|
||||
}
|
||||
natcasesort($dirArray);
|
||||
natcasesort($filesArray);
|
||||
$finalArray = array_merge($dirArray,$filesArray);
|
||||
|
||||
$finalArray = array_merge($dirArray,$filesArray);
|
||||
for ($i=0;$i<count($finalArray);$i++) {
|
||||
$fileFolderName = str_replace("\\","/",$finalArray[$i]);
|
||||
$type = is_dir($docRoot.$iceRoot.$fileFolderName) ? "folder" : "file";
|
||||
@@ -45,15 +152,178 @@ for ($i=0;$i<count($finalArray);$i++) {
|
||||
}
|
||||
$type == "folder" ? $class = 'pft-directory' : $class = 'pft-file '.strtolower($ext);
|
||||
$loadParam = $type == "folder" ? "true" : "false";
|
||||
echo "<li class=\"".$class."\"><a nohref title=\"$fileFolderName\" onMouseOver=\"top.ICEcoder.overFileFolder('$type',this.childNodes[1].id)\" onMouseOut=\"top.ICEcoder.overFileFolder('$type','')\" onClick=\"if(!event.ctrlKey) {top.ICEcoder.openCloseDir(this,$loadParam); if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {top.ICEcoder.openFile()}}\" style=\"position: relative; left:-22px\"> <span id=\"".str_replace($docRoot,"",str_replace("/","|",$fileFolderName))."\">".basename($fileFolderName)."</span> ";
|
||||
echo '<span style="color: #888; font-size: 8px" id="'.str_replace($docRoot,"",str_replace("/","|",$fileFolderName)).'_perms">';
|
||||
echo $serverType=="Linux" ? substr(sprintf('%o', fileperms($docRoot.$iceRoot.$fileFolderName)), -3) : '';
|
||||
echo "<li class=\"".$class."\" draggable=\"false\" ondrag=\"top.ICEcoder.draggingWithKeyTest(event);if(top.ICEcoder.getcMInstance()){top.ICEcoder.editorFocusInstance.indexOf('diff') == -1 ? top.ICEcoder.getcMInstance().focus() : top.ICEcoder.getcMdiffInstance().focus()}\" ondragend=\"top.ICEcoder.dropFile(this)\"><a nohref title=\"$fileFolderName\" onMouseOver=\"parentNode.draggable=true;top.ICEcoder.overFileFolder('$type',this.childNodes[1].id)\" onMouseOut=\"parentNode.draggable=false;top.ICEcoder.overFileFolder('$type','')\" ".
|
||||
|
||||
(($type == "folder")?"ondragover=\"if(parentNode.nextSibling && parentNode.nextSibling.tagName != 'UL' && top.ICEcoder.thisFileFolderLink != this.childNodes[1].id) {top.ICEcoder.openCloseDir(this,true);}\"":"").
|
||||
|
||||
" onClick=\"if(!event.ctrlKey && !top.ICEcoder.cmdKey) {".
|
||||
|
||||
(($type == "folder")?" top.ICEcoder.openCloseDir(this,$loadParam);":"").
|
||||
|
||||
" if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {top.ICEcoder.openFile()}}\" style=\"position: relative; left:-22px\"> <span id=\"".str_replace($docRoot,"",str_replace("/","|",$fileFolderName))."\">".xssClean(basename($fileFolderName),"html")."</span> ";
|
||||
$thisPermVal = $serverType=="Linux" ? substr(sprintf('%o', fileperms($docRoot.$iceRoot.$fileFolderName)), -3) : '';
|
||||
$permColors = $thisPermVal == 777 ? 'background: #800; color: #eee' : 'color: #888';
|
||||
echo '<span style="'.$permColors.'; font-size: 8px" id="'.str_replace($docRoot,"",str_replace("/","|",$fileFolderName)).'_perms">';
|
||||
echo $thisPermVal;
|
||||
echo "</span></a></li>\n";
|
||||
}
|
||||
|
||||
if (isset($_GET['location'])) {
|
||||
echo ' </div>';
|
||||
|
||||
if ($_SESSION['githubDiff']) {
|
||||
// Show the loading screen until we're done comparing files with GitHub
|
||||
echo "<script>setTimeout(function(){top.ICEcoder.showHide('show',top.get('loadingMask'));},4)</script>";
|
||||
$i=0;
|
||||
$dirListArray = $dirSHAArray = $dirTypeArray = array();
|
||||
// For each of the files in our local path...
|
||||
for ($i=0; $i<count($objectListArray); $i++) {
|
||||
$fileFolderName = "/".$objectListArray[$i];
|
||||
|
||||
// If we're not looking at a .git dir, it's not a .gitignore excluded path and not a dir
|
||||
if (strpos($fileFolderName,".git/") == false && !in_array($docRoot.$iceRoot.$fileFolderName, $excluded) && !is_dir($docRoot.$iceRoot.$fileFolderName)) {
|
||||
// Get contents of file
|
||||
$contents = file_get_contents($docRoot.$iceRoot.$fileFolderName);
|
||||
|
||||
$finfo = "text";
|
||||
// Determine if we should remove \r line endings based on mime type (text files yes, others no)
|
||||
if (function_exists('finfo_open')) {
|
||||
$finfoMIME = finfo_open(FILEINFO_MIME);
|
||||
$finfo = finfo_file($finfoMIME, $docRoot.$iceRoot.$fileFolderName);
|
||||
finfo_close($finfoMIME);
|
||||
} else {
|
||||
$fileExt = explode(" ",pathinfo($docRoot.$iceRoot.$fileFolderName, PATHINFO_EXTENSION));
|
||||
$fileExt = $fileExt[0];
|
||||
if (array_search($fileExt,array("gif","jpg","jpeg","png"))!==false) {$finfo = "image";};
|
||||
if (array_search($fileExt,array("doc","docx","ppt","rtf","pdf","zip","tar","gz","swf","asx","asf","midi","mp3","wav","aiff","mov","qt","wmv","mp4","odt","odg","odp"))!==false) {$finfo = "other";};
|
||||
}
|
||||
if (strpos($finfo,"text")===0 || strpos($finfo, "application/xml")===0 || strpos($finfo,"empty")!==false) {
|
||||
$contents = str_replace("\r","",$contents);
|
||||
};
|
||||
// Establish the blob SHA contents and push name, SHA and type into 3 arrays
|
||||
$store = "blob ".strlen($contents)."\000".$contents;
|
||||
array_push($dirListArray,ltrim($fileFolderName,"/"));
|
||||
array_push($dirSHAArray,sha1($store));
|
||||
array_push($dirTypeArray,"file");
|
||||
}
|
||||
}
|
||||
|
||||
// Get our GitHub relative site path
|
||||
$ghRemoteURLPos = array_search($ICEcoder["root"],$ICEcoder['githubLocalPaths']);
|
||||
$ghRemoteURLPaths = $ICEcoder['githubRemotePaths'];
|
||||
$ghRemoteURL = $ghRemoteURLPaths[$ghRemoteURLPos];
|
||||
$ghRemoteURL = str_replace("https://github.com/","",$ghRemoteURL);
|
||||
|
||||
// Reduce absolute excluded paths to relative
|
||||
for ($i=0; $i<count($excluded); $i++) {
|
||||
$excluded[$i] = str_replace($docRoot.$iceRoot,"",$excluded[$i]);
|
||||
}
|
||||
?>
|
||||
<script>
|
||||
top.repo = '<?php echo $ghRemoteURL;?>';
|
||||
top.path = '<?php echo $path;?>';
|
||||
dirListArray = [<?php echo "'".implode("','", $dirListArray)."'";?>];
|
||||
dirSHAArray = [<?php echo "'".implode("','", $dirSHAArray)."'";?>];
|
||||
dirTypeArray = [<?php echo "'".implode("','", $dirTypeArray)."'";?>];
|
||||
excludedArray = [<?php echo "'".implode("','", $excluded)."'";?>];
|
||||
// Start our github object
|
||||
var github = new Github({token: "<?php echo $_SESSION['githubAuthToken'];?>", auth: "oauth"});
|
||||
repoListArray = [];
|
||||
repoSHAArray = [];
|
||||
|
||||
// Set our repo and get the tree recursively
|
||||
var repo = github.getRepo(top.repo.split("/")[0], top.repo.split("/")[1]);
|
||||
repo.getTree('master?recursive=true', function(err, tree) {
|
||||
if(!err) {
|
||||
top.treePaths = [];
|
||||
top.diffPaths = [];
|
||||
top.deletedPaths = [];
|
||||
// ==========================================================
|
||||
// NEW FILES are not compared for diffs in this loop, so kept
|
||||
// ==========================================================
|
||||
for (var i=0; i<tree.length; i++) {
|
||||
// compare files (when tree types are blobs)
|
||||
if (tree[i].type == "blob") {
|
||||
// ===========================
|
||||
// UNCHANGED FILES are removed
|
||||
// ===========================
|
||||
if (tree[i].sha == dirSHAArray[dirListArray.indexOf(tree[i].path)]) {
|
||||
if (document.getElementById("|"+tree[i].path.replace("/","|")+"_perms")) {
|
||||
thatNode = document.getElementById("|"+tree[i].path.replace("/","|")+"_perms").parentNode.parentNode;
|
||||
thatNode.parentNode.removeChild(thatNode);
|
||||
}
|
||||
} else {
|
||||
// ======================
|
||||
// CHANGED FILES are kept
|
||||
// ======================
|
||||
if ("undefined" != typeof dirSHAArray[dirListArray.indexOf(tree[i].path)]) {
|
||||
top.diffPaths.push(tree[i].path);
|
||||
// ======================
|
||||
// DELETED FILES are kept
|
||||
// ======================
|
||||
} else {
|
||||
top.deletedPaths.push(tree[i].path);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
top.treePaths.push(tree[i].path);
|
||||
}
|
||||
}
|
||||
// Now we are only showing new, changed and deleted files from our GitHub tree list
|
||||
// in short, we have removed unchanged files from what would be visible
|
||||
|
||||
// However, we should now consider dirs that the user hasn't opened yet as we can
|
||||
// maybe remove closed dirs that contain no changes
|
||||
for (var i=0; i<top.treePaths.length; i++) {
|
||||
canShowDir = false;
|
||||
for (j=0; j<top.diffPaths.length; j++) {
|
||||
if (top.diffPaths[j].indexOf(top.treePaths[i]+"/") === 0) {
|
||||
canShowDir = true;
|
||||
}
|
||||
}
|
||||
// Remove dirs that contain no changes in them
|
||||
if (!canShowDir) {
|
||||
if (document.getElementById("|"+top.treePaths[i].replace("/","|")+"_perms")) {
|
||||
thatNode = document.getElementById("|"+top.treePaths[i].replace("/","|")+"_perms").parentNode.parentNode;
|
||||
thatNode.parentNode.removeChild(thatNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Finally, remove any excluded files as specified in the .gitignore file
|
||||
for (var i=0; i<excludedArray.length; i++) {
|
||||
if (document.getElementById(excludedArray[i].replace(/\//g,"|")+"_perms")) {
|
||||
thatNode = document.getElementById(excludedArray[i].replace(/\//g,"|")+"_perms").parentNode.parentNode;
|
||||
thatNode.parentNode.removeChild(thatNode);
|
||||
}
|
||||
}
|
||||
|
||||
// With everything done, we can now set folderContent, animate those into view and when done, hide the loading screen
|
||||
setTimeout(function(){
|
||||
folderContent = document.getElementById('branch').innerHTML;
|
||||
showFiles();
|
||||
// If there are no diffs, ask user if they want to switch back to regular mode
|
||||
setTimeout(function(){
|
||||
if (parent.document.getElementById('|').parentNode.parentNode.parentNode.childNodes[2].childNodes.length==1) {
|
||||
if(top.ICEcoder.ask('<?php echo $t['There are no...'];?>')) {
|
||||
top.ICEcoder.githubDiffToggle();
|
||||
} else {
|
||||
top.ICEcoder.showHide('hide',top.get('loadingMask'));
|
||||
}
|
||||
} else {
|
||||
top.ICEcoder.showHide('hide',top.get('loadingMask'));
|
||||
}
|
||||
},100);
|
||||
},4);
|
||||
} else {
|
||||
// There was an error, display HTTP error code and response message
|
||||
top.ICEcoder.message('<?php echo $t['Sorry, there was...'];?> '+err.error+'\n\n'+err.request.response);
|
||||
top.ICEcoder.showHide('hide',top.get('loadingMask'));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<script>
|
||||
targetElem = top.ICEcoder.filesFrame.contentWindow.document.getElementById('<?php echo $_GET['location'];?>');
|
||||
newUL = document.createElement("ul");
|
||||
@@ -63,10 +333,98 @@ if (isset($_GET['location'])) {
|
||||
x = locNest.nextSibling;
|
||||
x.parentNode.removeChild(x);
|
||||
}
|
||||
newUL.innerHTML = document.getElementById('branch').innerHTML.slice(28).slice(0,-7);
|
||||
locNest.parentNode.insertBefore(newUL,locNest.nextSibling);
|
||||
top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);
|
||||
folderContent = document.getElementById('branch').innerHTML;
|
||||
folderItems = folderContent.split("\n");
|
||||
|
||||
showFiles = function() {
|
||||
// Now display folders & files
|
||||
|
||||
// Animate into view?
|
||||
if (folderItems.length <= 50) {
|
||||
showFileI=0;
|
||||
animFolders = setInterval(function() {
|
||||
showFileI++;
|
||||
showNextFile('progressive');
|
||||
},4);
|
||||
// Display immediately
|
||||
} else {
|
||||
showFileJ = folderItems.length;
|
||||
showContent = folderContent;
|
||||
showNextFile();
|
||||
}
|
||||
}
|
||||
|
||||
showNextFile = function(progressive) {
|
||||
if (progressive) {
|
||||
showContent = "";
|
||||
for (showFileJ=0; showFileJ<=showFileI; showFileJ++) {
|
||||
showContent += folderItems[showFileJ];
|
||||
if (showFileJ<showFileI) {showContent += "\n";};
|
||||
}
|
||||
}
|
||||
showContent = showContent.slice(28);
|
||||
if (showFileJ==folderItems.length) {
|
||||
// If we've been animating into view, clear that interval
|
||||
if ("undefined" != typeof animFolders) {clearInterval(animFolders);};
|
||||
showContent = showContent.slice(0,-2);
|
||||
// If we've got some deleted files (as we're in GitHub diff mode), add those into the file manager
|
||||
if ("undefined" != typeof top.deletedPaths && top.deletedPaths.length > 0) {
|
||||
i = 0;
|
||||
top.addDeletedFiles = setInterval(function() {
|
||||
fSplit = top.deletedPaths[i].lastIndexOf("/");
|
||||
thePath = top.deletedPaths[i].substr(0,fSplit);
|
||||
theFile = top.deletedPaths[i].substr(fSplit+1);
|
||||
|
||||
// If it's not excluded
|
||||
if ("undefined" != typeof excludedArray && excludedArray.indexOf((thePath == "" ? "" : "/" + thePath)+"/"+theFile) == -1) {
|
||||
|
||||
// If we're adding a deleted dir/file in a sub-dir
|
||||
if ("<?php echo $location;?>" == "/"+thePath) {
|
||||
top.ICEcoder.updateFileManagerList('add','/'+thePath,theFile,false,false,false,'file');
|
||||
// If we're adding a deleted dir/file at the root level
|
||||
} else {
|
||||
// Folder
|
||||
if (thePath != "") {
|
||||
top.ICEcoder.updateFileManagerList('add',top.iceRoot,thePath,false,false,false,'folder');
|
||||
// File
|
||||
} else {
|
||||
top.ICEcoder.updateFileManagerList('add',top.iceRoot+thePath,theFile,false,false,false,'file');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
i++;
|
||||
if ("undefined" == typeof top.deletedPaths[i]) {
|
||||
clearInterval(top.addDeletedFiles);
|
||||
}
|
||||
|
||||
},20);
|
||||
}
|
||||
setTimeout(function(){top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);},4);
|
||||
if (!top.ICEcoder.fmReady) {top.ICEcoder.fmReady=true;};
|
||||
}
|
||||
newUL.innerHTML = showContent;
|
||||
locNest.parentNode.insertBefore(newUL,locNest.nextSibling);
|
||||
}
|
||||
|
||||
// If we're not in githubDiff mode, show files here
|
||||
if (folderContent.indexOf('<ul')>-1 || folderContent.indexOf('<li')>-1) {
|
||||
<?php if (!$_SESSION['githubDiff']) {echo 'showFiles();';};?>
|
||||
} else {
|
||||
<?php
|
||||
$iceGithubLocalPaths = $ICEcoder["githubLocalPaths"];
|
||||
$iceGithubRemotePaths = $ICEcoder["githubRemotePaths"];
|
||||
$pathPos = array_search($iceRoot,$iceGithubLocalPaths);
|
||||
if ($pathPos !== false) {
|
||||
?>
|
||||
if (top.ICEcoder.ask("<?php echo $t['Your local folder...'];?> <?php echo $iceGithubRemotePaths[$pathPos];?>?")) {
|
||||
setTimeout(function() {
|
||||
top.ICEcoder.showHide('show',top.get('loadingMask'));
|
||||
top.ICEcoder.filesFrame.contentWindow.frames['fileControl'].location.href = "github.php?action=clone&csrf="+top.ICEcoder.csrf;
|
||||
},4);
|
||||
}
|
||||
<?php ;}; ?>
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
;};
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
37
lib/github-manager.css
Normal file
@@ -0,0 +1,37 @@
|
||||
/* First, reset everything to a standard */
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
font-size: 12px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
body {overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
h1 {font-size: 36px; font-weight: normal; color: #888; margin-bottom: 20px}
|
||||
a {color: #fff; text-decoration: none}
|
||||
input {padding: 4px; border: 1px solid #555; background-color: #444; color: #fff}
|
||||
input:focus {
|
||||
outline: none;
|
||||
-webkit-box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
-moz-box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
}
|
||||
|
||||
.githubManager {font-family: arial, verdana, helvetica, sans-serif; background-color: #1c1c19; color: #fff; padding: 20px}
|
||||
.githubManager .info {font-size: 10px; color: rgba(0,198,255,0.7); cursor: help}
|
||||
246
lib/github-manager.php
Normal file
@@ -0,0 +1,246 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['github-manager'];
|
||||
|
||||
// If we have an action to perform
|
||||
if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset($_GET['action'])) {
|
||||
|
||||
// Get our old paths & user settings
|
||||
$oldLocal = $ICEcoder["githubLocalPaths"];
|
||||
$oldRemote = $ICEcoder["githubRemotePaths"];
|
||||
$settingsContents = file_get_contents($settingsFile,false,$context);
|
||||
|
||||
// ========
|
||||
// CHOOSING
|
||||
// ========
|
||||
if ($_GET['action']=="choose") {
|
||||
|
||||
$pathPair = numClean($_GET['pathPair']);
|
||||
|
||||
$chosenLocal = $oldLocal[$pathPair];
|
||||
$chosenRemote = $oldRemote[$pathPair];
|
||||
|
||||
$pathValid = false;
|
||||
|
||||
if (!is_dir($docRoot.$chosenLocal)) {
|
||||
if (is_writable($docRoot)) {
|
||||
mkdir($docRoot.$chosenLocal, octdec($ICEcoder['newDirPerms']));
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('".$t['Sorry, cannot create...']."\\n".$chosenLocal."');</script>";
|
||||
}
|
||||
}
|
||||
|
||||
if (is_dir($docRoot.$chosenLocal)) {
|
||||
$pathValid = true;
|
||||
}
|
||||
|
||||
if ($pathValid) {
|
||||
|
||||
// New setting for the root path
|
||||
$settingsNew = '"root" => "'.$chosenLocal.'",'.PHP_EOL;
|
||||
|
||||
// Identify the bit to replace
|
||||
$repPosStart = strpos($settingsContents,'"root"');
|
||||
$repPosEnd = strpos($settingsContents,'"checkUpdates"');
|
||||
|
||||
// Compile our new settings
|
||||
$settingsContents = substr($settingsContents,0,$repPosStart).$settingsNew.substr($settingsContents,$repPosEnd,strlen($settingsContents));
|
||||
|
||||
// Now update the config file
|
||||
if (is_writeable($settingsFile)) {
|
||||
$fh = fopen($settingsFile, 'w');
|
||||
fwrite($fh, $settingsContents);
|
||||
fclose($fh);
|
||||
// Hide this popup and reload file manager
|
||||
echo "<script>top.ICEcoder.showHide('hide',top.document.getElementById('blackMask'));top.ICEcoder.refreshFileManager();</script>";
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('".$t['Cannot update config...']." lib/".$settingsFile." ".$t['and try again']."');</script>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ======
|
||||
// ADDING
|
||||
// ======
|
||||
|
||||
if ($_GET['action']=="add") {
|
||||
|
||||
// Start creating a new chunk for the github paths
|
||||
$settingsNew = '"githubLocalPaths" => array(';
|
||||
|
||||
// Add the new one
|
||||
if ($_POST['githubLocalPathNEW'] != "" && $_POST['githubRemotePathNEW'] != "") {
|
||||
$settingsNew .= '"'.xssClean($_POST['githubLocalPathNEW'],"html").'",';
|
||||
}
|
||||
|
||||
// Then set all the old local paths
|
||||
for ($i=0; $i<count($oldLocal); $i++) {
|
||||
$settingsNew .= '"'.$oldLocal[$i].'",';
|
||||
}
|
||||
// Rtrim off the last comma
|
||||
$settingsNew = rtrim($settingsNew,',');
|
||||
$settingsNew .= '),'.PHP_EOL;
|
||||
|
||||
// Now do the same for the remote paths
|
||||
$settingsNew .= '"githubRemotePaths" => array(';
|
||||
|
||||
// Add the new one
|
||||
if ($_POST['githubLocalPathNEW'] != "" && $_POST['githubRemotePathNEW'] != "") {
|
||||
$settingsNew .= '"'.xssClean($_POST['githubRemotePathNEW'],"html").'",';
|
||||
}
|
||||
|
||||
// Then set all the old remote paths
|
||||
for ($i=0; $i<count($oldRemote); $i++) {
|
||||
$settingsNew .= '"'.$oldRemote[$i].'",';
|
||||
}
|
||||
// Rtrim off the last comma
|
||||
$settingsNew = rtrim($settingsNew,',');
|
||||
$settingsNew .= '),'.PHP_EOL;
|
||||
|
||||
}
|
||||
|
||||
// ===================
|
||||
// UPDATING & REMOVING
|
||||
// ===================
|
||||
|
||||
if ($_GET['action']=="update") {
|
||||
|
||||
// Start creating a new chunk for the github paths
|
||||
$settingsNew = '"githubLocalPaths" => array(';
|
||||
|
||||
// Redo the arrays using the form data
|
||||
for ($i=0; $i<count($oldLocal); $i++) {
|
||||
if ($_POST['githubLocalPath'.$i] != "") {
|
||||
$settingsNew .= '"'.xssClean($_POST['githubLocalPath'.$i],"html").'",';
|
||||
}
|
||||
}
|
||||
// Rtrim off the last comma
|
||||
$settingsNew = rtrim($settingsNew,',');
|
||||
$settingsNew .= '),'.PHP_EOL;
|
||||
|
||||
// Now do the same for the remote paths
|
||||
$settingsNew .= '"githubRemotePaths" => array(';
|
||||
|
||||
// Redo the arrays using the form data
|
||||
for ($i=0; $i<count($oldRemote); $i++) {
|
||||
if ($_POST['githubRemotePath'.$i] != "") {
|
||||
$settingsNew .= '"'.xssClean($_POST['githubRemotePath'.$i],"html").'",';
|
||||
}
|
||||
}
|
||||
// Rtrim off the last comma
|
||||
$settingsNew = rtrim($settingsNew,',');
|
||||
$settingsNew .= '),'.PHP_EOL;
|
||||
}
|
||||
|
||||
if ($_GET['action']!="choose") {
|
||||
// Now we have a new settingsNew string to use
|
||||
// we can update the path arrays in the settings file
|
||||
|
||||
// Identify the bit to replace
|
||||
$repPosStart = strpos($settingsContents,'"githubLocalPaths"');
|
||||
$repPosEnd = strpos($settingsContents,'"previousFiles"');
|
||||
|
||||
// Compile our new settings
|
||||
$settingsContents = substr($settingsContents,0,$repPosStart).$settingsNew.substr($settingsContents,$repPosEnd,strlen($settingsContents));
|
||||
|
||||
// Now update the config file
|
||||
if (is_writeable($settingsFile)) {
|
||||
$fh = fopen($settingsFile, 'w');
|
||||
fwrite($fh, $settingsContents);
|
||||
fclose($fh);
|
||||
// Finally, reload the iFrame screen for the user
|
||||
header("Location: github-manager.php?updatedGithubPaths&csrf=".$_SESSION["csrf"]);
|
||||
echo "<script>window.location='github-manager.php?updatedGithubPaths&csrf='+top.ICEcoder.csrf;</script>";
|
||||
die($t['saving github paths']);
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('".$t['Cannot update config...']." lib/".$settingsFile." ".$t['and try again']."');</script>";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>ICEcoder <?php echo $ICEcoder["versionNo"];?> GitHub manager</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<link rel="stylesheet" type="text/css" href="github-manager.css?microtime=<?php echo microtime(true);?>">
|
||||
</head>
|
||||
|
||||
<body class="githubManager">
|
||||
|
||||
<h1><?php echo $t['github paths'];?></h1>
|
||||
|
||||
<div style="display: inline-block; width: 620px; height: 340px; overflow-y: auto">
|
||||
<?php
|
||||
$pathsLocal = $ICEcoder['githubLocalPaths'];
|
||||
$pathsRemote = $ICEcoder['githubRemotePaths'];
|
||||
if (count($pathsLocal) > 0) {
|
||||
?>
|
||||
<div style="display: inline-block; width: 600px; margin-bottom: 30px">
|
||||
<h2><?php echo $t['Choose existing path'];?></h2><br>
|
||||
|
||||
<form id="githubUpdateForm" action="github-manager.php?action=update" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-left: 5px"><?php echo $t['Local path'];?> <span class="info" title="<?php echo $t['Slash prefixed'];?>">[?]</span></td>
|
||||
<td style="padding-left: 5px"><?php echo $t['Remote GitHub path'];?> <span class="info" title="<?php echo $t['Absolute URL beginning...'];?>">[?]</span></td>
|
||||
</tr>
|
||||
<?php
|
||||
for ($i=0; $i<count($pathsLocal); $i++) {
|
||||
echo '<tr>';
|
||||
echo '<td style="padding: 0 10px 8px 0"><input type="text" name="githubLocalPath'.$i.'" value="'.$pathsLocal[$i].'" style="width: 250px"></td>';
|
||||
echo '<td style="padding: 0 10px 8px 0"><input type="text" name="githubRemotePath'.$i.'" value="'.$pathsRemote[$i].'" style="width: 250px"></td>';
|
||||
echo '<td style="padding: 2px 0 8px 0"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="window.location=\'github-manager.php?action=choose&pathPair='.$i.'&csrf='.$_SESSION["csrf"].'\'">'.$t['Choose'].'</div></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '<tr>';
|
||||
echo '<td style="padding-top: 7px; color: #444">'.$t['Set local and...'].'</td>';
|
||||
echo '<td style="padding: 3px 10px 8px 0; text-align: right"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="document.getElementById(\'githubUpdateForm\').submit()">'.$t['Update'].'</div></td>';
|
||||
echo '</tr>';
|
||||
?>
|
||||
</table>
|
||||
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
;};
|
||||
?>
|
||||
|
||||
<div style="display: inline-block; width: 600px">
|
||||
<h2><?php echo $t['Add new path'];?></h2><br>
|
||||
|
||||
<form id="githubAddForm" action="github-manager.php?action=add" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-left: 5px"><?php echo $t['Local path'];?> <span class="info" title="<?php echo $t['Slash prefixed'];?>">[?]</span></td>
|
||||
<td style="padding-left: 5px"><?php echo $t['Remote GitHub path'];?> <span class="info" title="<?php echo $t['Absolute URL beginning...'];?>">[?]</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0 10px 8px 0"><input type="text" name="githubLocalPathNEW" value="" style="width: 250px"></td>
|
||||
<td style="padding: 0 0 8px 0"><input type="text" name="githubRemotePathNEW" value="" style="width: 250px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="padding: 3px 0 8px 0; text-align: right"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="document.getElementById('githubAddForm').submit()"><?php echo $t['Add'];?></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<h2 style="margin-bottom: 10px"><?php echo $t['Usage Info'];?></h2>
|
||||
|
||||
<p style="color: #888; margin: 0 10px 10px 0"><?php echo $t['Enter relative local...'];?></p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0"><?php echo $t['You can then...'];?></p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0"><?php echo $t['The file manager...'];?></p>
|
||||
<p style="color: #888; margin: 0 10px 0 0"><?php echo $t['If you want...'];?></p>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
36
lib/github.css
Normal file
@@ -0,0 +1,36 @@
|
||||
/* First, reset everything to a standard */
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
font-size: 12px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
body {overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
h1 {font-size: 36px; font-weight: normal; color: #888; margin-bottom: 20px}
|
||||
a {color: #fff; text-decoration: none}
|
||||
input, textarea {font-family: arial, verdana, helvetica, sans-serif; padding: 4px; border: 1px solid #555; background-color: #444; color: #fff}
|
||||
input:focus, textarea:focus {
|
||||
outline: none;
|
||||
-webkit-box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
-moz-box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
}
|
||||
|
||||
.githubAction {font-family: arial, verdana, helvetica, sans-serif; background-color: #1c1c19; color: #fff; padding: 20px}
|
||||
413
lib/github.js
Normal file
@@ -0,0 +1,413 @@
|
||||
// This file contains the HTTP Req Abs, Repo API and getRepo
|
||||
// portions of Top Level API from github.com/michael/github.js
|
||||
|
||||
// ORIGINAL LIB:
|
||||
// Github.js 0.7.0
|
||||
// (c) 2012 Michael Aufreiter, Development Seed
|
||||
// Github.js is freely distributable under the MIT license.
|
||||
// For all details and documentation:
|
||||
// http://substance.io/michael/github
|
||||
|
||||
(function() {
|
||||
var Github;
|
||||
var API_URL = 'https://api.github.com';
|
||||
|
||||
Github = window.Github = function(options) {
|
||||
|
||||
// HTTP Request Abstraction
|
||||
// =======
|
||||
//
|
||||
// I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.
|
||||
|
||||
function _request(method, path, data, cb, raw) {
|
||||
function getURL() {
|
||||
var url = API_URL + path;
|
||||
return url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime();
|
||||
}
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
if (!raw) {xhr.dataType = "json"}
|
||||
|
||||
xhr.open(method, getURL());
|
||||
xhr.onreadystatechange = function () {
|
||||
if (this.readyState == 4) {
|
||||
if (this.status >= 200 && this.status < 300 || this.status === 304) {
|
||||
cb(null, raw ? this.responseText : this.responseText ? JSON.parse(this.responseText) : true);
|
||||
} else {
|
||||
cb({request: this, error: this.status});
|
||||
}
|
||||
}
|
||||
}
|
||||
xhr.setRequestHeader('Accept','application/vnd.github.raw');
|
||||
xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8');
|
||||
if (
|
||||
(options.auth == 'oauth' && options.token) ||
|
||||
(options.auth == 'basic' && options.username && options.password)
|
||||
) {
|
||||
xhr.setRequestHeader('Authorization',options.auth == 'oauth'
|
||||
? 'token '+ options.token
|
||||
: 'Basic ' + Base64.encode(options.username + ':' + options.password)
|
||||
);
|
||||
}
|
||||
data ? xhr.send(JSON.stringify(data)) : xhr.send();
|
||||
}
|
||||
|
||||
// Repository API
|
||||
// =======
|
||||
|
||||
Github.Repository = function(options) {
|
||||
var repo = options.name;
|
||||
var user = options.user;
|
||||
|
||||
var that = this;
|
||||
var repoPath = "/repos/" + user + "/" + repo;
|
||||
|
||||
var currentTree = {
|
||||
"branch": null,
|
||||
"sha": null
|
||||
};
|
||||
|
||||
// Uses the cache if branch has not been changed
|
||||
// -------
|
||||
|
||||
function updateTree(branch, cb) {
|
||||
if (branch === currentTree.branch && currentTree.sha) return cb(null, currentTree.sha);
|
||||
that.getRef("heads/"+branch, function(err, sha) {
|
||||
currentTree.branch = branch;
|
||||
currentTree.sha = sha;
|
||||
cb(err, sha);
|
||||
});
|
||||
}
|
||||
|
||||
// Get a particular reference
|
||||
// -------
|
||||
|
||||
this.getRef = function(ref, cb) {
|
||||
_request("GET", repoPath + "/git/refs/" + ref, null, function(err, res) {
|
||||
if (err) return cb(err);
|
||||
cb(null, res.object.sha);
|
||||
});
|
||||
};
|
||||
|
||||
// Create a new reference
|
||||
// --------
|
||||
//
|
||||
// {
|
||||
// "ref": "refs/heads/my-new-branch-name",
|
||||
// "sha": "827efc6d56897b048c772eb4087f854f46256132"
|
||||
// }
|
||||
|
||||
this.createRef = function(options, cb) {
|
||||
_request("POST", repoPath + "/git/refs", options, cb);
|
||||
};
|
||||
|
||||
// Delete a reference
|
||||
// --------
|
||||
//
|
||||
// repo.deleteRef('heads/gh-pages')
|
||||
// repo.deleteRef('tags/v1.0')
|
||||
|
||||
this.deleteRef = function(ref, cb) {
|
||||
_request("DELETE", repoPath + "/git/refs/"+ref, options, cb);
|
||||
};
|
||||
|
||||
// List all branches of a repository
|
||||
// -------
|
||||
|
||||
this.listBranches = function(cb) {
|
||||
_request("GET", repoPath + "/git/refs/heads", null, function(err, heads) {
|
||||
if (err) return cb(err);
|
||||
cb(null, _.map(heads, function(head) { return _.last(head.ref.split('/')); }));
|
||||
});
|
||||
};
|
||||
|
||||
// Retrieve the contents of a blob
|
||||
// -------
|
||||
|
||||
this.getBlob = function(sha, cb) {
|
||||
_request("GET", repoPath + "/git/blobs/" + sha, null, cb, 'raw');
|
||||
};
|
||||
|
||||
// For a given file path, get the corresponding sha (blob for files, tree for dirs)
|
||||
// -------
|
||||
|
||||
this.getSha = function(branch, path, cb) {
|
||||
// Just use head if path is empty
|
||||
if (path === "") return that.getRef("heads/"+branch, cb);
|
||||
that.getTree(branch+"?recursive=true", function(err, tree) {
|
||||
var file = _.select(tree, function(file) {
|
||||
return file.path === path;
|
||||
})[0];
|
||||
cb(null, file ? file.sha : null);
|
||||
});
|
||||
};
|
||||
|
||||
// Retrieve the tree a commit points to
|
||||
// -------
|
||||
|
||||
this.getTree = function(tree, cb) {
|
||||
_request("GET", repoPath + "/git/trees/"+tree, null, function(err, res) {
|
||||
if (err) return cb(err);
|
||||
cb(null, res.tree);
|
||||
});
|
||||
};
|
||||
|
||||
// Post a new blob object, getting a blob SHA back
|
||||
// -------
|
||||
|
||||
this.postBlob = function(content, cb) {
|
||||
if (typeof(content) === "string") {
|
||||
content = {
|
||||
"content": content,
|
||||
"encoding": "utf-8"
|
||||
};
|
||||
}
|
||||
|
||||
_request("POST", repoPath + "/git/blobs", content, function(err, res) {
|
||||
if (err) return cb(err);
|
||||
cb(null, res.sha);
|
||||
});
|
||||
};
|
||||
|
||||
// Update an existing tree adding a new blob object getting a tree SHA back
|
||||
// -------
|
||||
|
||||
this.updateTree = function(baseTree, path, blob, cb) {
|
||||
var data = {
|
||||
"base_tree": baseTree,
|
||||
"tree": [
|
||||
{
|
||||
"path": path,
|
||||
"mode": "100644",
|
||||
"type": "blob",
|
||||
"sha": blob
|
||||
}
|
||||
]
|
||||
};
|
||||
_request("POST", repoPath + "/git/trees", data, function(err, res) {
|
||||
if (err) return cb(err);
|
||||
cb(null, res.sha);
|
||||
});
|
||||
};
|
||||
|
||||
// Post a new tree object having a file path pointer replaced
|
||||
// with a new blob SHA getting a tree SHA back
|
||||
// -------
|
||||
|
||||
this.postTree = function(tree, cb) {
|
||||
_request("POST", repoPath + "/git/trees", { "tree": tree }, function(err, res) {
|
||||
if (err) return cb(err);
|
||||
cb(null, res.sha);
|
||||
});
|
||||
};
|
||||
|
||||
// Create a new commit object with the current commit SHA as the parent
|
||||
// and the new tree SHA, getting a commit SHA back
|
||||
// -------
|
||||
|
||||
this.commit = function(parent, tree, message, cb) {
|
||||
var data = {
|
||||
"message": message,
|
||||
"author": {
|
||||
"name": options.username
|
||||
},
|
||||
"parents": [
|
||||
parent
|
||||
],
|
||||
"tree": tree
|
||||
};
|
||||
|
||||
_request("POST", repoPath + "/git/commits", data, function(err, res) {
|
||||
currentTree.sha = res.sha; // update latest commit
|
||||
if (err) return cb(err);
|
||||
cb(null, res.sha);
|
||||
});
|
||||
};
|
||||
|
||||
// Update the reference of your head to point to the new commit SHA
|
||||
// -------
|
||||
|
||||
this.updateHead = function(head, commit, cb) {
|
||||
_request("PATCH", repoPath + "/git/refs/heads/" + head, { "sha": commit }, function(err, res) {
|
||||
cb(err);
|
||||
});
|
||||
};
|
||||
|
||||
// Show repository information
|
||||
// -------
|
||||
|
||||
this.show = function(cb) {
|
||||
_request("GET", repoPath, null, cb);
|
||||
};
|
||||
|
||||
// Get contents
|
||||
// --------
|
||||
|
||||
this.contents = function(path, cb) {
|
||||
_request("GET", repoPath + "/contents", { path: path }, cb);
|
||||
};
|
||||
|
||||
// Fork repository
|
||||
// -------
|
||||
|
||||
this.fork = function(cb) {
|
||||
_request("POST", repoPath + "/forks", null, cb);
|
||||
};
|
||||
|
||||
// Create pull request
|
||||
// --------
|
||||
|
||||
this.createPullRequest = function(options, cb) {
|
||||
_request("POST", repoPath + "/pulls", options, cb);
|
||||
};
|
||||
|
||||
// Read file at given path
|
||||
// -------
|
||||
|
||||
this.read = function(branch, path, cb) {
|
||||
that.getSha(branch, path, function(err, sha) {
|
||||
if (!sha) return cb("not found", null);
|
||||
that.getBlob(sha, function(err, content) {
|
||||
cb(err, content, sha);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Remove a file from the tree
|
||||
// -------
|
||||
|
||||
this.remove = function(branch, path, cb) {
|
||||
updateTree(branch, function(err, latestCommit) {
|
||||
that.getTree(latestCommit+"?recursive=true", function(err, tree) {
|
||||
// Update Tree
|
||||
var newTree = _.reject(tree, function(ref) { return ref.path === path });
|
||||
_.each(newTree, function(ref) {
|
||||
if (ref.type === "tree") delete ref.sha;
|
||||
});
|
||||
|
||||
that.postTree(newTree, function(err, rootTree) {
|
||||
that.commit(latestCommit, rootTree, 'Deleted '+path , function(err, commit) {
|
||||
that.updateHead(branch, commit, function(err) {
|
||||
cb(err);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Move a file to a new location
|
||||
// -------
|
||||
|
||||
this.move = function(branch, path, newPath, cb) {
|
||||
updateTree(branch, function(err, latestCommit) {
|
||||
that.getTree(latestCommit+"?recursive=true", function(err, tree) {
|
||||
// Update Tree
|
||||
_.each(tree, function(ref) {
|
||||
if (ref.path === path) ref.path = newPath;
|
||||
if (ref.type === "tree") delete ref.sha;
|
||||
});
|
||||
|
||||
that.postTree(tree, function(err, rootTree) {
|
||||
that.commit(latestCommit, rootTree, 'Deleted '+path , function(err, commit) {
|
||||
that.updateHead(branch, commit, function(err) {
|
||||
cb(err);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Write file contents to a given branch and path
|
||||
// -------
|
||||
|
||||
this.write = function(branch, path, content, message, cb) {
|
||||
updateTree(branch, function(err, latestCommit) {
|
||||
if (err) return cb(err);
|
||||
that.postBlob(content, function(err, blob) {
|
||||
if (err) return cb(err);
|
||||
that.updateTree(latestCommit, path, blob, function(err, tree) {
|
||||
if (err) return cb(err);
|
||||
that.commit(latestCommit, tree, message, function(err, commit) {
|
||||
if (err) return cb(err);
|
||||
that.updateHead(branch, commit, cb);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
// Gists API
|
||||
// =======
|
||||
|
||||
Github.Gist = function(options) {
|
||||
var id = options.id;
|
||||
var that = this;
|
||||
var gistPath = "/gists/"+id;
|
||||
|
||||
// Read the gist
|
||||
// --------
|
||||
|
||||
this.read = function(cb) {
|
||||
_request("GET", gistPath, null, function(err, gist) {
|
||||
cb(err, gist);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// Delete the gist
|
||||
// --------
|
||||
|
||||
this.delete = function(cb) {
|
||||
_request("DELETE", gistPath, null, function(err,res) {
|
||||
cb(err,res);
|
||||
});
|
||||
};
|
||||
|
||||
// Fork a gist
|
||||
// --------
|
||||
|
||||
this.fork = function(cb) {
|
||||
_request("POST", gistPath+"/fork", null, function(err,res) {
|
||||
cb(err,res);
|
||||
});
|
||||
};
|
||||
|
||||
// Update a gist with the new stuff
|
||||
// --------
|
||||
|
||||
this.update = function(options, cb) {
|
||||
_request("PATCH", gistPath, options, function(err,res) {
|
||||
cb(err,res);
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
// Top Level API
|
||||
// -------
|
||||
|
||||
this.getRepo = function(user, repo) {
|
||||
return new Github.Repository({user: user, name: repo});
|
||||
};
|
||||
|
||||
Github.User = function(token) {
|
||||
console.log(token);
|
||||
this.validate = function(cb) {
|
||||
_request("GET", "/applications/"+token+"/tokens/", function(err, res) {
|
||||
console.log(err);
|
||||
console.log(res);
|
||||
cb(err,res);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
this.getUser = function(token) {
|
||||
return new Github.User(token);
|
||||
};
|
||||
|
||||
|
||||
|
||||
};
|
||||
}).call(this);
|
||||
276
lib/github.php
Normal file
@@ -0,0 +1,276 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['github'];
|
||||
|
||||
// SSL check, as everything is over https
|
||||
$wrappers = stream_get_wrappers();
|
||||
$sslAvail = true;
|
||||
if (!extension_loaded('openssl') || !in_array('https', $wrappers)) {
|
||||
$sslAvail = false;
|
||||
echo "<script>top.ICEcoder.message('".$t['Sorry, you do...']."');top.ICEcoder.showHide('hide',top.get('loadingMask'));</script>";
|
||||
die();
|
||||
}
|
||||
|
||||
// If we have an action to perform
|
||||
if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset($_GET['action']) && $sslAvail) {
|
||||
|
||||
// ====
|
||||
// AUTH
|
||||
// ====
|
||||
if ($_GET['action']=="auth") {
|
||||
$_SESSION['githubAuthToken'] = xssClean($_GET['token'],"html");
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="github.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
</body>
|
||||
<script>
|
||||
top.ICEcoder.githubAuthTokenSet = true;
|
||||
goNext = "'.xssClean($_GET['goNext'],"html").'";
|
||||
if (goNext=="showManager") {
|
||||
top.ICEcoder.githubManager();
|
||||
}
|
||||
if (goNext=="loadFiles") {
|
||||
top.ICEcoder.githubDiffToggle();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>';
|
||||
}
|
||||
|
||||
// ====
|
||||
// READ
|
||||
// ====
|
||||
if ($_GET['action']=="read") {
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="github.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<script src="underscore-min.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
</body>
|
||||
<script>
|
||||
// Start our github object, establish this repo & file path
|
||||
var github = new Github({token: "'.$_SESSION['githubAuthToken'].'", auth: "oauth"});
|
||||
var thisRepo = "'.$_GET['repo'].'";
|
||||
var thisFilePath = "'.$_GET['filePath'].'";
|
||||
|
||||
// Start our repo and read the data in, then update diff pane with that
|
||||
var repo = github.getRepo(thisRepo.split("|")[0], thisRepo.split("|")[1]);
|
||||
repo.read("master", thisFilePath.replace(/\|/g,"/"), function(err, data) {
|
||||
if (err) {
|
||||
top.ICEcoder.message("There has been an error trying to get that file from GitHub.\n\nGitHub response:\n"+err);
|
||||
} else {
|
||||
cMdiff = top.ICEcoder.getcMdiffInstance();
|
||||
cMdiff.setValue(data);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>';
|
||||
}
|
||||
|
||||
// =====
|
||||
// CLONE
|
||||
// =====
|
||||
if ($_GET['action']=="clone") {
|
||||
|
||||
$iceGithubLocalPaths = $ICEcoder["githubLocalPaths"];
|
||||
$iceGithubRemotePaths = $ICEcoder["githubRemotePaths"];
|
||||
$pathPos = array_search($iceRoot,$iceGithubLocalPaths);
|
||||
if ($pathPos !== false) {
|
||||
|
||||
// USE: https://github.com/mattpass/ICEcoder/zipball/master
|
||||
// Store the plugin zip to the tmp dir
|
||||
$target = $docRoot.$iceGithubLocalPaths[$pathPos]."/";
|
||||
$zipURL = $iceGithubRemotePaths[$pathPos].'/zipball/master';
|
||||
$zipFile = "../tmp/".basename($zipURL);
|
||||
|
||||
if (ini_get('allow_url_fopen')) {
|
||||
$fileData = file_get_contents($zipURL, false, $context);
|
||||
} elseif (function_exists('curl_init')) {
|
||||
$client = curl_init($zipURL);
|
||||
curl_setopt($client, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($client, CURLOPT_RETURNTRANSFER, 1); //fixed this line
|
||||
$fileData = curl_exec($client);
|
||||
}
|
||||
file_put_contents($zipFile, $fileData);
|
||||
|
||||
// Now unpack the zip
|
||||
$zip = new ZipArchive;
|
||||
$zip->open($zipFile);
|
||||
|
||||
// Create all files & dirs, in 1kb chunks
|
||||
for($i=0; $i<$zip->numFiles; $i++) {
|
||||
|
||||
$name = $zip->getNameIndex($i);
|
||||
if ($i==0) {
|
||||
$dirName = $name;
|
||||
} else {
|
||||
$tgtName = str_replace($dirName,"",$name);
|
||||
// Determine output filename
|
||||
$file = $target.$tgtName;
|
||||
|
||||
// Create the directories if necessary
|
||||
$dir = dirname($file);
|
||||
if (!is_dir($dir)) mkdir($dir, 0777, true);
|
||||
|
||||
// Read from zip and write to disk
|
||||
$fpr = $zip->getStream($name);
|
||||
if (!is_dir($file)) {
|
||||
$fpw = fopen($file, 'w');
|
||||
while ($data = fread($fpr, 1024)) {
|
||||
fwrite($fpw, $data);
|
||||
}
|
||||
fclose($fpw);
|
||||
}
|
||||
fclose($fpr);
|
||||
}
|
||||
}
|
||||
$zip->close();
|
||||
|
||||
// Remove the tmp zip file
|
||||
unlink($zipFile);
|
||||
|
||||
// Refresh the file manager
|
||||
echo "<script>top.ICEcoder.refreshFileManager();</script>";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ======
|
||||
// COMMIT
|
||||
// ======
|
||||
if ($_GET['action']=="commit") {
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html onContextMenu="return false">
|
||||
<head>
|
||||
<title>ICEcoder <?php echo $ICEcoder["versionNo"];?> GitHub commit files</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<script src="github.js?microtime=<?php echo microtime(true);?>"></script>
|
||||
<link rel="stylesheet" type="text/css" href="github.css?microtime=<?php echo microtime(true);?>">
|
||||
</head>
|
||||
|
||||
<body class="githubAction">
|
||||
|
||||
<h1><?php
|
||||
$action = xssClean($_GET['action'],"html");
|
||||
echo $action == "commit" ? "Commit files" : "Pull files"; ?></h1>
|
||||
|
||||
<form name="commitDetails">
|
||||
Title:<br><input type="text" name="commitTitle" id="commitTitle" value="" style="width: 300px; margin: 5px 0 15px 0" maxlength="50"><br>
|
||||
Message:<br><textarea name="commitMessage" id="commitMessage" style="width: 300px; height: 118px; margin: 5px 0 15px 0"></textarea>
|
||||
</form>
|
||||
|
||||
<div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="top.ICEcoder.showHide('show',top.get('loadingMask'));commitFiles()">Commit</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<?php
|
||||
// Get file contents for selected files
|
||||
$selectedFiles = xssClean($_GET['selectedFiles'],"html");
|
||||
$selectedFiles = explode(";",$selectedFiles);
|
||||
|
||||
for ($i=0; $i<count($selectedFiles); $i++) {
|
||||
// Replace pipes with slashes
|
||||
$file = str_replace("|","/",$selectedFiles[$i]);
|
||||
|
||||
// Trim any +'s or spaces from the end of file
|
||||
$file = rtrim(rtrim($file,'+'),' ');
|
||||
|
||||
// Establish the real absolute path to the file
|
||||
$file = str_replace("\\","/",realpath($docRoot.$iceRoot.$file));
|
||||
|
||||
// Only get the file if it exists and begins with our $docRoot
|
||||
if (file_exists($file) && strpos($file,$docRoot) === 0) {
|
||||
$loadedFile = toUTF8noBOM(file_get_contents($file,false,$context),true);
|
||||
echo '<textarea name="loadedFile'.$i.'" id="loadedFile'.$i.'" style="display: none">'.str_replace("</textarea>","<ICEcoder:/:textarea>",str_replace("&","&",$loadedFile)).'</textarea><br><br>'.PHP_EOL.PHP_EOL;
|
||||
} else {
|
||||
die("<script>alert('Sorry, that file doesn\'t appear to exist');</script>");
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<script>
|
||||
// Start our github object
|
||||
var github = new Github({token: "<?php echo $_SESSION['githubAuthToken'];?>", auth: "oauth"});
|
||||
|
||||
committingFiles = ['<?php
|
||||
$cF = implode("','", $selectedFiles);
|
||||
echo $cF;
|
||||
?>'];
|
||||
seqFile = 0;
|
||||
commitFiles = function() {
|
||||
// Commit our files one after another
|
||||
var repo = github.getRepo(top.repo.split("/")[0], top.repo.split("/")[1]);
|
||||
repo.write(
|
||||
'master',
|
||||
committingFiles[seqFile].substr(1).replace(/\|/g,"/"),
|
||||
document.getElementById('loadedFile'+seqFile).value,
|
||||
document.getElementById('commitTitle').value+'\n\n'+document.getElementById('commitMessage').value,
|
||||
function(err) {
|
||||
if (!err) {
|
||||
var locSplit = committingFiles[seqFile].lastIndexOf("|");
|
||||
var location = committingFiles[seqFile].substr(0,locSplit+1);
|
||||
var file = committingFiles[seqFile].substr(locSplit+1);
|
||||
|
||||
// Splice from diff or deleted paths
|
||||
if (top.diffPaths.indexOf(committingFiles[seqFile].substr(1).replace(/\|/g,"/")) > -1) {
|
||||
top.diffPaths.splice(top.diffPaths.indexOf(committingFiles[seqFile].substr(1).replace(/\|/g,"/")),1);
|
||||
}
|
||||
if (top.deletedPaths.indexOf(committingFiles[seqFile].substr(1).replace(/\|/g,"/")) > -1) {
|
||||
top.deletedPaths.splice(top.deletedPaths.indexOf(committingFiles[seqFile].substr(1).replace(/\|/g,"/")),1);
|
||||
}
|
||||
|
||||
// Then deselect and remove from file manager
|
||||
top.ICEcoder.thisFileFolderLink = committingFiles[seqFile];
|
||||
top.ICEcoder.selectFileFolder(false,'ctrlSim');
|
||||
top.ICEcoder.updateFileManagerList("delete",location,file);
|
||||
seqFile++;
|
||||
// If there's another file to do
|
||||
if (top.ICEcoder.selectedFiles.length > 0) {
|
||||
commitFiles();
|
||||
} else {
|
||||
top.ICEcoder.showHide('hide',top.get('loadingMask'));
|
||||
top.ICEcoder.showHide('hide',top.get('blackMask'));
|
||||
if (top.diffPaths.length == 0 && top.deletedPaths.length == 0) {
|
||||
top.ICEcoder.message('All done, switching modes');
|
||||
top.ICEcoder.githubDiffToggle();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
top.ICEcoder.message('There was an error with committing.\n\nSee dev tools console for details.');
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<?php
|
||||
}
|
||||
|
||||
// ====
|
||||
// PULL
|
||||
// ====
|
||||
if ($_GET['action']=="pull") {
|
||||
?>
|
||||
<script>
|
||||
top.ICEcoder.showHide('hide',top.get('blackMask'));
|
||||
top.ICEcoder.message("Pull actions not yet available. Will be in available soon!");
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
40
lib/headers.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
// Stop if we're running an old version in the tmp dir
|
||||
if(strpos(str_replace("\\","/",dirname(__FILE__)),"tmp/oldVersion") !== false) {
|
||||
die("This is an old version of ICEcoder. Won't run from tmp/oldVersion/ dir.");
|
||||
}
|
||||
|
||||
// Load common functions
|
||||
include_once(dirname(__FILE__)."/settings-common.php");
|
||||
if (isset($_SESSION['text'])) {
|
||||
$text = $_SESSION['text'];
|
||||
$t = $text['headers'];
|
||||
}
|
||||
|
||||
// CSRF synchronizer token pattern, 32 chars
|
||||
if (!isset($_SESSION["csrf"])) {
|
||||
$_SESSION["csrf"] = md5(uniqid(mt_rand(), true));
|
||||
}
|
||||
|
||||
if (($_GET || $_POST) && (!isset($_REQUEST["csrf"]) || $_REQUEST["csrf"] !== $_SESSION["csrf"])) {
|
||||
$req = isset($_REQUEST["csrf"]) ? xssClean($_REQUEST["csrf"],"html") : "";
|
||||
die($t['Bad CSRF token...']."<br><br>
|
||||
CSRF issue:<br>
|
||||
REQUEST: ".$req."<br>
|
||||
SESSION: ".xssClean($_SESSION["csrf"],"html")."<br>
|
||||
FILE: ".xssClean($_SERVER["SCRIPT_NAME"],"html")."<br>
|
||||
GET: ".xssClean(var_export($_GET, true),"html")."<br>
|
||||
POST: ".xssClean(var_export($_POST, true),"html"));
|
||||
}
|
||||
|
||||
if (!headers_sent()) {
|
||||
// Set our security related headers
|
||||
header("X-Frame-Options: SAMEORIGIN"); // Only frames of same origin
|
||||
header("X-XSS-Protection: 1; mode=block"); // Turn on IE8-9 XSS prevention tools
|
||||
// header("X-Content-Security-Policy: allow 'self'"); // Only allows JS on same domain & not inline to run
|
||||
header("X-Content-Type-Options: nosniff"); // Prevent MIME based attacks
|
||||
header('Cache-Control: no-cache, no-store, must-revalidate'); // Caching over HTTP 1.1 covered
|
||||
header('Pragma: no-cache'); // Caching over HTTP 1.0 covered
|
||||
header('Expires: 0'); // Caching over Proxies covered
|
||||
}
|
||||
?>
|
||||
@@ -19,7 +19,7 @@ table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
body {overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-o-user-select:none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@@ -29,4 +29,5 @@ a {color: #fff; text-decoration: none}
|
||||
.help {font-family: arial, verdana, helvetica, sans-serif; background-color: #1c1c19; color: #fff; padding: 20px}
|
||||
.key {display: inline-block; width: 175px; text-align: right; margin-right: 5px; float: left}
|
||||
.key .plus {color: #888}
|
||||
.shortcut {display: inline-block; width: 175px; color: #888; margin-left: 5px; float: left}
|
||||
.shortcut {display: inline-block; width: 195px; color: #888; margin-left: 5px; float: left}
|
||||
.info {font-size: 10px; color: rgba(0,198,255,0.7); cursor: help}
|
||||
112
lib/help.php
@@ -1,4 +1,8 @@
|
||||
<?php include("settings.php");?>
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['help'];
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
@@ -6,63 +10,73 @@
|
||||
<title>ICEcoder <?php echo $ICEcoder["versionNo"];?> help</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<link rel="stylesheet" type="text/css" href="help.css">
|
||||
<link rel="stylesheet" type="text/css" href="help.css?microtime=<?php echo microtime(true);?>">
|
||||
</head>
|
||||
|
||||
<body class="help">
|
||||
|
||||
<h1 id="title">help</h1>
|
||||
<h1 id="title"><?php echo $t['shortcuts'];?></h1>
|
||||
|
||||
<a href="javascript:top.ICEcoder.showManual('<?php echo $ICEcoder["versionNo"];?>')" style="position: absolute; top: 26px; right: 20px"><div style="padding: 10px; background: #2187e7; color: #fff; font-size: 18px">ICEcoder manual</div></a>
|
||||
|
||||
<div style="display: inline-block; width: 365px; margin-right: 20px">
|
||||
<h2>Within document</h2>
|
||||
<span class="key">CTRL <span class="plus">+</span> ↑</span> <span class="shortcut">Move line up</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> ↓</span> <span class="shortcut">Move line down</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> +</span> <span class="shortcut">Duplicate line</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> -</span> <span class="shortcut">Remove line</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> i</span> <span class="shortcut">Search selected text</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> j</span> <span class="shortcut">Jump to definition</span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut">Comment / uncomment text</span><br>
|
||||
<span class="key">Tab</span> <span class="shortcut">Insert tab / indent selected text</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> d</span> <span class="shortcut">Wrap selected in <div></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> s</span> <span class="shortcut">Wrap selected in <span></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> p</span> <span class="shortcut">Wrap selected in <p></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> a</span> <span class="shortcut">Wrap selected in <a></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> b</span> <span class="shortcut">Wrap selected in <b></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> i</span> <span class="shortcut">Wrap selected in <i></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> g</span> <span class="shortcut">Wrap selected in <strong></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> e</span> <span class="shortcut">Wrap selected in <em></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> nums 1 - 7</span> <span class="shortcut">Wrap selected in <h1> - <h7></span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Alt <span class="plus">+</span> Enter</span> <span class="shortcut">End line with <br></span><br>
|
||||
<?php $isMac = strpos($_SERVER['HTTP_USER_AGENT'], "Macintosh")>-1 ? true : false;?>
|
||||
<div style="display: inline-block; width: 385px; margin-right: 20px">
|
||||
<h2><?php echo $t['Within document'];?></h2>
|
||||
<!-- This can only be CTRL+space as Cmd+space is a reserved apple shortcut -->
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> <?php echo $t['Space'];?></span> <span class="shortcut"><?php echo $t['Autocomplete add snippet'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> <?php echo $t['Click'];?> <span class="plus"><?php echo $t['or'];?></span> Alt <span class="plus">+</span> <?php echo $t['Drag'];?></span> <span class="shortcut"><?php echo $t['Multiple select'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ↑</span> <span class="shortcut"><?php echo $t['Move line up'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ↓</span> <span class="shortcut"><?php echo $t['Move line down'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> +</span> <span class="shortcut"><?php echo $t['Duplicate lines'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> -</span> <span class="shortcut"><?php echo $t['Remove lines'];?></span><br>
|
||||
<span class="key">Shift <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['Insert line before'];?></span><br>
|
||||
<span class="key">Alt <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['Insert line after'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> i</span> <span class="shortcut"><?php echo $t['Search for selected'];?> <span class="info" title="Popups need to be enabled">[?]</span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> j</span> <span class="shortcut"><?php echo $t['Jump to definition'];?></span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut"><?php echo $t['Comment uncomment'];?></span><br>
|
||||
<span class="key">Tab</span> <span class="shortcut"><?php echo $t['Insert tab indent'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> [</span> <span class="shortcut"><?php echo $t['Insert less'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ]</span> <span class="shortcut"><?php echo $t['Insert more'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> d</span> <span class="shortcut"><?php echo $t['Wrap with div'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> s</span> <span class="shortcut"><?php echo $t['Wrap with span'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> p</span> <span class="shortcut"><?php echo $t['Wrap unwrap p'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> a</span> <span class="shortcut"><?php echo $t['Wrap unwrap a'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> b</span> <span class="shortcut"><?php echo $t['Wrap unwrap b'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> i</span> <span class="shortcut"><?php echo $t['Wrap unwrap i'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> g</span> <span class="shortcut"><?php echo $t['Wrap unwrap strong'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> e</span> <span class="shortcut"><?php echo $t['Wrap unwrap em'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> 8</span> <span class="shortcut"><?php echo $t['Wrap unwrap li'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> 1, 2 <?php echo $t['or'];?> 3</span> <span class="shortcut"><?php echo $t['Wrap unwrap h1...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['End line with...'];?></span><br>
|
||||
</div>
|
||||
|
||||
<div style="display: inline-block; width: 365px">
|
||||
<h2>On logo</h2>
|
||||
<span class="key">Left click</span> <span class="shortcut">Help</span><br>
|
||||
<span class="key">Right click</span> <span class="shortcut">Settings</span><br><br>
|
||||
<div style="display: inline-block; width: 385px">
|
||||
<h2><?php echo $t['Within file manager'];?></h2>
|
||||
<span class="key"><?php echo $t['Left click'];?></span> <span class="shortcut"><?php echo $t['Select file folder'];?></span><br>
|
||||
<span class="key"><?php echo $t['Double click tap...'];?></span> <span class="shortcut"><?php echo $t['Open file'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> <?php echo strtolower($t['Left click']);?></span> <span class="shortcut"><?php echo $t['Multiple select'];?></span><br>
|
||||
<span class="key">Shift <span class="plus">+</span> <?php echo strtolower($t['Left click']);?></span> <span class="shortcut"><?php echo $t['Range select'];?></span><br>
|
||||
<span class="key"><?php echo $t['Right click'];?></span> <span class="shortcut"><?php echo $t['Options for selected'];?></span><br>
|
||||
<span class="key">Delete</span> <span class="shortcut"><?php echo $t['Delete selected'];?></span><br>
|
||||
<span class="key">← → ↑ ↓, Enter</span> <span class="shortcut">Move around file manager, open</span><br><br>
|
||||
|
||||
<h2>Within file manager</h2>
|
||||
<span class="key">Left click</span> <span class="shortcut">Select file / folder</span><br>
|
||||
<span class="key">Double click / click (mobile)</span> <span class="shortcut">Open file</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> left click</span> <span class="shortcut">Multiple select</span><br>
|
||||
<span class="key">Right click</span> <span class="shortcut">Options for selected</span><br>
|
||||
<span class="key">Delete</span> <span class="shortcut">Delete selected</span><br><br>
|
||||
|
||||
<h2>Anywhere</h2>
|
||||
<span class="key">CTRL <span class="plus">+</span> →</span> <span class="shortcut">Next tab</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> ←</span> <span class="shortcut">Previous tab</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> +</span> <span class="shortcut">New tab</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> -</span> <span class="shortcut">Close current tab</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> o</span> <span class="shortcut">Open file prompt</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> f</span> <span class="shortcut">Find</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> g</span> <span class="shortcut">Focus on Go to line input</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> s</span> <span class="shortcut">Save</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Shift <span class="plus">+</span> s</span> <span class="shortcut">Save as...</span><br>
|
||||
<span class="key">CTRL <span class="plus">+</span> Enter</span> <span class="shortcut">View webpage</span><br>
|
||||
<span class="key">Space</span> <span class="shortcut">Refocus on document</span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut">Cancel tasks</span><br>
|
||||
<h2><?php echo $t['Anywhere'];?></h2>
|
||||
<span class="key"><?php echo $t['Middle scrollwheel'];?></span> <span class="shortcut"><?php echo $t['Next previous tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> →</span> <span class="shortcut"><?php echo $t['Next tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ←</span> <span class="shortcut"><?php echo $t['Previous tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> +</span> <span class="shortcut"><?php echo $t['New tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> -</span> <span class="shortcut"><?php echo $t['Close current tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> o</span> <span class="shortcut"><?php echo $t['Open file prompt'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> f</span> <span class="shortcut"><?php echo $t['Find'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> g</span> <span class="shortcut"><?php echo $t['Focus on Go...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> s</span> <span class="shortcut"><?php echo $t['Save'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Shift <span class="plus">+</span> s</span> <span class="shortcut"><?php echo $t['Save as'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['View webpage'];?> <span class="info" title="Popups need to be enabled">[?]</span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> `</span> <span class="shortcut"><?php echo $t['Contract expand file...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> .</span> <span class="shortcut"><?php echo $t['Fold unfold current...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> ← / →</span> <span class="shortcut">Focus on file manager / content<!--<?php echo $t['Refocus on document'];?>//--></span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut"><?php echo $t['Cancel tasks'];?></span><br><br>
|
||||
|
||||
<h2><?php echo $t['On Tabs'];?></h2>
|
||||
<span class="key"><?php echo $t['Middle click'];?></span> <span class="shortcut"><?php echo $t['Close tab'];?></span><br>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
@@ -20,6 +20,7 @@ table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
body {overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-color: #222;
|
||||
}
|
||||
@@ -32,145 +33,133 @@ h2 {font-size: 18px; font-weight: normal; color: #fff}
|
||||
.popupVCenter .popup {#position: relative; #top: -50%; text-align: center; color: #fff; font-size: 10px}
|
||||
.whiteGlow {box-shadow: 0 0 8px 2px rgba(255,255,255,0.6)}
|
||||
|
||||
.circleOutside {background-color: rgba(0,0,0,0); border:5px solid rgba(0,183,229,0.9); opacity:.9; border-top:5px solid rgba(0,0,0,0); border-left:5px solid rgba(0,0,0,0); border-radius:50px; box-shadow: 0 0 35px #2187e7;
|
||||
width:50px; height:50px; margin:0 auto; -moz-animation:spin .5s infinite linear; -webkit-animation:spin .5s infinite linear;
|
||||
}
|
||||
.circleInside {background-color: rgba(0,0,0,0); border:5px solid rgba(0,183,229,0.9); opacity:.9; border-top:5px solid rgba(0,0,0,0); border-left:5px solid rgba(0,0,0,0); border-radius:50px; box-shadow: 0 0 15px #2187e7;
|
||||
width:30px; height:30px; margin:0 auto; position:relative; top:-50px; -moz-animation:spinoff .5s infinite linear; -webkit-animation:spinoff .5s infinite linear;
|
||||
}
|
||||
@-moz-keyframes spin {
|
||||
0% {-moz-transform:rotate(0deg)}
|
||||
100% {-moz-transform:rotate(360deg)}
|
||||
}
|
||||
@-moz-keyframes spinoff {
|
||||
0% {-moz-transform:rotate(0deg)}
|
||||
100% {-moz-transform:rotate(-360deg)}
|
||||
}
|
||||
@-webkit-keyframes spin {
|
||||
0% {-webkit-transform:rotate(0deg)}
|
||||
100% {-webkit-transform:rotate(360deg)}
|
||||
}
|
||||
@-webkit-keyframes spinoff {
|
||||
0% {-webkit-transform:rotate(0deg)}
|
||||
100% {-webkit-transform:rotate(-360deg)}
|
||||
.spinner {width: 50px; height: 50px; margin: 20px auto; background: #fff;
|
||||
-webkit-animation: rotateplane 1.2s infinite ease-in-out;
|
||||
animation: rotateplane 1.2s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.progressBar {position:absolute; top: 0; left: 0; width:100%; height:1px; margin:2px 0; background:#2187e7; box-shadow:0 0 10px 1px rgba(0,198,255,0.7)}
|
||||
@-moz-keyframes fullexpand {
|
||||
0% {width:0}
|
||||
100%{width:100%}
|
||||
}
|
||||
@-webkit-keyframes fullexpand {
|
||||
0% {width:0}
|
||||
100%{width:100%}
|
||||
@-webkit-keyframes rotateplane {
|
||||
0% {-webkit-transform: perspective(120px)}
|
||||
50% {-webkit-transform: perspective(120px) rotateY(180deg)}
|
||||
100% {-webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg)}
|
||||
}
|
||||
|
||||
.header {position: absolute; display: inline-block; top: 0; left: 0; width: 100%; height: 40px; background-color: #fff; text-align: right; z-index: 2}
|
||||
.header .tools {position: absolute; display: inline-block; left: 15px; top: 3px}
|
||||
.header .plugins {position: absolute; display: inline-block; left: 55px; top: 3px}
|
||||
.header .plugins img {position: relative; display: inline-block; margin-right: 15px}
|
||||
.header .screenModeIcon {position: absolute; top: 5px; right: 178px; cursor: pointer}
|
||||
.header .version {position: relative; display: inline-block; margin-top: 25px; font-size: 10px; color: #bbb}
|
||||
.header .version a {font-size: 10px; color: #bbb; text-decoration: none}
|
||||
.header .logo {position: relative; margin: 5px 10px 0 5px; cursor: pointer}
|
||||
|
||||
.files {position: absolute; display: inline-block; top: 0; left: 0; height: 100%; width: 250px; background-color: #444; background-image: url('../images/files-arrow.png'); background-repeat: no-repeat; background-position: 100% 50%; overflow: hidden; z-index: 1;
|
||||
box-shadow: 0 50px 10px 4px rgba(0,0,0,0.4);
|
||||
@keyframes rotateplane {
|
||||
0% {transform: perspective(120px) rotateX(0deg) rotateY(0deg)}
|
||||
50% {transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg)}
|
||||
100% {transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg)}
|
||||
}
|
||||
.files .account {display: inline-block; height: 50px; width: 250px; margin-top: 40px; background-color: #888}
|
||||
.files .accountOptions {position: relative; height: 32px; width: 100%; margin-left: 15px; margin-top: 8px}
|
||||
.files .accountOptions div {display: inline-block; background: url('../images/file-manager-icons.png') 0 0 no-repeat; cursor: pointer}
|
||||
.files .accountOptions .save {width: 30px; height: 32px; opacity: 0.3}
|
||||
.files .accountOptions .open {width: 25px; height: 32px; background-position: -32px -3px; margin: 3px 0 0 7px; opacity: 0.3}
|
||||
.files .accountOptions .newFile {width: 15px; height: 16px; background-position: -64px 0; margin: 8px 0 0 10px; opacity: 0.3}
|
||||
.files .accountOptions .newFolder {width: 20px; height: 16px; background-position: -80px 0; margin: 8px 0 0 5px; opacity: 0.3}
|
||||
.files .accountOptions .delete {width: 16px; height: 16px; background-position: -100px 0; margin: 8px 0 0 5px; opacity: 0.3}
|
||||
.files .accountOptions .rename {width: 16px; height: 16px; background-position: -116px 0; margin: 8px 0 0 5px; opacity: 0.3}
|
||||
.files .accountOptions .view {width: 16px; height: 16px; background-position: -132px 0; margin: 8px 0 0 5px; opacity: 0.3}
|
||||
.files .accountOptions .lock {position: relative; margin-left: 208px; margin-top: -27px; width: 12px; height: 16px; background-position: -64px -16px; z-index: 1}
|
||||
.files input:focus, .findReplace input:focus, .findReplace select:focus, .accountPassword:focus {outline: none; box-shadow: 0 0 10px 1px rgba(0,198,255,1)}
|
||||
|
||||
.plugins {position: absolute; display: inline-block; width: 3px; height: 100%; top: 0; background: transparent; overflow: hidden; z-index: 3;
|
||||
transition: all 0.07s ease-out;
|
||||
}
|
||||
|
||||
.header {position: absolute; display: inline-block; top: 0; left: 0; width: 100%; height: 20px; background-color: #fff; text-align: right; z-index: 1}
|
||||
|
||||
.files {position: absolute; display: inline-block; top: 0; left: 0; height: 100%; width: 250px; background-color: #444; background-image: url('../images/files-arrow.png'); background-repeat: no-repeat; background-position: 100% 50%; overflow: hidden; z-index: 2;
|
||||
transition: background 0.2s ease-out;
|
||||
}
|
||||
.files .fileNav {display: block; height: 36px}
|
||||
.files .fileNav ul {list-style-type: none; line-height: 24px; padding-left: 15px}
|
||||
.files .fileNav li {display: inline-block; padding: 18px 15px 0 0}
|
||||
.files .fileNav a {color: #666; text-decoration: none}
|
||||
.files .fileNav a:hover {color: #fff; cursor: pointer}
|
||||
|
||||
.files .githubNav {display: none; height: 19px; padding-top: 17px}
|
||||
.files .githubNav .commit {display: inline-block; margin-left: 15px; padding: 6px 9px; background: #555; color: #333; cursor: pointer}
|
||||
.files .githubNav .selected {display: inline-block; margin-left: 15px; padding: 6px 0; color: #333}
|
||||
.files .githubNav .pull {position: absolute; display: inline-block; margin-left: 15px; padding: 6px 9px; background: #555; color: #333; right: 15px; cursor: pointer}
|
||||
|
||||
.files .options {
|
||||
transition: opacity 0.15s ease-in-out;
|
||||
}
|
||||
.files .options .optionsList {position: absolute; display: inline-block; visibility: hidden; background: #383838; height: 100%; padding: 23px 15px 15px 15px}
|
||||
.files .options .optionsList ul {list-style-type: none; line-height: 24px}
|
||||
.files .options .optionsList a {color: #666; text-decoration: none}
|
||||
.files .options .optionsList a:hover {color: #fff; cursor: pointer}
|
||||
.files input:focus, .findReplace input:focus, .findReplace select:focus, .password:focus {outline: 0; box-shadow: 0 0 10px 1px rgba(0,198,255,0.7)}
|
||||
.files .button {position: absolute; border: 0; background: #444; color: #eee; height:20px; margin-top: 16px; margin-left: 5px; font-size: 11px; cursor: pointer}
|
||||
.files .button:hover {background-color: #222; color: #eee}
|
||||
.files .frame {display: inline-block; width: 250px}
|
||||
.files .serverMessage {position: absolute; display: none; width: 450px; bottom: 0; margin-bottom: 30px; background-color: rgba(255,255,255,0.8); font-size: 10px; padding: 7px 12px; opacity: 0;
|
||||
-webkit-transition: opacity 0.2s;
|
||||
-moz-transition: opacity 0.2s;
|
||||
.files .frame {display: inline-block; width: 250px; margin-top: 24px}
|
||||
.files .serverMessage {position: absolute; display: inline-block; width: 450px; bottom: 0; background-color: rgba(255,255,255,0.8); font-size: 10px; padding: 4px 12px 1px 12px; opacity: 0;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
.files .serverMessage b {font-size: 10px}
|
||||
|
||||
.editor {position: absolute; display: inline-block; top: 0; left: 15px; width: 2400px}
|
||||
.editor .tabsBar {display: inline-block; height: 22px; width: 2400px; margin-top: 40px; padding-left: 41px; background: #ddd}
|
||||
.tabsBar .tab {position: absolute; display: none; background: url('../images/nav-bg.jpg') repeat-x 0 0; padding: 5px 8px 2px 8px; font-size: 10px; border-left: solid 1px #eee; border-right: solid 1px #777; border-radius: 4px 4px 0 0; color: #fff; white-space: nowrap; overflow: hidden; cursor: pointer; z-index: 1;
|
||||
-webkit-transition: width 0.15s ease-in-out;
|
||||
-moz-transition: width 0.15s ease-in-out;
|
||||
.editor .tabsBar {display: inline-block; height: 22px; width: 2400px; margin-top: 20px; padding-left: 53px; background: #fff}
|
||||
.tabsBar .tab {position: absolute; display: none; height: 15px; padding: 5px 8px 2px 9px; border-right: 1px solid #ddd; color: #fff; white-space: nowrap; overflow: hidden; cursor: pointer; z-index: 1;
|
||||
transition: width 0.15s ease-in-out;
|
||||
-webkit-transition: left 0.15s ease-in-out;
|
||||
-moz-transition: left 0.15s ease-in-out;
|
||||
transition: left 0.15s ease-in-out;
|
||||
}
|
||||
.tabsBar .tabSlide {
|
||||
-webkit-transition: left 0.15s ease-in-out;
|
||||
-moz-transition: left 0.15s ease-in-out;
|
||||
transition: left 0.15s ease-in-out;
|
||||
}
|
||||
.tabsBar .tabDrag {
|
||||
-webkit-transition: left 0s ease-in-out;
|
||||
-moz-transition: left 0s ease-in-out;
|
||||
transition: left 0s ease-in-out;
|
||||
}
|
||||
.tabsBar .tab .closeTab, .tabsBar .closeAllTabs {margin: 1px 0 0 5px; border-radius: 6px; cursor: pointer}
|
||||
.tabsBar .tab .closeTab {position: absolute; right: 7px}
|
||||
.tabsBar .alphaTabs {position: absolute; margin: 6px 0 0 -17px; background: #bbb; border-radius: 6px; cursor: pointer}
|
||||
.tabsBar .alphaTabs:hover {background: #000}
|
||||
.tabsBar .closeAllTabs {position: absolute; margin: 6px 0 0 -33px; background: #bbb}
|
||||
.tabsBar .closeAllTabs:hover {background: #000}
|
||||
.tabsBar .newTab {position: absolute; display: inline-block; background-image: url('../images/nav-bg.jpg'); background-repeat: repeat-x; background-position: 0 0; padding: 6px 5px 5px 5px; border-left: solid 1px #eee; border-right: solid 1px #777; border-radius: 4px 4px 0 0; cursor: pointer; z-index: 1;
|
||||
-webkit-transition: left 0.15s ease-in-out;
|
||||
-moz-transition: left 0.15s ease-in-out;
|
||||
.tabsBar .alphaTabs {position: absolute; margin: 6px 0 0 -20px; border-radius: 6px; cursor: pointer}
|
||||
.tabsBar .alphaTabs:hover {background: #ccc}
|
||||
.tabsBar .closeAllTabs {position: absolute; margin: 6px 0 0 -36px}
|
||||
.tabsBar .closeAllTabs:hover {background: #ccc}
|
||||
.tabsBar .newTab {position: absolute; display: inline-block; height: 15px; padding: 4px 7px 3px 7px; background: #ddd; cursor: pointer; z-index: 0;
|
||||
transition: left 0.15s ease-in-out;
|
||||
}
|
||||
.editor .findBar {display: inline-block; height: 28px; width: 2400px; color: #fff; background-color: #141414}
|
||||
.findBar .findReplace {position: absolute; z-index: 1}
|
||||
.findReplace select {position: relative; font-size: 10px; margin: 8px 2px 0 2px; top: -2px;}
|
||||
.findReplace .findText {display: inline-block; height: 21px; font-size: 10px; margin: 8px 2px 0 2px; margin-left: 43px}
|
||||
.findReplace .find {position: relative; width: 120px; height: 16px; border: 0; top: -3px; font-size: 10px; padding-left: 5px; margin-right: 3px}
|
||||
.findReplace .replaceAction {margin: 0 2px 0 0; top: -2px}
|
||||
.findReplace .replaceText {height: 21px; font-size: 10px; margin: 8px 2px 0 2px}
|
||||
.findReplace .replace {position: relative; width: 120px; height: 16px; border: 0; top: -3px; font-size: 10px; padding-left: 5px}
|
||||
.findReplace .targetText {height: 21px; font-size: 10px; margin: 8px 2px 0 2px}
|
||||
.findReplace .submit {position: relative; top: -2px; height: 17px; border: 0; background-color: #444; color: #eee; font-size: 10px; margin-left: 2px; cursor: pointer}
|
||||
.editor .findBar {display: inline-block; height: 28px; width: 2400px; color: #fff; background-color: #141612}
|
||||
.findBar .findReplace {position: absolute; padding-top: 2px; z-index: 1}
|
||||
.findReplace .selectWrapper {position: relative; display: inline-block}
|
||||
.findReplace .selectWrapper select {position: relative; padding: 1px; border: 0; background: url('../images/select-arrow.gif') no-repeat right #444; color: #fff; font-size: 10px; height: 16px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
.findReplace .findText {display: inline-block; height: 21px; font-size: 10px; margin: 6px 3px 0 43px}
|
||||
.findReplace .find {position: relative; width: 120px; height: 16px; border: 0; top: 3px; font-size: 10px; padding-left: 5px; margin-right: 3px; background: #444; color: #eee}
|
||||
.findReplace .replaceText {height: 21px; font-size: 10px; margin: 6px 2px 0 2px}
|
||||
.findReplace .replace {position: relative; width: 120px; height: 16px; border: 0; top: 3px; font-size: 10px; padding-left: 5px; background: #444; color: #eee}
|
||||
.findReplace .targetText {height: 21px; font-size: 10px; margin: 6px 2px 0 2px}
|
||||
.findReplace .submit {position: relative; top: 3px; height: 16px; border: 0; background-color: #444; color: #eee; font-size: 10px; margin-left: 2px; cursor: pointer}
|
||||
.findReplace .submit:hover {background-color: #2187e7; color: #eee}
|
||||
.findReplace .results {position: relative; display: inline-block; width: 200px; height: 20px; font-size: 10px; margin: 8px 0 0 20px}
|
||||
.findBar .codeAssist {position: fixed; display: inline-block; width: 100px; right: 74px; top: 70px; height: 21px; font-size: 10px; cursor: default; z-index: 1}
|
||||
.findBar .codeAssist input {margin-top: -1px}
|
||||
.findBar .goLine {position: fixed; display: inline-block; width: 100px; right: -10px; top: 70px; height: 21px; font-size: 10px; cursor: default; z-index: 1}
|
||||
.goLine .goToLine {width: 25px; height: 16px; border: 0; font-size: 10px; margin: -3px 0 0 3px}
|
||||
.findBar .codeAssist {position: fixed; display: inline-block; width: 100px; right: 146px; top: 49px; height: 21px; font-size: 10px; color: #eee; cursor: default; z-index: 1}
|
||||
.findBar .codeAssist .codeAssistCheckbox {display: none}
|
||||
.findBar .codeAssist .codeAssistDisplay {display: inline-block; width: 16px; height: 16px; margin: -1px 4px 0 0; vertical-align: middle; background: url('../images/checkbox.gif') 0 0 no-repeat; cursor: pointer}
|
||||
.findBar .goLine {position: fixed; display: inline-block; width: 100px; right: 58px; top: 49px; height: 21px; font-size: 10px; color: #eee; cursor: default; z-index: 1}
|
||||
.goLine .goToLine {width: 30px; height: 16px; border: 0; font-size: 10px; margin: -3px 0 0 3px; padding-left: 4px; background: #444; color: #eee}
|
||||
.goLine .goToLine:focus {outline: none; box-shadow: 0 0 10px 1px rgba(0,198,255,1)}
|
||||
.findBar .view {position: fixed; display: inline-block; width: 16px; height: 16px; right: 42px; top: 49px; background: url('../images/file-manager-icons.png') 0 0 no-repeat; cursor: pointer; background-position: -48px 0; opacity: 0.3}
|
||||
.findBar .bug {position: fixed; display: inline-block; width: 16px; height: 16px; right: 16px; top: 48px; background: url('../images/bug-reporting-icons.png') 0 0 no-repeat; cursor: pointer; background-position: 0 0}
|
||||
.editor .code {position: relative; display: inline-block; top: 28px; width: 600px; height: 600px; visibility: hidden}
|
||||
|
||||
.footer {position: fixed; display: inline-block; width: 100%; height: 30px; bottom: 0; background-color: rgba(0,0,0,0.7); left: 0; z-index: 2}
|
||||
.footer .system {position: absolute; display: inline-block; padding: 10px 0 0 15px}
|
||||
.footer .system div {position: relative; display: inline-block; margin-right: 10px; width: 11px; height: 11px; cursor: pointer}
|
||||
.footer .system .preview {background: url('../images/file-manager-icons.png') no-repeat -116px -16px}
|
||||
.footer .system .terminal {background: url('../images/file-manager-icons.png') no-repeat -132px -16px}
|
||||
.footer {position: fixed; display: inline-block; width: 100%; height: 30px; bottom: 0; background-color: rgba(0,0,0,0.7); left: 0; z-index: 1}
|
||||
.footer .nesting {position: absolute; display: inline-block; padding: 5px; margin-top: 10px; left: 260px; border-radius: 5px; background-color: #0b0; cursor: default}
|
||||
.footer .nestDisplay {position: absolute; display: inline-block; padding: 5px 0 0 8px; margin-top: 0px; left: 267px; font-size: 12px; color: #fff; text-align: right}
|
||||
.footer .splitPaneControls {position: absolute; display: inline-block; width: 50px; text-align: center; padding: 6px}
|
||||
.footer .splitPaneControls .off {display: inline-block; width: 18px; height: 18px; margin-right: 10px; background: url('../images/split-pane-controls.gif') no-repeat 0 0; cursor: pointer}
|
||||
.footer .splitPaneControls .on {display: inline-block; width: 19px; height: 18px; background: url('../images/split-pane-controls.gif') no-repeat -18px 0; cursor: pointer}
|
||||
.footer .charDisplay, .footer .byteDisplay {position: absolute; display: inline-block; padding: 5px 0 0 8px; margin-top: 3px; margin-right: 10px; right: 0; font-weight: bold; font-size: 12px; color: #fff; text-align: right; text-align: right; cursor: pointer}
|
||||
|
||||
.textbox {box-shadow: inset 1px 1px 2px 0 rgba(0,0,0,0.4)}
|
||||
|
||||
.fileMenu {position: absolute; display: none; left: 0; top: 0; background-color: #333; z-index: 10}
|
||||
.fileMenu {position: absolute; display: none; left: 0; top: 0; background-color: #333; z-index: 10;
|
||||
transition: opacity 0.15s;
|
||||
}
|
||||
.fileMenu a {display: block; padding: 2px 5px; background-color: #333; color: #eee; text-decoration: none}
|
||||
.fileMenu a:hover {background-color: #666}
|
||||
.fileMenu hr {border: 0; height: 1px; padding: 0; margin: 0; background: #444}
|
||||
|
||||
.screenContainer {position: absolute; display: table; width: 100%; height: 100%; top: 0; left: 0; text-align: center}
|
||||
.screenContainer .screenVCenter {#position: absolute; display: table-cell; #top: 50%; vertical-align: middle; text-align: center}
|
||||
.screenVCenter .screenCenter {#position: relative; #top: -50%; text-align: center; display: inline}
|
||||
.screenCenter .version {position: relative; display: block; margin: 5px 0 15px 0; font-size: 10px; color: #bbb}
|
||||
.screenCenter .trialBarContainer {display: inline-block; width: 170px; height: 8px; color: #bbb; background: #0b0b0b; text-align: right; margin-bottom: 40px}
|
||||
.screenCenter .trialBarRemaining {display: inline-block; width: 170px; height: 8px; background: rgba(0,198,255,0.7); box-shadow: 0 0 10px 1px rgba(0,198,255,0.7);
|
||||
transition: width 0.7s ease-in-out;
|
||||
}
|
||||
.screenCenter .trialBarText {text-align: center}
|
||||
.screenCenter .trialBarText a {color: #fff; text-decoration: none}
|
||||
.screenCenter .text {position: relative; display: block; margin-top: 15px; font-size: 10px; color: #888}
|
||||
.screenCenter .text input {margin-top: 1px}
|
||||
.screenCenter .text a {position: relative; display: block; margin-top: 15px; font-size: 10px; color: #888; text-decoration: none}
|
||||
.screenCenter .accountPassword {border: 0; background-color: #333; color: #fff; height: 20px}
|
||||
.screenCenter .password {border: 0; background-color: #333; color: #fff; height: 20px}
|
||||
.screenCenter .button {border: 0; background: #444; color: #eee; height: 22px; cursor: pointer}
|
||||
.screenCenter .button:hover {background: #2187e7; color: #eee}
|
||||