Compare commits

...

174 Commits

Author SHA1 Message Date
Erimel
12b5461849 New Pontoon translations (#839) 2023-09-21 21:50:22 -04:00
Meow Wei
9b43f77c31 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-09-21 22:40:19 -03:00
Disappear9
d3fab10ea7 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-09-21 22:40:19 -03:00
ReCluyem
de51497cee Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: ReCluyem <dim.golovaha@yandex.ru>
2023-09-21 22:40:19 -03:00
ReDoX
a19de94130 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-09-21 22:40:19 -03:00
Smeltie
e11b80c8e0 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Smeltie <martijnklerks123@gmail.com>
2023-09-21 22:40:11 -03:00
Erimel
9b3f9eccab Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-09-21 16:42:56 +00:00
namakeingo
3752a11f84 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-09-21 16:42:56 +00:00
FennT
7c89185a40 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-09-21 16:42:56 +00:00
MarcoM
4284e1f52c feat: use path-alias (#771) 2023-09-21 12:42:29 -04:00
Uriel
7a37773441 Fix RPCUtil not checking for the interface before looking for it (#849) 2023-09-20 02:27:29 -04:00
Erimel
4dc8ce979d Add _trackerNum to extensions' displaynames (#848)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-09-19 19:27:10 -04:00
Erimel
6a30da671d Filter out !isSiteLocalAddress from addresses (#847)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-09-17 21:23:37 -04:00
Butterscotch!
3f307605cc Android ByteBuffer and Color fixes (#842) 2023-09-15 22:37:46 -04:00
Erimel
185dc8d674 Fix foot tracker orientation (#843) 2023-09-14 19:46:47 +03:00
Erimel
55d6a01a4c Fix hash diplayName to not change (#841) 2023-09-14 19:46:11 +03:00
Louka Lemire
34f357572a Fix right foot skeleton offset (#840) 2023-09-03 19:09:52 -04:00
Uriel
1aaf01f2ca use devenv for nix develop (#830) 2023-09-03 02:25:56 +03:00
Erimel
bc5f9a17c4 Resets settings (#806) 2023-09-03 02:25:21 +03:00
Kitlith
7231f46804 Track connection by SocketAddress instead of IP address. (#753) 2023-09-03 01:12:55 +03:00
Butterscotch!
b467af8c46 Fix icons and add more & fill in web manifest (#835) 2023-09-03 01:12:06 +03:00
Erimel
4393a6f137 knee-ankle interpolation (#780)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-09-03 01:11:28 +03:00
Uriel
5d773a37ab Fix config shenanigans (#836) 2023-09-02 16:14:41 -04:00
Erimel
17306c1976 Make UDPPackets Floats safe (#832) 2023-09-02 16:02:02 -04:00
Uriel
6dfc8a8101 add import proportions button (#811) 2023-09-02 15:57:00 -04:00
Erimel
ac5a68d33d Convert HumanSkeleton to Kotlin (#783) 2023-08-31 19:19:45 -04:00
Uriel
f2d663c341 Update metainfo (#834) 2023-08-31 22:25:14 +03:00
Erimel
4cab877daa New Pontoon translations (#828) 2023-08-30 13:07:39 -04:00
Disappear9
71366b9d52 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-08-30 13:44:30 -03:00
ReDoX
de2dee45e4 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-08-30 13:44:30 -03:00
Iris
522ec4c96a Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: Iris <vakotoneva@gmail.com>
2023-08-30 13:44:30 -03:00
FennT
dc2937bdb0 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
Co-authored-by: xxlderichard <xxlderichard@gmail.com>
2023-08-30 13:44:25 -03:00
namakeingo
57aaf2e7ee Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-08-30 13:44:25 -03:00
Butterscotch!
b30e4dadbe Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-08-30 13:44:25 -03:00
Meow Wei
9a5c694278 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-08-30 13:44:25 -03:00
ReCluyem
f6bad3f3de Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: ReCluyem <dim.golovaha@yandex.ru>
2023-08-30 13:44:25 -03:00
siofrain
5a4d1399b7 Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: siofrain <maradaichides@gmail.com>
2023-08-30 13:44:25 -03:00
mikk
7fc0c88331 Pontoon: Update Estonian (et) localization of GUI
Co-authored-by: mikk <mikk@mikkmer.me>
2023-08-30 13:44:19 -03:00
Faxty
9eb63b6fb9 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Faxty <xxlegendexx402@gmail.com>
2023-08-28 17:08:00 +00:00
Uriel
50620dd42f Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-08-28 17:08:00 +00:00
Erimel
7b1e4a84d3 Pontoon: Update French (fr) localization of GUI
Co-authored-by: SlimePuppy <minouviolet2007+github@gmail.com>
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-08-28 17:08:00 +00:00
Uriel
917092eb00 tauri should work now (#831) 2023-08-28 20:07:27 +03:00
Uriel
4df2d8771c Small GUI fixes, pt. 2 (#815) 2023-08-19 11:24:36 -04:00
Uriel
a92dec8805 Small fixes pt. 3 (#822) 2023-08-19 18:05:30 +03:00
unlogisch04
942f64a2f1 Add FT232 Serial Chipset to the known list (#823) 2023-08-19 18:04:38 +03:00
Erimel
5211d340d2 Fix the offsets of arms from controllers (#826) 2023-08-19 18:04:21 +03:00
Erimel
f3cefdcc61 Fix receiving OSC (#825) 2023-08-19 18:03:48 +03:00
Uriel
00e0824a84 Fix tauri 2 again (#827) 2023-08-19 04:12:31 +03:00
Erimel
7f9f6f4b18 Fix HMD designation (#821) 2023-08-15 17:43:59 +03:00
Uriel
81bf58f8c0 Fix nix with latest rust update (#820) 2023-08-15 17:43:24 +03:00
Erimel
2d35456645 Fix OSCTrackers yawAlign (#818) 2023-08-13 12:04:28 -04:00
Erimel
25da8715fe New Pontoon translations (#807) 2023-08-12 15:52:13 -04:00
Meow Wei
e366c5909c Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-08-12 19:37:50 +00:00
Disappear9
ed04b70713 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-08-12 19:37:47 +00:00
MenacingExiler
e6bcbd9b3a Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2023-08-12 19:37:43 +00:00
Smeltie
fc44d902f1 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Smeltie <martijnklerks123@gmail.com>
Co-authored-by: Rat. <staf.dierickx@gmail.com>
2023-08-12 19:08:14 +00:00
Kamilake
c975949c35 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-08-12 19:08:14 +00:00
FennT
c611570524 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-08-12 19:08:14 +00:00
Uriel
02e0af8c51 Fix Tauri 2 update (#813) 2023-08-12 22:07:47 +03:00
Erimel
e4e5a884ef Fix UDP timeout overriding error status (#812) 2023-08-12 21:53:15 +03:00
Uriel
6d005223c7 Improve debugging experience (#790) 2023-08-10 20:40:43 +03:00
Erimel
975f340a63 Fix acceleration adjustement and add to visualizer (#804) 2023-08-10 13:30:16 -04:00
Erimel
cdb4d15d60 Improve HMD handling (#801) 2023-08-09 13:33:02 -04:00
MakerKath
f343b0e80c Minor: Updated battery indicator V placement (#810) 2023-08-09 13:25:18 -04:00
Uriel
dad0188854 Update to tauri 2 (#665) 2023-08-06 00:14:24 -04:00
Erimel
8a6778155d New Pontoon translations (#768) 2023-08-05 00:30:11 -04:00
ImUrX
7a968c3086 add spain spanish 2023-08-05 00:43:02 -03:00
menacingexiler
9730c78049 Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2023-08-05 00:37:34 -03:00
FennT
1a57820e31 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-08-05 00:37:34 -03:00
adriangoldenhero
c85facfba7 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: joninsoul <joninsoul@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: ImCapi <imcapivr@gmail.com>
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: adriangoldenhero <adriangoldenhero@gmail.com>
2023-08-05 00:37:25 -03:00
Hornil
72deebdf87 Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: kanava <creedfqr@gmail.com>
Co-authored-by: Hornil <vixlyaev@gmail.com>
2023-08-05 00:37:25 -03:00
beq
5ab5e3e1bc Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: beq <beqbdean@gmail.com>
2023-08-05 00:37:25 -03:00
Meow Wei
7b84b041aa Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-08-05 00:37:21 -03:00
Disappear9
775d78731d Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-08-05 00:37:21 -03:00
ReDoX
ecbe1fb75d Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: ReDoX <redox01@o2.pl>
2023-08-05 00:37:16 -03:00
Butterscotch!
c273594163 Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-08-05 00:37:16 -03:00
Yasu3D
51b1e2170e Pontoon: Update German (de) localization of GUI
Co-authored-by: Yasu3D <l.frisan31@gmail.com>
Co-authored-by: Piranja <info@hollihn.ch>
2023-08-05 00:37:16 -03:00
Erimel
56d114c461 Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-08-05 00:37:05 -03:00
Uriel
0d47d69134 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: KOBRA <carlosthen3190@gmail.com>
2023-08-05 00:36:56 -03:00
namakeingo
329d77d0f4 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-08-05 00:36:47 -03:00
Rat
e7673338b5 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Lualt <officieel.lualt@gmail.com>
Co-authored-by: Rat. <staf.dierickx@gmail.com>
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2023-08-04 12:15:25 +00:00
Eiren Rain
9715326a99 Create FUNDING.yml 2023-08-04 15:15:02 +03:00
Uriel
93c910be6a things I got pinged about to fix (#803) 2023-08-03 22:28:14 +03:00
0forks
06520b9baa Implement packet bundling (#794) 2023-08-02 14:13:56 +03:00
Erimel
23dd9aab18 avoid Git tags breaking (#802) 2023-07-31 16:00:55 +03:00
Collin
0367e3a62d Fix tap to assign and other bugs (#795) 2023-07-31 15:25:49 +03:00
Uriel
f84efc413d Move serial communication to desktop subproject (#756)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2023-07-30 17:48:42 +03:00
Erimel
414482c139 Fix updateTrackersDriftCompensation condition (#796) 2023-07-30 17:46:32 +03:00
Butterscotch!
a6b3465ea5 Quick fix for BVH issues (#798) 2023-07-30 17:45:56 +03:00
Erimel
dddedd9a60 fix upper chest mounting null (#799) 2023-07-30 17:45:20 +03:00
Erimel
d89a4c2704 Send any computed tracker via VMC for props (#719)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-27 15:43:34 +03:00
Erimel
0ad237a219 Improve defaults SkeletonValues & add ratios in gui (#743) 2023-07-27 15:42:28 +03:00
Uriel
9c980f06f9 Make manual proportion list grow if there is space (#784)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2023-07-27 15:41:47 +03:00
Collin
f607693d83 Fix toe snap (#793) 2023-07-25 02:53:46 -04:00
Butterscotch!
27faa1908c Fix Autobone comment on the wrong line (#791) 2023-07-23 13:19:33 -04:00
Uriel
39cd1f9ba9 Autobone config migration is in wrong version (#792) 2023-07-22 03:49:27 -04:00
Erimel
c59f20a79a make sentences consistents (#789) 2023-07-20 16:30:58 -04:00
Erimel
e7de25dfab Clarify "extended" skeleton toggles in GUI (#779) 2023-07-20 15:39:24 -04:00
Erimel
74f1d8ed61 Drift compensation tracker and HMD requirement (#750) 2023-07-20 15:32:52 -04:00
Erimel
ad41c46092 Bundle & Receive OSCTrackers (#773) 2023-07-20 15:25:14 -04:00
Erimel
f3346bbeee Make displayName consistent via hash (#775) 2023-07-20 15:14:52 -04:00
Erimel
ca6f82492d Refresh headShift when setting trackers (#781) 2023-07-20 15:10:08 -04:00
Uriel
02acc6ede1 Improvements on the Autobone GUI (#776)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-07-20 11:19:43 +03:00
Uriel
d9c631fcf6 Fix CI release bundling (#777) 2023-07-20 11:15:55 +03:00
Uriel
ea9df2c31f Add accessibility settings (#774) 2023-07-20 11:14:51 +03:00
Collin
e18bd2d382 Better tap detection (#778) 2023-07-20 11:06:48 +03:00
Uriel
b6a681b1bb Save config and logs on appdata folder (#770) 2023-07-20 11:02:52 +03:00
Uriel
793dd374f8 Update appstream metadata (#762) 2023-07-20 11:00:52 +03:00
Uriel
97b617bb24 Add me to GUI codeowners (#782) 2023-07-20 10:59:47 +03:00
lucas lelievre
1aa32b8264 Fix Scroll on mobile (#785) 2023-07-20 10:59:23 +03:00
Uriel
5c2c6749c3 Move SteamVR code to desktop subproject (#755) 2023-07-19 16:32:00 -04:00
Uriel
e472b12e83 Add rust file logging (#752) 2023-07-19 16:11:48 -04:00
MarcoM
75fc1c37d3 fix: filter non imu in connected tracker (#763) 2023-07-17 17:54:16 -04:00
Erimel
9c4b9b401e Don't create new skeletons (#761) 2023-07-15 23:37:14 -04:00
Erimel
4243951214 Prioritize non-computed head tracker (#751)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-15 23:07:39 -04:00
Collin
2f61d5b4b8 Mocap mode (#749)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Erimel <marioluigivideo@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-14 22:45:18 +03:00
Uriel
35e6b8b721 Manual mounting overhaul (#745) 2023-07-14 22:30:26 +03:00
Eiren Rain
82db6a1ff5 Separate the server in subprojects (#727) 2023-07-14 20:22:49 +02:00
Uriel
17be65d2a2 Merge branch 'main' into subprojects 2023-07-10 15:21:02 -03:00
Erimel
db2f7fbd49 Don't log non-imu trackers' drift (#759) 2023-07-09 20:36:12 -04:00
Uriel
95f1bfd52f Merge branch 'main' into subprojects 2023-07-09 21:30:10 -03:00
Uriel
f0f2731387 second fix 2023-07-07 21:47:16 -03:00
Uriel
5f3182e2c6 fix merge 2023-07-07 21:43:53 -03:00
Uriel
8b4a2843a1 Merge branch 'main' into subprojects 2023-07-07 19:54:50 -03:00
Uriel
efd20ee7b2 Merge branch 'main' into subprojects 2023-07-03 23:10:19 -03:00
ImUrX
c076ebabb3 Merge branch 'main' into subprojects 2023-07-02 17:06:53 -03:00
Uriel
9e650dad08 Merge branch 'main' into subprojects 2023-07-01 23:05:57 -07:00
Uriel
dc22b503e8 Merge branch 'main' into subprojects 2023-06-29 19:04:07 -03:00
Uriel
0bd6a9002a Merge branch 'main' into subprojects 2023-06-26 20:26:28 -03:00
Uriel
9c7558cae8 it works then 2023-06-26 23:07:10 +00:00
ImUrX
d89a53ef44 Merge branch 'main' into subprojects 2023-06-26 17:51:22 -03:00
ImUrX
525f29f3c5 add copy script 2023-06-26 17:50:11 -03:00
Butterscotch!
c94d71c24f Disable gradle config cache 2023-06-24 21:50:37 -04:00
Butterscotch!
31ff3f4868 Re-revert broken dependency update 2023-06-24 21:25:14 -04:00
Butterscotch!
a6911e072c Fix workflow targeting wrong build directory 2023-06-24 20:43:26 -04:00
Butterscotch!
bf062c9b65 Merge remote-tracking branch 'upstream/main' into pr/727 2023-06-24 20:12:21 -04:00
ImUrX
8945e05354 just delete it then lol 2023-06-16 16:15:12 -03:00
ImUrX
ea3cdb7658 pls work? 2023-06-16 16:07:45 -03:00
ImUrX
ae40121a31 pls work 2023-06-16 15:01:17 -03:00
ImUrX
f64a45fb2e fix unresolved reference from merge 2023-06-16 14:50:25 -03:00
ImUrX
cb19aa17cc forgot server folder 2023-06-16 14:48:56 -03:00
ImUrX
4564671b38 Merge branch 'main' into subprojects 2023-06-16 14:45:26 -03:00
ImUrX
60f74d6d5c fix tests 2023-06-16 14:44:14 -03:00
ImUrX
4450260dd0 make softlink valid 2023-06-15 18:02:19 -03:00
ImUrX
55f030a145 spotless 2023-06-15 17:52:09 -03:00
ImUrX
3038de8a5f Merge branch 'main' into subprojects 2023-06-15 17:39:25 -03:00
ImUrX
338e153834 keep fixing gradle script 2023-06-15 16:33:07 -03:00
ImUrX
544efb6efe fetch tags in gh actions 2023-06-15 15:59:43 -03:00
ImUrX
0e64f1241f Merge branch 'main' into subprojects 2023-06-15 15:38:23 -03:00
ImUrX
ffe530dc94 move bridges to desktop 2023-06-15 15:37:21 -03:00
ImUrX
a8ce510f70 fix soft link 2023-06-15 01:16:32 -03:00
ImUrX
1b17fcbec3 android 2023-06-15 01:16:32 -03:00
ImUrX
01f1d2ee56 im having so much fun 2023-06-15 01:16:31 -03:00
ImUrX
d14a7bb5e7 it runs 2023-06-15 01:16:30 -03:00
ImUrX
a14a2ea253 im ruining everything 2023-06-15 01:16:27 -03:00
Butterscotch!
b67de108e7 Bump versions 2023-06-13 20:30:44 -04:00
Butterscotch!
e4a4f38c15 Disable cache on WebView 2023-06-13 20:30:44 -04:00
Butterscotch!
858354eee8 Revert broken dependency update 2023-06-13 20:30:44 -04:00
Butterscotch!
fcb736d371 Fix gradle build somewhat 2023-06-13 20:30:44 -04:00
Butterscotch!
f6d8026761 Don't cache & try more to allow zooming on GUI 2023-06-13 20:30:44 -04:00
Butterscotch!
cb5e27875c Update Gradle stuff & fix compilation + proguard 2023-06-13 20:30:44 -04:00
Butterscotch!
72f506822a Update Gradle stuff 2023-06-13 20:30:43 -04:00
Butterscotch!
4e942fded5 Revert "Work around TransformNode race condition"
This reverts commit 23a2abbbdcc9a070c6fe907ec56bc2d10a607b27.
2023-06-13 20:30:43 -04:00
Butterscotch!
463e558e7f Enable WebView debugging 2023-06-13 20:30:43 -04:00
Butterscotch!
a1db52144a Work around TransformNode race condition 2023-06-13 20:30:43 -04:00
Butterscotch!
81b7ea0967 Fix screen rotation crashing 2023-06-13 20:30:43 -04:00
Butterscotch!
a489e32828 Fix Gradle build 2023-06-13 20:30:43 -04:00
Butterscotch!
6eaf04ba64 Update version code 2023-06-13 20:30:42 -04:00
Butterscotch!
b8ceaa6bc0 Fix OSC Android fuckery 2023-06-13 20:30:42 -04:00
Butterscotch!
6b7c47d36c Add GUI webview & remove titlebar 2023-06-13 20:30:42 -04:00
Butterscotch!
c0f8fb1758 Add locally hosted web GUI 2023-06-13 20:30:42 -04:00
Butterscotch!
07600f0133 Set version number and add icons 2023-06-13 20:30:42 -04:00
Butterscotch!
3634bedef1 Reduce minimum SDK version to 26 2023-06-13 20:30:42 -04:00
Butterscotch!
e864487246 Add basic support for Android
- Add Android build scripts
- Add Android GUI and `MainActivity`
- Fix Java records
- Fix `Path.of` errors
- Update Main and MainActivity to match better
2023-06-13 20:30:42 -04:00
440 changed files with 15070 additions and 16059 deletions

11
.envrc
View File

@@ -1 +1,10 @@
use flake
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
fi
nix_direnv_watch_file rust-toolchain.toml
nix_direnv_watch_file package.json
if ! use flake . --impure
then
echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2
fi

6
.github/CODEOWNERS vendored
View File

@@ -1,9 +1,9 @@
# Global code owner
* @Eirenliel
# Make Loucas the owner of all GUI stuff
/gui/ @loucass003
/package-lock.json @loucass003
# Make Loucas and Uriel the owners of all GUI stuff
/gui/ @loucass003 @ImUrX
/package-lock.json @loucass003 @ImUrX
# Uriel and Erimel responsible for i18n
/gui/public/i18n/ @ImUrX @Louka3000

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
# These are supported funding model platforms
github: SlimeVR

View File

@@ -41,7 +41,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-latest, macos-latest]
os: [ubuntu-22.04, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
@@ -54,11 +54,11 @@ jobs:
with:
submodules: recursive
- if: matrix.os == 'ubuntu-20.04'
- if: matrix.os == 'ubuntu-22.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
packages: libgtk-3-dev webkit2gtk-4.1 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
@@ -91,7 +91,7 @@ jobs:
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr.exe
- if: matrix.os == 'ubuntu-20.04'
- if: matrix.os == 'ubuntu-22.04'
name: Upload a Build Artifact (Linux)
uses: actions/upload-artifact@v3
with:

View File

@@ -22,6 +22,8 @@ jobs:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no
- name: Set up JDK 17
uses: actions/setup-java@v3
@@ -32,6 +34,9 @@ jobs:
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- run: mkdir ./gui/dist && touch ./gui/dist/somefile
shell: bash
- name: Check code formatting
run: ./gradlew spotlessCheck
@@ -46,6 +51,8 @@ jobs:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no
- name: Set up JDK 17
uses: actions/setup-java@v3
@@ -65,7 +72,7 @@ jobs:
# Artifact name
name: "SlimeVR-Server" # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: server/build/libs/*
path: server/desktop/build/libs/*
- name: Upload to draft release
uses: softprops/action-gh-release@v1
@@ -74,11 +81,11 @@ jobs:
draft: true
generate_release_notes: true
files: |
server/build/libs/*
server/desktop/build/libs/*
bundle-linux:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
@@ -89,12 +96,12 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
path: server/desktop/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
packages: libgtk-3-dev webkit2gtk-4.1 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
@@ -105,7 +112,7 @@ jobs:
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "ubuntu-20.04"
shared-key: "ubuntu-22.04"
- name: Use Node.js
uses: actions/setup-node@v3
@@ -134,7 +141,7 @@ jobs:
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
cp $( git rev-parse --show-toplevel )/server/desktop/build/libs/slimevr.jar squashfs-root/slimevr.jar
chmod 644 squashfs-root/slimevr.jar
appimagetool squashfs-root slimevr*.AppImage
@@ -172,7 +179,7 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
path: server/desktop/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
@@ -193,7 +200,7 @@ jobs:
- name: Modify Application
run: |
cd target/release/bundle/macos/slimevr.app/Contents/MacOS
cp $( git rev-parse --show-toplevel )/server/build/libs/slimevr.jar ./
cp $( git rev-parse --show-toplevel )/server/desktop/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 \
@@ -237,7 +244,7 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
path: server/desktop/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
@@ -260,8 +267,8 @@ jobs:
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 server/desktop/build/libs/slimevr.jar ./SlimeVR/slimevr.jar
cp server/core/resources/* ./SlimeVR/
cp target/release/slimevr.exe ./SlimeVR/
7z a -tzip SlimeVR-win64.zip ./SlimeVR/

4
.gitignore vendored
View File

@@ -36,3 +36,7 @@ build/
# direnv has been claimed for Nix usage
.direnv/
.devenv
# Ignore Android local properties
local.properties

36
.husky/pre-commit Executable file
View File

@@ -0,0 +1,36 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
YELLOW="\033[1;33m"
GREEN="\033[1;32m"
RESET="\033[0m"
if git rev-parse -q --verify MERGE_HEAD; then
echo -e "${YELLOW}Skipping precommit hook because of merge${RESET}"
exit 0
fi
APP_PRE_COMMIT_OPTIONS="$(dirname "$0")/_/pre-commit.options"
if ! [ -f "$APP_PRE_COMMIT_OPTIONS" ]; then
echo -e "${YELLOW}\nSkipping pre-commit hook."
echo -e "If you want to use pre-commit for lint-staged, run:\n"
echo -e " ${GREEN}echo -e 'APP_LINT=true;' > ${APP_PRE_COMMIT_OPTIONS}${RESET}"
echo -e "${YELLOW}\nIt will add some delay before committing!\n${RESET}"
exit 0
fi
source $APP_PRE_COMMIT_OPTIONS
if [ -n "${APP_LINT}" ] && [ "${APP_LINT}" == "true" ]; then
echo -e "${GREEN}[husky] [pre-commit] [lint-staged]${RESET}"
case "$(uname -sr)" in
CYGWIN*|MINGW*|MINGW32*|MSYS*)
npx.cmd lint-staged
;;
*)
npx lint-staged
;;
esac
fi

9
.lintstagedrc.mjs Normal file
View File

@@ -0,0 +1,9 @@
export default {
'server/**/*.{java,kt,kts}': (filenames) =>
filenames.map(
(filename) =>
`./gradlew${
process.platform === 'win32' ? '.bat' : ''
} spotlessApply "-PspotlessIdeHook=${filename}"`
),
};

1669
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,3 +11,12 @@ 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"
[profile.release]
lto = "thin"
strip = "debuginfo" # Only affects Unix binaries with DWARF
[patch.crates-io]
tauri = { git = "https://github.com/imurx/tauri", branch = "ipc-backport" }
tauri-runtime = { git = "https://github.com/imurx/tauri", branch = "ipc-backport" }
tauri-build = { git = "https://github.com/imurx/tauri", branch = "ipc-backport" }

View File

@@ -1,26 +1,3 @@
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlinx:atomicfu-gradle-plugin:0.20.2")
}
}
plugins {
kotlin("jvm") version "1.8.21"
}
subprojects {
plugins.apply("kotlinx-atomicfu")
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
repositories {
mavenCentral()
}
kotlin {
jvmToolchain(17)
id("org.ajoberstar.grgit") version "5.2.0"
}

View File

@@ -30,7 +30,7 @@ work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
<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>
<display_length compare="ge">300</display_length>
</recommends>
<supports>
<control>pointing</control>
@@ -44,12 +44,10 @@ work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
<description>
<p>
<code>SlimeVR</code>
is a set of open hardware sensors and open source software that facilitates full-body
SlimeVR 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>
@@ -60,6 +58,25 @@ work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
</screenshot>
</screenshots>
<releases>
<release version="0.9.1" date="2023-08-30"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.1</url></release>
<release version="0.9.1-rc.4" type="development" date="2023-08-28"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.1-rc.4</url></release>
<release version="0.9.1-rc.3" type="development" date="2023-08-19"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.1-rc.3</url></release>
<release version="0.9.1-rc.2" type="development" date="2023-08-15"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.1-rc.2</url></release>
<release version="0.9.1-rc.1" type="development" date="2023-08-13"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.1-rc.1</url></release>
<release version="0.9.0" date="2023-08-05"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.0</url></release>
<release version="0.9.0-rc.2" type="development" date="2023-08-02"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.0-rc.2</url></release>
<release version="0.9.0-rc.1" type="development" date="2023-07-31"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.9.0-rc.1</url></release>
<release version="0.8.3" date="2023-07-09"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.3</url></release>
<release version="0.8.2" date="2023-07-09"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.2</url></release>
<release version="0.8.2-rc.1" type="development" date="2023-07-07"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.2-rc.1</url></release>
<release version="0.8.1" date="2023-07-04"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.1</url></release>
<release version="0.8.0" date="2023-06-22"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.0</url></release>
<release version="0.8.0-rc.3" type="development" date="2023-06-20"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.0-rc.3</url></release>
<release version="0.8.0-rc.2" type="development" date="2023-06-15"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.0-rc.2</url></release>
<release version="0.8.0-rc.1" type="development" date="2023-06-01"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.8.0-rc.1</url></release>
<release version="0.7.1" date="2023-04-14"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.7.1</url></release>
<release version="0.7.0" date="2023-04-11"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.7.0</url></release>
<release version="0.6.3" date="2023-02-22"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.3</url></release>
<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>

312
flake.lock generated
View File

@@ -1,5 +1,59 @@
{
"nodes": {
"devenv": {
"inputs": {
"flake-compat": "flake-compat",
"nix": "nix",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1692203620,
"narHash": "sha256-9SF/H8oCWv166q5o+JtV7tK+koydgFMu02HCB27UWpU=",
"owner": "cachix",
"repo": "devenv",
"rev": "eee80243720b7f284128873a9694a520d9967b2f",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1690933134,
"narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -19,15 +73,12 @@
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"type": "github"
},
"original": {
@@ -36,28 +87,111 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"devenv",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1660459072,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"lowdown-src": {
"flake": false,
"locked": {
"lastModified": 1633514407,
"narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
"owner": "kristapsdz",
"repo": "lowdown",
"rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
"type": "github"
},
"original": {
"owner": "kristapsdz",
"repo": "lowdown",
"type": "github"
}
},
"mk-shell-bin": {
"locked": {
"lastModified": 1677004959,
"narHash": "sha256-/uEkr1UkJrh11vD02aqufCxtbF5YnhRTIKlx5kyvf+I=",
"owner": "rrbutani",
"repo": "nix-mk-shell-bin",
"rev": "ff5d8bd4d68a347be5042e2f16caee391cd75887",
"type": "github"
},
"original": {
"owner": "rrbutani",
"repo": "nix-mk-shell-bin",
"type": "github"
}
},
"nix": {
"inputs": {
"lowdown-src": "lowdown-src",
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression"
},
"locked": {
"lastModified": 1676545802,
"narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=",
"owner": "domenkozar",
"repo": "nix",
"rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f",
"type": "github"
},
"original": {
"owner": "domenkozar",
"ref": "relaxed-flakes",
"repo": "nix",
"type": "github"
}
},
"nix2container": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1688922987,
"narHash": "sha256-RnQwrCD5anqWfyDAVbfFIeU+Ha6cwt5QcIwIkaGRzQw=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "ab381a7d714ebf96a83882264245dbd34f0a7ec8",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1686412476,
"narHash": "sha256-inl9SVk6o5h75XKC79qrDCAobTD1Jxh6kVYTZKHzewA=",
"lastModified": 1678875422,
"narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "21951114383770f96ae528d0ae68824557768e81",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1681358109,
"narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9",
"rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
"type": "github"
},
"original": {
@@ -67,32 +201,109 @@
"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"
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1686364106,
"narHash": "sha256-h4gCQg+jizmAbdg6UPlhxQVk4A7Ar/zoLa0wx3wBya0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ba011dd1c5028dbb880bc3b0f427e0ff689e6203",
"dir": "lib",
"lastModified": 1690881714,
"narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9e1960bc196baf6881340d53dccb203a951745a2",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-regression": {
"locked": {
"lastModified": 1643052045,
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1685801374,
"narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1692356644,
"narHash": "sha256-AYkPFT+CbCVSBmh0WwIzPpwhEJ4Yy3A7JZvUkGJIg5o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8ecc900b2f695d74dea35a92f8a9f9b32c8ea33d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": [
"devenv",
"flake-compat"
],
"flake-utils": "flake-utils",
"gitignore": "gitignore",
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1688056373,
"narHash": "sha256-2+SDlNRTKsgo3LBRiMUcoEUb6sDViRNQhzJquZ4koOI=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "5843cf069272d92b60c3ed9e55b7a8989c01d4c7",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"flake-parts": "flake-parts",
"mk-shell-bin": "mk-shell-bin",
"nix2container": "nix2container",
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -107,21 +318,6 @@
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

172
flake.nix
View File

@@ -1,87 +1,109 @@
{
description = "Server app for SlimeVR ecosystem";
description = "Affordable full-body tracking for VR!";
inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
devenv.url = "github:cachix/devenv";
nix2container.url = "github:nlewo/nix2container";
nix2container.inputs.nixpkgs.follows = "nixpkgs";
mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin";
};
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
nixConfig = {
extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=";
extra-substituters = "https://devenv.cachix.org";
};
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
outputs = inputs @ {flake-parts, ...}:
flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
inputs.devenv.flakeModule
];
systems = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
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
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
perSystem = {
config,
self',
inputs',
pkgs,
system,
lib,
...
}: {
# Per-system attributes can be defined here. The self' and inputs'
# module parameters provide easy access to attributes of the same
# system.
# Some nice things to have
exa
fd
# Equivalent to inputs'.nixpkgs.legacyPackages.hello;
# packages.default = pkgs.hello;
jdk17 # JDK17
nodejs
gradle
];
in {
devShells.default = pkgs.mkShell {
nativeBuildInputs =
nativeBuildInputs
++ [
];
buildInputs =
buildInputs
++ [
rustTarget
devenv.shells.default = {
name = "slimevr";
imports = [
# This is just like the imports in devenv.nix.
# See https://devenv.sh/guides/using-with-flake-parts/#import-a-devenv-module
# ./devenv-foo.nix
];
# https://devenv.sh/reference/options/
packages =
[
]
++ lib.optionals pkgs.stdenv.isLinux (with pkgs; [
appimagekit
atk
cairo
dbus
dbus.lib
dprint
gdk-pixbuf
glib.out
gobject-introspection
gtk3
harfbuzz
libffi
libsoup_3
openssl.out
pango
pkg-config
treefmt
webkitgtk_4_1
zlib
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
librsvg
freetype
expat
])
++ lib.optionals pkgs.stdenv.isDarwin [
pkgs.darwin.apple_sdk.frameworks.Security
];
shellHook = ''
alias ls=exa
alias find=fd
languages.java = {
enable = true;
gradle.enable = true;
jdk.package = pkgs.jdk17;
};
languages.kotlin.enable = true;
languages.javascript = {
enable = true;
corepack.enable = true;
};
languages.rust.enable = true;
enterShell = with pkgs; ''
'';
};
}
);
};
flake = {
# The usual flake attributes can be defined here, including system-
# agnostic ones like nixosModule and system-enumerating ones, although
# those are more easily expressed in perSystem.
};
};
}

View File

@@ -8,3 +8,12 @@ org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAME
kotlin.code.style=official
# https://github.com/Kotlin/kotlinx-atomicfu#atomicfu-compiler-plugin
kotlinx.atomicfu.enableJvmIrTransformation=true
android.useAndroidX=true
android.nonTransitiveRClass=true
org.gradle.unsafe.configuration-cache=false
kotlinVersion=1.9.0-RC
spotlessVersion=6.12.0
shadowJarVersion=8.1.1
buildconfigVersion=3.1.0

Binary file not shown.

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

7
gradlew vendored
View File

@@ -85,6 +85,9 @@ done
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# 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
@@ -194,10 +197,6 @@ if "$cygwin" || "$msys" ; then
done
fi
# 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"'
# 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

0
gradlew.bat vendored Normal file → Executable file
View File

View File

@@ -4,7 +4,7 @@
"es2021": true,
"jest": true
},
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@dword-design/import-alias/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
@@ -30,6 +30,14 @@
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
],
"@dword-design/import-alias/prefer-alias": [
"error",
{
"alias": {
"@": "./src/"
}
}
]
},
"settings": {

6
gui/.gitignore vendored
View File

@@ -25,5 +25,9 @@ yarn-error.log*
*.log
# vite
/dist
/stats.html
/dist
# eslint
.eslintcache

5
gui/.lintstagedrc.mjs Normal file
View File

@@ -0,0 +1,5 @@
export default {
"**/*.{ts,tsx}": () => "tsc -p tsconfig.json --noEmit",
"**/*.{js,jsx,ts,tsx}": "eslint --max-warnings=0 --cache --fix",
"**/*.{js,jsx,ts,tsx,css,md,json}": "prettier --write"
};

View File

@@ -8,12 +8,18 @@
"@fontsource/poppins": "^4.5.8",
"@formatjs/intl-localematcher": "^0.2.32",
"@react-three/fiber": "^8.10.0",
"@tauri-apps/api": "^1.4.0",
"@tauri-apps/api": "^2.0.0-alpha.5",
"@tauri-apps/plugin-app": "github:tauri-apps/tauri-plugin-app#v2",
"@tauri-apps/plugin-dialog": "github:tauri-apps/tauri-plugin-dialog#v2",
"@tauri-apps/plugin-fs": "github:tauri-apps/tauri-plugin-fs#v2",
"@tauri-apps/plugin-os": "github:tauri-apps/tauri-plugin-os#v2",
"@tauri-apps/plugin-shell": "github:tauri-apps/tauri-plugin-shell#v2",
"@tauri-apps/plugin-window": "github:tauri-apps/tauri-plugin-window#v2",
"@vitejs/plugin-react": "^3.0.0",
"browser-fs-access": "^0.34.1",
"browserslist": "^4.18.1",
"classnames": "^2.3.1",
"eslint-config-react-app": "^7.0.0",
"file-saver": "^2.0.5",
"flatbuffers": "^22.10.26",
"identity-obj-proxy": "^3.0.0",
"intl-pluralrules": "^1.3.1",
@@ -29,10 +35,11 @@
"react-modal": "3.15.1",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.2.2",
"semver": "^7.5.0",
"semver": "^7.5.3",
"solarxr-protocol": "file:../solarxr-protocol",
"three": "^0.148.0",
"typescript": "^4.6.3"
"ts-pattern": "^5.0.1",
"typescript": "^5.1.6"
},
"scripts": {
"start": "vite --force",
@@ -40,8 +47,8 @@
"dev": "tauri dev",
"skipbundler": "tauri build -b none",
"tauri": "tauri",
"lint": "eslint --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && prettier --check \"src/**/*.{js,jsx,ts,tsx,css,md,json}\"",
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx,json}\"",
"lint": "tsc --noEmit && eslint --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && prettier --check \"src/**/*.{js,jsx,ts,tsx,css,md,json}\"",
"lint:fix": "tsc --noEmit && eslint --fix --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && npm run format",
"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"
@@ -64,29 +71,31 @@
]
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.0",
"@tauri-apps/cli": "^1.4.0",
"@dword-design/eslint-plugin-import-alias": "^4.0.8",
"@tailwindcss/forms": "^0.5.3",
"@tauri-apps/cli": "^2.0.0-alpha.10",
"@types/file-saver": "^2.0.5",
"@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.59.6",
"@typescript-eslint/parser": "^5.59.0",
"@typescript-eslint/eslint-plugin": "^5.60.1",
"@typescript-eslint/parser": "^5.60.1",
"autoprefixer": "^10.4.4",
"cross-env": "^7.0.3",
"eslint": "^8.18.0",
"eslint": "^8.44.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-import-resolver-typescript": "^3.1.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.6.0",
"eslint-plugin-react": "^7.30.1",
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.12",
"prettier": "^2.7.1",
"postcss": "^8.4.24",
"prettier": "^2.8.8",
"pretty-quick": "^3.1.3",
"rollup-plugin-visualizer": "^5.9.2",
"tailwind-gradient-mask-image": "^1.0.0",
"tailwindcss": "^3.3.1",
"vite": "^4.0.3"
"tailwindcss": "^3.3.2",
"vite": "^4.3.9"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,7 +7,7 @@
## Websocket (server) status
websocket-connecting = جاري التوصيل بالسيرفر
websocket-connecting = يتم التوصيل بالسيرفر
websocket-connection_lost = انقطع الاتصال بالسيرفر. يتم إعادة التوصيل...
## Update notification
@@ -122,6 +122,10 @@ widget-overlay-is_mirrored_label = عكس تراكب الشاشة
widget-drift_compensation-clear = حذف تعويض الانجراف
## Widget: Clear Reset Mounting
widget-clear_mounting = مسح إعادة تعيين التركيب
## Widget: Developer settings
widget-developer_mode = وضع المطوّر
@@ -165,9 +169,15 @@ tracker-table-column-url = عنوان URL
## Tracker rotation
tracker-rotation-front = المقدمة
tracker-rotation-front_left = أمامي-يسار
tracker-rotation-front_right = أمامي -يمين
tracker-rotation-left = اليسار
tracker-rotation-right = اليمين
tracker-rotation-back = الخلف
tracker-rotation-back_left = الخلف اليسار
tracker-rotation-back_right = الخلف الأيمن
tracker-rotation-custom = مخصص
tracker-rotation-overriden = (تم تجاوزه عن طريق إعادة الضبط المتصاعد)
## Tracker information
@@ -272,6 +282,8 @@ settings-sidebar-osc_router = راوتر أوه أس سي
settings-sidebar-osc_trackers = أجهزة تعقب في ار تشات أوه أس سي
settings-sidebar-utils = الأدوات المساعدة
settings-sidebar-serial = وحدة التحكم التسلسلية
settings-sidebar-appearance = مظهر
settings-sidebar-notifications = إشعارات
## SteamVR settings
@@ -336,14 +348,36 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = يمكن أن ي
settings-general-fk_settings-leg_tweak-toe_snap-description = الانجذاب إلى أصابع القدم يحاول تخمين دوران قدميك إذا لم تكن أجهزة تعقب القدم قيد الاستخدام.
settings-general-fk_settings-leg_tweak-foot_plant-description = تثبيت اصبع القدم يحاول تخمين دوران قدميك إذا لم تكن أجهزة تعقب القدم قيد الاستخدام.
settings-general-fk_settings-leg_fk = تعقب الساق
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = تمكين إعادة ضبط تركيب القدمين عن طريق المشي على رؤوس الأصابع.
settings-general-fk_settings-leg_fk-reset_mounting_feet = إعادة تعيين تركيب القدمين
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-arm_fk-reset_mode-description = قم بتغيير وضع الذراع المتوقع لإعادة ضبط المتصاعد.
settings-general-fk_settings-arm_fk-back = العودة
settings-general-fk_settings-arm_fk-back-description = الوضع الافتراضي، مع وضع الذراعين العلويين إلى الخلف والساعدين للأمام.
settings-general-fk_settings-arm_fk-tpose_up = تي بوز (أعلى)
settings-general-fk_settings-arm_fk-tpose_up-description = يتوقع أن تكون ذراعيك لأسفل على الجانبين أثناء إعادة الضبط الكامل ، و 90 درجة حتى الجانبين أثناء إعادة ضبط التركيب.
settings-general-fk_settings-arm_fk-tpose_down = تي بوز (لأسفل)
settings-general-fk_settings-arm_fk-tpose_down-description = يتوقع أن تكون ذراعيك 90 درجة لأعلى على الجانبين أثناء إعادة الضبط الكامل ، ولأسفل على الجانبين أثناء إعادة ضبط التركيب.
settings-general-fk_settings-arm_fk-forward = أمامي
settings-general-fk_settings-arm_fk-forward-description = يتوقع أن تكون ذراعيك 90 درجة للأمام. مفيد ل VTubing.
settings-general-fk_settings-skeleton_settings-toggles = تبديل الهيكل العظمي
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-skeleton_settings-extended_spine_model = نموذج العمود الفقري الممتد
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = نموذج الحوض الممتد
settings-general-fk_settings-skeleton_settings-extended_knees_model = نموذج الركبة الممتدة
settings-general-fk_settings-skeleton_settings-ratios = نسب الهيكل العظمي
settings-general-fk_settings-skeleton_settings-ratios-description = تغيير قيم إعدادات الهيكل العظمي. قد تحتاج إلى ضبط النسب الخاصة بك بعد تغييرها.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = خصص الخصر من الصدر إلى الورك
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = خصص الخصر من الصدر إلى الساقين
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = خصص الورك من الصدر إلى الساقين
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = خصص الورك من الخصر إلى الساقين
settings-general-fk_settings-skeleton_settings-interp_hip_legs = متوسط انعراج الفخذ وتدحرج مع الساقين'
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = متوسط الانحراف وتدحرج مع الكاحلين
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = متوسط انحراف الركبتين ولفة مع الكاحلين
settings-general-fk_settings-self_localization-title = وضع Mocap
settings-general-fk_settings-self_localization-description = يسمح وضع Mocap للهيكل العظمي بتعقب موضعه تقريبا بدون سماعة رأس أو أجهزة تعقب أخرى. لاحظ أن هذا يتطلب أجهزة تعقب القدمين والرأس للعمل ولا تزال تجريبية.
settings-general-fk_settings-vive_emulation-title = محاكاة فايف
settings-general-fk_settings-vive_emulation-description = محاكاة مشاكل تعقب الخصر التي تعاني منها أجهزة تعقب فايف. هذه مزحة وتجعل التتبع أسوأ.
settings-general-fk_settings-vive_emulation-label = تمكين محاكاة فايف
@@ -364,6 +398,17 @@ settings-general-gesture_control-taps =
[many] { $amount } نقرات
*[other] { $amount } نقرات
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[zero] لا أجهزة تعقب
[one] جهاز تعقب واحد
[two] جهازي تعقب
[few] { "" }
[many] { "" }
*[other] { $amount } أجهزة تعقب
}
settings-general-gesture_control-yawResetEnabled = تمكين النقر لإعادة التعيين الانعراج
settings-general-gesture_control-yawResetDelay = إعادة تعيين التأخير الانعراج
settings-general-gesture_control-yawResetTaps = عدد النقرات لإعادة تعيين الانعراج
@@ -373,13 +418,32 @@ settings-general-gesture_control-fullResetTaps = عدد النقرات لإعا
settings-general-gesture_control-mountingResetEnabled = تمكين النقر لإعادة تعيين التركيب
settings-general-gesture_control-mountingResetDelay = تأخير إعادة تعيين التركيب
settings-general-gesture_control-mountingResetTaps = نقرات لإعادة تعيين التركيب
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = أجهزة تعقب فوق قيمة القطع
settings-general-gesture_control-numberTrackersOverThreshold-description = قم بزيادة هذه القيمة إذا كان اكتشاف النقر لا يعمل. لا تقم بزيادته فوق ما هو مطلوب لجعل اكتشاف النقر يعمل لأنه قد يتسبب في المزيد من الإيجابيات الخاطئة.
## Interface settings
## Appearance settings
settings-general-interface = واجهة المستخدم
settings-interface-appearance = مظهر
settings-general-interface-dev_mode = وضع المطوّر
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
settings-general-interface-dev_mode-label = وضع المطوّر
settings-general-interface-theme = موضوع اللون
settings-general-interface-lang = اختر اللغة
settings-general-interface-lang-description = قم بتغيير اللغة الافتراضية التي تريد استخدامها.
settings-general-interface-lang-placeholder = اختر اللغة التي تريد استخدامها
# Keep the font name untranslated
settings-interface-appearance-font = خط واجهة المستخدم الرسومية
settings-interface-appearance-font-description = هذا يغير الخط المستخدم من قبل الواجهة.
settings-interface-appearance-font-placeholder = الخط الافتراضي
settings-interface-appearance-font-os_font = خط نظام التشغيل
settings-interface-appearance-font-slime_font = الخط الافتراضي
settings-interface-appearance-font_size = قياس الخط الأساسي
settings-interface-appearance-font_size-description = يؤثر هذا على حجم خط الواجهة بأكملها باستثناء لوحة الإعدادات هذه.
## Notification settings
settings-interface-notifications = إشعارات
settings-general-interface-serial_detection = الكشف عن جهاز تسلسلي
settings-general-interface-serial_detection-description = سيعرض هذا الخيار نافذة منبثقة في كل مرة تقوم فيها بتوصيل جهاز تسلسلي جديد يمكن أن يكون جهاز تعقب. يساعد في تحسين عملية إعداد جهاز التعقب.
settings-general-interface-serial_detection-label = الكشف عن جهاز تسلسلي
@@ -387,10 +451,6 @@ settings-general-interface-feedback_sound = صوت ردود الفعل
settings-general-interface-feedback_sound-description = سيصدر هذا الخيار صوتًا عند تشغيل إعادة الضبط
settings-general-interface-feedback_sound-label = صوت ردود الفعل
settings-general-interface-feedback_sound-volume = حجم صوت ردود الفعل
settings-general-interface-theme = موضوع اللون
settings-general-interface-lang = اختر اللغة
settings-general-interface-lang-description = قم بتغيير اللغة الافتراضية التي تريد استخدامها.
settings-general-interface-lang-placeholder = اختر اللغة التي تريد استخدامها
## Serial settings
@@ -623,8 +683,8 @@ onboarding-assignment_tutorial = كيفية تحضير جهاز تعقب Slime
onboarding-assignment_tutorial-first_step = 1. ضع ملصق جزء الجسم (إذا كان لديك واحد) على جهاز التعقب وفقا لاختيارك
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = ملصق
onboarding-assignment_tutorial-second_step = 2. قم بتوصيل الشريط بجهاز التعقب الخاص بك ، مع الحفاظ على جانب الخطاف والحلقة من وجه الشريط في الاتجاه التالي:
onboarding-assignment_tutorial-second_step-continuation = يجب أن يكون جانب الخطاف والحلقة للامتداد في هذا الاتجاه:
onboarding-assignment_tutorial-second_step-v2 = 2. قم بتوصيل الشريط بجهاز التعقب، مع الحفاظ على جانب الفيلكرو من الشريط في نفس اتجاه وجه السلايم لجهاز التعقب:
onboarding-assignment_tutorial-second_step-continuation-v2 = يجب أن يكون جانب الفيلكرو للامتداد متجها للأعلى مثل الصورة التالية:
onboarding-assignment_tutorial-done = وضعت الملصقات والأشرطة!
## Tracker assignment setup
@@ -768,12 +828,18 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = النسب التلقائية
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = الموصى به
onboarding-choose_proportions-auto_proportions-description = سيقدر هذا النسب الخاصة بك عن طريق تسجيل عينة من حركاتك وتمريرها من خلال برنامج
onboarding-choose_proportions-auto_proportions-descriptionv2 =
سيؤدي ذلك إلى تخمين نسبك عن طريق تسجيل عينة من تحركاتك وتمريرها عبر خوارزمية.
<b>هذا يتطلب توصيل HMD الخاص بك ب SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = النسب اليدوية
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = للمسات الصغيرة
onboarding-choose_proportions-manual_proportions-description = سيسمح لك بتعديل النسب يدويًا عن طريق تعديلها مباشرة
onboarding-choose_proportions-export = تصدير النسب
onboarding-choose_proportions-import = استيراد النسب
onboarding-choose_proportions-import-success = تم استيراده
onboarding-choose_proportions-import-failed = فشل
onboarding-choose_proportions-file_type = ملف نسب الجسم
## Tracker manual proportions setup
@@ -804,6 +870,18 @@ onboarding-automatic_proportions-requirements-description =
تعمل أجهزة التتبع وسماعات الرأس بشكل صحيح داخل سرفر سلايم في ار .
تقوم سماعة الرأس الخاصة بك بالإبلاغ عن بيانات الموقع إلى سرفر سلايم في ار (وهذا يعني بشكل عام تشغيل سلايم في ار وتوصيله بـ سلايم في ار باستخدام برنامج تشغيل ستيم في ار من سلايم في ار ).
onboarding-automatic_proportions-requirements-next = لقد قرأت المتطلبات
onboarding-automatic_proportions-check_height-title = تحقق من طولك
onboarding-automatic_proportions-check_height-description = نستخدم طولك كأساس لقياساتنا باستخدام ارتفاع HMD كتقريب لطولك الفعلي ، ولكن من الأفضل التحقق مما إذا كانت صحيحة بنفسك!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = يرجى الضغط على الزر أثناء الوقوف <u>في وضع مستقيم</u> لحساب طولك. لديك 3 ثوان بعد الضغط على الزر!
onboarding-automatic_proportions-check_height-fetch_height = أنا واقف!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = مجهول
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = طولك من خلال HMD
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = لذا فإن طولك الفعلي هو
onboarding-automatic_proportions-check_height-next_step = انهم بخير
onboarding-automatic_proportions-start_recording-title = استعد للتحرك
onboarding-automatic_proportions-start_recording-description = سنقوم الآن بتسجيل بعض الوضعيات والحركات المحددة. ستتم مطالبتك بذلك في الشاشة التالية. كن مستعدا للبدء عند الضغط على الزر!
onboarding-automatic_proportions-start_recording-next = بدء التسجيل
@@ -837,6 +915,10 @@ onboarding-automatic_proportions-verify_results-redo = إعادة التسجيل
onboarding-automatic_proportions-verify_results-confirm = تبدو صحيحة
onboarding-automatic_proportions-done-title = تم قياس الجسم و حفظه.
onboarding-automatic_proportions-done-description = اكتملت معايرة نسب جسمك!
onboarding-automatic_proportions-error_modal =
<b>تحذير:</b> تم العثور على خطأ أثناء تقدير النسب!
يرجى <docs>التحقق من المستندات</docs> أو الانضمام إلى <discord>Discord</discord> للحصول على المساعدة ^_^
onboarding-automatic_proportions-error_modal-confirm = مفهوم!
## Home

View File

@@ -36,6 +36,7 @@ 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-UPPER_CHEST = Obere Brust
body_part-CHEST = Brust
body_part-WAIST = Taille
body_part-HIP = Hüfte
@@ -53,8 +54,9 @@ skeleton_bone-NONE = Keine
skeleton_bone-HEAD = Kopfverschiebung
skeleton_bone-NECK = Halslänge
skeleton_bone-torso_group = Oberkörperhöhe
skeleton_bone-CHEST = Brustabstand
skeleton_bone-UPPER_CHEST = Obere Brustlänge
skeleton_bone-CHEST_OFFSET = Brustversatz
skeleton_bone-CHEST = Brustabstand
skeleton_bone-WAIST = Taillenabstand
skeleton_bone-HIP = Hüftlänge
skeleton_bone-HIP_OFFSET = Hüftversatz
@@ -120,6 +122,9 @@ widget-overlay-is_mirrored_label = Visualisierung spiegeln
widget-drift_compensation-clear = Driftkompensation zurücksetzen
## Widget: Clear Reset Mounting
## Widget: Developer settings
widget-developer_mode = Entwicklermodus
@@ -163,9 +168,15 @@ tracker-table-column-url = Adresse
## Tracker rotation
tracker-rotation-front = Vorne
tracker-rotation-front_left = Vorne-Links
tracker-rotation-front_right = Vorne-Rechts
tracker-rotation-left = Links
tracker-rotation-right = Rechts
tracker-rotation-back = Hinten
tracker-rotation-back_left = Hinten-Links
tracker-rotation-back_right = Hinten-Rechts
tracker-rotation-custom = Benutzerdefiniert
tracker-rotation-overriden = (von Befestigungs-Reset überschrieben)
## Tracker information
@@ -269,6 +280,8 @@ settings-sidebar-osc_router = OSC-Router
settings-sidebar-osc_trackers = VRChat OSC-Tracker
settings-sidebar-utils = Werkzeuge
settings-sidebar-serial = Serielle Konsole
settings-sidebar-appearance = Erscheinungsbild
settings-sidebar-notifications = Benachrichtigungen
## SteamVR settings
@@ -338,9 +351,10 @@ settings-general-fk_settings-arm_fk-description = Ändern Sie die Art und Weise,
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-skeleton_settings-extended_spine_model = Erweitertes Wirbelsäulen-Modell
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Erweitertes Pelvis-Modell
settings-general-fk_settings-skeleton_settings-extended_knees_model = Erweitertes Knie-Modell
settings-general-fk_settings-self_localization-title = Motion-Capture-Modus
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
@@ -357,6 +371,13 @@ settings-general-gesture_control-taps =
[one] 1-mal antippen
*[other] { $amount }-mal antippen
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] Tracker
*[other] Tracker
}
settings-general-gesture_control-yawResetEnabled = Horizontaler Reset durch Antippen
settings-general-gesture_control-yawResetDelay = Verzögerung für einen horizontalen Reset
settings-general-gesture_control-yawResetTaps = Antipp-Anzahl für einen horizontalen Reset
@@ -366,13 +387,30 @@ settings-general-gesture_control-fullResetTaps = Antipp-Anzahl für einen vollst
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
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Tracker über Schwellwert
## Interface settings
## Appearance settings
settings-general-interface = Bedienoberfläche
settings-interface-appearance = Erscheinungsbild
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-theme = Farbschema
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
# Keep the font name untranslated
settings-interface-appearance-font = GUI-Schriftart
settings-interface-appearance-font-description = Verändert die Schriftart der Benutzeroberfläche.
settings-interface-appearance-font-placeholder = Standard-Schriftart
settings-interface-appearance-font-os_font = Betriebssystem-Schriftart
settings-interface-appearance-font-slime_font = Standard-Schriftart
settings-interface-appearance-font_size = Standard-Schriftgröße
## Notification settings
settings-interface-notifications = Benachrichtigungen
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
@@ -380,10 +418,6 @@ settings-general-interface-feedback_sound = Feedback-Geräusch
settings-general-interface-feedback_sound-description = Diese Option wird ein Geräusch abspielen, wenn ein Reset ausgeführt wurde.
settings-general-interface-feedback_sound-label = Feedback-Geräusch
settings-general-interface-feedback_sound-volume = Feedback-Sound-Lautstärke
settings-general-interface-theme = Farbschema
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
@@ -736,7 +770,6 @@ onboarding-choose_proportions = Welche Kalibrierungsmethode ist zu verwenden?
onboarding-choose_proportions-auto_proportions = Automatische Proportionen
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Empfohlen
onboarding-choose_proportions-auto_proportions-description = Dadurch werden Ihre Proportionen erraten, indem Stichproben Ihrer Bewegungen verrechnet werden
onboarding-choose_proportions-manual_proportions = Manuelle Körperproportionen
onboarding-choose_proportions-manual_proportions-description = Auf diese Weise können Sie Ihre Proportionen manuell anpassen, indem Sie diese direkt ändern
onboarding-choose_proportions-export = Proportionen exportieren
@@ -748,6 +781,7 @@ 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
onboarding-manual_proportions-ratio = Anpassung nach Proportionen
## Tracker automatic proportions setup
@@ -761,6 +795,14 @@ onboarding-automatic_proportions-put_trackers_on-description = Um Ihre Proportio
onboarding-automatic_proportions-put_trackers_on-next = Ich habe alle meine Tracker angelegt
onboarding-automatic_proportions-requirements-title = Anforderungen
onboarding-automatic_proportions-requirements-next = Ich habe die Anforderungen gelesen
onboarding-automatic_proportions-check_height-title = Überprüfen Sie Ihre Körpergröße
onboarding-automatic_proportions-check_height-fetch_height = Ich stehe!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Unbekannt
# Shows an element below it
onboarding-automatic_proportions-check_height-height = Ihre Körpergröße ist
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height = Und Ihre Headset-Höhe ist
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

View File

@@ -36,6 +36,7 @@ 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-UPPER_CHEST = uppew chest
body_part-CHEST = chwest~
body_part-WAIST = wyayst~
body_part-HIP = hyip
@@ -53,8 +54,9 @@ skeleton_bone-NONE = none
skeleton_bone-HEAD = hed shyft
skeleton_bone-NECK = nyeck wength
skeleton_bone-torso_group = towso wength
skeleton_bone-CHEST = chwest wength
skeleton_bone-UPPER_CHEST = uppew chest wength
skeleton_bone-CHEST_OFFSET = chwest awfset
skeleton_bone-CHEST = chwest wength
skeleton_bone-WAIST = weyst wength
skeleton_bone-HIP = hip wength
skeleton_bone-HIP_OFFSET = hyip awfset
@@ -120,6 +122,10 @@ widget-overlay-is_mirrored_label = dispway owovelay as miwwow
widget-drift_compensation-clear = cwear dwift compensation
## Widget: Clear Reset Mounting
widget-clear_mounting = cweaw weset meownting
## Widget: Developer settings
widget-developer_mode = devwowwewow mode
@@ -163,9 +169,15 @@ tracker-table-column-url = uawl
## Tracker rotation
tracker-rotation-front = fwowt
tracker-rotation-front_left = fwont-weft
tracker-rotation-front_right = fwont-wight
tracker-rotation-left = lewft
tracker-rotation-right = wight
tracker-rotation-back = bak
tracker-rotation-back_left = back-weft
tracker-rotation-back_right = back-wight
tracker-rotation-custom = custowm
tracker-rotation-overriden = (ovewwidden by meownting weset)
## Tracker information
@@ -230,6 +242,7 @@ tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } wight tigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } wight ankew?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } wight pawb?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } wight contwowwaw?
tracker_selection_menu-UPPER_CHEST = { -tracker_selection-part } uppew chest?
tracker_selection_menu-CHEST = { -tracker_selection-part } chwest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waste?
tracker_selection_menu-HIP = { -tracker_selection-part } hiyp?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = OSC wouwter
settings-sidebar-osc_trackers = VRChawt OSC Twayckaws
settings-sidebar-utils = utiwities
settings-sidebar-serial = sewiaw cownsaw
settings-sidebar-appearance = appeawance
settings-sidebar-notifications = notificashuns
## SteamVR settings
@@ -336,11 +351,21 @@ settings-general-fk_settings-leg_fk = leg twacking
settings-general-fk_settings-arm_fk = awm twacking
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-toggles = skeweton toggews
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-skeleton_settings-extended_spine_model = extwended spine modew
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = extwended pewvis modew
settings-general-fk_settings-skeleton_settings-extended_knees_model = extwended nee modew
settings-general-fk_settings-skeleton_settings-ratios = skeweton watios
settings-general-fk_settings-skeleton_settings-ratios-description = change da vawue of skeweton settings. u may need to ajust ur pawpowshuns aftew changin dese.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = impute waist fwom chest to hip
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = impute waist fwom chest to wegs
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = impute hip fwom chest to wegs
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = impute hip fwom waist to wegs
settings-general-fk_settings-skeleton_settings-interp_hip_legs = awewage da hip's yaw and woll wiff da legs'
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = awewage da knee twackews' yaw and woll wiff da ankews'
settings-general-fk_settings-self_localization-title = mocap mowd
settings-general-fk_settings-self_localization-description = mocap mowd awwows da skeweton to wuffly twack is own posishun without a hedset or other twackews. note dat dis wequiwes feet and hed twackews to wowk and is stiwll expewimentaw.
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
@@ -357,6 +382,13 @@ settings-general-gesture_control-taps =
[one] 1 bap
*[other] { $amount } baps
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 twackew
*[other] { $amount } twackews
}
settings-general-gesture_control-yawResetEnabled = enabwe bap to yaw weset
settings-general-gesture_control-yawResetDelay = yaw weset deway
settings-general-gesture_control-yawResetTaps = baps fow yaw weset
@@ -366,13 +398,32 @@ settings-general-gesture_control-fullResetTaps = baps fow fuww 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
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = twackews over thweshowd
settings-general-gesture_control-numberTrackersOverThreshold-description = incwease dis vawue if da bap detecshun is nawt wowking. dont incwease it above what is need to make bap detecshun wowk as it wowd cauwse mowe fawse pawsitives.
## Interface settings
## Appearance settings
settings-general-interface = intewface
settings-interface-appearance = appeawance
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-theme = cowor theem
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
# Keep the font name untranslated
settings-interface-appearance-font = gui fawnt
settings-interface-appearance-font-description = dis change da fawnt use by da intewface.
settings-interface-appearance-font-placeholder = defawt fawnt
settings-interface-appearance-font-os_font = os fawnt
settings-interface-appearance-font-slime_font = defawt fawnt
settings-interface-appearance-font_size = bass fawn scawing
settings-interface-appearance-font_size-description = dis affects da fawnt size of da whol intewface except dis setting panew.
## Notification settings
settings-interface-notifications = notificashuns
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
@@ -380,10 +431,6 @@ settings-general-interface-feedback_sound = feeback sownd
settings-general-interface-feedback_sound-description = dis awptshun wiww pway a sownd wen a weset is twiggered (meow~!)
settings-general-interface-feedback_sound-label = feeback sownd
settings-general-interface-feedback_sound-volume = feedback sownd volyume
settings-general-interface-theme = cowor theem
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
@@ -527,7 +574,7 @@ onboarding-wifi_creds-password =
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
onboarding-reset_tutorial-explanation = whiwe you use youw twackews dey mite get out of awignment becus of imu yaw dwift, or because u might have moved dem physicawwy. you have sevewew way to fix dis.
onboarding-reset_tutorial-skip = skip sedup
# Cares about multiline
onboarding-reset_tutorial-0 =
@@ -612,8 +659,8 @@ onboarding-assignment_tutorial = how to pwepawe a Swime Twackew befowe puting it
onboarding-assignment_tutorial-first_step = 1. pwace a body pawt stickew (if you has wun) on da twackew accowding to u choosing :3
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = sticker
onboarding-assignment_tutorial-second_step = 2. put da stwap to u twackew, keep da hook an woop side of the stwap face in the fowlowing owientation:
onboarding-assignment_tutorial-second_step-continuation = da hook an woop side fow da extenson shouwd be in this owientation:
onboarding-assignment_tutorial-second_step-v2 = 2. attach da stwap to youw twackew, keeping da vewcwo side of da stwap facing da same diwecshun as da swime face of youw twackew:
onboarding-assignment_tutorial-second_step-continuation-v2 = da vewcwo side fow da extenshun shud be facing up wike da fowwowing image:
onboarding-assignment_tutorial-done = i put da stickew an stwap on :3
## Tracker assignment setup
@@ -707,11 +754,11 @@ onboarding-choose_mounting = wut meownting cawibwation mefod to use?
onboarding-choose_mounting-description = meownting owientation correct fow da pwacement of twackews on u body.
onboarding-choose_mounting-auto_mounting = awtomawic meownting
# Italized text
onboarding-choose_mounting-auto_mounting-subtitle = wecommended
onboarding-choose_mounting-auto_mounting-label = expewimentaw
onboarding-choose_mounting-auto_mounting-description = dis will automaticawwy detec da meownting diwecshuns fow aww of ya twackews fwom 2 poses
onboarding-choose_mounting-manual_mounting = manyul meownting
# Italized text
onboarding-choose_mounting-manual_mounting-subtitle = if yu know wut u r doin
onboarding-choose_mounting-manual_mounting-label = wecommended
onboarding-choose_mounting-manual_mounting-description = dis will let u chose da meownting diwecshun manuwawwy fow eech twackew
## Tracker manual mounting setup
@@ -753,12 +800,15 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = awtomatic pwopowtions
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = wecommended
onboarding-choose_proportions-auto_proportions-description = dis will guess ur pwopowshuns by wecowding a sampwe of ur movement and pass it thwough an ai
onboarding-choose_proportions-auto_proportions-descriptionv2 =
dis wiww guess youw pwopowshuns by wecowding a sampwe of youw movement and passing it thru an algowithm.
<b>dis wequiwes having youw hmd connected to SwimeVR!</b>
onboarding-choose_proportions-manual_proportions = manuwal pwopowtions
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = fow smol touchies
onboarding-choose_proportions-manual_proportions-description = dis will let u ajust ur pwopowtions manuwally by modifying dem diwectwy
onboarding-choose_proportions-save = sav pawpwotions
onboarding-choose_proportions-export = expowt pawpowshuns
onboarding-choose_proportions-file_type = body pawpowshuns file
## Tracker manual proportions setup
@@ -789,6 +839,18 @@ onboarding-automatic_proportions-requirements-description =
ur twackews and headset awe wowking pwopewwy within the SwimeVR sewvew.
ur headset is wepowting positionyaw data to the SwimeVR sewvew (this genyewawwy wenyewawwy means having SteamVR wunnying and connyected to SwimeVR using SwimeVR's SteamVR dwivew).
onboarding-automatic_proportions-requirements-next = i have wed da wequiwemens
onboarding-automatic_proportions-check_height-title = check youw height
onboarding-automatic_proportions-check_height-description = we use youw height as a basis of ouw measuwements by using da hmd's height as an appwoximashun of youw actuwaw height, but is better to check if they are right youwsewf!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = pwease pwess da button while standing <u>upwight</u> to cawcuwate youw height. you hav 3 second aftew you pwess da button! >w<
onboarding-automatic_proportions-check_height-fetch_height = am standing!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = unnown
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = youw hmd heit is
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = so youw actuaw heit is
onboarding-automatic_proportions-check_height-next_step = dey awe fine
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
@@ -818,6 +880,10 @@ 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^
onboarding-automatic_proportions-error_modal =
<b>wawning:</b> an ewwow was fownd whiwe estimating pawpowshuns! ;w;
pwease <docs>check da docs</docs> or join ouw <discord>Discord</discord> fow hewp >~>
onboarding-automatic_proportions-error_modal-confirm = undewstood!
## Home

View File

@@ -109,6 +109,9 @@ widget-overlay-is_mirrored_label = Display Overlay as Mirror
## Widget: Drift compensation
widget-drift_compensation-clear = Clear drift compensation
## Widget: Clear Reset Mounting
widget-clear_mounting = Clear reset mounting
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = High contrast
@@ -147,9 +150,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Front
tracker-rotation-front_left = Front-Left
tracker-rotation-front_right = Front-Right
tracker-rotation-left = Left
tracker-rotation-right = Right
tracker-rotation-back = Back
tracker-rotation-back_left = Back-Left
tracker-rotation-back_right = Back-Right
tracker-rotation-custom = Custom
tracker-rotation-overriden = (overriden by mounting reset)
## Tracker information
tracker-infos-manufacturer = Manufacturer
@@ -249,6 +258,8 @@ settings-sidebar-osc_router = OSC router
settings-sidebar-osc_trackers = VRChat OSC Trackers
settings-sidebar-utils = Utilities
settings-sidebar-serial = Serial console
settings-sidebar-appearance = Appearance
settings-sidebar-notifications = Notifications
## SteamVR settings
settings-general-steamvr = SteamVR
@@ -311,14 +322,38 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Floor-clip can R
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap attempts to guess the rotation of your feet if feet trackers are not in use.
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant rotates your feet to be parallel to the ground when in contact.
settings-general-fk_settings-leg_fk = Leg tracking
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Enable feet Mounting Reset by tiptoeing.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Feet Mounting Reset
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Force arms to be tracked from the HMD even if positional hand data is available.
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-skeleton_settings = Skeleton settings
settings-general-fk_settings-arm_fk-reset_mode-description = Change which arm pose is expected for mounting reset.
settings-general-fk_settings-arm_fk-back = Back
settings-general-fk_settings-arm_fk-back-description = The default mode, with the upper arms going back and lower arms going forward.
settings-general-fk_settings-arm_fk-tpose_up = T-pose (up)
settings-general-fk_settings-arm_fk-tpose_up-description = Expects your arms to be down on the sides during Full Reset, and 90 degrees up to the sides during Mounting Reset.
settings-general-fk_settings-arm_fk-tpose_down = T-pose (down)
settings-general-fk_settings-arm_fk-tpose_down-description = Expects your arms to be 90 degrees up to the sides during Full Reset, and down on the sides during Mounting Reset.
settings-general-fk_settings-arm_fk-forward = Forward
settings-general-fk_settings-arm_fk-forward-description = Expects your arms to be up 90 degrees forward. Useful for VTubing.
settings-general-fk_settings-skeleton_settings-toggles = Skeleton toggles
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-skeleton_settings-extended_spine_model = Extended spine model
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Extended pelvis model
settings-general-fk_settings-skeleton_settings-extended_knees_model = Extended knee model
settings-general-fk_settings-skeleton_settings-ratios = Skeleton ratios
settings-general-fk_settings-skeleton_settings-ratios-description = Change the values of skeleton settings. You may need to adjust your proportions after changing these.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Impute waist from chest to hip
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Impute waist from chest to legs
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Impute hip from chest to legs
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Impute hip from waist to legs
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Average the hip's yaw and roll with the legs'
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Average the knee trackers' yaw and roll with the ankles'
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Average the knees' yaw and roll with the ankles'
settings-general-fk_settings-self_localization-title = Mocap mode
settings-general-fk_settings-self_localization-description = Mocap Mode allows the skeleton to roughly track its own position without a headset or other trackers. Note that this requires feet and head trackers to work and is still experimental.
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
@@ -326,13 +361,19 @@ 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 Yaw Reset, the tracker highest up on your left leg is used for Full 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.
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 Yaw Reset, the tracker highest up on your left leg is used for Full Reset, and the tracker highest up on your right leg is used for Mounting Reset. Taps must occur within the time limit of 0.3 seconds times the number of taps to be recognized.
# 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
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers = { $amount ->
[one] 1 tracker
*[other] { $amount } trackers
}
settings-general-gesture_control-yawResetEnabled = Enable tap to yaw reset
settings-general-gesture_control-yawResetDelay = Yaw reset delay
settings-general-gesture_control-yawResetTaps = Taps for yaw reset
@@ -342,23 +383,37 @@ settings-general-gesture_control-fullResetTaps = Taps for full 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
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Trackers over threshold
settings-general-gesture_control-numberTrackersOverThreshold-description = Increase this value if tap detection is not working. Do not increase it above what is needed to make tap detection work as it would cause more false positives.
## Interface settings
settings-general-interface = Interface
## Appearance settings
settings-interface-appearance = Appearance
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-feedback_sound = Feedback sound
settings-general-interface-feedback_sound-description = This option will play a sound when a reset is triggered
settings-general-interface-feedback_sound-label = Feedback sound
settings-general-interface-feedback_sound-volume = Feedback sound volume
settings-general-interface-theme = Color theme
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
# Keep the font name untranslated
settings-interface-appearance-font = GUI font
settings-interface-appearance-font-description = This changes the font used by the interface.
settings-interface-appearance-font-placeholder = Default font
settings-interface-appearance-font-os_font = OS font
settings-interface-appearance-font-slime_font = Default font
settings-interface-appearance-font_size = Base font scaling
settings-interface-appearance-font_size-description = This affects the font size of the whole interface except this settings panel.
## Notification settings
settings-interface-notifications = Notifications
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-feedback_sound = Feedback sound
settings-general-interface-feedback_sound-description = This option will play a sound when a reset is triggered.
settings-general-interface-feedback_sound-label = Feedback sound
settings-general-interface-feedback_sound-volume = Feedback sound volume
## Serial settings
settings-serial = Serial Console
@@ -442,7 +497,7 @@ settings-osc-vmc-enable = Enable
settings-osc-vmc-enable-description = Toggle the sending and receiving of data.
settings-osc-vmc-enable-label = Enable
settings-osc-vmc-network = Network ports
settings-osc-vmc-network-description = Set the ports for listening and sending data via VMC
settings-osc-vmc-network-description = Set the ports for listening and sending data via VMC.
settings-osc-vmc-network-port_in =
.label = Port In
.placeholder = Port in (default: 39540)
@@ -450,10 +505,10 @@ settings-osc-vmc-network-port_out =
.label = Port Out
.placeholder = Port out (default: 39539)
settings-osc-vmc-network-address = Network address
settings-osc-vmc-network-address-description = Choose which address to send out data at via VMC
settings-osc-vmc-network-address-description = Choose which address to send out data at via VMC.
settings-osc-vmc-network-address-placeholder = IPV4 address
settings-osc-vmc-vrm = VRM Model
settings-osc-vmc-vrm-description = Load a VRM model to allow head anchor and enable a higher compatibility with other applications
settings-osc-vmc-vrm-description = Load a VRM model to allow head anchor and enable a higher compatibility with other applications.
settings-osc-vmc-vrm-model_unloaded = No model loaded
settings-osc-vmc-vrm-model_loaded = { $titled ->
*[false] Untitled model loaded
@@ -569,8 +624,8 @@ onboarding-assignment_tutorial = How to prepare a Slime Tracker before putting i
onboarding-assignment_tutorial-first_step = 1. Place a body part sticker (if you have one) on the tracker according to your choosing
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Sticker
onboarding-assignment_tutorial-second_step = 2. Attach the strap to your tracker, keeping the hook and loop side of the strap face in the following orientation:
onboarding-assignment_tutorial-second_step-continuation = The hook and loop side for the extension should be in this orientation:
onboarding-assignment_tutorial-second_step-v2 = 2. Attach the strap to your tracker, keeping the velcro side of the strap facing the same direction as the slime face of your tracker:
onboarding-assignment_tutorial-second_step-continuation-v2 = The velcro side for the extension should be facing up like the following image:
onboarding-assignment_tutorial-done = I put stickers and straps!
## Tracker assignment setup
@@ -695,12 +750,18 @@ onboarding-choose_proportions-description = Body proportions are used to know th
onboarding-choose_proportions-auto_proportions = Automatic proportions
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Recommended
onboarding-choose_proportions-auto_proportions-description = This will guess your proportions by recording a sample of your movements and passing it through an algorithm
onboarding-choose_proportions-auto_proportions-descriptionv2 =
This will guess your proportions by recording a sample of your movements and passing it through an algorithm.
<b>This requires having your HMD connected to SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = Manual proportions
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = For small touches
onboarding-choose_proportions-manual_proportions-description = This will let you adjust your proportions manually by modifying them directly
onboarding-choose_proportions-export = Export proportions
onboarding-choose_proportions-import = Import proportions
onboarding-choose_proportions-import-success = Imported
onboarding-choose_proportions-import-failed = Failed
onboarding-choose_proportions-file_type = Body proportions file
## Tracker manual proportions setup
@@ -729,6 +790,18 @@ onboarding-automatic_proportions-requirements-description =
Your trackers and headset are working properly within the SlimeVR server.
Your headset is reporting positional data to the SlimeVR server (this generally means having SteamVR running and connected to SlimeVR using SlimeVR's SteamVR driver).
onboarding-automatic_proportions-requirements-next = I have read the requirements
onboarding-automatic_proportions-check_height-title = Check your height
onboarding-automatic_proportions-check_height-description = We use your height as a basis of our measurements by using the HMD's height as an approximation of your actual height, but it's better to check if they are right yourself!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Please press the button while standing <u>upright</u> to calculate your height. You have 3 seconds after you press the button!
onboarding-automatic_proportions-check_height-fetch_height = I'm standing!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Unknown
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = Your HMD height is
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = so your actual height is
onboarding-automatic_proportions-check_height-next_step = They are fine
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
@@ -757,6 +830,10 @@ 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!
onboarding-automatic_proportions-error_modal =
<b>Warning:</b> An error was found while estimating proportions!
Please <docs>check the docs</docs> or join our <discord>Discord</discord> for help ^_^
onboarding-automatic_proportions-error_modal-confirm = Understood!
## Home
home-no_trackers = No trackers detected or assigned

View File

@@ -36,6 +36,7 @@ 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-UPPER_CHEST = Pecho superior
body_part-CHEST = Pecho
body_part-WAIST = Cintura
body_part-HIP = Cadera
@@ -53,8 +54,9 @@ skeleton_bone-NONE = Nada
skeleton_bone-HEAD = Inclinación de cabeza
skeleton_bone-NECK = Largo del cuello
skeleton_bone-torso_group = Largo del torso
skeleton_bone-CHEST = Largo del pecho
skeleton_bone-UPPER_CHEST = Largo del pecho superior
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-CHEST = Largo del pecho
skeleton_bone-WAIST = Largo de la cintura
skeleton_bone-HIP = Largo de la cadera
skeleton_bone-HIP_OFFSET = Desplazamiento de la cadera
@@ -118,7 +120,11 @@ widget-overlay-is_mirrored_label = Mostrar interfaz reflejada
## Widget: Drift compensation
widget-drift_compensation-clear = Limpiar compensación de desviación
widget-drift_compensation-clear = Olvidar compensación de drift
## Widget: Clear Reset Mounting
widget-clear_mounting = Olvidar reinicio de montura
## Widget: Developer settings
@@ -163,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Frente
tracker-rotation-front_left = Frente izquierdo
tracker-rotation-front_right = Frente derecho
tracker-rotation-left = Izquierda
tracker-rotation-right = Derecha
tracker-rotation-back = Atrás
tracker-rotation-back_left = Atrás izquierdo
tracker-rotation-back_right = Atrás derecho
tracker-rotation-custom = Personalizado
tracker-rotation-overriden = (siendo invalidado por el reinicio de montura)
## Tracker information
@@ -230,6 +242,7 @@ tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } muslo derec
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-UPPER_CHEST = { -tracker_selection-part } pecho superior?
tracker_selection_menu-CHEST = { -tracker_selection-part } pecho?
tracker_selection_menu-WAIST = { -tracker_selection-part } cintura?
tracker_selection_menu-HIP = { -tracker_selection-part } cadera?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = Router OSC
settings-sidebar-osc_trackers = Sensores OSC de VRChat
settings-sidebar-utils = Utilidades
settings-sidebar-serial = Consola serial
settings-sidebar-appearance = Apariencia
settings-sidebar-notifications = Notificaciones
## SteamVR settings
@@ -336,11 +351,21 @@ settings-general-fk_settings-leg_fk = Tracking de piernas
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-toggles = Interruptores del 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-skeleton_settings-extended_spine_model = Modelo extendido de la columna
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Modelo extendido del pelvis
settings-general-fk_settings-skeleton_settings-extended_knees_model = Modelo extendido de la rodilla
settings-general-fk_settings-skeleton_settings-ratios = Radios del esqueleto
settings-general-fk_settings-skeleton_settings-ratios-description = Cambia los valores de los ajustes del esqueleto. Podes llegar a necesitar reajustar tus proporciones después de cambiar estos valores.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Imputar de la cintura al pecho hasta la cadera
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Imputar de la cintura al pecho hasta las piernas
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Imputar de la cadera al pecho hasta las piernas
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Imputar de la cadera a la cintura hasta las piernas
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Promediar la rotación del eje vertical y horizontal de la cadera con la de las piernas
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Promediar la rotación del eje vertical y horizontal de la rodilla con la de los tobillos
settings-general-fk_settings-self_localization-title = Modo mocap
settings-general-fk_settings-self_localization-description = El modo mocap permite al esqueleto rastrear de forma aproximada su propia posición sin un casco o otros sensores. Nota que esto requiere que los trackers en el pie y cabeza estén y sigue siendo experimental.
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 = Habilitar emulación de Vive
@@ -357,6 +382,13 @@ settings-general-gesture_control-taps =
[one] 1 toque
*[other] { $amount } toques
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 tracker
*[other] { $amount } trackers
}
settings-general-gesture_control-yawResetEnabled = Activar toques para reinicio horizontal
settings-general-gesture_control-yawResetDelay = Retraso del reinicio horizontal
settings-general-gesture_control-yawResetTaps = Toques para reinicio horizontal
@@ -366,13 +398,32 @@ settings-general-gesture_control-fullResetTaps = Toques para reinicio completo
settings-general-gesture_control-mountingResetEnabled = Activar toques para reinicio de montura
settings-general-gesture_control-mountingResetDelay = Retraso del reinicio de montura
settings-general-gesture_control-mountingResetTaps = Toques para reinicio de montura
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Trackers sobre el límite
settings-general-gesture_control-numberTrackersOverThreshold-description = Aumente este valor si la detección de toques no funciona. No lo aumente mas de lo necesario para que funciona ya que puede causar que la detección tenga más falsas positivas.
## Interface settings
## Appearance settings
settings-general-interface = Interfaz
settings-interface-appearance = Apariencia
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-theme = Tema de color
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
# Keep the font name untranslated
settings-interface-appearance-font = Fuente de la interfaz
settings-interface-appearance-font-description = Esto cambia el estilo de letra utilizado por la interfaz.
settings-interface-appearance-font-placeholder = Fuente predeterminada
settings-interface-appearance-font-os_font = Fuente del sistema operativo
settings-interface-appearance-font-slime_font = Fuente predeterminada
settings-interface-appearance-font_size = Tamaño base de la fuente
settings-interface-appearance-font_size-description = Esto afecta al tamaño de las letras en toda la interfaz excepto en este panel de ajustes.
## Notification settings
settings-interface-notifications = Notificaciones
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
@@ -380,10 +431,6 @@ settings-general-interface-feedback_sound = Sonido de feedback
settings-general-interface-feedback_sound-description = Esta opción reproducirá un sonido cuando se realice un reinicio.
settings-general-interface-feedback_sound-label = Sonido de feedback
settings-general-interface-feedback_sound-volume = Volumen del sonido de feedback
settings-general-interface-theme = Tema de color
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
@@ -527,25 +574,25 @@ onboarding-wifi_creds-password =
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
onboarding-reset_tutorial-explanation = Mientras estés usando tus trackers, estos pueden empezar a desalinearse por el drift horizontal del IMU, o porque los moviste físicamente. Hay varias formas de arreglar este tipo de problemas.
onboarding-reset_tutorial-skip = Saltar paso
# Cares about multiline
onboarding-reset_tutorial-0 =
Toca { $taps } veces el tracker resaltado para activar el reinicio horizontal.
Esto va a hacer que tus sensores miren para la misma dirección que tu HMD.
# Cares about multiline
onboarding-reset_tutorial-1 =
Toca { $taps } veces el tracker resaltado para activar el reinicio completo.
Se requiere que estas de forma parada (pose en i). Esto tiene un delay de 3 segundos (configurable) antes de que actualmente suceda.
Esto reinicia completamente la posición y rotación de todos tus sensores, debería de arreglar la mayoría de tus problemas.
# Cares about multiline
onboarding-reset_tutorial-2 =
Toca { $taps } veces el tracker resaltado para activar el reinicio de montura.
El reinicio de montura ayuda en como tus sensores están puestos en tu cuerpo, ya que si los movistes o cambiaste para donde están orientados bastante, esto debería de ayudar.
Requiere que estas en una pose como que estás esquiando, como se muestra en el tutorial de montura automática y tenes un retraso de 3 segundos (configurable) antes de que actualmente suceda.
## Setup start
@@ -612,8 +659,8 @@ onboarding-assignment_tutorial = Como preparar un Tracker Slime antes de ponerte
onboarding-assignment_tutorial-first_step = 1. Pon un sticker con la parte del cuerpo de tu elección (si tenes uno)
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Sticker
onboarding-assignment_tutorial-second_step = 2. Coloque la correa en el tracker, manteniendo el lado con velcro de la correa en la siguiente orientación:
onboarding-assignment_tutorial-second_step-continuation = El lado con velcro en las extensiones deben también estar en la siguiente orientación:
onboarding-assignment_tutorial-second_step-v2 = 2. Coloca la tira de velcro a tu tracker, manteniendo el lado del velcro de la tira, mirando para la misma dirección que la cara del slime de tu sensor:
onboarding-assignment_tutorial-second_step-continuation-v2 = El lado del velcro de la tira para la extensión deberá estar viendo para arriba como en la siguiente imagen:
onboarding-assignment_tutorial-done = ¡Puse las correas y stickers!
## Tracker assignment setup
@@ -707,11 +754,11 @@ onboarding-choose_mounting = ¿Qué método de calibración de montura quiere us
onboarding-choose_mounting-description = La orientación de montura corrige la colocación (o orientación) de los trackers en tu cuerpo.
onboarding-choose_mounting-auto_mounting = Montura automática
# Italized text
onboarding-choose_mounting-auto_mounting-subtitle = Recomendado
onboarding-choose_mounting-auto_mounting-label = Experimental
onboarding-choose_mounting-auto_mounting-description = Esto detectará automáticamente las direcciones de montura para todos tus trackers a partir de 2 poses
onboarding-choose_mounting-manual_mounting = Montura manual
# Italized text
onboarding-choose_mounting-manual_mounting-subtitle = Si sabes lo que estás haciendo
onboarding-choose_mounting-manual_mounting-label = Recomendado
onboarding-choose_mounting-manual_mounting-description = Esto te permitirá elegir la dirección de montura manualmente para cada tracker.
## Tracker manual mounting setup
@@ -753,7 +800,9 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = Proporciones automáticas
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Recomendado
onboarding-choose_proportions-auto_proportions-description = Esto adivinará tus proporciones en base de muestras de tus movimientos y pasándola a través de un algoritmo.
onboarding-choose_proportions-auto_proportions-descriptionv2 =
Esto adivinará tus proporciones grabando una muestra de tus movimientos y pasándola por un algoritmo.
<b>¡Esto requiere tener tu VR conectado a SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = Proporciones manuales
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Para toques pequeños
@@ -789,6 +838,18 @@ onboarding-automatic_proportions-requirements-description =
Tus trackers y VR están funcionando correctamente con el servidor de SlimeVR.
Tu VR está reportando datos posicionales al servidor de SlimeVR (esto generalmente implica que SteamVR esté corriendo y conectado a SlimeVR usando el driver de SlimeVR para SteamVR).
onboarding-automatic_proportions-requirements-next = He leído los requisitos
onboarding-automatic_proportions-check_height-title = Compruebe su altura
onboarding-automatic_proportions-check_height-description = Utilizamos tu altura como base de nuestras mediciones utilizando la altura del VR como aproximación a tu altura real, ¡Pero es mejor que compruebes tú mismo si son correctas!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Por favor, pulse el botón mientras está <u>de pie</u> para calcular su altura. ¡Tienes unos 3 segundos después de pulsar el botón!
onboarding-automatic_proportions-check_height-fetch_height = Estoy de pie
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Desconocida
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = La altura de tu HMD es
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = entonces tu altura real es
onboarding-automatic_proportions-check_height-next_step = Están bien
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
@@ -818,6 +879,10 @@ 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!
onboarding-automatic_proportions-error_modal =
<b>Atención:</b> ¡Se ha encontrado un error durante la estimación de sus proporciones!
Por favor <docs>fijate la documentación</docs> o únete a nuestro <discord>Discord</discord> para obtener ayuda ^_^
onboarding-automatic_proportions-error_modal-confirm = ¡Entendido!
## Home

View File

@@ -0,0 +1,514 @@
# 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 = Conectándose al servidor
websocket-connection_lost = Conexión con el servidor perdida. Intentando reconectar...
## Update notification
version_update-title = Nueva versión disponible: { $version }
version_update-description = Al hacer clic en "{ version_update-update }" se descargará el instalador de SlimeVR.
version_update-update = Actualizar
version_update-close = Cerrar
## Tips
tips-find_tracker = ¿No estás seguro de qué tracker es el correcto? Agitalo y se resaltará el tracker correspondiente.
tips-do_not_move_heels = Asegúrate de no mover los talones durante el guardado de datos.
tips-file_select = Arrastra y suelta los archivos para usarlos o <u>navega</u>.
tips-tap_setup = Haz clic en el menú o golpea suavemente el tracker 2 veces para seleccionarlo automaticamente.
## 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 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-UPPER_CHEST = Abdomen superior
body_part-CHEST = Pecho
body_part-WAIST = Cintura
body_part-HIP = Cadera
body_part-LEFT_SHOULDER = Hombro izquierdo
body_part-LEFT_UPPER_ARM = Brazo 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
## Proportions
skeleton_bone-NONE = Ninguno
skeleton_bone-HEAD = Desplazamiento de la cabeza
skeleton_bone-NECK = Longitud del cuello
skeleton_bone-torso_group = Longitud del torso
skeleton_bone-UPPER_CHEST = Longitud del torso superior
skeleton_bone-CHEST_OFFSET = Compensacion del pecho
skeleton_bone-CHEST = Longitud del pecho
skeleton_bone-WAIST = Longitud de cintura
skeleton_bone-HIP = Longitud de cadera
skeleton_bone-HIP_OFFSET = Compensacion de cadera
skeleton_bone-HIPS_WIDTH = Ancho de la Cadera
skeleton_bone-leg_group = Largo de las piernas
skeleton_bone-UPPER_LEG = Largo de la zona alta de las piernas
skeleton_bone-LOWER_LEG = Largo de la zona baja de las piernas
skeleton_bone-FOOT_LENGTH = Largo del pie
skeleton_bone-FOOT_SHIFT = Desplazamiento del pie
skeleton_bone-SKELETON_OFFSET = Compensacion del esqueleto
skeleton_bone-SHOULDERS_DISTANCE = Distancia de los hombros
skeleton_bone-SHOULDERS_WIDTH = Ancho de los hombros
skeleton_bone-arm_group = Largo del brazo
skeleton_bone-UPPER_ARM = Largo de la zona alta del brazo
skeleton_bone-LOWER_ARM = Largo del antebrazo
skeleton_bone-HAND_Y = Distancia de la mano Y
skeleton_bone-HAND_Z = Distancia de la mano Z
skeleton_bone-ELBOW_OFFSET = Compensacion de los codos
## Tracker reset buttons
reset-reset_all = Reiniciar todas las proporciones
reset-full = Reiniciar
reset-mounting = Reiniciar montura
reset-yaw = Restablecimiento horizontal
## Serial detection stuff
serial_detection-new_device-p0 = ¡Nuevo dispositivo serial detectado!
serial_detection-new_device-p1 = ¡Introduce las credenciales de tu red Wi-Fi!
serial_detection-new_device-p2 = Por favor, selecciona lo que desea hacer con él
serial_detection-open_wifi = Conectar a una red Wi-Fi
serial_detection-open_serial = Abrir la 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 trackers
navbar-mounting = Calibración de montura
navbar-onboarding = Asistente de Configuración
navbar-settings = Configuración
## Biovision hierarchy recording
bvh-start_recording = Grabar BVH
bvh-recording = Grabando...
## Tracking pause
tracking-unpaused = Pausar tracking
tracking-paused = Reanudar tracking
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostrar overlay en SteamVR
widget-overlay-is_mirrored_label = Mostrar overlay como espejo
## Widget: Drift compensation
widget-drift_compensation-clear = Eliminar compensacion del drift
## Widget: Clear Reset Mounting
## Widget: Developer settings
widget-developer_mode = Modo de desarrollador
widget-developer_mode-high_contrast = Contraste alto
widget-developer_mode-precise_rotation = Rotación precisa
widget-developer_mode-filter_slimes_and_hmd = Filtrar Slimes y HMD
widget-developer_mode-sort_by_name = Ordenar por nombre
widget-developer_mode-raw_slime_rotation = Rotación sin filtrar
widget-developer_mode-more_info = Más información
## Widget: IMU Visualizer
widget-imu_visualizer = Rotación
widget-imu_visualizer-rotation_raw = Sin filtrar
widget-imu_visualizer-rotation_preview = Previsualización
widget-imu_visualizer-rotation_hide = Ocultar
## Tracker status
tracker-status-none = Sin estatus
tracker-status-busy = Ocupado
tracker-status-error = Error
tracker-status-disconnected = Desconectado
tracker-status-occluded = Ocluída
tracker-status-ok = Ok
## Tracker status columns
tracker-table-column-name = Nombre
tracker-table-column-type = Tipo
tracker-table-column-battery = Batería
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temperatura °C
tracker-table-column-linear-acceleration = Aceleración 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 = Frontal
tracker-rotation-front_left = Frontal-Izquierdo
tracker-rotation-front_right = Frontal-Derecho
tracker-rotation-left = Izquierda
tracker-rotation-right = Derecha
tracker-rotation-back = Trasero
tracker-rotation-back_left = Trasero-Izquierdo
tracker-rotation-back_right = Trasero-Derecho
tracker-rotation-custom = Personalizado
## Tracker information
tracker-infos-manufacturer = Fabricante
tracker-infos-display_name = Nombre visible
tracker-infos-custom_name = Nombre personalizado
tracker-infos-url = URL del Tracker
tracker-infos-version = Versión del firmware
tracker-infos-hardware_rev = Revisión del hardware
tracker-infos-hardware_identifier = ID de hardware
tracker-infos-imu = Sensor IMU
tracker-infos-board_type = Placa principal
## Tracker settings
tracker-settings-back = Volver a la lista de trackers
tracker-settings-title = Configuración de los trackers
tracker-settings-assignment_section = Asignación
tracker-settings-assignment_section-description = Parte del cuerpo que tiene el tracker asignado.
tracker-settings-assignment_section-edit = Editar asignación
tracker-settings-mounting_section = Posición de montura
tracker-settings-mounting_section-description = ¿Donde está montado el tracker?
tracker-settings-mounting_section-edit = Editar montura
tracker-settings-drift_compensation_section = Permitir compensación de drift
tracker-settings-drift_compensation_section-description = ¿Debería este tracker compensar el drifteo cuando la compensación de drifteo está activada?
tracker-settings-drift_compensation_section-edit = Permitir compensación 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 = Nombre del tracker
tracker-settings-name_section-description = Dale un sobrenombre lindo :)
tracker-settings-name_section-placeholder = Pata izquierda del Eevee
## Tracker part card info
tracker-part_card-no_name = Sin nombre
tracker-part_card-unassigned = Sin asignar
## Body assignment menu
body_assignment_menu = ¿Donde quieres que esté este tracker?
body_assignment_menu-description = Elige una ubicación donde desees asignar este tracker. También puedes administrar todos los trackers a la vez en lugar de uno por uno.
body_assignment_menu-show_advanced_locations = Mostrar asignación de extremidades avanzada
body_assignment_menu-manage_trackers = Administrar todos los trackers
body_assignment_menu-unassign_tracker = Desasignar 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 = ¿Que tracker asignar a tu
tracker_selection_menu-NONE = ¿Qué tracker deseas desasignar?
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 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-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 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 izquierdo?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } pie izquierdo?
tracker_selection_menu-unassigned = Trackers sin asignar
tracker_selection_menu-assigned = Trackers 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 tracker en el cuello puede ser mortal si está ajustado demasiado fuerte,
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 que esté este tracker?
mounting_selection_menu-close = Cerrar
## Sidebar settings
settings-sidebar-title = Configuración
settings-sidebar-general = General
settings-sidebar-tracker_mechanics = Mecánicas del tracker
settings-sidebar-fk_settings = Configuración del tracking
settings-sidebar-gesture_control = Control de los 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 = Trackers de 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 =
Activa o desactiva trackers específicos de SteamVR.
Útil para juegos o aplicaciones que solo soportan ciertos trackers.
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 tracker
settings-general-tracker_mechanics-filtering = Filtro
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Escoge el tipo de filtro para tus trackers.
Predicción predice el movimiento mientras que Suavizado suaviza el movimiento.
settings-general-tracker_mechanics-filtering-type = Tipo de filtro
settings-general-tracker_mechanics-filtering-type-none = Sin filtrar
settings-general-tracker_mechanics-filtering-type-none-description = Usa las rotaciones tal como son. No hará 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 hace que los movimientos sean mas inmediatos, pero puede aumentar la fluctuación.
settings-general-tracker_mechanics-filtering-amount = Cantidad
settings-general-tracker_mechanics-drift_compensation = Compensación en la desviación
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensación en la desviación
settings-general-tracker_mechanics-drift_compensation-amount-label = Cantidad de compensación
## FK/Tracking settings
settings-general-fk_settings = Configuración de FK Tracking
# 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 = Corrección del patinaje
settings-general-fk_settings-leg_tweak-skating_correction-amount = Intensidad de la corrección del patinaje
settings-general-fk_settings-leg_fk = Tracking de piernas
settings-general-fk_settings-arm_fk = Tracking de brazos
settings-general-fk_settings-arm_fk-description = Forzar el seguimiento de los brazos desde el HMD incluso si hay datos de posición de la mano disponibles.
settings-general-fk_settings-arm_fk-force_arms = Forzar brazos desde el HMD
settings-general-fk_settings-skeleton_settings-description = Activa o desactiva la configuración del esqueleto. Se recomienda dejar esta opción activada.
settings-general-fk_settings-vive_emulation-title = Emulación Vive
settings-general-fk_settings-vive_emulation-description = Emula los problemas de cintura que lo Vive trackers producen. Es una broma y produce peor tracking.
settings-general-fk_settings-vive_emulation-label = Habilitar emulación Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Control de gestos
settings-general-gesture_control-subtitle = Reinicio basado en toques
## Appearance settings
settings-general-interface-dev_mode = Modo de desarrollador
settings-general-interface-dev_mode-label = Modo de desarrollador
settings-general-interface-theme = Temas
settings-general-interface-lang = Seleccionar idioma
settings-general-interface-lang-description = Cambiar el idioma predeterminado que deseas utilizar.
settings-general-interface-lang-placeholder = Seleccionar el idioma que desea utilizar
## Notification settings
settings-general-interface-serial_detection = Detección de dispositivos seriales
settings-general-interface-serial_detection-label = Detección de dispositivos seriales
## Serial settings
settings-serial = Consola serial
settings-serial-connection_lost = Conexión a puerto serial perdida, Reconectando...
settings-serial-reboot = Reiniciar
settings-serial-factory_reset = Restablecimiento de fábrica
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 = Automático
## OSC router settings
settings-osc-router-enable = Habilitar
settings-osc-router-enable-label = Habilitar
settings-osc-router-network = Puertos de red
settings-osc-router-network-address = Dirección de red
settings-osc-router-network-address-placeholder = Dirección IPV4
## OSC VRChat settings
settings-osc-vrchat-enable = Habilitar
settings-osc-vrchat-enable-label = Habilitar
settings-osc-vrchat-network = Puertos de red
settings-osc-vrchat-network-address = Dirección de red
settings-osc-vrchat-network-trackers = Trackers
settings-osc-vrchat-network-trackers-chest = Pecho
settings-osc-vrchat-network-trackers-hip = Cadera
settings-osc-vrchat-network-trackers-knees = Rodillas
settings-osc-vrchat-network-trackers-feet = Pies
## VMC OSC settings
settings-osc-vmc-enable = Habilitar
settings-osc-vmc-enable-label = Habilitar
settings-osc-vmc-network = Puertos de red
settings-osc-vmc-network-address = Dirección de red
settings-osc-vmc-network-address-placeholder = Dirección IPV4
settings-osc-vmc-vrm-model_unloaded = No hay modelo cargado
settings-osc-vmc-anchor_hip = Anclar a la cadera
settings-osc-vmc-anchor_hip-label = Anclar a la cadera
## Setup/onboarding menu
onboarding-skip = Omitir configuración
onboarding-continue = Continuar
onboarding-previous_step = Paso anterior
onboarding-setup_warning-skip = Omitir configuración
onboarding-setup_warning-cancel = Continuar con la configuración
## Wi-Fi setup
onboarding-wifi_creds-back = Volver a la introducción
onboarding-wifi_creds-skip = Omitir configuración Wi-Fi
onboarding-wifi_creds-submit = ¡Enviar!
## Mounting setup
onboarding-reset_tutorial = Tutorial para resetteo de trackers
onboarding-reset_tutorial-skip = Omitir paso
## Setup start
onboarding-home = Bienvenido a SlimeVR
onboarding-home-start = ¡Vamos a prepararnos!
## Enter VR part of setup
onboarding-enter_vr-title = ¡Hora de entrar en VR!
onboarding-enter_vr-ready = Estoy listo
## Setup done
onboarding-done-title = ¡Todo listo!
onboarding-done-close = Cerrar configuración
## Tracker connection setup
onboarding-connect_tracker-title = Conectar trackers
onboarding-connect_tracker-description-p0 = ¡Ahora a la parte divertida, conectando todos los trackers!
onboarding-connect_tracker-issue-serial = ¡Tengo problemas para conectarme!
onboarding-connect_tracker-connection_status-none = Buscando trackers
onboarding-connect_tracker-connection_status-serial_init = Conectándose al dispositivo serial
onboarding-connect_tracker-connection_status-provisioning = Enviando credenciales Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Intentando conectarse a una red Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Buscando servidor
onboarding-connect_tracker-connection_status-could_not_find_server = No se pudo encontrar el servidor
## Tracker calibration tutorial
onboarding-calibration_tutorial = Tutorial de calibración de IMU
onboarding-calibration_tutorial-subtitle = ¡Esto ayudará a reducir el drift de los trackers!
onboarding-calibration_tutorial-calibrate = Mis trackers estan en una superficie plana
onboarding-calibration_tutorial-status-calibrating = Calibrando
onboarding-calibration_tutorial-status-success = ¡Bien!
onboarding-calibration_tutorial-status-error = El tracker se ha movido
## Tracker assignment tutorial
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Sticker
## Tracker assignment setup
onboarding-assign_trackers-title = Asignar trackers
onboarding-assign_trackers-advanced = Mostrar ubicaciones de asignación avanzadas
onboarding-assign_trackers-next = He asignado todos los trackers
## Tracker assignment warnings
## Tracker mounting method choose
# Italized text
onboarding-choose_mounting-auto_mounting-label = Experimental
# Italized text
onboarding-choose_mounting-manual_mounting-label = Recomendado
## Tracker manual mounting setup
onboarding-manual_mounting-next = Siguiente paso
## Tracker automatic mounting setup
onboarding-automatic_mounting-next = Siguiente paso
onboarding-automatic_mounting-prev_step = Paso anterior
onboarding-automatic_mounting-done-restart = Volver a intentarlo
onboarding-automatic_mounting-preparation-title = Preparación
## Tracker proportions method choose
onboarding-choose_proportions-auto_proportions = Proporciones automáticas
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Recomendado
onboarding-choose_proportions-manual_proportions = Proporciones manuales
onboarding-choose_proportions-export = Exportar proporciones
## Tracker manual proportions setup
onboarding-manual_proportions-auto = Proporciones automáticas
## Tracker automatic proportions setup
onboarding-automatic_proportions-prev_step = Paso anterior
onboarding-automatic_proportions-requirements-title = Requisitos
onboarding-automatic_proportions-requirements-next = He leído los requisitos
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-processing = Procesando los resultados
onboarding-automatic_proportions-verify_results-title = Verificar resultados
onboarding-automatic_proportions-verify_results-processing = Procesando los resultados
## Home
## Status system

View File

@@ -1,6 +1,3 @@
### 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!
@@ -13,10 +10,19 @@
websocket-connecting = Serveriga ühendamine
websocket-connection_lost = Ühendus serveriga on kaotatud. Ühenduse taastamine...
## Update notification
version_update-title = Uus versioon olemas: { $version }
version_update-description = Vajutades "{ version_update-update }" tõmbab programm alla SlimeVR installeri.
version_update-update = Värskenda
version_update-close = Sulge
## Tips
tips-find_tracker = Ei ole kindel milline jälgija on mis? Raputage jälgijat ja vaadake milline jälgija tõstetakse esile.
tips-find_tracker = Ei ole kindel milline jälgija on mis? Raputage jälgijat, ning õige jälgija tõstetakse esile.
tips-do_not_move_heels = Veenduge, et teie kannad ei liigu salvestamise ajal!
tips-file_select = Pukseerige failid kasutamiseks, või <u>sirvi</u>.
tips-tap_setup = Saate jälgija valimiseks menüüst valimise asemel aeglaselt oma jälgijat 2 korda puudutada.
## Body parts
@@ -30,6 +36,7 @@ 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-UPPER_CHEST = Rinna ülaosa
body_part-CHEST = Rind
body_part-WAIST = Vöökoht
body_part-HIP = Puus
@@ -46,19 +53,23 @@ body_part-LEFT_FOOT = Vasak jalg
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-torso_group = Torso pikkus
skeleton_bone-UPPER_CHEST = Rinna ülaosa pikkus
skeleton_bone-CHEST_OFFSET = Rindkere nihe
skeleton_bone-CHEST = Rinna pikkus
skeleton_bone-WAIST = Vööümbermõõt
skeleton_bone-HIP = Puusa pikkus
skeleton_bone-HIP_OFFSET = Puusa Nihe
skeleton_bone-HIPS_WIDTH = Puusa Laius
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-leg_group = Jala pikkus
skeleton_bone-UPPER_LEG = Jala ülaosa pikkus
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-arm_group = Käe pikkus
skeleton_bone-UPPER_ARM = Õlavarre Pikkus
skeleton_bone-LOWER_ARM = Käsivarre Kaugus
skeleton_bone-HAND_Y = Käte kaugus Y
@@ -70,6 +81,7 @@ skeleton_bone-ELBOW_OFFSET = Küünarnuki Nihe
reset-reset_all = Lähtesta kõik proportsioonid
reset-full = Lähtesta
reset-mounting = Lähtesta Paigaldusasend
reset-yaw = Lähtesta lengerdus
## Serial detection stuff
@@ -90,11 +102,16 @@ navbar-mounting = Jälgijate Paigalduse Kalibreerimine
navbar-onboarding = Häälestusviisard
navbar-settings = Seaded
## Bounding volume hierarchy recording
## Biovision hierarchy recording
bvh-start_recording = Salvesta BVH
bvh-recording = Salvestamine...
## Tracking pause
tracking-unpaused = Peata jälgimine
tracking-paused = Jätka jälgimine
## Widget: Overlay settings
widget-overlay = Ülekate
@@ -105,13 +122,17 @@ widget-overlay-is_mirrored_label = Näita Ülekatet Peeglina
widget-drift_compensation-clear = Selgem triivi kompenseerimine
## Widget: Clear Reset Mounting
widget-clear_mounting = Lähtesta paigaldusasend
## 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-filter_slimes_and_hmd = Filtreerige Slimed 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
@@ -121,6 +142,7 @@ widget-developer_mode-more_info = Rohkem infot
widget-imu_visualizer = Rotatsiooni
widget-imu_visualizer-rotation_raw = Toores
widget-imu_visualizer-rotation_preview = Eelvaade
widget-imu_visualizer-rotation_hide = Peida
## Tracker status
@@ -147,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Ees
tracker-rotation-front_left = Ees vasakul
tracker-rotation-front_right = Ees paremal
tracker-rotation-left = Vasak
tracker-rotation-right = Parem
tracker-rotation-back = Taga
tracker-rotation-back_left = Taga vasakul
tracker-rotation-back_right = Taga paremal
tracker-rotation-custom = Kohandatud
tracker-rotation-overriden = (tühistatud paigalduse lähtestamine tõttu)
## Tracker information
@@ -159,6 +187,9 @@ tracker-infos-custom_name = Kohandatud Nimi
tracker-infos-url = Jälgija URL
tracker-infos-version = Püsivara versioon
tracker-infos-hardware_rev = Riistvara revisjon
tracker-infos-hardware_identifier = Riistvara ID
tracker-infos-imu = IMU sensor
tracker-infos-board_type = Põhiplaat
## Tracker settings
@@ -211,6 +242,7 @@ tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } paremale re
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-UPPER_CHEST = { -tracker_selection-part } rinnale?
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?
@@ -247,8 +279,11 @@ settings-sidebar-fk_settings = FK seaded
settings-sidebar-gesture_control = Žesti juhtimine
settings-sidebar-interface = Liides
settings-sidebar-osc_router = OSC ruuter
settings-sidebar-osc_trackers = VRChati OSC Jälgija
settings-sidebar-utils = Olemus / Lisad
settings-sidebar-serial = Jadakonsool
settings-sidebar-appearance = Välimus
settings-sidebar-notifications = Teavitused
## SteamVR settings
@@ -305,15 +340,32 @@ settings-general-fk_settings-leg_tweak-floor_clip = Põranda läbimine
# 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-toe_snap = Varba klõpsatus maha
settings-general-fk_settings-leg_tweak-foot_plant = Jalg maas
settings-general-fk_settings-leg_tweak-skating_correction-amount = Libisemise korrigeerimine jõud
settings-general-fk_settings-leg_tweak-skating_correction-description = Uisukorrektsioon korrigeerib uisutamist, kuid võib vähendada teatud liikumismustrite täpsust. Selle lubamisel veenduge, et mängus lähtestatakse jälgimine ja kalibreeritakse jälgimine uuesti.
settings-general-fk_settings-leg_tweak-floor_clip-description = Põrandaklõpsatus võib vähendada või isegi välistada jalgade läbi põranda minemise. Selle lubamisel veenduge, et mängus lähtestatakse jälgimine ja kalibreeritakse jälgimine uuesti.
settings-general-fk_settings-leg_tweak-toe_snap-description = Varvaste klõpsatus maha üritab ära arvata jalgade pöörlemist, kui jalgade jälgijaid ei kasutata.
settings-general-fk_settings-leg_tweak-foot_plant-description = Jalg-maas pöörab jalad kokkupuutel maapinnaga paralleelseks.
settings-general-fk_settings-leg_fk = Jalgade jälgimine
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-toggles = Skeleti lülitid
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-skeleton_settings-extended_spine_model = Laiendatud selgroo mudel
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Laiendatud vaagna mudel
settings-general-fk_settings-skeleton_settings-extended_knees_model = Laiendatud põlve mudel
settings-general-fk_settings-skeleton_settings-ratios = Skeleti suhted
settings-general-fk_settings-skeleton_settings-ratios-description = Muutke skeleti seadete väärtusi. Võimalik, et peate pärast nende muutmist oma proportsioone kohandama.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Imputeeri vöökoht rinnast ja puusast
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Imputeeri vöökoht rinnast ja jalgadest
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Imputeeri puusakoht rinnast ja jalgadest
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Imputeeri puusakoht vöökohast ja jalgadest
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Leia keskmine puusa lengerdus ja pöörlemine jalgade abiga
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Leia keskmine põlvede lengerdus ja pöörlemine säärte abiga
settings-general-fk_settings-self_localization-title = Mocapi režiim
settings-general-fk_settings-self_localization-description = Mocap-režiim võimaldab skeletil ligikaudselt jälgida oma asukohta ilma peakomplekti või muude jälgijateta. Pange tähele, et see nõuab jalgade ja peajälgijate olemasolu ning on endiselt eksperimentaalne.
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
@@ -322,30 +374,63 @@ settings-general-fk_settings-vive_emulation-label = Luba Vive-i emulatsioon
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.
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.3 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
[one] 1 puudutus
*[other] { $amount } puudutusi
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 jälgija
*[other] { $amount } jälgijat
}
settings-general-gesture_control-yawResetEnabled = Luba puudutamine lengerduse lähtestamiseks
settings-general-gesture_control-yawResetDelay = Lengerduse lähtestamise viivitus
settings-general-gesture_control-yawResetTaps = Puudutust lengerduse lähtestamiseks
settings-general-gesture_control-fullResetEnabled = Luba puudutus täielikuks lähtestamiseks
settings-general-gesture_control-fullResetDelay = Tavalise lähtestamise viivitus
settings-general-gesture_control-fullResetTaps = Puudutust tavaliseks lähtestamiseks
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
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Jälgijad üle läve
settings-general-gesture_control-numberTrackersOverThreshold-description = Suurendage seda väärtust, kui puudutuse tuvastamine ei tööta. Ärge suurendage seda üle selle, mis on vajalik puudutuse tuvastuse toimimiseks, kuna see põhjustaks rohkem valepositiivseid tulemusi.
## Interface settings
## Appearance settings
settings-general-interface = Liides
settings-interface-appearance = Välimus
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-theme = Värviteema
settings-general-interface-lang = Vaikekeel
settings-general-interface-lang-description = Muutke vaikekeelt, mida soovite kasutada.
settings-general-interface-lang-placeholder = Vali keel, mida kasutada
# Keep the font name untranslated
settings-interface-appearance-font = GUI font
settings-interface-appearance-font-description = See muudab liidese kasutatavat fonti.
settings-interface-appearance-font-placeholder = Vaikimisi font
settings-interface-appearance-font-os_font = OS-i font
settings-interface-appearance-font-slime_font = Vaikimisi font
settings-interface-appearance-font_size = Fondi mastaapimise alus
settings-interface-appearance-font_size-description = See mõjutab kogu liidese fondi suurust, välja arvatud see seadete paneel.
## Notification settings
settings-interface-notifications = Teavitused
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-feedback_sound = Tagasiside heli
settings-general-interface-feedback_sound-description = See suvand esitab lähtestamise käivitamisel heli.
settings-general-interface-feedback_sound-label = Tagasiside heli
settings-general-interface-feedback_sound-volume = Tagasiside helitugevus
## Serial settings
@@ -417,19 +502,56 @@ 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-hip = Puus
settings-osc-vrchat-network-trackers-knees = Põlved
settings-osc-vrchat-network-trackers-feet = Jalad
settings-osc-vrchat-network-trackers-elbows = Küünarnukid
## VMC OSC settings
settings-osc-vmc = Virtual Motion Capture
# This cares about multilines
settings-osc-vmc-description =
VMC (Virtual Motion Capture) protokollile omaste sätete muutmine
SlimeVR-i luuandmete saatmiseks ja luuandmete vastuvõtmiseks teistest rakendustest.
settings-osc-vmc-enable = Luba
settings-osc-vmc-enable-description = Lülitage andmete sisestamine sisse/välja.
settings-osc-vmc-enable-label = Luba
settings-osc-vmc-network = Pordid
settings-osc-vmc-network-description = Määrake pordid VMC kaudu andmete kuulamiseks ja saatmiseks.
settings-osc-vmc-network-port_in =
.label = Port sisse
.placeholder = Port sisse (vaikimisi: 39540)
settings-osc-vmc-network-port_out =
.label = Port välja
.placeholder = Port välja (vaikimisi 39539)
settings-osc-vmc-network-address = Võrgu aadress
settings-osc-vmc-network-address-description = Valige, millisel aadressil soovite VMC kaudu andmeid saata.
settings-osc-vmc-network-address-placeholder = IPV4 aadress
settings-osc-vmc-vrm = VRM-mudel
settings-osc-vmc-vrm-description = Laadige VRM-mudel, et võimaldada peaankurdamist ja suuremat ühilduvust teiste rakendustega.
settings-osc-vmc-vrm-model_unloaded = Mudelit pole laaditud
settings-osc-vmc-vrm-model_loaded =
{ $titled ->
[true] Mudel laaditud: { $name }
*[other] Pealkirjata mudel on laaditud
}
settings-osc-vmc-vrm-file_select = Kasutatava mudeli pukseerimine või <u>sirvimine</u>
settings-osc-vmc-anchor_hip = Ankurda puusadel
settings-osc-vmc-anchor_hip-description = Ankurdage jälgimine puusadele, mis on kasulik istuva VTubingu jaoks. Keelamise korral laadige VRM-mudel.
settings-osc-vmc-anchor_hip-label = Ankurda puusadel
## Setup/onboarding menu
onboarding-skip = Jäta seadistamine vahele
onboarding-continue = Jätka
onboarding-wip = Töö käib
onboarding-previous_step = Eelmine samm
onboarding-setup_warning =
<b>Hoiatus:</b> Hea jälgimise jaoks on vajalik esialgne seadistamine,
see on vajalik, kui kasutate SlimeVR-i esimest korda.
onboarding-setup_warning-skip = Jäta seadistamine vahele
onboarding-setup_warning-cancel = Jätka seadistamist
## Wi-Fi setup
@@ -445,22 +567,37 @@ onboarding-wifi_creds-ssid =
.label = SSID
.placeholder = Sisesta SSID
onboarding-wifi_creds-password =
.label = parool
.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
onboarding-reset_tutorial-explanation = Kui kasutate oma jälgijaid, võivad need IMU lengerdamise tõttu joondusest välja tulla või kuna olete neid füüsiliselt liigutanud. Teil on selle parandamiseks mitu võimalust.
onboarding-reset_tutorial-skip = Jäta samm vahele
# Cares about multiline
onboarding-reset_tutorial-0 =
Puudutage { $taps } korda esiletõstetud jälgijat, et käivitada lengerduse lähtestamine.
See setib jälgijad teie HMD-ga samas suunas.
# Cares about multiline
onboarding-reset_tutorial-1 =
Täieliku lähtestamise käivitamiseks puudutage esiletõstetud jälgijat { $taps } korda.
Sa pead seisma (i-poosis). Enne kui see juhtub, on 3-sekundiline viivitus (konfigureeritav).
See lähtestab täielikult kõigi teie jälgijate asukoha ja pöörlemise. See peaks lahendama enamiku probleeme.
# Cares about multiline
onboarding-reset_tutorial-2 =
Puudutage { $taps } korda esiletõstetud jälgijat, et lähtestada paigaldus.
Paigaldamise lähtestamine aitab kaasa sellele, kuidas jälgijad teile tegelikult pannakse, nii et kui te neid kogemata liigutasite ja muutsite nende orientatsiooni suure summa võrra, aitab see.
Peate olema poosis, nagu suusatate, nagu see on näidatud automaatse paigaldamise viisardil, ja teil on 3-sekundiline viivitus (konfigureeritav), enne kui see käivitub.
## 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
@@ -505,6 +642,27 @@ onboarding-connect_tracker-connected_trackers =
} connected
onboarding-connect_tracker-next = Olen ühendanud kõik oma jälgijad
## Tracker calibration tutorial
onboarding-calibration_tutorial = IMU kalibreerimise õpetus
onboarding-calibration_tutorial-subtitle = See aitab vähendada jälgija driftimist!
onboarding-calibration_tutorial-description = Iga kord, kui lülitate oma jälgijad sisse, peavad nad kalibreerimiseks hetkeks tasasel pinnal olema. Teeme sama, klõpsates nuppu "{ onboarding-calibration_tutorial-calibrate }", <b>ärge liigutage neid!</b>
onboarding-calibration_tutorial-calibrate = Panin oma jälgijad lauale
onboarding-calibration_tutorial-status-waiting = Ootan sind
onboarding-calibration_tutorial-status-calibrating = Kalibreerimine
onboarding-calibration_tutorial-status-success = Võimas!
onboarding-calibration_tutorial-status-error = Jälgija liigutati
## Tracker assignment tutorial
onboarding-assignment_tutorial = Kuidas valmistada Slime Trackerit enne selle külge panemist
onboarding-assignment_tutorial-first_step = 1. Asetage kehaosa kleebis (kui teil see on) jälgijale vastavalt oma valikule
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Kleebis
onboarding-assignment_tutorial-second_step-v2 = 2. Kinnitage rihm oma jälgija külge, hoides rihma takjakülge jälgimisseadme pealmise poolega samas suunas:
onboarding-assignment_tutorial-second_step-continuation-v2 = Extensioni takjapaela pool peaks olema ülespoole suunatud nagu järgmine pilt:
onboarding-assignment_tutorial-done = Panin kleepsud ja rihmad külge!
## Tracker assignment setup
onboarding-assign_trackers-back = Minge tagasi Wi-Fi andmetesse
@@ -524,6 +682,17 @@ onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
## Tracker assignment warnings
## Tracker mounting method choose
onboarding-choose_mounting-auto_mounting = Automaatne paigaldamine
# Italized text
onboarding-choose_mounting-auto_mounting-label = Eksperimentaalne
onboarding-choose_mounting-auto_mounting-description = See tuvastab automaatselt kõigi teie jälgijate paigaldussuuna 2 poosist
onboarding-choose_mounting-manual_mounting = Käsitsi paigaldamine
# Italized text
onboarding-choose_mounting-manual_mounting-label = Soovitatud
onboarding-choose_mounting-manual_mounting-description = See võimaldab teil valida iga jälgija paigaldussuuna käsitsi
## Tracker manual mounting setup
onboarding-manual_mounting-back = Minge tagasi, et siseneda VR-i
@@ -553,12 +722,29 @@ onboarding-automatic_mounting-put_trackers_on-title = Pange kõik jälgijad peal
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 proportions method choose
onboarding-choose_proportions = Millist proportsiooni kalibreerimismeetodit kasutada?
# Multiline string
onboarding-choose_proportions-description =
Keha proportsioone kasutatakse teie keha mõõtude tundmiseks. Neid on vaja, et arvutada jälgijate asukohad.
Kui teie keha proportsioonid ei vasta salvestatud proportsioonidele, on teie jälgimistäpsus halvem ja märkate selliseid asju nagu jalgade uisutamine või libistamine või keha ei sobi teie avatariga hästi.
onboarding-choose_proportions-auto_proportions = Automaatsed proportsioonid
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Soovitatud
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Väikeste puudutuste jaoks
onboarding-choose_proportions-manual_proportions-description = See võimaldab teil proportsioone käsitsi reguleerida, muutes neid otseselt
onboarding-choose_proportions-export = Ekspordi proportsioonid
onboarding-choose_proportions-file_type = Keha proportsioonide fail
## 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
onboarding-manual_proportions-ratio = Kohandamine suhtarvugruppide järgi
## Tracker automatic proportions setup
@@ -570,22 +756,34 @@ 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-requirements-title = Nõuded
onboarding-automatic_proportions-requirements-next = Olen lugenud nõudeid
onboarding-automatic_proportions-check_height-title = Kontrollige oma pikkust
onboarding-automatic_proportions-check_height-description = Me kasutame teie pikkust oma mõõtmiste alusena, kasutades HMD kõrgust teie tegeliku kõrguse ligikaudseks arvutamiseks, kuid parem on ise kontrollida, kas need on õiged!
onboarding-automatic_proportions-check_height-fetch_height = Ma seisan!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Tundmatu
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = Teie HMD kõrgus on
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = nii et teie tegelik kõrgus on
onboarding-automatic_proportions-check_height-next_step = Nendega on kõik korras
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.
# Each line of text is a different list item
onboarding-automatic_proportions-recording-steps =
Sirgelt püsti seistes pöörage pea ringi igas suunas.
Painutage selg ettepoole ja kükitage. Kükitades vaadake vasakule, seejärel paremale.
Keerake ülakeha vasakule (vastupäeva), seejärel sirutage alla maapinna poole.
Keerake ülakeha paremale (päripäeva), seejärel sirutage alla maapinna poole.
Pöörage puusi ringiratast, nagu kasutaksite hularõngast.
Kui salvestusel on veel aega, korrake juhiseid, kuni aeg on läbi.
onboarding-automatic_proportions-recording-processing = Tulemuse töötlemine
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 20)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 sekund
@@ -599,7 +797,17 @@ 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!
onboarding-automatic_proportions-error_modal-confirm = Sain aru!
## Home
home-no_trackers = Jälgijaid ei tuvastatud ega määratud
## Status system
status_system-StatusSteamVRDisconnected =
{ $type ->
[steamvr_feeder] Praegu ei ole SlimeVR-feeder äpiga ühendatud.
*[other] Praegu ei ole SlimeVR-draiveri kaudu SteamVR-iga ühendatud.
}
status_system-StatusTrackerError = Jälgijal { $trackerName } on tõrge.

View File

@@ -1,6 +1,3 @@
### 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!
@@ -13,10 +10,19 @@
websocket-connecting = Yhdistetään palvelimeen
websocket-connection_lost = Yhteys epäonnistui. Yritetään uudelleen...
## Update notification
version_update-title = Uusi versio saatavilla: { $version }
version_update-description = Valitsemalla "{ version_update-update }" lataa SlimeVR-asennusohjelman.
version_update-update = Päivitys
version_update-close = Sulje
## 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!
tips-file_select = Vedä ja pudota käytettäviä tiedostoja tai <u>selaa</u>.
tips-tap_setup = Voit hitaasti napauttaa 2 kertaa jäljitintä valitaksesi sen, sen sijaan, että valitsisit sen valikosta.
## Body parts
@@ -30,6 +36,7 @@ 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-UPPER_CHEST = Ylärinta
body_part-CHEST = Rinta
body_part-WAIST = Vyötärö
body_part-HIP = Lonkka
@@ -47,8 +54,9 @@ skeleton_bone-NONE = Ei mikään
skeleton_bone-HEAD = Pään säätö
skeleton_bone-NECK = Kaulan pituus
skeleton_bone-torso_group = Vartalon pituus
skeleton_bone-CHEST = Rinnan pituus
skeleton_bone-UPPER_CHEST = Ylärinnan pituus
skeleton_bone-CHEST_OFFSET = Rinnan keskitys
skeleton_bone-CHEST = Rinnan pituus
skeleton_bone-WAIST = Vyötärön pituus
skeleton_bone-HIP = Lonkan pituus
skeleton_bone-HIP_OFFSET = Lonkan keskitys
@@ -94,11 +102,16 @@ navbar-mounting = Asennuksen Kalibrointi
navbar-onboarding = Asennustoiminto
navbar-settings = Asetukset
## Bounding volume hierarchy recording
## Biovision hierarchy recording
bvh-start_recording = Tallenna BVH
bvh-recording = Tallennetaan...
## Tracking pause
tracking-unpaused = Keskeytä jäljitys
tracking-paused = Jatka jäljitystä
## Widget: Overlay settings
widget-overlay = Overlay
@@ -109,6 +122,10 @@ widget-overlay-is_mirrored_label = Näytä Overlay Peilinä
widget-drift_compensation-clear = Tyhjennä ajautumakompensaatio
## Widget: Clear Reset Mounting
widget-clear_mounting = Tyhjennä asennuksen nollaus
## Widget: Developer settings
widget-developer_mode = Kehittäjätila
@@ -125,6 +142,7 @@ widget-developer_mode-more_info = Lisätietoja
widget-imu_visualizer = Kierto
widget-imu_visualizer-rotation_raw = Käsittelemätön
widget-imu_visualizer-rotation_preview = Esikatselu
widget-imu_visualizer-rotation_hide = Piilota
## Tracker status
@@ -151,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Etu
tracker-rotation-front_left = Etu-vasen
tracker-rotation-front_right = Etu-oikea
tracker-rotation-left = Vasen
tracker-rotation-right = Oikea
tracker-rotation-back = Taka
tracker-rotation-back_left = Taka-vasen
tracker-rotation-back_right = Taka-oikea
tracker-rotation-custom = Mukautettu
tracker-rotation-overriden = (asennusnollauksen ohittama)
## Tracker information
@@ -163,6 +187,9 @@ tracker-infos-custom_name = Mukautettu Nimi
tracker-infos-url = Jäljittimen URL
tracker-infos-version = Laiteohjelmiston Versio
tracker-infos-hardware_rev = Laitteston Tarkistus
tracker-infos-hardware_identifier = Laitteiston ID
tracker-infos-imu = IMU-Sensor
tracker-infos-board_type = Päälevy
## Tracker settings
@@ -205,6 +232,28 @@ body_assignment_menu-unassign_tracker = Poista jäljittimen määritys
# 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-HEAD = { -tracker_selection-part } pää?
tracker_selection_menu-NECK = { -tracker_selection-part } kaula?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } oikea olkapää?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } oikea olkavarsi?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } oikea kyynärvarsi?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } oikea käsi?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } oikea reisi?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } oikea nilkka?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } oikea jalkaterä?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } oikea ohjain?
tracker_selection_menu-UPPER_CHEST = { -tracker_selection-part } ylärinta?
tracker_selection_menu-CHEST = { -tracker_selection-part } rinta?
tracker_selection_menu-WAIST = { -tracker_selection-part } vyötärö?
tracker_selection_menu-HIP = { -tracker_selection-part } lonkka?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } vasen olkapää?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } vasen olkavarsi?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } vasen kyynärvarsi?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } vasen käsi?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } vasen reisi?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } vasen nilkka?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } vasen jalkaterä?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } vasen ohjain?
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ä
@@ -230,8 +279,11 @@ 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-osc_trackers = VRChat OSC-jäljittimet
settings-sidebar-utils = Lisäohjelmat
settings-sidebar-serial = Sarjakonsoli
settings-sidebar-appearance = Ulkonäkö
settings-sidebar-notifications = Ilmoitukset
## SteamVR settings
@@ -299,11 +351,21 @@ settings-general-fk_settings-leg_fk = Jalkojen jäljitys
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-toggles = Luurankoasetuksia
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-skeleton_settings-extended_spine_model = Laajennettu selkärankamalli
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Laajennettu lantiomalli
settings-general-fk_settings-skeleton_settings-extended_knees_model = Laajennettu polvimalli
settings-general-fk_settings-skeleton_settings-ratios = Luurankosuhteet
settings-general-fk_settings-skeleton_settings-ratios-description = Muuta luurankoasetusten arvoja. Saatat joutua säätämään mittasuhteitasi muutosten jälkeen.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Laskelmoi vyötärö rinnasta lantioon
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Laskelmoi vyötärö rinnasta jalkoihin
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Laskelmoi lonkka rinnasta jalkoihin
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Laskelmoi lantio vyötäröstä jalkoihin
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Keskimääritä lonkan kallistus jaloilla'
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Keskimääritä polvijäljittimen kallistus nilkoilla'
settings-general-fk_settings-self_localization-title = Mocap-tila
settings-general-fk_settings-self_localization-description = Mocap-tila sallii luurangon karkeasti seurata omaa sijaintiaan ilman laseja tai muita jäljittimiä. Huomioi, että tämä vaatii jalka- ja pääjäljittimien toimimista ja on vielä kokeellinen.
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
@@ -320,6 +382,13 @@ settings-general-gesture_control-taps =
[one] 1 napautus
*[other] { $amount } napautusta
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 jäljitin
*[other] { $amount } jäljitintä
}
settings-general-gesture_control-yawResetEnabled = Ota käyttöön kallistumanollaus napautus
settings-general-gesture_control-yawResetDelay = Kallistumanollaus viive
settings-general-gesture_control-yawResetTaps = Napautuksia kallistumanollaukseen.
@@ -329,13 +398,32 @@ settings-general-gesture_control-fullResetTaps = Napautuksia täysinollaukseen
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
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Jäljittimet yli kynnysarvon
settings-general-gesture_control-numberTrackersOverThreshold-description = Suurenna tätä arvoa jos napautustunnistus ei toimi. Älä suurenna yli sen, mikä on tarpeellista, koska se voi aiheuttaa enemmän virheitä.
## Interface settings
## Appearance settings
settings-general-interface = Käyttöliittymä
settings-interface-appearance = Ulkonäkö
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-theme = Väri teema
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
# Keep the font name untranslated
settings-interface-appearance-font = GUI-fontti
settings-interface-appearance-font-description = Tämä muuttaa käyttöliittymän käyttämää fonttia.
settings-interface-appearance-font-placeholder = Oletusfontti
settings-interface-appearance-font-os_font = OS-fontti
settings-interface-appearance-font-slime_font = Oletusfontti
settings-interface-appearance-font_size = Perusfontin skaalaus
settings-interface-appearance-font_size-description = Tämä vaikuttaa koko käyttöliittymän fonttikokoon tätä asetuspaneelia lukuun ottamatta.
## Notification settings
settings-interface-notifications = Ilmoitukset
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
@@ -343,10 +431,6 @@ settings-general-interface-feedback_sound = Palaute ääni
settings-general-interface-feedback_sound-description = Tämä asetus toistaa äänen nollauksen tapahtuessa.
settings-general-interface-feedback_sound-label = Palaute ääni
settings-general-interface-feedback_sound-volume = Palaute äänen voimakkuus
settings-general-interface-theme = Väri teema
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
@@ -418,6 +502,7 @@ 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-hip = Lonkka
settings-osc-vrchat-network-trackers-knees = Polvet
settings-osc-vrchat-network-trackers-feet = Jalat
settings-osc-vrchat-network-trackers-elbows = Kyynärpäät
@@ -451,13 +536,22 @@ settings-osc-vmc-vrm-model_loaded =
[true] Malli ladattu: { $name }
*[other] Nimetön malli ladattu
}
settings-osc-vmc-vrm-file_select = Vedä ja pudota mallia käytettäväksi tai <u>selaa</u>
settings-osc-vmc-anchor_hip = Ankkuri lantiolla
settings-osc-vmc-anchor_hip-description = Ankkuroi jäljitin lonkalle, hyödyllinen istuvaan VTubing. Jos poistat käytöstä, lataa VRM-malli.
settings-osc-vmc-anchor_hip-label = Ankkuroi lonkalle
## Setup/onboarding menu
onboarding-skip = Ohita asennus
onboarding-continue = Jatka
onboarding-wip = Keskeneräinen
onboarding-previous_step = Edellinen vaihe
onboarding-setup_warning =
<b>Varoitus:</b> Alkuasennus vaaditaan hyvään jäljitykseen,
sitä tarvitaan, jos käytät SlimeVR:ää ensimmäistä kertaa.
onboarding-setup_warning-skip = Ohita asennus
onboarding-setup_warning-cancel = Jatka asennusta
## Wi-Fi setup
@@ -480,7 +574,26 @@ onboarding-wifi_creds-password =
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
onboarding-reset_tutorial-explanation = Kun käytät jäljittimiä, ne saattavat epälinjoittua IMU:n ajautumisen tai fyysisen siirron takia. Sinulla on useita tapoja korjata tämä.
onboarding-reset_tutorial-skip = Ohita vaihe
# Cares about multiline
onboarding-reset_tutorial-0 =
Napauta { $taps } kertaa korostettua jäljitintä käynnistääksesi kallistuman nollauksen.
Tämä osoittaa jäljittimet samaan suuntaan kuin HMD.
# Cares about multiline
onboarding-reset_tutorial-1 =
Napauta { $taps } kertaa korostettua jäljitintä käynnistääksesi täysinollauksen.
Sinun on seisottava paikallasi (i-pose) tätä varten. On 3 sekunnin viive (muokattavissa), ennen kuin se tapahtuu.
Tämä täysin nollaa kaikkien jäljittimien sijainnin ja kierron. Sen pitäisi korjata useimmat ongelmat.
# Cares about multiline
onboarding-reset_tutorial-2 =
Napauta { $taps } kertaa korostettua jäljitintä käynnistääksesi asennuksen nollaus.
Asennuksen nollaus auttaa siinä, kuinka jäljittimet on todella asetettu sinulla, joten jos vahingossa siirsit ja muutit suuresti niiden suuntaa, tämä auttaa.
Sinun on oltava hiihto-asennossa, kuten on näytettynä Automaattisessa Asennuksessa ja sinulla on 3 sekunnin viive (muokattavissa), ennen kuin se käynnistyy.
## Setup start
@@ -506,30 +619,237 @@ 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.
onboarding-connect_tracker-issue-serial = Minulla on ongelmia yhteyden muodostamisessa!
onboarding-connect_tracker-usb = USB-jäljitin
onboarding-connect_tracker-connection_status-none = Etsitään jäljittimiä
onboarding-connect_tracker-connection_status-serial_init = Yhdistetään sarjalaitteeseen
onboarding-connect_tracker-connection_status-provisioning = Lähetetään Wi-Fi-tunnistetietoja
onboarding-connect_tracker-connection_status-connecting = Yritetään muodostaa yhteys Wi-Fi-verkkoon
onboarding-connect_tracker-connection_status-looking_for_server = Etsitään palvelinta
onboarding-connect_tracker-connection_status-connection_error = Wi-Fi-yhteyden muodostaminen epäonnistui
onboarding-connect_tracker-connection_status-could_not_find_server = Palvelinta ei löytynyt
onboarding-connect_tracker-connection_status-done = Yhdistetty palvelimeen
# $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] Jäljittimiä ei ole yhdistetty
[one] 1 jäljitin yhdistetty
*[other] { $amount } jäljitintä yhdistetty
}
onboarding-connect_tracker-next = Yhdistin kaikki jäljittimeni
## Tracker calibration tutorial
onboarding-calibration_tutorial = IMU-kalibrointi tutoriaali
onboarding-calibration_tutorial-subtitle = Tämä auttaa vähentämään jäljittimen ajautumaa!
onboarding-calibration_tutorial-description = Joka kerta, kun käynnistät jäljittimet, niiden täytyy levätä hetken tasaisella alustalla kalibroidakseen. Tehdään sama asia painamalla "{ onboarding-calibration_tutorial-calibrate }" nappia, <b>älä liikuta niitä!</b>
onboarding-calibration_tutorial-calibrate = Asetin jäljittimeni pöydälle
onboarding-calibration_tutorial-status-waiting = Odotetaan sinua
onboarding-calibration_tutorial-status-calibrating = Kalibroi
onboarding-calibration_tutorial-status-success = Kiva!
onboarding-calibration_tutorial-status-error = Jäljitintä liikutettiin
## Tracker assignment tutorial
onboarding-assignment_tutorial = Kuinka valmistellaan Slime-jäljitin ennen käyttöä
onboarding-assignment_tutorial-first_step = 1. Aseta kehonosatarra (jos sinulla on) jäljittimeen valintasi mukaan
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Tarra
onboarding-assignment_tutorial-second_step-continuation-v2 = Jatkeen tarranauhapuolen tulee olla ylöspäin seuraavan kuvan mukaisesti:
onboarding-assignment_tutorial-done = Laitoin tarrat ja hihnat!
## Tracker assignment setup
onboarding-assign_trackers-back = Palaa Wi-Fi-tunnistetietoihin
onboarding-assign_trackers-title = Määritä jäljittimet
onboarding-assign_trackers-description = Valitaan, mikä jäljitin menee minne. Napsauta paikkaa, johon haluat sijoittaa jäljittimen
# 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 } / 1 jäljitintä määritetty
*[other] { $assigned } / { $trackers } jäljittimiä määritetty
}
onboarding-assign_trackers-advanced = Näytä tarkempia määrityssijainteja
onboarding-assign_trackers-next = Määritin kaikki jäljittimet
## 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 ->
[6] Vasen jalkaterä on määritetty, mutta myös vasen nilkka on määritettävä!
[5] Vasen jalkaterä on määritetty, mutta myös vasen reisi on määritettävä!
[4] Vasen jalkaterä on määritetty, mutta myös vasen nilkka ja vasen reisi on määritettävä!
[3] Vasen jalkaterä on määritetty, mutta joko rinta, lantio tai vyötärö on myös määritettävä!
[2] Vasen jalkaterä on määritetty, mutta myös vasen nilkka ja joko rinta, lantio tai vyötärö on määritettävä!
[1] Vasen jalkaterä on määritetty, mutta myös vasen reisi ja joko rinta, lantio tai vyötärö on määritettävä!
[0] Vasen jalkaterä on määritetty, mutta myös vasen nilkka, vasen reisi ja joko rinta, lantio tai vyötärö on määritettävä!
*[other] Vasen jalkaterä on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[6] Oikea jalkaterä on määritetty, mutta myös oikea nilkka on määritettävä!
[5] Oikea jalkaterä on määritetty, mutta myös oikea reisi on määritettävä!
[4] Oikea jalkaterä on määritetty, mutta myös oikea nilkka ja oikea reisi on määritettävä!
[3] Oikea jalkaterä on määritetty, mutta joko rinta, lantio tai vyötärö on myös määritettävä!
[2] Oikea jalkaterä on määritetty, mutta myös oikea nilkka ja joko rinta, lantio tai vyötärö on määritettävä!
[1] Oikea jalkaterä on määritetty, mutta myös oikea reisi ja joko rinta, lantio tai vyötärö on määritettävä!
[0] Oikea jalkaterä on määritetty, mutta myös oikea nilkka, oikea reisi ja joko rinta, lantio tai vyötärö on määritettävä!
*[other] Oikea jalkaterä on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] Vasen nilkka on määritetty, mutta myös vasen reisi ja joko rinta, lantio tai vyötärö on määritettävä!
[1] Vasen nilkka on määritetty, mutta joko rinta, lantio tai vyötärö on myös määritettävä!
[2] Vasen nilkka on määritetty, mutta myös vasen reisi on määritettävä!
*[other] Vasen nilkka on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] Oikea nilkka on määritetty, mutta myös oikea reisi ja joko rinta, lantio tai vyötärö on määritettävä!
[1] Oikea nilkka on määritetty, mutta joko rinta, lantio tai vyötärö on myös määritettävä!
[2] Oikea nilkka on määritetty, mutta myös oikea reisi on määritettävä!
*[other] Oikea nilkka on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Vasen reisi on määritetty, mutta myös rinta, lantio tai vyötärö on määritettävä!
*[other] Vasen reisi on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Oikea reisi on määritetty, mutta myös rinta, lantio tai vyötärö on määritettävä!
*[other] Oikea reisi on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Lonkka on määritetty, mutta myös rinta on määritettävä!
*[other] Lonkka on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Vyötärö on määritetty, mutta myös rinta on määritettävä!
*[other] Vyötärö on määritetty, mutta myös tuntematon määrittelemätön osa on määritettävä!
}
## Tracker mounting method choose
onboarding-choose_mounting = Mitä asennuskalibrointimenetelmää käytetään?
# Multiline text
onboarding-choose_mounting-description = Asennussuuntaus korjaa jäljittimien sijoittelun kehossasi.
onboarding-choose_mounting-auto_mounting = Automaattinen asennus
# Italized text
onboarding-choose_mounting-auto_mounting-label = Kokeellinen
onboarding-choose_mounting-auto_mounting-description = Tämä tunnistaa automaattisesti kaikkien jäljittimiesi asennussuunnat 2 asennosta
onboarding-choose_mounting-manual_mounting = Manuaalinen asennus
# Italized text
onboarding-choose_mounting-manual_mounting-label = Suositeltu
onboarding-choose_mounting-manual_mounting-description = Näin voit valita asennussuunnan manuaalisesti kullekin jäljittimelle
## Tracker manual mounting setup
onboarding-manual_mounting-back = Palaa takaisin VR:ään
onboarding-manual_mounting = Manuaalinen Asennus
onboarding-manual_mounting-description = Napsauta jokaista jäljitintä ja valitse, mihin suuntaan ne on asennettu
onboarding-manual_mounting-auto_mounting = Automaattinen asennus
onboarding-manual_mounting-next = Seuraava vaihe
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Palaa takaisin VR:ään
onboarding-automatic_mounting-title = Asennuksen Kalibrointi
onboarding-automatic_mounting-description = Jotta SlimeVR jäljittimet toimisivat, meidän on määritettävä jäljittimille asennuksen kierto, jotta ne voidaan kohdistaa fyysisen jäljittimen asennuksen kanssa.
onboarding-automatic_mounting-manual_mounting = Manuaalinen asennus
onboarding-automatic_mounting-next = Seuraava vaihe
onboarding-automatic_mounting-prev_step = Edellinen vaihe
onboarding-automatic_mounting-done-title = Asennuskierrokset kalibroitu.
onboarding-automatic_mounting-done-description = Asennuskalibrointi on valmis!
onboarding-automatic_mounting-done-restart = Yritä uudelleen
onboarding-automatic_mounting-mounting_reset-title = Asennuksen Nollaus
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Kyykisty "hiihtoasentoon" siten, että jalat ovat koukussa, ylävartalo kallistettuna eteenpäin ja kädet koukussa.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Paina "Nollaa Asennus" -painiketta ja odota 3 sekuntia, ennen kuin jäljittimien asennuskierrot nollautuvat.
onboarding-automatic_mounting-preparation-title = Valmistelu
onboarding-automatic_mounting-preparation-step-0 = 1. Seiso pystyssä kädet sivuilla.
onboarding-automatic_mounting-preparation-step-1 = 2. Paina "Täysinollaus" -painiketta ja odota 3 sekuntia, ennen kuin jäljittimet nollautuvat.
onboarding-automatic_mounting-put_trackers_on-title = Laita jäljittimet päällesi
onboarding-automatic_mounting-put_trackers_on-description = Kalibroidaksemme asennuskierrokset käytämme juuri määrittämiäsi jäljittimiä. Laita kaikki jäljittimet päällesi, näet mitkä ovat mitäkin oikealla olevassa kuvassa.
onboarding-automatic_mounting-put_trackers_on-next = Minulla on kaikki jäljittimet päällä
## Tracker proportions method choose
onboarding-choose_proportions = Mitä kalibrointimenetelmää käytetään?
onboarding-choose_proportions-auto_proportions = Automaattiset mittasuhteet
onboarding-choose_proportions-manual_proportions = Manuaaliset mittasuhteet
## Tracker manual proportions setup
onboarding-manual_proportions-title = Manuaaliset kehon mittasuhteet
onboarding-manual_proportions-precision = Tarkka säätö
onboarding-manual_proportions-auto = Automaattiset mittasuhteet
onboarding-manual_proportions-ratio = Säädä suhderyhmien mukaan
## Tracker automatic proportions setup
onboarding-automatic_proportions-title = Mittaa kehosi
onboarding-automatic_proportions-manual = Manuaaliset mittasuhteet
onboarding-automatic_proportions-prev_step = Edellinen vaihe
onboarding-automatic_proportions-put_trackers_on-title = Laita jäljittimet päällesi
onboarding-automatic_proportions-put_trackers_on-next = Minulla on kaikki jäljittimet päällä
onboarding-automatic_proportions-requirements-title = Vaatimukset
onboarding-automatic_proportions-requirements-next = Olen lukenut vaatimukset
onboarding-automatic_proportions-check_height-title = Tarkista pituutesi
onboarding-automatic_proportions-check_height-fetch_height = Seison
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Tuntematon
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = HMD-korkeus on
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = Joten todellinen pituutesi on
onboarding-automatic_proportions-check_height-next_step = Ne ovat hyvät
onboarding-automatic_proportions-start_recording-title = Valmistaudu liikkumaan
onboarding-automatic_proportions-start_recording-next = Aloita tallennus
onboarding-automatic_proportions-recording-description-p0 = Tallennus käynnissä...
onboarding-automatic_proportions-recording-description-p1 = Tee alla esitetyt liikkeet:
onboarding-automatic_proportions-recording-processing = Käsitellään tuloksia
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 20)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 sekuntti jäljellä
*[other] { $time } sekuntia jäljellä
}
onboarding-automatic_proportions-verify_results-title = Vahvista tulokset
onboarding-automatic_proportions-verify_results-description = Tarkista alla olevat tulokset, näyttävätkö ne oikeilta?
onboarding-automatic_proportions-verify_results-results = Tallennuksen tulokset
onboarding-automatic_proportions-verify_results-processing = Käsitellään tuloksia
onboarding-automatic_proportions-verify_results-confirm = Nämä ovat oikein
onboarding-automatic_proportions-done-title = Keho mitattu ja tallennettu.
onboarding-automatic_proportions-done-description = Kehosi mittasuhteiden kalibrointi on valmis!
onboarding-automatic_proportions-error_modal-confirm = Ymmäretty!
## Home
home-no_trackers = Jäjittimiä ei havaittu tai määritetty
## Status system
status_system-StatusTrackerReset = On suositeltavaa suorittaa täydellinen nollaus, koska yhtä tai useampaa jäljitintä ei ole säädetty.
status_system-StatusSteamVRDisconnected =
{ $type ->
[steamvr_feeder] Tällä hetkellä ei ole yhdistetty SlimeVR Feeder -sovellukseen.
*[other] Tällä hetkellä ei ole yhdistetty SteamVR:ään SlimeVR-ajurin kautta.
}
status_system-StatusTrackerError = { $trackerName } jäljittimessä on virhe

View File

@@ -20,7 +20,7 @@ version_update-close = Fermer
## 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 !
tips-do_not_move_heels = Assurez-vous de ne pas bouger vos pieds pendant l'enregistrement !
tips-file_select = Glissez et déposez des fichiers à utiliser, ou <u>parcourir</u>.
tips-tap_setup = Vous pouvez tapoter lentement votre capteur 2 fois pour le choisir au lieu de le sélectionner depuis le menu.
@@ -36,6 +36,7 @@ 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-UPPER_CHEST = Poitrine supérieure
body_part-CHEST = Poitrine
body_part-WAIST = Taille
body_part-HIP = Hanche
@@ -53,8 +54,9 @@ skeleton_bone-NONE = Aucun
skeleton_bone-HEAD = Décalage de la tête
skeleton_bone-NECK = Longueur du cou
skeleton_bone-torso_group = Longueur du torse
skeleton_bone-CHEST = Longueur de la poitrine
skeleton_bone-UPPER_CHEST = Longueur de la poitrine supérieure
skeleton_bone-CHEST_OFFSET = Décalage de la poitrine
skeleton_bone-CHEST = Longueur de la poitrine
skeleton_bone-WAIST = Longueur de la taille
skeleton_bone-HIP = Longueur des hanches
skeleton_bone-HIP_OFFSET = Décalage de la hanche
@@ -120,6 +122,10 @@ widget-overlay-is_mirrored_label = Afficher le squelette en tant que miroir
widget-drift_compensation-clear = Réinitialiser la compensation de la dérive
## Widget: Clear Reset Mounting
widget-clear_mounting = Mettre à zéro la réinitialisation de l'alignement
## Widget: Developer settings
widget-developer_mode = Mode développeur
@@ -163,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Avant
tracker-rotation-front_left = Avant-Gauche
tracker-rotation-front_right = Avant-Droite
tracker-rotation-left = Gauche
tracker-rotation-right = Droite
tracker-rotation-back = Arrière
tracker-rotation-back_left = Arrière-Gauche
tracker-rotation-back_right = Arrière-Droite
tracker-rotation-custom = Personnalisé
tracker-rotation-overriden = (remplacé par la réinitialisation du montage)
## Tracker information
@@ -230,6 +242,7 @@ tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } cuisse droi
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-UPPER_CHEST = { -tracker_selection-part } poitrine supérieure ?
tracker_selection_menu-CHEST = { -tracker_selection-part } poitrine ?
tracker_selection_menu-WAIST = { -tracker_selection-part } taille ?
tracker_selection_menu-HIP = { -tracker_selection-part } hanche ?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = Routeur OSC
settings-sidebar-osc_trackers = Capteurs OSC VRChat
settings-sidebar-utils = Utilitaires
settings-sidebar-serial = Console série
settings-sidebar-appearance = Apparence
settings-sidebar-notifications = Notifications
## SteamVR settings
@@ -333,14 +348,36 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Le limitage au s
settings-general-fk_settings-leg_tweak-toe_snap-description = La correction des orteils estime l'orientation de vos pieds si vous ne portez pas de capteurs sur ses derniers.
settings-general-fk_settings-leg_tweak-foot_plant-description = La correction des pieds oriente vos pieds pour qu'ils soient parallèles au sol lorsqu'ils le touche.
settings-general-fk_settings-leg_fk = Capture des jambes
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Activer la réinitialisation de l'alignement des pieds en allant sur la pointe des pieds.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Réinitialisation de l'alignement des pieds
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-arm_fk-reset_mode-description = Changer la pose des bras attendue pour la réinitialisation de l'alignement.
settings-general-fk_settings-arm_fk-back = En arrière
settings-general-fk_settings-arm_fk-back-description = Le mode par défaut, avec les bras vers larrière et les avant-bras vers lavant.
settings-general-fk_settings-arm_fk-tpose_up = T-pose (vers le haut)
settings-general-fk_settings-arm_fk-tpose_up-description = Sattend à ce que vos bras soient vers le bas sur les côtés pendant la réinitialisation complète et à 90 degrés vers l'extérieur pendant la réinitialisation de l'alignement.
settings-general-fk_settings-arm_fk-tpose_down = T-pose (vers le bas)
settings-general-fk_settings-arm_fk-tpose_down-description = Sattend à ce que vos bras soient à 90 degrés vers l'extérieur pendant la réinitialisation complète et vers le bas sur les côtés pendant la réinitialisation de l'alignement.
settings-general-fk_settings-arm_fk-forward = En avant
settings-general-fk_settings-arm_fk-forward-description = Sattend à ce que vos bras soient levés 90 degrés vers lavant. Utile pour le VTubing.
settings-general-fk_settings-skeleton_settings-toggles = Bascules 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-skeleton_settings-extended_spine_model = Modèle de colonne vertébrale avancé
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Modèle de bassin avancé
settings-general-fk_settings-skeleton_settings-extended_knees_model = Modèle de genou avancé
settings-general-fk_settings-skeleton_settings-ratios = Ratios du squelette
settings-general-fk_settings-skeleton_settings-ratios-description = Modifiez les valeurs des paramètres du squelette. Vous devrez peut-être ajuster vos proportions après les avoir modifiées.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Interpoler la taille de la poitrine à la hanche
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Interpoler la taille de la poitrine aux jambes
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Interpoler la hanche de la poitrine aux jambes
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Interpoler la hanche de la taille aux jambes
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Interpoler la rotation horizontale et de torsion de la hanche avec celle des jambes
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Interpoler les rotations horizontales et de torsion des capteurs de genoux avec celles des chevilles
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Interpoler les rotations horizontales et de torsion des genoux avec celles des chevilles
settings-general-fk_settings-self_localization-title = Mode Mocap
settings-general-fk_settings-self_localization-description = Le mode Mocap permet au squelette de suivre grossièrement sa propre position sans casque ou autres capteurs. Ce mode nécessite des capteurs de pieds et de tête afin de fonctionner et est encore expérimental.
settings-general-fk_settings-vive_emulation-title = Émulation Vive
settings-general-fk_settings-vive_emulation-description = Simule les problèmes des capteurs de taille que capteurs Vive ont. Cette optionest une blague et rend la capture des mouvements pire.
settings-general-fk_settings-vive_emulation-label = Activer l'émulation Vive
@@ -357,6 +394,13 @@ settings-general-gesture_control-taps =
[one] 1 tap
*[other] { $amount } taps
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 capteur
*[other] { $amount } capteurs
}
settings-general-gesture_control-yawResetEnabled = Tapoter pour réinitialisation horizontale
settings-general-gesture_control-yawResetDelay = Délai de réinitialisation horizontale
settings-general-gesture_control-yawResetTaps = Nombre de tapes pour réinitialisation horizontale
@@ -366,24 +410,39 @@ settings-general-gesture_control-fullResetTaps = Nombre de tapes pour réinitial
settings-general-gesture_control-mountingResetEnabled = Tapoter pour réinitialisation de l'alignement
settings-general-gesture_control-mountingResetDelay = Délai de réinitialisation de l'alignement
settings-general-gesture_control-mountingResetTaps = Nombre de tapes pour la réinitialisation de l'alignement
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Capteurs au-dessus du seuil
settings-general-gesture_control-numberTrackersOverThreshold-description = Augmentez cette valeur si la détection des tapotements ne fonctionne pas. N'augmentez pas cette valeur au-delà de ce qui est nécessaire pour que la détection des tapotements fonctionne, car cela pourrait entraîner des faux positifs.
## Interface settings
## Appearance settings
settings-general-interface = Interface
settings-interface-appearance = Apparence
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-feedback_sound = Son de retour
settings-general-interface-feedback_sound-description = Cette option va jouer un son lorsqu'une réanitilisation est enclenchée
settings-general-interface-feedback_sound-label = Son de retour
settings-general-interface-feedback_sound-volume = Volume du son de retour
settings-general-interface-theme = Thème
settings-general-interface-lang = Langue
settings-general-interface-lang-description = Choisir la langue par défaut.
settings-general-interface-lang-placeholder = Langue
# Keep the font name untranslated
settings-interface-appearance-font = Police de l'interface
settings-interface-appearance-font-description = Cela change la police d'écriture utilisée par l'interface.
settings-interface-appearance-font-placeholder = Police par défaut
settings-interface-appearance-font-os_font = Police du système dexploitation
settings-interface-appearance-font-slime_font = Police par défaut
settings-interface-appearance-font_size = Agrandissement du texte
settings-interface-appearance-font_size-description = Cela affecte la taille du texte de toute l'interface, sauf de ce menu.
## Notification settings
settings-interface-notifications = Notifications
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-feedback_sound = Son de retour
settings-general-interface-feedback_sound-description = Cette option va jouer un son lorsqu'une réanitilisation est enclenchée.
settings-general-interface-feedback_sound-label = Son de retour
settings-general-interface-feedback_sound-volume = Volume du son de retour
## Serial settings
@@ -612,8 +671,8 @@ onboarding-assignment_tutorial = Comment préparer un capteur Slime avant de le
onboarding-assignment_tutorial-first_step = 1. Placez un autocollant de partie du corps (si vous en avez un) sur le capteur selon votre choix
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Autocollant
onboarding-assignment_tutorial-second_step = 2. Attachez la sangle à votre capteur en gardant le côté velcro de la sangle dans lorientation suivante:
onboarding-assignment_tutorial-second_step-continuation = La partie velcro pour lextension doit être dans cette orientation:
onboarding-assignment_tutorial-second_step-v2 = 2. Attachez la sangle à votre capteur en gardant le velcro de la sangle dans la même direction que le visage du capteur :
onboarding-assignment_tutorial-second_step-continuation-v2 = Le velcro de lextension doit être orienté vers le haut comme dans limage suivante :
onboarding-assignment_tutorial-done = J'ai mis les autocollants et les sangles !
## Tracker assignment setup
@@ -753,12 +812,18 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = Proportions automatiques
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Recommendée
onboarding-choose_proportions-auto_proportions-description = Ceci estimera vos proportions en enregistrant un extrait de vos mouvements et en le faisant traiter par un algorithme
onboarding-choose_proportions-auto_proportions-descriptionv2 =
Cela permettra d'estimer vos proportions en enregistrant un échantillon de vos mouvements et en le faisant passer par un algorithme.
<b>Cela nécessite davoir votre casque VR connecté à SlimeVR !</b>
onboarding-choose_proportions-manual_proportions = Proportions manuelles
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Pour les retouches
onboarding-choose_proportions-manual_proportions-description = Ceci vous permettra d'ajuster vos proportions manuellement en les modifiant directement
onboarding-choose_proportions-export = Exporter les proportions
onboarding-choose_proportions-import = Importer les proportions
onboarding-choose_proportions-import-success = Importé
onboarding-choose_proportions-import-failed = Raté
onboarding-choose_proportions-file_type = Fichier de proportions
## Tracker manual proportions setup
@@ -789,6 +854,18 @@ onboarding-automatic_proportions-requirements-description =
Vos capteurs et votre casque VR fonctionnent correctement au sein du serveur SlimeVR.
Votre casque envoie sa position au serveur SlimeVR (cela signifie généralement que SteamVR est ouvert et connecté à SlimeVR en utilisant le driver SteamVR de SlimeVR).
onboarding-automatic_proportions-requirements-next = J'ai lu les exigences
onboarding-automatic_proportions-check_height-title = Vérifiez votre taille
onboarding-automatic_proportions-check_height-description = Nous utilisons votre taille comme la base de nos mesures en utilisant la hauteur de votre casque comme approximation de votre taille réelle, mais il est préférable de vérifier si elles sont correctes vous-même !
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Veuillez appuyer sur le bouton en vous <u>tenant debout</u> pour calculer votre taille. Vous avez un délais de 3 secondes après avoir appuyé sur le bouton !
onboarding-automatic_proportions-check_height-fetch_height = Je suis debout !
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Inconnu
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = La hauteur de votre casque est
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = donc votre taille est
onboarding-automatic_proportions-check_height-next_step = Ils sont bons
onboarding-automatic_proportions-start_recording-title = Préparez-vous à bouger
onboarding-automatic_proportions-start_recording-description = Nous allons maintenant enregistrer quelques positions et mouvements spécifiques. Ceux-ci seront inscris sur lécran suivant. Soyez prêt à commencer dès que vous appuyez sur le bouton !
onboarding-automatic_proportions-start_recording-next = Commencer l'enregistrement
@@ -818,6 +895,10 @@ 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 = La calibration de vos proportions est terminée !
onboarding-automatic_proportions-error_modal =
<b>Avertissement :</b> Une erreur a été détectée lors de lestimation des proportions !
Veuillez <docs>consulter la documentation</docs> ou rejoindre notre <discord>Discord</discord> pour obtenir de laide ^_^
onboarding-automatic_proportions-error_modal-confirm = Compris !
## Home

View File

@@ -36,6 +36,7 @@ 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-UPPER_CHEST = Parte superiore del petto
body_part-CHEST = Petto
body_part-WAIST = Girovita
body_part-HIP = Bacino
@@ -53,8 +54,9 @@ skeleton_bone-NONE = Nessuna selezione
skeleton_bone-HEAD = Correzione per la testa
skeleton_bone-NECK = Lunghezza del collo
skeleton_bone-torso_group = Lunghezza del torso
skeleton_bone-CHEST = Lunghezza del torace
skeleton_bone-UPPER_CHEST = Lunghezza della parte superiore del petto
skeleton_bone-CHEST_OFFSET = Correzione per il petto
skeleton_bone-CHEST = Lunghezza del torace
skeleton_bone-WAIST = Lunghezza del girovita
skeleton_bone-HIP = Lunghezza del bacino
skeleton_bone-HIP_OFFSET = Correzione per il bacino
@@ -120,6 +122,10 @@ widget-overlay-is_mirrored_label = Includi uno specchio nel Overlay
widget-drift_compensation-clear = Rimuovi compensazione per il drift
## Widget: Clear Reset Mounting
widget-clear_mounting = Ripristina impostazioni di reset posizionamento
## Widget: Developer settings
widget-developer_mode = Modalità sviluppatore
@@ -163,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Davanti
tracker-rotation-front_left = Anteriore sinistra
tracker-rotation-front_right = Anteriore destra
tracker-rotation-left = Sinistra
tracker-rotation-right = Destra
tracker-rotation-back = Dietro
tracker-rotation-back_left = Posteriore sinistra
tracker-rotation-back_right = Posteriore destra
tracker-rotation-custom = Personalizzata
tracker-rotation-overriden = (sovrascritto dal reset posizionamento)
## Tracker information
@@ -230,6 +242,7 @@ tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } coscia dest
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-UPPER_CHEST = { -tracker_selection-part } parte superiore del petto?
tracker_selection_menu-CHEST = { -tracker_selection-part } petto?
tracker_selection_menu-WAIST = { -tracker_selection-part } girovita?
tracker_selection_menu-HIP = { -tracker_selection-part } bacino?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = Router OSC
settings-sidebar-osc_trackers = Tracker OSC per VRChat
settings-sidebar-utils = Strumenti
settings-sidebar-serial = Console seriale
settings-sidebar-appearance = Aspetto
settings-sidebar-notifications = Notifiche
## SteamVR settings
@@ -331,14 +346,36 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = "Compenetrazione
settings-general-fk_settings-leg_tweak-toe_snap-description = "Dita dei piedi piantate" prova ad indovinare la rotazione dei tuoi piedi quando non stai usando dei tracker per i piedi.
settings-general-fk_settings-leg_tweak-foot_plant-description = "Piedi piantati" ruota i piedi in modo tale che siano paralleli al terreno quando in contatto con esso.
settings-general-fk_settings-leg_fk = Tracking delle gambe
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Abilita Reset posizionamento dei piedi mettendosi in punta di piedi.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset posizionamento dei piedi
settings-general-fk_settings-arm_fk = Tracking delle braccia
settings-general-fk_settings-arm_fk-description = Cambia la modalità di tracking 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 dello scheletro
settings-general-fk_settings-arm_fk-reset_mode-description = Cambia la posa delle braccia usata per il reset posizionamento.
settings-general-fk_settings-arm_fk-back = Indietro
settings-general-fk_settings-arm_fk-back-description = La modalità predefinita, con la parte superiori delle braccia che vanno indietro e le parte inferiori delle braccia che vanno avanti.
settings-general-fk_settings-arm_fk-tpose_up = Posa a T (in alto)
settings-general-fk_settings-arm_fk-tpose_up-description = Si aspetta che le braccia siano abbassate sui lati durante il Reset Completo e a 90 gradi con il busto ai lati per il Reset Posizionamento.
settings-general-fk_settings-arm_fk-tpose_down = Posa a T (in basso)
settings-general-fk_settings-arm_fk-tpose_down-description = Si aspetta che le braccia siano a 90 gradi con il busto ai lati durante il Reset Completo e abbassate sui lati per il Reset Posizionamento.
settings-general-fk_settings-arm_fk-forward = Avanti
settings-general-fk_settings-arm_fk-forward-description = Si aspetta che le tue braccia siano alzate di 90 gradi in avanti. Utile per VTubing.
settings-general-fk_settings-skeleton_settings-toggles = Interruttori per lo 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 = Colonna vertebrale estesa
settings-general-fk_settings-skeleton_settings-extended_pelvis = Bacino esteso
settings-general-fk_settings-skeleton_settings-extended_knees = Ginocchia estese
settings-general-fk_settings-skeleton_settings-extended_spine_model = Modello di colonna vertebrale estesa
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = modello di bacino esteso
settings-general-fk_settings-skeleton_settings-extended_knees_model = Modello di ginocchio esteso
settings-general-fk_settings-skeleton_settings-ratios = Proporzioni dello scheletro
settings-general-fk_settings-skeleton_settings-ratios-description = Modifica i valori delle impostazioni dello scheletro. Potrebbe essere necessario regolare le proporzioni dopo aver modificato queste impostazioni.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Imputazione dei valori del girovita dalla combinazione del petto e bacino
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Imputazione dei valori del girovita dalla combinazione del petto e gambe
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Imputazione dei valori del bacino dalla combinazione del petto e gambe
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Imputazione dei valori del bacino dalla combinazione del girovita e gambe
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Media dell'orientamento del bacino e la rotazione delle gambe
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Media dell'orientamento del ginocchio e la rotazione delle caviglie
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Media dell'orientamento delle ginocchia e la rotazione delle caviglie
settings-general-fk_settings-self_localization-title = Modalità Mocap
settings-general-fk_settings-self_localization-description = La modalità Mocap consente allo scheletro di tracciare approssimativamente la propria posizione senza visore o altri tracker. Si noti che questo richiede trakers per piedi e la testa per funzionare ed è ancora in fase sperimentale.
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
@@ -355,6 +392,14 @@ settings-general-gesture_control-taps =
[one] 1 tocco
*[other] { $amount } tocchi
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 tracker
[many] { $amount } tracker
*[other] { $amount } tracker
}
settings-general-gesture_control-yawResetEnabled = Abilita tocco per il reset orientamento
settings-general-gesture_control-yawResetDelay = Ritardo per il reset orientamento
settings-general-gesture_control-yawResetTaps = Numero di tocchi per il reset orientamento
@@ -364,13 +409,32 @@ settings-general-gesture_control-fullResetTaps = Numero di tocchi per il reset c
settings-general-gesture_control-mountingResetEnabled = Abilita tocco per reset posizionamento
settings-general-gesture_control-mountingResetDelay = Ritardo per il reset posizionamento
settings-general-gesture_control-mountingResetTaps = Numero di tocchi per il reset posizionamento
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Tracker sopra il limite
settings-general-gesture_control-numberTrackersOverThreshold-description = Aumenta questo valore se il rilevamento del tocco non funziona. Non aumentarlo al di sopra di quanto necessario per far funzionare il rilevamento del tocco in quanto causerebbe più falsi positivi.
## Interface settings
## Appearance settings
settings-general-interface = Interfaccia
settings-interface-appearance = Aspetto
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-theme = Colore di tema
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
# Keep the font name untranslated
settings-interface-appearance-font = Font della GUI
settings-interface-appearance-font-description = Questo cambia il font utilizzato dall'interfaccia.
settings-interface-appearance-font-placeholder = Font predefinito
settings-interface-appearance-font-os_font = Font di sistema
settings-interface-appearance-font-slime_font = Font predefinito
settings-interface-appearance-font_size = Ridimensionamento del font di base
settings-interface-appearance-font_size-description = Questo influisce sulla dimensione del font dell'intera interfaccia ad eccezione di questo pannello delle impostazioni.
## Notification settings
settings-interface-notifications = Notifiche
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
@@ -378,10 +442,6 @@ settings-general-interface-feedback_sound = Suono di feedback
settings-general-interface-feedback_sound-description = Questa opzione riprodurrà un suono quando viene effettuato un reset
settings-general-interface-feedback_sound-label = Suono di feedback
settings-general-interface-feedback_sound-volume = Volume del suono di feedback
settings-general-interface-theme = Colore di tema
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
@@ -525,7 +585,7 @@ onboarding-wifi_creds-password =
onboarding-reset_tutorial-back = Torna alla calibrazione posizionamento
onboarding-reset_tutorial = Tutorial di reset
onboarding-reset_tutorial-description = Questa funzionalità non è completa, premi continua
onboarding-reset_tutorial-explanation = Mentre usi i tuoi tracker, potrebbero perdere l'allineamento a causa del drift dell'orientamento dell'IMU, o perché potresti averli spostati fisicamente. Hai diversi modi per risolvere questo problema.
onboarding-reset_tutorial-skip = Salta passaggio
# Cares about multiline
onboarding-reset_tutorial-0 =
@@ -597,9 +657,22 @@ onboarding-connect_tracker-next = Ho collegato tutti i miei tracker
onboarding-calibration_tutorial = Tutorial di calibrazione IMU
onboarding-calibration_tutorial-subtitle = Ciò aiuterà a ridurre il drift del tracker!
onboarding-calibration_tutorial-description = Ogni volta che accendi i tracker, devono riposare per un momento su una superficie piana per calibrare. Facciamo la stessa cosa cliccando sul pulsante "{ onboarding-calibration_tutorial-calibrate }", <b>non muoverli!</b>
onboarding-calibration_tutorial-calibrate = Ho messo i miei tracker sul tavolo
onboarding-calibration_tutorial-status-waiting = Ti aspettiamo
onboarding-calibration_tutorial-status-calibrating = Calibrazione in corso
onboarding-calibration_tutorial-status-success = Bene!
onboarding-calibration_tutorial-status-error = Il tracker è stato mosso
## Tracker assignment tutorial
onboarding-assignment_tutorial = Come preparare uno Slime Tracker prima di indossarlo
onboarding-assignment_tutorial-first_step = 1. Posiziona un adesivo di una parte del corpo sul tracker in base alla tua scelta (se ne hai uno)
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Adesivo
onboarding-assignment_tutorial-second_step-v2 = 2. Fissare il cinturino al tracker, mantenendo il lato in velcro del cinturino rivolto nella stessa direzione del lato frontale del tuo slime tracker:
onboarding-assignment_tutorial-second_step-continuation-v2 = Il lato del velcro per l'estensione dovrebbe essere rivolto verso l'alto come nell'immagine seguente:
onboarding-assignment_tutorial-done = Ho messo gli adesivi e i cinturini!
## Tracker assignment setup
@@ -688,13 +761,15 @@ onboarding-assign_trackers-warning-WAIST =
## Tracker mounting method choose
onboarding-choose_mounting = Quale metodo di calibrazione del posizionamento vuoi usare?
# Multiline text
onboarding-choose_mounting-description = L'orientamento di posizionamento corregge la posizione dei tracker sul corpo.
onboarding-choose_mounting-auto_mounting = Posizionamento automatico
# Italized text
onboarding-choose_mounting-auto_mounting-subtitle = Raccomandato
onboarding-choose_mounting-auto_mounting-label = Sperimentale
onboarding-choose_mounting-auto_mounting-description = Questo processo identificherá automaticamente le direzioni per la posizione di montaggio di tutti i traker facendo 2 pose
onboarding-choose_mounting-manual_mounting = Posizionamento manuale
# Italized text
onboarding-choose_mounting-manual_mounting-subtitle = Se sai cosa stai facendo
onboarding-choose_mounting-manual_mounting-label = Raccomandato
onboarding-choose_mounting-manual_mounting-description = Questo processo ti lascerá scegliere manualmente le direzioni per la posizione di montaggio di tutti i tracker
## Tracker manual mounting setup
@@ -729,14 +804,26 @@ onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei
## Tracker proportions method choose
onboarding-choose_proportions = Quale metodo di calibrazione delle proporzioni vuoi usare?
# Multiline string
onboarding-choose_proportions-description =
"Proporzioni del corpo" vengono utilizzate per conoscere le misure del tuo corpo. Sono necessarie per calcolare le posizioni dei tracker.
Quando le proporzioni del tuo corpo non corrispondono a quelle salvate, la tua precisione di tracciamento sarà peggiore e noterai cose come slittamento o la posizione del tuo corpo non corrisponderá bene alla posizione del tuo avatar.
onboarding-choose_proportions-auto_proportions = Proporzioni automatiche
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Raccomandato
onboarding-choose_proportions-auto_proportions-description = Questo processo indovinerá le tue proporzioni del corpo registrando alcuni specifici movimenti che sono poi elaborati tramite un algoritmo
onboarding-choose_proportions-auto_proportions-descriptionv2 =
Questo indovinerà le tue proporzioni registrando un campione dei tuoi movimenti e passandolo attraverso un algoritmo.
<b>Ciò richiede che il tuo HMD sia collegato a SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = Proporzioni manuali
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Per piccole modifiche
onboarding-choose_proportions-manual_proportions-description = Questo processo ti permetterà di regolare manualmente le proporzioni del corpo modificandole direttamente.
onboarding-choose_proportions-export = Esporta le proporzioni del corpo
onboarding-choose_proportions-import = Importa le proporzioni del corpo
onboarding-choose_proportions-import-success = Importate con successo
onboarding-choose_proportions-import-failed = Importaggio fallito
onboarding-choose_proportions-file_type = File delle proporzioni del corpo
## Tracker manual proportions setup
@@ -765,6 +852,18 @@ onboarding-automatic_proportions-requirements-description =
I tuoi tracker e il visore stanno funzionando correttamente con il server di SlimeVR.
Il tuo visore sta riportando dati di posizione al server di SlimeVR (ciò significa generalmente avere SteamVR in esecuzione e connesso a SlimeVR usando il driver di SlimeVR per SteamVR).
onboarding-automatic_proportions-requirements-next = Ho letto i requisiti.
onboarding-automatic_proportions-check_height-title = Controlla la tua altezza
onboarding-automatic_proportions-check_height-description = Usiamo la tua altezza come base delle nostre misurazioni utilizzando l'altezza dell'HMD come approssimazione della tua altezza effettiva, ma è meglio controllare se il valore è giusto!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Si prega di premere il pulsante stando in piedi <u>in posizione eretta</u> per calcolare l'altezza. Hai 3 secondi dopo aver premuto il pulsante!
onboarding-automatic_proportions-check_height-fetch_height = Sono in piedi!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Sconosciuto
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = L'altezza del tuo HMD è
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = quindi la tua altezza effettiva è
onboarding-automatic_proportions-check_height-next_step = Sono corretti
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
@@ -794,6 +893,10 @@ 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!
onboarding-automatic_proportions-error_modal =
<b>Avvertimento:</b> È stato riscontrato un errore durante la stima delle proporzioni!
Per piacere, <docs>controlla la documentazione</docs> o unisciti al nostro <discord>Discord</discord> per ricevere aiuto ^_^
onboarding-automatic_proportions-error_modal-confirm = Ho capito!
## Home
@@ -801,3 +904,10 @@ home-no_trackers = Nessun tracker rilevato o assegnato
## Status system
status_system-StatusTrackerReset = É consigliato eseguire un reset completo poiché uno o più tracker non sono regolati.
status_system-StatusSteamVRDisconnected =
{ $type ->
[steamvr_feeder] Attualmente non è connesso a SlimeVR Feeder App.
*[other] Attualmente non è connesso a SteamVR tramite il driver SlimeVR.
}
status_system-StatusTrackerError = Il tracker { $trackerName } ha un errore.

View File

@@ -120,6 +120,9 @@ widget-overlay-is_mirrored_label = オーバーレイをミラーとして表示
widget-drift_compensation-clear = ドリフト補正をクリアする
## Widget: Clear Reset Mounting
## Widget: Developer settings
widget-developer_mode = 開発者モード
@@ -166,6 +169,7 @@ tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 後
tracker-rotation-custom = カスタム
## Tracker information
@@ -267,6 +271,7 @@ settings-sidebar-osc_router = OSCルーター
settings-sidebar-osc_trackers = VRChatOSCトラッカー
settings-sidebar-utils = ユーティリティ
settings-sidebar-serial = シリアルコンソール
settings-sidebar-notifications = 通知
## SteamVR settings
@@ -328,11 +333,8 @@ settings-general-fk_settings-leg_fk = 足のトラッキング
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-self_localization-title = モーションキャプチャモード
settings-general-fk_settings-vive_emulation-title = Viveエミュレーション
settings-general-fk_settings-vive_emulation-description = Viveトラッカーが抱える腰トラッカーの問題をエミュレートします。
settings-general-fk_settings-vive_emulation-label = Viveエミュレーションの有効化
@@ -359,22 +361,28 @@ settings-general-gesture_control-mountingResetEnabled = タップによるマウ
settings-general-gesture_control-mountingResetDelay = マウントリセットディレイ
settings-general-gesture_control-mountingResetTaps = タップによるマウントリセット
## Interface settings
## Appearance settings
settings-general-interface = インターフェース
settings-general-interface-dev_mode = 開発者モード
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
settings-general-interface-dev_mode-label = 開発者モード
settings-general-interface-theme = カラーテーマ
settings-general-interface-lang = 言語を選択
settings-general-interface-lang-description = 使用したいデフォルトの言語を変更する
settings-general-interface-lang-placeholder = 使用する言語を選択する
# Keep the font name untranslated
settings-interface-appearance-font = GUIフォント
settings-interface-appearance-font-os_font = OSフォント
## Notification settings
settings-interface-notifications = 通知
settings-general-interface-serial_detection = シリアルデバイスの検出
settings-general-interface-serial_detection-description = このオプションは、トラッカーとなり得る新しいシリアルデバイスを接続するたびにポップアップを表示します。これはトラッカーの設定プロセスを改善するのに役立ちます。
settings-general-interface-serial_detection-label = シリアルデバイスの検出
settings-general-interface-feedback_sound = フィードバック音
settings-general-interface-feedback_sound-label = フィードバック音
settings-general-interface-feedback_sound-volume = フィードバック音量
settings-general-interface-theme = カラーテーマ
settings-general-interface-lang = 言語を選択
settings-general-interface-lang-description = 使用したいデフォルトの言語を変更する
settings-general-interface-lang-placeholder = 使用する言語を選択する
## Serial settings
@@ -570,6 +578,8 @@ onboarding-assign_trackers-next = すべてのトラッカーを割り当てま
## Tracker mounting method choose
# Italized text
onboarding-choose_mounting-auto_mounting-label = 実験的な
## Tracker manual mounting setup
@@ -624,6 +634,8 @@ onboarding-automatic_proportions-put_trackers_on-description = プロポーシ
onboarding-automatic_proportions-put_trackers_on-next = すべてのトラッカーを装着しました
onboarding-automatic_proportions-requirements-title = 要件
onboarding-automatic_proportions-requirements-next = 要件を読みました
# Shows an element below it
onboarding-automatic_proportions-check_height-height = あなたの身長は
onboarding-automatic_proportions-start_recording-title = 測定の準備をする
onboarding-automatic_proportions-start_recording-description = これから具体的なポーズや動きを記録します。これらは次の画面に表示されます。ボタンが押されたらすぐに始められるように準備しておいてください!
onboarding-automatic_proportions-start_recording-next = レコーディングスタート

View File

@@ -36,6 +36,7 @@ body_part-RIGHT_HAND = 오른손
body_part-RIGHT_UPPER_LEG = 오른쪽 다리 위
body_part-RIGHT_LOWER_LEG = 오른쪽 다리 아래
body_part-RIGHT_FOOT = 오른발
body_part-UPPER_CHEST = 가슴 위
body_part-CHEST = 가슴
body_part-WAIST = 허리
body_part-HIP = 골반
@@ -53,8 +54,9 @@ skeleton_bone-NONE = 없음
skeleton_bone-HEAD = 머리 밀림
skeleton_bone-NECK = 목 길이
skeleton_bone-torso_group = 몸통 길이
skeleton_bone-CHEST = 가슴 길이
skeleton_bone-UPPER_CHEST = 가슴 위쪽 길이
skeleton_bone-CHEST_OFFSET = 가슴 오프셋
skeleton_bone-CHEST = 가슴 길이
skeleton_bone-WAIST = 허리 길이
skeleton_bone-HIP = 골반 길이
skeleton_bone-HIP_OFFSET = 골반 오프셋
@@ -120,6 +122,10 @@ widget-overlay-is_mirrored_label = 오버레이 반전
widget-drift_compensation-clear = 틀어짐 보정 초기화
## Widget: Clear Reset Mounting
widget-clear_mounting = 착용 방향 정렬 초기화
## Widget: Developer settings
widget-developer_mode = 개발자 모드
@@ -163,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 앞쪽
tracker-rotation-front_left = 왼쪽 앞
tracker-rotation-front_right = 오른쪽 앞
tracker-rotation-left = 왼쪽
tracker-rotation-right = 오른쪽
tracker-rotation-back = 뒤쪽
tracker-rotation-back_left = 왼쪽 뒤
tracker-rotation-back_right = 오른쪽 뒤
tracker-rotation-custom = 사용자 지정
tracker-rotation-overriden = (착용 방향 보정으로 재정의됨)
## Tracker information
@@ -230,6 +242,7 @@ tracker_selection_menu-RIGHT_UPPER_LEG = 오른쪽 다리 위{ -tracker_selectio
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-UPPER_CHEST = 가슴 위{ -tracker_selection-part }
tracker_selection_menu-CHEST = 가슴{ -tracker_selection-part }
tracker_selection_menu-WAIST = 허리{ -tracker_selection-part }
tracker_selection_menu-HIP = 골반{ -tracker_selection-part }
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = OSC 라우터
settings-sidebar-osc_trackers = VRChat OSC 트래커
settings-sidebar-utils = 유틸리티
settings-sidebar-serial = 시리얼 콘솔
settings-sidebar-appearance = 모양
settings-sidebar-notifications = 알림
## SteamVR settings
@@ -336,11 +351,10 @@ settings-general-fk_settings-leg_fk = 발 트래킹
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-skeleton_settings-ratios = 골격 비율
settings-general-fk_settings-self_localization-title = Mocap 모드
settings-general-fk_settings-self_localization-description = Mocap 모드에서는 헤드셋이나 다른 트래커 없이 골격이 자신의 위치를 대략적으로 추적할 수 있어요. 발과 머리 트래커가 필요하고 아직 실험적이에요.
settings-general-fk_settings-vive_emulation-title = VIVE 에뮬레이션
settings-general-fk_settings-vive_emulation-description = 바이브 트래커가 가지고 있는 허리 트래커 문제를 따라해보세요! 사실 이건 장난이고 추적을 더 악화시켜요.
settings-general-fk_settings-vive_emulation-label = VIVE 에뮬레이션 활성화
@@ -356,6 +370,9 @@ settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount } 탭
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers = { $amount } 트래커
settings-general-gesture_control-yawResetEnabled = 탭해서 Yaw 정렬 활성화
settings-general-gesture_control-yawResetDelay = Yaw 정렬 딜레이
settings-general-gesture_control-yawResetTaps = Yaw 정렬 탭 횟수
@@ -365,13 +382,32 @@ settings-general-gesture_control-fullResetTaps = 탭해서 전체 정렬
settings-general-gesture_control-mountingResetEnabled = 탭해서 착용 방향 정렬 활성화
settings-general-gesture_control-mountingResetDelay = 착용 방향 정렬 딜레이
settings-general-gesture_control-mountingResetTaps = 탭해서 착용 방향 정렬
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = 트래커 감지 한계
settings-general-gesture_control-numberTrackersOverThreshold-description = 몸을 움직이면서 제스처 제어를 하고 싶은데 잘 작동하지 않는다면 이 값을 늘리세요. 탭 탐지가 작동하는 데 필요한 값 이상으로 늘리지 마세요. 더 많은 오작동이 발생할 수 있어요.
## Interface settings
## Appearance settings
settings-general-interface = 인터페이스
settings-interface-appearance = 모양
settings-general-interface-dev_mode = 개발자 모드
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
settings-general-interface-dev_mode-label = 개발자 모드
settings-general-interface-theme = 컬러 테마
settings-general-interface-lang = 언어 선택
settings-general-interface-lang-description = 사용하고 싶은 기본 언어를 선택하세요.
settings-general-interface-lang-placeholder = 사용할 언어를 선택하세요
# Keep the font name untranslated
settings-interface-appearance-font = GUI 글꼴
settings-interface-appearance-font-description = 이렇게 하면 인터페이스에서 사용하는 글꼴이 변경돼요.
settings-interface-appearance-font-placeholder = 기본 글꼴
settings-interface-appearance-font-os_font = OS 글꼴
settings-interface-appearance-font-slime_font = 기본 글꼴
settings-interface-appearance-font_size = 글꼴 크기 조정
settings-interface-appearance-font_size-description = 변경하면 이 설정 패널을 제외하고 모든 인터페이스의 글꼴 크기가 달라져요.
## Notification settings
settings-interface-notifications = 알림
settings-general-interface-serial_detection = 시리얼 디바이스 감지
settings-general-interface-serial_detection-description = 이 옵션은 트래커일 수도 있는 새로운 시리얼 디바이스를 연결할 때마다 팝업을 표시해요. 트래커 설정 프로세스를 개선하는 데 도움이 될 거예요.
settings-general-interface-serial_detection-label = 시리얼 디바이스 감지
@@ -379,10 +415,6 @@ settings-general-interface-feedback_sound = 피드백 사운드
settings-general-interface-feedback_sound-description = 이 옵션을 켜면 트래커를 정렬할 때 효과음을 재생해요
settings-general-interface-feedback_sound-label = 피드백 사운드
settings-general-interface-feedback_sound-volume = 피드백 사운드 음량
settings-general-interface-theme = 컬러 테마
settings-general-interface-lang = 언어 선택
settings-general-interface-lang-description = 사용하고 싶은 기본 언어를 선택하세요.
settings-general-interface-lang-placeholder = 사용할 언어를 선택하세요
## Serial settings
@@ -526,6 +558,27 @@ onboarding-wifi_creds-password =
onboarding-reset_tutorial-back = 착용 방향 정렬로 돌아가기
onboarding-reset_tutorial = 정렬 튜토리얼
onboarding-reset_tutorial-explanation =
트래커를 사용하다 보면 Yaw 드리프트 또는 트래커가 미끄러져서 틀어짐이 발생할 수 있어요.
지금부터 그런 문제를 해결하는 방법을 알려 드릴게요.
onboarding-reset_tutorial-skip = 무시하고 건너뛰기
# Cares about multiline
onboarding-reset_tutorial-0 =
Yaw 정렬을 시도하려면 강조된 트래커를 { $taps }번 탭하세요.
그러면 트래커는 HMD가 바라보는 면과 같은 방향으로 정렬될 거예요.
# Cares about multiline
onboarding-reset_tutorial-1 =
전체 정렬을 시도하려면 강조된 트래커를 { $taps }번 탭하세요.
탭한 다음 3초 뒤에(설정에서 변경 가능) 실제 보정이 이뤄지기 때문에 그 사이에 일어나서 차렷 자세로 보정을 기다리면 돼요.
전체 정렬은 모든 트래커의 위치와 각도를 원래대로 되돌리기 때문에 대부분의 틀어짐 문제를 해결할 수 있어요.
# Cares about multiline
onboarding-reset_tutorial-2 =
착용 방향 정렬을 시도하려면 강조된 트래커를 { $taps }번 탭하세요.
착용 방향 정렬은 실제로 몸에 있는 트래커의 위치를 감지할 수 있어요. 트래커를 정확한 방향으로 착용하지 않거나 실수로 움직여서 트래커가 미끄러져도 착용 방향 정렬을 통해 해결할 수 있어요.
자동 착용 방향 설정 마법사에서 봤던 것처럼 스키를 타는 듯한 자세로 몸을 구부리고 있으세요. 탭한 다음 3초 뒤에(설정에서 변경 가능) 보정이 시작될 거예요.
## Setup start
@@ -577,6 +630,9 @@ onboarding-connect_tracker-next = 모든 트래커를 잘 연결했어요
onboarding-calibration_tutorial = IMU 캘리브레이션 튜토리얼
onboarding-calibration_tutorial-subtitle = 트래커 틀어짐을 줄이는 데 도움이 될 거예요!
onboarding-calibration_tutorial-description =
매번 트래커의 전원을 켤 때마다 평평한 바닥에 트래커를 두고 잠시 기다려서 보정을 수행해야 해요. <b>(트래커를 움직이지 마세요!)</b>
어떻게 하면 되는지 "{ onboarding-calibration_tutorial-calibrate }"를 눌러 같이 따라해보죠!
onboarding-calibration_tutorial-status-calibrating = 캘리브레이팅
## Tracker assignment tutorial
@@ -714,11 +770,11 @@ onboarding-choose_proportions = 신체 비율을 설정하기 위해 어떤 방
onboarding-choose_proportions-auto_proportions = 자동으로 비율 설정
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = 권장
onboarding-choose_proportions-auto_proportions-description = 이렇게 하면 움직임 샘플을 기록하고 알고리즘을 통과해서 자동으로 신체 비율을 설정할 수 있어요
onboarding-choose_proportions-manual_proportions = 수동으로 비율 설정
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = 정밀하게 설정하고 싶다면
onboarding-choose_proportions-manual_proportions-description = 이렇게 하면 신체 비율을 직접 수정하여 수동으로 조절할 수 있어요
onboarding-choose_proportions-export = 다른 이름으로 저장
## Tracker manual proportions setup
@@ -776,6 +832,7 @@ onboarding-automatic_proportions-verify_results-redo = 다시 기록하기
onboarding-automatic_proportions-verify_results-confirm = 정확해요!
onboarding-automatic_proportions-done-title = 몸을 측정하고 저장했어요
onboarding-automatic_proportions-done-description = 신체 비율 보정이 완료되었어요!
onboarding-automatic_proportions-error_modal-confirm = 이해했어요!
## Home
@@ -783,3 +840,10 @@ home-no_trackers = 감지되거나 할당된 트래커가 없어요.
## Status system
status_system-StatusTrackerReset = 아직 정렬되지 않은 트래커가 있어서 전체 정렬을 수행해주세요.
status_system-StatusSteamVRDisconnected =
{ $type ->
[steamvr_feeder] SlimeVR 피더와 통신할 수 없어요.
*[other] SlimeVR 드라이버를 통해 SteamVR과 통신할 수 없어요.
}
status_system-StatusTrackerError = { $trackerName } 트래커에 문제가 발생했어요.

View File

@@ -13,7 +13,7 @@ websocket-connection_lost = Verbinding met de server verbroken. Opniew verbindin
## Update notification
version_update-title = Nieuwe versie beschikbaar: { $version }
version_update-description = Als u op "Bijwerken" klikt, wordt het SlimeVR-installatieprogramma voor je gedownload.
version_update-description = Als je op "{ version_update-update }" klikt, wordt het SlimeVR-installatieprogramma voor je gedownload.
version_update-update = Bijwerken
version_update-close = Sluiten
@@ -28,7 +28,7 @@ tips-tap_setup = Je kan langzaam 2 keer op je tracker tikken om deze te kiezen i
body_part-NONE = Niet toegewezen
body_part-HEAD = Hoofd
body_part-NECK = Neck
body_part-NECK = Nek
body_part-RIGHT_SHOULDER = Rechterschouder
body_part-RIGHT_UPPER_ARM = Rechterbovenarm
body_part-RIGHT_LOWER_ARM = Rechteronderarm
@@ -36,6 +36,7 @@ body_part-RIGHT_HAND = Rechterhand
body_part-RIGHT_UPPER_LEG = Rechterdij
body_part-RIGHT_LOWER_LEG = Rechterenkel
body_part-RIGHT_FOOT = Rechtervoet
body_part-UPPER_CHEST = Bovenborst
body_part-CHEST = Borst
body_part-WAIST = Taille
body_part-HIP = Heup
@@ -51,11 +52,12 @@ body_part-LEFT_FOOT = Linkervoet
skeleton_bone-NONE = Geen
skeleton_bone-HEAD = Hoofdverschuiving
skeleton_bone-NECK = Necklengte
skeleton_bone-torso_group = Torso lengte
skeleton_bone-CHEST = Borstafstand
skeleton_bone-NECK = Neklengte
skeleton_bone-torso_group = Romp lengte
skeleton_bone-UPPER_CHEST = Bovenborst Lengte
skeleton_bone-CHEST_OFFSET = Borstoffset
skeleton_bone-WAIST = Tailleafstand
skeleton_bone-CHEST = Borstafstand
skeleton_bone-WAIST = Taille lengte
skeleton_bone-HIP = Heuplengte
skeleton_bone-HIP_OFFSET = Heupoffset
skeleton_bone-HIPS_WIDTH = Heupbreedte
@@ -64,7 +66,7 @@ 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-SKELETON_OFFSET = Skelet offset
skeleton_bone-SHOULDERS_DISTANCE = Schoudersafstand
skeleton_bone-SHOULDERS_WIDTH = Schouderbreedte
skeleton_bone-arm_group = Armlengte
@@ -77,16 +79,16 @@ skeleton_bone-ELBOW_OFFSET = Elleboogoffset
## Tracker reset buttons
reset-reset_all = Alle afmetingen resetten
reset-full = Resetten
reset-mounting = Bevestiging resetten
reset-yaw = Horizontale reset
reset-full = Volledige reset
reset-mounting = Reset montage
reset-yaw = Yaw Reset
## 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_wifi = Verbind met Wi-Fi
serial_detection-open_serial = Seriële console openen
serial_detection-submit = Verzenden!
serial_detection-close = Sluiten
@@ -94,10 +96,10 @@ 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-body_proportions = Lichaamsverhoudingen
navbar-trackers_assign = Tracker-toewijzing
navbar-mounting = Bevestigings-kalibratie
navbar-onboarding = Installatiewizard
navbar-settings = Instellingen
## Biovision hierarchy recording
@@ -108,7 +110,7 @@ bvh-recording = Opname bezig...
## Tracking pause
tracking-unpaused = Pauzeer tracking
tracking-paused = Herneem tracking
tracking-paused = Hervat tracking
## Widget: Overlay settings
@@ -118,7 +120,11 @@ widget-overlay-is_mirrored_label = Overlay weergeven als spiegel
## Widget: Drift compensation
widget-drift_compensation-clear = Reset huidige drift compensatie waarden
widget-drift_compensation-clear = Reset huidige drift compensatie
## Widget: Clear Reset Mounting
widget-clear_mounting = Reset montage legen
## Widget: Developer settings
@@ -127,7 +133,7 @@ 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-sort_by_name = Sorteer op naam
widget-developer_mode-raw_slime_rotation = Ruwe rotatie
widget-developer_mode-more_info = Meer informatie
@@ -163,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Voorzijde
tracker-rotation-front_left = Linksvoor
tracker-rotation-front_right = Rechtsvoor
tracker-rotation-left = Links
tracker-rotation-right = Rechts
tracker-rotation-back = Achterzijde
tracker-rotation-back_left = Linksachter
tracker-rotation-back_right = Rechtsachter
tracker-rotation-custom = Aangepast
tracker-rotation-overriden = (overschreven door montage reset)
## Tracker information
@@ -187,7 +199,7 @@ 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-description = Waar is de tracker gemonteerd?
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?
@@ -230,6 +242,7 @@ 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-UPPER_CHEST = { -tracker_selection-part } bovenborst?
tracker_selection_menu-CHEST = { -tracker_selection-part } borst?
tracker_selection_menu-WAIST = { -tracker_selection-part } taille?
tracker_selection_menu-HIP = { -tracker_selection-part } heup?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = OSC-router
settings-sidebar-osc_trackers = VRChat OSC Trackers
settings-sidebar-utils = Hulpmiddelen
settings-sidebar-serial = Serieel console
settings-sidebar-appearance = Uiterlijk
settings-sidebar-notifications = Notificaties
## SteamVR settings
@@ -328,15 +343,32 @@ settings-general-fk_settings-leg_tweak-skating_correction = Skating-correctie
settings-general-fk_settings-leg_tweak-toe_snap = Teen snap
settings-general-fk_settings-leg_tweak-foot_plant = Voetplant
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating-correctie sterkte
settings-general-fk_settings-leg_tweak-skating_correction-description = Schaatscorrectie corrigeert voor schaatsen, maar kan de nauwkeurigheid van bepaalde bewegingspatronen verminderen. Zorg ervoor dat je bij het inschakelen een volledige reset uitvoert en opnieuw kalibreert in het spel.
settings-general-fk_settings-leg_tweak-floor_clip-description =
Floor-clip kan het doorknippen van de vloer verminderen of zelfs elimineren.
Zorg ervoor dat u bij het inschakelen een volledige reset uitvoert en opnieuw kalibreert in het spel.
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap probeert de rotatie van uw voeten te raden als voet-trackers niet worden gebruikt.
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant roteert je voeten zodat ze evenwijdig aan de grond zijn wanneer ze in contact zijn.
settings-general-fk_settings-leg_fk = Been tracking
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-arm_fk-reset_mode-description = Pas de verwachte armhouding aan voor het resetten van de montage.
settings-general-fk_settings-skeleton_settings-toggles = Skelet schakelaars
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-skeleton_settings-extended_spine_model = Uitgebreid ruggengraat model
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Uitgebreid bekken model
settings-general-fk_settings-skeleton_settings-extended_knees_model = Uitgebreid knie model
settings-general-fk_settings-skeleton_settings-ratios = skelet verhoudingen
settings-general-fk_settings-skeleton_settings-ratios-description = Pas de waardes van de skelet instellingen aan. Het kan zijn dat je hierna je lichaams proporties moet aanpassen.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Bereken taille van borst naar heup
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Bereken taille van borst naar benen
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Bereken heup van borst naar benen
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Bereken heup van taille naar benen
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Bereken het gemiddelde van de 'yaw en roll van de heup met die van de benen'
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Bereken het gemiddelde van de 'yaw en roll van de knie trackers met die van de enkels'
settings-general-fk_settings-self_localization-title = Mocap modus
settings-general-fk_settings-self_localization-description = Mocap modus staat het skelet model toe om zijn eigen positie te bepalen zonder het gebruik van een headset of andere trackers. Dit vergt wel het gebruik van voet en hoofd trackers, dit is momenteel nog expirimenteel.
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
@@ -353,6 +385,13 @@ settings-general-gesture_control-taps =
[one] 1 tik
*[other] { $amount } tikken
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] één
*[other] anders
}
settings-general-gesture_control-yawResetEnabled = Activeer tikken voor horizontale reset
settings-general-gesture_control-yawResetDelay = Vertraging horizontale reset
settings-general-gesture_control-yawResetTaps = Hoeveelheid tikken voor horizontale reset
@@ -362,13 +401,32 @@ settings-general-gesture_control-fullResetTaps = Hoeveelheid tikken voor volledi
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
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Trackers over drempelwaarde
settings-general-gesture_control-numberTrackersOverThreshold-description = Verhoog deze waarde als de tik detectie niet werkt. Zet deze waarde niet te hoog om tik detectie te laten werken, dit kan vals positieve resultaten creëren.
## Interface settings
## Appearance settings
settings-general-interface = Interface
settings-interface-appearance = Uiterlijk
settings-general-interface-dev_mode = Ontwikkelaarsmodus
settings-general-interface-dev_mode-description = Deze modus kan nuttig zijn als je diepgaande gegevens nodig hebt of op een geavanceerd niveau wilt communiceren met aangesloten trackers.
settings-general-interface-dev_mode-label = Ontwikkelaarsmodus
settings-general-interface-theme = Themakleur
settings-general-interface-lang = Selecteer taal
settings-general-interface-lang-description = Verander de standaardtaal die je wilt gebruiken.
settings-general-interface-lang-placeholder = Selecteer de te gebruiken taal
# Keep the font name untranslated
settings-interface-appearance-font = GUI lettertype
settings-interface-appearance-font-description = Dit past het lettertype aan welke gebruikt wordt binnen het interface
settings-interface-appearance-font-placeholder = Standaard lettertype
settings-interface-appearance-font-os_font = Besturingssysteem lettertype
settings-interface-appearance-font-slime_font = Standaard lettertype
settings-interface-appearance-font_size = Standaard lettertype grote
settings-interface-appearance-font_size-description = Dit past het lettertype grote aan voor het gehele interfeace, behalve voor deze instellingen pagina.
## Notification settings
settings-interface-notifications = Notificaties
settings-general-interface-serial_detection = Detectie van seriële apparaten
settings-general-interface-serial_detection-description = Met deze optie verschijnt er elke keer dat je 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
@@ -376,10 +434,6 @@ settings-general-interface-feedback_sound = Feedback geluid
settings-general-interface-feedback_sound-description = Speelt een geluid telkens de reset wordt uitgevoerd
settings-general-interface-feedback_sound-label = Feedback geluid
settings-general-interface-feedback_sound-volume = Feedback geluid volume
settings-general-interface-theme = Themakleur
settings-general-interface-lang = Selecteer taal
settings-general-interface-lang-description = Verander de standaardtaal die je wilt gebruiken.
settings-general-interface-lang-placeholder = Selecteer de te gebruiken taal
## Serial settings
@@ -523,7 +577,26 @@ onboarding-wifi_creds-password =
onboarding-reset_tutorial-back = Ga terug naar de bevestigingskalibratie
onboarding-reset_tutorial = Reset tutorial
onboarding-reset_tutorial-explanation = Terwijl je jouw trackers gebruikt, kunnen ze uit de lijn raken vanwege IMU-yaw-drift, of omdat je ze fysiek hebt verplaatst. Je hebt verschillende manieren om dit op te lossen.
onboarding-reset_tutorial-skip = Stap overslaan
# Cares about multiline
onboarding-reset_tutorial-0 =
Tik { $taps } keer op de gemarkeerde tracker om de yaw-reset te activeren.
Hierdoor staan de trackers in dezelfde richting als je HMD.
# Cares about multiline
onboarding-reset_tutorial-1 =
Tik { $taps } keer op de gemarkeerde tracker om een volledige reset uit te voeren.
Hiervoor moet je staan (i-pose). Er is een vertraging van 3 seconden (instelbaar) voordat het daadwerkelijk gebeurt.
Hiermee wordt de positie en rotatie van al je trackers volledig gereset. Dit zou de meeste problemen moeten oplossen.
# Cares about multiline
onboarding-reset_tutorial-2 =
Tik { $taps } keer op de gemarkeerde tracker om de montage opnieuw in te stellen.
Montage-reset helpt bij hoe de trackers daadwerkelijk op je worden geplaatst, dus als je ze per ongeluk hebt verplaatst en de oriëntatie ervan voor een groot deel hebt veranderd, zal dit helpen.
Je moet in een houding staan alsof je aan het skiën bent, zoals wordt weergegeven in de Automatische montage wizard, je hebt een vertraging van 3 seconden (instelbaar) voordat deze wordt geactiveerd.
## Setup start
@@ -585,6 +658,13 @@ onboarding-calibration_tutorial-status-error = De tracker werd verplaatst
## Tracker assignment tutorial
onboarding-assignment_tutorial = Hoe een Slime Tracker voor te bereiden voordat u deze aantrekt
onboarding-assignment_tutorial-first_step = 1. Plaats een lichaamsdeelsticker (als je die hebt) op de tracker naar keuze
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Sticker
onboarding-assignment_tutorial-second_step-v2 = Bevestig de strap aan de tracker met de klittenbandzijde in dezelfde richting als de voorzijde van de tracker:
onboarding-assignment_tutorial-second_step-continuation-v2 = De klittenbandzijde van de extensie moet naar boven gericht zijn, zoals in de foto afgebeeld:
onboarding-assignment_tutorial-done = Ik heb stickers en riemen geplaatst!
## Tracker assignment setup
@@ -673,6 +753,8 @@ onboarding-assign_trackers-warning-WAIST =
## Tracker mounting method choose
onboarding-choose_mounting = Welke montagekalibratiemethode moet worden gebruikt?
# Multiline text
onboarding-choose_mounting-description = De oriëntatie van de montage corrigeert de plaatsing van trackers op uw lichaam.
onboarding-choose_mounting-auto_mounting = Automatische bevestiging
# Italized text
onboarding-choose_mounting-auto_mounting-label = Experimenteel
@@ -714,14 +796,23 @@ onboarding-automatic_mounting-put_trackers_on-next = Ik heb al mijn trackers aan
## Tracker proportions method choose
onboarding-choose_proportions = Welke verhoudingskalibratiemethode moet worden gebruikt?
# Multiline string
onboarding-choose_proportions-description = Lichaamsverhoudingen worden gebruikt om de maten van je lichaam te kennen. Die zijn nodig om de posities van de trackers te berekenen. Wanneer de verhoudingen van uw lichaam niet overeenkomen met de opgeslagen verhoudingen, zal je trackingprecisie slechter zijn en zal je dingen opmerken zoals schaatsen of glijden, of je lichaam past niet goed bij je avatar.
onboarding-choose_proportions-auto_proportions = Automatische verhoudingen
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Aanbevolen
onboarding-choose_proportions-auto_proportions-description = We kunnen je verhoudingen proberen approximeren door middel van jouw bewegingen
onboarding-choose_proportions-auto_proportions-descriptionv2 =
Dit zal je proporties gokken met jouw bewegingen op basis van een opname, waarna deze door een algoritme gehaald worden.
<b>Hiervoor moet een HMD verbonden zijn aan SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = Handmatige lichaamsverhoudingen
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Voor kleine details
onboarding-choose_proportions-manual_proportions-description = Hier kan je jouw verhoudingen handmatig aanpassen
onboarding-choose_proportions-export = Export proporties
onboarding-choose_proportions-import = Importeer proporties
onboarding-choose_proportions-import-success = geïmporteerd
onboarding-choose_proportions-import-failed = Mislukt
onboarding-choose_proportions-file_type = Lichaamsproporties bestand
## Tracker manual proportions setup
@@ -751,6 +842,20 @@ onboarding-automatic_proportions-requirements-description =
Je trackers en headset werken goed binnen de SlimeVR server.
Je headset rapporteert positiegegevens aan de SlimeVR-server (dit betekent over het algemeen dat SteamVR wordt uitgevoerd en verbonden met SlimeVR met behulp van SlimeVR's SteamVR-stuurprogramma).
onboarding-automatic_proportions-requirements-next = Ik heb de vereisten gelezen
onboarding-automatic_proportions-check_height-title = Controleer je lengte
onboarding-automatic_proportions-check_height-description =
We gebruiken je lengte als een basis voor onze metingen middels de HMD's hoogte, hiermee bepalen we je echte lengte.
Maar het is beter om zelf te controleren of dit klopt.
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Druk op de knop terwijl je <u>rechtop</u> staat om je lengte te berekenen. Je hebt 3 seconden na dat je op de knop drukt!
onboarding-automatic_proportions-check_height-fetch_height = Ik sta!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Onbekend
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = Je HMD lengte is
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = Je echte lengte is
onboarding-automatic_proportions-check_height-next_step = Ze zijn goed
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
@@ -780,6 +885,10 @@ 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!
onboarding-automatic_proportions-error_modal =
<b>Waarschuwing:</b> Er is een error ontstaan bij het schatten van de proporties!
Check alsjeblieft <docs>de docs</docs> of join onze <discord>Discord</Discord> voor hulp ^_^
onboarding-automatic_proportions-error_modal-confirm = Begrepen!
## Home
@@ -787,3 +896,10 @@ home-no_trackers = Geen trackers gedetecteerd of toegewezen
## Status system
status_system-StatusTrackerReset = Het wordt aanbevolen om een volledige reset uit te voeren omdat een of meer trackers niet zijn aangepast.
status_system-StatusSteamVRDisconnected =
{ $type ->
[steamvr_feeder] Momenteel niet verbonden naar de SlimeVR Feeder App.
*[other] Momenteel niet verbonden naar SteamVR via de SlimeVR driver.
}
status_system-StatusTrackerError = De { $trackerName } tracker heeft een error.

View File

@@ -122,6 +122,10 @@ widget-overlay-is_mirrored_label = Pokaż Overlay jako Lustro
widget-drift_compensation-clear = Wyczyść kompensację dryfu
## Widget: Clear Reset Mounting
widget-clear_mounting = Wyczyść resetowanie montażu
## Widget: Developer settings
widget-developer_mode = Tryb Dewelopera
@@ -165,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Przód
tracker-rotation-front_left = Przedni lewy
tracker-rotation-front_right = Przedni prawy
tracker-rotation-left = Lewa
tracker-rotation-right = Prawa
tracker-rotation-back = Tył
tracker-rotation-back_left = Lewy tył
tracker-rotation-back_right = Prawy tył
tracker-rotation-custom = Własne
tracker-rotation-overriden = (nadpisany przez reset montażu)
## Tracker information
@@ -272,6 +282,8 @@ settings-sidebar-osc_router = OSC router
settings-sidebar-osc_trackers = Śledzenie VRChat OSC
settings-sidebar-utils = Narzędzia
settings-sidebar-serial = Konsola Seryjna
settings-sidebar-appearance = Wygląd
settings-sidebar-notifications = Powiadomienia
## SteamVR settings
@@ -336,14 +348,36 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Floor-clip może
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap próbuje odgadnąć obrót twoich stóp, jeśli trackery stóp nie są używane.
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant obraca stopy, aby były równoległe do podłoża podczas kontaktu.
settings-general-fk_settings-leg_fk = Śledzenie nóg
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Włącz resetowanie montażu stóp, chodząc na palcach.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset mocowania stóp
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 = Śledź ramiona z gogli VR
settings-general-fk_settings-skeleton_settings = Ustawienia szkieletu
settings-general-fk_settings-arm_fk-reset_mode-description = Zmień pozycję ramienia oczekiwaną przy resetowaniu montażu.
settings-general-fk_settings-arm_fk-back = Wstecz
settings-general-fk_settings-arm_fk-back-description = Tryb domyślny, w którym górne ramiona cofają się, a dolne ramiona przesuwają się do przodu.
settings-general-fk_settings-arm_fk-tpose_up = T-pose (w górę)
settings-general-fk_settings-arm_fk-tpose_up-description = Oczekuje, że podczas pełnego resetu twoje ramiona będą opuszczone na boki w 90 stopni w górę podczas resetu montażowego.
settings-general-fk_settings-arm_fk-tpose_down = T-pose (w dół)
settings-general-fk_settings-arm_fk-tpose_down-description = Oczekuje, że Twoje ramiona będą ustawione pod kątem w 90 stopni na boki podczas Pełnego Resetu i w dół po bokach podczas Resetu Montażowego.
settings-general-fk_settings-arm_fk-forward = Do przodu
settings-general-fk_settings-arm_fk-forward-description = Oczekuje, że Twoje ramiona będą uniesione pod kątem 90 stopni do przodu. Przydatne w VTubingu.
settings-general-fk_settings-skeleton_settings-toggles = Przełączniki szkieletowe
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-skeleton_settings-extended_spine_model = Wydłużony model kręgosłupa
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Rozszerzony model miednicy
settings-general-fk_settings-skeleton_settings-extended_knees_model = Model z przedłużonym kolanem
settings-general-fk_settings-skeleton_settings-ratios = Współczynniki szkieletu
settings-general-fk_settings-skeleton_settings-ratios-description = Zmień wartości ustawień szkieletu. Po zmianie może być konieczne dostosowanie proporcji.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Przypisz talię od klatki piersiowej do bioder
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Przypisz talię od klatki piersiowej do nóg
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Przypisz biodro od klatki piersiowej do nóg
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Przypisz biodro od pasa do nóg
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Średnie odchylenie biodra i przetoczenie nogami
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Uśrednij odchylenie i przechylenie nakolanników za pomocą kostek
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Średnie odchylenie kolan i przechylenie kostek
settings-general-fk_settings-self_localization-title = Tryb Mocap
settings-general-fk_settings-self_localization-description = Tryb Mocap pozwala szkieletowi z grubsza śledzić własną pozycję bez headsetu lub innych trackerów. Pamiętaj, że wymaga to śledzenia stóp i głowy do działania i nadal jest eksperymentalne.
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
@@ -362,6 +396,15 @@ settings-general-gesture_control-taps =
[many] { $amount } dotknięć
*[other] { $amount } dotknięć
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 tracker
[few] 2 trackery
[many] { $amount } trackery
*[other] { $amount } trackery
}
settings-general-gesture_control-yawResetEnabled = Włącz stuknięcie, aby zresetować odchylanie
settings-general-gesture_control-yawResetDelay = Opóźnienie resetowania odchylenia
settings-general-gesture_control-yawResetTaps = Stuknięcie do resetowania odchylenia
@@ -371,13 +414,32 @@ settings-general-gesture_control-fullResetTaps = Stuknij do pełnego resetu
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 = Stuknięcie do resetowania położenia
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Trackery ponad progiem
settings-general-gesture_control-numberTrackersOverThreshold-description = Zwiększ tę wartość, jeśli wykrywanie dotknięcia nie działa. Nie zwiększaj go ponad to, co jest potrzebne, aby wykrywanie dotknięcia działało, ponieważ spowoduje to fałszywe alarmy
## Interface settings
## Appearance settings
settings-general-interface = Interfejs
settings-interface-appearance = Wygląd
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-theme = Motyw kolorystyczny
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ć
# Keep the font name untranslated
settings-interface-appearance-font = Czcionka interfejsu użytkownika
settings-interface-appearance-font-description = Spowoduje to zmianę czcionki używanej przez interfejs
settings-interface-appearance-font-placeholder = Domyślna czcionka
settings-interface-appearance-font-os_font = Czcionka systemu operacyjnego
settings-interface-appearance-font-slime_font = Domyślna czcionka
settings-interface-appearance-font_size = Skalowanie czcionki bazowej
settings-interface-appearance-font_size-description = Wpływa to na rozmiar czcionki całego interfejsu z wyjątkiem tego panelu ustawień
## Notification settings
settings-interface-notifications = Powiadomienia
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ń
@@ -385,10 +447,6 @@ settings-general-interface-feedback_sound = Dźwięk Informacji
settings-general-interface-feedback_sound-description = Ta opcja odtworzy dźwięk, gdy reset zostanie uruchomiony
settings-general-interface-feedback_sound-label = Dźwięk Informacji
settings-general-interface-feedback_sound-volume = Poziom głośności sprzężenia zwrotnego
settings-general-interface-theme = Motyw kolorystyczny
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
@@ -619,8 +677,8 @@ onboarding-assignment_tutorial = Jak przygotować Slime Tracker przed założeni
onboarding-assignment_tutorial-first_step = 1. Umieść naklejkę z częścią ciała (jeśli ją posiadasz) na trackerze według własnego uznania
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Naklejka
onboarding-assignment_tutorial-second_step = 2. Przymocuj pasek do trackera, utrzymując stronę paska z haczykiem i pętelką w następującej orientacji:
onboarding-assignment_tutorial-second_step-continuation = Strona z haczykiem i pętelką dla przedłużenia powinna być w tej orientacji:
onboarding-assignment_tutorial-second_step-v2 = 2. Przymocuj pasek do trackera, tak aby rzep paska był skierowany w tę samą stronę, co slime face część trackera:
onboarding-assignment_tutorial-second_step-continuation-v2 = Strona z rzepem dla przedłużenia powinna być skierowana do góry, jak na poniższym obrazku:
onboarding-assignment_tutorial-done = Umieszczam naklejki i paski!
## Tracker assignment setup
@@ -762,12 +820,18 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = Proporcje automatyczne
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Zalecana
onboarding-choose_proportions-auto_proportions-description = To odgadnie twoje proporcje, rejestrując próbkę twoich ruchów i przepuszczając ją przez sztuczną inteligencję
onboarding-choose_proportions-auto_proportions-descriptionv2 =
To odgadnie twoje proporcje, rejestrując próbkę twoich ruchów i przepuszczając ją przez algorytm.
<b>Wymaga podłączenia HMD do SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = Ręczne proporcje
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Drobne detale
onboarding-choose_proportions-manual_proportions-description = Umożliwi to ręczne dostosowanie proporcji poprzez ich bezpośrednią modyfikację
onboarding-choose_proportions-export = Eksportuj proporcje
onboarding-choose_proportions-import = Importuj proporcje
onboarding-choose_proportions-import-success = Importowane
onboarding-choose_proportions-import-failed = Niepowodzenie
onboarding-choose_proportions-file_type = Proporcje ciała
## Tracker manual proportions setup
@@ -798,6 +862,18 @@ onboarding-automatic_proportions-requirements-description =
Twoje urządzenia śledzące i zestaw VR działają poprawnie na serwerze SlimeVR.
Twój zestaw VR przesyła dane pozycyjne do serwera SlimeVR (oznacza to ogólnie, że SteamVR działa i jest połączony ze SlimeVR za pomocą sterownika SlimeVR dla SteamVR).
onboarding-automatic_proportions-requirements-next = Zapoznałem się z wymaganiami
onboarding-automatic_proportions-check_height-title = Sprawdź swój wzrost
onboarding-automatic_proportions-check_height-description = Używamy Twojego wzrostu jako podstawy naszych pomiarów, używając wzrostu HMD jako przybliżenia Twojego rzeczywistego wzrostu, ale lepiej samemu sprawdzić, czy są prawidłowe!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Naciśnij przycisk stojąc <u>wyprostowany</u>, aby obliczyć swój wzrost. Masz 3 sekundy po naciśnięciu przycisku!
onboarding-automatic_proportions-check_height-fetch_height = Stoję!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Nieznany
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = Twoja wysokość HMD to
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = Twoje rzeczywisty wzrost to
onboarding-automatic_proportions-check_height-next_step = Są w porządku
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
@@ -829,6 +905,10 @@ 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!
onboarding-automatic_proportions-error_modal =
<b>Ostrzeżenie:</b> Wykryto błąd podczas szacowania proporcji!
Proszę <docs>sprawdź dokumenty</docs> lub dołącz do naszego <discord>Discord</discord>, aby uzyskać pomoc ^_^
onboarding-automatic_proportions-error_modal-confirm = Zrozumiano!
## Home

View File

@@ -36,6 +36,7 @@ body_part-RIGHT_HAND = Правая рука
body_part-RIGHT_UPPER_LEG = Правое бедро
body_part-RIGHT_LOWER_LEG = Правая голень
body_part-RIGHT_FOOT = Правая ступня
body_part-UPPER_CHEST = Верхняя часть груди
body_part-CHEST = Грудь
body_part-WAIST = Талия
body_part-HIP = Таз
@@ -53,8 +54,9 @@ skeleton_bone-NONE = Пусто
skeleton_bone-HEAD = Голова
skeleton_bone-NECK = Длина шеи
skeleton_bone-torso_group = Длина туловища
skeleton_bone-CHEST = Длина груди
skeleton_bone-UPPER_CHEST = Длина верхней части груди
skeleton_bone-CHEST_OFFSET = Смещение груди
skeleton_bone-CHEST = Длина груди
skeleton_bone-WAIST = Длина талии
skeleton_bone-HIP = Длина таза
skeleton_bone-HIP_OFFSET = Смещение таза
@@ -120,6 +122,10 @@ widget-overlay-is_mirrored_label = Показывать оверлей как з
widget-drift_compensation-clear = Очистить компенсацию дрифта
## Widget: Clear Reset Mounting
widget-clear_mounting = Обнулить сброс выравнивания
## Widget: Developer settings
widget-developer_mode = Режим разработчика
@@ -163,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Спереди
tracker-rotation-front_left = Левая сторона передней части
tracker-rotation-front_right = Правая сторона передней части
tracker-rotation-left = Слева
tracker-rotation-right = Справа
tracker-rotation-back = Сзади
tracker-rotation-back_left = Левая сторона задней части
tracker-rotation-back_right = Правая сторона задней части
tracker-rotation-custom = Пользовательское
tracker-rotation-overriden = (перезаписан крепёжным сбросом)
## Tracker information
@@ -230,6 +242,7 @@ 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-UPPER_CHEST = { -tracker_selection-part } верхняя часть груди?
tracker_selection_menu-CHEST = { -tracker_selection-part } груди?
tracker_selection_menu-WAIST = { -tracker_selection-part } талии?
tracker_selection_menu-HIP = { -tracker_selection-part } тазу?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = OSC роутер
settings-sidebar-osc_trackers = VRChat OSC Трекеры
settings-sidebar-utils = Утилиты
settings-sidebar-serial = Консоль
settings-sidebar-appearance = Внешность
settings-sidebar-notifications = Уведомление
## SteamVR settings
@@ -336,11 +351,21 @@ settings-general-fk_settings-leg_fk = Трекинг ноги
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-toggles = Переключатели скелета
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-skeleton_settings-extended_spine_model = Модель вытянутого позвоночника
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Модель удлиненного таза
settings-general-fk_settings-skeleton_settings-extended_knees_model = Модель с удлиненным коленом
settings-general-fk_settings-skeleton_settings-ratios = Соотношения скелета
settings-general-fk_settings-skeleton_settings-ratios-description = Измените значения параметров скелета. Возможно, вам придется скорректировать пропорции после их изменения.
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Рассчитать талию от груди до бёдер
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Рассчитать талию от груди до ног
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Рассчитать бедро от груди до ног
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Рассчитать бедро от талии до ног
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Усредните рыскание и перекат бедра c рысканьем и перекатом ног
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Усредните рыскание и крен коленных трекеров с рысканьем и креном трекеров лодыжек
settings-general-fk_settings-self_localization-title = Режим Mocap
settings-general-fk_settings-self_localization-description = Режим Mocap позволяет скелету примерно отслеживать свое собственное положение без использования гарнитуры или других трекеров. Обратите внимание, что для работы этого требуются трекеры ног и головы, и это все еще экспериментальный метод.
settings-general-fk_settings-vive_emulation-title = Эмуляция Vive
settings-general-fk_settings-vive_emulation-description = Имитируйте проблемы с отслеживанием талии, которые возникают у трекеров Vive. Это шутка, и она ухудшает отслеживание.
settings-general-fk_settings-vive_emulation-label = Включить эмуляцию Vive
@@ -359,6 +384,15 @@ settings-general-gesture_control-taps =
[many] { $amount } нажатий
*[other] { $amount } нажатий
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers =
{ $amount ->
[one] 1 трекер
[few] { $amount } трекера
[many] { $amount } трекеров
*[other] { $amount } трекеров
}
settings-general-gesture_control-yawResetEnabled = Включить нажатие для сброса
settings-general-gesture_control-yawResetDelay = Задержка сброса
settings-general-gesture_control-yawResetTaps = Нажатия для сброса
@@ -368,13 +402,32 @@ settings-general-gesture_control-fullResetTaps = Нажатия для полн
settings-general-gesture_control-mountingResetEnabled = Включить нажатия для сброса крепления
settings-general-gesture_control-mountingResetDelay = Задержка сброса крепления
settings-general-gesture_control-mountingResetTaps = Нажатия для сброса крепления
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = Трекеры превышают порог
settings-general-gesture_control-numberTrackersOverThreshold-description = Увеличьте это значение, если обнаружение касания не работает. Не увеличивайте его выше того, что необходимо для работы обнаружения касания, так как это приведет к большему количеству ложных срабатываний.
## Interface settings
## Appearance settings
settings-general-interface = Интерфейс
settings-interface-appearance = Внешность
settings-general-interface-dev_mode = Режим разработчика
settings-general-interface-dev_mode-description = Этот режим может быть полезен, если вам нужны подробные данные или для взаимодействия с подключенными трекерами на более продвинутом уровне.
settings-general-interface-dev_mode-label = Режим разработчика
settings-general-interface-theme = Варианты оформления
settings-general-interface-lang = Выбрать язык
settings-general-interface-lang-description = Измените язык по умолчанию, который вы хотите использовать.
settings-general-interface-lang-placeholder = Выберите язык для использования
# Keep the font name untranslated
settings-interface-appearance-font = Шрифт GUI
settings-interface-appearance-font-description = Это изменяет шрифт, используемый интерфейсом.
settings-interface-appearance-font-placeholder = Шрифт по умолчанию
settings-interface-appearance-font-os_font = Шрифт ОС
settings-interface-appearance-font-slime_font = Шрифт по умолчанию
settings-interface-appearance-font_size = Базовое масштабирование шрифта
settings-interface-appearance-font_size-description = Это влияет на размер шрифта всего интерфейса, за исключением этой панели настроек.
## Notification settings
settings-interface-notifications = Уведомления
settings-general-interface-serial_detection = Обнаружение серийного устройства
settings-general-interface-serial_detection-description = Эта опция будет показывать всплывающее окно каждый раз, когда вы подключаете новое серийное устройство, которое может быть трекером. Это помогает улучшить процесс настройки трекера.
settings-general-interface-serial_detection-label = Обнаружение серийного устройства
@@ -382,10 +435,6 @@ settings-general-interface-feedback_sound = Звук обратной связи
settings-general-interface-feedback_sound-description = Эта опция будет воспроизводить звук при срабатывании сброса.
settings-general-interface-feedback_sound-label = Звук обратной связи
settings-general-interface-feedback_sound-volume = Громкость реакции интерфейса на косание треккера
settings-general-interface-theme = Варианты оформления
settings-general-interface-lang = Выбрать язык
settings-general-interface-lang-description = Измените язык по умолчанию, который вы хотите использовать.
settings-general-interface-lang-placeholder = Выберите язык для использования
## Serial settings
@@ -616,8 +665,8 @@ onboarding-assignment_tutorial = Как подготовить Slime Треке
onboarding-assignment_tutorial-first_step = 1. Наклейте стикер с частью тела (если он у вас есть) на трекер по вашему выбору.
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Стикер
onboarding-assignment_tutorial-second_step = 2. Прикрепите ремешок к вашему трекеру, придерживая лицевую сторону ремешка со стороны крючка и петли в следующем положении:
onboarding-assignment_tutorial-second_step-continuation = Сторона крючка и петли для удлинителя должна быть в этой ориентации:
onboarding-assignment_tutorial-second_step-v2 = 2. Прикрепите ремешок к трекеру, держа липучку в том же направлении, что и верхняя сторона трекера:
onboarding-assignment_tutorial-second_step-continuation-v2 = Липучка расширения должна смотреть вверх, как показано на следующей картинке:
onboarding-assignment_tutorial-done = Я наклеил стикеры и ремешки!
## Tracker assignment setup
@@ -759,12 +808,18 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = Автоматическая привязка
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Рекомендуется
onboarding-choose_proportions-auto_proportions-description = Это позволит угадать ваши пропорции, записав образец ваших движений и передав его через алгоритм.
onboarding-choose_proportions-auto_proportions-descriptionv2 =
Приложение попытаеться угадать ваши пропорции, записывая образец ваших движений и пропуская его через алгоритм.
<b>Для этого необходимо, чтобы ваш HMD был подключен к SlimeVR!</b>
onboarding-choose_proportions-manual_proportions = Ручные пропорции
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = Для небольших штрихов
onboarding-choose_proportions-manual_proportions-description = Это позволит вам настроить пропорции вручную, изменив их напрямую.
onboarding-choose_proportions-export = Экспорт пропорций
onboarding-choose_proportions-import = Ввод пропорций
onboarding-choose_proportions-import-success = Введён
onboarding-choose_proportions-import-failed = Неудача
onboarding-choose_proportions-file_type = Файл пропорций тела
## Tracker manual proportions setup
@@ -795,6 +850,18 @@ onboarding-automatic_proportions-requirements-description =
Ваши трекеры и гарнитура правильно работают на сервере SlimeVR.
Ваша гарнитура передает данные о местоположении на сервер SlimeVR (обычно это означает, что SteamVR запущен и подключен к SlimeVR с помощью драйвера SlimeVR SteamVR).
onboarding-automatic_proportions-requirements-next = Я прочитал требования
onboarding-automatic_proportions-check_height-title = Проверьте ваш рост
onboarding-automatic_proportions-check_height-description = Мы используем ваш рост в качестве основы для наших измерений, используя высоту HMD как приблизительное значение к вашему фактическому росту, но лучше проверить, верны ли эти значения самому!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Для рассчёта вашего роста, пожалуйста, нажимите кнопку стоя, <u>смотря вперёд</u>. У вас будут 3 секунды после того, как вы нажмете кнопку!
onboarding-automatic_proportions-check_height-fetch_height = Я стою!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Неизвестно
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = Высота вашего HMD равна
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = поэтому ваш реальный рост равен
onboarding-automatic_proportions-check_height-next_step = С ними всё хорошо
onboarding-automatic_proportions-start_recording-title = Будьте готовы к движению
onboarding-automatic_proportions-start_recording-description = Теперь мы собираемся записать некоторые конкретные позы и движения. Они будут запрошены на следующем экране. Будьте готовы начать, когда кнопка будет нажата!
onboarding-automatic_proportions-start_recording-next = Начать запись
@@ -826,6 +893,10 @@ onboarding-automatic_proportions-verify_results-redo = Перезаписать
onboarding-automatic_proportions-verify_results-confirm = Они правильные
onboarding-automatic_proportions-done-title = Тело измерено и сохранено.
onboarding-automatic_proportions-done-description = Калибровка пропорций вашего тела завершена!
onboarding-automatic_proportions-error_modal =
<b>Предупреждение:</b> Была обнаружена ошибка при расчёте пропорций!
Пожалуйста, <docs>ознакомьтесь с документацией</docs>, или присоединитесь к нашему <discord>Discord серверу</discord> для получения помощи ^_^
onboarding-automatic_proportions-error_modal-confirm = Принято!
## Home

View File

@@ -1,6 +1,3 @@
### 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!
@@ -13,10 +10,19 @@
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...
## Update notification
version_update-title = Phiên bản mới có thể cập nhật:
version_update-description = Nhấp vào "{ version_update-update }" sẽ tải xuống trình cài đặt SlimeVR cho bạn.
version_update-update = Cập nhật
version_update-close = Đóng
## 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
tips-file_select = Kéo và thả tệp để sử dụng hoặc <u>duyệt</u>.
tips-tap_setup = Bạn có thể từ từ nhấn vào 2 lần trình theo dõi của mình để chọn nó thay vì chọn nó từ menu.
## Body parts
@@ -30,7 +36,7 @@ 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-UPPER_CHEST = Ngực trên
body_part-CHEST = Ngực
body_part-WAIST = Eo
body_part-HIP = Hông
@@ -41,19 +47,19 @@ 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-CHEST = Khoảng cách 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-leg_group = Chiều dài chân
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
@@ -61,10 +67,9 @@ 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-arm_group = Chiều dài cánh tay
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
@@ -72,7 +77,6 @@ skeleton_bone-ELBOW_OFFSET = Sai số khuỷu tay
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
@@ -93,17 +97,30 @@ 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
## Biovision hierarchy recording
bvh-start_recording = Ghi BVH
bvh-recording = Đang ghi...
## Tracking pause
tracking-unpaused = Tạm dừng tracking
tracking-paused = Bỏ dừng theo dõi
## 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: Drift compensation
widget-drift_compensation-clear = Xóa sai số
## Widget: Clear Reset Mounting
widget-clear_mounting = Đặt lại hướng gắn tracker
## Widget: Developer settings
widget-developer_mode = Chế độ nhà phát triển
@@ -120,6 +137,7 @@ widget-developer_mode-more_info = Thêm thông tin
widget-imu_visualizer = Góc quay
widget-imu_visualizer-rotation_raw = Gốc
widget-imu_visualizer-rotation_preview = Qua xử lí
widget-imu_visualizer-rotation_hide = Ẩn
## Tracker status
@@ -149,6 +167,7 @@ tracker-rotation-front = Trước
tracker-rotation-left = Trái
tracker-rotation-right = Phải
tracker-rotation-back = Sau
tracker-rotation-custom = Tùy chọn
## Tracker information
@@ -156,6 +175,10 @@ 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-infos-version = Phiên bản firmware
tracker-infos-hardware_rev = Revision phần cứng
tracker-infos-hardware_identifier = Hardware ID
tracker-infos-imu = Cảm biến IMU (IMU Sensor)
## Tracker settings
@@ -222,6 +245,8 @@ tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } tay cầm b
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
tracker_selection_menu-neck_warning-done = Tôi hiểu những rủi ro
tracker_selection_menu-neck_warning-cancel = Hủy
## Mounting menu
@@ -237,8 +262,10 @@ 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-osc_trackers = Trình theo dõi VRChat OSC
settings-sidebar-utils = Công cụ
settings-sidebar-serial = Cổng Serial
settings-sidebar-notifications = Thông báo
## SteamVR settings
@@ -286,8 +313,6 @@ settings-general-tracker_mechanics-drift_compensation-max_resets-label = Số l
## 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
@@ -301,11 +326,8 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Mức độ s
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-self_localization-title = Chế độ Mocap
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
@@ -322,28 +344,33 @@ settings-general-gesture_control-taps =
[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
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers = { $amount } trackers
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
## Appearance 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-theme = Màu giao diện
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)
settings-interface-appearance-font-placeholder = Phông chữ mặc định
settings-interface-appearance-font-os_font = Phông chữ hệ điều hành
settings-interface-appearance-font-slime_font = Phông chữ mặc định
## Notification settings
settings-interface-notifications = Thông báo
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-feedback_sound-description = Tùy chọn này sẽ phát âm thanh khi thiết lập lại được kích hoạt.
## Serial settings
@@ -355,6 +382,8 @@ settings-serial-description =
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-factory_reset-warning-ok = Tôi biết mình đang làm gì
settings-serial-factory_reset-warning-cancel = Hủy
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
@@ -408,16 +437,25 @@ settings-osc-vrchat-network-address-placeholder = Địa chỉ IP của thiết
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-hip = Hông
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
## VMC OSC settings
settings-osc-vmc-enable = Bật
settings-osc-vmc-enable-description = Cho phép nhận và gửi dữ liệu OSC
settings-osc-vmc-enable-label = Chuyển tiếp dữ liệu OSC
## Setup/onboarding menu
onboarding-skip = Bỏ qua cài đặt
onboarding-continue = Tiếp tục
onboarding-wip = Chưa hoàn thiện
onboarding-previous_step = Quay lại
onboarding-setup_warning-skip = Bỏ qua cài đặt
onboarding-setup_warning-cancel = Tiếp tục thiết lập
## Wi-Fi setup
@@ -440,15 +478,12 @@ onboarding-wifi_creds-password =
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
onboarding-reset_tutorial-explanation = Trong khi bạn sử dụng trình theo dõi của mình, tracker có thể bị lệch khỏi căn chỉnh do IMU bị trượt, trôi dạt hoặc vì bạn có thể đã di chuyển chúng về mặt vật lý. Bạn có một số cách để khắc phục điều này.
onboarding-reset_tutorial-skip = Bỏ qua bước
## 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
@@ -472,11 +507,14 @@ onboarding-connect_tracker-description-p0 = Cập nhật thông tin Wi-Fi cho tr
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-none = Đang tìm tracker
onboarding-connect_tracker-connection_status-serial_init = Kết nối với thiết bị nối tiếp serial
onboarding-connect_tracker-connection_status-provisioning = Đang gửi thông tin Wi-Fi
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
onboarding-connect_tracker-connection_status-looking_for_server = Đang tìm máy chủ
onboarding-connect_tracker-connection_status-connection_error = Không thể kết nối đến Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Không thể tìm thấy máy chủ
onboarding-connect_tracker-connection_status-done = Đã 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",
@@ -490,6 +528,21 @@ onboarding-connect_tracker-connected_trackers =
} đã giao
onboarding-connect_tracker-next = Đã kết nối với tất cả tracker
## Tracker calibration tutorial
onboarding-calibration_tutorial-subtitle = Cái này sẽ giúp giảm trôi trượt theo dõi!
onboarding-calibration_tutorial-calibrate = Tôi đã đặt thiết bị theo dõi của mình lên bàn
onboarding-calibration_tutorial-status-waiting = Đang chờ bạn hoàn thành
onboarding-calibration_tutorial-status-success = Nice!
## Tracker assignment tutorial
onboarding-assignment_tutorial = Làm thế nào để chuẩn bị một Slime Tracker trước khi đưa nó vào
onboarding-assignment_tutorial-first_step = 1. Đặt nhãn dán bộ phận cơ thể (nếu có) trên tracker theo lựa chọn của bạn
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = Sticker
onboarding-assignment_tutorial-done = Tôi đã dán nhãn dán và dây đai!
## Tracker assignment setup
onboarding-assign_trackers-back = Quay lại cài đặt Wi-Fi
@@ -506,6 +559,12 @@ onboarding-assign_trackers-assigned =
onboarding-assign_trackers-advanced = Xem thêm vị trí đặt
onboarding-assign_trackers-next = Hoàn thành
## Tracker assignment warnings
## Tracker mounting method choose
## Tracker manual mounting setup
onboarding-manual_mounting-back = Quay lại chuẩn bị cân chỉnh
@@ -535,6 +594,9 @@ 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 proportions method choose
## Tracker manual proportions setup
onboarding-manual_proportions-back = Quay lại cân chỉnh hướng gắn
@@ -552,22 +614,19 @@ 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-requirements-title = Yêu cầu
onboarding-automatic_proportions-requirements-next = Tôi đã đọc các yêu cầu
onboarding-automatic_proportions-check_height-fetch_height = Tôi đang đứng!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = Không rõ
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)
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 20)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second
@@ -581,7 +640,18 @@ 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
onboarding-automatic_proportions-error_modal-confirm = Đã hiểu!
## Home
home-no_trackers = Không tìm thấy tracker / Tracker chưa được gán
## Status system
status_system-StatusTrackerReset = Bạn nên thực hiện thiết lập lại toàn bộ vì một hoặc nhiều trình theo dõi không được điều chỉnh.
status_system-StatusSteamVRDisconnected =
{ $type ->
[steamvr_feeder] Hiện đang không kết nối với SteamVR thông qua trình điều khiển SlimeVR Feeder App.
*[other] Hiện đang không kết nối với SteamVR thông qua driver SlimeVR.
}
status_system-StatusTrackerError = Tracker { $trackerName } có lỗi.

View File

@@ -19,7 +19,7 @@ version_update-close = 关闭
## Tips
tips-find_tracker = 不确定哪个追踪器是哪个?在现实中摇动一个追踪器,对应的那个将在屏幕上高亮显示。
tips-find_tracker = 分不清哪个追踪器是哪个了?摇一摇它,对应的那个将高亮显示。
tips-do_not_move_heels = 确保你的脚跟在录制的时候不会发生移动!
tips-file_select = 拖放文档或 <u>浏览文档</u> 以使用
tips-tap_setup = 你可以缓慢地敲击2次追踪器来选中它而不是从菜单中选取。
@@ -36,6 +36,7 @@ body_part-RIGHT_HAND = 右手
body_part-RIGHT_UPPER_LEG = 右大腿
body_part-RIGHT_LOWER_LEG = 右小腿
body_part-RIGHT_FOOT = 右脚
body_part-UPPER_CHEST = 上胸
body_part-CHEST = 胸部
body_part-WAIST = 腰部
body_part-HIP = 髋部
@@ -53,6 +54,7 @@ skeleton_bone-NONE = 无
skeleton_bone-HEAD = 头部偏移
skeleton_bone-NECK = 颈部长度
skeleton_bone-torso_group = 躯干长度
skeleton_bone-UPPER_CHEST = 上胸长度
skeleton_bone-CHEST_OFFSET = 胸部偏移
skeleton_bone-CHEST = 胸部长度
skeleton_bone-WAIST = 腰部长度
@@ -64,7 +66,7 @@ skeleton_bone-UPPER_LEG = 大腿长度
skeleton_bone-LOWER_LEG = 小腿长度
skeleton_bone-FOOT_LENGTH = 脚部长度
skeleton_bone-FOOT_SHIFT = 脚部偏移
skeleton_bone-SKELETON_OFFSET = 骨偏移
skeleton_bone-SKELETON_OFFSET = 骨偏移
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距离
skeleton_bone-SHOULDERS_WIDTH = 肩膀宽度
skeleton_bone-arm_group = 手臂长度
@@ -120,6 +122,10 @@ widget-overlay-is_mirrored_label = 镜像显示覆盖层
widget-drift_compensation-clear = 清除漂移补偿数据
## Widget: Clear Reset Mounting
widget-clear_mounting = 清除重置佩戴
## Widget: Developer settings
widget-developer_mode = 开发者选项
@@ -163,9 +169,15 @@ tracker-table-column-url = 地址
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-front_left = 左前
tracker-rotation-front_right = 右前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 后
tracker-rotation-back_left = 左后
tracker-rotation-back_right = 右后
tracker-rotation-custom = 自定义
tracker-rotation-overriden = (被重置佩戴覆盖)
## Tracker information
@@ -230,6 +242,7 @@ 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-UPPER_CHEST = { -tracker_selection-part }上胸?
tracker_selection_menu-CHEST = { -tracker_selection-part }胸部?
tracker_selection_menu-WAIST = { -tracker_selection-part }腰部?
tracker_selection_menu-HIP = { -tracker_selection-part }髋部?
@@ -269,6 +282,8 @@ settings-sidebar-osc_router = OSC 路由
settings-sidebar-osc_trackers = VRChat OSC 追踪器
settings-sidebar-utils = 工具
settings-sidebar-serial = 串口控制台
settings-sidebar-appearance = 外观
settings-sidebar-notifications = 通知
## SteamVR settings
@@ -279,8 +294,8 @@ settings-general-steamvr-subtitle = SteamVR 追踪器
# 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 = 脚部
@@ -333,14 +348,36 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = 地板限制可
settings-general-fk_settings-leg_tweak-toe_snap-description = 脚趾着地可以在没有脚部追踪器的情况下尝试猜测脚部的俯仰。
settings-general-fk_settings-leg_tweak-foot_plant-description = 脚掌着地会在脚与地面接触时保持脚掌与地板平行。
settings-general-fk_settings-leg_fk = 腿部追踪
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = 开启脚部佩戴重置。(佩戴重置时需要踮起脚尖)
settings-general-fk_settings-leg_fk-reset_mounting_feet = 脚部佩戴重置
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-arm_fk-reset_mode-description = 更改佩戴重置时使用的手臂姿势。
settings-general-fk_settings-arm_fk-back = 向后弯折
settings-general-fk_settings-arm_fk-back-description = 默认,重置时大臂向后,小臂向前,类似滑雪。
settings-general-fk_settings-arm_fk-tpose_up = T-pose抬起
settings-general-fk_settings-arm_fk-tpose_up-description = 完整重置时手臂垂下,呈立正姿势;佩戴重置时手臂向两侧伸平。
settings-general-fk_settings-arm_fk-tpose_down = T-pose放下
settings-general-fk_settings-arm_fk-tpose_down-description = 完整重置时手臂向两侧伸平;佩戴重置时手臂垂下,呈立正姿势。
settings-general-fk_settings-arm_fk-forward = 向前伸平
settings-general-fk_settings-arm_fk-forward-description = 重置时手臂向前伸平,有利于坐姿进行虚拟直播。
settings-general-fk_settings-skeleton_settings-toggles = 骨架设置
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-skeleton_settings-extended_spine_model = 延伸脊柱模型
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = 延伸骨盆模型
settings-general-fk_settings-skeleton_settings-extended_knees_model = 伸展膝盖模型
settings-general-fk_settings-skeleton_settings-ratios = 骨架比例
settings-general-fk_settings-skeleton_settings-ratios-description = 更改骨架设置的参数。您可能需要在更改后调整身体比例。
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = 用胸部到髋部的数据推算腰部
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = 用胸部到腿部的数据推算腰部
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = 用胸部到腿部的数据推算髋部
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = 用腰部到腿部的数据推算髋部
settings-general-fk_settings-skeleton_settings-interp_hip_legs = 平均髋部与腿部间航向轴和横滚轴的数值
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = 平均膝盖追踪器与小腿间航向轴和横滚轴的数值
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = 平均膝盖与小腿间航向轴和横滚轴的数值
settings-general-fk_settings-self_localization-title = 动作捕捉模式
settings-general-fk_settings-self_localization-description = 动作捕捉模式允许在没有头戴设备或其他追踪器的情况下粗略地跟踪骨架姿态。请注意,本功能需要脚部和头部追踪器,且现阶段依然是实验性的。
settings-general-fk_settings-vive_emulation-title = Vive 模拟
settings-general-fk_settings-vive_emulation-description = 模拟Vive追踪器的腰部丢追问题。 注:这是一个玩笑功能,会劣化追踪质量。)
settings-general-fk_settings-vive_emulation-label = 开启 Vive 模拟
@@ -356,6 +393,9 @@ settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount }次敲击
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers = { $amount } 个追踪器
settings-general-gesture_control-yawResetEnabled = 开启敲击重置航向轴
settings-general-gesture_control-yawResetDelay = 敲击重置航向轴延迟
settings-general-gesture_control-yawResetTaps = 重置航向轴敲击次数
@@ -365,13 +405,32 @@ settings-general-gesture_control-fullResetTaps = 完整重置敲击次数
settings-general-gesture_control-mountingResetEnabled = 开启敲击重置佩戴
settings-general-gesture_control-mountingResetDelay = 敲击重置佩戴延迟
settings-general-gesture_control-mountingResetTaps = 重置佩戴敲击次数
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = 可触发敲击重置的追踪器数量
settings-general-gesture_control-numberTrackersOverThreshold-description = 如敲击重置不起作用请增加此值。请在保证敲击重置可用的情况下将此值设置的尽可能低,否则会导致误报。
## Interface settings
## Appearance settings
settings-general-interface = 交互界面
settings-interface-appearance = 外观
settings-general-interface-dev_mode = 开发者模式
settings-general-interface-dev_mode-description = 如果你需要深入的数据或更深入地与连接的追踪器进行交互,打开此模式将会非常有用。
settings-general-interface-dev_mode-description = 如果你需要深入的资料或对连接的追踪器进行进阶调整,开启此模式将会非常有用。
settings-general-interface-dev_mode-label = 开发者模式
settings-general-interface-theme = 主题颜色
settings-general-interface-lang = 选择语言
settings-general-interface-lang-description = 更改要使用的默认语言
settings-general-interface-lang-placeholder = 选择要使用的语言
# Keep the font name untranslated
settings-interface-appearance-font = 字体
settings-interface-appearance-font-description = 修改使用的字体。
settings-interface-appearance-font-placeholder = 默认字体
settings-interface-appearance-font-os_font = 系统字体
settings-interface-appearance-font-slime_font = 默认字体
settings-interface-appearance-font_size = 字体缩放
settings-interface-appearance-font_size-description = 这会影响除此设置面板外所有界面的字体大小。
## Notification settings
settings-interface-notifications = 通知
settings-general-interface-serial_detection = 串口设备检测
settings-general-interface-serial_detection-description = 每次插入可能是追踪器的新串口设备时,此选项都会显示一个弹出窗口。这有助于改进追踪器的设置过程。
settings-general-interface-serial_detection-label = 串口设备检测
@@ -379,10 +438,6 @@ settings-general-interface-feedback_sound = 声音反馈
settings-general-interface-feedback_sound-description = 开启此选项会在触发重置时发出提示音
settings-general-interface-feedback_sound-label = 声音反馈
settings-general-interface-feedback_sound-volume = 提示音音量
settings-general-interface-theme = 主题颜色
settings-general-interface-lang = 选择语言
settings-general-interface-lang-description = 更改要使用的默认语言
settings-general-interface-lang-placeholder = 选择要使用的语言
## Serial settings
@@ -411,7 +466,7 @@ settings-osc-router = OSC 路由
# This cares about multilines
settings-osc-router-description =
从另一个程序转发 OSC 信息。
使用另一个 VRChat OSC 程序时会很有用
例如需要在 VRChat 同时使用另一个 OSC 程序。
settings-osc-router-enable = 启用
settings-osc-router-enable-description = 控制信息转发功能的开关。
settings-osc-router-enable-label = 启用
@@ -610,8 +665,8 @@ onboarding-assignment_tutorial = 在佩戴 Slime 追踪器之前的准备工作
onboarding-assignment_tutorial-first_step = 1. 根据您分配的情况在追踪器上粘贴标识身体部位的贴纸(如果有)
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = 贴纸
onboarding-assignment_tutorial-second_step = 2. 将绑带追踪器连接,调整绑带粘扣朝向到如下图所示(如果有)
onboarding-assignment_tutorial-second_step-continuation = 扩展追踪器的粘扣朝向:
onboarding-assignment_tutorial-second_step-v2 = 2. 将绑带穿过追踪器,确保绑带粘扣面的朝向与追踪器上的笑脸标志同向
onboarding-assignment_tutorial-second_step-continuation-v2 = 扩展追踪器的粘扣朝向应如下图所示
onboarding-assignment_tutorial-done = 我把贴纸和绑带都弄好了!
## Tracker assignment setup
@@ -747,12 +802,18 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = 自动调整身体比例
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = 推荐
onboarding-choose_proportions-auto_proportions-description = 这将录制你的运动样本并通过AI来猜测你的身体比例
onboarding-choose_proportions-auto_proportions-descriptionv2 =
这将录制你的运动样本并通过算法来推测你的身体比例。
<b>需要连接头戴设备到 SlimeVR</b>
onboarding-choose_proportions-manual_proportions = 手动调整身体比例
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = 用于精细调整
onboarding-choose_proportions-manual_proportions-description = 这将需要你手动修改以调整你的身体比例
onboarding-choose_proportions-export = 导出身体比例
onboarding-choose_proportions-import = 导入身体比例
onboarding-choose_proportions-import-success = 导入成功
onboarding-choose_proportions-import-failed = 导入失败
onboarding-choose_proportions-file_type = 身体比例文件
## Tracker manual proportions setup
@@ -783,6 +844,18 @@ onboarding-automatic_proportions-requirements-description =
你的追踪器和头戴设备在 SlimeVR 服务器中工作正常。
你的头戴设备在回报位置信息给 SlimeVR 服务器(通常需要 SteamVR 正在运行且通过 SlimeVR 的 SteamVR 驱动连接到 SlimeVR
onboarding-automatic_proportions-requirements-next = 我已阅读
onboarding-automatic_proportions-check_height-title = 检查你的身高
onboarding-automatic_proportions-check_height-description = 我们会使用头戴设备回报的高度来推算您的实际身高,但我们仍建议您检查一下数值是否正确。
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = 请<u>站直</u>后按下按钮以计算身高,按下后您有 3 秒钟来调整姿势。
onboarding-automatic_proportions-check_height-fetch_height = 我站好了!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = 未知
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = 你的头戴设备的高度是
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = 所以你的实际身高是
onboarding-automatic_proportions-check_height-next_step = 数值没问题
onboarding-automatic_proportions-start_recording-title = 准备录制运动
onboarding-automatic_proportions-start_recording-description = 我们现在要记录一些特定的姿势和动作。这些将在下一个屏幕中提示。当按钮被按下时,准备好开始!
onboarding-automatic_proportions-start_recording-next = 开始录制
@@ -808,6 +881,10 @@ onboarding-automatic_proportions-verify_results-redo = 重新录制
onboarding-automatic_proportions-verify_results-confirm = 他们是正确的!
onboarding-automatic_proportions-done-title = 身体数据已测量并保存。
onboarding-automatic_proportions-done-description = 你的身体比例校准已完成!
onboarding-automatic_proportions-error_modal =
<b>警告:</b> 推算身体比例时发生错误!
请 <docs>阅读文档</docs> 或加入我们的 <discord>Discord</discord> 寻求帮助 ^_^
onboarding-automatic_proportions-error_modal-confirm = 了解!
## Home

View File

@@ -19,7 +19,7 @@ version_update-close = 關閉
## Tips
tips-find_tracker = 若你不確定手上的追蹤器是哪一個,搖一搖它,對應的項目就會顯示出來
tips-find_tracker = 若你不確定手上的追蹤器是哪一個,搖一搖它,對應的項目就會顯示出來
tips-do_not_move_heels = 確保你的腳跟在測量過程時不會發生移動!
tips-file_select = 拖曳檔案或 <u>瀏覽檔案</u> 以使用
tips-tap_setup = 除了從列表挑選追蹤器以外,您也可以慢慢敲擊 2 次追蹤器來選擇它。
@@ -34,7 +34,7 @@ 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_LOWER_LEG = 右腳踝
body_part-RIGHT_FOOT = 右腳
body_part-UPPER_CHEST = 上胸
body_part-CHEST = 胸部
@@ -45,7 +45,7 @@ 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_LOWER_LEG = 左腳踝
body_part-LEFT_FOOT = 左腳
## Proportions
@@ -122,6 +122,10 @@ widget-overlay-is_mirrored_label = 鏡像顯示內嵌介面
widget-drift_compensation-clear = 清除偏移補償數據
## Widget: Clear Reset Mounting
widget-clear_mounting = 清除配戴重置
## Widget: Developer settings
widget-developer_mode = 開發者選項
@@ -165,9 +169,15 @@ tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-front_left = 左前方
tracker-rotation-front_right = 右前方
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 後
tracker-rotation-back_left = 左後方
tracker-rotation-back_right = 右後方
tracker-rotation-custom = 自訂
tracker-rotation-overriden = (本設定已被配戴重置覆蓋)
## Tracker information
@@ -229,7 +239,7 @@ 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_LOWER_LEG = { -tracker_selection-part }右腳踝
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part }右腳?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part }右控制器?
tracker_selection_menu-UPPER_CHEST = { -tracker_selection-part }上胸?
@@ -241,7 +251,7 @@ 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_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 = 尚未分配的追蹤器
@@ -272,6 +282,8 @@ settings-sidebar-osc_router = OSC 路由
settings-sidebar-osc_trackers = VRChat OSC 追蹤器
settings-sidebar-utils = 工具
settings-sidebar-serial = 串列埠終端
settings-sidebar-appearance = 外觀
settings-sidebar-notifications = 通知
## SteamVR settings
@@ -282,8 +294,8 @@ settings-general-steamvr-subtitle = SteamVR 追蹤器
# 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 追蹤器
對於只支援特定追蹤器的遊戲或應用程式會很有用
開啟或關閉特定的 SteamVR 追蹤器
對於只支援特定追蹤器的遊戲或應用程式,本功能會有所幫助
settings-general-steamvr-trackers-waist = 腰部
settings-general-steamvr-trackers-chest = 胸部
settings-general-steamvr-trackers-feet = 腳部
@@ -336,14 +348,36 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = 地板限制功
settings-general-fk_settings-leg_tweak-toe_snap-description = 腳趾跟地功能在沒有腳部的追蹤器時,會嘗試猜測腳掌的旋轉角度。
settings-general-fk_settings-leg_tweak-foot_plant-description = 腳底貼地功能會在腳底與地面接觸時,將腳部旋轉成與地板平行。
settings-general-fk_settings-leg_fk = 腿部追蹤
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = 開啟腳部配戴重置,進行配戴重置時需要踮起腳尖。
settings-general-fk_settings-leg_fk-reset_mounting_feet = 腳部配戴重置
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-arm_fk-reset_mode-description = 更改配戴重置時,手臂需要做出的姿勢。
settings-general-fk_settings-arm_fk-back = 收肘姿勢
settings-general-fk_settings-arm_fk-back-description = 預設模式,重置時手肘朝後,前臂向前。
settings-general-fk_settings-arm_fk-tpose_up = T 型姿勢(抬起)
settings-general-fk_settings-arm_fk-tpose_up-description = 完整重置時手臂向下,呈立正姿勢;配戴重置時手臂向兩側伸展,與身體呈 90 度。
settings-general-fk_settings-arm_fk-tpose_down = T 型姿勢(放下)
settings-general-fk_settings-arm_fk-tpose_down-description = 完整重置時手臂向兩側伸展,與身體呈 90 度;配戴重置時手臂向下,呈立正姿勢。
settings-general-fk_settings-arm_fk-forward = 向前伸展
settings-general-fk_settings-arm_fk-forward-description = 重置時手臂向前伸展,與身體呈 90 度,可用於坐姿進行虛擬直播。
settings-general-fk_settings-skeleton_settings-toggles = 骨架設定
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-skeleton_settings-extended_spine_model = 延伸脊椎模型
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = 延伸骨盆模型
settings-general-fk_settings-skeleton_settings-extended_knees_model = 延伸膝蓋模型
settings-general-fk_settings-skeleton_settings-ratios = 骨架比例
settings-general-fk_settings-skeleton_settings-ratios-description = 修改骨架設定的參數,您可能需要在修改後調整軀幹比例。
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = 推算腰部定位時,胸部與臀部定位使用的比例
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = 推算腰部定位時,胸部與腿部定位使用的比例
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = 推算臀部定位時,胸部與腿部定位使用的比例
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = 推算臀部定位時, 腰部與腿部定位使用的比例
settings-general-fk_settings-skeleton_settings-interp_hip_legs = 臀部的偏航軸與翻滾軸,混合腿部定位的比例
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = 膝部的偏航軸與翻滾軸,混合腳踝定位的比例
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = 將膝部的偏航軸與翻滾軸與腳踝計算平均
settings-general-fk_settings-self_localization-title = 動作捕捉模式
settings-general-fk_settings-self_localization-description = 動作捕捉模式允許在沒有頭戴顯示器或其他追蹤器時,粗略的追蹤身體骨架的定位。請注意,本功能需要腳部與頭部的追蹤器,並且本功能仍在實驗階段。
settings-general-fk_settings-vive_emulation-title = Vive 模擬
settings-general-fk_settings-vive_emulation-description = 模擬 Vive 追蹤器的腰部追蹤失效問題。( 註:這是一個玩笑功能,會降低追蹤品質。)
settings-general-fk_settings-vive_emulation-label = 開啟 Vive 模擬
@@ -352,13 +386,16 @@ settings-general-fk_settings-vive_emulation-label = 開啟 Vive 模擬
settings-general-gesture_control = 手勢控制
settings-general-gesture_control-subtitle = 敲擊重置
settings-general-gesture_control-description = 使用敲擊追蹤器的方法觸發重置。敲擊軀幹所配戴的最高的追蹤器會啟用左右偏擺重置,敲擊左腳配戴最高的追蹤器會觸發完整重置,敲擊右腳配戴最高的追蹤器會觸發配戴重置。請注意,需要在 0.6 秒內滿足敲擊次數才會觸發。
settings-general-gesture_control-description = 使用敲擊追蹤器的方法觸發重置。敲擊軀幹所配戴的最高的追蹤器會啟用左右偏擺重置,敲擊左腳配戴最高的追蹤器會觸發完整重置,敲擊右腳配戴最高的追蹤器會觸發配戴重置。請注意,需要在 0.3 秒內滿足敲擊次數才會觸發。
# 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 } 次敲擊
}
# This is a unit: 3 trackers, 2 trackers, 1 tracker
# $amount (Number) - Amount of trackers
settings-general-gesture_control-trackers = { $amount } 個追蹤器
settings-general-gesture_control-yawResetEnabled = 敲擊以左右偏擺重置
settings-general-gesture_control-yawResetDelay = 左右偏擺重置延遲
settings-general-gesture_control-yawResetTaps = 左右偏擺重置敲擊次數
@@ -368,30 +405,45 @@ settings-general-gesture_control-fullResetTaps = 完整重置敲擊次數
settings-general-gesture_control-mountingResetEnabled = 敲擊以配戴重置
settings-general-gesture_control-mountingResetDelay = 重置佩戴延遲
settings-general-gesture_control-mountingResetTaps = 重置佩戴敲擊次數
# The number of trackers that can have higher acceleration before a tap is rejected
settings-general-gesture_control-numberTrackersOverThreshold = 觸發敲擊判定的最多追蹤器數量
settings-general-gesture_control-numberTrackersOverThreshold-description = 如果敲擊偵測無法作動,請嘗試增加此值以降低敲擊判定的門檻。為避免誤判,請勿設定超過所需要的數值。
## Interface settings
## Appearance settings
settings-general-interface = 使用者介面
settings-interface-appearance = 外觀
settings-general-interface-dev_mode = 開發者模式
settings-general-interface-dev_mode-description = 如果你需要深入的資料或與連線的追蹤器進行進階互動,開啟此模式將會非常有用
settings-general-interface-dev_mode-description = 本功能會提供更深入的資料,也能與已連線的追蹤器進行更進一步的控制
settings-general-interface-dev_mode-label = 開發者模式
settings-general-interface-theme = 佈景主題色彩
settings-general-interface-lang = 選擇語言
settings-general-interface-lang-description = 更改所使用的介面語言。
settings-general-interface-lang-placeholder = 選擇要使用的語言
# Keep the font name untranslated
settings-interface-appearance-font = UI 字體
settings-interface-appearance-font-description = 本設定會修改 UI 所使用的字體。
settings-interface-appearance-font-placeholder = 預設字體
settings-interface-appearance-font-os_font = 作業系統字體
settings-interface-appearance-font-slime_font = 預設字體
settings-interface-appearance-font_size = 文字縮放
settings-interface-appearance-font_size-description = 本設定會影響整個 UI 的文字大小,除了本設定面板以外。
## Notification settings
settings-interface-notifications = 通知
settings-general-interface-serial_detection = 串列埠裝置檢測
settings-general-interface-serial_detection-description = 每次插入新串列埠的裝置(可能是追蹤器)時,此選項會顯示一個彈出視窗。這有助於改進追蹤器的設定流程。
settings-general-interface-serial_detection-label = 串列埠裝置檢測
settings-general-interface-feedback_sound = 聲音回饋
settings-general-interface-feedback_sound-description = 啟用本選項後,觸發重置時會發出提示音
settings-general-interface-feedback_sound-description = 啟用本選項後,觸發重置時會發出提示音
settings-general-interface-feedback_sound-label = 聲音回饋
settings-general-interface-feedback_sound-volume = 聲音回饋音量
settings-general-interface-theme = 佈景主題色彩
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-description = 這裡用於顯示串列埠的即時資訊,可能有助於瞭解韌體是否發生問題。
settings-serial-connection_lost = 串列埠連線中斷,正在重新連線……
settings-serial-reboot = 重新啟動
settings-serial-factory_reset = 恢復出廠設定
@@ -412,7 +464,7 @@ settings-osc-router = OSC 路由
# This cares about multilines
settings-osc-router-description =
從另一個程式轉發 OSC 訊息。
例如在 VRChat 同時使用另一個 OSC 程式時,此功能會有幫助
例如需要在 VRChat 同時使用另一個 OSC 程式時,可以使用本功能
settings-osc-router-enable = 啟用
settings-osc-router-enable-description = 切換轉發 OSC 訊息。
settings-osc-router-enable-label = 啟用
@@ -465,13 +517,13 @@ settings-osc-vrchat-network-trackers-elbows = 肘部
settings-osc-vmc = Virtual Motion Capture
# This cares about multilines
settings-osc-vmc-description =
修改 VMC (Virtual Motion Capture) 協定的相關設定
以傳送 SlimeVR 的骨骼資料,並接收來自其他應用程式的骨骼資料
修改 VMC (Virtual Motion Capture) 協定的相關設定
以傳送 SlimeVR 的骨骼資料,並接收來自其他應用程式的骨骼資料
settings-osc-vmc-enable = 啟用
settings-osc-vmc-enable-description = 切換資料的傳送和接收。
settings-osc-vmc-enable-label = 啟用
settings-osc-vmc-network = 連接埠
settings-osc-vmc-network-description = 設定用於監聽和傳送 VMC 資料的連接埠
settings-osc-vmc-network-description = 設定用於監聽和傳送 VMC 資料的連接埠
settings-osc-vmc-network-port_in =
.label = 輸入埠
.placeholder = 輸入埠預設39540
@@ -479,10 +531,10 @@ settings-osc-vmc-network-port_out =
.label = 輸出埠
.placeholder = 輸出埠預設39539
settings-osc-vmc-network-address = 網路地址
settings-osc-vmc-network-address-description = 設定用來發送 VMC 資料的位址
settings-osc-vmc-network-address-description = 設定用來發送 VMC 資料的位址
settings-osc-vmc-network-address-placeholder = IPV4 地址
settings-osc-vmc-vrm = VRM 模型
settings-osc-vmc-vrm-description = 載入 VRM 模型以允許頭部錨定,並增進與其他應用程式的相容性
settings-osc-vmc-vrm-description = 載入 VRM 模型以允許頭部錨定,並與其他應用程式有更高的相容性
settings-osc-vmc-vrm-model_unloaded = 未載入模型
settings-osc-vmc-vrm-model_loaded =
{ $titled ->
@@ -544,7 +596,7 @@ onboarding-reset_tutorial-1 =
onboarding-reset_tutorial-2 =
對所標記之追蹤器敲擊 { $taps } 次即可觸發配戴重置。
配戴校正能對追蹤器實際的配戴方式進行調整,因此若您不小心移動到追蹤器,或是大幅度的變更配戴方向,這個功能會有所幫助。
配戴重置能對追蹤器實際的配戴方式進行調整,因此若您不小心移動到追蹤器,或是大幅度的變更配戴方向,這個功能會有所幫助。
做此校正時需要進行滑雪姿勢,如自動配戴校正的畫面所示。在觸發 3 秒後(可修改)才會真正進行重置。
@@ -611,8 +663,8 @@ onboarding-assignment_tutorial = 戴上 Slime 追蹤器前的準備事項
onboarding-assignment_tutorial-first_step = 1. 若有標示身體部位的貼紙,可在您所要分配使用的追蹤器上貼上。
# This text has a character limit of around 11 characters, so please keep it short
onboarding-assignment_tutorial-sticker = 貼紙
onboarding-assignment_tutorial-second_step = 2. 將綁帶有魔鬼氈(魔術貼)的一面,依照下圖所示的方向穿過追蹤器:
onboarding-assignment_tutorial-second_step-continuation = 延伸追蹤器應照下圖所示:
onboarding-assignment_tutorial-second_step-v2 = 2. 將綁帶有魔鬼氈(魔術貼)的一面朝向臉部標誌穿過追蹤器:
onboarding-assignment_tutorial-second_step-continuation-v2 = 延伸追蹤器的穿法應照下圖所示:
onboarding-assignment_tutorial-done = 我把貼紙跟綁帶都弄上了
## Tracker assignment setup
@@ -721,7 +773,7 @@ onboarding-manual_mounting-next = 下一步
onboarding-automatic_mounting-back = 返回到進入 VR
onboarding-automatic_mounting-title = 配戴校正
onboarding-automatic_mounting-description = 為了讓 SlimeVR 追蹤器正常運作,我們需要為你的追蹤器設定一個配戴方向,以使其與你的物理追蹤器配戴方式對齊
onboarding-automatic_mounting-description = 為了讓 SlimeVR 追蹤器正常運作,我們需要為每個追蹤器設定配戴方向,以符合您實際的追蹤器配戴方式。
onboarding-automatic_mounting-manual_mounting = 進行手動設定
onboarding-automatic_mounting-next = 下一步
onboarding-automatic_mounting-prev_step = 上一步
@@ -748,12 +800,18 @@ onboarding-choose_proportions-description =
onboarding-choose_proportions-auto_proportions = 自動軀幹比例校正
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = 推薦使用
onboarding-choose_proportions-auto_proportions-description = 本選項會透過演算法,分析身體的移動來推算軀幹比例
onboarding-choose_proportions-auto_proportions-descriptionv2 =
本選項會從您的身體動作錄製一段樣本,並通過演算法來推算您的軀幹比例。
<b>使用本功能需要連接頭戴顯示器到 SlimeVR</b>
onboarding-choose_proportions-manual_proportions = 手動軀幹比例校正
# Italized text
onboarding-choose_proportions-manual_proportions-subtitle = 適合進行微調
onboarding-choose_proportions-manual_proportions-description = 本選項可以讓你直接修改軀幹比例的設定值
onboarding-choose_proportions-export = 匯出軀幹比例
onboarding-choose_proportions-import = 匯入軀幹比例
onboarding-choose_proportions-import-success = 匯入成功
onboarding-choose_proportions-import-failed = 匯入失敗
onboarding-choose_proportions-file_type = 軀幹比例描述檔
## Tracker manual proportions setup
@@ -784,6 +842,18 @@ onboarding-automatic_proportions-requirements-description =
你的追蹤器與頭戴顯示器在 SlimeVR 伺服器中運作正常。
你的頭戴顯示器會回報定位資料給 SlimeVR 伺服器(通常為執行 SteamVR 並透過 SlimeVR 的 SteamVR 驅動程式來連接 SlimeVR
onboarding-automatic_proportions-requirements-next = 我已閱讀使用需求
onboarding-automatic_proportions-check_height-title = 檢查您的身高
onboarding-automatic_proportions-check_height-description = 我們會透過頭戴顯示器回報的高度來推算您的實際身高,但我們仍建議您檢查一下數值是否正確。
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = 請<u>站直</u>並按下按鈕以計算身高,按下按鈕後您有 3 秒鐘來調整姿勢。
onboarding-automatic_proportions-check_height-fetch_height = 我站著了!
# Context is that the height is unknown
onboarding-automatic_proportions-check_height-unknown = 不明
# Shows an element below it
onboarding-automatic_proportions-check_height-hmd_height1 = 您的頭戴顯示器高度是
# Shows an element below it
onboarding-automatic_proportions-check_height-height1 = 所以您的實際身高是
onboarding-automatic_proportions-check_height-next_step = 數值沒問題
onboarding-automatic_proportions-start_recording-title = 準備擺動作囉
onboarding-automatic_proportions-start_recording-description = 我們現在要記錄一些特定的姿勢和動作,將會在下一個畫面中提示。當按鈕被按下時,準備好開始!
onboarding-automatic_proportions-start_recording-next = 開始錄製
@@ -800,7 +870,7 @@ onboarding-automatic_proportions-recording-steps =
如果進度條還沒走完,可以重複以上動作直到錄製結束。
onboarding-automatic_proportions-recording-processing = 正在處理結果
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 20)
onboarding-automatic_proportions-recording-timer = 剩 { $time } 秒
onboarding-automatic_proportions-recording-timer = 剩 { $time } 秒
onboarding-automatic_proportions-verify_results-title = 檢查結果
onboarding-automatic_proportions-verify_results-description = 檢查下面的結果,它們看起來是正確的嗎?
onboarding-automatic_proportions-verify_results-results = 錄製結果
@@ -809,6 +879,10 @@ onboarding-automatic_proportions-verify_results-redo = 重新錄製
onboarding-automatic_proportions-verify_results-confirm = 他們是正確的!
onboarding-automatic_proportions-done-title = 身體資料已測量並儲存。
onboarding-automatic_proportions-done-description = 你的身體比例校正已完成!
onboarding-automatic_proportions-error_modal =
<b>警告:</b> 推算軀幹比例時發生錯誤。
請<docs>閱讀文件</docs>或加入我們的 <discord>Discord</discord> 伺服器以尋求協助 ^_^
onboarding-automatic_proportions-error_modal-confirm = 瞭解!
## Home

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 998 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

5
gui/public/logo.svg Normal file
View File

@@ -0,0 +1,5 @@
<?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">
<style>svg { background-color: #663499; }</style>
<rect id="bg" width="100%" height="100%" fill="#663499"/><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: 660 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,7 +1,16 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"name": "SlimeVR GUI",
"short_name": "SlimeVR GUI",
"description": "A web interface for controlling the SlimeVR Server software",
"display": "standalone",
"theme_color": "#663499",
"background_color": "#663499",
"icons": [
{
"src": "logo.svg",
"type": "image/svg+xml",
"sizes": "any 512x512 192x192"
},
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
@@ -17,9 +26,5 @@
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
]
}

Binary file not shown.

View File

@@ -21,16 +21,24 @@ default = ["custom-protocol"]
custom-protocol = ["tauri/custom-protocol"]
[build-dependencies]
tauri-build = { version = "1.2", features = [] }
tauri-build = { version = "2.0.0-alpha.6", features = [] }
cfg_aliases = "0.1"
shadow-rs = "0.23"
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tauri = { version = "1.4", features = ["devtools", "dialog", "dialog-save", "fs-all", "os-all", "path-all", "shell-execute", "shell-open", "window-close", "window-maximize", "window-minimize", "window-set-resizable", "window-set-size", "window-set-title", "window-start-dragging", "window-unmaximize", "window-unminimize"] }
tauri-runtime = "0.14"
pretty_env_logger = "0.5"
tauri = { version = "2.0.0-alpha.10", features = ["devtools"] }
tauri-runtime = "0.13.0-alpha.6"
tauri-plugin-dialog = { git = "https://github.com/tauri-apps/plugins-workspace", rev = "4ab90f048eab2918344f97dc8e04413a404e392d" }
tauri-plugin-fs = { git = "https://github.com/tauri-apps/plugins-workspace", rev = "4ab90f048eab2918344f97dc8e04413a404e392d" }
tauri-plugin-os = { git = "https://github.com/tauri-apps/plugins-workspace", rev = "4ab90f048eab2918344f97dc8e04413a404e392d" }
tauri-plugin-shell = { git = "https://github.com/tauri-apps/plugins-workspace", rev = "4ab90f048eab2918344f97dc8e04413a404e392d" }
tauri-plugin-window = { git = "https://github.com/tauri-apps/plugins-workspace", rev = "4ab90f048eab2918344f97dc8e04413a404e392d", features = [
"devtools",
] }
flexi_logger = "0.25"
log-panics = { version = "2", features = ["with-backtrace"] }
log = "0.4"
clap = { version = "4.0.29", features = ["derive"] }
clap-verbosity-flag = "2"
@@ -38,11 +46,13 @@ rand = "0.8.5"
tempfile = "3"
which = "4.3"
glob = "0.3"
open = "4"
open = "5"
shadow-rs = { version = "0.23", default-features = false }
const_format = "0.2.30"
cfg-if = "1"
color-eyre = "0.6"
rfd = "0.11.4"
dirs-next = "2.0.0"
[target.'cfg(windows)'.dependencies]
win32job = "1"

View File

@@ -9,11 +9,12 @@ use std::time::Duration;
use std::time::Instant;
use clap::Parser;
use color_eyre::Result;
use state::WindowState;
use tauri::api::process::{Command, CommandChild};
use tauri::Manager;
use tauri::RunEvent;
use tauri::WindowEvent;
use tauri_plugin_shell::process::CommandChild;
use crate::util::{
get_launch_path, show_error, valid_java_paths, Cli, JAVA_BIN, MINIMUM_JAVA_VERSION,
@@ -38,22 +39,70 @@ fn update_window_state(
Ok(())
}
fn main() {
#[tauri::command]
fn logging(msg: String) {
log::info!(target: "webview", "{}", msg)
}
#[tauri::command]
fn erroring(msg: String) {
log::error!(target: "webview", "{}", msg)
}
#[tauri::command]
fn warning(msg: String) {
log::warn!(target: "webview", "{}", msg)
}
fn main() -> Result<()> {
log_panics::init();
let hook = panic::take_hook();
// Make an error dialog box when panicking
panic::set_hook(Box::new(|panic_info| {
println!("{}", panic_info);
panic::set_hook(Box::new(move |panic_info| {
show_error(&panic_info.to_string());
hook(panic_info);
}));
let cli = Cli::parse();
let tauri_context = tauri::generate_context!();
// 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();
}
let _logger = {
use flexi_logger::{
Age, Cleanup, Criterion, Duplicate, FileSpec, Logger, Naming, WriteMode,
};
use tauri::path::Error;
// Based on https://docs.rs/tauri/2.0.0-alpha.10/src/tauri/path/desktop.rs.html#238-256
#[cfg(target_os = "macos")]
let path = dirs_next::home_dir().ok_or(Error::UnknownPath).map(|dir| {
dir.join("Library/Logs")
.join(&tauri_context.config().tauri.bundle.identifier)
});
#[cfg(not(target_os = "macos"))]
let path = dirs_next::data_dir()
.ok_or(Error::UnknownPath)
.map(|dir| {
dir.join(&tauri_context.config().tauri.bundle.identifier)
.join("logs")
});
Logger::try_with_env_or_str("info")?
.log_to_file(
FileSpec::default().directory(path.expect("We need a log dir")),
)
.format_for_files(util::logger_format)
.format_for_stderr(util::logger_format)
.rotate(
Criterion::Age(Age::Day),
Naming::Timestamps,
Cleanup::KeepLogFiles(2),
)
.duplicate_to_stderr(Duplicate::All)
.write_mode(WriteMode::BufferAndFlush)
.start()?
};
// Ensure child processes die when spawned on windows
// and then check for WebView2's existence
@@ -75,27 +124,28 @@ fn main() {
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,
};
use rfd::{MessageButtons, MessageDialog, MessageLevel};
let confirm = MessageDialogBuilder::new("SlimeVR", "Couldn't find WebView2 installed. You can install it with the SlimeVR installer")
.buttons(MessageDialogButtons::OkCancel)
.kind(MessageDialogKind::Error)
let confirm = MessageDialog::new()
.set_title("SlimeVR")
.set_description("Couldn't find WebView2 installed. You can install it with the SlimeVR installer")
.set_buttons(MessageButtons::OkCancel)
.set_level(MessageLevel::Error)
.show();
if confirm {
open::that("https://docs.slimevr.dev/server-setup/installing-and-connecting.html#install-the-latest-slimevr-installer").unwrap();
}
return;
return Ok(());
}
}
// Spawn server process
let exit_flag = Arc::new(AtomicBool::new(false));
let mut backend: Option<CommandChild> = None;
let backend = Arc::new(Mutex::new(Option::<CommandChild>::None));
let backend_termination = backend.clone();
let run_path = get_launch_path(cli);
let stdout_recv = if let Some(p) = run_path {
let server_info = if let Some(p) = run_path {
log::info!("Server found on path: {}", p.to_str().unwrap());
// Check if any Java already installed is compatible
@@ -106,17 +156,11 @@ fn main() {
.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;
return Ok(());
};
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", "run"])
.spawn()
.expect("Unable to start the server jar");
backend = Some(child);
Some(recv)
Some((java_bin, p))
} else {
log::warn!("No server found. We will not start the server.");
None
@@ -124,15 +168,25 @@ fn main() {
let exit_flag_terminated = exit_flag.clone();
let build_result = tauri::Builder::default()
.invoke_handler(tauri::generate_handler![update_window_state])
.plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_fs::init())
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_window::init())
.invoke_handler(tauri::generate_handler![
update_window_state,
logging,
erroring,
warning
])
.setup(move |app| {
let window_state =
WindowState::open_state(app.path_resolver().app_config_dir().unwrap())
WindowState::open_state(app.path().app_config_dir().unwrap())
.unwrap_or_default();
let window = tauri::WindowBuilder::new(
app,
"local",
"main",
tauri::WindowUrl::App("index.html".into()),
)
.title("SlimeVR")
@@ -150,15 +204,32 @@ fn main() {
app.manage(Mutex::new(window_state));
if let Some(mut recv) = stdout_recv {
if let Some((java_bin, p)) = server_info {
let app_handle = app.app_handle();
tauri::async_runtime::spawn(async move {
use tauri::api::process::CommandEvent;
use tauri_plugin_shell::{process::CommandEvent, ShellExt};
while let Some(cmd_event) = recv.recv().await {
let (mut rx, child) = app_handle
.shell()
.command(java_bin.to_str().unwrap())
.current_dir(p)
.args(["-Xmx512M", "-jar", "slimevr.jar", "run"])
.spawn()
.expect("Unable to start the server jar");
{
let mut lock = backend.lock().unwrap();
*lock = Some(child)
}
while let Some(cmd_event) = rx.recv().await {
let emit_me = match cmd_event {
CommandEvent::Stderr(s) => ("stderr", s),
CommandEvent::Stdout(s) => ("stdout", s),
CommandEvent::Stderr(v) => {
("stderr", String::from_utf8(v).unwrap_or_default())
}
CommandEvent::Stdout(v) => {
("stdout", String::from_utf8(v).unwrap_or_default())
}
CommandEvent::Error(s) => ("error", s),
CommandEvent::Terminated(s) => {
exit_flag_terminated.store(true, Ordering::Relaxed);
@@ -168,7 +239,7 @@ fn main() {
};
app_handle
.emit_all("server-status", emit_me)
.expect("Failed to emit");
.expect("Check server log files. \nFailed to emit");
}
log::error!("Java server receiver died");
app_handle
@@ -190,26 +261,26 @@ fn main() {
WindowEvent::Resized(_) => std::thread::sleep(std::time::Duration::from_nanos(1)),
_ => (),
})
.build(tauri::generate_context!());
.build(tauri_context);
match build_result {
Ok(app) => {
app.run(move |app_handle, event| match event {
RunEvent::ExitRequested { .. } => {
let window_state = app_handle.state::<Mutex<WindowState>>();
let lock = window_state.lock().unwrap();
let config_dir =
app_handle.path_resolver().app_config_dir().unwrap();
let config_dir = app_handle.path().app_config_dir().unwrap();
let window_state_res = lock.save_state(config_dir);
match window_state_res {
Ok(()) => log::info!("saved window state"),
Err(e) => log::error!("failed to save window state: {}", e),
}
let Some(ref mut child) = backend else { return };
let mut lock = backend_termination.lock().unwrap();
let Some(ref mut child) = *lock else { return };
let write_result = child.write(b"exit\n");
match write_result {
Ok(()) => log::info!("send exit to backend"),
Err(_) => log::info!("fail to send exit to backend"),
Err(_) => log::error!("fail to send exit to backend"),
}
let ten_seconds = Duration::from_secs(10);
let start_time = Instant::now();
@@ -229,13 +300,13 @@ fn main() {
// 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,
};
use rfd::{MessageButtons, MessageDialog, MessageLevel};
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)
let confirm = MessageDialog::new()
.set_title("SlimeVR")
.set_description("You seem to have a faulty installation of WebView2. You can check a guide on how to fix that in the docs!")
.set_buttons(MessageButtons::OkCancel)
.set_level(MessageLevel::Error)
.show();
if confirm {
open::that("https://docs.slimevr.dev/common-issues.html#webview2-is-missing--slimevr-gui-crashes-immediately--panicked-at--webview2error").unwrap();
@@ -246,4 +317,6 @@ fn main() {
show_error(&error.to_string());
}
}
Ok(())
}

View File

@@ -10,6 +10,8 @@ use std::{
use clap::Parser;
use const_format::concatcp;
use flexi_logger::{style, DeferredNow};
use log::Record;
use shadow_rs::shadow;
use tempfile::Builder;
@@ -93,20 +95,17 @@ pub fn spawn_java(java: &OsStr, java_version: &OsStr) -> std::io::Result<Child>
#[cfg(desktop)]
pub fn show_error(text: &str) -> bool {
use rand::{seq::SliceRandom, thread_rng};
use tauri::api::dialog::{
blocking::MessageDialogBuilder, MessageDialogButtons, MessageDialogKind,
};
use rfd::{MessageButtons, MessageDialog, MessageLevel};
MessageDialogBuilder::new(
format!(
MessageDialog::new()
.set_title(&format!(
"SlimeVR GUI crashed - {}",
POSSIBLE_TITLES.choose(&mut thread_rng()).unwrap()
),
text,
)
.buttons(MessageDialogButtons::Ok)
.kind(MessageDialogKind::Error)
.show()
))
.set_description(text)
.set_buttons(MessageButtons::Ok)
.set_level(MessageLevel::Error)
.show()
}
#[cfg(mobile)]
@@ -216,3 +215,25 @@ pub fn valid_java_paths() -> Vec<(OsString, i32)> {
})
.collect()
}
pub fn logger_format(
w: &mut dyn std::io::Write,
_now: &mut DeferredNow,
record: &Record,
) -> Result<(), std::io::Error> {
let level = record.level();
let module_path = record.module_path().unwrap_or("<unnamed>");
// optionally print target
let target = if module_path.starts_with(record.target()) {
"".to_string()
} else {
format!(", {}", record.target())
};
write!(
w,
"{} [{}{target}] {}",
style(level).paint(level.to_string()),
record.module_path().unwrap_or("<unnamed>"),
style(level).paint(record.args().to_string())
)
}

View File

@@ -9,6 +9,29 @@
"beforeDevCommand": "npm run start",
"beforeBuildCommand": "npm run build"
},
"plugins": {
"shell": {
"open": true
},
"fs": {
"scope": ["$APP/*", "$APP"],
"all": true
},
"os": {
"all": true
},
"window": {
"setResizable": true,
"setTitle": true,
"maximize": true,
"unmaximize": true,
"minimize": true,
"unminimize": true,
"close": true,
"startDragging": true,
"setSize": true
}
},
"tauri": {
"bundle": {
"active": true,
@@ -30,7 +53,7 @@
"deb": {
"depends": ["openjdk-17-jre-headless"],
"files": {
"/usr/share/slimevr/slimevr.jar": "../../server/build/libs/slimevr.jar"
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar"
}
},
"appimage": {
@@ -50,43 +73,15 @@
"timestampUrl": ""
}
},
"updater": {
"active": false
},
"allowlist": {
"dialog": {
"all": false,
"save": true
},
"shell": {
"all": false,
"execute": true,
"open": 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,
"setSize": true
}
},
"security": {
"csp": null
"csp": null,
"dangerousRemoteDomainIpcAccess": [
{
"domain": "tauri.localhost",
"windows": ["main"],
"plugins": ["dialog", "fs", "os", "shell", "window"]
}
]
}
}
}

View File

@@ -1,9 +0,0 @@
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();
});

View File

@@ -35,10 +35,9 @@ 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';
import * as os from '@tauri-apps/plugin-os';
import { VMCSettings } from './components/settings/pages/VMCSettings';
import { MountingChoose } from './components/onboarding/pages/mounting/MountingChoose';
import { ProportionsChoose } from './components/onboarding/pages/body-proportions/ProportionsChoose';
@@ -46,101 +45,108 @@ import { StatusProvider } from './components/providers/StatusSystemContext';
import { VersionUpdateModal } from './components/VersionUpdateModal';
import { CalibrationTutorialPage } from './components/onboarding/pages/CalibrationTutorial';
import { AssignmentTutorialPage } from './components/onboarding/pages/assignment-preparation/AssignmentTutorial';
import { open } from '@tauri-apps/api/shell';
import { open } from '@tauri-apps/plugin-shell';
import semver from 'semver';
import { useBreakpoint } from './hooks/breakpoint';
import { VRModePage } from './components/vr-mode/VRModePage';
import { InterfaceSettings } from './components/settings/pages/InterfaceSettings';
import { error, log } from './utils/logging';
import { AppLayout } from './AppLayout';
export const GH_REPO = 'SlimeVR/SlimeVR-Server';
export const VersionContext = createContext('');
export const DOCS_SITE = 'https://docs.slimevr.dev/';
export const DOCS_SITE = 'https://docs.slimevr.dev';
export const SLIMEVR_DISCORD = 'https://discord.gg/slimevr';
function Layout() {
const { loading } = useConfig();
if (loading) return <></>;
const { isMobile } = useBreakpoint('mobile');
return (
<>
<SerialDetectionModal></SerialDetectionModal>
<VersionUpdateModal></VersionUpdateModal>
<Routes>
<Route
path="/"
element={
<MainLayoutRoute isMobile={isMobile}>
<Home />
</MainLayoutRoute>
}
/>
<Route
path="/vr-mode"
element={
<MainLayoutRoute isMobile={isMobile}>
<VRModePage />
</MainLayoutRoute>
}
/>
<Route
path="/tracker/:trackernum/:deviceid"
element={
<MainLayoutRoute background={false} isMobile={isMobile}>
<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 path="osc/vmc" element={<VMCSettings />} />
<Route element={<AppLayout />}>
<Route
path="/"
element={
<MainLayoutRoute isMobile={isMobile}>
<Home />
</MainLayoutRoute>
}
/>
<Route
path="/vr-mode"
element={
<MainLayoutRoute isMobile={isMobile}>
<VRModePage />
</MainLayoutRoute>
}
/>
<Route
path="/tracker/:trackernum/:deviceid"
element={
<MainLayoutRoute background={false} isMobile={isMobile}>
<TrackerSettingsPage />
</MainLayoutRoute>
}
/>
<Route
path="/settings"
element={
<SettingsLayoutRoute>
<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 path="osc/vmc" element={<VMCSettings />} />
<Route path="interface" element={<InterfaceSettings />} />
</Route>
<Route
path="/onboarding"
element={
<OnboardingLayout>
<Outlet />
</OnboardingLayout>
}
>
<Route path="home" element={<HomePage />} />
<Route path="wifi-creds" element={<WifiCredsPage />} />
<Route path="connect-trackers" element={<ConnectTrackersPage />} />
<Route
path="calibration-tutorial"
element={<CalibrationTutorialPage />}
/>
<Route
path="assign-tutorial"
element={<AssignmentTutorialPage />}
/>
<Route path="trackers-assign" element={<TrackersAssignPage />} />
<Route path="enter-vr" element={<EnterVRPage />} />
<Route path="mounting/choose" element={<MountingChoose />}></Route>
<Route path="mounting/auto" element={<AutomaticMountingPage />} />
<Route path="mounting/manual" element={<ManualMountingPage />} />
<Route path="reset-tutorial" element={<ResetTutorialPage />} />
<Route
path="body-proportions/choose"
element={<ProportionsChoose />}
/>
<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>
</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="calibration-tutorial"
element={<CalibrationTutorialPage />}
/>
<Route path="assign-tutorial" element={<AssignmentTutorialPage />} />
<Route path="trackers-assign" element={<TrackersAssignPage />} />
<Route path="enter-vr" element={<EnterVRPage />} />
<Route path="mounting/choose" element={<MountingChoose />}></Route>
<Route path="mounting/auto" element={<AutomaticMountingPage />} />
<Route path="mounting/manual" element={<ManualMountingPage />} />
<Route path="reset-tutorial" element={<ResetTutorialPage />} />
<Route
path="body-proportions/choose"
element={<ProportionsChoose />}
/>
<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>
</>
);
@@ -166,19 +172,19 @@ export default function App() {
setUpdateFound(releases[0].tag_name);
}
}
fetchReleases().catch(() => console.error('failed to fetch releases'));
fetchReleases().catch(() => error('failed to fetch releases'));
}, []);
if (window.__TAURI_METADATA__) {
useEffect(() => {
os.type()
.then((type) => document.body.classList.add(type.toLowerCase()))
.catch(console.error);
.catch(error);
return () => {
os.type()
.then((type) => document.body.classList.remove(type.toLowerCase()))
.catch(console.error);
.catch(error);
};
}, []);
}
@@ -192,6 +198,7 @@ export default function App() {
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
// These two are fine to keep with console.log, they are server logs
setTimeout(
console.log.bind(
console,
@@ -210,11 +217,11 @@ export default function App() {
)
);
} else if (eventType === 'error') {
console.error('Error: %s', s);
error('Error: %s', s);
} else if (eventType === 'terminated') {
console.error('Server Process Terminated: %s', s);
error('Server Process Terminated: %s', s);
} else if (eventType === 'other') {
console.log('Other process event: %s', s);
log('Other process event: %s', s);
}
}
);

51
gui/src/AppLayout.tsx Normal file
View File

@@ -0,0 +1,51 @@
import { useLayoutEffect } from 'react';
import { useConfig } from './hooks/config';
import { Outlet, useNavigate } from 'react-router-dom';
export function AppLayout() {
const { loading, config } = useConfig();
const navigate = useNavigate();
useLayoutEffect(() => {
if (loading || !config) return;
if (config.theme !== undefined) {
document.documentElement.dataset.theme = config.theme;
}
if (config.fonts !== undefined) {
document.documentElement.style.setProperty(
'--font-name',
config.fonts.map((x) => `"${x}"`).join(',')
);
}
if (config.textSize !== undefined) {
document.documentElement.style.setProperty(
'--font-size',
`${config.textSize}rem`
);
}
}, [config, loading]);
useLayoutEffect(() => {
if (config && !config.doneOnboarding) {
navigate('/onboarding/home');
}
}, [config?.doneOnboarding]);
// const location = useLocation();
// const navigationType = useNavigationType();
// useEffect(() => {
// if (import.meta.env.PROD) return;
// console.log('The current URL is', { ...location });
// console.log('The last navigation action was', navigationType);
// }, [location, navigationType]);
if (loading) return <></>;
return (
<>
<Outlet />
</>
);
}

View File

@@ -5,7 +5,7 @@ import {
RecordBVHStatusT,
RpcMessage,
} from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { BigButton } from './commons/BigButton';
import { RecordIcon } from './commons/icon/RecordIcon';

View File

@@ -1,6 +1,6 @@
import { useLocalization } from '@fluent/react';
import { ClearDriftCompensationRequestT, RpcMessage } from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { BigButton } from './commons/BigButton';
import { TrashIcon } from './commons/icon/TrashIcon';

View File

@@ -0,0 +1,44 @@
import { useLocalization } from '@fluent/react';
import { ClearMountingResetRequestT, RpcMessage } from 'solarxr-protocol';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { BigButton } from './commons/BigButton';
import { TrashIcon } from './commons/icon/TrashIcon';
import { useTrackers } from '@/hooks/tracker';
import { Quaternion } from 'three';
import { QuaternionFromQuatT, similarQuaternions } from '@/maths/quaternion';
import { useMemo } from 'react';
const _q = new Quaternion();
export function ClearMountingButton() {
const { l10n } = useLocalization();
const { sendRPCPacket } = useWebsocketAPI();
const { useAssignedTrackers } = useTrackers();
const assignedTrackers = useAssignedTrackers();
const trackerWithMounting = useMemo(
() =>
assignedTrackers.some(
(d) =>
!similarQuaternions(
QuaternionFromQuatT(d?.tracker.info?.mountingResetOrientation),
_q
)
),
[assignedTrackers]
);
const clearMounting = () => {
const record = new ClearMountingResetRequestT();
sendRPCPacket(RpcMessage.ClearMountingResetRequest, record);
};
return (
<BigButton
text={l10n.getString('widget-clear_mounting')}
icon={<TrashIcon width={20} />}
onClick={clearMounting}
disabled={!trackerWithMounting}
/>
);
}

View File

@@ -6,10 +6,10 @@ import {
RpcMessage,
SettingsRequestT,
} from 'solarxr-protocol';
import { useElemSize, useLayout } from '../hooks/layout';
import { useElemSize, useLayout } from '@/hooks/layout';
import { Navbar } from './Navbar';
import { TopBar } from './TopBar';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { WidgetsComponent } from './WidgetsComponent';
export function MainLayoutRoute({
@@ -77,7 +77,7 @@ export function MainLayoutRoute({
>
<div
className={classNames(
'flex flex-col rounded-xl w-full overflow-hidden mobile:overflow-y-auto',
'flex flex-col rounded-xl w-full overflow-clip mobile:overflow-y-auto',
background && 'bg-background-70'
)}
>

View File

@@ -8,7 +8,7 @@ import { HumanIcon } from './commons/icon/HumanIcon';
import { RulerIcon } from './commons/icon/RulerIcon';
import { SparkleIcon } from './commons/icon/SparkleIcon';
import { WrenchIcon } from './commons/icon/WrenchIcons';
import { useBreakpoint } from '../hooks/breakpoint';
import { useBreakpoint } from '@/hooks/breakpoint';
export function NavButton({
to,

View File

@@ -6,9 +6,9 @@ import {
RpcMessage,
SerialDeviceT,
} from 'solarxr-protocol';
import { useConfig } from '../hooks/config';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWifiForm, WifiFormData } from '../hooks/wifi-form';
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';

View File

@@ -1,4 +1,4 @@
import { appWindow } from '@tauri-apps/api/window';
import { getCurrent } from '@tauri-apps/plugin-window';
import { ReactNode, useContext, useEffect, useState } from 'react';
import { NavLink, useMatch } from 'react-router-dom';
import {
@@ -6,7 +6,7 @@ import {
ServerInfosRequestT,
ServerInfosResponseT,
} from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { CloseIcon } from './commons/icon/CloseIcon';
import { MaximiseIcon } from './commons/icon/MaximiseIcon';
import { MinimiseIcon } from './commons/icon/MinimiseIcon';
@@ -14,11 +14,11 @@ import { SlimeVRIcon } from './commons/icon/SimevrIcon';
import { ProgressBar } from './commons/ProgressBar';
import { Typography } from './commons/Typography';
import { DownloadIcon } from './commons/icon/DownloadIcon';
import { open } from '@tauri-apps/api/shell';
import { GH_REPO, VersionContext, DOCS_SITE } from '../App';
import { open } from '@tauri-apps/plugin-shell';
import { GH_REPO, VersionContext, DOCS_SITE } from '@/App';
import classNames from 'classnames';
import { QuestionIcon } from './commons/icon/QuestionIcon';
import { useBreakpoint, useIsTauri } from '../hooks/breakpoint';
import { useBreakpoint, useIsTauri } from '@/hooks/breakpoint';
import { GearIcon } from './commons/icon/GearIcon';
import { invoke } from '@tauri-apps/api';
@@ -185,13 +185,13 @@ export function TopBar({
<>
<div
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
onClick={() => appWindow.minimize()}
onClick={() => getCurrent().minimize()}
>
<MinimiseIcon></MinimiseIcon>
</div>
<div
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
onClick={() => appWindow.toggleMaximize()}
onClick={() => getCurrent().toggleMaximize()}
>
<MaximiseIcon></MaximiseIcon>
</div>
@@ -199,7 +199,7 @@ export function TopBar({
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
onClick={async () => {
await invoke('update_window_state');
appWindow.close();
getCurrent().close();
}}
>
<CloseIcon></CloseIcon>

View File

@@ -1,7 +1,7 @@
import { useLocalization } from '@fluent/react';
import { useState } from 'react';
import { SetPauseTrackingRequestT, RpcMessage } from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { BigButton } from './commons/BigButton';
import { PlayIcon } from './commons/icon/PlayIcon';
import { PauseIcon } from './commons/icon/PauseIcon';

View File

@@ -3,9 +3,10 @@ import { useContext, useState } from 'react';
import { BaseModal } from './commons/BaseModal';
import { Button } from './commons/Button';
import { Typography } from './commons/Typography';
import { open } from '@tauri-apps/api/shell';
import { open } from '@tauri-apps/plugin-shell';
import semver from 'semver';
import { GH_REPO, VersionContext } from '../App';
import { GH_REPO, VersionContext } from '@/App';
import { error } from '@/utils/logging';
export function VersionUpdateModal() {
const { l10n } = useLocalization();
@@ -24,7 +25,7 @@ export function VersionUpdateModal() {
);
}
} catch {
console.error('failed to parse new version');
error('failed to parse new version');
}
return (

View File

@@ -6,21 +6,23 @@ import { ResetButton } from './home/ResetButton';
import { OverlayWidget } from './widgets/OverlayWidget';
import { TipBox } from './commons/TipBox';
import { DeveloperModeWidget } from './widgets/DeveloperModeWidget';
import { useConfig } from '../hooks/config';
import { useConfig } from '@/hooks/config';
import {
ResetType,
RpcMessage,
SettingsRequestT,
SettingsResponseT,
StatusData,
} from 'solarxr-protocol';
import { useMemo, useState } from 'react';
import { parseStatusToLocale, useStatusContext } from '../hooks/status-system';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useAppContext } from '../hooks/app';
import { useEffect, useMemo, useState } from 'react';
import { parseStatusToLocale, useStatusContext } from '@/hooks/status-system';
import { useWebsocketAPI } from '@/hooks/websocket-api';
import { useAppContext } from '@/hooks/app';
import { ClearMountingButton } from './ClearMountingButton';
export function WidgetsComponent() {
const { config } = useConfig();
const { useRPCPacket } = useWebsocketAPI();
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [driftCompensationEnabled, setDriftCompensationEnabled] =
useState(false);
const { trackers } = useAppContext();
@@ -31,6 +33,10 @@ export function WidgetsComponent() {
[statuses]
);
useEffect(() => {
sendRPCPacket(RpcMessage.SettingsRequest, new SettingsRequestT());
}, []);
useRPCPacket(RpcMessage.SettingsResponse, (settings: SettingsResponseT) => {
if (settings.driftCompensation != null)
setDriftCompensationEnabled(settings.driftCompensation.enabled);
@@ -41,9 +47,8 @@ export function WidgetsComponent() {
<div className="grid grid-cols-2 gap-2 w-full [&>*:nth-child(odd):last-of-type]:col-span-full">
<ResetButton type={ResetType.Yaw} variant="big"></ResetButton>
<ResetButton type={ResetType.Full} variant="big"></ResetButton>
{config?.debug && (
<ResetButton type={ResetType.Mounting} variant="big"></ResetButton>
)}
<ResetButton type={ResetType.Mounting} variant="big"></ResetButton>
<ClearMountingButton></ClearMountingButton>
<BVHButton></BVHButton>
<TrackingPauseButton></TrackingPauseButton>
{driftCompensationEnabled && (
@@ -53,7 +58,7 @@ export function WidgetsComponent() {
<div className="w-full">
<OverlayWidget></OverlayWidget>
</div>
<div className="w-full flex flex-col max-h-[33%] gap-3 overflow-y-auto mb-2">
<div className="w-full flex flex-col gap-3 mb-2">
{unprioritizedStatuses.map((status) => (
<Localized
id={`status_system-${StatusData[status.dataType]}`}

View File

@@ -0,0 +1,14 @@
import { open } from '@tauri-apps/plugin-shell';
import { ReactNode } from 'react';
export function A({ href, children }: { href: string; children?: ReactNode }) {
return (
<a
href="javascript:void(0)"
onClick={() => open(href).catch(() => window.open(href, '_blank'))}
className="underline"
>
{children}
</a>
);
}

View File

@@ -19,7 +19,7 @@ export function BigButton({
{...props}
type="button"
className={classNames(
'flex flex-col justify-center rounded-md py-3 gap-1 px-3 cursor-pointer items-center ',
'flex flex-col justify-center rounded-md py-3 gap-1 px-3 cursor-pointer items-center',
{
'bg-background-60 hover:bg-background-60 cursor-not-allowed text-background-40 fill-background-40':
disabled,
@@ -30,7 +30,7 @@ export function BigButton({
)}
>
<div className="flex justify-around">{icon}</div>
<div className="flex text-default flex-grow">{text}</div>
<div className="flex text-default flex-grow items-center">{text}</div>
</button>
);
}

View File

@@ -8,8 +8,8 @@ import {
useState,
} from 'react';
import { BodyPart, TrackerDataT } from 'solarxr-protocol';
import { FlatDeviceTracker } from '../../hooks/app';
import { useTracker } from '../../hooks/tracker';
import { FlatDeviceTracker } from '@/hooks/app';
import { useTracker } from '@/hooks/tracker';
import { PersonFrontIcon } from './PersonFrontIcon';
interface SlotDot {

View File

@@ -2,7 +2,7 @@ import classNames from 'classnames';
import { ReactNode, useLayoutEffect, useRef, useState } from 'react';
import { BodyPart } from 'solarxr-protocol';
import { PersonFrontIcon } from './PersonFrontIcon';
import { useBreakpoint } from '../../hooks/breakpoint';
import { useBreakpoint } from '@/hooks/breakpoint';
export function BodyInteractions({
leftControls,

View File

@@ -1,5 +1,5 @@
import { BodyPart } from 'solarxr-protocol';
import { useLocaleConfig } from '../../i18n/config';
import { useLocaleConfig } from '@/i18n/config';
import { AnkleIcon } from './icon/AnkleIcon';
import { ChestIcon } from './icon/ChestIcon';
import { ControllerIcon } from './icon/ControllerIcon';

View File

@@ -1,7 +1,7 @@
import classNames from 'classnames';
import React, { ReactNode, useMemo } from 'react';
import { NavLink } from 'react-router-dom';
import { LoaderIcon } from './icon/LoaderIcon';
import { LoaderIcon, SlimeState } from './icon/LoaderIcon';
function ButtonContent({
loading,
@@ -29,7 +29,7 @@ function ButtonContent({
</div>
{loading && (
<div className="absolute top-0 left-0 w-full h-full flex justify-center items-center fill-background-10">
<LoaderIcon youSpinMeRightRoundBabyRightRound></LoaderIcon>
<LoaderIcon slimeState={SlimeState.JUMPY}></LoaderIcon>
</div>
)}
</>

View File

@@ -6,11 +6,12 @@ import {
UseFormGetValues,
useWatch,
} from 'react-hook-form';
import { a11yClick } from '../utils/a11y';
import { a11yClick } from '@/utils/a11y';
export interface DropdownItem {
label: string;
value: string;
fontName?: string;
}
export type DropdownDirection = 'up' | 'down';
@@ -130,7 +131,7 @@ export function Dropdown({
onKeyDown={(ev) => a11yClick(ev) && setOpen((open) => !open)}
tabIndex={0}
>
<div className="flex-grow">
<div className="flex-grow text-standard">
{items.find((i) => i.value == value)?.label || placeholder}
</div>
<div
@@ -176,6 +177,7 @@ export function Dropdown({
<ul className="py-1 text-sm flex flex-col">
{items.map((item) => (
<li
style={item.fontName ? { fontFamily: item.fontName } : {}}
className={classNames(
'py-2 px-4 min-w-max cursor-pointer',
variant == 'primary' &&

View File

@@ -1,8 +1,8 @@
import { useLocalization } from '@fluent/react';
import { useEffect, useMemo, useContext } from 'react';
import { useForm } from 'react-hook-form';
import { useConfig } from '../../hooks/config';
import { langs, LangContext } from '../../i18n/config';
import { useConfig } from '@/hooks/config';
import { langs, LangContext } from '@/i18n/config';
import { Dropdown, DropdownDirection } from './Dropdown';
export function LangSelector({

View File

@@ -10,14 +10,16 @@ export function NumberSelector({
min,
max,
step,
disabled = false,
}: {
label: string;
label?: string;
valueLabelFormat?: (value: number) => string;
control: Control<any>;
name: string;
min: number;
max: number;
step: number | ((value: number, add: boolean) => number);
disabled?: boolean;
}) {
const stepFn =
typeof step === 'function'
@@ -32,18 +34,18 @@ export function NumberSelector({
render={({ field: { onChange, value } }) => (
<div className="flex flex-col gap-1 w-full">
<Typography bold>{label}</Typography>
<div className="flex gap-2 bg-background-60 p-2 rounded-lg">
<div className="flex gap-5 bg-background-60 p-2 rounded-lg">
<div className="flex">
<Button
variant="tertiary"
rounded
onClick={() => onChange(stepFn(value, false))}
disabled={stepFn(value, false) < min}
disabled={stepFn(value, false) < min || disabled}
>
-
</Button>
</div>
<div className="flex flex-grow justify-center items-center w-10">
<div className="flex flex-grow justify-center items-center w-10 text-standard">
{valueLabelFormat ? valueLabelFormat(value) : value}
</div>
<div className="flex">
@@ -51,7 +53,7 @@ export function NumberSelector({
variant="tertiary"
rounded
onClick={() => onChange(stepFn(value, true))}
disabled={stepFn(value, true) > max}
disabled={stepFn(value, true) > max || disabled}
>
+
</Button>

View File

@@ -12,7 +12,7 @@ export function PersonFrontIcon({ width }: { width?: number }) {
<image
height={'105%'}
x="8.5%"
href="/images/front-standing-pose.png"
href="/images/front-standing-pose.webp"
></image>
{/* <path d="M84.53 224.074C83.953 230.874 88.569 266.874 90.951 280.984C92.085 287.671 95.195 298.565 94.076 304.349C92.476 312.411 92.017 322.843 92.896 328.918C93.451 332.607 95.196 349.618 92.696 355.845C91.389 359.108 88.996 375.832 88.996 375.832C82.756 391.587 86.278 390.812 86.278 390.812C88.21 393.183 91.519 390.998 91.519 390.998C92.1549 391.464 92.9388 391.682 93.7241 391.612C94.5094 391.542 95.2421 391.188 95.785 390.616C97.949 392.407 100.471 390.396 100.471 390.396C103.189 391.807 105.71 389.205 105.71 389.205C107.271 389.991 107.653 388.998 107.653 388.998C112.337 388.698 105.039 373.706 105.039 373.706C103.291 360.242 106.773 352.748 106.773 352.748C118.178 318.926 118.758 309.948 114.199 297.204C112.915 293.524 112.59 292.067 113.181 290.47C114.547 286.783 113.551 271.953 115.217 266.064C118.431 254.706 121.602 225.903 123.254 212.464C125.475 194.364 115.388 170.088 115.388 170.088C113.179 160.21 116.418 125.016 116.418 125.016C120.941 132.054 120.768 144.477 120.768 144.477C120.05 157.506 131.294 177.42 131.294 177.42C136.694 185.649 138.742 193.456 138.742 194.036C138.742 196.407 138.223 202.145 138.223 202.145L138.43 207.145C138.803 209.721 139.034 212.316 139.123 214.918C138.28 227.953 140.35 225.501 140.35 225.501C142.098 225.501 144.018 215.011 144.018 215.011C144.018 217.711 143.357 225.811 144.818 228.869C146.564 232.512 147.848 228.244 147.871 227.387C148.333 210.787 149.33 215.138 149.33 215.138C150.301 228.602 151.494 231.644 153.63 230.591C155.25 229.818 153.769 214.433 153.769 214.433C156.544 223.572 158.649 225.027 158.649 225.027C163.229 228.243 160.397 219.361 159.76 217.602C156.371 208.256 156.267 205.017 156.267 205.017C160.501 213.417 163.692 213.104 163.692 213.104C167.822 211.786 160.083 199.894 155.548 194.197C153.234 191.297 150.248 187.408 149.384 185.097C147.973 181.188 146.907 168.62 146.907 168.62C146.48 153.79 142.813 147.348 142.813 147.348C136.544 137.314 135.365 118.598 135.365 118.598L135.09 87C132.89 65.445 117.01 65.29 117.01 65.29C100.957 62.9 98.723 57.714 98.723 57.714C95.323 52.821 97.266 43.44 97.266 43.44C100.087 41.145 101.175 35.053 101.175 35.053C105.859 31.461 105.63 26.205 103.466 26.262C101.73 26.308 102.123 24.87 102.123 24.87C105.052 1.208 84.046 0 84.046 0H80.836C80.836 0 59.821 1.208 62.746 24.864C62.746 24.864 63.139 26.304 61.388 26.256C59.23 26.199 59.029 31.456 63.696 35.047C63.696 35.047 64.783 41.137 67.605 43.434C67.605 43.434 69.548 52.814 66.148 57.708C66.148 57.708 63.922 62.894 47.861 65.284C47.861 65.284 31.952 65.44 29.788 86.994L29.488 118.594C29.488 118.594 28.331 137.311 22.038 147.344C22.038 147.344 18.389 153.787 17.967 168.616C17.967 168.616 16.898 181.184 15.492 185.093C14.635 187.393 11.653 191.276 9.32001 194.193C4.74601 199.878 -2.94199 211.745 1.17101 213.1C1.17101 213.1 4.37901 213.412 8.59601 205.013C8.59601 205.013 8.50901 208.229 5.12501 217.598C4.46001 219.334 1.63201 228.217 6.21301 225.024C6.21301 225.024 8.33501 223.567 11.093 214.43C11.093 214.43 9.61301 229.815 11.26 230.588C13.412 231.642 14.586 228.599 15.56 215.135C15.56 215.135 16.56 210.787 17.017 227.384C17.04 228.241 18.295 232.509 20.049 228.866C21.529 225.811 20.864 217.727 20.864 215.008C20.864 215.008 22.764 225.498 24.536 225.498C24.536 225.498 26.624 227.95 25.767 214.915C25.628 212.786 26.375 208.415 26.467 207.142L26.667 202.142C26.667 202.142 26.146 196.417 26.146 194.033C26.146 193.442 28.194 185.646 33.594 177.417C33.594 177.417 44.826 157.494 44.103 144.474C44.103 144.474 43.947 132.051 48.47 125.013C48.47 125.013 51.68 160.205 49.505 170.085C49.505 170.085 39.405 194.358 41.629 212.461C43.27 225.937 46.435 254.702 49.657 266.061C51.34 271.938 50.345 286.761 51.693 290.467C52.301 292.076 51.982 293.558 50.675 297.201C46.141 309.947 46.718 318.925 58.123 352.745C58.123 352.745 61.633 360.239 59.859 373.703C59.859 373.703 52.572 388.695 57.239 388.995C57.239 388.995 57.604 389.988 59.182 389.202C59.182 389.202 61.703 391.802 64.427 390.393C64.427 390.393 66.95 392.407 69.106 390.613C69.6451 391.185 70.3751 391.54 71.158 391.61C71.9409 391.681 72.7225 391.462 73.355 390.995C73.355 390.995 76.664 393.227 78.63 390.809C78.63 390.809 82.123 391.584 75.904 375.829C75.904 375.829 73.522 359.129 72.209 355.842C69.709 349.621 71.474 332.57 72.009 328.915C72.87 322.806 72.409 312.398 70.835 304.346C69.684 298.575 72.801 287.679 73.952 280.981C76.317 266.881 80.952 230.881 80.373 224.071L82.288 224.743C83.0863 224.756 83.8692 224.522 84.53 224.074Z" /> */}
<circle

View File

@@ -0,0 +1,72 @@
import classNames from 'classnames';
import { Control, Controller } from 'react-hook-form';
export function Range({
control,
name,
values,
min,
max,
step,
// input props
...props
}: {
control: Control<any>;
name: string;
max: number;
min: number;
step: number;
values: { value: number; label: string; defaultValue?: boolean }[];
} & React.HTMLProps<HTMLInputElement>) {
return (
<Controller
control={control}
name={name}
render={({ field: { onChange, ref, name, value } }) => (
<label className="text-standard w-full text-center flex items-center flex-col">
<input
type="range"
className=" text-background-10 border-accent-background-30"
style={{
width: 'calc(88% - 0.5vw)',
}}
name={name}
ref={ref}
value={value}
onChange={onChange}
list={`${name}-datalist`}
min={min}
max={max}
step={step}
{...props}
/>
<datalist id={`${name}-datalist`} className="">
{values.map(({ value }, i) => (
<option key={i}>{value}</option>
))}
</datalist>
<div className="w-full flex flex-nowrap overflow-clip">
{Array((max - min) / step + 1)
.fill(0)
.map((_v, i) => {
const value = values.find(
({ value }) => i * step + min === value
);
return (
<span
key={i}
className={classNames(
'flex-1',
value?.defaultValue && 'text-status-success'
)}
>
{value?.label}
</span>
);
})}
</div>
</label>
)}
/>
);
}

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