From 011c7d83719b6d927fcc87e04160f009668f6c3d Mon Sep 17 00:00:00 2001 From: mofeng-git Date: Tue, 10 Sep 2024 23:36:22 +0800 Subject: [PATCH] =?UTF-8?q?WEB=20=E7=BD=91=E9=A1=B5=E6=B1=89=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + web/ipmi/index.html | 6 +- web/ipmi/index.pug | 6 +- web/kvm/index.html | 696 ++---------------------------------- web/kvm/index.pug | 8 +- web/kvm/navbar-system.pug | 54 +-- web/kvm/window-about.pug | 635 +------------------------------- web/kvm/window-keyboard.pug | 2 +- web/kvm/window-webterm.pug | 2 +- web/share/i18n/i18n_en.json | 43 ++- web/share/i18n/i18n_zh.json | 43 ++- web/vnc/index.html | 8 +- web/vnc/index.pug | 8 +- 13 files changed, 171 insertions(+), 1341 deletions(-) diff --git a/.gitignore b/.gitignore index 508aa944..b42cc3f0 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ *.pyc *.swp /venv/ +.vscode/settings.json diff --git a/web/ipmi/index.html b/web/ipmi/index.html index ca0ce4f7..6a7d868e 100644 --- a/web/ipmi/index.html +++ b/web/ipmi/index.html @@ -48,15 +48,15 @@
  ←   [ One-KVM Index ]
-

This PiKVM device has running kvmd-ipmi daemon and provides IPMI 2.0 interface for some basic +

This PiKVM device has running kvmd-ipmi daemon and provides IPMI 2.0 interface for some basic BMC operations like on/off/reset the server.

-

WARNING! We strongly don't recommend you to use IPMI in untrusted networks because +

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.

-

NEVER use the same passwords for KVMD and IPMI users. And even better not to use IPMI. +

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:

