WEB 网页汉化

This commit is contained in:
mofeng-git 2024-09-10 23:36:22 +08:00
parent 2608241bb6
commit 011c7d8371
13 changed files with 171 additions and 1341 deletions

1
.gitignore vendored
View File

@ -18,3 +18,4 @@
*.pyc
*.swp
/venv/
.vscode/settings.json

View File

@ -48,15 +48,15 @@
<div class="start-box">
<div class="start"><a style="display:inline-block; margin-top:4px; color:#5c90bc; text-decoration:none" href="/" i18n="index">&nbsp;&nbsp;&larr;&nbsp;&nbsp; [ One-KVM Index ]</a>
<hr>
<p class="text">This PiKVM device has running <b>kvmd-ipmi</b> daemon and provides IPMI 2.0 interface for some basic
<p class="text" i18n="ipmi_text1">This PiKVM device has running <b>kvmd-ipmi</b> daemon and provides IPMI 2.0 interface for some basic
BMC operations like on/off/reset the server.
</p>
<p class="text"><b>WARNING!</b> We strongly don't recommend you to use IPMI in untrusted networks because
<p class="text" i18n="ipmi_text2"><b>WARNING!</b> We strongly don't recommend you to use IPMI in untrusted networks because
this protocol is completely unsafe by design. In short, the authentication process for IPMI mandates
that the server send a salted SHA1 or MD5 hash of the requested user's password to the client,
prior to the client authenticating.
</p>
<p class="text"><b>NEVER</b> use the same passwords for KVMD and IPMI users. And even better not to use IPMI.
<p class="text" i18n="ipmi_text3"><b>NEVER</b> use the same passwords for KVMD and IPMI users. And even better not to use IPMI.
Instead, you can directly use KVMD API via curl. Here some examples:
</p>
<div class="code" id="ipmi-text" style="max-height:200px"></div>

View File

@ -6,15 +6,15 @@ append vars
- index_link = true
block start
p(class="text")
p(class="text" i18n="ipmi_text1")
| This PiKVM device has running #[b kvmd-ipmi] daemon and provides IPMI 2.0 interface for some basic
| BMC operations like on/off/reset the server.
p(class="text")
p(class="text" i18n="ipmi_text2")
| #[b WARNING!] We strongly don't recommend you to use IPMI in untrusted networks because
| this protocol is completely unsafe by design. In short, the authentication process for IPMI mandates
| that the server send a salted SHA1 or MD5 hash of the requested user's password to the client,
| prior to the client authenticating.
p(class="text")
p(class="text" i18n="ipmi_text3")
| #[b NEVER] use the same passwords for KVMD and IPMI users. And even better not to use IPMI.
| Instead, you can directly use KVMD API via curl. Here some examples:
div(id="ipmi-text" class="code" style="max-height:200px")

View File

