mirror of
https://github.com/webmin/webmin.git
synced 2026-02-10 17:22:04 +00:00
Compare commits
732 Commits
dev/patch-
...
logrotate_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
083bde276c | ||
|
|
1b7c9f9dd6 | ||
|
|
32e08c1fca | ||
|
|
fc88e8b2f7 | ||
|
|
c6a0aa1f15 | ||
|
|
13da2bc390 | ||
|
|
492179ecf1 | ||
|
|
cb008dd4f8 | ||
|
|
6ca9dedb29 | ||
|
|
9cc735c01b | ||
|
|
ea5a1c0f8c | ||
|
|
96d749202b | ||
|
|
86bd8568d3 | ||
|
|
3d5e3166ac | ||
|
|
783ee2d4d6 | ||
|
|
49c05624e1 | ||
|
|
fc0ddace80 | ||
|
|
7ecf0b38a7 | ||
|
|
73d90826a1 | ||
|
|
31f6a58b0a | ||
|
|
6c82ca53a5 | ||
|
|
df1bf060a9 | ||
|
|
5e203798a9 | ||
|
|
e8565d84ab | ||
|
|
4ac6ce2723 | ||
|
|
5fddf7aa7a | ||
|
|
84265a9c7b | ||
|
|
0bca7791d7 | ||
|
|
54a9dcb75f | ||
|
|
a3bce3d1aa | ||
|
|
938f9b35ca | ||
|
|
45b88d85b5 | ||
|
|
db213c812a | ||
|
|
f08df0a858 | ||
|
|
699de35596 | ||
|
|
9d5d790526 | ||
|
|
433c4151fe | ||
|
|
07e1655e14 | ||
|
|
44f4283009 | ||
|
|
f330307803 | ||
|
|
8595a36f18 | ||
|
|
121b20caa0 | ||
|
|
198b25e3a3 | ||
|
|
d70496aac9 | ||
|
|
14f9624ac4 | ||
|
|
8727a6cc8e | ||
|
|
60ce4c81fe | ||
|
|
ba81b22e55 | ||
|
|
6e6c9c26c7 | ||
|
|
8d0367e6e6 | ||
|
|
60bba6cb81 | ||
|
|
ee3bf19a9b | ||
|
|
da6b548876 | ||
|
|
ad0b28abf7 | ||
|
|
401631daec | ||
|
|
ee33579600 | ||
|
|
ff065a5647 | ||
|
|
e7d2dc8b67 | ||
|
|
b95c96e501 | ||
|
|
ad540808df | ||
|
|
a73f7cf6d7 | ||
|
|
24d39f631d | ||
|
|
9c4e2d7653 | ||
|
|
ae5c7a9db9 | ||
|
|
1ce380f037 | ||
|
|
300d34e303 | ||
|
|
81afd08b0d | ||
|
|
87a2871013 | ||
|
|
e2dd91febc | ||
|
|
2008ad63fb | ||
|
|
fcdebf6891 | ||
|
|
d0e7a4efde | ||
|
|
1ad15e0bfb | ||
|
|
5427420d3c | ||
|
|
dd4ae09642 | ||
|
|
5d31698099 | ||
|
|
72fef64c4d | ||
|
|
3258e1cbac | ||
|
|
fe1043a6aa | ||
|
|
cf79c33e28 | ||
|
|
c0e09b4fa6 | ||
|
|
785eb8646b | ||
|
|
50be76165b | ||
|
|
c4a0b18a49 | ||
|
|
aae7bb5ac8 | ||
|
|
67391244e4 | ||
|
|
1cf778b627 | ||
|
|
39af4f2328 | ||
|
|
42beaf915a | ||
|
|
fbdbedd3bc | ||
|
|
98f7a86f71 | ||
|
|
1506238c7b | ||
|
|
9e3918e813 | ||
|
|
9160dc5735 | ||
|
|
8e4bfff29e | ||
|
|
40b61a6c22 | ||
|
|
a014d5b59f | ||
|
|
d1e4c5d577 | ||
|
|
da52526931 | ||
|
|
0363812172 | ||
|
|
8acf9980f8 | ||
|
|
af3ee1034f | ||
|
|
186e578802 | ||
|
|
a2520b4396 | ||
|
|
38f0ccc155 | ||
|
|
73132e7f86 | ||
|
|
d4d963910d | ||
|
|
80ce9a7ef4 | ||
|
|
314d6c5efc | ||
|
|
260eca09ae | ||
|
|
0928edaa08 | ||
|
|
5df04a50bd | ||
|
|
0dab0c08ed | ||
|
|
0b80083a9c | ||
|
|
bb8421c411 | ||
|
|
6b3457e9fd | ||
|
|
f5e15dbe08 | ||
|
|
78d5332499 | ||
|
|
761a879919 | ||
|
|
1c8c259eae | ||
|
|
98a8fa9e22 | ||
|
|
d10bd3a601 | ||
|
|
a379c1f3ed | ||
|
|
99a59ed554 | ||
|
|
f15ebca9af | ||
|
|
cc25fa2b32 | ||
|
|
9ccb944291 | ||
|
|
6114028aea | ||
|
|
41887071c0 | ||
|
|
468a570adf | ||
|
|
1a45048d89 | ||
|
|
846b611455 | ||
|
|
27ac760466 | ||
|
|
dedfc90e71 | ||
|
|
89ae8632e0 | ||
|
|
a508a10f54 | ||
|
|
4ea1303a40 | ||
|
|
9d48afe562 | ||
|
|
edccfc4533 | ||
|
|
4d70ada051 | ||
|
|
c0f69446b3 | ||
|
|
aab912dccf | ||
|
|
66a792292a | ||
|
|
a291502d24 | ||
|
|
cfb7f9b560 | ||
|
|
7eb8e4d336 | ||
|
|
ec4b331709 | ||
|
|
ed31389087 | ||
|
|
23aa974014 | ||
|
|
1ceabeb841 | ||
|
|
5478a4fc87 | ||
|
|
16df7857a4 | ||
|
|
8223f24b2b | ||
|
|
30b2791669 | ||
|
|
09418cec2e | ||
|
|
f9e2f1a0be | ||
|
|
de140fa55c | ||
|
|
f6f0dee117 | ||
|
|
9636b82f55 | ||
|
|
08ace21d34 | ||
|
|
795040a0a5 | ||
|
|
77df6875c2 | ||
|
|
c1989caae1 | ||
|
|
8517809ae0 | ||
|
|
6a9f7a7f7e | ||
|
|
80bfbf30dc | ||
|
|
1ce2c9f1c2 | ||
|
|
f73f8cfb55 | ||
|
|
9133a10b5d | ||
|
|
3c75e74b8b | ||
|
|
9749106ccf | ||
|
|
1297ad22c8 | ||
|
|
04eaedb299 | ||
|
|
bdf6e37de8 | ||
|
|
1555dfe168 | ||
|
|
8f8ea12e98 | ||
|
|
cd69218e1b | ||
|
|
a5085ccb23 | ||
|
|
79e248cf98 | ||
|
|
11aacce9f6 | ||
|
|
8de2dbb795 | ||
|
|
5113f6d076 | ||
|
|
65b36d6c07 | ||
|
|
d737c638aa | ||
|
|
6d90370b0b | ||
|
|
b58ba1cb3b | ||
|
|
a6005361b5 | ||
|
|
2a81aabf96 | ||
|
|
ee994bef2f | ||
|
|
871152f723 | ||
|
|
7ed1497f8d | ||
|
|
1a4f461ae5 | ||
|
|
b945282489 | ||
|
|
e9ef704787 | ||
|
|
c122d13747 | ||
|
|
742dcdc022 | ||
|
|
5d01d93f67 | ||
|
|
5d981550af | ||
|
|
a5302c109a | ||
|
|
d755168d12 | ||
|
|
d8f669b7df | ||
|
|
5a44632bd1 | ||
|
|
9ce7706ff2 | ||
|
|
160895f5e2 | ||
|
|
7249984dee | ||
|
|
c6b216ee32 | ||
|
|
357392eb84 | ||
|
|
2f46acff31 | ||
|
|
9511fc342f | ||
|
|
d590ed3f54 | ||
|
|
416c614d6c | ||
|
|
21bf12a897 | ||
|
|
ad7f7e84b1 | ||
|
|
132a223d5c | ||
|
|
66ee14b2a6 | ||
|
|
acc820debf | ||
|
|
9d4db5bc42 | ||
|
|
b39486de66 | ||
|
|
5bc24cff74 | ||
|
|
d083cffd50 | ||
|
|
af150c9210 | ||
|
|
64084c3b90 | ||
|
|
d24e3bf3aa | ||
|
|
9ac2a45822 | ||
|
|
09a00bd839 | ||
|
|
b755ce9daf | ||
|
|
ebab02c15b | ||
|
|
38d6309e57 | ||
|
|
75d91469ed | ||
|
|
980a0f37fc | ||
|
|
899c385032 | ||
|
|
444b437ba3 | ||
|
|
cefdce5911 | ||
|
|
07da92a2e7 | ||
|
|
4ad3f1e2b6 | ||
|
|
2b0abd778e | ||
|
|
53b84887cd | ||
|
|
e6e65a5d32 | ||
|
|
554f0b57a2 | ||
|
|
2aad92ea53 | ||
|
|
506f7a1819 | ||
|
|
56c0f5ea32 | ||
|
|
94bb4921d2 | ||
|
|
357bed0506 | ||
|
|
901e324bae | ||
|
|
19eb916cc1 | ||
|
|
46403a77b1 | ||
|
|
b174973984 | ||
|
|
6e9cb986ad | ||
|
|
95501e1c29 | ||
|
|
ff36b2ce22 | ||
|
|
b1a98f9b6c | ||
|
|
9329829732 | ||
|
|
b82c01c4ff | ||
|
|
59e97be96c | ||
|
|
5363e461e4 | ||
|
|
efae1cf754 | ||
|
|
2732142969 | ||
|
|
5498afecb4 | ||
|
|
20a6a7d5e7 | ||
|
|
9d4b281069 | ||
|
|
cdb18f32e0 | ||
|
|
162206949f | ||
|
|
8fd971c970 | ||
|
|
5ea0cc6b42 | ||
|
|
5fde929295 | ||
|
|
64598e5f39 | ||
|
|
6980e08f87 | ||
|
|
3f09aeed14 | ||
|
|
bdea86afa2 | ||
|
|
46af488994 | ||
|
|
53197ca536 | ||
|
|
a1066eb002 | ||
|
|
b488e28550 | ||
|
|
226da2c60d | ||
|
|
7de796620c | ||
|
|
0d8e877f85 | ||
|
|
2f12268e4b | ||
|
|
1db2df6bdf | ||
|
|
85dd40d710 | ||
|
|
f0fdb4cd89 | ||
|
|
df928c5487 | ||
|
|
6c573f0251 | ||
|
|
51817a25bd | ||
|
|
797ba9f45e | ||
|
|
08b1ee3be6 | ||
|
|
f9c9ff77b6 | ||
|
|
dd42835d12 | ||
|
|
c9b77043d8 | ||
|
|
4f78baf0b2 | ||
|
|
c24d9dcdef | ||
|
|
d82d31f92a | ||
|
|
310664de76 | ||
|
|
26e37add44 | ||
|
|
465803f73f | ||
|
|
d2db00a5d1 | ||
|
|
83457fe4c0 | ||
|
|
3c45598140 | ||
|
|
36de5bfc30 | ||
|
|
c461dfe965 | ||
|
|
d913d6c6a3 | ||
|
|
a539f46189 | ||
|
|
4bd0c8a67f | ||
|
|
4070f632de | ||
|
|
b6729f437e | ||
|
|
26ab2110cb | ||
|
|
61cf8dcc73 | ||
|
|
749f740bbb | ||
|
|
7cd1f70142 | ||
|
|
477982776c | ||
|
|
96548df5f2 | ||
|
|
1a0eed3943 | ||
|
|
94d366551a | ||
|
|
dfd0924869 | ||
|
|
a2d5d68dcf | ||
|
|
e7441b05ed | ||
|
|
4b87ccb3c1 | ||
|
|
9d25a07c12 | ||
|
|
37d5120977 | ||
|
|
0178d7ae99 | ||
|
|
c39e5ffb01 | ||
|
|
4e5ba94818 | ||
|
|
599d096783 | ||
|
|
55ae93e447 | ||
|
|
e412d1a1e6 | ||
|
|
b69067e38f | ||
|
|
80e99b7b25 | ||
|
|
4f945b0a4e | ||
|
|
93a298a7d1 | ||
|
|
23871ff3a9 | ||
|
|
5931243e4d | ||
|
|
5a8e7c5dee | ||
|
|
4dd309829c | ||
|
|
ab75637b7a | ||
|
|
a6e0b3cee5 | ||
|
|
4a9ed9e8ab | ||
|
|
a955ccc55c | ||
|
|
ad43838cb6 | ||
|
|
fbf85c6e76 | ||
|
|
c7eb185639 | ||
|
|
eab8fae651 | ||
|
|
a5be6dc02a | ||
|
|
0d72f56620 | ||
|
|
9a797f0a0e | ||
|
|
8fc26680dc | ||
|
|
7828756ed2 | ||
|
|
4d8cc424f4 | ||
|
|
591dda7199 | ||
|
|
54a72c5025 | ||
|
|
816328b643 | ||
|
|
1fb332ff05 | ||
|
|
1c991f9635 | ||
|
|
c7a709c837 | ||
|
|
950122068d | ||
|
|
e7d8f7271a | ||
|
|
5dbefb1d42 | ||
|
|
f152dafc3f | ||
|
|
78eb57f55c | ||
|
|
c91b322c60 | ||
|
|
be52cadfbe | ||
|
|
699c0820ea | ||
|
|
444307c58a | ||
|
|
8dd0d03018 | ||
|
|
e2bc898b57 | ||
|
|
d826b3423f | ||
|
|
70344dea10 | ||
|
|
33b2ebecfa | ||
|
|
c26d653f5b | ||
|
|
db7c8b8770 | ||
|
|
6d6dd87d38 | ||
|
|
580149f8bd | ||
|
|
ee8d72b2e4 | ||
|
|
a8a382ecc3 | ||
|
|
33afba1686 | ||
|
|
e43df47e41 | ||
|
|
1d57955672 | ||
|
|
42c4a39510 | ||
|
|
adb047dd11 | ||
|
|
19edf0efd9 | ||
|
|
8f7a2f818f | ||
|
|
ce70d4caab | ||
|
|
65d185bfdf | ||
|
|
eb2cd4e142 | ||
|
|
21e110cc8a | ||
|
|
c1196f744a | ||
|
|
f9c355d127 | ||
|
|
4ef76b2ed9 | ||
|
|
072771f524 | ||
|
|
05382d840d | ||
|
|
22beff5e92 | ||
|
|
5ff7190f06 | ||
|
|
66bf7c9e28 | ||
|
|
06fe239c3f | ||
|
|
00f11fc81d | ||
|
|
643270f3d9 | ||
|
|
262a1cb531 | ||
|
|
cef6f833fb | ||
|
|
084ed0b835 | ||
|
|
5182e4a428 | ||
|
|
086f366954 | ||
|
|
7476d48ab7 | ||
|
|
5992c7ba51 | ||
|
|
cc0ab1bc8a | ||
|
|
d1cc0c4790 | ||
|
|
720b01e690 | ||
|
|
552d909078 | ||
|
|
1633f275db | ||
|
|
c3bb0b09c2 | ||
|
|
38136888b3 | ||
|
|
216ae24206 | ||
|
|
f5b76f5b77 | ||
|
|
2ad935f672 | ||
|
|
b5ef94d12c | ||
|
|
0844abc63d | ||
|
|
63a81ef70f | ||
|
|
76c41b8508 | ||
|
|
5077349364 | ||
|
|
47e26c4fde | ||
|
|
a0da37ca08 | ||
|
|
21dbdcc983 | ||
|
|
b66aab704d | ||
|
|
84b559646c | ||
|
|
f3f232b7f5 | ||
|
|
c5543500b4 | ||
|
|
687225075d | ||
|
|
7c2a993629 | ||
|
|
4775d07c8f | ||
|
|
1bee0a007d | ||
|
|
11ad8d48e6 | ||
|
|
c61b52afc9 | ||
|
|
3ea7b57ca2 | ||
|
|
c75f29d011 | ||
|
|
8b726abdad | ||
|
|
bc820a5148 | ||
|
|
65e70835d2 | ||
|
|
37075fc1ec | ||
|
|
cda9b9553f | ||
|
|
ce27473110 | ||
|
|
ef09c6cef0 | ||
|
|
d97bbfff0f | ||
|
|
5419079e8b | ||
|
|
6cbbeebb56 | ||
|
|
b7981f9024 | ||
|
|
c199cffb3d | ||
|
|
a1ab757d66 | ||
|
|
cf876900cf | ||
|
|
289b61f91e | ||
|
|
89300de664 | ||
|
|
19009cd155 | ||
|
|
d1ec3910d2 | ||
|
|
7cd747d82f | ||
|
|
ccd7b4b7d5 | ||
|
|
8dff80e2cb | ||
|
|
14d5182b9e | ||
|
|
b44ca28634 | ||
|
|
564f4a9b47 | ||
|
|
4d739ea832 | ||
|
|
8df7958dfb | ||
|
|
5463547e7a | ||
|
|
7cfa552ff4 | ||
|
|
944f1a020d | ||
|
|
f6fa766746 | ||
|
|
68fc90d2db | ||
|
|
0c408cf7e7 | ||
|
|
9409051046 | ||
|
|
54e559452f | ||
|
|
d905f72cd7 | ||
|
|
44521d8d60 | ||
|
|
8dd6b6c44d | ||
|
|
6257679e44 | ||
|
|
6a9849ba2d | ||
|
|
e1f398d3aa | ||
|
|
e3acac1ebf | ||
|
|
a2a1dc12e9 | ||
|
|
ac967a1fc5 | ||
|
|
4b14aee655 | ||
|
|
e4672703e8 | ||
|
|
147afb9d41 | ||
|
|
c14b3a8e08 | ||
|
|
e3112ac41f | ||
|
|
cb2be8b8d8 | ||
|
|
11b4a8ca54 | ||
|
|
e7f7487930 | ||
|
|
36e2359312 | ||
|
|
54793b4596 | ||
|
|
65f349c1ce | ||
|
|
992a961590 | ||
|
|
f87cc4a121 | ||
|
|
261ff535e0 | ||
|
|
e8c1b3dedb | ||
|
|
1f6697e05f | ||
|
|
03147121c6 | ||
|
|
4b3acba3f8 | ||
|
|
38b119ac43 | ||
|
|
ae70f5e4bd | ||
|
|
d3f8859df2 | ||
|
|
6145783116 | ||
|
|
5ba6cbe9ab | ||
|
|
d55d49e4d0 | ||
|
|
7bad42f217 | ||
|
|
d7b2a41040 | ||
|
|
5c723544fe | ||
|
|
b0e3787461 | ||
|
|
a415a743f6 | ||
|
|
4e351b32fb | ||
|
|
a326c0939d | ||
|
|
295318f67f | ||
|
|
3c86a1a158 | ||
|
|
33192cc0d9 | ||
|
|
da20f7c88f | ||
|
|
d81bf3f569 | ||
|
|
01663dfe25 | ||
|
|
bc10564706 | ||
|
|
f10998e2b7 | ||
|
|
639d558a47 | ||
|
|
edc41bf338 | ||
|
|
b9f3152827 | ||
|
|
04bcccdc43 | ||
|
|
f1f4d9b719 | ||
|
|
a45964f55e | ||
|
|
23def8deb5 | ||
|
|
2ba7e4b071 | ||
|
|
33b4223183 | ||
|
|
9607c3cae7 | ||
|
|
782f0fbedd | ||
|
|
7f659978ac | ||
|
|
768b586144 | ||
|
|
167d73090e | ||
|
|
951dffc3a3 | ||
|
|
a5a97eaedb | ||
|
|
6b2a9d34bf | ||
|
|
b5f79d31a6 | ||
|
|
1d272f0490 | ||
|
|
b5f2e8f47f | ||
|
|
d650d65163 | ||
|
|
0389c537be | ||
|
|
530db71e3f | ||
|
|
2ad13ccd74 | ||
|
|
3a90c0e4fe | ||
|
|
75095eab06 | ||
|
|
8f2338e1a7 | ||
|
|
60345c4d8e | ||
|
|
b648a21323 | ||
|
|
d59837dbad | ||
|
|
e60e24f1ee | ||
|
|
c861bf971e | ||
|
|
8bc8c017e6 | ||
|
|
87bacd1489 | ||
|
|
5fae4a69ee | ||
|
|
1764671ac7 | ||
|
|
7f1faaac4d | ||
|
|
91111d5e82 | ||
|
|
39a3ebac3b | ||
|
|
60b87f3b34 | ||
|
|
758e277328 | ||
|
|
d02615c0ab | ||
|
|
6051231e73 | ||
|
|
d80a394d77 | ||
|
|
9f64dbd134 | ||
|
|
85e3dc418a | ||
|
|
c607990c48 | ||
|
|
c76e257961 | ||
|
|
0009335636 | ||
|
|
964bc33ed0 | ||
|
|
75087357b0 | ||
|
|
c0a45fe6ca | ||
|
|
da5c68a04f | ||
|
|
9966a2ab47 | ||
|
|
cffabd972b | ||
|
|
b2e0db9db9 | ||
|
|
d2d070b721 | ||
|
|
0939e55b01 | ||
|
|
2259c1a72a | ||
|
|
26fc396421 | ||
|
|
69823048d2 | ||
|
|
5e57e571b3 | ||
|
|
6e3fb4d806 | ||
|
|
f8ce246b37 | ||
|
|
d45e317303 | ||
|
|
90c0ec556f | ||
|
|
d65460d50e | ||
|
|
c757f90f7c | ||
|
|
c34c1b5b6e | ||
|
|
d553327a11 | ||
|
|
6db78a06b8 | ||
|
|
b54f1780c6 | ||
|
|
d2b2727039 | ||
|
|
464a553534 | ||
|
|
ddbd770dda | ||
|
|
6bf6553ff0 | ||
|
|
01299c0c38 | ||
|
|
b71ac3b9a0 | ||
|
|
3c347dc92f | ||
|
|
0860344fd1 | ||
|
|
801fa703bf | ||
|
|
049a8072b8 | ||
|
|
9e410f45ca | ||
|
|
d541abc7f4 | ||
|
|
e9eda1ddc4 | ||
|
|
b5b2c3cd6e | ||
|
|
86e12bd485 | ||
|
|
cbe75574d0 | ||
|
|
cf838e5d9a | ||
|
|
6cdb1df135 | ||
|
|
ffc7dac5f1 | ||
|
|
66ad3fe075 | ||
|
|
0b83f310e6 | ||
|
|
efccfc4db6 | ||
|
|
c642286a5a | ||
|
|
e8ed462b8c | ||
|
|
9cecabf781 | ||
|
|
7198370f9b | ||
|
|
930652699b | ||
|
|
c3c7e3ea9e | ||
|
|
53f44413f8 | ||
|
|
25321b467b | ||
|
|
dc17b3cbe5 | ||
|
|
a4621a800b | ||
|
|
97308e69aa | ||
|
|
86144e16f7 | ||
|
|
b18b9decd4 | ||
|
|
90cd81893e | ||
|
|
9d7c3fdd9a | ||
|
|
c0e36426bd | ||
|
|
9dd678946d | ||
|
|
d440ba7f58 | ||
|
|
090a769145 | ||
|
|
bcec22b385 | ||
|
|
dbfc621482 | ||
|
|
6bc70a7738 | ||
|
|
f5b3f9cc1d | ||
|
|
24055330d3 | ||
|
|
0ac51a83e9 | ||
|
|
e517300fe0 | ||
|
|
ae34d0ef86 | ||
|
|
8236fb2fd8 | ||
|
|
f499c62da4 | ||
|
|
a51e3d0a22 | ||
|
|
e1398bf75b | ||
|
|
ba26d2aac0 | ||
|
|
7225ccab73 | ||
|
|
d224d0aafc | ||
|
|
8220fef7e0 | ||
|
|
1a658b1010 | ||
|
|
4c3b792adc | ||
|
|
19940bae86 | ||
|
|
256178c6c3 | ||
|
|
2a43a870c2 | ||
|
|
615765b995 | ||
|
|
6f7003965e | ||
|
|
d8a7a583a3 | ||
|
|
c51cc8f38a | ||
|
|
5210f623f3 | ||
|
|
ba4b65774e | ||
|
|
b1d273c555 | ||
|
|
b03f1b766f | ||
|
|
a9ed10401d | ||
|
|
253d85b6ee | ||
|
|
0247b71fb7 | ||
|
|
fd819d83e8 | ||
|
|
8c5fcef916 | ||
|
|
c15bbca109 | ||
|
|
c47c4b7ffd | ||
|
|
8efa25eabf | ||
|
|
190bd58b1b | ||
|
|
d645dc9345 | ||
|
|
963bb60c02 | ||
|
|
fa4e39ec9a | ||
|
|
c1b45ff210 | ||
|
|
5cb103bde3 | ||
|
|
7282348b7d | ||
|
|
e3a1fd849b | ||
|
|
1fb01aa46e | ||
|
|
779ebb4a63 | ||
|
|
c391830670 | ||
|
|
c8c6c3e40f | ||
|
|
c1f45d6d61 | ||
|
|
8804ba6529 | ||
|
|
11ae39081c | ||
|
|
2751224d4d | ||
|
|
6fce9fa491 | ||
|
|
41fdb5dac2 | ||
|
|
4ffca4597c | ||
|
|
ecfc06d9c6 | ||
|
|
db55dde7ce | ||
|
|
c6edd4b97d | ||
|
|
8cd2dbae96 | ||
|
|
8676a3fb21 | ||
|
|
27339eb1bf | ||
|
|
e014926854 | ||
|
|
a721f60f9c | ||
|
|
46c76e13f9 | ||
|
|
f72058306b | ||
|
|
a15446d3b1 | ||
|
|
fc9ce7f3dd | ||
|
|
72cd50a054 | ||
|
|
e307fb4dcd | ||
|
|
d631929194 | ||
|
|
db9628e7eb | ||
|
|
2c04c04ce7 | ||
|
|
a5301245d3 | ||
|
|
165af690c7 | ||
|
|
29da8ea3d0 | ||
|
|
73b7e62f13 | ||
|
|
76141ce22f | ||
|
|
4b575b8168 | ||
|
|
2b28521297 | ||
|
|
be767951ca | ||
|
|
9960d6011f | ||
|
|
461bd30e2a | ||
|
|
2f88a4eefb | ||
|
|
c9f368d264 | ||
|
|
0e24e8ac61 | ||
|
|
1d0d25efac | ||
|
|
1c5d2d2bd7 | ||
|
|
77e809166c | ||
|
|
927a2c32d8 | ||
|
|
4a3c6c4854 | ||
|
|
37beab77ba | ||
|
|
82f5284ffc | ||
|
|
5f579e8ded | ||
|
|
4b66ac0be5 | ||
|
|
e69fb75c8e | ||
|
|
ff8781c112 | ||
|
|
0dd75db8d8 | ||
|
|
05d01aeef3 | ||
|
|
11f2bc20eb | ||
|
|
52c3178b92 | ||
|
|
e3dec2222d | ||
|
|
05752faec0 | ||
|
|
1cf3813fb6 | ||
|
|
1216ae709b |
221
.github/build/deb.sh
vendored
221
.github/build/deb.sh
vendored
@@ -1,221 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright @iliajie <ilia@webmin.dev>
|
|
||||||
#
|
|
||||||
# Automatically builds and updates a repo metadata.
|
|
||||||
# Pulls latest changes from GitHub, detects release
|
|
||||||
# version based on what's available in the repo
|
|
||||||
#
|
|
||||||
# (Debian)
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# # Pull and build production versions
|
|
||||||
# # of both Webmin and Usermin
|
|
||||||
# ./deb.sh
|
|
||||||
#
|
|
||||||
# # Pull and build devel versions
|
|
||||||
# # of both Webmin and Usermin
|
|
||||||
# ./deb.sh --devel
|
|
||||||
#
|
|
||||||
# # Pull and build production Webmin version 2.101, forcing
|
|
||||||
# # release version 3, displaying detailed output
|
|
||||||
# ./deb.sh webmin 2.101 3 --debug
|
|
||||||
#
|
|
||||||
# # Pull and build production Usermin version 2.000,
|
|
||||||
# # automatically setting release version to minimal
|
|
||||||
# ./deb.sh usermin 2.000
|
|
||||||
#
|
|
||||||
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
# Source build variables
|
|
||||||
source ./vars.sh || exit 1
|
|
||||||
|
|
||||||
# Source build init
|
|
||||||
source ./init.sh || exit 1
|
|
||||||
|
|
||||||
# Source general build functions
|
|
||||||
source ./funcs.sh || exit 1
|
|
||||||
|
|
||||||
# Build product func
|
|
||||||
build_prod() {
|
|
||||||
|
|
||||||
# Pack with English only in devel builds
|
|
||||||
local english_only=0
|
|
||||||
if [[ "'$*'" == *"--devel"* ]]; then
|
|
||||||
english_only=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Always return back to root directory
|
|
||||||
cd "$root" || exit 1
|
|
||||||
|
|
||||||
# Define root
|
|
||||||
local ver=""
|
|
||||||
local prod=$1
|
|
||||||
root_prod="$root/$prod"
|
|
||||||
root_apt="$root_prod/deb"
|
|
||||||
|
|
||||||
# Print build actual date
|
|
||||||
date=$(get_current_date)
|
|
||||||
|
|
||||||
# Print opening header
|
|
||||||
echo "************************************************************************"
|
|
||||||
echo " build start date: $date "
|
|
||||||
echo " package format: DEB "
|
|
||||||
echo " product: $prod "
|
|
||||||
(make_prod_repos "$root_prod") &
|
|
||||||
spinner " package output version:"
|
|
||||||
|
|
||||||
# Pull main project first to get the latest tag
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
cmd="git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs1=$?
|
|
||||||
# Clean and try again
|
|
||||||
if [ "$rs1" != "0" ]; then
|
|
||||||
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs1=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Descend to theme dir
|
|
||||||
cd "authentic-theme" || exit 1
|
|
||||||
cmd="git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs2=$?
|
|
||||||
# Clean and try again
|
|
||||||
if [ "$rs2" != "0" ]; then
|
|
||||||
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs2=$?
|
|
||||||
fi
|
|
||||||
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
|
|
||||||
rs=1
|
|
||||||
else
|
|
||||||
rs=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Build number
|
|
||||||
date_version=$(get_latest_commit_date_version)
|
|
||||||
|
|
||||||
# Handle other params
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
if [[ "'$2'" != *"--"* ]]; then
|
|
||||||
ver=$2
|
|
||||||
fi
|
|
||||||
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
|
|
||||||
rel=$3
|
|
||||||
relval="-$3"
|
|
||||||
else
|
|
||||||
rel=1
|
|
||||||
relval=""
|
|
||||||
fi
|
|
||||||
if [ -z "$ver" ]; then
|
|
||||||
ver=$(get_current_repo_tag)
|
|
||||||
fi
|
|
||||||
if [[ "'$*'" == *"--devel"* ]]; then
|
|
||||||
ver="$ver.$date_version"
|
|
||||||
# Set actual product version
|
|
||||||
echo "${ver}" >"version"
|
|
||||||
fi
|
|
||||||
printf "$ver-$rel\n"
|
|
||||||
echo "************************************************************************"
|
|
||||||
|
|
||||||
echo "Pulling latest changes.."
|
|
||||||
# We need to pull first to get the latest tag,
|
|
||||||
# so here we only report an error if any
|
|
||||||
postcmd $rs
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "Pre-clean up .."
|
|
||||||
# Make sure directories exist
|
|
||||||
make_dir "$root_repos/"
|
|
||||||
make_dir "$root_apt/"
|
|
||||||
make_dir "$root_prod/newkey/deb/"
|
|
||||||
make_dir "$root_prod/umodules/"
|
|
||||||
make_dir "$root_prod/minimal/"
|
|
||||||
make_dir "$root_prod/tarballs/"
|
|
||||||
|
|
||||||
# Re-create legacy link
|
|
||||||
rm -rf "$root/webadmin"
|
|
||||||
ln -s "$root/webmin" "$root/webadmin"
|
|
||||||
|
|
||||||
# Purge old files
|
|
||||||
purge_dir "$root_prod/newkey/deb"
|
|
||||||
purge_dir "$root_prod/umodules"
|
|
||||||
purge_dir "$root_prod/minimal"
|
|
||||||
purge_dir "$root_prod/tarballs"
|
|
||||||
if [ "$prod" != "" ]; then
|
|
||||||
# XXXX Need to check for
|
|
||||||
# product name exactly
|
|
||||||
rm -f "$root_repos/$prod-latest"*
|
|
||||||
fi
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
|
|
||||||
# Descend to project dir
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
|
|
||||||
if [ "$english_only" = "1" ]; then
|
|
||||||
echo "Cleaning languages .."
|
|
||||||
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
# Force restore build directory
|
|
||||||
if [ ! -f "lang/ja" ]; then
|
|
||||||
echo "Restoring languages .."
|
|
||||||
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Pre-building package .."
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="./makedist.pl \"${ver}${relval}\" $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "Building package .."
|
|
||||||
if [ "$relval" == "" ]; then
|
|
||||||
cmd="./makedebian.pl \"$ver\" $verbosity_level"
|
|
||||||
else
|
|
||||||
cmd="./makedebian.pl \"$ver\" \"$rel\" $verbosity_level"
|
|
||||||
fi
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
|
|
||||||
cd "$root" || exit 1
|
|
||||||
echo "Preparing built files for upload .."
|
|
||||||
cmd="cp -f $root_prod/tarballs/${prod}-${ver}*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="echo $ver-$rel \($date\) > $root_repos/${prod}-latest.version $verbosity_level_to_file"
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="find $root_apt -name ${prod}_${ver}${relval}*\.deb -exec mv '{}' $root_repos \; $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="mv -f $root_repos/${prod}_${ver}${relval}*\.deb $root_repos/${prod}-latest.deb $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
|
|
||||||
build_prod $@
|
|
||||||
|
|
||||||
cloud_upload_list_upload=("$root_repos/$1*")
|
|
||||||
cloud_upload cloud_upload_list_upload
|
|
||||||
|
|
||||||
cloud_repo_sign_and_update
|
|
||||||
else
|
|
||||||
build_prod webmin $@
|
|
||||||
build_prod usermin $@
|
|
||||||
|
|
||||||
cloud_upload_list_upload=("$root_repos/*")
|
|
||||||
cloud_upload cloud_upload_list_upload
|
|
||||||
|
|
||||||
cloud_repo_sign_and_update
|
|
||||||
fi
|
|
||||||
163
.github/build/funcs.sh
vendored
163
.github/build/funcs.sh
vendored
@@ -1,163 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright @iliajie <ilia@webmin.dev>
|
|
||||||
#
|
|
||||||
# General build functions
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
# Upload to cloud
|
|
||||||
# Usage:
|
|
||||||
# cloud_upload_list_delete=("$cloud_upload_ssh_dir/repodata")
|
|
||||||
# cloud_upload_list_upload=("$root_repos/*" "$root_repos/repodata")
|
|
||||||
# cloud_upload cloud_upload_list_upload cloud_upload_list_delete
|
|
||||||
cloud_upload() {
|
|
||||||
# Print new block only if definded
|
|
||||||
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
# Delete files on remote if needed
|
|
||||||
if [ -n "$2" ]; then
|
|
||||||
echo "Deleting given files in $cloud_upload_ssh_host .."
|
|
||||||
local -n arr_del=$2
|
|
||||||
local err=0
|
|
||||||
for d in "${arr_del[@]}"; do
|
|
||||||
if [ -n "$d" ]; then
|
|
||||||
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"rm -rf $d\" $verbosity_level"
|
|
||||||
eval "$cmd1"
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
err=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
postcmd $err
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Upload files to remote
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
echo "Uploading built files to $cloud_upload_ssh_host .."
|
|
||||||
local -n arr_upl=$1
|
|
||||||
local err=0
|
|
||||||
for u in "${arr_upl[@]}"; do
|
|
||||||
if [ -n "$u" ]; then
|
|
||||||
local cmd2="scp $ssh_args -r $u $cloud_upload_ssh_user@$cloud_upload_ssh_host:$cloud_upload_ssh_dir/ $verbosity_level"
|
|
||||||
eval "$cmd2"
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
err=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
postcmd $err
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sign and update repos metadata in remote
|
|
||||||
cloud_repo_sign_and_update() {
|
|
||||||
echo "Signing and updating repos metadata in $cloud_upload_ssh_host .."
|
|
||||||
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
||||||
local remote_cmd="cd ~/.scripts && ./update-repo-packages-signature.bash $cloud_upload_gpg_passphrase"
|
|
||||||
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"$remote_cmd\" $verbosity_level"
|
|
||||||
eval "$cmd1"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
# Post command func
|
|
||||||
postcmd() {
|
|
||||||
if [ "$1" != "0" ]; then
|
|
||||||
echo ".. failed"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo ".. done"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get max number from array
|
|
||||||
max() {
|
|
||||||
local -n arr_nums=$1
|
|
||||||
IFS=$'\n'
|
|
||||||
echo "${arr_nums[*]}" | sort -nr | head -n1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Mkdir and children dirs
|
|
||||||
make_dir() {
|
|
||||||
if [ ! -d "$1" ]; then
|
|
||||||
mkdir -p "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove all content in dir
|
|
||||||
purge_dir() {
|
|
||||||
for file in "$1"/*; do
|
|
||||||
rm -rf "$file"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get latest tag version
|
|
||||||
get_current_repo_tag() {
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
tg=$(git rev-list --tags --max-count=1)
|
|
||||||
ds=$(git describe --tags "$tg")
|
|
||||||
echo "$ds" | sed 's/v//'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get latest commit date
|
|
||||||
get_current_date() {
|
|
||||||
echo $(date +'%Y-%m-%d %H:%M:%S %z')
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get latest commit date version
|
|
||||||
get_latest_commit_date_version() {
|
|
||||||
local theme_version
|
|
||||||
local prod_version
|
|
||||||
local max_prod
|
|
||||||
local highest_version
|
|
||||||
|
|
||||||
theme_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
prod_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
|
|
||||||
max_prod=("$theme_version" "$prod_version")
|
|
||||||
highest_version=$(max max_prod)
|
|
||||||
echo "$highest_version"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Pull project repo and theme
|
|
||||||
make_prod_repos() {
|
|
||||||
# Webmin or Usermin
|
|
||||||
if [ ! -d "$1" ]; then
|
|
||||||
local repo="webmin/$prod.git"
|
|
||||||
cmd="git clone https://github.com/$repo $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
if [ ! -d "webmin" ]; then
|
|
||||||
cmd="git clone --depth 1 https://github.com/webmin/webmin $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# Theme
|
|
||||||
theme="authentic-theme"
|
|
||||||
if [ ! -d "$1/$theme" ]; then
|
|
||||||
cd "$1" || exit 1
|
|
||||||
local repo="webmin/$theme.git"
|
|
||||||
cmd="git clone --depth 1 https://github.com/$repo $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
spinner() {
|
|
||||||
local msg=$1
|
|
||||||
local pid=$!
|
|
||||||
local spin='-\|/'
|
|
||||||
local i=0
|
|
||||||
printf "$msg "
|
|
||||||
while kill -0 $pid 2>/dev/null; do
|
|
||||||
(( i = (i + 1) % 4 ))
|
|
||||||
# No spinner if not an interactive shell
|
|
||||||
if [ -n "$PS1" ]; then
|
|
||||||
printf '%c\b' "${spin:i:1}"
|
|
||||||
fi
|
|
||||||
sleep .1
|
|
||||||
done
|
|
||||||
}
|
|
||||||
29
.github/build/init.sh
vendored
29
.github/build/init.sh
vendored
@@ -1,29 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright @iliajie <ilia@webmin.dev>
|
|
||||||
#
|
|
||||||
# Build init
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set up SSH dev keys
|
|
||||||
if [ -n "$WEBMIN_DEV__SSH_PRV_KEY" ] && [ -n "$WEBMIN_DEV__SSH_PUB_KEY" ]; then
|
|
||||||
# Generate new pair with right permissions
|
|
||||||
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
# Import SSH keys from secrets to be able to connect to the remote host
|
|
||||||
echo "$WEBMIN_DEV__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
|
|
||||||
echo "$WEBMIN_DEV__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
|
|
||||||
|
|
||||||
# Set up SSH production keys
|
|
||||||
elif [ -n "$WEBMIN_PROD__SSH_PRV_KEY" ] && [ -n "$WEBMIN_PROD__SSH_PUB_KEY" ]; then
|
|
||||||
# Generate new pair with right permissions
|
|
||||||
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
# Import SSH keys from secrets to be able to connect to the remote host
|
|
||||||
echo "$WEBMIN_PROD__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
|
|
||||||
echo "$WEBMIN_PROD__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create symlink to Perl
|
|
||||||
ln -fs /usr/bin/perl /usr/local/bin/perl
|
|
||||||
243
.github/build/rpm.sh
vendored
243
.github/build/rpm.sh
vendored
@@ -1,243 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright @iliajie <ilia@webmin.dev>
|
|
||||||
#
|
|
||||||
# Automatically builds and updates a repo metadata.
|
|
||||||
# Pulls latest changes from GitHub, detects release
|
|
||||||
# version based on what's available in the repo
|
|
||||||
#
|
|
||||||
# (RHEL)
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# # Pull and build production versions
|
|
||||||
# # of both Webmin and Usermin
|
|
||||||
# ./rpm.sh
|
|
||||||
#
|
|
||||||
# # Pull and build devel versions
|
|
||||||
# # of both Webmin and Usermin
|
|
||||||
# ./rpm.sh --devel
|
|
||||||
#
|
|
||||||
# # Pull and build production Webmin version 2.101, forcing
|
|
||||||
# # release version 3, displaying detailed output
|
|
||||||
# ./rpm.sh webmin 2.101 3 --debug
|
|
||||||
#
|
|
||||||
# # Pull and build production Usermin version 2.000,
|
|
||||||
# # automatically setting release version to minimal
|
|
||||||
# ./rpm.sh usermin 2.000
|
|
||||||
#
|
|
||||||
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
# Source build variables
|
|
||||||
source ./vars.sh || exit 1
|
|
||||||
|
|
||||||
# Source build init
|
|
||||||
source ./init.sh || exit 1
|
|
||||||
|
|
||||||
# Source general build functions
|
|
||||||
source ./funcs.sh || exit 1
|
|
||||||
|
|
||||||
# Build product func
|
|
||||||
build_prod() {
|
|
||||||
|
|
||||||
# Pack with English only in devel builds
|
|
||||||
local english_only=0
|
|
||||||
if [[ "'$*'" == *"--devel"* ]]; then
|
|
||||||
english_only=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Always return back to root directory
|
|
||||||
cd "$root" || exit 1
|
|
||||||
|
|
||||||
# Define root
|
|
||||||
local ver=""
|
|
||||||
local prod=$1
|
|
||||||
root_prod="$root/$prod"
|
|
||||||
|
|
||||||
# Print build actual date
|
|
||||||
date=$(get_current_date)
|
|
||||||
|
|
||||||
# Print opening header
|
|
||||||
echo "************************************************************************"
|
|
||||||
echo " build start date: $date "
|
|
||||||
echo " package format: RPM "
|
|
||||||
echo " product: $prod "
|
|
||||||
(make_prod_repos "$root_prod") &
|
|
||||||
spinner " package output version:"
|
|
||||||
|
|
||||||
# Pull main project first to get the latest tag
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
cmd="git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs1=$?
|
|
||||||
# Clean and try again
|
|
||||||
if [ "$rs1" != "0" ]; then
|
|
||||||
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs1=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Pull theme to theme dir
|
|
||||||
cd "authentic-theme" || exit 1
|
|
||||||
cmd="git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs2=$?
|
|
||||||
# Clean and try again
|
|
||||||
if [ "$rs2" != "0" ]; then
|
|
||||||
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
rs2=$?
|
|
||||||
fi
|
|
||||||
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
|
|
||||||
rs=1
|
|
||||||
else
|
|
||||||
rs=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Build number
|
|
||||||
date_version=$(get_latest_commit_date_version)
|
|
||||||
|
|
||||||
# Handle other params
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
if [[ "'$2'" != *"--"* ]]; then
|
|
||||||
ver=$2
|
|
||||||
fi
|
|
||||||
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
|
|
||||||
rel=$3
|
|
||||||
else
|
|
||||||
rel=1
|
|
||||||
fi
|
|
||||||
if [ -z "$ver" ]; then
|
|
||||||
ver=$(get_current_repo_tag)
|
|
||||||
fi
|
|
||||||
if [[ "'$*'" == *"--devel"* ]]; then
|
|
||||||
ver="$ver.$date_version"
|
|
||||||
# Set actual product version
|
|
||||||
echo "${ver}" >"version"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "$ver-$rel\n"
|
|
||||||
echo "************************************************************************"
|
|
||||||
|
|
||||||
echo "Pulling latest changes.."
|
|
||||||
# We need to pull first to get the latest tag,
|
|
||||||
# so here we only report an error if any
|
|
||||||
postcmd $rs
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "Pre-clean up .."
|
|
||||||
# Make sure directories exist
|
|
||||||
make_dir "$root_prod/newkey/rpm/"
|
|
||||||
make_dir "$root_prod/umodules/"
|
|
||||||
make_dir "$root_prod/minimal/"
|
|
||||||
make_dir "$root_prod/tarballs/"
|
|
||||||
make_dir "$root_build/BUILD/"
|
|
||||||
make_dir "$root_build/BUILDROOT/"
|
|
||||||
make_dir "$root_build/RPMS/"
|
|
||||||
make_dir "$root_build/SOURCES/"
|
|
||||||
make_dir "$root_build/SPECS/"
|
|
||||||
make_dir "$root_build/SRPMS/"
|
|
||||||
make_dir "$root_repos/"
|
|
||||||
|
|
||||||
# Re-create legacy link
|
|
||||||
rm -rf "$root/webadmin"
|
|
||||||
ln -s "$root/webmin" "$root/webadmin"
|
|
||||||
|
|
||||||
# Purge old files
|
|
||||||
purge_dir "$root_prod/newkey/rpm"
|
|
||||||
purge_dir "$root_prod/umodules"
|
|
||||||
purge_dir "$root_prod/minimal"
|
|
||||||
purge_dir "$root_prod/tarballs"
|
|
||||||
purge_dir "$root_build/BUILD"
|
|
||||||
purge_dir "$root_build/BUILDROOT"
|
|
||||||
purge_dir "$root_build/RPMS"
|
|
||||||
purge_dir "$root_build/SOURCES"
|
|
||||||
purge_dir "$root_build/SPECS"
|
|
||||||
purge_dir "$root_build/SRPMS"
|
|
||||||
rm -rf "$root_repos/repodata"
|
|
||||||
if [ "$prod" != "" ]; then
|
|
||||||
# XXXX Need to check for
|
|
||||||
# product name exactly
|
|
||||||
rm -f "$root_repos/$prod-latest"*
|
|
||||||
fi
|
|
||||||
postcmd $?
|
|
||||||
make_dir "$root_build/RPMS/noarch"
|
|
||||||
echo
|
|
||||||
|
|
||||||
# Descend to project dir
|
|
||||||
cd "$root_prod" || exit 1
|
|
||||||
|
|
||||||
if [ "$english_only" = "1" ]; then
|
|
||||||
echo "Cleaning languages .."
|
|
||||||
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
# Force restore build directory
|
|
||||||
if [ ! -f "lang/ja" ]; then
|
|
||||||
echo "Restoring languages .."
|
|
||||||
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo "Pre-building package .."
|
|
||||||
eval "$cmd"
|
|
||||||
if [ "$rel" = "1" ]; then
|
|
||||||
args="$ver"
|
|
||||||
else
|
|
||||||
args="$ver-$rel"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd="./makedist.pl \"$args\" $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "Building package .."
|
|
||||||
cmd="./makerpm.pl \"$ver\" \"$rel\" $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
|
|
||||||
cd "$root" || exit 1
|
|
||||||
echo "Preparing built files for upload .."
|
|
||||||
cmd="cp -f $root_prod/tarballs/$prod-$ver*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="echo $ver-$rel \($date\) > $root_repos/$prod-latest.version"
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="find $root_rpms -name $prod-$ver-$rel*\.rpm -exec mv '{}' $root_repos \; $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
cmd="mv -f $root_repos/$prod-$ver-$rel*\.rpm $root_repos/${prod}-latest.rpm $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
postcmd $?
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "Post-clean up .."
|
|
||||||
cd "$root_build" || exit 1
|
|
||||||
for dir in *; do
|
|
||||||
cmd="rm -rf \"$dir/*\" $verbosity_level"
|
|
||||||
eval "$cmd"
|
|
||||||
done
|
|
||||||
postcmd $?
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
|
|
||||||
build_prod $@
|
|
||||||
|
|
||||||
cloud_upload_list_upload=("$root_repos/$1*")
|
|
||||||
cloud_upload cloud_upload_list_upload
|
|
||||||
|
|
||||||
cloud_repo_sign_and_update
|
|
||||||
|
|
||||||
else
|
|
||||||
build_prod webmin $@
|
|
||||||
build_prod usermin $@
|
|
||||||
|
|
||||||
cloud_upload_list_upload=("$root_repos/*")
|
|
||||||
cloud_upload cloud_upload_list_upload
|
|
||||||
|
|
||||||
cloud_repo_sign_and_update
|
|
||||||
fi
|
|
||||||
27
.github/build/vars.sh
vendored
27
.github/build/vars.sh
vendored
@@ -1,27 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright @iliajie <ilia@webmin.dev>
|
|
||||||
#
|
|
||||||
# Build variables
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set defaults
|
|
||||||
root="${ENV_BUILD__ROOT:-$HOME}"
|
|
||||||
root_repos="${ENV_BUILD__ROOT_REPOS:-$root/repo}"
|
|
||||||
root_build="${ENV_BUILD__ROOT_BUILD:-$root/rpmbuild}"
|
|
||||||
root_rpms="${ENV_BUILD__ROOT_RPMS:-$root_build/RPMS/noarch}"
|
|
||||||
|
|
||||||
# Cloud upload config
|
|
||||||
cloud_upload_ssh_user="${ENV_BUILD__CLOUD_UPLOAD_SSH_USER:-webmin.dev}"
|
|
||||||
cloud_upload_ssh_host="${ENV_BUILD__CLOUD_UPLOAD_SSH_HOST:-webmin.dev}"
|
|
||||||
cloud_upload_ssh_dir="${ENV_BUILD__CLOUD_UPLOAD_SSH_DIR:-~/domains/builds.webmin.dev/public_html}"
|
|
||||||
cloud_upload_gpg_passphrase="${WEBMIN_DEV__GPG_PH}"
|
|
||||||
|
|
||||||
# Define verbosity level
|
|
||||||
verbosity_level=' >/dev/null 2>&1 </dev/null'
|
|
||||||
verbosity_level_to_file='2> /dev/null'
|
|
||||||
verbosity_level_with_input=' >/dev/null 2>&1'
|
|
||||||
if [[ "'$*'" == *"--debug"* ]]; then
|
|
||||||
unset verbosity_level verbosity_level_to_file verbosity_level_with_input
|
|
||||||
fi
|
|
||||||
27
.github/workflows/webmin.dev+webmin.yml
vendored
Normal file
27
.github/workflows/webmin.dev+webmin.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
name: "webmin.dev: webmin/webmin"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- published
|
||||||
|
- edited
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
uses: webmin/webmin-ci-cd/.github/workflows/master-workflow.yml@main
|
||||||
|
with:
|
||||||
|
build-type: package
|
||||||
|
project-name: webmin
|
||||||
|
is-release: ${{ github.event_name == 'release' }}
|
||||||
|
secrets:
|
||||||
|
DEV_GPG_PH: ${{ secrets.DEV_GPG_PH }}
|
||||||
|
DEV_IP_ADDR: ${{ secrets.DEV_IP_ADDR }}
|
||||||
|
DEV_IP_KNOWN_HOSTS: ${{ secrets.DEV_IP_KNOWN_HOSTS }}
|
||||||
|
DEV_UPLOAD_SSH_USER: ${{ secrets.DEV_UPLOAD_SSH_USER }}
|
||||||
|
DEV_UPLOAD_SSH_DIR: ${{ secrets.DEV_UPLOAD_SSH_DIR }}
|
||||||
|
PRERELEASE_UPLOAD_SSH_DIR: ${{ secrets.PRERELEASE_UPLOAD_SSH_DIR }}
|
||||||
|
DEV_SSH_PRV_KEY: ${{ secrets.DEV_SSH_PRV_KEY }}
|
||||||
|
DEV_SIGN_BUILD_REPOS_CMD: ${{ secrets.DEV_SIGN_BUILD_REPOS_CMD }}
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
name: "webmin.dev: Deploy Webmin package"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
if: contains(github.event.head_commit.message, '[build]')
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: awalsh128/cache-apt-pkgs-action@latest
|
|
||||||
with:
|
|
||||||
packages: git tar gzip openssl curl openssh-client rpm perl libjson-pp-perl libdigest-sha-perl liblist-moreutils-perl libencode-detect-perl
|
|
||||||
version: 1.0
|
|
||||||
- uses: szenius/set-timezone@v1.2
|
|
||||||
with:
|
|
||||||
timezoneLinux: "Europe/Nicosia"
|
|
||||||
- name: Build and upload packages
|
|
||||||
env:
|
|
||||||
WEBMIN_DEV__SSH_PRV_KEY: ${{ secrets.WEBMIN_DEV__SSH_PRV_KEY }}
|
|
||||||
WEBMIN_DEV__SSH_PUB_KEY: ${{ secrets.WEBMIN_DEV__SSH_PUB_KEY }}
|
|
||||||
WEBMIN_DEV__GPG_PH: ${{ secrets.WEBMIN_DEV__GPG_PH }}
|
|
||||||
ENV_BUILD__CLOUD_UPLOAD_SSH_HOST: ${{ secrets.WEBMIN_DEV__IP_ADDR }}
|
|
||||||
working-directory: ./.github/build
|
|
||||||
run: |-
|
|
||||||
./deb.sh webmin --devel
|
|
||||||
./rpm.sh webmin --devel
|
|
||||||
38
CHANGELOG.md
38
CHANGELOG.md
@@ -1,5 +1,43 @@
|
|||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
#### 2.202 (August 12, 2024)
|
||||||
|
* Add support for importing schemas to the LDAP Server module
|
||||||
|
* Add support for displaying disk and network I/Os in FreeBSD on the dashboard
|
||||||
|
* Fix to automatically set the WebSocket URL webprefix correctly
|
||||||
|
* Fix to name downloaded backup file nicely in Backup Configuration Files module [#2239](https://github.com/webmin/webmin/issues/2239)
|
||||||
|
* Fix to optimize getting table index stats for large tables in MySQL/MariaDB module [pull#2234](https://github.com/webmin/webmin/pull/2234)
|
||||||
|
* Fix duplication of _systemd_ actions and init scripts [#2227](https://github.com/webmin/webmin/issues/2227)
|
||||||
|
* Fix BIND service name for Debian 12 and Ubuntu 24.04
|
||||||
|
* Update the Authentic theme to the latest version with various fixes and improvements
|
||||||
|
|
||||||
|
#### 2.201 (July 24, 2024)
|
||||||
|
* Fix real-time monitoring not updating graphs in the Dashboard [#2222](https://github.com/webmin/webmin/issues/2222)
|
||||||
|
* Fix Terminal module to work correctly with _sudo_-capable users [#2223](https://github.com/webmin/webmin/issues/2223)
|
||||||
|
|
||||||
|
#### 2.200 (July 21, 2024)
|
||||||
|
* Add support for blocking a given IP temporarily or permanently in the FirewallD module
|
||||||
|
* Add support for parsing iCalendar event files in the Mailbox module
|
||||||
|
* Add support for tailing logs in real time in System Logs module
|
||||||
|
* Add ability to preserve original file ACLs when writing files [webmin/authentic-theme#1511](https://github.com/webmin/authentic-theme/discussions/1511#discussioncomment-9913902)
|
||||||
|
* Add a `patch` sub-command to the `webmin` command for easy application of patches
|
||||||
|
* Add a config option to display hostname and comment in the DHCP Server module [#2221](https://github.com/webmin/webmin/issues/2221)
|
||||||
|
* Add support for ED25519 and ED448 algorithms in BIND DNS module for DNSSEC
|
||||||
|
* Add support for larger ranger of authentication methods in Dovecot module
|
||||||
|
* Add improved support for displaying last logins in the Users and Groups module
|
||||||
|
* Fix to prevent duplicate `also-notify` and `allow-transfer` IPs in the BIND DNS module
|
||||||
|
* Fix issues with Terminal module to correct text display problems in editor mode
|
||||||
|
* Fix to store Terminal module logs in the `/var/webmin` directory
|
||||||
|
* Fix to display the Spam folder nicely in the Mailbox module
|
||||||
|
* Fix how modules are loaded in ProFTPd module
|
||||||
|
* Fix support for the Chrony service on Debian systems in the System Time module
|
||||||
|
* Fix to use static routes to set the default gateway in Network Configuration module
|
||||||
|
* Fix to correctly invalidate EOL cache on re-checks [#2139](https://github.com/webmin/webmin/issues/2139)
|
||||||
|
* Fix to change default monitor name based on database used MariaDB vs MySQL [#2139](https://github.com/virtualmin/virtualmin-gpl/issues/798)
|
||||||
|
* Fix to disable manual upgrades for systems installed from the repository
|
||||||
|
* Fix to preserve Webmin service state during package upgrades [#2133](https://github.com/webmin/webmin/issues/2133)
|
||||||
|
* Change to enforce _sudo_-capable logins as themselves in the Terminal module [docs/modules/terminal](https://webmin.com/docs/modules/terminal/#about)
|
||||||
|
* Rename "System Logs" module to "System Logs RS" and "System Logs Viewer" to "System Logs" for clarity
|
||||||
|
|
||||||
#### 2.111 (April 16, 2024)
|
#### 2.111 (April 16, 2024)
|
||||||
* Fix EOL detection for unreleased Linux distributions
|
* Fix EOL detection for unreleased Linux distributions
|
||||||
|
|
||||||
|
|||||||
@@ -1,127 +0,0 @@
|
|||||||
package Webmin::API;
|
|
||||||
|
|
||||||
require 5.005_62;
|
|
||||||
|
|
||||||
require Exporter;
|
|
||||||
|
|
||||||
our @ISA = qw(Exporter);
|
|
||||||
|
|
||||||
# Items to export into callers namespace by default. Note: do not export
|
|
||||||
# names by default without a very good reason. Use EXPORT_OK instead.
|
|
||||||
# Do not simply export all your public functions/methods/constants.
|
|
||||||
|
|
||||||
our @EXPORT = (
|
|
||||||
'$config_directory',
|
|
||||||
'$var_directory',
|
|
||||||
'$remote_error_handler',
|
|
||||||
'%month_to_number_map',
|
|
||||||
'%number_to_month_map',
|
|
||||||
'$config_file',
|
|
||||||
'%gconfig',
|
|
||||||
'$null_file',
|
|
||||||
'$path_separator',
|
|
||||||
'$root_directory',
|
|
||||||
'$module_name',
|
|
||||||
'@root_directories',
|
|
||||||
'$base_remote_user',
|
|
||||||
'$remote_user',
|
|
||||||
'$module_config_directory',
|
|
||||||
'$module_config_file',
|
|
||||||
'%config',
|
|
||||||
'$current_theme',
|
|
||||||
'$theme_root_directory',
|
|
||||||
'%tconfig',
|
|
||||||
'$tb',
|
|
||||||
'$cb',
|
|
||||||
'$scriptname',
|
|
||||||
'$webmin_logfile',
|
|
||||||
'$current_lang',
|
|
||||||
'$current_lang_info',
|
|
||||||
'@lang_order_list',
|
|
||||||
'%text',
|
|
||||||
'%module_info',
|
|
||||||
'$module_root_directory',
|
|
||||||
'$default_lang',
|
|
||||||
);
|
|
||||||
|
|
||||||
our $VERSION = '1.0';
|
|
||||||
|
|
||||||
# Find old symbols by Webmin import
|
|
||||||
my %oldsyms = %Webmin::API::;
|
|
||||||
|
|
||||||
# Preloaded methods go here.
|
|
||||||
$main::no_acl_check++;
|
|
||||||
$ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
|
|
||||||
$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
|
|
||||||
open(MINISERV, $ENV{'WEBMIN_CONFIG'}."/miniserv.conf") ||
|
|
||||||
die "Could not open Webmin config file ".
|
|
||||||
$ENV{'WEBMIN_CONFIG'}."/miniserv.conf : $!";
|
|
||||||
my $webmin_root;
|
|
||||||
while(<MINISERV>) {
|
|
||||||
s/\r|\n//g;
|
|
||||||
if (/^root=(.*)/) {
|
|
||||||
$webmin_root = $1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close(MINISERV);
|
|
||||||
$webmin_root || die "Could not find Webmin root directory";
|
|
||||||
chdir($webmin_root);
|
|
||||||
if ($0 =~ /\/([^\/]+)$/) {
|
|
||||||
$0 = $webmin_root."/".$1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$0 = $webmin_root."/api.pl"; # Fake name
|
|
||||||
}
|
|
||||||
require './web-lib.pl';
|
|
||||||
&init_config();
|
|
||||||
|
|
||||||
# Export core symbols
|
|
||||||
foreach my $lib ("$webmin_root/web-lib.pl",
|
|
||||||
"$webmin_root/web-lib-funcs.pl") {
|
|
||||||
open(WEBLIB, $lib);
|
|
||||||
while(<WEBLIB>) {
|
|
||||||
if (/^sub\s+([a-z0-9\_]+)/i) {
|
|
||||||
push(@EXPORT, $1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close(WEBLIB);
|
|
||||||
}
|
|
||||||
our @EXPORT_OK = ( @EXPORT );
|
|
||||||
|
|
||||||
1;
|
|
||||||
__END__
|
|
||||||
|
|
||||||
=head1 NAME
|
|
||||||
|
|
||||||
Webmin::API - Perl module to make calling of Webmin functions from regular
|
|
||||||
command-line Perl scripts easier.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
|
||||||
|
|
||||||
use Webmin::API;
|
|
||||||
@pids = &find_byname("httpd");
|
|
||||||
foreign_require("cron", "cron-lib.pl");
|
|
||||||
@jobs = &cron::list_cron_jobs();
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
|
||||||
|
|
||||||
This module just provides a convenient way to call Webmin API functions
|
|
||||||
from a script that is not run as a Webmin CGI, without having to include a
|
|
||||||
bunch of boilerplate initialization code at the top. It's main job is to export
|
|
||||||
all API functions into the namespace of the caller, and to setup the Webmin
|
|
||||||
environment.
|
|
||||||
|
|
||||||
=head2 EXPORT
|
|
||||||
|
|
||||||
All core Webmin API functions, like find_byname, foreign_config and so on.
|
|
||||||
|
|
||||||
=head1 AUTHOR
|
|
||||||
|
|
||||||
Jamie Cameron, jcameron@webmin.com
|
|
||||||
|
|
||||||
=head1 SEE ALSO
|
|
||||||
|
|
||||||
perl(1).
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
Revision history for Perl extension Webmin::API.
|
|
||||||
|
|
||||||
1.0 Mon Dec 10 11:09:17 2007
|
|
||||||
- original version; created by h2xs 1.20 with options
|
|
||||||
-AXc -n Webmin::API
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
API.pm
|
|
||||||
Changes
|
|
||||||
MANIFEST
|
|
||||||
Makefile.PL
|
|
||||||
test.pl
|
|
||||||
@@ -1,768 +0,0 @@
|
|||||||
# This Makefile is for the Webmin::API extension to perl.
|
|
||||||
#
|
|
||||||
# It was generated automatically by MakeMaker version
|
|
||||||
# 6.30_01 (Revision: Revision: 4535 ) from the contents of
|
|
||||||
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
|
||||||
#
|
|
||||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
|
||||||
#
|
|
||||||
# MakeMaker ARGV: ()
|
|
||||||
#
|
|
||||||
# MakeMaker Parameters:
|
|
||||||
|
|
||||||
# NAME => q[Webmin::API]
|
|
||||||
# PREREQ_PM => { }
|
|
||||||
# VERSION_FROM => q[API.pm]
|
|
||||||
|
|
||||||
# --- MakeMaker post_initialize section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker const_config section:
|
|
||||||
|
|
||||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
|
||||||
|
|
||||||
# They may have been overridden via Makefile.PL or on the command line
|
|
||||||
AR = ar
|
|
||||||
CC = cc
|
|
||||||
CCCDLFLAGS = -fPIC
|
|
||||||
CCDLFLAGS = -Wl,-E
|
|
||||||
DLEXT = so
|
|
||||||
DLSRC = dl_dlopen.xs
|
|
||||||
LD = cc
|
|
||||||
LDDLFLAGS = -shared -L/usr/local/lib
|
|
||||||
LDFLAGS = -L/usr/local/lib
|
|
||||||
LIBC = /lib/libc-2.7.so
|
|
||||||
LIB_EXT = .a
|
|
||||||
OBJ_EXT = .o
|
|
||||||
OSNAME = linux
|
|
||||||
OSVERS = 2.6.24-19-server
|
|
||||||
RANLIB = :
|
|
||||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
|
||||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
|
||||||
SO = so
|
|
||||||
EXE_EXT =
|
|
||||||
FULL_AR = /usr/bin/ar
|
|
||||||
VENDORARCHEXP = /usr/lib/perl5
|
|
||||||
VENDORLIBEXP = /usr/share/perl5
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker constants section:
|
|
||||||
AR_STATIC_ARGS = cr
|
|
||||||
DIRFILESEP = /
|
|
||||||
DFSEP = $(DIRFILESEP)
|
|
||||||
NAME = Webmin::API
|
|
||||||
NAME_SYM = Webmin_API
|
|
||||||
VERSION = 1.0
|
|
||||||
VERSION_MACRO = VERSION
|
|
||||||
VERSION_SYM = 1_0
|
|
||||||
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
|
|
||||||
XS_VERSION = 1.0
|
|
||||||
XS_VERSION_MACRO = XS_VERSION
|
|
||||||
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
|
|
||||||
INST_ARCHLIB = blib/arch
|
|
||||||
INST_SCRIPT = blib/script
|
|
||||||
INST_BIN = blib/bin
|
|
||||||
INST_LIB = blib/lib
|
|
||||||
INST_MAN1DIR = blib/man1
|
|
||||||
INST_MAN3DIR = blib/man3
|
|
||||||
MAN1EXT = 1p
|
|
||||||
MAN3EXT = 3pm
|
|
||||||
INSTALLDIRS = site
|
|
||||||
DESTDIR =
|
|
||||||
PREFIX = /usr
|
|
||||||
PERLPREFIX = $(PREFIX)
|
|
||||||
SITEPREFIX = $(PREFIX)/local
|
|
||||||
VENDORPREFIX = $(PREFIX)
|
|
||||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
|
||||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
|
||||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
|
||||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
|
||||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
|
||||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
|
||||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
|
||||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
|
||||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
|
||||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
|
||||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
|
||||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
|
||||||
INSTALLBIN = $(PERLPREFIX)/bin
|
|
||||||
DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
|
|
||||||
INSTALLSITEBIN = $(SITEPREFIX)/bin
|
|
||||||
DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
|
|
||||||
INSTALLVENDORBIN = $(VENDORPREFIX)/bin
|
|
||||||
DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
|
|
||||||
INSTALLSCRIPT = $(PERLPREFIX)/bin
|
|
||||||
DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
|
|
||||||
INSTALLSITESCRIPT = $(SITEPREFIX)/bin
|
|
||||||
DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
|
|
||||||
INSTALLVENDORSCRIPT = $(VENDORPREFIX)/bin
|
|
||||||
DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
|
|
||||||
INSTALLMAN1DIR = $(PERLPREFIX)/share/man/man1
|
|
||||||
DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
|
|
||||||
INSTALLSITEMAN1DIR = $(SITEPREFIX)/man/man1
|
|
||||||
DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
|
|
||||||
INSTALLVENDORMAN1DIR = $(VENDORPREFIX)/share/man/man1
|
|
||||||
DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
|
|
||||||
INSTALLMAN3DIR = $(PERLPREFIX)/share/man/man3
|
|
||||||
DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
|
|
||||||
INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
|
||||||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
|
||||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
|
||||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
|
||||||
PERL_LIB = /usr/share/perl/5.8
|
|
||||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
|
||||||
LIBPERL_A = libperl.a
|
|
||||||
FIRST_MAKEFILE = Makefile
|
|
||||||
MAKEFILE_OLD = Makefile.old
|
|
||||||
MAKE_APERL_FILE = Makefile.aperl
|
|
||||||
PERLMAINCC = $(CC)
|
|
||||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
|
||||||
PERL = /usr/bin/perl
|
|
||||||
FULLPERL = /usr/bin/perl
|
|
||||||
ABSPERL = $(PERL)
|
|
||||||
PERLRUN = $(PERL)
|
|
||||||
FULLPERLRUN = $(FULLPERL)
|
|
||||||
ABSPERLRUN = $(ABSPERL)
|
|
||||||
PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
|
||||||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
|
||||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
|
||||||
PERL_CORE = 0
|
|
||||||
PERM_RW = 644
|
|
||||||
PERM_RWX = 755
|
|
||||||
|
|
||||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
|
||||||
MM_VERSION = 6.30_01
|
|
||||||
MM_REVISION = Revision: 4535
|
|
||||||
|
|
||||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
|
||||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
|
||||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
|
||||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
|
||||||
FULLEXT = Webmin/API
|
|
||||||
BASEEXT = API
|
|
||||||
PARENT_NAME = Webmin
|
|
||||||
DLBASE = $(BASEEXT)
|
|
||||||
VERSION_FROM = API.pm
|
|
||||||
OBJECT =
|
|
||||||
LDFROM = $(OBJECT)
|
|
||||||
LINKTYPE = dynamic
|
|
||||||
BOOTDEP =
|
|
||||||
|
|
||||||
# Handy lists of source code files:
|
|
||||||
XS_FILES =
|
|
||||||
C_FILES =
|
|
||||||
O_FILES =
|
|
||||||
H_FILES =
|
|
||||||
MAN1PODS =
|
|
||||||
MAN3PODS = API.pm
|
|
||||||
|
|
||||||
# Where is the Config information that we are using/depend on
|
|
||||||
CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
|
|
||||||
|
|
||||||
# Where to build things
|
|
||||||
INST_LIBDIR = $(INST_LIB)/Webmin
|
|
||||||
INST_ARCHLIBDIR = $(INST_ARCHLIB)/Webmin
|
|
||||||
|
|
||||||
INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT)
|
|
||||||
INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
|
|
||||||
|
|
||||||
INST_STATIC =
|
|
||||||
INST_DYNAMIC =
|
|
||||||
INST_BOOT =
|
|
||||||
|
|
||||||
# Extra linker info
|
|
||||||
EXPORT_LIST =
|
|
||||||
PERL_ARCHIVE =
|
|
||||||
PERL_ARCHIVE_AFTER =
|
|
||||||
|
|
||||||
|
|
||||||
TO_INST_PM = API.pm
|
|
||||||
|
|
||||||
PM_TO_BLIB = API.pm \
|
|
||||||
$(INST_LIB)/Webmin/API.pm
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker platform_constants section:
|
|
||||||
MM_Unix_VERSION = 1.50_01
|
|
||||||
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker tool_autosplit section:
|
|
||||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
|
||||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker tool_xsubpp section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker tools_other section:
|
|
||||||
SHELL = /bin/sh
|
|
||||||
CHMOD = chmod
|
|
||||||
CP = cp
|
|
||||||
MV = mv
|
|
||||||
NOOP = $(SHELL) -c true
|
|
||||||
NOECHO = @
|
|
||||||
RM_F = rm -f
|
|
||||||
RM_RF = rm -rf
|
|
||||||
TEST_F = test -f
|
|
||||||
TOUCH = touch
|
|
||||||
UMASK_NULL = umask 0
|
|
||||||
DEV_NULL = > /dev/null 2>&1
|
|
||||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
|
||||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
|
||||||
ECHO = echo
|
|
||||||
ECHO_N = echo -n
|
|
||||||
UNINST = 0
|
|
||||||
VERBINST = 0
|
|
||||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
|
||||||
DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
|
|
||||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
|
||||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
|
||||||
MACROSTART =
|
|
||||||
MACROEND =
|
|
||||||
USEMAKEFILE = -f
|
|
||||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker makemakerdflt section:
|
|
||||||
makemakerdflt: all
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dist section:
|
|
||||||
TAR = tar
|
|
||||||
TARFLAGS = cvf
|
|
||||||
ZIP = zip
|
|
||||||
ZIPFLAGS = -r
|
|
||||||
COMPRESS = gzip --best
|
|
||||||
SUFFIX = .gz
|
|
||||||
SHAR = shar
|
|
||||||
PREOP = $(NOECHO) $(NOOP)
|
|
||||||
POSTOP = $(NOECHO) $(NOOP)
|
|
||||||
TO_UNIX = $(NOECHO) $(NOOP)
|
|
||||||
CI = ci -u
|
|
||||||
RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
|
|
||||||
DIST_CP = best
|
|
||||||
DIST_DEFAULT = tardist
|
|
||||||
DISTNAME = Webmin-API
|
|
||||||
DISTVNAME = Webmin-API-1.0
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker macro section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker depend section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker cflags section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker const_loadlibs section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker const_cccmd section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker post_constants section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker pasthru section:
|
|
||||||
|
|
||||||
PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
|
|
||||||
LINKTYPE="$(LINKTYPE)"\
|
|
||||||
PREFIX="$(PREFIX)"
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker special_targets section:
|
|
||||||
.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
|
|
||||||
|
|
||||||
.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker c_o section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker xs_c section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker xs_o section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker top_targets section:
|
|
||||||
all :: pure_all manifypods
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
pure_all :: config pm_to_blib subdirs linkext
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
subdirs :: $(MYEXTLIB)
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
config :: $(FIRST_MAKEFILE) blibdirs
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
help :
|
|
||||||
perldoc ExtUtils::MakeMaker
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker blibdirs section:
|
|
||||||
blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
# Backwards compat with 6.18 through 6.25
|
|
||||||
blibdirs.ts : blibdirs
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
|
||||||
|
|
||||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker linkext section:
|
|
||||||
|
|
||||||
linkext :: $(LINKTYPE)
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dlsyms section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dynamic section:
|
|
||||||
|
|
||||||
dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT)
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dynamic_bs section:
|
|
||||||
|
|
||||||
BOOTSTRAP =
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dynamic_lib section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker static section:
|
|
||||||
|
|
||||||
## $(INST_PM) has been moved to the all: target.
|
|
||||||
## It remains here for awhile to allow for old usage: "make static"
|
|
||||||
static :: $(FIRST_MAKEFILE) $(INST_STATIC)
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker static_lib section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker manifypods section:
|
|
||||||
|
|
||||||
POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
|
|
||||||
POD2MAN = $(POD2MAN_EXE)
|
|
||||||
|
|
||||||
|
|
||||||
manifypods : pure_all \
|
|
||||||
API.pm \
|
|
||||||
API.pm
|
|
||||||
$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
|
|
||||||
API.pm $(INST_MAN3DIR)/Webmin::API.$(MAN3EXT)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker processPL section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker installbin section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker subdirs section:
|
|
||||||
|
|
||||||
# none
|
|
||||||
|
|
||||||
# --- MakeMaker clean_subdirs section:
|
|
||||||
clean_subdirs :
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker clean section:
|
|
||||||
|
|
||||||
# Delete temporary files but do not touch installed files. We don't delete
|
|
||||||
# the Makefile here so a later make realclean still has a makefile to use.
|
|
||||||
|
|
||||||
clean :: clean_subdirs
|
|
||||||
- $(RM_F) \
|
|
||||||
*$(LIB_EXT) core \
|
|
||||||
core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \
|
|
||||||
core.[0-9][0-9] $(BASEEXT).bso \
|
|
||||||
pm_to_blib.ts core.[0-9][0-9][0-9][0-9] \
|
|
||||||
$(BASEEXT).x $(BOOTSTRAP) \
|
|
||||||
perl$(EXE_EXT) tmon.out \
|
|
||||||
*$(OBJ_EXT) pm_to_blib \
|
|
||||||
$(INST_ARCHAUTODIR)/extralibs.ld blibdirs.ts \
|
|
||||||
core.[0-9][0-9][0-9][0-9][0-9] *perl.core \
|
|
||||||
core.*perl.*.? $(MAKE_APERL_FILE) \
|
|
||||||
perl $(BASEEXT).def \
|
|
||||||
core.[0-9][0-9][0-9] mon.out \
|
|
||||||
lib$(BASEEXT).def perlmain.c \
|
|
||||||
perl.exe so_locations \
|
|
||||||
$(BASEEXT).exp
|
|
||||||
- $(RM_RF) \
|
|
||||||
blib
|
|
||||||
- $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker realclean_subdirs section:
|
|
||||||
realclean_subdirs :
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker realclean section:
|
|
||||||
# Delete temporary files (via clean) and also delete dist files
|
|
||||||
realclean purge :: clean realclean_subdirs
|
|
||||||
- $(RM_F) \
|
|
||||||
$(MAKEFILE_OLD) $(FIRST_MAKEFILE)
|
|
||||||
- $(RM_RF) \
|
|
||||||
$(DISTVNAME)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker metafile section:
|
|
||||||
metafile : create_distdir
|
|
||||||
$(NOECHO) $(ECHO) Generating META.yml
|
|
||||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'name: Webmin-API' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'version: 1.0' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'version_from: API.pm' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
|
||||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
|
|
||||||
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker signature section:
|
|
||||||
signature :
|
|
||||||
cpansign -s
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dist_basics section:
|
|
||||||
distclean :: realclean distcheck
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
distcheck :
|
|
||||||
$(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck
|
|
||||||
|
|
||||||
skipcheck :
|
|
||||||
$(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck
|
|
||||||
|
|
||||||
manifest :
|
|
||||||
$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
|
|
||||||
|
|
||||||
veryclean : realclean
|
|
||||||
$(RM_F) *~ *.orig */*~ */*.orig
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dist_core section:
|
|
||||||
|
|
||||||
dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
|
|
||||||
$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
|
|
||||||
-e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';'
|
|
||||||
|
|
||||||
tardist : $(DISTVNAME).tar$(SUFFIX)
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
uutardist : $(DISTVNAME).tar$(SUFFIX)
|
|
||||||
uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu
|
|
||||||
|
|
||||||
$(DISTVNAME).tar$(SUFFIX) : distdir
|
|
||||||
$(PREOP)
|
|
||||||
$(TO_UNIX)
|
|
||||||
$(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME)
|
|
||||||
$(RM_RF) $(DISTVNAME)
|
|
||||||
$(COMPRESS) $(DISTVNAME).tar
|
|
||||||
$(POSTOP)
|
|
||||||
|
|
||||||
zipdist : $(DISTVNAME).zip
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
$(DISTVNAME).zip : distdir
|
|
||||||
$(PREOP)
|
|
||||||
$(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME)
|
|
||||||
$(RM_RF) $(DISTVNAME)
|
|
||||||
$(POSTOP)
|
|
||||||
|
|
||||||
shdist : distdir
|
|
||||||
$(PREOP)
|
|
||||||
$(SHAR) $(DISTVNAME) > $(DISTVNAME).shar
|
|
||||||
$(RM_RF) $(DISTVNAME)
|
|
||||||
$(POSTOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker distdir section:
|
|
||||||
create_distdir :
|
|
||||||
$(RM_RF) $(DISTVNAME)
|
|
||||||
$(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \
|
|
||||||
-e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"
|
|
||||||
|
|
||||||
distdir : create_distdir distmeta
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dist_test section:
|
|
||||||
disttest : distdir
|
|
||||||
cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL
|
|
||||||
cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
|
|
||||||
cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker dist_ci section:
|
|
||||||
|
|
||||||
ci :
|
|
||||||
$(PERLRUN) "-MExtUtils::Manifest=maniread" \
|
|
||||||
-e "@all = keys %{ maniread() };" \
|
|
||||||
-e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
|
|
||||||
-e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker distmeta section:
|
|
||||||
distmeta : create_distdir metafile
|
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
|
||||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker distsignature section:
|
|
||||||
distsignature : create_distdir
|
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
|
||||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
|
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
|
||||||
cd $(DISTVNAME) && cpansign -s
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker install section:
|
|
||||||
|
|
||||||
install :: all pure_install doc_install
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
install_perl :: all pure_perl_install doc_perl_install
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
install_site :: all pure_site_install doc_site_install
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
install_vendor :: all pure_vendor_install doc_vendor_install
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
pure_install :: pure_$(INSTALLDIRS)_install
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
doc_install :: doc_$(INSTALLDIRS)_install
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
pure__install : pure_site_install
|
|
||||||
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
|
|
||||||
|
|
||||||
doc__install : doc_site_install
|
|
||||||
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
|
|
||||||
|
|
||||||
pure_perl_install ::
|
|
||||||
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
|
||||||
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
|
|
||||||
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
|
|
||||||
$(INST_BIN) $(DESTINSTALLBIN) \
|
|
||||||
$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
|
|
||||||
$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \
|
|
||||||
$(INST_MAN3DIR) $(DESTINSTALLMAN3DIR)
|
|
||||||
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
|
|
||||||
$(SITEARCHEXP)/auto/$(FULLEXT)
|
|
||||||
|
|
||||||
|
|
||||||
pure_site_install ::
|
|
||||||
$(NOECHO) umask 02; $(MOD_INSTALL) \
|
|
||||||
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
|
|
||||||
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
|
|
||||||
$(INST_LIB) $(DESTINSTALLSITELIB) \
|
|
||||||
$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
|
|
||||||
$(INST_BIN) $(DESTINSTALLSITEBIN) \
|
|
||||||
$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
|
|
||||||
$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
|
|
||||||
$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
|
|
||||||
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
|
|
||||||
$(PERL_ARCHLIB)/auto/$(FULLEXT)
|
|
||||||
|
|
||||||
pure_vendor_install ::
|
|
||||||
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
|
||||||
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
|
|
||||||
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
|
|
||||||
$(INST_BIN) $(DESTINSTALLVENDORBIN) \
|
|
||||||
$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
|
|
||||||
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
|
|
||||||
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
|
|
||||||
|
|
||||||
doc_perl_install ::
|
|
||||||
|
|
||||||
doc_site_install ::
|
|
||||||
$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
|
|
||||||
-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
|
|
||||||
-$(NOECHO) umask 02; $(DOC_INSTALL) \
|
|
||||||
"Module" "$(NAME)" \
|
|
||||||
"installed into" "$(INSTALLSITELIB)" \
|
|
||||||
LINKTYPE "$(LINKTYPE)" \
|
|
||||||
VERSION "$(VERSION)" \
|
|
||||||
EXE_FILES "$(EXE_FILES)" \
|
|
||||||
>> $(DESTINSTALLSITEARCH)/perllocal.pod
|
|
||||||
|
|
||||||
doc_vendor_install ::
|
|
||||||
|
|
||||||
|
|
||||||
uninstall :: uninstall_from_$(INSTALLDIRS)dirs
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
uninstall_from_perldirs ::
|
|
||||||
|
|
||||||
uninstall_from_sitedirs ::
|
|
||||||
$(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist
|
|
||||||
|
|
||||||
uninstall_from_vendordirs ::
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker force section:
|
|
||||||
# Phony target to force checking subdirectories.
|
|
||||||
FORCE:
|
|
||||||
$(NOECHO) $(NOOP)
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker perldepend section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker makefile section:
|
|
||||||
# We take a very conservative approach here, but it's worth it.
|
|
||||||
# We move Makefile to Makefile.old here to avoid gnu make looping.
|
|
||||||
$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
|
||||||
$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
|
|
||||||
$(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..."
|
|
||||||
-$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
|
|
||||||
-$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
|
|
||||||
- $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
|
|
||||||
$(PERLRUN) Makefile.PL
|
|
||||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
|
||||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
|
||||||
false
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker staticmake section:
|
|
||||||
|
|
||||||
# --- MakeMaker makeaperl section ---
|
|
||||||
MAP_TARGET = perl
|
|
||||||
FULLPERL = /usr/bin/perl
|
|
||||||
|
|
||||||
$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
|
|
||||||
$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@
|
|
||||||
|
|
||||||
$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
|
|
||||||
$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
|
|
||||||
$(NOECHO) $(PERLRUNINST) \
|
|
||||||
Makefile.PL DIR= \
|
|
||||||
MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
|
|
||||||
MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker test section:
|
|
||||||
|
|
||||||
TEST_VERBOSE=0
|
|
||||||
TEST_TYPE=test_$(LINKTYPE)
|
|
||||||
TEST_FILE = test.pl
|
|
||||||
TEST_FILES =
|
|
||||||
TESTDB_SW = -d
|
|
||||||
|
|
||||||
testdb :: testdb_$(LINKTYPE)
|
|
||||||
|
|
||||||
test :: $(TEST_TYPE)
|
|
||||||
|
|
||||||
test_dynamic :: pure_all
|
|
||||||
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
|
|
||||||
|
|
||||||
testdb_dynamic :: pure_all
|
|
||||||
PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
|
|
||||||
|
|
||||||
test_ : test_dynamic
|
|
||||||
|
|
||||||
test_static :: test_dynamic
|
|
||||||
testdb_static :: testdb_dynamic
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker ppd section:
|
|
||||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
|
||||||
ppd:
|
|
||||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,0,0,0">' > $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <AUTHOR></AUTHOR>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker pm_to_blib section:
|
|
||||||
|
|
||||||
pm_to_blib : $(TO_INST_PM)
|
|
||||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
|
||||||
API.pm $(INST_LIB)/Webmin/API.pm
|
|
||||||
$(NOECHO) $(TOUCH) pm_to_blib
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker selfdocument section:
|
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker postamble section:
|
|
||||||
|
|
||||||
|
|
||||||
# End.
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
use ExtUtils::MakeMaker;
|
|
||||||
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
|
||||||
# the contents of the Makefile that is written.
|
|
||||||
WriteMakefile(
|
|
||||||
'NAME' => 'Webmin::API',
|
|
||||||
'VERSION_FROM' => 'API.pm', # finds $VERSION
|
|
||||||
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
|
|
||||||
);
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
cd /usr/local/webadmin
|
|
||||||
tar --exclude blib --exclude .svn --exclude make-module.sh --exclude Makefile -cvzf ~/webmin.com/Webmin-API-1.0.tar.gz Webmin-API-1.0/
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# Before `make install' is performed this script should be runnable with
|
|
||||||
# `make test'. After `make install' it should work as `perl test.pl'
|
|
||||||
|
|
||||||
######################### We start with some black magic to print on failure.
|
|
||||||
|
|
||||||
# Change 1..1 below to 1..last_test_to_print .
|
|
||||||
# (It may become useful if the test is moved to ./t subdirectory.)
|
|
||||||
|
|
||||||
BEGIN { $| = 1; print "1..1\n"; }
|
|
||||||
END {print "not ok 1\n" unless $loaded;}
|
|
||||||
use Webmin::API;
|
|
||||||
$loaded = 1;
|
|
||||||
print "ok 1\n";
|
|
||||||
|
|
||||||
######################### End of black magic.
|
|
||||||
|
|
||||||
# Insert your test code below (better if it prints "ok 13"
|
|
||||||
# (correspondingly "not ok 13") depending on the success of chunk 13
|
|
||||||
# of the test code):
|
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ cert_etempdir=Несапраўдны файл сертыфіката
|
|||||||
acl_title=Модуль кантролю доступу
|
acl_title=Модуль кантролю доступу
|
||||||
acl_title2=Для $1 у $2
|
acl_title2=Для $1 у $2
|
||||||
acl_title3=Для групы $1 у $2
|
acl_title3=Для групы $1 у $2
|
||||||
acl_options= $1 параметры кантролю доступу
|
acl_options=$1 параметры кантролю доступу
|
||||||
acl_config=Ці можна рэдагаваць канфігурацыю модуля?
|
acl_config=Ці можна рэдагаваць канфігурацыю модуля?
|
||||||
acl_reset=Скід на поўны доступ
|
acl_reset=Скід на поўны доступ
|
||||||
acl_rbac=Атрымаць налады кантролю доступу ад RBAC?
|
acl_rbac=Атрымаць налады кантролю доступу ад RBAC?
|
||||||
@@ -291,14 +291,14 @@ convert_emin=Несапраўдны мінімальны UID
|
|||||||
convert_emax=Несапраўдны максімум UID
|
convert_emax=Несапраўдны максімум UID
|
||||||
convert_ewgroup=Няма такой групы Webmin
|
convert_ewgroup=Няма такой групы Webmin
|
||||||
convert_ewgroup2=Вам нельга прызначаць новых карыстальнікаў гэтай групе
|
convert_ewgroup2=Вам нельга прызначаць новых карыстальнікаў гэтай групе
|
||||||
convert_skip= $1 прапускаецца
|
convert_skip=$1 прапускаецца
|
||||||
convert_exists= $1 ужо існуе
|
convert_exists=$1 ужо існуе
|
||||||
convert_invalid= $1 не з'яўляецца сапраўдным імем Webmin
|
convert_invalid=$1 не з'яўляецца сапраўдным імем Webmin
|
||||||
convert_added= дадаецца $1
|
convert_added=дадаецца $1
|
||||||
convert_msg=Пераўтварэнне карыстальнікаў Unix...
|
convert_msg=Пераўтварэнне карыстальнікаў Unix...
|
||||||
convert_user=Карыстальнік Unix
|
convert_user=Карыстальнік Unix
|
||||||
convert_action=Прынятыя меры
|
convert_action=Прынятыя меры
|
||||||
convert_done= $1 карыстальнікі пераўтварылі, $2 несапраўдныя, $3 ужо існуюць, $4 выключана.
|
convert_done=$1 карыстальнікі пераўтварылі, $2 несапраўдныя, $3 ужо існуюць, $4 выключана.
|
||||||
convert_users=Карыстальнікі для пераўтварэння
|
convert_users=Карыстальнікі для пераўтварэння
|
||||||
|
|
||||||
sync_title=Сінхранізацыя карыстальніка Unix
|
sync_title=Сінхранізацыя карыстальніка Unix
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ gsave_edesc=Neplatný popis - znak: není povolen
|
|||||||
convert_sync2=Synchronizovat heslo s Unixem v budoucnu?
|
convert_sync2=Synchronizovat heslo s Unixem v budoucnu?
|
||||||
convert_user=Unixový uživatel
|
convert_user=Unixový uživatel
|
||||||
convert_action=Přijatá opatření
|
convert_action=Přijatá opatření
|
||||||
convert_done= $1 převedení uživatelé, $2 neplatné, $3 již existuje, $4 vyloučeno.
|
convert_done=$1 převedení uživatelé, $2 neplatné, $3 již existuje, $4 vyloučeno.
|
||||||
convert_users=Uživatelé převést
|
convert_users=Uživatelé převést
|
||||||
|
|
||||||
sync_when=Kdy synchronizovat
|
sync_when=Kdy synchronizovat
|
||||||
|
|||||||
755
acl/lang/de
755
acl/lang/de
@@ -1,500 +1,511 @@
|
|||||||
index_title=Webminbenutzer
|
index_title=Webmin-Benutzer
|
||||||
index_user=Benutzer
|
index_user=Benutzer
|
||||||
index_modules=Module
|
index_modules=Module
|
||||||
index_create=Einen neuen Webminbenutzer anlegen
|
index_create=Einen neuen privilegierten Benutzer erstellen.
|
||||||
index_screate=Erzeuge neuen sicheren Benutzer.
|
index_screate=Einen neuen sicheren Benutzer erstellen.
|
||||||
index_convert=Konvertiere Unix- zu Webminbenutzern
|
index_convert=Unix-zu-Webmin-Benutzer konvertieren
|
||||||
index_cert=Fordere ein SSL-Zertifikat an
|
index_cert=SSL-Zertifikat anfordern
|
||||||
index_twofactor=2-Faktor-Authentifizierung
|
index_twofactor=Zwei-Faktor-Authentifizierung
|
||||||
index_certmsg=Klicken Sie auf diese Schaltfläche um ein SSL-Zertifikat anzufordern, mit dem Sie sich sicher an Webmin anmelden können, ohne einen Benutzernamen und ein Kennwort anzugeben.
|
index_certmsg=Klicken Sie auf diese Schaltfläche, um ein SSL-Zertifikat anzufordern, das Ihnen ermöglicht, sich sicher bei Webmin anzumelden, ohne einen Benutzernamen und ein Passwort eingeben zu müssen.
|
||||||
index_return=Benutzerliste
|
index_return=Benutzerliste
|
||||||
index_none=Keine
|
index_none=Keine
|
||||||
index_edit=Bearbeite Modulzugriffskontrolle :
|
index_edit=Modul-ACL bearbeiten:
|
||||||
index_global=Globale Zugriffskontrolle
|
index_global=Globale ACL
|
||||||
index_users=Webminbenutzer
|
index_users=Webmin-Benutzer
|
||||||
index_groups=Webmingruppen
|
index_groups=Webmin-Gruppen
|
||||||
index_group=Gruppe
|
index_group=Gruppe
|
||||||
index_nousers=Keine editierbaren Webminbenutzer angegeben.
|
index_nousers=Keine bearbeitbaren Webmin-Benutzer definiert.
|
||||||
index_nogroups=Keine editierbaren Webmingruppen angegeben.
|
index_nogroups=Keine Webmin-Gruppen definiert.
|
||||||
index_gcreate=Erzeuge eine neue Webmingruppe
|
index_gcreate=Eine neue Webmin-Gruppe erstellen.
|
||||||
index_members=Mitglieder
|
index_members=Mitglieder
|
||||||
index_modgroups=Module von Gruppe $1
|
index_modgroups=Module aus Gruppe $1
|
||||||
index_sync=Konfiguriere Unixbenutzer-Synchronisation
|
index_sync=Unix-Benutzersynchronisierung konfigurieren
|
||||||
index_unix=Konfiguriere Unixbenutzer-Authentifizierung
|
index_unix=Unix-Benutzerauthentifizierung konfigurieren
|
||||||
index_sessions=Zeige angemeldete Sitzungen
|
index_sessions=Anmeldesitzungen anzeigen
|
||||||
index_rbac=Setup RBAC
|
index_rbac=RBAC einrichten
|
||||||
index_delete=Lösche ausgewählte
|
index_delete=Ausgewählte löschen
|
||||||
index_joingroup=Zur Gruppe hinzufügen:
|
index_joingroup=Zur Gruppe hinzufügen:
|
||||||
index_eulist=Fehlgeschlagen Benutzer aufzulisten : $1
|
index_eulist=Fehler beim Auflisten der Benutzer: $1
|
||||||
index_eglist=Fehlgeschlagen Gruppen aufzulisten : $1
|
index_eglist=Fehler beim Auflisten der Gruppen: $1
|
||||||
|
|
||||||
edit_title=Webminbenutzer bearbeiten
|
edit_title=Webmin-Benutzer bearbeiten
|
||||||
edit_title2=Webminbenutzer anlegen
|
edit_title2=Webmin-Benutzer erstellen
|
||||||
edit_title3=Erzeuge sicheren Webmin Benutzer
|
edit_title3=Neuen sicheren Webmin-Benutzer erstellen
|
||||||
edit_readonly=Dieser Webminbenutzer sollte über das $1 Modul bearbeitet werden. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu übergehen und um den Benutzer dennoch zu bearbeiten. Es kann jedoch sein, dass hier vorgenommene Änderungen durch das $1 Modul überschrieben werden!
|
edit_readonly=Dieser Webmin-Benutzer sollte nicht bearbeitet werden, da er vom $1-Modul verwaltet wird. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu umgehen und den Benutzer dennoch zu bearbeiten – beachten Sie jedoch, dass alle manuellen Änderungen überschrieben werden können!
|
||||||
edit_rights=Webminbenutzer-Zugriffskontrolle
|
edit_rights=Zugriffsrechte für Webmin-Benutzer
|
||||||
edit_user=Benutzername
|
edit_user=Benutzername
|
||||||
edit_cloneof=Klone Webmin-Benutzer
|
edit_cloneof=Webmin-Benutzer klonen
|
||||||
edit_real=Echter Name
|
edit_real=Echter Name
|
||||||
edit_group=Mitglied der Gruppe
|
edit_group=Mitglied der Gruppe
|
||||||
edit_pass=Kennwort
|
edit_pass=Passwort
|
||||||
edit_same=Dasselbe wie bei Unix
|
edit_same=Gleich wie Unix
|
||||||
edit_lock=Kein Passwort akzeptiert
|
edit_lock=Kein Passwort akzeptiert
|
||||||
edit_pam=PAM-Authentifizierung
|
edit_pam=PAM-Authentifizierung
|
||||||
edit_unix=Unix-Authentifizierung
|
edit_unix=Unix-Authentifizierung
|
||||||
edit_extauth=Externes Authentifizierungsprogramm
|
edit_extauth=Externes Authentifizierungsprogramm
|
||||||
edit_dont=Nicht ändern
|
edit_dont=Nicht ändern
|
||||||
edit_set=Einstellen auf
|
edit_set=Setze auf
|
||||||
edit_passlocked=Das Kennwort wurde seit $1 Tagen nicht geändert - Zugang gesperrt!
|
edit_passlocked=Passwort wurde seit $1 Tagen nicht geändert – Konto gesperrt!
|
||||||
edit_passmax=Das Kennwort wurde seit $1 Tagen nicht geändert - sie müssen dieses bei der nächsten Anmeldung ändern
|
edit_passmax=Passwort wurde seit $1 Tagen nicht geändert – muss beim nächsten Login geändert werden
|
||||||
edit_passold=Das Kennwort wurde vor $1 Tagen geändert
|
edit_passold=Passwort wurde zuletzt vor $1 Tagen geändert
|
||||||
edit_passtoday=Das Kennwort wurde vor weniger als einem Tag geändert
|
edit_passtoday=Passwort wurde vor weniger als einem Tag geändert
|
||||||
edit_modules=Module
|
edit_modules=Module
|
||||||
edit_clone=Klonen
|
edit_clone=Klonen
|
||||||
edit_twofactor=2-Faktor-Authentifizierungstyp
|
edit_twofactor=Art der Zwei-Faktor-Authentifizierung
|
||||||
edit_twofactorprov=Benutze Provider $1 mit ID $2
|
edit_twofactorprov=Verwenden von Anbieter $1 mit ID $2
|
||||||
edit_twofactorcancel=Entferne die 2-Faktor-Authentifizierung Anforderung
|
edit_twofactorcancel=Zwei-Faktor-Authentifizierungsanforderung entfernen
|
||||||
edit_twofactornone=Nichts bisher eingestellt
|
edit_twofactornone=Keine eingerichtet
|
||||||
edit_twofactoradd=Aktiviere 2-Faktor für Benutzer
|
edit_twofactoradd=Zwei-Faktor-Authentifizierung für Benutzer aktivieren
|
||||||
edit_lang=Sprache
|
edit_lang=Sprache
|
||||||
edit_notabs=Module in Kategorien aufteilen?
|
edit_locale=Gebietsschema
|
||||||
edit_logout=Zeit für Inaktivitätsabmeldung
|
edit_notabs=Module kategorisieren?
|
||||||
|
edit_logout=Abmeldezeit bei Inaktivität
|
||||||
edit_mins=Minuten
|
edit_mins=Minuten
|
||||||
edit_chars=Zeichen
|
edit_chars=Buchstaben
|
||||||
edit_minsize=Minimale Passwortlänge
|
edit_minsize=Minimale Passwortlänge
|
||||||
edit_nochange=Forciere Passwortänderungstage?
|
edit_nochange=Änderung des Passworts erzwingen?
|
||||||
edit_cert=SSL-Zertifikatsname
|
edit_cert=SSL-Zertifikatsname
|
||||||
edit_none=Keine
|
edit_none=None
|
||||||
edit_ips=IP-Zugriffskontrolle
|
edit_ips=IP-Zugriffssteuerung
|
||||||
edit_all=Gestatte Zugriff von allen Adressen
|
edit_all=Von allen Adressen erlauben
|
||||||
edit_allow=Gestatte Zugriff nur von aufgelisteten Adressen
|
edit_allow=Nur von aufgelisteten Adressen erlauben
|
||||||
edit_deny=Verweigere von aufgelisteten Adressen
|
edit_deny=Von aufgelisteten Adressen verweigern
|
||||||
edit_ipdesc=Die Benutzer-IP-Zugriffskontrolle funktioniert auf die gleiche Weise wie die globale IP-Zugriffskontrolle im Webminkonfigurationsmodul. Nur wenn ein Benutzer die globale Kontrolle passiert, werden diese Regeln hier überprüft werden.
|
edit_ipdesc=Die IP-Zugriffssteuerung für Benutzer funktioniert genauso wie die globale IP-Zugriffssteuerung im Webmin-Konfigurationsmodul. Nur wenn ein Benutzer die globalen Kontrollen besteht, werden auch die hier angegebenen überprüft.
|
||||||
edit_skill=Experten-Level
|
edit_skill=Fähigkeitsstufe
|
||||||
edit_risk=Risiko-Level
|
edit_risk=Risikoebene
|
||||||
edit_risk_high=Erfahrener Benutzer
|
edit_risk_high=Superbenutzer
|
||||||
edit_risk_medium=Administrator
|
edit_risk_medium=Admin-Benutzer
|
||||||
edit_risk_low=Normaler Benutzer
|
edit_risk_low=Normaler Benutzer
|
||||||
edit_groupmods=(Zusätzlich zu Modulen der Gruppe)
|
edit_groupmods=(Zusätzlich zu Modulen aus der Gruppe)
|
||||||
edit_euser=Sie haben keine Berechtigung diesen Benutzer zu bearbeiten
|
edit_euser=Sie dürfen diesen Benutzer nicht bearbeiten
|
||||||
edit_egone=Ausgewählter Benutzer existiert nicht länger!
|
edit_egone=Ausgewählter Benutzer existiert nicht mehr!
|
||||||
edit_ecreate=Sie haben keine Berechtigung Benutzer anzulegen
|
edit_ecreate=Sie dürfen keine Benutzer erstellen
|
||||||
edit_theme=Persönliches Design
|
edit_theme=Persönliches UI-Theme
|
||||||
edit_themeglobal=Aus der Webminkonfiguration
|
edit_themeglobal=Von Webmin-Konfiguration
|
||||||
edit_themedef=Altes Webmindesign
|
edit_themedef=Legacy-Theme
|
||||||
edit_overlay=Personal theme overlay
|
edit_overlay=Persönliches Theme-Overlay
|
||||||
edit_overlayglobal=Keine - nutze Design Standard
|
edit_overlayglobal=None – Standard-Theme verwenden
|
||||||
edit_log=Zeige Aufzeichnungen
|
edit_log=Protokolle anzeigen
|
||||||
edit_selall=Alles auswählen
|
edit_selall=Alle auswählen
|
||||||
edit_invert=Auswahl umkehren
|
edit_invert=Auswahl umkehren
|
||||||
edit_hide=Verberge Unbenutzte
|
edit_hide=Ungenutzte ausblenden
|
||||||
edit_switch=Zu Benutzer wechseln
|
edit_switch=Zum Benutzer wechseln
|
||||||
edit_return=Webminbenutzer
|
edit_return=Webmin-Benutzer
|
||||||
edit_return2=Webmingruppe
|
edit_return2=Webmin-Gruppe
|
||||||
edit_rbacdeny=RBAC-Zugriffsmodus
|
edit_rbacdeny=RBAC-Zugriffsmodus
|
||||||
edit_rbacdeny0=RBAC kontrolliert nur ausgewählte Modul-ACLs
|
edit_rbacdeny0=RBAC steuert nur ausgewählte Modul-ACLs
|
||||||
edit_rbacdeny1=RBAC kontrolliert alle Module und ACLs
|
edit_rbacdeny1=RBAC steuert alle Module und ACLs
|
||||||
edit_global=Rechte für alle Module
|
edit_global=Berechtigungen für alle Module
|
||||||
edit_templock=Temporär gesperrt
|
edit_templock=Vorübergehend gesperrt
|
||||||
edit_temppass=Erzwinge Änderungen bei der nächsten Anmeldung
|
edit_temppass=Änderung beim nächsten Login erzwingen
|
||||||
edit_days=Erlaubte Tage der Woche
|
edit_days=Erlaubte Wochentage
|
||||||
edit_alldays=Jeden Tag
|
edit_alldays=Jeden Tag
|
||||||
edit_seldays=Nur gewählte Tage ..
|
edit_seldays=Nur ausgewählte Tage ..
|
||||||
edit_hours=Erlaubte Zeit des Tages
|
edit_hours=Erlaubte Tageszeiten
|
||||||
edit_allhours=Jederzeit
|
edit_allhours=Jederzeit
|
||||||
edit_selhours=Von $1:$2 nach $3:$4
|
edit_selhours=Von $1:$2 bis $3:$4
|
||||||
edit_ui=Optionen des Benutzerinterfaces
|
edit_ui=Benutzeroberflächenoptionen
|
||||||
edit_security=Sicherheits- und Begrenzungsoptionen
|
edit_security=Sicherheits- und Einschränkungsoptionen
|
||||||
edit_mods=Verfügbare Webminmodule
|
edit_mods=Verfügbare Webmin-Module
|
||||||
edit_modsg=Verfügbare Webminmodule (zusätzlich zu Modulen der Gruppe)
|
edit_modsg=Verfügbare Webmin-Module (neben denen aus der Gruppe)
|
||||||
edit_proto=Speichertyp
|
edit_proto=Speichertyp
|
||||||
edit_proto_mysql=MySQL Datenbank
|
edit_proto_mysql=MySQL-Datenbank
|
||||||
edit_proto_postgresql=PostgreSQL Datenbank
|
edit_proto_postgresql=PostgreSQL-Datenbank
|
||||||
edit_proto_ldap=LDAP Server
|
edit_proto_ldap=LDAP-Server
|
||||||
edit_proto_=Lokale Dateien
|
edit_proto_=Lokale Dateien
|
||||||
edit_safe=Privileg Stufe
|
edit_safe=Privilegienstufe
|
||||||
edit_safe0=Unbeschränkt
|
edit_safe0=Uneingeschränkt
|
||||||
edit_safe1=Nur Sichere Module
|
edit_safe1=Nur sichere Module
|
||||||
edit_unsafe=Zurücksetzen auf unbeschränkt
|
edit_unsafe=Auf uneingeschränkt zurücksetzen
|
||||||
|
|
||||||
save_err=Fehler beim Speichern des Benutzers
|
save_err=Fehler beim Speichern des Benutzers
|
||||||
save_ename='$1' ist kein gültiger Benutzername
|
save_ename='$1' ist kein gültiger Benutzername
|
||||||
save_eunixname='$1' ist kein System Benuter und kann daher nicht im sicheren Modus genutzt werden
|
save_eunixname=Der Benutzername '$1' ist kein Unix-Benutzer und kann daher im sicheren Modus nicht verwendet werden
|
||||||
save_enamewebmin=Der Benutzername 'webmin' ist reserviert für interne Zwecke
|
save_enamewebmin=Der Benutzername 'webmin' ist für interne Zwecke reserviert
|
||||||
save_edup=Der Benutzername '$1' wird bereits genutzt
|
save_edup=Der Benutzername '$1' wird bereits verwendet
|
||||||
save_eoverlay=Das Personal theme overlay kann nicht ausgewählt werden, wenn das theme ist
|
save_eoverlay=Ein Theme-Overlay kann nur ausgewählt werden, wenn ein Theme vorhanden ist
|
||||||
save_edeny=Sie können sich nicht selbst das Zugriffsrecht auf Webminbenutzer entziehen
|
save_edeny=Sie können sich selbst keinen Zugriff auf das Webmin Users-Modul verweigern
|
||||||
save_eos=Die Option "Dasselbe Kennwort wie bei Unix" wird nicht von Ihrem Betriebssystem unterstützt.
|
save_eos=Die Option "Gleich wie Unix" für Passwörter wird von Ihrem Betriebssystem nicht unterstützt.
|
||||||
save_emd5=Die Option "Dasselbe Kennwort wie bei Unix" kann nicht auf Systemen mit MD5-verschlüsselten Kennwörtern benutzt werden.
|
save_emd5=Die Option "Gleich wie Unix" für Passwörter kann auf Systemen mit MD5-Verschlüsselung nicht verwendet werden
|
||||||
save_eunix=Der Benutzer '$1' existiert nicht
|
save_eunix=Der Unix-Benutzer '$1' existiert nicht
|
||||||
save_emod=Sie haben keine Berechtigung den Zugriff auf das Modul '$1' zu gewähren
|
save_emod=Sie können keinen Zugriff auf das Modul '$1' gewähren
|
||||||
save_ecreate=Sie haben keine Berechtigung einen Benutzer anzulegen
|
save_ecreate=Sie dürfen keine Benutzer erstellen
|
||||||
save_euser=Sie haben keine Berechtigung diesen Benutzer zu bearbeiten
|
save_euser=Sie dürfen diesen Benutzer nicht bearbeiten
|
||||||
save_ecolon=Kennwörter dürfen keinen Doppelpunkt (:) enthalten
|
save_ecolon=Passwörter dürfen nicht das : Zeichen enthalten
|
||||||
save_epass=Kennwort ist nicht gültig : $1
|
save_epass=Passwort ist nicht gültig: $1
|
||||||
save_eself=Ihrer aktuellen IP-Adresse ($1) würde der Zugriff verweigert
|
save_eself=Ihre aktuelle IP-Adresse ($1) würde abgelehnt
|
||||||
save_epam=PAM-Authentifizierung ist nicht verfügbar, da das <tt>Authen::PAM</tt> Perl-Modul nicht installiert ist oder nicht richtig arbeitet.
|
save_epam=PAM-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> entweder nicht installiert oder nicht richtig funktioniert.
|
||||||
save_epam2=Sie können das Webmin-Modul 'Perl-Module' benutzen um <a href='$1'>Authen::PAM herunterzuladen und zu installieren</a>.
|
save_epam2=Sie können das Perl-Module-Modul von Webmin verwenden, um <a href='$1'>Authen::PAM herunterzuladen und zu installieren</a>.
|
||||||
save_egroup=Sie haben keine Erlaubnis dieser Gruppe jemanden zuzuweisen
|
save_egroup=Sie dürfen nicht der Gruppe zuweisen
|
||||||
save_enone=Keine Adressen eingegeben
|
save_enone=Keine Adressen eingegeben
|
||||||
save_enet='$1' ist keine gültige Netzwerk-Adresse
|
save_enet='$1' ist keine gültige Netzwerkadresse
|
||||||
save_emask='$1' ist keine gültige Netzmaske
|
save_emask='$1' ist keine gültige Netzmaske
|
||||||
save_eip='$1' ist keine vollständige IP- oder Netzwerk-Adresse
|
save_eip='$1' ist keine vollständige IP- oder Netzwerkadresse
|
||||||
save_ehost=Keine IP-Adresse für '$1' gefunden
|
save_ehost=Fehler beim Finden der IP-Adresse für '$1'
|
||||||
save_elogouttime=Fehlende oder ungültige nicht-numerische Zeitangabe für die Inaktivitätsabmeldung.
|
save_elogouttime=Fehlende oder nicht-numerische Abmeldezeit bei Inaktivität
|
||||||
save_eminsize=Vermisse minimale Kennwortlänge oder ungültiger Wert
|
save_eminsize=Fehlende oder nicht-numerische minimale Passwortlänge
|
||||||
save_edays=Keinen erlaubten Tag ausgewählt
|
save_edays=Keine Tage ausgewählt
|
||||||
save_ehours=Vermisse erlaubte Zeit oder ungültiger Wert
|
save_ehours=Fehlende oder ungültige Zeiten
|
||||||
save_ehours2=Erlaubte Start Zeit muss vor dem Ende sein
|
save_ehours2=Startzeit muss vor Endzeit liegen
|
||||||
save_etemp=Die Option, ein Kennwortänderung bei der nächsten Anmeldung erzwingen, kann nicht benutzt werden, es sei denn <a href='$1'>Benutzer werden aufgefordert ein neues Passwort eingeben</a> aktiviert ist
|
save_etemp=Die Option, das Passwort beim nächsten Login zu ändern, kann nur verwendet werden, wenn <a href='$1'>Benutzer aufgefordert werden, neue Passwörter einzugeben</a> aktiviert ist
|
||||||
|
|
||||||
delete_err=Fehler beim Löschen des Benutzers
|
delete_err=Fehler beim Löschen des Benutzers
|
||||||
delete_eself=Sie können sich selber nicht löschen
|
delete_eself=Sie können sich nicht selbst löschen
|
||||||
delete_ecannot=Sie haben keine Berechtigung Benutzer zu löschen
|
delete_ecannot=Sie dürfen keine Benutzer löschen
|
||||||
delete_euser=Sie haben keine Berechtigung diesen Benutzer zu löschen
|
delete_euser=Sie dürfen diesen Benutzer nicht löschen
|
||||||
delete_eanonuser=Dieser Benutzer wird für anonymen Modul-Zugriff verwendet
|
delete_eanonuser=Dieser Benutzer wird für den anonymen Modulzugriff verwendet
|
||||||
|
|
||||||
cert_title=Zertifikatsanfrage
|
cert_title=Zertifikat anfordern
|
||||||
cert_issue=Zertifikat ausstellen
|
cert_issue=Zertifikat ausstellen
|
||||||
cert_header=Details des neuen Zertifikats
|
cert_header=Details des neuen Zertifikats
|
||||||
cert_msg=Hier können Sie ein SSL-Client-Zertifikat zu beantragen, das Ihnen in Zukunft ohne Eingabe von Benutzername und Kennwort einen sicheren Zugriff auf Webmin gestattet. Da jedoch diese Authentifizierung automatisch geschieht, ist es nicht möglich zu einem anderen Benutzer zu wechseln.
|
cert_msg=Dieses Formular ermöglicht Ihnen die Anforderung eines SSL-Client-Zertifikats, das in Zukunft verwendet wird, um Ihnen Zugang zu Webmin zu gewähren, anstelle Ihres Benutzernamens und Passworts. Dies ist sicherer, aber da die Authentifizierung automatisch erfolgt, können Sie beim Verwenden des Zertifikats nicht zu einem anderen Benutzer wechseln.
|
||||||
cert_ebrowser=Webmin weiß nicht wie Client-Zertifikate für Ihren Browser ausgestellt werden sollen ( $1 )
|
cert_ebrowser=Webmin weiß nicht, wie man Client-Zertifikate für Ihren Browser ( $1 ) ausstellt
|
||||||
cert_cn=Ihr Name
|
cert_cn=Ihr Name
|
||||||
cert_email=E-Mail-Adresse
|
cert_email=E-Mail-Adresse
|
||||||
cert_ou=Abteilung
|
cert_ou=Abteilung
|
||||||
cert_o=Organisation
|
cert_o=Organisation
|
||||||
cert_sp=Bundesland
|
cert_sp=Bundesland
|
||||||
cert_c=Ländercode
|
cert_c=Ländercode
|
||||||
cert_key=Schlüsselgröße
|
cert_key=Schlüssellänge
|
||||||
cert_done=Ihr Zertifikat für $1 wurde erfolgreich generiert.
|
cert_done=Ihr Zertifikat für $1 wurde erfolgreich erstellt.
|
||||||
cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat aufzunehmen und es in Ihrem Browser zu installieren.</a>
|
cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat abzuholen und in Ihrem Browser zu installieren</a>
|
||||||
cert_install=Installiere Ihr Zertifikat in den Browser
|
cert_install=Installieren Sie Ihr Zertifikat im Browser
|
||||||
cert_ekey=Ein neuer SSL-Schlüssel wurde nicht von Ihrem Browser übertragen - vielleicht unterstützt Ihr Browser keine Client-Zertifikate.
|
cert_ekey=Ein neuer SSL-Schlüssel wurde von Ihrem Browser nicht übermittelt - möglicherweise unterstützt er keine SSL-Client-Zertifikate.
|
||||||
cert_eca=Das Erstellen der Zertifikatsautorität schlug fehl : $1
|
cert_eca=Fehler beim Einrichten der Zertifizierungsstelle: $1
|
||||||
cert_already=Warnung - Sie benutzen bereits das Zertifikat $1.
|
cert_already=Warnung - Sie verwenden bereits das Zertifikat $1.
|
||||||
cert_etempdir=Ungültige Zertifikatdatei
|
cert_etempdir=Ungültige Zertifikatsdatei
|
||||||
|
|
||||||
acl_title=Modulzugriffskontrolle
|
acl_title=Modul-Zugriffskontrolle
|
||||||
acl_title2=Für $1 in $2
|
acl_title2=Für $1 in $2
|
||||||
acl_title3=Für Gruppe $1 in $2
|
acl_title3=Für Gruppe $1 in $2
|
||||||
acl_options=$1 Zugriffskontrolleinstellungen
|
acl_options=Zugriffskontrolloptionen für $1
|
||||||
acl_config=Darf Modulkonfiguration bearbeiten?
|
acl_config=Kann die Modulkonfiguration bearbeiten?
|
||||||
acl_reset=Zurücksetzen auf Vollzugriff
|
acl_reset=Auf Vollzugriff zurücksetzen
|
||||||
acl_rbac=Beziehe ACL-Einstellungen von RBAC?
|
acl_rbac=Zugriffskontrolleinstellungen von RBAC übernehmen?
|
||||||
acl_rbacyes=Ja (übergehe Einstellungen unten)
|
acl_rbacyes=Ja (überschreibt die untenstehenden Einstellungen)
|
||||||
|
|
||||||
acl_uall=Alle Benutzer
|
acl_uall=Alle Benutzer
|
||||||
acl_uthis=Diesen Benutzer
|
acl_uthis=Dieser Benutzer
|
||||||
acl_usel=Ausgewählte Benutzer ..
|
acl_usel=Ausgewählte Benutzer ..
|
||||||
acl_gr=Mitglieder von $1
|
acl_gr=Mitglieder von $1
|
||||||
acl_users=Benutzer die bearbeitet werden dürfen
|
acl_users=Benutzer, die bearbeitet werden können
|
||||||
acl_mods=Darf Zugriff gewähren auf
|
acl_mods=Kann Zugriff gewähren auf
|
||||||
acl_all=Alle Module
|
acl_all=Alle Module
|
||||||
acl_own=Nur seine eigenen Module
|
acl_own=Nur eigene Module
|
||||||
acl_sel=Ausgewählte Module ..
|
acl_sel=Ausgewählte Module ..
|
||||||
acl_create=Darf neue Benutzer erstellen?
|
acl_create=Kann neue Benutzer erstellen?
|
||||||
acl_delete=Darf Benutzer löschen?
|
acl_delete=Kann Benutzer löschen?
|
||||||
acl_rename=Darf Benutzer umbenennen?
|
acl_rename=Kann Benutzer umbenennen?
|
||||||
acl_acl=Darf Modulzugriffskontrolle bearbeiten?
|
acl_acl=Kann Modul-Zugriffskontrolle bearbeiten?
|
||||||
acl_lang=Darf Sprache ändern?
|
acl_lang=Kann Sprache ändern?
|
||||||
acl_chcert=Darf den SSL-Zertifikatsnamen ändern?
|
acl_locale=Kann Regionaleinstellungen ändern?
|
||||||
acl_euser=Sie haben keine Berechtigung die Modulzugriffskontrollen für diesen Benutzer zu bearbeiten
|
acl_chcert=Kann SSL-Zertifikatsnamen ändern?
|
||||||
acl_egroup=Sie haben keine Berechtigung die Modulzugriffskontrollen der Gruppen zu bearbeiten
|
acl_euser=Sie dürfen die ACL für diesen Benutzer nicht bearbeiten
|
||||||
acl_emod=Sie haben keine Berechtigung die Modulzugriffskontrollen für dieses Modul zu bearbeiten
|
acl_egroup=Sie dürfen die Gruppen-ACLs nicht bearbeiten
|
||||||
acl_others=Darf Module sehen auf die er keinen Zugriff hat?
|
acl_emod=Sie dürfen die ACL für dieses Modul nicht bearbeiten
|
||||||
acl_cert=Darf Zertifikat beantragen?
|
acl_others=Kann nicht zugängliche Module sehen?
|
||||||
acl_err=Fehler beim Speichern der Modulzugriffskontrollen
|
acl_cert=Kann Zertifikate anfordern?
|
||||||
acl_groups=Darf Gruppen bearbeiten?
|
acl_err=Fehler beim Speichern der Zugriffskontrolle
|
||||||
acl_gassign=Darf Benutzer zu Gruppen hinzufügen
|
acl_groups=Kann Gruppen bearbeiten?
|
||||||
|
acl_gassign=Kann Benutzer Gruppen zuweisen
|
||||||
acl_gall=Alle Gruppen
|
acl_gall=Alle Gruppen
|
||||||
acl_gsel=Ausgewählte ..
|
acl_gsel=Ausgewählt ..
|
||||||
acl_gnone=Keine
|
acl_gnone=Keine
|
||||||
acl_perms=Neu erzeugte Benutzer erhalten
|
acl_perms=Neu erstellte Benutzer erhalten
|
||||||
acl_perms_1=Gleiche Modulzugriffskontrolle wie Ersteller
|
acl_perms_1=Gleiche Modul-Zugriffskontrolle wie Ersteller
|
||||||
acl_perms_0=Standard (unbeschränkte) Modulzugriffskontrolle
|
acl_perms_0=Standard (uneingeschränkte) Modul-Zugriffskontrolle
|
||||||
acl_sync=Darf Benutzer-Synchronisation verändern?
|
acl_sync=Kann Benutzersynchronisierung konfigurieren?
|
||||||
acl_unix=Darf Unix-Authentifizierung verändern?
|
acl_unix=Kann Unix-Authentifizierung konfigurieren?
|
||||||
acl_sessions=Darf angemeldete Sitzungen anzeigen und abbrechen?
|
acl_sessions=Kann Anmeldesitzungen anzeigen und abbrechen?
|
||||||
acl_cats=Darf Kategorisierung verändern?
|
acl_cats=Kann Kategorisierung ändern?
|
||||||
acl_theme=Darf persönliches Design ändern?
|
acl_theme=Kann persönliches Theme ändern?
|
||||||
acl_ips=Darf IP-Zugriffskontrolle ändern?
|
acl_ips=Kann IP-Zugriffskontrolle ändern?
|
||||||
acl_switch=Darf den Benutzer wechseln?
|
acl_switch=Kann zu anderen Benutzern wechseln?
|
||||||
acl_times=Kann erlaubte Anmeldezeit ändern?
|
acl_times=Kann erlaubte Anmeldezeiten ändern?
|
||||||
acl_pass=Kann Kennwort Einschränkungen ändern?
|
acl_pass=Kann Passwortbeschränkungen ändern?
|
||||||
acl_sql=Kann Benutzer- und Gruppendatenbank zu konfigurieren?
|
acl_sql=Kann Benutzer- und Gruppendatenbank konfigurieren?
|
||||||
|
|
||||||
log_modify=Webminbenutzer $1 modifiziert
|
log_modify=Webmin-Benutzer $1 geändert
|
||||||
log_rename=Webminbenutzer $1 zu $2 umbenannt
|
log_rename=Webmin-Benutzer $1 in $2 umbenannt
|
||||||
log_create=Webminbenutzer $1 erzeugt
|
log_create=Webmin-Benutzer $1 erstellt
|
||||||
log_clone=Webminbenutzer $1 zu $2 dupliziert
|
log_clone=Webmin-Benutzer $1 nach $2 kopiert
|
||||||
log_delete=Webminbenutzer $1 gelöscht
|
log_delete=Webmin-Benutzer $1 gelöscht
|
||||||
log_acl=Zugriff für $1 in $2 aktualisiert
|
log_acl=Zugriff für $1 in $2 aktualisiert
|
||||||
log_reset=Setze Zugriff zurück für $1 in $2
|
log_reset=Zugriff für $1 in $2 zurückgesetzt
|
||||||
log_cert=Ausgegebenes Zertifikat für Benutzer $1
|
log_cert=Zertifikat für Benutzer $1 ausgestellt
|
||||||
log_modify_g=Webmingruppe $1 modifiziert
|
log_modify_g=Webmin-Gruppe $1 geändert
|
||||||
log_rename_g=Webmingruppe $1 to $2 umbenannt
|
log_rename_g=Webmin-Gruppe $1 in $2 umbenannt
|
||||||
log_create_g=Webmingruppe $1 erzeugt
|
log_create_g=Webmin-Gruppe $1 erstellt
|
||||||
log_delete_g=Webmingruppe $1 gelöscht
|
log_delete_g=Webmin-Gruppe $1 gelöscht
|
||||||
log_switch=Gewechselt zu Benutzer $1
|
log_switch=Zu Webmin-Benutzer $1 gewechselt
|
||||||
log_delete_users=$1 Webminbenutzer gelöscht
|
log_delete_users=$1 Webmin-Benutzer gelöscht
|
||||||
log_delete_groups=$1 Webmingruppen gelöscht
|
log_delete_groups=$1 Webmin-Gruppen gelöscht
|
||||||
log_joingroup=$1 Webmin-Benutzer zur Gruppe $2 hinzugefügt
|
log_joingroup=$1 Webmin-Benutzer zur Gruppe $2 hinzugefügt
|
||||||
log_pass=Geänderte Kennwortrestriktionen
|
log_pass=Passwortbeschränkungen geändert
|
||||||
log_unix=Ändere Unixbenutzer-Authentifizierung
|
log_unix=Unix-Authentifizierung geändert
|
||||||
log_sync=Ändere Unixbenutzer-Syncronisation
|
log_sync=Unix-Benutzersynchronisierung geändert
|
||||||
log_sql=Benutzer- und Gruppendatenbank geändert
|
log_sql=Benutzer- und Gruppendatenbank geändert
|
||||||
log_twofactor=Benutzer $1 mit 2-Faktor-Anbieter $2 angemeldet
|
log_twofactor=Benutzer $1 bei Zwei-Faktor-Anbieter $2 registriert
|
||||||
log_onefactor=Benutzer $1 für die 2-Faktor-Authentifizierung abgemeldet
|
log_onefactor=Benutzer $1 von Zwei-Faktor-Authentifizierung abgemeldet
|
||||||
|
|
||||||
gedit_ecannot=Sie sind nicht berechtigt Gruppen zu bearbeiten
|
gedit_ecannot=Sie dürfen Gruppen nicht bearbeiten
|
||||||
gedit_title=Bearbeite Webmingruppe
|
gedit_title=Webmin-Gruppe bearbeiten
|
||||||
gedit_title2=Erzeuge Webmingruppe
|
gedit_title2=Webmin-Gruppe erstellen
|
||||||
gedit_group=Gruppenname
|
gedit_group=Gruppenname
|
||||||
gedit_rights=Webmingruppen-Zugriffskontrolle
|
gedit_rights=Webmin-Gruppen-Zugriffsrechte
|
||||||
gedit_modules=Erlaubte Module
|
gedit_modules=Module der Mitglieder
|
||||||
gedit_members=Mitgliederbenutzer und -gruppen
|
gedit_members=Mitgliedsbenutzer und -gruppen
|
||||||
gedit_desc=Gruppenbeschreibung
|
gedit_desc=Gruppenbeschreibung
|
||||||
gedit_egone=Ausgewählte Gruppe existiert nicht mehr!
|
gedit_egone=Ausgewählte Gruppe existiert nicht mehr!
|
||||||
|
|
||||||
gdelete_err=Fehler beim Löschen einer Gruppe
|
gdelete_err=Fehler beim Löschen der Gruppe
|
||||||
gdelete_ecannot=Sie sind nicht berechtigt Gruppen zu löschen
|
gdelete_ecannot=Sie dürfen Gruppen nicht löschen
|
||||||
gdelete_euser=Sie können Ihre eigene Gruppe nicht löschen
|
gdelete_euser=Sie können Ihre eigene Gruppe nicht löschen
|
||||||
gdelete_esub=Gruppen, die Untergruppen enthalten, können nicht gelöscht werden
|
gdelete_esub=Gruppen mit Untergruppen können nicht gelöscht werden
|
||||||
gdelete_title=Gruppe löschen
|
gdelete_title=Gruppe löschen
|
||||||
gdelete_desc=Sind Sie sicher, dass Sie die Gruppe $1 und Benutzer $2 löschen wollen?
|
gdelete_desc=Wollen Sie die Gruppe $1 und ihre Mitgliedsbenutzer $2 wirklich löschen?
|
||||||
gdelete_ok=Gruppe löschen
|
gdelete_ok=Gruppe löschen
|
||||||
|
|
||||||
gsave_err=Fehler beim Speichern der Gruppe
|
gsave_err=Fehler beim Speichern der Gruppe
|
||||||
gsave_ename=Fehlender oder ungültiger Gruppenname
|
gsave_ename=Fehlender oder ungültiger Gruppenname
|
||||||
gsave_enamewebmin=Der Gruppenname 'webmin' ist für interne Zwecke reserviert
|
gsave_enamewebmin=Der Gruppenname 'webmin' ist für die interne Nutzung reserviert
|
||||||
gsave_edup=Gruppenname wird bereits benutzt
|
gsave_edup=Gruppenname wird bereits verwendet
|
||||||
gsave_edesc=Ungültige Beschreibung - das : Zeichen ist nicht erlaubt
|
gsave_edesc=Ungültige Beschreibung - das Zeichen : ist nicht erlaubt
|
||||||
|
|
||||||
convert_title=Benutzer konvertieren
|
convert_title=Benutzer konvertieren
|
||||||
convert_ecannot=Sie sind nicht berechtigt Unixbenutzer zu konvertieren
|
convert_ecannot=Sie dürfen Unix-Benutzer nicht konvertieren
|
||||||
convert_nogroups=Auf Ihrem System wurden keine Webmingruppen definiert. Wenigstens eine Gruppe muss vor der Konvertierung angelegt sein, um Rechte für die konvertierten Benutzer zu definieren.
|
convert_nogroups=Auf Ihrem System sind keine Webmin-Gruppen definiert. Es muss mindestens eine Gruppe erstellt werden, bevor eine Konvertierung erfolgt, um Berechtigungen für die konvertierten Benutzer zu definieren.
|
||||||
convert_desc=Dieses Formular erlaubt Ihnen existierende Unixbenutzer zu Webminbenutzern zu konvertieren. Die Rechte jedes neuen Webminbenutzers werden durch die unten ausgewählte Gruppe bestimmt.
|
convert_desc=Mit diesem Formular können Sie vorhandene Unix-Benutzer in Webmin-Benutzer konvertieren. Die Berechtigungen jedes neuen Webmin-Benutzers werden durch die unten ausgewählte Gruppe bestimmt.
|
||||||
convert_0=Alle Benutzer
|
convert_0=Alle Benutzer
|
||||||
convert_1=Nur Benutzer
|
convert_1=Nur Benutzer
|
||||||
convert_2=Alle außer Benutzer
|
convert_2=Alle außer Benutzern
|
||||||
convert_3=Benutzer mit Gruppe
|
convert_3=Benutzer mit Gruppe
|
||||||
convert_4=Benutzer mit UIDs im Bereich
|
convert_4=Benutzer mit UIDs im Bereich
|
||||||
convert_group=Zuweisung neuer Benutzer zur Webmingruppe
|
convert_group=Neuen Benutzern Webmin-Gruppe zuweisen
|
||||||
convert_sync2=Synchronisiere zukünftig Passwort mit Unix Benutzer?
|
convert_sync2=Passwort zukünftig mit Unix-Benutzer synchronisieren?
|
||||||
convert_ok=Konvertiere jetzt
|
convert_ok=Jetzt konvertieren
|
||||||
convert_err=Fehler beim Konvertieren der Benutzer
|
convert_err=Fehler bei der Konvertierung der Benutzer
|
||||||
convert_eusers=Keine Benutzer zum Konvertieren eingegeben
|
convert_eusers=Keine Benutzer zur Konvertierung eingegeben
|
||||||
convert_egroup=Unix-Gruppe existiert nicht
|
convert_egroup=Unix-Gruppe existiert nicht
|
||||||
convert_emin=Ungültige kleinste UID
|
convert_emin=Ungültige minimale UID
|
||||||
convert_emax=Ungültige größte UID
|
convert_emax=Ungültige maximale UID
|
||||||
convert_ewgroup=Es gibt keine solche Webmingruppe
|
convert_ewgroup=Keine solche Webmin-Gruppe
|
||||||
convert_ewgroup2=Sie sind nicht berechtigt neue Benutzer zu dieser Gruppe hinzuzufügen.
|
convert_ewgroup2=Sie dürfen keine neuen Benutzer dieser Gruppe zuweisen
|
||||||
convert_skip=$1 wurde übersprungen
|
convert_skip=$1 wird übersprungen
|
||||||
convert_exists=$1 existiert bereits
|
convert_exists=$1 existiert bereits
|
||||||
convert_invalid=$1 ist kein gültiger Webminbenutzername
|
convert_invalid=$1 ist kein gültiger Webmin-Benutzername
|
||||||
convert_added=$1 wurde hinzugefügt
|
convert_added=$1 wird hinzugefügt
|
||||||
convert_msg=Konvertiere Unixbenutzer ...
|
convert_msg=Konvertiere Unix-Benutzer...
|
||||||
convert_user=Unix Benutzer
|
convert_user=Unix-Benutzer
|
||||||
convert_action=Durchgeführe Aktionen
|
convert_action=Durchgeführte Aktion
|
||||||
convert_done=$1 Benutzer umgewandelt, $2 ungültig, $3 gibt es bereits, $4 ausgeschlossen.
|
convert_done=$1 Benutzer konvertiert, $2 ungültig, $3 bereits vorhanden, $4 ausgeschlossen.
|
||||||
convert_users=Benutzer zum konvertieren
|
convert_users=Zu konvertierende Benutzer
|
||||||
|
|
||||||
sync_title=Unixbenutzer-Synchronisation
|
sync_title=Unix-Benutzersynchronisierung
|
||||||
sync_desc=Dieses Formular erlaubt Ihnen die Konfiguration der automatischen Synchronisation von Unixbenutzern die durch Webmin erzeugt wurden und Benutzern in diesem Modul.
|
sync_desc=Mit diesem Formular können Sie die automatische Synchronisierung von Unix-Benutzern, die über Webmin erstellt wurden, und Benutzern in diesem Modul konfigurieren.
|
||||||
sync_nogroups=Es wurden keine Webmingruppen auf Ihrem System definiert. Wenigstens eine Gruppe muss angelegt sein, um den Zugriff für erzeugte Benutzer einzustellen.
|
sync_nogroups=Auf Ihrem System sind keine Webmin-Gruppen definiert. Es muss mindestens eine Gruppe erstellt werden, um den Zugriff für erstellte Benutzer festzulegen.
|
||||||
sync_when=Wann synchronisieren
|
sync_when=Wann synchronisieren
|
||||||
sync_create=Erzeuge einen Webminbenutzer wenn ein Unixbenutzer erzeugt wird.
|
sync_create=Erstelle einen Webmin-Benutzer, wenn ein Unix-Benutzer erstellt wird.
|
||||||
sync_update=Aktualisiere den passenden Webminbenutzer wenn ein Unixbenutzer aktualisiert wird.
|
sync_update=Aktualisiere den entsprechenden Webmin-Benutzer, wenn ein Unix-Benutzer aktualisiert wird.
|
||||||
sync_delete=Lösche den passenden Webminbenutzer wenn ein Unixbenutzer gelöscht wird.
|
sync_delete=Lösche den entsprechenden Webmin-Benutzer, wenn ein Unix-Benutzer gelöscht wird.
|
||||||
sync_group=Zuweisung neuer Benutzer zur Webmingruppe
|
sync_modify=Ändere den Namen des entsprechenden Webmin-Benutzers, wenn ein Unix-Benutzer umbenannt wird.
|
||||||
sync_unix=Setze Passwort für neue Benutzer auf das Unixpasswort
|
sync_group=Neuen Benutzern Webmin-Gruppe zuweisen
|
||||||
sync_ecannot=Sie sind nicht berechtigt die Benutzer-Synchronisation zu bearbeiten.
|
sync_unix=Passwort neuer Benutzer auf Unix-Authentifizierung setzen.
|
||||||
|
sync_ecannot=Sie dürfen die Benutzersynchronisierung nicht konfigurieren.
|
||||||
|
|
||||||
unix_title=Unixbenutzer Authentifizierung
|
unix_title=Unix-Benutzerauthentifizierung
|
||||||
unix_err=Fehler beim Speichern der Unix Authentifizierung
|
unix_err=Fehler beim Speichern der Unix-Authentifizierung
|
||||||
unix_desc=Diese Seite erlaubt Ihnen Webmin zu konfigurieren, um Anmeldeversuche gegen die System-Benutzerliste und PAM abzugleichen. Dies kann nützlich sein, wenn Sie eine große Anzahl bestehender Unixbenutzer haben, denen Sie Zugriff auf Webmin geben wollen.
|
unix_desc=Diese Seite ermöglicht es Ihnen, Webmin so zu konfigurieren, dass Anmeldeversuche gegen die Systembenutzerliste und PAM überprüft werden. Dies kann nützlich sein, wenn Sie eine große Anzahl von vorhandenen Unix-Benutzern haben, denen Sie Zugriff auf Webmin gewähren möchten.
|
||||||
unix_def=Erlaube nur Webminbenutzern die Anmeldung
|
unix_def=Nur Webmin-Benutzer dürfen sich anmelden
|
||||||
unix_sel=Die für die Anmeldung zu erlaubenden Unixbenutzer sind unten aufgelistet ..
|
unix_sel=Erlaube den folgenden Unix-Benutzern die Anmeldung ..
|
||||||
unix_mode=Erlauben
|
unix_mode=Erlauben
|
||||||
unix_mall=Alle Benutzer
|
unix_mall=Alle Benutzer
|
||||||
unix_group=Mitglieder der Gruppe ..
|
unix_group=Mitglieder der Gruppe ..
|
||||||
unix_user=Unixbenutzer ..
|
unix_user=Unix-Benutzer ..
|
||||||
unix_who=Benutzer oder Gruppe
|
unix_who=Benutzer oder Gruppe
|
||||||
unix_to=Als Webminbenutzer
|
unix_to=Als Webmin-Benutzer
|
||||||
unix_ecannot=Sie sind nicht berechtigt die Unixbenutzer-Authentifizierung zu bearbeiten.
|
unix_ecannot=Sie dürfen die Unix-Benutzerauthentifizierung nicht konfigurieren
|
||||||
unix_epam=Unix-Authentifizierung ist nicht verfügbar, da das <tt>Authen::PAM</tt> Perl-Modul nicht installiert ist oder nicht richtig arbeitet.
|
unix_epam=Unix-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> nicht installiert oder nicht ordnungsgemäß funktioniert.
|
||||||
unix_all=Erlaube alle Unixbenutzer
|
unix_all=Alle Unix-Benutzer erlauben
|
||||||
unix_allow=Erlaube nur gelistete Unixbenutzer
|
unix_allow=Nur gelisteten Unix-Benutzern erlauben
|
||||||
unix_deny=Verbiete gelistete Unixbenutzer
|
unix_deny=Gelisteten Unix-Benutzern verweigern
|
||||||
unix_none=Keine Benutzer eingegeben
|
unix_none=Keine Benutzer eingegeben
|
||||||
unix_euser='$1' ist kein gültiger Benutzername
|
unix_euser='$1' ist kein gültiger Benutzername
|
||||||
unix_egroup='$1' ist kein gültiger Gruppenname
|
unix_egroup='$1' ist kein gültiger Gruppenname
|
||||||
unix_shells=Verbiete Unixbenutzer, deren Shell nicht in der Shell-Beschreibungsdatei steht
|
unix_shells=Unix-Benutzern deren Shells nicht in der Datei enthalten sind verweigern
|
||||||
unix_eshells=Fehlende oder nicht-existente Shell-Beschreibungsdatei
|
unix_eshells=Fehlende oder nicht vorhandene Shells-Datei
|
||||||
unix_restrict2=Zusätzliche Restriktionen
|
unix_restrict2=Zusätzliche Einschränkungen
|
||||||
unix_ewhogroup=Fehlende zu erlaubende Gruppe in Reihe $1
|
unix_ewhogroup=Fehlende Gruppe zum Erlauben in Zeile $1
|
||||||
unix_ewhouser=Fehlender zu erlaubender Benutzer in Reihe $1
|
unix_ewhouser=Fehlender Benutzer zum Erlauben in Zeile $1
|
||||||
unix_enone=Es wurden keine zu erlaubenden Benutzer oder Gruppen eingegeben
|
unix_enone=Keine Unix-Benutzer oder -Gruppen zum Erlauben eingegeben
|
||||||
unix_same=<Gleicher Benutzer oder Gruppe>
|
unix_same=<Gleicher Benutzer oder Gruppe>
|
||||||
unix_sudo=Erlaube Benutzern welche alle Befehle via <tt>sudo</tt> aufrufen können die Anmeldung als <tt>root</tt>
|
unix_sudo=Benutzern, die alle Befehle über <tt>sudo</tt> ausführen können, die Anmeldung als <tt>root</tt> erlauben
|
||||||
unix_pamany=Erlaube Anmeldungen welche nur die PAM Validierung durchlaufen als $1
|
unix_pamany=Behandle Anmeldungen, die nur die PAM-Überprüfung bestehen, als $1
|
||||||
unix_esudo=Der $1 Befehl ist nicht installiert
|
unix_esudo=Der $1-Befehl ist nicht installiert
|
||||||
unix_esudomod=Das Perl-Modul $1, welches zur <tt>sudo</tt> Authentifizierung verwendet wird, ist nicht installiert
|
unix_esudomod=Das benötigte Perl-Modul $1 für die <tt>sudo</tt>-Authentifizierung ist nicht installiert
|
||||||
unix_header=Unix Benutzer Authentifizierungseinstellungen
|
unix_header=Einstellungen zur Unix-Benutzerauthentifizierung
|
||||||
unix_utable=Erlaubte Unix Benutzer
|
unix_utable=Erlaubte Unix-Benutzer
|
||||||
|
|
||||||
sessions_title=Aktuell angemeldete Sitzungen
|
sessions_title=Aktuelle Anmelde-Sitzungen
|
||||||
sessions_id=Sitzungs-ID
|
sessions_id=Sitzungs-ID
|
||||||
sessions_user=Webminbenutzer
|
sessions_user=Webmin-Benutzer
|
||||||
sessions_login=Zuletzt aktiv am
|
sessions_login=Zuletzt aktiv um
|
||||||
sessions_host=IP-Adresse
|
sessions_host=IP-Adresse
|
||||||
sessions_lview=Zeige Aufzeichnungen..
|
sessions_lview=Protokolle anzeigen ..
|
||||||
sessions_actions=Aktionen..
|
sessions_actions=Aktionen ..
|
||||||
sessions_logouts=Zeige auch abgemeldete Sitzungen ..
|
sessions_all=Alle Sitzungen ..
|
||||||
sessions_state=Status
|
sessions_logouts=Auch abgemeldete Sitzungen anzeigen ..
|
||||||
sessions_this=Dieser Login
|
sessions_state=Zustand
|
||||||
sessions_in=Eingeloggt
|
sessions_action=Aktionen
|
||||||
sessions_out=Ausgeloggt
|
sessions_this=Diese Anmeldung
|
||||||
sessions_kill=Getrennt..
|
sessions_in=Angemeldet
|
||||||
|
sessions_out=Abgemeldet
|
||||||
|
sessions_kill=Trennen ..
|
||||||
|
|
||||||
logins_title=Aktuelle Webmin-Logins
|
logins_title=Kürzliche Webmin-Anmeldungen
|
||||||
|
|
||||||
hide_title=Verberge nicht benutzte Module
|
hide_title=Nicht verwendete Module ausblenden
|
||||||
hide_desc=Das folgende Modul wird von der Zugriffskontrollliste für $1 entfernt, da die entsprechenden Server nicht auf Ihrem System installiert sind.
|
hide_desc=Die folgenden Module werden aus der Modulliste für $1 entfernt, da die entsprechenden Server auf Ihrem System nicht installiert sind ..
|
||||||
hide_ok=Verberge Module jetzt
|
hide_ok=Module jetzt ausblenden
|
||||||
hide_none=Nichts zu verbergen - $1 hat keinen Zugriff zu irgendeinem Modul dessen entsprechender Server nicht auf Ihrem System installiert ist.
|
hide_none=Nichts auszublenden - $1 hat keinen Zugriff auf Module, deren entsprechende Server auf Ihrem System nicht installiert sind.
|
||||||
hide_desc2=Bedenken Sie, dass dieses Modul nicht automatisch sichtbar wird, wenn der entsprechende Server nachträglich installiert wird. Sie müssen den Zugriff über dieses Modul erneut einrichten.
|
hide_desc2=Bitte beachten Sie, dass diese Module nicht automatisch wieder erscheinen, wenn die entsprechenden Server installiert werden. Sie müssen den Zugriff manuell über dieses Modul gewähren.
|
||||||
hide_clone=(Klone $1)
|
hide_clone=(Klonen $1)
|
||||||
|
|
||||||
switch_euser=Sie dürfen nicht zu diesem Benutzer wechseln
|
switch_euser=Sie dürfen nicht zu diesem Benutzer wechseln
|
||||||
switch_eold=Existierende Sitzung nicht gefunden!
|
switch_eold=Bestehende Sitzung nicht gefunden!
|
||||||
|
|
||||||
rbac_title=Setup RBAC
|
rbac_title=RBAC einrichten
|
||||||
rbac_desc=Die RBAC (Role Based Access Control)-Integration in die Webmin-Software unterstützt die Verlagerung von ACLs auf bestimmte oder alle Module in eine RBAC-Datenbank. Wenn RBAC einmal aktiviert wurde, dann werden für jeden Benutzer für den die <b>RBAC Steuerung aller Module und ACLs</b>-Option ausgewählt wurde alle Möglichkeiten durch RBAC und nicht mehr durch Webmin geregelt.
|
rbac_desc=Die RBAC-Integration von Webmin bietet eine Möglichkeit, die Berechtigungen für Benutzer-Module und ACLs aus einer RBAC (Role Based Access Control)-Datenbank zu bestimmen, anstatt aus den eigenen Konfigurationsdateien von Webmin. Sobald die RBAC-Unterstützung aktiviert ist, werden die Fähigkeiten eines Benutzers, für den die Option <b>RBAC steuert alle Module und ACLs</b> ausgewählt ist, von RBAC und nicht von den eigenen Zugriffskontroll-Einstellungen von Webmin bestimmt.
|
||||||
rbac_esolaris=RBAC wird derzeit nur von Solaris unterstützt und kann auf diesem $1 System nicht genutzt werden.
|
rbac_esolaris=RBAC wird derzeit nur auf Solaris unterstützt und kann daher auf diesem $1-System nicht verwendet werden.
|
||||||
rbac_eperl=Das Perl-Modul $1 wird für die RBAC-Integration benötigt, ist jedoch nicht installiert. Sie können dies über das <a href='$2'>CPAN-Modul</a> nachholen.
|
rbac_eperl=Das Perl-Modul $1, das für die RBAC-Integration benötigt wird, ist nicht installiert. <a href='$2'>Klicken Sie hier</a>, um es jetzt installieren zu lassen.
|
||||||
rbac_ecpan=Sie haben keinen Zugriff auf die Webmin-Perl-Modulseite um das für die RBAC-Integration benötigte Modul $1 zu installieren.
|
rbac_ecpan=Sie haben keinen Zugriff auf die Webmin Perl-Module-Seite, um das notwendige $1-Modul für die RBAC-Integration zu installieren.
|
||||||
rbac_ok=RBAC-Integration ist auf Ihrem System verfügbar und kann pro Benutzer im Benutzer- und Gruppenmodul angewandt werden.
|
rbac_ok=Die RBAC-Integration ist auf diesem System verfügbar und kann auf der Seite "Webmin-Benutzer bearbeiten" pro Benutzer aktiviert werden.
|
||||||
|
|
||||||
udeletes_err=Konnte Benutzer nicht löschen
|
udeletes_err=Fehler beim Löschen der Benutzer
|
||||||
udeletes_jerr=Fehler beim Nutzer zu Gruppe hinzufügen
|
udeletes_jerr=Fehler beim Hinzufügen von Benutzern zur Gruppe
|
||||||
udeletes_enone=Nichts ausgewählt
|
udeletes_enone=Keine ausgewählt
|
||||||
udeletes_title=Benutzer löschen
|
udeletes_title=Benutzer löschen
|
||||||
udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Benutzer löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
|
udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Benutzer löschen möchten? Alle ihre Zugriffskontrolleinstellungen und Benutzerdaten gehen verloren.
|
||||||
udeletes_users=Ausgewählte Benutzer: $1
|
udeletes_users=Ausgewählte Benutzer: $1
|
||||||
udeletes_ok=Benutzer löschen
|
udeletes_ok=Benutzer löschen
|
||||||
udeletes_ereadonly=Einer der ausgewählten Benutzer ist als nicht bearbeitbar markiert.
|
udeletes_ereadonly=Einer der ausgewählten Benutzer ist als nicht bearbeitbar markiert
|
||||||
|
|
||||||
gdeletes_err=Konnte Gruppen nicht löschen
|
gdeletes_err=Fehler beim Löschen der Gruppen
|
||||||
gdeletes_title=Gruppe löschen
|
gdeletes_title=Gruppen löschen
|
||||||
gdeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Gruppen, inklusive der darin enthaltenen $2 Benutzer, löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
|
gdeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Gruppen und die $2 Benutzer, die sie enthalten, löschen möchten? Alle ihre Zugriffskontrolleinstellungen und Benutzerdaten gehen verloren.
|
||||||
gdeletes_users=Ausgewählte Gruppen: $1
|
gdeletes_users=Ausgewählte Gruppen: $1
|
||||||
gdeletes_ok=Gruppe löschen
|
gdeletes_ok=Gruppen löschen
|
||||||
|
|
||||||
pass_title=Kennwort Einschränkungen
|
pass_title=Passwortrichtlinien
|
||||||
pass_ecannot=Es ist Ihnen nicht erlaubt Passwortrestriktionen zu editieren
|
pass_ecannot=Sie dürfen die Passwortrichtlinien nicht bearbeiten
|
||||||
pass_header=Optionen der Webmin-Kennwort-Erzwingung
|
pass_header=Webmin Passwortdurchsetzungsoptionen
|
||||||
pass_minsize=Minimale Kennwortlänge
|
pass_minsize=Minimale Passwortlänge
|
||||||
pass_nominsize=Kein Minimum
|
pass_nominsize=Keine Mindestlänge
|
||||||
pass_regexps=Übereinstimmung von Kennwörtern mit regulären Ausdrücken
|
pass_regexps=Reguläre Ausdrücke, mit denen Passwörter übereinstimmen müssen
|
||||||
pass_regdesc=Menschlich lesbare Beschreibung von regulären Ausdrücken
|
pass_regdesc=Beschreibung des regulären Ausdrucks für Menschen
|
||||||
pass_maxdays=Tage bevor das Kennwort geändert werden muss
|
pass_maxdays=Tage, bevor das Passwort geändert werden muss
|
||||||
pass_lockdays=Tage bevor ein nicht geändertes Kennwort den Zugang sperrt
|
pass_lockdays=Tage, bevor das unveränderte Passwort das Konto sperrt
|
||||||
pass_nomaxdays=Änderung ist nie notwendig
|
pass_nomaxdays=Änderung nie erforderlich
|
||||||
pass_nolockdays=Zugang wird nie gesperrt
|
pass_nolockdays=Konto wird nie gesperrt
|
||||||
pass_nouser=Erlaube kein Kennwort welches den Benutzernamen enthält?
|
pass_nouser=Passwörter mit Benutzernamen verbieten?
|
||||||
pass_nodict=Erlaube kein wörterbuchbasiertes Kennwort
|
pass_nodict=Passwörter aus Wörterbüchern verbieten?
|
||||||
pass_oldblock=Anzahl von alten Kennwörtern zurückweisen
|
pass_oldblock=Anzahl der alten Passwörter, die abgelehnt werden
|
||||||
pass_nooldblock=Keine Begrenzung zur Wiederverwendung des Kennworts
|
pass_nooldblock=Keine Begrenzung der Passwortwiederverwendung
|
||||||
pass_days=Tage
|
pass_days=Tage
|
||||||
pass_pass=Kennwörter
|
pass_pass=Passwörter
|
||||||
pass_err=Fehler beim Speichern der Kennwortrestriktionen
|
pass_err=Fehler beim Speichern der Passwortrichtlinien
|
||||||
pass_eminsize=Vermisse minimale Kennwortlänge oder der Wert ist nicht numerisch
|
pass_eminsize=Fehlende oder nicht numerische Mindestpasswortlänge
|
||||||
pass_emaxdays=Vermisse Anzahl von Tagen bevor das Kennwort geändert wird oder der Wert ist nicht numerisch
|
pass_emaxdays=Fehlende oder nicht numerische Anzahl der Tage vor der Änderung
|
||||||
pass_elockdays=Vermisse Anzahl von Tagen bevor der Zugang gesperrt wird oder der Wert ist nicht numerisch
|
pass_elockdays=Fehlende oder nicht numerische Anzahl der Tage vor der Kontosperrung
|
||||||
pass_eoldblock=Vermisse Anzahl von Tage bevor ein Kennwort zurückgeweisen wird oder der Wert ist nicht numerisch
|
pass_eoldblock=Fehlende oder nicht numerische Anzahl der alten Passwörter, die abgelehnt werden
|
||||||
|
|
||||||
cpass_minsize=Muss mindestens $1 Zeichen lang sein
|
cpass_minsize=Muss mindestens $1 Buchstaben lang sein
|
||||||
cpass_notre=Entspricht einen nicht erlaubten Muster
|
cpass_notre=Entspricht einem nicht erlaubten Muster
|
||||||
cpass_re=Entspricht nicht einem erforderlichen Muster
|
cpass_re=Entspricht nicht einem erforderlichen Muster
|
||||||
cpass_name=Enthält den Benutzernamen
|
cpass_name=Enthält den Benutzernamen
|
||||||
cpass_dict=Ist ein Wort aus dem Wörterbuch
|
cpass_dict=Ist ein Wörterbuchwort
|
||||||
cpass_spellcmd=Entweder der $1 oder $2 Befehl muss installiert sein um eine Wörterbuchprüfung durchzuführen
|
cpass_spellcmd=Weder der $1- noch der $2-Befehl, der zur Überprüfung von Wörterbuchwörtern benötigt wird, ist installiert
|
||||||
cpass_old=Alte Kennwörter können nicht wieder verwendet werden
|
cpass_old=Alte Passwörter können nicht wiederverwendet werden
|
||||||
|
|
||||||
sql_title=Benutzer- und Gruppendatenbank
|
sql_title=Benutzer- und Gruppendatenbank
|
||||||
sql_ecannot=Es ist Ihnen nicht erlaubt die Benutzer und Gruppen Datenbank zu konfigurieren
|
sql_ecannot=Sie dürfen die Benutzer- und Gruppendatenbank nicht konfigurieren
|
||||||
sql_header=Optionen für Datenbank-Backend für Benutzer und Gruppen
|
sql_header=Optionen für die Datenbank-Backend für Benutzer und Gruppen
|
||||||
sql_host=Hostname
|
sql_host=Hostname
|
||||||
sql_user=Benutzername
|
sql_user=Benutzername
|
||||||
sql_pass=Passwort
|
sql_pass=Passwort
|
||||||
sql_db=Datenbankname
|
sql_db=Datenbankname
|
||||||
sql_ssl=Verbindungsverschlüsselung
|
sql_ssl=Verbindung Verschlüsselung
|
||||||
sql_ssl0=Keine
|
sql_ssl0=Keine
|
||||||
sql_ssl1=SSL
|
sql_ssl1=SSL
|
||||||
sql_ssl2=TLS
|
sql_ssl2=TLS
|
||||||
sql_userclass=Object-Klasse für Anwender
|
sql_userclass=Objektklasse für Benutzer
|
||||||
sql_groupclass=Objekt-Klasse für Gruppen
|
sql_groupclass=Objektklasse für Gruppen
|
||||||
sql_euserclass=Fehlende oder ungültige Objekt-Klasse für Benutzer
|
sql_euserclass=Fehlende oder ungültige Objektklasse für Benutzer
|
||||||
sql_egroupclass=Fehlender oder ungültige Objektklasse für Gruppen
|
sql_egroupclass=Fehlende oder ungültige Objektklasse für Gruppen
|
||||||
sql_none=Verwende nur lokale Dateien zum Speichern von Benutzern und Gruppen
|
sql_none=Nur lokale Dateien zur Speicherung von Benutzern und Gruppen verwenden
|
||||||
sql_mysql=Benutze MySQL Datenbank
|
sql_mysql=MySQL-Datenbank verwenden
|
||||||
sql_postgresql=Benutze PostgreSQL Datenbank
|
sql_postgresql=PostgreSQL-Datenbank verwenden
|
||||||
sql_ldap=Benutze LDAP-Server
|
sql_ldap=LDAP-Server verwenden
|
||||||
sql_prefix=Erstelle unter DN
|
sql_prefix=Erstellen unter DN
|
||||||
sql_addto0=Hinzufügen neuer Benutzer zur Datenbank, wie oben ausgewählt
|
sql_addto0=Neue Benutzer zur oben ausgewählten Datenbank hinzufügen
|
||||||
sql_addto1=Füge neue Benutzer zu lokalen Dateien zu
|
sql_addto1=Neue Benutzer zu lokalen Dateien hinzufügen
|
||||||
sql_emod=Fehlendes benötigtes Perl Modul <tt>$1</tt>
|
sql_nocache0=Verbindungen zur Datenbank cachen
|
||||||
sql_etable=Fehlgeschlagen die erforderliche Tabelle abzufragen $1 : $2
|
sql_nocache1=Für jede Abfrage eine neue Verbindung öffnen
|
||||||
sql_eldapdn=Base LDAP DN $1 wurde nicht gefunden
|
sql_emod=Fehlendes erforderliches Perl-Modul <tt>$1</tt>
|
||||||
sql_eclass=LDAP-Objekt Klasse $1 ist nicht in dem Server-Schema vorhanden
|
sql_etable=Fehler beim Abfragen der erforderlichen Tabelle $1 : $2
|
||||||
sql_err=Fehlgeschlagen Benutzer- und Gruppen-Datenbank-Einstellungen zu speichern
|
sql_eldapdn=Basis LDAP DN $1 wurde nicht gefunden
|
||||||
sql_ehost=Fehlender und nicht-auflösbarere Hostname
|
sql_eclass=LDAP-Objektklasse $1 existiert nicht im Schema des Servers
|
||||||
|
sql_err=Fehler beim Speichern der Benutzer- und Gruppendatenbank-Einstellungen
|
||||||
|
sql_ehost=Fehlender oder nicht auflösbarer Hostname
|
||||||
sql_euser=Fehlender oder ungültiger Benutzername (keine Leerzeichen erlaubt)
|
sql_euser=Fehlender oder ungültiger Benutzername (keine Leerzeichen erlaubt)
|
||||||
sql_epass=Ungültiges Passwort (keine Leerzeichen erlaubt)
|
sql_epass=Ungültiges Passwort (keine Leerzeichen erlaubt)
|
||||||
sql_edb=Ungültiger Datenbankname (kein Leerzeichen erlaubt)
|
sql_edb=Ungültiger Datenbankname (keine Leerzeichen erlaubt)
|
||||||
sql_eprefix=Fehlende oder ungültige Base DN (keine Leerzeichen erlaubt)
|
sql_eprefix=Fehlender oder ungültiger Basis-DN (keine Leerzeichen erlaubt)
|
||||||
sql_eprefix2=Ungültig-ausschauende Base DN - sollte <tt>dc=mydomain,dc=com</tt> sein
|
sql_eprefix2=Ungültig aussehender Basis-DN - sollte wie <tt>dc=mydomain,dc=com</tt> aussehen
|
||||||
sql_title2=Erstellt fehlende Tabellen
|
sql_title2=Fehlende Tabellen erstellen
|
||||||
sql_tableerr=Benutzer- und Gruppen-Datenbank-Einstellungen sind gültig, aber einige Tabellen, die von Webmin benötigt werden, fehlen : $1
|
sql_tableerr=Benutzer- und Gruppendatenbankeinstellungen sind gültig, aber einige Tabellen, die von Webmin benötigt werden, fehlen: $1
|
||||||
sql_tableerr2=Klicke auf den <b>Tabellen erstellen</b> Button unten, um sie automatisch zu erstellen oder den SQL Befehl unten manuell auszuführen.
|
sql_tableerr2=Klicken Sie auf die Schaltfläche <b>Tabellen erstellen</b>, um sie automatisch zu erstellen, oder führen Sie das SQL unten manuell aus.
|
||||||
sql_make=Erstelle Tabellen
|
sql_make=Tabellen erstellen
|
||||||
sql_title3=Erstelle fehlende DN
|
sql_title3=Fehlende DN erstellen
|
||||||
sql_dnerr=Benutzer- und Gruppen-Datenbank-Einstellungen sind gültig, aber die LDAP DN, die Webmin benötigt, fehlen noch : $1
|
sql_dnerr=Benutzer- und Gruppendatenbankeinstellungen sind gültig, aber der LDAP-DN, den Webmin benötigt, fehlt: $1
|
||||||
sql_dnerr2=Klicken auf den <b>Erstellen DN</b> Button unten, um es automatisch zu erstellen, oder füge es manuell Ihrem LDAP-Server zu.
|
sql_dnerr2=Klicken Sie auf die Schaltfläche <b>DN erstellen</b>, um ihn automatisch zu erstellen, oder fügen Sie ihn manuell zu Ihrem LDAP-Server hinzu.
|
||||||
sql_makedn=Erstelle DN
|
sql_makedn=DN erstellen
|
||||||
sql_schema=Download LDAP Schema
|
sql_schema=LDAP-Schema herunterladen
|
||||||
|
sql_timeout_def=Standardverbindungstimeout verwenden (60 Sekunden)
|
||||||
|
sql_timeout_for=Cache-Verbindungen nach
|
||||||
|
sql_timeout_secs=Sekunden schließen
|
||||||
|
sql_etimeout=Cache-Verbindungstimeout muss eine Zahl sein
|
||||||
|
|
||||||
make_title=Erstelle Benutzer- und Gruppentabellen
|
make_title=Benutzer- und Gruppentabellen erstellen
|
||||||
make_err=Fehlgeschlagen Benutzer- und Gruppentabellen zu erstellen
|
make_err=Fehler beim Erstellen der Benutzer- und Gruppentabellen
|
||||||
make_exec=Ausführe SQL $1 ..
|
make_exec=Führe SQL $1 aus ..
|
||||||
make_failed=.. Erstellen fehlgeschlagen : $1
|
make_failed=.. Erstellung fehlgeschlagen : $1
|
||||||
make_done=.. fertig
|
make_done=.. abgeschlossen
|
||||||
make_still=Einige Probleme wurden auch nach Erstellung der Tabelle gefunden: $1
|
make_still=Einige Probleme wurden auch nach der Tabellenerstellung gefunden: $1
|
||||||
|
|
||||||
makedn_title=Erstelle LDAP DN
|
makedn_title=LDAP DN erstellen
|
||||||
makedn_eoc=Keine strukturelle Objektklassen gefunden!
|
makedn_eoc=Keine strukturellen Objektklassen gefunden!
|
||||||
makedn_exec=Erstelle übergeordnete DN $1 ..
|
makedn_exec=Erstelle übergeordneten DN $1 ..
|
||||||
makedn_failed=.. Erstellung fehlgeschlagen : $1
|
makedn_failed=.. Erstellung fehlgeschlagen : $1
|
||||||
makedn_done=.. fertig
|
makedn_done=.. abgeschlossen
|
||||||
makedn_still=Einige Probleme wurden auch nach DN Erstellung gefunden : $1
|
makedn_still=Einige Probleme wurden auch nach der DN-Erstellung gefunden: $1
|
||||||
|
|
||||||
schema_title=Download LDAP-Schema
|
schema_title=LDAP-Schema herunterladen
|
||||||
schema_desc=Bevor Webmin ein LDAP-Server verwenden kann um Benutzer und Gruppen zu speichern, muss konfiguriert werden, das Schema unten zu verwenden. Dies kann in der Regel durch Speicherung der Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt>, anschließend kann die Konfiguration des Servers erfolgen, das Schema-Datei zu laden.
|
schema_desc=Bevor Webmin einen LDAP-Server zur Speicherung von Benutzern und Gruppen verwenden kann, muss er konfiguriert werden, um das unten stehende Schema zu verwenden. Dies kann normalerweise erreicht werden, indem die Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt> gespeichert wird, und dann den Server konfiguriert wird, um diese Schema-Datei zu laden.
|
||||||
schema_download=Download Schema-Datei : <a href=$1>$1</a>
|
schema_download=Schema-Datei herunterladen : <a href=$1>$1</a>
|
||||||
|
|
||||||
twofactor_err=Fehlgeschlagen 2-Faktor-Authentifizierung einzurichten
|
twofactor_err=Fehler beim Einrichten der Zwei-Faktor-Authentifizierung
|
||||||
twofactor_euser=Ihr Webmin-Benutzer wurde nicht gefunden!
|
twofactor_euser=Ihr Webmin-Benutzer wurde nicht gefunden!
|
||||||
twofactor_title=2-Faktor-Authentifizierung
|
twofactor_title=Zwei-Faktor-Authentifizierung
|
||||||
twofactor_disable=Deaktiviere 2-Faktor-Authentifizierung
|
twofactor_disable=Zwei-Faktor-Authentifizierung deaktivieren
|
||||||
twofactor_already=Ihr Webmin Login hat bereits die 2-Faktor-Authentifizierung mit Provider $1 und Konto-ID $2 aktiviert.
|
twofactor_already=Ihre Webmin-Anmeldung hat bereits zwei-Faktor-Authentifizierung mit Anbieter $1 und Konten-ID $2 aktiviert.
|
||||||
twofactor_already2=Webmin Login $3 hat bereits schon die 2-Faktor-Authentifizierung mit Provider $1 und ID-Konto $2 aktiviert.
|
twofactor_already2=Webmin-Anmeldung $3 hat bereits zwei-Faktor-Authentifizierung mit Anbieter $1 und Konten-ID $2 aktiviert.
|
||||||
twofactor_desc=Auf dieser Seite können Sie die 2-Faktor-Authentifizierung für Webmin-Logins <a href='$2' target=_blank>$1</a> ermöglichen. Einmal aktiviert, wird eine zusätzliche Authentifizierungs-Token benötigt, wenn Sie sich in Webmin einloggen.
|
twofactor_desc=Diese Seite ermöglicht es Ihnen, die Zwei-Faktor-Authentifizierung für Ihre Webmin-Anmeldung mit <a href='$2' target=_blank>$1</a> zu aktivieren. Sobald aktiviert, wird ein zusätzlicher Authentifizierungstoken erforderlich sein, um sich bei Webmin anzumelden.
|
||||||
twofactor_desc2=Auf dieser Seite können Sie die 2-Faktor-Authentifizierung für Webmin Login $3 mit <a href='$2' target=_blank>$1</a> aktivieren. Einmal aktiv, wird ein zusätzliche Authentifizierungs-Token benötigt, wenn Sie sich in Webmin anmelden.
|
twofactor_desc2=Diese Seite ermöglicht es Ihnen, die Zwei-Faktor-Authentifizierung für Webmin-Anmeldung $3 mit <a href='$2' target=_blank>$1</a> zu aktivieren. Sobald aktiviert, wird ein zusätzlicher Authentifizierungstoken erforderlich sein, um sich bei Webmin anzumelden.
|
||||||
twofactor_enable=Anmelden für die 2-Faktor-Authentifizierung
|
twofactor_enable=Für Zwei-Faktor-Authentifizierung anmelden
|
||||||
twofactor_header=2-Faktor-Authentifizierung Anmeldungsdetails
|
twofactor_header=Details zur Zwei-Faktor-Authentifizierung
|
||||||
twofactor_enrolling=Anmeldung für die 2-Faktor-Authentifizierung mit Provider $1 ..
|
twofactor_enrolling=Anmeldung zur Zwei-Faktor-Authentifizierung mit Anbieter $1 ..
|
||||||
twofactor_failed=.. Anmeldung fehlgeschlagen : $1
|
twofactor_failed=.. Anmeldung fehlgeschlagen : $1
|
||||||
twofactor_done=.. komplett. Ihre ID mit diesem Provider ist <tt>$1</tt>.
|
twofactor_done=.. abgeschlossen. Ihre ID bei diesem Anbieter ist <tt>$1</tt>.
|
||||||
twofactor_setup=2-Faktor-Authentifizierung auf diesem System ist nicht noch aktiviert, kann aber über das <a href='$1'>Webmin Konfiguration</a>-Modul eingeschaltet werden.
|
twofactor_setup=Die Zwei-Faktor-Authentifizierung wurde auf diesem System noch nicht aktiviert, kann aber über das <a href='$1'>Webmin-Konfigurations</a> Modul aktiviert werden.
|
||||||
twofactor_ebutton=Kein Button geklickt!
|
twofactor_ebutton=Kein Button geklickt!
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
edit_locale=Gebietsschema
|
|
||||||
|
|
||||||
acl_locale=Kann das Gebietsschema ändern?
|
|
||||||
|
|
||||||
sync_modify=Benennen Sie den passenden Webmin-Benutzer um, wenn ein Unix-Benutzer umbenannt wird.
|
|
||||||
|
|
||||||
sessions_all=Alle Sitzungen..
|
|
||||||
sessions_action=Aktionen
|
|
||||||
|
|
||||||
sql_nocache0=Cache-Verbindungen zur Datenbank
|
|
||||||
sql_nocache1=Öffnen Sie für jede Suche eine neue Verbindung
|
|
||||||
sql_timeout_def=Standard-Verbindungszeitlimit verwenden (60 Sekunden)
|
|
||||||
sql_timeout_for=Schließen Sie die zwischengespeicherten Verbindungen nach
|
|
||||||
sql_timeout_secs=Sekunden
|
|
||||||
sql_etimeout=Das Zeitlimit für die zwischengespeicherte Verbindung muss eine Zahl sein
|
|
||||||
14
acl/lang/eu
14
acl/lang/eu
@@ -15,7 +15,7 @@ index_nousers=Ez da definitu Webmin erabiltzaile editagarririk.
|
|||||||
index_nogroups=Ez da Webmin talderik definitu.
|
index_nogroups=Ez da Webmin talderik definitu.
|
||||||
index_gcreate=Webmin talde bat sortu.
|
index_gcreate=Webmin talde bat sortu.
|
||||||
index_members=Taldekideak
|
index_members=Taldekideak
|
||||||
index_modgroups= $1 taldeko moduluak
|
index_modgroups=$1 taldeko moduluak
|
||||||
index_sync=Unix erabiltzaileen sinkronizazioa konfiguratu
|
index_sync=Unix erabiltzaileen sinkronizazioa konfiguratu
|
||||||
index_unix=Unix erabiltzailearen kautotzea konfiguratu
|
index_unix=Unix erabiltzailearen kautotzea konfiguratu
|
||||||
index_sessions=Sarrerako saioak ikusi
|
index_sessions=Sarrerako saioak ikusi
|
||||||
@@ -88,7 +88,7 @@ edit_alldays=Egunero
|
|||||||
edit_seldays=Hautatutako egunetan soilik ..
|
edit_seldays=Hautatutako egunetan soilik ..
|
||||||
edit_hours=Eguneko ordu baimenduak
|
edit_hours=Eguneko ordu baimenduak
|
||||||
edit_allhours=Edozein unetan
|
edit_allhours=Edozein unetan
|
||||||
edit_selhours= $1:$2 tik $3:$4 ra
|
edit_selhours=$1:$2 tik $3:$4 ra
|
||||||
edit_ui=Erabiltzailearen interfaze aukerak
|
edit_ui=Erabiltzailearen interfaze aukerak
|
||||||
edit_security=Segurtasuna eta limiteen aukerak
|
edit_security=Segurtasuna eta limiteen aukerak
|
||||||
edit_mods=Eskuragarri dauden Webmin moduluak
|
edit_mods=Eskuragarri dauden Webmin moduluak
|
||||||
@@ -148,7 +148,7 @@ cert_eca=Akatsa ziurtagiri-autoritatea instalatzean : $1
|
|||||||
cert_already=Abisua - $1 ziurtagiria dagoeneko erabiltzen ari zara.
|
cert_already=Abisua - $1 ziurtagiria dagoeneko erabiltzen ari zara.
|
||||||
|
|
||||||
acl_title=Modulu atzipen kontrola
|
acl_title=Modulu atzipen kontrola
|
||||||
acl_title2= $1 etik $2 ra
|
acl_title2=$1 etik $2 ra
|
||||||
acl_title3=$1 etik $2 rako taldeentzat
|
acl_title3=$1 etik $2 rako taldeentzat
|
||||||
acl_options=$1 atzipen kontrolerako aukerak
|
acl_options=$1 atzipen kontrolerako aukerak
|
||||||
acl_config=Edita dezake moduluaren konfigurazioa?
|
acl_config=Edita dezake moduluaren konfigurazioa?
|
||||||
@@ -159,7 +159,7 @@ acl_rbacyes=Bai (beheko ezarpenak gain-idatzi)
|
|||||||
acl_uall=Erabiltzaile guztiak
|
acl_uall=Erabiltzaile guztiak
|
||||||
acl_uthis=Erabiltzaile hau
|
acl_uthis=Erabiltzaile hau
|
||||||
acl_usel=Hautatutako erabiltzaileak ..
|
acl_usel=Hautatutako erabiltzaileak ..
|
||||||
acl_gr= $1 eko taldekideak
|
acl_gr=$1 eko taldekideak
|
||||||
acl_users=Editagarri diren erabiltzaileak
|
acl_users=Editagarri diren erabiltzaileak
|
||||||
acl_mods=Atzipena eman dezake
|
acl_mods=Atzipena eman dezake
|
||||||
acl_all=Modulu guztietara
|
acl_all=Modulu guztietara
|
||||||
@@ -280,7 +280,7 @@ unix_user=Unix erabiltzaileei ..
|
|||||||
unix_who=Erabiltzaile edo Taldea
|
unix_who=Erabiltzaile edo Taldea
|
||||||
unix_to=Webmin erabiltzaile gisa
|
unix_to=Webmin erabiltzaile gisa
|
||||||
unix_ecannot=Ez zaude Unix erabiltzaileen autentikazioa konfiguratzeko baimendua
|
unix_ecannot=Ez zaude Unix erabiltzaileen autentikazioa konfiguratzeko baimendua
|
||||||
unix_epam= Unix autentikazioa ez dago eskuragarri <tt>Authen::PAM</tt> Perl-en modulua ez dagoelako instalatua edo ez dabilelako ongi.
|
unix_epam=Unix autentikazioa ez dago eskuragarri <tt>Authen::PAM</tt> Perl-en modulua ez dagoelako instalatua edo ez dabilelako ongi.
|
||||||
unix_all=Unix erabiltzaile guztiak baimendu
|
unix_all=Unix erabiltzaile guztiak baimendu
|
||||||
unix_allow=Soilik zerrendatutako Unix erabiltzaileak baimendu
|
unix_allow=Soilik zerrendatutako Unix erabiltzaileak baimendu
|
||||||
unix_deny=Debekatu zerrendatutako Unix erabiltzaileei
|
unix_deny=Debekatu zerrendatutako Unix erabiltzaileei
|
||||||
@@ -308,7 +308,7 @@ sessions_lview=Ikusi logak..
|
|||||||
hide_title=Ezkutatu erabiltzen ez diren moduluak
|
hide_title=Ezkutatu erabiltzen ez diren moduluak
|
||||||
hide_desc=The following modules will be removed from the module access list for $1 as their corresponding servers are not installed on your system ..
|
hide_desc=The following modules will be removed from the module access list for $1 as their corresponding servers are not installed on your system ..
|
||||||
hide_ok=Ezkutatu moduluak orain
|
hide_ok=Ezkutatu moduluak orain
|
||||||
hide_none= Nothing to hide - $1 does not have access to any modules whose corresponding servers are not installed on your system.
|
hide_none=Nothing to hide - $1 does not have access to any modules whose corresponding servers are not installed on your system.
|
||||||
hide_desc2=Kontziente izan modulu hauek ez direla berriro automatikoki agertuko dagozkien zerbitzariak instalatuta badaude. Modulu hau erabiliz atzipena eskuz esleitu beharko duzu.
|
hide_desc2=Kontziente izan modulu hauek ez direla berriro automatikoki agertuko dagozkien zerbitzariak instalatuta badaude. Modulu hau erabiliz atzipena eskuz esleitu beharko duzu.
|
||||||
hide_clone=($1 klonatu)
|
hide_clone=($1 klonatu)
|
||||||
|
|
||||||
@@ -345,7 +345,7 @@ pass_regdesc=Pertsonek espresio erregularra ulertu ahal izateko deskribapena
|
|||||||
pass_maxdays=Pasahitza aldatzeko pasa beharreko egunak
|
pass_maxdays=Pasahitza aldatzeko pasa beharreko egunak
|
||||||
pass_lockdays=Pasahitza aldatu gabe dauden kontuak blokeatzeko egunak
|
pass_lockdays=Pasahitza aldatu gabe dauden kontuak blokeatzeko egunak
|
||||||
pass_nomaxdays=Ez eskatu inoiz aldatzeko
|
pass_nomaxdays=Ez eskatu inoiz aldatzeko
|
||||||
pass_nolockdays= Kontua ez inoiz blokeatu
|
pass_nolockdays=Kontua ez inoiz blokeatu
|
||||||
pass_nouser=Erabiltzaile izena bere baitan duten pasahitzak debekatu?
|
pass_nouser=Erabiltzaile izena bere baitan duten pasahitzak debekatu?
|
||||||
pass_nodict=Hiztegiko hitzak diren pasahitzak debekatu?
|
pass_nodict=Hiztegiko hitzak diren pasahitzak debekatu?
|
||||||
pass_oldblock=Ezeztatzeko pasahitz zaharren kopurua
|
pass_oldblock=Ezeztatzeko pasahitz zaharren kopurua
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ gsave_edesc=Deskribapen baliogabea - the: pertsonaia ez da onartzen
|
|||||||
convert_sync2=Sinkronizatu pasahitza Unix erabiltzailearekin etorkizunean?
|
convert_sync2=Sinkronizatu pasahitza Unix erabiltzailearekin etorkizunean?
|
||||||
convert_user=Unix erabiltzailea
|
convert_user=Unix erabiltzailea
|
||||||
convert_action=Egindako ekintza
|
convert_action=Egindako ekintza
|
||||||
convert_done= $1 erabiltzaile bihurtu dira, $2 baliogabeak dira, $3 lehendik daude, $4 baztertuta.
|
convert_done=$1 erabiltzaile bihurtu dira, $2 baliogabeak dira, $3 lehendik daude, $4 baztertuta.
|
||||||
convert_users=Erabiltzaileak bihurtzeko
|
convert_users=Erabiltzaileak bihurtzeko
|
||||||
|
|
||||||
sync_when=Noiz sinkronizatu
|
sync_when=Noiz sinkronizatu
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ log_onefactor=Utilisateur désinscrit $1 pour l'authentification à deux facteur
|
|||||||
convert_sync2=Synchroniser le mot de passe avec l'utilisateur Unix à l'avenir?
|
convert_sync2=Synchroniser le mot de passe avec l'utilisateur Unix à l'avenir?
|
||||||
convert_user=Utilisateur Unix
|
convert_user=Utilisateur Unix
|
||||||
convert_action=Action prise
|
convert_action=Action prise
|
||||||
convert_done= $1 utilisateurs convertis, $2 invalide, $3 existent déjà, $4 exclus.
|
convert_done=$1 utilisateurs convertis, $2 invalide, $3 existent déjà, $4 exclus.
|
||||||
convert_users=Utilisateurs à convertir
|
convert_users=Utilisateurs à convertir
|
||||||
|
|
||||||
sync_when=Quand synchroniser
|
sync_when=Quand synchroniser
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ gsave_edesc=Nevažeći opis - znak: nije dopušten
|
|||||||
convert_sync2=Sinkronizirati lozinku s Unix korisnikom u budućnosti?
|
convert_sync2=Sinkronizirati lozinku s Unix korisnikom u budućnosti?
|
||||||
convert_user=Unix korisnik
|
convert_user=Unix korisnik
|
||||||
convert_action=Poduzeta akcija
|
convert_action=Poduzeta akcija
|
||||||
convert_done= $1 korisnici su pretvorili, $2 nevaljani, $3 već postoje, $4 isključeno.
|
convert_done=$1 korisnici su pretvorili, $2 nevaljani, $3 već postoje, $4 isključeno.
|
||||||
convert_users=Korisnici koji žele pretvoriti
|
convert_users=Korisnici koji žele pretvoriti
|
||||||
|
|
||||||
sync_when=Kada se sinkronizirati
|
sync_when=Kada se sinkronizirati
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ save_enone=アドレスが入力されていません
|
|||||||
save_enet='$1' は有効なネットワークアドレスではありません
|
save_enet='$1' は有効なネットワークアドレスではありません
|
||||||
save_emask='$1' は有効なネットマスクではありません
|
save_emask='$1' は有効なネットマスクではありません
|
||||||
save_eip='$1' は完全なIPまたはネットワークアドレスではありません
|
save_eip='$1' は完全なIPまたはネットワークアドレスではありません
|
||||||
save_ehost= '$1'のIPアドレスがみつかりません
|
save_ehost='$1'のIPアドレスがみつかりません
|
||||||
save_elogouttime=非アクティブまたは非数値の非アクティブログアウト時間
|
save_elogouttime=非アクティブまたは非数値の非アクティブログアウト時間
|
||||||
save_eminsize=パスワードの最小の長さがないか、数値ではありません
|
save_eminsize=パスワードの最小の長さがないか、数値ではありません
|
||||||
save_edays=選択できる日はありません
|
save_edays=選択できる日はありません
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ acl_locale=ロケールを変更できますか?
|
|||||||
acl_pass=パスワード制限を変更できますか?
|
acl_pass=パスワード制限を変更できますか?
|
||||||
acl_sql=ユーザーおよびグループデータベースを構成できますか?
|
acl_sql=ユーザーおよびグループデータベースを構成できますか?
|
||||||
|
|
||||||
log_joingroup= $1 Webminユーザーをグループ $2 に追加しました
|
log_joingroup=$1 Webminユーザーをグループ $2 に追加しました
|
||||||
log_sql=変更されたユーザーおよびグループデータベース
|
log_sql=変更されたユーザーおよびグループデータベース
|
||||||
log_twofactor=登録済みユーザー $1 と2要素プロバイダー $2
|
log_twofactor=登録済みユーザー $1 と2要素プロバイダー $2
|
||||||
log_onefactor=二要素認証の登録解除ユーザー $1
|
log_onefactor=二要素認証の登録解除ユーザー $1
|
||||||
@@ -50,7 +50,7 @@ gsave_edesc=無効な説明-:文字は使用できません
|
|||||||
convert_sync2=将来的にUnixユーザーとパスワードを同期しますか?
|
convert_sync2=将来的にUnixユーザーとパスワードを同期しますか?
|
||||||
convert_user=Unixユーザー
|
convert_user=Unixユーザー
|
||||||
convert_action=実行されたアクション
|
convert_action=実行されたアクション
|
||||||
convert_done= $1 変換されたユーザー、 $2 無効、 $3 は既に存在し、 $4 除外。
|
convert_done=$1 変換されたユーザー、 $2 無効、 $3 は既に存在し、 $4 除外。
|
||||||
convert_users=変換するユーザー
|
convert_users=変換するユーザー
|
||||||
|
|
||||||
sync_when=同期するタイミング
|
sync_when=同期するタイミング
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ acl_locale=로케일을 변경할 수 있습니까?
|
|||||||
acl_pass=비밀번호 제한을 변경할 수 있습니까?
|
acl_pass=비밀번호 제한을 변경할 수 있습니까?
|
||||||
acl_sql=사용자 및 그룹 데이터베이스를 구성 할 수 있습니까?
|
acl_sql=사용자 및 그룹 데이터베이스를 구성 할 수 있습니까?
|
||||||
|
|
||||||
log_joingroup= $1 Webmin 사용자를 $2 그룹에 추가했습니다.
|
log_joingroup=$1 Webmin 사용자를 $2 그룹에 추가했습니다.
|
||||||
log_sql=변경된 사용자 및 그룹 데이터베이스
|
log_sql=변경된 사용자 및 그룹 데이터베이스
|
||||||
log_twofactor=2 단계 공급자 $2 에 등록 된 사용자 $1
|
log_twofactor=2 단계 공급자 $2 에 등록 된 사용자 $1
|
||||||
log_onefactor=이중 인증을위한 등록 해제 된 사용자 $1
|
log_onefactor=이중 인증을위한 등록 해제 된 사용자 $1
|
||||||
@@ -50,7 +50,7 @@ gsave_edesc=잘못된 설명-: 문자는 허용되지 않습니다
|
|||||||
convert_sync2=향후 Unix 사용자와 비밀번호를 동기화 하시겠습니까?
|
convert_sync2=향후 Unix 사용자와 비밀번호를 동기화 하시겠습니까?
|
||||||
convert_user=유닉스 사용자
|
convert_user=유닉스 사용자
|
||||||
convert_action=취한 조치
|
convert_action=취한 조치
|
||||||
convert_done= $1 사용자 변환, $2 유효하지 않음, $3 이 (가) 이미 존재 함, $4 는 제외되었습니다.
|
convert_done=$1 사용자 변환, $2 유효하지 않음, $3 이 (가) 이미 존재 함, $4 는 제외되었습니다.
|
||||||
convert_users=변환 할 사용자
|
convert_users=변환 할 사용자
|
||||||
|
|
||||||
sync_when=동기화시기
|
sync_when=동기화시기
|
||||||
@@ -130,7 +130,7 @@ make_err=사용자 및 그룹 테이블을 작성하지 못했습니다.
|
|||||||
make_exec=SQL $1 실행 중..
|
make_exec=SQL $1 실행 중..
|
||||||
make_failed=.. 작성 실패 : $1
|
make_failed=.. 작성 실패 : $1
|
||||||
make_done=.. 완료
|
make_done=.. 완료
|
||||||
make_still= $1 : 테이블 생성 후에도 몇 가지 문제가 발견되었습니다.
|
make_still=$1 : 테이블 생성 후에도 몇 가지 문제가 발견되었습니다.
|
||||||
|
|
||||||
makedn_title=LDAP DN 생성
|
makedn_title=LDAP DN 생성
|
||||||
makedn_eoc=구조적 객체 클래스가 없습니다!
|
makedn_eoc=구조적 객체 클래스가 없습니다!
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ cert_etempdir=Fajl ta 'ċertifikat mhux validu
|
|||||||
acl_title=Modulu ta 'Kontroll ta' l-Aċċess
|
acl_title=Modulu ta 'Kontroll ta' l-Aċċess
|
||||||
acl_title2=Għal $1 f ' $2
|
acl_title2=Għal $1 f ' $2
|
||||||
acl_title3=Għall-grupp $1 f ' $2
|
acl_title3=Għall-grupp $1 f ' $2
|
||||||
acl_options= $1 għażliet ta 'kontroll ta' aċċess
|
acl_options=$1 għażliet ta 'kontroll ta' aċċess
|
||||||
acl_config=Tista 'teditja l-konfigurazzjoni tal-modulu?
|
acl_config=Tista 'teditja l-konfigurazzjoni tal-modulu?
|
||||||
acl_reset=Irrisettja għal Aċċess sħiħ
|
acl_reset=Irrisettja għal Aċċess sħiħ
|
||||||
acl_rbac=Tikseb issettjar ta 'kontroll ta' aċċess minn RBAC?
|
acl_rbac=Tikseb issettjar ta 'kontroll ta' aċċess minn RBAC?
|
||||||
@@ -291,14 +291,14 @@ convert_emin=UID minimu invalidu
|
|||||||
convert_emax=UID massimu invalidu
|
convert_emax=UID massimu invalidu
|
||||||
convert_ewgroup=L-ebda grupp ta 'Webmin bħal dan
|
convert_ewgroup=L-ebda grupp ta 'Webmin bħal dan
|
||||||
convert_ewgroup2=M’intix permess li tassenja utenti ġodda lil dan il-grupp
|
convert_ewgroup2=M’intix permess li tassenja utenti ġodda lil dan il-grupp
|
||||||
convert_skip= $1 qed jinqabeż
|
convert_skip=$1 qed jinqabeż
|
||||||
convert_exists= $1 diġà jeżisti
|
convert_exists=$1 diġà jeżisti
|
||||||
convert_invalid= $1 mhuwiex isem tal-utent tal-Webmin validu
|
convert_invalid=$1 mhuwiex isem tal-utent tal-Webmin validu
|
||||||
convert_added= $1 qed jiżdied
|
convert_added=$1 qed jiżdied
|
||||||
convert_msg=Jikkonvertu l-utenti Unix...
|
convert_msg=Jikkonvertu l-utenti Unix...
|
||||||
convert_user=Utent Unix
|
convert_user=Utent Unix
|
||||||
convert_action=Azzjoni meħuda
|
convert_action=Azzjoni meħuda
|
||||||
convert_done= $1 utenti kkonvertiti, $2 invalidi, $3 diġà jeżistu, $4 eskluż.
|
convert_done=$1 utenti kkonvertiti, $2 invalidi, $3 diġà jeżistu, $4 eskluż.
|
||||||
convert_users=Utenti biex jikkonvertu
|
convert_users=Utenti biex jikkonvertu
|
||||||
|
|
||||||
sync_title=Sinkronizzazzjoni tal-Utent Unix
|
sync_title=Sinkronizzazzjoni tal-Utent Unix
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ cert_etempdir=Ongeldig certificaatbestand
|
|||||||
|
|
||||||
acl_locale=Kan de locatie worden gewijzigd?
|
acl_locale=Kan de locatie worden gewijzigd?
|
||||||
|
|
||||||
log_joingroup= $1 Webmin-gebruikers toegevoegd aan $2
|
log_joingroup=$1 Webmin-gebruikers toegevoegd aan $2
|
||||||
log_twofactor=Ingeschreven gebruiker $1 bij two-factor provider $2
|
log_twofactor=Ingeschreven gebruiker $1 bij two-factor provider $2
|
||||||
log_onefactor=Uitgeschreven gebruiker $1 voor tweefactorauthenticatie
|
log_onefactor=Uitgeschreven gebruiker $1 voor tweefactorauthenticatie
|
||||||
|
|
||||||
|
|||||||
767
acl/lang/pl
767
acl/lang/pl
@@ -1,414 +1,435 @@
|
|||||||
index_title=Użytkownicy Webmina
|
index_title=Użytkownicy Webmin
|
||||||
index_user=Użytkownik
|
index_user=Użytkownik
|
||||||
index_modules=Moduły
|
index_modules=Moduły
|
||||||
index_create=Utwórz nowego użytkownika Webmina
|
index_create=Utwórz nowego uprzywilejowanego użytkownika.
|
||||||
index_convert=Przekształć użytkowników Unixa w użytkowników Webmina
|
index_screate=Utwórz nowego bezpiecznego użytkownika.
|
||||||
index_cert=Poproś o certyfikat SSL
|
index_convert=Konwertuj Użytkowników Unix na Webmin
|
||||||
index_twofactor=Dwustopniowe uwierzytelnianie
|
index_cert=Zażądaj Certyfikatu SSL
|
||||||
index_certmsg=Naciśnij ten przycisk, aby poprosić o certyfikat SSL, który pozwoli Ci się bezpiecznie zalogować do Webmina bez konieczności podawania nazwy użytkownika i hasła.
|
index_twofactor=Uwierzytelnianie Dwuskładnikowe
|
||||||
index_return=listy użytkowników
|
index_certmsg=Kliknij ten przycisk, aby zażądać certyfikatu SSL, który pozwoli na bezpieczne logowanie do Webmin bez potrzeby wprowadzania nazwy użytkownika i hasła.
|
||||||
|
index_return=lista użytkowników
|
||||||
index_none=Brak
|
index_none=Brak
|
||||||
index_edit=Zmień ACL dla modułu:
|
index_edit=Edytuj ACL modułu:
|
||||||
index_global=Ogólne ACL-e
|
index_global=Globalny ACL
|
||||||
index_users=Użytkownicy Webmina
|
index_users=Użytkownicy Webmin
|
||||||
index_groups=Grupy Webmina
|
index_groups=Grupy Webmin
|
||||||
index_group=Grupa
|
index_group=Grupa
|
||||||
index_nousers=Nie zdefiniowano modyfikowalnych użytkowników Webmina.
|
index_nousers=Brak zdefiniowanych edytowalnych użytkowników Webmin.
|
||||||
index_nogroups=Nie zdefiniowano modyfikowalnych grup Webmina.
|
index_nogroups=Brak zdefiniowanych grup Webmin.
|
||||||
index_gcreate=Utwórz nową grupę Webmina
|
index_gcreate=Utwórz nową grupę Webmin.
|
||||||
index_members=Członkowie
|
index_members=Członkowie
|
||||||
index_modgroups=Moduły z grupy $1
|
index_modgroups=Moduły z grupy $1
|
||||||
index_sync=Konfiguruj synchronizację użytkowników Unixa
|
index_sync=Konfiguruj Synchronizację Użytkowników Unix
|
||||||
index_unix=Konfiguruj autoryzację użytkowników Unixa
|
index_unix=Konfiguruj Uwierzytelnianie Użytkowników Unix
|
||||||
index_sessions=Wyświetl sesje logowania
|
index_sessions=Wyświetl Sesje Logowania
|
||||||
index_rbac=Ustawienia RBAC
|
index_rbac=Skonfiguruj RBAC
|
||||||
index_delete=Usuń zaznaczone
|
index_delete=Usuń Zaznaczone
|
||||||
index_joingroup=Dodaj do grupy:
|
index_joingroup=Dodaj do Grupy:
|
||||||
index_eulist=Nie udało się pobrać listy użytkowników : $1
|
index_eulist=Nie udało się pobrać listy użytkowników: $1
|
||||||
index_eglist=Nie udało się pobrać listy grup : $1
|
index_eglist=Nie udało się pobrać listy grup: $1
|
||||||
|
|
||||||
edit_title=Modyfikuj użytkownika Webmina
|
edit_title=Edytuj Użytkownika Webmin
|
||||||
edit_title2=Nowy użytkownik Webmina
|
edit_title2=Utwórz Użytkownika Webmin
|
||||||
edit_readonly=Ten użytkownik Webmina nie powinien być edytowany jeśli jest zarządzany przez moduł $1. Jeśli mimo wszystko chcesz edytować użytkownika <a href='$2'>Kliknij tutaj</a> - zauważ jednak, że ręczne zmiany mogą zostać nadpisane!
|
edit_title3=Utwórz Bezpiecznego Użytkownika Webmin
|
||||||
edit_rights=Prawa dostępu dla użytkownika Webmina
|
edit_readonly=Tego użytkownika Webmin nie należy edytować, ponieważ jest zarządzany przez moduł $1. <a href='$2'>Kliknij tutaj</a>, aby pominąć to ostrzeżenie i edytować użytkownika mimo to – pamiętaj jednak, że wszelkie ręczne zmiany mogą zostać nadpisane!
|
||||||
|
edit_rights=Prawa dostępu użytkownika Webmin
|
||||||
edit_user=Nazwa użytkownika
|
edit_user=Nazwa użytkownika
|
||||||
edit_cloneof=Duplikacja użytkownika Webmina
|
edit_cloneof=Klonowanie użytkownika Webmin
|
||||||
edit_real=Prawdziwa nazwa
|
edit_real=Imię i nazwisko
|
||||||
edit_group=Członek grupy
|
edit_group=Członek grupy
|
||||||
edit_pass=Hasło
|
edit_pass=Hasło
|
||||||
edit_same=Uniksowe
|
edit_same=Takie samo jak Unix
|
||||||
edit_lock=Brak akceptacji hasła
|
edit_lock=Brak akceptowanego hasła
|
||||||
edit_pam=Autoryzacja przez PAM
|
edit_pam=Uwierzytelnianie PAM
|
||||||
edit_unix=Uwierzytelnienie Unixowe
|
edit_unix=Uwierzytelnianie Unix
|
||||||
edit_extauth=Zewnętrzny program uwierzytelniający
|
edit_extauth=Zewnętrzny program uwierzytelniający
|
||||||
edit_dont=Nie zmieniaj
|
edit_dont=Nie zmieniaj
|
||||||
edit_set=Ustaw
|
edit_set=Ustaw na
|
||||||
edit_passlocked=Hasło nie było zmieniane przez $1 dni - konto zablokowane!
|
edit_passlocked=Hasło nie zostało zmienione przez $1 dni – konto zablokowane!
|
||||||
edit_passmax=Hasło nie było zmieniane przez $1 dni - trzeba je zmienić przy następnym logowaniu
|
edit_passmax=Hasło nie zostało zmienione przez $1 dni – musi zostać zmienione przy następnym logowaniu
|
||||||
edit_passold=Hasło było ostatnio zmieniane $1 dni temu
|
edit_passold=Hasło zostało ostatnio zmienione $1 dni temu
|
||||||
edit_passtoday=Hasło było zmienione mniej niż dzień temu.
|
edit_passtoday=Hasło zostało zmienione mniej niż dzień temu
|
||||||
edit_modules=Moduły
|
edit_modules=Moduły
|
||||||
edit_clone=Kopiuj
|
edit_clone=Klonuj
|
||||||
edit_twofactor=Typ dwustopniowego uwierzetylniania
|
edit_twofactor=Typ uwierzytelniania dwuskładnikowego
|
||||||
edit_twofactorprov=Używa $1 z ID $2
|
edit_twofactorprov=Używanie dostawcy $1 z ID $2
|
||||||
edit_twofactorcancel=Usuń wymaganie dwustopniowego uwierzytelniania
|
edit_twofactorcancel=Usuń wymóg uwierzytelniania dwuskładnikowego
|
||||||
edit_twofactornone=Nic nie ustawiono
|
edit_twofactornone=Brak skonfigurowanego
|
||||||
edit_twofactoradd=Włącz dwustopniowe uwierzytelnianie dla użytkownika
|
edit_twofactoradd=Włącz uwierzytelnianie dwuskładnikowe dla użytkownika
|
||||||
edit_lang=Język
|
edit_lang=Język
|
||||||
edit_notabs=Klasyfikować moduły?
|
edit_locale=Ustawienia regionalne
|
||||||
edit_logout=Okres braku aktywności
|
edit_notabs=Kategoryzuj moduły?
|
||||||
|
edit_logout=Czas bezczynności przed wylogowaniem
|
||||||
edit_mins=minut
|
edit_mins=minut
|
||||||
edit_chars=znaków
|
edit_chars=znaków
|
||||||
edit_minsize=Minimalna długość hasła
|
edit_minsize=Minimalna długość hasła
|
||||||
edit_nochange=Wymusić dni zmiany hasła?
|
edit_nochange=Wymusić zmianę hasła po określonej liczbie dni?
|
||||||
edit_cert=Nazwa certyfikatu SSL
|
edit_cert=Nazwa certyfikatu SSL
|
||||||
edit_none=Brak
|
edit_none=Brak
|
||||||
edit_ips=Kontrola dostępu według adresu IP
|
edit_ips=Kontrola dostępu IP
|
||||||
edit_all=Pozwól z dowolnego adresu
|
edit_all=Zezwalaj z wszystkich adresów
|
||||||
edit_allow=Pozwól tylko z adresów znajdujących się na liście
|
edit_allow=Zezwalaj tylko z wymienionych adresów
|
||||||
edit_deny=Odmów dla adresów znajdujących się na liście
|
edit_deny=Blokuj z wymienionych adresów
|
||||||
edit_ipdesc=Kontrola dostępu według adresu IP na poziomie użytkownika działa w ten sam sposób, jak ogólna kontrola dostępu po IP w module <tt>Konfiguracja Webmina</tt>. Tzn. te reguły mają zastosowanie tylko jeśli użytkownik przejdzie najpierw przez kontrolę ogólną.
|
edit_ipdesc=Kontrola dostępu IP użytkownika działa w taki sam sposób, jak globalna kontrola dostępu IP w module Konfiguracja Webmin. Tylko jeśli użytkownik przejdzie globalne kontrole, zostaną również sprawdzone te tutaj.
|
||||||
edit_skill=Poziom umiejętności
|
edit_skill=Poziom umiejętności
|
||||||
edit_risk=Poziom ryzyka
|
edit_risk=Poziom ryzyka
|
||||||
edit_risk_high=Super użytkownik
|
edit_risk_high=Super użytkownik
|
||||||
edit_risk_medium=Administrator
|
edit_risk_medium=Użytkownik administracyjny
|
||||||
edit_risk_low=Zwykły użytkownik
|
edit_risk_low=Normalny użytkownik
|
||||||
edit_groupmods=(Dodatkowo do modułów z grupy)
|
edit_groupmods=(Oprócz modułów z grupy)
|
||||||
edit_euser=Nie masz uprawnień do zmiany danych dla tego użytkownika
|
edit_euser=Nie masz uprawnień do edycji tego użytkownika
|
||||||
edit_egone=Wybrany użytkownik nie istnieje!
|
edit_egone=Wybrany użytkownik już nie istnieje!
|
||||||
edit_ecreate=Nie masz uprawnień do tworzenia użytkowników
|
edit_ecreate=Nie masz uprawnień do tworzenia użytkowników
|
||||||
edit_theme=Osobisty temat UI
|
edit_theme=Osobisty motyw UI
|
||||||
edit_themeglobal=Z konfiguracji Webmina
|
edit_themeglobal=Z Konfiguracji Webmin
|
||||||
edit_themedef=Stary temat Webmina
|
edit_themedef=Motyw Legacy
|
||||||
edit_overlay=Motyw osobisty
|
edit_overlay=Osobista nakładka na motyw
|
||||||
edit_overlayglobal=Brak - użyj motywu domyślnego
|
edit_overlayglobal=Brak - używaj domyślnych ustawień motywu
|
||||||
edit_log=Wyświetl logi
|
edit_log=Wyświetl logi
|
||||||
edit_selall=Zaznacz wszystko
|
edit_selall=Zaznacz wszystkie
|
||||||
edit_invert=Odwróć zaznaczenie
|
edit_invert=Odwróć zaznaczenie
|
||||||
edit_hide=Ukryj nieużywane
|
edit_hide=Ukryj nieużywane
|
||||||
edit_switch=Przełącz na Użytkownika
|
edit_switch=Przełącz na użytkownika
|
||||||
edit_return=Użytkownik Webmina
|
edit_return=Użytkownik Webmin
|
||||||
edit_return2=Grupa Webmina
|
edit_return2=Grupa Webmin
|
||||||
edit_rbacdeny=Tryb dostępu RBAC
|
edit_rbacdeny=Tryb dostępu RBAC
|
||||||
edit_rbacdeny0=RBAC kontroluje ACL tylko wybranych modułów
|
edit_rbacdeny0=RBAC kontroluje tylko wybrane ACL modułów
|
||||||
edit_rbacdeny1=RBAC kontroluje wszystkie moduły i ACL
|
edit_rbacdeny1=RBAC kontroluje wszystkie moduły i ACL
|
||||||
edit_global=Uprawnienia dla wszystkich modułów
|
edit_global=Uprawnienia dla wszystkich modułów
|
||||||
edit_templock=Tymczasowo zablokowany
|
edit_templock=Tymczasowo zablokowane
|
||||||
edit_temppass=Zastosuj zmiany przy następnym logowaniu
|
edit_temppass=Wymuś zmianę przy następnym logowaniu
|
||||||
edit_days=Dozwolone dni tygodnia
|
edit_days=Dozwolone dni tygodnia
|
||||||
edit_alldays=Codziennie
|
edit_alldays=Każdy dzień
|
||||||
edit_seldays=Tylko wybrane dni...
|
edit_seldays=Tylko wybrane dni ..
|
||||||
edit_hours=Dozwolone godziny w ciągu dnia
|
edit_hours=Dozwolone godziny dnia
|
||||||
edit_allhours=Bez ograniczeń
|
edit_allhours=O dowolnej porze
|
||||||
edit_selhours=Od $1:$2 do $3:$4
|
edit_selhours=Od $1:$2 do $3:$4
|
||||||
edit_ui=Opcje interfejsu użytkownika
|
edit_ui=Opcje interfejsu użytkownika
|
||||||
edit_security=Opcje bezpieczeństwa i ograniczeń
|
edit_security=Opcje bezpieczeństwa i ograniczeń
|
||||||
edit_mods=Dostępne moduły Webmina
|
edit_mods=Dostępne moduły Webmin
|
||||||
edit_modsg=Dostępne moduły Webmina (dodatki do tych z grupy)
|
edit_modsg=Dostępne moduły Webmin (oprócz tych z grupy)
|
||||||
edit_proto=Typ magazynu
|
edit_proto=Typ przechowywania
|
||||||
edit_proto_mysql=Baza MySQL
|
edit_proto_mysql=Baza danych MySQL
|
||||||
edit_proto_postgresql=Baza PostgreSQL
|
edit_proto_postgresql=Baza danych PostgreSQL
|
||||||
edit_proto_ldap=Serwer LDAP
|
edit_proto_ldap=Serwer LDAP
|
||||||
edit_proto_=Pliki lokalne
|
edit_proto_=Pliki lokalne
|
||||||
|
edit_safe=Poziom uprawnień
|
||||||
|
edit_safe0=Nieograniczone
|
||||||
|
edit_safe1=Tylko bezpieczne moduły
|
||||||
|
edit_unsafe=Resetuj do nieograniczonego
|
||||||
|
|
||||||
save_err=Nie udało się zachować użytkownika
|
save_err=Nie udało się zapisać użytkownika
|
||||||
save_ename='$1' nie jest prawidłową nazwą użytkownika
|
save_ename='$1' nie jest poprawną nazwą użytkownika
|
||||||
|
save_eunixname=Użytkownik '$1' nie jest użytkownikiem Unix, więc nie można go użyć w trybie bezpiecznym
|
||||||
save_enamewebmin=Nazwa użytkownika 'webmin' jest zarezerwowana do użytku wewnętrznego
|
save_enamewebmin=Nazwa użytkownika 'webmin' jest zarezerwowana do użytku wewnętrznego
|
||||||
save_edup=Użytkownik '$1' już istnieje
|
save_edup=Nazwa użytkownika '$1' jest już w użyciu
|
||||||
save_eoverlay=Nie można wybrać nakładania tematu dopóki temat jest
|
save_eoverlay=Nakładka na motyw nie może zostać wybrana, jeśli motyw nie został wybrany
|
||||||
save_edeny=nie możesz zablokować sobie dostępu do modułu <tt>Użytkownicy Webmina</tt>
|
save_edeny=Nie możesz odmówić sobie dostępu do modułu Użytkownicy Webmin
|
||||||
save_eos=Opcja hasło "Uniksowe" nie jest wspomagana przez twój system operacyjny.
|
save_eos=Opcja "Takie samo jak Unix" dla hasła nie jest obsługiwana w Twoim systemie operacyjnym.
|
||||||
save_emd5=Opcja hasło "Uniksowe" nie może być stosowana na systemach z kodowaniem haseł MD5
|
save_emd5=Opcja "Takie samo jak Unix" dla hasła nie może być używana w systemach z szyfrowaniem MD5
|
||||||
save_eunix=Użytkownik uniksowy '$1' nie istnieje
|
save_eunix=Użytkownik Unix '$1' nie istnieje
|
||||||
save_emod=Nie możesz przekazać uprawnień do modułu '$1'
|
save_emod=Nie możesz przyznać dostępu do modułu '$1'
|
||||||
save_ecreate=Nie masz uprawnień do tworzenia użytkowników
|
save_ecreate=Nie masz uprawnień do tworzenia użytkowników
|
||||||
save_euser=Nie masz uprawnień do modyfikacji tego użytkownika
|
save_euser=Nie masz uprawnień do edycji tego użytkownika
|
||||||
save_ecolon=Hasła nie mogą zawierać znaku ':'
|
save_ecolon=Hasła nie mogą zawierać znaku :
|
||||||
save_epass=Niepoprawne hasło: $1
|
save_epass=Hasło jest nieprawidłowe: $1
|
||||||
save_eself=Twój obecny adres IP ($1) zostałby zablokowany
|
save_eself=Twój obecny adres IP ($1) zostałby zablokowany
|
||||||
save_epam=Autoryzacja poprzez PAM nie jest dostępna, gdyż nie zainstalowano modułu Perla <tt>Authen::PAM</tt> lub nie pracuje on poprawnie.
|
save_epam=Uwierzytelnianie PAM nie jest dostępne, ponieważ moduł Perl <tt>Authen::PAM</tt> nie jest zainstalowany lub nie działa poprawnie.
|
||||||
save_epam2=Możesz użyć modułu Webmina o nazwie Moduły Perla, aby <a href='$1'>pobrać i zainstalować Authen::PAM</a>.
|
save_epam2=Możesz użyć modułu Perl Modules Webmina, aby <a href='$1'>pobrać i zainstalować Authen::PAM</a> teraz.
|
||||||
save_egroup=Nie masz uprawnień do przyporządkowywania do tej grupy
|
save_egroup=Nie masz uprawnień do przypisania do tej grupy
|
||||||
save_enone=Nie podano adresów
|
save_enone=Nie wprowadzono adresów
|
||||||
save_enet='$1' nie jest poprawnym adresem sieciowym
|
save_enet='$1' nie jest prawidłowym adresem sieciowym
|
||||||
save_emask='$1' nie jest poprawną maską sieciową
|
save_emask='$1' nie jest prawidłową maską sieci
|
||||||
save_eip='$1' nie jest kompletnym adresem sieci lub IP
|
save_eip='$1' nie jest kompletnym adresem IP ani sieciowym
|
||||||
save_ehost=Nie znaleziono adresu IP dla '$1'
|
save_ehost=Nie udało się znaleźć adresu IP dla '$1'
|
||||||
save_elogouttime=Brakujący lub nie numeryczny czas braku aktywności, po którym następuje wylogowanie
|
save_elogouttime=Brakujący lub niepoprawny czas bezczynności do wylogowania
|
||||||
save_eminsize=Brakująca lub nienumeryczna minimalna długość hasła
|
save_eminsize=Brakująca lub niepoprawna minimalna długość hasła
|
||||||
save_edays=Nie wybrano dni dostępu
|
save_edays=Nie wybrano dni dozwolonych
|
||||||
save_ehours=Brakujący lub nieprawidłowy czas dostępu
|
save_ehours=Brakujące lub niepoprawne godziny dostępu
|
||||||
save_ehours2=Czas rozpoczęcia dostępu musi być przed końcem
|
save_ehours2=Czas rozpoczęcia musi być wcześniejszy niż czas zakończenia
|
||||||
save_etemp=Nie można użyć opcji wymuszenia zmiany hasła przy następnym logowaniu dopóki włączone jest <a href='$1'>pytanie użytkowników o podanie nowego hasła</a>
|
save_etemp=Opcja wymuszenia zmiany hasła przy następnym logowaniu nie może być użyta, jeśli <a href='$1'>wyświetlanie monitu o nowe hasła</a> nie jest włączone
|
||||||
|
|
||||||
delete_err=Nie udało się usunąć użytkownika
|
delete_err=Nie udało się usunąć użytkownika
|
||||||
delete_eself=Nie możesz usunąć samego siebie
|
delete_eself=Nie możesz usunąć siebie
|
||||||
delete_ecannot=Nie masz zezwolenia na usuwanie użytkowników
|
delete_ecannot=Nie masz uprawnień do usuwania użytkowników
|
||||||
delete_euser=Nie masz zezwolenia na usunięcie tego użytkownika
|
delete_euser=Nie masz uprawnień do usunięcia tego użytkownika
|
||||||
delete_eanonuser=Ten użytkownik jest wykorzystywany przy anonimowym dostępie do modułu
|
delete_eanonuser=Ten użytkownik jest używany do anonimowego dostępu do modułów
|
||||||
|
|
||||||
cert_title=Poproś o certyfikat
|
cert_title=Żądanie certyfikatu
|
||||||
cert_issue=Certyfikat wydany
|
cert_issue=Wystaw certyfikat
|
||||||
cert_header=Dane nowego certyfikatu
|
cert_header=Szczegóły nowego certyfikatu
|
||||||
cert_msg=Formularz umożliwia ci wystawienie certyfikatu SSL, który bezpiecznie zalogować do Webmina bez konieczności podawania nazwy użytkownika i hasła. Takie rozwiązanie jest bezpieczniejsze, ale uniemożliwia przełączanie się użytkownika Webmina po wlogowaniu.
|
cert_msg=Ten formularz pozwala na zażądanie certyfikatu klienta SSL, który w przyszłości będzie używany do uzyskiwania dostępu do Webmina zamiast nazwy użytkownika i hasła. Jest to bardziej bezpieczne, ale ponieważ uwierzytelnianie odbywa się automatycznie, nie będziesz w stanie przełączyć się na innego użytkownika podczas korzystania z certyfikatu.
|
||||||
cert_ebrowser=Webmin nie wie jak wystawiać certyfikaty klienta dla Twojej przeglądarki ($1)
|
cert_ebrowser=Webmin nie wie, jak wystawić certyfikaty klienta dla Twojej przeglądarki ($1)
|
||||||
cert_cn=Twoje imię
|
cert_cn=Twoje imię i nazwisko
|
||||||
cert_email=Adres e-mail
|
cert_email=Adres e-mail
|
||||||
cert_ou=Dział
|
cert_ou=Dział
|
||||||
cert_o=Organizacja
|
cert_o=Organizacja
|
||||||
cert_sp=Stan
|
cert_sp=Województwo
|
||||||
cert_c=Kod kraju
|
cert_c=Kod kraju
|
||||||
cert_key=Długość klucza
|
cert_key=Rozmiar klucza
|
||||||
cert_done=Twój certyfikat dla $1 został poprawnie wygenerowany.
|
cert_done=Twój certyfikat dla $1 został pomyślnie wygenerowany.
|
||||||
cert_pickup=<a href='$1'>Kliknij tutaj, aby pobrać swój certyfikat i zainstalować go w przeglądarce</a>
|
cert_pickup=<a href='$1'>Kliknij tutaj, aby pobrać swój certyfikat i zainstalować go w przeglądarce</a>
|
||||||
cert_install=Zainstaluj swój certyfikat w przeglądarce
|
cert_install=Zainstaluj certyfikat w przeglądarce
|
||||||
cert_ekey=Twoja przeglądarka nie zaakceptowała nowego klucza SSL - być może nie obsługuje ona certyfikatów SSL po stronie klienta.
|
cert_ekey=Nie przesłano nowego klucza SSL z przeglądarki - być może nie obsługuje ona certyfikatów klienta SSL.
|
||||||
cert_eca=Nie udało się ustawić centrum autoryzacji: $1
|
cert_eca=Nie udało się skonfigurować urzędu certyfikacji: $1
|
||||||
cert_already=Uwaga - już używasz certyfikatu $1.
|
cert_already=Ostrzeżenie - już używasz certyfikatu $1.
|
||||||
cert_etempdir=Błędny plik certyfikatu
|
cert_etempdir=Nieprawidłowy plik certyfikatu
|
||||||
|
|
||||||
acl_title=Kontrola dostępu do modułu
|
acl_title=Dostęp do modułów
|
||||||
acl_title2=$2 dla użytkownika $1
|
acl_title2=Dla $1 w $2
|
||||||
acl_title3=$2 dla grupy $1
|
acl_title3=Dla grupy $1 w $2
|
||||||
acl_options=Opcje kontroli dostępu do $1
|
acl_options=Opcje kontroli dostępu $1
|
||||||
acl_config=Czy może zmieniać konfigurację modułu?
|
acl_config=Może edytować konfigurację modułu?
|
||||||
acl_reset=Zresetuj do pełnego dostępu
|
acl_reset=Zresetuj do pełnego dostępu
|
||||||
acl_rbac=Pobrać ustawienia kontroli dostępu z RBAC?
|
acl_rbac=Pobierz ustawienia dostępu z RBAC?
|
||||||
acl_rbacyes=Tak (zastępuje poniższe ustawienia)
|
acl_rbacyes=Tak (nadpisuje ustawienia poniżej)
|
||||||
|
|
||||||
acl_uall=Wszystkich użytkowników
|
acl_uall=Wszyscy użytkownicy
|
||||||
acl_uthis=Ten użytkownik
|
acl_uthis=Ten użytkownik
|
||||||
acl_usel=Wybranych ..
|
acl_usel=Wybrani użytkownicy ..
|
||||||
acl_gr=Członków $1
|
acl_gr=Członkowie $1
|
||||||
acl_users=Użytkownicy, których można zmieniać
|
acl_users=Użytkownicy, którzy mogą być edytowani
|
||||||
acl_mods=Czy może zapewnić dostęp do
|
acl_mods=Może przyznawać dostęp do
|
||||||
acl_all=Wszystkich modułów
|
acl_all=Wszystkie moduły
|
||||||
acl_own=Tylko do własnych modułów
|
acl_own=Tylko jego własne moduły
|
||||||
acl_sel=Wybranych modułów ..
|
acl_sel=Wybrane moduły ..
|
||||||
acl_create=Czy może tworzyć nowych użytkowników?
|
acl_create=Może tworzyć nowych użytkowników?
|
||||||
acl_delete=Czy może usuwać użytkowników?
|
acl_delete=Może usuwać użytkowników?
|
||||||
acl_rename=Czy może zmieniać nazwy użytkowników?
|
acl_rename=Może zmieniać nazwy użytkowników?
|
||||||
acl_acl=Czy może zmieniać prawa dostępu do modułu?
|
acl_acl=Może edytować kontrolę dostępu do modułów?
|
||||||
acl_lang=Czy może zmieniać język?
|
acl_lang=Może zmieniać język?
|
||||||
acl_chcert=Czy może zmieniać nazwę certyfikatu SSL?
|
acl_locale=Może zmieniać lokalizację?
|
||||||
acl_euser=Nie masz uprawnień do edycji ACLi dla tego użytkownika
|
acl_chcert=Może zmieniać nazwę certyfikatu SSL?
|
||||||
acl_egroup=Nie masz uprawnień do edycji ACLi dla grupy
|
acl_euser=Nie masz uprawnień do edytowania kontroli dostępu dla tego użytkownika
|
||||||
acl_emod=Nie masz uprawnień do edycji ACL dla tego modułu
|
acl_egroup=Nie masz uprawnień do edytowania kontroli dostępu grup
|
||||||
acl_others=Czy może widzieć niedostępne moduły?
|
acl_emod=Nie masz uprawnień do edytowania kontroli dostępu dla tego modułu
|
||||||
acl_cert=Czy może poprosić o certyfikat?
|
acl_others=Może widzieć niedostępne moduły?
|
||||||
acl_err=Nie udało się zapisać opcji ACLi
|
acl_cert=Może żądać certyfikatu?
|
||||||
acl_groups=Czy może zmieniać grupy?
|
acl_err=Nie udało się zapisać kontroli dostępu
|
||||||
acl_gassign=Czy może przyporządkowywać użytkowników do grup
|
acl_groups=Może edytować grupy?
|
||||||
acl_gall=Wszystkich grup
|
acl_gassign=Może przypisywać użytkowników do grup
|
||||||
acl_gsel=Wybranych ..
|
acl_gall=Wszystkie grupy
|
||||||
acl_gnone=Żadnej
|
acl_gsel=Wybrane ..
|
||||||
|
acl_gnone=Brak
|
||||||
acl_perms=Nowo utworzeni użytkownicy otrzymują
|
acl_perms=Nowo utworzeni użytkownicy otrzymują
|
||||||
acl_perms_1=Takie, jakie ma tworzący
|
acl_perms_1=Taką samą kontrolę dostępu do modułów jak twórca
|
||||||
acl_perms_0=Domyślna (nielimitowana) kontrola dostępu do modułu
|
acl_perms_0=Domyślną (nieograniczoną) kontrolę dostępu do modułów
|
||||||
acl_sync=Czy może konfigurować synchronizację użytkowników?
|
acl_sync=Może konfigurować synchronizację użytkowników?
|
||||||
acl_unix=Czy może konfigurować autoryzację użytkowników?
|
acl_unix=Może konfigurować uwierzytelnianie Unix?
|
||||||
acl_sessions=Czy może wyświetlać i anulować sesje logowania?
|
acl_sessions=Może przeglądać i anulować sesje logowania?
|
||||||
acl_cats=Czy może zmieniać kategoryzację?
|
acl_cats=Może zmieniać kategoryzację?
|
||||||
acl_theme=Czy może zmieniać osobisty motyw?
|
acl_theme=Może zmieniać swój motyw?
|
||||||
acl_ips=Czy może zmieniać kontrolę dostępu IP?
|
acl_ips=Może zmieniać kontrolę dostępu IP?
|
||||||
acl_switch=Czy może przełączać się na innego użytkownika?
|
acl_switch=Może przełączać się na innych użytkowników?
|
||||||
acl_times=Czy może zmieniać dozwolone godziny logowania?
|
acl_times=Może zmieniać dozwolone czasy logowania?
|
||||||
acl_pass=Może zmieniać ograniczenia hasła?
|
acl_pass=Może zmieniać ograniczenia haseł?
|
||||||
acl_sql=Może konfigurować bazę użytkowników i grup?
|
acl_sql=Może konfigurować bazę danych użytkowników i grup?
|
||||||
|
|
||||||
log_modify=Zmodyfikowano użytkownika Webmina $1
|
log_modify=Zmodyfikowano użytkownika Webmin $1
|
||||||
log_rename=Zmieniono nazwę użytkownika Webmina $1 na $2
|
log_rename=Zmieniono nazwę użytkownika Webmin $1 na $2
|
||||||
log_create=Utworzono użytkownika Webmina $1
|
log_create=Utworzono użytkownika Webmin $1
|
||||||
log_clone=Powielono użytkownika Webmina z $1 na $2
|
log_clone=Sklonowano użytkownika Webmin $1 na $2
|
||||||
log_delete=Usunięto użytkownika Webmina $1
|
log_delete=Usunięto użytkownika Webmin $1
|
||||||
log_acl=Zmodyfikowano dostęp dla $1 do $2
|
log_acl=Zaktualizowano dostęp dla $1 w $2
|
||||||
log_reset=Zresetowano dostęp dla $1 w $2
|
log_reset=Zresetowano dostęp dla $1 w $2
|
||||||
log_cert=Utworzono certyfikat dla użytkownika $1
|
log_cert=Wystawiono certyfikat dla użytkownika $1
|
||||||
log_modify_g=Zmodyfikowano grupę Webmina $1
|
log_modify_g=Zmodyfikowano grupę Webmin $1
|
||||||
log_rename_g=Zmieniono nazwę grupy Webmina $1 na $2
|
log_rename_g=Zmieniono nazwę grupy Webmin $1 na $2
|
||||||
log_create_g=Utworzono grupę Webmina $1
|
log_create_g=Utworzono grupę Webmin $1
|
||||||
log_delete_g=Usunięto grupę Webmina $1
|
log_delete_g=Usunięto grupę Webmin $1
|
||||||
log_switch=Przełączono do użytkownika $1.
|
log_switch=Przełączono na użytkownika Webmin $1
|
||||||
log_delete_users=Usunięto $1 użytkowników Webmina
|
log_delete_users=Usunięto $1 użytkowników Webmin
|
||||||
log_delete_groups=Usunięto $1 grup Webmina
|
log_delete_groups=Usunięto $1 grup Webmin
|
||||||
log_joingroup=Dodano $1 użytkowników Webmina do grupy $2
|
log_joingroup=Dodano $1 użytkowników Webmin do grupy $2
|
||||||
log_pass=Zmieniono ustawienia dotyczące hasła
|
log_pass=Zmieniono ograniczenia haseł
|
||||||
log_unix=Zmieniono uwierzytelnienie użytkownika unixa
|
log_unix=Zmieniono uwierzytelnianie użytkowników Unix
|
||||||
log_sync=Zmieniono synchronizację użytkownika unixa
|
log_sync=Zmieniono synchronizację użytkowników Unix
|
||||||
log_sql=Zmieniono bazę danych użytkownika i grupy
|
log_sql=Zmieniono bazę danych użytkowników i grup
|
||||||
log_twofactor=Użytkownik $1 uczestniczy w dwustopniowym uwierzytelnianiu u dostawcy: $2
|
log_twofactor=Zarejestrowano użytkownika $1 w dostawcy uwierzytelniania dwuskładnikowego $2
|
||||||
log_onefactor=Użytkownik $1 już NIE uczestniczy w dwustopniowym uwierzytelnianiu u dostawcy: $2
|
log_onefactor=Wyrejestrowano użytkownika $1 z uwierzytelniania dwuskładnikowego
|
||||||
|
|
||||||
gedit_ecannot=Nie masz uprawnień do zmiany grup
|
gedit_ecannot=Nie masz uprawnień do edytowania grup
|
||||||
gedit_title=Zmień grupę Webmina
|
gedit_title=Edytuj grupę Webmin
|
||||||
gedit_title2=Utwórz grupę Webmina
|
gedit_title2=Utwórz grupę Webmin
|
||||||
gedit_group=Nazwa grupy
|
gedit_group=Nazwa grupy
|
||||||
gedit_rights=Prawa dostępu dla grupy Webmina
|
gedit_rights=Uprawnienia dostępu grupy Webmin
|
||||||
gedit_modules=Moduły członków
|
gedit_modules=Moduły członków
|
||||||
gedit_members=Członek użytkowników i grup
|
gedit_members=Członkowie użytkownicy i grupy
|
||||||
gedit_desc=Opis grupy
|
gedit_desc=Opis grupy
|
||||||
gedit_egone=Wybrana grupa nie istnieje!
|
gedit_egone=Wybrana grupa już nie istnieje!
|
||||||
|
|
||||||
gdelete_err=Nie udało się usunąć grupy
|
gdelete_err=Nie udało się usunąć grupy
|
||||||
gdelete_ecannot=Nie masz uprawnień do usuwania grup
|
gdelete_ecannot=Nie masz uprawnień do usuwania grup
|
||||||
gdelete_euser=Nie możesz usunąć własnej grupy
|
gdelete_euser=Nie możesz usunąć swojej grupy
|
||||||
gdelete_esub=Nie można usunąć grup z podgrupami
|
gdelete_esub=Nie można usunąć grup zawierających podgrupy
|
||||||
gdelete_title=Usuń grupę
|
gdelete_title=Usuń grupę
|
||||||
gdelete_desc=Czy na pewno chcesz usunąć grupę $1 wraz z jej członkami $2?
|
gdelete_desc=Czy na pewno chcesz usunąć grupę $1 i jej członków $2?
|
||||||
gdelete_ok=Usuń grupę
|
gdelete_ok=Usuń grupę
|
||||||
|
|
||||||
gsave_err=Nie udało się zachować grupy
|
gsave_err=Nie udało się zapisać grupy
|
||||||
gsave_ename=Brakująca lub niepoprawna nazwa grupy
|
gsave_ename=Brakująca lub nieprawidłowa nazwa grupy
|
||||||
gsave_enamewebmin=Nazwa grupy 'webmin' jest zastrzeżona do użytku wewnętrznego
|
gsave_enamewebmin=Nazwa grupy 'webmin' jest zarezerwowana do użytku wewnętrznego
|
||||||
gsave_edup=Nazwa grupy jest już używana
|
gsave_edup=Nazwa grupy jest już w użyciu
|
||||||
gsave_edesc=Niewłaściwy opis - znak : jest niedozwolony
|
gsave_edesc=Nieprawidłowy opis - znak : nie jest dozwolony
|
||||||
|
|
||||||
convert_title=Przekształć użytkowników
|
convert_title=Konwertuj użytkowników
|
||||||
convert_ecannot=Nie masz uprawnień do przekształcania użytkownika Unixa
|
convert_ecannot=Nie masz uprawnień do konwertowania użytkowników Unix
|
||||||
convert_nogroups=W systemie nie zdefiniowano grup Webmina. Musisz utworzyć przynajmniej jedną grupę przed konwersją, aby określić uprawnienia dla przekształconych użytkowników.
|
convert_nogroups=Na Twoim systemie nie zdefiniowano żadnych grup Webmin. Przynajmniej jedna grupa musi zostać utworzona przed konwersją, aby zdefiniować uprawnienia dla konwertowanych użytkowników.
|
||||||
convert_desc=Za pomocą tego formularza możesz przekształcić istniejących użytkowników Unixa w użytkowników Webmina. Uprawnienia każdego z nowych użytkowników Webmina będą określone przez podanie poniżej grupy.
|
convert_desc=Ten formularz umożliwia konwersję istniejących użytkowników Unix na użytkowników Webmin. Uprawnienia każdego nowego użytkownika Webmin zostaną określone przez wybraną poniżej grupę.
|
||||||
convert_0=Wszystkich
|
convert_0=Wszyscy użytkownicy
|
||||||
convert_1=Wybranych
|
convert_1=Tylko użytkownicy
|
||||||
convert_2=Wszystkich oprócz
|
convert_2=Wszyscy oprócz użytkowników
|
||||||
convert_3=Użytkowników z grupy
|
convert_3=Użytkownicy należący do grupy
|
||||||
convert_4=Użytkowników z zakresu UID-ów
|
convert_4=Użytkownicy z UID w zakresie
|
||||||
convert_group=Przypisuj nowych użytkowników do grupy Webmina
|
convert_group=Przypisz nowych użytkowników do grupy Webmin
|
||||||
convert_sync2=Synchronizować hasło z użytkiem Unix'a w przysłości?
|
convert_sync2=Synchronizować hasło z użytkownikiem Unix w przyszłości?
|
||||||
convert_ok=Przekształć teraz
|
convert_ok=Konwertuj teraz
|
||||||
convert_err=Nie udało się przekształcić użytkowników
|
convert_err=Nie udało się przekonwertować użytkowników
|
||||||
convert_eusers=Nie podano użytkowników do przekształcenia
|
convert_eusers=Nie wprowadzono użytkowników do konwersji
|
||||||
convert_egroup=Grupa Unixa nie istnieje
|
convert_egroup=Grupa Unix nie istnieje
|
||||||
convert_emin=Niepoprawny minimalny UID
|
convert_emin=Nieprawidłowy minimalny UID
|
||||||
convert_emax=Niepoprawny maksymalny UID
|
convert_emax=Nieprawidłowy maksymalny UID
|
||||||
convert_ewgroup=Nie ma takiej grupy Webmina
|
convert_ewgroup=Brak takiej grupy Webmin
|
||||||
convert_ewgroup2=Nie masz uprawnień do przypisywania nowych użytkowników do tej grupy
|
convert_ewgroup2=Nie masz uprawnień do przypisywania nowych użytkowników do tej grupy
|
||||||
convert_skip=Pomijanie $1
|
convert_skip=Pomijanie użytkownika $1
|
||||||
convert_exists=$1 już istnieje
|
convert_exists=Użytkownik $1 już istnieje
|
||||||
convert_invalid=$1 nie jest poprawną nazwą użytkownika Webmina
|
convert_invalid=Użytkownik $1 nie jest prawidłową nazwą użytkownika Webmin
|
||||||
convert_added=Dodawanie $1
|
convert_added=Dodawanie użytkownika $1
|
||||||
convert_msg=Przekształcanie użytkowników Unixa...
|
convert_msg=Konwertowanie użytkowników Unix...
|
||||||
convert_user=Użytkownik Unixa
|
convert_user=Użytkownik Unix
|
||||||
convert_action=Podjęta akcja
|
convert_action=Podjęta akcja
|
||||||
convert_done=$1 skonwertowanych użytkowników, $2 nieprawidłowych, $3 już istnieje, $4 wykluczonych.
|
convert_done=Przekonwertowano $1 użytkowników, $2 nieprawidłowych, $3 już istnieje, $4 wykluczonych.
|
||||||
convert_users=Konwertuj użytkownika
|
convert_users=Użytkownicy do konwersji
|
||||||
|
|
||||||
sync_title=Synchronizacja użytkowników Unixa
|
sync_title=Synchronizacja użytkowników Unix
|
||||||
sync_desc=Ten formularz umożliwia skonfigurowanie automatycznej synchronizacji użytkowników Unixa utworzonych za pomocą Webmina i użytkownikami z tego modułu.
|
sync_desc=Ten formularz pozwala skonfigurować automatyczną synchronizację użytkowników Unix tworzonych za pośrednictwem Webmin z użytkownikami w tym module.
|
||||||
sync_nogroups=W systemie nie zdefiniowano żadnej grupy Webmina. Aby ustawić dostęp dla tworzonych użytkowników, trzeba utworzyć co najmniej jedną grupę.
|
sync_nogroups=Na Twoim systemie nie zdefiniowano żadnych grup Webmin. Musi zostać utworzona przynajmniej jedna grupa, aby ustawić dostęp dla tworzonych użytkowników.
|
||||||
sync_when=Kiedy synchronizować
|
sync_when=Kiedy synchronizować
|
||||||
sync_create=Twórz użytkownika Webmina, gdy tworzony jest użytkownik Unixa.
|
sync_create=Twórz użytkownika Webmin, gdy tworzony jest użytkownik Unix.
|
||||||
sync_update=Aktualizuj odpowiedniego użytkownika Webmina, gdy aktualizowany jest użytkownik Unixa.
|
sync_update=Aktualizuj dopasowanego użytkownika Webmin, gdy aktualizowany jest użytkownik Unix.
|
||||||
sync_delete=Usuwaj odpowiedniego użytkownika Webmina, gdy usuwany jest użytkownik Unixsa.
|
sync_delete=Usuń dopasowanego użytkownika Webmin, gdy usuwany jest użytkownik Unix.
|
||||||
sync_group=Przypisuj nowych użytkowników do grupy Webmina
|
sync_modify=Zmień nazwę dopasowanego użytkownika Webmin, gdy zmieniana jest nazwa użytkownika Unix.
|
||||||
sync_unix=Ustawiaj hasła dla nowych użytkowników dla uwierzytelnianie Unixowego.
|
sync_group=Przypisz nowych użytkowników do grupy Webmin
|
||||||
|
sync_unix=Ustaw hasło dla nowych użytkowników na uwierzytelnianie Unix.
|
||||||
sync_ecannot=Nie masz uprawnień do konfigurowania synchronizacji użytkowników.
|
sync_ecannot=Nie masz uprawnień do konfigurowania synchronizacji użytkowników.
|
||||||
|
|
||||||
unix_title=Autoryzacja użytkowników Unixa
|
unix_title=Uwierzytelnianie użytkowników Unix
|
||||||
unix_err=Błąd zapisywania uwierzytelniania Unixa
|
unix_err=Nie udało się zapisać ustawień uwierzytelniania Unix
|
||||||
unix_desc=Za pomocą tej strony możesz skonfigurować Webmina, aby zatwierdzał próby logowania na podstawie listy użytkowników systemu PAM. Może to być przydatne, gdy liczba użytkowników Unixa, którym chcesz dać dostęp do Webmina jest duża.
|
unix_desc=Ta strona pozwala skonfigurować Webmin do walidacji prób logowania na podstawie listy systemowych użytkowników oraz PAM. Może to być użyteczne, jeśli masz dużą liczbę istniejących użytkowników Unix, którym chcesz dać dostęp do Webmin.
|
||||||
unix_def=Pozwól logować się jedynie użytkownikom Webmina
|
unix_def=Zezwalaj na logowanie tylko użytkownikom Webmin
|
||||||
unix_sel=Pozwól użytkownikom Unixa z poniższej listy na zalogowanie...
|
unix_sel=Zezwalaj na logowanie użytkownikom Unix wymienionym poniżej ..
|
||||||
unix_mode=Pozwól
|
unix_mode=Zezwalaj
|
||||||
unix_mall=Wszyscy użytkownicy
|
unix_mall=Wszyscy użytkownicy
|
||||||
unix_group=Członkowie grup...
|
unix_group=Członkowie grupy ..
|
||||||
unix_user=Użytkownik Unixa ..
|
unix_user=Użytkownik Unix ..
|
||||||
unix_who=Użytkownik lub Grupa
|
unix_who=Użytkownik lub Grupa
|
||||||
unix_to=Jako użytkownik Webmina
|
unix_to=Jako użytkownik Webmin
|
||||||
unix_ecannot=Nie masz uprawnień do konfigurowania autoryzacji użytkowników Unixa.
|
unix_ecannot=Nie masz uprawnień do konfigurowania uwierzytelniania użytkowników Unix
|
||||||
unix_epam=Autoryzacja uniksowa jest niedostępna, gdyż moduł Perla <tt>Authen::PAM</tt> nie jest zainstalowany lub nie działa on poprawnie.
|
unix_epam=Uwierzytelnianie Unix jest niedostępne, ponieważ moduł Perl <tt>Authen::PAM</tt> nie jest zainstalowany lub nie działa poprawnie.
|
||||||
unix_all=Pozwól wszystkim użytkownikom Unixa
|
unix_all=Zezwól wszystkim użytkownikom Unix
|
||||||
unix_allow=Pozwól tylko użytkownikom Unixa z listy
|
unix_allow=Zezwalaj tylko wymienionym użytkownikom Unix
|
||||||
unix_deny=Odmów użytkowników Unixa z listy
|
unix_deny=Odmów wymienionym użytkownikom Unix
|
||||||
unix_none=Nie podano użytkowników
|
unix_none=Nie wprowadzono użytkowników
|
||||||
unix_euser='$1' nie jest poprawną nazwą użytkownika
|
unix_euser='$1' nie jest prawidłową nazwą użytkownika
|
||||||
unix_egroup='$1' nie jest poprawną nazwą grupy
|
unix_egroup='$1' nie jest prawidłową nazwą grupy
|
||||||
unix_shells=Odmów użytkownikom Unixa, których shelle nie znajdują są w pliku
|
unix_shells=Odmów dostępu użytkownikom Unix, których powłoki nie są w pliku
|
||||||
unix_eshells=Brakujący lub nie istniejący plik shelli
|
unix_eshells=Brakujący lub nieistniejący plik powłok
|
||||||
unix_restrict2=Dodatkowe ograniczenia
|
unix_restrict2=Dodatkowe ograniczenia
|
||||||
unix_ewhogroup=Brakująca dozwolona grupa w wierszu $1
|
unix_ewhogroup=Brakująca grupa dozwolona w wierszu $1
|
||||||
unix_ewhouser=Brakujący dozwolony użytkownik w wierszu $1
|
unix_ewhouser=Brakujący użytkownik dozwolony w wierszu $1
|
||||||
unix_enone=Nie podano użytkowników lub grup Unixa
|
unix_enone=Nie wprowadzono użytkowników ani grup Unix dozwolonych
|
||||||
unix_same=<Ten sam użytkownik lub grupa>
|
unix_same=<Ten sam użytkownik lub grupa>
|
||||||
unix_sudo=Pozwól użytkownikom, którzy mogą uruchamiać wszystkie komendy za pomocą <tt>sudo</tt> na zalogowanie się jako <tt>root</tt>
|
unix_sudo=Zezwól użytkownikom, którzy mogą uruchamiać wszystkie polecenia przez <tt>sudo</tt>, na logowanie jako <tt>root</tt>
|
||||||
unix_pamany=Śledź logowania, które pasują do walidacji PAM jako $1
|
unix_pamany=Traktuj loginy, które przechodzą tylko walidację PAM, jako $1
|
||||||
unix_esudo=Komenda $1 nie została zainstalowana
|
unix_esudo=Komenda $1 nie jest zainstalowana
|
||||||
unix_esudomod=Moduł Perla $1 wymagany dla uwierzytelnienia <tt>sudo</tt> nie został zainstalowany
|
unix_esudomod=Moduł Perl $1 potrzebny do uwierzytelniania <tt>sudo</tt> nie jest zainstalowany
|
||||||
unix_header=Ustawienia uwierzytelniania użytkownika Unix'a
|
unix_header=Ustawienia uwierzytelniania użytkowników Unix
|
||||||
unix_utable=Dozwoleni użytkownicy Unix'a
|
unix_utable=Dozwoleni użytkownicy Unix
|
||||||
|
|
||||||
sessions_title=Bieżące sesje logowania
|
sessions_title=Obecne sesje logowania
|
||||||
sessions_id=ID sesji
|
sessions_id=ID sesji
|
||||||
sessions_user=Użytkownik Webmina
|
sessions_user=Użytkownik Webmin
|
||||||
sessions_login=Zalogowany
|
sessions_login=Ostatnia aktywność
|
||||||
sessions_host=Adres IP
|
sessions_host=Adres IP
|
||||||
sessions_lview=Wyświetl logi...
|
sessions_lview=Wyświetl logi..
|
||||||
|
sessions_actions=Akcje..
|
||||||
|
sessions_all=Wszystkie sesje..
|
||||||
|
sessions_logouts=Pokaż również wylogowane sesje..
|
||||||
|
sessions_state=Stan
|
||||||
|
sessions_action=Akcje
|
||||||
|
sessions_this=To logowanie
|
||||||
|
sessions_in=Zalogowany
|
||||||
|
sessions_out=Wylogowany
|
||||||
|
sessions_kill=Rozłącz..
|
||||||
|
|
||||||
|
logins_title=Ostatnie logowania do Webmin
|
||||||
|
|
||||||
hide_title=Ukryj nieużywane moduły
|
hide_title=Ukryj nieużywane moduły
|
||||||
hide_desc=Następujące moduły zostaną usunięte z listy dostępu modułu dla $1 jeśli korespondujące serwery nie są zainstalowane w systemie...
|
hide_desc=Następujące moduły zostaną usunięte z listy dostępnych modułów dla $1, ponieważ odpowiadające im serwery nie są zainstalowane w Twoim systemie ..
|
||||||
hide_ok=Ukryj moduły
|
hide_ok=Ukryj moduły teraz
|
||||||
hide_none=Nie ma nic do ukrycia - $1 nie ma dostępu do żadnego z modułów, dla których korespondujące serwery nie są zainstalowane.
|
hide_none=Nie ma nic do ukrycia - $1 nie ma dostępu do żadnych modułów, których odpowiadające serwery nie są zainstalowane w Twoim systemie.
|
||||||
hide_desc2=Zauważ, że te moduły nie pojawią się automatycznie, gdy korespondujące serwery zostaną zainstalowane. Będziesz musiał ręcznie dodać uprawnienia dostępu za pomocą tego modułu.
|
hide_desc2=Pamiętaj, że te moduły nie pojawią się automatycznie, jeśli odpowiadające im serwery zostaną zainstalowane. Musisz przyznać dostęp ręcznie, używając tego modułu.
|
||||||
hide_clone=(Klonuj $1)
|
hide_clone=(Klonuj $1)
|
||||||
|
|
||||||
switch_euser=Nie masz uprawnień do przełączania do tego użytkownika
|
switch_euser=Nie masz uprawnień, aby przełączyć się na tego użytkownika
|
||||||
switch_eold=Nie znaleziono istniejącej sesji!
|
switch_eold=Istniejąca sesja nie została znaleziona!
|
||||||
|
|
||||||
rbac_title=Ustawienia RBAC
|
rbac_title=Konfiguracja RBAC
|
||||||
rbac_desc=Integracja RBAC z Webminem dostarcza sposobu na określanie dostępu do modułu dla użytkownika i jego uprawnień ACL za pomocą bazy danych RBAC (Kontroli dostępu bazującej na rolach) zamiast za pomocą plików konfiguracyjnych Webmina. Gdy obsługa RBAC jest wlączona, każdy użytkownik, dla którego opcja <b>$edit_rbacdeny1</b> jest zaznaczona, będzie posiadał uprawnienia określane przez RBAC, a nie ustawienia kontroli dostępu Webmina.
|
rbac_desc=Integracja Webmin z RBAC (Role Based Access Control) pozwala na określenie uprawnień użytkownika do modułów i ustawień ACL na podstawie bazy danych RBAC, zamiast korzystania z własnych plików konfiguracyjnych Webmin. Po włączeniu wsparcia dla RBAC, uprawnienia każdego użytkownika, dla którego wybrano opcję <b>RBAC kontroluje wszystkie moduły i ACL</b>, będą określane przez RBAC zamiast standardowych ustawień kontroli dostępu Webmin.
|
||||||
rbac_esolaris=RBAC jest obsługiwany na razie tylko przez Solarisa i nie można go używać w tym systemie $1.
|
rbac_esolaris=RBAC jest obecnie obsługiwany tylko na Solaris, więc nie można go użyć w tym systemie $1.
|
||||||
rbac_eperl=Moduł $1 Perla wymagany przez integracje RBAC nie jest zainstalowany. Aby go zainstalować <a href='$2'>kliknij tutaj</a>.
|
rbac_eperl=Moduł Perl $1 potrzebny do integracji RBAC nie jest zainstalowany. <a href='$2'>Kliknij tutaj</a>, aby go teraz zainstalować.
|
||||||
rbac_ecpan=Nie posiadasz dostępu do strony Moduły Perla, aby zainstalować wymagany moduł $1 do integracji RBAC.
|
rbac_ecpan=Nie masz dostępu do strony Moduły Perl Webmin, aby zainstalować wymagany moduł $1 dla integracji RBAC.
|
||||||
rbac_ok=Integracja RBAC jest dostępna w tym systemie i można ją włączyć dla poszczególnych użytkowników na stronie Edycja użytkownika Webmina.
|
rbac_ok=Integracja RBAC jest dostępna w tym systemie i może być włączona indywidualnie dla użytkowników na stronie Edytuj użytkownika Webmin.
|
||||||
|
|
||||||
udeletes_err=Błąd usuwanie użytkowników
|
udeletes_err=Nie udało się usunąć użytkowników
|
||||||
udeletes_jerr=Dodanie użytkowników do grupy nie powiodło się
|
udeletes_jerr=Nie udało się dodać użytkowników do grupy
|
||||||
udeletes_enone=Nie wybrane
|
udeletes_enone=Nic nie wybrano
|
||||||
udeletes_title=Usuń użytkowników
|
udeletes_title=Usuń użytkowników
|
||||||
udeletes_rusure=Czy jesteś pewny, że chcesz usunąć $1 wybranych użytkowników? Wszystkie ustawienia kontroli dostępu i szczegóły użytkowników zostaną utracone.
|
udeletes_rusure=Czy na pewno chcesz usunąć $1 wybranych użytkowników? Wszystkie ich ustawienia kontroli dostępu i dane użytkownika zostaną utracone.
|
||||||
udeletes_users=Wybrano użytkowników: $1
|
udeletes_users=Wybrani użytkownicy: $1
|
||||||
udeletes_ok=Usuń użytkowników
|
udeletes_ok=Usuń użytkowników
|
||||||
udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako nie-edytowalny
|
udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako tylko do odczytu
|
||||||
|
|
||||||
gdeletes_err=Błąd usuwania grup
|
gdeletes_err=Nie udało się usunąć grup
|
||||||
gdeletes_title=Usuń grupy
|
gdeletes_title=Usuń grupy
|
||||||
gdeletes_rusure=Czy jesteś pewien, że chcesz usunąć $1 wybranych grup, i $2 użytków, których zawierają? Wszystkie ustawienia kontroli dostępu i szczegóły użytkowników zostaną utracone.
|
gdeletes_rusure=Czy na pewno chcesz usunąć $1 wybranych grup i $2 użytkowników, którzy do nich należą? Wszystkie ich ustawienia kontroli dostępu i dane użytkownika zostaną utracone.
|
||||||
gdeletes_users=Wybrane grupy: $1
|
gdeletes_users=Wybrane grupy: $1
|
||||||
gdeletes_ok=Usuń grupy
|
gdeletes_ok=Usuń grupy
|
||||||
|
|
||||||
pass_title=Ograniczenia hasła
|
pass_title=Ograniczenia hasła
|
||||||
pass_ecannot=Nie masz uprawnień do edycji ograniczeń hasła
|
pass_ecannot=Nie masz uprawnień do edytowania ograniczeń haseł
|
||||||
pass_header=Opcje ograniczeń hasła Webmina
|
pass_header=Opcje wymuszania haseł w Webmin
|
||||||
pass_minsize=Minimalna długość hasła
|
pass_minsize=Minimalna długość hasła
|
||||||
pass_nominsize=Bez minimum
|
pass_nominsize=Brak minimum
|
||||||
pass_regexps=Wyrażenia regularne haseł muszą być zgodne z
|
pass_regexps=Wyrażenia regularne, które muszą spełniać hasła
|
||||||
pass_regdesc=Prosty opis dla wyrażenia regularnego
|
pass_regdesc=Opis wyrażenia regularnego w języku naturalnym
|
||||||
pass_maxdays=Liczba dni, po upływie których hasło musi zostać zmienione
|
pass_maxdays=Liczba dni przed koniecznością zmiany hasła
|
||||||
pass_lockdays=Liczba dni, po upływie których niezmienione hasło zablokuje konto
|
pass_lockdays=Liczba dni przed zablokowaniem konta za niezmienione hasło
|
||||||
pass_nomaxdays=Zmiana nie jest nigdy wymagana
|
pass_nomaxdays=Zmiana nigdy nie wymagana
|
||||||
pass_nolockdays=Konto nie jest nigdy blokowane
|
pass_nolockdays=Konto nigdy nie jest blokowane
|
||||||
pass_nouser=Zabronić haseł zawierających nazwę użytkownika?
|
pass_nouser=Zakazać haseł zawierających nazwę użytkownika?
|
||||||
pass_nodict=Zabronić haseł pochodzących ze słownika?
|
pass_nodict=Zakazać haseł będących słowami ze słownika?
|
||||||
pass_oldblock=Liczba starych haseł do odrzucenia
|
pass_oldblock=Liczba odrzuconych starych haseł
|
||||||
pass_nooldblock=Brak ograniczeń w ponownym użyciu hasła
|
pass_nooldblock=Brak ograniczeń dotyczących ponownego użycia hasła
|
||||||
pass_days=dni
|
pass_days=dni
|
||||||
pass_pass=haseł
|
pass_pass=hasła
|
||||||
pass_err=Błąd zapisywania ustawień dotyczących hasła
|
pass_err=Nie udało się zapisać ograniczeń haseł
|
||||||
pass_eminsize=Brakująca lub nienumeryczna minimalna długość hasła
|
pass_eminsize=Brakująca lub nieprawidłowa minimalna długość hasła
|
||||||
pass_emaxdays=Brakująca lub nienumeryczna liczba dni przed zmianą
|
pass_emaxdays=Brakująca lub nieprawidłowa liczba dni przed koniecznością zmiany hasła
|
||||||
pass_elockdays=Brakująca lub nienumeryczna liczba dni przed zablokowaniem konta
|
pass_elockdays=Brakująca lub nieprawidłowa liczba dni przed zablokowaniem konta
|
||||||
pass_eoldblock=Brakująca lub nienumeryczna liczba starych haseł do odrzucenia
|
pass_eoldblock=Brakująca lub nieprawidłowa liczba odrzuconych starych haseł
|
||||||
|
|
||||||
cpass_minsize=Musi zawierać przynajmniej $1 znaków
|
cpass_minsize=Musi mieć co najmniej $1 znaków
|
||||||
cpass_notre=Pasuje do niedozwolonego wzorca
|
cpass_notre=Pasuje do niedozwolonego wzorca
|
||||||
cpass_re=Nie pasuje do wymaganego wzorca
|
cpass_re=Nie pasuje do wymaganego wzorca
|
||||||
cpass_name=Zawiera nazwę użytkownika
|
cpass_name=Zawiera nazwę użytkownika
|
||||||
cpass_dict=Jest słowem ze słownika
|
cpass_dict=Jest słowem w słowniku
|
||||||
cpass_spellcmd=Nie zainstalowano komend $1 lub $2 wymaganych do sprawdzania słów ze słownika
|
cpass_spellcmd=Brakujące polecenia $1 lub $2 potrzebne do sprawdzenia słów w słowniku
|
||||||
cpass_old=Nie można używać starych haseł
|
cpass_old=Stare hasła nie mogą być ponownie użyte
|
||||||
|
|
||||||
sql_title=Baza danych użytkowników i grup
|
sql_title=Baza danych użytkowników i grup
|
||||||
sql_ecannot=Nie masz uprawnień do konfigurowania bazy użytkowników i grup
|
sql_ecannot=Nie masz uprawnień do konfiguracji bazy danych użytkowników i grup
|
||||||
sql_header=Opcje zaplecza bazy danych dla użytkowników i grup
|
sql_header=Opcje dla zaplecza bazy danych użytkowników i grup
|
||||||
sql_host=Nazwa hosta
|
sql_host=Nazwa hosta
|
||||||
sql_user=Nazwa użytkownika
|
sql_user=Nazwa użytkownika
|
||||||
sql_pass=Hasło
|
sql_pass=Hasło
|
||||||
@@ -417,68 +438,74 @@ sql_ssl=Szyfrowanie połączenia
|
|||||||
sql_ssl0=Brak
|
sql_ssl0=Brak
|
||||||
sql_ssl1=SSL
|
sql_ssl1=SSL
|
||||||
sql_ssl2=TLS
|
sql_ssl2=TLS
|
||||||
sql_userclass=Klasa obiektu dla użytkowników
|
sql_userclass=Klasa obiektów dla użytkowników
|
||||||
sql_groupclass=Klasa obiektu dla grup
|
sql_groupclass=Klasa obiektów dla grup
|
||||||
sql_euserclass=Brakująca lub niewłaściwa klasa obiektu dla użytkowników
|
sql_euserclass=Brakująca lub nieprawidłowa klasa obiektów dla użytkowników
|
||||||
sql_egroupclass=Brakująca lub niewłaściwa klasa obiektu dla grup
|
sql_egroupclass=Brakująca lub nieprawidłowa klasa obiektów dla grup
|
||||||
sql_none=Używaj tylko plików lokalnych do przechowywania użytkowników i grup
|
sql_none=Użyj tylko lokalnych plików do przechowywania użytkowników i grup
|
||||||
sql_mysql=Używaj bazy MySQL
|
sql_mysql=Użyj bazy danych MySQL
|
||||||
sql_postgresql=Używaj bazy PostgreSQL
|
sql_postgresql=Użyj bazy danych PostgreSQL
|
||||||
sql_ldap=Używaj serwera LDAP
|
sql_ldap=Użyj serwera LDAP
|
||||||
sql_prefix=Twórz pod DN
|
sql_prefix=Utwórz pod DN
|
||||||
sql_addto0=Dodaj nowych użytkowników do bazy wybranej powyżej
|
sql_addto0=Dodaj nowych użytkowników do wybranej powyżej bazy danych
|
||||||
sql_addto1=Dodaj nowych użytkowników do plików lokalnych
|
sql_addto1=Dodaj nowych użytkowników do lokalnych plików
|
||||||
sql_emod=Brakuje wymaganego modułu Perla <tt>$1</tt>
|
sql_nocache0=Buforuj połączenia z bazą danych
|
||||||
sql_etable=Nie można pobrać danych z wymaganej tabeli $1 : $2
|
sql_nocache1=Otwieraj nowe połączenie dla każdego wyszukiwania
|
||||||
sql_eldapdn=Nie znaleziono podstawowego DN LDAP $1
|
sql_emod=Brakujący wymagany moduł Perl <tt>$1</tt>
|
||||||
sql_eclass=Klasa obiektu : $1 LDAP nie istnieje w schemacie serwera
|
sql_etable=Nie udało się zapytać wymaganą tabelę $1 : $2
|
||||||
sql_err=Nie udało się zapisać ustawień bazy użytkowników i grup
|
sql_eldapdn=Bazowy DN LDAP $1 nie został znaleziony
|
||||||
sql_ehost=Brakująca lub nieosiągalna nazwa hosta
|
sql_eclass=Klasa obiektów LDAP $1 nie istnieje w schemacie serwera
|
||||||
sql_euser=Brakująca lub niewłaściwa nazwa użytkownika (spacje są niedozwolone)
|
sql_err=Nie udało się zapisać ustawień bazy danych użytkowników i grup
|
||||||
sql_epass=Błędne hasło (spacje są niedozwolone)
|
sql_ehost=Brakująca lub nierozwiązywalna nazwa hosta
|
||||||
sql_edb=Niewłaściwa nazwa bazy danych (spacje są niedozwolone)
|
sql_euser=Brakująca lub nieprawidłowa nazwa użytkownika (bez spacji)
|
||||||
sql_eprefix=Brakujący lub niewłaściwy podstawowy DN (spacje są niedozwolone)
|
sql_epass=Nieprawidłowe hasło (bez spacji)
|
||||||
sql_eprefix2=Podstawowy DN wygląda na niewłaściwy - powinien przypominać <tt>dc=mojadomena,dc=com</tt>
|
sql_edb=Nieprawidłowa nazwa bazy danych (bez spacji)
|
||||||
sql_title2=Twórz brakujące tabele
|
sql_eprefix=Brakujący lub nieprawidłowy bazowy DN (bez spacji)
|
||||||
sql_tableerr=Baza użytkowników i grup jest poprawna, ale brakuje niektórych tabel wymaganych przez webmina : $1
|
sql_eprefix2=Nieprawidłowo wyglądający bazowy DN - powinien wyglądać jak <tt>dc=moja_domena,dc=com</tt>
|
||||||
sql_tableerr2=Kliknij przycisk <b>Twórz tabele</b> poniżej aby stworzyć je automatycznie, lub ręcznie uruchom zapytanie SQL poniżej.
|
sql_title2=Utwórz brakujące tabele
|
||||||
sql_make=Twórz tabele
|
sql_tableerr=Ustawienia bazy danych użytkowników i grup są prawidłowe, ale brakuje niektórych tabel wymaganych przez Webmin: $1
|
||||||
sql_title3=Twórz brakujący DN
|
sql_tableerr2=Kliknij przycisk <b>Utwórz tabele</b> poniżej, aby je automatycznie utworzyć, lub uruchom ręcznie podane polecenia SQL.
|
||||||
sql_dnerr=Ustawienia bazy użytkowników i grup są prawidłowe, ale DN LDAP : $1 wymagany przez Webmina nie istnieje
|
sql_make=Utwórz tabele
|
||||||
sql_dnerr2=Kliknij przycisk <b>Twórz DN</b> poniżej, aby stworzyć DN automatycznie, lub ręcznie dodaj DN do Twojego serwera LDAP.
|
sql_title3=Utwórz brakujące DN
|
||||||
sql_makedn=Twórz DN
|
sql_dnerr=Ustawienia bazy danych użytkowników i grup są prawidłowe, ale brakuje wymaganego DN LDAP: $1
|
||||||
|
sql_dnerr2=Kliknij przycisk <b>Utwórz DN</b> poniżej, aby je automatycznie utworzyć, lub dodaj je ręcznie do swojego serwera LDAP.
|
||||||
|
sql_makedn=Utwórz DN
|
||||||
sql_schema=Pobierz schemat LDAP
|
sql_schema=Pobierz schemat LDAP
|
||||||
|
sql_timeout_def=Użyj domyślnego limitu czasu połączenia (60 sekund)
|
||||||
|
sql_timeout_for=Zamknij buforowane połączenia po
|
||||||
|
sql_timeout_secs=sekundy
|
||||||
|
sql_etimeout=Limit czasu dla buforowanego połączenia musi być liczbą
|
||||||
|
|
||||||
make_title=Twórz tabele użytkownika i grupy
|
make_title=Utwórz tabele użytkowników i grup
|
||||||
make_err=Nie udało się utworzyć tabel dla użytkownika i grupy
|
make_err=Nie udało się utworzyć tabel użytkowników i grup
|
||||||
make_exec=Wykonywanie zapytania SQL $1 ..
|
make_exec=Wykonywanie SQL $1 ..
|
||||||
make_failed=.. tworzenie nieudane : $1
|
make_failed=.. tworzenie nie powiodło się: $1
|
||||||
make_done=.. zrobione
|
make_done=.. zakończone
|
||||||
make_still=Mimo utworzenia tabeli : $1, nadal istnieją pewne problemy
|
make_still=Niektóre problemy nadal występują po utworzeniu tabel: $1
|
||||||
|
|
||||||
makedn_title=Twórz DN LDAP
|
makedn_title=Utwórz DN LDAP
|
||||||
makedn_eoc=Nie znaleziono klas obiektu strukturalnego!
|
makedn_eoc=Nie znaleziono strukturalnych klas obiektów!
|
||||||
makedn_exec=Tworzenie DN rodzica $1 ..
|
makedn_exec=Tworzenie nadrzędnego DN $1 ..
|
||||||
makedn_failed=.. tworzenie nieudane : $1
|
makedn_failed=.. tworzenie nie powiodło się: $1
|
||||||
makedn_done=.. zrobione
|
makedn_done=.. zakończone
|
||||||
makedn_still=Mimo utworzenia DN : $1, nadal istnieją pewne problemy
|
makedn_still=Niektóre problemy nadal występują po utworzeniu DN: $1
|
||||||
|
|
||||||
schema_title=Pobierz schemat LDAP
|
schema_title=Pobierz schemat LDAP
|
||||||
schema_desc=Zanim Webmin będzie mógł używać serwera LDAP do przechowywania użytkowników i grup musi zostać skonfigurowany tak, aby używał poniższego schematu. Można to zrobić zapisując definicję schematu <tt>/etc/ldap/schema</tt> lub <tt>/etc/openldap/schema</tt> jako <tt>webmin.schema</tt>. Następnie należy skonfigurować serwer tak, aby używał tego pliku.
|
schema_desc=Zanim Webmin będzie mógł używać serwera LDAP do przechowywania użytkowników i grup, musi zostać skonfigurowany do używania poniższego schematu. Zazwyczaj można to zrobić, zapisując definicję schematu w <tt>/etc/ldap/schema</tt> lub <tt>/etc/openldap/schema</tt> jako <tt>webmin.schema</tt>, a następnie konfigurując serwer do ładowania tego pliku schematu.
|
||||||
schema_download=Pobierz plik schematu : <a href=$1>$1</a>
|
schema_download=Pobierz plik schematu: <a href=$1>$1</a>
|
||||||
|
|
||||||
twofactor_err=Błąd konfigurowania Włącz dwustopniowego uwierzytelniania
|
twofactor_err=Nie udało się skonfigurować uwierzytelniania dwuskładnikowego
|
||||||
twofactor_euser=Użytkownik Webmina nie został znaleziony!
|
twofactor_euser=Nie znaleziono Twojego użytkownika Webmin!
|
||||||
twofactor_title=Dwustopniowe uwierzytelnianie
|
twofactor_title=Uwierzytelnianie dwuskładnikowe
|
||||||
twofactor_disable=Wyłącz dwustopniowe uwierzytelnianie
|
twofactor_disable=Wyłącz uwierzytelnianie dwuskładnikowe
|
||||||
twofactor_already=Korzystasz jusz z dwustopniowego uwierzytelniania u $1 z ID $2.
|
twofactor_already=Twoje logowanie do Webmin ma już włączone uwierzytelnianie dwuskładnikowe z dostawcą $1 i identyfikatorem konta $2.
|
||||||
twofactor_already2=Dla loginu $3 jest już włączone dwustopniowe uwierzytelnianie na $1 z ID $2.
|
twofactor_already2=Logowanie do Webmin $3 ma już włączone uwierzytelnianie dwuskładnikowe z dostawcą $1 i identyfikatorem konta $2.
|
||||||
twofactor_desc=Ta strona pozwala na włączenie dwustopniowego uwierzytelniania dla twojego logowania w Webmin korzystając z <a href='$2' target=_blank>$1</a>. Po włączeniu będzie wymagane podawanie dodatkowego tokena przy logowaniu.
|
twofactor_desc=Ta strona pozwala włączyć uwierzytelnianie dwuskładnikowe dla Twojego logowania do Webmin za pomocą <a href='$2' target=_blank>$1</a>. Po aktywacji przy logowaniu do Webmin wymagany będzie dodatkowy token uwierzytelniający.
|
||||||
twofactor_desc2=Ta strona pozwala na włączenie dwustopniowego uwierzytelniania dla logowania w Webmin korzystając z <a href='$2' target=_blank>$1</a>. Po włączeniu będzie wymagane podawanie dodatkowego tokena przy logowaniu.
|
twofactor_desc2=Ta strona pozwala włączyć uwierzytelnianie dwuskładnikowe dla logowania do Webmin $3 za pomocą <a href='$2' target=_blank>$1</a>. Po aktywacji przy logowaniu do Webmin wymagany będzie dodatkowy token uwierzytelniający.
|
||||||
twofactor_enable=Włącz dwustopniowe uwierzytelnianie
|
twofactor_enable=Zarejestruj się do uwierzytelniania dwuskładnikowego
|
||||||
twofactor_header=Szczegóły dwustopniowego uwierzytelniania
|
twofactor_header=Szczegóły rejestracji do uwierzytelniania dwuskładnikowego
|
||||||
twofactor_enrolling=Włączanie dwustopniowego uwierzytelniania u $1 ..
|
twofactor_enrolling=Rejestracja do uwierzytelniania dwuskładnikowego z dostawcą $1 ..
|
||||||
twofactor_failed=.. błąd włączania : $1
|
twofactor_failed=.. rejestracja nie powiodła się: $1
|
||||||
twofactor_done=.. zakończono. Twój ID u tego dostawcy to <tt>$1</tt>.
|
twofactor_done=.. zakończone. Twój identyfikator u tego dostawcy to <tt>$1</tt>.
|
||||||
twofactor_setup=Dwustopniowe uwierzytelnianie nie jest włączone na tym systemie, może zostać włączone poprzez moduł <a href='$1'>Konfiguracji Webmina</a>
|
twofactor_setup=Uwierzytelnianie dwuskładnikowe nie zostało jeszcze włączone na tym systemie, ale można je aktywować za pomocą modułu <a href='$1'>Konfiguracja Webmin</a>.
|
||||||
twofactor_ebutton=Nie kliknięto na przycisk!
|
twofactor_ebutton=Nie kliknięto żadnego przycisku!
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
index_screate=Utwórz nowego bezpiecznego użytkownika.
|
|
||||||
|
|
||||||
edit_title3=Utwórz bezpiecznego użytkownika Webmin
|
|
||||||
edit_locale=Widownia
|
|
||||||
edit_safe=Poziom uprawnień
|
|
||||||
edit_safe0=Nieograniczony
|
|
||||||
edit_safe1=Tylko bezpieczne moduły
|
|
||||||
edit_unsafe=Zresetuj do nieograniczonego
|
|
||||||
|
|
||||||
save_eunixname=Nazwa użytkownika „$1” nie jest użytkownikiem systemu Unix, dlatego nie można jej używać w trybie awaryjnym
|
|
||||||
|
|
||||||
acl_locale=Czy można zmienić język?
|
|
||||||
|
|
||||||
sync_modify=Zmień nazwę pasującego użytkownika Webmin, gdy zmieniona zostanie nazwa użytkownika Uniksa.
|
|
||||||
|
|
||||||
sessions_actions=Działania..
|
|
||||||
sessions_all=Wszystkie sesje...
|
|
||||||
sessions_logouts=Pokaż także wylogowane sesje.
|
|
||||||
sessions_state=Stan
|
|
||||||
sessions_action=działania
|
|
||||||
sessions_this=Ten login
|
|
||||||
sessions_in=Zalogowany
|
|
||||||
sessions_out=Wylogowano
|
|
||||||
sessions_kill=Rozłączyć się..
|
|
||||||
|
|
||||||
logins_title=Ostatnie logowanie Webmina
|
|
||||||
|
|
||||||
sql_nocache0=Buforuj połączenia z bazą danych
|
|
||||||
sql_nocache1=Otwórz nowe połączenie dla każdego wyszukiwania
|
|
||||||
sql_timeout_def=Użyj domyślnego limitu czasu połączenia (60 sekund)
|
|
||||||
sql_timeout_for=Zamknij połączenia z pamięci podręcznej po
|
|
||||||
sql_timeout_secs=sekundy
|
|
||||||
sql_etimeout=Limit czasu połączenia w pamięci podręcznej musi być liczbą
|
|
||||||
@@ -267,14 +267,14 @@ convert_emin=UID mínimo inválido
|
|||||||
convert_emax=UID máximo inválido
|
convert_emax=UID máximo inválido
|
||||||
convert_ewgroup=Nenhum grupo Webmin
|
convert_ewgroup=Nenhum grupo Webmin
|
||||||
convert_ewgroup2=Você não tem permissão para atribuir novos usuários a este grupo
|
convert_ewgroup2=Você não tem permissão para atribuir novos usuários a este grupo
|
||||||
convert_skip= $1 sendo ignorado
|
convert_skip=$1 sendo ignorado
|
||||||
convert_exists= $1 já existe
|
convert_exists=$1 já existe
|
||||||
convert_invalid= $1 não é um nome de usuário Webmin válido
|
convert_invalid=$1 não é um nome de usuário Webmin válido
|
||||||
convert_added= $1 sendo adicionado
|
convert_added=$1 sendo adicionado
|
||||||
convert_msg=Convertendo usuários do Unix...
|
convert_msg=Convertendo usuários do Unix...
|
||||||
convert_user=Usuário Unix
|
convert_user=Usuário Unix
|
||||||
convert_action=Medida tomada
|
convert_action=Medida tomada
|
||||||
convert_done= $1 usuários convertidos, $2 inválidos, $3 já existem, $4 excluído.
|
convert_done=$1 usuários convertidos, $2 inválidos, $3 já existem, $4 excluído.
|
||||||
convert_users=Usuários para converter
|
convert_users=Usuários para converter
|
||||||
|
|
||||||
sync_title=Sincronização de usuário Unix
|
sync_title=Sincronização de usuário Unix
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ gsave_edesc=Descrição inválida - o caractere: não é permitido
|
|||||||
convert_sync2=Sincronizar senha com o usuário Unix no futuro?
|
convert_sync2=Sincronizar senha com o usuário Unix no futuro?
|
||||||
convert_user=Usuário Unix
|
convert_user=Usuário Unix
|
||||||
convert_action=Medida tomada
|
convert_action=Medida tomada
|
||||||
convert_done= $1 usuários convertidos, $2 inválidos, $3 já existem, $4 excluído.
|
convert_done=$1 usuários convertidos, $2 inválidos, $3 já existem, $4 excluído.
|
||||||
convert_users=Usuários para converter
|
convert_users=Usuários para converter
|
||||||
|
|
||||||
sync_when=Quando sincronizar
|
sync_when=Quando sincronizar
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ cert_etempdir=Fișier certificat nevalid
|
|||||||
acl_title=Controlul accesului modulului
|
acl_title=Controlul accesului modulului
|
||||||
acl_title2=Pentru $1 în $2
|
acl_title2=Pentru $1 în $2
|
||||||
acl_title3=Pentru grupul $1 din $2
|
acl_title3=Pentru grupul $1 din $2
|
||||||
acl_options= $1 opțiuni de control de acces
|
acl_options=$1 opțiuni de control de acces
|
||||||
acl_config=Poate edita configurația modulului?
|
acl_config=Poate edita configurația modulului?
|
||||||
acl_reset=Resetați la acces complet
|
acl_reset=Resetați la acces complet
|
||||||
acl_rbac=Obțineți setări de control de acces de la RBAC?
|
acl_rbac=Obțineți setări de control de acces de la RBAC?
|
||||||
@@ -291,14 +291,14 @@ convert_emin=UID minim nevalid
|
|||||||
convert_emax=UID maxim nevalid
|
convert_emax=UID maxim nevalid
|
||||||
convert_ewgroup=Nu există un astfel de grup Webmin
|
convert_ewgroup=Nu există un astfel de grup Webmin
|
||||||
convert_ewgroup2=Nu aveți voie să atribuiți noi utilizatori acestui grup
|
convert_ewgroup2=Nu aveți voie să atribuiți noi utilizatori acestui grup
|
||||||
convert_skip= $1 fiind omis
|
convert_skip=$1 fiind omis
|
||||||
convert_exists= $1 există deja
|
convert_exists=$1 există deja
|
||||||
convert_invalid= $1 nu este un nume de utilizator Webmin valid
|
convert_invalid=$1 nu este un nume de utilizator Webmin valid
|
||||||
convert_added=Se adaugă $1
|
convert_added=Se adaugă $1
|
||||||
convert_msg=Conversia utilizatorilor Unix...
|
convert_msg=Conversia utilizatorilor Unix...
|
||||||
convert_user=Utilizator Unix
|
convert_user=Utilizator Unix
|
||||||
convert_action=Acțiunile întreprinse
|
convert_action=Acțiunile întreprinse
|
||||||
convert_done= $1 utilizatori convertiți, $2 invalide, $3 există deja, $4 exclus.
|
convert_done=$1 utilizatori convertiți, $2 invalide, $3 există deja, $4 exclus.
|
||||||
convert_users=Utilizatori pentru a converti
|
convert_users=Utilizatori pentru a converti
|
||||||
|
|
||||||
sync_title=Sincronizare utilizator Unix
|
sync_title=Sincronizare utilizator Unix
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ gsave_edesc=Неверное описание - символ: не допуск
|
|||||||
convert_sync2=Синхронизировать пароль с пользователем Unix в будущем?
|
convert_sync2=Синхронизировать пароль с пользователем Unix в будущем?
|
||||||
convert_user=Unix пользователь
|
convert_user=Unix пользователь
|
||||||
convert_action=Действие предпринято
|
convert_action=Действие предпринято
|
||||||
convert_done= $1 пользователей преобразовано, $2 недопустимо, $3 уже существует, $4 исключено.
|
convert_done=$1 пользователей преобразовано, $2 недопустимо, $3 уже существует, $4 исключено.
|
||||||
convert_users=Пользователи для конвертации
|
convert_users=Пользователи для конвертации
|
||||||
|
|
||||||
sync_when=Когда синхронизировать
|
sync_when=Когда синхронизировать
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ gsave_edesc=Neplatný popis - znak: nie je povolený
|
|||||||
convert_sync2=Synchronizovať heslo s používateľom Unix v budúcnosti?
|
convert_sync2=Synchronizovať heslo s používateľom Unix v budúcnosti?
|
||||||
convert_user=Unixový užívateľ
|
convert_user=Unixový užívateľ
|
||||||
convert_action=Prijaté opatrenia
|
convert_action=Prijaté opatrenia
|
||||||
convert_done= $1 konvertovaní používatelia, $2 neplatné, $3 už existujú, $4 vylúčené.
|
convert_done=$1 konvertovaní používatelia, $2 neplatné, $3 už existujú, $4 vylúčené.
|
||||||
convert_users=Používatelia majú prevádzať
|
convert_users=Používatelia majú prevádzať
|
||||||
|
|
||||||
sync_when=Kedy synchronizovať
|
sync_when=Kedy synchronizovať
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ cert_etempdir=Neveljavna datoteka s potrdilom
|
|||||||
acl_title=Modul Nadzor dostopa
|
acl_title=Modul Nadzor dostopa
|
||||||
acl_title2=Za $1 v $2
|
acl_title2=Za $1 v $2
|
||||||
acl_title3=Za skupino $1 v $2
|
acl_title3=Za skupino $1 v $2
|
||||||
acl_options= $1 možnosti nadzora dostopa
|
acl_options=$1 možnosti nadzora dostopa
|
||||||
acl_config=Ali lahko uredite konfiguracijo modula?
|
acl_config=Ali lahko uredite konfiguracijo modula?
|
||||||
acl_reset=Ponastavitev na popoln dostop
|
acl_reset=Ponastavitev na popoln dostop
|
||||||
acl_rbac=Pridobite nastavitve nadzora dostopa od RBAC-a?
|
acl_rbac=Pridobite nastavitve nadzora dostopa od RBAC-a?
|
||||||
@@ -291,14 +291,14 @@ convert_emin=Neveljaven minimalni UID
|
|||||||
convert_emax=Neveljaven največji UID
|
convert_emax=Neveljaven največji UID
|
||||||
convert_ewgroup=Ni take skupine Webmin
|
convert_ewgroup=Ni take skupine Webmin
|
||||||
convert_ewgroup2=V to skupino ne smete dodeliti novih uporabnikov
|
convert_ewgroup2=V to skupino ne smete dodeliti novih uporabnikov
|
||||||
convert_skip= preskoči $1
|
convert_skip=preskoči $1
|
||||||
convert_exists= $1 že obstaja
|
convert_exists=$1 že obstaja
|
||||||
convert_invalid= $1 ni veljavno uporabniško ime za Webmin
|
convert_invalid=$1 ni veljavno uporabniško ime za Webmin
|
||||||
convert_added= $1 se doda
|
convert_added=$1 se doda
|
||||||
convert_msg=Pretvarjanje uporabnikov Unixa...
|
convert_msg=Pretvarjanje uporabnikov Unixa...
|
||||||
convert_user=Uporabnik Unixa
|
convert_user=Uporabnik Unixa
|
||||||
convert_action=Sprejeti ukrepi
|
convert_action=Sprejeti ukrepi
|
||||||
convert_done= $1 uporabniki pretvorili, $2 neveljavni, $3 že obstajajo, $4 izključeno.
|
convert_done=$1 uporabniki pretvorili, $2 neveljavni, $3 že obstajajo, $4 izključeno.
|
||||||
convert_users=Uporabniki za pretvorbo
|
convert_users=Uporabniki za pretvorbo
|
||||||
|
|
||||||
sync_title=Sinhronizacija uporabnikov Unix
|
sync_title=Sinhronizacija uporabnikov Unix
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ gsave_edesc=Ogiltig beskrivning -: -tecknet är inte tillåtet
|
|||||||
convert_sync2=Synkronisera lösenord med Unix-användare i framtiden?
|
convert_sync2=Synkronisera lösenord med Unix-användare i framtiden?
|
||||||
convert_user=Unix-användare
|
convert_user=Unix-användare
|
||||||
convert_action=Åtgärder som vidtagits
|
convert_action=Åtgärder som vidtagits
|
||||||
convert_done= $1 användare konverterade, $2 ogiltig, $3 finns redan, $4 uteslutet.
|
convert_done=$1 användare konverterade, $2 ogiltig, $3 finns redan, $4 uteslutet.
|
||||||
convert_users=Användare att konvertera
|
convert_users=Användare att konvertera
|
||||||
|
|
||||||
sync_when=När du ska synkronisera
|
sync_when=När du ska synkronisera
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ cert_etempdir=ไฟล์ใบรับรองไม่ถูกต้อง
|
|||||||
acl_title=การควบคุมการเข้าถึงโมดูล
|
acl_title=การควบคุมการเข้าถึงโมดูล
|
||||||
acl_title2=สำหรับ $1 ใน $2
|
acl_title2=สำหรับ $1 ใน $2
|
||||||
acl_title3=สำหรับกลุ่ม $1 ใน $2
|
acl_title3=สำหรับกลุ่ม $1 ใน $2
|
||||||
acl_options= $1 ตัวเลือกการควบคุมการเข้าถึง
|
acl_options=$1 ตัวเลือกการควบคุมการเข้าถึง
|
||||||
acl_config=สามารถแก้ไขการกำหนดค่าโมดูลได้หรือไม่
|
acl_config=สามารถแก้ไขการกำหนดค่าโมดูลได้หรือไม่
|
||||||
acl_reset=รีเซ็ตเป็นสิทธิ์การเข้าถึงแบบเต็ม
|
acl_reset=รีเซ็ตเป็นสิทธิ์การเข้าถึงแบบเต็ม
|
||||||
acl_rbac=รับการตั้งค่าควบคุมการเข้าถึงจาก RBAC หรือไม่
|
acl_rbac=รับการตั้งค่าควบคุมการเข้าถึงจาก RBAC หรือไม่
|
||||||
@@ -291,14 +291,14 @@ convert_emin=UID ขั้นต่ำไม่ถูกต้อง
|
|||||||
convert_emax=UID สูงสุดไม่ถูกต้อง
|
convert_emax=UID สูงสุดไม่ถูกต้อง
|
||||||
convert_ewgroup=ไม่มีกลุ่ม Webmin ดังกล่าว
|
convert_ewgroup=ไม่มีกลุ่ม Webmin ดังกล่าว
|
||||||
convert_ewgroup2=คุณไม่ได้รับอนุญาตให้มอบหมายผู้ใช้ใหม่ให้กับกลุ่มนี้
|
convert_ewgroup2=คุณไม่ได้รับอนุญาตให้มอบหมายผู้ใช้ใหม่ให้กับกลุ่มนี้
|
||||||
convert_skip= $1 กำลังถูกข้าม
|
convert_skip=$1 กำลังถูกข้าม
|
||||||
convert_exists= $1 มีอยู่แล้ว
|
convert_exists=$1 มีอยู่แล้ว
|
||||||
convert_invalid= $1 ไม่ใช่ชื่อผู้ใช้ Webmin ที่ถูกต้อง
|
convert_invalid=$1 ไม่ใช่ชื่อผู้ใช้ Webmin ที่ถูกต้อง
|
||||||
convert_added= กำลังเพิ่ม $1
|
convert_added=กำลังเพิ่ม $1
|
||||||
convert_msg=กำลังแปลงผู้ใช้ Unix...
|
convert_msg=กำลังแปลงผู้ใช้ Unix...
|
||||||
convert_user=ผู้ใช้ Unix
|
convert_user=ผู้ใช้ Unix
|
||||||
convert_action=ดำเนินการแล้ว
|
convert_action=ดำเนินการแล้ว
|
||||||
convert_done= $1 ผู้ใช้ที่แปลงแล้ว, $2 ไม่ถูกต้อง, $3 มีอยู่แล้ว, $4 ยกเว้นแล้ว
|
convert_done=$1 ผู้ใช้ที่แปลงแล้ว, $2 ไม่ถูกต้อง, $3 มีอยู่แล้ว, $4 ยกเว้นแล้ว
|
||||||
convert_users=ผู้ใช้สามารถแปลง
|
convert_users=ผู้ใช้สามารถแปลง
|
||||||
|
|
||||||
sync_title=การซิงโครไนซ์ผู้ใช้ Unix
|
sync_title=การซิงโครไนซ์ผู้ใช้ Unix
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ gsave_edesc=Geçersiz açıklama -: karakterine izin verilmiyor
|
|||||||
convert_sync2=Gelecekte şifre Unix kullanıcısıyla senkronize edilsin mi?
|
convert_sync2=Gelecekte şifre Unix kullanıcısıyla senkronize edilsin mi?
|
||||||
convert_user=Unix kullanıcısı
|
convert_user=Unix kullanıcısı
|
||||||
convert_action=Eylem alındı
|
convert_action=Eylem alındı
|
||||||
convert_done= $1 kullanıcılar dönüştürüldü, $2 geçersiz, $3 zaten var, $4 hariç tutulur.
|
convert_done=$1 kullanıcılar dönüştürüldü, $2 geçersiz, $3 zaten var, $4 hariç tutulur.
|
||||||
convert_users=Dönüştürülecek kullanıcılar
|
convert_users=Dönüştürülecek kullanıcılar
|
||||||
|
|
||||||
sync_when=Ne zaman senkronize edilir
|
sync_when=Ne zaman senkronize edilir
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ cert_etempdir=Недійсний файл сертифіката
|
|||||||
acl_title=Модуль контролю доступу
|
acl_title=Модуль контролю доступу
|
||||||
acl_title2=Для $1 у $2
|
acl_title2=Для $1 у $2
|
||||||
acl_title3=Для групи $1 у $2
|
acl_title3=Для групи $1 у $2
|
||||||
acl_options= $1 параметри контролю доступу
|
acl_options=$1 параметри контролю доступу
|
||||||
acl_config=Чи можна редагувати конфігурацію модуля?
|
acl_config=Чи можна редагувати конфігурацію модуля?
|
||||||
acl_reset=Скидання до повного доступу
|
acl_reset=Скидання до повного доступу
|
||||||
acl_rbac=Отримати налаштування контролю доступу від RBAC?
|
acl_rbac=Отримати налаштування контролю доступу від RBAC?
|
||||||
@@ -286,14 +286,14 @@ convert_emin=Недійсний мінімальний UID
|
|||||||
convert_emax=Недійсний максимальний UID
|
convert_emax=Недійсний максимальний UID
|
||||||
convert_ewgroup=Такої групи Webmin немає
|
convert_ewgroup=Такої групи Webmin немає
|
||||||
convert_ewgroup2=Вам не дозволяється призначати нових користувачів до цієї групи
|
convert_ewgroup2=Вам не дозволяється призначати нових користувачів до цієї групи
|
||||||
convert_skip= пропускається $1
|
convert_skip=пропускається $1
|
||||||
convert_exists= $1 вже існує
|
convert_exists=$1 вже існує
|
||||||
convert_invalid= $1 не є дійсним іменем Webmin
|
convert_invalid=$1 не є дійсним іменем Webmin
|
||||||
convert_added= додається $1
|
convert_added=додається $1
|
||||||
convert_msg=Перетворення користувачів Unix...
|
convert_msg=Перетворення користувачів Unix...
|
||||||
convert_user=Користувач Unix
|
convert_user=Користувач Unix
|
||||||
convert_action=Дії прийняті
|
convert_action=Дії прийняті
|
||||||
convert_done= $1 перетворені користувачі, $2 недійсні, $3 вже існують, $4 виключено.
|
convert_done=$1 перетворені користувачі, $2 недійсні, $3 вже існують, $4 виключено.
|
||||||
convert_users=Користувачі для перетворення
|
convert_users=Користувачі для перетворення
|
||||||
|
|
||||||
sync_title=Синхронізація користувача Unix
|
sync_title=Синхронізація користувача Unix
|
||||||
|
|||||||
@@ -291,10 +291,10 @@ convert_emin=UID tối thiểu không hợp lệ
|
|||||||
convert_emax=UID tối đa không hợp lệ
|
convert_emax=UID tối đa không hợp lệ
|
||||||
convert_ewgroup=Không có nhóm Webmin nào như vậy
|
convert_ewgroup=Không có nhóm Webmin nào như vậy
|
||||||
convert_ewgroup2=Bạn không được phép chỉ định người dùng mới cho nhóm này
|
convert_ewgroup2=Bạn không được phép chỉ định người dùng mới cho nhóm này
|
||||||
convert_skip= $1 bị bỏ qua
|
convert_skip=$1 bị bỏ qua
|
||||||
convert_exists= $1 đã tồn tại
|
convert_exists=$1 đã tồn tại
|
||||||
convert_invalid= $1 không phải là tên người dùng Webmin hợp lệ
|
convert_invalid=$1 không phải là tên người dùng Webmin hợp lệ
|
||||||
convert_added= $1 đang được thêm
|
convert_added=$1 đang được thêm
|
||||||
convert_msg=Chuyển đổi người dùng Unix...
|
convert_msg=Chuyển đổi người dùng Unix...
|
||||||
convert_user=Người dùng Unix
|
convert_user=Người dùng Unix
|
||||||
convert_action=Hành động
|
convert_action=Hành động
|
||||||
|
|||||||
306
acl/lang/zh
306
acl/lang/zh
@@ -2,8 +2,10 @@ index_title=Webmin 用户管理
|
|||||||
index_user=用户
|
index_user=用户
|
||||||
index_modules=模块
|
index_modules=模块
|
||||||
index_create=创建新用户
|
index_create=创建新用户
|
||||||
|
index_screate=创建一个安全的新用户
|
||||||
index_convert=由 Unix 转换为 Webmin 用户
|
index_convert=由 Unix 转换为 Webmin 用户
|
||||||
index_cert=需要 SSL 验证
|
index_cert=需要 SSL 验证
|
||||||
|
index_twofactor=二次核验验证
|
||||||
index_certmsg=点击此按钮请求一个 SSL 验证,这样您不需要输入用户名和口令即能安全地登录 Webmin。
|
index_certmsg=点击此按钮请求一个 SSL 验证,这样您不需要输入用户名和口令即能安全地登录 Webmin。
|
||||||
index_return=用户列表
|
index_return=用户列表
|
||||||
index_none=无
|
index_none=无
|
||||||
@@ -19,23 +21,49 @@ index_members=成员
|
|||||||
index_modgroups=工作组 $1 的模块
|
index_modgroups=工作组 $1 的模块
|
||||||
index_sync=配置 Unix 用户同步
|
index_sync=配置 Unix 用户同步
|
||||||
index_unix=配置 Unix 用户的验证
|
index_unix=配置 Unix 用户的验证
|
||||||
|
index_sessions=查看登陆 Sessions
|
||||||
|
index_rbac=设置 RBAC
|
||||||
|
index_delete=删除已选
|
||||||
|
index_joingroup=添加到群组:
|
||||||
|
index_eulist=未能列出用户 : $1
|
||||||
|
index_eglist=未能列出群组 : $1
|
||||||
|
|
||||||
edit_title=编辑 Webmin 用户
|
edit_title=编辑 Webmin 用户
|
||||||
edit_title2=创建 Webmin 用户
|
edit_title2=创建 Webmin 用户
|
||||||
|
edit_title3=创建安全的 Webmin 用户
|
||||||
|
edit_readonly=不应编辑此Webmin用户,因为它由 $1 模块管理. <a href='$2'>点击这里</a> 绕过此警告并编辑用户,但要注意,任何手动更改都可能被重写!
|
||||||
edit_rights=Webmin 用户访问权限
|
edit_rights=Webmin 用户访问权限
|
||||||
edit_user=用户名
|
edit_user=用户名
|
||||||
|
edit_cloneof=克隆 Webmin 用户
|
||||||
|
edit_real=姓名
|
||||||
edit_group=工作组成员
|
edit_group=工作组成员
|
||||||
edit_pass=口令
|
edit_pass=口令
|
||||||
edit_same=与 Unix 相同
|
edit_same=与 Unix 相同
|
||||||
edit_lock=没有可接受的口令
|
edit_lock=没有可接受的口令
|
||||||
edit_pam=PAM 验证
|
edit_pam=PAM 验证
|
||||||
edit_unix=Unix 验证
|
edit_unix=Unix 验证
|
||||||
|
edit_extauth=外部身份验证程序
|
||||||
edit_dont=不变
|
edit_dont=不变
|
||||||
edit_set=设置为
|
edit_set=设置为
|
||||||
|
edit_passlocked=密码已 $1 天未更改-帐户已锁定!
|
||||||
|
edit_passmax=密码已 $1 天未更改-下次登录时必须更改
|
||||||
|
edit_passold=密码上次更改是在 $1 天前
|
||||||
|
edit_passtoday=密码在不到一天前更改
|
||||||
edit_modules=模块
|
edit_modules=模块
|
||||||
edit_clone=克隆
|
edit_clone=克隆
|
||||||
|
edit_twofactor=双因素身份验证类型
|
||||||
|
edit_twofactorprov=用ID为 $2 的提供者 $1
|
||||||
|
edit_twofactorcancel=移除双因素身份验证要求
|
||||||
|
edit_twofactornone=尚未设置
|
||||||
|
edit_twofactoradd=启用双重认证
|
||||||
edit_lang=语言
|
edit_lang=语言
|
||||||
|
edit_locale=区域语言
|
||||||
edit_notabs=模块分类?
|
edit_notabs=模块分类?
|
||||||
|
edit_logout=非活动注销时间
|
||||||
|
edit_mins=分钟
|
||||||
|
edit_chars=字母
|
||||||
|
edit_minsize=最小密码长度
|
||||||
|
edit_nochange=强制更改密码天数?
|
||||||
edit_cert=SSL 验证名称
|
edit_cert=SSL 验证名称
|
||||||
edit_none=无
|
edit_none=无
|
||||||
edit_ips=IP 访问控制
|
edit_ips=IP 访问控制
|
||||||
@@ -54,11 +82,47 @@ edit_ecreate=您没有创建用户的权限
|
|||||||
edit_theme=个人主题
|
edit_theme=个人主题
|
||||||
edit_themeglobal=来自 Webmin 设定
|
edit_themeglobal=来自 Webmin 设定
|
||||||
edit_themedef=默认的 Webmin 主题
|
edit_themedef=默认的 Webmin 主题
|
||||||
|
edit_overlay=个人主题叠加
|
||||||
|
edit_overlayglobal=None - 使用默认主题
|
||||||
edit_log=查看日志
|
edit_log=查看日志
|
||||||
|
edit_selall=全选
|
||||||
|
edit_invert=反选
|
||||||
|
edit_hide=隐藏未使用
|
||||||
|
edit_switch=切换到用户
|
||||||
|
edit_return=Webmin 用户
|
||||||
|
edit_return2=Webmin 群组
|
||||||
|
edit_rbacdeny=RBAC 访问模式
|
||||||
|
edit_rbacdeny0=RBAC 仅控制选定的模块 ACLs
|
||||||
|
edit_rbacdeny1=RBAC 控制所有模块和ACLs
|
||||||
|
edit_global=所有模块的权限
|
||||||
|
edit_templock=暂时锁定
|
||||||
|
edit_temppass=下次登录时强制更改
|
||||||
|
edit_days=一周中允许的天数
|
||||||
|
edit_alldays=每天
|
||||||
|
edit_seldays=仅选定日期 ..
|
||||||
|
edit_hours=一天中允许的时间
|
||||||
|
edit_allhours=任意时间
|
||||||
|
edit_selhours=从 $1:$2 到 $3:$4
|
||||||
|
edit_ui=用户界面选项
|
||||||
|
edit_security=安全和限制选项
|
||||||
|
edit_mods=可用 Webmin 模块
|
||||||
|
edit_modsg=可用 Webmin 模块 (除了小组成员)
|
||||||
|
edit_proto=存储类型
|
||||||
|
edit_proto_mysql=MySQL 数据库
|
||||||
|
edit_proto_postgresql=PostgreSQL 数据库
|
||||||
|
edit_proto_ldap=LDAP server服务
|
||||||
|
edit_proto_=本地文件
|
||||||
|
edit_safe=特权级别
|
||||||
|
edit_safe0=无限制
|
||||||
|
edit_safe1=仅安全模块
|
||||||
|
edit_unsafe=重置为无限制
|
||||||
|
|
||||||
save_err=保存用户失败
|
save_err=保存用户失败
|
||||||
save_ename=错误的用户名‘$1’
|
save_ename=错误的用户名‘$1’
|
||||||
|
save_eunixname=用户名 '$1' 不是Unix用户,因此不能在安全模式下使用
|
||||||
|
save_enamewebmin=用户名 'webmin' 保留供内部使用
|
||||||
save_edup=用户名‘$1’已经存在
|
save_edup=用户名‘$1’已经存在
|
||||||
|
save_eoverlay=除非主题符合以下条件,否则无法选择主题覆盖
|
||||||
save_edeny=您不能取消您自己对 Webmin 用户模块的访问权限
|
save_edeny=您不能取消您自己对 Webmin 用户模块的访问权限
|
||||||
save_eos=您的操作系统不支持“与 Unix 相同”口令选项。
|
save_eos=您的操作系统不支持“与 Unix 相同”口令选项。
|
||||||
save_emd5=“与 Unix 相同”口令选项不能在 MD5 加密的系统上使用。
|
save_emd5=“与 Unix 相同”口令选项不能在 MD5 加密的系统上使用。
|
||||||
@@ -67,6 +131,7 @@ save_emod=您不能授予访问模块 '$1' 的权限
|
|||||||
save_ecreate=您没有创建用户的权限
|
save_ecreate=您没有创建用户的权限
|
||||||
save_euser=您没有编辑用户的权限
|
save_euser=您没有编辑用户的权限
|
||||||
save_ecolon=口令不能包含 : 字符
|
save_ecolon=口令不能包含 : 字符
|
||||||
|
save_epass=密码无效 : $1
|
||||||
save_eself=您目前使用的 IP 地址 ($1) 被拒绝。
|
save_eself=您目前使用的 IP 地址 ($1) 被拒绝。
|
||||||
save_epam=因没有安装 <tt>Authen::PAM</tt> Perl 模块或该模块未能正常工作,PAM 验证不可用。
|
save_epam=因没有安装 <tt>Authen::PAM</tt> Perl 模块或该模块未能正常工作,PAM 验证不可用。
|
||||||
save_epam2=现在您可以使用 Webmin 的 Perl Modules 模块来<a href='$1'> 下载和安装 Authen::PAM</a>。
|
save_epam2=现在您可以使用 Webmin 的 Perl Modules 模块来<a href='$1'> 下载和安装 Authen::PAM</a>。
|
||||||
@@ -76,11 +141,18 @@ save_enet=‘$1’不是一个有效的网址
|
|||||||
save_emask=‘$1’不是一个有效的网络掩码
|
save_emask=‘$1’不是一个有效的网络掩码
|
||||||
save_eip=‘$1’不是一个完整的 IP 地址或网络地址
|
save_eip=‘$1’不是一个完整的 IP 地址或网络地址
|
||||||
save_ehost=没有找到‘$1’的 IP 地址
|
save_ehost=没有找到‘$1’的 IP 地址
|
||||||
|
save_elogouttime=缺少或非数字的非活动注销时间
|
||||||
|
save_eminsize=缺少或非数字最小密码长度
|
||||||
|
save_edays=没有允许选择的天数
|
||||||
|
save_ehours=允许的时间缺失或无效
|
||||||
|
save_ehours2=允许的开始时间必须早于结束时间
|
||||||
|
save_etemp=除非启用 <a href='$1'>提示用户输入新密码</a> 否则无法使用在下次登录时强制更改密码的选项
|
||||||
|
|
||||||
delete_err=删除用户失败
|
delete_err=删除用户失败
|
||||||
delete_eself=您不能删除您自己
|
delete_eself=您不能删除您自己
|
||||||
delete_ecannot=您没有删除用户的权限
|
delete_ecannot=您没有删除用户的权限
|
||||||
delete_euser=您没有删除这个用户的权限
|
delete_euser=您没有删除这个用户的权限
|
||||||
|
delete_eanonuser=此用户正用于匿名模块访问
|
||||||
|
|
||||||
cert_title=申请验证
|
cert_title=申请验证
|
||||||
cert_issue=发放验证
|
cert_issue=发放验证
|
||||||
@@ -93,17 +165,25 @@ cert_o=组织
|
|||||||
cert_sp=省市
|
cert_sp=省市
|
||||||
cert_c=国家代码
|
cert_c=国家代码
|
||||||
cert_key=密码长度
|
cert_key=密码长度
|
||||||
cert_ekey=您的浏览器没有提交新的 SSL 密码──可能它不支持 SSL 客户验证。
|
cert_done=您的 $1 证书已成功生成。
|
||||||
|
cert_pickup=<a href='$1'>单击此处获取您的证书并将其安装在浏览器中</a>
|
||||||
|
cert_install=将证书安装到浏览器中
|
||||||
|
cert_ekey=您的浏览器未提交新的SSL密钥,可能它不支持SSL客户端证书。
|
||||||
cert_eca=设置验证失败 : $1
|
cert_eca=设置验证失败 : $1
|
||||||
cert_already=警告 - 您正在使用验证 $1。
|
cert_already=警告 - 您正在使用验证 $1。
|
||||||
|
cert_etempdir=证书文件无效
|
||||||
|
|
||||||
acl_title=模块访问控制
|
acl_title=模块访问控制
|
||||||
acl_title2=$2 中的 $1
|
acl_title2=$2 中的 $1
|
||||||
acl_title3=$2 中的 $1 工作组
|
acl_title3=$2 中的 $1 工作组
|
||||||
acl_options=$1 访问控制选项
|
acl_options=$1 访问控制选项
|
||||||
acl_config=是否可以编辑模块配置?
|
acl_config=是否可以编辑模块配置?
|
||||||
|
acl_reset=重置为完全访问权限
|
||||||
|
acl_rbac=从RBAC获取访问控制设置?
|
||||||
|
acl_rbacyes=是(覆盖以下设置)
|
||||||
|
|
||||||
acl_uall=所有用户
|
acl_uall=所有用户
|
||||||
|
acl_uthis=此用户
|
||||||
acl_usel=选择 ..
|
acl_usel=选择 ..
|
||||||
acl_gr=$1 的成员
|
acl_gr=$1 的成员
|
||||||
acl_users=可以被编辑的用户
|
acl_users=可以被编辑的用户
|
||||||
@@ -116,6 +196,7 @@ acl_delete=是否可以删除用户?
|
|||||||
acl_rename=是否可以重命名用户?
|
acl_rename=是否可以重命名用户?
|
||||||
acl_acl=是否可以编辑模块访问控制?
|
acl_acl=是否可以编辑模块访问控制?
|
||||||
acl_lang=是否可以改变语言?
|
acl_lang=是否可以改变语言?
|
||||||
|
acl_locale=是否改变区域语言?
|
||||||
acl_chcert=是否可以改变 SSL 验证名称?
|
acl_chcert=是否可以改变 SSL 验证名称?
|
||||||
acl_euser=您没有编辑这个用户 ACL 的权限
|
acl_euser=您没有编辑这个用户 ACL 的权限
|
||||||
acl_egroup=您没有编辑工作组 ACL 的权限
|
acl_egroup=您没有编辑工作组 ACL 的权限
|
||||||
@@ -133,6 +214,14 @@ acl_perms_1=和创建者相同的模块访问控制
|
|||||||
acl_perms_0=默认的模块访问控制
|
acl_perms_0=默认的模块访问控制
|
||||||
acl_sync=是否可以配置用户同步?
|
acl_sync=是否可以配置用户同步?
|
||||||
acl_unix=是否可以配置 unix 验证?
|
acl_unix=是否可以配置 unix 验证?
|
||||||
|
acl_sessions=可以查看和取消登录会话吗?
|
||||||
|
acl_cats=可以更改分类吗?
|
||||||
|
acl_theme=可以更改个人主题吗?
|
||||||
|
acl_ips=可以更改IP访问控制吗?
|
||||||
|
acl_switch=可以切换到其他用户吗?
|
||||||
|
acl_times=可以更改允许的登录时间吗?
|
||||||
|
acl_pass=可以更改密码限制吗?
|
||||||
|
acl_sql=可以配置用户和组数据库吗?
|
||||||
|
|
||||||
log_modify=修改 Webmin 用户 $1
|
log_modify=修改 Webmin 用户 $1
|
||||||
log_rename=更改 Webmin 用户名 $1 为 $2
|
log_rename=更改 Webmin 用户名 $1 为 $2
|
||||||
@@ -140,11 +229,22 @@ log_create=创建 Webmin 用户 $1
|
|||||||
log_clone=将 Webmin 用户 $1 复制到 $2
|
log_clone=将 Webmin 用户 $1 复制到 $2
|
||||||
log_delete=删除 Webmin 用户 $1
|
log_delete=删除 Webmin 用户 $1
|
||||||
log_acl=更新 $2 中 $1 的访问
|
log_acl=更新 $2 中 $1 的访问
|
||||||
|
log_reset=重置 $1 在 $2 中的访问权限
|
||||||
log_cert=为用户 $1 发放验证
|
log_cert=为用户 $1 发放验证
|
||||||
log_modify_g=修改 Webmin 工作组 $1
|
log_modify_g=修改 Webmin 工作组 $1
|
||||||
log_rename_g=将工作组 $1 重新命名为 $2
|
log_rename_g=将工作组 $1 重新命名为 $2
|
||||||
log_create_g=创建 Webmin 工作组 $1
|
log_create_g=创建 Webmin 工作组 $1
|
||||||
log_delete_g=删除 Webmin 工作组 $1
|
log_delete_g=删除 Webmin 工作组 $1
|
||||||
|
log_switch=切换到 Webmin 用户 $1
|
||||||
|
log_delete_users=删除 $1 Webmin 用户
|
||||||
|
log_delete_groups=删除 $1 Webmin 群组
|
||||||
|
log_joingroup=添加 $1 Webmin 用户到群组 $2
|
||||||
|
log_pass=更改密码限制
|
||||||
|
log_unix=更改了unix用户身份验证
|
||||||
|
log_sync=更改了unix用户同步
|
||||||
|
log_sql=更改了用户和群组数据库
|
||||||
|
log_twofactor=注册用户 $1 使用双因素提供商 $2
|
||||||
|
log_onefactor=取销用户 $1 进行双因素身份验证
|
||||||
|
|
||||||
gedit_ecannot=您没有编辑工作组的权限
|
gedit_ecannot=您没有编辑工作组的权限
|
||||||
gedit_title=编辑 Webmin 工作组
|
gedit_title=编辑 Webmin 工作组
|
||||||
@@ -152,16 +252,21 @@ gedit_title2=创建 Webmin 工作组
|
|||||||
gedit_group=工作组名称
|
gedit_group=工作组名称
|
||||||
gedit_rights=Webmin 工作组访问权限
|
gedit_rights=Webmin 工作组访问权限
|
||||||
gedit_modules=成员的模块
|
gedit_modules=成员的模块
|
||||||
|
gedit_members=成员用户和群组
|
||||||
|
gedit_desc=群组描述
|
||||||
|
gedit_egone=所选群组已不存在!
|
||||||
|
|
||||||
gdelete_err=删除工作组失败
|
gdelete_err=删除工作组失败
|
||||||
gdelete_ecannot=您没有删除工作组的权限
|
gdelete_ecannot=您没有删除工作组的权限
|
||||||
gdelete_euser=您不能删除您自己的工作组
|
gdelete_euser=您不能删除您自己的工作组
|
||||||
|
gdelete_esub=无法删除具有子组的群组
|
||||||
gdelete_title=删除工作组
|
gdelete_title=删除工作组
|
||||||
gdelete_desc=您确定想要删除工作组 $1 和它的用户 $2 吗?
|
gdelete_desc=您确定想要删除工作组 $1 和它的用户 $2 吗?
|
||||||
gdelete_ok=删除工作组
|
gdelete_ok=删除工作组
|
||||||
|
|
||||||
gsave_err=无法保存工作组
|
gsave_err=无法保存工作组
|
||||||
gsave_ename=不存在的或无效的工作组名称
|
gsave_ename=不存在的或无效的工作组名称
|
||||||
|
gsave_enamewebmin=组名 'webmin' 保留供内部使用
|
||||||
gsave_edup=工作组名称已经存在
|
gsave_edup=工作组名称已经存在
|
||||||
|
|
||||||
convert_title=用户转换
|
convert_title=用户转换
|
||||||
@@ -174,6 +279,7 @@ convert_2=所有用户除了
|
|||||||
convert_3=工作组中的用户
|
convert_3=工作组中的用户
|
||||||
convert_4=UID 范围内的用户
|
convert_4=UID 范围内的用户
|
||||||
convert_group=为 Webmin 工作组指定新用户
|
convert_group=为 Webmin 工作组指定新用户
|
||||||
|
convert_sync2=将来是否与Unix用户同步密码?
|
||||||
convert_ok=现在转换
|
convert_ok=现在转换
|
||||||
convert_err=无法转换用户
|
convert_err=无法转换用户
|
||||||
convert_eusers=没有输入要转换的用户
|
convert_eusers=没有输入要转换的用户
|
||||||
@@ -184,21 +290,219 @@ convert_ewgroup=没有这样的 Webmin 工作组
|
|||||||
convert_ewgroup2=你没有为这个工作组指定新用户的权限
|
convert_ewgroup2=你没有为这个工作组指定新用户的权限
|
||||||
convert_skip=$1 被忽略
|
convert_skip=$1 被忽略
|
||||||
convert_exists=$1 已经存在
|
convert_exists=$1 已经存在
|
||||||
|
convert_invalid=$1 不是有效的Webmin用户名
|
||||||
convert_added=$1 已被增加
|
convert_added=$1 已被增加
|
||||||
convert_msg=正在转换 Unix 用户...
|
convert_msg=正在转换 Unix 用户...
|
||||||
|
convert_user=Unix 用户
|
||||||
|
convert_action=执行动作
|
||||||
|
convert_done=$1 用户转换, $2 无效, $3 已存在, $4 排除.
|
||||||
|
convert_users=用户转换
|
||||||
|
|
||||||
sync_title=Unix 用户同步
|
sync_title=Unix 用户同步
|
||||||
sync_desc=这个表格可以让您通过 Webmin 来配置 Unix 用户及这个模块中用户的自动同步。
|
sync_desc=这个表格可以让您通过 Webmin 来配置 Unix 用户及这个模块中用户的自动同步。
|
||||||
sync_nogroups=您的系统中没有定义过的 Webmin 工作组。至少需创建一个工作组,以便为已转换用户定义许可。
|
sync_nogroups=您的系统中没有定义过的 Webmin 工作组。至少需创建一个工作组,以便为已转换用户定义许可。
|
||||||
|
sync_when=何时同步
|
||||||
sync_create=在创建 Unix 用户后创建一个 Webmin 用户
|
sync_create=在创建 Unix 用户后创建一个 Webmin 用户
|
||||||
sync_update=在更新 Unix 用户后更新相应的 Webmin 用户。
|
sync_update=在更新 Unix 用户后更新相应的 Webmin 用户。
|
||||||
sync_delete=在删除 Unix 用户后删除相应的 Webmin 用户
|
sync_delete=在删除 Unix 用户后删除相应的 Webmin 用户
|
||||||
|
sync_modify=重命名Unix用户时,重命名匹配的Webmin用户。
|
||||||
sync_group=为 Webmin 工作组指定一个新用户
|
sync_group=为 Webmin 工作组指定一个新用户
|
||||||
|
sync_unix=将新用户的密码设置为Unix身份验证。
|
||||||
sync_ecannot=您没有配置用户同步的权限。
|
sync_ecannot=您没有配置用户同步的权限。
|
||||||
|
|
||||||
unix_title=Unix 用户验证
|
unix_title=Unix 用户验证
|
||||||
|
unix_err=保存Unix身份验证失败
|
||||||
unix_desc=您可以在该页配置 Webmin 使用系统用户列表和 PAM 验证登录。如果您有许多想要授予访问 Webmin 的 Unix 用户,这个方法就会很有用。
|
unix_desc=您可以在该页配置 Webmin 使用系统用户列表和 PAM 验证登录。如果您有许多想要授予访问 Webmin 的 Unix 用户,这个方法就会很有用。
|
||||||
unix_def=只允许 Webmin 用户登录
|
unix_def=只允许 Webmin 用户登录
|
||||||
|
unix_sel=允许下面列出的Unix用户登录。。
|
||||||
|
unix_mode=允许
|
||||||
|
unix_mall=全部用户
|
||||||
|
unix_group=群组成员..
|
||||||
unix_user=允许任何 Unix 用户以右列用户的权限登录:
|
unix_user=允许任何 Unix 用户以右列用户的权限登录:
|
||||||
|
unix_who=用户或群组
|
||||||
|
unix_to=作为 Webmin 用户
|
||||||
unix_ecannot=您没有配置 Unix 用户验证的权限
|
unix_ecannot=您没有配置 Unix 用户验证的权限
|
||||||
unix_epam=没有安装 <tt>Authen::PAM</tt> Perl 或者该系统没有正常运行,Unix 验证不可用。
|
unix_epam=没有安装 <tt>Authen::PAM</tt> Perl 或者该系统没有正常运行,Unix 验证不可用。
|
||||||
|
unix_all=允许任何 Unix 用户
|
||||||
|
unix_allow=仅允许列出的 Unix 用户
|
||||||
|
unix_deny=拒绝列出的 Unix 用户
|
||||||
|
unix_none=未输入用户
|
||||||
|
unix_euser='$1' 不是有效的用户名
|
||||||
|
unix_egroup='$1' 不是有效的群组名
|
||||||
|
unix_shells=拒绝 Unix 不在文件中的shells用户
|
||||||
|
unix_eshells=缺少或不存在shell文件
|
||||||
|
unix_restrict2=附加限制
|
||||||
|
unix_ewhogroup=缺少允许的群组 $1
|
||||||
|
unix_ewhouser=缺少允许的用户 $1
|
||||||
|
unix_enone=没有允许输入的Unix用户或组
|
||||||
|
unix_same=<同一用户或群组>
|
||||||
|
unix_sudo=允许可以通过 <tt>sudo</tt> 运行所有命令的用户以 <tt>root</tt> 身份登录
|
||||||
|
unix_pamany=将仅通过PAM验证的登录视为 $1
|
||||||
|
unix_esudo=命令 $1 未安装
|
||||||
|
unix_esudomod=未安装身份验证所需的Perl模块 $1 需要 <tt>sudo</tt>
|
||||||
|
unix_header=Unix 用户认证设置
|
||||||
|
unix_utable=允许 Unix 用户
|
||||||
|
|
||||||
|
sessions_title=当前登陆会话
|
||||||
|
sessions_id=会话 ID
|
||||||
|
sessions_user=Webmin 用户
|
||||||
|
sessions_login=上次活动时间
|
||||||
|
sessions_host=IP 地址
|
||||||
|
sessions_lview=查看日志..
|
||||||
|
sessions_actions=动作..
|
||||||
|
sessions_all=全部会话..
|
||||||
|
sessions_logouts=显示已注销的会话..
|
||||||
|
sessions_state=状态
|
||||||
|
sessions_action=动作
|
||||||
|
sessions_this=登录
|
||||||
|
sessions_in=登入
|
||||||
|
sessions_out=退出
|
||||||
|
sessions_kill=断开..
|
||||||
|
|
||||||
|
logins_title=历史 Webmin 登陆
|
||||||
|
|
||||||
|
hide_title=隐藏未使用的模块
|
||||||
|
hide_desc=以下模块将从 $1 的模块访问列表中删除,因为您的系统上没有安装相应的服务器 ..
|
||||||
|
hide_ok=立即隐藏模块
|
||||||
|
hide_none=无需隐藏 - $1 无权访问您的系统上未安装相应服务器的任何模块.
|
||||||
|
hide_desc2=请注意,如果安装了相应的服务器,这些模块将不会自动重新出现。您需要使用此模块手动授予访问权限.
|
||||||
|
hide_clone=(克隆 $1)
|
||||||
|
|
||||||
|
switch_euser=不允许您切换到此用户
|
||||||
|
switch_eold=找不到现有会话!
|
||||||
|
|
||||||
|
rbac_title=设置 RBAC
|
||||||
|
rbac_desc=Webmin的 RBAC 集成提供了一种从RBAC(基于角色的访问控制)数据库而不是Webmin自己的配置文件中确定用户模块和ACL权限的方法。启用RBAC支持后,任何使用 <b>RBAC 控制所有模块并选择 ACLs</b> 选项的用户,其能力将由RBAC决定,而不是由Webmin自己的访问控制设置决定.
|
||||||
|
rbac_esolaris=RBAC 目前仅在Solaris上受支持, 因此不能在 $1 系统上使用.
|
||||||
|
rbac_eperl=RBAC集成所需的Perl模块$1 尚未安装. <a href='$2'>单击此处</a> 立即安装.
|
||||||
|
rbac_ecpan=安装 RBAC 所需要的 Webmin的 Perl 的模块 $1 页面您无权访问 .
|
||||||
|
rbac_ok=RBAC 集成在此系统上可用, 可以在编辑 Webmin 用户页面上按用户启用。.
|
||||||
|
|
||||||
|
udeletes_err=删除用户失败
|
||||||
|
udeletes_jerr=无法将用户添加到组
|
||||||
|
udeletes_enone=未选择
|
||||||
|
udeletes_title=删除用户
|
||||||
|
udeletes_rusure=您确定要删除所选的 $1 用户吗?他们的所有访问控制设置和用户详细信息都将丢失。.
|
||||||
|
udeletes_users=已选用户s: $1
|
||||||
|
udeletes_ok=删除用户
|
||||||
|
udeletes_ereadonly=所选用户之一被标记为不可编辑
|
||||||
|
|
||||||
|
gdeletes_err=删除群组失败
|
||||||
|
gdeletes_title=删除群组
|
||||||
|
gdeletes_rusure=您确定要删除所选的 $1 群组及其包含的 $2 用户吗?他们的所有访问控制设置和用户详细信息都将丢失。
|
||||||
|
gdeletes_users=已选群组: $1
|
||||||
|
gdeletes_ok=删除群组
|
||||||
|
|
||||||
|
pass_title=密码限制
|
||||||
|
pass_ecannot=不允许您编辑密码限制
|
||||||
|
pass_header=Webmin 密码强制选项
|
||||||
|
pass_minsize=最小密码长度
|
||||||
|
pass_nominsize=不限最小值
|
||||||
|
pass_regexps=正则表达式密码必须匹配
|
||||||
|
pass_regdesc=正则表达式的人类可读描述
|
||||||
|
pass_maxdays=须更改密码的前几天
|
||||||
|
pass_lockdays=未更改密码锁定帐户前的天数
|
||||||
|
pass_nomaxdays=无需更改
|
||||||
|
pass_nolockdays=帐户从未锁定
|
||||||
|
pass_nouser=不允许包含用户名的密码?
|
||||||
|
pass_nodict=不允许字典单词密码?
|
||||||
|
pass_oldblock=要拒绝的旧密码数
|
||||||
|
pass_nooldblock=密码重复使用没有限制
|
||||||
|
pass_days=天
|
||||||
|
pass_pass=密码
|
||||||
|
pass_err=未能保存密码限制
|
||||||
|
pass_eminsize=缺少或非数字最小密码长度
|
||||||
|
pass_emaxdays=更改前缺少或非数字天数
|
||||||
|
pass_elockdays=帐户锁定前缺少或非数字天数
|
||||||
|
pass_eoldblock=要拒绝的旧密码数量缺失或非数字
|
||||||
|
|
||||||
|
cpass_minsize=长度必须至少为 $1 个字母
|
||||||
|
cpass_notre=匹配不允许的模式
|
||||||
|
cpass_re=与所需模式不匹配
|
||||||
|
cpass_name=包含用户名
|
||||||
|
cpass_dict=词典单词
|
||||||
|
cpass_spellcmd=N未安装检查词典单词所需的 $1 或 $2 命令
|
||||||
|
cpass_old=旧密码不能重复使用
|
||||||
|
|
||||||
|
sql_title=用户和群组数据库
|
||||||
|
sql_ecannot=不允许配置用户和群组数据库
|
||||||
|
sql_header=用户和群组的数据库后端选项
|
||||||
|
sql_host=主机名
|
||||||
|
sql_user=用户名
|
||||||
|
sql_pass=密码
|
||||||
|
sql_db=数据库名称
|
||||||
|
sql_ssl=加密连接
|
||||||
|
sql_ssl0=None
|
||||||
|
sql_ssl1=SSL
|
||||||
|
sql_ssl2=TLS
|
||||||
|
sql_userclass=用户的对象类
|
||||||
|
sql_groupclass=群组的对象类
|
||||||
|
sql_euserclass=用户缺少对象类或对象类无效
|
||||||
|
sql_egroupclass=群组缺少对象类或对象类无效
|
||||||
|
sql_none=仅使用本地文件存储用户和群组
|
||||||
|
sql_mysql=使用 MySQL 数据库
|
||||||
|
sql_postgresql=使用 PostgreSQL 数据库
|
||||||
|
sql_ldap=使用 LDAP 服务
|
||||||
|
sql_prefix=在DN下创建
|
||||||
|
sql_addto0=将新用户添加到上面选择的数据库
|
||||||
|
sql_addto1=将新用户添加到本地文件
|
||||||
|
sql_nocache0=缓存与数据库的连接
|
||||||
|
sql_nocache1=为每次查找打开一个新连接
|
||||||
|
sql_emod=缺少必需的Perl模块 <tt>$1</tt>
|
||||||
|
sql_etable=查询所需表失败 $1 : $2
|
||||||
|
sql_eldapdn=基本 LDAP DN $1 没找到
|
||||||
|
sql_eclass=LDAP 对象类 $1 do在服务器的架构中不存在
|
||||||
|
sql_err=未能保存用户和组数据库设置
|
||||||
|
sql_ehost=缺少或无法解析主机名
|
||||||
|
sql_euser=用户名缺失或无效(不允许有空格)
|
||||||
|
sql_epass=密码无效(不允许有空格)
|
||||||
|
sql_edb=无效的数据库名称(不允许有空格)
|
||||||
|
sql_eprefix=缺少基DN或基DN无效(不允许有空格)
|
||||||
|
sql_eprefix2=无效的查找基于 DN - 应该类似这种 <tt>dc=mydomain,dc=com</tt>
|
||||||
|
sql_title2=创建缺失的表
|
||||||
|
sql_tableerr=用户和组数据库设置有效,但缺少Webmin所需的一些表 : $1
|
||||||
|
sql_tableerr2=单击 <b>创建表</b> 按钮自动创建表,或手动运行下面的 SQL.
|
||||||
|
sql_make=创建表
|
||||||
|
sql_title3=创建缺失的 DN
|
||||||
|
sql_dnerr=用户和组数据库设置有效,但缺少Webmin所需的LDAP DN : $1
|
||||||
|
sql_dnerr2=单击 <b>创建 DN</b> 按钮,使其自动创建,或手动将其添加到LDAP服务器.
|
||||||
|
sql_makedn=创建 DN
|
||||||
|
sql_schema=下载 LDAP 架构
|
||||||
|
sql_timeout_def=使用默认连接超时(60秒
|
||||||
|
sql_timeout_for=关闭缓存后的连接
|
||||||
|
sql_timeout_secs=秒
|
||||||
|
sql_etimeout=缓存连接超时必须是数字
|
||||||
|
|
||||||
|
make_title=创建用户和群组表
|
||||||
|
make_err=创建用户和群组表失败
|
||||||
|
make_exec=正在执行 SQL $1 ..
|
||||||
|
make_failed=.. 创建失败 : $1
|
||||||
|
make_done=.. 完成
|
||||||
|
make_still=即使在创建表后也发现了一些问题 : $1
|
||||||
|
|
||||||
|
makedn_title=创建 LDAP DN
|
||||||
|
makedn_eoc=找不到结构对象类!
|
||||||
|
makedn_exec=正在创建父 DN $1 ..
|
||||||
|
makedn_failed=.. 创建失败 : $1
|
||||||
|
makedn_done=.. 完成
|
||||||
|
makedn_still=即使在创建DN后也发现了一些问题 : $1
|
||||||
|
|
||||||
|
schema_title=下载 LDAP 架构
|
||||||
|
schema_desc=在Webmin可以使用LDAP服务器存储用户和组之前,必须将其配置为使用以下模式。这通常可以通过将模式定义保存在路径 <tt>/etc/ldap/schema</tt> 或 <tt>/etc/openldap/schema</tt> 中作为 <tt>webmin.schema</tt>, 来实现,然后配置服务器加载该模式文件
|
||||||
|
schema_download=下载架构文件 : <a href=$1>$1</a>
|
||||||
|
|
||||||
|
twofactor_err=设置双因素身份验证失败
|
||||||
|
twofactor_euser=找不到您的Webmin用户!
|
||||||
|
twofactor_title=双因素身份验证
|
||||||
|
twofactor_disable=禁用双因素身份验证
|
||||||
|
twofactor_already=Y您的Webmin登录已启用双因素身份验证,提供程序为 $1 帐户ID为 $2.
|
||||||
|
twofactor_already2=Webmin 登陆 $3 已启用双因素身份验证,提供程序为 $1 帐户ID为 $2.
|
||||||
|
twofactor_desc=此页面允许您使用 <a href='$2' target=_blank>$1</a>Webmin登录启用双因素身份验证。一旦激活,登录Webmin时将需要额外的身份验证令牌。
|
||||||
|
twofactor_desc2=此页面允许您使用<a href='$2' target=_blank>$1</a>为Webmin登录 $3 启用双因素身份验证。 一旦激活,登录Webmin时将需要额外的身份验证令牌
|
||||||
|
twofactor_enable=注册双因素身份验证
|
||||||
|
twofactor_header=双因素身份验证注册详细信息
|
||||||
|
twofactor_enrolling=正在向提供商注册双因素身份验证 $1 ..
|
||||||
|
twofactor_failed=.. 注册失败 : $1
|
||||||
|
twofactor_done=.. 完成. 您与此提供商的ID为 <tt>$1</tt>.
|
||||||
|
twofactor_setup=此系统上尚未启用双因素身份验证,但可以使用 <a href='$1'>Webmin 配置</a> 模块启用.
|
||||||
|
twofactor_ebutton=未单击按钮!
|
||||||
|
|||||||
321
acl/lang/zh.auto
321
acl/lang/zh.auto
@@ -1,320 +1,5 @@
|
|||||||
index_screate=创建一个新的安全用户。
|
edit_egone=选定的用户不再存在!
|
||||||
index_twofactor=两要素认证
|
|
||||||
index_sessions=查看登录会话
|
|
||||||
index_rbac=设置RBAC
|
|
||||||
index_delete=删除所选
|
|
||||||
index_joingroup=添加到群组:
|
|
||||||
index_eulist=无法列出用户: $1
|
|
||||||
index_eglist=无法列出组: $1
|
|
||||||
|
|
||||||
edit_title3=创建安全的Webmin用户
|
cert_ebrowser=Webmin 不知道如何为您的浏览器颁发客户端证书 ($1)
|
||||||
edit_readonly=该Webmin用户不能编辑,因为它是由 $1 模块管理的。 <a href='$2'>单击此处</a>以绕过此警告并仍然编辑用户-但请注意,任何手动更改都可能被覆盖!
|
|
||||||
edit_cloneof=克隆Webmin用户
|
|
||||||
edit_real=真正的名字
|
|
||||||
edit_extauth=外部认证程序
|
|
||||||
edit_passlocked= $1 天未更改密码-帐户已锁定!
|
|
||||||
edit_passmax= $1 天未更改密码-下次登录时必须更改
|
|
||||||
edit_passold=密码最后一次更改是 $1 天前
|
|
||||||
edit_passtoday=密码更改不到一天前
|
|
||||||
edit_twofactor=两因素认证类型
|
|
||||||
edit_twofactorprov=使用提供方 $1 和ID $2
|
|
||||||
edit_twofactorcancel=删除两因素身份验证要求
|
|
||||||
edit_twofactornone=尚未设定
|
|
||||||
edit_twofactoradd=为用户启用两因素
|
|
||||||
edit_locale=语言环境
|
|
||||||
edit_logout=不活动注销时间
|
|
||||||
edit_mins=分钟
|
|
||||||
edit_chars=字母
|
|
||||||
edit_minsize=最小密码长度
|
|
||||||
edit_nochange=强制更改密码天数?
|
|
||||||
edit_egone=所选用户不再存在!
|
|
||||||
edit_overlay=个人主题叠加
|
|
||||||
edit_overlayglobal=无-使用主题默认值
|
|
||||||
edit_selall=全选
|
|
||||||
edit_invert=反转选择
|
|
||||||
edit_hide=隐藏未使用
|
|
||||||
edit_switch=切换到用户
|
|
||||||
edit_return=Webmin用户
|
|
||||||
edit_return2=Webmin组
|
|
||||||
edit_rbacdeny=RBAC访问模式
|
|
||||||
edit_rbacdeny0=RBAC仅控制选定的模块ACL
|
|
||||||
edit_rbacdeny1=RBAC控制所有模块和ACL
|
|
||||||
edit_global=所有模块的权限
|
|
||||||
edit_templock=暂时锁定
|
|
||||||
edit_temppass=下次登录时强制更改
|
|
||||||
edit_days=星期几
|
|
||||||
edit_alldays=每天
|
|
||||||
edit_seldays=仅选定的日期..
|
|
||||||
edit_hours=一天中的允许时间
|
|
||||||
edit_allhours=任何时候
|
|
||||||
edit_selhours=从 $1:$2 到 $3:$4
|
|
||||||
edit_ui=用户界面选项
|
|
||||||
edit_security=安全和限制选项
|
|
||||||
edit_mods=可用的Webmin模块
|
|
||||||
edit_modsg=可用的Webmin模块(除了来自组的模块)
|
|
||||||
edit_proto=存储类型
|
|
||||||
edit_proto_mysql=MySQL数据库
|
|
||||||
edit_proto_postgresql=PostgreSQL数据库
|
|
||||||
edit_proto_ldap=LDAP服务器
|
|
||||||
edit_proto_=本地文件
|
|
||||||
edit_safe=权限等级
|
|
||||||
edit_safe0=无限制
|
|
||||||
edit_safe1=仅安全模块
|
|
||||||
edit_unsafe=重置为无限制
|
|
||||||
|
|
||||||
save_eunixname=用户名“$1”不是Unix用户,因此不能在安全模式下使用
|
gsave_edesc=无效描述 - 不允许使用 : 字符
|
||||||
save_enamewebmin=用户名“ webmin”保留供内部使用
|
|
||||||
save_eoverlay=除非选择了主题,否则无法选择主题覆盖
|
|
||||||
save_epass=密码无效: $1
|
|
||||||
save_elogouttime=缺少或非数字的非活动注销时间
|
|
||||||
save_eminsize=缺少或非数字的最小密码长度
|
|
||||||
save_edays=没有天数可供选择
|
|
||||||
save_ehours=缺少时间或无效时间
|
|
||||||
save_ehours2=允许的开始时间必须在结束之前
|
|
||||||
save_etemp=除非启用了<a href='$1'>提示用户输入新密码</a>的选项,否则不能使用在下次登录时强制更改密码的选项。
|
|
||||||
|
|
||||||
delete_eanonuser=该用户正用于匿名模块访问
|
|
||||||
|
|
||||||
cert_ebrowser=Webmin不知道如何为浏览器颁发客户端证书( $1 )
|
|
||||||
cert_done= $1 的证书已成功生成。
|
|
||||||
cert_pickup=<a href='$1'>单击此处获取证书并将其安装在浏览器中</a>
|
|
||||||
cert_install=将证书安装到浏览器中
|
|
||||||
cert_etempdir=无效的证书文件
|
|
||||||
|
|
||||||
acl_reset=重置为完全访问权限
|
|
||||||
acl_rbac=从RBAC获得访问控制设置?
|
|
||||||
acl_rbacyes=是(覆盖下面的设置)
|
|
||||||
|
|
||||||
acl_uthis=该用户
|
|
||||||
acl_locale=可以改locale吗?
|
|
||||||
acl_sessions=可以查看和取消登录会话吗?
|
|
||||||
acl_cats=可以更改分类吗?
|
|
||||||
acl_theme=可以改变个人主题吗?
|
|
||||||
acl_ips=可以更改IP访问控制吗?
|
|
||||||
acl_switch=可以切换到其他用户吗?
|
|
||||||
acl_times=可以更改允许的登录时间吗?
|
|
||||||
acl_pass=可以更改密码限制吗?
|
|
||||||
acl_sql=可以配置用户和组数据库吗?
|
|
||||||
|
|
||||||
log_reset=重置 $2 中 $1 的访问权限
|
|
||||||
log_switch=切换到Webmin用户 $1
|
|
||||||
log_delete_users=删除了 $1 Webmin用户
|
|
||||||
log_delete_groups=删除的 $1 Webmin组
|
|
||||||
log_joingroup=添加了 $1 Webmin用户以将 $2 分组
|
|
||||||
log_pass=更改密码限制
|
|
||||||
log_unix=更改了UNIX用户身份验证
|
|
||||||
log_sync=更改了Unix用户同步
|
|
||||||
log_sql=更改的用户和组数据库
|
|
||||||
log_twofactor=使用两因素提供程序 $2 的已注册用户 $1
|
|
||||||
log_onefactor=取消注册用户 $1 进行两步验证
|
|
||||||
|
|
||||||
gedit_members=会员用户和组
|
|
||||||
gedit_desc=团体简介
|
|
||||||
gedit_egone=选定的组不再存在!
|
|
||||||
|
|
||||||
gdelete_esub=具有子组的组不能删除
|
|
||||||
|
|
||||||
gsave_enamewebmin=组名“ webmin”保留供内部使用
|
|
||||||
gsave_edesc=说明无效-不允许使用:字符
|
|
||||||
|
|
||||||
convert_sync2=将来与Unix用户同步密码吗?
|
|
||||||
convert_invalid= $1 不是有效的Webmin用户名
|
|
||||||
convert_user=Unix用户
|
|
||||||
convert_action=所采取的行动
|
|
||||||
convert_done= $1 用户已转换, $2 无效, $3 已经存在, $4 已排除。
|
|
||||||
convert_users=用户转换
|
|
||||||
|
|
||||||
sync_when=何时同步
|
|
||||||
sync_modify=重命名Unix用户时,重命名匹配的Webmin用户。
|
|
||||||
sync_unix=为新用户设置用于Unix身份验证的密码。
|
|
||||||
|
|
||||||
unix_err=保存Unix认证失败
|
|
||||||
unix_sel=允许下面列出的Unix用户登录..
|
|
||||||
unix_mode=允许
|
|
||||||
unix_mall=所有用户
|
|
||||||
unix_group=小组成员
|
|
||||||
unix_who=用户或组
|
|
||||||
unix_to=作为Webmin用户
|
|
||||||
unix_all=允许所有Unix用户
|
|
||||||
unix_allow=只允许列出的Unix用户
|
|
||||||
unix_deny=拒绝列出的Unix用户
|
|
||||||
unix_none=没有用户输入
|
|
||||||
unix_euser=“$1”不是有效的用户名
|
|
||||||
unix_egroup='$1'不是有效的群组名称
|
|
||||||
unix_shells=拒绝外壳不在文件中的Unix用户
|
|
||||||
unix_eshells=缺少或不存在的shell文件
|
|
||||||
unix_restrict2=其他限制
|
|
||||||
unix_ewhogroup=缺少行 $1 的组
|
|
||||||
unix_ewhouser=缺少用户允许在行 $1
|
|
||||||
unix_enone=没有Unix用户或组允许输入
|
|
||||||
unix_same=<相同的用户或组>
|
|
||||||
unix_sudo=允许可以通过<tt>sudo</tt>运行所有命令的用户以<tt>root</tt>身份登录
|
|
||||||
unix_pamany=将仅通过PAM验证的登录视为 $1
|
|
||||||
unix_esudo=未安装 $1 命令
|
|
||||||
unix_esudomod=未安装<tt>sudo</tt>身份验证所需的Perl模块 $1
|
|
||||||
unix_header=Unix用户认证设置
|
|
||||||
unix_utable=允许的Unix用户
|
|
||||||
|
|
||||||
sessions_title=当前登录会话
|
|
||||||
sessions_id=会话ID
|
|
||||||
sessions_user=Webmin用户
|
|
||||||
sessions_login=上次活动时间:
|
|
||||||
sessions_host=IP地址
|
|
||||||
sessions_lview=查看日志
|
|
||||||
sessions_actions=动作..
|
|
||||||
sessions_all=所有会议..
|
|
||||||
sessions_logouts=同时显示注销的会话。
|
|
||||||
sessions_state=州
|
|
||||||
sessions_action=行动
|
|
||||||
sessions_this=此登录名
|
|
||||||
sessions_in=登录
|
|
||||||
sessions_out=登出
|
|
||||||
sessions_kill=断开..
|
|
||||||
|
|
||||||
logins_title=最近的Webmin登录
|
|
||||||
|
|
||||||
hide_title=隐藏未使用的模块
|
|
||||||
hide_desc=以下模块将从 $1 的模块访问列表中删除,因为它们的相应服务器未安装在您的系统上。
|
|
||||||
hide_ok=立即隐藏模块
|
|
||||||
hide_none=没有什么可隐藏的- $1 不能访问其系统上未安装相应服务器的任何模块。
|
|
||||||
hide_desc2=请注意,如果安装了相应的服务器,这些模块将不会自动重新出现。您将需要使用此模块手动授予访问权限。
|
|
||||||
hide_clone=(克隆 $1 )
|
|
||||||
|
|
||||||
switch_euser=您无权切换到该用户
|
|
||||||
switch_eold=找不到现有的会话!
|
|
||||||
|
|
||||||
rbac_title=设置RBAC
|
|
||||||
rbac_desc=Webmin的RBAC集成提供了一种从RBAC(基于角色的访问控制)数据库而不是Webmin自己的配置文件中确定用户模块和ACL权限的方法。启用RBAC支持后,选择<b>RBAC控制所有模块和ACL</b>选项的任何用户,其功能将由RBAC而非Webmin自己的访问控制设置决定。
|
|
||||||
rbac_esolaris=RBAC目前仅在Solaris上受支持,因此不能在此 $1 系统上使用。
|
|
||||||
rbac_eperl=未安装RBAC集成所需的Perl模块 $1 。 <a href='$2'>单击此处</a>立即安装。
|
|
||||||
rbac_ecpan=您无权访问Webmin的Perl模块页面来安装必要的 $1 模块以进行RBAC集成。
|
|
||||||
rbac_ok=RBAC集成在此系统上可用,并且可以在“编辑Webmin用户”页面上按用户启用。
|
|
||||||
|
|
||||||
udeletes_err=删除用户失败
|
|
||||||
udeletes_jerr=无法将用户添加到组
|
|
||||||
udeletes_enone=未选择
|
|
||||||
udeletes_title=删除用户
|
|
||||||
udeletes_rusure=您确定要删除 $1 所选用户吗?他们的所有访问控制设置和用户详细信息都将丢失。
|
|
||||||
udeletes_users=所选用户: $1
|
|
||||||
udeletes_ok=删除用户
|
|
||||||
udeletes_ereadonly=所选用户之一被标记为不可编辑
|
|
||||||
|
|
||||||
gdeletes_err=删除群组失败
|
|
||||||
gdeletes_title=删除群组
|
|
||||||
gdeletes_rusure=您确定要删除 $1 选定的组以及它们包含的 $2 用户吗?他们的所有访问控制设置和用户详细信息都将丢失。
|
|
||||||
gdeletes_users=选定的组: $1
|
|
||||||
gdeletes_ok=删除群组
|
|
||||||
|
|
||||||
pass_title=密码限制
|
|
||||||
pass_ecannot=您无权编辑密码限制
|
|
||||||
pass_header=Webmin密码实施选项
|
|
||||||
pass_minsize=最小密码长度
|
|
||||||
pass_nominsize=没有最低要求
|
|
||||||
pass_regexps=正则表达式密码必须匹配
|
|
||||||
pass_regdesc=易于理解的正则表达式描述
|
|
||||||
pass_maxdays=必须更改密码的前几天
|
|
||||||
pass_lockdays=未更改密码锁定帐户的前几天
|
|
||||||
pass_nomaxdays=无需更改
|
|
||||||
pass_nolockdays=账户从未被锁定
|
|
||||||
pass_nouser=禁止包含用户名的密码?
|
|
||||||
pass_nodict=禁止使用字典单词密码?
|
|
||||||
pass_oldblock=拒绝的旧密码数量
|
|
||||||
pass_nooldblock=密码重用没有限制
|
|
||||||
pass_days=天
|
|
||||||
pass_pass=密码
|
|
||||||
pass_err=保存密码限制失败
|
|
||||||
pass_eminsize=缺少或非数字的最小密码长度
|
|
||||||
pass_emaxdays=更改前缺少天数或非数字天数
|
|
||||||
pass_elockdays=帐户锁定前缺少天数或非数字天数
|
|
||||||
pass_eoldblock=遗失或遗漏的旧密码数量非数字
|
|
||||||
|
|
||||||
cpass_minsize=必须至少为 $1 个字母
|
|
||||||
cpass_notre=匹配不允许的模式
|
|
||||||
cpass_re=与要求的模式不符
|
|
||||||
cpass_name=包含用户名
|
|
||||||
cpass_dict=是字典字
|
|
||||||
cpass_spellcmd=没有安装检查字典单词所需的 $1 或 $2 命令
|
|
||||||
cpass_old=旧密码无法重复使用
|
|
||||||
|
|
||||||
sql_title=用户和组数据库
|
|
||||||
sql_ecannot=您无权配置用户和组数据库
|
|
||||||
sql_header=用户和组的数据库后端选项
|
|
||||||
sql_host=主机名
|
|
||||||
sql_user=用户名
|
|
||||||
sql_pass=密码
|
|
||||||
sql_db=数据库名称
|
|
||||||
sql_ssl=连接加密
|
|
||||||
sql_ssl0=没有
|
|
||||||
sql_ssl1=SSL协议
|
|
||||||
sql_ssl2=TLS
|
|
||||||
sql_userclass=用户的对象类
|
|
||||||
sql_groupclass=组的对象类
|
|
||||||
sql_euserclass=用户缺少或无效的对象类
|
|
||||||
sql_egroupclass=组的对象类丢失或无效
|
|
||||||
sql_none=仅使用本地文件存储用户和组
|
|
||||||
sql_mysql=使用MySQL数据库
|
|
||||||
sql_postgresql=使用PostgreSQL数据库
|
|
||||||
sql_ldap=使用LDAP服务器
|
|
||||||
sql_prefix=在DN下创建
|
|
||||||
sql_addto0=将新用户添加到上面选择的数据库中
|
|
||||||
sql_addto1=将新用户添加到本地文件
|
|
||||||
sql_nocache0=缓存到数据库的连接
|
|
||||||
sql_nocache1=为每次查找打开一个新连接
|
|
||||||
sql_emod=缺少必需的Perl模块<tt>$1</tt>
|
|
||||||
sql_etable=无法查询必需的表 $1:$2
|
|
||||||
sql_eldapdn=找不到基本LDAP DN $1
|
|
||||||
sql_eclass=LDAP对象类 $1 在服务器的模式中不存在
|
|
||||||
sql_err=无法保存用户和组数据库设置
|
|
||||||
sql_ehost=主机名丢失或无法解析
|
|
||||||
sql_euser=用户名缺失或无效(不允许使用空格)
|
|
||||||
sql_epass=无效的密码(不允许使用空格)
|
|
||||||
sql_edb=无效的数据库名称(不允许使用空格)
|
|
||||||
sql_eprefix=基本DN丢失或无效(不允许使用空格)
|
|
||||||
sql_eprefix2=无效的基本DN-应该类似于<tt>dc = mydomain,dc = com</tt>
|
|
||||||
sql_title2=创建缺失表
|
|
||||||
sql_tableerr=用户和组数据库设置有效,但是Webmin所需的某些表丢失了: $1
|
|
||||||
sql_tableerr2=点击下面的<b>创建表</b>按钮以自动创建它们,或手动运行下面的SQL。
|
|
||||||
sql_make=建立表格
|
|
||||||
sql_title3=创建丢失的DN
|
|
||||||
sql_dnerr=用户和组数据库设置有效,但是Webmin所需的LDAP DN丢失: $1
|
|
||||||
sql_dnerr2=单击下面的<b>创建DN</b>按钮以使其自动创建,或手动将其添加到LDAP服务器。
|
|
||||||
sql_makedn=创建DN
|
|
||||||
sql_schema=下载LDAP模式
|
|
||||||
sql_timeout_def=使用默认的连接超时(60秒)
|
|
||||||
sql_timeout_for=之后关闭缓存的连接
|
|
||||||
sql_timeout_secs=秒
|
|
||||||
sql_etimeout=缓存的连接超时必须为数字
|
|
||||||
|
|
||||||
make_title=创建用户和组表
|
|
||||||
make_err=创建用户表和组表失败
|
|
||||||
make_exec=执行SQL $1..
|
|
||||||
make_failed=..创建失败: $1
|
|
||||||
make_done=..完成
|
|
||||||
make_still=即使在创建表后也发现了一些问题: $1
|
|
||||||
|
|
||||||
makedn_title=创建LDAP DN
|
|
||||||
makedn_eoc=找不到结构对象类!
|
|
||||||
makedn_exec=创建父DN $1..
|
|
||||||
makedn_failed=..创建失败: $1
|
|
||||||
makedn_done=..完成
|
|
||||||
makedn_still=即使在创建DN之后也发现了一些问题: $1
|
|
||||||
|
|
||||||
schema_title=下载LDAP模式
|
|
||||||
schema_desc=在Webmin可以使用LDAP服务器存储用户和组之前,必须将其配置为使用以下架构。通常可以通过将架构定义保存在<tt>/etc/ldap/schema</tt>或<tt>/etc/openldap/schema</tt>中作为<tt>webmin.schema</tt>来完成,然后配置服务器以加载该架构文件。
|
|
||||||
schema_download=下载架构文件:<a href=$1>$1</a>
|
|
||||||
|
|
||||||
twofactor_err=未能设置两因素身份验证
|
|
||||||
twofactor_euser=找不到您的Webmin用户!
|
|
||||||
twofactor_title=两要素认证
|
|
||||||
twofactor_disable=禁用两因素身份验证
|
|
||||||
twofactor_already=您的Webmin登录名已使用提供程序 $1 和帐户ID $2 启用了双重身份验证。
|
|
||||||
twofactor_already2=Webmin登录名 $3 已通过提供程序 $1 和帐户ID $2 启用了双重身份验证。
|
|
||||||
twofactor_desc=该页面允许您使用<a href='$2' target=_blank>$1</a>为Webmin登录启用两步验证。一旦激活,登录Webmin时将需要一个附加的身份验证令牌。
|
|
||||||
twofactor_desc2=该页面允许您使用<a href='$2' target=_blank>$1</a>。一旦激活,登录Webmin时将需要一个附加的身份验证令牌。
|
|
||||||
twofactor_enable=报名参加两因素认证
|
|
||||||
twofactor_header=两因素身份验证注册详细信息
|
|
||||||
twofactor_enrolling=使用提供方 $1 进行两因素身份验证的注册。
|
|
||||||
twofactor_failed=..注册失败: $1
|
|
||||||
twofactor_done=..完成。您在此提供程序处的ID是<tt>$1</tt>。
|
|
||||||
twofactor_setup=此系统上尚未启用两因素身份验证,但可以使用<a href='$1'>Webmin Configuration</a>模块将其打开。
|
|
||||||
twofactor_ebutton=没有点击按钮!
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ edit_title3=創建安全的Webmin用戶
|
|||||||
edit_readonly=該Webmin用戶不能編輯,因為它是由 $1 模塊管理的。 <a href='$2'>單擊此處</a>以繞過此警告並仍然編輯用戶-但請注意,任何手動更改都可能被覆蓋!
|
edit_readonly=該Webmin用戶不能編輯,因為它是由 $1 模塊管理的。 <a href='$2'>單擊此處</a>以繞過此警告並仍然編輯用戶-但請注意,任何手動更改都可能被覆蓋!
|
||||||
edit_cloneof=克隆Webmin用戶
|
edit_cloneof=克隆Webmin用戶
|
||||||
edit_real=真正的名字
|
edit_real=真正的名字
|
||||||
edit_passlocked= $1 天未更改密碼-帳戶已鎖定!
|
edit_passlocked=$1 天未更改密碼-帳戶已鎖定!
|
||||||
edit_passmax= $1 天未更改密碼-下次登錄時必須更改
|
edit_passmax=$1 天未更改密碼-下次登錄時必須更改
|
||||||
edit_passold=密碼最後一次更改是 $1 天前
|
edit_passold=密碼最後一次更改是 $1 天前
|
||||||
edit_passtoday=密碼更改不到一天前
|
edit_passtoday=密碼更改不到一天前
|
||||||
edit_twofactor=兩因素認證類型
|
edit_twofactor=兩因素認證類型
|
||||||
@@ -101,10 +101,10 @@ gedit_egone=選定的組不再存在!
|
|||||||
gsave_edesc=說明無效-不允許使用:字符
|
gsave_edesc=說明無效-不允許使用:字符
|
||||||
|
|
||||||
convert_sync2=將來與Unix用戶同步密碼嗎?
|
convert_sync2=將來與Unix用戶同步密碼嗎?
|
||||||
convert_invalid= $1 不是有效的Webmin用戶名
|
convert_invalid=$1 不是有效的Webmin用戶名
|
||||||
convert_user=Unix用戶
|
convert_user=Unix用戶
|
||||||
convert_action=所採取的行動
|
convert_action=所採取的行動
|
||||||
convert_done= $1 用戶已轉換, $2 無效, $3 已經存在, $4 已排除。
|
convert_done=$1 用戶已轉換, $2 無效, $3 已經存在, $4 已排除。
|
||||||
convert_users=用戶轉換
|
convert_users=用戶轉換
|
||||||
|
|
||||||
sync_when=何時同步
|
sync_when=何時同步
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
index_title=Client ADSL
|
index_title=Client ADSL
|
||||||
index_eadsl= No s'ha trobat al sistema l'ordre $1 de RP-PPPoE. Pot ser que no estigui instal·lada, o bé que la <a href='$2'>configuració del mòdul</a> sigui incorrecta.
|
index_eadsl=No s'ha trobat al sistema l'ordre $1 de RP-PPPoE. Pot ser que no estigui instal·lada, o bé que la <a href='$2'>configuració del mòdul</a> sigui incorrecta.
|
||||||
index_econfig=No s'ha trobat al sistema el fitxer de configuració ADSL RP-PPPoE $1. Pot ser que no estigui instal·lat, o bé que la <a href='$2'>configuració del mòdul</a> sigui incorrecta.
|
index_econfig=No s'ha trobat al sistema el fitxer de configuració ADSL RP-PPPoE $1. Pot ser que no estigui instal·lat, o bé que la <a href='$2'>configuració del mòdul</a> sigui incorrecta.
|
||||||
index_emodem=El fitxer de configuració actual és per a un mòdem en un Linux de RedHat, no una connexió ADSL. Utilitza la pàgina de <a href='$2'>configuració del mòdul</a> per especificar un dels altres fitxers <tt>ifcfg-ppp*</tt> de $1, o bé un que encara no existeixi per tal que el mòdul el creï per a tu.
|
index_emodem=El fitxer de configuració actual és per a un mòdem en un Linux de RedHat, no una connexió ADSL. Utilitza la pàgina de <a href='$2'>configuració del mòdul</a> per especificar un dels altres fitxers <tt>ifcfg-ppp*</tt> de $1, o bé un que encara no existeixi per tal que el mòdul el creï per a tu.
|
||||||
index_stop=Desactiva l'ADSL
|
index_stop=Desactiva l'ADSL
|
||||||
|
|||||||
@@ -1,66 +1,66 @@
|
|||||||
index_title=ADSL Client
|
index_title=ADSL-Client
|
||||||
index_eadsl=Der RP-PPPoE-Befehl $1 wurde auf Ihrem System nicht gefunden oder ist nicht gültig. Entweder ist er nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
|
index_eadsl=Der RP-PPPoE-Befehl $1 wurde auf Ihrem System nicht gefunden oder ist ungültig. Möglicherweise ist er nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
|
||||||
index_econfig=Die RP-PPPoE ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Entweder ist sie nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
|
index_econfig=Die RP-PPPoE-ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Möglicherweise ist sie nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
|
||||||
index_emodem=Die aktuelle Konfigurationsdatei wurde für ein Modem unter RedHat-Linux geschrieben, und nicht für eine ADSL-Verbindung. Benutzen Sie die <a href='$2'>Modulkonfiguration</a>, um entweder eine der <tt>ifcfg-ppp*</tt>-Dateien unter $1 zu nutzen, oder ein neues Interface anzugeben, welches von Webmin eingerichtet werden soll.
|
index_emodem=Die aktuelle Konfigurationsdatei ist für ein Modem auf Redhat Linux, nicht für eine ADSL-Verbindung. Verwenden Sie die Seite <a href='$2'>Modulkonfiguration</a>, um eine der anderen <tt>ifcfg-ppp*</tt>-Dateien in $1 anzugeben, oder eine Datei, die noch nicht existiert, damit das Modul sie für Sie erstellen kann.
|
||||||
index_stop=ADSL beenden
|
index_stop=ADSL-Verbindung beenden
|
||||||
index_stopdesc=Ihre ADSL-Verbindung hat derzeit folgende IP-Adresse: $1 - Klicken Sie hier, um ADSL mit dem Befehl $2 zu beenden.
|
index_stopdesc=Ihre ADSL-Verbindung ist derzeit mit der IP-Adresse $1 aktiv. Klicken Sie auf diese Schaltfläche, um die Verbindung mit dem Befehl $2 zu beenden.
|
||||||
index_start=ADSL starten
|
index_start=ADSL-Verbindung starten
|
||||||
index_startdesc=Ihre ADSL-Verbindung ist momentan nicht aktiv. Klicken Sie hier, um ADSL mit dem Befehl $1 zu starten.
|
index_startdesc=Ihre ADSL-Verbindung ist derzeit inaktiv. Klicken Sie auf diese Schaltfläche, um die Verbindung mit dem Befehl $1 zu starten.
|
||||||
index_boot=ADSL-Verbindung beim Booten hochfahren
|
index_boot=Beim Systemstart aktivieren
|
||||||
index_bootdesc=Ändern Sie diese Option, wenn Sie Ihre ADSL-Verbindung schon beim Booten verfügbar haben wollen, oder nicht.
|
index_bootdesc=Ändern Sie diese Option, um zu steuern, ob Ihre ADSL-Verbindung beim Systemstart aufgebaut wird oder nicht.
|
||||||
index_return=Modulindex
|
index_return=Modulindex
|
||||||
index_version=RP-PPPoE Version $1
|
index_version=RP-PPPoE-Version $1
|
||||||
index_esetup=Die RedHat-ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Webmin kann dies jedoch mit Basisfunktionen für Sie einrichten, wenn Sie den unten stehenden Button anklicken.
|
index_esetup=Die Redhat-ADSL-Konfigurationsdatei $1 existiert nicht auf Ihrem System. Dieses Modul kann sie jedoch mit Standardwerten einrichten, indem Sie auf die Schaltfläche unten klicken.
|
||||||
index_setup=Setup-Konfigurationsdatei
|
index_setup=Konfigurationsdatei einrichten
|
||||||
index_cancel=Verbindung beenden
|
index_cancel=Verbindung abbrechen
|
||||||
index_canceldesc=Es wird momentan eine ADSL-Verbindung hergestellt. Klicken Sie auf diesen Button, um diesen Vorgang mit dem Befehl $1 abzubrechen.
|
index_canceldesc=Der ADSL-Client versucht derzeit, eine Verbindung herzustellen. Klicken Sie auf diese Schaltfläche, um den Versuch mit dem Befehl $1 abzubrechen.
|
||||||
index_cdemand=Auf Verlangen abbrechen
|
index_cdemand=On-Demand-Verbindung abbrechen
|
||||||
index_cdemanddesc=Der ADSL-Client wartet derzeit darauf, Benutzer auf Verlangen die Verbindung zu beenden. Klicken Sie auf diesen Button, wenn Sie dies mit dem Befehl $1 ausführen möchten.
|
index_cdemanddesc=Der ADSL-Client wartet derzeit auf eine Anforderung für eine On-Demand-Verbindung. Klicken Sie auf diese Schaltfläche, um ihn mit dem Befehl $1 zu stoppen.
|
||||||
|
|
||||||
index_header=ADSL-Client - Konfigurierbare Optionen
|
index_header=ADSL-Client-Konfigurationsoptionen
|
||||||
index_desc=Diese Einstellungen werden erst bei der nächsten Anmeldung des ADSL-Clients aktiv. Wenn Sie diese ändern, dann müssen Sie die Verbindung beenden und neu aufbauen, damit die Änderungen wirksam werden.
|
index_desc=Die folgenden Einstellungen gelten für jede neue ADSL-Verbindung, die von Ihrem System hergestellt wird. Wenn Sie sie ändern, muss die Verbindung beendet und neu gestartet werden, damit die Änderungen wirksam werden.
|
||||||
index_eth=Netzwerkinterface
|
index_eth=Ethernet-Schnittstelle
|
||||||
index_other=Andere ...
|
index_other=Andere..
|
||||||
index_demand=Verbindung auf Wunsch?
|
index_demand=Bei Bedarf verbinden?
|
||||||
index_timeout=Ja, mit Timeout
|
index_timeout=Ja, mit Timeout
|
||||||
index_secs=Sekunden
|
index_secs=Sekunden
|
||||||
index_user=Anmelden als Benutzer
|
index_user=Anmelden als Benutzer
|
||||||
index_sec=Anmelden mit Passwort
|
index_sec=Anmelden mit Passwort
|
||||||
index_dns=DNS-Konfiguration des ISP übernehmen?
|
index_dns=DNS-Konfiguration vom ISP abrufen?
|
||||||
index_save=Konfiguration speichern
|
index_save=Konfiguration speichern
|
||||||
index_mss=Paketgröße einschränken?
|
index_mss=Paketgröße begrenzen?
|
||||||
index_psize=Ja, auf
|
index_psize=Ja, auf
|
||||||
index_bytes=Bytes
|
index_bytes=Bytes
|
||||||
index_fw=Firewall bei Verbindung hochfahren
|
index_fw=Firewall bei Verbindung aktivieren
|
||||||
index_fw_none=Keine
|
index_fw_none=Keine
|
||||||
index_fw_standalone=Für diesen Rechner
|
index_fw_standalone=Für Einzelrechner
|
||||||
index_fw_masquerade=Für ein NAT-Gateway
|
index_fw_masquerade=Für NAT-Gateway
|
||||||
index_connect=Konfigurierbare Dauer der Verbindung
|
index_connect=Verbindungsversuch für
|
||||||
index_forever=Immer
|
index_forever=Unbegrenzt
|
||||||
|
|
||||||
start_err=Konnte ADSL-Verbindung nicht starten
|
start_err=Fehler beim Starten der ADSL-Verbindung
|
||||||
start_title=Starte ADSL-Verbindung
|
start_title=ADSL starten
|
||||||
start_ip=Eine ADSL-Verbindung wurde eingerichtet. Derzeitige IP-Adresse: $1.
|
start_ip=Eine ADSL-Verbindung wurde mit der IP-Adresse $1 hergestellt.
|
||||||
start_demand=Da Sie "Verbindung auf Wunsch" angewählt haben, wird Ihre ADSL-Verbindung nur dann aktiviert, wenn diese benötigt wird.
|
start_demand=Da der Modus „Bei Bedarf verbinden“ aktiviert ist, wird Ihre ADSL-Verbindung nur bei Bedarf gestartet.
|
||||||
start_bg=Die ADSL-Verbindung konnte nicht innerhalb von 20 Sekunden aktiviert werden. Der ADSL-Client wird es solange versuchen, bis es klappt.
|
start_bg=Die ADSL-Verbindung wurde innerhalb von 20 Sekunden nicht gestartet. Der ADSL-Client wird weiterhin im Hintergrund versuchen, die Verbindung herzustellen, bis sie erfolgreich ist.
|
||||||
|
|
||||||
save_err=Konnte ADSL-Verbindung nicht speichern
|
save_err=Fehler beim Speichern der ADSL-Konfiguration
|
||||||
save_eeth=Fehlende oder ungültige aussehende Ethernetschnittstelle
|
save_eeth=Fehlende oder ungültige Ethernet-Schnittstelle
|
||||||
save_etimeout=Fehlendes oder ungültige "Verbindung auf Wunsch"-Zeitangabe (timeout)
|
save_etimeout=Fehlender oder ungültiger Timeout für On-Demand-Verbindung
|
||||||
save_euser=Fehlender oder ungültiger Benutzername
|
save_euser=Fehlender oder ungültiger Benutzername
|
||||||
save_econnect=Fehlendes oder ungültiges "timeout"
|
save_econnect=Fehlender oder ungültiger Timeout für Verbindungsaufbau
|
||||||
save_emss=Fehlende oder ungültige Maximum-Paketgröße
|
save_emss=Fehlende oder ungültige maximale Paketgröße
|
||||||
save_title=Konfiguration speichern
|
save_title=Konfiguration speichern
|
||||||
save_desc=Ihre ADSL-Client-Konfiguration wurde erfolgreich gespeichert, wird jedoch erst bei der nächsten Anmeldung/Anwahl aktiv.
|
save_desc=Ihre ADSL-Client-Konfiguration wurde erfolgreich gespeichert, wird jedoch erst verwendet, wenn Sie die Verbindung erneut herstellen.
|
||||||
|
|
||||||
stop_err=Konnte ADSL-Verbindung nicht beenden
|
stop_err=Fehler beim Beenden der ADSL-Verbindung
|
||||||
stop_title=Beende ADSL-Verbindung
|
stop_title=ADSL beenden
|
||||||
stop_ok=Ihre ADSL-Verbindung wurde erfolgreich beendet.
|
stop_ok=Ihre ADSL-Verbindung wurde erfolgreich beendet.
|
||||||
stop_failed=Ihre ADSL-Verbindung ist aus unerklärlichen Gründen immer noch aktiv!
|
stop_failed=Ihre ADSL-Verbindung ist aus irgendeinem Grund noch aktiv!
|
||||||
|
|
||||||
log_save=Client-Konfiguration gespeichert
|
log_save=Client-Konfiguration gespeichert
|
||||||
log_stop=ADSL-Verbindung beendet
|
log_stop=ADSL-Verbindung beendet
|
||||||
log_start=ADSL-Verbindung gestartet
|
log_start=ADSL-Verbindung gestartet
|
||||||
log_bootup=ADSL-Verbindung zur Bootzeit aktiviert
|
log_bootup=ADSL beim Systemstart aktiviert
|
||||||
log_bootdown=ADSL-Verbindung zur Bootzeit deaktiviert
|
log_bootdown=ADSL beim Systemstart deaktiviert
|
||||||
log_setup=Standard-Konfiguration angelegt
|
log_setup=Standardkonfiguration eingerichtet
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ index_esetup=在您的系统上不存在 Redhat ADSL 配置文件 $1,不过,
|
|||||||
index_setup=设定配置文件
|
index_setup=设定配置文件
|
||||||
index_cancel=取消连接
|
index_cancel=取消连接
|
||||||
index_canceldesc=ADSL客户端目前正在尝试连接,按此按钮可以使用 $1 命令来取消。
|
index_canceldesc=ADSL客户端目前正在尝试连接,按此按钮可以使用 $1 命令来取消。
|
||||||
|
index_cdemand=按需取消
|
||||||
|
index_cdemanddesc=ADSL客户端当前正在等待按需连接请求。单击此按钮停止连接请求 $1.
|
||||||
|
|
||||||
index_header=ADSL客户端配置选项
|
index_header=ADSL客户端配置选项
|
||||||
index_desc=下面的设定是用于在您系统上启动所有新的ADSL连接,如果您更改这里,连接必须先断开,然后再重新连接,修改内容才会生效。
|
index_desc=下面的设定是用于在您系统上启动所有新的ADSL连接,如果您更改这里,连接必须先断开,然后再重新连接,修改内容才会生效。
|
||||||
@@ -32,7 +34,7 @@ index_bytes=字节
|
|||||||
index_fw=连接时起用防火墙
|
index_fw=连接时起用防火墙
|
||||||
index_fw_none=无
|
index_fw_none=无
|
||||||
index_fw_standalone=用于单一主机
|
index_fw_standalone=用于单一主机
|
||||||
index_fw_masquerade=用于NAT gateway
|
index_fw_masquerade=用于NAT 网关
|
||||||
index_connect=尝试连接时间
|
index_connect=尝试连接时间
|
||||||
index_forever=永久连接
|
index_forever=永久连接
|
||||||
|
|
||||||
@@ -62,3 +64,5 @@ log_start=启动ADSL
|
|||||||
log_bootup=开机时自动启动ADSL
|
log_bootup=开机时自动启动ADSL
|
||||||
log_bootdown=关闭开机时自动启动ADSL
|
log_bootdown=关闭开机时自动启动ADSL
|
||||||
log_setup=设置为默认配置
|
log_setup=设置为默认配置
|
||||||
|
|
||||||
|
__norefs=1
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
index_cdemand=按需取消
|
|
||||||
index_cdemanddesc=ADSL客户端当前正在等待按需连接请求。单击此按钮可使用命令 $1停止它。
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
---- Changes since 1.550 ----
|
|
||||||
First version of this module, which allows shell logins without the need to use a separate SSH client or even run an SSH server.
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
= [http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm Ajaxterm] =
|
|
||||||
|
|
||||||
Ajaxterm is a web based terminal. It was totally inspired and works almost
|
|
||||||
exactly like http://anyterm.org/ except it's much easier to install (see
|
|
||||||
comparaison with anyterm below).
|
|
||||||
|
|
||||||
Ajaxterm written in python (and some AJAX javascript for client side) and depends only on python2.3 or better.[[BR]]
|
|
||||||
Ajaxterm is '''very simple to install''' on Linux, MacOS X, FreeBSD, Solaris, cygwin and any Unix that runs python2.3.[[BR]]
|
|
||||||
Ajaxterm was written by Antony Lesuisse (email: al AT udev.org), License Public Domain.
|
|
||||||
|
|
||||||
Use the [/qweb/forum/viewforum.php?id=2 Forum], if you have any question or remark.
|
|
||||||
|
|
||||||
== News ==
|
|
||||||
|
|
||||||
* 2006-10-29: v0.10 allow space in login, cgi launch fix, redhat init
|
|
||||||
* 2006-07-12: v0.9 change uid, daemon fix (Daniel Fischer)
|
|
||||||
* 2006-07-04: v0.8 add login support to ssh (Sven Geggus), change max width to 256
|
|
||||||
* 2006-05-31: v0.7 minor fixes, daemon option
|
|
||||||
* 2006-05-23: v0.6 Applied debian and gentoo patches, renamed to Ajaxterm, default port 8022
|
|
||||||
|
|
||||||
== Download and Install ==
|
|
||||||
|
|
||||||
* Release: [/qweb/files/Ajaxterm-0.10.tar.gz Ajaxterm-0.10.tar.gz]
|
|
||||||
* Browse src: [/qweb/trac/browser/trunk/ajaxterm/ ajaxterm/]
|
|
||||||
|
|
||||||
To install Ajaxterm issue the following commands:
|
|
||||||
{{{
|
|
||||||
wget http://antony.lesuisse.org/qweb/files/Ajaxterm-0.10.tar.gz
|
|
||||||
tar zxvf Ajaxterm-0.10.tar.gz
|
|
||||||
cd Ajaxterm-0.10
|
|
||||||
./ajaxterm.py
|
|
||||||
}}}
|
|
||||||
Then point your browser to this URL : http://localhost:8022/
|
|
||||||
|
|
||||||
== Screenshot ==
|
|
||||||
|
|
||||||
{{{
|
|
||||||
#!html
|
|
||||||
<center><img src="/qweb/trac/attachment/wiki/AjaxTerm/scr.png?format=raw" alt="ajaxterm screenshot" style=""/></center>
|
|
||||||
}}}
|
|
||||||
|
|
||||||
== Documentation and Caveats ==
|
|
||||||
|
|
||||||
* Ajaxterm only support latin1, if you use Ubuntu or any LANG==en_US.UTF-8 distribution don't forget to "unset LANG".
|
|
||||||
|
|
||||||
* If run as root ajaxterm will run /bin/login, otherwise it will run ssh
|
|
||||||
localhost. To use an other command use the -c option.
|
|
||||||
|
|
||||||
* By default Ajaxterm only listen at 127.0.0.1:8022. For remote access, it is
|
|
||||||
strongly recommended to use '''https SSL/TLS''', and that is simple to
|
|
||||||
configure if you use the apache web server using mod_proxy.[[BR]][[BR]]
|
|
||||||
Using ssl will also speed up ajaxterm (probably because of keepalive).[[BR]][[BR]]
|
|
||||||
Here is an configuration example:
|
|
||||||
|
|
||||||
{{{
|
|
||||||
Listen 443
|
|
||||||
NameVirtualHost *:443
|
|
||||||
|
|
||||||
<VirtualHost *:443>
|
|
||||||
ServerName localhost
|
|
||||||
SSLEngine On
|
|
||||||
SSLCertificateKeyFile ssl/apache.pem
|
|
||||||
SSLCertificateFile ssl/apache.pem
|
|
||||||
|
|
||||||
ProxyRequests Off
|
|
||||||
<Proxy *>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</Proxy>
|
|
||||||
ProxyPass /ajaxterm/ http://localhost:8022/
|
|
||||||
ProxyPassReverse /ajaxterm/ http://localhost:8022/
|
|
||||||
</VirtualHost>
|
|
||||||
}}}
|
|
||||||
|
|
||||||
* Using GET HTTP request seems to speed up ajaxterm, just click on GET in the
|
|
||||||
interface, but be warned that your keystrokes might be loggued (by apache or
|
|
||||||
any proxy). I usually enable it after the login.
|
|
||||||
|
|
||||||
* Ajaxterm commandline usage:
|
|
||||||
|
|
||||||
{{{
|
|
||||||
usage: ajaxterm.py [options]
|
|
||||||
|
|
||||||
options:
|
|
||||||
-h, --help show this help message and exit
|
|
||||||
-pPORT, --port=PORT Set the TCP port (default: 8022)
|
|
||||||
-cCMD, --command=CMD set the command (default: /bin/login or ssh localhost)
|
|
||||||
-l, --log log requests to stderr (default: quiet mode)
|
|
||||||
-d, --daemon run as daemon in the background
|
|
||||||
-PPIDFILE, --pidfile=PIDFILE
|
|
||||||
set the pidfile (default: /var/run/ajaxterm.pid)
|
|
||||||
-iINDEX_FILE, --index=INDEX_FILE
|
|
||||||
default index file (default: ajaxterm.html)
|
|
||||||
-uUID, --uid=UID Set the daemon's user id
|
|
||||||
}}}
|
|
||||||
|
|
||||||
* Ajaxterm was first written as a demo for qweb (my web framework), but
|
|
||||||
actually doesn't use many features of qweb.
|
|
||||||
|
|
||||||
* Compared to anyterm:
|
|
||||||
* There are no partial updates, ajaxterm updates either all the screen or
|
|
||||||
nothing. That make the code simpler and I also think it's faster. HTTP
|
|
||||||
replies are always gzencoded. When used in 80x25 mode, almost all of
|
|
||||||
them are below the 1500 bytes (size of an ethernet frame) and we just
|
|
||||||
replace the screen with the reply (no javascript string handling).
|
|
||||||
* Ajaxterm polls the server for updates with an exponentially growing
|
|
||||||
timeout when the screen hasn't changed. The timeout is also resetted as
|
|
||||||
soon as a key is pressed. Anyterm blocks on a pending request and use a
|
|
||||||
parallel connection for keypresses. The anyterm approch is better
|
|
||||||
when there aren't any keypress.
|
|
||||||
|
|
||||||
* Ajaxterm files are released in the Public Domain, (except [http://sarissa.sourceforge.net/doc/ sarissa*] which are LGPL).
|
|
||||||
|
|
||||||
== TODO ==
|
|
||||||
|
|
||||||
* insert mode ESC [ 4 h
|
|
||||||
* change size x,y from gui (sending signal)
|
|
||||||
* vt102 graphic codepage
|
|
||||||
* use innerHTML or prototype instead of sarissa
|
|
||||||
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
.TH ajaxterm "1" "May 2006" "ajaxterm 0.5" "User commands"
|
|
||||||
.SH NAME
|
|
||||||
ajaxterm \- Web based terminal written in python
|
|
||||||
|
|
||||||
.SH DESCRITPION
|
|
||||||
\fBajaxterm\fR is a web based terminal written in python and some AJAX
|
|
||||||
javascript for client side.
|
|
||||||
It can use almost any web browser and even works through firewalls.
|
|
||||||
|
|
||||||
.SH USAGE
|
|
||||||
\fBajaxterm.py\fR [options]
|
|
||||||
|
|
||||||
.SH OPTIONS
|
|
||||||
A summary of the options supported by \fBajaxterm\fR is included below.
|
|
||||||
\fB-h, --help\fR show this help message and exit
|
|
||||||
\fB-pPORT, --port=PORT\fR Set the TCP port (default: 8022)
|
|
||||||
\fB-cCMD, --command=CMD\fR set the command (default: /bin/login or ssh localhost)
|
|
||||||
\fB-l, --log\fR log requests to stderr (default: quiet mode)
|
|
||||||
|
|
||||||
.SH AUTHOR
|
|
||||||
Antony Lesuisse <al@udev.org>
|
|
||||||
|
|
||||||
This manual page was written for the Debian system by
|
|
||||||
Julien Valroff <julien@kirya.net> (but may be used by others).
|
|
||||||
|
|
||||||
.SH "REPORTING BUGS"
|
|
||||||
Report any bugs to the author: Antony Lesuisse <al@udev.org>
|
|
||||||
|
|
||||||
.SH COPYRIGHT
|
|
||||||
Copyright Antony Lesuisse <al@udev.org>
|
|
||||||
|
|
||||||
.SH SEE ALSO
|
|
||||||
- \fBajaxterm\fR wiki page: http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
|
|
||||||
.br
|
|
||||||
- \fBajaxterm\fR forum: http://antony.lesuisse.org/qweb/forum/viewforum.php?id=2
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
pre.stat {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 4px;
|
|
||||||
display: block;
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
background-color: black;
|
|
||||||
border-top: 1px solid black;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
pre.stat span {
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
pre.stat .on {
|
|
||||||
background-color: #080;
|
|
||||||
font-weight: bold;
|
|
||||||
color: white;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
pre.stat .off {
|
|
||||||
background-color: #888;
|
|
||||||
font-weight: bold;
|
|
||||||
color: white;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
pre.term {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 4px;
|
|
||||||
display: block;
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
background-color: black;
|
|
||||||
border-top: 1px solid white;
|
|
||||||
color: #eee;
|
|
||||||
}
|
|
||||||
pre.term span.f0 { color: #000; }
|
|
||||||
pre.term span.f1 { color: #b00; }
|
|
||||||
pre.term span.f2 { color: #0b0; }
|
|
||||||
pre.term span.f3 { color: #bb0; }
|
|
||||||
pre.term span.f4 { color: #00b; }
|
|
||||||
pre.term span.f5 { color: #b0b; }
|
|
||||||
pre.term span.f6 { color: #0bb; }
|
|
||||||
pre.term span.f7 { color: #bbb; }
|
|
||||||
pre.term span.f8 { color: #666; }
|
|
||||||
pre.term span.f9 { color: #f00; }
|
|
||||||
pre.term span.f10 { color: #0f0; }
|
|
||||||
pre.term span.f11 { color: #ff0; }
|
|
||||||
pre.term span.f12 { color: #00f; }
|
|
||||||
pre.term span.f13 { color: #f0f; }
|
|
||||||
pre.term span.f14 { color: #0ff; }
|
|
||||||
pre.term span.f15 { color: #fff; }
|
|
||||||
pre.term span.b0 { background-color: #000; }
|
|
||||||
pre.term span.b1 { background-color: #b00; }
|
|
||||||
pre.term span.b2 { background-color: #0b0; }
|
|
||||||
pre.term span.b3 { background-color: #bb0; }
|
|
||||||
pre.term span.b4 { background-color: #00b; }
|
|
||||||
pre.term span.b5 { background-color: #b0b; }
|
|
||||||
pre.term span.b6 { background-color: #0bb; }
|
|
||||||
pre.term span.b7 { background-color: #bbb; }
|
|
||||||
|
|
||||||
body { background-color: #ffffff; }
|
|
||||||
#term {
|
|
||||||
float: left;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 4px;
|
|
||||||
display: block;
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
background-color: black;
|
|
||||||
border-top: 1px solid white;
|
|
||||||
color: #eee;
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Ajaxterm</title>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="ajaxterm.css"/>
|
|
||||||
<script type="text/javascript" src="sarissa.js"></script>
|
|
||||||
<script type="text/javascript" src="sarissa_dhtml.js"></script>
|
|
||||||
<script type="text/javascript" src="ajaxterm.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
window.onload=function() {
|
|
||||||
t=ajaxterm.Terminal("term",80,25);
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="term"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,285 +0,0 @@
|
|||||||
ajaxterm={};
|
|
||||||
ajaxterm.Terminal_ctor=function(id,width,height) {
|
|
||||||
var ie=0;
|
|
||||||
if(window.ActiveXObject)
|
|
||||||
ie=1;
|
|
||||||
var sid=""+Math.round(Math.random()*1000000000);
|
|
||||||
var query0="s="+sid+"&w="+width+"&h="+height;
|
|
||||||
var query1=query0+"&c=1&k=";
|
|
||||||
var buf="";
|
|
||||||
var timeout;
|
|
||||||
var error_timeout;
|
|
||||||
var keybuf=[];
|
|
||||||
var sending=0;
|
|
||||||
var rmax=1;
|
|
||||||
|
|
||||||
var div=document.getElementById(id);
|
|
||||||
var dstat=document.createElement('pre');
|
|
||||||
var sled=document.createElement('span');
|
|
||||||
var opt_get=document.createElement('a');
|
|
||||||
var opt_color=document.createElement('a');
|
|
||||||
var opt_paste=document.createElement('a');
|
|
||||||
var sdebug=document.createElement('span');
|
|
||||||
var dterm=document.createElement('div');
|
|
||||||
|
|
||||||
function debug(s) {
|
|
||||||
sdebug.innerHTML=s;
|
|
||||||
}
|
|
||||||
function error() {
|
|
||||||
sled.className='off';
|
|
||||||
debug("Connection lost timeout ts:"+((new Date).getTime()));
|
|
||||||
}
|
|
||||||
function opt_add(opt,name) {
|
|
||||||
opt.className='off';
|
|
||||||
opt.innerHTML=' '+name+' ';
|
|
||||||
dstat.appendChild(opt);
|
|
||||||
dstat.appendChild(document.createTextNode(' '));
|
|
||||||
}
|
|
||||||
function do_get(event) {
|
|
||||||
opt_get.className=(opt_get.className=='off')?'on':'off';
|
|
||||||
debug('GET '+opt_get.className);
|
|
||||||
}
|
|
||||||
function do_color(event) {
|
|
||||||
var o=opt_color.className=(opt_color.className=='off')?'on':'off';
|
|
||||||
if(o=='on')
|
|
||||||
query1=query0+"&c=1&k=";
|
|
||||||
else
|
|
||||||
query1=query0+"&k=";
|
|
||||||
debug('Color '+opt_color.className);
|
|
||||||
}
|
|
||||||
function mozilla_clipboard() {
|
|
||||||
// mozilla sucks
|
|
||||||
try {
|
|
||||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
||||||
} catch (err) {
|
|
||||||
debug('Access denied, <a href="http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard" target="_blank">more info</a>');
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
|
|
||||||
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
|
|
||||||
if (!clip || !trans) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
trans.addDataFlavor("text/unicode");
|
|
||||||
clip.getData(trans,clip.kGlobalClipboard);
|
|
||||||
var str=new Object();
|
|
||||||
var strLength=new Object();
|
|
||||||
try {
|
|
||||||
trans.getTransferData("text/unicode",str,strLength);
|
|
||||||
} catch(err) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
if (str) {
|
|
||||||
str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
|
|
||||||
}
|
|
||||||
if (str) {
|
|
||||||
return str.data.substring(0,strLength.value / 2);
|
|
||||||
} else {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function do_paste(event) {
|
|
||||||
var p=undefined;
|
|
||||||
if (window.clipboardData) {
|
|
||||||
p=window.clipboardData.getData("Text");
|
|
||||||
} else if(window.netscape) {
|
|
||||||
p=mozilla_clipboard();
|
|
||||||
}
|
|
||||||
if (p) {
|
|
||||||
debug('Pasted');
|
|
||||||
queue(encodeURIComponent(p));
|
|
||||||
} else {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function update() {
|
|
||||||
// debug("ts: "+((new Date).getTime())+" rmax:"+rmax);
|
|
||||||
if(sending==0) {
|
|
||||||
sending=1;
|
|
||||||
sled.className='on';
|
|
||||||
var r=new XMLHttpRequest();
|
|
||||||
var send="";
|
|
||||||
while(keybuf.length>0) {
|
|
||||||
send+=keybuf.pop();
|
|
||||||
}
|
|
||||||
var query=query1+send;
|
|
||||||
if(opt_get.className=='on') {
|
|
||||||
r.open("GET","u?"+query,true);
|
|
||||||
if(ie) {
|
|
||||||
r.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
r.open("POST","u",true);
|
|
||||||
}
|
|
||||||
r.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
|
|
||||||
r.onreadystatechange = function () {
|
|
||||||
// debug("xhr:"+((new Date).getTime())+" state:"+r.readyState+" status:"+r.status+" statusText:"+r.statusText);
|
|
||||||
if (r.readyState==4) {
|
|
||||||
if(r.status==200) {
|
|
||||||
window.clearTimeout(error_timeout);
|
|
||||||
de=r.responseXML.documentElement;
|
|
||||||
if(de.tagName=="pre") {
|
|
||||||
if(ie) {
|
|
||||||
Sarissa.updateContentFromNode(de, dterm);
|
|
||||||
} else {
|
|
||||||
Sarissa.updateContentFromNode(de, dterm);
|
|
||||||
// old=div.firstChild;
|
|
||||||
// div.replaceChild(de,old);
|
|
||||||
}
|
|
||||||
rmax=100;
|
|
||||||
} else {
|
|
||||||
rmax*=2;
|
|
||||||
if(rmax>2000)
|
|
||||||
rmax=2000;
|
|
||||||
}
|
|
||||||
sending=0;
|
|
||||||
sled.className='off';
|
|
||||||
timeout=window.setTimeout(update,rmax);
|
|
||||||
} else {
|
|
||||||
debug("Connection error status:"+r.status);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
error_timeout=window.setTimeout(error,5000);
|
|
||||||
if(opt_get.className=='on') {
|
|
||||||
r.send(null);
|
|
||||||
} else {
|
|
||||||
r.send(query);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function queue(s) {
|
|
||||||
keybuf.unshift(s);
|
|
||||||
if(sending==0) {
|
|
||||||
window.clearTimeout(timeout);
|
|
||||||
timeout=window.setTimeout(update,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function keypress(ev) {
|
|
||||||
if (!ev) var ev=window.event;
|
|
||||||
// s="kp keyCode="+ev.keyCode+" which="+ev.which+" shiftKey="+ev.shiftKey+" ctrlKey="+ev.ctrlKey+" altKey="+ev.altKey;
|
|
||||||
// debug(s);
|
|
||||||
// return false;
|
|
||||||
// else { if (!ev.ctrlKey || ev.keyCode==17) { return; }
|
|
||||||
var kc;
|
|
||||||
var k="";
|
|
||||||
if (ev.keyCode)
|
|
||||||
kc=ev.keyCode;
|
|
||||||
if (ev.which)
|
|
||||||
kc=ev.which;
|
|
||||||
if (ev.altKey) {
|
|
||||||
if (kc>=65 && kc<=90)
|
|
||||||
kc+=32;
|
|
||||||
if (kc>=97 && kc<=122) {
|
|
||||||
k=String.fromCharCode(27)+String.fromCharCode(kc);
|
|
||||||
}
|
|
||||||
} else if (ev.ctrlKey) {
|
|
||||||
if (kc>=65 && kc<=90) k=String.fromCharCode(kc-64); // Ctrl-A..Z
|
|
||||||
else if (kc>=97 && kc<=122) k=String.fromCharCode(kc-96); // Ctrl-A..Z
|
|
||||||
else if (kc==54) k=String.fromCharCode(30); // Ctrl-^
|
|
||||||
else if (kc==109) k=String.fromCharCode(31); // Ctrl-_
|
|
||||||
else if (kc==219) k=String.fromCharCode(27); // Ctrl-[
|
|
||||||
else if (kc==220) k=String.fromCharCode(28); // Ctrl-\
|
|
||||||
else if (kc==221) k=String.fromCharCode(29); // Ctrl-]
|
|
||||||
else if (kc==219) k=String.fromCharCode(29); // Ctrl-]
|
|
||||||
else if (kc==219) k=String.fromCharCode(0); // Ctrl-@
|
|
||||||
} else if (ev.which==0) {
|
|
||||||
if (kc==9) k=String.fromCharCode(9); // Tab
|
|
||||||
else if (kc==8) k=String.fromCharCode(127); // Backspace
|
|
||||||
else if (kc==27) k=String.fromCharCode(27); // Escape
|
|
||||||
else {
|
|
||||||
if (kc==33) k="[5~"; // PgUp
|
|
||||||
else if (kc==34) k="[6~"; // PgDn
|
|
||||||
else if (kc==35) k="[4~"; // End
|
|
||||||
else if (kc==36) k="[1~"; // Home
|
|
||||||
else if (kc==37) k="[D"; // Left
|
|
||||||
else if (kc==38) k="[A"; // Up
|
|
||||||
else if (kc==39) k="[C"; // Right
|
|
||||||
else if (kc==40) k="[B"; // Down
|
|
||||||
else if (kc==45) k="[2~"; // Ins
|
|
||||||
else if (kc==46) k="[3~"; // Del
|
|
||||||
else if (kc==112) k="[[A"; // F1
|
|
||||||
else if (kc==113) k="[[B"; // F2
|
|
||||||
else if (kc==114) k="[[C"; // F3
|
|
||||||
else if (kc==115) k="[[D"; // F4
|
|
||||||
else if (kc==116) k="[[E"; // F5
|
|
||||||
else if (kc==117) k="[17~"; // F6
|
|
||||||
else if (kc==118) k="[18~"; // F7
|
|
||||||
else if (kc==119) k="[19~"; // F8
|
|
||||||
else if (kc==120) k="[20~"; // F9
|
|
||||||
else if (kc==121) k="[21~"; // F10
|
|
||||||
else if (kc==122) k="[23~"; // F11
|
|
||||||
else if (kc==123) k="[24~"; // F12
|
|
||||||
if (k.length) {
|
|
||||||
k=String.fromCharCode(27)+k;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (kc==8)
|
|
||||||
k=String.fromCharCode(127); // Backspace
|
|
||||||
else
|
|
||||||
k=String.fromCharCode(kc);
|
|
||||||
}
|
|
||||||
if(k.length) {
|
|
||||||
// queue(encodeURIComponent(k));
|
|
||||||
if(k=="+") {
|
|
||||||
queue("%2B");
|
|
||||||
} else {
|
|
||||||
queue(escape(k));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ev.cancelBubble=true;
|
|
||||||
if (ev.stopPropagation) ev.stopPropagation();
|
|
||||||
if (ev.preventDefault) ev.preventDefault();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
function keydown(ev) {
|
|
||||||
if (!ev) var ev=window.event;
|
|
||||||
if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 17 ||
|
|
||||||
ev.ctrlKey) {
|
|
||||||
// In chrome, keypress isn't called for backspace,
|
|
||||||
// escape or ctrl-something
|
|
||||||
return keypress(ev);
|
|
||||||
}
|
|
||||||
if (ie) {
|
|
||||||
// s="kd keyCode="+ev.keyCode+" which="+ev.which+" shiftKey="+ev.shiftKey+" ctrlKey="+ev.ctrlKey+" altKey="+ev.altKey;
|
|
||||||
// debug(s);
|
|
||||||
o={9:1,8:1,27:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,45:1,46:1,112:1,
|
|
||||||
113:1,114:1,115:1,116:1,117:1,118:1,119:1,120:1,121:1,122:1,123:1};
|
|
||||||
if (o[ev.keyCode] || ev.ctrlKey || ev.altKey) {
|
|
||||||
ev.which=0;
|
|
||||||
return keypress(ev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function init() {
|
|
||||||
sled.appendChild(document.createTextNode('\xb7'));
|
|
||||||
sled.className='off';
|
|
||||||
dstat.appendChild(sled);
|
|
||||||
dstat.appendChild(document.createTextNode(' '));
|
|
||||||
opt_add(opt_color,'Colors');
|
|
||||||
opt_color.className='on';
|
|
||||||
opt_add(opt_get,'GET');
|
|
||||||
opt_add(opt_paste,'Paste');
|
|
||||||
dstat.appendChild(sdebug);
|
|
||||||
dstat.className='stat';
|
|
||||||
div.appendChild(dstat);
|
|
||||||
div.appendChild(dterm);
|
|
||||||
if(opt_color.addEventListener) {
|
|
||||||
opt_get.addEventListener('click',do_get,true);
|
|
||||||
opt_color.addEventListener('click',do_color,true);
|
|
||||||
opt_paste.addEventListener('click',do_paste,true);
|
|
||||||
} else {
|
|
||||||
opt_get.attachEvent("onclick", do_get);
|
|
||||||
opt_color.attachEvent("onclick", do_color);
|
|
||||||
opt_paste.attachEvent("onclick", do_paste);
|
|
||||||
}
|
|
||||||
document.onkeypress=keypress;
|
|
||||||
document.onkeydown=keydown;
|
|
||||||
timeout=window.setTimeout(update,100);
|
|
||||||
}
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
ajaxterm.Terminal=function(id,width,height) {
|
|
||||||
return new this.Terminal_ctor(id,width,height);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,567 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
""" Ajaxterm """
|
|
||||||
|
|
||||||
import array,cgi,fcntl,glob,mimetypes,optparse,os,pty,random,re,signal,select,sys,threading,time,termios,struct,pwd
|
|
||||||
|
|
||||||
os.chdir(os.path.normpath(os.path.dirname(__file__)))
|
|
||||||
# Optional: Add QWeb in sys path
|
|
||||||
sys.path[0:0]=glob.glob('../../python')
|
|
||||||
|
|
||||||
import qweb
|
|
||||||
|
|
||||||
class Terminal:
|
|
||||||
def __init__(self,width=80,height=24):
|
|
||||||
self.width=width
|
|
||||||
self.height=height
|
|
||||||
self.init()
|
|
||||||
self.reset()
|
|
||||||
def init(self):
|
|
||||||
self.esc_seq={
|
|
||||||
"\x00": None,
|
|
||||||
"\x05": self.esc_da,
|
|
||||||
"\x07": None,
|
|
||||||
"\x08": self.esc_0x08,
|
|
||||||
"\x09": self.esc_0x09,
|
|
||||||
"\x0a": self.esc_0x0a,
|
|
||||||
"\x0b": self.esc_0x0a,
|
|
||||||
"\x0c": self.esc_0x0a,
|
|
||||||
"\x0d": self.esc_0x0d,
|
|
||||||
"\x0e": None,
|
|
||||||
"\x0f": None,
|
|
||||||
"\x1b#8": None,
|
|
||||||
"\x1b=": None,
|
|
||||||
"\x1b>": None,
|
|
||||||
"\x1b(0": None,
|
|
||||||
"\x1b(A": None,
|
|
||||||
"\x1b(B": None,
|
|
||||||
"\x1b[c": self.esc_da,
|
|
||||||
"\x1b[0c": self.esc_da,
|
|
||||||
"\x1b]R": None,
|
|
||||||
"\x1b7": self.esc_save,
|
|
||||||
"\x1b8": self.esc_restore,
|
|
||||||
"\x1bD": None,
|
|
||||||
"\x1bE": None,
|
|
||||||
"\x1bH": None,
|
|
||||||
"\x1bM": self.esc_ri,
|
|
||||||
"\x1bN": None,
|
|
||||||
"\x1bO": None,
|
|
||||||
"\x1bZ": self.esc_da,
|
|
||||||
"\x1ba": None,
|
|
||||||
"\x1bc": self.reset,
|
|
||||||
"\x1bn": None,
|
|
||||||
"\x1bo": None,
|
|
||||||
}
|
|
||||||
for k,v in self.esc_seq.items():
|
|
||||||
if v==None:
|
|
||||||
self.esc_seq[k]=self.esc_ignore
|
|
||||||
# regex
|
|
||||||
d={
|
|
||||||
r'\[\??([0-9;]*)([@ABCDEFGHJKLMPXacdefghlmnqrstu`])' : self.csi_dispatch,
|
|
||||||
r'\]([^\x07]+)\x07' : self.esc_ignore,
|
|
||||||
}
|
|
||||||
self.esc_re=[]
|
|
||||||
for k,v in d.items():
|
|
||||||
self.esc_re.append((re.compile('\x1b'+k),v))
|
|
||||||
# define csi sequences
|
|
||||||
self.csi_seq={
|
|
||||||
'@': (self.csi_at,[1]),
|
|
||||||
'`': (self.csi_G,[1]),
|
|
||||||
'J': (self.csi_J,[0]),
|
|
||||||
'K': (self.csi_K,[0]),
|
|
||||||
}
|
|
||||||
for i in [i[4] for i in dir(self) if i.startswith('csi_') and len(i)==5]:
|
|
||||||
if not self.csi_seq.has_key(i):
|
|
||||||
self.csi_seq[i]=(getattr(self,'csi_'+i),[1])
|
|
||||||
# Init 0-256 to latin1 and html translation table
|
|
||||||
self.trl1=""
|
|
||||||
for i in range(256):
|
|
||||||
if i<32:
|
|
||||||
self.trl1+=" "
|
|
||||||
elif i<127 or i>160:
|
|
||||||
self.trl1+=chr(i)
|
|
||||||
else:
|
|
||||||
self.trl1+="?"
|
|
||||||
self.trhtml=""
|
|
||||||
for i in range(256):
|
|
||||||
if i==0x0a or (i>32 and i<127) or i>160:
|
|
||||||
self.trhtml+=chr(i)
|
|
||||||
elif i<=32:
|
|
||||||
self.trhtml+="\xa0"
|
|
||||||
else:
|
|
||||||
self.trhtml+="?"
|
|
||||||
def reset(self,s=""):
|
|
||||||
self.scr=array.array('i',[0x000700]*(self.width*self.height))
|
|
||||||
self.st=0
|
|
||||||
self.sb=self.height-1
|
|
||||||
self.cx_bak=self.cx=0
|
|
||||||
self.cy_bak=self.cy=0
|
|
||||||
self.cl=0
|
|
||||||
self.sgr=0x000700
|
|
||||||
self.buf=""
|
|
||||||
self.outbuf=""
|
|
||||||
self.last_html=""
|
|
||||||
def peek(self,y1,x1,y2,x2):
|
|
||||||
return self.scr[self.width*y1+x1:self.width*y2+x2]
|
|
||||||
def poke(self,y,x,s):
|
|
||||||
pos=self.width*y+x
|
|
||||||
self.scr[pos:pos+len(s)]=s
|
|
||||||
def zero(self,y1,x1,y2,x2):
|
|
||||||
w=self.width*(y2-y1)+x2-x1+1
|
|
||||||
z=array.array('i',[0x000700]*w)
|
|
||||||
self.scr[self.width*y1+x1:self.width*y2+x2+1]=z
|
|
||||||
def scroll_up(self,y1,y2):
|
|
||||||
self.poke(y1,0,self.peek(y1+1,0,y2,self.width))
|
|
||||||
self.zero(y2,0,y2,self.width-1)
|
|
||||||
def scroll_down(self,y1,y2):
|
|
||||||
self.poke(y1+1,0,self.peek(y1,0,y2-1,self.width))
|
|
||||||
self.zero(y1,0,y1,self.width-1)
|
|
||||||
def scroll_right(self,y,x):
|
|
||||||
self.poke(y,x+1,self.peek(y,x,y,self.width))
|
|
||||||
self.zero(y,x,y,x)
|
|
||||||
def cursor_down(self):
|
|
||||||
if self.cy>=self.st and self.cy<=self.sb:
|
|
||||||
self.cl=0
|
|
||||||
q,r=divmod(self.cy+1,self.sb+1)
|
|
||||||
if q:
|
|
||||||
self.scroll_up(self.st,self.sb)
|
|
||||||
self.cy=self.sb
|
|
||||||
else:
|
|
||||||
self.cy=r
|
|
||||||
def cursor_right(self):
|
|
||||||
q,r=divmod(self.cx+1,self.width)
|
|
||||||
if q:
|
|
||||||
self.cl=1
|
|
||||||
else:
|
|
||||||
self.cx=r
|
|
||||||
def echo(self,c):
|
|
||||||
if self.cl:
|
|
||||||
self.cursor_down()
|
|
||||||
self.cx=0
|
|
||||||
self.scr[(self.cy*self.width)+self.cx]=self.sgr|ord(c)
|
|
||||||
self.cursor_right()
|
|
||||||
def esc_0x08(self,s):
|
|
||||||
self.cx=max(0,self.cx-1)
|
|
||||||
def esc_0x09(self,s):
|
|
||||||
x=self.cx+8
|
|
||||||
q,r=divmod(x,8)
|
|
||||||
self.cx=(q*8)%self.width
|
|
||||||
def esc_0x0a(self,s):
|
|
||||||
self.cursor_down()
|
|
||||||
def esc_0x0d(self,s):
|
|
||||||
self.cl=0
|
|
||||||
self.cx=0
|
|
||||||
def esc_save(self,s):
|
|
||||||
self.cx_bak=self.cx
|
|
||||||
self.cy_bak=self.cy
|
|
||||||
def esc_restore(self,s):
|
|
||||||
self.cx=self.cx_bak
|
|
||||||
self.cy=self.cy_bak
|
|
||||||
self.cl=0
|
|
||||||
def esc_da(self,s):
|
|
||||||
self.outbuf="\x1b[?6c"
|
|
||||||
def esc_ri(self,s):
|
|
||||||
self.cy=max(self.st,self.cy-1)
|
|
||||||
if self.cy==self.st:
|
|
||||||
self.scroll_down(self.st,self.sb)
|
|
||||||
def esc_ignore(self,*s):
|
|
||||||
pass
|
|
||||||
# print "term:ignore: %s"%repr(s)
|
|
||||||
def csi_dispatch(self,seq,mo):
|
|
||||||
# CSI sequences
|
|
||||||
s=mo.group(1)
|
|
||||||
c=mo.group(2)
|
|
||||||
f=self.csi_seq.get(c,None)
|
|
||||||
if f:
|
|
||||||
try:
|
|
||||||
l=[min(int(i),1024) for i in s.split(';') if len(i)<4]
|
|
||||||
except ValueError:
|
|
||||||
l=[]
|
|
||||||
if len(l)==0:
|
|
||||||
l=f[1]
|
|
||||||
f[0](l)
|
|
||||||
# else:
|
|
||||||
# print 'csi ignore',c,l
|
|
||||||
def csi_at(self,l):
|
|
||||||
for i in range(l[0]):
|
|
||||||
self.scroll_right(self.cy,self.cx)
|
|
||||||
def csi_A(self,l):
|
|
||||||
self.cy=max(self.st,self.cy-l[0])
|
|
||||||
def csi_B(self,l):
|
|
||||||
self.cy=min(self.sb,self.cy+l[0])
|
|
||||||
def csi_C(self,l):
|
|
||||||
self.cx=min(self.width-1,self.cx+l[0])
|
|
||||||
self.cl=0
|
|
||||||
def csi_D(self,l):
|
|
||||||
self.cx=max(0,self.cx-l[0])
|
|
||||||
self.cl=0
|
|
||||||
def csi_E(self,l):
|
|
||||||
self.csi_B(l)
|
|
||||||
self.cx=0
|
|
||||||
self.cl=0
|
|
||||||
def csi_F(self,l):
|
|
||||||
self.csi_A(l)
|
|
||||||
self.cx=0
|
|
||||||
self.cl=0
|
|
||||||
def csi_G(self,l):
|
|
||||||
self.cx=min(self.width,l[0])-1
|
|
||||||
def csi_H(self,l):
|
|
||||||
if len(l)<2: l=[1,1]
|
|
||||||
self.cx=min(self.width,l[1])-1
|
|
||||||
self.cy=min(self.height,l[0])-1
|
|
||||||
self.cl=0
|
|
||||||
def csi_J(self,l):
|
|
||||||
if l[0]==0:
|
|
||||||
self.zero(self.cy,self.cx,self.height-1,self.width-1)
|
|
||||||
elif l[0]==1:
|
|
||||||
self.zero(0,0,self.cy,self.cx)
|
|
||||||
elif l[0]==2:
|
|
||||||
self.zero(0,0,self.height-1,self.width-1)
|
|
||||||
def csi_K(self,l):
|
|
||||||
if l[0]==0:
|
|
||||||
self.zero(self.cy,self.cx,self.cy,self.width-1)
|
|
||||||
elif l[0]==1:
|
|
||||||
self.zero(self.cy,0,self.cy,self.cx)
|
|
||||||
elif l[0]==2:
|
|
||||||
self.zero(self.cy,0,self.cy,self.width-1)
|
|
||||||
def csi_L(self,l):
|
|
||||||
for i in range(l[0]):
|
|
||||||
if self.cy<self.sb:
|
|
||||||
self.scroll_down(self.cy,self.sb)
|
|
||||||
def csi_M(self,l):
|
|
||||||
if self.cy>=self.st and self.cy<=self.sb:
|
|
||||||
for i in range(l[0]):
|
|
||||||
self.scroll_up(self.cy,self.sb)
|
|
||||||
def csi_P(self,l):
|
|
||||||
w,cx,cy=self.width,self.cx,self.cy
|
|
||||||
end=self.peek(cy,cx,cy,w)
|
|
||||||
self.csi_K([0])
|
|
||||||
self.poke(cy,cx,end[l[0]:])
|
|
||||||
def csi_X(self,l):
|
|
||||||
self.zero(self.cy,self.cx,self.cy,self.cx+l[0])
|
|
||||||
def csi_a(self,l):
|
|
||||||
self.csi_C(l)
|
|
||||||
def csi_c(self,l):
|
|
||||||
#'\x1b[?0c' 0-8 cursor size
|
|
||||||
pass
|
|
||||||
def csi_d(self,l):
|
|
||||||
self.cy=min(self.height,l[0])-1
|
|
||||||
def csi_e(self,l):
|
|
||||||
self.csi_B(l)
|
|
||||||
def csi_f(self,l):
|
|
||||||
self.csi_H(l)
|
|
||||||
def csi_h(self,l):
|
|
||||||
if l[0]==4:
|
|
||||||
pass
|
|
||||||
# print "insert on"
|
|
||||||
def csi_l(self,l):
|
|
||||||
if l[0]==4:
|
|
||||||
pass
|
|
||||||
# print "insert off"
|
|
||||||
def csi_m(self,l):
|
|
||||||
for i in l:
|
|
||||||
if i==0 or i==39 or i==49 or i==27:
|
|
||||||
self.sgr=0x000700
|
|
||||||
elif i==1:
|
|
||||||
self.sgr=(self.sgr|0x000800)
|
|
||||||
elif i==7:
|
|
||||||
self.sgr=0x070000
|
|
||||||
elif i>=30 and i<=37:
|
|
||||||
c=i-30
|
|
||||||
self.sgr=(self.sgr&0xff08ff)|(c<<8)
|
|
||||||
elif i>=40 and i<=47:
|
|
||||||
c=i-40
|
|
||||||
self.sgr=(self.sgr&0x00ffff)|(c<<16)
|
|
||||||
# else:
|
|
||||||
# print "CSI sgr ignore",l,i
|
|
||||||
# print 'sgr: %r %x'%(l,self.sgr)
|
|
||||||
def csi_r(self,l):
|
|
||||||
if len(l)<2: l=[0,self.height]
|
|
||||||
self.st=min(self.height-1,l[0]-1)
|
|
||||||
self.sb=min(self.height-1,l[1]-1)
|
|
||||||
self.sb=max(self.st,self.sb)
|
|
||||||
def csi_s(self,l):
|
|
||||||
self.esc_save(0)
|
|
||||||
def csi_u(self,l):
|
|
||||||
self.esc_restore(0)
|
|
||||||
def escape(self):
|
|
||||||
e=self.buf
|
|
||||||
if len(e)>32:
|
|
||||||
# print "error %r"%e
|
|
||||||
self.buf=""
|
|
||||||
elif e in self.esc_seq:
|
|
||||||
self.esc_seq[e](e)
|
|
||||||
self.buf=""
|
|
||||||
else:
|
|
||||||
for r,f in self.esc_re:
|
|
||||||
mo=r.match(e)
|
|
||||||
if mo:
|
|
||||||
f(e,mo)
|
|
||||||
self.buf=""
|
|
||||||
break
|
|
||||||
# if self.buf=='': print "ESC %r\n"%e
|
|
||||||
def write(self,s):
|
|
||||||
for i in s:
|
|
||||||
if len(self.buf) or (i in self.esc_seq):
|
|
||||||
self.buf+=i
|
|
||||||
self.escape()
|
|
||||||
elif i == '\x1b':
|
|
||||||
self.buf+=i
|
|
||||||
else:
|
|
||||||
self.echo(i)
|
|
||||||
def read(self):
|
|
||||||
b=self.outbuf
|
|
||||||
self.outbuf=""
|
|
||||||
return b
|
|
||||||
def dump(self):
|
|
||||||
r=''
|
|
||||||
for i in self.scr:
|
|
||||||
r+=chr(i&255)
|
|
||||||
return r
|
|
||||||
def dumplatin1(self):
|
|
||||||
return self.dump().translate(self.trl1)
|
|
||||||
def dumphtml(self,color=1):
|
|
||||||
h=self.height
|
|
||||||
w=self.width
|
|
||||||
r=""
|
|
||||||
span=""
|
|
||||||
span_bg,span_fg=-1,-1
|
|
||||||
for i in range(h*w):
|
|
||||||
q,c=divmod(self.scr[i],256)
|
|
||||||
if color:
|
|
||||||
bg,fg=divmod(q,256)
|
|
||||||
else:
|
|
||||||
bg,fg=0,7
|
|
||||||
if i==self.cy*w+self.cx:
|
|
||||||
bg,fg=1,7
|
|
||||||
if (bg!=span_bg or fg!=span_fg or i==h*w-1):
|
|
||||||
if len(span):
|
|
||||||
r+='<span class="f%d b%d">%s</span>'%(span_fg,span_bg,cgi.escape(span.translate(self.trhtml)))
|
|
||||||
span=""
|
|
||||||
span_bg,span_fg=bg,fg
|
|
||||||
span+=chr(c)
|
|
||||||
if i%w==w-1:
|
|
||||||
span+='\n'
|
|
||||||
r='<?xml version="1.0" encoding="ISO-8859-1"?><pre class="term">%s</pre>'%r
|
|
||||||
if self.last_html==r:
|
|
||||||
return '<?xml version="1.0"?><idem></idem>'
|
|
||||||
else:
|
|
||||||
self.last_html=r
|
|
||||||
# print self
|
|
||||||
return r
|
|
||||||
def __repr__(self):
|
|
||||||
d=self.dumplatin1()
|
|
||||||
r=""
|
|
||||||
for i in range(self.height):
|
|
||||||
r+="|%s|\n"%d[self.width*i:self.width*(i+1)]
|
|
||||||
return r
|
|
||||||
|
|
||||||
class SynchronizedMethod:
|
|
||||||
def __init__(self,lock,orig):
|
|
||||||
self.lock=lock
|
|
||||||
self.orig=orig
|
|
||||||
def __call__(self,*l):
|
|
||||||
self.lock.acquire()
|
|
||||||
r=self.orig(*l)
|
|
||||||
self.lock.release()
|
|
||||||
return r
|
|
||||||
|
|
||||||
class Multiplex:
|
|
||||||
def __init__(self,cmd=None):
|
|
||||||
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
|
|
||||||
self.cmd=cmd
|
|
||||||
self.proc={}
|
|
||||||
self.lock=threading.RLock()
|
|
||||||
self.thread=threading.Thread(target=self.loop)
|
|
||||||
self.alive=1
|
|
||||||
# synchronize methods
|
|
||||||
for name in ['create','fds','proc_read','proc_write','dump','die','run']:
|
|
||||||
orig=getattr(self,name)
|
|
||||||
setattr(self,name,SynchronizedMethod(self.lock,orig))
|
|
||||||
self.thread.start()
|
|
||||||
def create(self,w=80,h=25):
|
|
||||||
pid,fd=pty.fork()
|
|
||||||
if pid==0:
|
|
||||||
try:
|
|
||||||
fdl=[int(i) for i in os.listdir('/proc/self/fd')]
|
|
||||||
except OSError:
|
|
||||||
fdl=range(256)
|
|
||||||
for i in [i for i in fdl if i>2]:
|
|
||||||
try:
|
|
||||||
os.close(i)
|
|
||||||
except OSError:
|
|
||||||
pass
|
|
||||||
if self.cmd:
|
|
||||||
cmd=['/bin/sh','-c',self.cmd]
|
|
||||||
elif os.getuid()==0:
|
|
||||||
cmd=['/bin/login']
|
|
||||||
else:
|
|
||||||
sys.stdout.write("Login: ")
|
|
||||||
login=sys.stdin.readline().strip()
|
|
||||||
if re.match('^[0-9A-Za-z-_. ]+$',login):
|
|
||||||
cmd=['ssh']
|
|
||||||
cmd+=['-oPreferredAuthentications=keyboard-interactive,password']
|
|
||||||
cmd+=['-oNoHostAuthenticationForLocalhost=yes']
|
|
||||||
cmd+=['-oLogLevel=FATAL']
|
|
||||||
cmd+=['-F/dev/null','-l',login,'localhost']
|
|
||||||
else:
|
|
||||||
os._exit(0)
|
|
||||||
env={}
|
|
||||||
env["COLUMNS"]=str(w)
|
|
||||||
env["LINES"]=str(h)
|
|
||||||
env["TERM"]="linux"
|
|
||||||
env["PATH"]=os.environ['PATH']
|
|
||||||
os.execvpe(cmd[0],cmd,env)
|
|
||||||
else:
|
|
||||||
fcntl.fcntl(fd, fcntl.F_SETFL, os.O_NONBLOCK)
|
|
||||||
# python bug http://python.org/sf/1112949 on amd64
|
|
||||||
fcntl.ioctl(fd, struct.unpack('i',struct.pack('I',termios.TIOCSWINSZ))[0], struct.pack("HHHH",h,w,0,0))
|
|
||||||
self.proc[fd]={'pid':pid,'term':Terminal(w,h),'buf':'','time':time.time()}
|
|
||||||
return fd
|
|
||||||
def die(self):
|
|
||||||
self.alive=0
|
|
||||||
def run(self):
|
|
||||||
return self.alive
|
|
||||||
def fds(self):
|
|
||||||
return self.proc.keys()
|
|
||||||
def proc_kill(self,fd):
|
|
||||||
if fd in self.proc:
|
|
||||||
self.proc[fd]['time']=0
|
|
||||||
t=time.time()
|
|
||||||
for i in self.proc.keys():
|
|
||||||
t0=self.proc[i]['time']
|
|
||||||
if (t-t0)>120:
|
|
||||||
try:
|
|
||||||
os.close(i)
|
|
||||||
os.kill(self.proc[i]['pid'],signal.SIGTERM)
|
|
||||||
except (IOError,OSError):
|
|
||||||
pass
|
|
||||||
del self.proc[i]
|
|
||||||
def proc_read(self,fd):
|
|
||||||
try:
|
|
||||||
t=self.proc[fd]['term']
|
|
||||||
t.write(os.read(fd,65536))
|
|
||||||
reply=t.read()
|
|
||||||
if reply:
|
|
||||||
os.write(fd,reply)
|
|
||||||
self.proc[fd]['time']=time.time()
|
|
||||||
except (KeyError,IOError,OSError):
|
|
||||||
self.proc_kill(fd)
|
|
||||||
def proc_write(self,fd,s):
|
|
||||||
try:
|
|
||||||
os.write(fd,s)
|
|
||||||
except (IOError,OSError):
|
|
||||||
self.proc_kill(fd)
|
|
||||||
def dump(self,fd,color=1):
|
|
||||||
try:
|
|
||||||
return self.proc[fd]['term'].dumphtml(color)
|
|
||||||
except KeyError:
|
|
||||||
return False
|
|
||||||
def loop(self):
|
|
||||||
while self.run():
|
|
||||||
fds=self.fds()
|
|
||||||
i,o,e=select.select(fds, [], [], 1.0)
|
|
||||||
for fd in i:
|
|
||||||
self.proc_read(fd)
|
|
||||||
if len(i):
|
|
||||||
time.sleep(0.002)
|
|
||||||
for i in self.proc.keys():
|
|
||||||
try:
|
|
||||||
os.close(i)
|
|
||||||
os.kill(self.proc[i]['pid'],signal.SIGTERM)
|
|
||||||
except (IOError,OSError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class AjaxTerm:
|
|
||||||
def __init__(self,cmd=None,index_file='ajaxterm.html'):
|
|
||||||
self.files={}
|
|
||||||
for i in ['css','html','js']:
|
|
||||||
for j in glob.glob('*.%s'%i):
|
|
||||||
self.files[j]=file(j).read()
|
|
||||||
self.files['index']=file(index_file).read()
|
|
||||||
self.mime = mimetypes.types_map.copy()
|
|
||||||
self.mime['.html']= 'text/html; charset=UTF-8'
|
|
||||||
self.multi = Multiplex(cmd)
|
|
||||||
self.session = {}
|
|
||||||
def __call__(self, environ, start_response):
|
|
||||||
req = qweb.QWebRequest(environ, start_response,session=None)
|
|
||||||
if req.PATH_INFO.endswith('/u'):
|
|
||||||
s=req.REQUEST["s"]
|
|
||||||
k=req.REQUEST["k"]
|
|
||||||
c=req.REQUEST["c"]
|
|
||||||
w=req.REQUEST.int("w")
|
|
||||||
h=req.REQUEST.int("h")
|
|
||||||
if s in self.session:
|
|
||||||
term=self.session[s]
|
|
||||||
else:
|
|
||||||
if not (w>2 and w<256 and h>2 and h<100):
|
|
||||||
w,h=80,25
|
|
||||||
term=self.session[s]=self.multi.create(w,h)
|
|
||||||
if k:
|
|
||||||
self.multi.proc_write(term,k)
|
|
||||||
time.sleep(0.002)
|
|
||||||
dump=self.multi.dump(term,c)
|
|
||||||
req.response_headers['Content-Type']='text/xml'
|
|
||||||
if isinstance(dump,str):
|
|
||||||
req.write(dump)
|
|
||||||
req.response_gzencode=1
|
|
||||||
else:
|
|
||||||
del self.session[s]
|
|
||||||
req.write('<?xml version="1.0"?><idem></idem>')
|
|
||||||
# print "sessions %r"%self.session
|
|
||||||
else:
|
|
||||||
n=os.path.basename(req.PATH_INFO)
|
|
||||||
if n in self.files:
|
|
||||||
req.response_headers['Content-Type'] = self.mime.get(os.path.splitext(n)[1].lower(), 'application/octet-stream')
|
|
||||||
req.write(self.files[n])
|
|
||||||
else:
|
|
||||||
req.response_headers['Content-Type'] = 'text/html; charset=UTF-8'
|
|
||||||
req.write(self.files['index'])
|
|
||||||
return req
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = optparse.OptionParser()
|
|
||||||
parser.add_option("-p", "--port", dest="port", default="8022", help="Set the TCP port (default: 8022)")
|
|
||||||
parser.add_option("-c", "--command", dest="cmd", default=None,help="set the command (default: /bin/login or ssh localhost)")
|
|
||||||
parser.add_option("-l", "--log", action="store_true", dest="log",default=0,help="log requests to stderr (default: quiet mode)")
|
|
||||||
parser.add_option("-d", "--daemon", action="store_true", dest="daemon", default=0, help="run as daemon in the background")
|
|
||||||
parser.add_option("-P", "--pidfile",dest="pidfile",default="/var/run/ajaxterm.pid",help="set the pidfile (default: /var/run/ajaxterm.pid)")
|
|
||||||
parser.add_option("-i", "--index", dest="index_file", default="ajaxterm.html",help="default index file (default: ajaxterm.html)")
|
|
||||||
parser.add_option("-u", "--uid", dest="uid", help="Set the daemon's user id")
|
|
||||||
(o, a) = parser.parse_args()
|
|
||||||
if o.daemon:
|
|
||||||
pid=os.fork()
|
|
||||||
if pid == 0:
|
|
||||||
#os.setsid() ?
|
|
||||||
os.setpgrp()
|
|
||||||
nullin = file('/dev/null', 'r')
|
|
||||||
nullout = file('/dev/null', 'w')
|
|
||||||
os.dup2(nullin.fileno(), sys.stdin.fileno())
|
|
||||||
os.dup2(nullout.fileno(), sys.stdout.fileno())
|
|
||||||
os.dup2(nullout.fileno(), sys.stderr.fileno())
|
|
||||||
if os.getuid()==0 and o.uid:
|
|
||||||
try:
|
|
||||||
os.setuid(int(o.uid))
|
|
||||||
except:
|
|
||||||
os.setuid(pwd.getpwnam(o.uid).pw_uid)
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
file(o.pidfile,'w+').write(str(pid)+'\n')
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
print 'AjaxTerm at http://localhost:%s/ pid: %d' % (o.port,pid)
|
|
||||||
sys.exit(0)
|
|
||||||
else:
|
|
||||||
print 'AjaxTerm at http://localhost:%s/' % o.port
|
|
||||||
at=AjaxTerm(o.cmd,o.index_file)
|
|
||||||
# f=lambda:os.system('firefox http://localhost:%s/&'%o.port)
|
|
||||||
# qweb.qweb_wsgi_autorun(at,ip='localhost',port=int(o.port),threaded=0,log=o.log,callback_ready=None)
|
|
||||||
try:
|
|
||||||
qweb.QWebWSGIServer(at,ip='localhost',port=int(o.port),threaded=0,log=o.log).serve_forever()
|
|
||||||
except KeyboardInterrupt,e:
|
|
||||||
sys.excepthook(*sys.exc_info())
|
|
||||||
at.multi.die()
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
||||||
32
ajaxterm/ajaxterm/configure
vendored
32
ajaxterm/ajaxterm/configure
vendored
@@ -1,32 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import optparse,os
|
|
||||||
|
|
||||||
parser = optparse.OptionParser()
|
|
||||||
parser.add_option("", "--prefix", dest="prefix",default="/usr/local",help="installation prefix (default: /usr/local)")
|
|
||||||
parser.add_option("", "--confdir", dest="confdir", default="/etc",help="configuration files directory prefix (default: /etc)")
|
|
||||||
parser.add_option("", "--port", dest="port", default="8022", help="set the listening TCP port (default: 8022)")
|
|
||||||
parser.add_option("", "--command", dest="cmd", default=None,help="set the command (default: /bin/login or ssh localhost)")
|
|
||||||
(o, a) = parser.parse_args()
|
|
||||||
|
|
||||||
print "Configuring prefix=",o.prefix," port=",o.port
|
|
||||||
|
|
||||||
etc=o.confdir
|
|
||||||
port=o.port
|
|
||||||
cmd=o.cmd
|
|
||||||
bin=os.path.join(o.prefix,"bin")
|
|
||||||
lib=os.path.join(o.prefix,"share/ajaxterm")
|
|
||||||
man=os.path.join(o.prefix,"share/man/man1")
|
|
||||||
|
|
||||||
file("ajaxterm.bin","w").write(file("configure.ajaxterm.bin").read()%locals())
|
|
||||||
file("Makefile","w").write(file("configure.makefile").read()%locals())
|
|
||||||
|
|
||||||
if os.path.isfile("/etc/gentoo-release"):
|
|
||||||
file("ajaxterm.initd","w").write(file("configure.initd.gentoo").read()%locals())
|
|
||||||
elif os.path.isfile("/etc/fedora-release") or os.path.isfile("/etc/redhat-release"):
|
|
||||||
file("ajaxterm.initd","w").write(file("configure.initd.redhat").read()%locals())
|
|
||||||
else:
|
|
||||||
file("ajaxterm.initd","w").write(file("configure.initd.debian").read()%locals())
|
|
||||||
|
|
||||||
os.system("chmod a+x ajaxterm.bin")
|
|
||||||
os.system("chmod a+x ajaxterm.initd")
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/sbin/runscript
|
|
||||||
|
|
||||||
# AjaxTerm Gentoo script, 08 May 2006 Mark Gillespie
|
|
||||||
|
|
||||||
DAEMON=%(bin)s/ajaxterm
|
|
||||||
PORT=%(port)s
|
|
||||||
PIDFILE=/var/run/ajaxterm.pid
|
|
||||||
|
|
||||||
depend()
|
|
||||||
{
|
|
||||||
need net
|
|
||||||
}
|
|
||||||
|
|
||||||
start()
|
|
||||||
{
|
|
||||||
ebegin "Starting AjaxTerm on port $PORT"
|
|
||||||
start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON -- --daemon --port=$PORT --uid=nobody
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
stop()
|
|
||||||
{
|
|
||||||
ebegin "Stopping AjaxTerm"
|
|
||||||
start-stop-daemon --stop --pidfile $PIDFILE
|
|
||||||
rm -f $PIDFILE
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
#
|
|
||||||
# ajaxterm Startup script for ajaxterm
|
|
||||||
#
|
|
||||||
# chkconfig: - 99 99
|
|
||||||
# description: Ajaxterm is a yadda yadda yadda
|
|
||||||
# processname: ajaxterm
|
|
||||||
# pidfile: /var/run/ajaxterm.pid
|
|
||||||
# version: 1.0 Kevin Reichhart - ajaxterminit at lastname dot org
|
|
||||||
|
|
||||||
# Source function library.
|
|
||||||
. /etc/rc.d/init.d/functions
|
|
||||||
|
|
||||||
if [ -f /etc/sysconfig/ajaxterm ]; then
|
|
||||||
. /etc/sysconfig/ajaxterm
|
|
||||||
fi
|
|
||||||
|
|
||||||
ajaxterm=/usr/local/bin/ajaxterm
|
|
||||||
prog=ajaxterm
|
|
||||||
pidfile=${PIDFILE-/var/run/ajaxterm.pid}
|
|
||||||
lockfile=${LOCKFILE-/var/lock/subsys/ajaxterm}
|
|
||||||
port=${PORT-8022}
|
|
||||||
user=${xUSER-nobody}
|
|
||||||
RETVAL=0
|
|
||||||
|
|
||||||
|
|
||||||
start() {
|
|
||||||
echo -n $"Starting $prog: "
|
|
||||||
daemon $ajaxterm --daemon --port=$port --uid=$user $OPTIONS
|
|
||||||
RETVAL=$?
|
|
||||||
echo
|
|
||||||
[ $RETVAL = 0 ] && touch ${lockfile}
|
|
||||||
return $RETVAL
|
|
||||||
}
|
|
||||||
stop() {
|
|
||||||
echo -n $"Stopping $prog: "
|
|
||||||
killproc $ajaxterm
|
|
||||||
RETVAL=$?
|
|
||||||
echo
|
|
||||||
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
|
|
||||||
}
|
|
||||||
reload() {
|
|
||||||
echo -n $"Reloading $prog: "
|
|
||||||
killproc $ajaxterm -HUP
|
|
||||||
RETVAL=$?
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
# See how we were called.
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
stop
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status python ajaxterm
|
|
||||||
RETVAL=$?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
stop
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
condrestart)
|
|
||||||
if [ -f ${pidfile} ] ; then
|
|
||||||
stop
|
|
||||||
start
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo $"Usage: $prog {start|stop|restart|condrestart}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
build:
|
|
||||||
true
|
|
||||||
|
|
||||||
install:
|
|
||||||
install -d "%(bin)s"
|
|
||||||
install -d "%(lib)s"
|
|
||||||
install ajaxterm.bin "%(bin)s/ajaxterm"
|
|
||||||
install ajaxterm.initd "%(etc)s/init.d/ajaxterm"
|
|
||||||
install -m 644 ajaxterm.css ajaxterm.html ajaxterm.js qweb.py sarissa.js sarissa_dhtml.js "%(lib)s"
|
|
||||||
install -m 755 ajaxterm.py "%(lib)s"
|
|
||||||
gzip --best -c ajaxterm.1 > ajaxterm.1.gz
|
|
||||||
install -d "%(man)s"
|
|
||||||
install ajaxterm.1.gz "%(man)s"
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm ajaxterm.bin
|
|
||||||
rm ajaxterm.initd
|
|
||||||
rm ajaxterm.1.gz
|
|
||||||
rm Makefile
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,653 +0,0 @@
|
|||||||
/**
|
|
||||||
* ====================================================================
|
|
||||||
* About
|
|
||||||
* ====================================================================
|
|
||||||
* Sarissa is an ECMAScript library acting as a cross-browser wrapper for native XML APIs.
|
|
||||||
* The library supports Gecko based browsers like Mozilla and Firefox,
|
|
||||||
* Internet Explorer (5.5+ with MSXML3.0+), Konqueror, Safari and a little of Opera
|
|
||||||
* @version 0.9.6.1
|
|
||||||
* @author: Manos Batsis, mailto: mbatsis at users full stop sourceforge full stop net
|
|
||||||
* ====================================================================
|
|
||||||
* Licence
|
|
||||||
* ====================================================================
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 or
|
|
||||||
* the GNU Lesser General Public License version 2.1 as published by
|
|
||||||
* the Free Software Foundation (your choice between the two).
|
|
||||||
*
|
|
||||||
* 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 or GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* or GNU Lesser General Public License along with this program; if not,
|
|
||||||
* write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
* or visit http://www.gnu.org
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* <p>Sarissa is a utility class. Provides "static" methods for DOMDocument and
|
|
||||||
* XMLHTTP objects, DOM Node serializatrion to XML strings and other goodies.</p>
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function Sarissa(){};
|
|
||||||
/** @private */
|
|
||||||
Sarissa.PARSED_OK = "Document contains no parsing errors";
|
|
||||||
/**
|
|
||||||
* Tells you whether transformNode and transformNodeToObject are available. This functionality
|
|
||||||
* is contained in sarissa_ieemu_xslt.js and is deprecated. If you want to control XSLT transformations
|
|
||||||
* use the XSLTProcessor
|
|
||||||
* @deprecated
|
|
||||||
* @type boolean
|
|
||||||
*/
|
|
||||||
Sarissa.IS_ENABLED_TRANSFORM_NODE = false;
|
|
||||||
/**
|
|
||||||
* tells you whether XMLHttpRequest (or equivalent) is available
|
|
||||||
* @type boolean
|
|
||||||
*/
|
|
||||||
Sarissa.IS_ENABLED_XMLHTTP = false;
|
|
||||||
/**
|
|
||||||
* tells you whether selectNodes/selectSingleNode is available
|
|
||||||
* @type boolean
|
|
||||||
*/
|
|
||||||
Sarissa.IS_ENABLED_SELECT_NODES = false;
|
|
||||||
var _sarissa_iNsCounter = 0;
|
|
||||||
var _SARISSA_IEPREFIX4XSLPARAM = "";
|
|
||||||
var _SARISSA_HAS_DOM_IMPLEMENTATION = document.implementation && true;
|
|
||||||
var _SARISSA_HAS_DOM_CREATE_DOCUMENT = _SARISSA_HAS_DOM_IMPLEMENTATION && document.implementation.createDocument;
|
|
||||||
var _SARISSA_HAS_DOM_FEATURE = _SARISSA_HAS_DOM_IMPLEMENTATION && document.implementation.hasFeature;
|
|
||||||
var _SARISSA_IS_MOZ = _SARISSA_HAS_DOM_CREATE_DOCUMENT && _SARISSA_HAS_DOM_FEATURE;
|
|
||||||
var _SARISSA_IS_SAFARI = (navigator.userAgent && navigator.vendor && (navigator.userAgent.toLowerCase().indexOf("applewebkit") != -1 || navigator.vendor.indexOf("Apple") != -1));
|
|
||||||
var _SARISSA_IS_IE = document.all && window.ActiveXObject && navigator.userAgent.toLowerCase().indexOf("msie") > -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1;
|
|
||||||
if(!window.Node || !window.Node.ELEMENT_NODE){
|
|
||||||
var Node = {ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NODE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12};
|
|
||||||
};
|
|
||||||
|
|
||||||
// IE initialization
|
|
||||||
if(_SARISSA_IS_IE){
|
|
||||||
// for XSLT parameter names, prefix needed by IE
|
|
||||||
_SARISSA_IEPREFIX4XSLPARAM = "xsl:";
|
|
||||||
// used to store the most recent ProgID available out of the above
|
|
||||||
var _SARISSA_DOM_PROGID = "";
|
|
||||||
var _SARISSA_XMLHTTP_PROGID = "";
|
|
||||||
/**
|
|
||||||
* Called when the Sarissa_xx.js file is parsed, to pick most recent
|
|
||||||
* ProgIDs for IE, then gets destroyed.
|
|
||||||
* @param idList an array of MSXML PROGIDs from which the most recent will be picked for a given object
|
|
||||||
* @param enabledList an array of arrays where each array has two items; the index of the PROGID for which a certain feature is enabled
|
|
||||||
*/
|
|
||||||
pickRecentProgID = function (idList, enabledList){
|
|
||||||
// found progID flag
|
|
||||||
var bFound = false;
|
|
||||||
for(var i=0; i < idList.length && !bFound; i++){
|
|
||||||
try{
|
|
||||||
var oDoc = new ActiveXObject(idList[i]);
|
|
||||||
o2Store = idList[i];
|
|
||||||
bFound = true;
|
|
||||||
for(var j=0;j<enabledList.length;j++)
|
|
||||||
if(i <= enabledList[j][1])
|
|
||||||
Sarissa["IS_ENABLED_"+enabledList[j][0]] = true;
|
|
||||||
}catch (objException){
|
|
||||||
// trap; try next progID
|
|
||||||
};
|
|
||||||
};
|
|
||||||
if (!bFound)
|
|
||||||
throw "Could not retreive a valid progID of Class: " + idList[idList.length-1]+". (original exception: "+e+")";
|
|
||||||
idList = null;
|
|
||||||
return o2Store;
|
|
||||||
};
|
|
||||||
// pick best available MSXML progIDs
|
|
||||||
_SARISSA_DOM_PROGID = pickRecentProgID(["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"], [["SELECT_NODES", 2],["TRANSFORM_NODE", 2]]);
|
|
||||||
_SARISSA_XMLHTTP_PROGID = pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], [["XMLHTTP", 4]]);
|
|
||||||
_SARISSA_THREADEDDOM_PROGID = pickRecentProgID(["Msxml2.FreeThreadedDOMDocument.5.0", "MSXML2.FreeThreadedDOMDocument.4.0", "MSXML2.FreeThreadedDOMDocument.3.0"]);
|
|
||||||
_SARISSA_XSLTEMPLATE_PROGID = pickRecentProgID(["Msxml2.XSLTemplate.5.0", "Msxml2.XSLTemplate.4.0", "MSXML2.XSLTemplate.3.0"], [["XSLTPROC", 2]]);
|
|
||||||
// we dont need this anymore
|
|
||||||
pickRecentProgID = null;
|
|
||||||
//============================================
|
|
||||||
// Factory methods (IE)
|
|
||||||
//============================================
|
|
||||||
// see non-IE version
|
|
||||||
Sarissa.getDomDocument = function(sUri, sName){
|
|
||||||
var oDoc = new ActiveXObject(_SARISSA_DOM_PROGID);
|
|
||||||
// if a root tag name was provided, we need to load it in the DOM
|
|
||||||
// object
|
|
||||||
if (sName){
|
|
||||||
// if needed, create an artifical namespace prefix the way Moz
|
|
||||||
// does
|
|
||||||
if (sUri){
|
|
||||||
oDoc.loadXML("<a" + _sarissa_iNsCounter + ":" + sName + " xmlns:a" + _sarissa_iNsCounter + "=\"" + sUri + "\" />");
|
|
||||||
// don't use the same prefix again
|
|
||||||
++_sarissa_iNsCounter;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
oDoc.loadXML("<" + sName + "/>");
|
|
||||||
};
|
|
||||||
return oDoc;
|
|
||||||
};
|
|
||||||
// see non-IE version
|
|
||||||
Sarissa.getParseErrorText = function (oDoc) {
|
|
||||||
var parseErrorText = Sarissa.PARSED_OK;
|
|
||||||
if(oDoc.parseError != 0){
|
|
||||||
parseErrorText = "XML Parsing Error: " + oDoc.parseError.reason +
|
|
||||||
"\nLocation: " + oDoc.parseError.url +
|
|
||||||
"\nLine Number " + oDoc.parseError.line + ", Column " +
|
|
||||||
oDoc.parseError.linepos +
|
|
||||||
":\n" + oDoc.parseError.srcText +
|
|
||||||
"\n";
|
|
||||||
for(var i = 0; i < oDoc.parseError.linepos;i++){
|
|
||||||
parseErrorText += "-";
|
|
||||||
};
|
|
||||||
parseErrorText += "^\n";
|
|
||||||
};
|
|
||||||
return parseErrorText;
|
|
||||||
};
|
|
||||||
// see non-IE version
|
|
||||||
Sarissa.setXpathNamespaces = function(oDoc, sNsSet) {
|
|
||||||
oDoc.setProperty("SelectionLanguage", "XPath");
|
|
||||||
oDoc.setProperty("SelectionNamespaces", sNsSet);
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Basic implementation of Mozilla's XSLTProcessor for IE.
|
|
||||||
* Reuses the same XSLT stylesheet for multiple transforms
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
XSLTProcessor = function(){
|
|
||||||
this.template = new ActiveXObject(_SARISSA_XSLTEMPLATE_PROGID);
|
|
||||||
this.processor = null;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Impoprts the given XSLT DOM and compiles it to a reusable transform
|
|
||||||
* @argument xslDoc The XSLT DOMDocument to import
|
|
||||||
*/
|
|
||||||
XSLTProcessor.prototype.importStylesheet = function(xslDoc){
|
|
||||||
// convert stylesheet to free threaded
|
|
||||||
var converted = new ActiveXObject(_SARISSA_THREADEDDOM_PROGID);
|
|
||||||
converted.loadXML(xslDoc.xml);
|
|
||||||
this.template.stylesheet = converted;
|
|
||||||
this.processor = this.template.createProcessor();
|
|
||||||
// (re)set default param values
|
|
||||||
this.paramsSet = new Array();
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Transform the given XML DOM
|
|
||||||
* @argument sourceDoc The XML DOMDocument to transform
|
|
||||||
* @return The transformation result as a DOM Document
|
|
||||||
*/
|
|
||||||
XSLTProcessor.prototype.transformToDocument = function(sourceDoc){
|
|
||||||
this.processor.input = sourceDoc;
|
|
||||||
var outDoc = new ActiveXObject(_SARISSA_DOM_PROGID);
|
|
||||||
this.processor.output = outDoc;
|
|
||||||
this.processor.transform();
|
|
||||||
return outDoc;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Set global XSLT parameter of the imported stylesheet
|
|
||||||
* @argument nsURI The parameter namespace URI
|
|
||||||
* @argument name The parameter base name
|
|
||||||
* @argument value The new parameter value
|
|
||||||
*/
|
|
||||||
XSLTProcessor.prototype.setParameter = function(nsURI, name, value){
|
|
||||||
/* nsURI is optional but cannot be null */
|
|
||||||
if(nsURI){
|
|
||||||
this.processor.addParameter(name, value, nsURI);
|
|
||||||
}else{
|
|
||||||
this.processor.addParameter(name, value);
|
|
||||||
};
|
|
||||||
/* update updated params for getParameter */
|
|
||||||
if(!this.paramsSet[""+nsURI]){
|
|
||||||
this.paramsSet[""+nsURI] = new Array();
|
|
||||||
};
|
|
||||||
this.paramsSet[""+nsURI][name] = value;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Gets a parameter if previously set by setParameter. Returns null
|
|
||||||
* otherwise
|
|
||||||
* @argument name The parameter base name
|
|
||||||
* @argument value The new parameter value
|
|
||||||
* @return The parameter value if reviously set by setParameter, null otherwise
|
|
||||||
*/
|
|
||||||
XSLTProcessor.prototype.getParameter = function(nsURI, name){
|
|
||||||
nsURI = nsURI || "";
|
|
||||||
if(nsURI in this.paramsSet && name in this.paramsSet[nsURI]){
|
|
||||||
return this.paramsSet[nsURI][name];
|
|
||||||
}else{
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else{ /* end IE initialization, try to deal with real browsers now ;-) */
|
|
||||||
if(_SARISSA_HAS_DOM_CREATE_DOCUMENT){
|
|
||||||
/**
|
|
||||||
* <p>Ensures the document was loaded correctly, otherwise sets the
|
|
||||||
* parseError to -1 to indicate something went wrong. Internal use</p>
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
Sarissa.__handleLoad__ = function(oDoc){
|
|
||||||
if (!oDoc.documentElement || oDoc.documentElement.tagName == "parsererror")
|
|
||||||
oDoc.parseError = -1;
|
|
||||||
Sarissa.__setReadyState__(oDoc, 4);
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* <p>Attached by an event handler to the load event. Internal use.</p>
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
_sarissa_XMLDocument_onload = function(){
|
|
||||||
Sarissa.__handleLoad__(this);
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* <p>Sets the readyState property of the given DOM Document object.
|
|
||||||
* Internal use.</p>
|
|
||||||
* @private
|
|
||||||
* @argument oDoc the DOM Document object to fire the
|
|
||||||
* readystatechange event
|
|
||||||
* @argument iReadyState the number to change the readystate property to
|
|
||||||
*/
|
|
||||||
Sarissa.__setReadyState__ = function(oDoc, iReadyState){
|
|
||||||
oDoc.readyState = iReadyState;
|
|
||||||
if (oDoc.onreadystatechange != null && typeof oDoc.onreadystatechange == "function")
|
|
||||||
oDoc.onreadystatechange();
|
|
||||||
};
|
|
||||||
Sarissa.getDomDocument = function(sUri, sName){
|
|
||||||
var oDoc = document.implementation.createDocument(sUri?sUri:"", sName?sName:"", null);
|
|
||||||
oDoc.addEventListener("load", _sarissa_XMLDocument_onload, false);
|
|
||||||
return oDoc;
|
|
||||||
};
|
|
||||||
if(window.XMLDocument){
|
|
||||||
/**
|
|
||||||
* <p>Emulate IE's onreadystatechange attribute</p>
|
|
||||||
*/
|
|
||||||
try {
|
|
||||||
XMLDocument.prototype.onreadystatechange = null;
|
|
||||||
} catch(err) {
|
|
||||||
// May fail on Chrome 43+
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* <p>Emulates IE's readyState property, which always gives an integer from 0 to 4:</p>
|
|
||||||
* <ul><li>1 == LOADING,</li>
|
|
||||||
* <li>2 == LOADED,</li>
|
|
||||||
* <li>3 == INTERACTIVE,</li>
|
|
||||||
* <li>4 == COMPLETED</li></ul>
|
|
||||||
*/
|
|
||||||
/* Doesn't work in Firefox 3.6
|
|
||||||
XMLDocument.prototype.readyState = 0;
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* <p>Emulate IE's parseError attribute</p>
|
|
||||||
*/
|
|
||||||
XMLDocument.prototype.parseError = 0;
|
|
||||||
|
|
||||||
// NOTE: setting async to false will only work with documents
|
|
||||||
// called over HTTP (meaning a server), not the local file system,
|
|
||||||
// unless you are using Moz 1.4+.
|
|
||||||
// BTW the try>catch block is for 1.4; I haven't found a way to check if
|
|
||||||
// the property is implemented without
|
|
||||||
// causing an error and I dont want to use user agent stuff for that...
|
|
||||||
var _SARISSA_SYNC_NON_IMPLEMENTED = false;// ("async" in XMLDocument.prototype) ? false: true;
|
|
||||||
/**
|
|
||||||
* <p>Keeps a handle to the original load() method. Internal use and only
|
|
||||||
* if Mozilla version is lower than 1.4</p>
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
XMLDocument.prototype._sarissa_load = XMLDocument.prototype.load;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Overrides the original load method to provide synchronous loading for
|
|
||||||
* Mozilla versions prior to 1.4, using an XMLHttpRequest object (if
|
|
||||||
* async is set to false)</p>
|
|
||||||
* @returns the DOM Object as it was before the load() call (may be empty)
|
|
||||||
*/
|
|
||||||
XMLDocument.prototype.load = function(sURI) {
|
|
||||||
var oDoc = document.implementation.createDocument("", "", null);
|
|
||||||
Sarissa.copyChildNodes(this, oDoc);
|
|
||||||
this.parseError = 0;
|
|
||||||
Sarissa.__setReadyState__(this, 1);
|
|
||||||
try {
|
|
||||||
if(this.async == false && _SARISSA_SYNC_NON_IMPLEMENTED) {
|
|
||||||
var tmp = new XMLHttpRequest();
|
|
||||||
tmp.open("GET", sURI, false);
|
|
||||||
tmp.send(null);
|
|
||||||
Sarissa.__setReadyState__(this, 2);
|
|
||||||
Sarissa.copyChildNodes(tmp.responseXML, this);
|
|
||||||
Sarissa.__setReadyState__(this, 3);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this._sarissa_load(sURI);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
catch (objException) {
|
|
||||||
this.parseError = -1;
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if(this.async == false){
|
|
||||||
Sarissa.__handleLoad__(this);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
return oDoc;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}//if(window.XMLDocument)
|
|
||||||
else if(document.implementation && document.implementation.hasFeature && document.implementation.hasFeature('LS', '3.0')){
|
|
||||||
Document.prototype.async = true;
|
|
||||||
Document.prototype.onreadystatechange = null;
|
|
||||||
Document.prototype.parseError = 0;
|
|
||||||
Document.prototype.load = function(sURI) {
|
|
||||||
var parser = document.implementation.createLSParser(this.async ? document.implementation.MODE_ASYNCHRONOUS : document.implementation.MODE_SYNCHRONOUS, null);
|
|
||||||
if(this.async){
|
|
||||||
var self = this;
|
|
||||||
parser.addEventListener("load",
|
|
||||||
function(e) {
|
|
||||||
self.readyState = 4;
|
|
||||||
Sarissa.copyChildNodes(e.newDocument, self.documentElement, false);
|
|
||||||
self.onreadystatechange.call();
|
|
||||||
},
|
|
||||||
false);
|
|
||||||
};
|
|
||||||
try {
|
|
||||||
var oDoc = parser.parseURI(sURI);
|
|
||||||
}
|
|
||||||
catch(e){
|
|
||||||
this.parseError = -1;
|
|
||||||
};
|
|
||||||
if(!this.async)
|
|
||||||
Sarissa.copyChildNodes(oDoc, this.documentElement, false);
|
|
||||||
return oDoc;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* <p>Factory method to obtain a new DOM Document object</p>
|
|
||||||
* @argument sUri the namespace of the root node (if any)
|
|
||||||
* @argument sUri the local name of the root node (if any)
|
|
||||||
* @returns a new DOM Document
|
|
||||||
*/
|
|
||||||
Sarissa.getDomDocument = function(sUri, sName){
|
|
||||||
return document.implementation.createDocument(sUri?sUri:"", sName?sName:"", null);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};//if(_SARISSA_HAS_DOM_CREATE_DOCUMENT)
|
|
||||||
};
|
|
||||||
//==========================================
|
|
||||||
// Common stuff
|
|
||||||
//==========================================
|
|
||||||
if(!window.DOMParser){
|
|
||||||
/*
|
|
||||||
* DOMParser is a utility class, used to construct DOMDocuments from XML strings
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
DOMParser = function() {
|
|
||||||
};
|
|
||||||
if(_SARISSA_IS_SAFARI){
|
|
||||||
/**
|
|
||||||
* Construct a new DOM Document from the given XMLstring
|
|
||||||
* @param sXml the given XML string
|
|
||||||
* @param contentType the content type of the document the given string represents (one of text/xml, application/xml, application/xhtml+xml).
|
|
||||||
* @return a new DOM Document from the given XML string
|
|
||||||
*/
|
|
||||||
DOMParser.prototype.parseFromString = function(sXml, contentType){
|
|
||||||
if(contentType.toLowerCase() != "application/xml"){
|
|
||||||
throw "Cannot handle content type: \"" + contentType + "\"";
|
|
||||||
};
|
|
||||||
var xmlhttp = new XMLHttpRequest();
|
|
||||||
xmlhttp.open("GET", "data:text/xml;charset=utf-8," + encodeURIComponent(str), false);
|
|
||||||
xmlhttp.send(null);
|
|
||||||
return xmlhttp.responseXML;
|
|
||||||
};
|
|
||||||
}else if(Sarissa.getDomDocument && Sarissa.getDomDocument() && "loadXML" in Sarissa.getDomDocument()){
|
|
||||||
DOMParser.prototype.parseFromString = function(sXml, contentType){
|
|
||||||
var doc = Sarissa.getDomDocument();
|
|
||||||
doc.loadXML(sXml);
|
|
||||||
return doc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
if(window.XMLHttpRequest){
|
|
||||||
Sarissa.IS_ENABLED_XMLHTTP = true;
|
|
||||||
}
|
|
||||||
else if(_SARISSA_IS_IE){
|
|
||||||
/**
|
|
||||||
* Emulate XMLHttpRequest
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
XMLHttpRequest = function() {
|
|
||||||
return new ActiveXObject(_SARISSA_XMLHTTP_PROGID);
|
|
||||||
};
|
|
||||||
Sarissa.IS_ENABLED_XMLHTTP = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
if(!window.document.importNode && _SARISSA_IS_IE){
|
|
||||||
try{
|
|
||||||
/**
|
|
||||||
* Implements importNode for the current window document in IE using innerHTML.
|
|
||||||
* Testing showed that DOM was multiple times slower than innerHTML for this,
|
|
||||||
* sorry folks. If you encounter trouble (who knows what IE does behind innerHTML)
|
|
||||||
* please gimme a call.
|
|
||||||
* @param oNode the Node to import
|
|
||||||
* @param bChildren whether to include the children of oNode
|
|
||||||
* @returns the imported node for further use
|
|
||||||
*/
|
|
||||||
window.document.importNode = function(oNode, bChildren){
|
|
||||||
var importNode = document.createElement("div");
|
|
||||||
if(bChildren)
|
|
||||||
importNode.innerHTML = Sarissa.serialize(oNode);
|
|
||||||
else
|
|
||||||
importNode.innerHTML = Sarissa.serialize(oNode.cloneNode(false));
|
|
||||||
return importNode.firstChild;
|
|
||||||
};
|
|
||||||
}catch(e){};
|
|
||||||
};
|
|
||||||
if(!Sarissa.getParseErrorText){
|
|
||||||
/**
|
|
||||||
* <p>Returns a human readable description of the parsing error. Usefull
|
|
||||||
* for debugging. Tip: append the returned error string in a <pre>
|
|
||||||
* element if you want to render it.</p>
|
|
||||||
* <p>Many thanks to Christian Stocker for the initial patch.</p>
|
|
||||||
* @argument oDoc The target DOM document
|
|
||||||
* @returns The parsing error description of the target Document in
|
|
||||||
* human readable form (preformated text)
|
|
||||||
*/
|
|
||||||
Sarissa.getParseErrorText = function (oDoc){
|
|
||||||
var parseErrorText = Sarissa.PARSED_OK;
|
|
||||||
if(oDoc && oDoc.parseError && oDoc.parseError != 0){
|
|
||||||
/*moz*/
|
|
||||||
if(oDoc.documentElement.tagName == "parsererror"){
|
|
||||||
parseErrorText = oDoc.documentElement.firstChild.data;
|
|
||||||
parseErrorText += "\n" + oDoc.documentElement.firstChild.nextSibling.firstChild.data;
|
|
||||||
}/*konq*/
|
|
||||||
else{
|
|
||||||
parseErrorText = Sarissa.getText(oDoc.documentElement);/*.getElementsByTagName("h1")[0], false) + "\n";
|
|
||||||
parseErrorText += Sarissa.getText(oDoc.documentElement.getElementsByTagName("body")[0], false) + "\n";
|
|
||||||
parseErrorText += Sarissa.getText(oDoc.documentElement.getElementsByTagName("pre")[0], false);*/
|
|
||||||
};
|
|
||||||
};
|
|
||||||
return parseErrorText;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
Sarissa.getText = function(oNode, deep){
|
|
||||||
var s = "";
|
|
||||||
var nodes = oNode.childNodes;
|
|
||||||
for(var i=0; i < nodes.length; i++){
|
|
||||||
var node = nodes[i];
|
|
||||||
var nodeType = node.nodeType;
|
|
||||||
if(nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE){
|
|
||||||
s += node.data;
|
|
||||||
}else if(deep == true
|
|
||||||
&& (nodeType == Node.ELEMENT_NODE
|
|
||||||
|| nodeType == Node.DOCUMENT_NODE
|
|
||||||
|| nodeType == Node.DOCUMENT_FRAGMENT_NODE)){
|
|
||||||
s += Sarissa.getText(node, true);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
return s;
|
|
||||||
};
|
|
||||||
if(window.XMLSerializer){
|
|
||||||
/**
|
|
||||||
* <p>Factory method to obtain the serialization of a DOM Node</p>
|
|
||||||
* @returns the serialized Node as an XML string
|
|
||||||
*/
|
|
||||||
Sarissa.serialize = function(oDoc){
|
|
||||||
var s = null;
|
|
||||||
if(oDoc){
|
|
||||||
s = oDoc.innerHTML?oDoc.innerHTML:(new XMLSerializer()).serializeToString(oDoc);
|
|
||||||
};
|
|
||||||
return s;
|
|
||||||
};
|
|
||||||
}else{
|
|
||||||
if(Sarissa.getDomDocument && (Sarissa.getDomDocument("","foo", null)).xml){
|
|
||||||
// see non-IE version
|
|
||||||
Sarissa.serialize = function(oDoc) {
|
|
||||||
var s = null;
|
|
||||||
if(oDoc){
|
|
||||||
s = oDoc.innerHTML?oDoc.innerHTML:oDoc.xml;
|
|
||||||
};
|
|
||||||
return s;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Utility class to serialize DOM Node objects to XML strings
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
XMLSerializer = function(){};
|
|
||||||
/**
|
|
||||||
* Serialize the given DOM Node to an XML string
|
|
||||||
* @param oNode the DOM Node to serialize
|
|
||||||
*/
|
|
||||||
XMLSerializer.prototype.serializeToString = function(oNode) {
|
|
||||||
return oNode.xml;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* strips tags from a markup string
|
|
||||||
*/
|
|
||||||
Sarissa.stripTags = function (s) {
|
|
||||||
return s.replace(/<[^>]+>/g,"");
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* <p>Deletes all child nodes of the given node</p>
|
|
||||||
* @argument oNode the Node to empty
|
|
||||||
*/
|
|
||||||
Sarissa.clearChildNodes = function(oNode) {
|
|
||||||
// need to check for firstChild due to opera 8 bug with hasChildNodes
|
|
||||||
while(oNode.firstChild){
|
|
||||||
oNode.removeChild(oNode.firstChild);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* <p> Copies the childNodes of nodeFrom to nodeTo</p>
|
|
||||||
* <p> <b>Note:</b> The second object's original content is deleted before
|
|
||||||
* the copy operation, unless you supply a true third parameter</p>
|
|
||||||
* @argument nodeFrom the Node to copy the childNodes from
|
|
||||||
* @argument nodeTo the Node to copy the childNodes to
|
|
||||||
* @argument bPreserveExisting whether to preserve the original content of nodeTo, default is false
|
|
||||||
*/
|
|
||||||
Sarissa.copyChildNodes = function(nodeFrom, nodeTo, bPreserveExisting) {
|
|
||||||
if((!nodeFrom) || (!nodeTo)){
|
|
||||||
throw "Both source and destination nodes must be provided";
|
|
||||||
};
|
|
||||||
if(!bPreserveExisting){
|
|
||||||
Sarissa.clearChildNodes(nodeTo);
|
|
||||||
};
|
|
||||||
var ownerDoc = nodeTo.nodeType == Node.DOCUMENT_NODE ? nodeTo : nodeTo.ownerDocument;
|
|
||||||
var nodes = nodeFrom.childNodes;
|
|
||||||
if(ownerDoc.importNode && (!_SARISSA_IS_IE)) {
|
|
||||||
for(var i=0;i < nodes.length;i++) {
|
|
||||||
nodeTo.appendChild(ownerDoc.importNode(nodes[i], true));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
for(var i=0;i < nodes.length;i++) {
|
|
||||||
nodeTo.appendChild(nodes[i].cloneNode(true));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Moves the childNodes of nodeFrom to nodeTo</p>
|
|
||||||
* <p> <b>Note:</b> The second object's original content is deleted before
|
|
||||||
* the move operation, unless you supply a true third parameter</p>
|
|
||||||
* @argument nodeFrom the Node to copy the childNodes from
|
|
||||||
* @argument nodeTo the Node to copy the childNodes to
|
|
||||||
* @argument bPreserveExisting whether to preserve the original content of nodeTo, default is
|
|
||||||
*/
|
|
||||||
Sarissa.moveChildNodes = function(nodeFrom, nodeTo, bPreserveExisting) {
|
|
||||||
if((!nodeFrom) || (!nodeTo)){
|
|
||||||
throw "Both source and destination nodes must be provided";
|
|
||||||
};
|
|
||||||
if(!bPreserveExisting){
|
|
||||||
Sarissa.clearChildNodes(nodeTo);
|
|
||||||
};
|
|
||||||
var nodes = nodeFrom.childNodes;
|
|
||||||
// if within the same doc, just move, else copy and delete
|
|
||||||
if(nodeFrom.ownerDocument == nodeTo.ownerDocument){
|
|
||||||
while(nodeFrom.firstChild){
|
|
||||||
nodeTo.appendChild(nodeFrom.firstChild);
|
|
||||||
};
|
|
||||||
}else{
|
|
||||||
var ownerDoc = nodeTo.nodeType == Node.DOCUMENT_NODE ? nodeTo : nodeTo.ownerDocument;
|
|
||||||
if(ownerDoc.importNode && (!_SARISSA_IS_IE)) {
|
|
||||||
for(var i=0;i < nodes.length;i++) {
|
|
||||||
nodeTo.appendChild(ownerDoc.importNode(nodes[i], true));
|
|
||||||
};
|
|
||||||
}else{
|
|
||||||
for(var i=0;i < nodes.length;i++) {
|
|
||||||
nodeTo.appendChild(nodes[i].cloneNode(true));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
Sarissa.clearChildNodes(nodeFrom);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Serialize any object to an XML string. All properties are serialized using the property name
|
|
||||||
* as the XML element name. Array elements are rendered as <code>array-item</code> elements,
|
|
||||||
* using their index/key as the value of the <code>key</code> attribute.</p>
|
|
||||||
* @argument anyObject the object to serialize
|
|
||||||
* @argument objectName a name for that object
|
|
||||||
* @return the XML serializationj of the given object as a string
|
|
||||||
*/
|
|
||||||
Sarissa.xmlize = function(anyObject, objectName, indentSpace){
|
|
||||||
indentSpace = indentSpace?indentSpace:'';
|
|
||||||
var s = indentSpace + '<' + objectName + '>';
|
|
||||||
var isLeaf = false;
|
|
||||||
if(!(anyObject instanceof Object) || anyObject instanceof Number || anyObject instanceof String
|
|
||||||
|| anyObject instanceof Boolean || anyObject instanceof Date){
|
|
||||||
s += Sarissa.escape(""+anyObject);
|
|
||||||
isLeaf = true;
|
|
||||||
}else{
|
|
||||||
s += "\n";
|
|
||||||
var itemKey = '';
|
|
||||||
var isArrayItem = anyObject instanceof Array;
|
|
||||||
for(var name in anyObject){
|
|
||||||
s += Sarissa.xmlize(anyObject[name], (isArrayItem?"array-item key=\""+name+"\"":name), indentSpace + " ");
|
|
||||||
};
|
|
||||||
s += indentSpace;
|
|
||||||
};
|
|
||||||
return s += (objectName.indexOf(' ')!=-1?"</array-item>\n":"</" + objectName + ">\n");
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Escape the given string chacters that correspond to the five predefined XML entities
|
|
||||||
* @param sXml the string to escape
|
|
||||||
*/
|
|
||||||
Sarissa.escape = function(sXml){
|
|
||||||
return sXml.replace(/&/g, "&")
|
|
||||||
.replace(/</g, "<")
|
|
||||||
.replace(/>/g, ">")
|
|
||||||
.replace(/"/g, """)
|
|
||||||
.replace(/'/g, "'");
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unescape the given string. This turns the occurences of the predefined XML
|
|
||||||
* entities to become the characters they represent correspond to the five predefined XML entities
|
|
||||||
* @param sXml the string to unescape
|
|
||||||
*/
|
|
||||||
Sarissa.unescape = function(sXml){
|
|
||||||
return sXml.replace(/'/g,"'")
|
|
||||||
.replace(/"/g,"\"")
|
|
||||||
.replace(/>/g,">")
|
|
||||||
.replace(/</g,"<")
|
|
||||||
.replace(/&/g,"&");
|
|
||||||
};
|
|
||||||
// EOF
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
/**
|
|
||||||
* ====================================================================
|
|
||||||
* About
|
|
||||||
* ====================================================================
|
|
||||||
* Sarissa cross browser XML library - AJAX module
|
|
||||||
* @version 0.9.6.1
|
|
||||||
* @author: Copyright Manos Batsis, mailto: mbatsis at users full stop sourceforge full stop net
|
|
||||||
*
|
|
||||||
* This module contains some convinient AJAX tricks based on Sarissa
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licence
|
|
||||||
* ====================================================================
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 or
|
|
||||||
* the GNU Lesser General Public License version 2.1 as published by
|
|
||||||
* the Free Software Foundation (your choice between the two).
|
|
||||||
*
|
|
||||||
* 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 or GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* or GNU Lesser General Public License along with this program; if not,
|
|
||||||
* write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
* or visit http://www.gnu.org
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Update an element with response of a GET request on the given URL.
|
|
||||||
* @addon
|
|
||||||
* @param sFromUrl the URL to make the request to
|
|
||||||
* @param oTargetElement the element to update
|
|
||||||
* @param xsltproc (optional) the transformer to use on the returned
|
|
||||||
* content before updating the target element with it
|
|
||||||
*/
|
|
||||||
Sarissa.updateContentFromURI = function(sFromUrl, oTargetElement, xsltproc) {
|
|
||||||
try{
|
|
||||||
oTargetElement.style.cursor = "wait";
|
|
||||||
var xmlhttp = new XMLHttpRequest();
|
|
||||||
xmlhttp.open("GET", sFromUrl);
|
|
||||||
function sarissa_dhtml_loadHandler() {
|
|
||||||
if (xmlhttp.readyState == 4) {
|
|
||||||
oTargetElement.style.cursor = "auto";
|
|
||||||
Sarissa.updateContentFromNode(xmlhttp.responseXML, oTargetElement, xsltproc);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xmlhttp.onreadystatechange = sarissa_dhtml_loadHandler;
|
|
||||||
xmlhttp.send(null);
|
|
||||||
oTargetElement.style.cursor = "auto";
|
|
||||||
}
|
|
||||||
catch(e){
|
|
||||||
oTargetElement.style.cursor = "auto";
|
|
||||||
throw e;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update an element's content with the given DOM node.
|
|
||||||
* @addon
|
|
||||||
* @param sFromUrl the URL to make the request to
|
|
||||||
* @param oTargetElement the element to update
|
|
||||||
* @param xsltproc (optional) the transformer to use on the given
|
|
||||||
* DOM node before updating the target element with it
|
|
||||||
*/
|
|
||||||
Sarissa.updateContentFromNode = function(oNode, oTargetElement, xsltproc) {
|
|
||||||
try {
|
|
||||||
oTargetElement.style.cursor = "wait";
|
|
||||||
Sarissa.clearChildNodes(oTargetElement);
|
|
||||||
// check for parsing errors
|
|
||||||
var ownerDoc = oNode.nodeType == Node.DOCUMENT_NODE?oNode:oNode.ownerDocument;
|
|
||||||
if(ownerDoc.parseError && ownerDoc.parseError != 0) {
|
|
||||||
var pre = document.createElement("pre");
|
|
||||||
pre.appendChild(document.createTextNode(Sarissa.getParseErrorText(ownerDoc)));
|
|
||||||
oTargetElement.appendChild(pre);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// transform if appropriate
|
|
||||||
if(xsltproc) {
|
|
||||||
oNode = xsltproc.transformToDocument(oNode);
|
|
||||||
};
|
|
||||||
// be smart, maybe the user wants to display the source instead
|
|
||||||
if(oTargetElement.tagName.toLowerCase == "textarea" || oTargetElement.tagName.toLowerCase == "input") {
|
|
||||||
oTargetElement.value = Sarissa.serialize(oNode);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// ok that was not smart; it was paranoid. Keep up the good work by trying to use DOM instead of innerHTML
|
|
||||||
if(oNode.nodeType == Node.DOCUMENT_NODE || oNode.ownerDocument.documentElement == oNode) {
|
|
||||||
oTargetElement.innerHTML = Sarissa.serialize(oNode);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
oTargetElement.appendChild(oTargetElement.ownerDocument.importNode(oNode, true));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
catch(e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
finally{
|
|
||||||
oTargetElement.style.cursor = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=0
|
|
||||||
timeout=120
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Login mode,1,0-Prompt for username and password,1-Open root shell
|
|
||||||
timeout=Idle timeout before closing connection,0,5,,seconds
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=وضع تسجيل الدخول,1,0-موجه لاسم المستخدم وكلمة المرور,1-فتح شل الـ root
|
|
||||||
timeout=مهلة الخمول قبل إغلاق الاتصال,0,5,,ثانية
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Mode d'entrada,1,0-Demana usuari i contrasenya,1-Obre una shell de root
|
|
||||||
timeout=Temps límit d'inactivitat abans de tancar la connexió,0,5,,segons
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Login Modus,1,0-Eingabeaufforderung für Benutzername und Passwort,1-Open-Root-Shell
|
|
||||||
timeout=Leerlaufzeit vor Beenden der Verbindung,0,5,,Sekunden
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Mode de connexion,1,0-Demander le nom d'utilisateur et le mot de passe,1-Ouvrir le shell racine
|
|
||||||
timeout=Délai d'inactivité avant la fermeture de la connexion,0,5,,secondes
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Mod Log masuk,1,0-Minta nama pengguna dan kata laluan,1-Buka shell root
|
|
||||||
timeout=masa terbiar tamat sebelum sambungan ditutup,0,5,,saat
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Inlog mode,1,0-Prompt voor gebruikersnaam en wachtwoord,1-Open root shell
|
|
||||||
timeout=Inactieve wachttijd voordat verbinding word verbroken,0,5,,seconden
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Innloggingsmetode,1,0-Be om brukernavn og passord,1-Åpne root-skall
|
|
||||||
timeout=Tid uten aktivitet før forbindelsen lukkes,0,5,,sekunder
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
autologin=Tryb logowania,1,0-Poproś o login i hasło,1-Otwórz root shell
|
|
||||||
timeout=Czas oczekiwania w trybie idle przed zamknięciem połączenia,0,5,,sekund
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 275 B |
@@ -1,111 +0,0 @@
|
|||||||
#!/usr/local/bin/perl
|
|
||||||
# Start the Ajaxterm webserver on a random port, then print an iframe for
|
|
||||||
# a URL that proxies to it
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
no warnings 'redefine';
|
|
||||||
no warnings 'uninitialized';
|
|
||||||
|
|
||||||
BEGIN { push(@INC, ".."); };
|
|
||||||
use WebminCore;
|
|
||||||
use Socket;
|
|
||||||
our(%text, %config, %gconfig);
|
|
||||||
our $module_root_directory;
|
|
||||||
our $module_name;
|
|
||||||
|
|
||||||
&init_config();
|
|
||||||
|
|
||||||
&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
|
|
||||||
|
|
||||||
# Check for python
|
|
||||||
my $python = &has_command("python2") || &has_command("python");
|
|
||||||
if (!$python) {
|
|
||||||
&ui_print_endpage(&text('index_epython', "<tt>python</tt>"));
|
|
||||||
}
|
|
||||||
|
|
||||||
# Pick a free port
|
|
||||||
my %miniserv;
|
|
||||||
&get_miniserv_config(\%miniserv);
|
|
||||||
my $port = $miniserv{'port'} + 1;
|
|
||||||
my $proto = getprotobyname('tcp');
|
|
||||||
socket(TEST, PF_INET, SOCK_STREAM, $proto) ||
|
|
||||||
&error("Socket failed : $!");
|
|
||||||
setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
|
|
||||||
while(1) {
|
|
||||||
last if (bind(TEST, sockaddr_in($port, INADDR_ANY)));
|
|
||||||
$port++;
|
|
||||||
}
|
|
||||||
close(TEST);
|
|
||||||
|
|
||||||
# Run the Ajaxterm webserver
|
|
||||||
my $pid = fork();
|
|
||||||
if (!$pid) {
|
|
||||||
chdir("$module_root_directory/ajaxterm");
|
|
||||||
my $logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
|
|
||||||
undef(*STDIN); untie(*STDIN); open(STDIN, "<", "/dev/null");
|
|
||||||
undef(*STDOUT); untie(*STDOUT); open(STDOUT, ">", $logfile);
|
|
||||||
undef(*STDERR); untie(*STDERR); open(STDERR, ">", $logfile);
|
|
||||||
my $shell = &has_command("bash") ||
|
|
||||||
&has_command("sh") || "/bin/sh";
|
|
||||||
my @uinfo = getpwnam("root");
|
|
||||||
my $home = $uinfo[7] || "/";
|
|
||||||
$shell = "$shell -c ".quotemeta("cd '$home' ; exec $shell");
|
|
||||||
exec($python, "ajaxterm.py", "--port", $port, "--log",
|
|
||||||
$config{'autologin'} ? ("--command", $shell) : ( ));
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Wait for it to come up
|
|
||||||
my $try = 0;
|
|
||||||
no strict "subs"; # TEST2 is weird. I dunno how to make it lexical without breaking.
|
|
||||||
no warnings;
|
|
||||||
while(1) {
|
|
||||||
my $err;
|
|
||||||
&open_socket("localhost", $port, TEST2, \$err);
|
|
||||||
last if (!$err);
|
|
||||||
$try++;
|
|
||||||
if ($try > 30) {
|
|
||||||
&error(&text('index_estart', 30, $port));
|
|
||||||
}
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
close(TEST2);
|
|
||||||
use strict "subs";
|
|
||||||
use warnings;
|
|
||||||
no warnings 'redefine';
|
|
||||||
no warnings 'uninitialized';
|
|
||||||
|
|
||||||
# Show the iframe
|
|
||||||
print "<center>\n";
|
|
||||||
print "<iframe src=@{[&get_webprefix()]}/$module_name/proxy.cgi/$port/ ",
|
|
||||||
"width=700 height=500 frameborder=0></iframe><br>\n";
|
|
||||||
print "<input type=button onClick='window.open(\"proxy.cgi/$port/\", \"ajaxterm\", \"toolbar=no,menubar=no,scrollbars=no,resizable=yes,width=700,height=500\")' value='$text{'index_popup'}'><p>\n";
|
|
||||||
print &text('index_credits', 'http://antony.lesuisse.org/software/ajaxterm/'),
|
|
||||||
"<p>\n";
|
|
||||||
print "</center>\n";
|
|
||||||
|
|
||||||
# Fork process that checks for inactivity
|
|
||||||
if (!fork()) {
|
|
||||||
untie(*STDIN); close(STDIN);
|
|
||||||
untie(*STDOUT); close(STDOUT);
|
|
||||||
untie(*STDERR); close(STDERR);
|
|
||||||
my $statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
|
|
||||||
while(1) {
|
|
||||||
my @st = stat($statfile);
|
|
||||||
if (@st && time() - $st[9] > $config{'timeout'}) {
|
|
||||||
# No activity
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
if (!kill(0, $pid)) {
|
|
||||||
# Dead
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
sleep(10);
|
|
||||||
}
|
|
||||||
unlink($statfile);
|
|
||||||
kill('KILL', $pid);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
&ui_print_footer("/", $text{'index'});
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Teksaanmelding
|
|
||||||
index_epython=Ajaxterm vereis dat Python moet loop, maar die $1 -opdrag is nie op u stelsel gevind nie.
|
|
||||||
index_estart=Ajaxterm het na $1 sekondes nie verbindings op poort $2 begin aanvaar nie.
|
|
||||||
index_popup=Maak in 'n aparte venster oop.
|
|
||||||
index_credits=Gebruik kode van <a href='$1' target=_new>Ajaxterm</a> deur Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=دخول النص
|
|
||||||
index_epython=يتطلب Ajaxterm تشغيل Python ، ولكن لم يتم العثور على أمر $1 على النظام الخاص بك.
|
|
||||||
index_estart=لم يبدأ Ajaxterm بقبول الاتصالات على المنفذ $2 بعد $1 ثانية.
|
|
||||||
index_popup=فتح في نافذة منفصلة ..
|
|
||||||
index_credits=استخدام كود من <a href='$1' target=_new>Ajaxterm</a> بواسطة Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Уваход тэксту
|
|
||||||
index_epython=Ajaxterm патрабуе запуску Python, але каманда $1 не знойдзена ў вашай сістэме.
|
|
||||||
index_estart=Ajaxterm не пачаў прымаць злучэнні на порт $2 праз $1 секунду.
|
|
||||||
index_popup=Адкрыць у асобным акне ..
|
|
||||||
index_credits=Выкарыстоўвае код <a href='$1' target=_new>Ajaxterm</a> Энтані Лесюа.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Text Login
|
|
||||||
index_epython=Ajaxterm изисква Python да стартира, но командата $1 не беше намерена във вашата система.
|
|
||||||
index_estart=Ajaxterm не започна да приема връзки на порт $2 след $1 секунди.
|
|
||||||
index_popup=Отваряне в отделен прозорец ..
|
|
||||||
index_credits=Използва код от <a href='$1' target=_new>Ajaxterm</a> от Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Entrada en Mode Text
|
|
||||||
index_epython=Ajaxterm necessita Python per executar-se, però no s'ha trobat l'ordre $1 al sistema.
|
|
||||||
index_estart=Ajaxterm no ha començat a acceptar connexions al port $2 passats $1 segons.
|
|
||||||
index_popup=Obre en una finestra nova...
|
|
||||||
index_credits=Utilitza codi d'<a href='$1' target=_new>Ajaxterm</a> d'Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Textové přihlášení
|
|
||||||
index_epython=Ajaxterm vyžaduje spuštění Pythonu, ale příkaz $1 nebyl ve vašem systému nalezen.
|
|
||||||
index_estart=Ajaxterm nepřijal připojení na portu $2 po $1 sekundách.
|
|
||||||
index_popup=Otevřít v samostatném okně.
|
|
||||||
index_credits=Používá kód od <a href='$1' target=_new>Ajaxterm</a> od Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Tekst login
|
|
||||||
index_epython=Ajaxterm kræver, at Python kører, men kommandoen $1 blev ikke fundet på dit system.
|
|
||||||
index_estart=Ajaxterm begyndte ikke at acceptere forbindelser på port $2 efter $1 sekunder.
|
|
||||||
index_popup=Åbn i separat vindue ..
|
|
||||||
index_credits=Bruger kode fra <a href='$1' target=_new>Ajaxterm</a> af Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Text Login
|
|
||||||
index_epython=Ajaxterm benötigt Python zum ausführen, aber der $1 Befehl wurde nicht auf Ihrem System gefunden.
|
|
||||||
index_estart=Ajaxterm akzeptiert keine Verbindungen auf Port $2 nach $1 Sekunden.
|
|
||||||
index_popup=Öffnet ein separates Fenster ..
|
|
||||||
index_credits=Verwendet Code von <a href='$1' target=_new>Ajaxterm</a> von Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Σύνδεση Τερματικού
|
|
||||||
index_epython=Το Ajaxterm χρειάζεται Python για να εκτελεστεί, αλλά η εντολή $1 δεν βρέθηκε στο σύστημά σας.
|
|
||||||
index_estart=το Ajaxterm δεν ξεκίνησε να δέχεται συνδέσεις στη θύρα $2 μετά από $1 δευτερόλεπτα.
|
|
||||||
index_popup=Άνοιγμα σε ξεχωριστό παράθυρο ..
|
|
||||||
index_credits=Χρησιμοποιεί κώδικα από το <a href='$1' target=_new>Ajaxterm</a> του Antony Lesuisse.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
index_title=Text Login
|
|
||||||
index_epython=Ajaxterm requires Python to run, but the $1 command was not found on your system.
|
|
||||||
index_estart=Ajaxterm did not start accepting connections on port $2 after $1 seconds.
|
|
||||||
index_popup=Open in separate window ..
|
|
||||||
index_credits=Uses code from <a href='$1' target=_new>Ajaxterm</a> by Antony Lesuisse.
|
|
||||||
__norefs=1
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Inicio de sesión de texto
|
|
||||||
index_epython=Ajaxterm requiere que Python se ejecute, pero el comando $1 no se encontró en su sistema.
|
|
||||||
index_estart=Ajaxterm no comenzó a aceptar conexiones en el puerto $2 después de $1 segundos.
|
|
||||||
index_popup=Abrir en una ventana separada.
|
|
||||||
index_credits=Utiliza código de <a href='$1' target=_new>Ajaxterm</a> por Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Testu saioa
|
|
||||||
index_epython=Ajaxterm-ek Python exekutatu behar du baina $1 komandoa ez da zure sisteman aurkitu.
|
|
||||||
index_estart=Ajaxterm-ek ez du $1 segundoko konexioak onartzen $1 segundo ondoren.
|
|
||||||
index_popup=Ireki beste leiho batean ..
|
|
||||||
index_credits=Antony Lesuisse-k <a href='$1' target=_new>Ajaxterm</a>-ren kodea erabiltzen du.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=ورود به متن
|
|
||||||
index_epython=Ajaxterm به اجرای پایتون نیاز دارد ، اما دستور$1 در سیستم شما یافت نشد.
|
|
||||||
index_estart=Ajaxterm پس از$1 ثانیه شروع به پذیرش اتصالات در پورت $2 نکرد.
|
|
||||||
index_popup=در پنجره جداگانه باز شود ..
|
|
||||||
index_credits=از کد <a href='$1' target=_new>Ajaxterm</a> توسط آنتونی لزوسه استفاده می کند.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Sisäänkirjautuminen
|
|
||||||
index_epython=Ajaxterm vaatii Pythonin suorittamista, mutta komentoa $1 ei löydy järjestelmästäsi.
|
|
||||||
index_estart=Ajaxterm ei alkanut hyväksyä yhteyksiä porttiin $2 $1 sekunnin kuluttua.
|
|
||||||
index_popup=Avaa erillisessä ikkunassa ..
|
|
||||||
index_credits=Käyttää Antony Lesuisse'n <a href='$1' target=_new>Ajaxterm</a> -koodia.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Connexion texte
|
|
||||||
index_epython=Ajaxterm nécessite Python pour s'exécuter, mais la commande $1 est introuvable sur votre système.
|
|
||||||
index_estart=Ajaxterm n'a pas commencé à accepter les connexions sur le port $2 après $1 secondes.
|
|
||||||
index_popup=Ouvrir dans une fenêtre séparée ..
|
|
||||||
index_credits=Utilise le code de <a href='$1' target=_new>Ajaxterm</a> par Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=כניסה לטקסט
|
|
||||||
index_epython=Ajaxterm דורש ש- Python יפעל, אך הפקודה $1 לא נמצאה במערכת שלך.
|
|
||||||
index_estart=Ajaxterm לא התחיל לקבל חיבורים ביציאה $2 אחרי $1 שניות.
|
|
||||||
index_popup=נפתח בחלון נפרד ..
|
|
||||||
index_credits=משתמש בקוד מאת <a href='$1' target=_new>Ajaxterm</a> מאת אנטוני לסויס.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Prijava teksta
|
|
||||||
index_epython=Ajaxterm zahtijeva pokretanje Pythona, ali naredba $1 nije pronađena u vašem sustavu.
|
|
||||||
index_estart=Ajaxterm nije počeo prihvaćati veze na priključku $2 nakon $1 sekunde.
|
|
||||||
index_popup=Otvori u zasebnom prozoru ..
|
|
||||||
index_credits=Koristi kôd iz <a href='$1' target=_new>Ajaxterm</a> autora Antonija Lesuissea.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Text Login
|
|
||||||
index_epython=Ajaxterm requires Python to run, but the $1 command was not found on your system.
|
|
||||||
index_estart=Ajaxterm did not start accepting connections on port $2 after $1 seconds.
|
|
||||||
index_popup=Open in separate window ..
|
|
||||||
index_credits=Uses code from <a href='$1' target=_new>Ajaxterm</a> by Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Accesso al testo
|
|
||||||
index_epython=Ajaxterm richiede l'esecuzione di Python, ma il comando $1 non è stato trovato sul tuo sistema.
|
|
||||||
index_estart=Ajaxterm non ha iniziato ad accettare connessioni sulla porta $2 dopo $1 secondi.
|
|
||||||
index_popup=Apri in una finestra separata ..
|
|
||||||
index_credits=Utilizza il codice di <a href='$1' target=_new>Ajaxterm</a> di Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=テキストログイン
|
|
||||||
index_epython=Ajaxtermを実行するにはPythonが必要ですが、システムで $1コマンドが見つかりませんでした。
|
|
||||||
index_estart=Ajaxtermは、 $1秒後にポート $2で接続の受け入れを開始しませんでした。
|
|
||||||
index_popup=別のウィンドウで開く ..
|
|
||||||
index_credits=Antony Lesuisseによる<a href='$1' target=_new>Ajaxterm</a>のコードを使用します。
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=텍스트 로그인
|
|
||||||
index_epython=Ajaxterm에는 Python을 실행해야하지만 시스템에서 $1 명령을 찾을 수 없습니다.
|
|
||||||
index_estart=$1 초 후에 Ajaxterm이 포트 $2 에서 연결을 수락하지 않았습니다.
|
|
||||||
index_popup=별도의 창에서 열기 ..
|
|
||||||
index_credits=Antony Lesuisse의 <a href='$1' target=_new>Ajaxterm</a> 코드를 사용합니다.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Teksto prisijungimas
|
|
||||||
index_epython=„Ajaxterm“ reikia paleisti „Python“, tačiau komanda $1 nerasta jūsų sistemoje.
|
|
||||||
index_estart=„Ajaxterm“ nepradėjo priimti jungčių prie $2 prievado po $1 sekundės.
|
|
||||||
index_popup=Atidaryti atskirame lange ..
|
|
||||||
index_credits=Naudojamas kodas iš <a href='$1' target=_new>„Ajaxterm“</a>, kurį sukūrė Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Teksta pieteikšanās
|
|
||||||
index_epython=Ajaxterm prasa Python palaist, bet komanda $1 jūsu sistēmā netika atrasta.
|
|
||||||
index_estart=Ajaxterm nesāka pieņemt savienojumus $2 ostā pēc $1 sekundēm.
|
|
||||||
index_popup=Atvērt atsevišķā logā ..
|
|
||||||
index_credits=Izmanto kodu no <a href='$1' target=_new>Ajaxterm</a>, kuru izveidojis Antonijs Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Log masuk Teks
|
|
||||||
index_epython=Ajaxterm memerlukan Python untuk menjalankan, tetapi arahan $1 tidak dijumpai pada sistem anda.
|
|
||||||
index_estart=Ajaxterm tidak bermula menerima sambungan pada port $2 selepas $1 saat.
|
|
||||||
index_popup=Buka dalam tetingkap berasingan ..
|
|
||||||
index_credits=Menggunakan kod dari <a href='$1' target=_new>Ajaxterm</a> oleh Antony Lesuisse.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
index_title=Id-dħul tat-test
|
|
||||||
index_epython=Ajaxterm jirrikjedi li Python taħdem, iżda l-kmand $1 ma nstabx fis-sistema tiegħek.
|
|
||||||
index_estart=Ajaxterm ma bediex jaċċetta konnessjonijiet fuq il-port $2 wara $1 sekonda.
|
|
||||||
index_popup=Iftaħ f'tieqa separata ..
|
|
||||||
index_credits=Juża kodiċi minn <a href='$1' target=_new>Ajaxterm</a> minn Antony Lesuisse.
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user