diff --git a/web/ipmi/index.pug b/web/ipmi/index.pug index e567fe38..df4ebac9 100644 --- a/web/ipmi/index.pug +++ b/web/ipmi/index.pug @@ -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") diff --git a/web/kvm/index.html b/web/kvm/index.html index 7e1ccd55..461f8362 100644 --- a/web/kvm/index.html +++ b/web/kvm/index.html @@ -142,22 +142,22 @@
-
  • System +
  • System - + - + - + - + - + - + - + - + @@ -255,21 +255,21 @@
    Resolution:Resolution:
    JPEG quality:JPEG quality:
    JPEG max fps:JPEG max fps:
    H.264 kbps:H.264 kbps:
    H.264 gop:H.264 gop:
    Video mode:Video mode:
    @@ -231,11 +231,11 @@
    Orientation:Orientation:
    - + @@ -246,7 +246,7 @@
    Audio volume:Audio volume:

    - - - + + +

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

    @@ -2663,7 +2035,7 @@
    -
    Terminal
    +
    Terminal
    @@ -2673,7 +2045,7 @@
    \ No newline at end of file diff --git a/web/kvm/index.pug b/web/kvm/index.pug index a6c53f70..27249ea7 100644 --- a/web/kvm/index.pug +++ b/web/kvm/index.pug @@ -19,8 +19,10 @@ block body |   |   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 |   |   - a(target="_blank" href="https://docs.pikvm.org") Documentation + a(target="_blank" href="https://docs.pikvm.org" i18n="index_text_11") Documentation |   |   - 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 + |   |   + a(target="_blank" href="https://one-kvm.mofeng.run" i18n="index_text_13") One-KVM Documentation diff --git a/web/kvm/navbar-system.pug b/web/kvm/navbar-system.pug index 9c0c8014..dbcd8826 100644 --- a/web/kvm/navbar-system.pug +++ b/web/kvm/navbar-system.pug @@ -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 & tools - td(id="system-tool-webterm" class="feature-disabled") #[button(data-force-hide-menu data-show-window="webterm-window" class="small") • Term] - td(id="system-tool-about") #[button(data-force-hide-menu data-show-window="about-window" class="small") • About] - td(id="system-tool-log") #[button(data-force-hide-menu id="open-log-button" class="small") • Log] + td(class="value" i18n="kvm_text4") Runtime settings & tools + td(id="system-tool-webterm" class="feature-disabled") #[button(data-force-hide-menu data-show-window="webterm-window" class="small" i18n="kvm_text5") • Term] + td(id="system-tool-about") #[button(data-force-hide-menu data-show-window="about-window" class="small" i18n="kvm_text6") • About] + td(id="system-tool-log") #[button(data-force-hide-menu id="open-log-button" class="small" i18n="kvm_text7") • 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?") • WoL + data-confirm="Are you sure to send Wake-on-LAN packet to the server?" i18n="kvm_text8") • 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° 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° 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") • Show stream - button(data-force-hide-menu id="stream-screenshot-button" class="row33") • 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") • Show stream + button(data-force-hide-menu id="stream-screenshot-button" class="row33" i18n="kvm_text21") • 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 & Mouse (HID) settings + summary(i18n="kvm_text25") Keyboard & 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") • 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") • Show keyboard + button(disabled id="hid-reset-button" class="row50" i18n="kvm_text31") Reset HID diff --git a/web/kvm/window-about.pug b/web/kvm/window-about.pug index 4bf66e72..2559ff6a 100644 --- a/web/kvm/window-about.pug +++ b/web/kvm/window-about.pug @@ -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 ×] 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 © 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 diff --git a/web/kvm/window-keyboard.pug b/web/kvm/window-keyboard.pug index fdd00b15..095a5290 100644 --- a/web/kvm/window-keyboard.pug +++ b/web/kvm/window-keyboard.pug @@ -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 ×] div(id="keyboard-desktop" class="keypad" align="center") diff --git a/web/kvm/window-webterm.pug b/web/kvm/window-webterm.pug index 3cb9b9c7..3dcf27fc 100644 --- a/web/kvm/window-webterm.pug +++ b/web/kvm/window-webterm.pug @@ -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 ×] button(class="window-button-maximize") ☐ // Терминал глючит из-за зажимаемой клавиши ESC для выхода diff --git a/web/share/i18n/i18n_en.json b/web/share/i18n/i18n_en.json index 1d5a45fa..c82e576b 100644 --- a/web/share/i18n/i18n_en.json +++ b/web/share/i18n/i18n_en.json @@ -8,6 +8,7 @@ "chinese": "Simplified Chinese", "english": "English", "footer-left": "This site is actively using JavaScript.
    It doesn't contain ads, but is blocked by some ad filters.
    Please turn it off to continue and reload the page.", + "index": " One-KVM Index ", "copyright": "Copyright © 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 kvmd-vnc daemon and provides VNC access to the server.", + "vnc_text2": "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.", + "vnc_text3": "Your VNC client must support Tight JPEG compression and password authentication. TigerVNC 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 kvmd-ipmi daemon and provides IPMI 2.0 interface for some basic BMC operations like on/off/reset the server.", + "ipmi_text2":"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.", + "ipmi_text3":"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:", + + "kvm_text1":"About", + "kvm_text2":"// These kind people donated money to the PiKVM project
    // and supported the work on it. We are very grateful
    // for their help, and memorializing their names
    // is the least we can do in gratitude.
    // If you also want to support this project,
    // you can donate on Patreon or Paypal.", + "kvm_text3":"System", + "kvm_text4":"Runtime settings & 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":"• Show stream", + "kvm_text21":"• Screenshot", + "kvm_text22":"Reset stream", + "kvm_text23":"Keyboard mode:", + "kvm_text24":"Mouse mode:", + "kvm_text25":"Keyboard & Mouse (HID) settings", + "kvm_text26":"Mouse polling:", + "kvm_text27":"Relative sensitivity:", + "kvm_text28":"Reverse scrolling:", + "kvm_text29":"Scroll rate:", + "kvm_text30":"• Show keyboard", + "kvm_text31":"Reset HID" } \ No newline at end of file diff --git a/web/share/i18n/i18n_zh.json b/web/share/i18n/i18n_zh.json index 0d1e16b6..20e3650d 100644 --- a/web/share/i18n/i18n_zh.json +++ b/web/share/i18n/i18n_zh.json @@ -8,6 +8,7 @@ "chinese": "简体中文", "english": "英语", "footer-left": "本网站需要使用 JavaScript 功能。
    本网站不含广告,但仍有可能会被某些广告过滤器屏蔽。
    如果网页响应异常请关闭它并重新加载页面以继续浏览。", + "index": " One-KVM 导航 ", "copyright": "版权所有 © 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 设备 kvmd-vnc 守护进程已运行,提供对服务器的 VNC 访问。", + "vnc_text2": "不建议在未启用 X.509 或 TLS 加密的网络中使用 VNC。否则,您的密码将以纯文本形式在网络上传输。", + "vnc_text3": "VNC 客户端必须支持 Tight JPEG 压缩和密码验证。", + + "ipmi_text1":"该 One-KVM 设备 kvmd-ipmi 守护进程已运行,并为一些基本的 BMC 操作(如打开/关闭/重置服务器)提供了 IPMI 2.0 接口。", + "ipmi_text2":"不建议在不受信任的网络中使用 IPMI,因为该协议的设计完全不安全。
    原因如下,IPMI 的身份验证过程要求服务器在客户端进行身份验证之前,向客户端发送请求用户密码的加盐 SHA1 或 MD5 哈希值。", + "ipmi_text3":"不建议为 KVMD 和 IPMI 用户使用相同的密码,或者直接关闭 IPMI。如有需要可以通过 curl 直接使用 KVMD API。下面是一些示例:", + + "kvm_text1":"关于", + "kvm_text2":"//这些好心人向 PiKVM 项目捐款并支持其工作,非常感谢他们的帮助。
    //如果您也想支持 PiKVM ,您可以在 Patreon PayPal 上捐款

    //这些好心人向 One-KVM 项目捐款并支持其工作,非常感谢他们的帮助。
    //如果您也想支持 One-KVM ,您可以在 为爱发电 上捐款。", + "kvm_text3":"系统", + "kvm_text4":"运行设置 & 工具", + "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":"• 显示视频流", + "kvm_text21":"• 截屏", + "kvm_text22":"重置视频流", + "kvm_text23":"键盘模式:", + "kvm_text24":"鼠标模式:", + "kvm_text25":"键盘 & 鼠标 (HID) 设置", + "kvm_text26":"鼠标轮询:", + "kvm_text27":"相对灵敏度:", + "kvm_text28":"反向滚动:", + "kvm_text29":"滚动速率:", + "kvm_text30":"显示虚拟键盘", + "kvm_text31":"重置 HID" } \ No newline at end of file diff --git a/web/vnc/index.html b/web/vnc/index.html index eec670ae..114afb05 100644 --- a/web/vnc/index.html +++ b/web/vnc/index.html @@ -25,7 +25,7 @@ - PiKVM VNC Info + PiKVM VNC info @@ -48,12 +48,12 @@
      ←   [ One-KVM Index ]
    -

    This PiKVM device has running kvmd-vnc daemon and provides VNC access to the server.

    -

    WARNING! We strongly don't recommend you to use VNC in untrusted networks without +

    This PiKVM device has running kvmd-vnc daemon and provides VNC access to the server.

    +

    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.

    -

    +

    Your VNC client must support Tight JPEG compression and password authentication. TigerVNC is a good choice. On Linux, this client will most likely be available for installation from the repository. diff --git a/web/vnc/index.pug b/web/vnc/index.pug index 07bdb9a5..c2d37002 100644 --- a/web/vnc/index.pug +++ b/web/vnc/index.pug @@ -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.

    Mouse polling:Mouse polling:
    Relative sensitivity:Relative sensitivity:
    Reverse scrolling:Reverse scrolling: @@ -349,7 +349,7 @@ - + @@ -425,8 +425,8 @@
    Scroll rate:Scroll rate:

    - - + +
    @@ -900,7 +900,7 @@
    -
    Virtual Keyboard
    +
    Virtual Keyboard
    @@ -1979,7 +1979,7 @@
    -
    About
    +
    About
    @@ -1989,10 +1989,10 @@
    - + - +
    The Open Source KVM over IPThe Open Source KVM over IP