@ -142,22 +142,22 @@
</div>
</li>
</div>
<li class="right" id="system-dropdown"><a class="menu-button" href="#"><img class="led-gray" id="link-led" src="/share/svg/led-link.svg"><img class="led-gray" id="stream-led" src="/share/svg/led-stream.svg"><img class="led-gray" id="hid-keyboard-led" src="/share/svg/led-hid-keyboard.svg"><img class="led-gray" id="hid-mouse-led" src="/share/svg/led-hid-mouse.svg"><span>System</span></a>
<li class="right" id="system-dropdown"><a class="menu-button" href="#"><img class="led-gray" id="link-led" src="/share/svg/led-link.svg"><img class="led-gray" id="stream-led" src="/share/svg/led-stream.svg"><img class="led-gray" id="hid-keyboard-led" src="/share/svg/led-hid-keyboard.svg"><img class="led-gray" id="hid-mouse-led" src="/share/svg/led-hid-mouse.svg"><span i18n="kvm_text3">System</span></a>
<div class="menu" id="system-menu">
<table class="kv">
<tr>
<td class="value">Runtime settings &amp; tools</td>
<td class="value" i18n="kvm_text4">Runtime settings &amp; tools</td>
<td class="feature-disabled" id="system-tool-webterm">
<button class="small" data-force-hide-menu data-show-window="webterm-window">&bull; Term</button>
<button class="small" data-force-hide-menu data-show-window="webterm-window" i18n="kvm_text5">&bull; Term</button>
</td>
<td id="system-tool-about">
<button class="small" data-force-hide-menu data-show-window="about-window">&bull; About</button>
<button class="small" data-force-hide-menu data-show-window="about-window" i18n="kvm_text6">&bull; About</button>
</td>
<td id="system-tool-log">
<button class="small" data-force-hide-menu id="open-log-button">&bull; Log</button>
<button class="small" data-force-hide-menu id="open-log-button" i18n="kvm_text7">&bull; Log</button>
</td>
<td class="feature-disabled" id="system-tool-wol">
<button class="gpio-button small" data-force-hide-menu id="gpio-button-__wol__" data-channel="__wol__" data-confirm="Are you sure to send Wake-on-LAN packet to the server?">&bull; WoL</button>
<button class="gpio-button small" data-force-hide-menu id="gpio-button-__wol__" data-channel="__wol__" data-confirm="Are you sure to send Wake-on-LAN packet to the server?" i18n="kvm_text8">&bull; WoL</button>
</td>
</tr>
</table>
@ -186,41 +186,41 @@
</div>
<table class="kv">
<tr class="feature-disabled" id="stream-resolution">
<td>Resolution:</td>
<td i18n="kvm_text9">Resolution:</td>
<td>
<select disabled id="stream-resolution-selector"></select>
</td>
</tr>
<tr class="feature-disabled" id="stream-quality">
<td>JPEG quality:</td>
<td i18n="kvm_text10">JPEG quality:</td>
<td class="value-slider">
<input class="slider" disabled type="range" id="stream-quality-slider">
</td>
<td class="value-number" id="stream-quality-value"></td>
</tr>
<tr>
<td>JPEG max fps:</td>
<td i18n="kvm_text11">JPEG max fps:</td>
<td class="value-slider">
<input class="slider" disabled type="range" id="stream-desired-fps-slider">
</td>
<td class="value-number" id="stream-desired-fps-value"></td>
</tr>
<tr class="feature-disabled" id="stream-h264-bitrate">
<td>H.264 kbps:</td>
<td i18n="kvm_text12">H.264 kbps:</td>
<td class="value-slider">
<input class="slider" disabled type="range" id="stream-h264-bitrate-slider">
</td>
<td class="value-number" id="stream-h264-bitrate-value"></td>
</tr>
<tr class="feature-disabled" id="stream-h264-gop">
<td>H.264 <a target="_blank" href="https://docs.pikvm.org/webrtc">gop</a>:</td>
<td i18n="kvm_text13">H.264 <a target="_blank" href="https://docs.pikvm.org/webrtc">gop</a>:</td>
<td class="value-slider">
<input class="slider" disabled type="range" id="stream-h264-gop-slider">
</td>
<td class="value-number" id="stream-h264-gop-value"></td>
</tr>
<tr class="feature-disabled" id="stream-mode">
<td>Video <a target="_blank" href="https://docs.pikvm.org/webrtc">mode</a>:</td>
<td i18n="kvm_text14">Video <a target="_blank" href="https://docs.pikvm.org/webrtc">mode</a>:</td>
<td>
<div class="radio-box">
<input checked type="radio" id="stream-mode-radio-mjpeg" name="stream-mode-radio" value="mjpeg">
@ -231,11 +231,11 @@
</td>
</tr>
<tr class="feature-disabled" id="stream-orient">
<td>Orientation:</td>
<td i18n="kvm_text17">Orientation:</td>
<td>
<div class="radio-box">
<input checked type="radio" id="stream-orient-radio-0" name="stream-orient-radio" value="0">
<label for="stream-orient-radio-0">Default</label>
<label for="stream-orient-radio-0" i18n="kvm_text18">Default</label>
<input type="radio" id="stream-orient-radio-90" name="stream-orient-radio" value="90">
<label for="stream-orient-radio-90">90&deg;</label>
<input type="radio" id="stream-orient-radio-180" name="stream-orient-radio" value="180">
@ -246,7 +246,7 @@
</td>
</tr>
<tr class="feature-disabled" id="stream-audio">
<td>Audio volume:</td>
<td i18n="kvm_text19">Audio volume:</td>
<td class="value-slider">
<input class="slider" type="range" id="stream-audio-volume-slider">
</td>
@ -255,21 +255,21 @@
</table>
<hr>
<div class="buttons buttons-row">
<button class="row33" data-force-hide-menu data-show-window="stream-window">&bull; Show stream</button>
<button class="row33" data-force-hide-menu id="stream-screenshot-button">&bull; Screenshot</button>
<button class="row33" id="stream-reset-button">Reset stream</button>
<button class="row33" data-force-hide-menu data-show-window="stream-window" i18n="kvm_text20">&bull; Show stream</button>
<button class="row33" data-force-hide-menu id="stream-screenshot-button" i18n="kvm_text21">&bull; Screenshot</button>
<button class="row33" id="stream-reset-button" i18n="kvm_text22">Reset stream</button>
</div>
<div class="feature-disabled" id="hid-outputs">
<hr>
<table class="kv">
<tr class="feature-disabled" id="hid-outputs-keyboard">
<td>Keyboard mode:</td>
<td i18n="kvm_text23">Keyboard mode:</td>
<td>
<div class="radio-box" id="hid-outputs-keyboard-box"></div>
</td>
</tr>
<tr class="feature-disabled" id="hid-outputs-mouse">
<td>Mouse <a target="_blank" href="https://docs.pikvm.org/mouse">mode</a>:</td>
<td i18n="kvm_text24">Mouse <a target="_blank" href="https://docs.pikvm.org/mouse">mode</a>:</td>
<td>
<div class="radio-box" id="hid-outputs-mouse-box"></div>
</td>
@ -277,7 +277,7 @@
</table>
</div>
<details>
<summary>Keyboard &amp; Mouse (HID) settings</summary>
<summary i18n="kvm_text25">Keyboard &amp; Mouse (HID) settings</summary>
<div class="spoiler">
<table class="kv">
<tr>
@ -293,14 +293,14 @@
<hr>
<table class="kv">
<tr>
<td>Mouse polling:</td>
<td i18n="kvm_text26">Mouse polling:</td>
<td class="value-slider">
<input class="slider" type="range" id="hid-mouse-rate-slider">
</td>
<td class="value-number" id="hid-mouse-rate-value"></td>
</tr>
<tr class="feature-disabled" id="hid-mouse-sens">
<td>Relative sensitivity:</td>
<td i18n="kvm_text27">Relative sensitivity:</td>
<td class="value-slider">
<input class="slider" disabled type="range" id="hid-mouse-sens-slider">
</td>
@ -316,7 +316,7 @@
</td>
</tr>
<tr>
<td>Reverse scrolling:</td>
<td i18n="kvm_text28">Reverse scrolling:</td>
<td>
<table>
<tr>
@ -349,7 +349,7 @@
</td>
</tr>
<tr>
<td>Scroll rate:</td>
<td i18n="kvm_text29">Scroll rate:</td>
<td class="value-slider">
<input class="slider" type="range" id="hid-mouse-scroll-slider">
</td>
@ -425,8 +425,8 @@
</table>
<hr>
<div class="buttons buttons-row">
<button class="row50" data-force-hide-menu data-show-window="keyboard-window">&bull; Show keyboard</button>
<button class="row50" disabled id="hid-reset-button">Reset HID</button>
<button class="row50" data-force-hide-menu data-show-window="keyboard-window" i18n="kvm_text30">&bull; Show keyboard</button>
<button class="row50" disabled id="hid-reset-button" i18n="kvm_text31">Reset HID</button>
</div>
</div>
</li>
@ -900,7 +900,7 @@
</div>
<div class="window" id="keyboard-window">
<div class="window-header" id="keyboard-window-header">
<div class="window-grab">Virtual Keyboard</div>
<div class="window-grab" i18n="kvm_text15">Virtual Keyboard</div>
<button class="window-button-close"><b>&times;</b></button>
</div>
<div class="keypad" id="keyboard-desktop" align="center">
@ -1979,7 +1979,7 @@
</div>
<div class="window" id="about-window">
<div class="window-header">
<div class="window-grab">About</div>
<div class="window-grab" i18n="kvm_text1">About</div>
<button class="window-button-close"><b>&times;</b></button>
</div>
<div id="about">
@ -1989,10 +1989,10 @@
<td>
<table>
<tr>
<td class="title" colspan="2">The Open Source KVM over IP</td>
<td class="title" colspan="2" i18n="index_title">The Open Source KVM over IP</td>
</tr>
<tr>
<td class="copyright" colspan="2">Copyright &copy; 2018-2024 <a target="_blank" href="mailto:mdevaev@gmail.com">Maxim Devaev</a></td>
<td class="copyright" colspan="2" i18n="copyright">Copyright &copy; 2018-2024 <a target="_blank" href="mailto:mdevaev@gmail.com">Maxim Devaev</a></td>
</tr>
</table>
</td>
@ -2020,641 +2020,13 @@
<input type="radio" name="about-tab-button" id="about-tab-thanks-button">
<label for="about-tab-thanks-button">Thanks</label>
<div class="tab">
<div class="code" id="about-thanks"><span class="code-comment">// These kind people donated money to the PiKVM project<br>
<div class="code" id="about-thanks"><span class="code-comment" i18n="kvm_text2">// These kind people donated money to the PiKVM project<br>
// and supported the work on it. We are very grateful<br>
// for their help, and memorializing their names<br>
// is the least we can do in gratitude.<br>
// If you also want to support this project,<br>
// you can donate on <a target="_blank" href="https://www.patreon.com/pikvm">Patreon</a>
or <a target="_blank" href="https://paypal.me/pikvm">Paypal</a>.</span>
<ul>
<li>A. Isenring</li>
<li>Aaron Graubert</li>
<li>Aaron Heise</li>
<li>Aaron Stein</li>
<li>Accalia</li>
<li>Adam Goodbar</li>
<li>Adam S</li>
<li>Adam Stuart</li>
<li>AdamBomb</li>
<li>adipisicing</li>
<li>Adrian Basham</li>
<li>Adrian Popescu</li>
<li>Ahmed Syed</li>
<li>Alberto Bassi</li>
<li>alejandro</li>
<li>Aleksei Brusianskii</li>
<li>Alessio Curri</li>
<li>Alex T</li>
<li>Alex Z</li>
<li>Alexander Karmanov</li>
<li>Alexander Lahuerta</li>
<li>Alexander Martin</li>
<li>Alexander Pankov</li>
<li>Alexandre Jablonski</li>
<li>Alexey Kamenskiy</li>
<li>alm0241</li>
<li>Alok Anand</li>
<li>Alucard</li>
<li>Ananthaneshan Elampoornan</li>
<li>Andreas Marufke</li>
<li>Andreas Schmid</li>
<li>Andrew Brant</li>
<li>Andrew Melton</li>
<li>Andrew Reusch</li>
<li>Andrew Ruan</li>
<li>Andrzej V</li>
<li>Andy</li>
<li>Andy Keys</li>
<li>Anish Patel</li>
<li>Anix</li>
<li>Anonymous</li>
<li>Anthony Junk</li>
<li>Anton Kovalenko</li>
<li>Armen</li>
<li>Aron Green</li>
<li>Aron Perelman</li>
<li>Artem Simonov</li>
<li>Arthur Mayer</li>
<li>Arthur Woimbée</li>
<li>Ashlesh Chaudhari</li>
<li>Asim Shakour</li>
<li>Augusto Becciu</li>
<li>AVS Computer</li>
<li>awkspace</li>
<li>Badal Patel</li>
<li>baddog</li>
<li>Bao Tin Hoang</li>
<li>Bean Co.</li>
<li>Bela Bargel</li>
<li>Belf Igor</li>
<li>Ben Gordon</li>
<li>Ben Scott</li>
<li>Benedikt Heine</li>
<li>Benedikt Meier</li>
<li>Benjamin Frewert</li>
<li>Benjamin Melancon</li>
<li>Benjamin Schwartz</li>
<li>Benjamin Stegmann</li>
<li>Benni Stauder</li>
<li>Bernhard Fitzke</li>
<li>Beu</li>
<li>bikmaek</li>
<li>bitjoe</li>
<li>Bits and Bytes Computers LLC</li>
<li>Bjoern Petsch</li>
<li>Blair Hasler</li>
<li>Blindside</li>
<li>Blue Frog LLC</li>
<li>Bootstrapper - Programmierung erklärt</li>
<li>Bosco</li>
<li>Bradford King</li>
<li>Brainspore Networks</li>
<li>Branden Shaulis</li>
<li>Brandon Daniels</li>
<li>Brian</li>
<li>Brian Moses</li>
<li>Brian T Mulcahy</li>
<li>Brian Vecchiarelli</li>
<li>Brian White</li>
<li>Bruno Gomes</li>
<li>Bryan Adams</li>
<li>Bryan Montgomery</li>
<li>Buzzer</li>
<li>C P ELSE</li>
<li>Calanish</li>
<li>Cameron Hatcher</li>
<li>Cameron Tacklind</li>
<li>Carl Mercier</li>
<li>Carl-Fredrik Johansson</li>
<li>Carlos Garcia</li>
<li>Carlos Manuel Torres</li>
<li>cbad536</li>
<li>César Nascimento</li>
<li>CHINATERA LIMITED</li>
<li>Chris Blackmon</li>
<li>Chris Burton</li>
<li>Chris Campbell</li>
<li>Chris Jackson</li>
<li>Chris Lewis</li>
<li>Chris Rizio</li>
<li>Christi King</li>
<li>Christian Schlögl</li>
<li>Christian Svensson</li>
<li>Christof Maluck</li>
<li>Christoph Dette</li>
<li>Christoffer Lund</li>
<li>Christopher Bulla</li>
<li>Christopher Gelatt</li>
<li>Christopher Hearn</li>
<li>Christopher Mandlbaur</li>
<li>Christopher Mendoza</li>
<li>Christopher Simms</li>
<li>Chucktastic</li>
<li>Cihan VURAL</li>
<li>clauskj3r</li>
<li>Clifford Coleman</li>
<li>Clinton Lee Taylor</li>
<li>Cole Imhoff</li>
<li>Colin Goodman</li>
<li>Corey Layton</li>
<li>Corey Lista</li>
<li>Craig Keenan</li>
<li>Crossfactor</li>
<li>Cruzzer</li>
<li>ctag</li>
<li>Curt Sammer</li>
<li>CyB0rgg</li>
<li>DeMentor</li>
<li>Desmond Whitt</li>
<li>Daegara</li>
<li>DailyAneurism</li>
<li>Damon Meledones</li>
<li>Dan Berkowitz</li>
<li>Dan Brakeley</li>
<li>Daniel Bowder</li>
<li>Daniel Cabrera</li>
<li>Daniel Davila</li>
<li>Danilo Saft</li>
<li>Danne</li>
<li>Dariusz Techmański</li>
<li>David</li>
<li>David Brausewetter</li>
<li>David Davis</li>
<li>David Godibadze</li>
<li>David Howell</li>
<li>David Irvine</li>
<li>David Klinkman</li>
<li>David Niemann</li>
<li>David Shay</li>
<li>David Ye</li>
<li>David York</li>
<li>Denis</li>
<li>Denis Andreev</li>
<li>Denis Yatsenko</li>
<li>Dennis Becker</li>
<li>Dennis Joslin</li>
<li>Dennis Lomet</li>
<li>Derek Jarvis</li>
<li>Derek Yap</li>
<li>Didrik</li>
<li>digitalbaconbits</li>
<li>Dimitrij Jedich</li>
<li>dixon wong</li>
<li>dizztrukshin</li>
<li>Dmitry Shilov</li>
<li>DogeLabs</li>
<li>Dominic Phoon</li>
<li>Dominik Klonowski</li>
<li>Donald Hays</li>
<li>Edmon Abdul Nur</li>
<li>Egan Ford</li>
<li>Elani Ferri</li>
<li>Elliot Woo</li>
<li>Entt</li>
<li>Eric Phenix</li>
<li>Ethan Shold</li>
<li>Eugene Sukhodolin</li>
<li>ewook</li>
<li>eye-catcher.com</li>
<li>Fabian Druschke</li>
<li>Fabiano Sidler</li>
<li>Far Pin Solutions, LLC</li>
<li>Felyx Gabryel</li>
<li>Fergus McKay</li>
<li>Finn Ebenritter</li>
<li>floppy</li>
<li>fo0bar</li>
<li>Foad Yousef</li>
<li>Foamy</li>
<li>Foli Ayivoh</li>
<li>Folkert Weistra</li>
<li>Francisco Pavon</li>
<li>Frank</li>
<li>Frank Sander</li>
<li>Frederick Czajka</li>
<li>Fredrik Idréus</li>
<li>Garrett Dangerfield</li>
<li>Ge Men</li>
<li>Geekworm</li>
<li>Genkinger Andreas</li>
<li>Geijer</li>
<li>Geoffrey Wright</li>
<li>George Becker</li>
<li>Georgy Brodsky</li>
<li>Gerald</li>
<li>Gerardus Vernimmen</li>
<li>Gernot Neuschröer</li>
<li>Giovanni Fulco</li>
<li>GK</li>
<li>Glen Dragon</li>
<li>Greg Winterstein</li>
<li>Gregory Smith</li>
<li>Gregory Treantos</li>
<li>grewil</li>
<li>Grey Cynic</li>
<li>Guenter Honisch</li>
<li>Guido Bernacchi</li>
<li>Gustin Johnson</li>
<li>György Tamás Vizi</li>
<li>Haiberg GmbH</li>
<li>Haven Zheng</li>
<li>Heibunny</li>
<li>Heikki Tiittanen</li>
<li>Helio Leonardo Pinheiro e Mota</li>
<li>Henrik Ählström</li>
<li>Henry Hood</li>
<li>HimKo</li>
<li>HouseFPV</li>
<li>Howard Simons</li>
<li>HyunohRyu</li>
<li>Icculus</li>
<li>iks</li>
<li>INFO TRX INC</li>
<li>Invader Monks</li>
<li>Ioannis Karageorgos</li>
<li>Isaac</li>
<li>IT Lifesaver</li>
<li>Ivan Ganev</li>
<li>Ivan Josiah Lapis</li>
<li>Ivan Shapovalov</li>
<li>iwbjhbweriuhf</li>
<li>J</li>
<li>J L</li>
<li>Jaanus</li>
<li>Jackson Wyatt</li>
<li>Jacob Karaffa</li>
<li>Jacob Morgan</li>
<li>James Cadd</li>
<li>James Cobb</li>
<li>James Edwards</li>
<li>James Kocher</li>
<li>James Mayhugh</li>
<li>James Noonan</li>
<li>James Ye</li>
<li>Jamie Murphy</li>
<li>Jamie Scott</li>
<li>Jan Niehusmann</li>
<li>Jannick Oursin</li>
<li>Jari Hiltunen</li>
<li>Jason Crossley</li>
<li>Jason Downey</li>
<li>Jason Toland</li>
<li>Jasper Backer</li>
<li>Jay Davis</li>
<li>Jay Isaacs</li>
<li>Jazereel Goh</li>
<li>Jean-Daniel Croteau</li>
<li>Jean-Philippe Guilbault</li>
<li>Jeff</li>
<li>Jeff Bowman</li>
<li>Jeff Urlwin</li>
<li>Jennifer Herting</li>
<li>Jennifer Rowlett</li>
<li>Jeremy Abel</li>
<li>Jeremy Combs</li>
<li>Jeremy Hines</li>
<li>Jerremy Holland</li>
<li>Jerry Nall</li>
<li>Jerry Y. Chen</li>
<li>Jim Bailey</li>
<li>Jim Harbin</li>
<li>Jimmy Burgett</li>
<li>Jimmy Stanley</li>
<li>Joachim Bruening</li>
<li>Joe Hanson</li>
<li>Joe Hinteregger</li>
<li>Joe Ventura</li>
<li>Joel Jacobs</li>
<li>Johannes Heigermose</li>
<li>John Andersen</li>
<li>John Copeland</li>
<li>John F Glenn</li>
<li>John Holmes</li>
<li>John Kelley</li>
<li>John McGovern</li>
<li>Johnny Henson</li>
<li>Jon Ferguy</li>
<li>Jon-Eric</li>
<li>Joni Ruuskanen</li>
<li>Jonas Fischer</li>
<li>Jonathan Slenders</li>
<li>Jonathan Vaughn</li>
<li>Joost Backer</li>
<li>Jordan Blake</li>
<li>Jordi Pakey-Rodriguez</li>
<li>Joris van Embden</li>
<li>Joseph Swift</li>
<li>Josh Nethery</li>
<li>Josh Ricker</li>
<li>Josh VanDeraa</li>
<li>Joshua Futterer</li>
<li>Jozef Riha</li>
<li>Jörgen Fredriksson</li>
<li>Julian Forero</li>
<li>Julian Schneider</li>
<li>Julien Angelier</li>
<li>Justin</li>
<li>Justin Waters</li>
<li>Kai Hadler</li>
<li>Kamil Chyba</li>
<li>Kari Matti Korpi</li>
<li>Karl Dunne</li>
<li>Karl Moos</li>
<li>Keith Muggleton</li>
<li>Ken Lee</li>
<li>Kenneth Younger III</li>
<li>Kenny Hui</li>
<li>KeonWoo PARK</li>
<li>Kevin Bajohr</li>
<li>Kevin Schwartz</li>
<li>Kevin Sherwood</li>
<li>Kiera Kujisawa</li>
<li>Kiran Schuler</li>
<li>Koloman</li>
<li>Konrad Neitzel</li>
<li>Krzysztof Żelaśkiewicz</li>
<li>Lance Ward</li>
<li>Larry Meaney</li>
<li>Lars</li>
<li>Lars Reinhardt</li>
<li>Lee Wilkinson</li>
<li>LeeNX</li>
<li>Leon Siegl</li>
<li>Leonard Feineis</li>
<li>Liran</li>
<li>Liviu Dimitriu</li>
<li>Lizardo Hernandez</li>
<li>LoCascio</li>
<li>Lordbob75</li>
<li>Lothar Schweikle-Droll</li>
<li>Louis Müller</li>
<li>LSDTripp</li>
<li>Ľubor Slušný</li>
<li>Luca Di Diomede</li>
<li>Lucio De Carli</li>
<li>Luiz Bizzio</li>
<li>Lukas Bischof</li>
<li>Lukas Kammerer</li>
<li>Lukas Söder</li>
<li>Maksim Terehin</li>
<li>Malcolm Cameron</li>
<li>Manfred Radeschnig</li>
<li>Marc Khouri</li>
<li>Marcin Wilk</li>
<li>Marcio Zimbres</li>
<li>Marco Rossi</li>
<li>Marcos Wolf</li>
<li>Marek Marczykowski-Górecki</li>
<li>Marius</li>
<li>Mar. Balske</li>
<li>Mark Farrell</li>
<li>Mark Gilbert</li>
<li>Mark Knam</li>
<li>Mark Robinson</li>
<li>Markrosoft</li>
<li>Markus Halm</li>
<li>Markus Schicker</li>
<li>Markus Sobczack</li>
<li>Marshall Bjerke</li>
<li>Marten Hermans</li>
<li>Martin Gasser</li>
<li>Martin Hofbauer</li>
<li>Martin Raine</li>
<li>Martin Suelmann</li>
<li>Martin Wilhelmi</li>
<li>Marvin Honderboom</li>
<li>Mateusz Grabowski</li>
<li>Mathias Uhl</li>
<li>Matt Kane</li>
<li>Matthew Cameron</li>
<li>Mauricio Allende</li>
<li>Max Evans</li>
<li>Mecky</li>
<li>Mehmet Aydoğdu</li>
<li>Michael Bartholomew</li>
<li>Michael Bell</li>
<li>Michael Bombe</li>
<li>Michael Collins</li>
<li>Michael Copeland</li>
<li>Michael Ho</li>
<li>Michael Kovacs</li>
<li>Michael Lynch</li>
<li>Michael Pennington</li>
<li>Michael Sage</li>
<li>Michael Stella</li>
<li>Michael Thalmann</li>
<li>Michael Wu</li>
<li>MichaelZ</li>
<li>Michel Bissonnette</li>
<li>Mikael Wikström</li>
<li>Mike Mason</li>
<li>Mikhael Mariano</li>
<li>Milan Múčka</li>
<li>Miles Davis</li>
<li>Minh Tang</li>
<li>Moez Tharani</li>
<li>Morgan Helton</li>
<li>Myron Weber</li>
<li>Murad Khasawneh</li>
<li>N Patel</li>
<li>Nathaniel Griswold</li>
<li>Nelson Lee</li>
<li>nezu</li>
<li>Nicholas Jeppson</li>
<li>Nicholas Kopas</li>
<li>Nicholas Walczak</li>
<li>Nick Leffler</li>
<li>Nick Roethemeier</li>
<li>Nico Baumgartner</li>
<li>Nicolai Kragh-Hansen</li>
<li>Nigel Smith</li>
<li>Nihal Fernando</li>
<li>Nils Orbat</li>
<li>Nis Wechselberg</li>
<li>Nithin Philips</li>
<li>Nod Swal</li>
<li>Nolan Haynes</li>
<li>nubbn</li>
<li>nybble</li>
<li>Oh Be</li>
<li>Oliver Schwarz</li>
<li>Oliver Zimmer</li>
<li>Omar El-Domeiri</li>
<li>Omar Siam</li>
<li>Oscar</li>
<li>Patrick</li>
<li>Patrick Fortin-Ducharme</li>
<li>Patrick McDowell</li>
<li>Patrick Wagstrom</li>
<li>Paul Bishop</li>
<li>Paul De La Rosa</li>
<li>Paul Pietkiewicz</li>
<li>Paul Tan</li>
<li>Pawel Trofimiuk</li>
<li>Peder Madsen</li>
<li>Peter</li>
<li>Peter Drayton</li>
<li>Peter Farrelly</li>
<li>Peter Okelmann</li>
<li>Petra Lohmann</li>
<li>Petri Heiskanen</li>
<li>Phil Wu</li>
<li>Philip Edwards</li>
<li>Philip Merricks</li>
<li>Pierre Brassart</li>
<li>Pierre Peine</li>
<li>posicat</li>
<li>pozitron03</li>
<li>Przemysław Szypowicz</li>
<li>P_Dmitrij</li>
<li>Qteal</li>
<li>Quattro Uno</li>
<li>Quentin Peten</li>
<li>Ralph Borchers</li>
<li>Ranc1d</li>
<li>Randall D Bilbrey</li>
<li>RandomJerk</li>
<li>Raphael Schitz</li>
<li>Ref Chowdhury</li>
<li>René Rathenau</li>
<li>ReysDad</li>
<li>Ricardo Marques</li>
<li>Richard</li>
<li>Richard Bernarts</li>
<li>Richard Fancher</li>
<li>Richard Freemantle</li>
<li>Richard Michael</li>
<li>Rico Cantrell</li>
<li>Rob</li>
<li>Rob Holden</li>
<li>Rob Tongue</li>
<li>Robert Klauco</li>
<li>Robert Weemhoff</li>
<li>Robin Gfatter</li>
<li>Rodion DENISYUK</li>
<li>Rohit Priyadarshi</li>
<li>Rolfs 3D UG</li>
<li>Ronald LeBaron</li>
<li>Ronald Wells</li>
<li>Ronny Haldorsen</li>
<li>rotx</li>
<li>Rufo Sanchez</li>
<li>Russell Scott</li>
<li>Ryan</li>
<li>Ryan Peacock</li>
<li>Samed Ozoglu</li>
<li>Sameul Davies</li>
<li>Samuel Cote</li>
<li>Samuel Vetsch</li>
<li>Samuel Walker</li>
<li>Sarah Foster</li>
<li>Sarten X</li>
<li>Satish Alwani</li>
<li>Scott</li>
<li>Scott Gagon</li>
<li>Scott Spicola</li>
<li>Scott Tusing</li>
<li>Scott Worthington</li>
<li>Scuba</li>
<li>Sean</li>
<li>Sean Akers</li>
<li>SEAT</li>
<li>Sebastian</li>
<li>Seonwoo Lee</li>
<li>Sergey Lukjanov</li>
<li>Seth Jennings</li>
<li>Shane Selling</li>
<li>Shawn Butts</li>
<li>Sheran Gunasekera</li>
<li>Shichun Chen</li>
<li>Shin Guey Wong</li>
<li>Simon Evans</li>
<li>Simon Sundgaard</li>
<li>Simplistic Realities</li>
<li>Sirmo</li>
<li>Snowy Maslov</li>
<li>Solve Technology</li>
<li>srepac</li>
<li>Stefan Bautz</li>
<li>Stefan Müller</li>
<li>Stefan Stemmer</li>
<li>Stefan Vaillant</li>
<li>Stephan Schmidt</li>
<li>Stephen</li>
<li>Stephen Hocking</li>
<li>Steve Jones</li>
<li>Steve Kerr</li>
<li>Steve Ovens</li>
<li>Steve Stringham</li>
<li>Steven Richter</li>
<li>Stratagem Solutions Ltd</li>
<li>Sven Breckler</li>
<li>sudo34</li>
<li>SuperHiTech</li>
<li>Tango_Echo_Alpha</li>
<li>Tarlak Desaydrone</li>
<li>TechBear</li>
<li>Ted</li>
<li>Tejun Heo</li>
<li>TheSnowedOne</li>
<li>TheTechGiant</li>
<li>Thomas Charisoulis</li>
<li>Thomas Gitlin</li>
<li>Thomas Hagenmaier</li>
<li>Thomas Hedberg Jensen</li>
<li>Thomas Price</li>
<li>Thomas Søfteland</li>
<li>Tim Lenz</li>
<li>Tim Wilkinson</li>
<li>Timo Brinkmann</li>
<li>Timothee Besset</li>
<li>TitomusPrime</li>
<li>Tobias Schafferhans</li>
<li>Tom Lawson</li>
<li>Tom York</li>
<li>Tomas Kuchta</li>
<li>Tomáš hrubý</li>
<li>Torsten Droste</li>
<li>Tracy Fitch</li>
<li>Tristan Schoening</li>
<li>Truman Kilen</li>
<li>turbochris</li>
<li>tutanak</li>
<li>Tyler</li>
<li>Udo Schroeter</li>
<li>Uli Fahrer</li>
<li>Vasily Lazarev</li>
<li>Vidru Eduard</li>
<li>Vicente Salvador Cubedo</li>
<li>Viktor Aschenbrenner</li>
<li>Viktor Ekmark</li>
<li>Vincent Chov</li>
<li>Vlad Sterescu</li>
<li>Volker Gropp</li>
<li>Walli</li>
<li>Walter_Ego</li>
<li>William Wenzel</li>
<li>Will Froning</li>
<li>William Hooper</li>
<li>William Perrin</li>
<li>William Stearns</li>
<li>Woojin Son</li>
<li>xMdb</li>
<li>Yanko Kaneti</li>
<li>Yaroslav Kulikovskikh</li>
<li>Yethal</li>
<li>Yevgeniy Kuksenko</li>
<li>Yew Kay Yan</li>
<li>Yigal Dar</li>
<li>Yogi</li>
<li>YURI LEE</li>
<li>Yurii Ostapchuk</li>
<li>Zeljko</li>
<li>zgen</li>
<li>Zoltan Magyari</li>
<li>Zsombor Vari</li>
</ul>
</div>
</div>
</div><br>
@ -2663,7 +2035,7 @@
</div>
<div class="window window-resizable" id="webterm-window" style="width: 640px; height: 480px">
<div class="window-header">
<div class="window-grab">Terminal</div>
<div class="window-grab" i18n="kvm_text16">Terminal</div>
<button class="window-button-close"><b>&times;</b></button>
<button class="window-button-maximize">&#9744;</button>
<!-- Терминал глючит из-за зажимаемой клавиши ESC для выхода-->
@ -2673,7 +2045,7 @@
</div>
<ul class="footer">
<li class="footer-left"><span id="kvmd-meta-server-host" title="Server name (see System/About)"></span>&nbsp; | &nbsp;<span id="kvmd-version-kvmd" title="KVMD version"></span>&nbsp; | &nbsp;<span id="kvmd-version-streamer" title="Streamer version"></span></li>
<li class="footer-right"><a target="_blank" href="https://pikvm.org">PiKVM Project</a>&nbsp; | &nbsp;<a target="_blank" href="https://docs.pikvm.org">Documentation</a>&nbsp; | &nbsp;<a target="_blank" href="https://pikvm.org/support">Support</a></li>
<li class="footer-right"><a target="_blank" href="https://pikvm.org" i18n="index_text_10">PiKVM Project</a>&nbsp; | &nbsp;<a target="_blank" href="https://docs.pikvm.org" i18n="index_text_11">Documentation</a>&nbsp; | &nbsp;<a target="_blank" href="https://github.com/mofeng-git/One-KVM" i18n="index_text_12">One-KVM Project</a>&nbsp; | &nbsp;<a target="_blank" href="https://one-kvm.mofeng.run" i18n="index_text_13">One-KVM Documentation</a></li>
</ul>
</body>
</html>

