Compare commits

...

887 Commits

Author SHA1 Message Date
Uriel
f313e9625d Upload artifacts to draft when new tag (#599) 2023-02-23 00:54:28 +03:00
Uriel
9b774d768c Add localStorage migration script (#598)
Co-authored-by: ButterscotchV <bscotchvanilla@gmail.com>
2023-02-23 00:53:36 +03:00
lucas lelievre
6c28e18788 fix row height (#601) 2023-02-23 00:46:41 +03:00
Erimel
9c7ccac5ff make offset go the right direction (#602) 2023-02-23 00:46:19 +03:00
Erimel
020ee98e47 wtf Java (#603) 2023-02-23 00:45:53 +03:00
Ryan Butler
cd5c4dc219 Merge pull request #600 from SlimeVR/578-gui-hide-overlay-settings-if-its-not-subscribing-to-solarxr
hide overlay when no initial response fronm it
2023-02-21 13:19:38 -05:00
lucas lelievre
04a777a98e hide overlay when no initial response fronm it 2023-02-19 23:38:45 +01:00
Uriel
c64d9b979d Start catching tauri stuff (#587) 2023-02-17 13:05:34 +02:00
Erimel
1f25d9cf54 Use hands everywhere instead of controller (#588) 2023-02-17 13:03:28 +02:00
Uriel
053263c30a add linux feeder socket (#592) 2023-02-17 13:02:12 +02:00
Erimel
615a5b74f0 Load default values and toggles (#595) 2023-02-17 13:01:30 +02:00
Eiren Rain
5f1b409fe5 Merge pull request #596 from SlimeVR/more-tracker-info
Add more tracker info
2023-02-17 12:00:56 +01:00
ImUrX
783df8475c add more tracker data 2023-02-17 00:19:47 -03:00
ImUrX
750bb9c4da add charging icon 2023-02-17 00:19:47 -03:00
Erimel
2133c459da Merge pull request #586 from SlimeVR/pontoon
New Pontoon translations
2023-02-16 21:28:30 -05:00
白貓
9b4455bf4d Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: 白貓 <yen.max@gmail.com>
2023-02-16 23:23:21 -03:00
Hornil
9d2a6a1e0a Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Hornil <vixlyaev@gmail.com>
2023-02-16 23:23:21 -03:00
ReDoX
6294d010b7 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-02-16 23:23:21 -03:00
Kamilake
2eb4ac77c1 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-02-16 23:23:21 -03:00
Daniel
5644c03593 Pontoon: Update Hebrew (he) localization of GUI
Co-authored-by: origalili123 <origalili123@gmail.com>
Co-authored-by: Daniel <danielkariv98@gmail.com>
2023-02-16 23:23:21 -03:00
unlogisch
d7b48328f5 Pontoon: Update German (de) localization of GUI
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2023-02-16 23:23:17 -03:00
disappear9
4f131bec1a Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: disappear9 <disappear9@outlook.com>
2023-02-16 23:23:17 -03:00
Butterscotch!
4e5ea8029e Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-02-16 23:23:17 -03:00
FennT
ab0e6b9d6e Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-02-16 23:23:12 -03:00
Gabriel
d6c82a8ba0 Pontoon: Update Portuguese (pt-BR) localization of GUI
Co-authored-by: vinny_the_turtle <oliveira1brother@gmail.com>
Co-authored-by: Gabriel <gabrielsonada@outlook.com.br>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-02-16 23:23:12 -03:00
Erimel
fe3612214d Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-02-16 23:23:12 -03:00
Elias
ba5bb5c353 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Elias <xicovalle@gmail.com>
2023-02-16 23:23:12 -03:00
namakeingo
7e4611da68 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
2023-02-16 23:23:07 -03:00
Vyolex
5de497af34 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2023-02-12 23:00:07 +00:00
Eiren Rain
823ef86151 Merge pull request #584 from SlimeVR/fix/connect-tracker
fix: ConnectTracker has wrong import
2023-02-12 22:18:10 +02:00
DevMiner
757e748743 fix: ConnectTracker has wrong import 2023-02-12 20:10:42 +01:00
Eiren Rain
dc94febc3d Make solarxr-protocol point to proper commit 2023-02-12 19:06:18 +01:00
Eiren Rain
4d1da34826 Merge pull request #574 from SlimeVR/pontoon
New Pontoon translations
2023-02-12 19:56:51 +02:00
slimevr-bot
0976abb0a8 update 2023-02-12 17:56:28 +00:00
Hornil
1ada4326cb Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Hornil <vixlyaev@gmail.com>
2023-02-12 17:56:28 +00:00
Jeeko
4e843e9558 Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: Jeeko <d.safarik06@gmail.com>
2023-02-12 17:56:28 +00:00
namakeingo
618e05802a Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
2023-02-12 17:56:28 +00:00
Erimel
de5665002a Fix trackers overflow in dev mode (#575) 2023-02-12 20:56:02 +03:00
0forks
17474cd6a9 gui: Display raw rotation if no ref/ident-adjusted (#569) 2023-02-12 20:55:36 +03:00
0forks
22a50feb93 gui: Fix undefined in temperature column (#568) 2023-02-12 20:55:24 +03:00
0forks
ead6402d46 gui: Fix text wrapping in TrackerTable (#567) 2023-02-12 20:55:10 +03:00
lucas lelievre
58b1fbba1f Moving wifi provisioning and new device detection to the server (#542) 2023-02-12 20:54:40 +03:00
Uriel
fcb38292fa Fix lang select being too long (#571) 2023-02-12 17:25:02 +03:00
lucas lelievre
2b7b5dcb91 Add warnings to the tracker selection page (#547)
Co-authored-by: ImUrX <urielfontan2002@gmail.com>
Co-authored-by: Louka <marioluigivideo@gmail.com>
2023-02-12 17:20:50 +03:00
Uriel
b4d6881a70 Add macOS builds (#573) 2023-02-11 19:20:08 +03:00
Erimel
dcedd22c7f Update README (#572) 2023-02-10 01:15:12 +03:00
Erimel
a7c22b85cd Merge pull request #561 from SlimeVR/pontoon
New Pontoon translations
2023-02-09 12:59:18 -05:00
ImUrX
7f61067c30 add Finnish and Czech options 2023-02-09 14:53:55 -03:00
Vyolex
d3a43077fb Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2023-02-09 14:36:07 -03:00
Siofra
d346924795 Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: Siofra <maradaichides@gmail.com>
2023-02-09 14:36:07 -03:00
Meow Wei
49a07831d5 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-02-09 14:36:07 -03:00
vinny_the_turtle
37c6de36e5 Pontoon: Update Portuguese (pt-BR) localization of GUI
Co-authored-by: vinny_the_turtle <oliveira1brother@gmail.com>
2023-02-09 14:36:07 -03:00
ReDoX
e5a5ced343 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-02-09 14:36:07 -03:00
Elias
b7ee861fec Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Elias <xicovalle@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-02-09 14:36:07 -03:00
namakeingo
38b5628468 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
2023-02-09 14:36:07 -03:00
Jeeko
65fec6e9b7 Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: Jeeko <d.safarik06@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-02-09 14:36:07 -03:00
SummerArtz
cd756a9aa6 SlimeVR russian translation (#500)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
Co-authored-by: Hornil <vixlyaev@gmail.com>
2023-02-09 14:36:07 -03:00
Uriel
ebc6cb7a78 fix solarxr module (#570) 2023-02-09 19:22:39 +02:00
Eiren Rain
cbb99fc531 Merge pull request #560 from marcozzxx810/feat_log_file_size
feat: log file size limiter
2023-02-09 17:51:02 +02:00
Eiren Rain
259897173e Merge pull request #552 from SlimeVR/315-gui-show-ip-address
Add server infos request. And show local ip address inside gui settings
2023-02-09 17:50:25 +02:00
Eiren Rain
98f550efcc Merge pull request #534 from ButterscotchV/remove-mounting-button
Remove the mounting reset button on the homepage
2023-02-09 17:50:14 +02:00
Eiren Rain
1948b7136f Merge pull request #517 from AxisAngles/ktmath
Added package io.github.axisangles.ktmath
2023-02-09 17:49:38 +02:00
Eiren Rain
7301b87a07 Merge branch 'main' into 315-gui-show-ip-address 2023-02-09 17:42:46 +02:00
Eiren Rain
0a90f33a09 Merge pull request #553 from ImUrX/eslint-actions
ESLint action for GUI
2023-02-09 17:41:50 +02:00
Eiren Rain
1b6033d408 Merge pull request #559 from SlimeVR/tauri-webview
Add error for faulty Webview installation
2023-02-09 17:41:35 +02:00
Eiren Rain
5e6aefea2a Merge pull request #566 from SlimeVR/vrtracker-protocol-rotation
Support VRTrackers for protocol rotations
2023-02-09 17:35:38 +02:00
Eiren Rain
43045fc8fb Merge pull request #565 from SlimeVR/imu-id-1
Make IMU trackers start at # 1
2023-02-09 17:34:08 +02:00
Eiren Rain
4061e93c1c Merge pull request #564 from SlimeVR/5-proportions-adjust
Make offsets increments 5 instead of 10
2023-02-09 17:33:38 +02:00
Eiren Rain
cc3fe16c29 Merge pull request #562 from SlimeVR/codeowners-locks
add lock files in CODEOWNERS
2023-02-09 17:33:14 +02:00
Louka
beb382506f Support VRTrackers for protocol rotations 2023-02-09 00:01:34 -05:00
Louka
dc8a734210 Make IMU trackers start at #1 2023-02-08 20:59:57 -05:00
Louka
99a13505ba Make offsets increments 5 instead of 10 2023-02-07 17:44:43 -05:00
marcozzxx810
7a7b2ed060 fix: mainlogdir path 2023-02-07 20:41:40 +08:00
Uriel
c1380d3f69 add lock files in CODEOWNERS 2023-02-06 16:16:56 -03:00
marcozzxx810
11ef2c13a8 feat: log file size limiter 2023-02-06 22:03:41 +08:00
Uriel
8cf0a73a6f Update gui/src-tauri/src/main.rs
Co-authored-by: Ryan Butler <thebutlah@gmail.com>
2023-02-05 21:42:37 -03:00
ImUrX
bc31ad4f09 add comments 2023-02-05 18:48:56 -03:00
Uriel
54b04e5dd7 Update index.css 2023-02-05 18:46:12 -03:00
Uriel
ed02388f85 Merge branch 'main' into eslint-actions 2023-02-05 18:45:05 -03:00
ImUrX
03b2c15a15 add error of faulty webview 2023-02-05 18:38:09 -03:00
Eiren Rain
2185eb6a35 Merge pull request #549 from ImUrX/twemoji
Twemoji emojis
2023-02-05 15:46:22 +02:00
Eiren Rain
b9bb1428a8 Merge pull request #545 from SlimeVR/pontoon
New Pontoon translations
2023-02-05 15:45:43 +02:00
slimevr-bot
3217e9c6c9 update 2023-02-05 13:42:14 +00:00
rwrdetenrl
6fb7849056 Pontoon: Update Turkish (tr) localization of GUI
Co-authored-by: topualev <topualev@gmail.com>
Co-authored-by: rwrdetenrl <NightAniMer@hotmail.com>
2023-02-05 13:42:14 +00:00
Meow Wei
5ab023ba81 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-02-05 13:42:14 +00:00
disappear9
2718fafa9f Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: disappear9 <disappear9@outlook.com>
2023-02-05 13:42:14 +00:00
ReDoX
7b151e3e20 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-02-05 13:42:14 +00:00
Jeeko
6e3e5462ea Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: Jeeko <d.safarik06@gmail.com>
2023-02-05 13:42:14 +00:00
Louka
5f7a4b2d56 add arabic config 2023-02-05 13:42:14 +00:00
unlogisch
2be0406d60 Pontoon: Update German (de) localization of GUI
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2023-02-05 13:42:14 +00:00
FennT
8bb8e0c3cb Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-02-05 13:42:14 +00:00
namakeingo
c34bb3b849 Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
2023-02-05 13:42:14 +00:00
MarcoM
ee8dfb548f docs: include java version (#556) 2023-02-05 16:41:40 +03:00
MarcoM
687f214623 fix: websocket fail to bind to address due to time_wait (#554) 2023-02-05 16:18:57 +03:00
MarcoM
6962ff36f4 refactor: remove full log and daily log (#555) 2023-02-05 16:13:35 +03:00
ImUrX
836dc5473d eslint fixes 2023-02-05 01:42:13 -03:00
ImUrX
14de051f0c rename to lint 2023-02-05 01:17:08 -03:00
ImUrX
33b48d7f41 eslint action 2023-02-05 01:15:10 -03:00
Butterscotch!
71d8d59192 Merge branch 'main' into remove-mounting-button 2023-02-04 19:51:17 -05:00
ImUrX
b97e7822a6 emojis appear on linux if you have a emoji font 2023-02-04 18:24:41 -03:00
ImUrX
fda0b1f20a remove old flag 2023-02-04 18:08:18 -03:00
ImUrX
e8e152865f twemoji emojis 2023-02-04 18:08:18 -03:00
Uriel
24c142b4ca Add a way to override current locale (#543) 2023-02-04 19:37:19 +03:00
lucas lelievre
62a72b2463 Fix input/checkbox default values (#550) 2023-02-04 19:37:03 +03:00
lucas lelievre
212afc03bf Save last body proportions page used (#551) 2023-02-04 19:36:31 +03:00
Uriel
85362c9964 add nix support for dev (#548) 2023-02-04 19:35:56 +03:00
loucass003
8f4684b6f9 Add server infos request. And show local ip address inside gui settings 2023-02-04 16:22:46 +01:00
Eiren Rain
39603e0d6c Merge pull request #546 from SlimeVR/llelievr/fix-stepper-number
Llelievr/fix stepper number
2023-02-03 12:52:03 +02:00
loucass003
5a71339934 Fix stepper number 2023-02-03 11:29:11 +01:00
Eiren Rain
120c76b1f6 Merge pull request #539 from SlimeVR/pontoon
New Pontoon translations
2023-02-03 00:01:03 +02:00
bubblesolaris
ceb9eb3c0c Pontoon: Update French (fr) localization of GUI
Co-authored-by: bubblesolaris <bubblesolaris@gmail.com>
2023-02-02 17:49:24 -03:00
FennT
8d4d10bda0 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-02-02 17:49:16 -03:00
ImUrX
b5cb01eec3 add norwegian bokmål to menu 2023-02-02 17:49:16 -03:00
Meow Wei
8bafa95b56 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-02-02 17:49:16 -03:00
disappear9
a470a566f8 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: disappear9 <disappear9@outlook.com>
2023-02-02 17:49:16 -03:00
Gabriel
840e60eb62 Pontoon: Update Portuguese (pt-BR) localization of GUI
Co-authored-by: Gabriel <gabrielsonada@outlook.com.br>
2023-02-02 17:49:16 -03:00
darkowsness
b5fe91e288 Pontoon: Update Norwegian Bokmål (nb-NO) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: darkowsness <darkowsness@gmail.com>
2023-02-02 17:48:57 -03:00
Darye
773704bce4 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Darye <darioperez047@gmail.com>
Co-authored-by: Fowels <contact@forels.me>
Co-authored-by: Elias <xicovalle@gmail.com>
2023-02-02 17:45:54 -03:00
beq
98056a9fbe Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: kaisukoj1111 <kaisukoj1111@gmail.com>
Co-authored-by: beq <beqbdean@gmail.com>
2023-02-02 17:44:39 -03:00
namakeingo
a02bb55104 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
2023-02-02 17:44:39 -03:00
unlogisch
d3f27b561c Pontoon: Update German (de) localization of GUI
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2023-02-02 17:44:39 -03:00
Eiren Rain
39e3ddad22 Merge pull request #526 from ButterscotchV/gui-websocket-target-dev
Add query options for targeting an address
2023-02-02 22:36:43 +02:00
Eiren Rain
4ef4120605 Merge pull request #504 from SlimeVR/shoulders-improv
Fix switching between HMD and controller arm tracking
2023-02-02 22:36:18 +02:00
Eiren Rain
3750930c9a Merge pull request #505 from SlimeVR/clear-drift
Add a "clear drift compensation" button
2023-02-02 22:35:57 +02:00
Eiren Rain
3d63d8a685 Merge pull request #535 from SlimeVR/pontoon-fix2
Configure user for rebase script
2023-02-02 22:34:47 +02:00
Eiren Rain
b7b11ad1bc Merge pull request #536 from ImUrX/battery-remember
Make battery percentage persist after tracker disconnect
2023-02-02 22:34:28 +02:00
AxisAngles
bc69532d9a Improved conditions for toEulerAngles mathematics
Added comment justifying orthonormalize method
2023-02-01 23:30:01 -08:00
ImUrX
202146172f only show voltage on dev mode 2023-02-02 04:22:50 -03:00
ImUrX
3f532506a7 do maximum instead of minimum 2023-02-02 03:58:17 -03:00
ImUrX
2d74376c0f remove comment 2023-02-02 03:58:17 -03:00
ImUrX
c2d9c05b8b more simple 2023-02-02 03:58:17 -03:00
ImUrX
afc6ff1e4a add battery memory 2023-02-02 03:58:17 -03:00
Louka
aec3e9b4ae remove translation in other languages 2023-01-31 20:50:17 -05:00
Louka
af9c9f6cc0 Merge branch 'main' into clear-drift 2023-01-31 20:48:07 -05:00
Eiren Rain
5e88f1fe48 Remove Loucas from code owners of i18n 2023-01-31 20:05:13 +02:00
Eiren Rain
56e451eca3 Merge pull request #528 from ImUrX/linux-openvr-tmp
Use XDG_RUNTIME_DIR for socket
2023-01-31 20:01:41 +02:00
Eiren Rain
4b6928df00 Merge pull request #524 from SlimeVR/pontoon
New Pontoon translations
2023-01-31 19:52:06 +02:00
SlimeVR-bot
5b5eea3b19 Pontoon: Update Polish (pl) localization of GUI 2023-01-31 14:36:04 -03:00
Uriel
b98fa6dd57 Update CODEOWNERS 2023-01-31 14:36:04 -03:00
menacingexiler
56b92c9c5f Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: menacingexiler <menacingexiler@gmail.com>
2023-01-31 14:36:04 -03:00
bubblesolaris
7efc2a35c0 Pontoon: Update French (fr) localization of GUI
Co-authored-by: bubblesolaris <bubblesolaris@gmail.com>
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-01-31 14:36:04 -03:00
vyolex
82098e4a97 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2023-01-31 14:35:50 -03:00
白貓
bd2c9f0689 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: 白貓 <yen.max@gmail.com>
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-01-31 14:35:49 -03:00
ImUrX
aec302956e Add Traditional Chinese 2023-01-31 14:35:49 -03:00
namakeingo
75866b651c Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-01-31 14:35:41 -03:00
Yao
71038b52dc Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-01-31 04:33:14 +00:00
namakeingo
3c2f3e3147 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <pzzdave95@gmail.com>
2023-01-31 04:33:14 +00:00
muumi
b685855b0d Pontoon: Update Estonian (et) localization of GUI
Co-authored-by: muumi <chrisrobin.soon@gmail.com>
2023-01-31 04:33:14 +00:00
Uriel
7329746d51 fix server not building (#538) 2023-01-30 23:32:35 -05:00
ImUrX
5e98fdb4ab stretch bvh button optionally 2023-01-31 00:47:12 -03:00
TheDevMinerTV
eb56fb0652 i18n: add missing german translations (#495)
Co-authored-by: unlogisch04 <98281608+unlogisch04@users.noreply.github.com>
Co-authored-by: Philip6294 <18615404+Philip6294@users.noreply.github.com>
2023-01-30 16:13:16 -05:00
Uriel
03e10f6095 more metadata info (#529) 2023-01-30 16:20:29 +02:00
ImUrX
261b9e6b5d remove debug logmanager 2023-01-30 10:48:46 -03:00
Uriel
d888c1b7c6 Configure user for rebase 2023-01-30 04:11:06 -03:00
Butterscotch!
254e5aa6e4 Re-add mounting reset for dev mode 2023-01-29 19:59:11 -05:00
Butterscotch!
51169d9c7b Remove the mounting reset button on the homepage
Use the mounting calibration tab!!
2023-01-29 19:26:40 -05:00
Uriel
3dc8fa3c30 this should work now (#533) 2023-01-30 00:19:48 +02:00
Louka
dea9f9d3cd fix merge 2023-01-29 17:15:58 -05:00
Louka
e4b204b971 Merge branch 'main' into clear-drift 2023-01-29 17:15:00 -05:00
Uriel
7e65d02431 Lots of misc gui fixes (#516)
Co-authored-by: Louka <marioluigivideo@gmail.com>
2023-01-29 18:57:25 +02:00
lucas lelievre
7455c308e8 Use new drawings (#532) 2023-01-29 18:44:19 +02:00
lucas lelievre
6277194ae1 Current progress (#531) 2023-01-29 18:43:31 +02:00
lucas lelievre
1c4b2f4b14 Better tracker velocity display (#530) 2023-01-29 15:46:18 +02:00
AxisAngles
b45e37ce4b how 2023-01-28 23:26:12 -08:00
AxisAngles
cfd405c1d0 Clean up
Renamed all base Quaternion function with R variant (IE angle and angleR) to have a Q at the end (angle -> angleQ)
Cleaned up the matrices which are otherwise hard to read without special formatting
2023-01-28 22:38:04 -08:00
ImUrX
be28de3703 use XDG_RUNTIME_DIR for socket 2023-01-28 23:45:19 -03:00
ImUrX
f2cf6dffcf linting 2023-01-28 20:13:20 -03:00
Butterscotch!
b7eb93f6c0 Add query options for targeting an address
Keep targetIp and targetPort values
2023-01-28 10:42:50 -05:00
Louka
1b538f5007 fix merge 2023-01-27 16:06:58 -05:00
Louka
c053ad7e18 Merge branch 'main' into shoulders-improv 2023-01-27 16:03:09 -05:00
Eiren Rain
5437f209f0 Udpate pantoon actions 2023-01-27 20:26:00 +02:00
Eiren Rain
5d4b0e98f7 Update pontoon actions 2023-01-27 20:22:58 +02:00
Uriel
3d0d390e45 Add pontoon actions (#521) 2023-01-27 20:13:22 +02:00
Uriel
f05ffe637c Add linux metadata (#506) 2023-01-27 19:52:24 +02:00
albanobattistella
0862e6be35 Update Italian translation (#522) 2023-01-27 11:56:47 -05:00
Erimel
86f7c0d471 Skeleton Separation Refactor (#442) 2023-01-27 14:13:32 +02:00
Uriel
f55f3e8afc add l10n (#519) 2023-01-27 14:01:51 +02:00
AxisAngles
2cf7d6b2d3 Changed ONE to IDENTITY and ZERO to NULL. Added Quaternion.fromRotationVector(x, y, z) 2023-01-26 19:32:57 -08:00
AxisAngles
07d97e0d77 Added more Quaternion tests, Changed toRotationVector to return values (-pi < x <= pi) in line with other rotation space conversions 2023-01-26 18:09:52 -08:00
Louka
e1d8b34af3 Merge branch 'main' into clear-drift 2023-01-26 17:56:21 -05:00
Louka
381cf13459 move clearTrackersDriftCompensation to vrserver 2023-01-26 17:55:32 -05:00
Louka
32853fe590 Merge branch 'main' into shoulders-improv 2023-01-26 17:49:24 -05:00
Louka
0bc2904810 clarify cloning 2023-01-26 17:48:25 -05:00
AxisAngles
bed94a9ed8 Fixed Quaternion angleAboutR, Added FloatMath, Quaternion.fromTo, switched to atan(co, si), Added more Quaternion tests 2023-01-26 13:53:30 -08:00
Kamilake
74351dbb00 Maintain compatibility with Java 19 (#508) 2023-01-26 18:22:56 +02:00
Erimel
ec541685a2 Mirror tracker assignment (#518) 2023-01-26 18:22:12 +02:00
Uriel
cd4388e605 Fix translations (#513) 2023-01-26 11:10:35 -05:00
ImUrX
c5733069c1 add tests and spotlessfix 2023-01-25 21:21:29 -03:00
AxisAngles
5cecb3ed17 Added package io.github.axisangles.ktmath 2023-01-25 14:13:22 -08:00
Erimel
a36a6bceee fix osctracker id going out of bound (#512) 2023-01-25 13:39:43 +02:00
Kamilake
0043c30c36 Korean: Improved untranslated parts (#507) 2023-01-24 20:40:26 +02:00
Uriel
f030496659 Better JVM detection (#494) 2023-01-24 20:39:48 +02:00
Louka
3ee4e19a92 Update solarxr-protocol 2023-01-23 22:44:54 -05:00
Louka
a0c0cfa978 add missing translations 2023-01-23 21:27:38 -05:00
Louka
0ef42d01bb Add clear drift compensation 2023-01-23 21:15:56 -05:00
Erimel
662232bda6 Merge branch 'main' into shoulders-improv 2023-01-23 20:01:04 -05:00
Louka
7d1d53ab98 fuck it, undoes your math 2023-01-23 19:37:03 -05:00
Erimel
3e308b222f Fix OwO language not being furry enough OWO (#499) 2023-01-23 15:42:49 +02:00
Louka
a562029f7d yayyy math! 2023-01-23 00:58:40 -05:00
Louka
c407582609 fixing shoulders + improv wip 2023-01-23 00:58:40 -05:00
Disappear9
a8a5a5c93c Add Developer settings & IMU Visualizer translation for Chinese (#498) 2023-01-22 20:43:20 -05:00
tamakiti
d87514a9ea Some text was translated into Japanese. (#496) 2023-01-22 10:15:29 -05:00
Eiren Rain
4dac09e61e Let code owners merge PRs (#479) 2023-01-21 23:06:23 +02:00
Erimel
995c07dc08 Add french translation to 0.'s IMU debug (#491) 2023-01-21 23:05:51 +02:00
0forks
961c32a8da gui: Fix battery indicator always full (#492) 2023-01-21 23:05:00 +02:00
JINODK
87ba356fb0 Update Vietnamese translation (#488) 2023-01-20 08:31:43 -05:00
unlogisch04
580178de05 Adding some missing deutsch translations (#493) 2023-01-20 02:11:06 -05:00
Vyolex
0e8b8dc500 Translating new lines in dutch (#490)
* Translating new lines

* Update gui/public/i18n/nl/translation.ftl

Co-authored-by: Uriel <urielfontan2002@gmail.com>

* Fix key

Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-01-20 01:04:00 -05:00
Erimel
9415eceb85 Improve reset code and make it so VRTrackers can reset (#480) 2023-01-19 04:33:33 +03:00
Fredrik Hansson
03f9115f75 send messages to steamvr-driver on linux (#489) 2023-01-19 02:54:49 +03:00
Philip6294
30ca65e875 Add German Translations to GUI (#354) 2023-01-19 02:53:37 +03:00
Butterscotch!
9cde4058ad Add BVHSettings and allow writing end nodes (#483) 2023-01-18 21:23:56 +02:00
0forks
564be6112a gui: More info in tracker table and IMU visualizer (#450) 2023-01-18 21:22:36 +02:00
Elias Valle Cortes
3374e45d62 Spanish new lines translated (#473) 2023-01-18 21:20:58 +02:00
Erimel
48493c8c15 Fix some translation comments and language order (#482) 2023-01-18 21:20:10 +02:00
Vyolex
e858464064 Dutch translation fixes (#486) 2023-01-18 21:10:10 +02:00
Disappear9
64a8b1aab0 Translate new line (#487) 2023-01-18 20:58:00 +02:00
Erimel
0c787b6675 Bring back elbow offset (#470) 2023-01-17 02:39:49 +03:00
Uriel
6c7550ee56 Add .editorconfig (#469) 2023-01-16 17:27:08 +03:00
Fredrik Hansson
c5d666d335 update unixsocketbridge to handle more than one message at a time (#461) 2023-01-16 17:24:13 +03:00
Erimel
6b042ff903 fixit fox (#471) 2023-01-16 17:23:42 +03:00
Butterscotch!
0dd5ec7dfe Use cache-apt-pkgs-action for apt instead (#474) 2023-01-16 17:22:52 +03:00
0forks
50eef6ea7f server: Send accel and ref-adjusted rotations (#449) 2023-01-16 17:21:41 +03:00
0forks
db64d48bfe gui: Fix websocket send crash on reconnect (#463) 2023-01-16 17:21:01 +03:00
Erimel
a008958f37 Rename "wifi" to "Wi-Fi" and "SSID" to "Wi-Fi" name (#468) 2023-01-16 17:20:31 +03:00
Vyolex
148a1edeac Dutch translation (#465) 2023-01-16 17:20:12 +03:00
Carl Andersson
03eeb87498 Support arbitrary sensor id's for devices (#464) 2023-01-16 17:19:45 +03:00
0forks
c3d8eba264 gui: Fix UI wrapping in settings (#467) 2023-01-16 17:19:28 +03:00
Butterscotch!
269a79c87a Improve config reliability (#476) 2023-01-16 17:18:30 +03:00
Erimel
de995bbc15 Offsets refactor + add chest offset (#443) 2023-01-08 17:14:40 +03:00
Uriel
773372ef95 Do actions on creation of tag/branch (#454) 2023-01-08 17:13:16 +03:00
Uriel
5789f6ac92 update estonian translation (#455) 2023-01-08 17:12:49 +03:00
Disappear9
f762c641ec Update Chinese translations (#459) 2023-01-08 17:12:20 +03:00
Ryan Butler
cbbd499391 Finished relicense (#428) 2023-01-06 23:26:32 +03:00
Carl Andersson
93f7a7482b Add User Action packet. Allows for reset buttons on trackers and not just tap detection to reset. (#457) 2023-01-06 20:55:21 +03:00
Eiren Rain
4d7c931b69 Add workflow dispatch to server build 2023-01-05 16:45:31 +02:00
Erimel
ac6c7da1be Yaw drift compensation (#436) 2023-01-05 17:12:47 +03:00
Uriel
3c5dc4d8b5 try updating vite to latest (#438) 2023-01-05 17:11:02 +03:00
muumi
caac02975c translation in Estonian (#452) 2023-01-05 17:10:15 +03:00
Collin Kees
77858e11f3 Improve tap detection (#432) 2023-01-05 17:09:38 +03:00
MenacingExiler
af807aa9c1 Update Vietnamese (#448)
Updating newly added descriptions
2023-01-05 01:17:35 +03:00
Uriel
3826a49837 Fix some fluent stuff (#447) 2023-01-05 01:17:12 +03:00
Erimel
2450bb0abe fix translation header typos (#451) 2023-01-05 01:15:00 +03:00
Uriel
2d297d6622 only check on main push (#445) 2023-01-03 23:18:41 +03:00
Uriel
2afc2d1c58 fix a little typo that broke everything (#444) 2023-01-03 20:55:37 +03:00
Uriel
8dfeedaf2b make macos gui work (#412) 2023-01-03 20:39:29 +03:00
Uriel
3b75b5168f Start using fluent syntaxing (#423) 2023-01-03 20:18:23 +03:00
Erimel
97818e1504 Switch rotation to orientation (#435) 2023-01-03 19:13:53 +03:00
Erimel
003bb61dfb remove java WindowConfig (#434) 2023-01-03 19:12:35 +03:00
Uriel
c6b9d2b0e0 Fix bug on window state save (#439) 2023-01-03 19:07:37 +03:00
Uriel
8c1061adca Make spotless actually do stuff on kotlin (#437) 2023-01-03 19:06:44 +03:00
Erimel
95b2cb15e4 Rename GUI title to "SlimeVR" instead of "Slimevr UI" (#441) 2023-01-03 19:06:11 +03:00
Uriel
f35da6557b Fix artifact not uploading in linux (#430) 2022-12-28 16:04:39 +02:00
Uriel
1be691e045 update to main (#431) 2022-12-28 02:53:49 +03:00
Uriel
5dd5399e99 Kotlin revolution (#401) 2022-12-27 21:53:05 +03:00
Gabriel S
34818e925c Gesture control new keys & overall changes (calibração > calibragem, Montagem > Posicição/Posicionamento) (#429) 2022-12-27 21:33:10 +03:00
tamakiti
f93d165d6e Controller Translation (#426) 2022-12-27 21:30:32 +03:00
Uriel
25b69f2ca9 Change emoji for latinamerican spanish (#425)
We discussed it on the spanish translation group and ended up choosing this emoji for now
2022-12-27 21:28:16 +03:00
Uriel
84735029f6 Improve developer experience on translation changes (#416) 2022-12-25 14:51:44 +02:00
Uriel
7790e0fdac Add feeder translation keys (#417) 2022-12-25 14:51:26 +02:00
Uriel
f4e13f837b Linux bundling with the jar (#413) 2022-12-25 03:06:28 +03:00
MaxEvil47
b912e0003a Spanish Translation in Fluent (#415)
Co-Authored-By: Fowels <91481489+fowels@users.noreply.github.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2022-12-25 03:05:12 +03:00
Collin Kees
a8fa180ab7 Vive tracker emulation toggle (#418) 2022-12-25 03:03:19 +03:00
Uriel
1ca3980e90 small PR with dialect integrated in the keys (#419) 2022-12-25 03:01:48 +03:00
Uriel
9130b9911a Use fluent format for translations (#414) 2022-12-21 22:02:28 +02:00
namakeingo
f16827eb52 minor italian traslation fix (#409) 2022-12-20 21:14:09 +02:00
Naexen Chen
66d679ef70 typo&grammar fix (#410) 2022-12-20 21:13:49 +02:00
Uriel
9cfde38cdf Fix git versioning (#411) 2022-12-20 00:08:43 +03:00
Uriel
80b24486b3 it was with max (#408) 2022-12-19 21:46:52 +02:00
Disappear9
3c2ee9278c Add and improve some Chinese translations (#403) 2022-12-18 22:58:11 +02:00
TheDevMinerTV
e4667b384a fix: Vietnamese translation key for amount (#407) 2022-12-18 22:54:03 +02:00
Erimel
81c58a8ce4 Fix config.ts and tracker assignment goto (#399) 2022-12-18 22:51:15 +02:00
Erimel
8ce06e4c8b Improve French translation (#402) 2022-12-18 22:49:54 +02:00
Uriel
2c24e4d335 fix languages not fitting (#406) 2022-12-18 22:48:12 +02:00
Uriel
d6218a240a fix npe (#404) 2022-12-18 22:47:29 +02:00
Uriel
76de35e28c Show git commit in version (#351) 2022-12-16 19:14:33 +03:00
Erimel
e7cf1a3008 Remove ReferenceAdjustedTracker (#394) 2022-12-16 18:37:28 +03:00
Collin Kees
88f649ae5c add additional functionality to tap detection (#375) 2022-12-16 16:37:36 +03:00
Butterscotch!
f273d3a9bb Add trackerPort config, defaults to 6969 (#383) 2022-12-16 16:32:52 +03:00
namakeingo
79a0df7b28 Add Italian Translation (#382) 2022-12-16 16:26:40 +03:00
Erimel
ad9e5e0060 Filtering amount check (#378) 2022-12-16 16:25:50 +03:00
Erimel
48c35d9a78 make front the default mounting orientation (#384) 2022-12-16 16:25:05 +03:00
Ryan Butler
9407c6f0d4 Fixed NPE in catch of UDP Server (#388) 2022-12-16 16:24:30 +03:00
Ryan Butler
3dd94b3aa3 Fixed index out of bounds on data feed configs (#389) 2022-12-16 16:24:01 +03:00
Yexo
fbf509ec79 Fixed some polish translations (#387) 2022-12-16 16:23:40 +03:00
Kamilake
5a231ba9ef Korean translation improved and words replaced (#391) 2022-12-16 16:22:54 +03:00
Uriel
9a8c1f1d7b fixes socket not being deleted on exit (#392) 2022-12-16 16:22:33 +03:00
Carl Andersson
871a62e0a5 Include font for colour flags on Windows (#377) 2022-12-16 16:21:44 +03:00
tamakiti
372031ad42 Create new Japanese translation (#374) 2022-12-16 16:21:00 +03:00
Ryan Butler
9227ee4820 Update README.md (#386) 2022-12-16 14:51:16 +03:00
Erimel
4ffbc86588 sort steamvr trackers top-down (#379) 2022-12-13 19:14:37 +03:00
maclux
df43e5fcdf Fix page not opening (#359) 2022-12-13 19:14:09 +03:00
Gabriel S
7bc208fec3 Fix of Brazilian Portuguese translation of the Server GUI (#376) 2022-12-13 19:12:46 +03:00
Erimel
2ee9d5080f log server version on startup (#380) 2022-12-13 19:12:07 +03:00
Eiren Rain
47c76c9c9e Bump version to 0.5.1 2022-12-12 18:11:16 +02:00
Kamilake
88db845f0e Add Korean translation (#372) 2022-12-12 19:09:43 +03:00
Yexo
efe5b006c3 fix and added hands because yeah (#370) 2022-12-12 19:04:14 +03:00
Carl Andersson
3a59325797 Fix language config for pl, zh & pt-BR languages (#367) 2022-12-12 19:03:52 +03:00
Erimel
30d4869217 rename leg parts to something understandable (#366) 2022-12-12 19:03:19 +03:00
Erimel
03f68a598f add key for hands translation (#369) 2022-12-12 19:02:48 +03:00
Colanns
ba362e0098 Add and fix some Chinese translations (#371) 2022-12-12 19:02:20 +03:00
Eiren Rain
410e5901e6 More build fixes 2022-12-11 16:46:03 +02:00
Eiren Rain
5ee67480da Fix build error 2022-12-11 16:41:09 +02:00
Erimel
60e7c9c098 Add OSCRouter (#349) 2022-12-11 17:39:13 +03:00
Gabriel
b4bff05723 Brazilian Portuguese translation for the SlimeVR Server GUI (#361) 2022-12-11 17:34:30 +03:00
Colanns
0eb986b342 Add Chinese translation (#363) 2022-12-11 17:33:16 +03:00
Yexo
04006b1caa Adding Polish Translation as i was saying (#360) 2022-12-11 17:32:01 +03:00
Uriel
aa6eb9ffb1 fix broken message receiving in linux (#344) 2022-12-11 17:29:54 +03:00
Erimel
7e2ed8380c Rename slimevr gui artifact to slimevr.exe (#358) 2022-12-11 17:29:08 +03:00
MenacingExiler
51506b88b6 Added Vietnamese translation (#350) 2022-12-11 17:28:19 +03:00
Erimel
1b16cb84a5 Fix OSC rotations, using OSC with SteamVR and reduce error logging spam (#330) 2022-12-10 13:42:46 +03:00
Collin Kees
645331657f Add keys and French translation for legtweaks+gesture-control (#346) 2022-12-10 13:42:07 +03:00
Carl Andersson
ac30bfaaeb Right align some text for body proportions. (#352) 2022-12-10 13:41:25 +03:00
Ryan Butler
072d6d6661 Update config.ts (#355) 2022-12-10 13:40:49 +03:00
Butterscotch!
f04f833939 Add Engwish~ (OwO) translation (#348)
* Add OwO English

* Update with missing entries
2022-12-08 23:35:00 +03:00
Ryan Butler
6218b5808e Tacker - tracker (#347) 2022-12-08 23:15:41 +03:00
Erimel
8eba520090 some french translation fixes (#343) 2022-12-07 23:11:29 +03:00
Eiren Rain
05c421f51f Bump versison to 0.5.0 2022-12-07 21:47:43 +02:00
lucas lelievre
629310f953 Make the modal reset state when closing (#341) 2022-12-07 13:19:30 +03:00
Uriel
e7e0ee9d7d Fix launching Java from the launcher (#337) 2022-12-07 13:15:21 +03:00
Ryan Butler
c9e82adda2 Create .node-version (#342) 2022-12-07 13:14:43 +03:00
lucas lelievre
4b237d0b1b Feature/gui i18n (#335) 2022-12-07 13:13:13 +03:00
lucas lelievre
2dda66bc55 Fix/gui mounting rotation (#333)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2022-12-05 12:36:08 +03:00
Collin Kees
6a25a584b2 Add double tap detection and skating correction settings (#328) 2022-12-05 12:35:29 +03:00
Butterscotch!
90fddbf66a Mounting reset workflow GUI (#326) 2022-12-04 00:17:43 +03:00
Uriel
7d0f2b0e08 Unix socket support (#273) 2022-12-03 09:23:03 +03:00
Erimel
3f022cd09e add hands to gui steamvr checkboxes (#331) 2022-12-03 09:13:47 +03:00
Erimel
78f9780147 Only write changed toggles and values to config (#316)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2022-12-03 09:13:07 +03:00
Erimel
aa9d9486f3 Fix tracker rotations breaking gui (#327) 2022-12-03 09:12:20 +03:00
Uriel
aeae54d39e dont reinstall rustup and etc (#329) 2022-12-03 09:11:49 +03:00
Uriel
c972bb005d Add more readable errors for the launcher (#319) 2022-12-03 09:10:51 +03:00
Ryan Butler
7913b2e839 Fix Capitalization in Titles (#320) 2022-11-30 21:04:07 +03:00
Erimel
51e9ecfd72 properly yaw reset vrc (#314) 2022-11-27 23:49:33 +03:00
lucas lelievre
9b624f5d9a Serial Selection and detection (#312) 2022-11-27 21:13:46 +03:00
0forks
c3e2987e82 Improve GUI consistency/UX (#313) 2022-11-27 18:51:54 +03:00
Uriel
f7d34480de Make a dialog appear when rust app panics (#310) 2022-11-27 00:15:23 +03:00
lucas lelievre
5247891ff0 Fix scrollbars (#309) 2022-11-26 23:26:39 +03:00
Ryan Butler
e5c05fc864 Switch to tabs (#304) 2022-11-25 18:21:58 +03:00
Ryan Butler
b33d3cd41f Clarify Licensing (#306) 2022-11-25 18:07:59 +03:00
TheDevMinerTV
e88357fb40 refactor(gui): webpack -> vite (#307) 2022-11-25 18:05:36 +03:00
Ryan Butler
49994286fc Improve rust CI and developer experience (#303) 2022-11-25 08:35:00 +03:00
lucas lelievre
cae2573a98 Add Reboot, Factory Reset and Get infos (#302) 2022-11-25 03:33:57 +03:00
Eiren Rain
18aae19573 Bump versison to 0.4.0 2022-11-24 23:28:17 +02:00
lucas lelievre
def3da6580 Fix/Optimize OSC IP address saving (#300) 2022-11-25 00:12:39 +03:00
Butterscotch!
b5f12b46e0 Fix Windows bridge exceptions on other OSes and handle serial exceptions better (#297) 2022-11-25 00:05:19 +03:00
Butterscotch!
5c59c4e385 Linux GUI CI and run GUI CI when workflow file is changed (#294) 2022-11-25 00:00:53 +03:00
Erimel
7fd94c36f5 remove excssive osc logging (#299) 2022-11-25 00:00:42 +03:00
lucas lelievre
bb4861635d Fix/gui reset all (#298) 2022-11-24 23:59:50 +03:00
Erimel
0a2d5674f7 GUI: Fix filtering not being clamped properly (#296) 2022-11-24 23:32:38 +03:00
lucas lelievre
1ac0a380db Feature/gui osc implem (#290) 2022-11-24 22:54:34 +03:00
Erimel
171877ee49 update java 17 download link in run.bat (#292) 2022-11-24 22:02:22 +03:00
Butterscotch!
e45da2b979 appDir() causes GUI config to not be loaded :c (#295) 2022-11-24 22:02:05 +03:00
Eiren Rain
46fedc2d3a Update build-gui.yml 2022-11-23 04:21:02 +03:00
Eiren Rain
6f8037f9f9 Don't crash on unrecognized arguments (#287) 2022-11-23 04:15:09 +03:00
lucas lelievre
9d63191ff3 Fix osc settings (#289) 2022-11-23 04:15:01 +03:00
lucas lelievre
1bcf8467a6 Fix typo (#288) 2022-11-23 04:14:31 +03:00
Eiren Rain
eb55a3e1d4 Fix CI artifact upload (#286) 2022-11-22 23:11:52 +03:00
Eiren Rain
57e220ac34 Merge pull request #285 from SlimeVR/old-gui-cleanup
Old gui cleanup
2022-11-22 19:01:39 +03:00
Eiren Rain
584f3b6afe Fix line endings. Thanks github.dev! 2022-11-22 18:06:07 +03:00
Eiren Rain
b959ac56af Post-merge fixes 2022-11-22 16:01:49 +01:00
Eiren Rain
32a3a010cf Fix keybindings class 2022-11-22 15:50:21 +01:00
Eiren Rain
1624ed3282 Update solarxr-protocol 2022-11-22 15:34:14 +01:00
Eiren Rain
1b27ea6940 Delete old gui, cleanup after new gui merge, bump version to 0.3.1 2022-11-22 17:30:08 +03:00
Eiren Rain
70fb9b4a5a Merge pull request #268 from SlimeVR/merge-gui-and-server
Merge gui and server
2022-11-22 17:20:10 +03:00
Eiren Rain
c0229e107b Merge branch 'main' of https://github.com/SlimeVR/SlimeVR-Server into merge-gui-and-server 2022-11-22 15:09:35 +01:00
Erimel
45d11ba176 bump version to 0.3.,0 (#279) 2022-11-22 16:53:45 +03:00
lucas lelievre
d0b117ab36 Merge branch 'main' of github.com:SlimeVR/SlimeVR-Server into merge-gui-and-server 2022-11-22 10:42:42 +01:00
Erimel
3d3e6faad7 Add config delays for reset/quickreset keybindings (#278) 2022-11-22 05:02:16 +03:00
Butterscotch!
5b44eaddfa Add mounting reset (two-pose reset) (#251) 2022-11-22 04:40:13 +03:00
Erimel
85ea2a0d06 OSC Support (#274) 2022-11-22 04:36:43 +03:00
Collin Kees
ba146e0fb7 Upgrades to legtweaks (#260) 2022-11-22 04:33:04 +03:00
lucas lelievre
6dbe80050f Syncronise with main 2022-11-21 21:36:30 +01:00
lucas lelievre
1dd11ce579 Fix extentions files formatting 2022-11-21 21:32:59 +01:00
williammb
317630628f Remove org/json from jackson (#272) 2022-11-21 23:29:57 +03:00
lucas lelievre
d1f72c9280 Use workspaces modules, update ci, update solarxr 2022-11-19 23:27:04 +01:00
Ryan Butler
e349440ce0 Fixed NPE in tracker ip addr (#269) 2022-11-14 18:02:04 +03:00
lucas lelievre
ae94de39b1 Merge remote-tracking branch 'gui/main' into merge-gui-and-server 2022-11-13 02:27:28 +01:00
lucas lelievre
813c1340a8 Preparing merge with server repo 2022-11-13 02:00:31 +01:00
Erimel
d8a7fa978b Add third party notices with releases (#262) 2022-11-12 18:33:18 +03:00
Uriel
d9988cc658 Refactor code to Java 17 (#244) 2022-11-12 03:14:08 +03:00
lucas lelievre
f38360e4f1 Do not send position or rotation if not available (#265) 2022-11-09 20:18:46 +03:00
lucas lelievre
a6e17c96b8 Hide position if not sent (#33) 2022-11-09 18:10:37 +01:00
lucas lelievre
b149b87fa7 Pub sub implementation (#263) 2022-11-07 23:34:52 +03:00
lucas lelievre
79b1a96e8c add glow effect (#30) 2022-11-07 03:11:32 +01:00
lucas lelievre
cef818b430 Fix min hieight of table row (#29) 2022-11-07 02:57:20 +01:00
lucas lelievre
dd8e9a623f Kepp wifi between pages (#28) 2022-11-07 02:49:47 +01:00
lucas lelievre
fcad1142b0 Tauri update (#27)
* Rust cache

* Update tauri to v1.1.1
2022-11-07 02:25:17 +01:00
lucas lelievre
af629007e1 Rust cache (#26)
* Rust cache

* Add node cache also and update rust-cache version
2022-11-07 02:22:18 +01:00
lucas lelievre
25374a1d6a Implement pubsub protocol + Use it for the overlay 2022-11-07 00:59:08 +01:00
Butterscotch!
2f2f57a46f Add a mounting rotation button to the GUI (#22)
* Add support for mounting reset

* Add reset mounting button

* Don't display negative timer on reset buttons

* Fix reset button timer going negative

* Update package-lock.json
2022-11-03 21:35:25 +01:00
TheDevMinerTV
eed7dd98af docs: add rust to build prereqs (#21) 2022-11-03 21:34:24 +01:00
Butterscotch!
660599b5e1 Replace ip-bigint with ip-num (#23) 2022-11-03 21:33:53 +01:00
Butterscotch!
3d2aa988a0 Better AutoBone body proportion error (#258) 2022-10-27 16:00:04 +03:00
lucas lelievre
f3d32da4cd Bring back device ip (#256) 2022-10-20 18:10:31 +03:00
lucas lelievre
9f9d45c450 Fix lock 2022-10-18 07:11:01 +02:00
lucas lelievre
85671f5497 Add device ip (#18)
* Add device ip

* Use ip address instead of hardware address
2022-10-18 04:42:20 +02:00
Collin Kees
081c2eb191 Add Toggles to settings page (#15)
* add settings for legtweaks

* change settings over flatbuffer

* add toggle control

* bug fix and cleanup

* removed horrific gramatical issues

* made FK settings

* add other toggles

* grammatical corrections

* change text to be in line with style

* Make it work :p

* Remove console log

Co-authored-by: lucas lelievre <loucass003@gmail.com>
2022-10-17 07:47:17 +02:00
Erimel
c3225c10c6 Update for Better Filtering (#17)
* rename filtering stuff

* fix description error

* Make it compile

Co-authored-by: lucas lelievre <loucass003@gmail.com>
2022-10-13 23:49:47 +02:00
Erimel
d5059ed48c Better filtering (#241) 2022-10-13 16:17:32 +03:00
unlogisch04
8b1e4cb21a Adding more Serial Commands to the Server (#245) 2022-10-05 19:36:08 +03:00
Erimel
6242afda42 fix crashing when converting zoom (#242) 2022-09-17 00:09:53 +03:00
Erimel
4f44e6c7c7 fix arms from controllers (#240) 2022-09-13 03:14:29 +03:00
Butterscotch!
6fec8c6d07 Autobone cleanup, logging improvements, and restoring functionality (#237) 2022-09-13 03:14:02 +03:00
Erimel
1348f9f5ef fix trackers not loading none/null (#239) 2022-09-13 03:13:45 +03:00
Eiren Rain
1b5a4bf369 Remove Slime Java Commons submodule, (#236) 2022-09-13 03:13:06 +03:00
Collin Kees
426f914f4d Leg tweaks (#223) 2022-08-30 19:50:15 +03:00
Eiren Rain
caa11f9dfc Bump version to v0.2.1 2022-08-24 23:04:09 +02:00
Butterscotch!
d1ed22d3d3 Add a recurring AutoBone recording for user debug info (#235) 2022-08-24 23:54:03 +03:00
Kitlith
67ea5edda6 Add "fast reset" user action to protobuf bridge. (#232) 2022-08-17 18:16:03 +03:00
lucas lelievre
8c6d5e2369 Fix NPE on config converter. (#234) 2022-08-16 22:38:00 +03:00
lucas lelievre
c5e05d2940 Fix Tracker config not being saved properly (#231) 2022-08-11 21:31:58 +03:00
lucas lelievre
8adf3fe591 Implement overlay toggle (#230) 2022-08-09 21:49:07 +03:00
Loler920a
101c403138 Make elbows track from HMD by default (#228) 2022-08-09 21:32:43 +03:00
lucas lelievre
5d1dbb27e1 Config refactor round 2 (#229) 2022-08-09 21:27:28 +03:00
lucas lelievre
0e73480e8a Overlay settings (#13)
* Overlay settings

* remove console log
2022-08-09 06:35:41 -07:00
lucas lelievre
58b0153cdc Reindent + Fix reponsive on the preparation step 2022-08-09 15:33:24 +02:00
Spazzwan
378cc12401 Autobone edits (#12)
* Update Recording.tsx

* Update Preparation.tsx

* Update Preparation.tsx

* Update Recording.tsx

* Update Recording.tsx

* Update Recording.tsx

* Update StartRecording.tsx

* Update Done.tsx

* Update Done.tsx

* Update Recording.tsx

* Update Preparation.tsx

* Update StartRecording.tsx

* Update StartRecording.tsx

* Update Preparation.tsx

* Update StartRecording.tsx

* Update Preparation.tsx

* Update Recording.tsx

* Update StartRecording.tsx
2022-08-09 06:30:55 -07:00
lucas lelievre
0146c5825c Reindent + Fix reponsive on the preparation step 2022-08-09 15:29:22 +02:00
Spazzwan
5cc2b391f8 Merge branch 'SlimeVR:main' into main 2022-08-09 22:13:17 +10:00
Spazzwan
80bced317c Update StartRecording.tsx 2022-08-09 22:09:47 +10:00
Spazzwan
3f51170be7 Update Recording.tsx 2022-08-09 22:09:03 +10:00
Spazzwan
ad7bd26577 Update Preparation.tsx 2022-08-09 22:08:08 +10:00
Spazzwan
820b8b21ec Update StartRecording.tsx 2022-08-09 21:33:07 +10:00
Spazzwan
12fc9f0377 Update Preparation.tsx 2022-08-09 21:31:58 +10:00
lucas lelievre
b475099b58 fix window not showing up" 2022-08-09 13:18:37 +02:00
Spazzwan
3ea3fbcd99 Update StartRecording.tsx 2022-08-09 20:23:50 +10:00
Spazzwan
28fae6f8db Update StartRecording.tsx 2022-08-09 19:40:55 +10:00
Spazzwan
d466871762 Update Preparation.tsx 2022-08-09 19:39:08 +10:00
Spazzwan
87850ee485 Update Recording.tsx 2022-08-09 19:29:51 +10:00
Spazzwan
86cfa7ce4d Update Done.tsx 2022-08-09 19:18:16 +10:00
Spazzwan
0315e523b5 Update Done.tsx 2022-08-09 19:17:59 +10:00
Spazzwan
ad99dfb439 Update StartRecording.tsx 2022-08-09 19:12:54 +10:00
Spazzwan
c7bf9a6d24 Update Recording.tsx 2022-08-09 19:09:31 +10:00
Spazzwan
38ffa9bb6d Update Recording.tsx 2022-08-09 19:07:27 +10:00
Spazzwan
1ac0191964 Update Recording.tsx 2022-08-09 19:06:39 +10:00
Spazzwan
75fab32a32 Update Preparation.tsx 2022-08-09 19:03:25 +10:00
Spazzwan
cf3eccde64 Update Preparation.tsx 2022-08-09 19:00:28 +10:00
Spazzwan
5a0240a01a Update Recording.tsx 2022-08-09 18:56:15 +10:00
Ryan Butler
390d6f3b51 Model settings (#226) 2022-08-04 20:34:33 +03:00
Erimel
29121913fd Add Skeleton settings to config and change some FK averaging logic. (#215) 2022-08-04 20:02:58 +03:00
lucas lelievre
7489d6ed34 Autobone tracker highlight 2022-08-04 16:14:48 +02:00
lucas lelievre
5d288063ad Fix Typos, window position, tracker list and missign links 2022-08-03 13:12:56 +02:00
lucas lelievre
efce9d3748 Window position save + Window controls button hover effect 2022-08-03 11:34:37 +02:00
lucas lelievre
e9c0b79b73 Better big buttons 2022-08-03 02:13:16 +02:00
lucas lelievre
29268da5c0 First round of fixes 2022-08-03 01:46:41 +02:00
lucas lelievre
41a87b1c9b update to new protocol 2022-07-30 09:08:36 +02:00
lucas lelievre
612d99ae70 Update solarxr dep 2022-07-30 08:56:00 +02:00
lucas lelievre
d878789fcf Fix build 2022-07-30 08:51:18 +02:00
lucas lelievre
2674da1185 New look (#10)
* WIP

* Current progress for erimel

* basic components + Typography

* Current progress  + formating

* Settings ok

* Small Tracker cards + progress on onboarding

* git attributes

* Fix lf

* change some settings naming stuff (#8)

* change some settings naming stuff

* rename legs label to feet

* Body proportions begin

* Serial console + Tracker settings

* interactions on cards

* Body proportions adjust

* Standalone body proportions + some responsive changes

* Dev mode + uniform ui

* Serial layout fix

* Remove old code / cleaning

* make dev table interactable

* Autobone

Co-authored-by: Erimel <marioluigivideo@gmail.com>
2022-07-30 08:46:27 +02:00
lucas lelievre
8d90663799 Add set tracker name in the rpc (#222) 2022-07-30 00:38:15 +03:00
lucas lelievre
bc3cc4ce14 Send manufacturer through the protocol (#221) 2022-07-30 00:37:42 +03:00
lucas lelievre
b5159c9776 Catch flatbuffers errors (#218) 2022-07-30 00:37:11 +03:00
Erimel
9ee09319d7 Skeleton arms rework and cleaning up (#214) 2022-07-15 02:24:21 +03:00
lucas lelievre
7818582f3f Implement Tracker names (#210) 2022-07-15 02:06:22 +03:00
lucas lelievre
2ed0726b76 New readme (#2)
* New readme

* Update README.md

Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>

* Update README.md

Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>

* Update README.md

Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>

* Addressing TheButlah's Feedbacks

* Update README.md

Co-authored-by: Ryan Butler <thebutlah@gmail.com>

* Update README.md

Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>
Co-authored-by: Ryan Butler <thebutlah@gmail.com>
2022-07-05 21:03:34 +02:00
Erimel
0b7f79340b Set disconnected TrackerStatus (#211) 2022-07-04 16:35:08 +03:00
lucas lelievre
c22b5ce421 Implement devices in the protocol (#205) 2022-07-04 00:57:21 +03:00
Erimel
078b140966 Rename hmd bodypart to head (#209) 2022-07-04 00:54:29 +03:00
Erimel
c3e4e86c4e Fixing skeleton stuff (#206) 2022-07-04 00:53:29 +03:00
Erimel
d0b1a9c822 remove waist_tracker, only use hip_tracker (#208) 2022-07-04 00:50:05 +03:00
lucas lelievre
531503f789 Merge pull request #7 from SlimeVR/fix-build
Fix build
2022-07-03 11:26:56 +02:00
lucas lelievre
3abf984d19 Fix build 2022-07-03 10:51:53 +02:00
Erimel
e875cbbcbc Place tracker at origin when disabled (#207) 2022-07-01 02:14:17 +03:00
lucas lelievre
e0dff69d7c Merge pull request #4 from Louka3000/foot_shift
rename foot_offset to foot_shift
2022-06-29 05:55:23 +02:00
Louka
23141305c1 update packages 2022-06-28 16:09:08 -04:00
Louka
04b5bfac9d owo 2022-06-28 16:08:41 -04:00
Eiren Rain
663170681a Bump version to 0.2.0 2022-06-28 21:09:27 +02:00
Butterscotch!
b1318567e3 AutoBone: Adjust bone offsets for directly and implement new contribution based error calculation (#204) 2022-06-28 22:00:57 +03:00
Eiren Rain
d1a02c52a9 Monor changes, added comments 2022-06-28 20:36:04 +02:00
lucas lelievre
b3efcd19db Remove realTracker checks for cleaner code (#203) 2022-06-28 21:33:43 +03:00
Erimel
66e4e4e0a0 Basic shoulder tracking support (#200) 2022-06-28 21:32:11 +03:00
Erimel
7c37fdb24e Use split offsets and rename foot_offset to foot_shift (#199) 2022-06-28 21:20:31 +03:00
Eiren Rain
ceb1cc77d8 Minor cleanup and comments from last PRs 2022-06-28 20:11:08 +02:00
Ryan Butler
8df4726d22 [Feature] Add support for bones in DataFeedUpdate (#196) 2022-06-28 20:57:09 +03:00
Ryan Butler
408df5273d Fix NPE in Websocket logging (#202) 2022-06-28 20:21:38 +03:00
Ryan Butler
7a4d087be2 Prevent logs in gitignore (#201) 2022-06-28 20:21:01 +03:00
Louka
f7249a883f rename foot_offset to foot_shift 2022-06-23 20:49:17 -04:00
lucas lelievre
b1ef647819 Merge pull request #3 from ButterscotchV/github-actions
Add GitHub Actions workflow and update npm packages
2022-06-21 22:44:02 +02:00
Erimel
11a15ab5b1 Cleaning up the skeleton a bit (#197) 2022-06-21 17:22:53 +03:00
Eiren Rain
f6ffd63b05 Fix left arm tracker not resetting (#198) 2022-06-21 01:13:09 +03:00
Butterscotch!
879065f420 Use npm ci instead of install 2022-06-20 16:30:05 -04:00
Butterscotch!
1169f68eb2 Add CI workflow and update npm packages
Create build-gui.yml

Update build-gui.yml

Force install in GitHub Actions

Update SolarXR-Protocol

Update packages to not need to force

Fix CI env declaration
2022-06-20 16:11:07 -04:00
lucas lelievre
0afe9d2ef8 Fix optional in the feeder and bring back none option in the gui (#194) 2022-06-11 20:15:27 +03:00
lucas lelievre
738bf20dc6 Merge pull request #1 from ButterscotchV/autobone-gui
Add basic AutoBone interface
2022-06-11 18:46:07 +02:00
Erimel
c02b95346f Extended knee model + temporary fix for null/optional (#193) 2022-06-09 13:21:40 +03:00
Erimel
db33c561ab fix minor typo in firewall.bat (#192) 2022-06-06 21:08:58 +03:00
Eiren Rain
df2cfa1e57 Skeleton data (#189) 2022-06-05 01:04:07 +03:00
Ryan Butler
d40e2c2ce2 Refactored TrackerPosition (#181) 2022-06-01 17:08:56 +03:00
Butterscotch!
215f3b9f44 Implement AutoBone into the protocol (#187)
Implement event-based AutoBoneHandler & more
2022-06-01 16:59:17 +03:00
Ryan Butler
766cf9ae72 Update instructions for spotless on IntelliJ (#183) 2022-05-31 13:42:57 +03:00
Kamilake
26d808deb7 Handling exception thrown when closing WiFiWindow (#185) 2022-05-30 17:43:43 +03:00
Butterscotch!
4b887332ef Add basic AutoBone interface & export body part labels 2022-05-30 01:46:04 -04:00
Eiren Rain
f9259c976d Update commons version 2022-05-24 17:17:32 +03:00
Erimel
39c3285a0a Fix getting previous rotations (#180) 2022-05-24 01:09:00 +03:00
Ryan Butler
57f3624ee7 CI & Formatting improvements (#178)
* CI & Formatting improvements

+ Added spotlessCheck to CI
+ Now formatting .yaml files (with spaces)
* Bumped version numbers of actions

* Renamed .yml to .yaml in accordance with yaml.org/faq
2022-05-23 15:54:10 +03:00
Eiren Rain
5a4b656a74 WIP of skeleton data 2022-05-19 19:03:38 +03:00
Eiren Rain
bf7e13d923 Update spotless 2022-05-19 18:08:57 +03:00
Ryan Butler
dedec668e1 Added spotless and CONTRIBUTING.md (#172) 2022-05-19 17:51:46 +03:00
Eiren Rain
1e4013be98 This time it should work 2022-05-16 20:52:28 +03:00
Eiren Rain
76c3210788 Should be the last one for gradle or I give up... 2022-05-16 20:48:42 +03:00
Eiren Rain
4a99eff854 Fix gradle build (hopefully) 2022-05-16 20:46:18 +03:00
Eiren Rain
237dabce17 Update commons with formatted code 2022-05-16 20:41:42 +03:00
Eiren Rain
6f36f7624a Update commons 2022-05-16 20:36:26 +03:00
Eiren Rain
1dea626422 Eclipse formatting (#176)
* Make eclipse formatter better follow our conventions and format all of it
* Don't join wrapped lines to allow for hand-formatting
* Fix formatting of switch statements and add breaks in enum declarations
* Use new formatter by @thebutlah, adjust formatter more
2022-05-16 20:05:46 +03:00
Eiren Rain
c74cc539c9 Clarify README regarding licencing 2022-05-08 17:56:53 +03:00
Eiren Rain
910e32bb3e Merge pull request #166 from Futurabeast/clean-get-tracker-by-id
Change getTrackerById
2022-05-03 15:33:18 +03:00
Eiren Rain
6ad3c862ce Merge pull request #171 from TheButlah/fix_concurrent_modification_datafeed
Fix concurrent modification in DataFeedHandler
2022-05-03 15:27:43 +03:00
Eiren Rain
05819baf97 Merge pull request #173 from TheButlah/trackerpos_from_role
Computed trackers use TrackerRole to determine TrackerPosition, if null
2022-05-03 15:25:52 +03:00
Eiren Rain
d84ba2aef5 Merge pull request #174 from TheButlah/fix_more_fbs_bugs
Fix position and rotation getting mixed up in flatbuffer
2022-05-03 15:24:20 +03:00
Ryan Butler
ec9e7d94bc Fix position and rotation getting mixed up in flatbuffer 2022-05-03 03:24:22 -04:00
Ryan Butler
a800749b87 Fix concurrent modification in DataFeedHandler 2022-05-03 00:41:25 -04:00
lucas lelievre
675c69af60 WIP 2022-05-03 06:41:23 +02:00
Ryan Butler
76fe83452e Computed trackers use TrackerRole to determine TrackerPosition, if null 2022-05-02 23:45:57 -04:00
Eiren Rain
6d940503af Merge pull request #169 from TheButlah/gitignore_eclipse
.gitignore eclipse stuff
2022-05-02 23:17:21 +03:00
Ryan Butler
0ea5b58b50 .gitignoring most eclipse stuff 2022-05-02 13:38:50 -04:00
Eiren Rain
94c079815f Merge pull request #168 from TheButlah/fix_computed_tracker_num
Computed trackers should use their tracker id as their num
2022-05-02 13:47:43 +03:00
Eiren Rain
11ab7a6cb6 Merge pull request #167 from TheButlah/fix_invalid_fb_serialization
Fix invalid flatbuffer offsets
2022-05-02 13:47:15 +03:00
Ryan Butler
7f67135e69 Computed trackers should use their tracker id as their num 2022-05-02 02:58:24 -04:00
Ryan Butler
a1717bbf7a Fix invalid flatbuffer offsets 2022-05-02 02:09:33 -04:00
Eiren Rain
c99375364d Merge pull request #165 from deiteris/use-foreach
Refactor for to foreach
2022-05-01 16:02:24 +03:00
Eiren Rain
94460ed7ab Merge pull request #163 from Futurabeast/fix-index-error-datafeed
Fix iteration on the sensors, i used the key of the map instead of the index of the array
2022-05-01 01:07:18 +03:00
lucas lelievre
413332462f more readable version of it 2022-04-30 23:06:14 +02:00
lucas lelievre
18386d57d6 Better tracker id with no possible null pointer exception 2022-04-30 22:50:32 +02:00
lucas lelievre
f72045438e Change getTrackerById 2022-04-30 21:58:26 +02:00
Yury
17f74c693c Refactor for to foreach 2022-04-30 20:34:13 +03:00
lucas lelievre
fb3057b80a I don't know what this does, but I'm gonna merge it anyway
add filtering description
2022-04-30 07:55:51 +02:00
lucas lelievre
4eec83e5f4 Merge pull request #9 from Louka3000/main
Better tracker rotation slider
2022-04-30 07:54:52 +02:00
Louka
f94850c120 better tracker rotation slider 2022-04-30 01:50:39 -04:00
lucas lelievre
3fb87a4688 Fix iteration on the sensors, i used the key of the map instead of the index of the array 2022-04-30 04:03:53 +02:00
Erimel
488c3ec22c add filtering description 2022-04-29 18:48:36 -04:00
lucas lelievre
cccf57d37a new palette 2022-04-29 00:56:01 +02:00
lucas lelievre
8f1be283a4 rename extensions file 2022-04-28 19:24:38 +02:00
lucas lelievre
049465fc41 Add recomended extensions 2022-04-28 19:21:25 +02:00
lucas lelievre
00be864bbf Change event name on front side to match rust changes 2022-04-28 17:13:25 +02:00
lucas lelievre
494d362ec6 Merge pull request #5 from TheButlah/more_err
Added "terminated" and "other" events to "server-status", fixed icon
2022-04-28 17:12:07 +02:00
lucas lelievre
2c3ac89844 new process events + fallback to current folder if no arguments 2022-04-28 17:10:32 +02:00
Eiren Rain
9205f6cab7 Merge pull request #162 from Futurabeast/format-all
Format all files based on .editorconfig
2022-04-28 15:32:48 +03:00
lucas lelievre
d0ee364fb9 Fix conflicts with main 2022-04-28 14:30:40 +02:00
lucas lelievre
3a80ad0632 Change the formating to tabs 2022-04-28 03:44:24 +02:00
lucas lelievre
93c353bbc6 Fix crlf 2022-04-27 23:20:14 +02:00
Eiren Rain
9f883dccec Fix eclipse prefs 2022-04-27 23:42:16 +03:00
lucas lelievre
ad3b697517 New formatting rules 2022-04-27 22:40:03 +02:00
Eiren Rain
5f3097185e Merge pull request #161 from Futurabeast/fix-forward-to-front
Fix Converting FORWARD rotation to FRONT
2022-04-27 23:33:11 +03:00
lucas lelievre
7ac7f7d424 New formatting rules 2022-04-27 22:29:09 +02:00
lucas lelievre
ba58f4df6a Reformat the formatter 2022-04-27 22:25:28 +02:00
lucas lelievre
297bfddf6c Update src/main/java/dev/slimevr/NetworkProtocol.java
Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>
2022-04-27 22:21:09 +02:00
lucas lelievre
e4d0aca744 Update src/main/java/dev/slimevr/bridge/BridgeThread.java
Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>
2022-04-27 22:21:05 +02:00
lucas lelievre
8b5ac226c3 Update src/main/java/dev/slimevr/bridge/BridgeThread.java
Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>
2022-04-27 22:21:00 +02:00
lucas lelievre
cfc264fa33 Update src/main/java/dev/slimevr/bridge/BridgeThread.java
Co-authored-by: TheDevMinerTV <tobigames200@gmail.com>
2022-04-27 22:20:49 +02:00
lucas lelievre
9e12958ca6 reformat all 2022-04-27 21:39:54 +02:00
lucas lelievre
8609fb9e97 Fix Converting FORWARD rotation to FRON 2022-04-27 21:30:54 +02:00
Eiren Rain
9d6dda8b17 Use https for solarxr module 2022-04-27 19:38:36 +03:00
Eiren Rain
92b64f0f12 Merge pull request #159 from Futurabeast/main
Headless Server / SolarXR Protocol implementation
2022-04-27 19:33:59 +03:00
Ryan Butler
ffda9f6b2e Added "terminated" and "other" events to "server-status", fixed icon 2022-04-26 23:51:17 -04:00
lucas lelievre
ae881565e8 Prepare for beta 2022-04-27 02:40:10 +02:00
lucas lelievre
2b46032329 Add icon 2022-04-26 23:50:51 +02:00
lucas lelievre
f4ee1ff73d Remove icon 2022-04-26 23:50:43 +02:00
lucas lelievre
a54e850de8 Merge console stdio with some minor improvements 2022-04-26 23:47:23 +02:00
lucas lelievre
3e554c1b8a new settings 2022-04-26 21:19:28 +02:00
Ryan Butler
a7c442d785 Events now get sent to frontend 2022-04-26 00:19:19 -04:00
lucas lelievre
677fa71ba1 Cancel change to .settings 2022-04-26 02:08:56 +02:00
lucas lelievre
9f3f34ce70 Reformat protocol 2022-04-26 02:07:45 +02:00
lucas lelievre
2d2b6588b3 Sync with main solarxr 2022-04-26 02:04:59 +02:00
lucas lelievre
f6e1cc7747 update default dependency 2022-04-25 20:47:25 +02:00
Ryan Butler
e04357c815 Added clap 2022-04-25 14:31:44 -04:00
lucas lelievre
17d75cfee0 New settings layout + update solarxr 2022-04-25 20:06:25 +02:00
lucas lelievre
44fa266697 remove slimevr_protocol from submodules 2022-04-25 00:39:37 +02:00
lucas lelievre
57f7ea6745 clean useless stuff 2022-04-25 00:38:50 +02:00
lucas lelievre
326c7e969a remove ignored files 2022-04-25 00:37:29 +02:00
lucas lelievre
23f9b3b276 Sync with lastest server 2022-04-25 00:21:32 +02:00
lucas lelievre
1e74deede3 Current progress 2022-04-24 19:53:56 +02:00
lucas lelievre
4906d9551e New icons 2022-04-24 16:41:23 +02:00
lucas lelievre
83b40d3351 Config stuff 2022-04-24 16:28:35 +02:00
lucas lelievre
ce8929af04 rename to solarxr 2022-04-24 16:09:35 +02:00
lucas lelievre
c2a51e4d57 Merge pull request #2 from TheButlah/add_license
Add LICENSE
2022-04-24 14:04:15 +02:00
lucas lelievre
5fae72fb03 Merge branch 'master' into add_license 2022-04-24 14:03:57 +02:00
lucas lelievre
1b6b6e30ad Merge pull request #1 from TheButlah/fix_child_proc
fix: Child process termination, workspaces, gitignore, logger
2022-04-24 14:03:18 +02:00
Ryan Butler
451d687198 Add LICENSE 2022-04-24 01:35:25 -04:00
Ryan Butler
90144f13c8 fix: Child process termination, workspaces, gitignore, logger
* Now using cargo workspaces, means you can `cargo run` from toplevel.
* Command execution now is cwd independent.
+ Added pretty_env_logger which lets us leverage log crate for easy
  logging.
* Windows now uses the win32job crate to ensure that all child processes
  will properly terminate when the parent process does.
+ Added empty rustfmt.toml to ensure everyone uses default rustfmt
  settings.
* Gitignore now ignores more stuff.
2022-04-24 01:18:00 -04:00
lucas lelievre
9fc9b66745 Rust stuff 2022-04-24 03:55:39 +02:00
loucass003
2317ad94f5 Update submodule to solarxr-protocol 2022-04-24 01:20:55 +02:00
Eiren Rain
58d1f2de96 Merge pull request #158 from Louka3000/skeloff-fix
Fix hip when not using legs
2022-04-23 19:03:15 +03:00
Louka
de101b3576 Fix hip when not using legs
disables pelvis averaging if user isn't using knee trackers.
2022-04-20 21:26:36 -04:00
lucas lelievre
9fbfc43655 Clean packages 2022-04-16 16:40:30 +02:00
loucass003
e3e37023e8 More rpc stuff 2022-04-15 01:17:16 +02:00
Eiren Rain
63409b61ea Merge pull request #157 from mgschwan/main
Change variable naming of configPath
2022-04-14 17:15:20 +03:00
Michael Gschwandtner
c827e7725b Revert changed files 2022-04-14 16:10:35 +02:00
Michael Gschwandtner
0bcaed719b Merge branch 'SlimeVR:main' into main 2022-04-14 16:06:17 +02:00
Michael Gschwandtner
c77d73c460 Rename configPath variable 2022-04-14 16:04:37 +02:00
loucass003
9fc5d41e1b protocol rework Sets -> Map 2022-04-14 09:15:01 +02:00
Eiren Rain
ac0cb9e9cb Merge pull request #149 from Louka3000/hand-tracking
Hand tracking support + elbows without controllers
2022-04-12 20:22:32 +03:00
lucas lelievre
f961318035 update submodule 2022-04-12 09:09:29 +02:00
lucas lelievre
52fa670293 Datafeed almost done 2022-04-12 09:07:18 +02:00
Eiren Rain
d0c3e0ae8d Merge pull request #155 from mgschwan/main
Make VRServer config path variable
2022-04-12 01:57:10 +03:00
Louka
0b2491ead5 Properly handle elbows with hand tracking
Instead of moving the controller chains to the slimevr hand, now just make the computed elbows affected by the elbow from the slimevr hand chain.

Also refactored some stuff to replace "upper arm distance" by "elbow offset". Idek if it's useful but it may be so I'm keeping it.
2022-04-11 18:39:30 -04:00
Michael Gschwandtner
1723d19882 Make VRServer config path variable
Add a constructor that accepts a path to the config file
2022-04-12 00:37:46 +02:00
Louka
416f96fe44 Merge branch 'main' into hand-tracking 2022-04-11 17:41:32 -04:00
Eiren Rain
7b700b4a0c Merge pull request #154 from mgschwan/main
Make WebSocketVRBridge compatible with Android
2022-04-11 21:37:50 +03:00
Eiren Rain
bde578fb9d Merge pull request #151 from Louka3000/neck-tracking
Neck tracking support owo
2022-04-11 21:05:37 +03:00
Michael Gschwandtner
c41dc490ed Make WebSocketVRBridge compatible with Android
Change JSONObject.optFloat (does not exist on Android) to optDouble
2022-04-11 16:00:42 +02:00
Eiren Rain
6d9e816d19 Merge pull request #153 from Louka3000/filters-fix
Make filter dependent on tracker tps
2022-04-08 00:59:28 +03:00
Erimel
8f19afee88 Merge branch 'SlimeVR:main' into hand-tracking 2022-04-07 01:18:50 -04:00
Louka
784ec877d8 Make filter dependent on tracker tps
Why was this in the wrong place wth
2022-04-06 20:35:47 -04:00
Eiren Rain
48c509ef54 Merge pull request #152 from mgschwan/main
Add full reset command to WebSocket bridge
2022-04-06 15:43:56 +03:00
Eiren Rain
0a5f06816d Merge pull request #150 from Louka3000/patch-1
Null check on designation I forgor
2022-04-06 15:42:06 +03:00
Louka
ecbeaf10ed Remove unnecessary code
Also makes my code a whole lot clearer damn.
Now I can understand it myself!!! :P
2022-04-05 18:02:30 -04:00
Michael Gschwandtner
c8e4918b4e Merge branch 'SlimeVR:main' into main 2022-04-05 22:17:55 +02:00
Michael Gschwandtner
4ab5609dbd Add full reset command to WebSocket bridge 2022-04-05 22:11:40 +02:00
Louka
cfe8eb62e7 Neck tracking support owo
This is not a joke.
As I suspected, adding a neck tracker does help with reducing sliding. I tested it in VRChat myself.
Think of it like adding a fourth spine tracker.
Anyway, this can be useful to mocap suits and furries, pls merge ty owo.
2022-04-05 00:11:43 -04:00
Erimel
f2ceb84969 Null check on designation I forgor
sowwy, this completely breaks the server whenever a new tracker (never connected before) connects.  

;-;
2022-04-04 23:41:51 -04:00
Louka
039628d7e4 Hand tracking support + elbows without controllers
This extends the HMD skeleton to support arm tracking. We do end up with kinda duplicate bones tho.

If user has controllers: elbows go from controllers with tracker on lower arm and possibility for upper arm tracker.

If user has no controller (or no feeder app) and enables Elbow SteamVR trackers: elbows go from chest.

If user has no controllers and enables Hand SteamVR trackers: SteamVR trackers on the users hand appear using upper arm, forearm and hand trackers. Use chest tracker as well for more precision.

This also adds a lot of body proportions...
2022-04-04 22:21:18 -04:00
Eiren Rain
91fb4bc035 Merge pull request #146 from Louka3000/legs-fix
Fix ambiguous usage of "Legs"
2022-04-04 16:07:59 +03:00
Eiren Rain
d89ccc3401 Merge pull request #147 from TheDevMinerTV/fix/pingpongpacket
Fix "could not parse packet" warning for PingPongPackets
2022-04-04 16:02:21 +03:00
loucass003
7ab9a37989 Started implementing new protocol 2022-04-04 07:37:26 +02:00
TheDevMinerTV
cf7054b6da Fix "could not parse packet" warning for PingPongPackets 2022-04-04 00:29:22 +02:00
Louka
758f9e8f2f support old configs + rename in skeleton 2022-04-03 11:44:40 -04:00
Louka
fef21906f5 Fix ambiguous usage of "Legs"
- Leg in tracker roles is now knee
- Legs in SteamVR trackers to enable is now Feet
2022-04-03 11:18:44 -04:00
loucass003
4ae37944d9 Everything 2022-04-02 22:36:25 +02:00
loucass003
37ce6a69c1 update submodule 2022-04-02 22:35:45 +02:00
loucass003
aaed8fbd49 Body proportions 2022-04-02 22:33:32 +02:00
loucass003
5fbac9d861 More data 2022-04-02 08:39:31 +02:00
lucas lelievre
c54298709f update submodules url 2022-04-01 05:32:25 +02:00
lucas lelievre
b7d1637b18 Add more tracker data 2022-04-01 04:57:51 +02:00
lucas lelievre
56402526f7 new layout 2022-03-31 18:10:10 +02:00
lucas lelievre
015fa551b7 slimevr_protocol submodules 2022-03-31 16:05:34 +02:00
lucas lelievre
a681f0e5b3 rm folder 2022-03-31 16:05:03 +02:00
lucas lelievre
281810dfbb begin websocket api 2022-03-31 16:00:13 +02:00
lucas lelievre
9482e60dfa Initialize project using Create React App 2022-03-30 18:02:12 +02:00
Eiren Rain
38b8e65d53 Merge pull request #137 from Louka3000/main
Basic Interpolation and Extrapolation
2022-03-28 16:56:05 +03:00
Louka
74ccaa6cf1 fix size/capacity of circle buffer 2022-03-28 00:07:43 -04:00
Louka
4d2083df27 Use circle buffer to get previous rotations
Should help with performance.
2022-03-27 23:58:23 -04:00
Louka
98068232a6 don't create as many quaternions 2022-03-27 06:33:36 -04:00
Eiren Rain
60711df671 Merge pull request #128 from ButterscotchV/autobone-work
Consolidate PoseFrames functionality and add documentation
2022-03-24 14:05:55 +02:00
Erimel
c6b7c11418 Merge branch 'SlimeVR:main' into main 2022-03-23 21:47:52 -04:00
Eiren Rain
ece8811293 Merge pull request #138 from Louka3000/issue61
Align spine yaw with HMD when no spine trackers are present
2022-03-24 02:10:03 +02:00
Louka
8c95c491b9 use GetYaw() 2022-03-23 18:53:43 -04:00
Erimel
45091565b4 Merge branch 'SlimeVR:main' into issue61 2022-03-23 18:42:36 -04:00
Erimel
7c0222189a Merge branch 'SlimeVR:main' into main 2022-03-23 18:42:26 -04:00
Eiren Rain
a84c735761 Update commons 2022-03-24 00:40:20 +02:00
Louka
946c5d4527 calculate hmd yaw better 2022-03-23 18:34:47 -04:00
Louka
2ac6208302 / 2 * 4 = *2 2022-03-23 18:05:58 -04:00
Louka
0cd65c825c Align spine yaw with HMD when no spine tracker
issue https://github.com/SlimeVR/SlimeVR-Server/issues/61
2022-03-23 18:04:09 -04:00
Eiren Rain
43d97a7b97 Merge pull request #136 from Louka3000/upper-arms
Upper arm tracking support for VRC shoulders
2022-03-23 18:38:02 +02:00
Louka
9923556212 removed bad code lol
Code I stole was bad and did unncessery things that made extrapolation wonky
2022-03-22 21:44:29 -04:00
Louka
0a65783637 Make bone
bone yes
2022-03-22 19:58:52 -04:00
Louka
b5bd7e0a26 changed default values for filters 2022-03-22 18:35:00 -04:00
Louka
82779d101b fixed a NullPointerException
When the type was null oops
2022-03-22 01:20:40 -04:00
Louka
9c18d349dd upper arms support
for vrchat's shoulder tracking.
Not recommended since that's 2 trackers PER ARM, but good to have the option.
2022-03-22 00:46:38 -04:00
Louka
8c74071e30 Small adjustments to filter
-renamed frame to tick
- increased max intensity
2022-03-19 13:33:54 -04:00
Louka
256e5079cf Tracker filters GUI and config
I am now master at GUI.
(never again).
Might have done some dumb things like giving IMUTracker VRServer idk, tell me if there's something to fix <3
2022-03-19 03:02:06 -04:00
Louka
4263e86189 Basic interpolation and extrapolation
only the logic. Need to make config and GUI
2022-03-18 22:36:06 -04:00
Eiren Rain
dadb0bb378 Merge pull request #135 from Louka3000/main
Prettier changing proportions
2022-03-15 14:56:26 +02:00
Erimel
8ba25ca840 Merge branch 'SlimeVR:main' into main 2022-03-14 18:12:01 -04:00
Louka
09ac04331f Prettier changing proportions
- Now removes the .0 if the value is whole (only see decimal if is .5)
- Add precision adjust button unselected by default to toggle between 1 and 0.5 adjustment.
2022-03-14 18:11:29 -04:00
Eiren Rain
c21caa76d5 Bump version number to 0.1.6 2022-03-14 20:02:10 +02:00
Eiren Rain
4073d8fc32 Merge pull request #134 from Louka3000/main
Change default proportions and allow half-decimal editing
2022-03-14 15:33:49 +02:00
Erimel
f8b7be8572 Merge branch 'SlimeVR:main' into main 2022-03-13 18:27:01 -04:00
Louka
d6ab811de0 Change default proportions and allow half-decimal editing
- Better initial and default body proportions for people that don't want to calibrate
- Now changes bone length to half decimal (0.5). Rounds up to the nearest 0.5.
2022-03-13 18:25:43 -04:00
Eiren Rain
9fa6722f2b Merge pull request #133 from Blixtdraken/main
Changed the scroll speed for the ui
2022-03-13 18:21:35 +02:00
Blixtdraken
c51204e9cd Changed the scroll speed for the ui. 2022-03-13 17:12:40 +01:00
Eiren Rain
74794d8610 Merge pull request #132 from Louka3000/main
Elbow tracking support OwO
2022-03-12 12:56:49 +02:00
Louka
16978f5acd change default elbow distance
25cm to 22cm
2022-03-11 21:15:49 -05:00
Louka
71e24d0cb9 oops Mighty <3
fix FORWARD being renamed to FRONT
2022-03-10 19:47:28 -05:00
Louka
9a45f99b0e Vertical controllet offset 2022-03-10 18:45:36 -05:00
Louka
7f829f56a3 Fix reset and fix pipe creation order
owo
2022-03-10 18:35:51 -05:00
Erimel
347531f4fe Merge branch 'SlimeVR:main' into main 2022-03-10 18:21:08 -05:00
Eiren Rain
a1c33a0852 Merge pull request #131 from MightyGood/patch-1
Change FORWARD to FRONT for tracker mounting
2022-03-10 17:55:01 +02:00
MightyGood
9cd441654e Change FORWARD to FRONT for tracker mounting
Front fits better with the other options, and should cause less confusion about what the drop-down items mean.
2022-03-10 09:46:24 -06:00
Eiren Rain
88c866a735 Merge pull request #130 from kitlith/feeder_app_protobuf
Switch feeder app from old protocol to new protocol.
2022-03-10 16:00:55 +02:00
Louka
b11492c3f3 minor cleanup
removed skeleton offset for arms; useless
2022-03-10 01:07:35 -05:00
Erimel
52e30b6323 Merge pull request #3 from kitlith/feeder_app_protobuf
Switch feeder app from old protocol to new protocol.
2022-03-10 00:37:47 -05:00
Louka
1ebad806f9 Fix reset and wrist
oh wow, it works.
2022-03-09 19:24:35 -05:00
Louka
51129d3b5d Wrists
doesn't work as intended but does something
2022-03-09 01:27:13 -05:00
Louka
379e1cdcf0 Get all nodes better
for SkeletonList
2022-03-09 01:08:26 -05:00
Louka
0a8f76cfd4 Initial elbows commit
testing
2022-03-08 00:13:49 -05:00
Kitlith
a382698c32 Switch feeder app from old protocol to new protocol. 2022-03-07 20:56:22 -08:00
Butterscotch!
d43002952c Consolidate PoseFrames functionality & add documentation 2022-02-17 22:51:15 -05:00
Eiren Rain
718f1d02c6 Merge pull request #127 from ColdIce1605/ignore-runtime-created-files
Ignore runtime created files
2022-02-17 08:40:52 +02:00
ColdIce
542de22550 Revert "restart branch"
This reverts commit e18ce338e9.
2022-02-16 21:16:22 -06:00
ColdIce
327d458f00 update .gitignore 2022-02-16 21:14:49 -06:00
Eiren Rain
5f206dd12e Merge pull request #125 from Louka3000/patch-2
waist tracker will default to hip before chest
2022-02-16 12:33:09 +02:00
ColdIce
e18ce338e9 restart branch 2022-02-16 01:25:15 -06:00
Erimel
51e6255e9d waist tracker will default to hip before chest
If user has chest + waist but uses chest + hip in the server, chest would be chest+waist and waist would be hip.
This can be fixed by a better explanation of “waist vs hip” in the new GUI, or just defaulting waist to hip instead of chest when no waist tracker is found.
2022-02-15 14:48:21 -05:00
Eiren Rain
7fa7e6c2cc Merge pull request #124 from ColdIce1605/platform-package-fix
Platform Package Fix
2022-02-15 10:19:34 +02:00
ColdIce
710d154817 remove files 2022-02-15 02:17:55 -06:00
ColdIce
f354a10a81 fix .idea related things
sadly can't get rid of the one Magneto change do to LF :P
2022-02-15 02:17:14 -06:00
ColdIce
8bb8135f41 Move windows related code to its own package
Ah no more git history issues
2022-02-15 02:12:20 -06:00
Eiren Rain
e7b9968519 Better tracker timeout handling 2022-02-15 09:59:27 +02:00
Eiren Rain
bfc58d51f2 Merge pull request #122 from Kamilake/patch-1
Change the minimum compatible Java version
2022-02-11 07:14:10 +02:00
Eiren Rain
c158022da5 Merge pull request #123 from Kamilake/patch-2
Add a hide password option
2022-02-11 05:56:55 +02:00
Kamilake
9e010b0026 Add a hide password option 2022-02-11 11:44:18 +09:00
Kamilake
a085b09e07 Change the minimum compatible Java version 2022-02-11 09:36:11 +09:00
Kamilake
37da4ab7fe Change the minimum compatible Java version 2022-02-11 09:22:28 +09:00
Eiren Rain
c5945d784b Merge pull request #121 from ButterscotchV/spell-fix
Fix spelling mistakes
2022-02-09 21:09:33 +02:00
Butterscotch!
16ca08446b Fix spelling mistakes 2022-02-09 04:44:05 -05:00
Eiren Rain
b487350714 Update version to 0.1.5 2022-02-07 20:31:19 +02:00
Eiren Rain
753b12b49e Merge pull request #120 from ButterscotchV/bvh-recording
Add simple BVH recording button
2022-02-07 20:01:45 +02:00
Butterscotch!
0d90cf9c20 Add simple BVH recording button 2022-02-07 01:40:11 -05:00
Eiren Rain
658fd2916d Merge pull request #118 from deiteris/main
Switch to latest gradle and update dependencies
2022-02-05 17:43:00 +02:00
Yury
ed4ea675fb Keep JavaOSC package and remove slf4j package 2022-02-05 18:39:10 +03:00
Yury
2746fd7a67 Remove guava 2022-02-05 18:37:25 +03:00
Eiren Rain
a6b92c60b0 Update commons 2022-02-05 17:33:40 +02:00
Eiren Rain
d4d36a65ec Merge pull request #119 from ButterscotchV/bvh-fix
Fix BVH local angle calculations and abstract PoseStreamer
2022-02-05 17:25:34 +02:00
Butterscotch!
97df8ee12f Simplify PoseFrameStreamer constructor 2022-02-05 07:21:14 -05:00
Butterscotch!
2ab637b4e8 Improve PoseFrameStreamer functionality 2022-02-05 07:08:45 -05:00
Butterscotch!
9a821b051f Abstract PoseStreamer 2022-02-05 07:08:44 -05:00
Butterscotch!
e2f09fc93d Add fake root method & fix local angle calculation 2022-02-05 06:01:07 -05:00
Butterscotch!
891d8e0468 Fix BVH angles 2022-02-05 05:04:31 -05:00
Yury
494e31e41f Switch to latest gradle and update dependencies 2022-02-05 13:02:46 +03:00
Eiren Rain
b369ae6a2a Fix battery reading compatibility with owoTrack 2022-02-02 18:39:53 +02:00
Eiren Rain
5c22ef0192 Fix backwards compatibility with extensions on old firmware 2022-01-29 00:45:28 +02:00
Eiren Rain
d99cbb9c85 Fix backwards compatibility with old firmware and owoTrack 2022-01-28 02:53:08 +02:00
Eiren Rain
4f14f01830 Merge pull request #114 from SlimeVR/test
Network refactoring
2022-01-27 21:51:56 +02:00
Eiren Rain
930b5c701a Cleanup UDP responses 2022-01-27 21:38:49 +02:00
Eiren Rain
bd9e2c47a3 Merge branch 'main' into test 2022-01-27 21:30:39 +02:00
Eiren Rain
53ca2cf881 Move UDP packets and parsing to own calsses
Cleanup UDP networking significantly
2022-01-27 21:30:25 +02:00
Eiren Rain
55e17e7625 Minor network fixes 2022-01-27 19:52:30 +02:00
Eiren Rain
13b37aa2a9 Improved debug, added checkbox to display sensors debug info 2022-01-27 19:31:13 +02:00
Eiren Rain
fe4dde69ea Merge pull request #113 from Louka3000/patch-1
fix link setup
2022-01-27 02:21:07 +02:00
Erimel
0268a5a3ec fix link setup 2022-01-26 19:13:52 -05:00
Eiren Rain
4bddb529d4 Fix ping not working 2022-01-25 22:00:02 +02:00
Eiren Rain
435f5d1751 Don't create new trackers if tracker's IP changed while server is running, hand over old trackers to the new connection
Implements #70
2022-01-25 21:46:50 +02:00
Eiren Rain
af8ce60dbe Fix signal strength reading 2022-01-20 20:57:03 +02:00
Eiren Rain
25f53232cd Fix packet number reading 2022-01-20 20:27:23 +02:00
Eiren Rain
012cb518b3 Fix merge issues, track packets order, improve logging in UDP server 2022-01-20 18:03:53 +02:00
Eiren Rain
2d1ffbc5b0 Merge branch 'main' into test
# Conflicts:
#	src/main/java/dev/slimevr/vr/trackers/TrackersUDPServer.java
2022-01-20 17:54:56 +02:00
Eiren Rain
c88a6802a9 Minor debug stuff 2022-01-20 17:50:08 +02:00
Eiren Rain
f5d608ac6a Merge pull request #111 from ButterscotchV/autobone-fix
Fix AutoBone overwriting configs & improve code documentation
2022-01-20 14:19:46 +03:00
Butterscotch!
5d49bbfb29 Fix AutoBone overwriting configs & improve code documentation 2022-01-19 19:20:47 -05:00
Eiren Rain
5ce520a316 Merge pull request #110 from deiteris/main
Fix decimal places for battery voltage
2022-01-20 00:44:49 +03:00
Yury
98c2c6e202 Merge branch 'main' of https://github.com/deiteris/SlimeVR-Server 2022-01-20 00:25:12 +03:00
Yury
a2fc809d71 Fix decimal places for battery voltage 2022-01-20 00:24:47 +03:00
Eiren Rain
eb302aaef1 Merge pull request #107 from Louka3000/main
Updated default body proportions (again
2022-01-16 02:12:36 +03:00
Louka
3b354f103a Update SkeletonConfigValue.java 2022-01-15 18:00:50 -05:00
Eiren Rain
03c24a5d39 Merge pull request #106 from deiteris/main
Fix log in firewall_uninstall.bat
2022-01-13 01:11:38 +03:00
Yury
a8f13bb570 Fix log in firewall_uninstall.bat 2022-01-13 00:56:08 +03:00
Eiren Rain
f8e35e0a72 Merge pull request #105 from deiteris/main
Show battery level reported by tracker
2022-01-13 00:32:10 +03:00
Yury
27c153f5d3 Show battery level reported by tracker 2022-01-12 19:30:51 +03:00
Eiren Rain
82fdedfa14 Minor changes 2022-01-10 12:54:25 +02:00
Eiren Rain
f5bfbb13e2 Added contributions notice to the README 2022-01-10 12:50:02 +02:00
Eiren Rain
80de578334 Fix missing refactoring changes 2022-01-09 12:27:32 +02:00
Eiren Rain
3b0acbe406 Create new trackers only when sensor info packet received 2022-01-09 12:25:57 +02:00
Eiren Rain
1062361612 Merge pull request #99 from deiteris/main
Add RSSI to trackers
2022-01-09 13:17:57 +03:00
Eiren Rain
7d81fe6f92 Merge pull request #102 from Louka3000/main
Skeleton offset
2022-01-09 11:13:42 +03:00
Eiren Rain
0285eca613 Merge pull request #103 from ColdIce1605/fix-typos
Fix typos
2022-01-08 09:03:10 +03:00
James R
b0aea9ba89 fix typos 2022-01-07 20:54:34 -06:00
Louka
b98eafb66f Remove vertical foot offset
Only keep skeleton offset
2022-01-07 09:12:06 -05:00
Louka
566df6793c fixed foot rotation (I broke it)
I still think there's a better way to do this horizontal foot offset thing
2022-01-06 23:43:26 -05:00
Louka
4949e0a7f3 Skeleton offset and vertical foot offset 2022-01-06 22:30:20 -05:00
Yury
572dcdf1bb Add RSSI to trackers 2022-01-02 23:25:56 +03:00
Eiren Rain
80ce825494 Merge pull request #97 from carl-anders/keybindings-wrap-even-more-no-more-panics-plz
Keybindings: Catch even more errors, and manually check that operating system is Windows
2021-12-27 02:23:13 +03:00
Carl Andersson
bdc3b1971c Fix accidental inversion of check 2021-12-26 21:49:46 +01:00
Carl Andersson
cee400a4c6 Simplify OS & error checks 2021-12-26 21:48:52 +01:00
Carl Andersson
e58706d212 Keybindings: Catch even more errors, and manually check that operating system is Windows 2021-12-26 06:05:27 +01:00
Eiren Rain
ad03caa064 Bump version to 0.1.3 2021-12-24 21:26:03 +02:00
Eiren Rain
e2d6189547 Code formatting 2021-12-24 21:25:40 +02:00
Eiren Rain
7b15d242f7 Move rest of the classes to dev.slimev package, comment out wrong unit-test, minor cleanups 2021-12-24 21:18:58 +02:00
Eiren Rain
b81458d034 Merge pull request #95 from ButterscotchVanilla/skeleton-refactor
Skeleton refactor
2021-12-24 22:09:57 +03:00
Eiren Rain
0595422f69 Merge pull request #96 from deiteris/main
Send empty packets when there are no active trackers
2021-12-18 20:46:43 +03:00
Yury
8e58adb279 Send empty packets when there are no active trackers 2021-12-18 16:33:49 +03:00
ButterscotchVanilla
a5e4b4d8e2 Fix all config "Reset" buttons being timed 2021-12-16 21:33:48 -05:00
ButterscotchVanilla
be2c010b5a Remove comment, this was fixed 2021-12-16 19:14:37 -05:00
ButterscotchVanilla
e107326fee Fix merge conflict 2021-12-16 18:54:20 -05:00
Eiren Rain
4da54f6dec Merge pull request #94 from Louka3000/main
Changed default body proportions
2021-12-16 18:15:42 +03:00
ButterscotchVanilla
1a3a955e10 Change StringBuilder.isEmpty() to length check instead for Java 8 compatibility 2021-12-16 02:26:02 -05:00
ButterscotchVanilla
3f304f7275 Optimize offset calculation for bulk config set & finish AutoBone implementation 2021-12-16 02:06:55 -05:00
ButterscotchVanilla
0690d742c7 Properly save SkeletonConfig values 2021-12-16 01:38:16 -05:00
ButterscotchVanilla
43bbd4b4dd Update config defaults from @Louka3000 2021-12-16 00:27:19 -05:00
ButterscotchVanilla
77fa27a698 Remove String skeleton config & fix null exception with SkeletonConfig 2021-12-15 23:00:08 -05:00
Louka
8991e4f9f8 Changed default body proportions 2021-12-15 20:43:13 -05:00
ButterscotchVanilla
c9740651ba Remove other HumanSkeleton implementations 2021-12-08 23:35:21 -05:00
ButterscotchVanilla
473550ba07 Move skeleton namespace 2021-12-08 23:12:43 -05:00
ButterscotchVanilla
a7cbe91e73 Make SimpleSkeleton compatible with HumanSkeleton 2021-12-08 23:10:54 -05:00
ButterscotchVanilla
40281f68b9 Use config enum instead of strings for AutoBone 2021-12-08 22:00:43 -05:00
ButterscotchVanilla
d3049751ba Update AutoBone to use SkeletonConfig 2021-12-08 21:26:32 -05:00
ButterscotchVanilla
68164756c2 Add more ways to set SkeletonConfig values 2021-12-08 19:53:07 -05:00
ButterscotchVanilla
91c0ddef28 Add new SkeletonConfig class for configuring bone lengths and toggles 2021-12-08 17:57:53 -05:00
Eiren Rain
0641ca1b7b Bump version to 0.1.2 2021-12-07 14:26:20 +02:00
ButterscotchVanilla
e3d9eb6ac9 Add new config for offset slide error & disable dist scaling 2021-12-06 19:37:47 -05:00
ButterscotchVanilla
7eec89bd53 AutoBone: Add offset slide error 2021-12-04 20:59:42 -05:00
ButterscotchVanilla
289a7f8313 AutoBone: Scale distances by height difference 2021-12-04 02:55:18 -05:00
ButterscotchVanilla
f49b2556ae Add full tracker functionality to SimpleSkeleton 2021-12-04 00:45:37 -05:00
Eiren Rain
318c43077c Merge pull request #89 from ButterscotchVanilla/bvh-standard
Add functional BVH recording
2021-12-02 23:54:10 +03:00
Eiren Rain
5691b68166 Merge pull request #90 from ButterscotchVanilla/patch-1
Update GitHub Actions workflow
2021-12-02 23:52:31 +03:00
Butterscotch!
0ea44f988c Update GitHub Actions workflow 2021-12-02 15:45:11 -05:00
ButterscotchVanilla
59e2f796eb Add reference to ViRe in a comment 2021-12-02 12:14:45 -05:00
ButterscotchVanilla
f1a75a98d0 Add extra Spine node for rotation 2021-12-02 03:37:13 -05:00
ButterscotchVanilla
76ac3fcf55 Fix angle calculations 2021-12-01 23:50:47 -05:00
ButterscotchVanilla
6cc3c8e84b Add attempted Euler conversion 2021-12-01 23:19:00 -05:00
ButterscotchVanilla
36907c3244 Add closeOutput for specific stream 2021-12-01 20:21:55 -05:00
ButterscotchVanilla
dfeb02c1a7 Add local rotation calculations to TransformNodeWrapper 2021-12-01 20:17:36 -05:00
ButterscotchVanilla
6adf5f4090 Move node hierarchy wrapping to TransformNodeWrapper 2021-12-01 20:17:36 -05:00
ButterscotchVanilla
e44ce3fb0b Add getParent to TransformNode and add StdBVHFileStream 2021-12-01 20:17:36 -05:00
ButterscotchVanilla
76ab69e44e Wrap TransformNodes for different PoseStream hierarchy requirements 2021-12-01 20:17:35 -05:00
Eiren Rain
57d009df5c Fix bug with wrong trackers being read in skeleton if no leg trackers are attached 2021-12-02 02:11:01 +02:00
Eiren Rain
b4d07b0b7e Merge pull request #88 from deiteris/main
Improve bat script error checking
2021-12-01 16:46:07 +03:00
Yury
da3afa6f8e Improve bat script error checking 2021-12-01 11:43:35 +03:00
Eiren Rain
ec1c491e93 Merge pull request #87 from Louka3000/main
autobone hip-only doesn't affect waist distance anymore
2021-12-01 10:27:45 +03:00
Louka
baccb556e8 autobone hip-only doesn't affect waist distance anymore
- Now autobone checks if user has BOTH waist and hip tracker to add the waist distance value.
- Also renamed certain variable, replacing "hip" by "torso"
2021-11-29 20:08:08 -05:00
Eiren Rain
eedfa61d74 Merge pull request #85 from deiteris/main
Prevent path change when running as admin
2021-11-24 08:39:44 +03:00
Eiren Rain
2a9225178f Merge pull request #84 from Louka3000/main
Changed body proportions: Torso, Chest, Waist
2021-11-23 23:36:31 +03:00
Louka
259190e478 Changed body proportions: Torso, Chest, Waist
Body proportions have been changed: - Torso length is now the base value, replacing waist length in earlier versions.
- Hip length is now waist distance. Waist distance is only used when using a hip tracker
- Chest distance/length is the same. It is only used when using a chest tracker
- Autobone support with any mix-n-match configuration :)
- Virtual Waist changed its name to "Hip offset". It still behaves the same.
2021-11-23 15:11:16 -05:00
Yury
24a0c3b136 Prevent path change when running as admin 2021-11-23 12:11:09 +03:00
Louka
f46f2bc913 Tries to get the waist first for the rotation node for Autobone
When you want the rotation node, it should give the node that has the rotation that affects the bone you want
2021-11-22 22:48:43 -05:00
Eiren Rain
77f048c48e Merge pull request #83 from Louka3000/hip-tracker
Hip tracker support
2021-11-23 04:00:14 +03:00
Louka
4055d51758 Autobone support
Added basic autobone support for the hip tracker, fixed "allTracekrs" and changed initial values of upper body.
2021-11-21 18:14:19 -05:00
Louka
21eff5e1ba Better reset and initial values
owo
2021-11-20 21:32:47 -05:00
Louka
34174b442f Virtual waist affected by kneebuf 2021-11-20 20:49:32 -05:00
Louka
77d37ab2a7 Cleanup and support for hip tracker alone/
why would you want hip alone instead of waist? idk
2021-11-20 16:35:22 -05:00
Louka
350fdbce9d Can use chest tracker alone
hip tracker will default to the waist tracker's position (waist or chest) if no hip tracker is found
2021-11-20 15:03:33 -05:00
Louka
e19cec4d3e Initial commit
added hip tracking support.
Independent from waist.
Has a hip length value going from waist to hip.
Legs depend on hip instead of waist
should work normally without hip tracker.
Should work just fine with a virtual waist offset.
2021-11-20 00:04:33 -05:00
Eiren Rain
e56d7665ed Merge pull request #81 from carl-anders/softer-keybinding-failure-mode
Keybinding: If JIntellitype fails to load, still allow server to run
2021-11-12 02:59:46 +02:00
Carl Andersson
a0e23bfbe9 Keybinding: Be even better at catching errors from JIntellitype 2021-11-12 00:35:41 +01:00
Carl Andersson
b7dc33f79e Keybinding: If JIntellitype fails to load, still allow server to run 2021-11-11 06:31:35 +01:00
Eiren Rain
d8c31eec81 Merge pull request #80 from deiteris/main
Display information message in case Java is not installed
2021-11-08 20:32:42 +02:00
Yury
e84ee760b1 Display information message in case Java is not installed 2021-11-08 21:25:26 +03:00
Eiren Rain
6ba1cc6bdb Merge pull request #79 from deiteris/main
Add forgotten imports
2021-11-08 17:22:31 +02:00
Yury
1b5e534592 Add forgotten imports 2021-11-08 18:01:43 +03:00
Eiren Rain
1a3e21007b Merge pull request #78 from deiteris/main
Prevent server from running if required ports are busy
2021-11-06 20:26:58 +02:00
Yury
55e11ffb5c Prevent server from running if required ports are busy 2021-11-06 21:22:24 +03:00
Eiren Rain
957a040996 Bump version to v0.1.1 2021-10-23 21:00:31 +03:00
Eiren Rain
460a42b135 Merge pull request #67 from ButterscotchVanilla/mocap-stuff
Add base internal mocap functionality
2021-10-22 17:43:47 +03:00
Eiren Rain
8c356b401c Merge pull request #71 from Louka3000/main
Foot Offset and Updated Icons
2021-10-22 17:42:19 +03:00
ButterscotchVanilla
820d06f008 Move PoseStreamer files 2021-10-21 22:48:38 -04:00
Louka
3fa22fa716 Merge branch 'SlimeVR:main' into main 2021-10-20 21:17:09 -04:00
Louka
333daa9cfb Updated Icons
Replaced the old Icons with the new ones. Also made the 16x16 icon pixel.
2021-10-20 21:15:23 -04:00
Eiren Rain
0e61460cdb Bump version to 0.1.0 Test 1 2021-10-21 00:57:49 +03:00
Eiren Rain
268da18bb5 Properly handle tracker error state for tracker extensions, and timeout for all trackers 2021-10-21 00:57:13 +03:00
Eiren Rain
3fec29cbc6 Minor GUI cleanup 2021-10-20 03:49:57 +03:00
Louka
4f3e79a4ac Foot Offset
Added horizontal backwards/forwards foot offset feature.
2021-10-17 01:03:31 -04:00
Eiren Rain
8b3699024b Merge branch 'main' of https://github.com/SlimeVR/SlimeVR-Server into main 2021-10-17 02:08:40 +03:00
Eiren Rain
dd071f2538 Properly use tracker's IP if no MAC recieved 2021-10-17 02:07:30 +03:00
Eiren Rain
ebe74dac17 Merge pull request #69 from ButterscotchVanilla/java-popup
Add a simple error log and popup for unsupported Java versions
2021-10-14 16:35:45 +03:00
ButterscotchVanilla
909a51892f Add a simple error log and popup for unsupported Java versions 2021-10-14 04:31:20 -04:00
ButterscotchVanilla
35c26bec0f Fix Pose Recorder and Streamer synchronization and reduce if nesting 2021-10-13 07:05:29 -04:00
ButterscotchVanilla
8f05284792 Rename PoseFileStream and remove unexpected buffer 2021-10-13 03:05:39 -04:00
ButterscotchVanilla
e1d3af0734 Fix formatting 2021-10-13 02:38:30 -04:00
ButterscotchVanilla
c3fc5607ba Explain the editorconfig change in a comment 2021-10-13 01:57:07 -04:00
ButterscotchVanilla
a326d76f6a Add basic BVH file streamer 2021-10-13 01:57:07 -04:00
ButterscotchVanilla
472fcab821 Add a basic PoseStreamer implementation for streaming mocap data 2021-10-13 01:57:06 -04:00
ButterscotchVanilla
e7f81eb1aa Rename PoseFrame to PoseFrames 2021-10-13 01:57:06 -04:00
ButterscotchVanilla
31375855a0 Fix PoseRecorder frame timing 2021-10-13 01:56:04 -04:00
Eiren Rain
385890d0f0 Bundle LICENSE in the build 2021-10-05 14:58:15 +03:00
Eiren Rain
c9b4b5f18f Added explanation of licensing terms 2021-10-05 14:57:29 +03:00
Eiren Rain
c49af7fb33 Add discorvery port to firewall and add firewall uninstall script 2021-10-05 14:23:16 +03:00
Eiren Rain
4f042de2f4 Minor refactoring 2021-10-05 14:18:13 +03:00
Eiren Rain
f3e2b2ca40 Merge pull request #64 from SlimeVR/ipc-upgrade
IPC upgrade
2021-10-05 14:17:08 +03:00
Eiren Rain
a690447391 Fix thread safety 2021-10-05 14:15:47 +03:00
Eiren Rain
01593352ab Bump version to 0.1.0 2021-10-05 14:13:09 +03:00
Eiren Rain
0e4618529d Merge branch 'main' into ipc-upgrade 2021-10-05 14:11:04 +03:00
Eiren Rain
57c97cd5e1 Move eclipse project to java 11 2021-10-05 13:51:57 +03:00
Eiren Rain
8606c0daa3 Change how SteamVR trackers are selected 2021-10-05 13:51:44 +03:00
Eiren Rain
e94551d4f7 Merge pull request #63 from carl-anders/keyboard-keybindings
Keyboard keybindings: Actually do the correct type of reset
2021-10-03 21:26:33 +03:00
Carl Andersson
ffcd4f32ed Keyboard keybindings: Actually do the correct type of reset 2021-10-03 20:21:21 +02:00
Eiren Rain
2248f577df Merge pull request #62 from adigyran/main
Updated github CI to use 11th java
2021-10-03 18:33:01 +03:00
adigyran
8a57553986 updated gradle CI to use 11th java 2021-10-03 18:31:36 +03:00
Eiren Rain
bb01ce776b Merge branch 'main' into ipc-upgrade
# Conflicts:
#	src/main/java/io/eiren/vr/trackers/TrackersUDPServer.java
2021-10-03 13:18:14 +03:00
Eiren Rain
631870846c Fix classpath for new gradle build 2021-10-03 13:13:33 +03:00
Eiren Rain
a45abb7992 Update README.md 2021-10-02 19:48:54 +03:00
Eiren Rain
c7aaffa5e6 Merge pull request #58 from adigyran/main
slime commons as submodule
2021-10-02 19:46:34 +03:00
adigyran
7def0d0b4e gitlab ci with submodule 2021-10-02 19:44:14 +03:00
adigyran
c035135fb7 slime commons as submodule 2021-10-02 18:43:51 +03:00
Eiren Rain
15ffdeeeb8 Merge pull request #57 from carl-anders/keyboard-keybindings
Keyboard keybindings
2021-10-02 17:47:18 +03:00
Eiren Rain
74f6902a1b Fix NPE in WebSocket bridge 2021-10-02 17:45:56 +03:00
Carl Andersson
b2ae71333a Remove unused json dependency 2021-10-02 16:31:45 +02:00
Carl Andersson
fc88269f2d Add support for keyboard keybindings for reset and quick reset 2021-10-02 15:30:53 +02:00
Eiren Rain
a191fcf803 Bump version to Test 6 2021-10-01 17:39:20 +03:00
Eiren Rain
37b109bd73 Make UDP server support any number of sensors on a single tracker 2021-10-01 17:39:03 +03:00
Eiren Rain
27b2a77f48 Display descriptive tracker names instead of mac addresses in the GUI 2021-10-01 17:30:37 +03:00
Eiren Rain
0f34dd0967 Add back the bridge for SteamVR input, make it also reconnect automatically 2021-10-01 17:30:17 +03:00
Eiren Rain
10fc717500 Fix new bridge 2021-10-01 14:49:01 +03:00
Eiren Rain
250068c6c2 Reset trackers on bridge disconnect 2021-10-01 13:32:44 +03:00
Eiren Rain
488838752b Implement new named pipe bridge and test it lightly 2021-10-01 12:27:04 +03:00
Eiren Rain
dd0f4deae3 Merge pull request #54 from JimWails/main
Fix Spelling mistakes
2021-10-01 04:28:01 +03:00
JimWails
2df4106c92 Fix Spelling mistakes
Change upd:// to udp://
2021-09-30 23:48:42 +08:00
Eiren Rain
ed58076c68 Rework new bridge, don't use internal trackers
Update messages, added more enums and such; some refactoring
2021-09-30 14:42:37 +03:00
Eiren Rain
a4b300198d More work on IPC, minor bridges refactoring 2021-09-29 21:51:14 +03:00
Eiren Rain
6980023c5a Merge branch 'main' into ipc-upgrade 2021-09-29 20:37:35 +03:00
Eiren Rain
9f4d956345 Don't start SteamVR bridge not on Windows for now 2021-09-29 17:16:28 +03:00
Eiren Rain
ce4a90dc55 Early implementation of WebSocket VR Bridge 2021-09-24 01:53:10 +03:00
Eiren Rain
82ba193bb4 Minor GUI cleanup 2021-09-23 22:55:45 +03:00
Eiren Rain
a3a004536d Make GUI greatly less annoying and stretchy 2021-09-23 22:46:17 +03:00
Eiren Rain
bb1d7e06c2 Minor GUI update 2021-09-23 21:42:11 +03:00
Eiren Rain
3689e6723c IPC upgrade WIP 2021-09-23 21:18:42 +03:00
Eiren Rain
ef504c40b6 Use tracker mac address to save tracker configs 2021-09-22 22:37:45 +03:00
Eiren Rain
5e4a128d25 Update firewall script 2021-09-21 20:22:48 +03:00
Eiren Rain
67d93d87b5 Added protobuf and generated messages class 2021-09-18 23:44:51 +03:00
515 changed files with 91489 additions and 7678 deletions

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/resources">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry combineaccessrules="false" kind="src" path="/Slime Java Commons"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>

View File

@@ -1,11 +1,24 @@
# This file is for unifying the coding style for different editors and IDEs
# See editorconfig.org
root = true
[*]
indent_style = tab
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
insert_final_newline = true
charset = utf-8
# Fluent files only support spaces for indentation
[*.ftl]
indent_size = 4
indent_style = space
# Current config in eslint uses 2 spaces for indentation
[*.{.tsx,ts,jsx,js}]
indent_size = 2
indent_style = space
max_line_length = 88
# This is how everything should actually be
[*.{kt,kts,java,rs}]
indent_size = 4
indent_style = tab
max_line_length = 88
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlin.math.*

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

30
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,30 @@
# Global code owner
* @Eirenliel
# Make Loucas the owner of all GUI stuff
/gui/ @loucass003
/package-lock.json @loucass003
# Uriel and Erimel responsible for i18n
/gui/public/i18n/ @ImUrX @Louka3000
/gui/src/i18n/ @ImUrX @Louka3000
/l10n.toml @ImUrX @Louka3000
/gui/src/components/settings/ @Louka3000 @loucass003
# Rust part of the GUI
/gui/src-tauri/ @ImUrX @TheButlah
/Cargo.lock @ImUrX @TheButlah
# Some server code~
/server/ @ButterscotchV @Eirenliel @Louka3000
/server/src/main/java/dev/slimevr/autobone/ @ButterscotchV
/server/src/main/java/dev/slimevr/poserecorder/ @ButterscotchV
/server/src/main/java/dev/slimevr/posestreamer/ @ButterscotchV
/server/src/main/java/dev/slimevr/osc/ @Louka3000
/server/src/main/java/dev/slimevr/tracking/processor/ @Louka3000
/server/src/main/java/dev/slimevr/filtering/ @Louka3000
server/src/main/java/dev/slimevr/config/ @loucass003

101
.github/workflows/build-gui.yml vendored Normal file
View File

@@ -0,0 +1,101 @@
name: Build GUI
on:
push:
branches:
- main
paths:
- .github/workflows/build-gui.yml
- gui/**
- package*.json
pull_request:
paths:
- .github/workflows/build-gui.yml
- gui/**
- package*.json
workflow_dispatch:
create:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
cd gui
npm run lint
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
# Don't mark warnings as errors
CI: false
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- if: matrix.os == 'ubuntu-20.04'
name: Set up Linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
# Increment to invalidate the cache
version: 1.0
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "${{ matrix.os }}"
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run skipbundler
- if: matrix.os == 'windows-latest'
name: Upload a Build Artifact
uses: actions/upload-artifact@v3.1.0
with:
# Artifact name
name: SlimeVR-GUI
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr.exe
- if: matrix.os != 'windows-latest'
name: Upload a Build Artifact
uses: actions/upload-artifact@v3.1.0
with:
# Artifact name
name: SlimeVR-GUI-Linux
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr

284
.github/workflows/gradle.yaml vendored Normal file
View File

@@ -0,0 +1,284 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: SlimeVR Server
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
create:
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "adopt"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Check code formatting
run: ./gradlew spotlessCheck
- name: Test with Gradle
run: ./gradlew test
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "adopt"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Upload the Server JAR as a Build Artifact
uses: actions/upload-artifact@v3
with:
# Artifact name
name: "SlimeVR-Server" # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: server/build/libs/*
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
server/build/libs/*
bundle-linux:
runs-on: ubuntu-20.04
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Set up Linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf libfuse2
# Increment to invalidate the cache
version: 1.0
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "ubuntu-20.04"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run tauri build
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-Deb
path: target/release/bundle/deb/slimevr*.deb
- name: Install appimage-builder
run: |
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool
- name: Modify and Build AppImage
run: |
cd target/release/bundle/appimage
chmod a+x slimevr*.AppImage
./slimevr*.AppImage --appimage-extract
cp $( git rev-parse --show-toplevel )/server/build/libs/slimevr.jar squashfs-root/slimevr.jar
chmod 644 squashfs-root/slimevr.jar
appimagetool squashfs-root slimevr*.AppImage
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-AppImage
path: target/release/bundle/appimage/slimevr*.AppImage
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/appimage/slimevr*.AppImage ./SlimeVR-amd64.appimage
cp target/release/bundle/deb/slimevr*.deb ./SlimeVR-amd64.deb
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-amd64.appimage
./SlimeVR-amd64.deb
bundle-mac:
runs-on: macos-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "macos-latest"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run tauri build -- "--target universal-apple-darwin"
- name: Modify Application
run: |
cd target/release/bundle/macos/slimevr.app/Contents/MacOS
cp $( git rev-parse --show-toplevel )/server/build/libs/slimevr.jar ./
cd ../../../../dmg/
./bundle_dmg.sh --volname slimevr --icon slimevr 180 170 --app-drop-link 480 170 \
--window-size 660 400 --hide-extension ../macos/slimevr.app \
--volicon ../macos/slimevr.app/Contents/Resources/slimevr.icns --skip-jenkins \
--eula ../../../../LICENSE-MIT slimevr.dmg ../macos/slimevr.app
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-MacApp
path: target/release/bundle/macos/slimevr*.app
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-MacDmg
path: target/release/bundle/dmg/slimevr.dmg
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/dmg/slimevr.dmg ./SlimeVR-mac.dmg
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-mac.dmg
bundle-windows:
runs-on: windows-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "windows-latest"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run skipbundler
- name: Bundle to zips
shell: bash
run: |
mkdir SlimeVR
cp gui/src-tauri/icons/icon.ico ./SlimeVR/run.ico
cp server/build/libs/slimevr.jar ./SlimeVR/slimevr.jar
cp server/resources/* ./SlimeVR/
cp target/release/slimevr.exe ./SlimeVR/
7z a -tzip SlimeVR-win64.zip ./SlimeVR/
mv ./SlimeVR/slimevr.exe ./SlimeVR/slimevr-ui.exe
7z a -tzip SlimeVR.zip ./SlimeVR/
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-Windows
path: ./SlimeVR*.zip
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-win64.zip
./SlimeVR.zip

View File

@@ -1,67 +0,0 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: SlimeVR Server
on: [ push, pull_request ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
- name: Clone Slime Java Commons
uses: actions/checkout@v2.3.4
with:
repository: Eirenliel/slime-java-commons
# Relative path under $GITHUB_WORKSPACE to place the repository
path: Slime Java Commons
- name: Set up JDK 8
uses: actions/setup-java@v2.1.0
with:
java-version: '8'
distribution: 'adopt'
cache: 'gradle' # will restore cache of dependencies and wrappers
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Test with Gradle
run: ./gradlew clean test
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
- name: Clone Slime Java Commons
uses: actions/checkout@v2.3.4
with:
repository: Eirenliel/slime-java-commons
# Relative path under $GITHUB_WORKSPACE to place the repository
path: Slime Java Commons
- name: Set up JDK 8
uses: actions/setup-java@v2.1.0
with:
java-version: '8'
distribution: 'adopt'
cache: 'gradle' # will restore cache of dependencies and wrappers
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew clean shadowJar
- name: Upload the Server JAR as a Build Artifact
uses: actions/upload-artifact@v2.2.4
with:
# Artifact name
name: "SlimeVR-Server" # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: build/libs/*

24
.github/workflows/pontoon-pr.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Update translations in main
on:
push:
branches:
- pontoon
jobs:
pull_request:
if: ${{ github.repository == 'SlimeVR/SlimeVR-Server' }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: repo-sync/pull-request@v2
with:
destination_branch: "main"
pr_title: "New Pontoon translations"
pr_body: "Please don't squash me 🥺"
pr_label: "Area: Translation"
github_token: ${{ secrets.PONTOON_BOT_KEY }}

37
.github/workflows/rebase.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
# This workflow will rebase `pontoon` with `main` changes, it's for making the
# Pontoon bot not try making commits to main
name: Rebase pontoon branch to main
on:
push:
branches:
- main
jobs:
rebase:
if: ${{ github.repository == 'SlimeVR/SlimeVR-Server' }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
ref: pontoon
submodules: recursive
# Get all the git history for rebasing
fetch-depth: 0
- name: Rebase
run: |
git config --local user.name "slimevr-bot"
git config --local user.email pantoon@slimevr.dev
git fetch origin main
git rebase origin/main
- name: Push rebase
uses: github-actions-x/commit@v2.9
with:
github-token: ${{ secrets.PONTOON_BOT_KEY }}
push-branch: "pontoon"
commit-message: "update"
force-push: "true"
name: "slimevr-bot"

38
.gitignore vendored
View File

@@ -1,12 +1,38 @@
# Ignore Gradle project-specific cache directory
.gradle
# Ignore Gradle build output directory
build
/bin/
# Syncthing ignore file
.stignore
MagnetoLib.dll
# Ignore .idea
.idea
# Ignore .fleet
.fleet
# Ignore eclipse stuff
.project
.classpath
.settings
# VSCode stuff
/.vscode/settings.json
# Ignore eclipse stuff
.project
.classpath
.settings
# Node Stuff
/node_modules
.husky
# ignore gradle build folder
build/
# Rust build artifacts
/target
# direnv has been claimed for Nix usage
.direnv/

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "solarxr-protocol"]
path = solarxr-protocol
url = https://github.com/SlimeVR/SolarXR-Protocol.git

1
.node-version Normal file
View File

@@ -0,0 +1 @@
18.12.1

6
.prettierrc Normal file
View File

@@ -0,0 +1,6 @@
{
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true
}

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SlimeVR Server</name>
<comment>SlimeVR Server</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>

View File

@@ -1,2 +0,0 @@
connection.project.dir=
eclipse.preferences.version=1

View File

@@ -1,2 +0,0 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@@ -1,2 +0,0 @@
eclipse.preferences.version=1
line.separator=\r\n

View File

@@ -1,416 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.APILeak=warning
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
org.eclipse.jdt.core.compiler.problem.deadCode=ignore
org.eclipse.jdt.core.compiler.problem.deprecation=warning
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=info
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference=info
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=error
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
org.eclipse.jdt.core.compiler.problem.nullReference=error
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=48
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=48
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=48
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
org.eclipse.jdt.core.formatter.comment.format_line_comments=false
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_empty_lines=true
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
org.eclipse.jdt.core.formatter.join_wrapped_lines=false
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.jdt.core.formatter.lineSplit=200
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter

View File

@@ -1,3 +0,0 @@
eclipse.preferences.version=1
formatter_profile=_Essentia
formatter_settings_version=13

17
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,17 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"richardwillis.vscode-spotless-gradle",
"gaborv.flatbuffers",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"rust-lang.rust-analyzer",
"bradlc.vscode-tailwindcss",
"EditorConfig.EditorConfig",
"macabeus.vscode-fluent",
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": []
}

94
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,94 @@
# Contributing to SlimeVR
This document describes essential knowledge for contributors to SlimeVR.
## How to get started
### Getting the code
First, clone the codebase using `git`. If you don't have `git` installed, go install it.
```bash
# Clone repositories
git clone --recursive https://github.com/SlimeVR/SlimeVR-Server.git
# Enter the directory of the codebase
cd SlimeVR-Server
```
Now you can open the codebase in your favorite IDE or text editor.
### Installing Java
The codebase is required to build with Java version 17 or higher.
```bash
# Check java version
java --version
```
### Building the code
The code is built with `gradle`, a cli tool that manages java projects and their
dependencies. You can build the code with `./gradlew build` and run it with
`./gradlew run`.
## Code Style
Code is autoformatted with [spotless](https://github.com/diffplug/spotless/tree/main/plugin-gradle).
Code is checked for autoformatting whenever you build, but you can also run
`./gradlew spotlessCheck` if you prefer.
To autoformat your code from the command line, you can run `./gradlew spotlessApply`.
We recommend installing support for spotless in your IDE of choice, and formatting
whenever you save a file, to make things easy.
If you need to prevent autoformatting for a particular region of code, use
`// @formatter:off` and `// @formatter:on`
### Setting up spotless in VSCode
* Install the `richardwillis.vscode-spotless-gradle` extension
* Add the following to your workspace settings, at `.vscode/settings.json`:
```json
"spotlessGradle.format.enable": true,
"editor.formatOnSave": true,
"[java]": {
"editor.defaultFormatter": "richardwillis.vscode-spotless-gradle"
}
```
### Setting up spotless for IntelliJ
* Install https://plugins.jetbrains.com/plugin/18321-spotless-gradle.
* Add a keyboard shortcut for `Code` > `Reformat Code with Spotless`
* They are working on support to do this on save without a keybind
[here](https://github.com/ragurney/spotless-intellij-gradle/issues/8)
### Setting up Eclipse autoformatting
Import the formatting settings defined in `spotless.xml`, like this:
* Go to `File > Properties`, then `Java Code Style > Formatter`
* Check `Enable project specific settings`
* Click `Import`, then open `spotless.xml`, then `Apply`
* Go to `Java Editor > Save Actions`
* Select `Enable project specific settings`, `Perform the selected actions on save`,
`Format source code`, `Format all lines`
Eclipse will only do a subset of the checks in `spotless`, so you may still want to do
`./gradlew spotlessApply` if you ever see an error from spotless.
### Version bumping
* Add new release inside ``<releases>`` in the ``dev.slimevr.SlimeVR.metainfo.xml`` file. (Example: ``<release version="a.b.c" date="YYYY-MM-DD"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/va.b.c</url></release>``)
* Create the git tag instead of making it from releases, you can do it by just ``git tag VERSION``,
example ``git tag v0.5.0``
* You need to push this change with ``git push origin VERSION`` or ``git push origin --tags``
(will push all tags you made).
We recommend committing first and then making the tag, that tag will point to the commit you are currently
on.
## Code Licensing
SlimeVR uses dual MIT and Apache-2.0 license. Be sure that any code that you reference,
or dependencies you add, are compatible with these licenses. `GPL-v3` for example is
not compatible because it requires any and all code that depends on it to *also* be
licensed under `GPL-v3`.
## Discord
We use discord *a lot* to coordinate and discuss development. Come join us at
https://discord.gg/SlimeVR!

3851
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

13
Cargo.toml Normal file
View File

@@ -0,0 +1,13 @@
[workspace]
# Use 2021 edition resolver, better resolves crate features.
resolver = "2"
# A list of all rust crates in the workspace.
members = ["gui/src-tauri"]
# These settings can be inherited by workspace members
[workspace.package]
edition = "2021"
license = "MIT OR Apache-2.0"
rust-version = "1.65" # This version stabilized GATs and let-else
repository = "https://github.com/SlimeVR/SlimeVR-Server"

201
LICENSE-APACHE Normal file
View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2020 Eiren Rain and SlimeVR Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

21
LICENSE-MIT Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Eiren Rain and SlimeVR Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -5,30 +5,56 @@ Server orchestrates communication between multiple sensors and integrations, lik
Sensors implementations:
* [SlimeVR Tracker for ESP](https://github.com/SlimeVR/SlimeVR-Tracker-ESP) - ESP microcontrollers and multiple IMUs are supported
* [owoTrack Mobile App](https://github.com/abb128/owoTrackVRSyncMobile) - use phone as a tracker (limited functionality and compatibility)
* [owoTrack Mobile App](https://github.com/abb128/owoTrackVRSyncMobile) - use phones as trackers (limited functionality and compatibility)
* [SlimeVR Wrangler](https://github.com/carl-anders/slimevr-wrangler) - use Nintendo Switch Joycon controllers as trackers
Integrations:
* Use [SlimeVR OpenVR Driver](https://github.com/SlimeVR/SlimeVR-OpenVR-Driver) as a driver for SteamVR
* Use built-in OSC support for integration with other apps, such as VRChat, using OSC
* Integrations with other systems will be added later
## How to use
It's highly recommended to install using the installer downloadable here: https://github.com/SlimeVR/SlimeVR-Installer/releases/latest/download/slimevr_web_installer.exe
Latest instructions are currently [here](https://gist.github.com/Eirenliel/8c0eefcdbda1076d5c2e1bf634831d20). Will be updated and republished as time goes on.
Latest setup instructions are [on our site](https://docs.slimevr.dev/server/index.html).
## How to build
## License clarification
**SlimeVR software** (including server, firmware, drivers, installer, documents, and others - see
licence for each case specifically) **is distributed under a dual MIT/Apache 2.0 License
([LICENSE-MIT] and [LICENSE-APACHE]). The software is the copyright of the SlimeVR
contributors.**
You need to execute these commands in the folder where you want this project.
**However, these licenses have some limits, and if you wish to distribute software based
on SlimeVR, you need to be aware of them:**
```bash
# Clone repositories
git clone https://github.com/SlimeVR/SlimeVR-Server.git
git clone https://github.com/Eirenliel/slime-java-commons.git
* When distributing any software that uses or is based on SlimeVR, you have to provide
to the end-user at least one of the original, unmodified [LICENSE-MIT] or
[LICENSE-APACHE] files from SlimeVR. This includes the `Copyright (c) 2020 Eiren Rain
and SlimeVR Contributors` part of the license. It is insufficient to use a generic MIT
or Apache-2.0 License, **it must be the original license file**.
* This applies even if you distribute software without the source code. In this case,
one way to provide it to the end-user is to have a menu in your application that lists
all the open source licenses used, including SlimeVR's.
# Enter the directory and build the runnable server JAR
cd SlimeVR-Server
gradlew shadowJar
```
Please refer to the [LICENSE-MIT] and [LICENSE-APACHE] files if you are at any point
uncertain what the exact requirements are.
Open Slime VR Server project in Eclipse or Intellij Idea
## Contributions
Any contributions submitted for inclusion in this repository will be dual-licensed under
either:
run gradle command `shadowJar` to build a runnable server JAR
- MIT License ([LICENSE-MIT])
- Apache License, Version 2.0 ([LICENSE-APACHE])
Unless you explicitly state otherwise, any contribution intentionally submitted for
inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual
licensed as above, without any additional terms or conditions.
You also certify that the code you have used is compatible with those licenses or is
authored by you. If you're doing so on your work time, you certify that your employer is
okay with this and that you are authorized to provide the above licenses.
For a how-to on contributing, see [CONTRIBUTING.md](CONTRIBUTING.md).
[LICENSE-MIT]: LICENSE-MIT
[LICENSE-APACHE]: LICENSE-APACHE

BIN
assets/img/onboarding.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 KiB

View File

@@ -1,75 +0,0 @@
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java Library project to get you started.
* For more details take a look at the Java Libraries chapter in the Gradle
* User Manual available at https://docs.gradle.org/6.3/userguide/java_library_plugin.html
*/
plugins {
id 'application'
id "com.github.johnrengelman.shadow" version "6.1.0"
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
// Set compiler to use UTF-8
compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'
javadoc.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
if (JavaVersion.current().isJava9Compatible()) {
// TODO: Gradle 6.6
// options.release = 8
options.compilerArgs.addAll(['--release', '8'])
}
}
tasks.withType(Test) {
systemProperty('file.encoding', 'UTF-8')
}
tasks.withType(Javadoc) {
options.encoding = 'UTF-8'
}
repositories {
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
mavenCentral()
}
dependencies {
compile project(':Slime Java Commons')
// This dependency is exported to consumers, that is to say found on their compile classpath.
compile 'org.apache.commons:commons-math3:3.6.1'
compile 'org.yaml:snakeyaml:1.25'
compile 'net.java.dev.jna:jna:5.6.0'
compile 'net.java.dev.jna:jna-platform:5.6.0'
compile 'com.illposed.osc:javaosc-core:0.8'
compile 'com.fazecast:jSerialComm:[2.0.0,3.0.0)'
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:28.2-jre'
// Use JUnit test framework
testImplementation platform('org.junit:junit-bom:5.7.2')
testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation 'org.junit.platform:junit-platform-launcher'
}
test {
useJUnitPlatform()
}
shadowJar {
archiveBaseName.set('slimevr')
archiveClassifier.set('')
archiveVersion.set('')
}
application {
mainClassName = 'io.eiren.vr.Main'
}

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
dev.slimevr.SlimeVR.metainfo.xml by SlimeVR contributors
To the extent possible under law, the person who associated CC0 with
dev.slimevr.SlimeVR.metainfo.xml has waived all copyright and related or neighboring rights
to dev.slimevr.SlimeVR.metainfo.xml.
You should have received a copy of the CC0 legalcode along with this
work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-->
<component type="desktop-application">
<id>dev.slimevr.SlimeVR</id>
<name>SlimeVR</name>
<summary>An app for facilitating full-body tracking in virtual reality</summary>
<developer_name>SlimeVR Team</developer_name>
<!-- CC0 so attribution is not required -->
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT OR Apache-2.0</project_license>
<content_rating type="oars-1.1" />
<url type="homepage">https://slimevr.dev/</url>
<url type="bugtracker">https://github.com/SlimeVR/SlimeVR-Server/issues</url>
<url type="faq">https://docs.slimevr.dev/slimevr101.html</url>
<url type="vcs-browser">https://github.com/SlimeVR/SlimeVR-Server</url>
<url type="translate">https://i18n.slimevr.dev</url>
<url type="help">https://docs.slimevr.dev/server-setup/slimevr-setup.html</url>
<url type="contribute">https://github.com/SlimeVR/SlimeVR-Server/blob/main/CONTRIBUTING.md</url>
<url type="contact">https://discord.gg/SlimeVR</url>
<recommends>
<display_length compare="ge">880</display_length>
</recommends>
<supports>
<control>pointing</control>
<control>keyboard</control>
<control>touch</control>
</supports>
<branding>
<color type="primary">#663499</color>
</branding>
<description>
<p>
<code>SlimeVR</code>
is a set of open hardware sensors and open source software that facilitates full-body
tracking (FBT) in virtual reality. With no base station required, SlimeVR makes wireless
VR FBT affordable and comfortable.
</p>
</description>
<launchable type="desktop-id">dev.slimevr.SlimeVR.desktop</launchable>
<screenshots>
<screenshot type="default">
<caption>The onboarding for the GUI</caption>
<image>https://raw.githubusercontent.com/SlimeVR/SlimeVR-Server/main/assets/img/onboarding.png</image>
</screenshot>
</screenshots>
<releases>
<release version="0.6.2" date="2023-02-17"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.2</url></release>
<release version="0.6.1" date="2023-02-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.1</url></release>
<release version="0.6.0" date="2023-01-05"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.0</url></release>
<release version="0.5.1" date="2022-12-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.5.1</url></release>
<release version="0.5.0" date="2022-12-07"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.5.0</url></release>
<release version="0.4.0" date="2022-11-24"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.4.0</url></release>
<release version="0.3.1" date="2022-11-22"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.3.1</url></release>
<release version="0.3.0" date="2022-11-16"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.3.0</url></release>
<release version="0.2.1" date="2022-08-24"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.2.1</url></release>
<release version="0.2.0" date="2022-06-28"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.2.0</url></release>
</releases>
</component>

93
flake.lock generated Normal file
View File

@@ -0,0 +1,93 @@
{
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1675410244,
"narHash": "sha256-ODj6egMoH/HgAF/0wIy0EfRBeUx5FMuLl6uAdUW3kCI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f7543a7539a007e9562e4d8d24e17a4bcf369b68",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-22.11",
"type": "indirect"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1665296151,
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1675391458,
"narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

83
flake.nix Normal file
View File

@@ -0,0 +1,83 @@
{
description = "Server app for SlimeVR ecosystem";
inputs.nixpkgs.url = "nixpkgs/nixos-22.11";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
outputs = {
self,
nixpkgs,
flake-utils,
rust-overlay,
}:
flake-utils.lib.eachDefaultSystem
(
system: let
overlays = [(import rust-overlay)];
pkgs = import nixpkgs {
inherit system overlays;
};
rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
nativeBuildInputs = with pkgs; [
curl
gcc
openssl
pkgconfig
which
zlib
freetype
expat
];
buildInputs = with pkgs; [
appimagekit
atk
cairo
dbus
dbus.lib
dprint
gdk-pixbuf
glib.out
gobject-introspection
gtk3
harfbuzz
libayatana-appindicator-gtk3
libffi
libsoup
openssl.out
pango
pkg-config
treefmt
webkitgtk
zlib
# Some nice things to have
exa
fd
jdk # JDK17
nodejs
gradle
];
in {
devShells.default = pkgs.mkShell {
nativeBuildInputs =
nativeBuildInputs
++ [
];
buildInputs =
buildInputs
++ [
rustTarget
];
shellHook = ''
alias ls=exa
alias find=fd
'';
};
}
);
}

8
gradle.properties Normal file
View File

@@ -0,0 +1,8 @@
# Fixes bug with spotless. See https://github.com/diffplug/spotless/issues/834#issuecomment-819118761
org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
kotlin.code.style=official

Binary file not shown.

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

269
gradlew vendored Normal file → Executable file
View File

@@ -1,7 +1,7 @@
#!/usr/bin/env sh
#!/bin/sh
#
# Copyright 2015 the original author or authors.
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,78 +17,113 @@
#
##############################################################################
##
## Gradle start up script for UN*X
##
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
MAX_FD=maximum
warn () {
echo "$*"
}
} >&2
die () {
echo
echo "$*"
echo
exit 1
}
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD="$JAVA_HOME/bin/java"
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -97,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
@@ -105,79 +140,95 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"

22
gradlew.bat vendored
View File

@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,28 +64,14 @@ echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell

48
gui/.eslintrc.json Normal file
View File

@@ -0,0 +1,48 @@
{
"env": {
"browser": true,
"es2021": true,
"jest": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["react-hooks", "@typescript-eslint", "prettier"],
"rules": {
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
"spaced-comment": "error",
"quotes": ["error", "single"],
"no-duplicate-imports": "error",
"no-inline-styles": "off",
"@typescript-eslint/no-explicit-any": "off",
"react/no-unescaped-entities": "off",
"prettier/prettier": "warn",
"camelcase": "error",
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
]
},
"settings": {
"import/resolver": {
"typescript": {}
},
"react": {
"version": "detect"
}
}
}

1
gui/.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto eol=lf

29
gui/.gitignore vendored Normal file
View File

@@ -0,0 +1,29 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# JS/TS dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# Build artifacts
/build
/target
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
*.log
/dist

6
gui/LICENSE.md Normal file
View File

@@ -0,0 +1,6 @@
This directory and all subdirectories are dual-licensed under either
* MIT License ([/LICENSE-MIT](/LICENSE-MIT))
* Apache License, Version 2.0 ([/LICENSE-APACHE](/LICENSE-APACHE))
at your option.

30
gui/README.md Normal file
View File

@@ -0,0 +1,30 @@
# SlimeVR UI
This is the GUI of SlimeVR, it uses the SolarXR protocol to communicate with the server and is completely isolated from the server logic.
This project is written in Typescript + React for the frontend and uses Tauri + Rust as a small backend. This makes the application more lightweight than electron.
## Compiling
### Prerequisites
- [Node.js](https://nodejs.org) 16 (We recommend the use of `nvm` instead of installing Node.js directly)
- Windows Webview
- SlimeVR server installed
- [Rust](https://rustup.rs)
```
npm install
```
Build for production
```
npm run tauri build
```
Launch in dev mode
```
npm run tauri dev
```

20
gui/index.html Normal file
View File

@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#000000" />
<link rel="apple-touch-icon" href="/logo192.png" />
<link rel="manifest" href="/manifest.json" />
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>

89
gui/package.json Normal file
View File

@@ -0,0 +1,89 @@
{
"name": "slimevr-ui",
"version": "0.5.1",
"private": true,
"dependencies": {
"@fluent/bundle": "^0.17.1",
"@fluent/react": "^0.14.1",
"@fontsource/poppins": "^4.5.8",
"@formatjs/intl-localematcher": "^0.2.32",
"@react-three/fiber": "^8.10.0",
"@tauri-apps/api": "^1.2.0",
"@vitejs/plugin-react": "^3.0.0",
"browserslist": "^4.18.1",
"classnames": "^2.3.1",
"eslint-config-react-app": "^7.0.0",
"flatbuffers": "^22.10.26",
"identity-obj-proxy": "^3.0.0",
"intl-pluralrules": "^1.3.1",
"ip-num": "^1.4.1",
"postcss-flexbugs-fixes": "^5.0.2",
"postcss-normalize": "^10.0.1",
"postcss-preset-env": "^7.0.1",
"prompts": "^2.4.2",
"react": "^18.0.0",
"react-dev-utils": "^12.0.0",
"react-dom": "^18.0.0",
"react-hook-form": "^7.29.0",
"react-modal": "3.15.1",
"react-router-dom": "^6.2.2",
"solarxr-protocol": "file:../solarxr-protocol",
"three": "^0.148.0",
"typescript": "^4.6.3"
},
"scripts": {
"start": "vite --force",
"build": "vite build",
"dev": "tauri dev",
"skipbundler": "tauri build -b none",
"tauri": "tauri",
"lint": "eslint \"src/**/*.{js,jsx,ts,tsx,json}\"",
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx,json}\"",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,md,json}\"",
"preview-vite": "vite preview",
"javaversion-build": "cd src-tauri/src/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class"
},
"eslintConfig": {
"extends": [
"react-app"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.0",
"@tauri-apps/cli": "^1.2.3",
"@types/react": "18.0.25",
"@types/react-dom": "^18.0.5",
"@types/react-modal": "3.13.1",
"@types/three": "^0.148.0",
"@typescript-eslint/eslint-plugin": "^5.43.0",
"@typescript-eslint/parser": "^5.43.0",
"autoprefixer": "^10.4.4",
"cross-env": "^7.0.3",
"eslint": "^8.18.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.5.0",
"eslint-import-resolver-typescript": "^3.1.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.6.0",
"eslint-plugin-prettier": "^4.1.0",
"eslint-plugin-react": "^7.30.1",
"eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.12",
"prettier": "^2.7.1",
"pretty-quick": "^3.1.3",
"tailwindcss": "^3.0.23",
"vite": "^4.0.3"
}
}

6
gui/postcss.config.cjs Normal file
View File

@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

BIN
gui/public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,692 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = جاري التوصيل بالسيرفر
websocket-connection_lost = انقطع الاتصال بالسيرفر. يتم إعادة التوصيل...
## Tips
tips-find_tracker = لست متأكد من أجهزة التعقب؟ قم بتحريك الجهاز لتحديد العنصر المناسب.
tips-do_not_move_heels = يرجى عدم تحريك كاحليك أثناء التسجيل!
## Body parts
body_part-NONE = غير محدد
body_part-HEAD = الرأس
body_part-NECK = العنق
body_part-RIGHT_SHOULDER = الكتف الأيمن
body_part-RIGHT_UPPER_ARM = العضد الأيمن
body_part-RIGHT_LOWER_ARM = الساعد الأيمن
body_part-RIGHT_HAND = اليد اليمنى
body_part-RIGHT_UPPER_LEG = الفخذ الأيمن
body_part-RIGHT_LOWER_LEG = الكاحل الأيمن
body_part-RIGHT_FOOT = القدم اليمنى
body_part-RIGHT_CONTROLLER = جهاز التحكم اليمنى
body_part-CHEST = الصدر
body_part-WAIST = الخصر
body_part-HIP = الورك
body_part-LEFT_SHOULDER = الكتف الأيسر
body_part-LEFT_UPPER_ARM = العضد الأيسر
body_part-LEFT_LOWER_ARM = الساعد الأيسر
body_part-LEFT_HAND = اليد اليسرى
body_part-LEFT_UPPER_LEG = الفخذ الأيسر
body_part-LEFT_LOWER_LEG = الكاحل الأيسر
body_part-LEFT_FOOT = القدم اليسرى
body_part-LEFT_CONTROLLER = جهاز التحكم الايسر
## Proportions
skeleton_bone-NONE = غير محدد
skeleton_bone-HEAD = إمالة الرأس
skeleton_bone-NECK = طول العنق
skeleton_bone-CHEST = طول الصدر
skeleton_bone-CHEST_OFFSET = درجة تشريد الصدر
skeleton_bone-WAIST = طول الخصر
skeleton_bone-HIP = طول الورك
skeleton_bone-HIP_OFFSET = درجة تشريد الورك
skeleton_bone-HIPS_WIDTH = عرض الورك
skeleton_bone-UPPER_LEG = طول الفخذ
skeleton_bone-LOWER_LEG = طول الساق السفلي
skeleton_bone-FOOT_LENGTH = طول القدم
skeleton_bone-FOOT_SHIFT = إمالة القدم
skeleton_bone-SKELETON_OFFSET = درجة تشريد الهيكل العظمي
skeleton_bone-SHOULDERS_DISTANCE = مسافة الكتفين
skeleton_bone-SHOULDERS_WIDTH = عرض الكتفين
skeleton_bone-UPPER_ARM = طول العضد
skeleton_bone-LOWER_ARM = طول الساعد
skeleton_bone-CONTROLLER_Y = مسافة وحدة التحكم Y
skeleton_bone-CONTROLLER_Z = مسافة وحدة التحكم Z
skeleton_bone-ELBOW_OFFSET = درجة تشريد الكوع
## Tracker reset buttons
reset-reset_all = إعادة تعيين جميع النسب
reset-full = اعاده تعيين
reset-mounting = إعادة تعيين التركيب
reset-quick = إعادة تعيين سريعة
## Serial detection stuff
serial_detection-new_device-p0 = تم اكتشاف جهاز تسلسلي جديد!
serial_detection-new_device-p1 = أدخل بيانات اعتماد الواي فاي الخاصة بك!
serial_detection-new_device-p2 = يرجى تحديد ما تريد القيام به
serial_detection-open_wifi = اتصل بشبكة الواي فاي
serial_detection-open_serial = افتح وحدة التحكم التسلسلية
serial_detection-submit = إرسال!
serial_detection-close = أغلق
## Navigation bar
navbar-home = الصفحة الرئيسية
navbar-body_proportions = نسب الجسم
navbar-trackers_assign = تعيين جهاز التعقب
navbar-mounting = معايرة التركيب
navbar-onboarding = معالج الإعداد
navbar-settings = الإعدادات
## Bounding volume hierarchy recording
bvh-start_recording = سجل بي في ايتش
bvh-recording = تسجيل...
## Widget: Overlay settings
widget-overlay = التراكب
widget-overlay-is_visible_label = إظهار التراكب في ستيم في ار
widget-overlay-is_mirrored_label = عكس تراكب الشاشة
## Widget: Drift compensation
widget-drift_compensation-clear = حذف تعويض الانجراف
## Widget: Developer settings
widget-developer_mode = وضع المطوّر
widget-developer_mode-high_contrast = تباين عالي
widget-developer_mode-precise_rotation = دوران دقيق
widget-developer_mode-fast_data_feed = تغذية البيانات السريعة
widget-developer_mode-filter_slimes_and_hmd = تصفية السليمس و ايتش أم دي
widget-developer_mode-sort_by_name = فرز بالاسم
widget-developer_mode-raw_slime_rotation = الدوران الصافي
widget-developer_mode-more_info = المزيد
## Widget: IMU Visualizer
widget-imu_visualizer = دوران
widget-imu_visualizer-rotation_raw = صافي
widget-imu_visualizer-rotation_preview = عرض مسبق
## Tracker status
tracker-status-none = لا توجد حالة
tracker-status-busy = مشغول
tracker-status-error = خطأ
tracker-status-disconnected = فقد الاتصال
tracker-status-occluded = محجوب
tracker-status-ok = حسنًا
## Tracker status columns
tracker-table-column-name = الاسم
tracker-table-column-type = النوع
tracker-table-column-battery = البطارية
tracker-table-column-ping = بينج
tracker-table-column-tps = تي بي أس
tracker-table-column-temperature = درجة الحرارة درجة مئوية
tracker-table-column-linear-acceleration = تسارع X/Y/Z
tracker-table-column-rotation = دوران X / Y / Z
tracker-table-column-position = موضع X/Y/Z
tracker-table-column-url = عنوان URL
## Tracker rotation
tracker-rotation-front = المقدمة
tracker-rotation-left = اليسار
tracker-rotation-right = اليمين
tracker-rotation-back = الخلف
## Tracker information
tracker-infos-manufacturer = المصنّع
tracker-infos-display_name = اسم العرض
tracker-infos-custom_name = اسم مخصص
tracker-infos-url = عنوان URL لجهاز التعقب
## Tracker settings
tracker-settings-back = ارجع إلى قائمة أجهزة التعقب
tracker-settings-title = إعدادات جهاز التعقب
tracker-settings-assignment_section = التكليف
tracker-settings-assignment_section-description = أي جزء من الجسم تم تعيين جهاز التعقب له.
tracker-settings-assignment_section-edit = تعديل التكليف
tracker-settings-mounting_section = مكان التركيب
tracker-settings-mounting_section-description = أين تم تركيب جهاز التعقب؟
tracker-settings-mounting_section-edit = تعديل التركيب
tracker-settings-drift_compensation_section = السماح بتعويض الانجراف
tracker-settings-drift_compensation_section-description = هل يجب أن يعوض جهاز التعقب عن انحرافه عند تمكين تعويض الانجراف؟
tracker-settings-drift_compensation_section-edit = السماح بتعويض الانجراف
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = اسم جهاز التعقب
tracker-settings-name_section-description = أعطها لقب لطيف :)
tracker-settings-name_section-placeholder = ساق نايتي بيست اليسرى
## Tracker part card info
tracker-part_card-no_name = لا يوجد اسم
tracker-part_card-unassigned = غير محدد
## Body assignment menu
body_assignment_menu = أين تريد أن يكون هذا الجهاز التعقب؟
body_assignment_menu-description = اختر الموقع الذي تريد تعيين هذا جهاز التعقب. بدلاً من ذلك، يمكنك اختيار إدارة جميع أجهزة التعقب مرة واحدة بدلاً من إدارة كل جهاز تلو الآخر.
body_assignment_menu-show_advanced_locations = إظهار مواقع التعيين المتقدمة
body_assignment_menu-manage_trackers = إدارة جميع أجهزة التعقب
body_assignment_menu-unassign_tracker = إلغاء تعيين جهاز التعقب
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = أي جهاز تعقب لتعيينه إلى
tracker_selection_menu-NONE = ما هو جهاز تعقب تريد أن يكون غير معين؟
tracker_selection_menu-HEAD = { -tracker_selection-part } الرأس؟
tracker_selection_menu-NECK = { -tracker_selection-part } العنق؟
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } الكتف الأيمن؟
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } العضد الأيمن؟
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } الساعد الأيمن؟
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } اليد اليمنى؟
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } الفخذ الأيمن؟
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } الكاحل الأيمن؟
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } القدم اليمنى؟
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } وحدة التحكم اليمنى؟
tracker_selection_menu-CHEST = { -tracker_selection-part } الصدر؟
tracker_selection_menu-WAIST = { -tracker_selection-part } الخصر؟
tracker_selection_menu-HIP = { -tracker_selection-part } الورك؟
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } الكتف الأيسر؟
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } العضد الأيسر؟
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } الساعد الأيسر؟
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } اليد اليسرى؟
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } الفخذ الأيسر؟
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } الكاحل الأيسر؟
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } القدم اليسرى؟
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } وحدة تحكم اليسار؟
tracker_selection_menu-unassigned = أجهزة تعقب غير معينة
tracker_selection_menu-assigned = أجهزة تعقب معينة
tracker_selection_menu-dont_assign = لا تعين
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>تحذير:</b> يمكن أن يكون جهاز تعقب الرقبة مميتا إذا تم شدها كثيراً،
يمكن للحزام أن يقطع الدورة الدموية إلى رأسك!
tracker_selection_menu-neck_warning-done = أفهم المخاطر
tracker_selection_menu-neck_warning-cancel = إلغاء
## Mounting menu
mounting_selection_menu = أين تريد أن يكون جهاز التعقب؟
mounting_selection_menu-close = أغلق
## Sidebar settings
settings-sidebar-title = الإعدادات
settings-sidebar-general = الاعدادات العامة
settings-sidebar-tracker_mechanics = ميكانيكا جهاز التعقب
settings-sidebar-fk_settings = إعدادات التعقب
settings-sidebar-gesture_control = التحكم بالإيماءات
settings-sidebar-interface = واجهة المستخدم
settings-sidebar-osc_router = راوتر أوه أس سي
settings-sidebar-utils = الأدوات المساعدة
settings-sidebar-serial = وحدة التحكم التسلسلية
## SteamVR settings
settings-general-steamvr = ستيم في ار
settings-general-steamvr-subtitle = أجهزة تعقب ستيم في ار
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
تمكين أو تعطيل أجهزة التعقب المحددة لستيم في ار.
مفيد فقط للألعاب أو التطبيقات التي تدعم أجهزة تعقب معينة.
settings-general-steamvr-trackers-waist = الخصر
settings-general-steamvr-trackers-chest = الصدر
settings-general-steamvr-trackers-feet = القدمين
settings-general-steamvr-trackers-knees = الركبتين
settings-general-steamvr-trackers-elbows = الكوعين
settings-general-steamvr-trackers-hands = اليدين
## Tracker mechanics
settings-general-tracker_mechanics = ميكانيكا جهاز التعقب
settings-general-tracker_mechanics-filtering = تصفية
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
اختر نوع التصفية لأجهزة التعقب الخاصة بك.
يتنبأ التنبؤ بالحركة بينما يعمل على تنعيم الحركة.
settings-general-tracker_mechanics-filtering-type = نوع التصفية
settings-general-tracker_mechanics-filtering-type-none = بدون تصفية
settings-general-tracker_mechanics-filtering-type-none-description = استخدم التدوير كما هو. لن تفعل أي تصفية
settings-general-tracker_mechanics-filtering-type-smoothing = التنعيم
settings-general-tracker_mechanics-filtering-type-smoothing-description = ينعم الحركات لكنه يزيد من وقت الاستجابة.
settings-general-tracker_mechanics-filtering-type-prediction = التنبؤ
settings-general-tracker_mechanics-filtering-type-prediction-description = يقلل من وقت الإستجابة ويجعل الحركات أكثر سرعة ، ولكنه قد يزيد من التوتر.
settings-general-tracker_mechanics-filtering-amount = المبلغ
settings-general-tracker_mechanics-drift_compensation = تعويض الانجراف
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
يعوض عن انجراف انعراج وحدة IMU بتطبيق دوران عكسي.
قم بتغيير كمية التعويض وعدد عمليات إعادة التعيين التي يتم أخذها في الاعتبار.
settings-general-tracker_mechanics-drift_compensation-enabled-label = تعويض الانجراف
settings-general-tracker_mechanics-drift_compensation-amount-label = مبلغ التعويض
settings-general-tracker_mechanics-drift_compensation-max_resets-label = استخدام ما يصل إلى x عمليات إعادة التعيين الأخيرة
## FK/Tracking settings
settings-general-fk_settings = إعدادات التعقب
settings-general-fk_settings-leg_tweak = تعديلات الساق
settings-general-fk_settings-leg_tweak-description = يمكن أن يقلل أدت التقليم الأرضية من تقليم الأرض أو حتى يزيله ، ولكنه قد يسبب مشاكل عند الركوع على ركبتيك. تصحيح التزحلق على الجليد يصحح التزحلق على الجليد ، لكن يمكنه أن يقلل الدقة في أنماط حركة معينة
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = فلور كليب
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = تصحيح التزحلق
settings-general-fk_settings-leg_tweak-skating_correction-amount = قوة تصحيح التزحلق
settings-general-fk_settings-arm_fk = تعقب الذراع
settings-general-fk_settings-arm_fk-description = تغيير طريقة تعقب الذراعين.
settings-general-fk_settings-arm_fk-force_arms = إجبار الذراعين من ايتش أم دي
settings-general-fk_settings-skeleton_settings = إعدادات الهيكل العظمي
settings-general-fk_settings-skeleton_settings-description = تبديل إعدادات الهيكل العظمي أو إيقافه. يوصى بتركها شغالة.
settings-general-fk_settings-skeleton_settings-extended_spine = العمود الفقري الممتد
settings-general-fk_settings-skeleton_settings-extended_pelvis = الحوض الممتد
settings-general-fk_settings-skeleton_settings-extended_knees = الركبة الممتدة
settings-general-fk_settings-vive_emulation-title = محاكاة فايف
settings-general-fk_settings-vive_emulation-description = محاكاة مشاكل تعقب الخصر التي تعاني منها أجهزة تعقب فايف. هذه مزحة وتجعل التتبع أسوأ.
settings-general-fk_settings-vive_emulation-label = تمكين محاكاة فايف
## Gesture control settings (tracker tapping)
settings-general-gesture_control = التحكم بالإيماءات
settings-general-gesture_control-subtitle = عمليات إعادة التعيين المستندة على النقر
settings-general-gesture_control-description = يسمح بتشغيل عملية إعادة التعيين من خلال النقر على جهاز التعقب. يتم استخدام جهاز التعقب الأعلى على جذعك لإعادة ضبط سريع ، ويتم استخدام جهاز التعقب الأعلى على ساقك اليسرى لإعادة ضبط ، ويتم استخدام جهاز التعقب الأعلى على ساقك اليمنى إعادة ضبط التركيب . تجدر الإشارة إلى أن النقرات يجب أن تتم خلال 0.6 ثانية لكي يتم تسجيلها.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[zero] { $amount } نقرات
[one] نقرة واحدة
[two] نقرتان
[few] { $amount } نقرات
[many] { $amount } نقرات
*[other] { $amount } نقرات
}
settings-general-gesture_control-quickResetEnabled = تمكين النقر لإعادة الضبط السريع
settings-general-gesture_control-quickResetDelay = تأخير إعادة الضبط السريع
settings-general-gesture_control-quickResetTaps = نقرات لإعادة الضبط السريع
settings-general-gesture_control-resetEnabled = تمكين النقر لإعادة التعيين
settings-general-gesture_control-resetDelay = إعادة تعيين التأخير
settings-general-gesture_control-resetTaps = نقرات لإعادة الضبط
settings-general-gesture_control-mountingResetEnabled = تمكين النقر لإعادة تعيين التركيب
settings-general-gesture_control-mountingResetDelay = تأخير إعادة تعيين التركيب
settings-general-gesture_control-mountingResetTaps = نقرات لإعادة تعيين التركيب
## Interface settings
settings-general-interface = واجهة المستخدم
settings-general-interface-dev_mode = وضع المطوّر
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
settings-general-interface-dev_mode-label = وضع المطوّر
settings-general-interface-serial_detection = الكشف عن جهاز تسلسلي
settings-general-interface-serial_detection-description = سيعرض هذا الخيار نافذة منبثقة في كل مرة تقوم فيها بتوصيل جهاز تسلسلي جديد يمكن أن يكون جهاز تعقب. يساعد في تحسين عملية إعداد جهاز التعقب.
settings-general-interface-serial_detection-label = الكشف عن جهاز تسلسلي
settings-general-interface-lang = اختر اللغة
settings-general-interface-lang-description = قم بتغيير اللغة الافتراضية التي تريد استخدامها.
settings-general-interface-lang-placeholder = اختر اللغة التي تريد استخدامها
## Serial settings
settings-serial = وحدة التحكم التسلسلية
# This cares about multilines
settings-serial-description =
هذا هو موجز معلومات مباشر للاتصال التسلسلي.
قد يكون مفيدًا إذا كنت بحاجة إلى معرفة إن كان البرنامج الثابت به خلل.
settings-serial-connection_lost = تم فقد الاتصال بالمسلسل ، جاري إعادة الاتصال...
settings-serial-reboot = إعادة التشغيل
settings-serial-factory_reset = إعادة التعيين إلى إعدادات المصنع
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين المتعقب إلى إعدادات المصنع.
مما يعني أن إعدادات واي فاي والمعايرة <b>ستفقد جميعا!</b>
settings-serial-factory_reset-warning-ok = أنا أعرف ماذا أفعل
settings-serial-factory_reset-warning-cancel = إلغاء
settings-serial-get_infos = احصل على معلومات
settings-serial-serial_select = اختر منفذ تسلسلي
settings-serial-auto_dropdown_item = تلقائي
## OSC router settings
settings-osc-router = راوتر أوه أس سي
# This cares about multilines
settings-osc-router-description =
إعادة توجيه رسائل أوه أس سي من برنامج آخر.
مفيد لاستخدام برنامج أوه أس سي آخر مع في ار تشات على سبيل المثال.
settings-osc-router-enable = تمكين
settings-osc-router-enable-description = تبديل إعادة توجيه الرسائل.
settings-osc-router-enable-label = تمكين
settings-osc-router-network = منافذ الشبكة
# This cares about multilines
settings-osc-router-network-description =
اضبط المنافذ للاستماع وإرسال البيانات.
يمكن أن تكون هذه هي نفس المنافذ الأخرى المستخدمة في خادم سلايم في ار.
settings-osc-router-network-port_in =
.label = منفذ الدخول
.placeholder = منفذ الدخول (الإفتراضي: 9002)
settings-osc-router-network-port_out =
.label = منفذ الخروج
.placeholder = منفذ الخروج (الإفتراضي: 9000)
settings-osc-router-network-address = عنوان الشبكة
settings-osc-router-network-address-description = قم بتعيين العنوان لإرسال البيانات إليه.
settings-osc-router-network-address-placeholder = عنوان آي بي في 4
## OSC VRChat settings
settings-osc-vrchat = أجهزة تعقب "في ار تشات أوه أس سي"
# This cares about multilines
settings-osc-vrchat-description =
قم بتغيير الإعدادات الخاصة ب في ار تشات لتلقي بيانات ايتش أم دي وإرسالها
بيانات أجهزة تعقب لتعقب الجسم (يعمل على كوست مستقل).
settings-osc-vrchat-enable = تمكين
settings-osc-vrchat-enable-description = بتبديل إرسال واستقبال البيانات.
settings-osc-vrchat-enable-label = تمكين
settings-osc-vrchat-network = منافذ الشبكة
settings-osc-vrchat-network-description = قم بتعيين المنافذ للاستماع وإرسال البيانات إلى في ار تشات
settings-osc-vrchat-network-port_in =
.label = منفذ الدخول
.placeholder = منفذ الدخول (الإفتراضي: 9001)
settings-osc-vrchat-network-port_out =
.label = منفذ الخروج
.placeholder = منفذ الخروج (الإفتراضي: 9000)
settings-osc-vrchat-network-address = عنوان الشبكة
settings-osc-vrchat-network-address-description = اختر العنوان الذي تريد إرسال البيانات إلى في ار تشات (تحقق من إعدادات واي فاي على جهازك)
settings-osc-vrchat-network-address-placeholder = عنوان آي بي الخاص بفي ار تشات
settings-osc-vrchat-network-trackers = أجهزة التعقب
settings-osc-vrchat-network-trackers-description = تبديل إرسال أجهزة تتبع محددة عبر أوه أس سي.
settings-osc-vrchat-network-trackers-chest = الصدر
settings-osc-vrchat-network-trackers-waist = الخصر
settings-osc-vrchat-network-trackers-knees = الركبتين
settings-osc-vrchat-network-trackers-feet = القدمين
settings-osc-vrchat-network-trackers-elbows = الكوعين
## Setup/onboarding menu
onboarding-skip = تخطى الإعداد
onboarding-continue = ‏‏متابعة
onboarding-wip = جاري العمل
## Wi-Fi setup
onboarding-wifi_creds-back = العودة إلى المقدمة
onboarding-wifi_creds = إدخل بيانات اعتماد واي فاي
# This cares about multilines
onboarding-wifi_creds-description =
ستستخدم أجهزة التعقب بيانات الاعتماد هذه للاتصال لاسلكيًا.
الرجاء استخدام بيانات الاعتماد التي تتصل بها حاليًا.
onboarding-wifi_creds-skip = تخطى إعدادات واي فاي
onboarding-wifi_creds-submit = إرسال!
onboarding-wifi_creds-ssid =
.label = اسم الواي فاي
.placeholder = أدخل اسم الواي فاي
onboarding-wifi_creds-password =
.label = كلمة السر
.placeholder = أدخل كلمة السر
## Mounting setup
onboarding-reset_tutorial-back = العودة إلى معايرة التركيب
onboarding-reset_tutorial = إعادة البرنامج التعليمي
onboarding-reset_tutorial-description = هذه الميزة لم تنته بعد، فقط اضغط على متابعة
## Setup start
onboarding-home = مرحبا بكم في سلايم في ار
# This cares about multilines and it's centered!!
onboarding-home-description =
جلب التعقب كامل الجسم
للجميع
onboarding-home-start = هيا نتجهز!
## Enter VR part of setup
onboarding-enter_vr-back = العودة إلى تعيين أجهزة التعقب
onboarding-enter_vr-title = حان وقت دخول في ار!
onboarding-enter_vr-description = ضع كل أجهزة التعقب ثم أدخل في ار!
onboarding-enter_vr-ready = أنا جاهز
## Setup done
onboarding-done-title = أنت جاهز تمامًا!
onboarding-done-description = استمتع بتجربة تتبع الجسم بالكامل!
onboarding-done-close = إغلاق الدليل
## Tracker connection setup
onboarding-connect_tracker-back = العودة إلى بيانات اعتماد الواي فاي
onboarding-connect_tracker-title = ربط أجهزة التعقب
onboarding-connect_tracker-description-p0 = ننتقل الآن إلى الجزء الممتع ، ربط جميع أجهزة التعقب!
onboarding-connect_tracker-description-p1 = ما عليك سوى توصيل كل ما لم يتم توصيله بعد من خلال منفذ يو أس بي.
onboarding-connect_tracker-issue-serial = أواجه مشكلة في الاتصال!
onboarding-connect_tracker-usb = جهاز تعقب يو أس بي
onboarding-connect_tracker-connection_status-none = نبحث عن أجهزة التعقب
onboarding-connect_tracker-connection_status-serial_init = نتواصل بجهاز التسلسلي
onboarding-connect_tracker-connection_status-provisioning = نرسل بيانات اعتماد واي فاي
onboarding-connect_tracker-connection_status-connecting = جارٍ إرسال بيانات اعتماد الواي فاي
onboarding-connect_tracker-connection_status-looking_for_server = نبحث عن السرفر
onboarding-connect_tracker-connection_status-connection_error = غير قادر على الاتصال بشبكة الواي فاي
onboarding-connect_tracker-connection_status-could_not_find_server = تعذر العثور على السرفر
onboarding-connect_tracker-connection_status-done = متصل بالسيرفر
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] لا يوجد جهاز تعقب متصل
[zero] لا يوجد جهاز تعقب متصل
[one] جهاز تعقب واحد متصل
[two] جهازا تعقب متصلان
[few] { $amount } أجهزة تعقب متصلة
[many] { $amount } أجهزة تعقب متصلة
*[other] { $amount } أجهزة تعقب متصلة
}
onboarding-connect_tracker-next = لقد قمت بتوصيل جميع أجهزة التعقب
## Tracker assignment setup
onboarding-assign_trackers-back = العودة إلى بيانات اعتماد الواي فاي
onboarding-assign_trackers-title = تعيين أجهزة التعقب
onboarding-assign_trackers-description = دعنا نختار موقع أجهزة التعقب. انقر فوق المكان الذي تريد وضع جهاز تعقب فيه
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[zero] { $assigned } من { $trackers } أجهزة تعقب عينت
[one] جهاز واحد من { $trackers } أجهزة تعقب عينت
[two] جهازان من { $trackers } أجهزة تعقب عينت
[few] { $assigned } من { $trackers } أجهزة تعقب عينت
[many] { $assigned } من { $trackers } أجهزة تعقب عينت
*[other] { $assigned } من { $trackers } أجهزة تعقب عينت
}
onboarding-assign_trackers-advanced = إظهار مواقع التعيين المتقدمة
onboarding-assign_trackers-next = لقد عينت جميع أجهزة التعقب
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر والفخذ الأيسر وإما الصدر أو الورك أو الخصر!
[1] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر وإما الصدر أو الورك أو الخصر!
[2] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر وإما الصدر أو الورك أو الخصر!
[3] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[4] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر والفخذ الأيسر!
[5] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر!
[6] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر !
*[unknown] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص !
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن والفخذ الأيمن وإما الصدر أو الورك أو الخصر!
[1] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن وإما الصدر أو الورك أو الخصر!
[2] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن وإما الصدر أو الورك أو الخصر!
[3] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[4] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن والفخذ الأيمن!
[5] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن!
[6] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن!
*[unknown] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر وإما الصدر أو الورك أو الخصر!
[1] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[2] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر!
*[unknown] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن وتحديد إما الصدر أو الورك أو الخصر!
[1] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[2] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن!
*[unknown] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] تم تحديد الفخذ الأيسر، ولكنك تحتاج أيضًا إلى تحديد الصدر أو الورك أو الخصر!
*[unknown] تم تحديد الفخذ الأيسر، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص !
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] تم تحديد الفخذ الأيمن ولكنك تحتاج أيضًا إلى تحديد الصدر أو الورك أو الخصر!
*[unknown] تم تحديد الفخذ الأيمن ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص !
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] تم تحديد الورك، ولكنك تحتاج إلى تحديد الصدر أيضًا!
*[unknown] تم تحديد الورك، ولكنك تحتاج إلى تحديد جزء جسم غير معروف غير مخصص أيضًا!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] تم تحديد الخصر، ولكنك تحتاج إلى تحديد الصدر أيضًا!
*[unknown] تم تحديد الخصر، ولكنك تحتاج إلى تحديد جزء جسم غير معروف غير مخصص أيضًا!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = العودة إلى دخول في ار
onboarding-manual_mounting = التركيب اليدوي
onboarding-manual_mounting-description = انقر فوق كل جهاز تعقب وحدد طريقة تركيبها
onboarding-manual_mounting-auto_mounting = التركيب التلقائي
onboarding-manual_mounting-next = الخطوة التالية
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = العودة إلى دخول في ار
onboarding-automatic_mounting-title = معايرة التركيب
onboarding-automatic_mounting-description = لكي تعمل أجهزة تعقب سلايم في ار، نحتاج إلى تعيين دوران تركيب أجهزة التعقب لمواءمتها مع تركيب جهاز التعقب المادي.
onboarding-automatic_mounting-manual_mounting = ضبط التركيب يدويًا
onboarding-automatic_mounting-next = الخطوة التالية
onboarding-automatic_mounting-prev_step = الخطوة السابقة
onboarding-automatic_mounting-done-title = تم معايرة دوران التركيب
onboarding-automatic_mounting-done-description = اكتملت معايرة التركيب!
onboarding-automatic_mounting-done-restart = العودة إلى البداية
onboarding-automatic_mounting-mounting_reset-title = إعادة تعيين التركيب
onboarding-automatic_mounting-mounting_reset-step-0 = 1. قرفص في وضع "التزلج" مع ثني ساقيك ، وإمالة الجزء العلوي من جسمك إلى الأمام ، وثني ذراعيك.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. اضغط على زر "إعادة تعيين التركيب" وانتظر لمدة 3 ثوان قبل إعادة تعيين دوران تركيب أجهزة التعقب.
onboarding-automatic_mounting-preparation-title = التحضير
onboarding-automatic_mounting-preparation-step-0 = 1. قف بشكل مستقيم مع ذراعيك على جانبيك.
onboarding-automatic_mounting-preparation-step-1 = اضغط على زر "إعادة ضبط" و انتظر لمدة 3 ثوانٍ قبل إعادة تعيين أجهزة التعقب.
onboarding-automatic_mounting-put_trackers_on-title = ارتدي أجهزة التعقب
onboarding-automatic_mounting-put_trackers_on-description = لمعايرة دوران التركيب، سنستخدم أجهزة التعقب التي قمت بتعيينها. ارتدي جميع أجهزة التعقب، يمكنك معرفة أي منها في المستند على اليمين.
onboarding-automatic_mounting-put_trackers_on-next = ارتديت جميع أجهزة التعقب.
## Tracker manual proportions setup
onboarding-manual_proportions-back = العودة إلى برنامج تعليم إعادة التعيين
onboarding-manual_proportions-title = نسب الجسم اليدوية
onboarding-manual_proportions-precision = ضبط الدقة
onboarding-manual_proportions-auto = المعايرة التلقائية
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = العودة إلى برنامج تعليم إعادة التعيين
onboarding-automatic_proportions-title = قياس جسمك
onboarding-automatic_proportions-description = لكي تعمل أجهزة تعقب سلايم في ار, نحتاج إلى معرفة طول عظامك. هذه المعايرة القصيرة ستقيسها لك.
onboarding-automatic_proportions-manual = معايرة يدوية
onboarding-automatic_proportions-prev_step = الخطوة السابقة
onboarding-automatic_proportions-put_trackers_on-title = ارتدي أجهزة التعقب
onboarding-automatic_proportions-put_trackers_on-description = لمعايرة نسب جسمك ، سنستخدم أجهزة التعقب التي قمت بتعيينها. ضع جميع أجهزة التعقب، يمكنك معرفة أين تم تعيينه في المستند على اليمين.
onboarding-automatic_proportions-put_trackers_on-next = ارتديت جميع أجهزة التعقب.
onboarding-automatic_proportions-preparation-title = التحضير
onboarding-automatic_proportions-preparation-description = ضع كرسيًا خلفك مباشرةً داخل مساحة اللعب الخاصة بك. كن مستعد للجلوس أثناء الإعداد.
onboarding-automatic_proportions-preparation-next = أنا أمام كرسي
onboarding-automatic_proportions-start_recording-title = استعد للتحرك
onboarding-automatic_proportions-start_recording-description = سنقوم الآن بتسجيل بعض الوضعيات والحركات المحددة. ستتم مطالبتك بذلك في الشاشة التالية. كن مستعدا للبدء عند الضغط على الزر!
onboarding-automatic_proportions-start_recording-next = بدء التسجيل
onboarding-automatic_proportions-recording-title = تسجيل
onboarding-automatic_proportions-recording-description-p0 = جاري التسجيل...
onboarding-automatic_proportions-recording-description-p1 = قم بالحركات الموضحة أدناه:
onboarding-automatic_proportions-recording-steps-0 = اثني الركبتين عدة مرات.
onboarding-automatic_proportions-recording-steps-1 = اجلس على كرسي ثم قف.
onboarding-automatic_proportions-recording-steps-2 = قم بتدوير الجزء العلوي من الجسم إلى اليسار ، ثم انحني إلى اليمين.
onboarding-automatic_proportions-recording-steps-3 = قم بتدوير الجزء العلوي من الجسم إلى اليمين ، ثم انحني إلى اليسار.
onboarding-automatic_proportions-recording-steps-4 = تهزهز حتى ينتهي الموقت.
onboarding-automatic_proportions-recording-processing = معالجة النتيجة
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[zero] { $time } ثانية متبقية
[one] { $time } ثانية متبقية
[two] ثانيتين متبقية
[few] { $time } ثوان متبقية
[many] { $time } ثوان متبقية
*[other] { $time } ثوان متبقية
}
onboarding-automatic_proportions-verify_results-title = تحقق من النتائج
onboarding-automatic_proportions-verify_results-description = تحقق من النتائج أدناه ، هل تبدو صحيحة؟
onboarding-automatic_proportions-verify_results-results = تسجيل النتائج
onboarding-automatic_proportions-verify_results-processing = معالجة النتيجة
onboarding-automatic_proportions-verify_results-redo = إعادة التسجيل
onboarding-automatic_proportions-verify_results-confirm = تبدو صحيحة
onboarding-automatic_proportions-done-title = تم قياس الجسم و حفظه.
onboarding-automatic_proportions-done-description = اكتملت معايرة نسب جسمك!
## Home
home-no_trackers = لم يتم الكشف أو تعيين عن أي جهاز تعقب

View File

@@ -0,0 +1,609 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Připojování k serveru
websocket-connection_lost = Ztráta spojení se serverem. Pokus o obnovení připojení...
## Tips
tips-find_tracker = Nejste si jisti, který tracker je který? Zatřeste tracker a zvýrazní se odpovídající položka.
tips-do_not_move_heels = Ujistěte se, že se vaše paty během nahrávání nepohybují!
## Body parts
body_part-NONE = Nepřiřazeno
body_part-HEAD = Hlava
body_part-NECK = Krk
body_part-RIGHT_SHOULDER = Pravé rameno
body_part-RIGHT_UPPER_ARM = Pravé nadloktí
body_part-RIGHT_LOWER_ARM = Pravé podloktí
body_part-RIGHT_HAND = Pravá ruka
body_part-RIGHT_UPPER_LEG = Pravé stehno
body_part-RIGHT_LOWER_LEG = Pravý kotník
body_part-RIGHT_FOOT = Pravá noha
body_part-RIGHT_CONTROLLER = Pravý ovladač
body_part-CHEST = Hrudník
body_part-WAIST = Pás
body_part-HIP = Kyčel
body_part-LEFT_SHOULDER = Levé rameno
body_part-LEFT_UPPER_ARM = Levé nadloktí
body_part-LEFT_LOWER_ARM = Levé podloktí
body_part-LEFT_HAND = Levá ruka
body_part-LEFT_UPPER_LEG = Levé stehno
body_part-LEFT_LOWER_LEG = Levý kotník
body_part-LEFT_FOOT = Levá noha
body_part-LEFT_CONTROLLER = Levý ovladač
## Proportions
skeleton_bone-NONE = Žádný
skeleton_bone-HEAD = Posun hlavy
skeleton_bone-NECK = Délka krku
skeleton_bone-CHEST = Délka hrudníku
skeleton_bone-CHEST_OFFSET = Odsazení hrudníku
skeleton_bone-WAIST = Délka pasu
skeleton_bone-HIP = Délka kyčlí
skeleton_bone-HIP_OFFSET = Odsazení hrudníku
skeleton_bone-HIPS_WIDTH = Šířka kyčlí
skeleton_bone-UPPER_LEG = Délka horní části nohy
skeleton_bone-LOWER_LEG = Délka dolní části nohy
skeleton_bone-FOOT_LENGTH = Délka chodidla
skeleton_bone-FOOT_SHIFT = Odsazení chodidla
skeleton_bone-SKELETON_OFFSET = Odsazení kostry
skeleton_bone-SHOULDERS_DISTANCE = Vzdálenost ramen
skeleton_bone-SHOULDERS_WIDTH = Šířka ramen
skeleton_bone-UPPER_ARM = Délka nadloktí
skeleton_bone-LOWER_ARM = Délka podloktí
skeleton_bone-CONTROLLER_Y = Vzdálenost ovladače Y
skeleton_bone-CONTROLLER_Z = Vzdálenost ovladače Z
skeleton_bone-ELBOW_OFFSET = Odsazení loktů
## Tracker reset buttons
reset-reset_all = Obnovení všech proporcí
reset-full = Resetovat
reset-mounting = Obnovit montáž
reset-quick = Rychlý reset
## Serial detection stuff
serial_detection-new_device-p0 = Nové sériové zařízení detekováno!
serial_detection-new_device-p1 = Zadejte přihlašovací údaje Wi-Fi!
serial_detection-new_device-p2 = Vyberte prosím, co s tím chcete udělat
serial_detection-open_wifi = Připojit se k Wi-Fi
serial_detection-open_serial = Otevřít sériovou konzolu
serial_detection-submit = Odeslat!
serial_detection-close = Zavřít
## Navigation bar
navbar-home = Domů
navbar-body_proportions = Tělesné proporce
navbar-trackers_assign = Přiřazení trackerů
navbar-mounting = Montážní kalibrace
navbar-onboarding = Průvodce nastavením
navbar-settings = Nastavení
## Bounding volume hierarchy recording
bvh-start_recording = Nahrávat BVH
bvh-recording = Nahrávání...
## Widget: Overlay settings
widget-overlay = Překrytí
widget-overlay-is_visible_label = Zobrazit překrytí v SteamVR
widget-overlay-is_mirrored_label = Zobrazit překrytí jako zrcadlo
## Widget: Drift compensation
widget-drift_compensation-clear = Vymazat kompenzaci driftu
## Widget: Developer settings
widget-developer_mode = Vývojářský režim
widget-developer_mode-high_contrast = Vysoký kontrast
widget-developer_mode-precise_rotation = Přesná rotace
widget-developer_mode-fast_data_feed = Rychlý přenos dat
widget-developer_mode-filter_slimes_and_hmd = Filtrovat slimy a HMD
widget-developer_mode-sort_by_name = Seřadit podle názvu
widget-developer_mode-raw_slime_rotation = Nezpracovaná rotace
widget-developer_mode-more_info = Více informací
## Widget: IMU Visualizer
widget-imu_visualizer = Rotace
widget-imu_visualizer-rotation_raw = Nezpracované
widget-imu_visualizer-rotation_preview = Náhled
## Tracker status
tracker-status-none = Žádný stav
tracker-status-busy = Zaneprázdněný
tracker-status-error = Chyba
tracker-status-disconnected = Odpojeno
tracker-status-occluded = Zakrytý
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Název
tracker-table-column-type = Typ
tracker-table-column-battery = Baterie
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Teplota °C
tracker-table-column-linear-acceleration = Akcel. X/Y/Z
tracker-table-column-rotation = Rotace X/Y/Z
tracker-table-column-position = Pozice X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Přední
tracker-rotation-left = Levá
tracker-rotation-right = Pravá
tracker-rotation-back = Zadní
## Tracker information
tracker-infos-manufacturer = Výrobce
tracker-infos-display_name = Zobrazovaný název
tracker-infos-custom_name = Vlastní název
tracker-infos-url = URL Trackeru
## Tracker settings
tracker-settings-back = Zpět na seznam trackerů
tracker-settings-title = Nastavení trackeru
tracker-settings-assignment_section = Přiřazení
tracker-settings-assignment_section-description = K jaké části těla je tracker přiřazen.
tracker-settings-assignment_section-edit = Upravit přiřazení
tracker-settings-mounting_section = Montážní poloha
tracker-settings-mounting_section-description = Kde je tracker namontován?
tracker-settings-mounting_section-edit = Upravit montáž
tracker-settings-drift_compensation_section = Povolit kompenzaci driftu
tracker-settings-drift_compensation_section-description = Měl by tento tracker kompenzovat svůj drift, když je zapnuta kompenzace driftu?
tracker-settings-drift_compensation_section-edit = Povolit kompenzaci driftu
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Název trackeru
tracker-settings-name_section-description = Dejte tomu nějakou roztomilou přezdívku :)
tracker-settings-name_section-placeholder = Levá noha NightyBeast
## Tracker part card info
tracker-part_card-no_name = Bez jména
tracker-part_card-unassigned = Nepřiřazeno
## Body assignment menu
body_assignment_menu = Kde chcete, aby tento tracker byl?
body_assignment_menu-description = Zvolte umístění, kam má být tento tracker přiřazen. Případně můžete spravovat všechny trackery najednou, místo jednoho po druhém.
body_assignment_menu-show_advanced_locations = Zobrazit pokročilá místa přiřazení
body_assignment_menu-manage_trackers = Spravovat všechny trackery
body_assignment_menu-unassign_tracker = Zrušit přiřazení trackeru
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = { "Který tracker přiřadit k" }
tracker_selection_menu-NONE = Který tracker chcete aby byl nezařazený?
tracker_selection_menu-HEAD = { -tracker_selection-part } hlavě?
tracker_selection_menu-NECK = Který tracker přiřadit ke krku?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } pravému rameni?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } pravýmu nadloktí?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } pravýmu podloktí?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } pravé ruce?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } pravému stehnu?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } pravému kotníku?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } pravému chodidlu?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } pravému ovladači?
tracker_selection_menu-CHEST = { -tracker_selection-part } hrudníku?
tracker_selection_menu-WAIST = { -tracker_selection-part } pasu?
tracker_selection_menu-HIP = Který tracker přiřadit ke kyčli?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } levému rameni?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } levýmu nadloktí?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } levýmu podloktí?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } levé ruce?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } levému stehnu?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } levému kotníku?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } levému chodidlu?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } levému ovladači?
tracker_selection_menu-unassigned = Nepřiřazené Trackery
tracker_selection_menu-assigned = Přiřazené Trackery
tracker_selection_menu-dont_assign = Nepřiřazovat
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Varování:</b> Příliš pevně nastavený tracker krku může být smrtelně nebezpečný,
popruh může přerušit krevní oběh v hlavě!
tracker_selection_menu-neck_warning-done = Chápu rizika
tracker_selection_menu-neck_warning-cancel = Zrušit
## Mounting menu
mounting_selection_menu = Kde chcete, aby byl tento tracker umístěn?
mounting_selection_menu-close = Zavřít
## Sidebar settings
settings-sidebar-title = Nastavení
settings-sidebar-general = Obecné
settings-sidebar-tracker_mechanics = Mechanika trackerů
settings-sidebar-fk_settings = Nastavení trackování
settings-sidebar-gesture_control = Ovládání gesty
settings-sidebar-interface = Rozhraní
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Nástroje
settings-sidebar-serial = Sériová konzole
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Trackery SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Povolit nebo zakázat určité trackery SteamVR.
Užitečné pro hry nebo aplikace, které podporují pouze určité trackery.
settings-general-steamvr-trackers-waist = Pás
settings-general-steamvr-trackers-chest = Hrudník
settings-general-steamvr-trackers-feet = Chodidla
settings-general-steamvr-trackers-knees = Kolena
settings-general-steamvr-trackers-elbows = Lokty
settings-general-steamvr-trackers-hands = Ruce
## Tracker mechanics
settings-general-tracker_mechanics = Mechanika trackerů
settings-general-tracker_mechanics-filtering = Filtrování
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Vyberte typ filtrování pro své trackery.
Predikce předpovídá pohyb, zatímco vyhlazování pohyb vyhlazuje.
settings-general-tracker_mechanics-filtering-type = Typ filtrování
settings-general-tracker_mechanics-filtering-type-none = Žádné filtrování
settings-general-tracker_mechanics-filtering-type-none-description = Použít rotaci tak, jak e. Nebude se provádět žádné filtrování.
settings-general-tracker_mechanics-filtering-type-smoothing = Vyhlazování
settings-general-tracker_mechanics-filtering-type-smoothing-description = Vyhlazuje pohyby, ale přidává určité zpoždění.
settings-general-tracker_mechanics-filtering-type-prediction = Predikce
settings-general-tracker_mechanics-filtering-type-prediction-description = Snižuje zpoždění a zrychluje pohyby, ale může zvýšit jitter.
settings-general-tracker_mechanics-filtering-amount = Množství
settings-general-tracker_mechanics-drift_compensation = Kompenzace driftu
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompenzuje vychýlení IMU použitím inverzní rotace.
Změňte velikost kompenzace a počet resetů, které jsou brány v úvahu.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Kompenzace driftu
settings-general-tracker_mechanics-drift_compensation-amount-label = Množství kompenzace
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Použít až x posledních obnovení
## FK/Tracking settings
settings-general-fk_settings = Nastavení trackování
settings-general-fk_settings-leg_tweak = Vyladění nohou
settings-general-fk_settings-leg_tweak-description = Podlahovej-clip může snížit nebo dokonce eliminovat klipování s podlahou, ale může způsobit problémy, když klečíte na kolenou. Korekce-bruslení opravuje bruslení na ledě, avšak může snížit přesnost některých pohybových vzorců.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Podlahovej clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Korekce bruslení
settings-general-fk_settings-leg_tweak-skating_correction-amount = Síla korekce bruslení
settings-general-fk_settings-arm_fk = Trackování ramen
settings-general-fk_settings-arm_fk-description = Změna způsobu sledování ramen.
settings-general-fk_settings-arm_fk-force_arms = Vynucení ramen z HMD
settings-general-fk_settings-skeleton_settings = Nastavení kostry
settings-general-fk_settings-skeleton_settings-description = Zapnutí nebo vypnutí nastavení kostry. Je doporučeno je ponechat zapnuté.
settings-general-fk_settings-skeleton_settings-extended_spine = Prodloužená páteř
settings-general-fk_settings-skeleton_settings-extended_pelvis = Prodloužená pánev
settings-general-fk_settings-skeleton_settings-extended_knees = Prodloužené koleno
settings-general-fk_settings-vive_emulation-title = Vive emulace
settings-general-fk_settings-vive_emulation-description = Napodobit problémy se sledováním pasu, které mají trackery Vive. Tohle je vtip a zhoršuje sledování.
settings-general-fk_settings-vive_emulation-label = Povolení emulace Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Ovládání gesty
settings-general-gesture_control-subtitle = Resetování na základě klepnutí
settings-general-gesture_control-description = Umožňuje spouštět resetování klepnutím na tracker. Sledovací zařízení umístěné nejvýše na vašem hrudníku slouží k Rychlému-Resetování, tracker umístěný nejvýše na levé noze se používá pro Resetování, a tracker umístěný nejvýše na pravé noze se používá pro Resetování Montáže. Je třeba zmínit, že aby bylo klepnutí zaregistrováno, klepnutí musí být provedena do 0.6 vteřin.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] { $amount } klepnutí
[few] { $amount } klepnutí
*[other] { $amount } klepnutí
}
settings-general-gesture_control-quickResetEnabled = Povolit klepnutí pro rychlý resetování
settings-general-gesture_control-quickResetDelay = Zpoždění rychlého resetu
settings-general-gesture_control-quickResetTaps = Klepnutí pro rychlý reset
settings-general-gesture_control-resetEnabled = Povolit klepnutí pro resetování
settings-general-gesture_control-resetDelay = Zpoždění resetování
settings-general-gesture_control-resetTaps = Klepnutí pro resetování
settings-general-gesture_control-mountingResetEnabled = Povolit klepnutí pro resetování montáže
settings-general-gesture_control-mountingResetDelay = Zpoždění resetování montáže
settings-general-gesture_control-mountingResetTaps = Klepnutí pro resetování montáže
## Interface settings
settings-general-interface = Rozhraní
settings-general-interface-dev_mode = Vývojářský režim
settings-general-interface-dev_mode-description = Tento režim může být užitečný, pokud potřebujete podrobné údaje nebo omunikovat s trackerama na pokročilejší úrovni.
settings-general-interface-dev_mode-label = Vývojářský režim
settings-general-interface-serial_detection = Detekce sériových zařízení
settings-general-interface-serial_detection-description = Tato možnost zobrazí pop-up pokaždé, když připojíte nové sériové zařízení, které by mohlo být trackerem. Pomáhá zlepšit proces nastavení trackeru.
settings-general-interface-serial_detection-label = Detekce sériových zařízení
settings-general-interface-lang = Zvolte jazyk
settings-general-interface-lang-description = Změňte výchozí jazyk, který chcete používat.
settings-general-interface-lang-placeholder = Zvolte jazyk, který chcete používat.
## Serial settings
settings-serial = Sériová Konzole
# This cares about multilines
settings-serial-description =
Jedná se o přímý informační kanál pro sériovou komunikaci.
Může být užitečné, pokud potřebujete zjistit, zda se firmware chová špatně.
settings-serial-connection_lost = Ztráta připojení k seriálu, Připojení se obnovuje...
settings-serial-reboot = Restartovat
settings-serial-factory_reset = Obnovení továrního nastavení
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Varování</b> Toto obnoví tovární nastavení trackeru.
To znamená, že nastavení Wi-Fi a kalibrace <b>budou ztracena!</b>
settings-serial-factory_reset-warning-ok = Vím, co dělám
settings-serial-factory_reset-warning-cancel = Zrušit
settings-serial-get_infos = Získat informace
settings-serial-serial_select = Vyberte sériový port
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
Přeposlat zprávy OSC z jiného programu.
Užitečné například pro použití jiného OSC programu s VRChat.
settings-osc-router-enable = Zapnout
settings-osc-router-enable-description = Vypnutí nebo zapnutí přeposílání zpráv.
settings-osc-router-enable-label = Zapnout
settings-osc-router-network = Síťové porty
# This cares about multilines
settings-osc-router-network-description =
Nastavení portů pro naslouchání a odesílání dat.
Tyto porty mohou být stejné jako ostatní porty používané v serveru SlimeVR.
settings-osc-router-network-port_in =
.label = Vstup portu
.placeholder = Vstup portu (výchozí: 9002)
settings-osc-router-network-port_out =
.label = Výstup z portu
.placeholder = Výstup z portu (výchozí: 9000)
settings-osc-router-network-address = Síťová adresa
settings-osc-router-network-address-description = Nastavte adresu pro odesílání dat.
settings-osc-router-network-address-placeholder = Adresa IPV4
## OSC VRChat settings
settings-osc-vrchat = Trackery VRChat OSC
# This cares about multilines
settings-osc-vrchat-description =
Úprava nastavení specifických pro VRChat pro příjem dat HMD a odesílání
data trackerů pro FBT (funguje na samostatném Questu).
settings-osc-vrchat-enable = Zapnout
settings-osc-vrchat-enable-description = Vypnutí a zapnutí odesílání a přijímání dat.
settings-osc-vrchat-enable-label = Zapnout
settings-osc-vrchat-network = Síťové porty
settings-osc-vrchat-network-description = Nastavení portů pro naslouchání a odesílání dat do VRChat.
settings-osc-vrchat-network-port_in =
.label = Vstup portu
.placeholder = Vstup portu (výchozí: 9001)
settings-osc-vrchat-network-port_out =
.label = Výstup portu
.placeholder = Výstup portu (výchozí: 9000)
settings-osc-vrchat-network-address = Síťová adresa
settings-osc-vrchat-network-address-description = Zvolte adresu, ze které se mají odesílat data na VRChat (zkontrolujte nastavení Wi-Fi v zařízení).
settings-osc-vrchat-network-address-placeholder = VRChat ip adresa
settings-osc-vrchat-network-trackers = Trackery
settings-osc-vrchat-network-trackers-description = Vypnuti a zapnutí odesílání konkrétních trackerů přes OSC.
settings-osc-vrchat-network-trackers-chest = Hrudník
settings-osc-vrchat-network-trackers-waist = Pás
settings-osc-vrchat-network-trackers-knees = Kolena
settings-osc-vrchat-network-trackers-feet = Chodidla
settings-osc-vrchat-network-trackers-elbows = Lokty
## Setup/onboarding menu
onboarding-skip = Přeskočit nastavení
onboarding-continue = Pokračovat
onboarding-wip = Probíhající práce
## Wi-Fi setup
onboarding-wifi_creds-back = Zpět na úvod
onboarding-wifi_creds = Zadání přihlašovacích údajů k Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Sledovací zařízení budou tato přihlašovací údaje používat k připojení.
Použijte prosím přihlašovací údaje, ke kterým jste aktuálně připojeni.
onboarding-wifi_creds-skip = Přeskočit nastavení Wi-Fi
onboarding-wifi_creds-submit = Odeslat!
onboarding-wifi_creds-ssid =
.label = Název Wi-Fi
.placeholder = Zadejte název Wi-Fi
onboarding-wifi_creds-password =
.label = Heslo
.placeholder = Zadejte heslo
## Mounting setup
onboarding-reset_tutorial-back = Zpět na kalibraci montáže
onboarding-reset_tutorial = Obnovit tutoriál
onboarding-reset_tutorial-description = Tato funkce není dokončena, stačí stisknout tlačítko pokračovat
## Setup start
onboarding-home = Vítejte k SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Přinášíme full-body tracking
pro každého
onboarding-home-start = Pusťme se do toho!
## Enter VR part of setup
onboarding-enter_vr-back = Zpět na přiřazení trackerů
onboarding-enter_vr-title = Čas vstoupit do VR!
onboarding-enter_vr-description = Nasaďte si všechny trackery a pak vstupte do VR!
onboarding-enter_vr-ready = Jsem připraven
## Setup done
onboarding-done-title = Vše je připraveno!
onboarding-done-description = Užijte si zážitek s full body tracking
onboarding-done-close = Zavřít průvodce
## Tracker connection setup
onboarding-connect_tracker-back = Zpět na přihlašovací údaje Wi-Fi
onboarding-connect_tracker-title = Připojení trackerů
onboarding-connect_tracker-description-p0 = A teď ta zábavná část, propojení všech trackerů!
onboarding-connect_tracker-description-p1 = Všechny zatím nepřipojené jednoduše připojte přes USB.
onboarding-connect_tracker-issue-serial = Mám potíže s připojením!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-connecting = Odesílání přihlašovacích údajů Wi-Fi
onboarding-connect_tracker-connection_status-connected = Připojeno k Wi-Fi
onboarding-connect_tracker-connection_status-error = Nelze se připojit k Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Hledání trackerů
onboarding-connect_tracker-connection_status-handshake = Připojeno k Serveru
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Žádné připojené trackery
[one] 1 připojený tracker
[few] { $amount } připojený trackery
*[other] { $amount } připojených trackerů
}
onboarding-connect_tracker-next = Připojil jsem všechny své trackery
## Tracker assignment setup
onboarding-assign_trackers-back = Zpět na přihlašovací údaje Wi-Fi
onboarding-assign_trackers-title = Přiřazení trackerů
onboarding-assign_trackers-description = Pojďme si vybrat, kam každý tracker patří. Klikněte na místo, kam chcete umístit tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[one] { $assigned } z { $trackers } trackerů přiřazených
[few] { $assigned } z { $trackers } trackerů přiřazených
*[other] { $assigned } z { $trackers } trackerů přiřazených
}
onboarding-assign_trackers-advanced = Zobrazit pokročilá místa přiřazení
onboarding-assign_trackers-next = Přiřadil jsem všechny trackery
## Tracker manual mounting setup
onboarding-manual_mounting-back = Zpět na Enter VR
onboarding-manual_mounting = Manuální montáž
onboarding-manual_mounting-description = Klikněte na každý tracker a vyberte, jakým způsobem jsou namontovány
onboarding-manual_mounting-auto_mounting = Automatická montáž
onboarding-manual_mounting-next = Další krok
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Zpět na Enter VR
onboarding-automatic_mounting-title = Montážní kalibrace
onboarding-automatic_mounting-description = Aby trackery SlimeVR fungovaly, je třeba jim přiřadit montážní rotaci, aby se vyrovnaly s fyzickou montáží trackeru.
onboarding-automatic_mounting-manual_mounting = Manuální nastavení montáže
onboarding-automatic_mounting-next = Další krok
onboarding-automatic_mounting-prev_step = Předchozí krok
onboarding-automatic_mounting-done-title = Otáčení montáže je kalibrováno.
onboarding-automatic_mounting-done-description = Kalibrace montáže je dokončena!
onboarding-automatic_mounting-done-restart = Návrat na začátek
onboarding-automatic_mounting-mounting_reset-title = Reset montáže
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Dřepněte si do pozice jak na lyžích s pokrčenýma nohama, horní částí těla nakloněnou dopředu a s pokrčenýma rameny.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Stiskněte tlačítko "Resetování montáže" a počkejte 3 sekundy, než se rotace montáže trackerů resetují.
onboarding-automatic_mounting-preparation-title = Příprava
onboarding-automatic_mounting-preparation-step-0 = 1. Postavte se vzpřímeně s rukama na bocích.
onboarding-automatic_mounting-preparation-step-1 = 2. Stiskněte tlačítko "Reset" a počkejte 3 sekundy, než se trackery resetují.
onboarding-automatic_mounting-put_trackers_on-title = Nasaďte si trackery
onboarding-automatic_mounting-put_trackers_on-description = Pro kalibraci rotace montáže použijeme právě přiřazené trackery. Nasaďte všechny trackery, na obrázku vpravo vidíte, které jsou které.
onboarding-automatic_mounting-put_trackers_on-next = Mám nasazené všechny trackery
## Tracker manual proportions setup
onboarding-manual_proportions-back = Zpět na Reset tutoriál
onboarding-manual_proportions-title = Manuální proporce těla
onboarding-manual_proportions-precision = Přesná úprava
onboarding-manual_proportions-auto = Automatická kalibrace
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Zpět na Reset tutoriál
onboarding-automatic_proportions-title = Změřte své tělo
onboarding-automatic_proportions-description = Aby trackery SlimeVR fungovaly, potřebujeme znát délku vašich kostí. Tato krátká kalibrace vám to změří.
onboarding-automatic_proportions-manual = Manuální kalibrace
onboarding-automatic_proportions-prev_step = Předchozí krok
onboarding-automatic_proportions-put_trackers_on-title = Nasaďte si trackery
onboarding-automatic_proportions-put_trackers_on-description = Pro kalibraci proporcí použijeme trackery, které jste právě přiřadili. Nasaďte si trackery, na obrázku vpravo vidíte, která jsou která.
onboarding-automatic_proportions-put_trackers_on-next = Mám nasazené všechny trackery
onboarding-automatic_proportions-preparation-title = Příprava
onboarding-automatic_proportions-preparation-description = Umístěte židli přímo za sebe do herního prostoru. Buďte připraveni se během nastavení autobonu posadit.
onboarding-automatic_proportions-preparation-next = Jsem před židlí
onboarding-automatic_proportions-start_recording-title = Připravte se hýbat
onboarding-automatic_proportions-start_recording-description = Nyní budeme nahrávat některé konkrétní pózy a pohyby. Tyto se zobrazí na další obrazovce. Po stisknutí tlačítka buďte připraveni začít!
onboarding-automatic_proportions-start_recording-next = Spustit nahrávání
onboarding-automatic_proportions-recording-title = ZÁZN
onboarding-automatic_proportions-recording-description-p0 = Probíhá nahrávání...
onboarding-automatic_proportions-recording-description-p1 = Proveďte níže uvedené pohyby:
onboarding-automatic_proportions-recording-steps-0 = Párkrát ohněte kolena.
onboarding-automatic_proportions-recording-steps-1 = Posaďte se na židli a pak se postavte.
onboarding-automatic_proportions-recording-steps-2 = Natočte horní část těla doleva a pak se ohněte doprava.
onboarding-automatic_proportions-recording-steps-3 = Natočte horní část těla doprava a pak se ohněte doleva.
onboarding-automatic_proportions-recording-steps-4 = Hýbejte se, dokud časovač neskončí.
onboarding-automatic_proportions-recording-processing = Zpracování výsledku
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] Zbývá 1 sekunda
[few] Zbývají { $time } sekundy
*[other] Zbývá { $time } sekund
}
onboarding-automatic_proportions-verify_results-title = Ověření výsledků
onboarding-automatic_proportions-verify_results-description = Zkontrolujte výsledky níže, vypadají správně?
onboarding-automatic_proportions-verify_results-results = Zaznamenávání výsledků
onboarding-automatic_proportions-verify_results-processing = Zpracování výsledku
onboarding-automatic_proportions-verify_results-redo = Znovu provést záznam
onboarding-automatic_proportions-verify_results-confirm = Jsou správné
onboarding-automatic_proportions-done-title = Tělo změřeno a uloženo.
onboarding-automatic_proportions-done-description = Kalibrace proporcí vašeho těla je dokončena!
## Home
home-no_trackers = Nebyly zjištěny ani přiřazeny žádné trackery

View File

@@ -0,0 +1,616 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Verbindung zum Server wird hergestellt...
websocket-connection_lost = Verbindung zum Server verloren. Versuche Verbindung wiederherzustellen ...
## Tips
tips-find_tracker = Sie sind sich nicht sicher, welcher Tracker welcher ist? Schütteln Sie einen Tracker, um den zugehörigen Eintrag hervorzuheben.
tips-do_not_move_heels = Stellen Sie sicher, dass Sie Ihre Fersen während der Aufnahme nicht bewegen!
## Body parts
body_part-NONE = Nicht zugewiesen
body_part-HEAD = Kopf
body_part-NECK = Hals
body_part-RIGHT_SHOULDER = Rechte Schulter
body_part-RIGHT_UPPER_ARM = Rechter Oberarm
body_part-RIGHT_LOWER_ARM = Rechter Unterarm
body_part-RIGHT_HAND = Rechte Hand
body_part-RIGHT_UPPER_LEG = Rechter Oberschenkel
body_part-RIGHT_LOWER_LEG = Rechter Unterschenkel
body_part-RIGHT_FOOT = Rechter Fuß
body_part-RIGHT_CONTROLLER = Rechter Controller
body_part-CHEST = Brust
body_part-WAIST = Taille
body_part-HIP = Hüfte
body_part-LEFT_SHOULDER = Linke Schulter
body_part-LEFT_UPPER_ARM = Linker Oberarm
body_part-LEFT_LOWER_ARM = Linker Unterarm
body_part-LEFT_HAND = Linke Hand
body_part-LEFT_UPPER_LEG = Linker Oberschenkel
body_part-LEFT_LOWER_LEG = Linker Unterschenkel
body_part-LEFT_FOOT = Linker Fuß
body_part-LEFT_CONTROLLER = Linker Controller
## Proportions
skeleton_bone-NONE = Keine
skeleton_bone-HEAD = Kopfverschiebung
skeleton_bone-NECK = Halslänge
skeleton_bone-CHEST = Brustabstand
skeleton_bone-CHEST_OFFSET = Brustversatz
skeleton_bone-WAIST = Taillenabstand
skeleton_bone-HIP = Hüftlänge
skeleton_bone-HIP_OFFSET = Hüftversatz
skeleton_bone-HIPS_WIDTH = Hüftbreite
skeleton_bone-UPPER_LEG = Linker Oberschenkellänge
skeleton_bone-LOWER_LEG = Linker Unterschenkellänge
skeleton_bone-FOOT_LENGTH = Fußlänge
skeleton_bone-FOOT_SHIFT = Fußverschiebung
skeleton_bone-SKELETON_OFFSET = Skelettversatz
skeleton_bone-SHOULDERS_DISTANCE = Schulterentfernung
skeleton_bone-SHOULDERS_WIDTH = Schulterbreite
skeleton_bone-UPPER_ARM = Oberarmlänge
skeleton_bone-LOWER_ARM = Unterarmlänge
skeleton_bone-CONTROLLER_Y = Controller Abstand Y
skeleton_bone-CONTROLLER_Z = Controller Abstand Z
skeleton_bone-ELBOW_OFFSET = Ellbogenversatz
## Tracker reset buttons
reset-reset_all = Alle Proportionen zurücksetzen
reset-full = Reset
reset-mounting = Befestigungs-Reset
reset-quick = Schneller Reset
## Serial detection stuff
serial_detection-new_device-p0 = Neues serielles Gerät erkannt!
serial_detection-new_device-p1 = Geben Sie Ihre WLAN-Zugangsdaten ein!
serial_detection-new_device-p2 = Bitte wählen Sie, was Sie damit machen möchten
serial_detection-open_wifi = Mit WLAN verbinden
serial_detection-open_serial = Serielle Konsole öffnen
serial_detection-submit = Absenden!
serial_detection-close = Schließen
## Navigation bar
navbar-home = Start
navbar-body_proportions = Körpermaße
navbar-trackers_assign = Tracker-Zuordnung
navbar-mounting = Tracker-Ausrichtung
navbar-onboarding = Einrichtungs-Assistent
navbar-settings = Einstellungen
## Bounding volume hierarchy recording
bvh-start_recording = BVH aufnehmen
bvh-recording = Aufnahme läuft...
## Widget: Overlay settings
widget-overlay = Visualisierung
widget-overlay-is_visible_label = Visualisierung in SteamVR anzeigen
widget-overlay-is_mirrored_label = Visualisierung spiegeln
## Widget: Drift compensation
widget-drift_compensation-clear = Driftkompensation zurücksetzen
## Widget: Developer settings
widget-developer_mode = Entwicklermodus
widget-developer_mode-high_contrast = Hoher Kontrast
widget-developer_mode-precise_rotation = Präzise Drehung
widget-developer_mode-fast_data_feed = Schnelleres Update-Intervall
widget-developer_mode-filter_slimes_and_hmd = Slime-Tracker und HMD filtern
widget-developer_mode-sort_by_name = Nach Namen sortieren
widget-developer_mode-raw_slime_rotation = Rohe Drehung
widget-developer_mode-more_info = Mehr Infos
## Widget: IMU Visualizer
widget-imu_visualizer = Drehung
widget-imu_visualizer-rotation_raw = Rohe Drehung
widget-imu_visualizer-rotation_preview = Vorschau
## Tracker status
tracker-status-none = Kein Status
tracker-status-busy = Beschäftigt
tracker-status-error = Fehler
tracker-status-disconnected = Getrennt
tracker-status-occluded = Verdeckt
tracker-status-ok = Verbunden
## Tracker status columns
tracker-table-column-name = Name
tracker-table-column-type = Typ
tracker-table-column-battery = Batterie
tracker-table-column-ping = Latenz
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Beschleunigung X/Y/Z
tracker-table-column-rotation = Rotation X/Y/Z
tracker-table-column-position = Position X/Y/Z
tracker-table-column-url = Adresse
## Tracker rotation
tracker-rotation-front = Vorne
tracker-rotation-left = Links
tracker-rotation-right = Rechts
tracker-rotation-back = Hinten
## Tracker information
tracker-infos-manufacturer = Hersteller
tracker-infos-display_name = Anzeigename
tracker-infos-custom_name = Benutzerdefinierter Name
tracker-infos-url = Tracker-Adresse
## Tracker settings
tracker-settings-back = Zurück zur Tracker-Liste
tracker-settings-title = Tracker-Einstellungen
tracker-settings-assignment_section = Zuweisung
tracker-settings-assignment_section-description = Welcher Körperteil dem Tracker zugewiesen ist.
tracker-settings-assignment_section-edit = Zuweisung bearbeiten
tracker-settings-mounting_section = Befestigungsposition
tracker-settings-mounting_section-description = Wo ist der Tracker befestigt?
tracker-settings-mounting_section-edit = Befestigung bearbeiten
tracker-settings-drift_compensation_section = Drift-Kompensierung
tracker-settings-drift_compensation_section-description = Soll dieser Tracker Drift kompensieren, wenn die Drift-Kompensierung allgemein aktiviert ist?
tracker-settings-drift_compensation_section-edit = Erlaube Drift Kompensierung
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Trackername
tracker-settings-name_section-description = Geben Sie ihm einen süßen Spitznamen :)
tracker-settings-name_section-placeholder = NightyBeast's linkes Bein
## Tracker part card info
tracker-part_card-no_name = Kein Name
tracker-part_card-unassigned = Nicht zugewiesen
## Body assignment menu
body_assignment_menu = Wo tragen Sie diesen Tracker?
body_assignment_menu-description = Wählen Sie die Position aus, an dem Sie diesen Tracker befestigt haben. Alternativ können Sie auch alle Tracker auf einmal verwalten statt einzeln.
body_assignment_menu-show_advanced_locations = Zeige erweiterte Tracker-Positionen
body_assignment_menu-manage_trackers = Verwalte alle Tracker
body_assignment_menu-unassign_tracker = Zuweisung des Trackers aufheben
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Welcher Tracker soll
tracker_selection_menu-NONE = Welchen Tracker möchten Sie zuweisen?
tracker_selection_menu-HEAD = { -tracker_selection-part } dem Kopf zugewiesen werden?
tracker_selection_menu-NECK = { -tracker_selection-part } dem Nacken zugewiesen werden?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } der rechten Schulter zugewiesen werden?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } dem rechten Oberarm zugewiesen werden?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } dem rechten Unterarm zugewiesen werden?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } der rechten Hand zugewiesen werden?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } dem rechten Oberschenkel zugewiesen werden?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } dem rechten Unterschenkel zugewiesen werden?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } dem rechten Fuß zugewiesen werden?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } dem rechten Controller zugewiesen werden?
tracker_selection_menu-CHEST = { -tracker_selection-part } der Brust zugewiesen werden?
tracker_selection_menu-WAIST = { -tracker_selection-part } der Taille zugewiesen werden?
tracker_selection_menu-HIP = { -tracker_selection-part } der Hüfte zugewiesen werden?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } der linken Schulter zugewiesen werden?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } dem linken Oberarm zugewiesen werden?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } dem linken Unterarm zugewiesen werden?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } der linken Hand zugewiesen werden?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } dem linken Oberschenkel zugewiesen werden?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } dem linken Unterschenkel zugewiesen werden?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } dem Linken Fuß zugewiesen zugewiesen werden?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } dem linken Controller zugewiesen werden?
tracker_selection_menu-unassigned = Nicht zugewiesene Tracker
tracker_selection_menu-assigned = Zugewiesene Tracker
tracker_selection_menu-dont_assign = Nicht zuweisen
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Warnung:</b> Ein Hals-Tracker kann tödlich sein, wenn dieser zu fest angezogen ist.
Der Riemen kann die Blutzirkulation zu Ihrem Kopf unterbrechen!
tracker_selection_menu-neck_warning-done = Ich verstehe die Risiken
tracker_selection_menu-neck_warning-cancel = Abbruch
## Mounting menu
mounting_selection_menu = Wo möchten Sie diesen Tracker platzieren?
mounting_selection_menu-close = Schließen
## Sidebar settings
settings-sidebar-title = Einstellungen
settings-sidebar-general = Allgemein
settings-sidebar-tracker_mechanics = Tracker-Mechanik
settings-sidebar-fk_settings = FK-Einstellungen
settings-sidebar-gesture_control = Gestensteuerung
settings-sidebar-interface = Bedienoberfläche
settings-sidebar-osc_router = OSC-Router
settings-sidebar-utils = Werkzeuge
settings-sidebar-serial = Serielle Konsole
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR-Tracker
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Aktivieren oder deaktivieren Sie bestimmte SteamVR-Tracker.
Nützlich für Spiele oder Apps, die nur bestimmte Tracker unterstützen.
settings-general-steamvr-trackers-waist = Taille
settings-general-steamvr-trackers-chest = Brust
settings-general-steamvr-trackers-feet = Füße
settings-general-steamvr-trackers-knees = Knie
settings-general-steamvr-trackers-elbows = Ellbogen
settings-general-steamvr-trackers-hands = Hände
## Tracker mechanics
settings-general-tracker_mechanics = Tracker-Verhalten
settings-general-tracker_mechanics-filtering = Filtern
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Wählen Sie den Filter-Typ für Ihre Tracker aus.
Vorhersage: prognostiziert Bewegung. Glättung: Bewegung werden geglättet.
settings-general-tracker_mechanics-filtering-type = Filter-Typ
settings-general-tracker_mechanics-filtering-type-none = Kein Filter
settings-general-tracker_mechanics-filtering-type-none-description = Verwendet die unveränderten Rotationsdaten der Tracker.
settings-general-tracker_mechanics-filtering-type-smoothing = Glättung
settings-general-tracker_mechanics-filtering-type-smoothing-description = Glättet Bewegungen, fügt aber etwas Verzögerung hinzu.
settings-general-tracker_mechanics-filtering-type-prediction = Vorhersage
settings-general-tracker_mechanics-filtering-type-prediction-description = Verringert die Latenz und macht die Bewegungen schneller, kann aber Zittern erhöhen.
settings-general-tracker_mechanics-filtering-amount = Stärke
settings-general-tracker_mechanics-drift_compensation = Drift-Kompensierung
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompensiert IMU Drift auf der Gier-Achse durch Anwenden einer invertierten Rotation.
Ändern Sie die Menge der Kompensierung und die Anzahl der Resets, welche für die Berechnung genutzt werden.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift-Kompensierung
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensierungsmenge
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Nutze die letzten x Resets
## FK/Tracking settings
settings-general-fk_settings = FK-Einstellungen
settings-general-fk_settings-leg_tweak = Beinoptimierungen
settings-general-fk_settings-leg_tweak-description = Bodenclip kann das einsinken in den Boden reduzieren oder sogar beseitigen, kann aber beim Knien Probleme verursachen. Die Rutsch-Korrektur verringert das Rutschen auf dem Boden, kann aber bei bestimmten Bewegungsmustern die Genauigkeit verringern.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Bodenclip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Rutschkorrektur
settings-general-fk_settings-leg_tweak-skating_correction-amount = Rutschkorrekturstärke
settings-general-fk_settings-arm_fk = Arm-Tracking
settings-general-fk_settings-arm_fk-description = Ändern Sie die Art und Weise, wie die Arme berechnet werden.
settings-general-fk_settings-arm_fk-force_arms = Arme vom VR-Headset erzwingen
settings-general-fk_settings-skeleton_settings = Skeletteinstellungen
settings-general-fk_settings-skeleton_settings-description = Schalten Sie Skeletteinstellungen ein oder aus. Es wird empfohlen, diese eingeschaltet zu lassen.
settings-general-fk_settings-skeleton_settings-extended_spine = Erweiterte Wirbelsäule
settings-general-fk_settings-skeleton_settings-extended_pelvis = Erweiterter Beckenbereich
settings-general-fk_settings-skeleton_settings-extended_knees = Erweiterte Knie
settings-general-fk_settings-vive_emulation-title = Vive-Simulierung
settings-general-fk_settings-vive_emulation-description = Simuliere die Tracking-Probleme, welche bei Vive-Trackern auftreten. Dies ist ein Scherz und verschlechtert das Tracking.
settings-general-fk_settings-vive_emulation-label = Vive-Simulierung
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Gestensteuerung
settings-general-gesture_control-subtitle = Reset durch Antippen
settings-general-gesture_control-description = Erlaubt Reset durch das Antippen eines Trackers auszulösen. Der höchste Tracker auf dem Oberkörper wird für schnelle Resets genutzt, der höchste Tracker auf dem linken Bein wird für Reset genutzt und der höchste Tracker auf dem rechten Bein wird für Befestigungs-Reset genutzt. Das Antippen muss innerhalb von 0.5 Sekunden erfolgen, um erkannt zu werden.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1-mal antippen
*[other] { $amount }-mal antippen
}
settings-general-gesture_control-quickResetEnabled = Antippen für schnellen Reset
settings-general-gesture_control-quickResetDelay = Verzögerung für schnellen Reset
settings-general-gesture_control-quickResetTaps = Anzahl für schnellen Reset
settings-general-gesture_control-resetEnabled = Antippen für Reset
settings-general-gesture_control-resetDelay = Reset-Verzögerung
settings-general-gesture_control-resetTaps = Anzahl für Reset
settings-general-gesture_control-mountingResetEnabled = Antippen für Befestigungs-Reset
settings-general-gesture_control-mountingResetDelay = Befestigungs-Reset-Verzügerung
settings-general-gesture_control-mountingResetTaps = Anzahl für Befestigungs-Reset
## Interface settings
settings-general-interface = Bedienoberfläche
settings-general-interface-dev_mode = Entwicklermodus
settings-general-interface-dev_mode-description = Der Entwicklermodus stellt mehr Daten dar und erlaubt auch erweiterte Einstellungen, so wie erweiterte Optionen bei verbundenen Trackern.
settings-general-interface-dev_mode-label = Entwicklermodus
settings-general-interface-serial_detection = Serielle Geräteerkennung
settings-general-interface-serial_detection-description = Diese Option zeigt jedes Mal ein Pop-up-Fenster an, wenn ein neues serielles Gerät angeschlossen wird, das ein Tracker sein könnte. Dies hilft beim Einrichtungsprozess des Trackers
settings-general-interface-serial_detection-label = Serielle Geräteerkennung
settings-general-interface-lang = Sprachauswahl
settings-general-interface-lang-description = Ändern Sie die Standard-Sprache, die Sie verwenden möchten
settings-general-interface-lang-placeholder = Wählen Sie die zu verwendende Sprache aus
## Serial settings
settings-serial = Serielle Konsole
# This cares about multilines
settings-serial-description =
Dies ist ein Live-Ansicht der seriellen Kommunikation.
Diese ist zur Unterstützung bei der Problemsuche mit Trackern.
settings-serial-connection_lost = Verbindung zur seriellen Schnittstelle verloren, Verbindung wird wiederhergestellt...
settings-serial-reboot = Neustart
settings-serial-factory_reset = Werkseinstellungen zurücksetzen
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Warnung:</b> Dadurch wird der Tracker auf die Werkseinstellungen zurückgesetzt.
Das bedeutet, dass Wi-Fi- und Kalibrierungseinstellungen <b>verloren gehen!</b>
settings-serial-factory_reset-warning-ok = Ich weiß, was ich tue
settings-serial-factory_reset-warning-cancel = Abbruch
settings-serial-get_infos = Informationen abrufen
settings-serial-serial_select = Wählen Sie einen seriellen Anschluss
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC Router
# This cares about multilines
settings-osc-router-description =
Senden von OSC Daten an ein andere Programm.
Nützlich wenn z.B. ein anderes OSC Programm zusammen mit VRChat verwendet wird.
settings-osc-router-enable = Aktivieren
settings-osc-router-enable-description = Ein- und Ausschalten des Sendens und Empfangen von Daten
settings-osc-router-enable-label = Aktivieren
settings-osc-router-network = Netzwerk-Ports
# This cares about multilines
settings-osc-router-network-description =
Setzte die Ports zum Empfangen und Versenden von Daten.
Diese können die selben Ports sein, welche vom SlimeVR Server verwendet werden.
settings-osc-router-network-port_in =
.label = Eingangsport
.placeholder = Eingangsport (Standard: 9002)
settings-osc-router-network-port_out =
.label = Ausgangsport
.placeholder = Ausgangsport (Standard: 9000)
settings-osc-router-network-address = Netzwerk-Adresse
settings-osc-router-network-address-description = Setze die Adresse, welche zum versenden von Daten genutzt wird.
settings-osc-router-network-address-placeholder = IPv4 Adresse
## OSC VRChat settings
settings-osc-vrchat = VRChat-OSC-Trackers
# This cares about multilines
settings-osc-vrchat-description = Ändern Sie VRChat-spezifische Einstellungen, um Headset- und Tracker-Daten für FBT zu empfangen und zu senden (funktioniert auch im Standalone-Modus auf der Meta Quest).
settings-osc-vrchat-enable = Aktivieren
settings-osc-vrchat-enable-description = Ein- und Ausschalten des Sendens und Empfangen von Daten
settings-osc-vrchat-enable-label = Aktivieren
settings-osc-vrchat-network = Netzwerk-Ports
settings-osc-vrchat-network-description = Festlegen der Ports zum Empfangen und Senden von Daten an VRChat
settings-osc-vrchat-network-port_in =
.label = Eingangsport
.placeholder = Eingangsport (Standard: 9001)
settings-osc-vrchat-network-port_out =
.label = Ausgangsport
.placeholder = Ausgangsport (Standard: 9000)
settings-osc-vrchat-network-address = Netzwerkadresse
settings-osc-vrchat-network-address-description = Wählen Sie, an welche Adresse die Daten an VRChat gesendet werden sollen (überprüfen Sie Ihre WLAN-Einstellungen auf Ihrem Gerät)
settings-osc-vrchat-network-address-placeholder = VRChat-IP-Adresse
settings-osc-vrchat-network-trackers = Tracker
settings-osc-vrchat-network-trackers-description = Ein- und Ausschalten des Sendens und Empfangens von Daten
settings-osc-vrchat-network-trackers-chest = Brust
settings-osc-vrchat-network-trackers-waist = Taille
settings-osc-vrchat-network-trackers-knees = Knie
settings-osc-vrchat-network-trackers-feet = Füße
settings-osc-vrchat-network-trackers-elbows = Ellbogen
## Setup/onboarding menu
onboarding-skip = Einrichtung überspringen
onboarding-continue = Fortsetzen
onboarding-wip = Noch in Bearbeitung
## Wi-Fi setup
onboarding-wifi_creds-back = Zurück zur Einführung
onboarding-wifi_creds = WLAN-Zugangsdaten eingeben
# This cares about multilines
onboarding-wifi_creds-description =
Die Tracker nutzen diese Zugangsdaten, um sich mit dem WLAN zu verbinden.
Bitte verwenden Sie die Zugangsdaten, mit denen ihr PC gerade verbunden sind.
Dieses WLAN-Netzwerk muss ein 2.4 GHz-Netzwerk sein.
onboarding-wifi_creds-skip = WLAN-Zugangsdaten überspringen
onboarding-wifi_creds-submit = Weiter!
onboarding-wifi_creds-ssid =
.label = WLAN-Name
.placeholder = WLAN-Name eingeben
onboarding-wifi_creds-password =
.label = Passwort
.placeholder = Passwort eingeben
## Mounting setup
onboarding-reset_tutorial-back = Zurück zur Trackerausrichtung
onboarding-reset_tutorial = Tutorial neustarten
onboarding-reset_tutorial-description = Diese Funktion ist noch nicht fertig, drücken Sie einfach auf Fortsetzen
## Setup start
onboarding-home = Willkommen zu SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
VR-Fullbody Tracking
für alle
onboarding-home-start = Los gehts!
## Enter VR part of setup
onboarding-enter_vr-back = Zurück zur Trackerzuweisung
onboarding-enter_vr-title = Zeit für VR!
onboarding-enter_vr-description = Ziehen Sie alle Tracker an und betreten Sie dann VR!
onboarding-enter_vr-ready = Ich bin bereit!
## Setup done
onboarding-done-title = Alles eingerichtet!
onboarding-done-description = Genießen Sie die Fullbody-Erfahrung
onboarding-done-close = Einrichtung schließen
## Tracker connection setup
onboarding-connect_tracker-back = Zurück zu WLAN-Zugangsdaten
onboarding-connect_tracker-title = Verbinde Tracker
onboarding-connect_tracker-description-p0 = Nun zum unterhaltsamen Teil, verbinde alle Tracker!
onboarding-connect_tracker-description-p1 = Verbinden Sie einfach alle Tracker, die noch nicht verbunden sind, über einen USB-Anschluss.
onboarding-connect_tracker-issue-serial = Ich habe Schwierigkeiten die Tracker zu verbinden!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Suche nach Trackern
onboarding-connect_tracker-connection_status-serial_init = Verbindung zum seriellen Gerät wird hergestellt
onboarding-connect_tracker-connection_status-provisioning = Sende WLAN-Zugangsdaten
onboarding-connect_tracker-connection_status-connecting = Sende WLAN-Zugangsdaten
onboarding-connect_tracker-connection_status-looking_for_server = Suche nach Server
onboarding-connect_tracker-connection_status-connection_error = Es kann keine WLAN-Verbindung hergestellt werden
onboarding-connect_tracker-connection_status-could_not_find_server = Server konnte nicht gefunden werden
onboarding-connect_tracker-connection_status-done = Verbindung zum Server hergestellt.
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Kein Tracker
[one] 1 Tracker
*[other] { $amount } Tracker
} verbunden
onboarding-connect_tracker-next = Ich habe alle meine Tracker verbunden.
## Tracker assignment setup
onboarding-assign_trackers-back = Zurück zu den WLAN-Zugangsdaten
onboarding-assign_trackers-title = Tracker zuweisen
onboarding-assign_trackers-description = Wählen Sie nun aus, welcher Tracker wo befestigt ist. Klicken Sie auf einen Ort, an dem der Tracker platziert ist.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } von { $trackers ->
[one] 1 Tracker
*[other] { $trackers } Tracker
} zugewiesen
onboarding-assign_trackers-advanced = Erweiterte Zuweisungspositionen anzeigen
onboarding-assign_trackers-next = Ich habe alle Tracker zugewiesen
## Tracker assignment warnings
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Taille ist zugewiesen, aber die Brust muss ebenfalls zugewiesen werden!
*[unknown] Taille ist zugewiesen, aber "Unbekanntes nicht zugewiesenes Körperteil" muss ebenfalls zugewiesen werden!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Zurück zum Eintritt in VR
onboarding-manual_mounting = Manuelle Definition der Befestigungsposition
onboarding-manual_mounting-description = Klicken Sie auf jeden Tracker und wählen Sie aus, in welche Richtung diese montiert sind
onboarding-manual_mounting-auto_mounting = Drehung automatisch ermitteln
onboarding-manual_mounting-next = Nächster Schritt
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Zurück zum Eintritt in VR
onboarding-automatic_mounting-title = Kalibrierung der Tracker-Befestigung/Rotation
onboarding-automatic_mounting-description = Damit die SlimeVR-Tracker korrekt funktionieren, müssen wir ihnen eine Drehung zuweisen, welche der Drehung entspricht wie diese befestigt sind.
onboarding-automatic_mounting-manual_mounting = Drehung manuell einstellen
onboarding-automatic_mounting-next = Nächster Schritt
onboarding-automatic_mounting-prev_step = Vorheriger Schritt
onboarding-automatic_mounting-done-title = Tracker Rotation kalibriert.
onboarding-automatic_mounting-done-description = Ihre Rotations-Kalibrierung ist abgeschlossen!
onboarding-automatic_mounting-done-restart = Zurück zum Start
onboarding-automatic_mounting-mounting_reset-title = Drehungs-Reset
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Beugen Sie sich in die "Skifahren"-Pose mit gebeugten Beinen, geneigtem Oberkörper und gebeugten Armen.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Drücken Sie die Schaltfläche "Befestigungs-Reset" und warten Sie 3 Sekunden, bevor die Drehungen der Tracker gesetzt werden.
onboarding-automatic_mounting-preparation-title = Vorbereitung
onboarding-automatic_mounting-preparation-step-0 = 1. Stehen Sie aufrecht mit Ihren Armen an den Seiten.
onboarding-automatic_mounting-preparation-step-1 = 2. Drücken Sie die Schaltfläche "Reset" und warten Sie 3 Sekunden, bevor die Tracker zurückgesetzt werden.
onboarding-automatic_mounting-put_trackers_on-title = Legen Sie Ihre Tracker an
onboarding-automatic_mounting-put_trackers_on-description = Um die Drehung der Tracker zu kalibrieren, werden die Tracker verwendet, welche Sie gerade zugewiesen haben. Ziehen Sie alle Ihre Tracker an, in der Abbildung rechts können sie sehen um welchen Tracker es sich handelt.
onboarding-automatic_mounting-put_trackers_on-next = Ich habe alle meine Tracker angelegt
## Tracker manual proportions setup
onboarding-manual_proportions-back = Gehen Sie zurück zum Reset-Tutorial
onboarding-manual_proportions-title = Manuelle Körperproportionen
onboarding-manual_proportions-precision = Feinanpassung
onboarding-manual_proportions-auto = Automatische Kalibrierung
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Gehen Sie zurück zum Reset-Tutorial
onboarding-automatic_proportions-title = Messen Sie Ihre Proportionen
onboarding-automatic_proportions-description = Damit die SlimeVR-Tracker funktionieren, müssen wir Ihre Proportionen kennen. Diese kurze Kalibrierung wird sie für Sie messen.
onboarding-automatic_proportions-manual = Manuelle Kalibrierung
onboarding-automatic_proportions-prev_step = Vorheriger Schritt
onboarding-automatic_proportions-put_trackers_on-title = Legen Sie Ihre Tracker an
onboarding-automatic_proportions-put_trackers_on-description = Um Ihre Proportionen zu kalibrieren, werden wir die Tracker verwenden, die Sie gerade zugewiesen haben. Legen Sie alle Ihre Tracker an. Sie können rechts in der Abbildung sehen, welche welche sind.
onboarding-automatic_proportions-put_trackers_on-next = Ich habe alle meine Tracker angelegt
onboarding-automatic_proportions-preparation-title = Vorbereitung
onboarding-automatic_proportions-preparation-description = Stellen Sie ein Stuhl hinter sich in Ihrem Spielbereich auf. Seien Sie bereit, sich während der Autobone-Einrichtung hinzusetzen.
onboarding-automatic_proportions-preparation-next = Ich stehe vor dem Stuhl
onboarding-automatic_proportions-start_recording-title = Bereiten Sie sich auf ein paar Bewegungen vor
onboarding-automatic_proportions-start_recording-description = Wir werden nun einige bestimmte Posen und Bewegungen aufnehmen. Diese werden im nächsten Bildschirm angezeigt. Bereiten Sie sicht darauf vor, wenn Sie den Knopf drücken!
onboarding-automatic_proportions-start_recording-next = Aufnahme starten
onboarding-automatic_proportions-recording-title = Aufnahme
onboarding-automatic_proportions-recording-description-p0 = Aufnahme läuft...
onboarding-automatic_proportions-recording-description-p1 = Machen Sie die unten beschriebenen Bewegungen:
onboarding-automatic_proportions-recording-steps-0 = Gehen Sie ein paarmal in die Knie, ohne Ihre Füße zu bewegen.
onboarding-automatic_proportions-recording-steps-1 = Bitte setzen Sie sich auf den Stuhl und stehen Sie wieder auf.
onboarding-automatic_proportions-recording-steps-2 = Drehen Sie den Oberkörper nach links, dann beugen Sie sich nach rechts.
onboarding-automatic_proportions-recording-steps-3 = Drehen Sie den Oberkörper nach rechts, dann beugen Sie sich nach links.
onboarding-automatic_proportions-recording-steps-4 = Bewegen Sie sich, bis die Zeit abgelaufen ist.
onboarding-automatic_proportions-recording-processing = Aufnahme wird verarbeitet...
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 Sekunde verbleibend
*[other] { $time } Sekunden verbleibend
}
onboarding-automatic_proportions-verify_results-title = Ergebnisse überprüfen
onboarding-automatic_proportions-verify_results-description = Sehen die untenstehenden Ergebnisse korrekt aus?
onboarding-automatic_proportions-verify_results-results = Aufnahme-Ergebnisse
onboarding-automatic_proportions-verify_results-processing = Ergebnis wird bearbeitet
onboarding-automatic_proportions-verify_results-redo = Aufnahme wiederholen
onboarding-automatic_proportions-verify_results-confirm = Ergebnisse sind korrekt
onboarding-automatic_proportions-done-title = Körper gemessen und gespeichert.
onboarding-automatic_proportions-done-description = Ihre Körperproportionen-Kalibrierung ist abgeschlossen!
## Home
home-no_trackers = Keine Tracker erkannt oder zugewiesen

View File

@@ -0,0 +1,674 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = connyecting to teh sewvew
websocket-connection_lost = oopsie woopsie~ connyection wost to teh sewvew ;m;... uwu am twying to weconnyect owo!
## Tips
tips-find_tracker = nawt suwe whicsh twayckyaw is whicsh? shayke a twackaw and it will hyighwight the cowowesponding iytem.
tips-do_not_move_heels = ensuwe yoowr pawsies do nawt mowve duwing wecowding! ^w^
## Body parts
body_part-NONE = unassyigned
body_part-HEAD = hed
body_part-NECK = nyecky wecky
body_part-RIGHT_SHOULDER = wight shouwder~
body_part-RIGHT_UPPER_ARM = wight uppew awm
body_part-RIGHT_LOWER_ARM = wight wowwe awm
body_part-RIGHT_HAND = wight pawb
body_part-RIGHT_UPPER_LEG = wight uppew weg
body_part-RIGHT_LOWER_LEG = wight wowwe weg
body_part-RIGHT_FOOT = wight pawb
body_part-CHEST = chwest
body_part-WAIST = wyayst
body_part-HIP = hyip
body_part-LEFT_SHOULDER = weft shouwder~
body_part-LEFT_UPPER_ARM = weft uppew awm
body_part-LEFT_LOWER_ARM = weft wowwe awm
body_part-LEFT_HAND = weft pawb
body_part-LEFT_UPPER_LEG = weft uppew weg
body_part-LEFT_LOWER_LEG = weft wowwe weg
body_part-LEFT_FOOT = weft pawb
## Proportions
skeleton_bone-NONE = none
skeleton_bone-HEAD = hed shyft
skeleton_bone-NECK = nyeck wength
skeleton_bone-CHEST = chwest wength
skeleton_bone-CHEST_OFFSET = chwest awfset
skeleton_bone-WAIST = weyst wength
skeleton_bone-HIP = hip wength
skeleton_bone-HIP_OFFSET = hyip awfset
skeleton_bone-HIPS_WIDTH = hyips wiwdth
skeleton_bone-UPPER_LEG = uppew weg wength
skeleton_bone-LOWER_LEG = wowwe weg wength
skeleton_bone-FOOT_LENGTH = pawsies wength
skeleton_bone-FOOT_SHIFT = pawsies shyft
skeleton_bone-SKELETON_OFFSET = skeweton awfset
skeleton_bone-SHOULDERS_DISTANCE = shouwdews disyance
skeleton_bone-SHOULDERS_WIDTH = shouwdews wiwdth
skeleton_bone-UPPER_ARM = uppew awm wength
skeleton_bone-LOWER_ARM = fowewawm disyance
skeleton_bone-HAND_Y = hawnd disance y
skeleton_bone-HAND_Z = hawnd disance z
skeleton_bone-ELBOW_OFFSET = ewbow awfsewt
## Tracker reset buttons
reset-reset_all = weset aww pwopowtions~
reset-full = weset~
reset-mounting = weset meownting
reset-quick = quick weset
## Serial detection stuff
serial_detection-new_device-p0 = nyu sewiaw device detected~!
serial_detection-new_device-p1 = entaw youw wi-fi cwedentiaws~!
serial_detection-new_device-p2 = pwease sewect what youw want to do wit it
serial_detection-open_wifi = cownnyect to wyfy~
serial_detection-open_serial = awpen sewiaw console >w<
serial_detection-submit = suwbmyt~!
serial_detection-close = cwose
## Navigation bar
navbar-home = howme
navbar-body_proportions = body pwopowshons
navbar-trackers_assign = twackaws assigwment
navbar-mounting = meownting calibwation
navbar-onboarding = suwep wisawd
navbar-settings = sewtings
## Bounding volume hierarchy recording
bvh-start_recording = wecowd bvh
bvh-recording = wecowding...
## Widget: Overlay settings
widget-overlay = owovelay
widget-overlay-is_visible_label = show owovelay in steawmvr
widget-overlay-is_mirrored_label = dispway owovelay as miwwow
## Widget: Drift compensation
widget-drift_compensation-clear = cwear dwift compensation
## Widget: Developer settings
widget-developer_mode = devwowwewow mode
widget-developer_mode-high_contrast = high contwast
widget-developer_mode-precise_rotation = pwecise wotation
widget-developer_mode-fast_data_feed = fast data feed
widget-developer_mode-filter_slimes_and_hmd = fiwtew swimes a-and HMD
widget-developer_mode-sort_by_name = sowt by nyame
widget-developer_mode-raw_slime_rotation = waw wotation
widget-developer_mode-more_info = mowe info
## Widget: IMU Visualizer
widget-imu_visualizer = wotation
widget-imu_visualizer-rotation_raw = waw
widget-imu_visualizer-rotation_preview = pwewiew
## Tracker status
tracker-status-none = no stawtus
tracker-status-busy = busy
tracker-status-error = ewwow
tracker-status-disconnected = disconnyected
tracker-status-occluded = occwuded
tracker-status-ok = oki
## Tracker status columns
tracker-table-column-name = nayme
tracker-table-column-type = type
tracker-table-column-battery = battewy
tracker-table-column-ping = pyng
tracker-table-column-tps = tps
tracker-table-column-temperature = temp. °C
tracker-table-column-linear-acceleration = accew. X/Y/Z
tracker-table-column-rotation = wotaytion x/y/z
tracker-table-column-position = pawsytion x/y/z
tracker-table-column-url = uawl
## Tracker rotation
tracker-rotation-front = fwowt
tracker-rotation-left = lewft
tracker-rotation-right = wight
tracker-rotation-back = bak
## Tracker information
tracker-infos-manufacturer = mawufactuwer
tracker-infos-display_name = dispway name
tracker-infos-custom_name = custowm name
tracker-infos-url = twackaw uawl
## Tracker settings
tracker-settings-back = go bak to twackaws liwst
tracker-settings-title = twackaw sewtings
tracker-settings-assignment_section = assiwnment
tracker-settings-assignment_section-description = what pawt of the bawdy the twackaw is assiwned to uwu
tracker-settings-assignment_section-edit = ewdit assiwnment
tracker-settings-mounting_section = meownting pawsition
tracker-settings-mounting_section-description = whewe is the twackaw mownted?
tracker-settings-mounting_section-edit = edit meownting
tracker-settings-drift_compensation_section = awwow dwift compensation
tracker-settings-drift_compensation_section-description = shouwd this twackew compensate fow its dwift when dwift compensation is enabwed?
tracker-settings-drift_compensation_section-edit = awwow dwift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = twackaw name
tracker-settings-name_section-description = owo whats dis?
tracker-settings-name_section-placeholder = ewimewl's weft pawb
## Tracker part card info
tracker-part_card-no_name = no name
tracker-part_card-unassigned = unassigwed
## Body assignment menu
body_assignment_menu = whewe doo yew want dis twayckaw to be?? >~>
body_assignment_menu-description = chooce a wocation whewe yew want dis twayckaw to be assyigned. awtwernativewy, yew can chooce to manage awl twackaws at ownce instawd of won by won.
body_assignment_menu-show_advanced_locations = show advawnced assyign wocations
body_assignment_menu-manage_trackers = manage awl twackaws
body_assignment_menu-unassign_tracker = unassyign twayckaw
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Which tracker do you want to be unassigned?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } neck?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } right shoulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } right hand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } right thigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } right ankle?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } right foot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } right controller?
tracker_selection_menu-CHEST = { -tracker_selection-part } chest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waist?
tracker_selection_menu-HIP = { -tracker_selection-part } hip?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } left shoulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } left hand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = unassyigned twackaws
tracker_selection_menu-assigned = assyigned twackaws
tracker_selection_menu-dont_assign = do nawt assyign
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>wawning:</b> a neck twackew can be deadwy if adjusted too tightwy,
the stwap (collar) couwd cut the ciwcuwation to youw head!
tracker_selection_menu-neck_warning-done = i undewstand the wisks~
tracker_selection_menu-neck_warning-cancel = cancew :o
## Mounting menu
mounting_selection_menu = whewe doo yew want dis twayckaw to be?
mounting_selection_menu-close = cwose
## Sidebar settings
settings-sidebar-title = settyings~
settings-sidebar-general = genyawaw
settings-sidebar-tracker_mechanics = twayckaw mechanics~
settings-sidebar-fk_settings = fk settyings
settings-sidebar-gesture_control = gestauw cantwol
settings-sidebar-interface = intyawface~
settings-sidebar-osc_router = OSC wouwter
settings-sidebar-utils = utiwities
settings-sidebar-serial = sewiaw cownsaw
## SteamVR settings
settings-general-steamvr = steamvr~
settings-general-steamvr-subtitle = steamvr twayckaws~
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
enyable or dysabywe specific twacking pawts.
usefuw if yew want mowwe contwoww owew what swimevr does.
settings-general-steamvr-trackers-waist = wyayst~
settings-general-steamvr-trackers-chest = chwest~
settings-general-steamvr-trackers-feet = pweets~
settings-general-steamvr-trackers-knees = knyees~
settings-general-steamvr-trackers-elbows = ewbows~
settings-general-steamvr-trackers-hands = pawbsies~
## Tracker mechanics
settings-general-tracker_mechanics = twayckaw mechanics~
settings-general-tracker_mechanics-filtering = fiwtewing~
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
chooce teh fiwwtewing type fow youw twackaws.
pwediction pwedicts movment while smowthing smowthens movment.
settings-general-tracker_mechanics-filtering-type = fiwtewing type~
settings-general-tracker_mechanics-filtering-type-none = no fiwwtewing~
settings-general-tracker_mechanics-filtering-type-none-description = use wowtations as is. wiw nawt do any fiwwtewing.
settings-general-tracker_mechanics-filtering-type-smoothing = smowthing
settings-general-tracker_mechanics-filtering-type-smoothing-description = smowthes movements but adds some watency~
settings-general-tracker_mechanics-filtering-type-prediction = pwediction~
settings-general-tracker_mechanics-filtering-type-prediction-description = wowduces wowcyancy and makes wowvements mowe wowappy, but may incwease jiwitty
settings-general-tracker_mechanics-filtering-amount = amownt
settings-general-tracker_mechanics-drift_compensation = dwift compensation
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
compensates imu yaw dwift by appwying an invewse wotation.
change amownt of compensation and how many wesets awe taken into accouwnt.
settings-general-tracker_mechanics-drift_compensation-enabled-label = dwift compensation
settings-general-tracker_mechanics-drift_compensation-amount-label = compensation amownt
settings-general-tracker_mechanics-drift_compensation-max_resets-label = nuwmbew of wesets uwsed
## FK/Tracking settings
settings-general-fk_settings = fk sewttings
settings-general-fk_settings-leg_tweak = leg tweeks
settings-general-fk_settings-leg_tweak-description = floo-cwip can wowduce owow even ewiminates cwipping with teh fwoow but may cause pwobweems when on yowuw neeys. skayting-cowwection cowwects fow wowce skating, but can wowcyancy accuwowacy in cewtain wowvement wowttewns.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = fwoow cwip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = skayting wowcowwection
settings-general-fk_settings-leg_tweak-skating_correction-amount = skawting cowwection stwength
settings-general-fk_settings-arm_fk = awm fk
settings-general-fk_settings-arm_fk-description = chawnge teh way teh awms awe twacked.
settings-general-fk_settings-arm_fk-force_arms = fowce awms fwom hmd
settings-general-fk_settings-skeleton_settings = skeweton sewttings
settings-general-fk_settings-skeleton_settings-description = toggwe skeweton sewttings on owow off. is wowcommended to weawve these on~
settings-general-fk_settings-skeleton_settings-extended_spine = ewtended spine
settings-general-fk_settings-skeleton_settings-extended_pelvis = ewtended pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = ewtended neey
settings-general-fk_settings-vive_emulation-title = vive emuwation
settings-general-fk_settings-vive_emulation-description = emuwate the waist twackew pwobwems that vive twackews hawe. tis is a jowke and mawkes twacking wowse eheh ^^
settings-general-fk_settings-vive_emulation-label = enabwe vive emuwation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = gestauw cantwol
settings-general-gesture_control-subtitle = bap bwased wesets
settings-general-gesture_control-description = allaws oww wesets wo be twiggewed by wapping a twackaw. The twackaw hyighest wup on youwuw twuwsuu is uwued fow qwick weset, wa twackaw hyighest up on youwuw weft weg is uwused fow weset, and teh twackaw hyighest up on youwuw wight weg is used fow mmountwing weset. It showold we wentioned what waps muwst happen within 0.6 seconds wo be wegistewed
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 bap
*[other] { $amount } baps
}
settings-general-gesture_control-quickResetEnabled = enable wap to quwuick weset
settings-general-gesture_control-quickResetDelay = quwuick weset deway
settings-general-gesture_control-quickResetTaps = baps fow quwuick weset
settings-general-gesture_control-resetEnabled = enable wap to weset
settings-general-gesture_control-resetDelay = weset deway
settings-general-gesture_control-resetTaps = baps fow weset
settings-general-gesture_control-mountingResetEnabled = enable wap to weset mountwing
settings-general-gesture_control-mountingResetDelay = mountwing weset deway
settings-general-gesture_control-mountingResetTaps = baps for mountwing weset
## Interface settings
settings-general-interface = intewface
settings-general-interface-dev_mode = devwowwewow mode
settings-general-interface-dev_mode-description = this mode can be wowseffuw if you need in-dipth data owow to intewact with cownnected twackaws on a wowowe wowadvanced wowwevew
settings-general-interface-dev_mode-label = devwowwewow mode
settings-general-interface-serial_detection = shewyaw device deteccion
settings-general-interface-serial_detection-description = this option will shaww a pawp-up evewy time yuw pwug a new shewyaw device that cawwld be a twayckaw. it helps iympwooving teh setup pwocess of a twayckaw
settings-general-interface-serial_detection-label = shewyaw device deteccion
settings-general-interface-lang = sewect wanguage
settings-general-interface-lang-description = change the defawwt wanguage yuw want to use
settings-general-interface-lang-placeholder = sewect teh wanguage to use
## Serial settings
settings-serial = shewyaw console
# This cares about multilines
settings-serial-description =
this is a wiwve infowmation feed fow shewyaw comyunicaytion
may be usefuw if yuw need to know teh fiwmwawe is acting up
settings-serial-connection_lost = connyection to shewyaw wost, weconnyecting... >~<
settings-serial-reboot = weboot
settings-serial-factory_reset = fawctowy reset
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>wawning:</b> this wiww weset the twackew to factowy settings.
which means wi-fi and cawibwation settings <b>wiww aww be wost!</b>
settings-serial-factory_reset-warning-ok = i know what I'm doing :3
settings-serial-factory_reset-warning-cancel = cancew
settings-serial-get_infos = get infows
settings-serial-serial_select = sewect a shewyaw pawt
settings-serial-auto_dropdown_item = awto
## OSC router settings
settings-osc-router = OSC wouwtew
# This cares about multilines
settings-osc-router-description =
fowwawd osc messages fwom anothew pwogwam
usefuww fow uwsing anothew osc pwogwam with VRChat fow exampwe
settings-osc-router-enable = enaybwe
settings-osc-router-enable-description = toggle teh fowwawding of data
settings-osc-router-enable-label = enaybwe
settings-osc-router-network = network pawts
# This cares about multilines
settings-osc-router-network-description =
set the pawts fow wistening awnd sending data
these can be the same as othew powts uwsed in the swimevr sewvew
settings-osc-router-network-port_in =
.label = pawt in
.placeholder = pawt in (defawwt: 9002)
settings-osc-router-network-port_out =
.label = pawt out
.placeholder = pawt out (defawwt: 9000)
settings-osc-router-network-address = network addwess
settings-osc-router-network-address-description = choose which addwess to send out data at
settings-osc-router-network-address-placeholder = IPV4 addwess
## OSC VRChat settings
settings-osc-vrchat = VRChawt OSC Twayckaws
# This cares about multilines
settings-osc-vrchat-description =
change vwchat-specific settwings to wweceive hmd data awnd send
twayckaws data fow fbt (wawwks on quest standalone).
settings-osc-vrchat-enable = enaybwe
settings-osc-vrchat-enable-description = toggle teh sending awnd wweceiving of data
settings-osc-vrchat-enable-label = enaybwe
settings-osc-vrchat-network = newtwowk pawts
settings-osc-vrchat-network-description = set the pawts fow wistening awnd sending data to vwchawt
settings-osc-vrchat-network-port_in =
.label = pawt in
.placeholder = pawt in (defawwt: 9001)
settings-osc-vrchat-network-port_out =
.label = pawt out
.placeholder = pawt out (defawwt: 9000)
settings-osc-vrchat-network-address = network addwess
settings-osc-vrchat-network-address-description = choose which addwess to send out data to vwchat (check yuw wi-fi settwings on yuw device)
settings-osc-vrchat-network-address-placeholder = vwchat ip addwess
settings-osc-vrchat-network-trackers = trayckawws
settings-osc-vrchat-network-trackers-description = toggle teh sending of spweciwic twackers viwa OSC
settings-osc-vrchat-network-trackers-chest = chwest~
settings-osc-vrchat-network-trackers-waist = wyayst~
settings-osc-vrchat-network-trackers-knees = knyees~
settings-osc-vrchat-network-trackers-feet = pweets~
settings-osc-vrchat-network-trackers-elbows = ewbows~
## Setup/onboarding menu
onboarding-skip = skipy setup
onboarding-continue = continyue
onboarding-wip = wowwk in pwowgress
## Wi-Fi setup
onboarding-wifi_creds-back = gaww bawwk to intwoduction
onboarding-wifi_creds = input wi-fi cwedentials
# This cares about multilines
onboarding-wifi_creds-description =
teh twawckaws will use these cwedentials to connect wirelessly
pwease use teh cwedentials that yaww awe cwowently cownyected to
onboarding-wifi_creds-skip = skipy wi-fi settiwyngs
onboarding-wifi_creds-submit = suwbmyt!
onboarding-wifi_creds-ssid =
.label = wi-fi nawme
.placeholder = entew wi-fi nawme
onboarding-wifi_creds-password =
.label = passwowod
.placeholder = entew passwowod
## Mounting setup
onboarding-reset_tutorial-back = gaww bawwk to meownting cawwibwation
onboarding-reset_tutorial = weset wtutowial
onboarding-reset_tutorial-description = dis featuwe isn't done, just pwess continyue
## Setup start
onboarding-home = wewcome to swimevr
# This cares about multilines and it's centered!!
onboarding-home-description =
bwinging fuww-bawdy twacking
to evewyone
onboarding-home-start = wets get set up!
## Enter VR part of setup
onboarding-enter_vr-back = gaww bawwk to twacker assignyment
onboarding-enter_vr-title = time to entew vr!
onboarding-enter_vr-description = put on awe yoaww twackaws and then entew vr!
onboarding-enter_vr-ready = iym weady
## Setup done
onboarding-done-title = yaww awe awe set!
onboarding-done-description = enjoy yoaww fuww body expewwience
onboarding-done-close = cwose the guide
## Tracker connection setup
onboarding-connect_tracker-back = gaww bawwk to wi-fi cwedentials
onboarding-connect_tracker-title = connect twackaws
onboarding-connect_tracker-description-p0 = now onto teh fun pawwt, connecting awe teh twackaws!
onboarding-connect_tracker-description-p1 = simply connect awe that awe nawt cownyected yet, through a usb powwt.
onboarding-connect_tracker-issue-serial = i'm having twouble connecting!
onboarding-connect_tracker-usb = usb twackew
onboarding-connect_tracker-connection_status-none = wooking fow twackaws
onboarding-connect_tracker-connection_status-serial_init = conectin too da sewiaw dewise
onboarding-connect_tracker-connection_status-provisioning = sending wi-fi cwedentials
onboarding-connect_tracker-connection_status-connecting = sending wi-fi cwedentials
onboarding-connect_tracker-connection_status-looking_for_server = wookin fow da sewvew
onboarding-connect_tracker-connection_status-connection_error = unabwe to cownyect to wi-fi
onboarding-connect_tracker-connection_status-could_not_find_server = i cannt find da sewvew ;w;
onboarding-connect_tracker-connection_status-done = cownyected to teh sewvew
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] no twackers
[one] 1 twackers
*[other] { $amount } twackers
} cownyected
onboarding-connect_tracker-next = i cownyected awe my twackaws
## Tracker assignment setup
onboarding-assign_trackers-back = go bak to wi-fi credyentials
onboarding-assign_trackers-title = assign twackaws
onboarding-assign_trackers-description = wets choyse which twackaw goes whewe. cwick on a wocation whewe yowo want to payce a twackaw
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 twackaws
*[other] { $trackers } twackaws
} assigned
onboarding-assign_trackers-advanced = show advanced assign wocations
onboarding-assign_trackers-next = i assigned awe the twackaws
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] weft foot ish assignyed but c-chu nyeed the weft ankwe, weft thigh and eithew da chest, hip o-ow waist to awso be assignyed!
[1] weft foot ish assignyed but chu nyeed da weft thigh a-and eithew da chest, hip ow waist to a-awso be assignyed!
[2] weft foot ish assignyed but chu nyeed da weft ankwe and eithew da chest, hip ow waist t-to awso be a-assignyed!
[3] weft foot ish assignyed but chu nyeed eithew da chest, hip ow waist to awso be assignyed!
[4] weft foot i-ish assignyed but chu nyeed da weft a-ankwe a-and weft thigh to awso be assignyed!
[5] weft foot ish assignyed but chu nyeed da weft thigh to a-awso be assignyed!
[6] wefwft foot ish assignyed but chu nyeed da weft ankwe to awso be assignyed!
*[unknown] weft foot is assignyed b-but chu n-nyeed unknyown unyassignyed body pawt to a-awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] w-wight foot ish assignyed but yuu nyeed da wight ankwe, wight thigh and eithew da chest, h-h-hip ow waist to awso be assignyed!
[1] wight foot ish assignyed b-but chu nyeed da wight thigh and eithew da c-chest, hip ow w-waist to awso be assignyed!
[2] wight foot ish assignyed but chu nyeed da w-wight a-ankwe and eithew da chest, hip ow waist to awso be assignyed!
[3] wight foot ish assignyed but chu nyeed eithew da chest, hip ow waist to awso be assignyed!
[4] wight foot ish assignyed but chu nyeed da wight ankwe and wight thigh to awso be assignyed!
[5] wight foot i-i-ish assignyed but chu nyeed da wight thigh to awso be assignyed!
[6] wight foot ish assignyed but chu nyeed da wight ankwe to awso be a-assignyed!
*[unknown] wight foot ish assignyed but chu nyeed unknyown u-unyassignyed body pawt t-to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] wight ankwe i-ish assignyed but chu nyeed da wight thigh and eithew da chest, h-hip ow waist to awso be assignyed!
[1] wight a-a-ankwe ish assignyed but chu nyeed eithew da chest, hip ow w-waist to awso be assignyed!
[2] wight ankwe ish assignyed but chu nyeed da wight thigh to awso be assignyed!
*[unknown] wight ankwe i-ish assignyed but chu n-nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] wight ankwe ish a-assignyed but chu nyeed da w-wight thigh and eithew da chest, hip ow waist to awso b-be assignyed!
[1] wight ankwe ish assignyed but chu nyeed eithew da c-chest, hip ow waist to awso be assignyed!
[2] wight ankwe i-ish assignyed but chu nyeed da wight thigh to awso be assignyed!
*[unknown] wight ankwe ish assignyed but chu nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] weft thigh is assignyed b-but chu nyeed eithew da chest, hip o-ow waist to awso b-be assignyed!
*[unknown] weft t-thigh is assignyed but chu nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] wight thigh ish assignyed but chu nyeed eithew da chest, hip ow waist to awso be assignyed!
*[unknown] wight thigh ish assignyed but chu nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] hip is assignyed but yuw nyeed the chest to awso b-be assignyed!
*[unknown] hip is assignyed but yuw nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] waiwst is assignyed b-but you nyeed teh chest to awso b-be assignyed!
*[unknown] waiwst is assignyed but you nyeed unknyoun unyassignyed body pawt to awso be assignyed!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = go bak to entaw vawe
onboarding-manual_mounting = manual meownting
onboarding-manual_mounting-description = cwick on evewy twackaw and sewect which way they awe mownted
onboarding-manual_mounting-auto_mounting = awtomawic meownting
onboarding-manual_mounting-next = newt stewp
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = go bak to entaw vawe
onboarding-automatic_mounting-title = meownting cawibwation
onboarding-automatic_mounting-description = fow SlimeVR twackaws to wowk, we need to assign a meownting wowation to yowo twackaws to awign them with yowo pwysical twackaw mounting.
onboarding-automatic_mounting-manual_mounting = manually set meownting
onboarding-automatic_mounting-next = next step
onboarding-automatic_mounting-prev_step = pwevious step
onboarding-automatic_mounting-done-title = mounting wowations cawibwated.
onboarding-automatic_mounting-done-description = yowo meownting cawibwation is compwete!
onboarding-automatic_mounting-done-restart = wetuwn to stawt
onboarding-automatic_mounting-mounting_reset-title = meownting weset
onboarding-automatic_mounting-mounting_reset-step-0 = 1. squawt in a "skiing" pose with yowo wegs bent, yowo upper body tilted fowwawds, and yowo awems bent.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. pwess the "weset meownting" button and wait fow 3 seconds befowe the twackaws' meownting wowations will weset.
onboarding-automatic_mounting-preparation-title = pwepaiwation
onboarding-automatic_mounting-preparation-step-0 = 1. stand upwight with yowo awems to yowo sides.
onboarding-automatic_mounting-preparation-step-1 = 2. pwess the "weset" button and wait fow 3 seconds befowe the twackaws will weset.
onboarding-automatic_mounting-put_trackers_on-title = put on yowo twackaws
onboarding-automatic_mounting-put_trackers_on-description = to cawibwate meownting wowations, we'we gonna use the twackaws yowo just assigned. put on awe yowo twackaws, yowo can see which awe which in the figuwe to the wowight.
onboarding-automatic_mounting-put_trackers_on-next = i haff awe my twackaws on
## Tracker manual proportions setup
onboarding-manual_proportions-back = go bawck to weset tutowiaw
onboarding-manual_proportions-title = manyuaw bodee pwopowtiesions
onboarding-manual_proportions-precision = pwecision adjusty
onboarding-manual_proportions-auto = owtomatic cawybwation
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = go bawck to weweset tutowiaw
onboarding-automatic_proportions-title = measuwe yowuw bodee
onboarding-automatic_proportions-description = fow swimevw twackaws to wowk, we need to know teh wowkty of yowuw bones. dis showt cawybwation will measuwe it fow yowu
onboarding-automatic_proportions-manual = manyuaw cawybwation
onboarding-automatic_proportions-prev_step = pwevious stwep
onboarding-automatic_proportions-put_trackers_on-title = put on yowuw twackaws
onboarding-automatic_proportions-put_trackers_on-description = to cawybwate yowuw pwopowtiesions, we'we gonna use teh twackaws yowu just assigned. put on awl yowuw twackaws, yowu can see which awe which in teh figuwe to teh wowight.
onboarding-automatic_proportions-put_trackers_on-next = i have awl my twackaws on
onboarding-automatic_proportions-preparation-title = pwepawation
onboarding-automatic_proportions-preparation-description = pwace a chayaw diwectly behind yowu inside yowuw pway spawce. be pwepawed to sit down duwing teh owtobone setyup.
onboarding-automatic_proportions-preparation-next = i am in fwont of a chayaw
onboarding-automatic_proportions-start_recording-title = get wowdy to move
onboarding-automatic_proportions-start_recording-description = we'we now going to wowcawd some specific poses and moves. these will be pwompted in teh wowst screen. be wowdy to stawt when teh buttawn is pwessed!
onboarding-automatic_proportions-start_recording-next = stawt wowcawding
onboarding-automatic_proportions-recording-title = wowcawd
onboarding-automatic_proportions-recording-description-p0 = wowcawding in pwowgwess...
onboarding-automatic_proportions-recording-description-p1 = make teh moves shown bowow:
onboarding-automatic_proportions-recording-steps-0 = bend knees a few times.
onboarding-automatic_proportions-recording-steps-1 = sit on a chayaw then stawnd up.
onboarding-automatic_proportions-recording-steps-2 = twist upwe wowdy wowft, then bend wowft.
onboarding-automatic_proportions-recording-steps-3 = twist upwe wowdy wowight, then bend wowight.
onboarding-automatic_proportions-recording-steps-4 = wiggy aweound until tymey ends.
onboarding-automatic_proportions-recording-processing = pwowcessing teh wowesult
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second wowft
*[other] { $time } secondsy wowft
}
onboarding-automatic_proportions-verify_results-title = vewify wowesults
onboarding-automatic_proportions-verify_results-description = check teh wewesults below, do tehy weok coowect?
onboarding-automatic_proportions-verify_results-results = wecowding wewesults
onboarding-automatic_proportions-verify_results-processing = pwocessing teh wewesult
onboarding-automatic_proportions-verify_results-redo = wedo wecowding
onboarding-automatic_proportions-verify_results-confirm = tehywee coowect
onboarding-automatic_proportions-done-title = bawdy meowsured anwd sayved uwu
onboarding-automatic_proportions-done-description = yoww body pwopowwtions cawybowwation is cowowplete! ^w^
## Home
home-no_trackers = no twackaws detecyted owo wowigned

View File

@@ -0,0 +1,619 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Connecting to the server
websocket-connection_lost = Connection lost to the server. Trying to reconnect...
## Tips
tips-find_tracker = Not sure which tracker is which? Shake a tracker and it will highlight the corresponding item.
tips-do_not_move_heels = Ensure your heels do not move during recording!
## Body parts
body_part-NONE = Unassigned
body_part-HEAD = Head
body_part-NECK = Neck
body_part-RIGHT_SHOULDER = Right shoulder
body_part-RIGHT_UPPER_ARM = Right upper arm
body_part-RIGHT_LOWER_ARM = Right lower arm
body_part-RIGHT_HAND = Right hand
body_part-RIGHT_UPPER_LEG = Right thigh
body_part-RIGHT_LOWER_LEG = Right ankle
body_part-RIGHT_FOOT = Right foot
body_part-CHEST = Chest
body_part-WAIST = Waist
body_part-HIP = Hip
body_part-LEFT_SHOULDER = Left shoulder
body_part-LEFT_UPPER_ARM = Left upper arm
body_part-LEFT_LOWER_ARM = Left lower arm
body_part-LEFT_HAND = Left hand
body_part-LEFT_UPPER_LEG = Left thigh
body_part-LEFT_LOWER_LEG = Left ankle
body_part-LEFT_FOOT = Left foot
## Proportions
skeleton_bone-NONE = None
skeleton_bone-HEAD = Head Shift
skeleton_bone-NECK = Neck Length
skeleton_bone-CHEST = Chest Length
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-WAIST = Waist Length
skeleton_bone-HIP = Hip Length
skeleton_bone-HIP_OFFSET = Hip Offset
skeleton_bone-HIPS_WIDTH = Hips Width
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-LOWER_LEG = Lower Leg Length
skeleton_bone-FOOT_LENGTH = Foot Length
skeleton_bone-FOOT_SHIFT = Foot Shift
skeleton_bone-SKELETON_OFFSET = Skeleton Offset
skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
skeleton_bone-SHOULDERS_WIDTH = Shoulders Width
skeleton_bone-UPPER_ARM = Upper Arm Length
skeleton_bone-LOWER_ARM = Lower Arm Length
skeleton_bone-HAND_Y = Hand Distance Y
skeleton_bone-HAND_Z = Hand Distance Z
skeleton_bone-ELBOW_OFFSET = Elbow Offset
## Tracker reset buttons
reset-reset_all = Reset all proportions
reset-full = Reset
reset-mounting = Reset Mounting
reset-quick = Quick Reset
## Serial detection stuff
serial_detection-new_device-p0 = New serial device detected!
serial_detection-new_device-p1 = Enter your Wi-Fi credentials!
serial_detection-new_device-p2 = Please select what you want to do with it
serial_detection-open_wifi = Connect to Wi-Fi
serial_detection-open_serial = Open Serial Console
serial_detection-submit = Submit!
serial_detection-close = Close
## Navigation bar
navbar-home = Home
navbar-body_proportions = Body Proportions
navbar-trackers_assign = Tracker Assignment
navbar-mounting = Mounting Calibration
navbar-onboarding = Setup Wizard
navbar-settings = Settings
## Bounding volume hierarchy recording
bvh-start_recording = Record BVH
bvh-recording = Recording...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Show Overlay in SteamVR
widget-overlay-is_mirrored_label = Display Overlay as Mirror
## Widget: Drift compensation
widget-drift_compensation-clear = Clear drift compensation
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
widget-developer_mode-fast_data_feed = Fast data feed
widget-developer_mode-filter_slimes_and_hmd = Filter slimes and HMD
widget-developer_mode-sort_by_name = Sort by name
widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = No Status
tracker-status-busy = Busy
tracker-status-error = Error
tracker-status-disconnected = Disconnected
tracker-status-occluded = Occluded
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Name
tracker-table-column-type = Type
tracker-table-column-battery = Battery
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Rotation X/Y/Z
tracker-table-column-position = Position X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Front
tracker-rotation-left = Left
tracker-rotation-right = Right
tracker-rotation-back = Back
## Tracker information
tracker-infos-manufacturer = Manufacturer
tracker-infos-display_name = Display Name
tracker-infos-custom_name = Custom Name
tracker-infos-url = Tracker URL
tracker-infos-version = Firmware Version
tracker-infos-hardware_rev = Hardware Revision
## Tracker settings
tracker-settings-back = Go back to trackers list
tracker-settings-title = Tracker settings
tracker-settings-assignment_section = Assignment
tracker-settings-assignment_section-description = What part of the body the tracker is assigned to.
tracker-settings-assignment_section-edit = Edit assignment
tracker-settings-mounting_section = Mounting position
tracker-settings-mounting_section-description = Where is the tracker mounted?
tracker-settings-mounting_section-edit = Edit mounting
tracker-settings-drift_compensation_section = Allow drift compensation
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Allow drift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Tracker name
tracker-settings-name_section-description = Give it a cute nickname :)
tracker-settings-name_section-placeholder = NightyBeast's left leg
## Tracker part card info
tracker-part_card-no_name = No name
tracker-part_card-unassigned = Unassigned
## Body assignment menu
body_assignment_menu = Where do you want this tracker to be?
body_assignment_menu-description = Choose a location where you want this tracker to be assigned. Alternatively you can choose to manage all trackers at once instead of one by one.
body_assignment_menu-show_advanced_locations = Show advanced assign locations
body_assignment_menu-manage_trackers = Manage all trackers
body_assignment_menu-unassign_tracker = Unassign tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Which tracker do you want to be unassigned?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } neck?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } right shoulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } right hand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } right thigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } right ankle?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } right foot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } right controller?
tracker_selection_menu-CHEST = { -tracker_selection-part } chest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waist?
tracker_selection_menu-HIP = { -tracker_selection-part } hip?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } left shoulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } left hand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = Unassigned Trackers
tracker_selection_menu-assigned = Assigned Trackers
tracker_selection_menu-dont_assign = Do not assign
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Warning:</b> A neck tracker can be deadly if adjusted too tightly,
the strap could cut the circulation to your head!
tracker_selection_menu-neck_warning-done = I understand the risks
tracker_selection_menu-neck_warning-cancel = Cancel
## Mounting menu
mounting_selection_menu = Where do you want this tracker to be?
mounting_selection_menu-close = Close
## Sidebar settings
settings-sidebar-title = Settings
settings-sidebar-general = General
settings-sidebar-tracker_mechanics = Tracker mechanics
settings-sidebar-fk_settings = Tracking settings
settings-sidebar-gesture_control = Gesture control
settings-sidebar-interface = Interface
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Utilities
settings-sidebar-serial = Serial console
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackers
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Enable or disable specific SteamVR trackers.
Useful for games or apps that only support certain trackers.
settings-general-steamvr-trackers-waist = Waist
settings-general-steamvr-trackers-chest = Chest
settings-general-steamvr-trackers-feet = Feet
settings-general-steamvr-trackers-knees = Knees
settings-general-steamvr-trackers-elbows = Elbows
settings-general-steamvr-trackers-hands = Hands
## Tracker mechanics
settings-general-tracker_mechanics = Tracker mechanics
settings-general-tracker_mechanics-filtering = Filtering
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Choose the filtering type for your trackers.
Prediction predicts movement while smoothing smoothens movement.
settings-general-tracker_mechanics-filtering-type = Filtering type
settings-general-tracker_mechanics-filtering-type-none = No filtering
settings-general-tracker_mechanics-filtering-type-none-description = Use rotations as is. Will not do any filtering.
settings-general-tracker_mechanics-filtering-type-smoothing = Smoothing
settings-general-tracker_mechanics-filtering-type-smoothing-description = Smooths movements but adds some latency.
settings-general-tracker_mechanics-filtering-type-prediction = Prediction
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduces latency and makes movements more snappy, but may increase jitter.
settings-general-tracker_mechanics-filtering-amount = Amount
settings-general-tracker_mechanics-drift_compensation = Drift compensation
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensates IMU yaw drift by applying an inverse rotation.
Change amount of compensation and up to how many resets are taken into account.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensation
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
## FK/Tracking settings
settings-general-fk_settings = Tracking settings
settings-general-fk_settings-leg_tweak = Leg tweaks
settings-general-fk_settings-leg_tweak-description = Floor-clip can Reduce or even eliminates clipping with the floor but may cause problems when on your knees. Skating-correction corrects for ice skating, but can decrease accuracy in certain movement patterns.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Floor clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating correction strength
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Change the way the arms are tracked.
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-skeleton_settings = Skeleton settings
settings-general-fk_settings-skeleton_settings-description = Toggle skeleton settings on or off. It is recommended to leave these on.
settings-general-fk_settings-skeleton_settings-extended_spine = Extended spine
settings-general-fk_settings-skeleton_settings-extended_pelvis = Extended pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Extended knee
settings-general-fk_settings-vive_emulation-title = Vive emulation
settings-general-fk_settings-vive_emulation-description = Emulate the waist tracker problems that Vive trackers have. This is a joke and makes tracking worse.
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Gesture control
settings-general-gesture_control-subtitle = Tap based resets
settings-general-gesture_control-description = Allows for resets to be triggered by tapping a tracker. The tracker highest up on your torso is used for Quick Reset, the tracker highest up on your left leg is used for Reset, and the tracker highest up on your right leg is used for Mounting Reset. It should be mentioned that taps must happen within 0.6 seconds to be registered.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Enable tap to quick reset
settings-general-gesture_control-quickResetDelay = Quick reset delay
settings-general-gesture_control-quickResetTaps = Taps for quick reset
settings-general-gesture_control-resetEnabled = Enable tap to reset
settings-general-gesture_control-resetDelay = Reset delay
settings-general-gesture_control-resetTaps = Taps for reset
settings-general-gesture_control-mountingResetEnabled = Enable tap to reset mounting
settings-general-gesture_control-mountingResetDelay = Mounting reset delay
settings-general-gesture_control-mountingResetTaps = Taps for mounting reset
## Interface settings
settings-general-interface = Interface
settings-general-interface-dev_mode = Developer Mode
settings-general-interface-dev_mode-description = This mode can be useful if you need in-depth data or to interact with connected trackers on a more advanced level.
settings-general-interface-dev_mode-label = Developer Mode
settings-general-interface-serial_detection = Serial device detection
settings-general-interface-serial_detection-description = This option will show a pop-up every time you plug a new serial device that could be a tracker. It helps improving the setup process of a tracker.
settings-general-interface-serial_detection-label = Serial device detection
settings-general-interface-lang = Select language
settings-general-interface-lang-description = Change the default language you want to use.
settings-general-interface-lang-placeholder = Select the language to use
## Serial settings
settings-serial = Serial Console
# This cares about multilines
settings-serial-description =
This is a live information feed for serial communication.
May be useful if you need to know the firmware is acting up.
settings-serial-connection_lost = Connection to serial lost, Reconnecting...
settings-serial-reboot = Reboot
settings-serial-factory_reset = Factory Reset
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Warning:</b> This will reset the tracker to factory settings.
Which means Wi-Fi and calibration settings <b>will all be lost!</b>
settings-serial-factory_reset-warning-ok = I know what I'm doing
settings-serial-factory_reset-warning-cancel = Cancel
settings-serial-get_infos = Get Infos
settings-serial-serial_select = Select a serial port
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
Forward OSC messages from another program.
Useful for using another OSC program with VRChat for example.
settings-osc-router-enable = Enable
settings-osc-router-enable-description = Toggle the forwarding of messages.
settings-osc-router-enable-label = Enable
settings-osc-router-network = Network ports
# This cares about multilines
settings-osc-router-network-description =
Set the ports for listening and sending data.
These can be the same as other ports used in the SlimeVR server.
settings-osc-router-network-port_in =
.label = Port In
.placeholder = Port in (default: 9002)
settings-osc-router-network-port_out =
.label = Port Out
.placeholder = Port out (default: 9000)
settings-osc-router-network-address = Network address
settings-osc-router-network-address-description = Set the address to send out data at.
settings-osc-router-network-address-placeholder = IPV4 address
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Change VRChat-specific settings to receive HMD data and send
trackers data for FBT (works on Quest standalone).
settings-osc-vrchat-enable = Enable
settings-osc-vrchat-enable-description = Toggle the sending and receiving of data.
settings-osc-vrchat-enable-label = Enable
settings-osc-vrchat-network = Network ports
settings-osc-vrchat-network-description = Set the ports for listening and sending data to VRChat.
settings-osc-vrchat-network-port_in =
.label = Port In
.placeholder = Port in (default: 9001)
settings-osc-vrchat-network-port_out =
.label = Port Out
.placeholder = Port out (default: 9000)
settings-osc-vrchat-network-address = Network address
settings-osc-vrchat-network-address-description = Choose which address to send out data to VRChat (check your Wi-Fi settings on your device).
settings-osc-vrchat-network-address-placeholder = VRChat ip address
settings-osc-vrchat-network-trackers = Trackers
settings-osc-vrchat-network-trackers-description = Toggle the sending of specific trackers via OSC.
settings-osc-vrchat-network-trackers-chest = Chest
settings-osc-vrchat-network-trackers-waist = Waist
settings-osc-vrchat-network-trackers-knees = Knees
settings-osc-vrchat-network-trackers-feet = Feet
settings-osc-vrchat-network-trackers-elbows = Elbows
## Setup/onboarding menu
onboarding-skip = Skip setup
onboarding-continue = Continue
onboarding-wip = Work in progress
## Wi-Fi setup
onboarding-wifi_creds-back = Go Back to introduction
onboarding-wifi_creds = Input Wi-Fi credentials
# This cares about multilines
onboarding-wifi_creds-description =
The Trackers will use these credentials to connect wirelessly.
Please use the credentials that you are currently connected to.
onboarding-wifi_creds-skip = Skip Wi-Fi settings
onboarding-wifi_creds-submit = Submit!
onboarding-wifi_creds-ssid =
.label = Wi-Fi name
.placeholder = Enter Wi-Fi name
onboarding-wifi_creds-password =
.label = Password
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Go Back to Mounting calibration
onboarding-reset_tutorial = Reset tutorial
onboarding-reset_tutorial-description = This feature isn't done, just press continue
## Setup start
onboarding-home = Welcome to SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Bringing full-body tracking
to everyone
onboarding-home-start = Lets get set up!
## Enter VR part of setup
onboarding-enter_vr-back = Go Back to Tracker assignent
onboarding-enter_vr-title = Time to enter VR!
onboarding-enter_vr-description = Put on all your trackers and then enter VR!
onboarding-enter_vr-ready = I'm ready
## Setup done
onboarding-done-title = You're all set!
onboarding-done-description = Enjoy your full body experience
onboarding-done-close = Close the guide
## Tracker connection setup
onboarding-connect_tracker-back = Go Back to Wi-Fi credentials
onboarding-connect_tracker-title = Connect trackers
onboarding-connect_tracker-description-p0 = Now onto the fun part, connecting all the trackers!
onboarding-connect_tracker-description-p1 = Simply connect all that aren't connected yet, through a USB port.
onboarding-connect_tracker-issue-serial = I'm having trouble connecting!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Looking for trackers
onboarding-connect_tracker-connection_status-serial_init = Connecting to serial device
onboarding-connect_tracker-connection_status-provisioning = Sending Wi-Fi credentials
onboarding-connect_tracker-connection_status-connecting = Trying to connect to Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Looking for server
onboarding-connect_tracker-connection_status-connection_error = Unable to connect to Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Could not find the server
onboarding-connect_tracker-connection_status-done = Connected to the Server
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = I connected all my trackers
## Tracker assignment setup
onboarding-assign_trackers-back = Go Back to Wi-Fi Credentials
onboarding-assign_trackers-title = Assign trackers
onboarding-assign_trackers-description = Let's choose which tracker goes where. Click on a location where you want to place a tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Show advanced assign locations
onboarding-assign_trackers-next = I assigned all the trackers
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT = Left foot is assigned but you need { $unassigned ->
[0] the left ankle, left thigh and either the chest, hip or waist
[1] the left thigh and either the chest, hip or waist
[2] the left ankle and either the chest, hip or waist
[3] either the chest, hip or waist
[4] the left ankle and left thigh
[5] the left thigh
[6] the left ankle
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT = Right foot is assigned but you need { $unassigned ->
[0] the right ankle, right thigh and either the chest, hip or waist
[1] the right thigh and either the chest, hip or waist
[2] the right ankle and either the chest, hip or waist
[3] either the chest, hip or waist
[4] the right ankle and right thigh
[5] the right thigh
[6] the right ankle
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG = Left ankle is assigned but you need { $unassigned ->
[0] the left thigh and either the chest, hip or waist
[1] either the chest, hip or waist
[2] the left thigh
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG = Right ankle is assigned but you need { $unassigned ->
[0] the right thigh and either the chest, hip or waist
[1] either the chest, hip or waist
[2] the right thigh
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG = Left thigh is assigned but you need { $unassigned ->
[0] either the chest, hip or waist
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG = Right thigh is assigned but you need { $unassigned ->
[0] either the chest, hip or waist
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP = Hip is assigned but you need { $unassigned ->
[0] the chest
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST = Waist is assigned but you need { $unassigned ->
[0] the chest
*[unknown] Unknown unassigned body part
} to also be assigned!
## Tracker manual mounting setup
onboarding-manual_mounting-back = Go Back to Enter VR
onboarding-manual_mounting = Manual Mounting
onboarding-manual_mounting-description = Click on every tracker and select which way they are mounted
onboarding-manual_mounting-auto_mounting = Automatic mounting
onboarding-manual_mounting-next = Next step
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Go Back to Enter VR
onboarding-automatic_mounting-title = Mounting Calibration
onboarding-automatic_mounting-description = For SlimeVR trackers to work, we need to assign a mounting rotation to your trackers to align them with your physical tracker mounting.
onboarding-automatic_mounting-manual_mounting = Manually set mounting
onboarding-automatic_mounting-next = Next step
onboarding-automatic_mounting-prev_step = Previous step
onboarding-automatic_mounting-done-title = Mounting rotations calibrated.
onboarding-automatic_mounting-done-description = Your mounting calibration is complete!
onboarding-automatic_mounting-done-restart = Return to start
onboarding-automatic_mounting-mounting_reset-title = Mounting Reset
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Squat in a "skiing" pose with your legs bent, your upper body tilted forwards, and your arms bent.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Press the "Reset Mounting" button and wait for 3 seconds before the trackers' mounting rotations will reset.
onboarding-automatic_mounting-preparation-title = Preparation
onboarding-automatic_mounting-preparation-step-0 = 1. Stand upright with your arms to your sides.
onboarding-automatic_mounting-preparation-step-1 = 2. Press the "Reset" button and wait for 3 seconds before the trackers will reset.
onboarding-automatic_mounting-put_trackers_on-title = Put on your trackers
onboarding-automatic_mounting-put_trackers_on-description = To calibrate mounting rotations, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
onboarding-automatic_mounting-put_trackers_on-next = I have all my trackers on
## Tracker manual proportions setup
onboarding-manual_proportions-back = Go Back to Reset tutorial
onboarding-manual_proportions-title = Manual Body Proportions
onboarding-manual_proportions-precision = Precision adjust
onboarding-manual_proportions-auto = Automatic calibration
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Go Back to Reset tutorial
onboarding-automatic_proportions-title = Measure your body
onboarding-automatic_proportions-description = For SlimeVR trackers to work, we need to know the length of your bones. This short calibration will measure it for you.
onboarding-automatic_proportions-manual = Manual calibration
onboarding-automatic_proportions-prev_step = Previous step
onboarding-automatic_proportions-put_trackers_on-title = Put on your trackers
onboarding-automatic_proportions-put_trackers_on-description = To calibrate your proportions, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
onboarding-automatic_proportions-put_trackers_on-next = I have all my trackers on
onboarding-automatic_proportions-preparation-title = Preparation
onboarding-automatic_proportions-preparation-description = Place a chair directly behind you inside your play space. Be prepared to sit down during the autobone setup.
onboarding-automatic_proportions-preparation-next = I am in front of a chair
onboarding-automatic_proportions-start_recording-title = Get ready to move
onboarding-automatic_proportions-start_recording-description = We're now going to record some specific poses and moves. These will be prompted in the next screen. Be ready to start when the button is pressed!
onboarding-automatic_proportions-start_recording-next = Start Recording
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Recording in progress...
onboarding-automatic_proportions-recording-description-p1 = Make the moves shown below:
onboarding-automatic_proportions-recording-steps-0 = Bend knees a few times.
onboarding-automatic_proportions-recording-steps-1 = Sit on a chair then stand up.
onboarding-automatic_proportions-recording-steps-2 = Twist upper body left, then bend right.
onboarding-automatic_proportions-recording-steps-3 = Twist upper body right, then bend left.
onboarding-automatic_proportions-recording-steps-4 = Wiggle around until timer ends.
onboarding-automatic_proportions-recording-processing = Processing the result
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Verify results
onboarding-automatic_proportions-verify_results-description = Check the results below, do they look correct?
onboarding-automatic_proportions-verify_results-results = Recording results
onboarding-automatic_proportions-verify_results-processing = Processing the result
onboarding-automatic_proportions-verify_results-redo = Redo recording
onboarding-automatic_proportions-verify_results-confirm = They're correct
onboarding-automatic_proportions-done-title = Body measured and saved.
onboarding-automatic_proportions-done-description = Your body proportions calibration is complete!
## Home
home-no_trackers = No trackers detected or assigned

View File

@@ -0,0 +1,676 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Conectando al servidor
websocket-connection_lost = Conexión al servidor perdida. Intentando reconectar...
## Tips
tips-find_tracker = ¿No estás seguro de cuál sensor es cuál? Agita un sensor y se resaltará donde está asignado.
tips-do_not_move_heels = ¡Asegúrate de no mover los talones en la grabación!
## Body parts
body_part-NONE = Sin asignar
body_part-HEAD = Cabeza
body_part-NECK = Cuello
body_part-RIGHT_SHOULDER = Hombro derecho
body_part-RIGHT_UPPER_ARM = Brazo superior derecho
body_part-RIGHT_LOWER_ARM = Antebrazo derecho
body_part-RIGHT_HAND = Mano derecha
body_part-RIGHT_UPPER_LEG = Muslo derecho
body_part-RIGHT_LOWER_LEG = Tobillo derecho
body_part-RIGHT_FOOT = Pie derecho
body_part-RIGHT_CONTROLLER = Control derecho
body_part-CHEST = Pecho
body_part-WAIST = Cintura
body_part-HIP = Cadera
body_part-LEFT_SHOULDER = Hombro izquierdo
body_part-LEFT_UPPER_ARM = Brazo superior izquierdo
body_part-LEFT_LOWER_ARM = Antebrazo izquierdo
body_part-LEFT_HAND = Mano izquierda
body_part-LEFT_UPPER_LEG = Muslo izquierdo
body_part-LEFT_LOWER_LEG = Tobillo izquierdo
body_part-LEFT_FOOT = Pie izquierdo
body_part-LEFT_CONTROLLER = Control izquierdo
## Proportions
skeleton_bone-NONE = Nada
skeleton_bone-HEAD = Inclinación de cabeza
skeleton_bone-NECK = Largo del cuello
skeleton_bone-CHEST = Chest Length
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-WAIST = Waist Length
skeleton_bone-HIP = Hip Length
skeleton_bone-HIP_OFFSET = Desplazamiento de la cadera
skeleton_bone-HIPS_WIDTH = Ancho de la cadera
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-LOWER_LEG = Lower Leg Length
skeleton_bone-FOOT_LENGTH = Largo de pies
skeleton_bone-FOOT_SHIFT = Desplazamiento de pies
skeleton_bone-SKELETON_OFFSET = Desplazamiento del esqueleto
skeleton_bone-SHOULDERS_DISTANCE = Distancia de los hombros
skeleton_bone-SHOULDERS_WIDTH = Ancho de los hombros
skeleton_bone-UPPER_ARM = Largo del brazo superior
skeleton_bone-LOWER_ARM = Distancia del antebrazo
skeleton_bone-CONTROLLER_Y = Distancia Y del mando
skeleton_bone-CONTROLLER_Z = Distancia Z del mando
skeleton_bone-ELBOW_OFFSET = Desplazamiento del codo
## Tracker reset buttons
reset-reset_all = Reiniciar todas las proporciones
reset-full = Reiniciar
reset-mounting = Reiniciar montura
reset-quick = Reinicio rápido
## Serial detection stuff
serial_detection-new_device-p0 = ¡Nuevo dispositivo serial detectado!
serial_detection-new_device-p1 = ¡Ingresa tus credenciales del Wi-Fi!
serial_detection-new_device-p2 = Por favor selecciona que quieres hacer con el
serial_detection-open_wifi = Conectarse al Wi-Fi
serial_detection-open_serial = Abrir consola serial
serial_detection-submit = ¡Enviar!
serial_detection-close = Cerrar
## Navigation bar
navbar-home = Inicio
navbar-body_proportions = Proporciones corporales
navbar-trackers_assign = Asignación de sensores
navbar-mounting = Calibración de montura
navbar-onboarding = Asistente de configuración
navbar-settings = Ajustes
## Bounding volume hierarchy recording
bvh-start_recording = Grabar BVH
bvh-recording = Grabando...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostrar interfaz en SteamVR
widget-overlay-is_mirrored_label = Mostrar interfaz reflejada
## Widget: Drift compensation
widget-drift_compensation-clear = Limpiar compensación de desviación
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
widget-developer_mode-fast_data_feed = Fast data feed
widget-developer_mode-filter_slimes_and_hmd = Filter slimes and HMD
widget-developer_mode-sort_by_name = Sort by name
widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Sin estado
tracker-status-busy = Ocupado
tracker-status-error = Error
tracker-status-disconnected = Desconectado
tracker-status-occluded = Ocluido
tracker-status-ok = Conectado
## Tracker status columns
tracker-table-column-name = Nombre
tracker-table-column-type = Tipo
tracker-table-column-battery = Batería
tracker-table-column-ping = Latencia
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Rotación X/Y/Z
tracker-table-column-position = Posición X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Frente
tracker-rotation-left = Izquierda
tracker-rotation-right = Derecha
tracker-rotation-back = Atrás
## Tracker information
tracker-infos-manufacturer = Fabricante
tracker-infos-display_name = Nombre
tracker-infos-custom_name = Nombre personalizado
tracker-infos-url = URL del sensor
## Tracker settings
tracker-settings-back = Volver a la lista de sensores
tracker-settings-title = Ajustes de los sensores
tracker-settings-assignment_section = Asignación
tracker-settings-assignment_section-description = Parte del cuerpo asignado al sensor.
tracker-settings-assignment_section-edit = Editar asignación
tracker-settings-mounting_section = Posición de montura
tracker-settings-mounting_section-description = ¿Dónde está montado el sensor?
tracker-settings-mounting_section-edit = Editar montura
tracker-settings-drift_compensation_section = Permitir compensación de desviación
tracker-settings-drift_compensation_section-description = ¿Este sensor deberia compensar la desviación?
tracker-settings-drift_compensation_section-edit = Permitir compensación de desviación
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nombre del sensor
tracker-settings-name_section-description = Dale un apodo bonito :)
tracker-settings-name_section-placeholder = Pata izquierda de Manteca
## Tracker part card info
tracker-part_card-no_name = Sin nombre
tracker-part_card-unassigned = Sin asignar
## Body assignment menu
body_assignment_menu = ¿Dónde quieres que esté este sensor?
body_assignment_menu-description = Selecciona la posición donde quieres asignar este sensor. También puedes escoger administrar todos los sensores al mismo tiempo en vez de uno por uno.
body_assignment_menu-show_advanced_locations = Mostrar posiciones de asignación avanzadas
body_assignment_menu-manage_trackers = Administrar todos los sensores
body_assignment_menu-unassign_tracker = Desasignar sensor
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = ¿Qué sensor asignar a tu
tracker_selection_menu-NONE = ¿Qué sensor quieres que esté sin asignar?
tracker_selection_menu-HEAD = { -tracker_selection-part } cabeza?
tracker_selection_menu-NECK = { -tracker_selection-part } cuello?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } hombro derecho?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } brazo superior derecho?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } antebrazo derecho?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } mano derecha?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } muslo derecho?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } tobillo derecho?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } pie derecho?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } mando derecho?
tracker_selection_menu-CHEST = { -tracker_selection-part } pecho?
tracker_selection_menu-WAIST = { -tracker_selection-part } cintura?
tracker_selection_menu-HIP = { -tracker_selection-part } cadera?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } hombro izquierdo?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } brazo superior izquierdo?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } antebrazo izquierdo?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } mano izquierda?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } muslo izquierdo?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } tobillo izquiero?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } pie izquierdo?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } mando izquierdo?
tracker_selection_menu-unassigned = Sensores sin asignar
tracker_selection_menu-assigned = Sensores asignados
tracker_selection_menu-dont_assign = No asignar
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Advertencia:</b> Un sensor de cuello puede ser mortal si se ajusta demasiado,
¡La correa podría cortar la circulación a tu cabeza!
tracker_selection_menu-neck_warning-done = Entiendo los riesgos
tracker_selection_menu-neck_warning-cancel = Cancelar
## Mounting menu
mounting_selection_menu = ¿Dónde quieres colocar el sensor?
mounting_selection_menu-close = Cerrar
## Sidebar settings
settings-sidebar-title = Ajustes
settings-sidebar-general = General
settings-sidebar-tracker_mechanics = Mecánicas del sensor
settings-sidebar-fk_settings = Ajustes de FK
settings-sidebar-gesture_control = Control de gestos
settings-sidebar-interface = Interfaz
settings-sidebar-osc_router = Router OSC
settings-sidebar-utils = Utilidades
settings-sidebar-serial = Consola serial
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Sensores en SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Habilita o deshabilita sensores de SteamVR en específico.
Útil para juegos y aplicaciones que solo soportan ciertos sensores..
settings-general-steamvr-trackers-waist = Cintura
settings-general-steamvr-trackers-chest = Pecho
settings-general-steamvr-trackers-feet = Pies
settings-general-steamvr-trackers-knees = Rodillas
settings-general-steamvr-trackers-elbows = Codos
settings-general-steamvr-trackers-hands = Manos
## Tracker mechanics
settings-general-tracker_mechanics = Mecánicas del sensor
settings-general-tracker_mechanics-filtering = Filtrado
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Selecciona un tipo de filtro para tus sensores.
Predicción predice el movimiento mientras que el suavizado suaviza el movimiento.
settings-general-tracker_mechanics-filtering-type = Tipos de filtro
settings-general-tracker_mechanics-filtering-type-none = Sin filtro
settings-general-tracker_mechanics-filtering-type-none-description = Usa las rotaciones como son. No se realizará ningún filtrado.
settings-general-tracker_mechanics-filtering-type-smoothing = Suavizado
settings-general-tracker_mechanics-filtering-type-smoothing-description = Suaviza los movimientos pero añade algo de latencia.
settings-general-tracker_mechanics-filtering-type-prediction = Predicción
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduce la latencia y los movimientos serán más inmediatos, pero puede incrementar la inestabilidad.
settings-general-tracker_mechanics-filtering-amount = Cantidad
settings-general-tracker_mechanics-drift_compensation = Compensación de desviación
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensa la desviación del eje vertical de los sensores aplicando una rotación inversa.
Cambia la fuerza de la compensación y hasta cuantos reinicios tomar en cuenta.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensación de desviación
settings-general-tracker_mechanics-drift_compensation-amount-label = Fuerza de la compensación
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Utilizar hasta los últimos x reinicios
## FK/Tracking settings
settings-general-fk_settings = Ajustes de sensores
settings-general-fk_settings-leg_tweak = Corrección de piernas
settings-general-fk_settings-leg_tweak-description = El clip del suelo puede reducir o incluso eliminar el traspaso del piso pero puede causar problemas cuando te arrodilles. Corrección del patinaje corrige el patinaje, pero puede disminuir la precisión de ciertos movimientos.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Clip del suelo
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Corrección del patinaje
settings-general-fk_settings-leg_tweak-skating_correction-amount = Agresividad de la corrección del patinaje
settings-general-fk_settings-arm_fk = Trackeo de brazos
settings-general-fk_settings-arm_fk-description = Cambia cómo el movimiento de los brazos es detectado.
settings-general-fk_settings-arm_fk-force_arms = Forzar brazos desde el HMD
settings-general-fk_settings-skeleton_settings = Ajustes de esqueleto
settings-general-fk_settings-skeleton_settings-description = Habilita o deshabilita los ajustes de esqueleto. Es recomendado dejar estos ajustes habilitados.
settings-general-fk_settings-skeleton_settings-extended_spine = Extención de columna
settings-general-fk_settings-skeleton_settings-extended_pelvis = Extención de pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Extención de rodillas
settings-general-fk_settings-vive_emulation-title = Vive emulation
settings-general-fk_settings-vive_emulation-description = Emulate the waist tracker problems that Vive trackers have. This is a joke and makes tracking worse.
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Control de gestos
settings-general-gesture_control-subtitle = Reinicio basado en toques
settings-general-gesture_control-description = Permite la ejecución de un reinicio al tocar un sensor. El sensor más alto en el torso es utilizado para el reinicio rápido, el sensor más alto en tu pierna izquierda es utilizado para el reinicio, y el sensor más alto en tu pierna derecha es utilizado para reiniciar la montura. Cabe destacar que los toques deben suceder dentro de 0.6 segundos para ser registrados.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 toque
*[other] { $amount } toques
}
settings-general-gesture_control-quickResetEnabled = Activar toques para reinicio rápido
settings-general-gesture_control-quickResetDelay = Retraso de reinicio rápido
settings-general-gesture_control-quickResetTaps = Toques para reinicio rápido
settings-general-gesture_control-resetEnabled = Activar toques para reinicio
settings-general-gesture_control-resetDelay = Retraso de reinicio
settings-general-gesture_control-resetTaps = Toques para reinicio
settings-general-gesture_control-mountingResetEnabled = Activar toques para reinicio de montura
settings-general-gesture_control-mountingResetDelay = Retraso de reinicio de montura
settings-general-gesture_control-mountingResetTaps = Toques para reinicio de montura
## Interface settings
settings-general-interface = Interfaz
settings-general-interface-dev_mode = Modo desarrollador
settings-general-interface-dev_mode-description = Este modo puede ser útil si es que necesitas información a fondo o para un nivel de interacción más avanzado con los sensores conectados.
settings-general-interface-dev_mode-label = Modo desarrollador
settings-general-interface-serial_detection = Detección de dispositivo serial
settings-general-interface-serial_detection-description = Esta opción mostrará un notificación cada vez que conectes un nuevo dispositivo serial que pueda ser un sensor. Ayuda a mejorar el proceso de configuración de un sensor.
settings-general-interface-serial_detection-label = Detección de dispositivo serial
settings-general-interface-lang = Selecciona un idioma
settings-general-interface-lang-description = Cambia el idioma que quieras usar.
settings-general-interface-lang-placeholder = Selecciona el idioma a utilizar
## Serial settings
settings-serial = Consola serial
# This cares about multilines
settings-serial-description =
Esta es la comunicación serial actualizada en vivo.
Puede ser util para saber si el firmware tiene problemas.
settings-serial-connection_lost = Conexión serial perdida, reconectando...
settings-serial-reboot = Reinciar
settings-serial-factory_reset = Restauración de fábrica
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Advertencia:</b> Esto reiniciará el sensor a sus ajustes de fábrica.
¡Esto significa que los ajustes de calibración y Wi-Fi <b>se perderán</b>!
settings-serial-factory_reset-warning-ok = Sé lo que estoy haciendo
settings-serial-factory_reset-warning-cancel = Cancelar
settings-serial-get_infos = Obtener información
settings-serial-serial_select = Selecciona un puerto serial
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = Router OSC
# This cares about multilines
settings-osc-router-description =
Redirecciona mensajes OSC recibidos de otro programa.
Útil para usar otro programa OSC con VRChat por ejemplo.
settings-osc-router-enable = Habilitar
settings-osc-router-enable-description = Habilita el reenvío de mensajes.
settings-osc-router-enable-label = Habilitar
settings-osc-router-network = Puertos de conexión
# This cares about multilines
settings-osc-router-network-description =
Establece los puertos de entrada y salida de datos
Estos pueden ser lo mismos puertos usados en el servidor de SlimeVR.
settings-osc-router-network-port_in =
.label = Puerto de entrada
.placeholder = Puerto de entrada (por defecto: 9002)
settings-osc-router-network-port_out =
.label = Puerto de salida
.placeholder = Puerto de salida (por defecto: 9000)
settings-osc-router-network-address = Dirección de red
settings-osc-router-network-address-description = Establece la direción a la cuál se enviarán los datos.
settings-osc-router-network-address-placeholder = Dirección IPv4
## OSC VRChat settings
settings-osc-vrchat = Sensores OSC de VRChat
# This cares about multilines
settings-osc-vrchat-description =
Cambiar ajustes específicos de VRChat para recibir datos del HMD y enviar
datos de los sensores para seguimiento de cuerpo completo (funciona en Quest nativo).
settings-osc-vrchat-enable = Habilitar
settings-osc-vrchat-enable-description = Habilita el envio y recibo de datos.
settings-osc-vrchat-enable-label = Habilitar
settings-osc-vrchat-network = Puertos de conexión
settings-osc-vrchat-network-description = Establece los puertos de entrada y salida de datos a VRChat.
settings-osc-vrchat-network-port_in =
.label = Puerto de entrada
.placeholder = Puerto de entrada (por defecto: 9001)
settings-osc-vrchat-network-port_out =
.label = Puerto de salida
.placeholder = Puerto de salida (por defecto: 9000)
settings-osc-vrchat-network-address = Dirección de red
settings-osc-vrchat-network-address-description = Establece la dirección donde se enviarán los datos de VRChat (revisa los ajustes de Wi-Fi de tu dispositivo que tenga el juego).
settings-osc-vrchat-network-address-placeholder = Dirección IP de VRChat
settings-osc-vrchat-network-trackers = Sensores
settings-osc-vrchat-network-trackers-description = Habilita el envío de sensores específicos mediante OSC.
settings-osc-vrchat-network-trackers-chest = Pecho
settings-osc-vrchat-network-trackers-waist = Cintura
settings-osc-vrchat-network-trackers-knees = Rodillas
settings-osc-vrchat-network-trackers-feet = Pies
settings-osc-vrchat-network-trackers-elbows = Codos
## Setup/onboarding menu
onboarding-skip = Saltar configuración
onboarding-continue = Continuar
onboarding-wip = Trabajo en progreso
## Wi-Fi setup
onboarding-wifi_creds-back = Volver a la introducción
onboarding-wifi_creds = Ingresar credenciales del Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Los sensores utilizarán estas credenciales para conectarse inalámbricamente.
Por favor usa las credenciales del Wi-Fi al cuál estás conectado actualmente.
onboarding-wifi_creds-skip = Saltar ajustes de Wi-Fi
onboarding-wifi_creds-submit = ¡Enviar!
onboarding-wifi_creds-ssid =
.label = Nombre del WiFi
.placeholder = Ingresa el nombre del WiFi
onboarding-wifi_creds-password =
.label = Contraseña
.placeholder = Ingresa la contraseña
## Mounting setup
onboarding-reset_tutorial-back = Volver a la calibración de montura
onboarding-reset_tutorial = Reiniciar tutorial
onboarding-reset_tutorial-description = Esta aún parte no está finalizada, por favor presione continuar
## Setup start
onboarding-home = Bienvenido a SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
¡Acercando el seguimiento
de cuerpo completo a todos!
onboarding-home-start = ¡Comencemos!
## Enter VR part of setup
onboarding-enter_vr-back = Volver a la asignación de sensores
onboarding-enter_vr-title = ¡Es hora de entrar a la RV!
onboarding-enter_vr-description = ¡Ponte todos tus sensores y luego entra a la RV!
onboarding-enter_vr-ready = Estoy listo
## Setup done
onboarding-done-title = ¡Estás listo!
onboarding-done-description = Disfruta moverte en la realidad virtual
onboarding-done-close = Cerrar la guía
## Tracker connection setup
onboarding-connect_tracker-back = Volver a las credenciales Wi-Fi
onboarding-connect_tracker-title = Conecta tus sensores
onboarding-connect_tracker-description-p0 = Ahora la parte divertida, ¡Conectar todos tus sensores!
onboarding-connect_tracker-description-p1 = Simplemente conecta todos los sensores que aún no están conectados, por medio de un puerto USB.
onboarding-connect_tracker-issue-serial = ¡Tengo problemas conectándolos!
onboarding-connect_tracker-usb = Sensor USB
onboarding-connect_tracker-connection_status-none = Buscando sensores
onboarding-connect_tracker-connection_status-serial_init = Conectando al dispositivo serial
onboarding-connect_tracker-connection_status-provisioning = Enviando credenciales Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Enviando credenciales Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Buscando servidor
onboarding-connect_tracker-connection_status-connection_error = Incapaz de conectar al Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = No se pudo encontrar el servidor
onboarding-connect_tracker-connection_status-done = Conectado con el servidor
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No hay sensores conectados
[one] 1 sensor conectado
*[other] { $amount } sensores conectados
}
onboarding-connect_tracker-next = He conectado todos mis sensores
## Tracker assignment setup
onboarding-assign_trackers-back = Volver a las credenciales Wi-Fi
onboarding-assign_trackers-title = Asignación de sensores
onboarding-assign_trackers-description = Debes escoger dónde van los sensores. Has clic en la ubicación donde quieras colocar un sensor
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } de { $trackers ->
[one] 1 sensor asignado
*[other] { $trackers } sensores asignados
}
onboarding-assign_trackers-advanced = Mostrar ubicación de asignaciones avanzados.
onboarding-assign_trackers-next = He asignado todos los sensores
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] El pie izquierdo está asignado, pero necesitas el tobillo izquierdo, el muslo izquierdo y que el pecho, la cadera o la cintura estén asignados.
[1] El pie izquierdo está asignado, pero necesitas que el muslo izquierdo y el pecho, la cadera o la cintura estén asignados.
[2] El pie izquierdo está asignado, pero necesitas que el tobillo izquierdo y el pecho, la cadera o la cintura estén asignados.
[3] El pie izquierdo está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[4] El pie izquierdo está asignado, pero necesitas que el tobillo izquierdo y el muslo izquierdo estén asignados.
[5] El pie izquierdo está asignado, pero necesitas que el muslo izquierdo igual esté asignado.
[6] El pie izquierdo está asignado, pero necesitas que el tobillo izquierdo igual esté asignado.
*[unknown] El pie izquierdo está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] El pie derecho está asignado, pero necesitas el tobillo derecho, el muslo derecho y que el pecho, la cadera o la cintura estén asignados.
[1] El pie derecho está asignado, pero necesitas el muslo derecho y el pecho, la cadera o la cintura estén asignados.
[2] El pie derecho está asignado, pero necesitas el tobillo derecho y el pecho, la cadera o la cintura estén asignados.
[3] El pie derecho está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[4] El pie derecho está asignado, pero necesitas que el tobillo derecho y el muslo derecho estén asignados.
[5] El pie derecho está asignado, pero necesitas que el muslo derecho igual esté asignado.
[6] El pie derecho está asignado, pero necesitas que el tobillo derecho igual esté asignado.
*[unknown] El pie derecho está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] El tobillo izquierdo está asignado, pero necesitas el muslo izquierdo y que el pecho, la cadera o la cintura estén asignados.
[1] El tobillo izquierdo está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[2] El tobillo izquierdo está asignado, pero necesitas que el muslo izquierdo igual esté asignado.
*[unknown] El tobillo izquierdo está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] El tobillo derecho está asignado, pero necesitas el muslo derecho y que el pecho, la cadera o la cintura estén asignados.
[1] El tobillo derecho está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[2] El tobillo derecho está asignado, pero necesitas que el muslo derecho igual esté asignado.
*[unknown] El tobillo derecho está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] El muslo izquierdo está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
*[unknown] El muslo izquierdo está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] El muslo derecho está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
*[unknown] El muslo derecho está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] La cadera está asignada, pero necesitas que el pecho igual esté asignado.
*[unknown] La cadera está asignada, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] La cintura está asignada, pero necesitas que el pecho igual esté asignado.
*[unknown] La cintura está asignada, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Volver para entrar a la RV
onboarding-manual_mounting = Montura manual
onboarding-manual_mounting-description = Has clic en todos los sensores y selecciona en que dirección están montados
onboarding-manual_mounting-auto_mounting = Montura automática
onboarding-manual_mounting-next = Siguiente paso
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Volver para entrar a la RV
onboarding-automatic_mounting-title = Calibración de montura
onboarding-automatic_mounting-description = Para que los sensores SlimeVR funcionen, necesitamos asignar una posición de montura a tus sensores para que se alinien con la montura física de tu sensor.
onboarding-automatic_mounting-manual_mounting = Establecer montura manualmente
onboarding-automatic_mounting-next = Siguiente paso
onboarding-automatic_mounting-prev_step = Paso anterior
onboarding-automatic_mounting-done-title = Ubicación de monturas calibradas.
onboarding-automatic_mounting-done-description = ¡Tu calibración de monturas está completa!
onboarding-automatic_mounting-done-restart = Volver al inicio
onboarding-automatic_mounting-mounting_reset-title = Reinicio de montura
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Arrodíllate en una posición de «esquiar» con tus piernas dobladas, la parte superior de tu cuerpo inclinada hacia adelante, y tus brazos doblados.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Presiona el botón «Reinicio de montura» y espera 3 segundos hasta que se reinicie la montura.
onboarding-automatic_mounting-preparation-title = Preparación
onboarding-automatic_mounting-preparation-step-0 = 1. Párate derecho con tus brazos a los costados.
onboarding-automatic_mounting-preparation-step-1 = 2. Presiona el botón «Reiniciar» y espera 3 segundos hasta que se reinicien los sensores.
onboarding-automatic_mounting-put_trackers_on-title = Ponte tus sensores
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la ubicación de tus monturas, usaremos los sensores que has asignado. Ponte todos tus sensores, puedes ver cuál es cual en la figura de la derecha.
onboarding-automatic_mounting-put_trackers_on-next = Tengo puestos todos mis sensores
## Tracker manual proportions setup
onboarding-manual_proportions-back = Volver al tutorial de reinicio
onboarding-manual_proportions-title = Proporciones de cuerpo manuales
onboarding-manual_proportions-precision = Ajuste con precisión
onboarding-manual_proportions-auto = Calibración automática
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Volver al tutorial de reinicio
onboarding-automatic_proportions-title = Mide tu cuerpo
onboarding-automatic_proportions-description = Para que los sensores de SlimeVR funcionen, necesitamos saber el largo de tus huesos. Esta breve calibración los medirá por ti.
onboarding-automatic_proportions-manual = Calibración manual
onboarding-automatic_proportions-prev_step = Paso anterior
onboarding-automatic_proportions-put_trackers_on-title = Ponte tus sensores
onboarding-automatic_proportions-put_trackers_on-description = Para calibrar tus proporciones, usaremos los sensores que acabas de asignar. Ponte todos tus sensores, puedes ver cuál es cual en la figura de la derecha.
onboarding-automatic_proportions-put_trackers_on-next = Tengo puestos todos mis sensores
onboarding-automatic_proportions-preparation-title = Preparación
onboarding-automatic_proportions-preparation-description = Coloca una silla directamente detrás de ti en tu area de juego. Prepárate para sentarte durante la configuración del autobone.
onboarding-automatic_proportions-preparation-next = Estoy al frente de una silla
onboarding-automatic_proportions-start_recording-title = Prepárate para moverte
onboarding-automatic_proportions-start_recording-description = Ahora vamos a grabar poses y movimientos en específico. Estas serán mostradas en la siguiente ventana. ¡Prepárate para empezar cuando presiones el botón!
onboarding-automatic_proportions-start_recording-next = Empezar grabación
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Grabación en proceso...
onboarding-automatic_proportions-recording-description-p1 = Realiza los siguientes movimientos:
onboarding-automatic_proportions-recording-steps-0 = Dobla tus rodillas unas cuantas veces.
onboarding-automatic_proportions-recording-steps-1 = Sientate en una silla y párate.
onboarding-automatic_proportions-recording-steps-2 = Gira tu torso hacia la izquierda, luego inclínate hacia la derecha.
onboarding-automatic_proportions-recording-steps-3 = Gira tu torso hacia la derecha, luego inclínate hacia la izquierda.
onboarding-automatic_proportions-recording-steps-4 = Menea tu cuerpo hasta que el tiempo se acabe.
onboarding-automatic_proportions-recording-processing = Procesando el resultado
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] falta 1 segundo
*[other] faltan { $time } segundos
}
onboarding-automatic_proportions-verify_results-title = Verificando resultados
onboarding-automatic_proportions-verify_results-description = Comprueba abajo los resultados, ¿Parecen correctos?
onboarding-automatic_proportions-verify_results-results = Grabando resultados
onboarding-automatic_proportions-verify_results-processing = Procesando resultados
onboarding-automatic_proportions-verify_results-redo = Rehacer grabación
onboarding-automatic_proportions-verify_results-confirm = Son correctos
onboarding-automatic_proportions-done-title = Cuerpo medido y guardado.
onboarding-automatic_proportions-done-description = ¡La calibración de tus proporciones corporales fue completada!
## Home
home-no_trackers = No hay sensores detectados o asignados

View File

@@ -0,0 +1,587 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Serveriga ühendamine
websocket-connection_lost = Ühendus serveriga on kaotatud. Ühenduse taastamine...
## Tips
tips-find_tracker = Ei ole kindel milline jälgija on mis? Raputage jälgijat ja vaadake milline jälgija tõstetakse esile.
tips-do_not_move_heels = Veenduge, et teie kannad ei liigu salvestamise ajal!
## Body parts
body_part-NONE = Määramata
body_part-HEAD = Pea
body_part-NECK = Kael
body_part-RIGHT_SHOULDER = Parem õlg
body_part-RIGHT_UPPER_ARM = Parem õlavars
body_part-RIGHT_LOWER_ARM = Parem küünarvars
body_part-RIGHT_HAND = Parem käsi
body_part-RIGHT_UPPER_LEG = Parem reis
body_part-RIGHT_LOWER_LEG = Parem säär
body_part-RIGHT_FOOT = Parem jalg
body_part-RIGHT_CONTROLLER = Parem kontroller
body_part-CHEST = Rind
body_part-WAIST = Vöökoht
body_part-HIP = Puus
body_part-LEFT_SHOULDER = Vasak õlg
body_part-LEFT_UPPER_ARM = Vasak õlavars
body_part-LEFT_LOWER_ARM = Vasak küünarvars
body_part-LEFT_HAND = Vasak käsi
body_part-LEFT_UPPER_LEG = Vasak reis
body_part-LEFT_LOWER_LEG = Vasak säär
body_part-LEFT_FOOT = Vasak jalg
body_part-LEFT_CONTROLLER = Vasak kontroller
## Proportions
skeleton_bone-NONE = Mitte midagi
skeleton_bone-HEAD = Pea Nihe
skeleton_bone-NECK = Kaela Pikkus
skeleton_bone-CHEST = Chest Length
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-WAIST = Waist Length
skeleton_bone-HIP = Hip Lengthskeleton_bone-CHEST = Rinna Vahemaa
skeleton_bone-HIP_OFFSET = Puusa Nihe
skeleton_bone-HIPS_WIDTH = Puusa Laius
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-LOWER_LEG = Lower Leg Length
skeleton_bone-FOOT_LENGTH = Jala Pikkus
skeleton_bone-FOOT_SHIFT = Jala Nihe
skeleton_bone-SKELETON_OFFSET = Skeletti Nihe
skeleton_bone-SHOULDERS_DISTANCE = Õlgade Kaugus
skeleton_bone-SHOULDERS_WIDTH = Õlgade Laius
skeleton_bone-UPPER_ARM = Õlavarre Pikkus
skeleton_bone-LOWER_ARM = Käsivarre Kaugus
skeleton_bone-CONTROLLER_Y = Kontrolleri Kaugus Y
skeleton_bone-CONTROLLER_Z = Kontrolleri Kaugus Z
skeleton_bone-ELBOW_OFFSET = Küünarnuki Nihe
## Tracker reset buttons
reset-reset_all = Lähtesta kõik proportsioonid
reset-full = Lähtesta
reset-mounting = Lähtesta Paigaldusasend
reset-quick = Kiir Lähtestamine
## Serial detection stuff
serial_detection-new_device-p0 = Uus jadaseade tuvastatud!
serial_detection-new_device-p1 = Sisestage enda Wi-Fi andmed!
serial_detection-new_device-p2 = Palun valige, mida te soovite sellega teha
serial_detection-open_wifi = Ühendage Wi-Fi-ga
serial_detection-open_serial = Avage Jadakonsool
serial_detection-submit = Jätka!
serial_detection-close = Sulge
## Navigation bar
navbar-home = Kodu
navbar-body_proportions = Keha Proportsioonid
navbar-trackers_assign = Jälgija Määramine
navbar-mounting = Jälgijate Paigalduse Kalibreerimine
navbar-onboarding = Häälestusviisard
navbar-settings = Seaded
## Bounding volume hierarchy recording
bvh-start_recording = Salvesta BVH
bvh-recording = Salvestamine...
## Widget: Overlay settings
widget-overlay = Ülekate
widget-overlay-is_visible_label = Näita Ülekatet SteamVR-is
widget-overlay-is_mirrored_label = Näita Ülekatet Peeglina
## Widget: Developer settings
widget-developer_mode = Arendaja režiim
widget-developer_mode-high_contrast = Kõrge kontrastsus
widget-developer_mode-precise_rotation = Täpne pööre
widget-developer_mode-fast_data_feed = Kiire andmevoog
widget-developer_mode-filter_slimes_and_hmd = Filtreerige slimid ja HMD-d
widget-developer_mode-sort_by_name = Sorteeri nime järgi
widget-developer_mode-raw_slime_rotation = Toores pööre
widget-developer_mode-more_info = Rohkem infot
## Widget: IMU Visualizer
widget-imu_visualizer = Rotatsiooni
widget-imu_visualizer-rotation_raw = Toores
widget-imu_visualizer-rotation_preview = Eelvaade
## Tracker status
tracker-status-none = Staatuseta
tracker-status-busy = Hõivatud
tracker-status-error = Viga
tracker-status-disconnected = Ühendus katkestatud
tracker-status-occluded = Jälgija kadunud
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Nimi
tracker-table-column-type = Tüüp
tracker-table-column-battery = Patarei
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Pööre X/Y/Z
tracker-table-column-position = Positsioon X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Ees
tracker-rotation-left = Vasak
tracker-rotation-right = Parem
tracker-rotation-back = Taga
## Tracker information
tracker-infos-manufacturer = Tootja
tracker-infos-display_name = Kuvatav Nimi
tracker-infos-custom_name = Kohandatud Nimi
tracker-infos-url = Jälgija URL
## Tracker settings
tracker-settings-back = Minge tagasi jälgija loendise
tracker-settings-title = Jälgija Seaded
tracker-settings-assignment_section = Jälgija asukoha määramine
tracker-settings-assignment_section-description = Mis kehaosale jälgija määratud on.
tracker-settings-assignment_section-edit = Muuda jälgija asukohta
tracker-settings-mounting_section = Paigaldusasend
tracker-settings-mounting_section-description = Kuhu on jälgija paigaldatud.
tracker-settings-mounting_section-edit = Muuda paigaldusasendit
tracker-settings-drift_compensation_section = Allow drift compensation
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Allow drift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Jälgija Nimi
tracker-settings-name_section-description = Anna talle armas hüüdnimi :)
tracker-settings-name_section-placeholder = NightyBeast-i vasak käsi
## Tracker part card info
tracker-part_card-no_name = Nimi puudub
tracker-part_card-unassigned = Määramata
## Body assignment menu
body_assignment_menu = Kus te soovite, et jälgija oleks?
body_assignment_menu-description = Vali asukoht kuhu te soovite, et jälgija määratakse. Alternatiivina saate te hallata kõiki jälgijaid korraga mitte ükshaaval.
body_assignment_menu-show_advanced_locations = Kuva täpsem määramise asukoht
body_assignment_menu-manage_trackers = Halda kõiki jälgijaid
body_assignment_menu-unassign_tracker = Tühista jälgija määramine
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Millist jälgijat määrata teie
tracker_selection_menu-NONE = Millise jälgija määramist soovite tühistada?
tracker_selection_menu-HEAD = { -tracker_selection-part } peale?
tracker_selection_menu-NECK = { -tracker_selection-part } kaelale?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } paremale õlale?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } paremale õlavarrele?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } paremale küünarvarrele?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } paremale käele?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } paremale reiele?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } paremale säärele?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } paremale jalale?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } paremale kontrollerile?
tracker_selection_menu-CHEST = { -tracker_selection-part } rind?
tracker_selection_menu-WAIST = { -tracker_selection-part } vöökoht?
tracker_selection_menu-HIP = { -tracker_selection-part } puus?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } vasakule õlale?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } vasakule õlavarrele?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } vasakule küünarvarrele_
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } vasakule käele?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } vasakule reiele?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } vasakule säärele?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } vasakule jalale?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } vasakule kontrollerile?
tracker_selection_menu-unassigned = Määramata Jälgijad
tracker_selection_menu-assigned = Määratud Jälgijad
tracker_selection_menu-dont_assign = Ära määra jälgijat
## Mounting menu
mounting_selection_menu = Kus te soovite, et see jälgija paikneks?
mounting_selection_menu-close = Sulge
## Sidebar settings
settings-sidebar-title = Seaded
settings-sidebar-general = Tavaline
settings-sidebar-tracker_mechanics = Jälgija mehaanika
settings-sidebar-fk_settings = FK seaded
settings-sidebar-gesture_control = Žesti juhtimine
settings-sidebar-interface = Liides
settings-sidebar-osc_router = OSC ruuter
settings-sidebar-utils = Olemus / Lisad
settings-sidebar-serial = Jadakonsool
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR jälgijad
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Luba või keela spetsiifilised SteamVR-i jälgijad.
Kasulik teatud mängudele või äppidele, mis toetavad ainult teatuid jälgijaid.
settings-general-steamvr-trackers-waist = Vöökoht
settings-general-steamvr-trackers-chest = Rind
settings-general-steamvr-trackers-feet = Jalad
settings-general-steamvr-trackers-knees = Põlved
settings-general-steamvr-trackers-elbows = Küünarnukid
settings-general-steamvr-trackers-hands = Käed
## Tracker mechanics
settings-general-tracker_mechanics = Jälgija mehaanika
settings-general-tracker_mechanics-filtering = Filtreerimine
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Vali filtreerimis tüüp enda jälgijatele.
Ennustus ennustab liikumist, aga silestamine silestab liikumist.
settings-general-tracker_mechanics-filtering-type = Filtreerimise tüüp
settings-general-tracker_mechanics-filtering-type-none = Ei mingit filtreerimist
settings-general-tracker_mechanics-filtering-type-none-description = Kasutage pöörlemist nii nagu on. Ei tee mingit filtreerimist.
settings-general-tracker_mechanics-filtering-type-smoothing = Silestamine
settings-general-tracker_mechanics-filtering-type-smoothing-description = Teeb liigutused siledaks, aga lisab aega jälgija ja programmi vahel.
settings-general-tracker_mechanics-filtering-type-prediction = Ennustamine
settings-general-tracker_mechanics-filtering-type-prediction-description = Vähendab aega jälgija ja programmi vahel ja tee liigutused kiiremaks, aga võib lisada värinat.
settings-general-tracker_mechanics-filtering-amount = Amount
settings-general-tracker_mechanics-drift_compensation = Drift compensation
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensates IMU yaw drift by applying an inverse rotation.
Change amount of compensation and up to how many resets are taken into account.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensation
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
## FK/Tracking settings
settings-general-fk_settings = Jälgija seaded
settings-general-fk_settings-leg_tweak = Jälgija näpunäiteid
settings-general-fk_settings-leg_tweak-description = Põranda läbimine saab vähendada või isegi elimineerida jalgade positsiooni läbimist põrandaga, võib põhjustada probleeme põlvedega. Libisemise korrigeerimine korregeerib jalgade libisemist liikudes, aga võib vähendada täpsust teatud liikumiste puhul.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Põranda läbimine
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Libisemise korrigeerimine
settings-general-fk_settings-leg_tweak-skating_correction-amount = Libisemise korrigeerimine jõud
settings-general-fk_settings-arm_fk = Käe jälgimine
settings-general-fk_settings-arm_fk-description = Muuda viisi kuidas käsi jälgitakse.
settings-general-fk_settings-arm_fk-force_arms = Sunni käed HMD-st
settings-general-fk_settings-skeleton_settings = Skeletti seaded
settings-general-fk_settings-skeleton_settings-description = Lülita skeletti seaded sisse või välja. Soovitatud on see sisse jätta.
settings-general-fk_settings-skeleton_settings-extended_spine = Selgroo laiendamine
settings-general-fk_settings-skeleton_settings-extended_pelvis = Vaagnaluu laiendamine
settings-general-fk_settings-skeleton_settings-extended_knees = Põlve laiendamine
settings-general-fk_settings-vive_emulation-title = Vive-i emulatsioon
settings-general-fk_settings-vive_emulation-description = Emuleeri vöökoha jälgija probleeme mis Vive jälgijatel on. See on nali ja teeb jälgijate täpsuse halvaks.
settings-general-fk_settings-vive_emulation-label = Luba Vive-i emulatsioon
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Žesti juhtimine
settings-general-gesture_control-subtitle = Puudutusepõhised lähtestused
settings-general-gesture_control-description = Lubab lähtestada jälgija puudutades jälgijat. Jälgija kere kõige kõrgemal osal kasutatakse kiireks lähtestamiseks, jälgija vasaku jala kõige kõrgemal osal kasutatakse lähtestamiseks ja jälgija parema jala kõige kõrgemal osal kasutatakse paigalduse lähtestamiseks. Vajutused peavad toimuma 0.6 sekundi jooksul, et need registreeritaks.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Luba, et vajutus kiir lähtestab
settings-general-gesture_control-quickResetDelay = Kiir lähtestamise viivitus
settings-general-gesture_control-quickResetTaps = Kiir lähtestamis vajutus
settings-general-gesture_control-resetEnabled = Luba, et vajutus lähtestab
settings-general-gesture_control-resetDelay = Lähtestamise viivitus
settings-general-gesture_control-resetTaps = Lähtestamise vajutus
settings-general-gesture_control-mountingResetEnabled = Luba, et vajutus lähtestab paigalduseasendi
settings-general-gesture_control-mountingResetDelay = Paigaldusasendi lähtestamise viivitus
settings-general-gesture_control-mountingResetTaps = Paigaldusasendi lähtestamise vajutus
## Interface settings
settings-general-interface = Liides
settings-general-interface-dev_mode = Arendaja režiim
settings-general-interface-dev_mode-description = See režiim on kasulik, kui on vaja põhjalike andmeid või või suhelda ühendatud jälgijatega kõrgemal tasemel.
settings-general-interface-dev_mode-label = Arendaja režiim
settings-general-interface-serial_detection = Jadaseadme märkamine
settings-general-interface-serial_detection-description = See valik näitab hüpikakent iga kord kui panna sisse uus jada seade, mis võib olla jälgija. See aitab jälgija seadistusprotsessi parandada.
settings-general-interface-serial_detection-label = Jadaseadme märkamine
settings-general-interface-lang = Vaikekeel
settings-general-interface-lang-description = Muutke vaikekeelt, mida soovite kasutada.
settings-general-interface-lang-placeholder = Vali keel, mida kasutada
## Serial settings
settings-serial = Jadakonsool
# This cares about multilines
settings-serial-description =
See on reaalajas teabevoog jadaside jaoks.
Võib olla kasulik, kui on vaja teada, kas püsivara töötab.
settings-serial-connection_lost = Ühendus jadakonsooliga kaotatud. Ühenduse taastamine...
settings-serial-reboot = Taaskäivitage
settings-serial-factory_reset = Tehaseseadete taastamine
settings-serial-get_infos = Saa infot
settings-serial-serial_select = Valige jadaport
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC ruuter
# This cares about multilines
settings-osc-router-description =
Edasta OSC-teated teisest programmidest.
Kasulik, kui kasutada teist OSC programmi näiteks VRChat-iga.
settings-osc-router-enable = Luba
settings-osc-router-enable-description = Lülitage andmete sisestamine sisse/välja.
settings-osc-router-enable-label = Luba
settings-osc-router-network = Võrgupordid
# This cares about multilines
settings-osc-router-network-description =
Lisage võrgupordid, mille pealt saata ja kuulata andmeid.
Need võivad olla samad võrgupordid mida kasutab SlimeVR server.
settings-osc-router-network-port_in =
.label = Võrguport sisse
.placeholder = Võrguport sisse (vaikimisi: 9002)
settings-osc-router-network-port_out =
.label = Võrguport välja
.placeholder = Võrguport välja (vaikimisi: 9000)
settings-osc-router-network-address = Võrgu aadress
settings-osc-router-network-address-description = Lisage võrgu aadress kuhu saata andmeid.
settings-osc-router-network-address-placeholder = IPV4 aadress
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Jälgija
# This cares about multilines
settings-osc-vrchat-description =
Muuda VRChat-i spetsiifiliseid seadeid, et saada ja saata HMD andmeid.
Jälgijate andmed FBT jaoks (töötab Questi peal ilma arvuti ühenduseta).
settings-osc-vrchat-enable = Luba
settings-osc-vrchat-enable-description = Lülitage andmete sisestamine sisse/välja.
settings-osc-vrchat-enable-label = Luba
settings-osc-vrchat-network = Võrgupordid
settings-osc-vrchat-network-description = Lisage võrgupordid andmete saamiseks ja saatmiseks VRChat-i.
settings-osc-vrchat-network-port_in =
.label = Võrguport sisse
.placeholder = Võrguport sisse (vaikimisi: 9001)
settings-osc-vrchat-network-port_out =
.label = Võrguport välja
.placeholder = Võrguport välja (vaikimisi: 9000)
settings-osc-vrchat-network-address = Võrgu aadress
settings-osc-vrchat-network-address-description = Vali, mis aadressile saata andmeid VRChat-i jaoks (kontrolli enda Wi-Fi seadeid seadmest).
settings-osc-vrchat-network-address-placeholder = VRChat ip aadress
settings-osc-vrchat-network-trackers = Jälgia
settings-osc-vrchat-network-trackers-description = Lülita sisse/välja teatud jälgijate andmete saatmise OSC kaudu.
settings-osc-vrchat-network-trackers-chest = Rind
settings-osc-vrchat-network-trackers-waist = Vöökoht
settings-osc-vrchat-network-trackers-knees = Põlved
settings-osc-vrchat-network-trackers-feet = Jalad
settings-osc-vrchat-network-trackers-elbows = Küünarnukid
## Setup/onboarding menu
onboarding-skip = Jäta seadistamine vahele
onboarding-continue = Jätka
onboarding-wip = Töö käib
## Wi-Fi setup
onboarding-wifi_creds-back = Mine tagasi juhistele
onboarding-wifi_creds = Sisestage enda Wi-Fi andmed!
# This cares about multilines
onboarding-wifi_creds-description =
Jälgijad kasutavad neid andmeid, et ühendada juhtmevabalt.
Palun kasutage neid Wi-Fi andmeid, millega te praegu olete ühendatud.
onboarding-wifi_creds-skip = Jätke Wi-Fi seaded vahele.
onboarding-wifi_creds-submit = Jätka!
onboarding-wifi_creds-ssid =
.label = SSID
.placeholder = Sisesta SSID
onboarding-wifi_creds-password =
.label = parool
.placeholder = Sisesta parool
## Mounting setup
onboarding-reset_tutorial-back = Minge tagasi paigaldus kalibreerimisse
onboarding-reset_tutorial = Lähtesta õpetus
onboarding-reset_tutorial-description = See funktsioon pole valmis, vajutage lihtsalt nuppu Jätka
## Setup start
onboarding-home = Tere tulemast SlimeVR-i
# This cares about multilines and it's centered!!
onboarding-home-description =
Toome kogu keha jälgimise
kõigile
onboarding-home-start = Hakkame sättima!
## Enter VR part of setup
onboarding-enter_vr-back = Minge tagasi jälgijate määramisse
onboarding-enter_vr-title = Aeg minna VR-i!
onboarding-enter_vr-description = Pange selga kõik jälgijad ja VR prillid.
onboarding-enter_vr-ready = Olen valmis
## Setup done
onboarding-done-title = Kõik on valmis!
onboarding-done-description = Nautige enda kogu keha jälgimis kogemust
onboarding-done-close = Sulgege juhend
## Tracker connection setup
onboarding-connect_tracker-back = Minge tagasi Wi-Fi andmetesse
onboarding-connect_tracker-title = Ühendage jälgijad
onboarding-connect_tracker-description-p0 = Nüüd lähme lõbusa osa juurde, ühendame kõik jälgijad-
onboarding-connect_tracker-description-p1 = Lihtsalt ühendage kõik jälgijad, mis ei ole ühendatud läbi USB enda arvutisse.
onboarding-connect_tracker-issue-serial = Mul on probleeme ühenduse loomisega!
onboarding-connect_tracker-usb = USB Jälgija
onboarding-connect_tracker-connection_status-connecting = Saadame Wi-Fi andmeid
onboarding-connect_tracker-connection_status-connected = Ühendatud Wi-Fi võrguga
onboarding-connect_tracker-connection_status-error = Wi-Fi-ga ei saa ühendust luua!
onboarding-connect_tracker-connection_status-start_connecting = Jälgijate otsimine
onboarding-connect_tracker-connection_status-handshake = Ühendatud serveriga
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Mitte ühtegi jälgijat ühendatud
[one] 1 jälgija
*[other] { $amount } jälgijat
} connected
onboarding-connect_tracker-next = Olen ühendanud kõik oma jälgijad
## Tracker assignment setup
onboarding-assign_trackers-back = Minge tagasi Wi-Fi andmetesse
onboarding-assign_trackers-title = Määrake jälgijad asukoht
onboarding-assign_trackers-description = Valime mis jälgijad lähevad kuhu. Vajutage asukohale kuhu te tahate, et jälgija läheks.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 jälgija
*[other] { $trackers } jälgijat
} assigned
onboarding-assign_trackers-advanced = Kuva täpsemad määramiskohad
onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
## Tracker manual mounting setup
onboarding-manual_mounting-back = Minge tagasi, et siseneda VR-i
onboarding-manual_mounting = Käsitsi paigaldamine
onboarding-manual_mounting-description = Vajutage iga jälgija peale ja valige, kuidas see on paigaldatud
onboarding-manual_mounting-auto_mounting = Automaatne paigaldamine
onboarding-manual_mounting-next = Järgmine Samm
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Minge tagasi, et siseneda VR-i
onboarding-automatic_mounting-title = Paigaldamis kalibreerimine
onboarding-automatic_mounting-description = Et SlimeVR jälgijad töötaksid peame me nendele seadistama paigaldamise pöörde, et need joondada teie füüsilise jälgijate paigaldusega.
onboarding-automatic_mounting-manual_mounting = Manuaalselt seadistamine
onboarding-automatic_mounting-next = Järgmine Samm
onboarding-automatic_mounting-prev_step = Eelmine Samm
onboarding-automatic_mounting-done-title = Paigalduse pööre kalibreeritud.
onboarding-automatic_mounting-done-description = Teie paigalduse kalibreerimine on valmis!
onboarding-automatic_mounting-done-restart = Minge algusese
onboarding-automatic_mounting-mounting_reset-title = Paigalduse lähtestamine
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Kükita suusaasendis, jalad kõverad, ülakeha kallutatud ettepoole ja käed kõverad.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Vajutage "Lähtesta Paigaldusasend" nuppu ja oodage 3 sekuntit ja jälgijate paigaldusasend lähtestatakse.
onboarding-automatic_mounting-preparation-title = Ettevalmistus
onboarding-automatic_mounting-preparation-step-0 = 1. Seiske püsti, käed kõrval.
onboarding-automatic_mounting-preparation-step-1 = 2. Vajutage "Lähtesta" nuppu ja oodage 3 sekundit ja jälgijad lähtestatakse.
onboarding-automatic_mounting-put_trackers_on-title = Pange kõik jälgijad peale
onboarding-automatic_mounting-put_trackers_on-description = Et kalibreerida jälgijate paigaldus asendi pööret pange kõik jälgijad peale ja nüüd te näete mis on mis jälgijad paremal pool ekraani.
onboarding-automatic_mounting-put_trackers_on-next = Mul on kõik jälgijad küljes
## Tracker manual proportions setup
onboarding-manual_proportions-back = Mine tagasi lähtestamise õppetusse
onboarding-manual_proportions-title = Käsitsi keha proportsioonid
onboarding-manual_proportions-precision = Täpne reguleerimine
onboarding-manual_proportions-auto = Automaatne kalibreerimine
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Mine tagasi lähtestamise õppetusse
onboarding-automatic_proportions-title = Mõõtke oma keha
onboarding-automatic_proportions-description = Et SlimeVR jälgijad töötaks peame me teadma teie kontide pikkust. See lühike kalibreerimine mõõdab selle teie jaoks.
onboarding-automatic_proportions-manual = Manuaalne Kalibreerimine
onboarding-automatic_proportions-prev_step = Eelmine Samm
onboarding-automatic_proportions-put_trackers_on-title = Pange kõik jälgijad peale
onboarding-automatic_proportions-put_trackers_on-description = Et kalibreerida teie proportsioone pange kõik jälgijad peale ja te näete mis on mis jälgijad paremal pool ekraani.
onboarding-automatic_proportions-put_trackers_on-next = Mul on kõik jälgijad küljes
onboarding-automatic_proportions-preparation-title = Ettevalmistus
onboarding-automatic_proportions-preparation-description = Võtke tool ja pange see täpselt enda seljataha maha mänguruumi sisse. Olge valmis maha istuma et seadistada autobone.
onboarding-automatic_proportions-preparation-next = Ma olen enda tooli ees
onboarding-automatic_proportions-start_recording-title = Olge valmis liikuma
onboarding-automatic_proportions-start_recording-description = Me nüüd salvestame teatud poose ja liigutusi neid näete järgmisel ekraanil. Olge valmis, kui te vajutate nuppu!
onboarding-automatic_proportions-start_recording-next = Alusta salvestamist
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Salvestamine on pooleli...
onboarding-automatic_proportions-recording-description-p1 = Tehke allpool näidatud liigutusi:
onboarding-automatic_proportions-recording-steps-0 = Painutage põlvi paar korda.
onboarding-automatic_proportions-recording-steps-1 = Istuge toolile ja tõuske püsti.
onboarding-automatic_proportions-recording-steps-2 = Keerake ülakeha vasakule, seejärel paremale.
onboarding-automatic_proportions-recording-steps-3 = Keerake ülakeha paremale, seejärel vasakule.
onboarding-automatic_proportions-recording-steps-4 = Liigutage ringi, kuni taimer lõpeb.
onboarding-automatic_proportions-recording-processing = Tulemuse töötlemine
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 sekund
*[other] { $time } sekundit
}
onboarding-automatic_proportions-verify_results-title = Kontrollige tulemust
onboarding-automatic_proportions-verify_results-description = Kontrollige tulemust all, kas kõik näeb välja korrektne?
onboarding-automatic_proportions-verify_results-results = Salvestame tulemused
onboarding-automatic_proportions-verify_results-processing = Tulemuse töötlemine
onboarding-automatic_proportions-verify_results-redo = Tee salvestus uuesti
onboarding-automatic_proportions-verify_results-confirm = Nad on õiged
onboarding-automatic_proportions-done-title = Kere mõõdetud ja salvestatud.
onboarding-automatic_proportions-done-description = Teie keha proportsioonid kalibreerimine on valmis!
## Home
home-no_trackers = Jälgijaid ei tuvastatud ega määratud

View File

@@ -0,0 +1,487 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Yhdistetään palvelimeen
websocket-connection_lost = Yhteys epäonnistui. Yritetään uudelleen...
## Tips
tips-find_tracker = Epävarma, mikä jäljitin on mikä? Ravista jäljitintä ja se korostaa vastaavan kohdan.
tips-do_not_move_heels = Varmista, että kantapääsi ei liiku tallennuksen aikana!
## Body parts
body_part-NONE = Ei määritetty
body_part-HEAD = Pää
body_part-NECK = Kaula
body_part-RIGHT_SHOULDER = Oikea olkapää
body_part-RIGHT_UPPER_ARM = Oikea olkavarsi
body_part-RIGHT_LOWER_ARM = Oikea kyynärvarsi
body_part-RIGHT_HAND = Oikea käsi
body_part-RIGHT_UPPER_LEG = Oikea reisi
body_part-RIGHT_LOWER_LEG = Oikea nilkka
body_part-RIGHT_FOOT = Oikea jalkaterä
body_part-RIGHT_CONTROLLER = Oikea ohjain
body_part-CHEST = Rinta
body_part-WAIST = Vyötärö
body_part-HIP = Lonkka
body_part-LEFT_SHOULDER = Vasen olkapää
body_part-LEFT_UPPER_ARM = Vasen olkavarsi
body_part-LEFT_LOWER_ARM = Vasen kyynärvarsi
body_part-LEFT_HAND = Vasen käsi
body_part-LEFT_UPPER_LEG = Vasen reisi
body_part-LEFT_LOWER_LEG = Vasen nilkka
body_part-LEFT_FOOT = Vasen jalkaterä
body_part-LEFT_CONTROLLER = Vasen ohjain
## Proportions
skeleton_bone-NONE = Ei mikään
skeleton_bone-HEAD = Pään säätö
skeleton_bone-NECK = Kaulan pituus
skeleton_bone-CHEST = Rinnan pituus
skeleton_bone-CHEST_OFFSET = Rinnan keskitys
skeleton_bone-WAIST = Vyötärön pituus
skeleton_bone-HIP = Lonkan pituus
skeleton_bone-HIP_OFFSET = Lonkan keskitys
skeleton_bone-HIPS_WIDTH = Lonkan leveys
skeleton_bone-UPPER_LEG = Yläjalan pituus
skeleton_bone-LOWER_LEG = Säären pituus
skeleton_bone-FOOT_LENGTH = Jalkaterän pituus
skeleton_bone-FOOT_SHIFT = Jalkaterän säätö
skeleton_bone-SKELETON_OFFSET = Luurangon keskitys
skeleton_bone-SHOULDERS_DISTANCE = Olkapäiden etäisyys
skeleton_bone-SHOULDERS_WIDTH = Olkapäiden leveys
skeleton_bone-UPPER_ARM = Olkavarren pituus
skeleton_bone-LOWER_ARM = Kyynärvarren pituus
skeleton_bone-CONTROLLER_Y = Ohjaimen Etäisyys Y
skeleton_bone-CONTROLLER_Z = Ohjaimen Etäisyys Z
skeleton_bone-ELBOW_OFFSET = Kyynärpään keskitys
## Tracker reset buttons
reset-reset_all = Nollaa kaikki mittasuhteet
reset-full = Nollaa
reset-mounting = Nollaa Asennus
reset-quick = Pikanollaus
## Serial detection stuff
serial_detection-new_device-p0 = Uusi sarjalaite havaittu!
serial_detection-new_device-p1 = Anna Wi-Fi-kirjautumistietosi!
serial_detection-new_device-p2 = Valitse, mitä haluat tehdä sillä
serial_detection-open_wifi = Yhdistä Wi-Fi-verkkoon
serial_detection-open_serial = Avaa sarjakonsoli
serial_detection-submit = Lähetä!
serial_detection-close = Sulje
## Navigation bar
navbar-home = Aloitus
navbar-body_proportions = Kehon Mittasuhteet
navbar-trackers_assign = Jäljittimien Määritys
navbar-mounting = Asennuksen Kalibrointi
navbar-onboarding = Asennustoiminto
navbar-settings = Asetukset
## Bounding volume hierarchy recording
bvh-start_recording = Tallenna BVH
bvh-recording = Tallennetaan...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Näytä Overlay SteamVR:ssä
widget-overlay-is_mirrored_label = Näytä Overlay Peilinä
## Widget: Drift compensation
widget-drift_compensation-clear = Tyhjennä ajautumakompensaatio
## Widget: Developer settings
widget-developer_mode = Kehittäjätila
widget-developer_mode-high_contrast = Suuri kontrasti
widget-developer_mode-precise_rotation = Tarkka kierto
widget-developer_mode-fast_data_feed = Nopea tietosyöte
widget-developer_mode-filter_slimes_and_hmd = Suodata slimesit ja HMD
widget-developer_mode-sort_by_name = Lajittele nimen mukaan
widget-developer_mode-raw_slime_rotation = Käsittelemätön kierto
widget-developer_mode-more_info = Lisätietoja
## Widget: IMU Visualizer
widget-imu_visualizer = Kierto
widget-imu_visualizer-rotation_raw = Käsittelemätön
widget-imu_visualizer-rotation_preview = Esikatselu
## Tracker status
tracker-status-none = Ei tilaa
tracker-status-busy = Varattu
tracker-status-error = Virhe
tracker-status-disconnected = Katkaistu
tracker-status-occluded = Peittynyt
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Nimi
tracker-table-column-type = Tyyppi
tracker-table-column-battery = Akkuvirta
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Lämpötila °C
tracker-table-column-linear-acceleration = Kiihtyvyys X/Y/Z
tracker-table-column-rotation = Kierto X/Y/Z
tracker-table-column-position = Sijainti X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Etu
tracker-rotation-left = Vasen
tracker-rotation-right = Oikea
tracker-rotation-back = Taka
## Tracker information
tracker-infos-manufacturer = Valmistaja
tracker-infos-display_name = Näyttönimi
tracker-infos-custom_name = Mukautettu Nimi
tracker-infos-url = Jäljittimen URL
## Tracker settings
tracker-settings-back = Palaa jäljittimien luetteloon
tracker-settings-title = Jäljittimien asetukset
tracker-settings-assignment_section = Määritys
tracker-settings-assignment_section-description = Mihin kehon osaan jäljitin on määritetty.
tracker-settings-assignment_section-edit = Muokkaa määritystä
tracker-settings-mounting_section = Asennusasento
tracker-settings-mounting_section-description = Mihin jäljitin on asennettu?
tracker-settings-mounting_section-edit = Muokkaa asennusta
tracker-settings-drift_compensation_section = Salli ajautumakompensaatio
tracker-settings-drift_compensation_section-description = Pitäisikö tämän jäljittimen kompensoida ajautumaa, jos ajautumakompensaatio on päällä?
tracker-settings-drift_compensation_section-edit = Salli ajautumakompensaatio
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Jäljittimen nimi
tracker-settings-name_section-description = Anna sille söpö lempinimi :)
tracker-settings-name_section-placeholder = NightyBeast vasen jalka
## Tracker part card info
tracker-part_card-no_name = Ei nimeä
tracker-part_card-unassigned = Ei määritetty
## Body assignment menu
body_assignment_menu = Missä haluat tämän jäljittimen olevan?
body_assignment_menu-description = Valitse sijainti, johon haluat määrittää tämän jäljittimen. Vaihtoehtoisesti voit valita, haluatko hallita kaikkia jäljittimiä kerralla yhden sijaan.
body_assignment_menu-show_advanced_locations = Näytä tarkempia määrityssijainteja
body_assignment_menu-manage_trackers = Hallitse kaikkia jäljittimiä
body_assignment_menu-unassign_tracker = Poista jäljittimen määritys
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Minkä jäljittimen valitset
tracker_selection_menu-NONE = Minkä jäljittimen määrityksen haluat poistaa?
tracker_selection_menu-unassigned = Määrittämättömät jäljittimet
tracker_selection_menu-assigned = Määritetyt jäljittimet
tracker_selection_menu-dont_assign = Älä määritä
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Varoitus:</b> Kaulan jäljitin voi olla tappava jos säädetty liian tiukasti,
hihna voi katkaista verenkierron päähän!
tracker_selection_menu-neck_warning-done = Ymmärrän riskit
tracker_selection_menu-neck_warning-cancel = Peruuta
## Mounting menu
mounting_selection_menu = Missä haluat tämän jäljittimen olevan?
mounting_selection_menu-close = Sulje
## Sidebar settings
settings-sidebar-title = Asetukset
settings-sidebar-general = Yleistä
settings-sidebar-tracker_mechanics = Jäljittimen mekaniikat
settings-sidebar-fk_settings = Jäljityksen asetukset
settings-sidebar-gesture_control = Eleohjaus
settings-sidebar-interface = Käyttöliittymä
settings-sidebar-osc_router = OSC-reititin
settings-sidebar-utils = Lisäohjelmat
settings-sidebar-serial = Sarjakonsoli
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR jäljittimet
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Ota tai poista käytöstä tietyt SteamVR jäljittimet.
Hyödyllinen peleille tai sovelluksille, jotka tukevat vain tiettyjä jäljittimiä.
settings-general-steamvr-trackers-waist = Vyötärö
settings-general-steamvr-trackers-chest = Rinta
settings-general-steamvr-trackers-feet = Jalat
settings-general-steamvr-trackers-knees = Polvet
settings-general-steamvr-trackers-elbows = Kyynärpäät
settings-general-steamvr-trackers-hands = Kädet
## Tracker mechanics
settings-general-tracker_mechanics = Jäljittimen mekaniikat
settings-general-tracker_mechanics-filtering = Suodatus
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Valitse suodatustyyppi jäljittimillesi.
Ennustus ennustaa liikettä, kun taas tasoitus tasoittaa liikettä.
settings-general-tracker_mechanics-filtering-type = Suodatustyyppi
settings-general-tracker_mechanics-filtering-type-none = Ei suodatusta
settings-general-tracker_mechanics-filtering-type-none-description = Käytä kiertoja sellaisenaan. Ei tee mitään suodatusta.
settings-general-tracker_mechanics-filtering-type-smoothing = Tasoitus
settings-general-tracker_mechanics-filtering-type-smoothing-description = Tasoittaa liikettä, mutta lisää hieman viivettä.
settings-general-tracker_mechanics-filtering-type-prediction = Ennustus
settings-general-tracker_mechanics-filtering-type-prediction-description = Vähentää viivettä ja tekee liikeistä näppärämpiä, mutta voi lisätä värinää.
settings-general-tracker_mechanics-filtering-amount = Määrä
settings-general-tracker_mechanics-drift_compensation = Ajautumakompensaatio
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompensoi IMU-kääntymistä käyttämällä käänteistä kiertoa.
Muuta kompensaation määrää ja kuinka monta nollausta otetaan huomioon.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Ajautumakompensaatio
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensaation määrä
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Käytä enintään x viimeistä nollausta
## FK/Tracking settings
settings-general-fk_settings = Jäljityksen asetukset
settings-general-fk_settings-leg_tweak = Jalkojen säätöjä
settings-general-fk_settings-leg_tweak-description = Floor-clip voi vähentää tai jopa täysin estää jalan läpikulkua lattiasta, mutta voi aiheuttaa ongelmia kun olet polvillasi. Skating-correction ehkäisee luistelumaista liikettä, mutta voi heikentää tiettyjen liikekuvioiden tarkkuutta.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Floor clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating correction vahvuus
settings-general-fk_settings-arm_fk = Käsivarsien jäljitys
settings-general-fk_settings-arm_fk-description = Muuta tapaa, jolla käsivarsia jäljitetään.
settings-general-fk_settings-arm_fk-force_arms = Pakota kädet HMD:ltä
settings-general-fk_settings-skeleton_settings = Luurangon asetukset
settings-general-fk_settings-skeleton_settings-description = Ota tai poista käytöstä luurankoasetukset. On suositeltavaa jättää nämä päälle.
settings-general-fk_settings-skeleton_settings-extended_spine = Laajennettu selkäranka
settings-general-fk_settings-skeleton_settings-extended_pelvis = Laajennettu lantioluu
settings-general-fk_settings-skeleton_settings-extended_knees = Laajennettu polvi
settings-general-fk_settings-vive_emulation-title = Vive-emulointi
settings-general-fk_settings-vive_emulation-description = Emuloi vyötäröjäljittimen ongelmia, joita Vive jäljittimillä on. Tämä on vitsi ja pahentaa jäljitystä.
settings-general-fk_settings-vive_emulation-label = Ota Vive-emulointi käyttöön
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Eleohjaus
settings-general-gesture_control-subtitle = Napautuspohjaiset nollaukset
settings-general-gesture_control-description = Mahdollistaa nollauksen napauttamalla jäljitintä. Ylävartalon korkeinta jäljitintä käytetään Pikanollaukseen. Vasemman jalan korkeinta jäljitintä käytetään Nollaukseen, vastaavaisesti oikean jalan korkeinta jäljitintä käytetään Asennusnollaukseen. On syytä mainita, että napautusten on tapahduttava 0.6 sekunnin sisällä, jotta ne rekisteröityvät.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 napautus
*[other] { $amount } napautusta
}
settings-general-gesture_control-quickResetEnabled = Ota käyttöön pikanollaus napautus
settings-general-gesture_control-quickResetDelay = Pikanollaus viive
settings-general-gesture_control-quickResetTaps = Napautuksia pikanollaukseen
settings-general-gesture_control-resetEnabled = Ota käyttöön nollaus napautus
settings-general-gesture_control-resetDelay = Nollaus viive
settings-general-gesture_control-resetTaps = Napautuksia nollaukseen
settings-general-gesture_control-mountingResetEnabled = Ota käyttöön asennusnollaus napautus
settings-general-gesture_control-mountingResetDelay = Asennusnollaus viive
settings-general-gesture_control-mountingResetTaps = Napautuksia asennusnollaukseen
## Interface settings
settings-general-interface = Käyttöliittymä
settings-general-interface-dev_mode = Kehittäjätila
settings-general-interface-dev_mode-description = Tämä tila voi olla hyödyllinen, jos tarvitset perusteellisia tietoja tai haluat olla tekemisissä yhdistettyjen jäljittimien kanssa edistyneemmällä tasolla.
settings-general-interface-dev_mode-label = Kehittäjätila
settings-general-interface-serial_detection = Sarjalaitteen tunnistus
settings-general-interface-serial_detection-description = Tämä vaihtoehto näyttää ponnahdusikkunan aina, kun liität uuden sarjalaitteen, joka voi olla jäljitin. Se auttaa parantamaan jäljittimen asennusprosessia.
settings-general-interface-serial_detection-label = Sarjalaitteen tunnistus
settings-general-interface-lang = Valitse kieli
settings-general-interface-lang-description = Vaihda oletuskieli, jota haluat käyttää.
settings-general-interface-lang-placeholder = Valitse käytettävä kieli
## Serial settings
settings-serial = Sarjakonsoli
# This cares about multilines
settings-serial-description =
Tämä on reaaliaikainen tietosyöte sarjaviestintää varten.
Voi olla hyödyllistä, jos sinun on tiedettävä, että laiteohjelmisto toimii.
settings-serial-connection_lost = Yhteys sarjaan kadonnut, yhdistetään uudelleen...
settings-serial-reboot = Käynnistä uudelleen
settings-serial-factory_reset = Tehdasasetusten palautus
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Varoitus:</b> Tämä palauttaa jäljittimen tehdasasetuksille.
Tämä tarkoittaa, että Wi-Fi- ja kalibrointiasetukset <b>menetetään kokonaan!</b>
settings-serial-factory_reset-warning-ok = Tiedän mitä teen
settings-serial-factory_reset-warning-cancel = Peruuta
settings-serial-get_infos = Hanki tietoja
settings-serial-serial_select = Valitse sarjaportti
settings-serial-auto_dropdown_item = Autom.
## OSC router settings
settings-osc-router = OSC-reititin
# This cares about multilines
settings-osc-router-description =
Välitä OSC-viestit toisesta ohjelmasta.
Hyödyllinen toisen OSC-ohjelman käyttämiseen esimerkiksi VRChatin kanssa.
settings-osc-router-enable = Käytä
settings-osc-router-enable-description = Vaihda viestien edelleenlähetystä.
settings-osc-router-enable-label = Käytä
settings-osc-router-network = Verkkoportit
# This cares about multilines
settings-osc-router-network-description =
Aseta portit tietojen kuuntelua ja lähettämistä varten.
Nämä voivat olla samat kuin muut SlimeVR-palvelimessa käytetyt portit.
settings-osc-router-network-port_in =
.label = Portti sisään
.placeholder = Portti sisään (oletus: 9002)
settings-osc-router-network-port_out =
.label = Portti ulos
.placeholder = Portti ulos (oletus: 9000)
settings-osc-router-network-address = Verkon osoite
settings-osc-router-network-address-description = Määritä osoite, johon tiedot lähetetään.
settings-osc-router-network-address-placeholder = IPV4-osoite
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC -jäljittimet
# This cares about multilines
settings-osc-vrchat-description =
Muuta VRChat-kohtaisia asetuksia vastaanottamaan HMD-dataa ja
lähettämään jäljitindataa FBT:tä varten (toimii Quest-standalone:ssa).
settings-osc-vrchat-enable = Käytä
settings-osc-vrchat-enable-description = Vaihda tietojen lähettäminen ja vastaanottaminen.
settings-osc-vrchat-enable-label = Käytä
settings-osc-vrchat-network = Verkkoportit
settings-osc-vrchat-network-description = Aseta portit kuuntelua ja tietojen lähettämistä varten VRChatiin.
settings-osc-vrchat-network-port_in =
.label = Portti sisään
.placeholder = Portti sisään (oletus: 9001)
settings-osc-vrchat-network-port_out =
.label = Portti ulos
.placeholder = Portti ulos (oletus: 9000)
settings-osc-vrchat-network-address = Verkon osoite
settings-osc-vrchat-network-address-description = Valitse, mikä osoite lähettää tietoja VRChatiin (tarkista laitteesi Wi-Fi-asetukset).
settings-osc-vrchat-network-address-placeholder = VRChat IP-osoite
settings-osc-vrchat-network-trackers = Jäljittimet
settings-osc-vrchat-network-trackers-description = Vaihda tiettyjen jäljittimien lähettäminen OSC:n kautta.
settings-osc-vrchat-network-trackers-chest = Rinta
settings-osc-vrchat-network-trackers-waist = Vyötärö
settings-osc-vrchat-network-trackers-knees = Polvet
settings-osc-vrchat-network-trackers-feet = Jalat
settings-osc-vrchat-network-trackers-elbows = Kyynärpäät
## Setup/onboarding menu
onboarding-skip = Ohita asennus
onboarding-continue = Jatka
onboarding-wip = Keskeneräinen
## Wi-Fi setup
onboarding-wifi_creds-back = Palaa esittelyyn
onboarding-wifi_creds = Syötä Wi-Fi-tunnistetiedot
# This cares about multilines
onboarding-wifi_creds-description =
Jäljittimet käyttävät näitä tunnistetietoja langattomaan yhteyden muodostamiseen.
Käytä tunnistetietoja, joihin olet tällä hetkellä yhteydessä.
onboarding-wifi_creds-skip = Ohita Wi-Fi-asetukset
onboarding-wifi_creds-submit = Lähetä!
onboarding-wifi_creds-ssid =
.label = Wi-Fi nimi
.placeholder = Syötä Wi-Fi nimi
onboarding-wifi_creds-password =
.label = Salasana
.placeholder = Syötä salasana
## Mounting setup
onboarding-reset_tutorial-back = Palaa asennuksen kalibrointiin
onboarding-reset_tutorial = Nollaa tutoriaali
onboarding-reset_tutorial-description = Tämä ominaisuus ei ole valmis, paina vain Jatka
## Setup start
onboarding-home = Tervetuloa SlimeVR:ään
# This cares about multilines and it's centered!!
onboarding-home-description =
Tuomme kaikille
täysikehojäljityksen
onboarding-home-start = Mennään asentamaan!
## Enter VR part of setup
onboarding-enter_vr-back = Palaa jäljittimien määritykseen
onboarding-enter_vr-title = Aika astua VR:ään!
onboarding-enter_vr-description = Laita kaikki jäljittimet päälle ja astu VR:ään!
onboarding-enter_vr-ready = Olen valmis
## Setup done
onboarding-done-title = Olet valmis!
onboarding-done-description = Nauti täysikehojäljityksestäsi
onboarding-done-close = Sulje opas
## Tracker connection setup
onboarding-connect_tracker-back = Palaa Wi-Fi-tunnistetietoihin
onboarding-connect_tracker-title = Yhdistä jäljittimet
onboarding-connect_tracker-description-p0 = Nyt hauskaan osaan, kaikkien jäljittimien yhdistämiseen!
onboarding-connect_tracker-description-p1 = Yhdistä vain kaikki, joita ei ole vielä yhdistetty, USB-portin kautta.
## Tracker assignment setup
## Tracker manual mounting setup
## Tracker automatic mounting setup
## Tracker manual proportions setup
## Tracker automatic proportions setup
## Home

View File

@@ -0,0 +1,674 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Connexion au serveur..
websocket-connection_lost = Connexion avec le serveur perdue. Reconnexion...
## Tips
tips-find_tracker = Impossible de différencier vos capteurs? Secouez-en un pour qu'il soit mis en évidence.
tips-do_not_move_heels = Assurez-vous de ne pas bouger vos pieds pendant la calibration!
## Body parts
body_part-NONE = Non-attribué
body_part-HEAD = Tête
body_part-NECK = Cou
body_part-RIGHT_SHOULDER = Épaule droite
body_part-RIGHT_UPPER_ARM = Bras droit
body_part-RIGHT_LOWER_ARM = Avant-bras droit
body_part-RIGHT_HAND = Main droite
body_part-RIGHT_UPPER_LEG = Cuisse droite
body_part-RIGHT_LOWER_LEG = Cheville droite
body_part-RIGHT_FOOT = Pied droit
body_part-CHEST = Poitrine
body_part-WAIST = Taille
body_part-HIP = Hanche
body_part-LEFT_SHOULDER = Épaule gauche
body_part-LEFT_UPPER_ARM = Bras gauche
body_part-LEFT_LOWER_ARM = Avant-bras gauche
body_part-LEFT_HAND = Main gauche
body_part-LEFT_UPPER_LEG = Cuisse gauche
body_part-LEFT_LOWER_LEG = Cheville gauche
body_part-LEFT_FOOT = Pied gauche
## Proportions
skeleton_bone-NONE = Aucun
skeleton_bone-HEAD = Décalage de la tête
skeleton_bone-NECK = Longueur du cou
skeleton_bone-CHEST = Longueur de la poitrine
skeleton_bone-CHEST_OFFSET = Écart de la poitrine
skeleton_bone-WAIST = Longueur de la taille
skeleton_bone-HIP = Longueur des hanches
skeleton_bone-HIP_OFFSET = Écart de la hanche
skeleton_bone-HIPS_WIDTH = Largeur des hanches
skeleton_bone-UPPER_LEG = Longueur des jambes supérieures
skeleton_bone-LOWER_LEG = Longueur des jambes inférieures
skeleton_bone-FOOT_LENGTH = Longueur des pieds
skeleton_bone-FOOT_SHIFT = Décalage des pieds
skeleton_bone-SKELETON_OFFSET = Écart du squelette
skeleton_bone-SHOULDERS_DISTANCE = Distance des épaules
skeleton_bone-SHOULDERS_WIDTH = Largeur des épaules
skeleton_bone-UPPER_ARM = Longueur des bras supérieurs
skeleton_bone-LOWER_ARM = Longueur des avant-bras
skeleton_bone-HAND_Y = Distance Y des mains
skeleton_bone-HAND_Z = Distance Z des mains
skeleton_bone-ELBOW_OFFSET = Écart des coudes
## Tracker reset buttons
reset-reset_all = Réinitialiser toutes les proportions
reset-full = Réinitialiser
reset-mounting = Réinitialiser l'alignement
reset-quick = Réinitialisation rapide
## Serial detection stuff
serial_detection-new_device-p0 = Nouveau périphérique détecté!
serial_detection-new_device-p1 = Entrez vos identifiants Wi-Fi!
serial_detection-new_device-p2 = Veuillez sélectionner quoi en faire
serial_detection-open_wifi = Connecter au Wi-Fi
serial_detection-open_serial = Ouvrir la console série
serial_detection-submit = Soumettre!
serial_detection-close = Fermer
## Navigation bar
navbar-home = Accueil
navbar-body_proportions = Proportions du corps
navbar-trackers_assign = Attribution des capteurs
navbar-mounting = Alignement des capteurs
navbar-onboarding = Assistant de configuration
navbar-settings = Réglages
## Bounding volume hierarchy recording
bvh-start_recording = Enregistrer BVH
bvh-recording = Enregistrement...
## Widget: Overlay settings
widget-overlay = Squelette
widget-overlay-is_visible_label = Superposer le squelette dans SteamVR
widget-overlay-is_mirrored_label = Afficher le squelette en tant que miroir
## Widget: Drift compensation
widget-drift_compensation-clear = Remise à zéro de la compensation de la dérive
## Widget: Developer settings
widget-developer_mode = Mode développeur
widget-developer_mode-high_contrast = Contraste élevé
widget-developer_mode-precise_rotation = Rotation précise
widget-developer_mode-fast_data_feed = Flux de données rapide
widget-developer_mode-filter_slimes_and_hmd = Filtrer les capteurs SlimeVR et le casque VR
widget-developer_mode-sort_by_name = Trier par nom
widget-developer_mode-raw_slime_rotation = Rotation brute
widget-developer_mode-more_info = Plus d'informations
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Brute
widget-imu_visualizer-rotation_preview = Aperçu
## Tracker status
tracker-status-none = Pas de statut
tracker-status-busy = Occupé
tracker-status-error = Erreur
tracker-status-disconnected = Déconnecté
tracker-status-occluded = Obstrué
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Nom
tracker-table-column-type = Type
tracker-table-column-battery = Batterie
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accél. X/Y/Z
tracker-table-column-rotation = Rotation X/Y/Z
tracker-table-column-position = Position X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Avant
tracker-rotation-left = Gauche
tracker-rotation-right = Droite
tracker-rotation-back = Arrière
## Tracker information
tracker-infos-manufacturer = Fabricant
tracker-infos-display_name = Nom
tracker-infos-custom_name = Nom personnalisé
tracker-infos-url = URL
## Tracker settings
tracker-settings-back = Retour à la liste des capteurs
tracker-settings-title = Paramètres du capteur
tracker-settings-assignment_section = Attribution du capteur
tracker-settings-assignment_section-description = À quelle partie du corps le capteur est attribué.
tracker-settings-assignment_section-edit = Ré-attribuer
tracker-settings-mounting_section = Orientation du capteur
tracker-settings-mounting_section-description = Dans quelle direction pointe le capteur?
tracker-settings-mounting_section-edit = Changer l'orientation
tracker-settings-drift_compensation_section = Permettre la compensation de la dérive
tracker-settings-drift_compensation_section-description = Ce capteur devrait-il compenser pour sa dérive si l'option est activée?
tracker-settings-drift_compensation_section-edit = Permettre la compensation de la dérive
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nom personalisé
tracker-settings-name_section-description = Donnez-lui un joli surnom :3
tracker-settings-name_section-placeholder = Patte gauche d'Erimel
## Tracker part card info
tracker-part_card-no_name = Sans nom
tracker-part_card-unassigned = Non-attribué
## Body assignment menu
body_assignment_menu = Où attribuer ce capteur?
body_assignment_menu-description = Choisissez où attribuer ce capteur. Vous pouvez également gérer tous les capteurs à la fois au lieu d'un à la fois.
body_assignment_menu-show_advanced_locations = Afficher les emplacements d'attribution avancés
body_assignment_menu-manage_trackers = Gérer tous les capteurs
body_assignment_menu-unassign_tracker = Désattribuer
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Quel capteur à attribuer à votre
tracker_selection_menu-NONE = Quel capteur voulez-vous désattribuer?
tracker_selection_menu-HEAD = { -tracker_selection-part } tête?
tracker_selection_menu-NECK = { -tracker_selection-part } cou?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } épaule droite?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } bras droit?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } avant-bras droit?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } main droite?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } cuisse droite?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } cheville droite?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } pied droit?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } manette droite?
tracker_selection_menu-CHEST = { -tracker_selection-part } poitrine?
tracker_selection_menu-WAIST = { -tracker_selection-part } taille?
tracker_selection_menu-HIP = { -tracker_selection-part } hanche?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } épaule gauche?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } bras gauche?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } avant-bras gauche?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } main gauche?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } cuisse gauche?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } cheville gauche?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } pied gauche?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } manette gauche?
tracker_selection_menu-unassigned = Capteurs non-attribués
tracker_selection_menu-assigned = Capteurs attribués
tracker_selection_menu-dont_assign = Ne pas attribuer
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Attention:</b> Un capteur au cou peut être mortel s'il est trop serré,
la sangle pourrait couper la circulation à la tête!
tracker_selection_menu-neck_warning-done = Je suis conscient des risques
tracker_selection_menu-neck_warning-cancel = Annuler
## Mounting menu
mounting_selection_menu = Dans quelle direction pointe ce capteur?
mounting_selection_menu-close = Fermer
## Sidebar settings
settings-sidebar-title = Réglages
settings-sidebar-general = Général
settings-sidebar-tracker_mechanics = Paramètres des capteurs
settings-sidebar-fk_settings = Paramètres de la capture
settings-sidebar-gesture_control = Contrôle gestuel
settings-sidebar-interface = Interface
settings-sidebar-osc_router = Routeur OSC
settings-sidebar-utils = Utilitaires
settings-sidebar-serial = Console série
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Capteurs SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Activez ou désactivez des capteurs SteamVR.
Utile pour les jeux ou applications qui ne supportent que certains capteurs.
settings-general-steamvr-trackers-waist = Taille
settings-general-steamvr-trackers-chest = Poitrine
settings-general-steamvr-trackers-feet = Pieds
settings-general-steamvr-trackers-knees = Genoux
settings-general-steamvr-trackers-elbows = Coudes
settings-general-steamvr-trackers-hands = Mains
## Tracker mechanics
settings-general-tracker_mechanics = Paramètres des capteurs
settings-general-tracker_mechanics-filtering = Filtrage
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Choisissez le type de filtrage pour vos capteurs.
La prédiction prédit les mouvements tandis que la fluidification rend les mouvements plus fluides.
settings-general-tracker_mechanics-filtering-type = Type de filtrage
settings-general-tracker_mechanics-filtering-type-none = Pas de filtrage
settings-general-tracker_mechanics-filtering-type-none-description = Utilisez les rotations telles quelles.
settings-general-tracker_mechanics-filtering-type-smoothing = Fluidification
settings-general-tracker_mechanics-filtering-type-smoothing-description = Fluidifie les mouvements mais ajoute un peu de latence.
settings-general-tracker_mechanics-filtering-type-prediction = Prédiction
settings-general-tracker_mechanics-filtering-type-prediction-description = Réduit la latence et rend les mouvements plus vifs, mais moins fluides.
settings-general-tracker_mechanics-filtering-amount = Intensité du filtrage
settings-general-tracker_mechanics-drift_compensation = Compensation de la dérive
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compense la dérive des gyroscopes en appliquant une rotation inverse.
Modifier la force de la compensation et le nombre de réinitialisations prises en compte.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensation de la dérive
settings-general-tracker_mechanics-drift_compensation-amount-label = Force de la compensation
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Nombre de réinitialisations prises en compte
## FK/Tracking settings
settings-general-fk_settings = Paramètres de la capture
settings-general-fk_settings-leg_tweak = Ajustement des jambes
settings-general-fk_settings-leg_tweak-description = Le limitage au sol empêche vos pieds de traverser le sol, mais peut causer des problèmes lorsque vous êtes à genoux. La correction du glissement réduit le glissement, mais peut réduire la précision de certains mouvements.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Limitage au sol
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Correction du glissement
settings-general-fk_settings-leg_tweak-skating_correction-amount = Force de la correction du glissement
settings-general-fk_settings-arm_fk = Capture des bras
settings-general-fk_settings-arm_fk-description = Changez la façon dont les bras sont captés.
settings-general-fk_settings-arm_fk-force_arms = Forcer les bras en provenance du casque VR
settings-general-fk_settings-skeleton_settings = Paramètres du squelette
settings-general-fk_settings-skeleton_settings-description = Activez ou désactivez des paramètres avancés de capture.
settings-general-fk_settings-skeleton_settings-extended_spine = Colone vertébrale avancée
settings-general-fk_settings-skeleton_settings-extended_pelvis = Bassin avancé
settings-general-fk_settings-skeleton_settings-extended_knees = Genoux avancés
settings-general-fk_settings-vive_emulation-title = Vive emulation
settings-general-fk_settings-vive_emulation-description = Emulate the waist tracker problems that Vive trackers have. This is a joke and makes tracking worse.
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Contrôle gestuel
settings-general-gesture_control-subtitle = Double tape pour réinitialisation rapide
settings-general-gesture_control-description = Permet de déclencher des réinitialisations en tapant un capteur. Le capteur le plus haut sur votre torse est utilisé pour la réinitialisation rapide, le capteur le plus haut sur votre jambe gauche est utilisé pour la réinitialisation, et le capteur le plus haut sur votre jambe droite est utilisé pour la réinitialisation de l'alignement. Les tapes doivent être enchainées en moins de 0,6 seconde pour être pris en compte.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Taper pour réinitialisation rapide
settings-general-gesture_control-quickResetDelay = Délai de réinitialisation rapide
settings-general-gesture_control-quickResetTaps = Tapes pour réinitialisation rapide
settings-general-gesture_control-resetEnabled = Taper pour réinitialisation
settings-general-gesture_control-resetDelay = Délai de réinitialisation
settings-general-gesture_control-resetTaps = Tapes pour réinitialisation
settings-general-gesture_control-mountingResetEnabled = Taper pour réinitialisation de l'alignement
settings-general-gesture_control-mountingResetDelay = Délai de réinitialisation de l'alignement
settings-general-gesture_control-mountingResetTaps = Tapes pour la réinitialisation de l'alignement
## Interface settings
settings-general-interface = Interface
settings-general-interface-dev_mode = Mode développeur
settings-general-interface-dev_mode-description = Ce mode peut être utile pour avoir des données approfondies ou pour interagir avec des capteurs connectés à un niveau plus avancé.
settings-general-interface-dev_mode-label = Mode développeur
settings-general-interface-serial_detection = Détection de périphérique série
settings-general-interface-serial_detection-description = Cette option affichera une fenêtre chaque fois qu'un nouveau périphérique série qui pourrait être un capteur est connecté.
settings-general-interface-serial_detection-label = Détection de périphérique série
settings-general-interface-lang = Sélectionner la langue
settings-general-interface-lang-description = Choisir la langue par défaut.
settings-general-interface-lang-placeholder = Choisissez la langue
## Serial settings
settings-serial = Console série
# This cares about multilines
settings-serial-description =
Il s'agit d'un flux d'informations en direct pour la communication en série.
Peut être utile pour savoir si un capteur fonctionne correctement.
settings-serial-connection_lost = Connexion à l'appareil perdue, reconnexion...
settings-serial-reboot = Redémarrer
settings-serial-factory_reset = Remise à zéro
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Attention:</b> Cela réinitialisera les paramètres du capteur à zéro.
Ce qui signifie que les paramètres de Wi-Fi et de calibration <b>seront tous perdus!</b>
settings-serial-factory_reset-warning-ok = Je sais ce que je fais
settings-serial-factory_reset-warning-cancel = Annuler
settings-serial-get_infos = Obtenir des informations
settings-serial-serial_select = Sélectionnez un port série
settings-serial-auto_dropdown_item = Automatique
## OSC router settings
settings-osc-router = Routeur OSC
# This cares about multilines
settings-osc-router-description =
Transférez les messages OSC provenant d'un autre programme
Utile pour utiliser un autre programme OSC avec VRChat par exemple.
settings-osc-router-enable = Activer
settings-osc-router-enable-description = Activer/désactiver le transfert de messages.
settings-osc-router-enable-label = Activer
settings-osc-router-network = Ports réseau
# This cares about multilines
settings-osc-router-network-description =
Définissez les ports pour écouter et envoyer des données.
Ces ports peuvent être les mêmes que les autres utilisés dans le serveur SlimeVR.
settings-osc-router-network-port_in =
.label = Port de réception
.placeholder = Port de réception (par défaut: 9002)
settings-osc-router-network-port_out =
.label = Port d'envoi
.placeholder = Port d'envoi (par défaut: 9000)
settings-osc-router-network-address = Adresse réseau
settings-osc-router-network-address-description = Choisissez l'adresse vers laquelle envoyer les données.
settings-osc-router-network-address-placeholder = Adresse IPv4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Modifiez les paramètres spécifiques à VRChat pour recevoir et envoyer
des capteurs par OSC (fonctionne sur Quest sans PC).
settings-osc-vrchat-enable = Activer
settings-osc-vrchat-enable-description = Activer/désactiver l'envoi et la réception de données.
settings-osc-vrchat-enable-label = Activer
settings-osc-vrchat-network = Connexions réseau
settings-osc-vrchat-network-description = Définissez les ports pour écouter et envoyer des données à VRChat.
settings-osc-vrchat-network-port_in =
.label = Port d'entrée
.placeholder = Port de réception (par défaut : 9001)
settings-osc-vrchat-network-port_out =
.label = Port de sortie
.placeholder = Port d'envoi (par défaut : 9000)
settings-osc-vrchat-network-address = Adresse réseau
settings-osc-vrchat-network-address-description = Choisissez l'adresse à laquelle envoyer les données à VRChat (vérifiez les réseaux Wi-Fi de votre appareil).
settings-osc-vrchat-network-address-placeholder = Adresse IP VRChat
settings-osc-vrchat-network-trackers = capteurs
settings-osc-vrchat-network-trackers-description = Sélectionner quels capteurs envoyer via OSC.
settings-osc-vrchat-network-trackers-chest = Poitrine
settings-osc-vrchat-network-trackers-waist = Taille
settings-osc-vrchat-network-trackers-knees = Genoux
settings-osc-vrchat-network-trackers-feet = Pieds
settings-osc-vrchat-network-trackers-elbows = Coudes
## Setup/onboarding menu
onboarding-skip = Passer
onboarding-continue = Continuer
onboarding-wip = Pas encore implémenté
## Wi-Fi setup
onboarding-wifi_creds-back = Retour à l'introduction
onboarding-wifi_creds = Saisir les identifiants Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Les capteurs utiliseront ces informations d'identification pour se connecter au réseau.
Veuillez utiliser les identifiants avec lesquels vous êtes actuellement connecté.
onboarding-wifi_creds-skip = Passer la configuration Wi-Fi
onboarding-wifi_creds-submit = Valider
onboarding-wifi_creds-ssid =
.label = Nom du Wi-Fi
.placeholder = Nom
onboarding-wifi_creds-password =
.label = Mot de passe du Wi-Fi
.placeholder = Mot de passe
## Mounting setup
onboarding-reset_tutorial-back = Retourner à l'alignement des capteurs
onboarding-reset_tutorial = Didacticiel de réinitialisation
onboarding-reset_tutorial-description = Cette fonctionnalité n'est pas encore terminée, appuyez simplement sur continuer
## Setup start
onboarding-home = Bienvenue sur SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Rendre la capture des mouvements
accessible à toutes et tous!
onboarding-home-start = Commencer!
## Enter VR part of setup
onboarding-enter_vr-back = Revenir à l'attribution des capteurs
onboarding-enter_vr-title = Il est temps d'entrer en réalité virtuelle!
onboarding-enter_vr-description = Enfilez tous vos capteurs puis entrez en réalité virtuelle!
onboarding-enter_vr-ready = je suis prêt!
## Setup done
onboarding-done-title = Vous êtes prêt!
onboarding-done-description = Amusez-vous bien :)
onboarding-done-close = Fermer le guide
## Tracker connection setup
onboarding-connect_tracker-back = Revenir aux informations d'identification Wi-Fi
onboarding-connect_tracker-title = Connecter les capteurs
onboarding-connect_tracker-description-p0 = Passons maintenant à la partie amusante, en connectant tous les capteurs!
onboarding-connect_tracker-description-p1 = Connectez chaque capteur qui n'est pas encore connecté via un port USB.
onboarding-connect_tracker-issue-serial = J'ai du mal à me connecter!
onboarding-connect_tracker-usb = Capteur USB
onboarding-connect_tracker-connection_status-none = Recherche de capteurs
onboarding-connect_tracker-connection_status-serial_init = Connexion au périphérique en série
onboarding-connect_tracker-connection_status-provisioning = Envoi des identifiants Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Envoi d'identifiants Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Recherche du serveur
onboarding-connect_tracker-connection_status-connection_error = Impossible de se connecter au réseau
onboarding-connect_tracker-connection_status-could_not_find_server = Impossible de trouver le serveur
onboarding-connect_tracker-connection_status-done = Connecté au serveur
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = J'ai connecté tous mes capteurs
## Tracker assignment setup
onboarding-assign_trackers-back = Revenir aux identifiants Wi-Fi
onboarding-assign_trackers-title = Attribuer des capteurs
onboarding-assign_trackers-description = Choisissons où mettre chaque capteur.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[one] { $assigned } sur 1 capteur attribué
*[other] { $assigned } sur { $trackers } capteurs attribués
}
onboarding-assign_trackers-advanced = Afficher les emplacements d'attribution avancés
onboarding-assign_trackers-next = J'ai attribué tous mes capteurs
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Le pied gauche est attribué mais il faut que la cheville gauche, la cuisse gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] Le pied gauche est attribué mais il faut que la cuisse gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[2] Le pied gauche est attribué mais il faut que la cheville gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[3] Le pied gauche est attribué mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[4] Le pied gauche est attribué mais il faut que la cheville gauche et la cuisse gauche soient également attribuées!
[5] Le pied gauche est attribué mais il faut que la cuisse gauche le soit également!
[6] Le pied gauche est attribué mais il faut que la cheville gauche le soit également!
*[unknown] Le pied gauche est attribué mais il faut qu'une autre partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Le pied droit est attribué mais il faut que la cheville droite, la cuisse droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] Le pied droit est assigné mais il faut que la cuisse droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[2] Le pied droit est assigné mais il faut que la cheville droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[3] Le pied droit est attribué mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[4] Le pied droit est attribué mais il faut que la cheville droite et la cuisse droite soient également attribuées!
[5] Le pied droit est attribué mais il faut que la cuisse droite le soit également!
[6] Le pied droit est attribué mais il faut que la cheville droite le soit également!
*[unknown] Le pied droit est assigné mais il faut qu'une autre partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] La cheville gauche est attribuée mais il faut que la cuisse gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] La cheville gauche est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[2] La cheville gauche est attribuée mais il faut que la cuisse gauche soit également attribuée!
*[unknown] La cheville gauche est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] La cheville droite est attribuée mais il faut que la cuisse droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] La cheville droite est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[2] La cheville droite est attribuée mais il faut que la cuisse droite soit également attribuée !
*[unknown] La cheville droite est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] La cuisse gauche est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
*[unknown] La cuisse gauche est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] La cuisse droite est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
*[unknown] La cuisse droite est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] La hanche est attribuée mais il faut que la poitrine le soit aussi!
*[unknown] La hanche est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] La taille est attribuée mais il faut que la poitrine le soit aussi!
*[unknown] La taille est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Retournez à entrer dans la réalité virtuelle
onboarding-manual_mounting = Alignement manuel
onboarding-manual_mounting-description = Cliquez sur chaque capteur et sélectionnez la manière dont ils sont orientés
onboarding-manual_mounting-auto_mounting = Détection automatique
onboarding-manual_mounting-next = Prochaine étape
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Retournez à entrer dans la réalité virtuelle
onboarding-automatic_mounting-title = Calibration de l'alignement des capteurs
onboarding-automatic_mounting-description = Pour que vos capteurs SlimeVR fonctionnent, nous devons attribuer une rotation à vos capteurs pour les aligner avec la rotation réelle de ces derniers.
onboarding-automatic_mounting-manual_mounting = Alignement manuel
onboarding-automatic_mounting-next = Prochaine étape
onboarding-automatic_mounting-prev_step = Étape précédente
onboarding-automatic_mounting-done-title = C'est terminé!
onboarding-automatic_mounting-done-description = L'alignement des capteurs est calibré!
onboarding-automatic_mounting-done-restart = Retourner au début
onboarding-automatic_mounting-mounting_reset-title = Réinitialisation de l'alignement
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Accroupissez-vous dans une pose de "ski" avec les jambes pliées, le haut du corps incliné vers l'avant et les bras pliés.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Appuyez sur le bouton "Réinitialiser l'alignement" et attendez 3 secondes avant que l'alignement des capteurs se calibre.
onboarding-automatic_mounting-preparation-title = Préparation
onboarding-automatic_mounting-preparation-step-0 = 1. Tenez-vous debout avec vos bras à vos côtés.
onboarding-automatic_mounting-preparation-step-1 = 2. Appuyez sur le bouton "Réinitialiser" et attendez 3 secondes avant que les capteurs ne se réinitialisent.
onboarding-automatic_mounting-put_trackers_on-title = Enfilez vos capteurs
onboarding-automatic_mounting-put_trackers_on-description = Pour calibrer l'alignement, nous allons utiliser les capteurs que vous venez d'attribuer.
onboarding-automatic_mounting-put_trackers_on-next = J'ai tous mes capteurs
## Tracker manual proportions setup
onboarding-manual_proportions-back = Revenir au didacticiel de réinitialisation
onboarding-manual_proportions-title = Proportions manuelles du corps
onboarding-manual_proportions-precision = Ajustement de précision
onboarding-manual_proportions-auto = Calibration automatique
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Revenir au didacticiel de réinitialisation
onboarding-automatic_proportions-title = Calibration des proportions du corps
onboarding-automatic_proportions-description = Pour que les capteurs SlimeVR fonctionnent, nous devons connaître la longueur de vos os.
onboarding-automatic_proportions-manual = Calibration manuelle
onboarding-automatic_proportions-prev_step = Étape précédente
onboarding-automatic_proportions-put_trackers_on-title = Enfilez vos capteurs
onboarding-automatic_proportions-put_trackers_on-description = Pour calibrer vos proportions, nous allons utiliser les capteurs que vous venez d'attribuer.
onboarding-automatic_proportions-put_trackers_on-next = J'ai tous mes capteurs
onboarding-automatic_proportions-preparation-title = Préparation
onboarding-automatic_proportions-preparation-description = Placez une chaise directement derrière vous dans votre espace de jeu.
onboarding-automatic_proportions-preparation-next = je suis devant une chaise
onboarding-automatic_proportions-start_recording-title = Préparez-vous à bouger
onboarding-automatic_proportions-start_recording-description = Nous allons maintenant enregistrer des poses et des mouvements spécifiques.
onboarding-automatic_proportions-start_recording-next = Commencer l'enregistrement
onboarding-automatic_proportions-recording-title = Enregistrement
onboarding-automatic_proportions-recording-description-p0 = Enregistrement en cours...
onboarding-automatic_proportions-recording-description-p1 = Effectuez les mouvements indiqués ci-dessous:
onboarding-automatic_proportions-recording-steps-0 = Pliez les genoux plusieurs fois.
onboarding-automatic_proportions-recording-steps-1 = Asseyez-vous sur une chaise puis levez-vous.
onboarding-automatic_proportions-recording-steps-2 = Tournez le haut du corps vers la gauche, puis penchez vous vers la droite.
onboarding-automatic_proportions-recording-steps-3 = Tournez le haut du corps vers la droite, puis penchez vous vers la gauche.
onboarding-automatic_proportions-recording-steps-4 = Remuez jusqu'à ce que la minuterie se termine.
onboarding-automatic_proportions-recording-processing = Traitement du résultat
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 secondes restantes
*[other] { $time } secondes restantes
}
onboarding-automatic_proportions-verify_results-title = Vérifier les résultats
onboarding-automatic_proportions-verify_results-description = Les résultats ci-dessous vous semblent-ils corrects?
onboarding-automatic_proportions-verify_results-results = Enregistrement des résultats
onboarding-automatic_proportions-verify_results-processing = Traitement du résultat
onboarding-automatic_proportions-verify_results-redo = Refaire l'enregistrement
onboarding-automatic_proportions-verify_results-confirm = Les résultats sont corrects
onboarding-automatic_proportions-done-title = Calibration terminée
onboarding-automatic_proportions-done-description = Votre calibration est terminée!
## Home
home-no_trackers = Aucun capteur détecté ou attribué

View File

@@ -0,0 +1,311 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = מתחבר לשרת
websocket-connection_lost = החיבור לשרת אבד. מנסה להתחבר מחדש
## Tips
tips-find_tracker = לא בטוח איזה חיישן אתה מחזיק? נער את החיישן והתוכנה תסמן לך אותו.
tips-do_not_move_heels = אנא וודא שהעקבים שלך לא זזות בזמן הקלטה
## Body parts
body_part-NONE = לא שויך
body_part-HEAD = ראש
body_part-NECK = צוואר
body_part-RIGHT_SHOULDER = כתף ימין
body_part-RIGHT_UPPER_ARM = זרוע עליונה ימנית
body_part-RIGHT_LOWER_ARM = זרוע תחתונה ימנית
body_part-RIGHT_HAND = יד ימין
body_part-RIGHT_UPPER_LEG = ירך ימין
body_part-RIGHT_LOWER_LEG = קרסול ימין
body_part-RIGHT_FOOT = רגל ימין
body_part-RIGHT_CONTROLLER = בקר ימני
body_part-CHEST = חזה
body_part-WAIST = מותניים
body_part-HIP = ירך
body_part-LEFT_SHOULDER = כתף שמאל
body_part-LEFT_UPPER_ARM = זרוע עליונה שמאלית
body_part-LEFT_LOWER_ARM = זרוע תחתונה שמאלית
body_part-LEFT_HAND = יד שמאל
body_part-LEFT_UPPER_LEG = ירך שמאל
body_part-LEFT_LOWER_LEG = קרסול שמאל
body_part-LEFT_FOOT = רגל שמאל
body_part-LEFT_CONTROLLER = בקר שמאלי
## Proportions
skeleton_bone-NONE = לא נבחר
skeleton_bone-NECK = אורך צוואר
skeleton_bone-CHEST = אורך החזה
skeleton_bone-WAIST = אורך המותניים
skeleton_bone-HIP = אורך הירך
skeleton_bone-HIPS_WIDTH = רוחב הירכיים
skeleton_bone-UPPER_LEG = אורך הרגל העליונה
skeleton_bone-LOWER_LEG = אורך רגל תחתון
skeleton_bone-FOOT_LENGTH = אורך כף הרגל
skeleton_bone-SHOULDERS_DISTANCE = מרחק כתפיים
skeleton_bone-SHOULDERS_WIDTH = רוחב כתפיים
skeleton_bone-UPPER_ARM = אורך זרוע עליונה
skeleton_bone-LOWER_ARM = אורך זרוע תחתונה
skeleton_bone-CONTROLLER_Y = מרחק בקר ציר Y
skeleton_bone-CONTROLLER_Z = מרחק בקר ציר Z
## Tracker reset buttons
reset-reset_all = איפוס כל הפרופורציות
reset-full = איפוס
reset-mounting = איפוס הרכבה
reset-quick = איפוס מהיר
## Serial detection stuff
serial_detection-new_device-p0 = זוהה מכשיר סידורי חדש!
serial_detection-new_device-p1 = הכנס את פרטי הWi-Fi שלך!
serial_detection-new_device-p2 = בחר בבקשה מה אתה רוצה לעשות עם זה
serial_detection-open_wifi = מתחבר לWi-Fi
serial_detection-open_serial = פתח טרמינל סידרתי
serial_detection-submit = שלח!
serial_detection-close = סגור
## Navigation bar
navbar-home = בית
navbar-body_proportions = פרופורציות גוף
navbar-trackers_assign = שיוך חיישנים
navbar-mounting = כיול ההרכבה
navbar-onboarding = אשף ההגדרה
navbar-settings = הגדרות
## Bounding volume hierarchy recording
bvh-start_recording = הקלטת BVH
bvh-recording = מקליט...
## Widget: Overlay settings
widget-overlay = ממשק Overlay
widget-overlay-is_visible_label = הצג Overlay ב-SteamVR
widget-overlay-is_mirrored_label = הצג Overlay כהעתק
## Widget: Drift compensation
## Widget: Developer settings
widget-developer_mode = מצב מפתח
widget-developer_mode-high_contrast = ניגודיות גבוהה
widget-developer_mode-fast_data_feed = פיד נתונים מהיר
widget-developer_mode-filter_slimes_and_hmd = סנן slimes וHMD
widget-developer_mode-sort_by_name = מיון לפי שם
widget-developer_mode-more_info = הצג עוד מידע
## Widget: IMU Visualizer
widget-imu_visualizer = סיבוב
widget-imu_visualizer-rotation_preview = תצוגה מקדימה
## Tracker status
tracker-status-none = אין סטטוס
tracker-status-busy = עסוק
tracker-status-error = שגיאה
tracker-status-disconnected = מנותק
tracker-status-occluded = מוסתר
tracker-status-ok = אוקיי
## Tracker status columns
tracker-table-column-name = שם
tracker-table-column-type = סוג
tracker-table-column-battery = סוללה
tracker-table-column-ping = פינג
tracker-table-column-tps = TPS
tracker-table-column-temperature = טמפ' °C
tracker-table-column-linear-acceleration = תאוצה X/Y/Z
tracker-table-column-rotation = סיבוב X/Y/Z
tracker-table-column-position = מיקום X/Y/Z
tracker-table-column-url = כתובת URL
## Tracker rotation
tracker-rotation-front = קדימה
tracker-rotation-left = שמאל
tracker-rotation-right = ימין
tracker-rotation-back = אחורה
## Tracker information
tracker-infos-manufacturer = יצרן
tracker-infos-display_name = שם תצוגה
tracker-infos-custom_name = שם מותאם אישית
## Tracker settings
tracker-settings-assignment_section = שיוך
tracker-settings-assignment_section-description = לאיזה חלק בגוף החיישן משויך.
tracker-settings-assignment_section-edit = ערוך שיוך
tracker-settings-mounting_section = מיקום הרכבה
tracker-settings-mounting_section-edit = עריכת הרכבה
tracker-settings-name_section-description = תן לו כינוי חמוד :)
tracker-settings-name_section-placeholder = רגל שמאלית של NightyBeast
## Tracker part card info
tracker-part_card-no_name = אין שם
tracker-part_card-unassigned = לא הוקצה
## Body assignment menu
body_assignment_menu-show_advanced_locations = הצג מיקומים להקצאה מתקדמים
## Tracker assignment menu
tracker_selection_menu-HEAD = { -tracker_selection-part } ראש?
tracker_selection_menu-NECK = { -tracker_selection-part } צוואר?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } כתף ימין?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } זרוע עליונה ימנית?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } זרוע תחתונה ימנית?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } יד ימין?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } ירך ימין?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } קרסול ימין?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } רגל ימין?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } בקר ימין?
tracker_selection_menu-CHEST = { -tracker_selection-part } חזה?
tracker_selection_menu-WAIST = { -tracker_selection-part } מותניים?
tracker_selection_menu-HIP = { -tracker_selection-part } ירכיים?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } כתף שמאל?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } זרוע עליונה שמאלית?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } זרוע תחתונה שמאלית?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } יד שמאל?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } ירך שמאל?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } קרסול שמאל?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } רגל שמאל?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } בקר שמאלי?
tracker_selection_menu-dont_assign = אל תקצה
tracker_selection_menu-neck_warning-done = אני מבין את הסיכונים
tracker_selection_menu-neck_warning-cancel = ביטול
## Mounting menu
mounting_selection_menu-close = סגור
## Sidebar settings
settings-sidebar-title = הגדרות
settings-sidebar-general = כללי
settings-sidebar-interface = ממשק
settings-sidebar-osc_router = נתב OSC
settings-sidebar-utils = כלי שירות
settings-sidebar-serial = טרמינל סידרתי
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-trackers-waist = מותניים
settings-general-steamvr-trackers-chest = חזה
settings-general-steamvr-trackers-feet = רגל
settings-general-steamvr-trackers-knees = ברכיים
settings-general-steamvr-trackers-elbows = מרפקים
settings-general-steamvr-trackers-hands = ידיים
## Tracker mechanics
settings-general-tracker_mechanics-filtering = סינון
settings-general-tracker_mechanics-filtering-type = סוג סינון
settings-general-tracker_mechanics-filtering-type-none = ללא סינון
settings-general-tracker_mechanics-filtering-type-none-description = השתמש בערכי סיבוב כפי שהם. לא יעשה שום סינון.
settings-general-tracker_mechanics-filtering-type-smoothing = החלקה
settings-general-tracker_mechanics-filtering-type-smoothing-description = מחליק את התנועות אך מוסיף השהיה מסויימת.
settings-general-tracker_mechanics-filtering-type-prediction = חיזוי
settings-general-tracker_mechanics-filtering-type-prediction-description = מפחית את ההשהיה ומפיק תנועות הדוקות , אך עלול להגביר את הריצוד.
settings-general-tracker_mechanics-filtering-amount = כמות
settings-general-tracker_mechanics-drift_compensation = פיצוי סחף
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
מפצה על סחף ציר הYaw בIMU על ידי החלת סיבוב הפוך.
שנה את כמות הפיצוי ועד כמה איפוסים ילקחו בחשבון.
settings-general-tracker_mechanics-drift_compensation-enabled-label = פיצוי סחף
settings-general-tracker_mechanics-drift_compensation-amount-label = כמות הפיצוי
settings-general-tracker_mechanics-drift_compensation-max_resets-label = שימוש בעד x איפוסים אחרונים
## FK/Tracking settings
## Gesture control settings (tracker tapping)
## Interface settings
## Serial settings
## OSC router settings
## OSC VRChat settings
## Setup/onboarding menu
## Wi-Fi setup
## Mounting setup
## Setup start
## Enter VR part of setup
## Setup done
## Tracker connection setup
## Tracker assignment setup
## Tracker assignment warnings
## Tracker manual mounting setup
## Tracker automatic mounting setup
## Tracker manual proportions setup
## Tracker automatic proportions setup
onboarding-automatic_proportions-recording-steps-4 = זוז במקום עד שהספירה תסתיים
onboarding-automatic_proportions-recording-processing = מעבד את התוצאה
onboarding-automatic_proportions-verify_results-title = אמת את התוצאות
onboarding-automatic_proportions-verify_results-description = אנא בדוק את התוצאות, האם התוצאות נראות נכון?
onboarding-automatic_proportions-verify_results-results = תוצאות הקלטה
onboarding-automatic_proportions-verify_results-processing = מעבד את התוצאה
onboarding-automatic_proportions-verify_results-redo = הקלט מחדש
onboarding-automatic_proportions-verify_results-confirm = הם נכונים
onboarding-automatic_proportions-done-title = הגוף שלך נמדד ונשמר
onboarding-automatic_proportions-done-description = תהליך כיול פרופורציות הגוף שלך הושלם!
## Home
home-no_trackers = לא זוהו או הוקצו חיישנים

View File

@@ -0,0 +1,676 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Connessione al server in corso
websocket-connection_lost = Connessione con il server persa. Tentativo di riconnessione in corso...
## Tips
tips-find_tracker = Non sei sicurə quale tracker è quale? Agitalo e l'oggetto corrispondente sarà evidenziato.
tips-do_not_move_heels = Assicurati di non muovere i tuoi talloni durante la registrazione!
## Body parts
body_part-NONE = Non assegnato
body_part-HEAD = Testa
body_part-NECK = Collo
body_part-RIGHT_SHOULDER = Spalla destra
body_part-RIGHT_UPPER_ARM = Braccio destro
body_part-RIGHT_LOWER_ARM = Avambraccio destro
body_part-RIGHT_HAND = Mano destra
body_part-RIGHT_UPPER_LEG = Coscia destra
body_part-RIGHT_LOWER_LEG = Caviglia destra
body_part-RIGHT_FOOT = Piede destro
body_part-RIGHT_CONTROLLER = Controller destro
body_part-CHEST = Petto
body_part-WAIST = Girovita
body_part-HIP = Bacino
body_part-LEFT_SHOULDER = Spalla sinistra
body_part-LEFT_UPPER_ARM = Braccio sinistro
body_part-LEFT_LOWER_ARM = Avambraccio sinistro
body_part-LEFT_HAND = Mano sinistra
body_part-LEFT_UPPER_LEG = Coscia sinistra
body_part-LEFT_LOWER_LEG = Caviglia sinistra
body_part-LEFT_FOOT = Piede sinistro
body_part-LEFT_CONTROLLER = Controller sinistro
## Proportions
skeleton_bone-NONE = Non assegnato
skeleton_bone-HEAD = Correzione Testa
skeleton_bone-NECK = Lunghezza Collo
skeleton_bone-CHEST = Lunghezza del torace
skeleton_bone-CHEST_OFFSET = Correzione Petto
skeleton_bone-WAIST = Giro vita
skeleton_bone-HIP = Lunghezza bacino
skeleton_bone-HIP_OFFSET = Correzione bacino
skeleton_bone-HIPS_WIDTH = Larghezza bacino
skeleton_bone-UPPER_LEG = Lunghezza della parte superiore della gamba
skeleton_bone-LOWER_LEG = Lunghezza della parte inferiore della gamba
skeleton_bone-FOOT_LENGTH = Lunghezza Piedi
skeleton_bone-FOOT_SHIFT = Correzione Piedi
skeleton_bone-SKELETON_OFFSET = Compensazione scheletro
skeleton_bone-SHOULDERS_DISTANCE = Distanza Spalle
skeleton_bone-SHOULDERS_WIDTH = Larghezza Spalle
skeleton_bone-UPPER_ARM = Lunghezza Braccia
skeleton_bone-LOWER_ARM = Distanza Avambracci
skeleton_bone-CONTROLLER_Y = Distanza Y Controller
skeleton_bone-CONTROLLER_Z = Distanza Z Controller
skeleton_bone-ELBOW_OFFSET = Correzione Gomito
## Tracker reset buttons
reset-reset_all = Ripristina tutte le proporzioni
reset-full = Ripristina
reset-mounting = Ripristina posizionamento
reset-quick = Reset veloce
## Serial detection stuff
serial_detection-new_device-p0 = Nuovo dispositivo seriale rilevato!
serial_detection-new_device-p1 = Inserisci le tue credenziali Wi-Fi!
serial_detection-new_device-p2 = Seleziona come utilizzare il tracker, per piacere
serial_detection-open_wifi = Connetti al Wi-Fi
serial_detection-open_serial = Apri la Serial Console
serial_detection-submit = Conferma!
serial_detection-close = Chiudi
## Navigation bar
navbar-home = Home
navbar-body_proportions = Proporzioni del corpo
navbar-trackers_assign = Assegnazione dei tracker
navbar-mounting = Calibrazione della posizionamento
navbar-onboarding = Installazione guidata
navbar-settings = Impostazioni
## Bounding volume hierarchy recording
bvh-start_recording = Registra BVH
bvh-recording = Registrazione in corso...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostra Overlay in SteamVR
widget-overlay-is_mirrored_label = Includi uno specchio nel Overlay
## Widget: Drift compensation
widget-drift_compensation-clear = Rimuovi compensazione del drift
## Widget: Developer settings
widget-developer_mode = Modalità sviluppatore
widget-developer_mode-high_contrast = Alto contrasto
widget-developer_mode-precise_rotation = Rotazione precisa
widget-developer_mode-fast_data_feed = Alimentazione veloce dei dati
widget-developer_mode-filter_slimes_and_hmd = Filtra slimes e HMD
widget-developer_mode-sort_by_name = Ordina per nome
widget-developer_mode-raw_slime_rotation = Rotazione non processata
widget-developer_mode-more_info = Ulteriori informazioni
## Widget: IMU Visualizer
widget-imu_visualizer = Rotazione
widget-imu_visualizer-rotation_raw = Non processato
widget-imu_visualizer-rotation_preview = Anteprima
## Tracker status
tracker-status-none = Nessuno Stato
tracker-status-busy = Occupato
tracker-status-error = Errore
tracker-status-disconnected = Disconnesso
tracker-status-occluded = Ostruito
tracker-status-ok = Connesso
## Tracker status columns
tracker-table-column-name = Nome
tracker-table-column-type = Tipologia
tracker-table-column-battery = Batteria
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temperatura °C
tracker-table-column-linear-acceleration = Accellerazione X/Y/Z
tracker-table-column-rotation = Rotazione X/Y/Z
tracker-table-column-position = Rotazione X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Davanti
tracker-rotation-left = Sinistra
tracker-rotation-right = Destra
tracker-rotation-back = Dietro
## Tracker information
tracker-infos-manufacturer = Produttore
tracker-infos-display_name = Nome da visualizzare
tracker-infos-custom_name = Nome Personalizzato
tracker-infos-url = URL del tracker
## Tracker settings
tracker-settings-back = Torna alla lista dei tracker
tracker-settings-title = Impostazioni del tracker
tracker-settings-assignment_section = Assegnazione
tracker-settings-assignment_section-description = Definisce a che parte del corpo è assegnato il tracker.
tracker-settings-assignment_section-edit = Cambia assegnazione
tracker-settings-mounting_section = posizionamento di montaggio
tracker-settings-mounting_section-description = Come è posizionato il tracker?
tracker-settings-mounting_section-edit = Cambia posizionamento
tracker-settings-drift_compensation_section = Consenti compensazione deriva
tracker-settings-drift_compensation_section-description = Questo tracker dovrebbe compensare per il drift quando la compensazione del drift è abilitata?
tracker-settings-drift_compensation_section-edit = Consenti compensazione del drift
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nome del tracker
tracker-settings-name_section-description = Scegli un nomignolo carino :)
tracker-settings-name_section-placeholder = Gamba destra di NightyQueer
## Tracker part card info
tracker-part_card-no_name = Nessun nome
tracker-part_card-unassigned = Non assegnato
## Body assignment menu
body_assignment_menu = Con che parte del corpo vuoi utilizzare il tracker?
body_assignment_menu-description = Scegli una parte del corpo a cui assegnare questo tracker. Alternativamente puoi scegliere di gestire tutti i tracker in una schermata unica invece che singolarmente.
body_assignment_menu-show_advanced_locations = Mostra impostazioni avanzate di Assegnazione
body_assignment_menu-manage_trackers = Gestisci tutti i tracker
body_assignment_menu-unassign_tracker = Rimuovi assegnazione del tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Quale tracker vuoi che non sia assegnato?
tracker_selection_menu-HEAD = { -tracker_selection-part } testa?
tracker_selection_menu-NECK = { -tracker_selection-part } collo?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } spalla destra?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } braccio superiore destro?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } braccio inferiore destro?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } mano destra?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } coscia destra?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } caviglia destra?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } piede destro?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } controller destro?
tracker_selection_menu-CHEST = { -tracker_selection-part } petto?
tracker_selection_menu-WAIST = { -tracker_selection-part } vita?
tracker_selection_menu-HIP = { -tracker_selection-part } bacino?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } spalla sinistra?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } braccio superiore sinistro?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } braccio inferiore sinistro?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } mano sinistra?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } coscia sinistra?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } caviglia sinistra?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } piede sinistro?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } controller sinistro?
tracker_selection_menu-unassigned = Tracker non assegnato
tracker_selection_menu-assigned = Dispositivo assegnato
tracker_selection_menu-dont_assign = Non assegnare
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Avvertimento:</b> Un tracker per il collo può essere mortale se indossato troppo stretto,
Il cinturino potrebbe bloccare la circolazione alla tua testa!
tracker_selection_menu-neck_warning-done = Comprendo il rischo
tracker_selection_menu-neck_warning-cancel = Annulla
## Mounting menu
mounting_selection_menu = Come è posizionato il tracker?
mounting_selection_menu-close = Chiudi
## Sidebar settings
settings-sidebar-title = Impostazioni
settings-sidebar-general = Generali
settings-sidebar-tracker_mechanics = Comportamento del tracker
settings-sidebar-fk_settings = Impostazioni Traking
settings-sidebar-gesture_control = Controllo dei gesti
settings-sidebar-interface = Interfaccia
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Strumenti
settings-sidebar-serial = Console seriale
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Tracker di SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Abilita o disabilita specifici tracker di SteamVR.
Utile per alcuni giochi che utilizzano solo alcuni tracker di SteamVR.
settings-general-steamvr-trackers-waist = Girovita
settings-general-steamvr-trackers-chest = Petto
settings-general-steamvr-trackers-feet = Piedi
settings-general-steamvr-trackers-knees = Ginocchia
settings-general-steamvr-trackers-elbows = Gomiti
settings-general-steamvr-trackers-hands = Mani
## Tracker mechanics
settings-general-tracker_mechanics = Comportamento del tracker
settings-general-tracker_mechanics-filtering = Filtro movimenti
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Scegli la tipologia di filtraggio movimenti per il tuo tracker.
Predizione anticipa i movimenti, mentre Attenuazione attenua movimenti eccessivi.
settings-general-tracker_mechanics-filtering-type = Tipologia di filtraggio
settings-general-tracker_mechanics-filtering-type-none = Non usare alcun filtraggio
settings-general-tracker_mechanics-filtering-type-none-description = Usa le rotazioni così come sono. Non eseguirà alcun filtro.
settings-general-tracker_mechanics-filtering-type-smoothing = Attenuazione
settings-general-tracker_mechanics-filtering-type-smoothing-description = Attenua movimenti eccessivi ma aggiunge ritardo.
settings-general-tracker_mechanics-filtering-type-prediction = Predizione
settings-general-tracker_mechanics-filtering-type-prediction-description = Riduce ritardo e rende movimenti più istantanei, ma può introdurre tremolio.
settings-general-tracker_mechanics-filtering-amount = Quantità
settings-general-tracker_mechanics-drift_compensation = Compensazione del drift
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensates IMU yaw drift by applying an inverse rotation.
Change amount of compensation and up to how many resets are taken into account.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensazione del drift
settings-general-tracker_mechanics-drift_compensation-amount-label = Grado di compensazione
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Utilizza fino a x ultimi ripristini
## FK/Tracking settings
settings-general-fk_settings = Impostazioni Tracking
settings-general-fk_settings-leg_tweak = Impostazioni Gambe
settings-general-fk_settings-leg_tweak-description = "Compenetrazione pavimento" può ridurre o anche eliminare completamente la compenetrazione con il pavimento, ma può causare problemi quando in ginocchio. "Correzione pattinaggio" corregge l'effetto che fa sembrare che pattini sul ghiaccio, ma può peggiorare la precisione di certi movimenti.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Compenetrazione pavimento
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Correzione pattinaggio
settings-general-fk_settings-leg_tweak-skating_correction-amount = Forza fattore di correzione pattinaggio
settings-general-fk_settings-arm_fk = Tracking Braccia
settings-general-fk_settings-arm_fk-description = Cambia la modalità di tracciamento delle braccia.
settings-general-fk_settings-arm_fk-force_arms = Forza il calcolo della posizione delle braccia a utilizzare il HMD
settings-general-fk_settings-skeleton_settings = Impostazioni scheletro
settings-general-fk_settings-skeleton_settings-description = Abilita o disabilita le impostazioni dello scheletro. É raccomandato lasciare queste impostazioni attive.
settings-general-fk_settings-skeleton_settings-extended_spine = Estensione colonna vertebrale
settings-general-fk_settings-skeleton_settings-extended_pelvis = Estensione bacino
settings-general-fk_settings-skeleton_settings-extended_knees = Estensione ginocchia
settings-general-fk_settings-vive_emulation-title = Imitazione Vive
settings-general-fk_settings-vive_emulation-description = Imita i problemi che hanno i Vive tracker utilizzati sul girovita. Questo è uno scherzo e peggiora il tracciamento.
settings-general-fk_settings-vive_emulation-label = Abilita l'imitazione Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Controllo dei gesti
settings-general-gesture_control-subtitle = Reset veloce con il doppio tocco
settings-general-gesture_control-description = Abilita o disabilita il reset veloce con il doppio tocco. Quando attivato, un doppio tocco su una qualsiasi parte del tracker posizionato più in altro lungo il torso abiliterà il reset veloce. "Ritardo" è il ritardo dal momento in cui il gesto è eseguito e il Reset.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tocco
*[other] { $amount } tocchi
}
settings-general-gesture_control-quickResetEnabled = Abilita il tocco per il ripristino rapido
settings-general-gesture_control-quickResetDelay = Ritardo reset rapido
settings-general-gesture_control-quickResetTaps = Tocchi per ripristino rapido
settings-general-gesture_control-resetEnabled = Abilita tocca per ripristinare
settings-general-gesture_control-resetDelay = Ritardo reset
settings-general-gesture_control-resetTaps = Tocchi per resettare
settings-general-gesture_control-mountingResetEnabled = Abilita tocco per ripristinare il montaggio
settings-general-gesture_control-mountingResetDelay = Ritardo ripristino montaggio
settings-general-gesture_control-mountingResetTaps = Tocchi per il ripristino rapido
## Interface settings
settings-general-interface = Interfaccia
settings-general-interface-dev_mode = Modalità sviluppatore
settings-general-interface-dev_mode-description = Questa modalità è utile se hai bisogno di dati approfonditi o devi interagire in maniera più avanzata con i tracker connessi.
settings-general-interface-dev_mode-label = Modalità sviluppatore
settings-general-interface-serial_detection = Rilevazione nuovi dispositivi seriali
settings-general-interface-serial_detection-description = Questa opzione mostrerà un pop-up ogni volta che colleghi un nuovo dispositivo seriale che potrebbe essere un tracker. Aiuta a facilitare la configurazione iniziale di un tracker
settings-general-interface-serial_detection-label = Rilevazione nuovi dispositivi seriali
settings-general-interface-lang = Seleziona la lingua
settings-general-interface-lang-description = Seleziona la lingua che vuoi utilizzare
settings-general-interface-lang-placeholder = Seleziona la lingua da utilizzare
## Serial settings
settings-serial = Serial Console
# This cares about multilines
settings-serial-description =
Questo è un feed di informazioni in tempo reale per la comunicazione seriale.
Può essere utile se ti serve capire se il firmware sta avendo problemi.
settings-serial-connection_lost = Connessione seriale persa. Riconnessione in corso...
settings-serial-reboot = Riavvia
settings-serial-factory_reset = Ripristino delle impostazioni di fabbrica
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Avvertimento:</b> Questa azione ripristinerà il tracker alle impostazioni di fabbrica.
Ciò significa che le impostazioni Wi-Fi e di calibrazione <b>andranno tutte perse!</b>
settings-serial-factory_reset-warning-ok = Capisco cosa sto facendo
settings-serial-factory_reset-warning-cancel = Annulla
settings-serial-get_infos = Ottieni informazioni
settings-serial-serial_select = Seleziona una porta seriale
settings-serial-auto_dropdown_item = Automatico
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
Inoltra messaggi OSC da un altro programma.
Utile per utilizzare un altro programma OSC con VRChat, per esempio.
settings-osc-router-enable = Attiva
settings-osc-router-enable-description = Attiva o disattiva l'inoltro dei messaggi
settings-osc-router-enable-label = Attiva
settings-osc-router-network = Porte di rete
# This cares about multilines
settings-osc-router-network-description =
Impostare le porte di rete per l'ascolto e l'invio dei dati
Queste possono essere le stesse porte di rete di altre porte utilizzate nel server di SlimeVR
settings-osc-router-network-port_in =
.label = Porta in ingresso
.placeholder = Porta in ingresso (predefinito: 9002)
settings-osc-router-network-port_out =
.label = Porta in uscita
.placeholder = Porta in uscita (predefinito: 9000)
settings-osc-router-network-address = Indirizzo di rete
settings-osc-router-network-address-description = Impostare l'indirizzo di rete a cui inviare i dati
settings-osc-router-network-address-placeholder = Indirizzo IPV4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Modifica le impostazioni specifiche a VRChat per ricevere e inviare dati del HMD
Dati dei tracker per FBT (funziona su Quest standalone).
settings-osc-vrchat-enable = Attiva
settings-osc-vrchat-enable-description = Attiva o disattiva l'invio e la ricezione dei dati
settings-osc-vrchat-enable-label = Attiva
settings-osc-vrchat-network = Porte di rete
settings-osc-vrchat-network-description = Impostare le porte di rete per ascoltare e inviare dati a VRChat
settings-osc-vrchat-network-port_in =
.label = Porta in ingresso
.placeholder = Porta in ingresso (predefinito: 9002)
settings-osc-vrchat-network-port_out =
.label = Porta in uscita
.placeholder = Porta in uscita (predefinito: 9000)
settings-osc-vrchat-network-address = Indirizzo di rete
settings-osc-vrchat-network-address-description = Scegli a quale indirizzo di rete inviare i dati di VRChat (controlla le impostazioni Wi-Fi sul tuo dispositivo)
settings-osc-vrchat-network-address-placeholder = Indirizzo IP di VRChat
settings-osc-vrchat-network-trackers = Tracker
settings-osc-vrchat-network-trackers-description = Attiva o disattiva l'invio e la ricezione dei dati
settings-osc-vrchat-network-trackers-chest = Petto
settings-osc-vrchat-network-trackers-waist = Girovita
settings-osc-vrchat-network-trackers-knees = Ginocchia
settings-osc-vrchat-network-trackers-feet = Piedi
settings-osc-vrchat-network-trackers-elbows = Gomiti
## Setup/onboarding menu
onboarding-skip = Salta la configurazione
onboarding-continue = Continua
onboarding-wip = Lavori in corso
## Wi-Fi setup
onboarding-wifi_creds-back = Torna all'introduzione
onboarding-wifi_creds = Inserisci credenziali Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
I tracker utilizzeranno queste credenziali per connettersi in modalità wireless
Si prega di utilizzare le stesse credenziali con cui si è attualmente connessi
onboarding-wifi_creds-skip = Salta impostazioni Wi-Fi
onboarding-wifi_creds-submit = Conferma!
onboarding-wifi_creds-ssid =
.label = SSID
.placeholder = Enter SSID
onboarding-wifi_creds-password =
.label = Password
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Torna alla calibrazione posizionamento
onboarding-reset_tutorial = Tutorial di ripristino
onboarding-reset_tutorial-description = Questa funzionalità non è completa, premi continua
## Setup start
onboarding-home = Benvenuti a SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Portiamo full-body tracking
a tuttə
onboarding-home-start = Prepariamoci!
## Enter VR part of setup
onboarding-enter_vr-back = Torna all'assegnazione dei tracker
onboarding-enter_vr-title = È ora di entrare in VR!
onboarding-enter_vr-description = Indossa tutti i tuoi tracker e entra in VR!
onboarding-enter_vr-ready = Sono prontə!
## Setup done
onboarding-done-title = È tutto pronto!
onboarding-done-description = Goditi la tua esperienza di full-body tracking
onboarding-done-close = Chiudi la guida
## Tracker connection setup
onboarding-connect_tracker-back = Torna alle credenziali Wi-Fi
onboarding-connect_tracker-title = Connetti i tracker
onboarding-connect_tracker-description-p0 = Ora passiamo alla parte divertente, colleghiamo tutti i tracker!
onboarding-connect_tracker-description-p1 = Collega semplicemente tutti i tracker che non sono ancora collegati tramite una porta USB.
onboarding-connect_tracker-issue-serial = Ho problemi con la connessione!
onboarding-connect_tracker-usb = Tracker USB
onboarding-connect_tracker-connection_status-none = Ricerca dei tracker in corso
onboarding-connect_tracker-connection_status-serial_init = Connessione al dispositivo seriale in corso
onboarding-connect_tracker-connection_status-provisioning = Invio credenziali Wi-Fi in corso
onboarding-connect_tracker-connection_status-connecting = Invio credenziali Wi-Fi in corso.
onboarding-connect_tracker-connection_status-looking_for_server = Ricerca del server in corso
onboarding-connect_tracker-connection_status-connection_error = Impossibile connettersi al Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Impossibile trovare il server
onboarding-connect_tracker-connection_status-done = Connesso al Server
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = Ho collegato tutti i miei tracker
## Tracker assignment setup
onboarding-assign_trackers-back = Torna alle credenziali Wi-Fi
onboarding-assign_trackers-title = Assegna i tracker
onboarding-assign_trackers-description = Scegliamo quale tracker va dove. Fare clic su una parte del corpo in cui si desidera assegnare un tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Mostra impostazioni avanzate di assegnazione
onboarding-assign_trackers-next = Ho assegnato tutti i miei tracker
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Il piede sinistro è assegnato, ma anche la coscia sinistra e la caviglia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] Il piede sinistro è assegnato, ma anche la coscia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] Il piede sinistro è assegnato, ma anche la caviglia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[3] Il piede sinistro è assegnato, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[4] Il piede sinistro è assegnato, ma anche la coscia sinistra e la caviglia destra devono avere un tracker assegnato!
[5] Il piede sinistro è assegnato, ma anche la coscia sinistra deve avere un tracker assegnato!
[6] Il piede sinistro è assegnato, ma anche la caviglia sinistra deve avere un tracker assegnato!
*[unknown] Il piede sinistro è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Il piede destro è assegnato, ma anche la coscia destra e la caviglia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] Il piede destro è assegnato, ma anche la coscia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] Il piede destro è assegnato, ma anche la caviglia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[3] Il piede destro è assegnato, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[4] Il piede destro è assegnato, ma anche la coscia destra e la caviglia destra devono avere un tracker assegnato!
[5] Il piede destro è assegnato, ma anche la coscia destra deve avere un tracker assegnato!
[6] Il piede destro è assegnato, ma anche la caviglia destra deve avere un tracker assegnato!
*[unknown] Il piede destro è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] La caviglia sinistra è assegnata, ma anche la coscia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] La caviglia sinistra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] La caviglia sinistra è assegnata, ma anche la coscia sinistra deve avere un tracker assegnato!
*[unknown] La caviglia sinistra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] La caviglia destra è assegnata, ma anche la coscia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] La caviglia destra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] La caviglia destra è assegnata, ma anche la coscia destra deve avere un tracker assegnato!
*[unknown] La caviglia destra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] La coscia sinistra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
*[unknown] La coscia sinistra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] La coscia destra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
*[unknown] La coscia destra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Il bacino è assegnato, ma anche il petto deve avere un tracker assegnato!
*[unknown] Il bacino è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Il girovita è assegnato, ma anche il petto deve avere un tracker assegnato!
*[unknown] Il girovita è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Torna indietro per entrare in VR
onboarding-manual_mounting = Posizionamento manuale
onboarding-manual_mounting-description = Fare clic su ogni tracker e selezionare in che direzione sono montati
onboarding-manual_mounting-auto_mounting = Posizionamento automatico
onboarding-manual_mounting-next = Passo successivo
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Torna indietro per entrare in VR
onboarding-automatic_mounting-title = Calibrazione posizionamento
onboarding-automatic_mounting-description = Affinché i tracker di SlimeVR funzionino, dobbiamo configurare una rotazione di posizione di montaggio ai tuoi tracker per allinearli con la posizione di montaggio del tuo tracker fisico.
onboarding-automatic_mounting-manual_mounting = Imposta posizione manualmente
onboarding-automatic_mounting-next = Passo successivo
onboarding-automatic_mounting-prev_step = Passaggio precedente
onboarding-automatic_mounting-done-title = Rotazione delle posizioni di montaggio calibrate.
onboarding-automatic_mounting-done-description = La calibrazione della posizione é completa!
onboarding-automatic_mounting-done-restart = Torna all'inizio
onboarding-automatic_mounting-mounting_reset-title = Ripristina posizionamento
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Piegati come per sciare: con le gambe leggermente piegate e unite, la parte superiore del corpo inclinata in avanti e le braccia piegate.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Premere il pulsante "Ripristina posizionamento" e attendere 3 secondi prima che le rotazioni delle posizioni di montaggio dei tracker vengano ripristinate.
onboarding-automatic_mounting-preparation-title = Preparazione
onboarding-automatic_mounting-preparation-step-0 = 1. Stai in piedi drittə con le braccia lungo i fianchi.
onboarding-automatic_mounting-preparation-step-1 = 2. Premi il pulsante "Reset" e attendi 3 secondi prima che i tracker vengano ripristinati.
onboarding-automatic_mounting-put_trackers_on-title = Indossa i tuoi tracker
onboarding-automatic_mounting-put_trackers_on-description = Per calibrare le rotazioni delle posizioni montaggio useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.
onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei tracker
## Tracker manual proportions setup
onboarding-manual_proportions-back = Torna al tutorial di reset
onboarding-manual_proportions-title = Impostazione manuale delle proporzioni del corpo
onboarding-manual_proportions-precision = Regolazione di precisione
onboarding-manual_proportions-auto = Calibrazione automatica
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Torna al tutorial di reset
onboarding-automatic_proportions-title = Misura il tuo corpo
onboarding-automatic_proportions-description = Affinché i tracker di SlimeVR funzionino dobbiamo conoscere la lunghezza dei tuoi arti. Questa breve calibrazione le misurerà per te.
onboarding-automatic_proportions-manual = Calibrazione manuale
onboarding-automatic_proportions-prev_step = Passaggio precedente
onboarding-automatic_proportions-put_trackers_on-title = Indossa i tuoi tracker
onboarding-automatic_proportions-put_trackers_on-description = Per calibrare le tue proporzioni useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.
onboarding-automatic_proportions-put_trackers_on-next = Sto indossando tutti i miei tracker
onboarding-automatic_proportions-preparation-title = Preparazione
onboarding-automatic_proportions-preparation-description = Posiziona una sedia direttamente dietro di te all'interno della tua area di gioco. Ti verrà richiesto di sederti durante certi passaggi della calibrazione delle proporzioni.
onboarding-automatic_proportions-preparation-next = Sono davanti a una sedia
onboarding-automatic_proportions-start_recording-title = Preparati a muoverti
onboarding-automatic_proportions-start_recording-description = Ora registreremo alcune pose e movimenti specifici. Questi verranno descritte nelle schermate successive. Preparati a iniziare quando premi il pulsante!
onboarding-automatic_proportions-start_recording-next = Inizia registrazione
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Registrazione in corso...
onboarding-automatic_proportions-recording-description-p1 = Fai i movimenti mostrati di seguito:
onboarding-automatic_proportions-recording-steps-0 = Piega le ginocchia un paio di volte.
onboarding-automatic_proportions-recording-steps-1 = Siediti su una sedia e poi alzati.
onboarding-automatic_proportions-recording-steps-2 = Ruota la parte superiore del corpo a sinistra, poi piegati a destra.
onboarding-automatic_proportions-recording-steps-3 = Ruota la parte superiore del corpo a destra, poi piegati a sinistra.
onboarding-automatic_proportions-recording-steps-4 = Muoviti un poco fino allo scadere del timer.
onboarding-automatic_proportions-recording-processing = Elaborazione del risultato
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Verifica i risultati
onboarding-automatic_proportions-verify_results-description = Controlla i risultati qui sotto, sembrano corretti?
onboarding-automatic_proportions-verify_results-results = Salvataggio dei risultati
onboarding-automatic_proportions-verify_results-processing = Elaborazione del risultato
onboarding-automatic_proportions-verify_results-redo = Rifai registrazione
onboarding-automatic_proportions-verify_results-confirm = Sono corretti
onboarding-automatic_proportions-done-title = Corpo misurato e salvato.
onboarding-automatic_proportions-done-description = La calibrazione delle proporzioni del tuo corpo è completa!
## Home
home-no_trackers = Nessun tracker rilevato o assegnato

View File

@@ -0,0 +1,591 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = サーバー接続中
websocket-connection_lost = サーバーへの接続が失われました。再接続を試みています...
## Tips
tips-find_tracker = どのトラッカーがどれだかわからない?トラッカーを振ると、該当する項目がハイライトされます。
tips-do_not_move_heels = レコーディング中にかかとが動かないように注意しましょう!
## Body parts
body_part-NONE = 未設定
body_part-HEAD = 頭
body_part-NECK = 首
body_part-RIGHT_SHOULDER = 右肩
body_part-RIGHT_UPPER_ARM = 右上腕
body_part-RIGHT_LOWER_ARM = 右前腕
body_part-RIGHT_HAND = 右手
body_part-RIGHT_UPPER_LEG = 右膝
body_part-RIGHT_LOWER_LEG = 右足
body_part-RIGHT_FOOT = 右足先
body_part-RIGHT_CONTROLLER = 右コントローラ
body_part-CHEST = 胸
body_part-WAIST = 腰
body_part-HIP = ヒップ
body_part-LEFT_SHOULDER = 左肩
body_part-LEFT_UPPER_ARM = 左上腕
body_part-LEFT_LOWER_ARM = 左前腕
body_part-LEFT_HAND = 左手
body_part-LEFT_UPPER_LEG = 左膝
body_part-LEFT_LOWER_LEG = 左足
body_part-LEFT_FOOT = 左足先
body_part-LEFT_CONTROLLER = 左コントローラ
## Proportions
skeleton_bone-NONE = 無し
skeleton_bone-HEAD = ヘッドシフト
skeleton_bone-NECK = 首長さ
skeleton_bone-CHEST = 胸囲
skeleton_bone-CHEST_OFFSET = 胸オフセット
skeleton_bone-WAIST = ウエスト長さ
skeleton_bone-HIP = ヒップ長さ
skeleton_bone-HIP_OFFSET = ヒップオフセット
skeleton_bone-HIPS_WIDTH = ヒップ幅
skeleton_bone-UPPER_LEG = 膝長さ
skeleton_bone-LOWER_LEG = 足長さ
skeleton_bone-FOOT_LENGTH = 足先長さ
skeleton_bone-FOOT_SHIFT = 足先シフト
skeleton_bone-SKELETON_OFFSET = スケルトンオフセット
skeleton_bone-SHOULDERS_DISTANCE = 肩の距離
skeleton_bone-SHOULDERS_WIDTH = 肩幅
skeleton_bone-UPPER_ARM = 上腕長さ
skeleton_bone-LOWER_ARM = 前腕長さ
skeleton_bone-CONTROLLER_Y = コントローラ距離 Y
skeleton_bone-CONTROLLER_Z = コントローラ距離 Z
skeleton_bone-ELBOW_OFFSET = 肘オフセット
## Tracker reset buttons
reset-reset_all = すべてのプロポーションをリセット
reset-full = リセット
reset-mounting = リセットマウンティング
reset-quick = クイックリセット
## Serial detection stuff
serial_detection-new_device-p0 = 新しいシリアルデバイスを検出しました!
serial_detection-new_device-p1 = Wi-Fiの認証情報を入力してください
serial_detection-new_device-p2 = 何をするか選択してください
serial_detection-open_wifi = Wi-Fiに接続
serial_detection-open_serial = シリアルコンソールを開く
serial_detection-submit = 実行!
serial_detection-close = 閉じる
## Navigation bar
navbar-home = ホーム
navbar-body_proportions = ボディプロポーション
navbar-trackers_assign = トラッカー割り当て
navbar-mounting = マウントキャリブレーション
navbar-onboarding = セットアップ ウィザード
navbar-settings = 設定
## Bounding volume hierarchy recording
bvh-start_recording = BVHレコーディング
bvh-recording = レコーディング中...
## Widget: Overlay settings
widget-overlay = オーバーレイ設定
widget-overlay-is_visible_label = SteamVRでオーバーレイを表示する
widget-overlay-is_mirrored_label = オーバーレイをミラーとして表示する
## Widget: Developer settings
widget-developer_mode = 開発者モード
widget-developer_mode-high_contrast = ハイ コントラスト
widget-developer_mode-precise_rotation = 正確な回転角度を表示
widget-developer_mode-fast_data_feed = 高速表示モード
widget-developer_mode-filter_slimes_and_hmd = SlimeVRとHMDのみを表示
widget-developer_mode-sort_by_name = 表示名順
widget-developer_mode-raw_slime_rotation = 元の回転角度
widget-developer_mode-more_info = 他情報
## Widget: IMU Visualizer
widget-imu_visualizer = 回転
widget-imu_visualizer-rotation_raw = 生
widget-imu_visualizer-rotation_preview = 生
## Tracker status
tracker-status-none = ステータスなし
tracker-status-busy = Busy
tracker-status-error = エラー
tracker-status-disconnected = 切断
tracker-status-occluded = Occluded
tracker-status-ok = 接続中
## Tracker status columns
tracker-table-column-name = Name
tracker-table-column-type = Type
tracker-table-column-battery = バッテリー
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = 温度. °C
tracker-table-column-linear-acceleration = 加速度. X/Y/Z
tracker-table-column-rotation = 回転 X/Y/Z
tracker-table-column-position = 位置 X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 後
## Tracker information
tracker-infos-manufacturer = メーカ-
tracker-infos-display_name = 表示名
tracker-infos-custom_name = カスタム名称
tracker-infos-url = トラッカーURL
## Tracker settings
tracker-settings-back = トラッカーリストへ戻る
tracker-settings-title = トラッカー設定
tracker-settings-assignment_section = 割り当て
tracker-settings-assignment_section-description = トラッカーが体のどの部位に装着されているか
tracker-settings-assignment_section-edit = 割り当ての編集
tracker-settings-mounting_section = 装着方向
tracker-settings-mounting_section-description = トラッカーをどの方向に装着していますか?
tracker-settings-mounting_section-edit = 装着向きの編集
tracker-settings-drift_compensation_section = ドリフト補正を行う
tracker-settings-drift_compensation_section-description = ドリフト補正が有効になっている場合、このトラッカーはドリフトを補正する必要がありますか?
tracker-settings-drift_compensation_section-edit = ドリフト補正を行う
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = トラッカー名称
tracker-settings-name_section-description = 自由に名称をつけてください
tracker-settings-name_section-placeholder = NightyBeast's left leg
## Tracker part card info
tracker-part_card-no_name = 名称無し
tracker-part_card-unassigned = 未割り当て
## Body assignment menu
body_assignment_menu = このトラッカーをどこに配置しますか?
body_assignment_menu-description = このトラッカーを割り当てる場所を選択します。また、トラッカーを一つずつ管理するのではなく、すべてのトラッカーを一括して管理することもできます。
body_assignment_menu-show_advanced_locations = 高度な割り当て場所の表示
body_assignment_menu-manage_trackers = すべてのトラッカーの管理
body_assignment_menu-unassign_tracker = トラッカーの割り当て解除
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = どのトラッカーを{ $body-part }に割り当てますか?
tracker_selection_menu-NONE = どのトラッカーに割り当てないか?
tracker_selection_menu-HEAD = { -tracker_selection-part(body-part: "頭") }
tracker_selection_menu-NECK = { -tracker_selection-part(body-part: "首") }
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part(body-part: "右肩") }
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part(body-part: "右上腕") }
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part(body-part: "右前腕") }
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part(body-part: "右手") }
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part(body-part: "右太もも") }
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part(body-part: "右足首") }
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part(body-part: "右足先") }
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part(body-part: "右コントローラ") }
tracker_selection_menu-CHEST = { -tracker_selection-part(body-part: "胸") }
tracker_selection_menu-WAIST = { -tracker_selection-part(body-part: "腰") }
tracker_selection_menu-HIP = { -tracker_selection-part(body-part: "ヒップ") }
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part(body-part: "左肩") }
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part(body-part: "左上腕") }
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part(body-part: "左前腕") }
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part(body-part: "左手") }
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part(body-part: "左太もも") }
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part(body-part: "左足首") }
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part(body-part: "左足先") }
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part(body-part: "左コントローラ") }
tracker_selection_menu-unassigned = 未割り当てのトラッカー
tracker_selection_menu-assigned = 割り当て済みのトラッカー
tracker_selection_menu-dont_assign = 割り当てない
tracker_selection_menu-neck_warning-done = リスクを理解しています
tracker_selection_menu-neck_warning-cancel = キャンセル
## Mounting menu
mounting_selection_menu = このトラッカーをどこに配置しますか?
mounting_selection_menu-close = 閉じる
## Sidebar settings
settings-sidebar-title = 設定
settings-sidebar-general = 一般
settings-sidebar-tracker_mechanics = トラッカーメカニズム
settings-sidebar-fk_settings = FK設定
settings-sidebar-gesture_control = ジェスチャーコントロール
settings-sidebar-interface = インターフェース
settings-sidebar-osc_router = OSCルーター
settings-sidebar-utils = ユーティリティ
settings-sidebar-serial = シリアルコンソール
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVRのトラッカー
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
有効化したい部位にチャックを入れてください。
SlimeVRが行うことをよりコントロールしたい場合に便利です。
settings-general-steamvr-trackers-waist = 腰
settings-general-steamvr-trackers-chest = 胸
settings-general-steamvr-trackers-feet = 足
settings-general-steamvr-trackers-knees = 膝
settings-general-steamvr-trackers-elbows = 肘
settings-general-steamvr-trackers-hands = 手
## Tracker mechanics
settings-general-tracker_mechanics = トラッカーメカニズム
settings-general-tracker_mechanics-filtering = フィルター機能
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
トラッカーのフィルタリングの種類を選択します。
Predictionは動きを予測し、Smoothingは動きを滑らかにする。
settings-general-tracker_mechanics-filtering-type = フィルタータイプ
settings-general-tracker_mechanics-filtering-type-none = フィルター無し
settings-general-tracker_mechanics-filtering-type-none-description = トラッカーの値をそのまま使用します。フィルタリングは行いません。
settings-general-tracker_mechanics-filtering-type-smoothing = スムージング
settings-general-tracker_mechanics-filtering-type-smoothing-description = 動きを滑らかにしますが、若干の遅れが発生します
settings-general-tracker_mechanics-filtering-type-prediction = プリディクション
settings-general-tracker_mechanics-filtering-type-prediction-description = レイテンシーを減らし、動きをよりキビキビさせますが、ジッターが増加する場合があります。
settings-general-tracker_mechanics-filtering-amount = 数値
settings-general-tracker_mechanics-drift_compensation = ドリフト補正
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
逆回転をかけることで IMU のヨー軸ドリフトを補正します。
補正量とリセット回数を変更します。
settings-general-tracker_mechanics-drift_compensation-enabled-label = ドリフト補正
settings-general-tracker_mechanics-drift_compensation-amount-label = 補正量
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 最大リセット回数
## FK/Tracking settings
settings-general-fk_settings = FK設定
settings-general-fk_settings-leg_tweak = 脚の微調整
settings-general-fk_settings-leg_tweak-description = フロアクリップは、床とのクリッピングを減らす、あるいはなくすことができますが、膝をついたときに問題が発生する可能性があります。スケーティング補正は足の滑りを補正できますが、特定の動作パターンでは精度が落ちることがあります。
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = フロアクリップ
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = スケーティング補正
settings-general-fk_settings-leg_tweak-skating_correction-amount = スケーティング補正の強さ
settings-general-fk_settings-arm_fk = アームトラッキング
settings-general-fk_settings-arm_fk-description = 腕の追従方法を変更する。
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-skeleton_settings = スケルトン設定
settings-general-fk_settings-skeleton_settings-description = スケルトン設定のオン/オフを切り替えます。これらはオンのままにしておくことをお勧めします。
settings-general-fk_settings-skeleton_settings-extended_spine = Extended spine
settings-general-fk_settings-skeleton_settings-extended_pelvis = Extended pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Extended knee
settings-general-fk_settings-vive_emulation-title = Viveエミュレーション
settings-general-fk_settings-vive_emulation-description = Viveトラッカーが抱える腰トラッカーの問題をエミュレートします。
settings-general-fk_settings-vive_emulation-label = Viveエミュレーションの有効化
## Gesture control settings (tracker tapping)
settings-general-gesture_control = ジェスチャーコントロール
settings-general-gesture_control-subtitle = ダブルタップクイックリセット
settings-general-gesture_control-description = ダブルタップクイックリセットの有効・無効を設定します。有効にすると、最も高い胴体トラッカー上の任意の場所をダブルタップすると、クイックリセットが起動します。ディレイは、タップされてからリセットされるまでの時間です。
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } タップ
}
settings-general-gesture_control-quickResetEnabled = タップによるクイックリセットを有効にする
settings-general-gesture_control-quickResetDelay = クイックリセットディレイ
settings-general-gesture_control-quickResetTaps = タップによるクイックリセット
settings-general-gesture_control-resetEnabled = タップによるリセットを有効にする
settings-general-gesture_control-resetDelay = リセットディレイ
settings-general-gesture_control-resetTaps = タップによるリセット
settings-general-gesture_control-mountingResetEnabled = タップによるマウントリセットを有効にする
settings-general-gesture_control-mountingResetDelay = マウントリセットディレイ
settings-general-gesture_control-mountingResetTaps = タップによるマウントリセット
## Interface settings
settings-general-interface = インターフェース
settings-general-interface-dev_mode = 開発者モード
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
settings-general-interface-dev_mode-label = 開発者モード
settings-general-interface-serial_detection = シリアルデバイスの検出
settings-general-interface-serial_detection-description = このオプションは、トラッカーとなり得る新しいシリアルデバイスを接続するたびにポップアップを表示します。これはトラッカーの設定プロセスを改善するのに役立ちます。
settings-general-interface-serial_detection-label = シリアルデバイスの検出
settings-general-interface-lang = 言語を選択
settings-general-interface-lang-description = 使用したいデフォルトの言語を変更する
settings-general-interface-lang-placeholder = 使用する言語を選択する
## Serial settings
settings-serial = シリアルコンソール
# This cares about multilines
settings-serial-description =
シリアル通信のライブ情報フィードです。
ファームウェアの動作を知る必要がある場合に有用かもしれません。
settings-serial-connection_lost = シリアルへの接続が失われました、再接続中...
settings-serial-reboot = リブート
settings-serial-factory_reset = ファクトリーリセット
settings-serial-factory_reset-warning-ok = 自分が何しているかを知っています。
settings-serial-factory_reset-warning-cancel = キャンセル
settings-serial-get_infos = 情報取得
settings-serial-serial_select = シリアルポートを選択
settings-serial-auto_dropdown_item = 自動
## OSC router settings
settings-osc-router = OSCルーター
# This cares about multilines
settings-osc-router-description =
他のプログラムからの OSC メッセージを転送します。
例えば、VRChat で他の OSC プログラムを使用する場合に便利です。
settings-osc-router-enable = 有効
settings-osc-router-enable-description = メッセージの転送を切り替えます。
settings-osc-router-enable-label = 有効
settings-osc-router-network = ネットワークポート
# This cares about multilines
settings-osc-router-network-description =
データのリスニングと送信のためのポートを設定します。
これらはSlimeVRサーバーで使用する他のポートと同じでかまいません。
settings-osc-router-network-port_in =
.label = ポートイン
.placeholder = ポートイン (デフォルト: 9002)
settings-osc-router-network-port_out =
.label = ポートアウト
.placeholder = ポートアウト (デフォルト: 9000)
settings-osc-router-network-address = ネットワークアドレス
settings-osc-router-network-address-description = データを送り出すアドレスを設定します。
settings-osc-router-network-address-placeholder = IPV4アドレス
## OSC VRChat settings
settings-osc-vrchat = VRChat OSCトラッカー
# This cares about multilines
settings-osc-vrchat-description =
HMDのデータを受信して送信するためにVRChat固有の設定を変更する。
FBT用のトラッカーデータQuestスタンドアロンで動作します
settings-osc-vrchat-enable = 有効
settings-osc-vrchat-enable-description = データの送受信を切り替える。
settings-osc-vrchat-enable-label = 有効
settings-osc-vrchat-network = ネットワークポート
settings-osc-vrchat-network-description = VRChatへのデータを送受信するためのポートを設定します。
settings-osc-vrchat-network-port_in =
.label = ポートイン
.placeholder = ポートイン (デフォルト: 9001)
settings-osc-vrchat-network-port_out =
.label = ポートアウト
.placeholder = ポートアウト (デフォルト: 9000)
settings-osc-vrchat-network-address = ネットワークアドレス
settings-osc-vrchat-network-address-description = VRChatにデータを送信するアドレスを選択してくださいデバイスのWi-Fi設定を確認してください
settings-osc-vrchat-network-address-placeholder = VRChatのIPアドレス
settings-osc-vrchat-network-trackers = トラッカー
settings-osc-vrchat-network-trackers-description = データの送受信を切り替える。
settings-osc-vrchat-network-trackers-chest = 胸
settings-osc-vrchat-network-trackers-waist = 腰
settings-osc-vrchat-network-trackers-knees = 膝
settings-osc-vrchat-network-trackers-feet = 足
settings-osc-vrchat-network-trackers-elbows = 肘
## Setup/onboarding menu
onboarding-skip = 設定をスキップする
onboarding-continue = 続ける
onboarding-wip = 実行中
## Wi-Fi setup
onboarding-wifi_creds-back = 戻る
onboarding-wifi_creds = Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
トラッカーはこれらの認証情報を使ってWi-Fiに接続します。
現在接続している認証情報を使用してください。
onboarding-wifi_creds-skip = Wi-Fi設定をスキップする
onboarding-wifi_creds-submit = 実行!
onboarding-wifi_creds-ssid =
.label = Wi-Fi名
.placeholder = Enter Wi-Fi名
onboarding-wifi_creds-password =
.label = Password
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = マウントキャリブレーションに戻る
onboarding-reset_tutorial = リセットチュートリアル
onboarding-reset_tutorial-description = この機能は終了していません。続けるを押してください。
## Setup start
onboarding-home = SlimeVRへようこそ
# This cares about multilines and it's centered!!
onboarding-home-description =
フルボディトラッキングを実現する
すべての人に!
onboarding-home-start = セットアップ開始!
## Enter VR part of setup
onboarding-enter_vr-back = トラッカー割り当てに戻る
onboarding-enter_vr-title = VRに入る時間だ
onboarding-enter_vr-description = トラッカーを全部つけて、VRに突入せよ
onboarding-enter_vr-ready = 準備完了
## Setup done
onboarding-done-title = 準備完了です!
onboarding-done-description = フルトラをお楽しみください
onboarding-done-close = ガイドを閉じる
## Tracker connection setup
onboarding-connect_tracker-back = Wi-Fi認証に戻る
onboarding-connect_tracker-title = 接続中のトラッカー
onboarding-connect_tracker-description-p0 = さあ、楽しい部分に移りましょう。すべてのトラッカーを接続します!
onboarding-connect_tracker-description-p1 = まだ接続されていないトラッカーたちをUSBポートを通して接続するだけです。
onboarding-connect_tracker-issue-serial = 接続に問題があります!
onboarding-connect_tracker-usb = USBトラッカー
onboarding-connect_tracker-connection_status-connecting = Wi-Fiの認証情報を送信中
onboarding-connect_tracker-connection_status-connected = Wi-Fiに接続されました
onboarding-connect_tracker-connection_status-error = Wi-Fiに接続できません
onboarding-connect_tracker-connection_status-start_connecting = トラッカーを探しています
onboarding-connect_tracker-connection_status-handshake = サーバーに接続されました
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = すべてのトラッカーを接続しました
## Tracker assignment setup
onboarding-assign_trackers-back = Wi-Fi認証に戻る
onboarding-assign_trackers-title = トラッカーを割り当てる
onboarding-assign_trackers-description = どのトラッカーをどこに置くか選んでみましょう。トラッカーを配置したい場所をクリックしてください。
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = 高度な割り当て場所の表示
onboarding-assign_trackers-next = すべてのトラッカーを割り当てました
## Tracker manual mounting setup
onboarding-manual_mounting-back = VRの入力に戻る
onboarding-manual_mounting = マニュアルマウント
onboarding-manual_mounting-description = すべてのトラッカーをクリックし、どの方向にマウントするかを選択
onboarding-manual_mounting-auto_mounting = 自動マウント
onboarding-manual_mounting-next = 次のステップ
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = VRの入力に戻る
onboarding-automatic_mounting-title = マウントキャリブレーション
onboarding-automatic_mounting-description = SlimeVRのトラッカーを動作させるためには、物理的なトラッカーの取り付け位置と合わせるために、トラッカーの取り付け方向を合わせる必要があります。
onboarding-automatic_mounting-manual_mounting = マニュアルマウント
onboarding-automatic_mounting-next = 次のステップ
onboarding-automatic_mounting-prev_step = 前のステップ
onboarding-automatic_mounting-done-title = 取り付け方向の較正を行いました。
onboarding-automatic_mounting-done-description = マウントのキャリブレーションが完了しました!
onboarding-automatic_mounting-done-restart = 最初に戻る
onboarding-automatic_mounting-mounting_reset-title = マウントリセット
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 足を曲げ、上体を前に倒し、腕を曲げた状態で、スキーのポーズでしゃがむ。
onboarding-automatic_mounting-mounting_reset-step-1 = 2. リセットマウンティングボタンを押し、3秒待つと装着方向がリセットされます。
onboarding-automatic_mounting-preparation-title = 準備
onboarding-automatic_mounting-preparation-step-0 = 1. 両手を横に広げて直立します。
onboarding-automatic_mounting-preparation-step-1 = 2. リセットボタンを押し、3秒待つとリセットされます。
onboarding-automatic_mounting-put_trackers_on-title = トラッカーを装着する
onboarding-automatic_mounting-put_trackers_on-description = マウントの方向を較正するために、先ほど割り当てたトラッカーを使用します。右の図でどれがどれだかわかると思います。
onboarding-automatic_mounting-put_trackers_on-next = すべてのトラッカーを装着しました
## Tracker manual proportions setup
onboarding-manual_proportions-back = チュートリアルをリセットする
onboarding-manual_proportions-title = マニュアルボディプロポーション
onboarding-manual_proportions-precision = 精度を調整する
onboarding-manual_proportions-auto = 自動キャリブレーション
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = チュートリアルをリセットする
onboarding-automatic_proportions-title = 自分の体の測定
onboarding-automatic_proportions-description = SlimeVRのトラッカーが動作するためには、あなたの骨の長さを知る必要があります。この短いキャリブレーションでそれを測定します。
onboarding-automatic_proportions-manual = 手動調整
onboarding-automatic_proportions-prev_step = 前のステップ
onboarding-automatic_proportions-put_trackers_on-title = トラッカーを装着する
onboarding-automatic_proportions-put_trackers_on-description = プロポーションを調整するために、先ほど割り当てたトラッカーを使用します。右の図で、どれがどのトラッカーかわかると思います。
onboarding-automatic_proportions-put_trackers_on-next = すべてのトラッカーを装着しました
onboarding-automatic_proportions-preparation-title = 準備
onboarding-automatic_proportions-preparation-description = プレイスペース内のあなたの真後ろに椅子を置いてください。オートボーンセットアップの間、座れるように準備してください。
onboarding-automatic_proportions-preparation-next = 椅子の前にいます
onboarding-automatic_proportions-start_recording-title = 測定の準備をする
onboarding-automatic_proportions-start_recording-description = これから具体的なポーズや動きを記録します。これらは次の画面に表示されます。ボタンが押されたらすぐに始められるように準備しておいてください!
onboarding-automatic_proportions-start_recording-next = レコーディングスタート
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = レコーディング中...
onboarding-automatic_proportions-recording-description-p1 = 以下に示すような動きをします。
onboarding-automatic_proportions-recording-steps-0 = 膝を数回曲げてください
onboarding-automatic_proportions-recording-steps-1 = 椅子に座り、立ち上がる
onboarding-automatic_proportions-recording-steps-2 = 上半身を左にひねり、右に曲げる
onboarding-automatic_proportions-recording-steps-3 = 上半身を右にひねり、左に曲げる
onboarding-automatic_proportions-recording-steps-4 = タイマーが終わるまで体をくねらせる
onboarding-automatic_proportions-recording-processing = 結果を処理中
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = 結果を確認
onboarding-automatic_proportions-verify_results-description = 以下の結果を確認してください。正しく表示されていますか?
onboarding-automatic_proportions-verify_results-results = 記録結果
onboarding-automatic_proportions-verify_results-processing = 結果の処理
onboarding-automatic_proportions-verify_results-redo = レコーディングやり直し
onboarding-automatic_proportions-verify_results-confirm = 正確です
onboarding-automatic_proportions-done-title = 体を測定して保存
onboarding-automatic_proportions-done-description = ボディプロポーションのキャリブレーションが完了しました!
## Home
home-no_trackers = トラッカーを検出できません。もしくは割り当てられていません。

View File

@@ -0,0 +1,598 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = 서버에 연결하는 중...
websocket-connection_lost = 서버와의 연결이 끊어졌어요. 다시 연결하는 중...
## Tips
tips-find_tracker = 내 트래커가 어떤 트래커인지 모르시겠다구요? 트래커를 흔들면 해당 항목이 빛날 거에요.
tips-do_not_move_heels = 기록하는 동안 발뒤꿈치가 움직이지 않도록 조심하세요!
## Body parts
body_part-NONE = 할당되지 않음
body_part-HEAD = 머리
body_part-NECK = 목
body_part-RIGHT_SHOULDER = 오른쪽 어깨
body_part-RIGHT_UPPER_ARM = 오른쪽 팔 위
body_part-RIGHT_LOWER_ARM = 오른쪽 팔 아래
body_part-RIGHT_HAND = 오른손
body_part-RIGHT_UPPER_LEG = 오른쪽 다리 위
body_part-RIGHT_LOWER_LEG = 오른쪽 다리 아래
body_part-RIGHT_FOOT = 오른발
body_part-RIGHT_CONTROLLER = 오른쪽 컨트롤러
body_part-CHEST = 가슴
body_part-WAIST = 허리
body_part-HIP = 골반
body_part-LEFT_SHOULDER = 오른쪽 어깨
body_part-LEFT_UPPER_ARM = 왼쪽 팔 위
body_part-LEFT_LOWER_ARM = 왼쪽 팔 아래
body_part-LEFT_HAND = 왼손
body_part-LEFT_UPPER_LEG = 왼쪽 다리 위
body_part-LEFT_LOWER_LEG = 왼쪽 다리 아래
body_part-LEFT_FOOT = 왼발
body_part-LEFT_CONTROLLER = 왼쪽 컨트롤러
## Proportions
skeleton_bone-NONE = 없음
skeleton_bone-HEAD = 머리 밀림
skeleton_bone-NECK = 목 길이
skeleton_bone-CHEST = 가슴 길이
skeleton_bone-CHEST_OFFSET = 가슴 오프셋
skeleton_bone-WAIST = 허리 길이
skeleton_bone-HIP = 골반 길이
skeleton_bone-HIP_OFFSET = 골반 오프셋
skeleton_bone-HIPS_WIDTH = 골반 너비
skeleton_bone-UPPER_LEG = 위쪽 다리 길이
skeleton_bone-LOWER_LEG = 아래쪽 다리 길이
skeleton_bone-FOOT_LENGTH = 발 크기
skeleton_bone-FOOT_SHIFT = 발 밀림
skeleton_bone-SKELETON_OFFSET = 골격 오프셋
skeleton_bone-SHOULDERS_DISTANCE = 어깨 거리
skeleton_bone-SHOULDERS_WIDTH = 어깨 너비
skeleton_bone-UPPER_ARM = 위쪽 팔 거리
skeleton_bone-LOWER_ARM = 아래쪽 팔 길이
skeleton_bone-CONTROLLER_Y = 컨트롤러 Y축 거리
skeleton_bone-CONTROLLER_Z = 컨트롤러 Z축 거리
skeleton_bone-ELBOW_OFFSET = 팔꿈치 오프셋
## Tracker reset buttons
reset-reset_all = 모든 신체 비율 리셋
reset-full = 리셋
reset-mounting = 착용 방향 리셋
reset-quick = 퀵 리셋
## Serial detection stuff
serial_detection-new_device-p0 = 새로운 시리얼 디바이스를 찾았어요!
serial_detection-new_device-p1 = Wi-Fi 자격 증명을 입력해주세요!
serial_detection-new_device-p2 = 원하는 작업을 선택하세요
serial_detection-open_wifi = Wi-Fi 연결
serial_detection-open_serial = 시리얼 콘솔 열기
serial_detection-submit = 저장!
serial_detection-close = 닫기
## Navigation bar
navbar-home = 홈
navbar-body_proportions = 신체 비율
navbar-trackers_assign = 트래커 위치
navbar-mounting = 착용 방향 정렬
navbar-onboarding = 설정 마법사
navbar-settings = 설정
## Bounding volume hierarchy recording
bvh-start_recording = BVH 기록
bvh-recording = 기록중...
## Widget: Overlay settings
widget-overlay = 오버레이
widget-overlay-is_visible_label = SteamVR에서 오버레이 표시
widget-overlay-is_mirrored_label = 오버레이 반전
## Widget: Drift compensation
widget-drift_compensation-clear = 틀어짐 보정 초기화
## Widget: Developer settings
widget-developer_mode = 개발자 모드
widget-developer_mode-high_contrast = 고대비
widget-developer_mode-precise_rotation = 회전 자세히 보기
widget-developer_mode-fast_data_feed = 빠른 데이터 피드
widget-developer_mode-filter_slimes_and_hmd = 트래커와 VR 헤드셋만 보기
widget-developer_mode-sort_by_name = 이름순으로 정렬
widget-developer_mode-raw_slime_rotation = 원시 회전값 보기
widget-developer_mode-more_info = 더 많은 정보 보기
## Widget: IMU Visualizer
widget-imu_visualizer = 회전
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = 미리보기
## Tracker status
tracker-status-none = 알 수 없음
tracker-status-busy = 바쁨
tracker-status-error = 오류
tracker-status-disconnected = 연결되지 않음
tracker-status-occluded = 사용할 수 없음
tracker-status-ok = 연결됨
## Tracker status columns
tracker-table-column-name = 이름
tracker-table-column-type = 타입
tracker-table-column-battery = 배터리
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = 온도 °C
tracker-table-column-linear-acceleration = X/Y/Z 가속도
tracker-table-column-rotation = X/Y/Z 회전
tracker-table-column-position = X/Y/Z 위치
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 앞쪽
tracker-rotation-left = 왼쪽
tracker-rotation-right = 오른쪽
tracker-rotation-back = 뒤쪽
## Tracker information
tracker-infos-manufacturer = 제조사
tracker-infos-display_name = 표시되는 이름
tracker-infos-custom_name = 사용자 정의 이름
tracker-infos-url = 트래커 URL
## Tracker settings
tracker-settings-back = 트래커 목록으로 돌아가기
tracker-settings-title = 트래커 설정
tracker-settings-assignment_section = 트래커 위치 지정
tracker-settings-assignment_section-description = 트래커가 위치한 신체 부위
tracker-settings-assignment_section-edit = 위치 수정
tracker-settings-mounting_section = 착용 방향
tracker-settings-mounting_section-description = 트래커는 어디에 착용하나요?
tracker-settings-mounting_section-edit = 방향 수정
tracker-settings-drift_compensation_section = 틀어짐 보정 사용
tracker-settings-drift_compensation_section-description = 틀어짐 보정이 켜져 있을 때 이 트래커의 틀어짐을 보정할까요?
tracker-settings-drift_compensation_section-edit = 틀어짐 보정 사용
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = 트래커 이름
tracker-settings-name_section-description = 귀여운 이름을 지어주세요! >_<
tracker-settings-name_section-placeholder = NightyBeast's left leg
## Tracker part card info
tracker-part_card-no_name = 이름 없음
tracker-part_card-unassigned = 할당되지 않음
## Body assignment menu
body_assignment_menu = 트래커가 어디에 있나요?
body_assignment_menu-description = 이 트래커를 할당할 위치를 선택하세요. 또는, 모든 트래커를 한 번에 설정할 수도 있어요.
body_assignment_menu-show_advanced_locations = 고급 할당 위치 표시
body_assignment_menu-manage_trackers = 모든 트래커 설정
body_assignment_menu-unassign_tracker = 할당하지 않기
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = 에 어떤 트래커를 할당할까요?
tracker_selection_menu-NONE = 어떤 트래커를 할당 취소할까요?
tracker_selection_menu-HEAD = 머리{ -tracker_selection-part }
tracker_selection_menu-NECK = 목{ -tracker_selection-part }
tracker_selection_menu-RIGHT_SHOULDER = 오른쪽 어께{ -tracker_selection-part }
tracker_selection_menu-RIGHT_UPPER_ARM = 오른쪽 팔 위{ -tracker_selection-part }
tracker_selection_menu-RIGHT_LOWER_ARM = 오른쪽 팔 아래{ -tracker_selection-part }
tracker_selection_menu-RIGHT_HAND = 오른손{ -tracker_selection-part }
tracker_selection_menu-RIGHT_UPPER_LEG = 오른쪽 다리 위{ -tracker_selection-part }
tracker_selection_menu-RIGHT_LOWER_LEG = 오른쪽 다리 아래{ -tracker_selection-part }
tracker_selection_menu-RIGHT_FOOT = 오른쪽 발{ -tracker_selection-part }
tracker_selection_menu-RIGHT_CONTROLLER = 오른쪽 컨트롤러{ -tracker_selection-part }
tracker_selection_menu-CHEST = 가슴{ -tracker_selection-part }
tracker_selection_menu-WAIST = 허리{ -tracker_selection-part }
tracker_selection_menu-HIP = 골반{ -tracker_selection-part }
tracker_selection_menu-LEFT_SHOULDER = 왼쪽 어께{ -tracker_selection-part }
tracker_selection_menu-LEFT_UPPER_ARM = 왼쪽 팔 위{ -tracker_selection-part }
tracker_selection_menu-LEFT_LOWER_ARM = 왼쪽 팔 아래{ -tracker_selection-part }
tracker_selection_menu-LEFT_HAND = 왼손{ -tracker_selection-part }
tracker_selection_menu-LEFT_UPPER_LEG = 왼쪽 다리 위{ -tracker_selection-part }
tracker_selection_menu-LEFT_LOWER_LEG = 왼쪽 다리 아래{ -tracker_selection-part }
tracker_selection_menu-LEFT_FOOT = 왼쪽 발{ -tracker_selection-part }
tracker_selection_menu-LEFT_CONTROLLER = 왼쪽 컨트롤러{ -tracker_selection-part }
tracker_selection_menu-unassigned = 할당되지 않은 트래커
tracker_selection_menu-assigned = 할당된 트래커
tracker_selection_menu-dont_assign = 할당하지 않기
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>경고:</b> 목 트래커는 너무 세게 조정하면 위험해요.
스트랩이 머리의 혈액 순환을 방해할 수 있어요!
tracker_selection_menu-neck_warning-cancel = 취소
## Mounting menu
mounting_selection_menu = 트래커가 어디에 있나요?
mounting_selection_menu-close = 닫기
## Sidebar settings
settings-sidebar-title = 설정
settings-sidebar-general = 일반
settings-sidebar-tracker_mechanics = 트래커 역학
settings-sidebar-fk_settings = FK 설정
settings-sidebar-gesture_control = 제스처 제어
settings-sidebar-interface = 인터페이스
settings-sidebar-osc_router = OSC 라우터
settings-sidebar-utils = 유틸리티
settings-sidebar-serial = 시리얼 콘솔
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR 트래커
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
SteamVR 트래커를 켜거나 끄세요
특정 트래커 구성만 허용하는 게임 또는 앱에서 유용해요.
settings-general-steamvr-trackers-waist = Waist
settings-general-steamvr-trackers-chest = Chest
settings-general-steamvr-trackers-feet = Feet
settings-general-steamvr-trackers-knees = Knees
settings-general-steamvr-trackers-elbows = Elbows
settings-general-steamvr-trackers-hands = Hands
## Tracker mechanics
settings-general-tracker_mechanics = 트래커 역학
settings-general-tracker_mechanics-filtering = 필터링
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
트래커의 필터링 유형을 선택하세요.
Prediction은 움직임을 예측하고 Smoothing은 움직임을 부드럽게 해요.
settings-general-tracker_mechanics-filtering-type = 필터링 타입
settings-general-tracker_mechanics-filtering-type-none = 필터링 없음
settings-general-tracker_mechanics-filtering-type-none-description = 어떠한 필터링도 사용하지 않아요. 있는 그대로의 회전 값을 사용해요.
settings-general-tracker_mechanics-filtering-type-smoothing = Smoothing
settings-general-tracker_mechanics-filtering-type-smoothing-description = 움직임을 부드럽게 하지만 약간의 대기 시간이 추가돼요.
settings-general-tracker_mechanics-filtering-type-prediction = Prediction
settings-general-tracker_mechanics-filtering-type-prediction-description = 대기 시간이 줄어들고 움직임이 더 빨라지지만 지터가 증가할 수 있어요.
settings-general-tracker_mechanics-filtering-amount = 강도
settings-general-tracker_mechanics-drift_compensation = 틀어짐 보정
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
틀어지는 방향의 반대 방향으로 회전해서 IMU yaw 드리프트를 보정할 수 있어요.
보정하는 강도와 감지할 최근 리셋 횟수를 설정할 수 있어요.
settings-general-tracker_mechanics-drift_compensation-enabled-label = 틀어짐 보정
settings-general-tracker_mechanics-drift_compensation-amount-label = 보정 강도
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 보정에 사용할 최근 리셋 횟수
## FK/Tracking settings
settings-general-fk_settings = FK 설정
settings-general-fk_settings-leg_tweak = 다리 보정
settings-general-fk_settings-leg_tweak-description = 플로어 클립은 바닥과의 클리핑을 줄이거나 제거할 수 있지만 무릎을 꿇을 때 문제를 일으킬 수 있어요. 스케이팅 보정은 아이스 스케이팅을 보정하지만, 특정 움직임 패턴에서 정확도를 저하시킬 수 있어요.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = 플로어 클립
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = 스케이팅 보정
settings-general-fk_settings-leg_tweak-skating_correction-amount = 스케이팅 보정 강도
settings-general-fk_settings-arm_fk = 팔 운동학
settings-general-fk_settings-arm_fk-description = 팔이 추적되는 방식을 변경할 수 있어요.
settings-general-fk_settings-arm_fk-force_arms = 팔을 HMD에서만 받아오기
settings-general-fk_settings-skeleton_settings = 골격 설정
settings-general-fk_settings-skeleton_settings-description = 골격 설정을 설정하거나 해제해요. 이것들은 켜두는 게 좋아요.
settings-general-fk_settings-skeleton_settings-extended_spine = 척추 확장
settings-general-fk_settings-skeleton_settings-extended_pelvis = 골반 확장
settings-general-fk_settings-skeleton_settings-extended_knees = 무릎 확장
settings-general-fk_settings-vive_emulation-title = VIVE 에뮬레이션
settings-general-fk_settings-vive_emulation-description = 바이브 트래커가 가지고 있는 허리 트래커 문제를 따라해보세요! 사실 이건 장난이고 추적을 더 악화시켜요.
settings-general-fk_settings-vive_emulation-label = VIVE 에뮬레이션 활성화
## Gesture control settings (tracker tapping)
settings-general-gesture_control = 제스처 제어
settings-general-gesture_control-subtitle = 두 번 탭해서 퀵 리셋하기
settings-general-gesture_control-description = 활성화하면 가장 높이 있는 트래커의 아무 곳이나 두 번 탭해서 퀵 리셋을 활성화할 수 있어요. 두번 탭하는 간격은 딜레이로 조절할 수 있어요.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount } 탭
}
settings-general-gesture_control-quickResetEnabled = 탭해서 퀵 리셋 활성화
settings-general-gesture_control-quickResetDelay = 퀵 리셋 딜레이
settings-general-gesture_control-quickResetTaps = 탭해서 퀵 리셋
settings-general-gesture_control-resetEnabled = 탭해서 리셋 활성화
settings-general-gesture_control-resetDelay = 리셋 딜레이
settings-general-gesture_control-resetTaps = 탭해서 리셋
settings-general-gesture_control-mountingResetEnabled = 탭해서 착용 방향 정렬 활성화
settings-general-gesture_control-mountingResetDelay = 착용 방향 정렬 딜레이
settings-general-gesture_control-mountingResetTaps = 탭해서 착용 방향 정렬
## Interface settings
settings-general-interface = 인터페이스
settings-general-interface-dev_mode = 개발자 모드
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
settings-general-interface-dev_mode-label = 개발자 모드
settings-general-interface-serial_detection = 시리얼 디바이스 감지
settings-general-interface-serial_detection-description = 이 옵션은 트래커일 수도 있는 새로운 시리얼 디바이스를 연결할 때마다 팝업을 표시해요. 트래커 설정 프로세스를 개선하는 데 도움이 될 거에요.
settings-general-interface-serial_detection-label = 시리얼 디바이스 감지
settings-general-interface-lang = 언어 선택
settings-general-interface-lang-description = 사용하고 싶은 기본 언어를 선택하세요.
settings-general-interface-lang-placeholder = 사용할 언어를 선택하세요
## Serial settings
settings-serial = 시리얼 콘솔
# This cares about multilines
settings-serial-description =
이 라이브 피드에서 시리얼 디바이스와 통신할 수 있어요.
펌웨어가 제대로 작동하는지 알아야 할 때 유용할 거에요.
settings-serial-connection_lost = 시리얼 연결 끊김, 다시 연결 중...
settings-serial-reboot = 재부팅
settings-serial-factory_reset = 공장 초기화
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>주의:</b> 트래커의 모든 설정이 초기화돼요.
계속하면 Wi-Fi와 캘리브레이션 정보도 <b>모두 삭제됩니다!</b>
settings-serial-factory_reset-warning-ok = 네! 알고 있어요.
settings-serial-factory_reset-warning-cancel = 취소
settings-serial-get_infos = 정보 가져오기
settings-serial-serial_select = 시리얼 포트 선택
settings-serial-auto_dropdown_item = 자동
## OSC router settings
settings-osc-router = OSC 라우터
# This cares about multilines
settings-osc-router-description =
다른 프로그램에서 오는 OSC 메시지를 전달해요.
예를 들어 VRChat과 함께 다른 OSC 프로그램을 사용하는 데 유용할 거에요.
settings-osc-router-enable = 활성화
settings-osc-router-enable-description = 활성화해서 메세지 전달 켜기
settings-osc-router-enable-label = 활성화
settings-osc-router-network = 네트워크 포트
# This cares about multilines
settings-osc-router-network-description =
데이터 수신 및 전송을 위한 포트 설정
이들은 SlimeVR 서버에서 사용되는 다른 포트와 동일할 수 있어요.
settings-osc-router-network-port_in =
.label = 들어오는 포트
.placeholder = Port in (기본값: 9002)
settings-osc-router-network-port_out =
.label = 나가는 포트
.placeholder = Port out (기본값: 9000)
settings-osc-router-network-address = 네트워크 주소
settings-osc-router-network-address-description = 데이터를 보낼 주소를 설정하세요.
settings-osc-router-network-address-placeholder = IPV4 주소
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
HMD 데이터 수신 및 전송을 위한 VRChat 관련 설정 변경
FBT용 트래커 데이터(Quest 단독에서 작동)
settings-osc-vrchat-enable = 활성화
settings-osc-vrchat-enable-description = 활성화해서 데이터 송수신 전환
settings-osc-vrchat-enable-label = 활성화
settings-osc-vrchat-network = 네트워크 포트
settings-osc-vrchat-network-description = VRChat과 데이터를 주고받는 포트 설정
settings-osc-vrchat-network-port_in =
.label = 들어오는 포트
.placeholder = Port in (기본값: 9001)
settings-osc-vrchat-network-port_out =
.label = 나가는 포트
.placeholder = Port out (기본값: 9000)
settings-osc-vrchat-network-address = 네트워크 주소
settings-osc-vrchat-network-address-description = VRChat으로 데이터를 보낼 주소를 선택하세요(장치의 Wi-Fi 설정 확인).
settings-osc-vrchat-network-address-placeholder = VRChat IP 주소
settings-osc-vrchat-network-trackers = 트래커
settings-osc-vrchat-network-trackers-description = 활성화해서 데이터 송수신 전환
settings-osc-vrchat-network-trackers-chest = Chest
settings-osc-vrchat-network-trackers-waist = Waist
settings-osc-vrchat-network-trackers-knees = Knees
settings-osc-vrchat-network-trackers-feet = Feet
settings-osc-vrchat-network-trackers-elbows = Elbows
## Setup/onboarding menu
onboarding-skip = 설정 건너뛰기
onboarding-continue = 계속하기
onboarding-wip = 아직 공사 중이에요
## Wi-Fi setup
onboarding-wifi_creds-back = 처음으로 돌아가기
onboarding-wifi_creds = Wi-Fi 자격 증명을 입력하세요
# This cares about multilines
onboarding-wifi_creds-description =
트래커는 이 자격 증명을 사용하여 무선으로 연결해요
지금 연결되어 있는 자격 증명을 사용해주세요
onboarding-wifi_creds-skip = Wi-Fi 설정 건너뛰기
onboarding-wifi_creds-submit = 저장!
onboarding-wifi_creds-ssid =
.label = Wi-Fi 이름
.placeholder = Wi-Fi 이름을 입력하세요
onboarding-wifi_creds-password =
.label = 암호
.placeholder = 암호를 입력하세요
## Mounting setup
onboarding-reset_tutorial-back = 착용 방향 정렬로 돌아가기
onboarding-reset_tutorial = 리셋 튜토리얼
onboarding-reset_tutorial-description = 이 기능은 아직 완성되지 않았어요, 지금은 일단 계속하기를 눌러주세요!
## Setup start
onboarding-home = SlimeVR에 어서오세요!
# This cares about multilines and it's centered!!
onboarding-home-description =
Bringing full-body tracking
to everyone
onboarding-home-start = 설정하러 가보죠!
## Enter VR part of setup
onboarding-enter_vr-back = 트래커 위치 지정으로 돌아가기
onboarding-enter_vr-title = VR에 들어갈 시간이에요!
onboarding-enter_vr-description = 모든 트래커를 착용하고 VR에 입장하세요!
onboarding-enter_vr-ready = 준비됐어요!
## Setup done
onboarding-done-title = 모든 설정을 마쳤어요!
onboarding-done-description = 풀바디 트래킹을 즐기세요!
onboarding-done-close = 마법사 닫기
## Tracker connection setup
onboarding-connect_tracker-back = Wi-Fi 자격 증명으로 돌아가기
onboarding-connect_tracker-title = 트래커 연결
onboarding-connect_tracker-description-p0 = 이제 모든 트래커를 연결하는 재미있는 부분으로 가봐요!
onboarding-connect_tracker-description-p1 = 그냥 모든 트래커를 USB 포트에 연결하기만 하면 돼요
onboarding-connect_tracker-issue-serial = 연결하는 데 문제가 생겼어요!
onboarding-connect_tracker-usb = USB 트래커
onboarding-connect_tracker-connection_status-none = 트래커 찾는 중
onboarding-connect_tracker-connection_status-connecting = Wi-Fi 자격증명 전송 중
onboarding-connect_tracker-connection_status-looking_for_server = 서버 찾는 중
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] 연결된 트래커가 없어요.
*[other] 트래커 { $amount }개가 연결되었어요.
}
onboarding-connect_tracker-next = 모든 트래커를 잘 연결했어요
## Tracker assignment setup
onboarding-assign_trackers-back = Wi-Fi 자격 증명으로 돌아가기
onboarding-assign_trackers-title = 트래커 위치 지정
onboarding-assign_trackers-description = 이제, 어떤 트래커가 어디에 있는지 선택할 시간이에요. 트래커를 배치할 위치를 클릭해보세요
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned = 트래커 { $trackers }개 중 { $assigned }개 연결됨
onboarding-assign_trackers-advanced = 고급 할당 위치 보기
onboarding-assign_trackers-next = 모든 트래커를 배치했어요
## Tracker assignment warnings
## Tracker manual mounting setup
onboarding-manual_mounting-back = VR 입장 페이지로 돌아가기
onboarding-manual_mounting = 수동으로 착용 방향 설정
onboarding-manual_mounting-description = 트래커를 클릭한 다음, 트래커가 바라보는 방향을 선택해주세요
onboarding-manual_mounting-auto_mounting = 자동으로 착용 방향 설정
onboarding-manual_mounting-next = 다음 단계
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = VR 입장 페이지로 돌아가기
onboarding-automatic_mounting-title = 착용 방향 정렬
onboarding-automatic_mounting-description = SlimeVR 트래커가 작동하려면, 착용 방향을 정해야 해요. 이 단계에서는 실제 트래커의 회전과 맞게 착용 방향을 정렬할 거에요.
onboarding-automatic_mounting-manual_mounting = 수동으로 착용 방향 설정
onboarding-automatic_mounting-next = 다음 단계
onboarding-automatic_mounting-prev_step = 이전 단계
onboarding-automatic_mounting-done-title = 착용 방향이 정렬되었어요
onboarding-automatic_mounting-done-description = 트래커의 착용 방향이 잘 설정되었어요!
onboarding-automatic_mounting-done-restart = 다시 처음으로 돌아가기
onboarding-automatic_mounting-mounting_reset-title = 착용 방향 정렬
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 팔, 다리를 구부린 다음 상체를 앞으로 기울여서 마치 스키를 타는 것처럼 쪼그리고 앉으세요.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. "착용 방향 재설정" 버튼을 누르고 착용 방향이 재설정될 때 까지 3초간 기다려주세요.
onboarding-automatic_mounting-preparation-title = 준비
onboarding-automatic_mounting-preparation-step-0 = 1. 팔을 몸에 붙이고 똑바로 서 주세요
onboarding-automatic_mounting-preparation-step-1 = 2. "리셋" 버튼을 누르고 트래커가 리셋될 때까지 3초 동안 기다려주세요
onboarding-automatic_mounting-put_trackers_on-title = 트래커를 착용해주세요
onboarding-automatic_mounting-put_trackers_on-description = 트래커의 착용 방향이 돌아가는 것을 보정하기 위해 방금 할당한 트래커를 사용할 거에요. 모든 트래커를 착용했다면 오른쪽 그림에서 어떤 트래커인지 확인할 수 있어요.
onboarding-automatic_mounting-put_trackers_on-next = 모든 트래커를 착용했어요
## Tracker manual proportions setup
onboarding-manual_proportions-back = 리셋 튜토리얼로 돌아가기
onboarding-manual_proportions-title = 수동 신체 비율 설정
onboarding-manual_proportions-precision = 자세히 조절하기
onboarding-manual_proportions-auto = 자동 신체 비율 설정
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = 리셋 튜토리얼로 돌아가기
onboarding-automatic_proportions-title = 신체 비율을 측정해보세요
onboarding-automatic_proportions-description = SlimeVR 트래커가 작동하려면 뼈의 길이를 알아야 하는데, 이 짧은 보정을 통해 측정할 수 있어요.
onboarding-automatic_proportions-manual = 수동 신체 비율 설정
onboarding-automatic_proportions-prev_step = 뒤로
onboarding-automatic_proportions-put_trackers_on-title = 트래커를 착용하세요
onboarding-automatic_proportions-put_trackers_on-description = 비율을 조정하기 위해 방금 할당한 트래커를 사용할 거에요. 모든 트래커를 착용하면 오른쪽 그림에서 어떤 것이 있는지 알 수 있어요.
onboarding-automatic_proportions-put_trackers_on-next = 트래커를 다 착용했어요
onboarding-automatic_proportions-preparation-title = 준비하기
onboarding-automatic_proportions-preparation-description = 여러분의 놀이 공간 안에 여러분의 바로 뒤에 의자를 놓으세요. 오토본 설정 중에 앉을 수 있도록 준비해주세요.
onboarding-automatic_proportions-preparation-next = 의자 앞에 서 있어요
onboarding-automatic_proportions-start_recording-title = 움직일 준비
onboarding-automatic_proportions-start_recording-description = 이제 몇 가지 특정 포즈와 동작을 기록할 거에요. 다음 화면에서 메시지가 표시되면 버튼을 눌러서 시작하세요!
onboarding-automatic_proportions-start_recording-next = 기록 시작하기
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = 기록하는 중...
onboarding-automatic_proportions-recording-description-p1 = 아래에 표시된 동작을 따라 하세요
onboarding-automatic_proportions-recording-steps-0 = 무릎을 몇 번 구부리세요
onboarding-automatic_proportions-recording-steps-1 = 의자에 앉았다가 일어서세요.
onboarding-automatic_proportions-recording-steps-2 = 상체를 왼쪽으로 비틀고 오른쪽으로 구부리세요.
onboarding-automatic_proportions-recording-steps-3 = 상체를 오른쪽으로 비틀고 왼쪽으로 구부리세요.
onboarding-automatic_proportions-recording-steps-4 = 타이머가 종료될 때까지 이리저리 움직여 보세요.
onboarding-automatic_proportions-recording-processing = 결과 처리 중
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
*[other] { $time } 초 남음
}
onboarding-automatic_proportions-verify_results-title = 결과를 확인하세요
onboarding-automatic_proportions-verify_results-description = 아래 결과를 한번 보세요, 어때요?
onboarding-automatic_proportions-verify_results-results = 기록 결과
onboarding-automatic_proportions-verify_results-processing = 결과 처리중
onboarding-automatic_proportions-verify_results-redo = 다시 기록하기
onboarding-automatic_proportions-verify_results-confirm = 정확해요!
onboarding-automatic_proportions-done-title = 몸을 측정하고 저장했어요
onboarding-automatic_proportions-done-description = 신체 비율 보정이 완료되었어요!
## Home
home-no_trackers = 감지되거나 할당된 트래커가 없어요.

View File

@@ -0,0 +1,601 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Kobler til serveren
websocket-connection_lost = Mistet server-tilkobling. Vennligst vent mens koblingen gjenopprettes...
## Tips
tips-find_tracker = Vanskeligheter med å skille mellom dine trackere? Rist én for å finne fram riktig gjenstand.
tips-do_not_move_heels = Vær obs på at helene dine står stille under innspillingen!
## Body parts
body_part-NONE = Ikke tildelt
body_part-HEAD = Hode
body_part-NECK = Hals
body_part-RIGHT_SHOULDER = Høyre skulder
body_part-RIGHT_UPPER_ARM = Høyre overarm
body_part-RIGHT_LOWER_ARM = Høyre nedre arm
body_part-RIGHT_HAND = Høyre hånd
body_part-RIGHT_UPPER_LEG = Høyre lår
body_part-RIGHT_LOWER_LEG = Høyre ankel
body_part-RIGHT_FOOT = Høyre fot
body_part-RIGHT_CONTROLLER = Høyre kontroller
body_part-CHEST = Bryst
body_part-WAIST = Midje
body_part-HIP = Hofte
body_part-LEFT_SHOULDER = Venstre skulder
body_part-LEFT_UPPER_ARM = Venstre overarm
body_part-LEFT_LOWER_ARM = Venstre nedre arm
body_part-LEFT_HAND = Venstre hånd
body_part-LEFT_UPPER_LEG = Venstre lår
body_part-LEFT_LOWER_LEG = Venstre ankel
body_part-LEFT_FOOT = Venstre fot
body_part-LEFT_CONTROLLER = Venstre kontroller
## Proportions
skeleton_bone-NONE = Ingen
skeleton_bone-HEAD = Hode bytte
skeleton_bone-NECK = Halslengde
skeleton_bone-CHEST = Bryst-lengde
skeleton_bone-CHEST_OFFSET = Bryst-forskyvning
skeleton_bone-WAIST = Midje-lengde
skeleton_bone-HIP = Hofte-lengde
skeleton_bone-HIP_OFFSET = Hofte-forskyvning
skeleton_bone-HIPS_WIDTH = Hofte-bredde
skeleton_bone-UPPER_LEG = Lår-lengde
skeleton_bone-LOWER_LEG = Leg-lengde
skeleton_bone-FOOT_LENGTH = Fot-lengde
skeleton_bone-FOOT_SHIFT = Fot-bytte
skeleton_bone-SKELETON_OFFSET = Skjellet-forskyvning
skeleton_bone-SHOULDERS_DISTANCE = Skulder-distanse
skeleton_bone-SHOULDERS_WIDTH = Skulder-bredde
skeleton_bone-UPPER_ARM = Overarms-lengde
skeleton_bone-LOWER_ARM = Nedre arm-lengde
skeleton_bone-CONTROLLER_Y = Kontroller distanse Y
skeleton_bone-CONTROLLER_Z = Kontroller distanse Z
skeleton_bone-ELBOW_OFFSET = Albue-forskyvning
## Tracker reset buttons
reset-reset_all = Nullstill alle proporsjoner
reset-full = Nullstill
reset-mounting = Nullstill montering
reset-quick = Rask nullstilling
## Serial detection stuff
serial_detection-new_device-p0 = Ny seriell enhet oppdaget!
serial_detection-new_device-p1 = Tast inn din WiFi legitimasjon!
serial_detection-new_device-p2 = Vennligst velg hva du vil gjøre med den
serial_detection-open_wifi = Koble til Wi-Fi
serial_detection-open_serial = Åpne seriell konsoll
serial_detection-submit = Send inn!
serial_detection-close = Lukk
## Navigation bar
navbar-home = Hjem
navbar-body_proportions = Kropps proporsjoner
navbar-trackers_assign = Tracker tildeling
navbar-mounting = Monterings kalibrering
navbar-onboarding = Oppsetts veiviser
navbar-settings = Innstillinger
## Bounding volume hierarchy recording
bvh-start_recording = BVH-innspilling
bvh-recording = Spiller inn...
## Widget: Overlay settings
widget-overlay = Overlegg
widget-overlay-is_visible_label = Vis overlegg i SteamVR
widget-overlay-is_mirrored_label = Vis overlegg som speil
## Widget: Developer settings
widget-developer_mode = Utvikler modus
widget-developer_mode-high_contrast = Høy kontrast
widget-developer_mode-precise_rotation = Nøyaktig rotering
widget-developer_mode-fast_data_feed = Rask data-feed
widget-developer_mode-filter_slimes_and_hmd = Filtrer slimes og HMD
widget-developer_mode-sort_by_name = Sorter etter navn
widget-developer_mode-raw_slime_rotation = Rå rotering
widget-developer_mode-more_info = Mer info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotasjon
widget-imu_visualizer-rotation_raw = Rå
widget-imu_visualizer-rotation_preview = Forhåndsvisning
## Tracker status
tracker-status-none = Ingen status
tracker-status-busy = Opptatt
tracker-status-error = Feilmelding
tracker-status-disconnected = Frakoblet
tracker-status-occluded = Okkludert
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Navn
tracker-table-column-type = Type
tracker-table-column-battery = Batteri
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Aksel. X/Y/Z
tracker-table-column-rotation = Rotasjon X/Y/Z
tracker-table-column-position = Posisjon X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Front
tracker-rotation-left = Venstre
tracker-rotation-right = Høyre
tracker-rotation-back = Bak
## Tracker information
tracker-infos-manufacturer = Produsent
tracker-infos-display_name = Vis navn
tracker-infos-custom_name = Tilpasset navn
tracker-infos-url = Tracker URL
## Tracker settings
tracker-settings-back = Gå tilbake til tracker-liste
tracker-settings-title = Tracker innstillinger
tracker-settings-assignment_section = Tildeling
tracker-settings-assignment_section-description = Kroppsdelen trackeren er blitt tildelt.
tracker-settings-assignment_section-edit = Endre tildeling
tracker-settings-mounting_section = Monterings posisjon
tracker-settings-mounting_section-description = Hvor er trackeren montert?
tracker-settings-mounting_section-edit = Endre montering
tracker-settings-drift_compensation_section = Tillat avdrifts-kompensasjon
tracker-settings-drift_compensation_section-description = Skal denne trackeren kompensere for egen avdrift når avsdrifts-kompansasjon er aktivert?
tracker-settings-drift_compensation_section-edit = Tillat avdrifts-kompensasjon
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Tracker navn
tracker-settings-name_section-description = Gi den et søtt kallenavn-navn :)
tracker-settings-name_section-placeholder = ~Thͭiͪaͥsͣˢ~ venstre ben
## Tracker part card info
tracker-part_card-no_name = Ingen navn
tracker-part_card-unassigned = Utilordnet
## Body assignment menu
body_assignment_menu = Hvor vil du plassere denne trackeren?
body_assignment_menu-description = Velg den plasseringen du vil tildele denne trackeren. Alternativt kan du velge å ordne alle trackere samtidig istedenfor å ordne dem én etter én.
body_assignment_menu-show_advanced_locations = Vis avanserte tildelings-plasseringer
body_assignment_menu-manage_trackers = Ordne alle trackere
body_assignment_menu-unassign_tracker = Fjern tracker-tildeling
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = { "Hvilken tracker skal tildeles til " }
tracker_selection_menu-NONE = Hvilken tracker vil du fjerne tildelingen på?
tracker_selection_menu-HEAD = { -tracker_selection-part }hodet?
tracker_selection_menu-NECK = { -tracker_selection-part }halsen?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part }høyre skulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part }høyre overarm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part }høyre nedre arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part }høyre hånd?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part }høyre lår?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part }høre ankel?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part }høyre fot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part }høyre kontroller?
tracker_selection_menu-CHEST = { -tracker_selection-part }brystet?
tracker_selection_menu-WAIST = { -tracker_selection-part }midjen?
tracker_selection_menu-HIP = { -tracker_selection-part }hoften?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part }venstre skulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part }venstre overarm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part }venstre nedre arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part }venstre hånd?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part }venstre lår?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part }venstre ankel?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part }venstre fot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part }venstre kontroller?
tracker_selection_menu-unassigned = Utilordnede trackere
tracker_selection_menu-assigned = Tildelte trackere
tracker_selection_menu-dont_assign = Ikke tildel
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>NB:</b> Hals-trackeren kan være helseskadelig dersom den sitter for stramt,
festet kan blokkere blodtilførselen til hodet ditt!
tracker_selection_menu-neck_warning-done = Jeg forstår risikoene
tracker_selection_menu-neck_warning-cancel = Avbryt
## Mounting menu
mounting_selection_menu = Hvor vil du at denne trackeren skal være?
mounting_selection_menu-close = Lukk
## Sidebar settings
settings-sidebar-title = Innstillinger
settings-sidebar-general = Generelle
settings-sidebar-tracker_mechanics = Tracker-mekanisme
settings-sidebar-fk_settings = Tracker-innstillinger
settings-sidebar-gesture_control = Bevegelses-kontroll
settings-sidebar-interface = Grensesnitt
settings-sidebar-osc_router = OSC ruter
settings-sidebar-utils = Verktøy
settings-sidebar-serial = Seriell konsoll
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackere
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Skru av/på spesifikke SteamVR trackere.
Nyttig for spill eller programmer som bare støtter visse trackere.
settings-general-steamvr-trackers-waist = Midje
settings-general-steamvr-trackers-chest = Bryst
settings-general-steamvr-trackers-feet = Føtter
settings-general-steamvr-trackers-knees = Knær
settings-general-steamvr-trackers-elbows = Albuer
settings-general-steamvr-trackers-hands = Hender
## Tracker mechanics
settings-general-tracker_mechanics = Tracker-mekanismer
settings-general-tracker_mechanics-filtering = Filtrering
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Velg filtrerings-type for dine trackere.
Prediksjon forutser bevegelser mens Utjevning jevner ut bevegelser.
settings-general-tracker_mechanics-filtering-type = Filtrerings type
settings-general-tracker_mechanics-filtering-type-none = Ingen filtrering
settings-general-tracker_mechanics-filtering-type-none-description = Bruk rotasjoner som før. Altså ingen filtrering.
settings-general-tracker_mechanics-filtering-type-smoothing = Utjevning
settings-general-tracker_mechanics-filtering-type-smoothing-description = Jevner ut bevegelser men øker forsinkelsen litt.
settings-general-tracker_mechanics-filtering-type-prediction = Forutsigelse
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduserer forsinkelsen og gjør bevegelser skarpere, men kan påvirke stabiliteten.
settings-general-tracker_mechanics-filtering-amount = Mengde
settings-general-tracker_mechanics-drift_compensation = Avdrifts-kompansering
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompenserer for IMU yaw avdrift ved å legge til en rotasjon av omvendt verdi.
Endre mengde kompensasjon og opp til hvor mange nullstillinger som skal bli gjort rede for.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Avdrifts kompansering
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompanserings mengde
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Bruk opp til x siste nullstillinger
## FK/Tracking settings
settings-general-fk_settings = Sporings innstillinger
settings-general-fk_settings-leg_tweak = Bein-justeringer
settings-general-fk_settings-leg_tweak-description = Gulv-clip kan redusere, om ikke eliminere det at lemmer går gjennom gulvet, men kan skape problemer når du er på knærne. Skating-korreksjon jobber mot "ice-skating", men kan forverre presisjonen i visse bevegelsesmønster.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Gulv-clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating korreksjon
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating-korreksjon styrke
settings-general-fk_settings-arm_fk = Arm sporing
settings-general-fk_settings-arm_fk-description = Endre metoden armene spores på.
settings-general-fk_settings-arm_fk-force_arms = Tving armer fra HMD
settings-general-fk_settings-skeleton_settings = Skjellet innstillinger
settings-general-fk_settings-skeleton_settings-description = Skru skjellet innstillinger av eller på. Det anbefales å la disse stå på.
settings-general-fk_settings-skeleton_settings-extended_spine = Forlenget ryggrad
settings-general-fk_settings-skeleton_settings-extended_pelvis = Forlenget pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Forlenget kne
settings-general-fk_settings-vive_emulation-title = Vive emulasjon
settings-general-fk_settings-vive_emulation-description = Emuler midjesporings problemene som Vive sporerene har. Dette er en vits og gjør sporingen verre.
settings-general-fk_settings-vive_emulation-label = Aktiver Vive emulasjon
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Bevegelses-kontroll
settings-general-gesture_control-subtitle = Trykk baserte nullstillinger
settings-general-gesture_control-description = Tillat at nullstillinger aktiveres ved å trykke på en sporer. Den høyeste sporeren på overkroppen blir da brukt til Rask Nullstilling, den høyeste sporeren på det venstre beinet blir brukt til Nullstilling og den høyeste sporeren på det høyre beinet blir brukt til Monterings Nullstilling. Vær obs på at trykking bør skje to ganger innen 0.6 sekunder for å bli registrert.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 trykk
*[other] { $amount } trykk
}
settings-general-gesture_control-quickResetEnabled = Aktiver rask nullstilling ved trykk
settings-general-gesture_control-quickResetDelay = Rask nullstillings utsettelse
settings-general-gesture_control-quickResetTaps = Trykking for rask nullstilling
settings-general-gesture_control-resetEnabled = Aktiver nullstilling ved trykking
settings-general-gesture_control-resetDelay = Nullstillings utsettelse
settings-general-gesture_control-resetTaps = Trykking for nullstilling
settings-general-gesture_control-mountingResetEnabled = Aktiver monterings-nullstilling ved trykking
settings-general-gesture_control-mountingResetDelay = Monterings-nullstilling utsettelse
settings-general-gesture_control-mountingResetTaps = Trykking for monterings-nullstilling
## Interface settings
settings-general-interface = Grensesnitt
settings-general-interface-dev_mode = Utvikler modus
settings-general-interface-dev_mode-description = Denne modusen kan være hjelpsom dersom du trenger data som gir mer innsyn eller for å samhandle med tilkoblede sporere på et mer avansert nivå.
settings-general-interface-dev_mode-label = Utvikler modus
settings-general-interface-serial_detection = Seriell enhets gjenkjenning
settings-general-interface-serial_detection-description = Dette valget viser en pop-up for hver gang du kobler til en ny seriell-enhet som kunne vært en sporer. Dette forbedrer sporerens konfigureringsprosess.
settings-general-interface-serial_detection-label = Seriell enhets gjenkjenning
settings-general-interface-lang = Velg språk
settings-general-interface-lang-description = Endre hovedspråket du vil bruke.
settings-general-interface-lang-placeholder = Velg språket du vil bruke
## Serial settings
settings-serial = Seriell konsoll
# This cares about multilines
settings-serial-description =
Dette er en live informasjons-feed for seriell kommunikasjon.
Kan være hjelpsomt hvis du lurer på om det er problemer med fastvaren.
settings-serial-connection_lost = Tilkobling til serie tapt, gjenopptar tilkobling...
settings-serial-reboot = Omstart
settings-serial-factory_reset = Fabrikktilbakestilling
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>NB:</b> Dette nullstiller trackeren tilbake til fabrikkinstillinger.
Som betyr at Wi-Fi og kalibrerings innstillingene dine </b>vil bli tapt!</b>
settings-serial-factory_reset-warning-ok = Jeg vet hva jeg driver med
settings-serial-factory_reset-warning-cancel = Avslutt
settings-serial-get_infos = Få info
settings-serial-serial_select = Velg en serieport
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC ruter
# This cares about multilines
settings-osc-router-description =
Videresend OSC beskjeder fra andre programmer.
Nyttig når du bruker andre OSC programmer med VRChat for eksempel.
settings-osc-router-enable = Aktiver
settings-osc-router-enable-description = Skru av/på videresending av beskjeder.
settings-osc-router-enable-label = Aktiver
settings-osc-router-network = Nettverks-porter
# This cares about multilines
settings-osc-router-network-description =
Still inn portene som skal motta eller sende data.
Disse kan være lik som andre porter brukt i SlimeVR serveren.
settings-osc-router-network-port_in =
.label = Port inn
.placeholder = Port inn (normalverdi:9002)
settings-osc-router-network-port_out =
.label = Port Ut
.placeholder = Port ut (normalverdi: 9000)
settings-osc-router-network-address = Nettverksadresse
settings-osc-router-network-address-description = Tast inn adressen som skal motta data.
settings-osc-router-network-address-placeholder = IPV4 adresse
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackere
# This cares about multilines
settings-osc-vrchat-description =
Juster på innstillinger spesifikt for VRChat for å motta HMD-data og sende
sporer-data for FBT (funker for Quest standalone).
settings-osc-vrchat-enable = Aktiver
settings-osc-vrchat-enable-description = Skru av/på utsending og mottakelse av data.
settings-osc-vrchat-enable-label = Aktiver
settings-osc-vrchat-network = Nettverks-porter
settings-osc-vrchat-network-description = Still inn portene som skal motta og sende data til VRChat.
settings-osc-vrchat-network-port_in =
.label = Port Inn
.placeholder = Port inn (normalverdi: 9001)
settings-osc-vrchat-network-port_out =
.label = Port Ut
.placeholder = Port ut (standardisering: 9000)
settings-osc-vrchat-network-address = Nettverksadresse
settings-osc-vrchat-network-address-description = Velg hvilken adresse som skal sende ut data til VRChat (sjekk Wi-Fi innstillingene på din enhet).
settings-osc-vrchat-network-address-placeholder = VRChat ip adresse
settings-osc-vrchat-network-trackers = Trackere
settings-osc-vrchat-network-trackers-description = Skru av/på sendingen av spesifikke sporere via OSC.
settings-osc-vrchat-network-trackers-chest = Bryst
settings-osc-vrchat-network-trackers-waist = Midje
settings-osc-vrchat-network-trackers-knees = Knær
settings-osc-vrchat-network-trackers-feet = Føtter
settings-osc-vrchat-network-trackers-elbows = Albuer
## Setup/onboarding menu
onboarding-skip = Hopp over oppsett
onboarding-continue = Fortsett
onboarding-wip = Arbeid pågår
## Wi-Fi setup
onboarding-wifi_creds-back = Gå tilbake til introduksjonen
onboarding-wifi_creds = Tast inn Wi-Fi legitimasjon
# This cares about multilines
onboarding-wifi_creds-description =
Trackerne bruker denne legitimasjonen for å koble til trådløst.
Vennligst bruk legitimasjonen til nettet du er koblet til nå.
onboarding-wifi_creds-skip = Hopp over Wi-Fi innstillinger
onboarding-wifi_creds-submit = Send inn!
onboarding-wifi_creds-ssid =
.label = Wi-Fi navn
.placeholder = Tast inn navnet på ditt Wi-Fi nettverk
onboarding-wifi_creds-password =
.label = Passord
.placeholder = Tast inn passord
## Mounting setup
onboarding-reset_tutorial-back = Gå tilbake til monterings kalibrering
onboarding-reset_tutorial = Nullstill opplæringen
onboarding-reset_tutorial-description = Denne funksjonen er ikke klar, bare trykk fortsett
## Setup start
onboarding-home = Velkommen til SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Muliggjør hel-kropps sporing
for alle
onboarding-home-start = La oss sette i gang!
## Enter VR part of setup
onboarding-enter_vr-back = Gå tilbake til Tracker tilordning
onboarding-enter_vr-title = På tide å tre inn i VR!
onboarding-enter_vr-description = Putt på alle trackerne dine og tre inn i VR!
onboarding-enter_vr-ready = Jeg er klar!
## Setup done
onboarding-done-title = Nå er alt klart!
onboarding-done-description = Nyt din hel-kropps opplevelse
onboarding-done-close = Lukk guiden
## Tracker connection setup
onboarding-connect_tracker-back = Gå tilbake til Wi-Fi legitimasjon
onboarding-connect_tracker-title = Koble til trackere
onboarding-connect_tracker-description-p0 = Nå begynner den morsomme delen, å koble til alle trackerne!
onboarding-connect_tracker-description-p1 = Ta og koble til alt som ikke er tilkoblet enda, via en USB port.
onboarding-connect_tracker-issue-serial = Jeg sliter med å koble til!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-connecting = Sender Wi-Fi legitimasjon
onboarding-connect_tracker-connection_status-connected = Koblet til Wi-Fi
onboarding-connect_tracker-connection_status-error = Kunne ikke koble til Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Ser etter trackere
onboarding-connect_tracker-connection_status-handshake = Koblet til Serveren
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Ingen trackere tilkoblet
[one] 1 tracker tilkoblet
*[other] { $amount } trackere tilkoblet
}
onboarding-connect_tracker-next = Jeg har tilkoblet alle mine trackere
## Tracker assignment setup
onboarding-assign_trackers-back = Gå tilbake til Wi-Fi legitimasjon
onboarding-assign_trackers-title = Tildel trackerne
onboarding-assign_trackers-description = La oss velge hvilke trackere som skal hvor. Trykk på stedet der du vil plassere en tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[one] { $assigned } av 1 tracker tildelt
*[other] { $assigned } av { $trackers } trackere tildelt
}
onboarding-assign_trackers-advanced = Vis avanserte tildelings-plasseringer
onboarding-assign_trackers-next = Jeg har tildelt alle trackerne
## Tracker manual mounting setup
onboarding-manual_mounting-back = Gå tilbake for å tre inn i VR
onboarding-manual_mounting = Manuell montering
onboarding-manual_mounting-description = Trykk på en hver tracker og velg hvilken vei de er montert
onboarding-manual_mounting-auto_mounting = Automatisk montering
onboarding-manual_mounting-next = Neste steg
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Gå tilbake for å tre inn i VR
onboarding-automatic_mounting-title = Monterings Kalibrering
onboarding-automatic_mounting-description = For at SlimeVR trackere skal funke, må vi tildele en monterings-rotasjon til dine trackere for at de skal samstemme med din fysiske tracker-montering.
onboarding-automatic_mounting-manual_mounting = Sett opp montering manuelt
onboarding-automatic_mounting-next = Neste steg
onboarding-automatic_mounting-prev_step = Forrige steg
onboarding-automatic_mounting-done-title = Monterings-rotasjoner kalibrert.
onboarding-automatic_mounting-done-description = Din monterings-kalibrasjon er fullført!
onboarding-automatic_mounting-done-restart = Tilbake til start
onboarding-automatic_mounting-mounting_reset-title = Monterings nullstilling
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Gjør knebøy som om du står på ski, bøyde knær, overkroppen rettet forover og armer bøyd.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Trykk på "Nullstill montering" knappen og vent 3 sekunder før trackernes monterings-rotasjon nullstilles.
onboarding-automatic_mounting-preparation-title = Forberedning
onboarding-automatic_mounting-preparation-step-0 = 1. Stå rett med armene til siden.
onboarding-automatic_mounting-preparation-step-1 = 2. Trykk på "Nullstill" knappen og vent 3 sekunder før trackerne nullstilles.
onboarding-automatic_mounting-put_trackers_on-title = Ta på deg dine trackere
onboarding-automatic_mounting-put_trackers_on-description = For å kalibrere monterings-rotasjonene, må vi bruke trackerne du akkurat tildelte. Ta på deg alle dine trackere, du kan se hvem som er hvem i figuren til høyre.
onboarding-automatic_mounting-put_trackers_on-next = Jeg har alle mine trackere på
## Tracker manual proportions setup
onboarding-manual_proportions-back = Gå tilbake til Nullstillings opplæring
onboarding-manual_proportions-title = Manuelle kropps-proporsjoner
onboarding-manual_proportions-precision = Presisjons justering
onboarding-manual_proportions-auto = Automatisk kalibrering
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Gå tilbake til Nullstillings opplæring
onboarding-automatic_proportions-title = Mål opp kroppen din
onboarding-automatic_proportions-description = For at SlimeVR trackere skal funke, må vi vite lengden på beinene dine. Denne korte kalibreringen kan måle det opp for deg.
onboarding-automatic_proportions-manual = Manuell kalibrering
onboarding-automatic_proportions-prev_step = Forrige steg
onboarding-automatic_proportions-put_trackers_on-title = Ta på deg alle dine trackere
onboarding-automatic_proportions-put_trackers_on-description = For å kalibrere dine proporsjoner, bruker vi trackerne du akkurat har tildelt. Ta på deg alle dine trackere, du kan se hvem som går hvor i figuren til høyre.
onboarding-automatic_proportions-put_trackers_on-next = Jeg har alle mine trackere på
onboarding-automatic_proportions-preparation-title = Forberedning
onboarding-automatic_proportions-preparation-description = Plasser en stol rett bak deg innenfor ditt play space. Vær forberedt på å sette deg ned i løpet av autobein oppsettet.
onboarding-automatic_proportions-preparation-next = Jeg er foran en stol
onboarding-automatic_proportions-start_recording-title = Gjør deg klar til å bevege deg
onboarding-automatic_proportions-start_recording-description = Vi kommer nå til å spille inn noen spesifikke poseringer og bevegelser. Disse vil bli vist i den neste skjermen. Gjør deg klar til å starte når du trykker på knappen!
onboarding-automatic_proportions-start_recording-next = Start Innspilling
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Innspilling pågår...
onboarding-automatic_proportions-recording-description-p1 = Utfør bevegelsene vist nedenfor:
onboarding-automatic_proportions-recording-steps-0 = Bøy knærne noen få ganger.
onboarding-automatic_proportions-recording-steps-1 = Sett deg i stolen, reis deg så opp.
onboarding-automatic_proportions-recording-steps-2 = Vri overkroppen til venstre, så bøy til høyre.
onboarding-automatic_proportions-recording-steps-3 = Vri overkroppen til høyre, så bøy til venstre.
onboarding-automatic_proportions-recording-steps-4 = Rist på kroppen til tiden går ut.
onboarding-automatic_proportions-recording-processing = Jobber med resultatet
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 sekund igjen
*[other] { $time } sekunder igjen
}
onboarding-automatic_proportions-verify_results-title = Bekreft resultatene
onboarding-automatic_proportions-verify_results-description = Sjekk resultatene under, ser de riktige ut?
onboarding-automatic_proportions-verify_results-results = Spiller inn resultater
onboarding-automatic_proportions-verify_results-processing = Jobber med resultatet
onboarding-automatic_proportions-verify_results-redo = Gjør om innspillingen
onboarding-automatic_proportions-verify_results-confirm = De er riktige
onboarding-automatic_proportions-done-title = Kropp målt og lagret.
onboarding-automatic_proportions-done-description = Din kropps-proposisjons kalibrering er fullført!
## Home
home-no_trackers = Ingen trackere oppdaget eller tildelt

View File

@@ -0,0 +1,611 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Verbinding maken met de server
websocket-connection_lost = Verbinding met de server verbroken. Opniew verbinding maken...
## Tips
tips-find_tracker = Weet je niet welke tracker welke is? Schud een tracker en het corresponderende item zal worden gemarkeerd.
tips-do_not_move_heels = Zorg ervoor dat je hielen niet bewegen tijdens de opname!
## Body parts
body_part-NONE = Niet toegewezen
body_part-HEAD = Hoofd
body_part-NECK = Neck
body_part-RIGHT_SHOULDER = Rechterschouder
body_part-RIGHT_UPPER_ARM = Rechterbovenarm
body_part-RIGHT_LOWER_ARM = Rechteronderarm
body_part-RIGHT_HAND = Rechterhand
body_part-RIGHT_UPPER_LEG = Rechterdij
body_part-RIGHT_LOWER_LEG = Rechterenkel
body_part-RIGHT_FOOT = Rechtervoet
body_part-RIGHT_CONTROLLER = Rechtercontroller
body_part-CHEST = Borst
body_part-WAIST = Taille
body_part-HIP = Heup
body_part-LEFT_SHOULDER = Linkerschouder
body_part-LEFT_UPPER_ARM = Linkerbovenarm
body_part-LEFT_LOWER_ARM = Linkeronderarm
body_part-LEFT_HAND = Linkerhand
body_part-LEFT_UPPER_LEG = Linkerdij
body_part-LEFT_LOWER_LEG = Linkerenkel
body_part-LEFT_FOOT = Linkervoet
body_part-LEFT_CONTROLLER = Linkercontroller
## Proportions
skeleton_bone-NONE = Geen
skeleton_bone-HEAD = Hoofdverschuiving
skeleton_bone-NECK = Necklengte
skeleton_bone-CHEST = Borstafstand
skeleton_bone-CHEST_OFFSET = Borstoffset
skeleton_bone-WAIST = Tailleafstand
skeleton_bone-HIP = Heuplengte
skeleton_bone-HIP_OFFSET = Heupoffset
skeleton_bone-HIPS_WIDTH = Heupbreedte
skeleton_bone-UPPER_LEG = Bovenbeenlengte
skeleton_bone-LOWER_LEG = Onderbeenlengte
skeleton_bone-FOOT_LENGTH = Voetlengte
skeleton_bone-FOOT_SHIFT = Voetverschuiving
skeleton_bone-SKELETON_OFFSET = Skelettenoffset
skeleton_bone-SHOULDERS_DISTANCE = Schoudersafstand
skeleton_bone-SHOULDERS_WIDTH = Schouderbreedte
skeleton_bone-UPPER_ARM = Bovenarmlengte
skeleton_bone-LOWER_ARM = Onderarmlengte
skeleton_bone-CONTROLLER_Y = Controllerafstand Y
skeleton_bone-CONTROLLER_Z = Controllerafstand Z
skeleton_bone-ELBOW_OFFSET = Elleboogoffset
## Tracker reset buttons
reset-reset_all = Alle afmetingen resetten
reset-full = Resetten
reset-mounting = Bevestiging resetten
reset-quick = Snel resetten
## Serial detection stuff
serial_detection-new_device-p0 = Nieuw serieel apparaat gedetecteerd!
serial_detection-new_device-p1 = Voer je WiFi-inloggegevens in!
serial_detection-new_device-p2 = Selecteer wat je wil doen
serial_detection-open_wifi = Verbinding maken met WiFi
serial_detection-open_serial = Seriële console openen
serial_detection-submit = Verzenden!
serial_detection-close = Sluiten
## Navigation bar
navbar-home = Startpagina
navbar-body_proportions = Lichaams- verhoudingen
navbar-trackers_assign = Tracker- toewijzing
navbar-mounting = Bevestigings- kalibratie
navbar-onboarding = Setupgids
navbar-settings = Instellingen
## Bounding volume hierarchy recording
bvh-start_recording = BVH opnemen
bvh-recording = Opname bezig...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Overlay in SteamVR weergeven
widget-overlay-is_mirrored_label = Overlay weergeven als spiegel
## Widget: Drift compensation
widget-drift_compensation-clear = Reset huidige drift compensatie waarden
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = Hoog contrast
widget-developer_mode-precise_rotation = Precieze rotatie
widget-developer_mode-fast_data_feed = Snelle data feed
widget-developer_mode-filter_slimes_and_hmd = Filter slimes en HMD
widget-developer_mode-sort_by_name = Op naam sorteren
widget-developer_mode-raw_slime_rotation = Ruwe rotatie
widget-developer_mode-more_info = Meer informatie
## Widget: IMU Visualizer
widget-imu_visualizer = Rotatie
widget-imu_visualizer-rotation_raw = Rauw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Geen status
tracker-status-busy = Bezig
tracker-status-error = Fout
tracker-status-disconnected = Verbinding verbroken
tracker-status-occluded = Verborgen
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Naam
tracker-table-column-type = Type
tracker-table-column-battery = Batterij
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Rotatie X/Y/Z
tracker-table-column-position = Positie X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Voorzijde
tracker-rotation-left = Links
tracker-rotation-right = Rechts
tracker-rotation-back = Achterzijde
## Tracker information
tracker-infos-manufacturer = Fabrikant
tracker-infos-display_name = Weergavenaam
tracker-infos-custom_name = Aangepaste naam
tracker-infos-url = Tracker URL
## Tracker settings
tracker-settings-back = Terug naar trackerslijst
tracker-settings-title = Trackersinstellingen
tracker-settings-assignment_section = Toewijzing
tracker-settings-assignment_section-description = Aan welk lichaamsdeel de tracker is toegewezen.
tracker-settings-assignment_section-edit = Toewijzing bewerken
tracker-settings-mounting_section = Bevestigingsorientatie
tracker-settings-mounting_section-description = Hoe is de tracker georiënteerd?
tracker-settings-mounting_section-edit = Bevestiging bewerken
tracker-settings-drift_compensation_section = Laat drift compensatie toe
tracker-settings-drift_compensation_section-description = Moet deze tracker compenseren voor drift wanneer drift compensatie is ingeschakeld?
tracker-settings-drift_compensation_section-edit = Laat drift compensatie toe
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Trackernaam
tracker-settings-name_section-description = Geef een schattige bijnaam :)
tracker-settings-name_section-placeholder = NightyBeast's linkerbeen
## Tracker part card info
tracker-part_card-no_name = Geen naam
tracker-part_card-unassigned = Niet toegewezen
## Body assignment menu
body_assignment_menu = Waar wil je deze tracker bevestigen?
body_assignment_menu-description = Kies een locatie waar je deze tracker wilt toewijzen. Als alternatief kun je kiezen om alle trackers tegelijk te beheren in plaats van één voor één.
body_assignment_menu-show_advanced_locations = Geavanceerde bevestigingslocaties weergeven
body_assignment_menu-manage_trackers = Beheer alle trackers
body_assignment_menu-unassign_tracker = Tracker niet toewijzen
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Welke tracker wil je toewijzen aan je
tracker_selection_menu-NONE = Van welke tracker will je de toewijzing ongedaan maken?
tracker_selection_menu-HEAD = { -tracker_selection-part } hoofd?
tracker_selection_menu-NECK = { -tracker_selection-part } nek?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } rechterschouder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } rechterbovenarm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } rechteronderarm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } rechterhand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } rechterdij?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } rechterenkel?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } rechtervoet?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } rechtercontroller?
tracker_selection_menu-CHEST = { -tracker_selection-part } borst?
tracker_selection_menu-WAIST = { -tracker_selection-part } taille?
tracker_selection_menu-HIP = { -tracker_selection-part } heup?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } linkerschouder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } linkerbovenarm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } linkeronderarm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } linkerhand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } linkerdij?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } linkerenkel?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } linkervoet?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } linkercontroller?
tracker_selection_menu-unassigned = Niet toegewezen trackers
tracker_selection_menu-assigned = Toegewezen trackers
tracker_selection_menu-dont_assign = Niet toewijzen
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Waarschuwing:</b> Een nektracker kan dodelijk zijn indien deze te strak wordt afgesteld,
de band kan de bloedsomloop naar je hoofd afsnijden!
tracker_selection_menu-neck_warning-done = Ik begrijp de risico's
tracker_selection_menu-neck_warning-cancel = Annuleren
## Mounting menu
mounting_selection_menu = Waar wil je deze tracker hebben bevestigd?
mounting_selection_menu-close = Sluiten
## Sidebar settings
settings-sidebar-title = Instellingen
settings-sidebar-general = Algemeen
settings-sidebar-tracker_mechanics = Trackersinstellingen
settings-sidebar-fk_settings = FK-instellingen
settings-sidebar-gesture_control = Tikbediening
settings-sidebar-interface = Interface
settings-sidebar-osc_router = OSC-router
settings-sidebar-utils = Hulpmiddelen
settings-sidebar-serial = Serieel console
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackers
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Schakel specifieke SteamVR trackers in of uit.
Handig voor games of apps die alleen bepaalde trackers ondersteunen.
settings-general-steamvr-trackers-waist = Taille
settings-general-steamvr-trackers-chest = Borst
settings-general-steamvr-trackers-feet = Voeten
settings-general-steamvr-trackers-knees = Knieën
settings-general-steamvr-trackers-elbows = Ellebogen
settings-general-steamvr-trackers-hands = Handen
## Tracker mechanics
settings-general-tracker_mechanics = Tracker aanpassingen
settings-general-tracker_mechanics-filtering = Filtering
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Kies het type filter voor uw trackers.
Voorspelling voorspelt beweging terwijl smoothing bewegingen vloeiender maakt.
settings-general-tracker_mechanics-filtering-type = Filtering type
settings-general-tracker_mechanics-filtering-type-none = Geen filtering
settings-general-tracker_mechanics-filtering-type-none-description = Gebruik rotaties zoals ze zijn. Zal geen filtering uitvoeren.
settings-general-tracker_mechanics-filtering-type-smoothing = Smoothing
settings-general-tracker_mechanics-filtering-type-smoothing-description = Maakt bewegingen vloeiender, maar voegt enige latentie toe.
settings-general-tracker_mechanics-filtering-type-prediction = Voorspelling
settings-general-tracker_mechanics-filtering-type-prediction-description = Verlaagt latentie en maakt bewegingen snappier, maar kan jitter verhogen.
settings-general-tracker_mechanics-filtering-amount = Hoeveelheid
settings-general-tracker_mechanics-drift_compensation = Drift compensatie
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compenseert voor IMU yaw drift door de toevoeging van een omgekeerde rotatie.
Veranderd de sterkte van de compensatie en hoeveel resets worden gebruikt.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensate
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensatiesterkte
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Gebruik de laatste x resets
## FK/Tracking settings
settings-general-fk_settings = Tracking instellingen
settings-general-fk_settings-leg_tweak = Aanpassingen van tracking gedrag voor benen
settings-general-fk_settings-leg_tweak-description = Floor-clip verminderd de kans dat je voeten door de grond gaan, maar kan problemen veroorzaken als je op je knieën bent. Skating-correctie corrigeert ongewenst glijden van je voeten, maar kan de nauwkeurigheid in bepaalde bewegingspatronen verminderen.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Floor-clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating-correctie
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating-correctie sterkte
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Verander de manier waarop de armen worden getrackt.
settings-general-fk_settings-arm_fk-force_arms = Dwing armen vanuit HMD
settings-general-fk_settings-skeleton_settings = Skeleton instellingen
settings-general-fk_settings-skeleton_settings-description = Schakel skeleton instellingen in of uit. Het is aanbevolen om deze aan te laten.
settings-general-fk_settings-skeleton_settings-extended_spine = Uitgebreide rug
settings-general-fk_settings-skeleton_settings-extended_pelvis = Uitgebreide bekken
settings-general-fk_settings-skeleton_settings-extended_knees = Uitgebreide knieën
settings-general-fk_settings-vive_emulation-title = Vive-emulatie
settings-general-fk_settings-vive_emulation-description = Emuleer de problemen met de taille van Vive trackers. Dit is een mop en maakt tracking slechter.
settings-general-fk_settings-vive_emulation-label = Vive-emulatie inschakelen
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Gesture control
settings-general-gesture_control-subtitle = Op tik gebaseerde resets
settings-general-gesture_control-description = Maakt het mogelijk om resets te activeren door op een tracker te tikken. De tracker het hoogst op je bovenlichaam wordt gebruikt voor Quick Reset, de tracker het hoogst op je linkerbeen voor Reset en de tracker het hoogst op je rechterbeen voor Mounting Reset. Het moet worden vermeld dat tikken binnen 0,6 seconden moeten gebeuren om geregistreerd te worden.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tik
*[other] { $amount } tikken
}
settings-general-gesture_control-quickResetEnabled = Activeer tikken voor snelle reset
settings-general-gesture_control-quickResetDelay = Vertraging snelle reset
settings-general-gesture_control-quickResetTaps = Hoeveelheid tikken voor snelle reset
settings-general-gesture_control-resetEnabled = Activeer tikken voor reset
settings-general-gesture_control-resetDelay = Vertraging reset
settings-general-gesture_control-resetTaps = Hoeveelheid tikken voor reset
settings-general-gesture_control-mountingResetEnabled = Activeer tikken voor bevestigingskalibratie
settings-general-gesture_control-mountingResetDelay = Vertraging bevestigingskalibratie
settings-general-gesture_control-mountingResetTaps = Hoeveelheid tikken voor bevestigingskalibratie
## Interface settings
settings-general-interface = Interface
settings-general-interface-dev_mode = Ontwikkelaarsmodus
settings-general-interface-dev_mode-description = Deze modus kan nuttig zijn als u diepgaande gegevens nodig hebt of op een geavanceerd niveau wilt communiceren met aangesloten trackers.
settings-general-interface-dev_mode-label = Ontwikkelaarsmodus
settings-general-interface-serial_detection = Detectie van seriële apparaten
settings-general-interface-serial_detection-description = Met deze optie verschijnt er elke keer dat u een nieuw serieel apparaat aansluit dat mogelijk een tracker is, een pop-up. Dit helpt bij het verbeteren van het instelproces van een tracker.
settings-general-interface-serial_detection-label = Detectie van seriële apparaten
settings-general-interface-lang = Selecteer taal
settings-general-interface-lang-description = Verander de standaardtaal die u wilt gebruiken.
settings-general-interface-lang-placeholder = Selecteer de te gebruiken taal
## Serial settings
settings-serial = Seriele console
# This cares about multilines
settings-serial-description =
Dit is een live informatiefeed voor seriële communicatie.
Kan handig zijn als u wilt weten dat de firmware werkt.
settings-serial-connection_lost = Verbinding met seriële poort verloren, opnieuw verbinden...
settings-serial-reboot = Opnieuw opstarten
settings-serial-factory_reset = Fabrieksinstellingen herstellen
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Waarschuwing:</b> Hiermee wordt de tracker teruggezet naar de fabrieksinstellingen.
Wat betekent dat Wi-Fi en kalibratie-instellingen <b>allemaal verloren gaan!</b>
settings-serial-factory_reset-warning-ok = Ik weet wat ik doe
settings-serial-factory_reset-warning-cancel = Annuleren
settings-serial-get_infos = Informatie ophalen
settings-serial-serial_select = Selecteer een seriële poort
settings-serial-auto_dropdown_item = Automatisch
## OSC router settings
settings-osc-router = OSC-router
# This cares about multilines
settings-osc-router-description =
Stuur OSC-berichten door vanuit een ander programma.
Nuttig om bijvoorbeeld een ander OSC-programma te gebruiken met VRChat.
settings-osc-router-enable = Inschakelen
settings-osc-router-enable-description = Schakel het doorsturen van berichten in of uit.
settings-osc-router-enable-label = Inschakelen
settings-osc-router-network = Netwerkpoorten
# This cares about multilines
settings-osc-router-network-description =
Stel de poorten in voor het verzenden en ontvangen van gegevens.
Dit kunnen dezelfde poorten zijn als andere poorten die worden gebruikt in de SlimeVR-server.
settings-osc-router-network-port_in =
.label = Poort in
.placeholder = Poort in (standaard: 9002)
settings-osc-router-network-port_out =
.label = Poort uit
.placeholder = Poort uit (standaard: 9000)
settings-osc-router-network-address = Netwerkadres
settings-osc-router-network-address-description = Stel het adres in waarnaar gegevens moeten worden verzonden.
settings-osc-router-network-address-placeholder = IPV4-adres
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Wijzig VRChat-specifieke instellingen om HMD-data te ontvangen en te verzenden
trackergegevens voor FBT (werkt op Quest standalone).
settings-osc-vrchat-enable = Inschakelen
settings-osc-vrchat-enable-description = Schakel het verzenden en ontvangen van gegevens in en uit.
settings-osc-vrchat-enable-label = Inschakelen
settings-osc-vrchat-network = Netwerkpoorten
settings-osc-vrchat-network-description = Stel de poorten in voor het zenden en ontvangen van OSC-gegevens naar VRChat.
settings-osc-vrchat-network-port_in =
.label = Poort In
.placeholder = Poort in (standaard: 9001)
settings-osc-vrchat-network-port_out =
.label = Poort Out
.placeholder = Poort uit (standaard: 9000)
settings-osc-vrchat-network-address = Netwerkadres
settings-osc-vrchat-network-address-description = Kies naar welk adres u gegevens naar VRChat wilt verzenden (controleer de wifi-instellingen op je apparaat).
settings-osc-vrchat-network-address-placeholder = VRChat IP-adres
settings-osc-vrchat-network-trackers = Trackers
settings-osc-vrchat-network-trackers-description = Schakel het verzenden van specifieke trackers via OSC in en uit.
settings-osc-vrchat-network-trackers-chest = Borst
settings-osc-vrchat-network-trackers-waist = Taille
settings-osc-vrchat-network-trackers-knees = Knieën
settings-osc-vrchat-network-trackers-feet = Voeten
settings-osc-vrchat-network-trackers-elbows = Ellebogen
## Setup/onboarding menu
onboarding-skip = Setupgids overslaan
onboarding-continue = Doorgaan
onboarding-wip = WIP
## Wi-Fi setup
onboarding-wifi_creds-back = Ga terug naar de introductie
onboarding-wifi_creds = Voer de WiFi-inloggegevens in
# This cares about multilines
onboarding-wifi_creds-description =
Deze gegevens worden gebruikt om de trackers draadloos te verbinden met de server.
Gelieve de gegevens te gebruiken van het netwerk waarmee je momenteel bent verbonden.
onboarding-wifi_creds-skip = WiFi-instellingen overslaan
onboarding-wifi_creds-submit = Verzenden!
onboarding-wifi_creds-ssid =
.label = WiFi naam
.placeholder = Vul WiFi naam in
onboarding-wifi_creds-password =
.label = Paswoord
.placeholder = Vul paswoord in
## Mounting setup
onboarding-reset_tutorial-back = Ga terug naar de bevestigingskalibratie
onboarding-reset_tutorial = Reset tutorial
onboarding-reset_tutorial-description = Deze stap is nog niet afgewerkt, druk gewoon op doorgaan.
## Setup start
onboarding-home = Welkom bij SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Maakt full-body tracking beschikbaar
voor iedereen!
onboarding-home-start = Laten we beginnen!
## Enter VR part of setup
onboarding-enter_vr-back = Ga terug naar de sectie voor toewijzing van trackers
onboarding-enter_vr-title = Tijd om VR in te gaan!
onboarding-enter_vr-description = Doe al je trackers aan en ga dan in VR!
onboarding-enter_vr-ready = Gereed!
## Setup done
onboarding-done-title = Je bent klaar!
onboarding-done-description = Geniet van je full-body ervaring
onboarding-done-close = Sluit de gids
## Tracker connection setup
onboarding-connect_tracker-back = Ga terug naar de instellingen voor WiFi-configuratie
onboarding-connect_tracker-title = Trackers verbinden
onboarding-connect_tracker-description-p0 = Nu het leuke gedeelte, verbind al je trackers!
onboarding-connect_tracker-description-p1 = Gebruik een USB-kabel om alle trackers te verbinden die nog niet verbonden zijn.
onboarding-connect_tracker-issue-serial = Ik heb problemen met verbinden!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Op zoek naar trackers
onboarding-connect_tracker-connection_status-serial_init = Verbinding maken met een serieel apparaat
onboarding-connect_tracker-connection_status-provisioning = Wifi-inloggegevens verzenden
onboarding-connect_tracker-connection_status-connecting = Wifi-inloggegevens verzenden
onboarding-connect_tracker-connection_status-looking_for_server = Op zoek naar server
onboarding-connect_tracker-connection_status-connection_error = Kan geen verbinding maken met Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Kan de server niet vinden
onboarding-connect_tracker-connection_status-done = Verbonden met de server
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Geen trackers
[one] 1 tracker
*[other] { $amount } trackers
} verbonden
onboarding-connect_tracker-next = Ik heb al mijn trackers verbonden
## Tracker assignment setup
onboarding-assign_trackers-back = Ga terug naar de instellingen voor WiFi-configuratie
onboarding-assign_trackers-title = Trackers toewijzen
onboarding-assign_trackers-description = Laten we de bevesteging van je trackers bepalen. Klik op de lichaamslocatie waar je een tracker wilt toewijzen.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } van { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} toegewezen
onboarding-assign_trackers-advanced = Geavanceerde toewijzingslocaties weergeven
onboarding-assign_trackers-next = Ik heb alle trackers toegewezen
## Tracker assignment warnings
## Tracker manual mounting setup
onboarding-manual_mounting-back = Ga terug naar de VR sectie
onboarding-manual_mounting = Handmatige bevestiging
onboarding-manual_mounting-description = Klik op elke tracker en selecteer op welke manier ze zijn bevestigd
onboarding-manual_mounting-auto_mounting = Automatische bevestiging
onboarding-manual_mounting-next = Volgende stap
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Ga terug naar de VR sectie
onboarding-automatic_mounting-title = Bevestigingskalibratie
onboarding-automatic_mounting-description = Om je trackers te laten werken, moet de rotatie worden ingesteld hoe deze zijn bevestigd op je lichaam.
onboarding-automatic_mounting-manual_mounting = Bevestiging handmatig instellen
onboarding-automatic_mounting-next = Volgende stap
onboarding-automatic_mounting-prev_step = Vorige stap
onboarding-automatic_mounting-done-title = Bevestigingsrotaties gekalibreerd.
onboarding-automatic_mounting-done-description = Uw bevestigingskalibratie is compleet!
onboarding-automatic_mounting-done-restart = Terug naar start
onboarding-automatic_mounting-mounting_reset-title = Bevestiging kalibreren
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Ga staan in een "skie"-houding met gebogen benen, uw bovenlichaam naar voren gekanteld en armen gebogen.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Druk op de knop "Bevestiging resetten" en wacht 3 seconden voordat de bevestigingsrotaties van de trackers opnieuw worden ingesteld.
onboarding-automatic_mounting-preparation-title = Voorbereiding
onboarding-automatic_mounting-preparation-step-0 = 1. Sta rechtop met uw armen langs uw zij.
onboarding-automatic_mounting-preparation-step-1 = 2. Druk op de knop "Resetten" en wacht 3 seconden voordat de trackers opnieuw worden ingesteld.
onboarding-automatic_mounting-put_trackers_on-title = Doe je trackers aan
onboarding-automatic_mounting-put_trackers_on-description = Om bevestigingsrotaties te kalibreren, gaan we gebruik maken van de trackers die je net hebt toegewezen. Doe al je trackers aan, je kunt zien welke trackers welke zijn in de figuur rechts.
onboarding-automatic_mounting-put_trackers_on-next = Ik heb al mijn trackers aan
## Tracker manual proportions setup
onboarding-manual_proportions-back = Ga terug naar de reset tutorial
onboarding-manual_proportions-title = Handmatige lichaamsverhoudingen
onboarding-manual_proportions-precision = Precisie-aanpassing
onboarding-manual_proportions-auto = Automatische kalibratie
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Ga terug naar de reset tutorial
onboarding-automatic_proportions-title = Meet je lichaam
onboarding-automatic_proportions-description = Om SlimeVR-trackers te laten werken, moeten we de lengte van je botten weten. Deze korte kalibratie meet het voor je.
onboarding-automatic_proportions-manual = Handmatige kalibratie
onboarding-automatic_proportions-prev_step = Vorige stap
onboarding-automatic_proportions-put_trackers_on-title = Doe je trackers aan
onboarding-automatic_proportions-put_trackers_on-description = Om je verhoudingen te kalibreren, gaan we gebruik maken van de trackers die je net hebt toegewezen. Doe al je trackers aan, je kunt zien welke trackers welke zijn in de figuur rechts.
onboarding-automatic_proportions-put_trackers_on-next = Ik heb al mijn trackers aan
onboarding-automatic_proportions-preparation-title = Voorbereiding
onboarding-automatic_proportions-preparation-description = Plaats een stoel recht achter je binnen je speelruimte. Zorg dat je klaar bent om te gaan zitten tijdens de autobone-configuratie.
onboarding-automatic_proportions-preparation-next = Ik sta voor een stoel
onboarding-automatic_proportions-start_recording-title = Zorg dat je klaar bent om te bewegen
onboarding-automatic_proportions-start_recording-description = We gaan nu enkele specifieke houdingen en bewegingen opnemen. Deze worden in het volgende scherm geprompt. Zorg dat je klaar bent om te beginnen als de knop wordt ingedrukt!
onboarding-automatic_proportions-start_recording-next = Start opname
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Opname bezig...
onboarding-automatic_proportions-recording-description-p1 = Voer de onderstaande bewegingen uit:
onboarding-automatic_proportions-recording-steps-0 = Buig een paar keer op je knieën.
onboarding-automatic_proportions-recording-steps-1 = Ga zitten op een stoel en sta weer op.
onboarding-automatic_proportions-recording-steps-2 = Draai je bovenlichaam naar links, buig dan naar rechts.
onboarding-automatic_proportions-recording-steps-3 = Draai je bovenlichaam naar rechts, buig dan naar links.
onboarding-automatic_proportions-recording-steps-4 = Wiebel rond tot de timer is afgelopen.
onboarding-automatic_proportions-recording-processing = Resultaat verwerken
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 seconde resterend
*[other] { $time } seconden resterend
}
onboarding-automatic_proportions-verify_results-title = Resultaten controleren
onboarding-automatic_proportions-verify_results-description = Controleer de resultaten hieronder, zien ze er correct uit?
onboarding-automatic_proportions-verify_results-results = Opnameresultaten
onboarding-automatic_proportions-verify_results-processing = Resultaat verwerken
onboarding-automatic_proportions-verify_results-redo = Opname opnieuw doen
onboarding-automatic_proportions-verify_results-confirm = Ze zijn correct
onboarding-automatic_proportions-done-title = Lichaam gemeten en opgeslagen.
onboarding-automatic_proportions-done-description = Je kalibratie voor lichaamsverhoudingen is voltooid!
## Home
home-no_trackers = Geen trackers gedetecteerd of toegewezen

View File

@@ -0,0 +1,644 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Łączenie z serwerem
websocket-connection_lost = Połączenie z serwerem zostało utracone. Próba ponownego połączenia...
## Tips
tips-find_tracker = Nie wiesz który tracker to który? Obracaj Trackerem , podczas obracania będzie sie on podświetlał w serwerze.
tips-do_not_move_heels = Upewnij się aby pięty pozostały w bezruchu podczas nagrywania.
## Body parts
body_part-NONE = Nie Przypisano
body_part-HEAD = Głowa
body_part-NECK = Szyja
body_part-RIGHT_SHOULDER = Prawe Ramie
body_part-RIGHT_UPPER_ARM = Prawy Biceps
body_part-RIGHT_LOWER_ARM = Prawe PrzedRamie
body_part-RIGHT_HAND = Prawa Dłoń
body_part-RIGHT_UPPER_LEG = Prawe Udo
body_part-RIGHT_LOWER_LEG = Prawy Podudzie
body_part-RIGHT_FOOT = Prawa Stopa
body_part-RIGHT_CONTROLLER = Prawy kontroler
body_part-CHEST = Klatka Piersiowa
body_part-WAIST = Talia
body_part-HIP = Biodra
body_part-LEFT_SHOULDER = Lewe Ramie
body_part-LEFT_UPPER_ARM = Lewy Biceps
body_part-LEFT_LOWER_ARM = Lewe PrzedRamie
body_part-LEFT_HAND = Lewa Dłoń
body_part-LEFT_UPPER_LEG = Lewe Udo
body_part-LEFT_LOWER_LEG = Lewe Podudzie
body_part-LEFT_FOOT = Lewa Stopa
body_part-LEFT_CONTROLLER = Left controller
## Proportions
skeleton_bone-NONE = Brak
skeleton_bone-HEAD = Head Shift
skeleton_bone-NECK = Długość Szyi
skeleton_bone-CHEST = Chest Length
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-WAIST = Waist Length
skeleton_bone-HIP = Hip Length
skeleton_bone-HIP_OFFSET = Offset Bioder
skeleton_bone-HIPS_WIDTH = Szerokość Bioder
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-LOWER_LEG = Lower Leg Length
skeleton_bone-FOOT_LENGTH = Długość Stopy
skeleton_bone-FOOT_SHIFT = Foot Shift
skeleton_bone-SKELETON_OFFSET = Skeleton Offset
skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
skeleton_bone-SHOULDERS_WIDTH = Szerokość Ramion
skeleton_bone-UPPER_ARM = Długość Bicepsa
skeleton_bone-LOWER_ARM = Długość PrzedRamienia
skeleton_bone-CONTROLLER_Y = Controller Distance Y
skeleton_bone-CONTROLLER_Z = Controller Distance Z
skeleton_bone-ELBOW_OFFSET = Offset Łokcia
## Tracker reset buttons
reset-reset_all = Zresetuj wszystkie wymiary
reset-full = Reset
reset-mounting = Zresetuj Położenie
reset-quick = Szybki Reset
## Serial detection stuff
serial_detection-new_device-p0 = Wykryto Nowe Urządzenie.
serial_detection-new_device-p1 = Wprowadź dane Wi-Fi!
serial_detection-new_device-p2 = Wybierz co chcesz z nim zrobić.
serial_detection-open_wifi = Połącz z Wi-Fi
serial_detection-open_serial = Otwórz Konsole
serial_detection-submit = Potwierdź!
serial_detection-close = Zamknij
## Navigation bar
navbar-home = Strona Główna
navbar-body_proportions = Proporcje Ciała
navbar-trackers_assign = Przydzielenie Trackerów
navbar-mounting = Kalibracja Pozycji
navbar-onboarding = Wstępna Konfiguracja
navbar-settings = Ustawienia
## Bounding volume hierarchy recording
bvh-start_recording = Nagraj BVH
bvh-recording = Nagrywam...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Pokaż Overlay w SteamVR
widget-overlay-is_mirrored_label = Pokaż Overlay jako Lustro
## Widget: Drift compensation
widget-drift_compensation-clear = Wyczyść kompensację dryfu
## Widget: Developer settings
widget-developer_mode = Tryb Dewelopera
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
widget-developer_mode-fast_data_feed = Fast data feed
widget-developer_mode-filter_slimes_and_hmd = Filter slimes and HMD
widget-developer_mode-sort_by_name = Sort by name
widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Brak Statusu
tracker-status-busy = Zajęty
tracker-status-error = Error
tracker-status-disconnected = Rozłączono
tracker-status-occluded = Zablokowany
tracker-status-ok = Połączono
## Tracker status columns
tracker-table-column-name = Nazwa
tracker-table-column-type = Typ
tracker-table-column-battery = Bateria
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Rotacja X/Y/Z
tracker-table-column-position = Pozycja X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Przód
tracker-rotation-left = Lewa
tracker-rotation-right = Prawa
tracker-rotation-back = Tył
## Tracker information
tracker-infos-manufacturer = Producent
tracker-infos-display_name = Wyświetlana Nazwa
tracker-infos-custom_name = Niestandardowa Nazwa
tracker-infos-url = Tracker URL
## Tracker settings
tracker-settings-back = Wróć do listy trackerów
tracker-settings-title = Ustawienia Trackerów
tracker-settings-assignment_section = Przydzielanie
tracker-settings-assignment_section-description = Do jakiej części ciała jest przydzielony tracker.
tracker-settings-assignment_section-edit = Edytuj
tracker-settings-mounting_section = Położenie Trackera
tracker-settings-mounting_section-description = Gdzie jest Tracker zamontowany?
tracker-settings-mounting_section-edit = Edytuj
tracker-settings-drift_compensation_section = Allow drift compensation
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Allow drift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nazwa Trackera
tracker-settings-name_section-description = Daj mu słodką nazwę :)
tracker-settings-name_section-placeholder = Lewa noga Yexo
## Tracker part card info
tracker-part_card-no_name = Brak Nazwy
tracker-part_card-unassigned = Nieprzydzielony
## Body assignment menu
body_assignment_menu = Gdzie chcesz żeby ten tracker był?
body_assignment_menu-description = Wybierz miejsce gdzie tracker będzie przydzielony. Alternatywnie możesz ustawić wszystkie na raz.
body_assignment_menu-show_advanced_locations = Pokaż zaawansowane położenia
body_assignment_menu-manage_trackers = Zarządzaj wszystkimi trackerami
body_assignment_menu-unassign_tracker = Usuń przydzielenie
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Któremu trackerowi chcesz cofnąć przypisanie?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } szyja?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } prawe ramię?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } prawa ręka?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } prawe udo?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } prawa kostka?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } prawa stopa?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } prawy kontroler?
tracker_selection_menu-CHEST = { -tracker_selection-part } klatka piersiowa?
tracker_selection_menu-WAIST = { -tracker_selection-part } talia?
tracker_selection_menu-HIP = { -tracker_selection-part } biodro?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } lewe ramię?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } lewa ręka?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } lewe udo?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } lewa kostka?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } lewa stopa?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } lewy kontroler?
tracker_selection_menu-unassigned = Nieprzydzielone trackery
tracker_selection_menu-assigned = Przydzielone trackery
tracker_selection_menu-dont_assign = Nie przydzielaj
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Ostrzeżenie:</b> Opaska na szyję może być śmiertelna, jeśli zostanie dopasowana zbyt ciasno,
pasek może odciąć krążenie do głowy!
tracker_selection_menu-neck_warning-done = Rozumiem ryzyko
tracker_selection_menu-neck_warning-cancel = Anuluj
## Mounting menu
mounting_selection_menu = Gdzie chciałbyś ten tracker?
mounting_selection_menu-close = Zamknij
## Sidebar settings
settings-sidebar-title = Ustawienia
settings-sidebar-general = Ogólne
settings-sidebar-tracker_mechanics = Tracker mechanics
settings-sidebar-fk_settings = FK settings
settings-sidebar-gesture_control = Sterowanie gestami
settings-sidebar-interface = Interfejs
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Narzędzia
settings-sidebar-serial = Konsola Seryjna
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackers
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Włącz lub Wyłącz specyficzne pozycje trackowania.
Przydatne jeżeli chcesz więcej kontroli nad SlimeVR.
settings-general-steamvr-trackers-waist = Talia
settings-general-steamvr-trackers-chest = Klatka Piersiowa
settings-general-steamvr-trackers-feet = Stopy
settings-general-steamvr-trackers-knees = Kolana
settings-general-steamvr-trackers-elbows = Łokcie
settings-general-steamvr-trackers-hands = Ręce
## Tracker mechanics
settings-general-tracker_mechanics = Tracker mechanics
settings-general-tracker_mechanics-filtering = Filtrowanie
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Wybierz Filtry dla twoich trackerów.
Przewidywanie przewiduje ruchy a Wygładzanie stara się wygładzić ruchy.
settings-general-tracker_mechanics-filtering-type = Filtry
settings-general-tracker_mechanics-filtering-type-none = Brak Filtrów
settings-general-tracker_mechanics-filtering-type-none-description = Używa rotacji takimi jakimi są.
settings-general-tracker_mechanics-filtering-type-smoothing = Wygładzanie
settings-general-tracker_mechanics-filtering-type-smoothing-description = Wygładza ruchy lecz dodaje trochę opóźnienia.
settings-general-tracker_mechanics-filtering-type-prediction = Przewidywanie
settings-general-tracker_mechanics-filtering-type-prediction-description = Zmniejsza opóźnienie i robi ruchy trochę ostrzejszymi, ale może dodać trochę drgań.
settings-general-tracker_mechanics-filtering-amount = Ilość
settings-general-tracker_mechanics-drift_compensation = Kompensacja dryfu
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompensuje dryf odchylenia IMU poprzez zastosowanie odwrotnej rotacji.
Zmień wysokość kompensacji i do ilu resetów jest branych pod uwagę.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Kompensacja dryfu
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Użyj maksymalnie x ostatnich resetów
## FK/Tracking settings
settings-general-fk_settings = Ustawienia śledzenia
settings-general-fk_settings-leg_tweak = Ulepszenia nóg
settings-general-fk_settings-leg_tweak-description = Klips do podłogi może zmniejszyć lub nawet wyeliminować przywieranie do podłogi, ale może powodować problemy podczas klęczenia. Korekta jazdy na łyżwach koryguje jazdę na łyżwach, ale może zmniejszyć dokładność niektórych wzorców ruchu.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Klip podłogowy
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating correction strength
settings-general-fk_settings-arm_fk = Śledzenie ramienia
settings-general-fk_settings-arm_fk-description = Zmień sposób śledzenia ramion.
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-skeleton_settings = Ustawienia szkieletu
settings-general-fk_settings-skeleton_settings-description = Włącz lub wyłącz ustawienia szkieletu. Zaleca się pozostawienie ich włączonych.
settings-general-fk_settings-skeleton_settings-extended_spine = Wydłużony kręgosłup
settings-general-fk_settings-skeleton_settings-extended_pelvis = Rozszerzona miednica
settings-general-fk_settings-skeleton_settings-extended_knees = Wydłużone kolano
settings-general-fk_settings-vive_emulation-title = Emulacja Vive
settings-general-fk_settings-vive_emulation-description = Naśladuj problemy z trackerem talii, które mają trackery Vive. To żart i pogarsza śledzenie.
settings-general-fk_settings-vive_emulation-label = Włącz emulację Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Kontrola Gestami
settings-general-gesture_control-subtitle = Dotknij 2 razy by wykonać szybki reset
settings-general-gesture_control-description = Włącz lub wyłącz opcje szybkiego resetowanie podwójnym dotknięciem. Stuknij 2 razy w jakąkolwiek część trackera na klatce piersiowej aby wykonać szybki reset. Opóźnienie jest czasem pomiędzy stuknięciem a wykonaniem szybkiego resetu.
settings-general-gesture_control-quickResetEnabled = Włącz stuknięcie, aby szybko zresetować
settings-general-gesture_control-quickResetDelay = Opóźnienie szybkiego resetowania
settings-general-gesture_control-quickResetTaps = Dotknięcia do szybkiego resetowania
settings-general-gesture_control-resetEnabled = Włącz stuknij, by zresetować
settings-general-gesture_control-resetDelay = Zresetuj opóźnienie
settings-general-gesture_control-resetTaps = Stuknięcie w celu zresetowania
settings-general-gesture_control-mountingResetEnabled = Włącz stuknięcie, aby zresetować położenie
settings-general-gesture_control-mountingResetDelay = Opóźnienie resetowania położenia
settings-general-gesture_control-mountingResetTaps = Zaczepy do resetowania położenia
## Interface settings
settings-general-interface = Interfejs
settings-general-interface-dev_mode = Tryb Dewelopera
settings-general-interface-dev_mode-description = Ten tryb przydaje się do sprawdzania większej ilości danych.
settings-general-interface-dev_mode-label = Tryb Dewelopera
settings-general-interface-serial_detection = Wykrywanie urządzeń
settings-general-interface-serial_detection-description = Ta opcja daje powiadomienia jeżeli serwer wykryje urządzenie które może być trackerem
settings-general-interface-serial_detection-label = Wykrywanie urządzeń
settings-general-interface-lang = Wybierz Język
settings-general-interface-lang-description = Zmień podstawowy język jaki chcesz używać
settings-general-interface-lang-placeholder = Wybierz Język który będziesz używać
## Serial settings
settings-serial = Serial Console
# This cares about multilines
settings-serial-description =
To jest źródło informacji na żywo dla komunikacji szeregowej.
Może być przydatny, jeśli chcesz wiedzieć, czy oprogramowanie układowe działa.
settings-serial-connection_lost = Utracono połączenie z portem szeregowym, ponowne łączenie...
settings-serial-reboot = Ponowne uruchomienie
settings-serial-factory_reset = Przywrócenie ustawień fabrycznych
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Ostrzeżenie:</b> Spowoduje to zresetowanie trackera do ustawień fabrycznych.
Co oznacza, że ustawienia Wi-Fi i kalibracji <b>zostaną utracone!</b>
settings-serial-factory_reset-warning-ok = Wiem co robię
settings-serial-factory_reset-warning-cancel = Anuluj
settings-serial-get_infos = Uzyskaj informacje
settings-serial-serial_select = Wybierz port szeregowy
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
Przekaż wiadomości OSC z innego programu.
Przydatne na przykład do używania innego programu OSC z VRChat.
settings-osc-router-enable = Enable
settings-osc-router-enable-description = Przełącz przekazywanie wiadomości.
settings-osc-router-enable-label = Enable
settings-osc-router-network = Porty sieciowe
# This cares about multilines
settings-osc-router-network-description =
Ustaw porty do odbierania i wysyłania danych.
Mogą to być takie same porty, jak inne porty używane na serwerze SlimeVR.
settings-osc-router-network-port_in =
.label = Port In
.placeholder = Port in (default: 9002)
settings-osc-router-network-port_out =
.label = Port Out
.placeholder = Port out (default: 9000)
settings-osc-router-network-address = Adres sieciowy
settings-osc-router-network-address-description = Ustaw adres, na który mają być wysyłane dane.
settings-osc-router-network-address-placeholder = IPV4 address
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Zmień ustawienia specyficzne dla VRChat, aby odbierać i wysyłać dane HMD
dane trackerów dla FBT (działa na samodzielnym Quest).
settings-osc-vrchat-enable = Enable
settings-osc-vrchat-enable-description = Przełącz wysyłanie i odbieranie danych.
settings-osc-vrchat-enable-label = Enable
settings-osc-vrchat-network = Porty sieciowe
settings-osc-vrchat-network-description = Ustaw porty do odbierania i wysyłania danych do VRChat.
settings-osc-vrchat-network-port_in =
.label = Port In
.placeholder = Port in (default: 9001)
settings-osc-vrchat-network-port_out =
.label = Port Out
.placeholder = Port out (default: 9000)
settings-osc-vrchat-network-address = Adres sieciowy
settings-osc-vrchat-network-address-description = Wybierz adres, na który chcesz wysłać dane do VRChat (sprawdź ustawienia Wi-Fi na swoim urządzeniu).
settings-osc-vrchat-network-address-placeholder = VRChat ip address
settings-osc-vrchat-network-trackers = Trackers
settings-osc-vrchat-network-trackers-description = Przełącz wysyłanie określonych trackerów przez OSC.
settings-osc-vrchat-network-trackers-chest = Klatka piersiowa
settings-osc-vrchat-network-trackers-waist = Talia
settings-osc-vrchat-network-trackers-knees = Kolana
settings-osc-vrchat-network-trackers-feet = Stopy
settings-osc-vrchat-network-trackers-elbows = Łokcie
## Setup/onboarding menu
onboarding-skip = Pomiń wstępną konfiguracje
onboarding-continue = Kontynuuj
onboarding-wip = W trakcie prac
## Wi-Fi setup
onboarding-wifi_creds-back = Cofnij się do początku
onboarding-wifi_creds = Wpisz dane Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Trackery będą używać tej sieci do łączenia się z serwerem
proszę używać sieci do której jest się połączonym
onboarding-wifi_creds-skip = Pomiń ustawienia Wi-Fi
onboarding-wifi_creds-submit = Potwierdź!
onboarding-wifi_creds-ssid =
.label = SSID
.placeholder = Enter SSID
onboarding-wifi_creds-password =
.label = Password
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Powrót do Konfiguracji Położenia trackerów
onboarding-reset_tutorial = Zresetuj poradnik
onboarding-reset_tutorial-description = Ta funkcja jeszcze nie jest skończona.
## Setup start
onboarding-home = Witamy w SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Full-body tracking
dla każdego
onboarding-home-start = Zaczynajmny!
## Enter VR part of setup
onboarding-enter_vr-back = Cofnij do Przydzielania Trackerów
onboarding-enter_vr-title = Czas na wejście do VR!
onboarding-enter_vr-description = Załóż wszystkie trackery a potem wejdź do VR!
onboarding-enter_vr-ready = Jestem gotów
## Setup done
onboarding-done-title = Wszystko ustawione!
onboarding-done-description = Ciesz się Full-Body
onboarding-done-close = Zamknij Poradnik
## Tracker connection setup
onboarding-connect_tracker-back = Cofnij się do ustawień Wi-Fi
onboarding-connect_tracker-title = Połącz trackery
onboarding-connect_tracker-description-p0 = Teraz czas na zabawę, połączenie wszystkich trackerów!
onboarding-connect_tracker-description-p1 = Po prostu połącz wszystkie dotychczas nie połączone trackery za pomocą USB
onboarding-connect_tracker-issue-serial = Mam problemy z połączeniem!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Szukanie Trackerów
onboarding-connect_tracker-connection_status-serial_init = Łączenie z urządzeniem szeregowym
onboarding-connect_tracker-connection_status-provisioning = Wysyłanie danych Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Wysyłanie danych Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Szukanie serwera
onboarding-connect_tracker-connection_status-connection_error = Nie można połączyć się z Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Nie można znaleźć serwera
onboarding-connect_tracker-connection_status-done = Połączono z serwerem
onboarding-connect_tracker-next = Połączyłem już wszystkie trackery
## Tracker assignment setup
onboarding-assign_trackers-back = Cofnij się do ustawień Wi-Fi
onboarding-assign_trackers-title = Przydziel Trackery
onboarding-assign_trackers-description = Wybierzmy gdzie idzie jaki tracker. Naciśnij gdzie chcesz go przydzielić
onboarding-assign_trackers-advanced = Pokaż zaawansowane ustawienia pozycji
onboarding-assign_trackers-next = Przydzieliłem już wszystkie trackery
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę, lewe udo i klatkę piersiową, biodro lub talię!
[1] Lewa stopa jest przypisana, ale musisz przypisać również lewe udo i klatkę piersiową, biodro lub talię!
[2] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę i klatkę piersiową, biodro lub talię!
[3] Lewa stopa jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[4] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę i lewe udo!
[5] Lewa stopa jest przypisana, ale musisz przypisać również lewe udo!
[6] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę!
*[unknown] Lewa stopa jest przypisana, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę, prawe udo i klatkę piersiową, biodro lub talię!
[1] Prawa stopa jest przypisana, ale musisz przypisać również prawe udo i klatkę piersiową, biodro lub talię!
[2] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę i klatkę piersiową, biodro lub talię!
[3] Prawa stopa jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[4] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę i prawe udo!
[5] Prawa stopa jest przypisana, ale potrzebne jest również przypisanie prawego uda!
[6] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę!
*[unknown] Prawa stopa jest przypisana, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] Lewa kostka jest przypisana, ale musisz przypisać również lewe udo i klatkę piersiową, biodro lub talię!
[1] Lewa kostka jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[2] Lewa kostka jest przypisana, ale musisz przypisać również lewe udo!
*[unknown] Lewa kostka jest przypisana, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] Prawa kostka jest przypisana, ale musisz przypisać również prawe udo i klatkę piersiową, biodro lub talię!
[1] Prawa kostka jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[2] Prawa kostka jest przypisana, ale potrzebne jest również przypisanie prawego uda!
*[unknown] Prawa kostka jest przypisana, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Lewe udo jest przypisane, ale musisz też przypisać klatkę piersiową, biodro lub talię!
*[unknown] Lewe udo jest przypisane, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Prawe udo jest przypisane, ale musisz też przypisać klatkę piersiową, biodro lub talię!
*[unknown] Prawe udo jest przypisane, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Biodro jest przypisane, ale musisz też przypisać klatkę piersiową!
*[unknown] Biodro jest przypisane, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Talia jest przypisana, ale klatka piersiowa również musi być przypisana!
*[unknown] Talia jest przypisana, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Cofnij się żeby wejść do VR
onboarding-manual_mounting = Pozycjonowanie Manualne
onboarding-manual_mounting-description = Kliknij na każdy tracker i wybierz w jaki sposób są zamontowane
onboarding-manual_mounting-auto_mounting = Automatyczne połączenie
onboarding-manual_mounting-next = Następny krok
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Cofnij się żeby wejść do VR
onboarding-automatic_mounting-title = Kalibracja Pozycji
onboarding-automatic_mounting-description = Aby SlimeVR działało prawidłowo, musimy przypisać rotacje trackera aby zgadzała się ona z tą w prawdziwym życiu.
onboarding-automatic_mounting-manual_mounting = Pozycjonowanie Manualne
onboarding-automatic_mounting-next = Następny krok
onboarding-automatic_mounting-prev_step = Poprzedni krok
onboarding-automatic_mounting-done-title = Rotacja trackerów została skalibrowana.
onboarding-automatic_mounting-done-description = Kalibracja skończona!
onboarding-automatic_mounting-done-restart = Cofnij się na początek
onboarding-automatic_mounting-mounting_reset-title = Kalibracja Pozycji
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Zrób pozycje "na Małysza" z wygiętymi nogami, tułów pochylony do przodu z wygiętymi rękami.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Naciśnij "Zresetuj Położenie" i poczekaj 3 sekundy zanim trackery się zresetują.
onboarding-automatic_mounting-preparation-title = Przygotowania
onboarding-automatic_mounting-preparation-step-0 = 1. Stań prosto z rękami wyciągniętymi na bok.
onboarding-automatic_mounting-preparation-step-1 = 2. Naciśnij "Reset" i poczekaj 3 sekundy zanim trackery się zresetują.
onboarding-automatic_mounting-put_trackers_on-title = Załóż trackery
onboarding-automatic_mounting-put_trackers_on-description = Aby skalibrować rotacje, użyjemy trackerów które przed chwilą przypisałeś. Załóż wszystkie trackery, będziesz widział który to który na postaci po prawej.
onboarding-automatic_mounting-put_trackers_on-next = Mam wszystkie trackery założone
## Tracker manual proportions setup
onboarding-manual_proportions-back = Wróć do samouczka resetowania
onboarding-manual_proportions-title = Manualne Proporcje Ciała
onboarding-manual_proportions-precision = Precyzyjna Regulacja
onboarding-manual_proportions-auto = Automatyczna Kalibracja
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Wróć do samouczka resetowania
onboarding-automatic_proportions-title = Zmierz swoje ciało
onboarding-automatic_proportions-description = Aby SlimeVR działało poprawnie, musimy znać długość twoich kości. Ta kalibracja zrobi to za ciebie.
onboarding-automatic_proportions-manual = Kalibracja Manualna
onboarding-automatic_proportions-prev_step = Poprzedni krok
onboarding-automatic_proportions-put_trackers_on-title = Załóż trackery
onboarding-automatic_proportions-put_trackers_on-description = Aby skalibrować proporcje, użyjemy trackerów które przed chwilą przypisałeś. Załóż wszystkie trackery, będziesz widział który to który na postaci po prawej.
onboarding-automatic_proportions-put_trackers_on-next = Mam wszystkie trackery założone
onboarding-automatic_proportions-preparation-title = Przygotowania
onboarding-automatic_proportions-preparation-description = Połóż krzesło za sobą w twojej przeszczeni grania. Bądź gotowy do siadania podczas automatycznej kalibracji kości.
onboarding-automatic_proportions-preparation-next = Jestem przed krzesłem
onboarding-automatic_proportions-start_recording-title = Bądź gotowy żeby się ruszać
onboarding-automatic_proportions-start_recording-description = Będziemy teraz nagrywać specyficzne pozycje i ruchy. Będą one pokazane w następnym okienku. Bądź gotowy po naciśnięciu przycisku!
onboarding-automatic_proportions-start_recording-next = Uruchom nagrywanie
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Nagrywanie w toku...
onboarding-automatic_proportions-recording-description-p1 = Wykonuj ruchy pokazane niżej:
onboarding-automatic_proportions-recording-steps-0 = Zegnij kolana kilka razy.
onboarding-automatic_proportions-recording-steps-1 = Usiądź na krześle ,po czym wstań.
onboarding-automatic_proportions-recording-steps-2 = Przekręć ciało w lewo ,po czym przechyl się w prawo.
onboarding-automatic_proportions-recording-steps-3 = Przekręć ciało w prawo ,po czym przechyl się w lewo.
onboarding-automatic_proportions-recording-steps-4 = Poruszaj się dopuki czas się nie skończy
onboarding-automatic_proportions-recording-processing = Przetwarzanie wyników
onboarding-automatic_proportions-verify_results-title = Zweryfikuj Wyniki
onboarding-automatic_proportions-verify_results-description = Sprawdź wyniki poniżej, czy są prawidłowe?
onboarding-automatic_proportions-verify_results-results = Wyniki Nagrywania
onboarding-automatic_proportions-verify_results-processing = Przetwarzanie wyniku
onboarding-automatic_proportions-verify_results-redo = Powtórz Nagrywanie
onboarding-automatic_proportions-verify_results-confirm = Są Prawidłowe
onboarding-automatic_proportions-done-title = Zmierzono oraz Zapisano.
onboarding-automatic_proportions-done-description = Twoja kalibracja ciała została zakończona!
## Home
home-no_trackers = Nie wykryto trackerów

View File

@@ -0,0 +1,635 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Conectando ao servidor
websocket-connection_lost = Conexão perdida com o servidor. Reconectando...
## Tips
tips-find_tracker = Não tem certeza qual tracker é qual? Balance o tracker e ele destacará o item correspondente.
tips-do_not_move_heels = Tenha certeza de não mexer seus calcanhares durante a gravação!
## Body parts
body_part-NONE = Não atribuído
body_part-HEAD = Cabeça
body_part-NECK = Pescoço
body_part-RIGHT_SHOULDER = Ombro direito
body_part-RIGHT_UPPER_ARM = Braço superior direito
body_part-RIGHT_LOWER_ARM = Antebraço direito
body_part-RIGHT_HAND = Mão Direita
body_part-RIGHT_UPPER_LEG = Coxa direita
body_part-RIGHT_LOWER_LEG = Canela direita
body_part-RIGHT_FOOT = Pé direito
body_part-RIGHT_CONTROLLER = Controle direito
body_part-CHEST = Peito
body_part-WAIST = Cintura
body_part-HIP = Quadril
body_part-LEFT_SHOULDER = Ombro esquerdo
body_part-LEFT_UPPER_ARM = Braço superior esquerdo
body_part-LEFT_LOWER_ARM = Antebraço esquerdo
body_part-LEFT_HAND = Mão esquerda
body_part-LEFT_UPPER_LEG = Coxa esquerda
body_part-LEFT_LOWER_LEG = Canela esquerda
body_part-LEFT_FOOT = Pé esquerdo
body_part-LEFT_CONTROLLER = Controle esquerdo
## Proportions
skeleton_bone-NONE = Nada
skeleton_bone-HEAD = Deslocamento da Cabeça
skeleton_bone-NECK = Tamanho do Pescoço
skeleton_bone-CHEST = Chest Length
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-WAIST = Waist Length
skeleton_bone-HIP = Hip Length
skeleton_bone-HIP_OFFSET = Compensação do Quadril
skeleton_bone-HIPS_WIDTH = Largura do Quadril
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-LOWER_LEG = Lower Leg Length
skeleton_bone-FOOT_LENGTH = Tamanho do Pé
skeleton_bone-FOOT_SHIFT = Compensação do Pé
skeleton_bone-SKELETON_OFFSET = Compensação do Esqueleto
skeleton_bone-SHOULDERS_DISTANCE = Distância dos Ombros
skeleton_bone-SHOULDERS_WIDTH = Largura dos Ombros
skeleton_bone-UPPER_ARM = Tamanho do Braço Superior
skeleton_bone-LOWER_ARM = Distância do Antebraço
skeleton_bone-CONTROLLER_Y = Distância do Controle Y
skeleton_bone-CONTROLLER_Z = Distância do Controle Z
skeleton_bone-ELBOW_OFFSET = Compensação do Cotovelo
## Tracker reset buttons
reset-reset_all = Redefinir todas as proporções
reset-full = Reset
reset-mounting = Reset de Posição
reset-quick = Reset Rápido
## Serial detection stuff
serial_detection-new_device-p0 = Novo dispositivo de serial detectado!
serial_detection-new_device-p1 = Insira suas credenciais de Wi-Fi!
serial_detection-new_device-p2 = Selecione o que quer fazer com ele
serial_detection-open_wifi = Conectar ao Wi-Fi
serial_detection-open_serial = Abrir o Console Serial
serial_detection-submit = Enviar!
serial_detection-close = Fechar
## Navigation bar
navbar-home = Início
navbar-body_proportions = Proporções do corpo
navbar-trackers_assign = Atribuição de Tracker
navbar-mounting = Calibragem de Posição
navbar-onboarding = Assistente de Configuração
navbar-settings = Opções
## Bounding volume hierarchy recording
bvh-start_recording = Gravar BVH
bvh-recording = Gravando...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostrar Overlay na SteamVR
widget-overlay-is_mirrored_label = Mostrar Overlay como espelho
## Widget: Drift compensation
widget-drift_compensation-clear = Refazer compensação de drift
## Widget: Developer settings
widget-developer_mode = Modo de desenvolvedor
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
widget-developer_mode-fast_data_feed = Fast data feed
widget-developer_mode-filter_slimes_and_hmd = Filter slimes and HMD
widget-developer_mode-sort_by_name = Sort by name
widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Sem Status
tracker-status-busy = Ocupado
tracker-status-error = Erro
tracker-status-disconnected = Desconectado
tracker-status-occluded = Ocluso
tracker-status-ok = Conectado
## Tracker status columns
tracker-table-column-name = Nome
tracker-table-column-type = Tipo
tracker-table-column-battery = Bateria
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Rotação X/Y/Z
tracker-table-column-position = Posição X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Frente
tracker-rotation-left = Esquerda
tracker-rotation-right = Direita
tracker-rotation-back = Atrás
## Tracker information
tracker-infos-manufacturer = Fabricante
tracker-infos-display_name = Nome de exibição
tracker-infos-custom_name = Nome personalizado
tracker-infos-url = URL do Tracker
## Tracker settings
tracker-settings-back = Voltar para lista de trackers
tracker-settings-title = Opções dos trackers
tracker-settings-assignment_section = Atribuição
tracker-settings-assignment_section-description = Qual parte do seu corpo o tracker está atribuído para.
tracker-settings-assignment_section-edit = Editar atribuição
tracker-settings-mounting_section = Posicionamento
tracker-settings-mounting_section-description = Aonde o tracker está posicionado?
tracker-settings-mounting_section-edit = Editar posição
tracker-settings-drift_compensation_section = Ligar a compensação de drift
tracker-settings-drift_compensation_section-description = Esse tracker deverá compensar pelo drift quando a compensação de drift estiver ligado?
tracker-settings-drift_compensation_section-edit = Ligar a compensação de drift
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nome do tracker
tracker-settings-name_section-description = Dê um apelido fofo :)
tracker-settings-name_section-placeholder = Coxa esquerda de NightyBeast
## Tracker part card info
tracker-part_card-no_name = Sem nome
tracker-part_card-unassigned = Não atribuído
## Body assignment menu
body_assignment_menu = Aonde você quer que esse tracker fique?
body_assignment_menu-description = Escolha um local onde você quer que esse tracker seja atribuído. Alternativamente você pode escolher arrumar todos os tracker de uma vez, ao invés de um por um.
body_assignment_menu-show_advanced_locations = Mostrar locais de atribuição avançados
body_assignment_menu-manage_trackers = Arrumar todos os trackers
body_assignment_menu-unassign_tracker = Desatribuir tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Which tracker do you want to be unassigned?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } neck?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } right shoulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } right hand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } right thigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } right ankle?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } right foot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } right controller?
tracker_selection_menu-CHEST = { -tracker_selection-part } chest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waist?
tracker_selection_menu-HIP = { -tracker_selection-part } hip?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } left shoulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } left hand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = Trackers não atribuídos
tracker_selection_menu-assigned = Trackers atribuídos
tracker_selection_menu-dont_assign = Não atribuir
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Atenção:</b> O tracker de pescoço pode ser mortal se ajustado muito apertado,
o strap pode cortar a circulação para sua cabeça!
tracker_selection_menu-neck_warning-done = Eu entendo os riscos
tracker_selection_menu-neck_warning-cancel = Cancelar
## Mounting menu
mounting_selection_menu = Aonde você quer que esse tracker fique?
mounting_selection_menu-close = Fechar
## Sidebar settings
settings-sidebar-title = Opções
settings-sidebar-general = Geral
settings-sidebar-tracker_mechanics = Mecânicas do Tracker
settings-sidebar-fk_settings = Opções de Tracker
settings-sidebar-gesture_control = Controle de Gestos
settings-sidebar-interface = Interface
settings-sidebar-osc_router = Roteador OSC
settings-sidebar-utils = Utilidades
settings-sidebar-serial = Console Serial
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Trackers do SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Ativar ou desativar partes específicas do tracking.
Útil se você quer mais controle do que o SlimeVR faz.
settings-general-steamvr-trackers-waist = Cintura
settings-general-steamvr-trackers-chest = Peito
settings-general-steamvr-trackers-feet = Pés
settings-general-steamvr-trackers-knees = Joelhos
settings-general-steamvr-trackers-elbows = Cotovelos
settings-general-steamvr-trackers-hands = Mãos
## Tracker mechanics
settings-general-tracker_mechanics = Mecânicas do Tracker
settings-general-tracker_mechanics-filtering = Filtros
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Escolha o tipo de filtro para seus trackers.
Predição prediz movimentação enquanto suavização suaviza o movimento.
settings-general-tracker_mechanics-filtering-type = Tipo de filtro
settings-general-tracker_mechanics-filtering-type-none = Sem filtro
settings-general-tracker_mechanics-filtering-type-none-description = Utiliza as rotações como registradas. Sem qualquer tipo de filtro.
settings-general-tracker_mechanics-filtering-type-smoothing = Suavização
settings-general-tracker_mechanics-filtering-type-smoothing-description = Suaviza o movimento porém introduz um pouco de latência.
settings-general-tracker_mechanics-filtering-type-prediction = Predição
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduz latência e torna os movimentos mais responsivos, porém aumenta tremulação (Jitter).
settings-general-tracker_mechanics-filtering-amount = Quantidade
settings-general-tracker_mechanics-drift_compensation = Compensação de drift
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensa o drift de guinada (yaw) aplicando uma rotação inversa.
Mudar a quantidade de compensação e até quantos resets vão ser levados em conta.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensação de drift
settings-general-tracker_mechanics-drift_compensation-amount-label = Quantidade de compensação
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use até x últimos resets
## FK/Tracking settings
settings-general-fk_settings = Opções de Tracker
settings-general-fk_settings-leg_tweak = Ajustes de perna
settings-general-fk_settings-leg_tweak-description = Atravessar o chão pode reduzir ou até eliminar o clipping(atravessar) com o chão porém pode causar problemas quando ajoelhado. Correção de Deslize corrige o ice skating(deslize dos trackers no chão), porém pode diminuir a precisão de certos padrões de movimento.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Atravessar o chão
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Correção de deslize
settings-general-fk_settings-leg_tweak-skating_correction-amount = Força da correção de deslize
settings-general-fk_settings-arm_fk = Opções do Braço
settings-general-fk_settings-arm_fk-description = Muda o jeito que os braços são rastreados.
settings-general-fk_settings-arm_fk-force_arms = Forçar braços do HMD
settings-general-fk_settings-skeleton_settings = Opções do esqueleto
settings-general-fk_settings-skeleton_settings-description = Ligar ou desligar opções do esqueleto. É recomendado deixar eles ligados.
settings-general-fk_settings-skeleton_settings-extended_spine = Estender coluna
settings-general-fk_settings-skeleton_settings-extended_pelvis = Estender pélvis
settings-general-fk_settings-skeleton_settings-extended_knees = Estender joelho
settings-general-fk_settings-vive_emulation-title = Emulação de Vive
settings-general-fk_settings-vive_emulation-description = Emule o problema de tracker da cintura que o Vive tracker tem. Isso é uma piada e faz o tracking ficar pior.
settings-general-fk_settings-vive_emulation-label = Ativar emulação de Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Controle de gestos
settings-general-gesture_control-subtitle = Resets baseados em toques
settings-general-gesture_control-description = Faz com oque os resets sejam ativados tocando um tracker. O Tracker mais alto no seu torso é usado para o Reset Rápido, o tracker mais alto na sua perna esquerda é usado para o Reset, e o tracker mais alto na sua perna direita é usado para o Reset de Posição. Os toques devem ocorrer dentro de 0.6 segundos para serem registrados.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Ativar toque para reset rápido
settings-general-gesture_control-quickResetDelay = Delay do reset rápido
settings-general-gesture_control-quickResetTaps = Toques para o reset rápido
settings-general-gesture_control-resetEnabled = Ativar toque para reset
settings-general-gesture_control-resetDelay = Delay do reset
settings-general-gesture_control-resetTaps = Toques para o reset
settings-general-gesture_control-mountingResetEnabled = Toques para o reset de posição
settings-general-gesture_control-mountingResetDelay = Delay do reset de posição
settings-general-gesture_control-mountingResetTaps = Toques para o reset de posição
## Interface settings
settings-general-interface = Interface
settings-general-interface-dev_mode = Modo de desenvolvedor
settings-general-interface-dev_mode-description = Este modo pode ser útil se precisar de dados específicos ou para interagir com trackers conectados a um nível mais avançado
settings-general-interface-dev_mode-label = Modo de desenvolvedor
settings-general-interface-serial_detection = Detecção de dispositivo serial
settings-general-interface-serial_detection-description = Esta opção mostrará um pop-up toda vez que você conectar um novo dispositivo serial que pode ser um tracker. Ajuda a melhorar o processo de configuração de um tracker
settings-general-interface-serial_detection-label = Detecção de dispositivo serial
settings-general-interface-lang = Selecione o idioma
settings-general-interface-lang-description = Alterar o idioma padrão que pretende utilizar
settings-general-interface-lang-placeholder = Selecione o idioma que vai usar
## Serial settings
settings-serial = Console Serial
# This cares about multilines
settings-serial-description =
Este é um feed de informações ao vivo para comunicação serial.
Pode ser útil se você precisar saber se o firmware está tendo problemas.
settings-serial-connection_lost = Conexão com o serial perdida, Reconectando...
settings-serial-reboot = Reiniciar
settings-serial-factory_reset = Restaurar para o padrão de fábrica
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Atenção:</b> Isso vai restaurar o tracker para o padrão de fábrica.
Que significa que as opções de Wi-Fi e calibrações <b>vão ser todos perdidos!</b>
settings-serial-factory_reset-warning-ok = Eu sei o que estou fazendo
settings-serial-factory_reset-warning-cancel = Cancelar
settings-serial-get_infos = Obter informações
settings-serial-serial_select = Selecione uma porta serial
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = Roteador OSC
# This cares about multilines
settings-osc-router-description =
Encaminhar mensagens OSC de outro programa.
Útil para usar outro programa OSC com VRChat, por exemplo.
settings-osc-router-enable = Ativar
settings-osc-router-enable-description = Ligar ou desligar o encaminhamento de mensagens
settings-osc-router-enable-label = Ativar
settings-osc-router-network = Portas de rede
# This cares about multilines
settings-osc-router-network-description =
Defina as portas para receber e enviar dados
Esses podem ser as mesmas portas usadas no servidor do SlimeVR
settings-osc-router-network-port_in =
.label = Porta de entrada
.placeholder = Porta de entrada (padrão: 9002)
settings-osc-router-network-port_out =
.label = Porta de saída
.placeholder = Porta de saída (padrão: 9000)
settings-osc-router-network-address = Endereço de rede
settings-osc-router-network-address-description = Defina o endereço para mandar dados
settings-osc-router-network-address-placeholder = Endereço IPV4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Mudar opções específicas do VRChat para receber e mandar dados do HMD
dados de trackers para FBT (funciona no Quest standalone).
settings-osc-vrchat-enable = Ativar
settings-osc-vrchat-enable-description = Ligar ou desligar o envio e recebimento de dados
settings-osc-vrchat-enable-label = Ativar
settings-osc-vrchat-network = Portas de rede
settings-osc-vrchat-network-description = Defina as portas para receber e enviar dados para o VRChat
settings-osc-vrchat-network-port_in =
.label = Porta de entrada
.placeholder = Porta de entrada (padrão: 9001)
settings-osc-vrchat-network-port_out =
.label = Porta de saída
.placeholder = Porta de saída (padrão: 9000)
settings-osc-vrchat-network-address = Endereço de rede
settings-osc-vrchat-network-address-description = Escolha qual o endereço para enviar dados para o VRChat (verifique as suas opções de Wi-Fi no seu dispositivo)
settings-osc-vrchat-network-address-placeholder = Endereço de ip do VRChat
settings-osc-vrchat-network-trackers = Trackers
settings-osc-vrchat-network-trackers-description = Ligar ou desligar o envio e recepção de dados.
settings-osc-vrchat-network-trackers-chest = Peito
settings-osc-vrchat-network-trackers-waist = Cintura
settings-osc-vrchat-network-trackers-knees = Joelhos
settings-osc-vrchat-network-trackers-feet = Pés
settings-osc-vrchat-network-trackers-elbows = Cotovelos
## Setup/onboarding menu
onboarding-skip = Pular configurações
onboarding-continue = Continuar
onboarding-wip = Trabalho em progresso
## Wi-Fi setup
onboarding-wifi_creds-back = Voltar para introdução
onboarding-wifi_creds = Insira as credenciais de Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Os Trackers vão usar essas credenciais para conectar à rede sem fio
Use as credenciais da rede em que você está atualmente conectado
onboarding-wifi_creds-skip = Pular as configurações de Wi-Fi
onboarding-wifi_creds-submit = Enviar!
onboarding-wifi_creds-ssid =
.label = SSID
.placeholder = Enter SSID
onboarding-wifi_creds-password =
.label = Password
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Voltar para a Calibragem de Posição
onboarding-reset_tutorial = Resetar Tutorial
onboarding-reset_tutorial-description = Esse recurso não está concluído, apenas aperte continue
## Setup start
onboarding-home = Bem vindo ao SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Trazendo full-body tracking
para todos
onboarding-home-start = Vamos configurar!
## Enter VR part of setup
onboarding-enter_vr-back = Voltar para atribuição de Trackers
onboarding-enter_vr-title = Hora de entrar no VR!
onboarding-enter_vr-description = Coloque todos os seus trackers e entre no VR!
onboarding-enter_vr-ready = Estou pronto
## Setup done
onboarding-done-title = Está tudo pronto!
onboarding-done-description = Aproveite sua experiência com full body
onboarding-done-close = Fechar o guia
## Tracker connection setup
onboarding-connect_tracker-back = Voltar para as credenciais de Wi-Fi
onboarding-connect_tracker-title = Conectar os trackers
onboarding-connect_tracker-description-p0 = Agora para a parte divertida, conectando todos os seus trackers!
onboarding-connect_tracker-description-p1 = Simplesmente conecte todos que ainda não estão conectados, via porta USB.
onboarding-connect_tracker-issue-serial = Estou tendo problemas para conectar!
onboarding-connect_tracker-usb = Tracker USB
onboarding-connect_tracker-connection_status-none = Procurando por trackers
onboarding-connect_tracker-connection_status-serial_init = Conectando ao dispositivo serial
onboarding-connect_tracker-connection_status-provisioning = Enviando credenciais de Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Enviando credenciais de Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Procurando servidor
onboarding-connect_tracker-connection_status-connection_error = Não é possível conectar ao Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Não foi possível conectar ao servidor
onboarding-connect_tracker-connection_status-done = Conectado ao servidor
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = Eu conectei todos os meus trackers
## Tracker assignment setup
onboarding-assign_trackers-back = Voltar para as credenciais de Wi-Fi
onboarding-assign_trackers-title = Atribuir trackers
onboarding-assign_trackers-description = Vamos escolher onde cada tracker vai. Clique no local onde você quer colocar o tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Mostrar locais de atribuição avançados
onboarding-assign_trackers-next = Atribui todos os trackers
## Tracker assignment warnings
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Coxa esquerda está atribuída, porém peito, quadril ou peito também precisam ser atribuídos!
*[unknown] Coxa esquerda está atribuída, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Coxa direita está atribuída, porém peito, quadril ou peito também precisam ser atribuídos!
*[unknown] Coxa direita está atribuída, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Quadril está atribuído, porém o peito também precisa ser atribuído!
*[unknown] Quadril está atribuído, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Cintura está atribuído, porém o peito também precisa ser atribuído!
*[unknown] Cintura está atribuído, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Voltar para entrar no VR
onboarding-manual_mounting = Posicionamento Manual
onboarding-manual_mounting-description = Clique em cada tracker e selecione de que maneira estão posicionados
onboarding-manual_mounting-auto_mounting = Posicionamento automática
onboarding-manual_mounting-next = Próximo passo
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Voltar para entrar no VR
onboarding-automatic_mounting-title = Calibragem de Posicionamento
onboarding-automatic_mounting-description = Para os trackers do SlimeVR funcionar, nós precisamos atribuir a rotação de posicionamento dos seus trackers para alinhar com a posição física de seus trackers.
onboarding-automatic_mounting-manual_mounting = Definir manualmente a posição
onboarding-automatic_mounting-next = Próximo passo
onboarding-automatic_mounting-prev_step = Passo anterior
onboarding-automatic_mounting-done-title = Rotações de posição calibradas.
onboarding-automatic_mounting-done-description = Sua calibragem de posicionamento está completa!
onboarding-automatic_mounting-done-restart = Voltar ao início
onboarding-automatic_mounting-mounting_reset-title = Reset de Posição
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Agache-se em uma pose de "esqui" com as pernas dobradas, a parte superior do corpo inclinada para a frente e os braços dobrados.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Pressione o botão "Resetar Posição" e aguarde 3 segundos antes que as rotações de posição dos trackers sejam redefinidas.
onboarding-automatic_mounting-preparation-title = Preparação
onboarding-automatic_mounting-preparation-step-0 = 1. Fique de pé com os braços ao lado do corpo.
onboarding-automatic_mounting-preparation-step-1 = 2. Pressione o botão "Reset" e aguarde 3 segundos antes que os rastreadores sejam reiniciados.
onboarding-automatic_mounting-put_trackers_on-title = Coloque seus trackers
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar as rotações de posicionamento, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver qual é qual na figura na direita.
onboarding-automatic_mounting-put_trackers_on-next = Coloquei todos os meus trackers
## Tracker manual proportions setup
onboarding-manual_proportions-back = Voltar para o tutorial de reset
onboarding-manual_proportions-title = Proporções de corpo manuais
onboarding-manual_proportions-precision = Ajuste de precisão
onboarding-manual_proportions-auto = Calibragem Automática
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Voltar para o tutorial de reset
onboarding-automatic_proportions-title = Meça seu corpo
onboarding-automatic_proportions-description = Para os trackers SlimeVR funcionarem, precisamos saber o tamanho dos seus ossos. Essa curta calibragem vai medir isso para você.
onboarding-automatic_proportions-manual = Calibragem manual
onboarding-automatic_proportions-prev_step = Passo anterior
onboarding-automatic_proportions-put_trackers_on-title = Coloque seus trackers
onboarding-automatic_proportions-put_trackers_on-description = Para calibrar suas proporções, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver quais são quais na figura à direita.
onboarding-automatic_proportions-put_trackers_on-next = Coloquei todos os meus trackers
onboarding-automatic_proportions-preparation-title = Preparação
onboarding-automatic_proportions-preparation-description = Coloque uma cadeira diretamente atrás de você dentro da sua área de jogo(Play space). Esteja preparado para sentar durante a configuração de autobone.
onboarding-automatic_proportions-preparation-next = Estou em frente a uma cadeira
onboarding-automatic_proportions-start_recording-title = Esteja preparado para se mexer
onboarding-automatic_proportions-start_recording-description = Começaremos a gravar algumas poses e movimentos específicos. Estes serão solicitados na próxima tela. Esteja preparado para começar quando o botão for pressionado!
onboarding-automatic_proportions-start_recording-next = Começar Gravação
onboarding-automatic_proportions-recording-title = GRAVAR
onboarding-automatic_proportions-recording-description-p0 = Gravação em progresso...
onboarding-automatic_proportions-recording-description-p1 = Faça os movimentos apresentados abaixo:
onboarding-automatic_proportions-recording-steps-0 = Dobre os joelhos algumas vezes.
onboarding-automatic_proportions-recording-steps-1 = Sente-se na cadeira e se levante.
onboarding-automatic_proportions-recording-steps-2 = Gire seu tronco para esquerda, e incline para direita.
onboarding-automatic_proportions-recording-steps-3 = Gire seu tronco para direita, e incline para esquerda.
onboarding-automatic_proportions-recording-steps-4 = Mexa-se até o tempo terminar.
onboarding-automatic_proportions-recording-processing = Processando o resultado
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Verificar os resultados
onboarding-automatic_proportions-verify_results-description = Verifique os resultados abaixo, parecem corretos?
onboarding-automatic_proportions-verify_results-results = Gravando os resultados
onboarding-automatic_proportions-verify_results-processing = Processando o resultado
onboarding-automatic_proportions-verify_results-redo = Refazer a gravação
onboarding-automatic_proportions-verify_results-confirm = Eles estão corretos
onboarding-automatic_proportions-done-title = Corpo medido e salvo.
onboarding-automatic_proportions-done-description = Sua calibragem de proporção de corpo está completa!
## Home
home-no_trackers = Nenhum tracker detectado ou atribuído

View File

@@ -0,0 +1,668 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Подключение к серверу
websocket-connection_lost = Потеряно соединение с сервером. Переподключение...
## Tips
tips-find_tracker = Не уверены, какой это трекер? Встряхните его, и трекер выделится в списке.
tips-do_not_move_heels = Убедитесь, что ваши пятки не двигаются во время записи!
## Body parts
body_part-NONE = Не привязано
body_part-HEAD = Голова
body_part-NECK = Шея
body_part-RIGHT_SHOULDER = Правое плечо
body_part-RIGHT_UPPER_ARM = Правое предплечье
body_part-RIGHT_LOWER_ARM = Правое нижнее предплечье
body_part-RIGHT_HAND = Правая рука
body_part-RIGHT_UPPER_LEG = Правое бедро
body_part-RIGHT_LOWER_LEG = Правая голень
body_part-RIGHT_FOOT = Правая ступня
body_part-RIGHT_CONTROLLER = Правый контроллер
body_part-CHEST = Грудь
body_part-WAIST = Талия
body_part-HIP = Таз
body_part-LEFT_SHOULDER = Левое плечо
body_part-LEFT_UPPER_ARM = Левое предплечье
body_part-LEFT_LOWER_ARM = Левое нижнее предплечье
body_part-LEFT_HAND = Левая рука
body_part-LEFT_UPPER_LEG = Левое бедро
body_part-LEFT_LOWER_LEG = Левая голень
body_part-LEFT_FOOT = Левая ступня
body_part-LEFT_CONTROLLER = Левый контроллер
## Proportions
skeleton_bone-NONE = Пусто
skeleton_bone-HEAD = Голова
skeleton_bone-NECK = Длина шеи
skeleton_bone-CHEST = Длина груди
skeleton_bone-CHEST_OFFSET = Смещение груди
skeleton_bone-WAIST = Длина талии
skeleton_bone-HIP = Длина таза
skeleton_bone-HIP_OFFSET = Смещение таза
skeleton_bone-HIPS_WIDTH = Ширина бедер
skeleton_bone-UPPER_LEG = Длина бедра
skeleton_bone-LOWER_LEG = Длина голени
skeleton_bone-FOOT_LENGTH = Длинна стопы
skeleton_bone-FOOT_SHIFT = Смещение стопы
skeleton_bone-SKELETON_OFFSET = Смещение скелета
skeleton_bone-SHOULDERS_DISTANCE = Дистанция плеч
skeleton_bone-SHOULDERS_WIDTH = Ширина плеч
skeleton_bone-UPPER_ARM = Длинна предплечья
skeleton_bone-LOWER_ARM = Длинна нижнего предплечья
skeleton_bone-CONTROLLER_Y = Дистанция контроллера Y
skeleton_bone-CONTROLLER_Z = Дистанция контроллера Z
skeleton_bone-ELBOW_OFFSET = Смещение локтя
## Tracker reset buttons
reset-reset_all = Сбросить все пропорции
reset-full = Сброс
reset-mounting = Сбросить крепление
reset-quick = Быстрый сброс
## Serial detection stuff
serial_detection-new_device-p0 = Обнаружено новое устройство!
serial_detection-new_device-p1 = Заполните данные вашего Wi-Fi!
serial_detection-new_device-p2 = Пожалуйста, выберите, что вы хотите с ним сделать
serial_detection-open_wifi = Подключиться к Wi-Fi
serial_detection-open_serial = Открыть консоль
serial_detection-submit = Отправить!
serial_detection-close = Закрыть
## Navigation bar
navbar-home = Дом
navbar-body_proportions = Пропорции тела
navbar-trackers_assign = Назначение трекера
navbar-mounting = Калибровка крепления
navbar-onboarding = Мастер настройки
navbar-settings = Настройки
## Bounding volume hierarchy recording
bvh-start_recording = Запись BVH
bvh-recording = Запись...
## Widget: Overlay settings
widget-overlay = Оверлей
widget-overlay-is_visible_label = Показывать оверлей в SteamVR
widget-overlay-is_mirrored_label = Показывать оверлей как зеркало
## Widget: Drift compensation
widget-drift_compensation-clear = Очистить компенсацию дрифта
## Widget: Developer settings
widget-developer_mode = Режим разработчика
widget-developer_mode-high_contrast = Высокая контрастность
widget-developer_mode-precise_rotation = Точное вращение
widget-developer_mode-fast_data_feed = Быстрый поток данных
widget-developer_mode-filter_slimes_and_hmd = Фильтровать SlimeVR и HMD
widget-developer_mode-sort_by_name = Сортировка по имени
widget-developer_mode-raw_slime_rotation = Вращение без обработки
widget-developer_mode-more_info = Дополнительная информация
## Widget: IMU Visualizer
widget-imu_visualizer = Вращение
widget-imu_visualizer-rotation_raw = RAW
widget-imu_visualizer-rotation_preview = Предпросмотр
## Tracker status
tracker-status-none = Без Статуса
tracker-status-busy = Занят
tracker-status-error = Ошибка
tracker-status-disconnected = Отключен
tracker-status-occluded = Закрыт
tracker-status-ok = ОК
## Tracker status columns
tracker-table-column-name = Имя
tracker-table-column-type = Тип
tracker-table-column-battery = Батарея
tracker-table-column-ping = Пинг
tracker-table-column-tps = TPS
tracker-table-column-temperature = Темп. °C
tracker-table-column-linear-acceleration = Ускорение. X/Y/Z
tracker-table-column-rotation = Поворот X/Y/Z
tracker-table-column-position = Положение X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Спереди
tracker-rotation-left = Слева
tracker-rotation-right = Справа
tracker-rotation-back = Сзади
## Tracker information
tracker-infos-manufacturer = Производитель
tracker-infos-display_name = Отображаемое имя
tracker-infos-custom_name = Свое имя
tracker-infos-url = URL трекера
## Tracker settings
tracker-settings-back = Вернуться к списку трекеров
tracker-settings-title = Настройки трекера
tracker-settings-assignment_section = Привязка
tracker-settings-assignment_section-description = К какой части тела привязан трекер.
tracker-settings-assignment_section-edit = Изменить привязку
tracker-settings-mounting_section = Положение крепления
tracker-settings-mounting_section-description = Где прикреплен трекер?
tracker-settings-mounting_section-edit = Изменить прикрепление
tracker-settings-drift_compensation_section = Разрешить компенсацию дрифта
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Разрешить компенсацию дрифта
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Имя трекера
tracker-settings-name_section-description = Дай ему милое имя :)
tracker-settings-name_section-placeholder = Левая нога NightyBeast'а
## Tracker part card info
tracker-part_card-no_name = Нет имени
tracker-part_card-unassigned = Не привязан
## Body assignment menu
body_assignment_menu = Где вы хотите, чтобы был этот трекер?
body_assignment_menu-description = Выберите местоположение, куда вы хотите назначить этот трекер. В качестве альтернативы вы можете выбрать управление всеми трекерами сразу, а не по одному.
body_assignment_menu-show_advanced_locations = Показать дополнительные места привязки
body_assignment_menu-manage_trackers = Настроить все трекеры
body_assignment_menu-unassign_tracker = Отвязать трекер
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Какой трекер ты хочешь привязать к
tracker_selection_menu-NONE = Какой трекер вы хотите оставить неназначенным?
tracker_selection_menu-HEAD = { -tracker_selection-part } голове?
tracker_selection_menu-NECK = { -tracker_selection-part } шее?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } правому плечу?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } правому предплечью?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } правому нижнему предплечью?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } провой руке?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } правому бедру?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } правой лодышке?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } правой ступне?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } правому контроллеру?
tracker_selection_menu-CHEST = { -tracker_selection-part } груди?
tracker_selection_menu-WAIST = { -tracker_selection-part } талии?
tracker_selection_menu-HIP = { -tracker_selection-part } тазу?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } левому плечу?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } левому предплечью?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } левому нижнему предплечью?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } левой руке?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } левому бедру?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } левой лодышке?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } левой ступне?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } левому контроллеру?
tracker_selection_menu-unassigned = Не привязанные трекеры
tracker_selection_menu-assigned = Привязанные трекеры
tracker_selection_menu-dont_assign = Не привязывать
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Внимание:</b> Трекер шеи может быть смертельно опасен, если его отрегулировать слишком туго,
ремешок может нарушить кровообращение в вашей голове!
tracker_selection_menu-neck_warning-done = Я понимаю риски
tracker_selection_menu-neck_warning-cancel = Отмена
## Mounting menu
mounting_selection_menu = Где ты хочешь чтобы этот трекер был?
mounting_selection_menu-close = Закрыть
## Sidebar settings
settings-sidebar-title = Настройки
settings-sidebar-general = Общие
settings-sidebar-tracker_mechanics = Механики трекеров
settings-sidebar-fk_settings = Настройки трекеров
settings-sidebar-gesture_control = Настройки жестов
settings-sidebar-interface = Интерфейс
settings-sidebar-osc_router = OSC роутер
settings-sidebar-utils = Утилиты
settings-sidebar-serial = Консоль
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR трекеры
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Включите или отключите определенные трекеры SteamVR.
Полезно для игр или приложений, которые поддерживают только определенные трекеры.
settings-general-steamvr-trackers-waist = Талия
settings-general-steamvr-trackers-chest = Грудь
settings-general-steamvr-trackers-feet = Ступни
settings-general-steamvr-trackers-knees = Колени
settings-general-steamvr-trackers-elbows = Локти
settings-general-steamvr-trackers-hands = Руки
## Tracker mechanics
settings-general-tracker_mechanics = Механики трекеров
settings-general-tracker_mechanics-filtering = Фильтр
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Выберите тип фильтрации для ваших трекеров.
Прогнозирование предсказывает движение, в то время как сглаживание сглаживает движение.
settings-general-tracker_mechanics-filtering-type = Тип фильтра
settings-general-tracker_mechanics-filtering-type-none = Нет фильтра
settings-general-tracker_mechanics-filtering-type-none-description = Используется вращение как есть. Нет никакой фильтрации.
settings-general-tracker_mechanics-filtering-type-smoothing = Сглаживание
settings-general-tracker_mechanics-filtering-type-smoothing-description = Сглаживает движения, но добавляет некоторую задержку.
settings-general-tracker_mechanics-filtering-type-prediction = Предсказывание
settings-general-tracker_mechanics-filtering-type-prediction-description = Уменьшает задержку и делает движения более быстрыми, но может увеличить дрожание.
settings-general-tracker_mechanics-filtering-amount = Количество
settings-general-tracker_mechanics-drift_compensation = Компенсация дрифта
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Компенсирует дрифт по рысканию IMU путем применения обратного вращения.
Измените размер компенсации и до скольких сбросов учитывается.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Компенсация дрифта
settings-general-tracker_mechanics-drift_compensation-amount-label = Кол-во компенсации
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Используйте до x последних сбросов
## FK/Tracking settings
settings-general-fk_settings = Настройки трекеров
settings-general-fk_settings-leg_tweak = Починка ног
settings-general-fk_settings-leg_tweak-description = Привязка к полу может уменьшить или даже вовсе исключить сцепление с полом, но может вызвать проблемы, когда вы стоите на коленях. Катание на коньках-коррекция корректирует катание на коньках, но может снизить точность в определенных моделях движений.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Привязка к полу
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Коррекция скольжения
settings-general-fk_settings-leg_tweak-skating_correction-amount = Сила коррекции скольжения
settings-general-fk_settings-arm_fk = Трекинг руки
settings-general-fk_settings-arm_fk-description = Измените способ отслеживания рук.
settings-general-fk_settings-arm_fk-force_arms = Руки от HMD
settings-general-fk_settings-skeleton_settings = Настройки скелета
settings-general-fk_settings-skeleton_settings-description = Включите или выключите настройки скелета. Рекомендуется оставить их включенными.
settings-general-fk_settings-skeleton_settings-extended_spine = Удлиненный позвоночник
settings-general-fk_settings-skeleton_settings-extended_pelvis = Расширенный таз
settings-general-fk_settings-skeleton_settings-extended_knees = Вытянутое колено
settings-general-fk_settings-vive_emulation-title = Эмуляция Vive
settings-general-fk_settings-vive_emulation-description = Имитируйте проблемы с отслеживанием талии, которые возникают у трекеров Vive. Это шутка, и она ухудшает отслеживание.
settings-general-fk_settings-vive_emulation-label = Включить эмуляцию Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Контроль жестами
settings-general-gesture_control-subtitle = Сброс после нажатия
settings-general-gesture_control-description = Позволяет запускать сброс настроек нажатием на трекер. Трекер, расположенный выше всего на вашем торсе, используется для быстрого сброса, трекер, расположенный выше всего на вашей левой ноге, используется для сброса, а трекер, расположенный выше всего на вашей правой ноге, используется для сброса установок. Следует отметить, что для регистрации нажатия должны происходить в течение 0,6 секунды.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] { $amount } нажатие
[few] { $amount } нажатия
[many] { $amount } нажатий
*[other] { $amount } нажатий
}
settings-general-gesture_control-quickResetEnabled = Включить нажатие для быстрого сброса
settings-general-gesture_control-quickResetDelay = Задержка быстрого сброса
settings-general-gesture_control-quickResetTaps = Нажатия для быстрого сброса
settings-general-gesture_control-resetEnabled = Включить нажатие для сброса
settings-general-gesture_control-resetDelay = Сбросить задержку
settings-general-gesture_control-resetTaps = Нажатия для сброса
settings-general-gesture_control-mountingResetEnabled = Включить нажатия для сброса крепления
settings-general-gesture_control-mountingResetDelay = Задержка сброса крепления
settings-general-gesture_control-mountingResetTaps = Нажатия для сброса крепления
## Interface settings
settings-general-interface = Интерфейс
settings-general-interface-dev_mode = Режим разработчика
settings-general-interface-dev_mode-description = Этот режим может быть полезен, если вам нужны подробные данные или для взаимодействия с подключенными трекерами на более продвинутом уровне.
settings-general-interface-dev_mode-label = Режим разработчика
settings-general-interface-serial_detection = Обнаружение серийного устройства
settings-general-interface-serial_detection-description = Эта опция будет показывать всплывающее окно каждый раз, когда вы подключаете новое серийное устройство, которое может быть трекером. Это помогает улучшить процесс настройки трекера.
settings-general-interface-serial_detection-label = Обнаружение серийного устройства
settings-general-interface-lang = Выбрать язык
settings-general-interface-lang-description = Измените язык по умолчанию, который вы хотите использовать.
settings-general-interface-lang-placeholder = Выберите язык для использования
## Serial settings
settings-serial = Серийная консоль
# This cares about multilines
settings-serial-description =
Это оперативный информационный канал для серийной связи.
Может быть полезно, если вам нужно знать, что прошивка работает неправильно.
settings-serial-connection_lost = Соединение с серийным портом потеряно, повторное подключение...
settings-serial-reboot = Перезагрузить
settings-serial-factory_reset = Полный сброс
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
</b>Предупреждение:</b> Это приведет к полному сбросу настроек трекера.
Это означает, что Wi-Fi и настройки калибровки <b>будут потеряны!</b>
settings-serial-factory_reset-warning-ok = Я знаю, что я делаю
settings-serial-factory_reset-warning-cancel = Отмена
settings-serial-get_infos = Получить информацию
settings-serial-serial_select = Выбрать серийный порт
settings-serial-auto_dropdown_item = Авто
## OSC router settings
settings-osc-router = OSC роутер
# This cares about multilines
settings-osc-router-description =
Пересылать OSC-сообщения из другой программы.
Полезно для использования другой программы OSC, например, с VRChat.
settings-osc-router-enable = Включить
settings-osc-router-enable-description = Включить/отключить переадресацию сообщений.
settings-osc-router-enable-label = Включить
settings-osc-router-network = Порты сети
# This cares about multilines
settings-osc-router-network-description =
Установите порты для прослушивания и отправки данных.
Они могут быть такими же, как и другие порты, используемые на сервере SlimeVR.
settings-osc-router-network-port_in =
.label = Порт Вход
.placeholder = Порт Вход (default: 9002)
settings-osc-router-network-port_out =
.label = Порт выход
.placeholder = Порт выход (default: 9000)
settings-osc-router-network-address = Адрес сети
settings-osc-router-network-address-description = Задайте адрес для отправки данных.
settings-osc-router-network-address-placeholder = IPV4 адрес
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Трекеры
# This cares about multilines
settings-osc-vrchat-description =
Измените настройки, специфичные для VRChat, чтобы получать данные HMD и отправлять
данные трекеров для FBT (работает с Quest).
settings-osc-vrchat-enable = Включить
settings-osc-vrchat-enable-description = Переключайте отправку и получение данных.
settings-osc-vrchat-enable-label = Включить
settings-osc-vrchat-network = Порты сети
settings-osc-vrchat-network-description = Установите порты для прослушивания и отправки данных в VRChat.
settings-osc-vrchat-network-port_in =
.label = Порт вход
.placeholder = Порт вход (default: 9001)
settings-osc-vrchat-network-port_out =
.label = Порт выход
.placeholder = Порт выход (default: 9000)
settings-osc-vrchat-network-address = Адрес сети
settings-osc-vrchat-network-address-description = Выберите, на какой адрес отправлять данные в VRChat (проверьте настройки Wi-Fi на вашем устройстве).
settings-osc-vrchat-network-address-placeholder = VRChat ip адрес
settings-osc-vrchat-network-trackers = Трекеры
settings-osc-vrchat-network-trackers-description = Переключите отправку определенных трекеров через OSC.
settings-osc-vrchat-network-trackers-chest = Грудь
settings-osc-vrchat-network-trackers-waist = Талия
settings-osc-vrchat-network-trackers-knees = Колени
settings-osc-vrchat-network-trackers-feet = Ступни
settings-osc-vrchat-network-trackers-elbows = Локти
## Setup/onboarding menu
onboarding-skip = Пропустить установку
onboarding-continue = Продолжить
onboarding-wip = В разработке
## Wi-Fi setup
onboarding-wifi_creds-back = Вернуться к введению
onboarding-wifi_creds = Вставьте данные Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Трекеры будут использовать эти учетные данные для беспроводного подключения.
Пожалуйста, используйте данные Wi_Fi, к которому вы в данный момент подключены.
onboarding-wifi_creds-skip = Пропустить настройки Wi-Fi
onboarding-wifi_creds-submit = Отправить!
onboarding-wifi_creds-ssid =
.label = Имя Wi-Fi
.placeholder = Введите имя Wi-Fi
onboarding-wifi_creds-password =
.label = Пароль
.placeholder = Введите пароль Wi-Fi
## Mounting setup
onboarding-reset_tutorial-back = Вернуться к калибровке крепления
onboarding-reset_tutorial = Сбросить туториал
onboarding-reset_tutorial-description = Эта функция не завершена, просто нажмите продолжить
## Setup start
onboarding-home = Добро пожаловать в SlimeVR!
# This cares about multilines and it's centered!!
onboarding-home-description =
Обеспечение полного отслеживания тела
для всех
onboarding-home-start = Давайте все настроим!
## Enter VR part of setup
onboarding-enter_vr-back = Вернуться к привязке трекеров
onboarding-enter_vr-title = Время зайти в VR!
onboarding-enter_vr-description = Наденьте все ваши трекеры и зайдите в VR!
onboarding-enter_vr-ready = Я готов
## Setup done
onboarding-done-title = Вы готовы!
onboarding-done-description = Наслаждайтесь игре!
onboarding-done-close = Закрыть гид
## Tracker connection setup
onboarding-connect_tracker-back = Вернуться к учетным данным Wi-Fi
onboarding-connect_tracker-title = Подключить трекеры
onboarding-connect_tracker-description-p0 = Теперь самое интересное - подключение всех трекеров!
onboarding-connect_tracker-description-p1 = Просто подключите все, что еще не подключены, через USB-порт.
onboarding-connect_tracker-issue-serial = У меня проблемы с подключением!
onboarding-connect_tracker-usb = USB Трекер
onboarding-connect_tracker-connection_status-none = Поиск трекеров
onboarding-connect_tracker-connection_status-serial_init = Подключение к устройству
onboarding-connect_tracker-connection_status-provisioning = Отправка данных Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Отправить данные Wi_Fi
onboarding-connect_tracker-connection_status-looking_for_server = Поиск сервера
onboarding-connect_tracker-connection_status-connection_error = Не удается подключиться к Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Не удалось найти сервер
onboarding-connect_tracker-connection_status-done = Подключен к серверу
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Нет подключенных трекеров
[one] { $amount } подключенный трекер
[many] { $amount } подключённых трекеров
[few] { $amount } подключённых трекеров
*[other] { $amount } подключённых трекеров
}
onboarding-connect_tracker-next = Я подключил все трекеры!
## Tracker assignment setup
onboarding-assign_trackers-back = Вернуться к вводу данных Wi-Fi
onboarding-assign_trackers-title = Привязать трекеры
onboarding-assign_trackers-description = Давайте выберем, расположение ваших трекеров. Нажмите на место, где вы хотите разместить трекер
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } из { $trackers ->
[one] 1 трекер
[few] { $amount } трекера
[many] { $amount } трекеров
*[other] { $amount } трекеров
} привязано
onboarding-assign_trackers-advanced = Показать дополнительные места привязки
onboarding-assign_trackers-next = Я привязал все трекеры
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Назначена левая ступня, также вам нужно назначить левую голень и левое бедро, и либо грудь, либо талию!
[1] Назначена левая ступня, но вам также нужно назначить левое бедро и грудь, а также либо таз, либо талию!
[2] Назначена левая ступня, но вам также нужно назначить левую голень и грудь, а также либо таз, либо талию!
[3] Назначена левая ступня, но вам нужно, назначить грудь, таз или талия также должны быть назначены!
[4] Назначена левая ступня, но вам нужно, назначить левую голень и левое бедро!
[5] Назначена левая ступня, но вам нужно, назначить левое бедро!
[6] Назначена левая ступня, но вам нужно, назначить левую голень!
*[unknown] Назначена левая ступня, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Назначена правая ступня, также вам нужно назначить правую голень и правое бедро, и либо грудь, либо талию!
[1] Назначена правая ступня, но вам также нужно назначить правое бедро и грудь, а также либо таз, либо талию!
[2] Назначена правая ступня, но вам также нужно назначить правую голень и грудь, а также либо таз, либо талию!
[3] Назначена правая ступня, но вам нужно, назначить грудь, таз или талия также должны быть назначены!
[4] Назначена правая ступня, но вам нужно, назначить правую голень и правое бедро!
[5] Назначена правая ступня, но вам нужно, назначить правое бедро!
[6] Назначена правая ступня, но вам нужно, назначить правую голень!
*[unknown] Назначена правая ступня, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Назначено левое бедро, вам также нужно назначить грудь, таз или талию!
*[unknown] Назначено левое бедро, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Назначено правое бедро, вам также нужно назначить грудь, таз или талию!
*[unknown] Назначено правое бедро, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Таз назначен, но вам нужно, чтобы грудь также была назначена!
*[unknown] Таз назначен, но вам нужно, чтобы неизвестная неназначенная часть тела также была назначена!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Талия назначена, но вам нужно, чтобы грудь также была назначена!
*[unknown] Талия назначена, но вам нужно, чтобы неизвестная неназначенная часть тела также была назначена!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Вернуться чтобы войти в VR
onboarding-manual_mounting = Ручная привязка
onboarding-manual_mounting-description = Нажмите на каждый трекер и выберите, каким способом они будут привязаны
onboarding-manual_mounting-auto_mounting = Автоматическая привязка
onboarding-manual_mounting-next = Следующий шаг
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Вернуться чтобы войти в VR
onboarding-automatic_mounting-title = Калибровка привязки
onboarding-automatic_mounting-description = Чтобы трекеры SlimeVR работали, нам необходимо назначить поворот крепления для ваших трекеров, чтобы выровнять их с вашим физическим креплением трекера.
onboarding-automatic_mounting-manual_mounting = Установка вручную
onboarding-automatic_mounting-next = Следующий шаг
onboarding-automatic_mounting-prev_step = Предыдущий щаг
onboarding-automatic_mounting-done-title = Привязка поворотов калибрована.
onboarding-automatic_mounting-done-description = Калибровка вашей привязки завершена!
onboarding-automatic_mounting-done-restart = Вернуться к началу
onboarding-automatic_mounting-mounting_reset-title = Сброс крепления
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Присядьте в позу "лыжника", согнув ноги, наклонив верхнюю часть тела вперед и согнув руки.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Нажмите кнопку "Сброс крепления" и подождите 3 секунды, прежде чем установочные повороты трекеров будут сброшены.
onboarding-automatic_mounting-preparation-title = Подготовка
onboarding-automatic_mounting-preparation-step-0 = 1. Встаньте прямо, руки по бокам.
onboarding-automatic_mounting-preparation-step-1 = 2. Нажмите кнопку "Сброс" и подождите 3 секунды, прежде чем трекеры сбросятся.
onboarding-automatic_mounting-put_trackers_on-title = Наденьте ваши трекеры
onboarding-automatic_mounting-put_trackers_on-description = Чтобы откалибровать повороты крепления, мы будем использовать трекеры, которые вы только что назначили. Включите все свои трекеры, вы можете увидеть, какие из них какие на рисунке справа.
onboarding-automatic_mounting-put_trackers_on-next = Я включил и надел все свои трекеры
## Tracker manual proportions setup
onboarding-manual_proportions-back = Вернутся к началу обучения
onboarding-manual_proportions-title = Ручные пропорции тела
onboarding-manual_proportions-precision = Регулировка предсказывания
onboarding-manual_proportions-auto = Автоматическая калибровка
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Вернутся к началу обучения
onboarding-automatic_proportions-title = Измерьте свое тело
onboarding-automatic_proportions-description = Чтобы трекеры SlimeVR работали, нам нужно знать длину ваших костей. Эта короткая калибровка измерит его для вас.
onboarding-automatic_proportions-manual = Ручная калибровка
onboarding-automatic_proportions-prev_step = Предыдущий шаг
onboarding-automatic_proportions-put_trackers_on-title = Наденьте ваши трекеры
onboarding-automatic_proportions-put_trackers_on-description = Чтобы откалибровать ваши пропорции, мы собираемся использовать трекеры, которые вы только что назначили. Включите все свои трекеры, вы можете увидеть, какие из них какие на рисунке справа.
onboarding-automatic_proportions-put_trackers_on-next = Я надел все свои трекеры
onboarding-automatic_proportions-preparation-title = Подготовка
onboarding-automatic_proportions-preparation-description = Поставьте стул прямо позади себя в вашем игровом пространстве. Будьте готовы сесть во время автоматической настройки костей.
onboarding-automatic_proportions-preparation-next = Я перед стулом
onboarding-automatic_proportions-start_recording-title = Будьте готовы к движению
onboarding-automatic_proportions-start_recording-description = Теперь мы собираемся записать некоторые конкретные позы и движения. Они будут запрошены на следующем экране. Будьте готовы начать, когда кнопка будет нажата!
onboarding-automatic_proportions-start_recording-next = Начать запись
onboarding-automatic_proportions-recording-title = Запись
onboarding-automatic_proportions-recording-description-p0 = Запись в процессе...
onboarding-automatic_proportions-recording-description-p1 = Сделайте эти движения:
onboarding-automatic_proportions-recording-steps-0 = Согните колени несколько раз.
onboarding-automatic_proportions-recording-steps-1 = Сядьте на стул, затем встаньте.
onboarding-automatic_proportions-recording-steps-2 = Поверните верхнюю часть туловища влево, затем наклонитесь вправо.
onboarding-automatic_proportions-recording-steps-3 = Поверните верхнюю часть туловища вправо, затем наклонитесь влево.
onboarding-automatic_proportions-recording-steps-4 = Покачайтесь, пока таймер не закончится.
onboarding-automatic_proportions-recording-processing = Обработка результата...
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] { $time } секунда
[few] { $time } секунды
[many] { $time } секунд
*[other] { $time } секунд
}
onboarding-automatic_proportions-verify_results-title = Подтвердить результаты
onboarding-automatic_proportions-verify_results-description = Проверьте результаты ниже, правильно ли они выглядят?
onboarding-automatic_proportions-verify_results-results = Запись результатов
onboarding-automatic_proportions-verify_results-processing = Обработка результатов
onboarding-automatic_proportions-verify_results-redo = Перезаписать
onboarding-automatic_proportions-verify_results-confirm = Они правильные
onboarding-automatic_proportions-done-title = Тело измерено и сохранено.
onboarding-automatic_proportions-done-description = Калибровка пропорций вашего тела завершена!
## Home
home-no_trackers = Трекеры не обнаружены и не привязаны

View File

@@ -0,0 +1,212 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Sunucuya bağlanılıyor
websocket-connection_lost = Sunucuyla bağlantı kesildi. Tekrar bağlanılmaya çalışılıyor...
## Tips
tips-find_tracker = Hangi takipçi hangisi emin değil misin? Takipçilerden birini hareket ettirerek belirleyebilirsin.
tips-do_not_move_heels = Kayıt sırasında ayaklarınızın hareket etmediğinden emin olun!
## Body parts
body_part-NONE = Atanmamış
body_part-HEAD = Kafa
body_part-NECK = Boyun
body_part-RIGHT_SHOULDER = Sağ omuz
body_part-RIGHT_UPPER_ARM = Sağ üst kol
body_part-RIGHT_LOWER_ARM = Sağ alt kol
body_part-RIGHT_HAND = Sağ el
body_part-RIGHT_UPPER_LEG = Sağ uyluk
body_part-RIGHT_LOWER_LEG = Sağ ayak bileği
body_part-RIGHT_FOOT = Sağ ayak
body_part-RIGHT_CONTROLLER = Sağ oyun kolu
body_part-CHEST = Göğüs
body_part-WAIST = Bel
body_part-HIP = Kalça
body_part-LEFT_SHOULDER = Sol omuz
body_part-LEFT_UPPER_ARM = Sol üst kol
body_part-LEFT_LOWER_ARM = Sol alt kol
body_part-LEFT_HAND = Sol el
body_part-LEFT_UPPER_LEG = Sol uyluk
body_part-LEFT_LOWER_LEG = Sol ayak bileği
body_part-LEFT_FOOT = Sol ayak
body_part-LEFT_CONTROLLER = Sol oyun kolu
## Proportions
skeleton_bone-NONE = Yok
skeleton_bone-HEAD = Kafa hizası
skeleton_bone-NECK = Boyun Uzunluğu
skeleton_bone-CHEST = Göğüs Uzunluğu
skeleton_bone-CHEST_OFFSET = Göğüs hizası
skeleton_bone-WAIST = Bel Uzunluğu
skeleton_bone-HIP = Kalça Uzunluğu
skeleton_bone-HIP_OFFSET = Kalça hizası
skeleton_bone-HIPS_WIDTH = Kalça Genişliği
skeleton_bone-UPPER_LEG = Üst Bacak Uzunluğu
skeleton_bone-LOWER_LEG = Alt Bacak Uzunluğu
skeleton_bone-FOOT_LENGTH = Ayak Uzunluğu
skeleton_bone-FOOT_SHIFT = Ayak hizası
skeleton_bone-SKELETON_OFFSET = İskelet hizası
skeleton_bone-SHOULDERS_DISTANCE = Omuz Mesafesi
skeleton_bone-SHOULDERS_WIDTH = Omuz Genişliği
skeleton_bone-UPPER_ARM = Üst Kol Uzunluğu
skeleton_bone-LOWER_ARM = Alt Kol Uzunluğu
skeleton_bone-CONTROLLER_Y = Oyun kolu uzaklığı Y
skeleton_bone-CONTROLLER_Z = Oyun kolu uzaklığı Z
skeleton_bone-ELBOW_OFFSET = Dirsek hizası
## Tracker reset buttons
reset-reset_all = Tüm oranları sıfırla
reset-full = Sıfırlama
reset-quick = Hızlı Sıfırlama
## Serial detection stuff
serial_detection-new_device-p1 = Wi-Fi bilgilerinizi girin!
serial_detection-new_device-p2 = Lütfen onunla ne yapmak istediğinizi seçin
serial_detection-open_wifi = Wi-Fi'ye bağlan
serial_detection-submit = Gönder!
serial_detection-close = Kapat
## Navigation bar
navbar-settings = Ayarlar
## Bounding volume hierarchy recording
## Widget: Overlay settings
## Widget: Drift compensation
## Widget: Developer settings
## Widget: IMU Visualizer
## Tracker status
## Tracker status columns
## Tracker rotation
tracker-rotation-front = Ön
tracker-rotation-left = Sol
tracker-rotation-right = Sağ
tracker-rotation-back = Arka
## Tracker information
tracker-infos-manufacturer = Üretici
tracker-infos-display_name = Görünen Ad
tracker-infos-custom_name = Özel Ad
## Tracker settings
tracker-settings-assignment_section-description = Tracker'in vücudun hangi kısmına atandığı.
## Tracker part card info
## Body assignment menu
## Tracker assignment menu
## Mounting menu
## Sidebar settings
## SteamVR settings
## Tracker mechanics
## FK/Tracking settings
## Gesture control settings (tracker tapping)
## Interface settings
## Serial settings
settings-serial-reboot = Yeniden Başlat
settings-serial-factory_reset-warning-ok = Ben ne yaptığımı biliyorum
settings-serial-factory_reset-warning-cancel = İptal et
settings-serial-auto_dropdown_item = Otomatik
## OSC router settings
settings-osc-router-enable = Etkinleştir
settings-osc-router-enable-label = Etkinleştir
settings-osc-router-network-address = Ağ adresi
## OSC VRChat settings
settings-osc-vrchat-enable = Etkinleştir
settings-osc-vrchat-enable-label = Etkinleştir
settings-osc-vrchat-network-address = Ağ adresi
## Setup/onboarding menu
## Wi-Fi setup
## Mounting setup
## Setup start
## Enter VR part of setup
## Setup done
## Tracker connection setup
## Tracker assignment setup
## Tracker manual mounting setup
## Tracker automatic mounting setup
## Tracker manual proportions setup
## Tracker automatic proportions setup
## Home

View File

@@ -0,0 +1,587 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Đang kết nối với máy chủ
websocket-connection_lost = Kết nối với máy chủ đã mất. Đang kết nối lại...
## Tips
tips-find_tracker = Không rõ tracker nào đang được chọn? Di chuyển nó và trong menu sẽ sáng lên tracker đó
tips-do_not_move_heels = Không di chuyển gót chân trong khi đo
## Body parts
body_part-NONE = Chưa được gán
body_part-HEAD = Đầu
body_part-NECK = Cổ
body_part-RIGHT_SHOULDER = Vai phải
body_part-RIGHT_UPPER_ARM = Bắp tay phải
body_part-RIGHT_LOWER_ARM = Cẳng tay phải
body_part-RIGHT_HAND = Tay phải
body_part-RIGHT_UPPER_LEG = Bắp chân phải
body_part-RIGHT_LOWER_LEG = Cẳng chân phải
body_part-RIGHT_FOOT = Bàn chân phải
body_part-RIGHT_CONTROLLER = Tay cầm bên phải
body_part-CHEST = Ngực
body_part-WAIST = Eo
body_part-HIP = Hông
body_part-LEFT_SHOULDER = Vai trái
body_part-LEFT_UPPER_ARM = Bắp tay trái
body_part-LEFT_LOWER_ARM = Cẳng tay trái
body_part-LEFT_HAND = Tay trái
body_part-LEFT_UPPER_LEG = Bắp chân trái
body_part-LEFT_LOWER_LEG = Cẳng chân trái
body_part-LEFT_FOOT = Bàn chân trái
body_part-LEFT_CONTROLLER = Tay cầm bên trái
## Proportions
skeleton_bone-NONE = Chưa được gán
skeleton_bone-HEAD = Sai số đầu
skeleton_bone-NECK = Chiều dài cổ
skeleton_bone-CHEST = Khoảng cách ngực
skeleton_bone-CHEST_OFFSET = Sai số ngực
skeleton_bone-WAIST = Khoảng cách eo
skeleton_bone-HIP = Khoảng cách hông
skeleton_bone-HIP_OFFSET = Sai số hông
skeleton_bone-HIPS_WIDTH = Chiều rộng hông
skeleton_bone-UPPER_LEG = Chiều dài bắp chân
skeleton_bone-LOWER_LEG = Chiều dài cẳng chân
skeleton_bone-FOOT_LENGTH = Chiều dài bàn chân
skeleton_bone-FOOT_SHIFT = Sai số bàn chân
skeleton_bone-SKELETON_OFFSET = Sai số thân
skeleton_bone-SHOULDERS_DISTANCE = Khoảng cách vai
skeleton_bone-SHOULDERS_WIDTH = Chiều rộng vai
skeleton_bone-UPPER_ARM = Chiều dài bắp tay
skeleton_bone-LOWER_ARM = Chiều dài cẳng tay
skeleton_bone-CONTROLLER_Y = Khoảng cách tay cầm theo trục Y
skeleton_bone-CONTROLLER_Z = Khoảng cách tay cầm theo trục Z
skeleton_bone-ELBOW_OFFSET = Sai số khuỷu tay
## Tracker reset buttons
reset-reset_all = Đặt lại tất cả bộ phận
reset-full = Đặt lại
reset-mounting = Đặt lại hướng gắn tracker
reset-quick = Đặt lại nhanh
## Serial detection stuff
serial_detection-new_device-p0 = Tìm thấy thiết bị mới!
serial_detection-new_device-p1 = Nhập thông tin Wi-Fi
serial_detection-new_device-p2 = Chọn hành động cần thực hiện
serial_detection-open_wifi = Kết nối đến Wi-Fi
serial_detection-open_serial = Mở cổng Serial
serial_detection-submit = Gửi
serial_detection-close = Đóng
## Navigation bar
navbar-home = Trang chủ
navbar-body_proportions = Tỉ lệ cơ thể
navbar-trackers_assign = Phân bố tracker
navbar-mounting = Cân chỉnh hướng gắn tracker
navbar-onboarding = Trình thiết lập
navbar-settings = Cài đặt
## Bounding volume hierarchy recording
bvh-start_recording = Ghi BVH
bvh-recording = Đang ghi...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Xem overlay trên SteamVR
widget-overlay-is_mirrored_label = Xem overlay trong gương
## Widget: Developer settings
widget-developer_mode = Chế độ nhà phát triển
widget-developer_mode-high_contrast = Chế độ tương phản cao
widget-developer_mode-precise_rotation = Hiển thị góc quay chính xác
widget-developer_mode-fast_data_feed = Tăng tốc độ gửi dữ liệu
widget-developer_mode-filter_slimes_and_hmd = Lọc dữ liệu tracker và kính
widget-developer_mode-sort_by_name = Sắp xếp theo tên
widget-developer_mode-raw_slime_rotation = Sử dụng giá trị góc quay thực cho tracker
widget-developer_mode-more_info = Thêm thông tin
## Widget: IMU Visualizer
widget-imu_visualizer = Góc quay
widget-imu_visualizer-rotation_raw = Gốc
widget-imu_visualizer-rotation_preview = Qua xử lí
## Tracker status
tracker-status-none = Không có trạng thái
tracker-status-busy = Bận
tracker-status-error = Lỗi
tracker-status-disconnected = Đã ngắt kết nối
tracker-status-occluded = Nghẽn
tracker-status-ok = Đã kết nối
## Tracker status columns
tracker-table-column-name = Tên
tracker-table-column-type = Loại
tracker-table-column-battery = Pin
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Nhiệt độ (°C)
tracker-table-column-linear-acceleration = Tốc độ X/Y/Z
tracker-table-column-rotation = Góc quay X/Y/Z
tracker-table-column-position = Tọa độ X/Y/Z
tracker-table-column-url = Đường dẫn
## Tracker rotation
tracker-rotation-front = Trước
tracker-rotation-left = Trái
tracker-rotation-right = Phải
tracker-rotation-back = Sau
## Tracker information
tracker-infos-manufacturer = Nhà sản xuất
tracker-infos-display_name = Tên hiển thị
tracker-infos-custom_name = Tên gọi
tracker-infos-url = Đường dẫn
## Tracker settings
tracker-settings-back = Quay lại danh sách tracker
tracker-settings-title = Cài đặt
tracker-settings-assignment_section = Vị trí
tracker-settings-assignment_section-description = Vị trí của tracker trên cơ thể
tracker-settings-assignment_section-edit = Thay đổi vị trí
tracker-settings-mounting_section = Vị trí đặt
tracker-settings-mounting_section-description = Tracker được đặt ở đâu?
tracker-settings-mounting_section-edit = Thay đổi chỗ đặt
tracker-settings-drift_compensation_section = Cho phép bù trừ sai số
tracker-settings-drift_compensation_section-description = Tracker này được phép bù trừ cho sai số của nó không?
tracker-settings-drift_compensation_section-edit = Cho phép bù trừ sai số
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Tên tracker
tracker-settings-name_section-description = Đặt cho nó một cái tên đẹp :3
tracker-settings-name_section-placeholder = Chân trái của JINODK
## Tracker part card info
tracker-part_card-no_name = Không tên
tracker-part_card-unassigned = Chưa gán vị trí
## Body assignment menu
body_assignment_menu = Bạn muốn gán tracker này cho bộ phận nào?
body_assignment_menu-description = Chọn vị trí bạn muốn gán tracker, ngoài ra bạn cũng có thể quản lí vị trí tất cả các tracker cùng một lúc
body_assignment_menu-show_advanced_locations = Xem thêm vị trí đặt
body_assignment_menu-manage_trackers = Quản lí tất cả tracker
body_assignment_menu-unassign_tracker = Bỏ gán tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Tracker nào cho vị trí
tracker_selection_menu-NONE = Bạn muốn bỏ gán tracker nào?
tracker_selection_menu-HEAD = { -tracker_selection-part } đầu?
tracker_selection_menu-NECK = { -tracker_selection-part } cổ?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } vai phải?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } bắp tay phải?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } cẳng tay phải?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } tay phải?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } bắp chân phải?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } cẳng chân phải?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } bàn chân phải?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } tay cầm bên phải?
tracker_selection_menu-CHEST = { -tracker_selection-part } ngực?
tracker_selection_menu-WAIST = { -tracker_selection-part } eo?
tracker_selection_menu-HIP = { -tracker_selection-part } hông?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } vai trái?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } bắp tay trái?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } cẳng tay trái?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } tay trái?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } bắp chân trái?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } cẳng chân trái?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } bàn chân trái?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } tay cầm bên trái?
tracker_selection_menu-unassigned = Chưa gắn vị trí
tracker_selection_menu-assigned = Đã gán vị trí
tracker_selection_menu-dont_assign = Không gắn
## Mounting menu
mounting_selection_menu = Bạn muốn gắn tracker này cho bộ phận nào?
mounting_selection_menu-close = Đóng
## Sidebar settings
settings-sidebar-title = Cài đặt
settings-sidebar-general = Cài đặt chung
settings-sidebar-tracker_mechanics = Cơ chế tracker
settings-sidebar-fk_settings = Cài đặt tracker
settings-sidebar-gesture_control = Cử chỉ điều khiển
settings-sidebar-interface = Giao diện
settings-sidebar-osc_router = Router OSC
settings-sidebar-utils = Công cụ
settings-sidebar-serial = Cổng Serial
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Tracker SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Bật hoặc tắt tracker SteamVR.
Hữu dụng nếu game chỉ hỗ trợ số lượng tracker giới hạn.
settings-general-steamvr-trackers-waist = Eo
settings-general-steamvr-trackers-chest = Ngực
settings-general-steamvr-trackers-feet = Bàn chân
settings-general-steamvr-trackers-knees = Đầu gối
settings-general-steamvr-trackers-elbows = Khuỷu tay
settings-general-steamvr-trackers-hands = Tay
## Tracker mechanics
settings-general-tracker_mechanics = Cơ chế tracker
settings-general-tracker_mechanics-filtering = Lọc nhiễu
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Chọn kiểu lọc nhiễu cho tracker
"Dự đoán" sẽ dự đoán chuyển động trong khi "Khử nhiễu" sẽ làm chuyển động mềm mại hơn
settings-general-tracker_mechanics-filtering-type = Kiểu lọc
settings-general-tracker_mechanics-filtering-type-none = Không lọc
settings-general-tracker_mechanics-filtering-type-none-description = Sử dụng giá trị thực, không áp dụng bất kì bộ lọc nào
settings-general-tracker_mechanics-filtering-type-smoothing = Khử nhiễu
settings-general-tracker_mechanics-filtering-type-smoothing-description = Làm chuyển động mềm mại hơn nhưng có thể tăng độ trễ
settings-general-tracker_mechanics-filtering-type-prediction = Dự đoán
settings-general-tracker_mechanics-filtering-type-prediction-description = Giảm độ trễ và làm chuyển động chân thật hơn, có thể khiến chuyển động không mượt mà
settings-general-tracker_mechanics-filtering-amount = Mức độ lọc
settings-general-tracker_mechanics-drift_compensation = Bù trừ sai số
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Bù trừ sai lệch trục ngang của cảm biến bằng cách thêm một sai lệch chống lại nó
Thay đổi mức độ bù trừ và số lần đặt lại được áp dụng bù trừ
settings-general-tracker_mechanics-drift_compensation-enabled-label = Bù trừ sai số
settings-general-tracker_mechanics-drift_compensation-amount-label = Mức độ bù trừ
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Số lần đặt lại được áp dụng bù trừ
## FK/Tracking settings
settings-general-fk_settings = Cài đặt nâng cao
settings-general-fk_settings-leg_tweak = Chân
settings-general-fk_settings-leg_tweak-description = "Ngăn xuyên sàn" có thể giảm thiểu khả năng chân xuống thấp hơn sàn sau khi đặt lại vị trí tracker, có thể gây vấn đề nếu đang đứng bằng đầu gối. "Sửa trượt" giúp giảm thiểu tình trạng chân có chuyển động nhỏ so với sàn khi đứng yên, có thể làm giảm độ chính xác với một số chuyển động cụ thể
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Ngăn xuyên sàn
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Sửa trượt
settings-general-fk_settings-leg_tweak-skating_correction-amount = Mức độ sửa
settings-general-fk_settings-arm_fk = Track cánh tay
settings-general-fk_settings-arm_fk-description = Thay đổi cách cánh tay được track
settings-general-fk_settings-arm_fk-force_arms = Lấy dữ liệu cánh tay từ kính
settings-general-fk_settings-skeleton_settings = Cài đặt khung cơ thể
settings-general-fk_settings-skeleton_settings-description = Bật hoặc tắt các cài đặt về khung cơ thể. Các lựa chọn này nên được giữ bật
settings-general-fk_settings-skeleton_settings-extended_spine = Xương sống kéo dài
settings-general-fk_settings-skeleton_settings-extended_pelvis = Xương chậu kéo dài
settings-general-fk_settings-skeleton_settings-extended_knees = Đầu gối kéo dài
settings-general-fk_settings-vive_emulation-title = Giả lập tracker Vive
settings-general-fk_settings-vive_emulation-description = Giả lập cách tracker của Vive gặp vấn đề với việc theo dõi eo, đây là 1 tính năng được làm cho vui và sẽ làm giảm độ chính xác
settings-general-fk_settings-vive_emulation-label = Giả lập tracker Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Cử chỉ điều khiển
settings-general-gesture_control-subtitle = Chạm để đặt lại
settings-general-gesture_control-description = Cho phép chạm vào tracker để đặt lại vị trí, chạm hai lần vào tracker cao nhất ở thân để đặt lại nhanh, chạm hai lần vào tracker cao nhất ở chân trái để đặt lại, chạm hai lần vào tracker cao nhất ở chân phải để đặt lại vị trí gắn tracker. Cử chỉ chỉ được tiếp nhận khi thời gian giữa hai lần chạm ngắn hơn 0.6 giây.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } lần
}
settings-general-gesture_control-quickResetEnabled = Chạm để đặt lại nhanh
settings-general-gesture_control-quickResetDelay = Thời gian delay trước khi đặt lại nhanh
settings-general-gesture_control-quickResetTaps = Số lần chạm cho đặt lại nhanh
settings-general-gesture_control-resetEnabled = Chạm để đặt lại
settings-general-gesture_control-resetDelay = Thời gian delay trước khi đặt lại
settings-general-gesture_control-resetTaps = Số lần chạm cho đặt lại
settings-general-gesture_control-mountingResetEnabled = Chạm để đặt lại hướng gắn tracker
settings-general-gesture_control-mountingResetDelay = Thời gian delay trước khi đặt lại hướng gắn tracker
settings-general-gesture_control-mountingResetTaps = Số lần chạm cho đặt lại hướng gắn tracker
## Interface settings
settings-general-interface = Giao diện
settings-general-interface-dev_mode = Chế độ nhà phát triển
settings-general-interface-dev_mode-description = Hữu dụng nếu cần thêm thông tin chi tiết của tracker hay can thiệp sâu hơn vào tracker
settings-general-interface-dev_mode-label = Chế độ nhà phát triển
settings-general-interface-serial_detection = Nhận dạng thiết bị Serial mới
settings-general-interface-serial_detection-description = Hiển thị pop-up mỗi lần một thiết bị Serial mới được kết nối qua USB (có thể là tracker), giúp cải thiện quá trình thiết lập tracker
settings-general-interface-serial_detection-label = Nhận dạng thiết bị Serial mới
settings-general-interface-lang = Thay đổi ngôn ngữ (Change language)
settings-general-interface-lang-description = Đổi ngôn ngữ hiển thị (Change the default language you want to use)
settings-general-interface-lang-placeholder = Chọn ngôn ngữ để sử dụng (Select the language to use)
## Serial settings
settings-serial = Cổng Serial
# This cares about multilines
settings-serial-description =
Đây là cổng giao tiếp Serial trực tiếp với tracker
Hữu dụng nếu cần kiểm tra tracker có hoạt động như mong muốn hay không
settings-serial-connection_lost = Kết nối đến Serial đã mất, đang kết nối lại...
settings-serial-reboot = Khởi động lại
settings-serial-factory_reset = Khôi phục cài đặt gốc
settings-serial-get_infos = Lấy thông tin
settings-serial-serial_select = Chọn cổng Serial
settings-serial-auto_dropdown_item = Tự động
## OSC router settings
settings-osc-router = Router OSC
# This cares about multilines
settings-osc-router-description =
Chuyển tiếp dữ liệu OSC từ phần mềm khác
Hữu dụng cho việc sử dụng phần mềm OSC khác với VRChat, ...
settings-osc-router-enable = Chuyển tiếp dữ liệu OSC
settings-osc-router-enable-description = Cho phép chuyển tiếp dữ liệu OSC
settings-osc-router-enable-label = Chuyển tiếp dữ liệu OSC
settings-osc-router-network = Cổng mạng
# This cares about multilines
settings-osc-router-network-description =
Đặt cổng nhận và gửi dữ liệu OSC
Có thể dùng chung cổng với server SlimeVR
settings-osc-router-network-port_in =
.label = Cổng vào
.placeholder = Cổng vào (Mặc định: 9002)
settings-osc-router-network-port_out =
.label = Cổng ra
.placeholder = Cổng ra (Mặc định: 9000)
settings-osc-router-network-address = Địa chỉ mạng
settings-osc-router-network-address-description = Địa chỉ mạng mà SlimeVR sẽ gửi dữ liệu OSC đến
settings-osc-router-network-address-placeholder = Địa chỉ IPv4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Thay đổi các cài đặt liên quan đến VRChat để nhận dữ liệu từ kính và
gửi dữ liệu tracker cho Full-body tracking (hoạt động với kính ở chế độ standalone)
settings-osc-vrchat-enable = Dữ liệu OSC
settings-osc-vrchat-enable-description = Cho phép nhận và gửi dữ liệu OSC
settings-osc-vrchat-enable-label = Giao tiếp dữ liệu OSC
settings-osc-vrchat-network = Cổng mạng
settings-osc-vrchat-network-description = Chọn cổng mạng để nhận và gửi dữ liệu OSC đến VRChat
settings-osc-vrchat-network-port_in =
.label = Cổng vào
.placeholder = Cổng vào (Mặc định: 9001)
settings-osc-vrchat-network-port_out =
.label = Cổng ra
.placeholder = Cổng ra (Mặc định: 9000)
settings-osc-vrchat-network-address = Địa chỉ mạng
settings-osc-vrchat-network-address-description = Địa chỉ mạng mà SlimeVR sẽ gửi dữ liệu OSC đến VRChat (có thể tìm thấy địa chỉ mạng trong menu cài đặt Wi-Fi)
settings-osc-vrchat-network-address-placeholder = Địa chỉ IP của thiết bị chơi VRChat
settings-osc-vrchat-network-trackers = Cấu hình Tracker
settings-osc-vrchat-network-trackers-description = Chọn các tracker mà SlimeVR sẽ gửi dữ liệu OSC đến VRChat
settings-osc-vrchat-network-trackers-chest = Ngực
settings-osc-vrchat-network-trackers-waist = Eo
settings-osc-vrchat-network-trackers-knees = Đầu gối
settings-osc-vrchat-network-trackers-feet = Bàn chân
settings-osc-vrchat-network-trackers-elbows = Khuỷu tay
## Setup/onboarding menu
onboarding-skip = Bỏ qua cài đặt
onboarding-continue = Tiếp tục
onboarding-wip = Chưa hoàn thiện
## Wi-Fi setup
onboarding-wifi_creds-back = Quay lại giới thiệu
onboarding-wifi_creds = Nhập thông tin Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Tracker sẽ sử dụng thông tin này để kết nối đến mạng
Hãy nhập thông tin mạng Wi-Fi bạn đang dùng
onboarding-wifi_creds-skip = Bỏ qua cài đặt Wi-Fi
onboarding-wifi_creds-submit = Gửi
onboarding-wifi_creds-ssid =
.label = Tên hiển thị
.placeholder = Nhập tên Wi-Fi
onboarding-wifi_creds-password =
.label = Mật khẩu
.placeholder = và mật khẩu
## Mounting setup
onboarding-reset_tutorial-back = Quay lại cân chỉnh vị trí gắn tracker
onboarding-reset_tutorial = Làm lại
onboarding-reset_tutorial-description = Tính năng này chưa hoàn thiện, vui lòng bấm tiếp tục và quay lại sau
## Setup start
onboarding-home = Chào mừng bạn đến với SlimeVR!
# This cares about multilines and it's centered!!
onboarding-home-description =
Mang FBT đến
với mọi người
onboarding-home-start = Bắt đầu thiết lập!
## Enter VR part of setup
onboarding-enter_vr-back = Quay lại gán tracker
onboarding-enter_vr-title = Chuẩn bị cho việc cân chỉnh trong VR
onboarding-enter_vr-description = Đeo tất cả tracker và vào VR trước khi tiếp tục
onboarding-enter_vr-ready = Sẵn sàng
## Setup done
onboarding-done-title = Hoàn thành!
onboarding-done-description = Bạn đã hoàn tất quá trình thiết lập cơ bản
onboarding-done-close = Đóng hướng dẫn
## Tracker connection setup
onboarding-connect_tracker-back = Quay lại cài đặt Wi-Fi
onboarding-connect_tracker-title = Kết nối tracker
onboarding-connect_tracker-description-p0 = Cập nhật thông tin Wi-Fi cho tracker
onboarding-connect_tracker-description-p1 = Hãy kết nối các tracker chưa thiết lập qua cổng USB
onboarding-connect_tracker-issue-serial = Có vấn đề với việc kết nối? Kiểm tra thông tin qua cổng Serial
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-connecting = Đang gửi thông tin Wi-Fi
onboarding-connect_tracker-connection_status-connected = Đã kết nối đến Wi-Fi
onboarding-connect_tracker-connection_status-error = Không thể kết nối đến Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Đang tìm tracker
onboarding-connect_tracker-connection_status-handshake = Đã kết nối đến máy chủ SlimeVR
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Không có tracker
[one] 1 tracker
*[other] { $amount } tracker
} đã giao
onboarding-connect_tracker-next = Đã kết nối với tất cả tracker
## Tracker assignment setup
onboarding-assign_trackers-back = Quay lại cài đặt Wi-Fi
onboarding-assign_trackers-title = Gán tracker
onboarding-assign_trackers-description = Chọn vị trí bạn muốn gán tracker bằng cách nhấn vào tên bộ phận muốn gán và chọn tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } trên { $trackers ->
[one] 1 tracker
*[other] { $trackers } tracker
} đã giao
onboarding-assign_trackers-advanced = Xem thêm vị trí đặt
onboarding-assign_trackers-next = Hoàn thành
## Tracker manual mounting setup
onboarding-manual_mounting-back = Quay lại chuẩn bị cân chỉnh
onboarding-manual_mounting = Cân chỉnh thủ công
onboarding-manual_mounting-description = Chọn từng tracker và chọn hướng nó được gắn
onboarding-manual_mounting-auto_mounting = Cân chỉnh tự động
onboarding-manual_mounting-next = Tiếp tục
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Quay lại chuẩn bị cân chỉnh
onboarding-automatic_mounting-title = Cân chỉnh hướng gắn
onboarding-automatic_mounting-description = SlimeVR cần biết hướng gắn thực của tracker để hoạt động đúng, làm theo hướng dẫn để cân chỉnh hướng gắn tự động
onboarding-automatic_mounting-manual_mounting = Cân chỉnh thủ công
onboarding-automatic_mounting-next = Tiếp tục
onboarding-automatic_mounting-prev_step = Quay lại
onboarding-automatic_mounting-done-title = Đã cân chỉnh hướng gắn
onboarding-automatic_mounting-done-description = Cài đặt vị trí đã hoàn thành!
onboarding-automatic_mounting-done-restart = Thử lại
onboarding-automatic_mounting-mounting_reset-title = Đặt lại hướng gắn
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Đứng khom người như tư thế trượt tuyết với đầu gối khom lại, thân trên hướng tới trước và hai tay co lại để giữ thăng bằng như hình bên
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Nhấn nút đặt lại và chờ 3 giây trước khi hệ thống cân chỉnh hướng gắn tracker
onboarding-automatic_mounting-preparation-title = Chuẩn bị tư thế
onboarding-automatic_mounting-preparation-step-0 = 1. Đứng thẳng với hai tay duỗi thẳng
onboarding-automatic_mounting-preparation-step-1 = 2. Nhấn nút đặt lại và chờ 3 giây trước khi tracker được đặt lại.
onboarding-automatic_mounting-put_trackers_on-title = Đeo tracker lên người
onboarding-automatic_mounting-put_trackers_on-description = Để cân chỉnh hướng gắn của tracker, SlimeVR sẽ tiến hành đo góc nghiêng của tracker khi đang đeo để cân chỉnh hướng gắn, hãy đeo tracker theo đúng vị trí đã thiết lập
onboarding-automatic_mounting-put_trackers_on-next = Tiếp tục
## Tracker manual proportions setup
onboarding-manual_proportions-back = Quay lại cân chỉnh hướng gắn
onboarding-manual_proportions-title = Đo kích thước cơ thể thủ công
onboarding-manual_proportions-precision = Cân chỉnh cụ thể (giảm hệ số chỉnh)
onboarding-manual_proportions-auto = Đo kích thước cơ thể tự động
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Quay lại cân chỉnh hướng gắn
onboarding-automatic_proportions-title = Đo kích thước cơ thể
onboarding-automatic_proportions-description = Để tracker có vị trí chính xác, SlimeVR cần biết các chỉ số kích thước cơ thể, làm theo hướng dẫn để đo kích thước cơ thể tự động
onboarding-automatic_proportions-manual = Đo kích thước cơ thể thủ công
onboarding-automatic_proportions-prev_step = Quay lại
onboarding-automatic_proportions-put_trackers_on-title = Đeo tracker lên người
onboarding-automatic_proportions-put_trackers_on-description = Để đo kích thước cơ thể, SlimeVR sẽ sử dụng một thuật toán để dự đoán kích thước của các bộ phận, hãy đeo tracker theo đúng vị trí đã thiết lập như hình bên
onboarding-automatic_proportions-put_trackers_on-next = Tiếp tục
onboarding-automatic_proportions-preparation-title = Chuẩn bị
onboarding-automatic_proportions-preparation-description = Chuẩn bị một chiếc ghế trong khu vực chơi vì quá trình đo sẽ yêu cầu đến việc ngồi xuống
onboarding-automatic_proportions-preparation-next = Đã có ghế ngồi sau lưng
onboarding-automatic_proportions-start_recording-title = Chuẩn bị đo
onboarding-automatic_proportions-start_recording-description = Phần mềm sẽ đo một số chuyển động, cử chỉ cụ thể, hãy chuẩn bị cho việc di chuyển theo yêu cầu trong phần tiếp theo
onboarding-automatic_proportions-start_recording-next = Bắt đầu
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Đang ghi...
onboarding-automatic_proportions-recording-description-p1 = Thực hiện các thao tác sau:
onboarding-automatic_proportions-recording-steps-0 = Uốn duỗi chân vài lần (squat)
onboarding-automatic_proportions-recording-steps-1 = Ngồi lên ghế rồi đứng lên
onboarding-automatic_proportions-recording-steps-2 = Vặn thân sang trái và uốn người sang phải
onboarding-automatic_proportions-recording-steps-3 = Vặn thân sang phải và uốn người sang trái
onboarding-automatic_proportions-recording-steps-4 = Làm thêm các chuyển động khác đến khi hết thời gian
onboarding-automatic_proportions-recording-processing = Đang xử lí kết quả...
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second
*[other] còn lại { $time } giây
}
onboarding-automatic_proportions-verify_results-title = Kiểm tra kết quả
onboarding-automatic_proportions-verify_results-description = So sánh kết quả với chỉ số thực, Lưu ý: kết quả chỉ mang tính tương đối
onboarding-automatic_proportions-verify_results-results = Kết quả đo
onboarding-automatic_proportions-verify_results-processing = Đang xử lí kết quả...
onboarding-automatic_proportions-verify_results-redo = Thử lại
onboarding-automatic_proportions-verify_results-confirm = Kết quả tương đối chính xác
onboarding-automatic_proportions-done-title = Đã lưu chỉ số đo
onboarding-automatic_proportions-done-description = Quá trình đo đã hoàn tất
## Home
home-no_trackers = Không tìm thấy tracker / Tracker chưa được gán

View File

@@ -0,0 +1,666 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = 正在连接到服务器
websocket-connection_lost = 与服务器的连接丢失,正在尝试重新连接...
## Tips
tips-find_tracker = 不确定哪个追踪器是哪个?在现实中摇动一个追踪器,对应的那个将在屏幕上高亮显示。
tips-do_not_move_heels = 确保你的脚跟在录制的时候不会发生移动!
## Body parts
body_part-NONE = 未分配
body_part-HEAD = 头部
body_part-NECK = 颈部
body_part-RIGHT_SHOULDER = 右肩
body_part-RIGHT_UPPER_ARM = 右大臂
body_part-RIGHT_LOWER_ARM = 右小臂
body_part-RIGHT_HAND = 右手
body_part-RIGHT_UPPER_LEG = 右大腿
body_part-RIGHT_LOWER_LEG = 右小腿
body_part-RIGHT_FOOT = 右脚
body_part-RIGHT_CONTROLLER = 右控制器
body_part-CHEST = 胸部
body_part-WAIST = 腰部
body_part-HIP = 髋部
body_part-LEFT_SHOULDER = 左肩
body_part-LEFT_UPPER_ARM = 左大臂
body_part-LEFT_LOWER_ARM = 左小臂
body_part-LEFT_HAND = 左手
body_part-LEFT_UPPER_LEG = 左大腿
body_part-LEFT_LOWER_LEG = 左小腿
body_part-LEFT_FOOT = 左脚
body_part-LEFT_CONTROLLER = 左控制器
## Proportions
skeleton_bone-NONE = 无
skeleton_bone-HEAD = 头部偏移
skeleton_bone-NECK = 颈部长度
skeleton_bone-CHEST = 胸部长度
skeleton_bone-CHEST_OFFSET = 胸部偏移
skeleton_bone-WAIST = 腰部长度
skeleton_bone-HIP = 髋部长度
skeleton_bone-HIP_OFFSET = 髋部偏移
skeleton_bone-HIPS_WIDTH = 髋部宽度
skeleton_bone-UPPER_LEG = 大腿长度
skeleton_bone-LOWER_LEG = 小腿长度
skeleton_bone-FOOT_LENGTH = 脚部长度
skeleton_bone-FOOT_SHIFT = 脚部偏移
skeleton_bone-SKELETON_OFFSET = 骨骼偏移
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距离
skeleton_bone-SHOULDERS_WIDTH = 肩膀宽度
skeleton_bone-UPPER_ARM = 上臂长度
skeleton_bone-LOWER_ARM = 前臂距离
skeleton_bone-CONTROLLER_Y = 控制器距离 Y
skeleton_bone-CONTROLLER_Z = 控制器距离 Z
skeleton_bone-ELBOW_OFFSET = 肘部偏移
## Tracker reset buttons
reset-reset_all = 重置身体比例
reset-full = 重置
reset-mounting = 重置佩戴
reset-quick = 快速重置
## Serial detection stuff
serial_detection-new_device-p0 = 检测到了新的串口设备!
serial_detection-new_device-p1 = 输入你的 Wi-Fi 凭据!
serial_detection-new_device-p2 = 请选择你想对它做什么
serial_detection-open_wifi = 连接到 Wi-Fi
serial_detection-open_serial = 打开串口控制台
serial_detection-submit = 提交!
serial_detection-close = 关闭
## Navigation bar
navbar-home = 主页
navbar-body_proportions = 身体比例
navbar-trackers_assign = 追踪器分配
navbar-mounting = 佩戴校准
navbar-onboarding = 向导
navbar-settings = 设置
## Bounding volume hierarchy recording
bvh-start_recording = 录制 BVH 文件
bvh-recording = 录制中...
## Widget: Overlay settings
widget-overlay = 覆盖层
widget-overlay-is_visible_label = 在 SteamVR 中显示覆盖层
widget-overlay-is_mirrored_label = 镜像显示覆盖层
## Widget: Drift compensation
widget-drift_compensation-clear = 清除漂移补偿数据
## Widget: Developer settings
widget-developer_mode = 开发者选项
widget-developer_mode-high_contrast = 高对比度
widget-developer_mode-precise_rotation = 显示精确旋转
widget-developer_mode-fast_data_feed = 快速数据更新
widget-developer_mode-filter_slimes_and_hmd = 只显示 Slime 追踪器与 HMD
widget-developer_mode-sort_by_name = 根据名称排序
widget-developer_mode-raw_slime_rotation = 显示原始旋转
widget-developer_mode-more_info = 显示更多信息
## Widget: IMU Visualizer
widget-imu_visualizer = 旋转
widget-imu_visualizer-rotation_raw = 原始旋转
widget-imu_visualizer-rotation_preview = 预览
## Tracker status
tracker-status-none = 无状态
tracker-status-busy = 繁忙
tracker-status-error = 错误
tracker-status-disconnected = 断开连接
tracker-status-occluded = 被遮挡
tracker-status-ok = 已连接
## Tracker status columns
tracker-table-column-name = 名字
tracker-table-column-type = 类型
tracker-table-column-battery = 电量
tracker-table-column-ping = 延迟
tracker-table-column-tps = TPS
tracker-table-column-temperature = 温度 °C
tracker-table-column-linear-acceleration = 加速度 X/Y/Z
tracker-table-column-rotation = 旋转 X/Y/Z
tracker-table-column-position = 位置 X/Y/Z
tracker-table-column-url = 地址
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 后
## Tracker information
tracker-infos-manufacturer = 制造商
tracker-infos-display_name = 显示名称
tracker-infos-custom_name = 自定义名称
tracker-infos-url = 追踪器地址
## Tracker settings
tracker-settings-back = 返回追踪器列表
tracker-settings-title = 追踪器设置
tracker-settings-assignment_section = 分配追踪器
tracker-settings-assignment_section-description = 该追踪器要被分配到身体的哪个部位?
tracker-settings-assignment_section-edit = 编辑分配
tracker-settings-mounting_section = 佩戴位置
tracker-settings-mounting_section-description = 该追踪器被佩戴在哪里?
tracker-settings-mounting_section-edit = 编辑佩戴
tracker-settings-drift_compensation_section = 允许漂移补偿
tracker-settings-drift_compensation_section-description = 是否在此追踪器上应用漂移补偿?
tracker-settings-drift_compensation_section-edit = 允许漂移补偿
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = 追踪器名称
tracker-settings-name_section-description = 给它起一个可爱的名字吧=w=~
tracker-settings-name_section-placeholder = CC 封印着漆黑之力的漆黑左臂
## Tracker part card info
tracker-part_card-no_name = 未命名
tracker-part_card-unassigned = 未分配
## Body assignment menu
body_assignment_menu = 你想将此追踪器戴在哪里?
body_assignment_menu-description = 选择要将此追踪器分配到的位置,或者你也可以选择一次管理所有追踪器,而不是逐个管理。
body_assignment_menu-show_advanced_locations = 显示高级分配位置
body_assignment_menu-manage_trackers = 管理所有追踪器
body_assignment_menu-unassign_tracker = 取消分配追踪器
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = 哪个追踪器将被分配到你的
tracker_selection_menu-NONE = 你想将哪个追踪器解除分配?
tracker_selection_menu-HEAD = { -tracker_selection-part }头部?
tracker_selection_menu-NECK = { -tracker_selection-part }颈部?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part }右肩?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part }右大臂?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part }右小臂?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part }右手?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part }右大腿?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part }右小腿?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part }右脚?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part }右控制器?
tracker_selection_menu-CHEST = { -tracker_selection-part }胸部?
tracker_selection_menu-WAIST = { -tracker_selection-part }腰部?
tracker_selection_menu-HIP = { -tracker_selection-part }髋部?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part }左肩?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part }左大臂?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part }左小臂?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part }左手?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part }左大腿?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part }左小腿?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part }左脚?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part }左控制器?
tracker_selection_menu-unassigned = 未分配的追踪器
tracker_selection_menu-assigned = 已分配的追踪器
tracker_selection_menu-dont_assign = 不分配
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>警告:</b> 颈部追踪器在调整得过紧时有致命风险
绑带可能会阻断你头部的血液循环!
tracker_selection_menu-neck_warning-done = 我已知晓风险
tracker_selection_menu-neck_warning-cancel = 取消
## Mounting menu
mounting_selection_menu = 你想将此追踪器戴在哪里?
mounting_selection_menu-close = 关闭
## Sidebar settings
settings-sidebar-title = 设置
settings-sidebar-general = 通用设置
settings-sidebar-tracker_mechanics = 追踪器设置
settings-sidebar-fk_settings = FK 设置
settings-sidebar-gesture_control = 手势控制
settings-sidebar-interface = 交互界面
settings-sidebar-osc_router = OSC 路由
settings-sidebar-utils = 工具
settings-sidebar-serial = 串口控制台
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR 追踪器
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
启用或禁用特定的追踪器
对于只支持特定追踪器的应用会很有用。
settings-general-steamvr-trackers-waist = 腰部
settings-general-steamvr-trackers-chest = 胸部
settings-general-steamvr-trackers-feet = 脚部
settings-general-steamvr-trackers-knees = 膝盖
settings-general-steamvr-trackers-elbows = 肘部
settings-general-steamvr-trackers-hands = 手部
## Tracker mechanics
settings-general-tracker_mechanics = 追踪器设置
settings-general-tracker_mechanics-filtering = 滤波
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
选择追踪器的滤波类型。
预测型将会对你的运动加以预测,而平滑型将会让你的运动更加平滑。
settings-general-tracker_mechanics-filtering-type = 滤波类型
settings-general-tracker_mechanics-filtering-type-none = 无滤波
settings-general-tracker_mechanics-filtering-type-none-description = 使用原始数据,不进行滤波。
settings-general-tracker_mechanics-filtering-type-smoothing = 平滑型
settings-general-tracker_mechanics-filtering-type-smoothing-description = 让运动更加平滑,但会增加一些延迟。
settings-general-tracker_mechanics-filtering-type-prediction = 预测型
settings-general-tracker_mechanics-filtering-type-prediction-description = 减少延迟并使移动更敏捷,但可能会增加一些抖动。
settings-general-tracker_mechanics-filtering-amount = 滤波强度
settings-general-tracker_mechanics-drift_compensation = 漂移补偿
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
应用反向旋转以补偿IMU的偏航角漂移。
更改补偿量和使用多少次的重置结果用于计算补偿量。
settings-general-tracker_mechanics-drift_compensation-enabled-label = 漂移补偿
settings-general-tracker_mechanics-drift_compensation-amount-label = 补偿量
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 使用几次的重置结果?
## FK/Tracking settings
settings-general-fk_settings = FK 设置
settings-general-fk_settings-leg_tweak = 腿部调整
settings-general-fk_settings-leg_tweak-description = 本设置可以减少甚至消除脚部穿入地板的情况,但是当你跪在地上的时候可能产生一些问题. 脚滑矫正可以矫正一些脚滑溜冰的问题, 但是可能会降低某些动作的准确性。
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = 地板限制
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = 脚滑矫正
settings-general-fk_settings-leg_tweak-skating_correction-amount = 脚滑矫正量
settings-general-fk_settings-arm_fk = 手臂 FK
settings-general-fk_settings-arm_fk-description = 更改手臂的追踪方式。
settings-general-fk_settings-arm_fk-force_arms = 强制从头显获得数据
settings-general-fk_settings-skeleton_settings = 骨架设置
settings-general-fk_settings-skeleton_settings-description = 打开或关闭骨架设置。建议保持这些设置不变。
settings-general-fk_settings-skeleton_settings-extended_spine = 脊柱延伸
settings-general-fk_settings-skeleton_settings-extended_pelvis = 骨盆延伸
settings-general-fk_settings-skeleton_settings-extended_knees = 膝盖延伸
settings-general-fk_settings-vive_emulation-title = Vive 模拟
settings-general-fk_settings-vive_emulation-description = 模拟Vive追踪器的腰部丢追问题。 注:这是一个玩笑功能,会劣化追踪质量。)
settings-general-fk_settings-vive_emulation-label = 开启 Vive 模拟
## Gesture control settings (tracker tapping)
settings-general-gesture_control = 手势控制
settings-general-gesture_control-subtitle = 敲击重置
settings-general-gesture_control-description = 启用或禁用敲击重置。启用时,敲击身上佩戴的最高的追踪器上的任何位置将激活快速重置。延迟是指记录到敲击和重置之间的时间。
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount }次敲击
}
settings-general-gesture_control-quickResetEnabled = 开启敲击快速重置
settings-general-gesture_control-quickResetDelay = 敲击快速重置延迟
settings-general-gesture_control-quickResetTaps = 快速重置敲击次数
settings-general-gesture_control-resetEnabled = 开启敲击重置
settings-general-gesture_control-resetDelay = 敲击重置延迟
settings-general-gesture_control-resetTaps = 重置敲击次数
settings-general-gesture_control-mountingResetEnabled = 开启敲击重置佩戴
settings-general-gesture_control-mountingResetDelay = 敲击重置佩戴延迟
settings-general-gesture_control-mountingResetTaps = 重置佩戴敲击次数
## Interface settings
settings-general-interface = 交互界面
settings-general-interface-dev_mode = 开发者模式
settings-general-interface-dev_mode-description = 如果你需要深入的数据或更深入地与连接的追踪器进行交互,打开此模式将会非常有用。
settings-general-interface-dev_mode-label = 开发者模式
settings-general-interface-serial_detection = 串口设备检测
settings-general-interface-serial_detection-description = 每次插入可能是追踪器的新串口设备时,此选项都会显示一个弹出窗口。这有助于改进追踪器的设置过程。
settings-general-interface-serial_detection-label = 串口设备检测
settings-general-interface-lang = 选择语言
settings-general-interface-lang-description = 更改要使用的默认语言
settings-general-interface-lang-placeholder = 选择要使用的语言
## Serial settings
settings-serial = 串口控制台
# This cares about multilines
settings-serial-description =
这里用于显示串口的实时信息流。
如果你需要了解固件是否出现问题,这将会很有用。
settings-serial-connection_lost = 串口连接丢失,正在重新连接..
settings-serial-reboot = 重新启动
settings-serial-factory_reset = 恢复出厂设置
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>警告:</b> 这会将跟踪器重置为出厂设置。
这意味着Wi-Fi凭据和校准数据 <b>都将丢失!</b>
settings-serial-factory_reset-warning-ok = 我已知晓
settings-serial-factory_reset-warning-cancel = 取消
settings-serial-get_infos = 获取信息
settings-serial-serial_select = 选择串行端口
settings-serial-auto_dropdown_item = 自动
## OSC router settings
settings-osc-router = OSC 路由
# This cares about multilines
settings-osc-router-description =
从另一个程序转发 OSC 信息。
在使用另一个 VRChat 的 OSC 程序时会很有用。
settings-osc-router-enable = 启用
settings-osc-router-enable-description = 控制信息转发功能的开关。
settings-osc-router-enable-label = 启用
settings-osc-router-network = 网络端口
# This cares about multilines
settings-osc-router-network-description =
设置用于监听和向 VRChat 发送数据的端口
这些端口可以与 SlimeVR 服务器中使用的其他端口相同。
settings-osc-router-network-port_in =
.label = 输入端口
.placeholder = 输入端口(默认 9002
settings-osc-router-network-port_out =
.label = 输出端口
.placeholder = 输出端口(默认 9000
settings-osc-router-network-address = 网络地址
settings-osc-router-network-address-description = 设置用来发送数据的地址。
settings-osc-router-network-address-placeholder = IPV4 地址
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
改变 VRChat 的特定设置以接收和发送头显数据。
用于全身追踪的追踪器数据(在 Quest 端生效)。
settings-osc-vrchat-enable = 启用
settings-osc-vrchat-enable-description = 切换数据的发送和接收
settings-osc-vrchat-enable-label = 启用
settings-osc-vrchat-network = 网络端口
settings-osc-vrchat-network-description = 设置用于监听和向 VRChat 发送数据的端口
settings-osc-vrchat-network-port_in =
.label = 输入端口
.placeholder = 输入端口(默认 9001
settings-osc-vrchat-network-port_out =
.label = 输出端口
.placeholder = 输出端口(默认 9000
settings-osc-vrchat-network-address = 网络地址
settings-osc-vrchat-network-address-description = 选择将数据发送到 VRChat 的地址(检查设备上的 Wi-Fi 设置)
settings-osc-vrchat-network-address-placeholder = VRChat IP 地址
settings-osc-vrchat-network-trackers = 追踪器
settings-osc-vrchat-network-trackers-description = 切换数据的发送和接收
settings-osc-vrchat-network-trackers-chest = 胸部
settings-osc-vrchat-network-trackers-waist = 腰部
settings-osc-vrchat-network-trackers-knees = 膝盖
settings-osc-vrchat-network-trackers-feet = 脚部
settings-osc-vrchat-network-trackers-elbows = 肘部
## Setup/onboarding menu
onboarding-skip = 跳过设置
onboarding-continue = 继续
onboarding-wip = 仍在开发中
## Wi-Fi setup
onboarding-wifi_creds-back = 返回简介
onboarding-wifi_creds = 输入 Wi-Fi 凭据
# This cares about multilines
onboarding-wifi_creds-description =
追踪器将使用这些凭据连接到 Wi-Fi
请使用当前连接到 Wi-Fi 的凭据
onboarding-wifi_creds-skip = 跳过 Wi-Fi 设置
onboarding-wifi_creds-submit = 提交!
onboarding-wifi_creds-ssid =
.label = SSID
.placeholder = 输入 SSID
onboarding-wifi_creds-password =
.label = 密码
.placeholder = 输入密码
## Mounting setup
onboarding-reset_tutorial-back = 返回到佩戴校准
onboarding-reset_tutorial = 重置教程
onboarding-reset_tutorial-description = 此功能尚未开发完成,请继续就好
## Setup start
onboarding-home = 欢迎来到 SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
将全身追踪
带给每一个人
onboarding-home-start = 我准备好了!
## Enter VR part of setup
onboarding-enter_vr-back = 返回到追踪器分配
onboarding-enter_vr-title = VR 时间到!
onboarding-enter_vr-description = 穿戴好所有的追踪器,开始快乐 VR 吧!
onboarding-enter_vr-ready = 我准备好了
## Setup done
onboarding-done-title = 都搞定啦!
onboarding-done-description = 享受你的全身追踪体验吧
onboarding-done-close = 关闭向导
## Tracker connection setup
onboarding-connect_tracker-back = 返回到 Wi-Fi 凭据设置
onboarding-connect_tracker-title = 连接追踪器
onboarding-connect_tracker-description-p0 = 来到了我第二喜欢的环节,连接所有的追踪器!
onboarding-connect_tracker-description-p1 = 只需通过 USB 连接所有尚未连接的设备即可。
onboarding-connect_tracker-issue-serial = QAQ 我在连接时遇到问题!
onboarding-connect_tracker-usb = USB 追踪器
onboarding-connect_tracker-connection_status-none = 正在寻找追踪器
onboarding-connect_tracker-connection_status-serial_init = 正在连接到串口设备
onboarding-connect_tracker-connection_status-provisioning = 正在发送 Wi-Fi 凭据
onboarding-connect_tracker-connection_status-connecting = 正在发送 Wi-Fi 凭据
onboarding-connect_tracker-connection_status-looking_for_server = 正在寻找服务器
onboarding-connect_tracker-connection_status-connection_error = 无法连接到 Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = 未找到到服务器
onboarding-connect_tracker-connection_status-done = 已连接到服务器
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] 没有已连接的追踪器
*[other] { $amount } 个追踪器已连接
}
onboarding-connect_tracker-next = 所有的追踪器都连接好了
## Tracker assignment setup
onboarding-assign_trackers-back = 返回 Wi-Fi 凭据设置
onboarding-assign_trackers-title = 分配追踪器
onboarding-assign_trackers-description = 让我们选择哪个追踪器在哪里。单击要放置追踪器的部位
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned = { $assigned }/{ $trackers } 个追踪器已分配
onboarding-assign_trackers-advanced = 显示高级分配部位
onboarding-assign_trackers-next = 所有的追踪器都分配好了
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] 左脚 已分配,但您还需要分配 左小腿 左大腿 胸部 髋部/腰部!
[1] 左脚 已分配,但您还需要分配 左大腿 胸部 髋部/腰部!
[2] 左脚 已分配,但您还需要分配 左小腿 胸部 髋部/腰部!
[3] 左脚 已分配,但您还需要分配 胸部 髋部/腰部!
[4] 左脚 已分配,但您还需要分配 左小腿 左大腿
[5] 左脚 已分配,但您还需要分配 左大腿!
[6] 左脚 已分配,但您还需要分配 左小腿!
*[unknown] 左脚 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] 右脚 已分配,但您还需要分配 右小腿 右大腿 胸部 髋部/腰部!
[1] 右脚 已分配,但您还需要分配 右大腿 胸部 髋部/腰部!
[2] 右脚 已分配,但您还需要分配 右小腿 胸部 髋部/腰部!
[3] 右脚 已分配,但您还需要分配 胸部 髋部/腰部!
[4] 右脚 已分配,但您还需要分配 右小腿 右大腿
[5] 右脚 已分配,但您还需要分配 右大腿!
[6] 右脚 已分配,但您还需要分配 右小腿!
*[unknown] 右脚 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] 左小腿 已分配,但您还需要分配 左大腿 胸部 髋部/腰部!
[1] 左小腿 已分配,但您还需要分配 胸部 髋部/腰部!
[2] 左小腿 已分配,但您还需要分配 左大腿!
*[unknown] 左小腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] 右小腿 已分配,但您还需要分配 右大腿 胸部 髋部/腰部!
[1] 右小腿 已分配,但您还需要分配 胸部 髋部/腰部!
[2] 右小腿 已分配,但您还需要分配 右大腿!
*[unknown] 右小腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] 左大腿 已分配,但您还需要分配 胸部 髋部/腰部!
*[unknown] 左大腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] 右大腿 已分配,但您还需要分配 胸部 髋部/腰部!
*[unknown] 右大腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] 髋部 已分配,但您还需要分配 胸部!
*[unknown] 髋部 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] 腰部 已分配,但您还需要分配 胸部!
*[unknown] 腰部 已分配,但您还需要分配 未知未分配身体部位!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = 返回到进入 VR
onboarding-manual_mounting = 手动佩戴
onboarding-manual_mounting-description = 单击每个追踪器并选择它们的佩戴方式
onboarding-manual_mounting-auto_mounting = 自动佩戴
onboarding-manual_mounting-next = 下一步
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = 返回到进入 VR
onboarding-automatic_mounting-title = 佩戴校准
onboarding-automatic_mounting-description = 为了让 SlimeVR 追踪器正常工作,我们需要为你的追踪器分配一个佩戴方向,以使其与你的物理追踪器佩戴方式对齐。
onboarding-automatic_mounting-manual_mounting = 手动设置佩戴方向
onboarding-automatic_mounting-next = 下一步
onboarding-automatic_mounting-prev_step = 上一步
onboarding-automatic_mounting-done-title = 佩戴方向已校准。
onboarding-automatic_mounting-done-description = 你的佩戴方向校准完成!
onboarding-automatic_mounting-done-restart = 返回以开始
onboarding-automatic_mounting-mounting_reset-title = 佩戴重置
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 双腿弯曲以滑雪的姿势蹲下,上身向前倾斜,手臂弯曲。
onboarding-automatic_mounting-mounting_reset-step-1 = 按下佩戴重置按钮并等待 3 秒钟,然后追踪器的佩戴方向将被重置。
onboarding-automatic_mounting-preparation-title = 准备
onboarding-automatic_mounting-preparation-step-0 = 1. 身体直立,双臂放在身体两侧。
onboarding-automatic_mounting-preparation-step-1 = 按下“复位”按钮,等待 3 秒钟,追踪器将复位。
onboarding-automatic_mounting-put_trackers_on-title = 穿戴好追踪器
onboarding-automatic_mounting-put_trackers_on-description = 为了校准佩戴方向,我们将使用你刚才分配的追踪器。戴上你所有的追踪器,你可以在右边的图中看到哪个追踪器对应哪个。
onboarding-automatic_mounting-put_trackers_on-next = 所有的追踪器都已开启!
## Tracker manual proportions setup
onboarding-manual_proportions-back = 返回重置教程
onboarding-manual_proportions-title = 手动调整身体比例
onboarding-manual_proportions-precision = 精确调整
onboarding-manual_proportions-auto = 自动校准
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = 返回重置教程
onboarding-automatic_proportions-title = 测量你的身体比例
onboarding-automatic_proportions-description = 为了让 SlimeVR 追踪器正常使用,我们需要知道你的骨头的长度。这个简短的校准将为你测量它们。
onboarding-automatic_proportions-manual = 手动校准
onboarding-automatic_proportions-prev_step = 上一步
onboarding-automatic_proportions-put_trackers_on-title = 穿戴好追踪器
onboarding-automatic_proportions-put_trackers_on-description = 为了校准你的身体比例,我们将使用你刚才分配的追踪器。戴上你所有的追踪器,你可以在右边的图中看到哪个追踪器对应哪个。
onboarding-automatic_proportions-put_trackers_on-next = 所有的追踪器都已开启!
onboarding-automatic_proportions-preparation-title = 准备
onboarding-automatic_proportions-preparation-description = 在你的正后方放一把椅子,并准备好在接下来的设置过程中坐下。
onboarding-automatic_proportions-preparation-next = 我在椅子前面啦
onboarding-automatic_proportions-start_recording-title = 准备录制运动
onboarding-automatic_proportions-start_recording-description = 我们现在要记录一些特定的姿势和动作。这些将在下一个屏幕中提示。当按钮被按下时,准备好开始!
onboarding-automatic_proportions-start_recording-next = 开始录制
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = 录制中...
onboarding-automatic_proportions-recording-description-p1 = 依次做出以下动作:
onboarding-automatic_proportions-recording-steps-0 = 弯曲几次膝盖。
onboarding-automatic_proportions-recording-steps-1 = 坐在椅子上,然后站起来。
onboarding-automatic_proportions-recording-steps-2 = 向左扭转上身,然后向右弯。
onboarding-automatic_proportions-recording-steps-3 = 向右扭转上身,然后向左弯。
onboarding-automatic_proportions-recording-steps-4 = 持续摆动身体,直到计时器结束。
onboarding-automatic_proportions-recording-processing = 正在处理结果
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer = 剩余{ $time }秒
onboarding-automatic_proportions-verify_results-title = 校验结果
onboarding-automatic_proportions-verify_results-description = 检查下面的结果,它们看起来是正确的吗?
onboarding-automatic_proportions-verify_results-results = 录制结果
onboarding-automatic_proportions-verify_results-processing = 正在处理结果
onboarding-automatic_proportions-verify_results-redo = 重新录制
onboarding-automatic_proportions-verify_results-confirm = 他们是正确的!
onboarding-automatic_proportions-done-title = 身体数据已测量并保存。
onboarding-automatic_proportions-done-description = 你的身体比例校准已完成!
## Home
home-no_trackers = 未检测到或未分配追踪器

View File

@@ -0,0 +1,664 @@
### SlimeVR complete GUI translations
# Please developers (not translators) don't reuse a key inside another key
# or concat text with a translation string in the code, use the appropriate
# features like variables and selectors in each appropriate case!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = 正在連接伺服器
websocket-connection_lost = 與伺服器的連線已中斷,正在嘗試重新連線……
## Tips
tips-find_tracker = 若你不確定手上的追蹤器是哪一個,搖一搖它,對應的項目就會顯示出來
tips-do_not_move_heels = 確保你的腳跟在測量過程時不會發生移動!
## Body parts
body_part-NONE = 未分配
body_part-HEAD = 頭部
body_part-NECK = 頸部
body_part-RIGHT_SHOULDER = 右肩
body_part-RIGHT_UPPER_ARM = 右上臂
body_part-RIGHT_LOWER_ARM = 右前臂
body_part-RIGHT_HAND = 右手
body_part-RIGHT_UPPER_LEG = 右大腿
body_part-RIGHT_LOWER_LEG = 右小腿
body_part-RIGHT_FOOT = 右腳
body_part-RIGHT_CONTROLLER = 右控制器
body_part-CHEST = 胸部
body_part-WAIST = 腰部
body_part-HIP = 髖部
body_part-LEFT_SHOULDER = 左肩
body_part-LEFT_UPPER_ARM = 左上臂
body_part-LEFT_LOWER_ARM = 左前臂
body_part-LEFT_HAND = 左手
body_part-LEFT_UPPER_LEG = 左大腿
body_part-LEFT_LOWER_LEG = 左小腿
body_part-LEFT_FOOT = 左腳
body_part-LEFT_CONTROLLER = 左控制器
## Proportions
skeleton_bone-NONE = 無
skeleton_bone-HEAD = 頭部偏移
skeleton_bone-NECK = 頸部長度
skeleton_bone-CHEST = 胸部長度
skeleton_bone-CHEST_OFFSET = 胸部偏移
skeleton_bone-WAIST = 腰部長度
skeleton_bone-HIP = 髖部長度
skeleton_bone-HIP_OFFSET = 髖部偏移
skeleton_bone-HIPS_WIDTH = 髖部寬度
skeleton_bone-UPPER_LEG = 大腿長度
skeleton_bone-LOWER_LEG = 小腿長度
skeleton_bone-FOOT_LENGTH = 腳部長度
skeleton_bone-FOOT_SHIFT = 腳部偏移
skeleton_bone-SKELETON_OFFSET = 骨骼偏移
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距離
skeleton_bone-SHOULDERS_WIDTH = 肩膀寬度
skeleton_bone-UPPER_ARM = 上臂長度
skeleton_bone-LOWER_ARM = 前臂長度
skeleton_bone-CONTROLLER_Y = 控制器距離 Y
skeleton_bone-CONTROLLER_Z = 控制器距離 Z
skeleton_bone-ELBOW_OFFSET = 肘部偏移
## Tracker reset buttons
reset-reset_all = 重置軀幹比例
reset-full = 重置
reset-mounting = 配戴重置
reset-quick = 快速重置
## Serial detection stuff
serial_detection-new_device-p0 = 偵測到了新的串列埠裝置!
serial_detection-new_device-p1 = 輸入你的 Wi-Fi 網路名稱與密碼!
serial_detection-new_device-p2 = 請選擇你想對它做什麼
serial_detection-open_wifi = 連線到 Wi-Fi
serial_detection-open_serial = 開啟串列埠終端
serial_detection-submit = 送出!
serial_detection-close = 關閉
## Navigation bar
navbar-home = 首頁
navbar-body_proportions = 軀幹比例
navbar-trackers_assign = 追蹤器分配
navbar-mounting = 配戴校正
navbar-onboarding = 快速設定
navbar-settings = 詳細設定
## Bounding volume hierarchy recording
bvh-start_recording = 錄製 BVH 檔案
bvh-recording = 錄製中…
## Widget: Overlay settings
widget-overlay = 內嵌介面
widget-overlay-is_visible_label = 在 SteamVR 中顯示內嵌介面
widget-overlay-is_mirrored_label = 鏡像顯示內嵌介面
## Widget: Drift compensation
widget-drift_compensation-clear = 清除偏移補償數據
## Widget: Developer settings
widget-developer_mode = 開發者選項
widget-developer_mode-high_contrast = 高對比 UI
widget-developer_mode-precise_rotation = 顯示精確旋轉
widget-developer_mode-fast_data_feed = 快速資料更新
widget-developer_mode-filter_slimes_and_hmd = 只顯示 Slime 追蹤器與頭戴顯示器
widget-developer_mode-sort_by_name = 依名稱排序
widget-developer_mode-raw_slime_rotation = 顯示原始旋轉
widget-developer_mode-more_info = 更多資訊
## Widget: IMU Visualizer
widget-imu_visualizer = 旋轉
widget-imu_visualizer-rotation_raw = 原始旋轉
widget-imu_visualizer-rotation_preview = 預覽
## Tracker status
tracker-status-none = 無
tracker-status-busy = 忙碌
tracker-status-error = 錯誤
tracker-status-disconnected = 連線中斷
tracker-status-occluded = 被遮擋
tracker-status-ok = 已連線
## Tracker status columns
tracker-table-column-name = 名稱
tracker-table-column-type = 類型
tracker-table-column-battery = 電量
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = 溫度 ℃
tracker-table-column-linear-acceleration = 加速度 X/Y/Z
tracker-table-column-rotation = 旋轉 X/Y/Z
tracker-table-column-position = 位置 X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 後
## Tracker information
tracker-infos-manufacturer = 製造商
tracker-infos-display_name = 顯示名稱
tracker-infos-custom_name = 自訂名稱
tracker-infos-url = 追蹤器 URL
## Tracker settings
tracker-settings-back = 返回追蹤器列表
tracker-settings-title = 追蹤器設定
tracker-settings-assignment_section = 分配追蹤器
tracker-settings-assignment_section-description = 這個追蹤器分配到的身體部位
tracker-settings-assignment_section-edit = 編輯分配
tracker-settings-mounting_section = 配戴方式
tracker-settings-mounting_section-description = 這個追蹤器要配戴在哪裡?
tracker-settings-mounting_section-edit = 編輯配戴方式
tracker-settings-drift_compensation_section = 偏移補償
tracker-settings-drift_compensation_section-description = 是否在此追蹤器上套用偏移補償?
tracker-settings-drift_compensation_section-edit = 允許偏移補償
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = 追蹤器名稱
tracker-settings-name_section-description = 給它起一個可愛的名字吧 ^^
tracker-settings-name_section-placeholder = ↖★煞氣a黑貓☆↘的美味右腿
## Tracker part card info
tracker-part_card-no_name = 未命名
tracker-part_card-unassigned = 未分配
## Body assignment menu
body_assignment_menu = 將這個追蹤器配戴在哪裡?
body_assignment_menu-description = 選擇要將此追蹤器分配到的身體部位。除了逐個設定外,你也可以一次設定所有追蹤器。
body_assignment_menu-show_advanced_locations = 顯示進階分配部位
body_assignment_menu-manage_trackers = 管理所有追蹤器
body_assignment_menu-unassign_tracker = 解除分配
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = 哪個追蹤器要分配到你的
tracker_selection_menu-NONE = 你想將哪個追蹤器解除分配?
tracker_selection_menu-HEAD = { -tracker_selection-part }頭部?
tracker_selection_menu-NECK = { -tracker_selection-part }頸部?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part }右肩?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part }右上臂?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part }右前臂?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part }右手?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part }右大腿?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part }右小腿?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part }右腳?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part }右控制器?
tracker_selection_menu-CHEST = { -tracker_selection-part }胸部?
tracker_selection_menu-WAIST = { -tracker_selection-part }腰部?
tracker_selection_menu-HIP = { -tracker_selection-part }髖部?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part }左肩?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part }左上臂?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part }左前臂?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part }左手?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part }左大腿?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part }左小腿?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part }左腳?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part }左控制器?
tracker_selection_menu-unassigned = 尚未分配的追蹤器
tracker_selection_menu-assigned = 已分配的追蹤器
tracker_selection_menu-dont_assign = 不要分配
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>警告:</b>將追蹤器戴在頸部有致命危險,綁太緊可能會阻礙頭部
血液循環,進而導致窒息。
tracker_selection_menu-neck_warning-done = 我已瞭解其風險
tracker_selection_menu-neck_warning-cancel = 取消
## Mounting menu
mounting_selection_menu = 你想將此追蹤器戴在哪裡?
mounting_selection_menu-close = 關閉
## Sidebar settings
settings-sidebar-title = 設定
settings-sidebar-general = 一般設定
settings-sidebar-tracker_mechanics = 追蹤機制
settings-sidebar-fk_settings = 追蹤設定
settings-sidebar-gesture_control = 手勢控制
settings-sidebar-interface = 使用者介面
settings-sidebar-osc_router = OSC 路由
settings-sidebar-utils = 工具
settings-sidebar-serial = 串列埠終端
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR 追蹤器
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
開啟或關閉特定的 SteamVR 追蹤器。
對於只支援特定追蹤器的遊戲或應用程式會很有用。
settings-general-steamvr-trackers-waist = 腰部
settings-general-steamvr-trackers-chest = 胸部
settings-general-steamvr-trackers-feet = 腳部
settings-general-steamvr-trackers-knees = 膝蓋
settings-general-steamvr-trackers-elbows = 肘部
settings-general-steamvr-trackers-hands = 手部
## Tracker mechanics
settings-general-tracker_mechanics = 追蹤機制
settings-general-tracker_mechanics-filtering = 濾波
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
選擇追蹤器的濾波類型。
預測型將會對你的運動加以預測,而平滑型將會讓你的運動更加平滑。
settings-general-tracker_mechanics-filtering-type = 濾波類型
settings-general-tracker_mechanics-filtering-type-none = 不進行濾波
settings-general-tracker_mechanics-filtering-type-none-description = 使用原始資料,不進行濾波。
settings-general-tracker_mechanics-filtering-type-smoothing = 平滑型
settings-general-tracker_mechanics-filtering-type-smoothing-description = 讓運動更加平滑,但會增加一些延遲。
settings-general-tracker_mechanics-filtering-type-prediction = 預測型
settings-general-tracker_mechanics-filtering-type-prediction-description = 減少延遲並使移動更敏捷,但可能會增加一些抖動。
settings-general-tracker_mechanics-filtering-amount = 濾波強度
settings-general-tracker_mechanics-drift_compensation = 偏移補償
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
套用逆向旋轉以補償IMU的偏航角位移。
更改補償量和使用多少次的重置結果用於計算補償量。
settings-general-tracker_mechanics-drift_compensation-enabled-label = 偏移補償
settings-general-tracker_mechanics-drift_compensation-amount-label = 補償量
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 使用幾次的重置結果?
## FK/Tracking settings
settings-general-fk_settings = 追蹤設定
settings-general-fk_settings-leg_tweak = 腿部調整
settings-general-fk_settings-leg_tweak-description = 地板限制可以減輕甚至解決腳部穿入地板的情況,但是當跪在地上的時候可能會造成問題。腳滑修正可以矯正一些腳滑溜冰的問題,但是可能會降低某些動作的準確度。
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = 地板限制
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = 腳滑修正
settings-general-fk_settings-leg_tweak-skating_correction-amount = 腳滑修正量
settings-general-fk_settings-arm_fk = 手臂追蹤
settings-general-fk_settings-arm_fk-description = 更改手臂的追蹤方式。
settings-general-fk_settings-arm_fk-force_arms = 強制從頭戴顯示器取得資料
settings-general-fk_settings-skeleton_settings = 骨架設定
settings-general-fk_settings-skeleton_settings-description = 開啟或關閉骨架設定。建議保持這些設定開啟。
settings-general-fk_settings-skeleton_settings-extended_spine = 脊椎延伸
settings-general-fk_settings-skeleton_settings-extended_pelvis = 骨盆延伸
settings-general-fk_settings-skeleton_settings-extended_knees = 膝蓋延伸
settings-general-fk_settings-vive_emulation-title = Vive 模擬
settings-general-fk_settings-vive_emulation-description = 模擬 Vive 追蹤器的腰部追蹤失效問題。( 註:這是一個玩笑功能,會降低追蹤品質。)
settings-general-fk_settings-vive_emulation-label = 開啟 Vive 模擬
## Gesture control settings (tracker tapping)
settings-general-gesture_control = 手勢控制
settings-general-gesture_control-subtitle = 敲擊重置
settings-general-gesture_control-description = 使用敲擊追蹤器的方法觸發重置。敲擊軀幹所配戴的最高的追蹤器會啟用快速重置,敲擊左腳配戴最高的追蹤器會觸發重置,敲擊右腳配戴最高的追蹤器會觸發配戴重置。請注意,需要在 0.6 秒內滿足敲擊次數才會觸發。
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount } 次敲擊
}
settings-general-gesture_control-quickResetEnabled = 敲擊以快速重置
settings-general-gesture_control-quickResetDelay = 快速重置延遲
settings-general-gesture_control-quickResetTaps = 快速重置敲擊次數
settings-general-gesture_control-resetEnabled = 敲擊以重置
settings-general-gesture_control-resetDelay = 重置延遲
settings-general-gesture_control-resetTaps = 重置敲擊次數
settings-general-gesture_control-mountingResetEnabled = 敲擊以重置佩戴
settings-general-gesture_control-mountingResetDelay = 重置佩戴延遲
settings-general-gesture_control-mountingResetTaps = 重置佩戴敲擊次數
## Interface settings
settings-general-interface = 使用者介面
settings-general-interface-dev_mode = 開發者模式
settings-general-interface-dev_mode-description = 如果你需要深入的資料或與連線的追蹤器進行進階互動,開啟此模式將會非常有用。
settings-general-interface-dev_mode-label = 開發者模式
settings-general-interface-serial_detection = 串列埠裝置檢測
settings-general-interface-serial_detection-description = 每次插入新串列埠的裝置(可能是追蹤器)時,此選項會顯示一個彈出視窗。這有助於改進追蹤器的設定流程。
settings-general-interface-serial_detection-label = 串列埠裝置檢測
settings-general-interface-lang = 選擇語言
settings-general-interface-lang-description = 更改要使用的預設語言
settings-general-interface-lang-placeholder = 選擇要使用的語言
## Serial settings
settings-serial = 串列埠終端
# This cares about multilines
settings-serial-description = 這裡用於顯示串列埠的即時資訊,有助於瞭解韌體是否發生問題。
settings-serial-connection_lost = 串列埠連線中斷,正在重新連線……
settings-serial-reboot = 重新啟動
settings-serial-factory_reset = 恢復出廠設定
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>警告:</b>本選項會將該追蹤器恢復出廠設定,
亦即其 Wi-Fi 與追蹤器校正的設定<b>將會全部刪除</b>。
settings-serial-factory_reset-warning-ok = 我確實要執行出廠設定
settings-serial-factory_reset-warning-cancel = 取消
settings-serial-get_infos = 取得資訊
settings-serial-serial_select = 選擇串列埠
settings-serial-auto_dropdown_item = 自動
## OSC router settings
settings-osc-router = OSC 路由
# This cares about multilines
settings-osc-router-description =
從另一個程式轉發 OSC 訊息。
例如在 VRChat 同時使用另一個 OSC 程式時,此功能會有幫助。
settings-osc-router-enable = 啟用
settings-osc-router-enable-description = 切換轉發 OSC 訊息。
settings-osc-router-enable-label = 啟用
settings-osc-router-network = 連接埠
# This cares about multilines
settings-osc-router-network-description =
設定用於監聽和傳送資料的連接埠,
可以與 SlimeVR 伺服器中使用的其他埠號相同。
settings-osc-router-network-port_in =
.label = 輸入埠
.placeholder = 輸入埠
settings-osc-router-network-port_out =
.label = 輸出埠
.placeholder = 輸出埠
settings-osc-router-network-address = 網路地址
settings-osc-router-network-address-description = 設置用來發送資料的位址。
settings-osc-router-network-address-placeholder = IPV4 地址
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC 追蹤器
# This cares about multilines
settings-osc-vrchat-description =
此處可更改 VRChat 專用的設定以取得頭戴顯示器的資料,並傳送
追蹤器資料以進行全身追蹤。(也適用於 Quest 單機版本)
settings-osc-vrchat-enable = 啟用
settings-osc-vrchat-enable-description = 切換資料的傳送和接收。
settings-osc-vrchat-enable-label = 啟用
settings-osc-vrchat-network = 連接埠
settings-osc-vrchat-network-description = 設定用於監聽和向 VRChat 傳送資料的連接埠。
settings-osc-vrchat-network-port_in =
.label = 輸入埠
.placeholder = 輸入埠(預設 9001
settings-osc-vrchat-network-port_out =
.label = 輸出埠
.placeholder = 輸出埠(預設 9000
settings-osc-vrchat-network-address = 網路位址
settings-osc-vrchat-network-address-description = 設定用來發送資料到 VRChat 的位址(請檢察裝置的 Wi-Fi 設定)。
settings-osc-vrchat-network-address-placeholder = VRChat IP 位址
settings-osc-vrchat-network-trackers = 追蹤器
settings-osc-vrchat-network-trackers-description = 切換傳送指定追蹤器的資料。
settings-osc-vrchat-network-trackers-chest = 胸部
settings-osc-vrchat-network-trackers-waist = 腰部
settings-osc-vrchat-network-trackers-knees = 膝蓋
settings-osc-vrchat-network-trackers-feet = 腳部
settings-osc-vrchat-network-trackers-elbows = 肘部
## Setup/onboarding menu
onboarding-skip = 跳過設定
onboarding-continue = 繼續
onboarding-wip = 施工中
## Wi-Fi setup
onboarding-wifi_creds-back = 返回簡介
onboarding-wifi_creds = 輸入 Wi-Fi 網路名稱與密碼
# This cares about multilines
onboarding-wifi_creds-description =
追蹤器將使用這些資訊連線到 Wi-Fi
請使用目前連線到 Wi-Fi 的網路名稱與密碼
onboarding-wifi_creds-skip = 跳過 Wi-Fi 設定
onboarding-wifi_creds-submit = 送出!
onboarding-wifi_creds-ssid =
.label = Wi-Fi 名稱
.placeholder = 請輸入 Wi-Fi 名稱
onboarding-wifi_creds-password =
.label = 密碼
.placeholder = 輸入密碼
## Mounting setup
onboarding-reset_tutorial-back = 返回到配戴校正
onboarding-reset_tutorial = 重置教學
onboarding-reset_tutorial-description = 此功能尚未開發完成,請點選繼續即可。
## Setup start
onboarding-home = 歡迎來到 SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
將全身追蹤
帶給每一個人
onboarding-home-start = 我準備好了!
## Enter VR part of setup
onboarding-enter_vr-back = 返回到追蹤器分配
onboarding-enter_vr-title = 該是進入 VR 的時候了!
onboarding-enter_vr-description = 穿戴好所有的追蹤器,開始快樂 VR 吧!
onboarding-enter_vr-ready = 我準備好了
## Setup done
onboarding-done-title = 都搞定啦!
onboarding-done-description = 享受你的全身追蹤體驗吧
onboarding-done-close = 關閉導引
## Tracker connection setup
onboarding-connect_tracker-back = 返回到 Wi-Fi 帳號密碼設定
onboarding-connect_tracker-title = 連接追蹤器
onboarding-connect_tracker-description-p0 = 來到了我第二喜歡的環節,連線所有的追蹤器!
onboarding-connect_tracker-description-p1 = 只需透過 USB 連線所有尚未連線的裝置即可。
onboarding-connect_tracker-issue-serial = 我在連接時碰到問題了!
onboarding-connect_tracker-usb = USB 追蹤器
onboarding-connect_tracker-connection_status-none = 正在尋找追蹤器
onboarding-connect_tracker-connection_status-serial_init = 正在連線到序列裝置
onboarding-connect_tracker-connection_status-provisioning = 正在傳送 Wi-Fi 認證
onboarding-connect_tracker-connection_status-connecting = 正在傳送 Wi-Fi 資訊
onboarding-connect_tracker-connection_status-looking_for_server = 正在尋找伺服器
onboarding-connect_tracker-connection_status-connection_error = 無法連線到 Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = 未尋找到可用的伺服器
onboarding-connect_tracker-connection_status-done = 已連線到伺服器
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] 沒有已連線的追蹤器
*[other] { $amount } 個追蹤器已連線
}
onboarding-connect_tracker-next = 所有的追蹤器都連接好了
## Tracker assignment setup
onboarding-assign_trackers-back = 返回到 Wi-Fi 帳號密碼設定
onboarding-assign_trackers-title = 分配追蹤器
onboarding-assign_trackers-description = 這些追蹤器要放在身上的哪個部位呢?請點選要放置追蹤器的部位
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned = { $assigned }/{ $trackers } 個追蹤器已分配
onboarding-assign_trackers-advanced = 顯示進階分配部位
onboarding-assign_trackers-next = 所有的追蹤器都分配好了
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] 左腳已分配,但您還需要分配左腳踝、左大腿和胸部、臀部或腰部!
[1] 左腳已分配,但您還需要分配左大腿和胸部、臀部或腰部!
[2] 左腳已分配,但您還需要分配左腳踝和胸部、臀部或腰部!
[3] 左腳已分配,但您還需要分配胸部、臀部或腰部!
[4] 左腳已分配,但您還需要分配左腳踝和左大腿!
[5] 左腳已分配,但您還需要分配左大腿!
[6] 左腳已分配,但您還需要分配左腳踝!
*[unknown] 左腳已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] 右腳已分配,但您還需要分配右腳踝、右大腿以及胸部、臀部或腰部!
[1] 右腳已分配,但您還需要分配右大腿和胸部、臀部或腰部!
[2] 右腳已分配,但您還需要分配右腳踝和胸部、臀部或腰部!
[3] 右腳已分配,但您還需要分配胸部、臀部或腰部!
[4] 右腳已分配,但您還需要分配右腳踝和右大腿!
[5] 右腳已分配,但您還需要分配右大腿!
[6] 右腳已分配,但您還需要分配右腳踝!
*[unknown] 右腳已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] 左腳踝已分配,但您還需要分配左大腿和胸部、臀部或腰部!
[1] 左腳踝已分配,但您還需要分配胸部、臀部或腰部!
[2] 左腳踝已分配,但您還需要分配左大腿!
*[unknown] 左腳踝已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] 右腳踝已分配,但您還需要分配右大腿和胸部、臀部或腰部!
[1] 右腳踝已分配,但您還需要分配胸部、臀部或腰部!
[2] 右腳踝已分配,但您還需要分配右大腿!
*[unknown] 右腳踝已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] 左大腿已分配,但您還需要分配胸部、臀部或腰部!
*[unknown] 左大腿已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] 右大腿已分配,但您還需要分配胸部、臀部或腰部!
*[unknown] 右大腿已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] 臀部已分配,但您還需要分配胸部!
*[unknown] 臀部已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] 腰部已分配,但您還需要分配胸部!
*[unknown] 腰部已分配,但您還需要分配其它未分配的身體部位!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = 返回到進入 VR
onboarding-manual_mounting = 手動配戴
onboarding-manual_mounting-description = 點選每個追蹤器並選擇它們的配戴方式
onboarding-manual_mounting-auto_mounting = 自動配戴
onboarding-manual_mounting-next = 下一步
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = 返回到進入 VR
onboarding-automatic_mounting-title = 配戴校正
onboarding-automatic_mounting-description = 為了讓 SlimeVR 追蹤器正常運作,我們需要為你的追蹤器設定一個配戴方向,以使其與你的物理追蹤器配戴方式對齊。
onboarding-automatic_mounting-manual_mounting = 手動設定配戴方向
onboarding-automatic_mounting-next = 下一步
onboarding-automatic_mounting-prev_step = 上一步
onboarding-automatic_mounting-done-title = 配戴方向已校正。
onboarding-automatic_mounting-done-description = 你的配戴方向校準完成!
onboarding-automatic_mounting-done-restart = 返回以開始
onboarding-automatic_mounting-mounting_reset-title = 重置配戴
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 雙腿彎曲以滑雪的姿勢蹲下,上身向前傾斜,手臂彎曲。
onboarding-automatic_mounting-mounting_reset-step-1 = 按下重置配戴按鈕並等待 3 秒鐘,然後追蹤器的佩戴方向將被重置。
onboarding-automatic_mounting-preparation-title = 準備
onboarding-automatic_mounting-preparation-step-0 = 1. 身體直立,雙臂放在身體兩側。
onboarding-automatic_mounting-preparation-step-1 = 按下「重置」按鈕,等待 3 秒鐘,追蹤器將會重置。
onboarding-automatic_mounting-put_trackers_on-title = 請戴好追蹤器
onboarding-automatic_mounting-put_trackers_on-description = 為了校準配戴方向,我們將使用剛才分配的追蹤器。戴上你所有的追蹤器,你可以在右邊的圖中看到追蹤器的對應部位。
onboarding-automatic_mounting-put_trackers_on-next = 我所有的追蹤器都戴好了!
## Tracker manual proportions setup
onboarding-manual_proportions-back = 返回重置教學
onboarding-manual_proportions-title = 手動調整軀幹比例
onboarding-manual_proportions-precision = 精確調整
onboarding-manual_proportions-auto = 自動校準
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = 返回重置教學
onboarding-automatic_proportions-title = 測量你的身體比例
onboarding-automatic_proportions-description = 為了讓 SlimeVR 追蹤器正常使用,我們需要知道你的骨頭長度。這個簡短的流程將會進行這方面的測量。
onboarding-automatic_proportions-manual = 手動校正
onboarding-automatic_proportions-prev_step = 上一步
onboarding-automatic_proportions-put_trackers_on-title = 請戴好追蹤器
onboarding-automatic_proportions-put_trackers_on-description = 為了校準你的軀幹比例,我們將使用你剛才分配的追蹤器。戴上你所有的追蹤器,你可以在右邊的圖中看到追蹤器的對應部位。
onboarding-automatic_proportions-put_trackers_on-next = 我所有的追蹤器都戴好了!
onboarding-automatic_proportions-preparation-title = 準備
onboarding-automatic_proportions-preparation-description = 在你的正後方放一把椅子,並準備好在接下來的設定過程中坐下。
onboarding-automatic_proportions-preparation-next = 我在椅子前面了
onboarding-automatic_proportions-start_recording-title = 準備擺動作囉
onboarding-automatic_proportions-start_recording-description = 我們現在要記錄一些特定的姿勢和動作,將會在下一個畫面中提示。當按鈕被按下時,準備好開始!
onboarding-automatic_proportions-start_recording-next = 開始錄製
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = 正在錄製中……
onboarding-automatic_proportions-recording-description-p1 = 請做出以下動作:
onboarding-automatic_proportions-recording-steps-0 = 彎曲幾次膝蓋。
onboarding-automatic_proportions-recording-steps-1 = 坐在椅子上再站起來。
onboarding-automatic_proportions-recording-steps-2 = 向左扭轉上身,然後向右彎。
onboarding-automatic_proportions-recording-steps-3 = 向右扭轉上身,然後向左彎。
onboarding-automatic_proportions-recording-steps-4 = 持續擺動身體,直到計時結束。
onboarding-automatic_proportions-recording-processing = 正在處理結果
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer = 剩餘{ $time }秒
onboarding-automatic_proportions-verify_results-title = 檢查結果
onboarding-automatic_proportions-verify_results-description = 檢查下面的結果,它們看起來是正確的嗎?
onboarding-automatic_proportions-verify_results-results = 錄製結果
onboarding-automatic_proportions-verify_results-processing = 正在處理結果
onboarding-automatic_proportions-verify_results-redo = 重新錄製
onboarding-automatic_proportions-verify_results-confirm = 他們是正確的!
onboarding-automatic_proportions-done-title = 身體資料已測量並儲存。
onboarding-automatic_proportions-done-description = 你的身體比例校正已完成!
## Home
home-no_trackers = 未偵測到或未分配追蹤器

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

BIN
gui/public/logo192.png Normal file

Binary file not shown.

BIN
gui/public/logo512.png Normal file

Binary file not shown.

25
gui/public/manifest.json Normal file
View File

@@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

3
gui/public/robots.txt Normal file
View File

@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

97
gui/scripts/check-missing.js Executable file
View File

@@ -0,0 +1,97 @@
#!/usr/bin/env node
/*
Process exit codes:
First bit: Fluent syntax error in english file
Second bit: Fluent syntax error in translation file
Third bit: Missing key
Fourth bit: Missing attribute
Fifth bit: Extra key
Sixth bit: Extra attribute
*/
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const process = require('process');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { execSync } = require('child_process');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { FluentBundle, FluentResource } = require('@fluent/bundle');
const PATH = path.join(
execSync('git rev-parse --show-toplevel', { encoding: 'utf-8' }).trim(),
'gui/public/i18n'
);
const langs = fs.readdirSync(PATH).filter((x) => x !== 'en');
const en = new FluentBundle('en');
const enErrors = en.addResource(
new FluentResource(
fs.readFileSync(path.join(PATH, 'en/translation.ftl'), 'utf-8')
)
);
if (enErrors.length) {
for (const error of enErrors) {
console.error(error);
}
process.exit(1);
}
const requiredMessages = [...en._messages.keys()];
process.exitCode = 0;
for (const lang of langs) {
const resource = new FluentResource(
fs.readFileSync(path.join(PATH, lang, 'translation.ftl'), 'utf-8')
);
const bundle = new FluentBundle(lang);
const errors = bundle.addResource(resource);
// Check for syntax errors
for (const error of errors) {
console.error(error);
process.exitCode &= 0b10;
}
if (errors.length) process.exit();
// Check for missing
for (const msg of requiredMessages) {
if (!bundle._messages.has(msg)) {
console.log(`missing key in ${lang}: ${msg}`);
process.exitCode &= 0b100;
continue;
}
const data = en._messages.get(msg);
const localAttributes = Object.keys(bundle._messages.get(msg).attributes);
const missing = Object.keys(data.attributes).filter(
(x) => !localAttributes.some((y) => x === y)
);
if (missing.length) {
console.log(`missing attributes in ${lang} of ${msg}: [${missing}]`);
process.exitCode &= 0b1000;
}
}
// Check for extra
for (const msg of bundle._messages.keys()) {
if (!en._messages.has(msg)) {
console.log(`extra key in ${lang}: ${msg}`);
process.exitCode &= 0b10000;
continue;
}
const data = bundle._messages.get(msg);
const localAttributes = Object.keys(en._messages.get(msg).attributes);
const missing = Object.keys(data.attributes).filter(
(x) => !localAttributes.some((y) => x === y)
);
if (missing.length) {
console.log(`extra attributes in ${lang} of ${msg}: [${missing}]`);
process.exitCode &= 0b100000;
}
}
}

108
gui/scripts/convert-fluent.js Executable file
View File

@@ -0,0 +1,108 @@
#!/usr/bin/env node
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const translation = require('./translation.json');
const sections = {
websocket: 'Websocket status',
tips: 'Tips',
'body-part': 'Body parts',
'skeleton-bone': 'Skeleton stuff',
reset: 'Tracker reset buttons',
'serial-detection': 'Serial detection stuff',
navbar: 'Navigation bar',
bvh: 'Bounding volume hierarchy recording',
overlay: 'Overlay settings',
tracker: {
status: 'Tracker status',
table: {
column: 'Tracker status columns',
},
rotation: 'Tracker rotation',
infos: 'Tracker information',
settings: 'Tracker settings',
'part-card': 'Tracker part card info',
},
'body-assignment-menu': 'Body assignment menu',
'tracker-selection-menu': 'Tracker assignment menu',
'mounting-selection-menu': 'Mounting menu',
settings: {
sidebar: 'Sidebar settings',
general: {
steamvr: 'SteamVR settings',
'tracker-mechanics': 'Tracker mechanics',
'fk-settings': 'FK settings',
'gesture-control': 'Gesture control settings (tracker tapping)',
interface: 'Interface settings',
},
serial: 'Serial settings',
osc: {
router: 'OSC router settings',
vrchat: 'OSC VRChat settings',
},
},
onboarding: {
default: 'Setup/onboarding menu',
'wifi-creds': 'WiFi setup',
'reset-tutorial': 'Mounting setup',
home: 'Setup start',
'enter-vr': 'Enter VR part of setup',
done: 'Setup done',
'connect-tracker': 'Tracker connection setup',
'assign-trackers': 'Tracker assignment setup',
'manual-mounting': 'Tracker manual mounting setup',
'automatic-mounting': 'Tracker automatic mounting setup',
'manual-proportions': 'Tracker manual proportions setup',
'automatic-proportions': 'Tracker automatic proportions setup',
},
home: 'Home',
};
function goTo(obj, property) {
const props = property.split('.');
if (props.length === 1) {
const prop = props.shift();
if (typeof obj[prop] === 'string') {
return obj[prop];
} else if (obj[prop] && obj[prop].default) {
return obj[prop].default;
}
} else {
const prop = props.shift();
if (obj[prop]) return goTo(obj[prop], props.join('.'));
}
return null;
}
function recurseObject(obj, prefix = '') {
const array = [];
let first = false;
for (const prop in obj) {
if (typeof obj[prop] === 'string') {
if (!first) {
first = true;
const section = goTo(sections, prefix.slice(0, -1).replace(/\0/g, '.'));
if (section) {
array.push(`\n## ${section}`);
}
}
array.push(
`${prefix.replace(/-/g, '_').replace(/\0/g, '-')}${prop
.replace(/-/g, '_')
.replace(/\./g, '-')} = ${obj[prop]
.replace(/{{/g, '{ $')
.replace(/}}/g, ' }')}`
);
} else {
array.push(...recurseObject(obj[prop], `${prefix}${prop}\0`));
}
}
return array;
}
fs.writeFileSync(
'./translation.ftl',
recurseObject(translation).join('\n').trim() + '\n'
);

5
gui/src-tauri/.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
# Generated by Cargo
# will have compiled files and executables
/target/
WixTools
src/JavaVersion.class

49
gui/src-tauri/Cargo.toml Normal file
View File

@@ -0,0 +1,49 @@
[package]
name = "slimevr"
version = "0.0.0"
description = "SlimeVR GUI Application"
license = "MIT OR Apache-2.0"
repository = "https://github.com/SlimeVR/SlimeVR-Server"
edition = "2021"
rust-version = "1.65"
default-run = "slimevr"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
# by default Tauri runs in production mode
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL
default = ["custom-protocol"]
# this feature is used used for production builds where `devPath` points to the filesystem
# DO NOT remove this
custom-protocol = ["tauri/custom-protocol"]
[build-dependencies]
tauri-build = { version = "1.2", features = [] }
cfg_aliases = "0.1"
shadow-rs = "0.20"
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tauri = { version = "1.2", features = ["devtools", "dialog", "fs-all", "os-all", "path-all", "shell-execute", "window-close", "window-maximize", "window-minimize", "window-set-resizable", "window-set-title", "window-start-dragging", "window-unmaximize", "window-unminimize"] }
tauri-runtime = "0.12.1"
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" }
pretty_env_logger = "0.4"
log = "0.4"
clap = { version = "4.0.29", features = ["derive"] }
clap-verbosity-flag = "2"
rand = "0.8.5"
tempfile = "3"
which = "4.3"
glob = "0.3"
open = "3"
shadow-rs = { version = "0.20", default-features = false }
const_format = "0.2.30"
cfg-if = "1"
[target.'cfg(windows)'.dependencies]
win32job = "1"
winreg = "0.10.1"

10
gui/src-tauri/build.rs Normal file
View File

@@ -0,0 +1,10 @@
use cfg_aliases::cfg_aliases;
fn main() -> shadow_rs::SdResult<()> {
tauri_build::build();
cfg_aliases! {
mobile: { any(target_os = "ios", target_os = "android") },
desktop: { not(any(target_os = "ios", target_os = "android")) }
}
shadow_rs::new()
}

View File

@@ -0,0 +1,13 @@
[Desktop Entry]
Version=1.5
Categories=Game;Development;GTK;
Exec=slimevr
Icon=dev.slimevr.SlimeVR
Name=SlimeVR
GenericName=Full-body tracking
Comment=An app for facilitating full-body tracking in virtual reality
Keywords=FBT
Terminal=false
Type=Application

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-miterlimit="10" version="1.1" viewBox="0 0 380 380" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<rect id="bg" width="380" height="380" fill="#663499" stroke-width="1px"/><g id="logo" fill="none" stroke="#fff"><path id="left" d="m72.867 191.74 37-39 39 36" stroke-width="13.62px"/><path id="right" d="m208.87 187.74 38-35 36 38" stroke-width="13.62px"/><path id="outer" d="m56.867 253.74s130.61-31.182 248 5c13.45 4.146 20.244 2.975 20-8s1.909-126.06-46-131" stroke-linecap="square" stroke-width="17px"/></g>
</svg>

After

Width:  |  Height:  |  Size: 623 B

11
gui/src-tauri/run.bat.old Normal file
View File

@@ -0,0 +1,11 @@
@echo off
setlocal enableextensions
echo "TEST"
cd /d "C:\Program Files (x86)\SlimeVR Server"
jre\bin\java.exe -Xmx512M -jar slimevr.jar --no-gui
if %errorlevel% NEQ 0 (
pause
)

Binary file not shown.

View File

@@ -0,0 +1,8 @@
public class JavaVersion {
public static void main(String[] args)
{
var version = Runtime.version().version().get(0);
System.exit(version);
}
}

358
gui/src-tauri/src/main.rs Normal file
View File

@@ -0,0 +1,358 @@
#![cfg_attr(all(not(debug_assertions), windows), windows_subsystem = "windows")]
use std::env;
use std::ffi::{OsStr, OsString};
use std::io::Write;
#[cfg(windows)]
use std::os::windows::process::CommandExt;
use std::panic;
use std::path::{Path, PathBuf};
use std::process::{Child, Stdio};
use clap::Parser;
use const_format::concatcp;
use rand::{seq::SliceRandom, thread_rng};
use shadow_rs::shadow;
use tauri::api::process::Command;
use tauri::Manager;
use tempfile::Builder;
#[cfg(windows)]
/// For Commands on Windows so they dont create terminals
const CREATE_NO_WINDOW: u32 = 0x0800_0000;
/// It's an i32 because we check it through exit codes of the process
const MINIMUM_JAVA_VERSION: i32 = 17;
const JAVA_BIN: &str = if cfg!(windows) { "java.exe" } else { "java" };
static POSSIBLE_TITLES: &[&str] = &[
"Panicking situation",
"looking for spatula",
"never gonna give you up",
"never gonna let you down",
"uwu sowwy",
];
shadow!(build);
// Tauri has a way to return the package.json version, but it's not a constant...
const VERSION: &str = if build::TAG.is_empty() {
build::SHORT_COMMIT
} else {
build::TAG
};
const MODIFIED: &str = if build::GIT_CLEAN { "" } else { "-dirty" };
#[derive(Debug, Parser)]
#[clap(
version = concatcp!(VERSION, MODIFIED),
about
)]
struct Cli {
#[clap(short, long)]
display_console: bool,
#[clap(long)]
launch_from_path: Option<PathBuf>,
#[clap(flatten)]
verbose: clap_verbosity_flag::Verbosity,
}
fn is_valid_path(path: &Path) -> bool {
path.join("slimevr.jar").exists()
}
fn get_launch_path(cli: Cli) -> Option<PathBuf> {
let paths = [
cli.launch_from_path,
// AppImage passes the fakeroot in `APPDIR` env var.
env::var_os("APPDIR").map(|x| PathBuf::from(x)),
env::current_dir().ok(),
// getcwd in Mac can't be trusted, so let's get the executable's path
env::current_exe()
.map(|mut f| {
f.pop();
f
})
.ok(),
Some(PathBuf::from(env!("CARGO_MANIFEST_DIR"))),
// For flatpak container
Some(PathBuf::from("/app/share/slimevr/")),
Some(PathBuf::from("/usr/share/slimevr/")),
];
paths
.into_iter()
.filter_map(|x| x)
.find(|x| is_valid_path(x))
}
fn spawn_java(java: &OsStr, java_version: &OsStr) -> std::io::Result<Child> {
let mut cmd = std::process::Command::new(java);
#[cfg(windows)]
cmd.creation_flags(CREATE_NO_WINDOW);
cmd.arg("-jar")
.arg(java_version)
.stdin(Stdio::null())
.stderr(Stdio::null())
.stdout(Stdio::null())
.spawn()
}
#[cfg(desktop)]
fn show_error(text: &str) -> bool {
use tauri::api::dialog::{
blocking::MessageDialogBuilder, MessageDialogButtons, MessageDialogKind,
};
MessageDialogBuilder::new(
format!(
"SlimeVR GUI crashed - {}",
POSSIBLE_TITLES.choose(&mut thread_rng()).unwrap()
),
text,
)
.buttons(MessageDialogButtons::Ok)
.kind(MessageDialogKind::Error)
.show()
}
#[cfg(mobile)]
fn show_error(text: &str) -> bool {
// needs to do native stuff on mobile
false
}
fn main() {
// Make an error dialog box when panicking
panic::set_hook(Box::new(|panic_info| {
println!("{}", panic_info);
show_error(&panic_info.to_string());
}));
let cli = Cli::parse();
// Set up loggers and global handlers
{
if std::env::var_os("RUST_LOG").is_none() {
std::env::set_var("RUST_LOG", "info")
}
pretty_env_logger::init();
}
// Ensure child processes die when spawned on windows
// and then check for WebView2's existence
#[cfg(windows)]
{
use win32job::{ExtendedLimitInfo, Job};
let mut info = ExtendedLimitInfo::new();
info.limit_kill_on_job_close();
let job = Job::create_with_limit_info(&mut info).expect("Failed to create Job");
job.assign_current_process()
.expect("Failed to assign current process to Job");
// We don't do anything with the job anymore, but we shouldn't drop it because that would
// terminate our process tree. So we intentionally leak it instead.
std::mem::forget(job);
if !webview2_exists() {
// This makes a dialog appear which let's you press Ok or Cancel
// If you press Ok it will open the SlimeVR installer documentation
use tauri::api::dialog::{
blocking::MessageDialogBuilder, MessageDialogButtons, MessageDialogKind,
};
let confirm = MessageDialogBuilder::new("SlimeVR", "Couldn't find WebView2 installed. You can install it with the SlimeVR installer")
.buttons(MessageDialogButtons::OkCancel)
.kind(MessageDialogKind::Error)
.show();
if confirm {
open::that("https://docs.slimevr.dev/server-setup/installing-and-connecting.html#install-the-latest-slimevr-installer").unwrap();
}
return;
}
}
// Spawn server process
let run_path = get_launch_path(cli);
let stdout_recv = if let Some(p) = run_path {
log::info!("Server found on path: {}", p.to_str().unwrap());
// Check if any Java already installed is compatible
let jre = p.join("jre/bin").join(JAVA_BIN);
let java_bin = jre
.exists()
.then(|| jre.into_os_string())
.or_else(|| valid_java_paths().first().map(|x| x.0.to_owned()));
let Some(java_bin) = java_bin else {
show_error(&format!("Couldn't find a compatible Java version, please download Java {} or higher", MINIMUM_JAVA_VERSION));
return;
};
log::info!("Using Java binary: {:?}", java_bin);
let (recv, _child) = Command::new(java_bin.to_str().unwrap())
.current_dir(p)
.args(["-Xmx512M", "-jar", "slimevr.jar", "--no-gui"])
.spawn()
.expect("Unable to start the server jar");
Some(recv)
} else {
log::warn!("No server found. We will not start the server.");
None
};
let builder = tauri::Builder::default()
.plugin(tauri_plugin_window_state::Builder::default().build())
.setup(|app| {
if let Some(mut recv) = stdout_recv {
let app_handle = app.app_handle();
tauri::async_runtime::spawn(async move {
use tauri::api::process::CommandEvent;
while let Some(cmd_event) = recv.recv().await {
let emit_me = match cmd_event {
CommandEvent::Stderr(s) => ("stderr", s),
CommandEvent::Stdout(s) => ("stdout", s),
CommandEvent::Error(s) => ("error", s),
CommandEvent::Terminated(s) => {
("terminated", format!("{s:?}"))
}
_ => ("other", "".to_string()),
};
app_handle
.emit_all("server-status", emit_me)
.expect("Failed to emit");
}
log::error!("Java server receiver died");
app_handle
.emit_all("server-status", ("other", "receiver cancelled"))
.expect("Failed to emit");
});
}
Ok(())
})
//
.run(tauri::generate_context!());
match builder {
#[cfg(windows)]
// Often triggered when the user doesn't have webview2 installed
Err(tauri::Error::Runtime(tauri_runtime::Error::CreateWebview(error))) => {
// I should log this anyways, don't want to dig a grave by not logging the error.
log::error!("CreateWebview error {}", error);
use tauri::api::dialog::{
blocking::MessageDialogBuilder, MessageDialogButtons, MessageDialogKind,
};
let confirm = MessageDialogBuilder::new("SlimeVR", "You seem to have a faulty installation of WebView2. You can check a guide on how to fix that in the docs!")
.buttons(MessageDialogButtons::OkCancel)
.kind(MessageDialogKind::Error)
.show();
if confirm {
open::that("https://docs.slimevr.dev/common-issues.html#webview2-is-missing--slimevr-gui-crashes-immediately--panicked-at--webview2error").unwrap();
}
return;
}
_ => builder.expect("error while running tauri application"),
}
}
#[cfg(windows)]
/// Check if WebView2 exists
fn webview2_exists() -> bool {
use winreg::enums::*;
use winreg::RegKey;
// First on the machine itself
let machine: Option<String> = RegKey::predef(HKEY_LOCAL_MACHINE)
.open_subkey(r"SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}")
.map(|r| r.get_value("pv").ok()).ok().flatten();
let mut exists = false;
if let Some(version) = machine {
exists = version.split('.').any(|x| x != "0");
}
// Then in the current user
if !exists {
let user: Option<String> = RegKey::predef(HKEY_CURRENT_USER)
.open_subkey(
r"Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}",
)
.map(|r| r.get_value("pv").ok())
.ok()
.flatten();
if let Some(version) = user {
exists = version.split('.').any(|x| x != "0");
}
}
exists
}
fn valid_java_paths() -> Vec<(OsString, i32)> {
let mut file = Builder::new()
.suffix(".jar")
.tempfile()
.expect("Couldn't generate .jar file");
file.write_all(include_bytes!("JavaVersion.jar"))
.expect("Couldn't write to .jar file");
let java_version = file.into_temp_path();
// Check if main Java is a supported version
let main_java = if let Ok(java_home) = std::env::var("JAVA_HOME") {
PathBuf::from(java_home)
.join("bin")
.join(JAVA_BIN)
.into_os_string()
} else {
JAVA_BIN.into()
};
if let Some(main_child) = spawn_java(&main_java, java_version.as_os_str())
.expect("Couldn't spawn the main Java binary")
.wait()
.expect("Couldn't execute the main Java binary")
.code()
{
if main_child >= MINIMUM_JAVA_VERSION {
return vec![(main_java, main_child)];
}
}
// Otherwise check if anything else is a supported version
let mut childs = vec![];
cfg_if::cfg_if! {
if #[cfg(target_os = "macos")] {
// macOS JVMs are saved on multiple possible places,
// /Library/Java/JavaVirtualMachines are the ones installed by an admin
// /Users/$USER/Library/Java/JavaVirtualMachines are the ones installed locally by the user
let libs = glob::glob(concatcp!("/Library/Java/JavaVirtualMachines/*/Contents/Home/bin/", JAVA_BIN))
.unwrap()
.filter_map(|res| res.ok());
} else if #[cfg(unix)] {
// Linux JVMs are saved on /usr/lib/jvm from what I found out,
// there is usually a default dir and a default-runtime dir also which are linked
// to the current default runtime and the current default JDK (I think it's JDK)
let libs = glob::glob(concatcp!("/usr/lib/jvm/*/bin/", JAVA_BIN))
.unwrap()
.filter_map(|res| res.ok());
} else {
let libs = which::which_all(JAVA_BIN).unwrap();
}
}
for java in libs {
let res = spawn_java(java.as_os_str(), java_version.as_os_str());
match res {
Ok(child) => childs.push((java.into_os_string(), child)),
Err(e) => println!("Error on trying to spawn a Java executable: {}", e),
}
}
childs
.into_iter()
.filter_map(|(p, mut c)| {
c.wait()
.expect("Failed on executing a Java executable")
.code()
.map(|code| (p, code))
.filter(|(_p, code)| *code >= MINIMUM_JAVA_VERSION)
})
.collect()
}

View File

@@ -0,0 +1,94 @@
{
"package": {
"productName": "slimevr",
"version": "../package.json"
},
"build": {
"distDir": "../dist",
"devPath": "http://localhost:5173",
"beforeDevCommand": "npm run start",
"beforeBuildCommand": "npm run build"
},
"tauri": {
"bundle": {
"active": true,
"targets": "all",
"identifier": "dev.slimevr.SlimeVR",
"icon": ["icons/icon.ico", "icons/icon.png"],
"resources": [],
"externalBin": [],
"copyright": "",
"category": "DeveloperTool",
"shortDescription": "",
"longDescription": "",
"deb": {
"depends": ["openjdk-17-jre-headless"],
"files": {
"/usr/share/slimevr/slimevr.jar": "../../server/build/libs/slimevr.jar"
}
},
"macOS": {
"frameworks": [],
"exceptionDomain": "localhost",
"signingIdentity": null,
"providerShortName": null,
"entitlements": null,
"license": "../../LICENSE-MIT"
},
"windows": {
"certificateThumbprint": null,
"digestAlgorithm": "sha256",
"timestampUrl": ""
}
},
"updater": {
"active": false
},
"allowlist": {
"shell": {
"all": false,
"execute": true
},
"fs": {
"scope": ["$APP/*", "$APP"],
"all": true
},
"path": {
"all": true
},
"os": {
"all": true
},
"window": {
"setResizable": true,
"setTitle": true,
"maximize": true,
"unmaximize": true,
"minimize": true,
"unminimize": true,
"close": true,
"startDragging": true
}
},
"windows": [
{
"title": "SlimeVR",
"width": 1289,
"height": 709,
"minWidth": 880,
"minHeight": 740,
"resizable": true,
"fullscreen": false,
"decorations": false,
"transparent": false,
"fileDropEnabled": false,
"visible": true,
"hiddenTitle": true,
"tabbingIdentifier": "slimevr"
}
],
"security": {
"csp": null
}
}
}

9
gui/src/App.test.tsx Normal file
View File

@@ -0,0 +1,9 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

199
gui/src/App.tsx Normal file
View File

@@ -0,0 +1,199 @@
import { useEffect } from 'react';
import {
BrowserRouter as Router,
Outlet,
Route,
Routes,
} from 'react-router-dom';
import { Home } from './components/home/Home';
import { MainLayoutRoute } from './components/MainLayout';
import { AppContextProvider } from './components/providers/AppContext';
import { GeneralSettings } from './components/settings/pages/GeneralSettings';
import { Serial } from './components/settings/pages/Serial';
import { SettingsLayoutRoute } from './components/settings/SettingsLayout';
import {
useProvideWebsocketApi,
WebSocketApiContext,
} from './hooks/websocket-api';
import { Event, listen } from '@tauri-apps/api/event';
import { OnboardingContextProvider } from './components/onboarding/OnboardingContextProvicer';
import { OnboardingLayout } from './components/onboarding/OnboardingLayout';
import { AutomaticProportionsPage } from './components/onboarding/pages/body-proportions/AutomaticProportions';
import { ManualProportionsPage } from './components/onboarding/pages/body-proportions/ManualProportions';
import { ConnectTrackersPage } from './components/onboarding/pages/ConnectTracker';
import { DonePage } from './components/onboarding/pages/Done';
import { EnterVRPage } from './components/onboarding/pages/EnterVR';
import { HomePage } from './components/onboarding/pages/Home';
import { AutomaticMountingPage } from './components/onboarding/pages/mounting/AutomaticMounting';
import { ManualMountingPage } from './components/onboarding/pages/mounting/ManualMounting';
import { ResetTutorialPage } from './components/onboarding/pages/ResetTutorial';
import { TrackersAssignPage } from './components/onboarding/pages/trackers-assign/TrackerAssignment';
import { WifiCredsPage } from './components/onboarding/pages/WifiCreds';
import { ConfigContextProvider } from './components/providers/ConfigContext';
import { SerialDetectionModal } from './components/SerialDetectionModal';
import { VRCOSCSettings } from './components/settings/pages/VRCOSCSettings';
import { TopBar } from './components/TopBar';
import { TrackerSettingsPage } from './components/tracker/TrackerSettings';
import { useConfig } from './hooks/config';
import { OSCRouterSettings } from './components/settings/pages/OSCRouterSettings';
import { useLocalization } from '@fluent/react';
import { os } from '@tauri-apps/api';
function Layout() {
const { loading } = useConfig();
if (loading) return <></>;
return (
<>
<SerialDetectionModal></SerialDetectionModal>
<Routes>
<Route
path="/"
element={
<MainLayoutRoute>
<Home />
</MainLayoutRoute>
}
/>
<Route
path="/tracker/:trackernum/:deviceid"
element={
<MainLayoutRoute background={false}>
<TrackerSettingsPage />
</MainLayoutRoute>
}
/>
<Route
path="/settings"
element={
<SettingsLayoutRoute>
<Outlet></Outlet>
</SettingsLayoutRoute>
}
>
<Route path="trackers" element={<GeneralSettings />} />
<Route path="serial" element={<Serial />} />
<Route path="osc/router" element={<OSCRouterSettings />} />
<Route path="osc/vrchat" element={<VRCOSCSettings />} />
</Route>
<Route
path="/onboarding"
element={
<OnboardingLayout>
<Outlet></Outlet>
</OnboardingLayout>
}
>
<Route path="home" element={<HomePage />} />
<Route path="wifi-creds" element={<WifiCredsPage />} />
<Route path="connect-trackers" element={<ConnectTrackersPage />} />
<Route path="trackers-assign" element={<TrackersAssignPage />} />
<Route path="enter-vr" element={<EnterVRPage />} />
<Route path="mounting/auto" element={<AutomaticMountingPage />} />
<Route path="mounting/manual" element={<ManualMountingPage />} />
<Route path="reset-tutorial" element={<ResetTutorialPage />} />
<Route
path="body-proportions/auto"
element={<AutomaticProportionsPage />}
/>
<Route
path="body-proportions/manual"
element={<ManualProportionsPage />}
/>
<Route path="done" element={<DonePage />} />
</Route>
<Route path="*" element={<TopBar></TopBar>}></Route>
</Routes>
</>
);
}
export default function App() {
const websocketAPI = useProvideWebsocketApi();
const { l10n } = useLocalization();
useEffect(() => {
os.type()
.then((type) => {
document.body.classList.add(type.toLowerCase());
})
.catch(console.error);
return () => {
os.type()
.then((type) => {
document.body.classList.remove(type.toLowerCase());
})
.catch(console.error);
};
}, []);
useEffect(() => {
const unlisten = listen(
'server-status',
(event: Event<[string, string]>) => {
const [eventType, s] = event.payload;
if ('stderr' === eventType) {
// This strange invocation is what lets us lose the line information in the console
// See more here: https://stackoverflow.com/a/48994308
setTimeout(
console.log.bind(
console,
`%c[SERVER] %c${s}`,
'color:cyan',
'color:red'
)
);
} else if (eventType === 'stdout') {
setTimeout(
console.log.bind(
console,
`%c[SERVER] %c${s}`,
'color:cyan',
'color:green'
)
);
} else if (eventType === 'error') {
console.error('Error: %s', s);
} else if (eventType === 'terminated') {
console.error('Server Process Terminated: %s', s);
} else if (eventType === 'other') {
console.log('Other process event: %s', s);
}
}
);
return () => {
// eslint-disable-next-line @typescript-eslint/no-empty-function
unlisten.then(() => {});
};
}, []);
return (
<Router>
<ConfigContextProvider>
<WebSocketApiContext.Provider value={websocketAPI}>
<AppContextProvider>
<OnboardingContextProvider>
<div className="h-full w-full text-standard bg-background-80 text-background-10">
<div className="flex-col h-full">
{!websocketAPI.isConnected && (
<>
<TopBar></TopBar>
<div className="flex w-full h-full justify-center items-center p-2">
{websocketAPI.isFirstConnection
? l10n.getString('websocket-connecting')
: l10n.getString('websocket-connection_lost')}
</div>
</>
)}
{websocketAPI.isConnected && <Layout></Layout>}
</div>
</div>
</OnboardingContextProvider>
</AppContextProvider>
</WebSocketApiContext.Provider>
</ConfigContextProvider>
</Router>
);
}

View File

@@ -0,0 +1,35 @@
import { useLocalization } from '@fluent/react';
import { useState } from 'react';
import {
RecordBVHRequestT,
RecordBVHStatusT,
RpcMessage,
} from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { BigButton } from './commons/BigButton';
import { RecordIcon } from './commons/icon/RecordIcon';
export function BVHButton(props: React.HTMLAttributes<HTMLButtonElement>) {
const { l10n } = useLocalization();
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [recording, setRecording] = useState(false);
const toggleBVH = () => {
const record = new RecordBVHRequestT();
record.stop = recording;
sendRPCPacket(RpcMessage.RecordBVHRequest, record);
};
useRPCPacket(RpcMessage.RecordBVHStatus, (data: RecordBVHStatusT) => {
setRecording(data.recording);
});
return (
<BigButton
text={l10n.getString(recording ? 'bvh-recording' : 'bvh-start_recording')}
icon={<RecordIcon width={20} />}
onClick={toggleBVH}
className={props.className}
></BigButton>
);
}

View File

@@ -0,0 +1,20 @@
import { useLocalization } from '@fluent/react';
import { ClearDriftCompensationRequestT, RpcMessage } from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { Button } from './commons/Button';
export function ClearDriftCompensationButton() {
const { l10n } = useLocalization();
const { sendRPCPacket } = useWebsocketAPI();
const clearDriftCompensation = () => {
const record = new ClearDriftCompensationRequestT();
sendRPCPacket(RpcMessage.ClearDriftCompensationRequest, record);
};
return (
<Button variant="secondary" onClick={clearDriftCompensation}>
{l10n.getString('widget-drift_compensation-clear')}
</Button>
);
}

View File

@@ -0,0 +1,103 @@
import classNames from 'classnames';
import { ReactNode, useEffect, useState } from 'react';
import {
ResetType,
RpcMessage,
SettingsRequestT,
SettingsResponseT,
} from 'solarxr-protocol';
import { useConfig } from '../hooks/config';
import { useLayout } from '../hooks/layout';
import { BVHButton } from './BVHButton';
import { ResetButton } from './home/ResetButton';
import { Navbar } from './Navbar';
import { TopBar } from './TopBar';
import { DeveloperModeWidget } from './widgets/DeveloperModeWidget';
import { OverlayWidget } from './widgets/OverlayWidget';
import { ClearDriftCompensationButton } from './ClearDriftCompensationButton';
import { useWebsocketAPI } from '../hooks/websocket-api';
export function MainLayoutRoute({
children,
background = true,
widgets = true,
}: {
children: ReactNode;
background?: boolean;
widgets?: boolean;
}) {
const { layoutHeight, ref } = useLayout<HTMLDivElement>();
const { layoutWidth, ref: refw } = useLayout<HTMLDivElement>();
const { config } = useConfig();
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [driftCompensationEnabled, setDriftCompensationEnabled] =
useState(false);
useEffect(() => {
sendRPCPacket(RpcMessage.SettingsRequest, new SettingsRequestT());
}, []);
useRPCPacket(RpcMessage.SettingsResponse, (settings: SettingsResponseT) => {
if (settings.driftCompensation != null)
setDriftCompensationEnabled(settings.driftCompensation.enabled);
});
return (
<>
<TopBar></TopBar>
<div ref={ref} className="flex-grow" style={{ height: layoutHeight }}>
<div className="flex h-full pb-3">
<Navbar></Navbar>
<div
className="flex gap-2 pr-3 w-full"
ref={refw}
style={{ minWidth: layoutWidth }}
>
<div
className={classNames(
'flex flex-col rounded-xl w-full overflow-hidden',
background && 'bg-background-70'
)}
>
{children}
</div>
{widgets && (
<div className="flex flex-col px-2 min-w-[274px] w-[274px] gap-2 pt-2 rounded-xl overflow-y-auto bg-background-70">
<div className="grid grid-cols-2 gap-2 w-full">
<ResetButton
type={ResetType.Quick}
variant="big"
></ResetButton>
<ResetButton
type={ResetType.Full}
variant="big"
></ResetButton>
{config?.debug && (
<ResetButton
type={ResetType.Mounting}
variant="big"
></ResetButton>
)}
<BVHButton
className={config?.debug ? 'col-span-1' : 'col-span-2'}
></BVHButton>
</div>
{driftCompensationEnabled && (
<ClearDriftCompensationButton></ClearDriftCompensationButton>
)}
<div className="w-full">
<OverlayWidget></OverlayWidget>
</div>
{config?.debug && (
<div className="w-full">
<DeveloperModeWidget></DeveloperModeWidget>
</div>
)}
</div>
)}
</div>
</div>
</div>
</>
);
}

View File

@@ -0,0 +1,107 @@
import { useLocalization } from '@fluent/react';
import classnames from 'classnames';
import { ReactNode } from 'react';
import { NavLink, useMatch } from 'react-router-dom';
import { useBodyProportions } from '../hooks/body-proportions';
import { CubeIcon } from './commons/icon/CubeIcon';
import { GearIcon } from './commons/icon/GearIcon';
export function NavButton({
to,
children,
match,
state = {},
icon,
}: {
to: string;
children: ReactNode;
match?: string;
state?: any;
icon: ReactNode;
}) {
const doesMatch = useMatch({
path: match || to,
});
return (
<NavLink
to={to}
state={state}
className={classnames(
'flex flex-col justify-center gap-4 w-[85px] h-[85px] rounded-md group select-text',
{
'bg-accent-background-50 fill-accent-background-20': doesMatch,
'hover:bg-background-70': !doesMatch,
}
)}
>
<div className="flex justify-around">
<div
className={classnames('scale-150', {
'fill-accent-lighter': doesMatch,
'fill-background-50': !doesMatch,
})}
>
{icon}
</div>
</div>
<div
className={classnames('text-center', {
'text-accent-background-10': doesMatch,
'text-background-10': !doesMatch,
})}
>
{children}
</div>
</NavLink>
);
}
export function Navbar() {
const { l10n } = useLocalization();
const { lastUsedPage } = useBodyProportions();
return (
<div className="flex flex-col px-2 pt-2">
<div className="flex flex-col flex-grow gap-2">
<NavButton to="/" icon={<CubeIcon></CubeIcon>}>
{l10n.getString('navbar-home')}
</NavButton>
<NavButton
to={lastUsedPage}
match="/onboarding/body-proportions/*"
state={{ alonePage: true }}
icon={<GearIcon></GearIcon>}
>
{l10n.getString('navbar-body_proportions')}
</NavButton>
<NavButton
to="/onboarding/trackers-assign"
state={{ alonePage: true }}
icon={<GearIcon></GearIcon>}
>
{l10n.getString('navbar-trackers_assign')}
</NavButton>
<NavButton
to="/onboarding/mounting/auto"
match="/onboarding/mounting/*"
state={{ alonePage: true }}
icon={<GearIcon></GearIcon>}
>
{l10n.getString('navbar-mounting')}
</NavButton>
<NavButton to="/onboarding/home" icon={<GearIcon></GearIcon>}>
{l10n.getString('navbar-onboarding')}
</NavButton>
</div>
<NavButton
to="/settings/trackers"
match="/settings/*"
state={{ scrollTo: 'steamvr' }}
icon={<GearIcon></GearIcon>}
>
{l10n.getString('navbar-settings')}
</NavButton>
</div>
);
}

View File

@@ -0,0 +1,158 @@
import { Localized, useLocalization } from '@fluent/react';
import { useState } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import {
NewSerialDeviceResponseT,
RpcMessage,
SerialDeviceT,
} from 'solarxr-protocol';
import { useConfig } from '../hooks/config';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWifiForm, WifiFormData } from '../hooks/wifi-form';
import { BaseModal } from './commons/BaseModal';
import { Button } from './commons/Button';
import { BulbIcon } from './commons/icon/BulbIcon';
import { USBIcon } from './commons/icon/UsbIcon';
import { Input } from './commons/Input';
import { Typography } from './commons/Typography';
export function SerialDetectionModal() {
const { l10n } = useLocalization();
const { config } = useConfig();
const nav = useNavigate();
const { pathname } = useLocation();
const { useRPCPacket } = useWebsocketAPI();
const [isOpen, setOpen] = useState<SerialDeviceT | null>(null);
const [showWifiForm, setShowWifiForm] = useState(false);
const { handleSubmit, submitWifiCreds, formState, hasWifiCreds, control } =
useWifiForm();
const closeModal = () => {
setOpen(null);
setShowWifiForm(false);
};
const openSerial = () => {
nav('/settings/serial', { state: { serialPort: isOpen?.port } });
closeModal();
};
const openWifi = () => {
if (!hasWifiCreds) {
setShowWifiForm(true);
} else {
closeModal();
nav('/onboarding/connect-trackers', { state: { alonePage: true } });
}
};
const modalWifiSubmit = (form: WifiFormData) => {
submitWifiCreds(form);
closeModal();
nav('/onboarding/connect-trackers', { state: { alonePage: true } });
};
useRPCPacket(
RpcMessage.NewSerialDeviceResponse,
({ device }: NewSerialDeviceResponseT) => {
if (
config?.watchNewDevices &&
!['/settings/serial', '/onboarding/connect-trackers'].includes(pathname)
) {
setOpen(device);
}
}
);
return (
<BaseModal isOpen={!!isOpen} onRequestClose={closeModal}>
<div className="flex flex-col gap-3">
{!showWifiForm && (
<>
<div className="flex flex-col items-center gap-3 fill-accent-background-20">
<USBIcon></USBIcon>
<div className="flex flex-col items-center gap-2">
<Typography variant="main-title">
{l10n.getString('serial_detection-new_device-p0')}
</Typography>
<Typography variant="section-title">
{isOpen?.name || 'unknown'}
</Typography>
<Typography variant="standard">
{l10n.getString('serial_detection-new_device-p2')}
</Typography>
</div>
</div>
<Button variant="primary" onClick={openWifi}>
{l10n.getString('serial_detection-open_wifi')}
</Button>
<Button variant="tiertiary" onClick={openSerial}>
{l10n.getString('serial_detection-open_serial')}
</Button>
<Button variant="secondary" onClick={closeModal}>
{l10n.getString('serial_detection-close')}
</Button>
</>
)}
{showWifiForm && (
<form
onSubmit={handleSubmit(modalWifiSubmit)}
className="flex flex-col gap-3"
>
<div className="flex flex-col items-center gap-3">
<BulbIcon></BulbIcon>
<Typography variant="main-title">
{l10n.getString('serial_detection-new_device-p0')}
</Typography>
<Typography variant="standard">
{l10n.getString('serial_detection-new_device-p1')}
</Typography>
</div>
<div className="flex flex-col gap-3 rounded-xl max-w-sm">
<Localized
id="onboarding-wifi_creds-ssid"
attrs={{ placeholder: true, label: true }}
>
<Input
control={control}
rules={{ required: true }}
name="ssid"
type="text"
label="SSID"
placeholder="ssid"
variant="secondary"
/>
</Localized>
<Localized
id="onboarding-wifi_creds-password"
attrs={{ placeholder: true, label: true }}
>
<Input
control={control}
name="password"
type="password"
label="Password"
placeholder="password"
variant="secondary"
/>
</Localized>
</div>
<Button
type="submit"
variant="primary"
disabled={!formState.isValid}
>
{l10n.getString('serial_detection-submit')}
</Button>
<Button variant="secondary" onClick={closeModal}>
{l10n.getString('serial_detection-close')}
</Button>
</form>
)}
</div>
</BaseModal>
);
}

View File

@@ -0,0 +1,106 @@
import { appWindow } from '@tauri-apps/api/window';
import { ReactNode, useEffect, useState } from 'react';
import { NavLink, useMatch } from 'react-router-dom';
import {
RpcMessage,
ServerInfosRequestT,
ServerInfosResponseT,
} from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { CloseIcon } from './commons/icon/CloseIcon';
import { MaximiseIcon } from './commons/icon/MaximiseIcon';
import { MinimiseIcon } from './commons/icon/MinimiseIcon';
import { SlimeVRIcon } from './commons/icon/SimevrIcon';
import { ProgressBar } from './commons/ProgressBar';
import { Typography } from './commons/Typography';
export function TopBar({
progress,
}: {
children?: ReactNode;
progress?: number;
}) {
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [localIp, setLocalIp] = useState<string | null>(null);
const doesMatchSettings = useMatch({
path: '/settings/*',
});
useEffect(() => {
sendRPCPacket(RpcMessage.ServerInfosRequest, new ServerInfosRequestT());
}, []);
useRPCPacket(
RpcMessage.ServerInfosResponse,
({ localIp }: ServerInfosResponseT) => {
if (localIp) setLocalIp(localIp.toString());
}
);
return (
<div data-tauri-drag-region className="flex gap-2 h-[38px] z-50">
<div
className="flex px-2 pb-1 mt-3 justify-around z-50"
data-tauri-drag-region
>
<div className="flex gap-2" data-tauri-drag-region>
<NavLink
to="/"
className="flex justify-around flex-col select-all"
data-tauri-drag-region
>
<SlimeVRIcon></SlimeVRIcon>
</NavLink>
<div className="flex justify-around flex-col" data-tauri-drag-region>
<Typography>SlimeVR</Typography>
</div>
<div className="flex justify-around flex-col text-standard-bold text-status-success bg-status-success bg-opacity-20 rounded-lg px-3 select-text">
{(__VERSION_TAG__ || __COMMIT_HASH__) +
(__GIT_CLEAN__ ? '' : '-dirty')}
</div>
{doesMatchSettings && (
<div className="flex justify-around flex-col text-standard-bold text-status-special bg-status-special bg-opacity-20 rounded-lg px-3 select-text">
{localIp || 'unknown local ip'}
</div>
)}
</div>
</div>
<div
className="flex flex-grow items-center h-full justify-center z-50"
data-tauri-drag-region
>
<div
className="flex max-w-xl h-full items-center w-full"
data-tauri-drag-region
>
{progress !== undefined && (
<ProgressBar progress={progress} height={3} parts={3}></ProgressBar>
)}
</div>
</div>
<div
className="flex justify-end items-center px-2 gap-2 z-50"
data-tauri-drag-region
>
<div
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
onClick={() => appWindow.minimize()}
>
<MinimiseIcon></MinimiseIcon>
</div>
<div
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
onClick={() => appWindow.toggleMaximize()}
>
<MaximiseIcon></MaximiseIcon>
</div>
<div
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
onClick={() => appWindow.close()}
>
<CloseIcon></CloseIcon>
</div>
</div>
</div>
);
}

Some files were not shown because too many files have changed in this diff Show More