View File

@ -19,8 +19,10 @@ block body
| &nbsp; | &nbsp;
span(id="kvmd-version-streamer" title="Streamer version")
li(class="footer-right")
a(target="_blank" href="https://pikvm.org") PiKVM Project
a(target="_blank" href="https://pikvm.org" i18n="index_text_10") PiKVM Project
| &nbsp; | &nbsp;
a(target="_blank" href="https://docs.pikvm.org") Documentation
a(target="_blank" href="https://docs.pikvm.org" i18n="index_text_11") Documentation
| &nbsp; | &nbsp;
a(target="_blank" href="https://pikvm.org/support") Support
a(target="_blank" href="https://github.com/mofeng-git/One-KVM" i18n="index_text_12") One-KVM Project
| &nbsp; | &nbsp;
a(target="_blank" href="https://one-kvm.mofeng.run" i18n="index_text_13") One-KVM Documentation

View File

@ -4,17 +4,17 @@ li(id="system-dropdown" class="right")
+navbar_led("stream-led", "led-stream")
+navbar_led("hid-keyboard-led", "led-hid-keyboard")
+navbar_led("hid-mouse-led", "led-hid-mouse")
span System
span(i18n="kvm_text3") System
div(id="system-menu" class="menu")
table(class="kv")
tr
td(class="value") Runtime settings &amp; tools
td(id="system-tool-webterm" class="feature-disabled") #[button(data-force-hide-menu data-show-window="webterm-window" class="small") &bull; Term]
td(id="system-tool-about") #[button(data-force-hide-menu data-show-window="about-window" class="small") &bull; About]
td(id="system-tool-log") #[button(data-force-hide-menu id="open-log-button" class="small") &bull; Log]
td(class="value" i18n="kvm_text4") Runtime settings &amp; tools
td(id="system-tool-webterm" class="feature-disabled") #[button(data-force-hide-menu data-show-window="webterm-window" class="small" i18n="kvm_text5") &bull; Term]
td(id="system-tool-about") #[button(data-force-hide-menu data-show-window="about-window" class="small" i18n="kvm_text6") &bull; About]
td(id="system-tool-log") #[button(data-force-hide-menu id="open-log-button" class="small" i18n="kvm_text7") &bull; Log]
td(id="system-tool-wol" class="feature-disabled")
button(data-force-hide-menu id="gpio-button-__wol__" class="gpio-button small" data-channel="__wol__"
data-confirm="Are you sure to send Wake-on-LAN packet to the server?") &bull; WoL
data-confirm="Are you sure to send Wake-on-LAN packet to the server?" i18n="kvm_text8") &bull; WoL
hr
div(id="stream-message-no-webrtc" class="hidden")
+menu_message("warning", "WebRTC is not supported by this browser")
@ -24,26 +24,26 @@ li(id="system-dropdown" class="right")
hr
table(class="kv")
tr(id="stream-resolution" class="feature-disabled")
td Resolution:
td(i18n="kvm_text9") Resolution:
td #[select(disabled id="stream-resolution-selector")]
tr(id="stream-quality" class="feature-disabled")
td JPEG quality:
td(i18n="kvm_text10") JPEG quality:
td(class="value-slider") #[input(disabled type="range" id="stream-quality-slider" class="slider")]
td(id="stream-quality-value" class="value-number")
tr
td JPEG max fps:
td(i18n="kvm_text11") JPEG max fps:
td(class="value-slider") #[input(disabled type="range" id="stream-desired-fps-slider" class="slider")]
td(id="stream-desired-fps-value" class="value-number")
tr(id="stream-h264-bitrate" class="feature-disabled")
td H.264 kbps:
td(i18n="kvm_text12") H.264 kbps:
td(class="value-slider") #[input(disabled type="range" id="stream-h264-bitrate-slider" class="slider")]
td(id="stream-h264-bitrate-value" class="value-number")
tr(id="stream-h264-gop" class="feature-disabled")
td H.264 #[a(target="_blank" href="https://docs.pikvm.org/webrtc") gop]:
td(i18n="kvm_text13") H.264 #[a(target="_blank" href="https://docs.pikvm.org/webrtc") gop]:
td(class="value-slider") #[input(disabled type="range" id="stream-h264-gop-slider" class="slider")]
td(id="stream-h264-gop-value" class="value-number")
tr(id="stream-mode" class="feature-disabled")
td Video #[a(target="_blank" href="https://docs.pikvm.org/webrtc") mode]:
td(i18n="kvm_text14") Video #[a(target="_blank" href="https://docs.pikvm.org/webrtc") mode]:
td
div(class="radio-box")
input(checked type="radio" id="stream-mode-radio-mjpeg" name="stream-mode-radio" value="mjpeg")
@ -51,11 +51,11 @@ li(id="system-dropdown" class="right")
input(type="radio" id="stream-mode-radio-janus" name="stream-mode-radio" value="janus")
label(for="stream-mode-radio-janus") H.264 / WebRTC
tr(id="stream-orient" class="feature-disabled")
td Orientation:
td(i18n="kvm_text17") Orientation:
td
div(class="radio-box")
input(checked type="radio" id="stream-orient-radio-0" name="stream-orient-radio" value="0")
label(for="stream-orient-radio-0") Default
label(for="stream-orient-radio-0" i18n="kvm_text18") Default
input(type="radio" id="stream-orient-radio-90" name="stream-orient-radio" value="90")
label(for="stream-orient-radio-90") 90&deg;
input(type="radio" id="stream-orient-radio-180" name="stream-orient-radio" value="180")
@ -63,25 +63,25 @@ li(id="system-dropdown" class="right")
input(type="radio" id="stream-orient-radio-270" name="stream-orient-radio" value="270")
label(for="stream-orient-radio-270") 270&deg;
tr(id="stream-audio", class="feature-disabled")
td Audio volume:
td(i18n="kvm_text19") Audio volume:
td(class="value-slider") #[input(type="range" id="stream-audio-volume-slider" class="slider")]
td(id="stream-audio-volume-value" class="value-number")
hr
div(class="buttons buttons-row")
button(data-force-hide-menu data-show-window="stream-window" class="row33") &bull; Show stream
button(data-force-hide-menu id="stream-screenshot-button" class="row33") &bull; Screenshot
button(id="stream-reset-button" class="row33") Reset stream
button(data-force-hide-menu data-show-window="stream-window" class="row33" i18n="kvm_text20") &bull; Show stream
button(data-force-hide-menu id="stream-screenshot-button" class="row33" i18n="kvm_text21") &bull; Screenshot
button(id="stream-reset-button" class="row33" i18n="kvm_text22") Reset stream
div(id="hid-outputs" class="feature-disabled")
hr
table(class="kv")
tr(id="hid-outputs-keyboard", class="feature-disabled")
td Keyboard mode:
td(i18n="kvm_text23") Keyboard mode:
td #[div(id="hid-outputs-keyboard-box" class="radio-box")]
tr(id="hid-outputs-mouse", class="feature-disabled")
td Mouse #[a(target="_blank" href="https://docs.pikvm.org/mouse") mode]:
td(i18n="kvm_text24") Mouse #[a(target="_blank" href="https://docs.pikvm.org/mouse") mode]:
td #[div(id="hid-outputs-mouse-box" class="radio-box")]
details
summary Keyboard &amp; Mouse (HID) settings
summary(i18n="kvm_text25") Keyboard &amp; Mouse (HID) settings
div(class="spoiler")
table(class="kv")
tr
@ -89,17 +89,17 @@ li(id="system-dropdown" class="right")
hr
table(class="kv")
tr
td Mouse polling:
td(i18n="kvm_text26") Mouse polling:
td(class="value-slider") #[input(type="range" id="hid-mouse-rate-slider" class="slider")]
td(id="hid-mouse-rate-value" class="value-number")
tr(id="hid-mouse-sens" class="feature-disabled")
td Relative sensitivity:
td(i18n="kvm_text27") Relative sensitivity:
td(class="value-slider") #[input(disabled type="range" id="hid-mouse-sens-slider" class="slider")]
td(id="hid-mouse-sens-value" class="value-number")
tr(id="hid-mouse-squash" class="feature-disabled")
+menu_switch_notable("hid-mouse-squash-switch", "Squash relative moves", true, true)
tr
td Reverse scrolling:
td(i18n="kvm_text28") Reverse scrolling:
td
table
tr
@ -109,7 +109,7 @@ li(id="system-dropdown" class="right")
tr
+menu_switch_notable("hid-mouse-cumulative-scrolling-switch", "Cumulative scrolling", true, false)
tr
td Scroll rate:
td(i18n="kvm_text29") Scroll rate:
td(class="value-slider") #[input(type="range" id="hid-mouse-scroll-slider" class="slider")]
td(id="hid-mouse-scroll-value" class="value-number")
tr
@ -130,5 +130,5 @@ li(id="system-dropdown" class="right")
+menu_switch_notable("page-close-ask-switch", "Ask page close confirmation", true, true)
hr
div(class="buttons buttons-row")
button(data-force-hide-menu data-show-window="keyboard-window" class="row50") &bull; Show keyboard
button(disabled id="hid-reset-button" class="row50") Reset HID
button(data-force-hide-menu data-show-window="keyboard-window" class="row50" i18n="kvm_text30") &bull; Show keyboard
button(disabled id="hid-reset-button" class="row50" i18n="kvm_text31") Reset HID

View File

@ -11,7 +11,7 @@ mixin about_tab(name, title, checked=false)
div(id="about-window" class="window")
div(class="window-header")
div(class="window-grab") About
div(class="window-grab" i18n="kvm_text1") About
button(class="window-button-close") #[b &times;]
div(id="about")
@ -22,9 +22,9 @@ div(id="about-window" class="window")
img(class="svg-gray" src=`${svg_dir}/logo.svg` alt="PiKVM" height="40")
td
table
tr #[td(colspan="2" class="title") The Open Source KVM over IP]
tr #[td(colspan="2" class="title" i18n="index_title") The Open Source KVM over IP]
tr
td(colspan="2" class="copyright")
td(colspan="2" class="copyright" i18n="copyright")
| Copyright &copy; 2018-2024 #[a(target="_blank" href="mailto:mdevaev@gmail.com") Maxim Devaev]
br
div(class="tabs-box")
@ -33,7 +33,7 @@ div(id="about-window" class="window")
+about_tab("version", "Version")
+about_tab("thanks", "Thanks")
span(class="code-comment")
span(class="code-comment" i18n="kvm_text2")
| // These kind people donated money to the PiKVM project#[br]
| // and supported the work on it. We are very grateful#[br]
| // for their help, and memorializing their names#[br]
@ -41,633 +41,6 @@ div(id="about-window" class="window")
| // If you also want to support this project,#[br]
| // you can donate on #[a(target="_blank" href="https://www.patreon.com/pikvm") Patreon]
| or #[a(target="_blank" href="https://paypal.me/pikvm") Paypal].
ul
li A. Isenring
li Aaron Graubert
li Aaron Heise
li Aaron Stein
li Accalia
li Adam Goodbar
li Adam S
li Adam Stuart
li AdamBomb
li adipisicing
li Adrian Basham
li Adrian Popescu
li Ahmed Syed
li Alberto Bassi
li alejandro
li Aleksei Brusianskii
li Alessio Curri
li Alex T
li Alex Z
li Alexander Karmanov
li Alexander Lahuerta
li Alexander Martin
li Alexander Pankov
li Alexandre Jablonski
li Alexey Kamenskiy
li alm0241
li Alok Anand
li Alucard
li Ananthaneshan Elampoornan
li Andreas Marufke
li Andreas Schmid
li Andrew Brant
li Andrew Melton
li Andrew Reusch
li Andrew Ruan
li Andrzej V
li Andy
li Andy Keys
li Anish Patel
li Anix
li Anonymous
li Anthony Junk
li Anton Kovalenko
li Armen
li Aron Green
li Aron Perelman
li Artem Simonov
li Arthur Mayer
li Arthur Woimbée
li Ashlesh Chaudhari
li Asim Shakour
li Augusto Becciu
li AVS Computer
li awkspace
li Badal Patel
li baddog
li Bao Tin Hoang
li Bean Co.
li Bela Bargel
li Belf Igor
li Ben Gordon
li Ben Scott
li Benedikt Heine
li Benedikt Meier
li Benjamin Frewert
li Benjamin Melancon
li Benjamin Schwartz
li Benjamin Stegmann
li Benni Stauder
li Bernhard Fitzke
li Beu
li bikmaek
li bitjoe
li Bits and Bytes Computers LLC
li Bjoern Petsch
li Blair Hasler
li Blindside
li Blue Frog LLC
li Bootstrapper - Programmierung erklärt
li Bosco
li Bradford King
li Brainspore Networks
li Branden Shaulis
li Brandon Daniels
li Brian
li Brian Moses
li Brian T Mulcahy
li Brian Vecchiarelli
li Brian White
li Bruno Gomes
li Bryan Adams
li Bryan Montgomery
li Buzzer
li C P ELSE
li Calanish
li Cameron Hatcher
li Cameron Tacklind
li Carl Mercier
li Carl-Fredrik Johansson
li Carlos Garcia
li Carlos Manuel Torres
li cbad536
li César Nascimento
li CHINATERA LIMITED
li Chris Blackmon
li Chris Burton
li Chris Campbell
li Chris Jackson
li Chris Lewis
li Chris Rizio
li Christi King
li Christian Schlögl
li Christian Svensson
li Christof Maluck
li Christoph Dette
li Christoffer Lund
li Christopher Bulla
li Christopher Gelatt
li Christopher Hearn
li Christopher Mandlbaur
li Christopher Mendoza
li Christopher Simms
li Chucktastic
li Cihan VURAL
li clauskj3r
li Clifford Coleman
li Clinton Lee Taylor
li Cole Imhoff
li Colin Goodman
li Corey Layton
li Corey Lista
li Craig Keenan
li Crossfactor
li Cruzzer
li ctag
li Curt Sammer
li CyB0rgg
li DeMentor
li Desmond Whitt
li Daegara
li DailyAneurism
li Damon Meledones
li Dan Berkowitz
li Dan Brakeley
li Daniel Bowder
li Daniel Cabrera
li Daniel Davila
li Danilo Saft
li Danne
li Dariusz Techmański
li David
li David Brausewetter
li David Davis
li David Godibadze
li David Howell
li David Irvine
li David Klinkman
li David Niemann
li David Shay
li David Ye
li David York
li Denis
li Denis Andreev
li Denis Yatsenko
li Dennis Becker
li Dennis Joslin
li Dennis Lomet
li Derek Jarvis
li Derek Yap
li Didrik
li digitalbaconbits
li Dimitrij Jedich
li dixon wong
li dizztrukshin
li Dmitry Shilov
li DogeLabs
li Dominic Phoon
li Dominik Klonowski
li Donald Hays
li Edmon Abdul Nur
li Egan Ford
li Elani Ferri
li Elliot Woo
li Entt
li Eric Phenix
li Ethan Shold
li Eugene Sukhodolin
li ewook
li eye-catcher.com
li Fabian Druschke
li Fabiano Sidler
li Far Pin Solutions, LLC
li Felyx Gabryel
li Fergus McKay
li Finn Ebenritter
li floppy
li fo0bar
li Foad Yousef
li Foamy
li Foli Ayivoh
li Folkert Weistra
li Francisco Pavon
li Frank
li Frank Sander
li Frederick Czajka
li Fredrik Idréus
li Garrett Dangerfield
li Ge Men
li Geekworm
li Genkinger Andreas
li Geijer
li Geoffrey Wright
li George Becker
li Georgy Brodsky
li Gerald
li Gerardus Vernimmen
li Gernot Neuschröer
li Giovanni Fulco
li GK
li Glen Dragon
li Greg Winterstein
li Gregory Smith
li Gregory Treantos
li grewil
li Grey Cynic
li Guenter Honisch
li Guido Bernacchi
li Gustin Johnson
li György Tamás Vizi
li Haiberg GmbH
li Haven Zheng
li Heibunny
li Heikki Tiittanen
li Helio Leonardo Pinheiro e Mota
li Henrik Ählström
li Henry Hood
li HimKo
li HouseFPV
li Howard Simons
li HyunohRyu
li Icculus
li iks
li INFO TRX INC
li Invader Monks
li Ioannis Karageorgos
li Isaac
li IT Lifesaver
li Ivan Ganev
li Ivan Josiah Lapis
li Ivan Shapovalov
li iwbjhbweriuhf
li J
li J L
li Jaanus
li Jackson Wyatt
li Jacob Karaffa
li Jacob Morgan
li James Cadd
li James Cobb
li James Edwards
li James Kocher
li James Mayhugh
li James Noonan
li James Ye
li Jamie Murphy
li Jamie Scott
li Jan Niehusmann
li Jannick Oursin
li Jari Hiltunen
li Jason Crossley
li Jason Downey
li Jason Toland
li Jasper Backer
li Jay Davis
li Jay Isaacs
li Jazereel Goh
li Jean-Daniel Croteau
li Jean-Philippe Guilbault
li Jeff
li Jeff Bowman
li Jeff Urlwin
li Jennifer Herting
li Jennifer Rowlett
li Jeremy Abel
li Jeremy Combs
li Jeremy Hines
li Jerremy Holland
li Jerry Nall
li Jerry Y. Chen
li Jim Bailey
li Jim Harbin
li Jimmy Burgett
li Jimmy Stanley
li Joachim Bruening
li Joe Hanson
li Joe Hinteregger
li Joe Ventura
li Joel Jacobs
li Johannes Heigermose
li John Andersen
li John Copeland
li John F Glenn
li John Holmes
li John Kelley
li John McGovern
li Johnny Henson
li Jon Ferguy
li Jon-Eric
li Joni Ruuskanen
li Jonas Fischer
li Jonathan Slenders
li Jonathan Vaughn
li Joost Backer
li Jordan Blake
li Jordi Pakey-Rodriguez
li Joris van Embden
li Joseph Swift
li Josh Nethery
li Josh Ricker
li Josh VanDeraa
li Joshua Futterer
li Jozef Riha
li Jörgen Fredriksson
li Julian Forero
li Julian Schneider
li Julien Angelier
li Justin
li Justin Waters
li Kai Hadler
li Kamil Chyba
li Kari Matti Korpi
li Karl Dunne
li Karl Moos
li Keith Muggleton
li Ken Lee
li Kenneth Younger III
li Kenny Hui
li KeonWoo PARK
li Kevin Bajohr
li Kevin Schwartz
li Kevin Sherwood
li Kiera Kujisawa
li Kiran Schuler
li Koloman
li Konrad Neitzel
li Krzysztof Żelaśkiewicz
li Lance Ward
li Larry Meaney
li Lars
li Lars Reinhardt
li Lee Wilkinson
li LeeNX
li Leon Siegl
li Leonard Feineis
li Liran
li Liviu Dimitriu
li Lizardo Hernandez
li LoCascio
li Lordbob75
li Lothar Schweikle-Droll
li Louis Müller
li LSDTripp
li Ľubor Slušný
li Luca Di Diomede
li Lucio De Carli
li Luiz Bizzio
li Lukas Bischof
li Lukas Kammerer
li Lukas Söder
li Maksim Terehin
li Malcolm Cameron
li Manfred Radeschnig
li Marc Khouri
li Marcin Wilk
li Marcio Zimbres
li Marco Rossi
li Marcos Wolf
li Marek Marczykowski-Górecki
li Marius
li Mar. Balske
li Mark Farrell
li Mark Gilbert
li Mark Knam
li Mark Robinson
li Markrosoft
li Markus Halm
li Markus Schicker
li Markus Sobczack
li Marshall Bjerke
li Marten Hermans
li Martin Gasser
li Martin Hofbauer
li Martin Raine
li Martin Suelmann
li Martin Wilhelmi
li Marvin Honderboom
li Mateusz Grabowski
li Mathias Uhl
li Matt Kane
li Matthew Cameron
li Mauricio Allende
li Max Evans
li Mecky
li Mehmet Aydoğdu
li Michael Bartholomew
li Michael Bell
li Michael Bombe
li Michael Collins
li Michael Copeland
li Michael Ho
li Michael Kovacs
li Michael Lynch
li Michael Pennington
li Michael Sage
li Michael Stella
li Michael Thalmann
li Michael Wu
li MichaelZ
li Michel Bissonnette
li Mikael Wikström
li Mike Mason
li Mikhael Mariano
li Milan Múčka
li Miles Davis
li Minh Tang
li Moez Tharani
li Morgan Helton
li Myron Weber
li Murad Khasawneh
li N Patel
li Nathaniel Griswold
li Nelson Lee
li nezu
li Nicholas Jeppson
li Nicholas Kopas
li Nicholas Walczak
li Nick Leffler
li Nick Roethemeier
li Nico Baumgartner
li Nicolai Kragh-Hansen
li Nigel Smith
li Nihal Fernando
li Nils Orbat
li Nis Wechselberg
li Nithin Philips
li Nod Swal
li Nolan Haynes
li nubbn
li nybble
li Oh Be
li Oliver Schwarz
li Oliver Zimmer
li Omar El-Domeiri
li Omar Siam
li Oscar
li Patrick
li Patrick Fortin-Ducharme
li Patrick McDowell
li Patrick Wagstrom
li Paul Bishop
li Paul De La Rosa
li Paul Pietkiewicz
li Paul Tan
li Pawel Trofimiuk
li Peder Madsen
li Peter
li Peter Drayton
li Peter Farrelly
li Peter Okelmann
li Petra Lohmann
li Petri Heiskanen
li Phil Wu
li Philip Edwards
li Philip Merricks
li Pierre Brassart
li Pierre Peine
li posicat
li pozitron03
li Przemysław Szypowicz
li P_Dmitrij
li Qteal
li Quattro Uno
li Quentin Peten
li Ralph Borchers
li Ranc1d
li Randall D Bilbrey
li RandomJerk
li Raphael Schitz
li Ref Chowdhury
li René Rathenau
li ReysDad
li Ricardo Marques
li Richard
li Richard Bernarts
li Richard Fancher
li Richard Freemantle
li Richard Michael
li Rico Cantrell
li Rob
li Rob Holden
li Rob Tongue
li Robert Klauco
li Robert Weemhoff
li Robin Gfatter
li Rodion DENISYUK
li Rohit Priyadarshi
li Rolfs 3D UG
li Ronald LeBaron
li Ronald Wells
li Ronny Haldorsen
li rotx
li Rufo Sanchez
li Russell Scott
li Ryan
li Ryan Peacock
li Samed Ozoglu
li Sameul Davies
li Samuel Cote
li Samuel Vetsch
li Samuel Walker
li Sarah Foster
li Sarten X
li Satish Alwani
li Scott
li Scott Gagon
li Scott Spicola
li Scott Tusing
li Scott Worthington
li Scuba
li Sean
li Sean Akers
li SEAT
li Sebastian
li Seonwoo Lee
li Sergey Lukjanov
li Seth Jennings
li Shane Selling
li Shawn Butts
li Sheran Gunasekera
li Shichun Chen
li Shin Guey Wong
li Simon Evans
li Simon Sundgaard
li Simplistic Realities
li Sirmo
li Snowy Maslov
li Solve Technology
li srepac
li Stefan Bautz
li Stefan Müller
li Stefan Stemmer
li Stefan Vaillant
li Stephan Schmidt
li Stephen
li Stephen Hocking
li Steve Jones
li Steve Kerr
li Steve Ovens
li Steve Stringham
li Steven Richter
li Stratagem Solutions Ltd
li Sven Breckler
li sudo34
li SuperHiTech
li Tango_Echo_Alpha
li Tarlak Desaydrone
li TechBear
li Ted
li Tejun Heo
li TheSnowedOne
li TheTechGiant
li Thomas Charisoulis
li Thomas Gitlin
li Thomas Hagenmaier
li Thomas Hedberg Jensen
li Thomas Price
li Thomas Søfteland
li Tim Lenz
li Tim Wilkinson
li Timo Brinkmann
li Timothee Besset
li TitomusPrime
li Tobias Schafferhans
li Tom Lawson
li Tom York
li Tomas Kuchta
li Tomáš hrubý
li Torsten Droste
li Tracy Fitch
li Tristan Schoening
li Truman Kilen
li turbochris
li tutanak
li Tyler
li Udo Schroeter
li Uli Fahrer
li Vasily Lazarev
li Vidru Eduard
li Vicente Salvador Cubedo
li Viktor Aschenbrenner
li Viktor Ekmark
li Vincent Chov
li Vlad Sterescu
li Volker Gropp
li Walli
li Walter_Ego
li William Wenzel
li Will Froning
li William Hooper
li William Perrin
li William Stearns
li Woojin Son
li xMdb
li Yanko Kaneti
li Yaroslav Kulikovskikh
li Yethal
li Yevgeniy Kuksenko
li Yew Kay Yan
li Yigal Dar
li Yogi
li YURI LEE
li Yurii Ostapchuk
li Zeljko
li zgen
li Zoltan Magyari
li Zsombor Vari
br
p(class="text credits")
a(target="_blank" href="https://pikvm.org") PiKVM Project

View File

@ -30,7 +30,7 @@ mixin lamp(cls)
div(id="keyboard-window" class="window")
div(id="keyboard-window-header" class="window-header")
div(class="window-grab") Virtual Keyboard
div(class="window-grab" i18n="kvm_text15") Virtual Keyboard
button(class="window-button-close") #[b &times;]
div(id="keyboard-desktop" class="keypad" align="center")

View File

@ -1,6 +1,6 @@
div(id="webterm-window" class="window window-resizable" style="width: 640px; height: 480px")
div(class="window-header")
div(class="window-grab") Terminal
div(class="window-grab" i18n="kvm_text16") Terminal
button(class="window-button-close") #[b &times;]
button(class="window-button-maximize") &#9744;
// Терминал глючит из-за зажимаемой клавиши ESC для выхода

View File

@ -8,6 +8,7 @@
"chinese": "Simplified Chinese",
"english": "English",
"footer-left": "This site is actively using JavaScript.<br>It doesn't contain ads, but is blocked by some ad filters.<br>Please turn it off to continue and reload the page.",
"index": " One-KVM Index ",
"copyright": "Copyright &copy; 2018-2024 Maxim Devaev | Modified by SilentWind",
"index_text_1": "Please note that when you are working with a KVM session or another application that captures the keyboard,you can't use some keyboard shortcuts such as Ctrl+Alt+Del (which will be caught by your OS) or Ctrl+W (caught by your browser).",
@ -17,5 +18,45 @@
"index_text_11":"PiKVM Documentation",
"index_text_12":"One-KVM Project",
"index_text_13":"One-KVM Documentation",
"index_title":"The Open Source KVM over IP"
"index_title":"The Open Source KVM over IP",
"vnc_text1": "This One-KVM device has running <b>kvmd-vnc</b> daemon and provides VNC access to the server.",
"vnc_text2": "<b>WARNING!</b> We strongly don't recommend you to use VNC in untrusted networks without enabled X.509 or TLS encryption. Otherwise your passwords are transmitted in a plain text over the network.",
"vnc_text3": "Your VNC client must support Tight JPEG compression and password authentication. <a href=\"https://tigervnc.org\">TigerVNC</a> is a good choice.On Linux, this client will most likely be available for installation from the repository. It can also be called vncviewer.",
"ipmi_text1":"This One-KVM device has running <b>kvmd-ipmi</b> daemon and provides IPMI 2.0 interface for some basic BMC operations like on/off/reset the server.",
"ipmi_text2":"<b>WARNING!</b> We strongly don't recommend you to use IPMI in untrusted networks because this protocol is completely unsafe by design. In short, the authentication process for IPMI mandates that the server send a salted SHA1 or MD5 hash of the requested user's password to the client, prior to the client authenticating.",
"ipmi_text3":"<b>NEVER</b> use the same passwords for KVMD and IPMI users. And even better not to use IPMI. Instead, you can directly use KVMD API via curl. Here some examples:",
"kvm_text1":"About",
"kvm_text2":"// These <a href=\"https://github.com/pikvm/pikvm?tab=readme-ov-file#special-thanks\">kind people</a> donated money to the PiKVM project<br>// and supported the work on it. We are very grateful<br>// for their help, and memorializing their names<br>// is the least we can do in gratitude.<br>// If you also want to support this project,<br>// you can donate on <a target=\"_blank\" href=\"https://www.patreon.com/pikvm\"> Patreon</a> or <a target=\"_blank\" href=\"https://paypal.me/pikvm\"> Paypal</a>.",
"kvm_text3":"System",
"kvm_text4":"Runtime settings &amp; tools",
"kvm_text5":"Term",
"kvm_text6":"About",
"kvm_text7":"Log",
"kvm_text8":"WoL",
"kvm_text9":"Resolution:",
"kvm_text10":"JPEG quality:",
"kvm_text11":"JPEG max fps:",
"kvm_text12":"H.264 kbps:",
"kvm_text13":"H.264 gop",
"kvm_text14":"Video mode",
"kvm_text15":"Virtual Keyboard",
"kvm_text16":"Terminal",
"kvm_text17":"Orientation:",
"kvm_text18":"Default",
"kvm_text19":"Audio volume:",
"kvm_text20":"&bull; Show stream",
"kvm_text21":"&bull; Screenshot",
"kvm_text22":"Reset stream",
"kvm_text23":"Keyboard mode:",
"kvm_text24":"Mouse mode:",
"kvm_text25":"Keyboard &amp; Mouse (HID) settings",
"kvm_text26":"Mouse polling:",
"kvm_text27":"Relative sensitivity:",
"kvm_text28":"Reverse scrolling:",
"kvm_text29":"Scroll rate:",
"kvm_text30":"&bull; Show keyboard",
"kvm_text31":"Reset HID"
}

View File

@ -8,6 +8,7 @@
"chinese": "简体中文",
"english": "英语",
"footer-left": "本网站需要使用 JavaScript 功能。<br>本网站不含广告,但仍有可能会被某些广告过滤器屏蔽。<br>如果网页响应异常请关闭它并重新加载页面以继续浏览。",
"index": " One-KVM 导航 ",
"copyright": "版权所有 &copy; 2018-2024 Maxim Devaev | 由 SilentWind 二次开发",
"index_text_1": "请注意,在使用 KVM 会话或其他可捕获键盘的应用程序时,您无法使用某些快捷键,如 Ctrl+Alt+Del这会被操作系统捕获或 Ctrl+W这会被浏览器捕获。",
@ -17,5 +18,45 @@
"index_text_11":"PiKVM 文档",
"index_text_12":"One-KVM 项目",
"index_text_13":"One-KVM 文档",
"index_title":"开源 KVM over IP"
"index_title":"开源 KVM over IP",
"vnc_text1": "该 One-KVM 设备 <b>kvmd-vnc</b> 守护进程已运行,提供对服务器的 VNC 访问。",
"vnc_text2": "<b>不建议</b>在未启用 X.509 或 TLS 加密的网络中使用 VNC。否则您的密码将以纯文本形式在网络上传输。",
"vnc_text3": "VNC 客户端必须支持 Tight JPEG 压缩和密码验证。",
"ipmi_text1":"该 One-KVM 设备 <b>kvmd-ipmi</b> 守护进程已运行,并为一些基本的 BMC 操作(如打开/关闭/重置服务器)提供了 IPMI 2.0 接口。",
"ipmi_text2":"<b>不建议</b>在不受信任的网络中使用 IPMI因为该协议的设计完全不安全。<br>原因如下IPMI 的身份验证过程要求服务器在客户端进行身份验证之前,向客户端发送请求用户密码的加盐 SHA1 或 MD5 哈希值。",
"ipmi_text3":"<b>不建议</b>为 KVMD 和 IPMI 用户使用相同的密码,或者直接关闭 IPMI。如有需要可以通过 curl 直接使用 KVMD API。下面是一些示例",
"kvm_text1":"关于",
"kvm_text2":"//这些<a href=\"https://github.com/pikvm/pikvm?tab=readme-ov-file#special-thanks\">好心人</a>向 PiKVM 项目捐款并支持其工作,非常感谢他们的帮助。<br>//如果您也想支持 PiKVM ,您可以在 <a target=\"_blank\" href=\"https://www.patreon.com/pikvm\"> Patreon</a> 或 <a target=\"_blank\" href=\"https://paypal.me/pikvm\"> PayPal 上捐款</a>。<br><br>//这些<a href=\"https://one-kvm.mofeng.run/thanks/#_2\">好心人</a>向 One-KVM 项目捐款并支持其工作,非常感谢他们的帮助。<br>//如果您也想支持 One-KVM ,您可以在 <a target=\"_blank\" href=\"https://afdian.com/a/silentwind\"> 为爱发电 </a>上捐款</a>。",
"kvm_text3":"系统",
"kvm_text4":"运行设置 &amp; 工具",
"kvm_text5":"终端",
"kvm_text6":"关于",
"kvm_text7":"日志",
"kvm_text8":"网络唤醒",
"kvm_text9":"分辨率:",
"kvm_text10":"JPEG 质量:",
"kvm_text11":"JPEG 最大帧率",
"kvm_text12":"H.264 码率:",
"kvm_text13":"H.264 间隔",
"kvm_text14":"视频模式",
"kvm_text15":"虚拟键盘",
"kvm_text16":"终端",
"kvm_text17":"方向:",
"kvm_text18":"默认",
"kvm_text19":"音量:",
"kvm_text20":"&bull; 显示视频流",
"kvm_text21":"&bull; 截屏",
"kvm_text22":"重置视频流",
"kvm_text23":"键盘模式:",
"kvm_text24":"鼠标模式:",
"kvm_text25":"键盘 &amp; 鼠标 (HID) 设置",
"kvm_text26":"鼠标轮询:",
"kvm_text27":"相对灵敏度:",
"kvm_text28":"反向滚动:",
"kvm_text29":"滚动速率:",
"kvm_text30":"显示虚拟键盘",
"kvm_text31":"重置 HID"
}

View File

@ -25,7 +25,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>PiKVM VNC Info</title>
<title>PiKVM VNC info</title>
<link rel="apple-touch-icon" sizes="180x180" href="/share/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/share/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/share/favicon-16x16.png">
@ -48,12 +48,12 @@
<div class="start-box">
<div class="start"><a style="display:inline-block; margin-top:4px; color:#5c90bc; text-decoration:none" href="/" i18n="index">&nbsp;&nbsp;&larr;&nbsp;&nbsp; [ One-KVM Index ]</a>
<hr>
<p class="text">This PiKVM device has running <b>kvmd-vnc</b> daemon and provides VNC access to the server.</p>
<p class="text"><b>WARNING!</b> We strongly don't recommend you to use VNC in untrusted networks without
<p class="text" i18n="vnc_text1">This PiKVM device has running <b>kvmd-vnc</b> daemon and provides VNC access to the server.</p>
<p class="text" i18n="vnc_text2"><b>WARNING!</b> We strongly don't recommend you to use VNC in untrusted networks without
enabled X.509 or TLS encryption. Otherwise your passwords are transmitted in a plain text
over the network.
</p>
<p class="text">
<p class="text" i18n="vnc_text3">
Your VNC client must support Tight JPEG compression and password authentication.
<a href="https://tigervnc.org">TigerVNC</a> is a good choice.
On Linux, this client will most likely be available for installation from the repository.

View File

@ -1,18 +1,18 @@
extends ../start.pug
append vars
- title = "PiKVM VNC Info"
- title = "PiKVM VNC info"
- main_js = "vnc/main"
- index_link = true
block start
p(class="text")
p(class="text" i18n="vnc_text1")
| This PiKVM device has running #[b kvmd-vnc] daemon and provides VNC access to the server.
p(class="text")
p(class="text" i18n="vnc_text2")
| #[b WARNING!] We strongly don't recommend you to use VNC in untrusted networks without
| enabled X.509 or TLS encryption. Otherwise your passwords are transmitted in a plain text
| over the network.
p(class="text")
p(class="text" i18n="vnc_text3")
| Your VNC client must support Tight JPEG compression and password authentication.
| #[a(href="https://tigervnc.org") TigerVNC] is a good choice.
| On Linux, this client will most likely be available for installation from the repository.