Compare commits

...

407 Commits

Author SHA1 Message Date
loucass003
95daec6814 Pass server jar properly 2026-03-12 02:26:13 +01:00
lucas lelievre
43b104fcc3 Electron build fix round 2 (#1783) 2026-03-12 02:11:42 +01:00
loucass003
a33d6b1c1a Set better folder for electron storage 2026-03-11 20:45:37 +01:00
loucass003
cf67b9306b Remove electron test from ci 2026-03-11 19:23:56 +01:00
lucas lelievre
238c86ee98 Electron CI fixes (#1780) 2026-03-11 19:12:47 +01:00
loucass003
7f56209ca9 Fix windows zip 2026-03-11 16:57:33 +01:00
loucass003
a3e50cdc02 fix server.jar output path 2026-03-11 01:39:41 +01:00
loucass003
b7c43d8373 Fix release out 2026-03-11 01:23:38 +01:00
lucas lelievre
cadc13f2e0 Revert "Bump actions/upload-artifact from 6 to 7" (#1779) 2026-03-11 01:02:49 +01:00
dependabot[bot]
7965d2e081 Bump actions/upload-artifact from 6 to 7 (#1770)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 23:33:56 +01:00
Butterscotch!
b829a20169 Bump Gradle, plugin, and package versions (#1746)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2026-03-10 22:40:41 +01:00
loucass003
653b8b4014 Make macos build 2026-03-10 22:04:43 +01:00
lucas lelievre
a891203204 Switch to Electron (#1747)
Co-authored-by: Hannah Lindrob <hannahlindrob@ourlook.com>
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2026-03-10 21:38:02 +01:00
Sapphire
0236a05f26 Allow showing 'Up to date' version for third-party trackers (#1756) 2026-02-25 23:08:31 +01:00
Butterscotch!
28deb357da Revert TrackerResetsHandler & add comments (#1748) 2026-02-20 11:26:23 +01:00
jabberrock
4d93f87a01 Clarify AI policy on contributions (#1752) 2026-02-17 03:59:11 +03:00
Sapphire
88adfce242 Hide tracker firmware version when board type is unknown (#1721) 2026-02-09 21:58:36 +01:00
Sapphire
3d02795dbc Don't trigger timeout when Wi-Fi provisioning is done (#1725)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2026-02-09 21:57:56 +01:00
Sapphire
7ff50f78eb Don't ask for full reset on timeout with manual or saved mounting (#1727) 2026-02-02 18:06:38 +01:00
Sapphire
0e3aaf105c Display more accurate info for OpenVR devices (#1731) 2026-02-02 18:06:17 +01:00
sctanf
f638540886 TrackerBattery disable tooltip while charging (#1733) 2026-02-02 18:05:50 +01:00
Sapphire
343d69d690 Support feet mounting reset over Protobuf bridge (#1737) 2026-02-02 18:05:31 +01:00
H3
e2d7d354c6 Add ESP32-S2 to USB-Serial Accept-List (#1730)
Co-authored-by: unlogisch04 <98281608+unlogisch04@users.noreply.github.com>
2026-01-29 22:54:37 +03:00
sctanf
cc6f297b92 Re-add missing battery runtime estimate to DataFeedBuilder (#1732) 2026-01-29 14:00:18 +04:00
H114514191981
2add43e71a add CH343 support (#1568)
Co-authored-by: unlogisch04 <98281608+unlogisch04@users.noreply.github.com>
2026-01-28 10:39:25 +02:00
Sapphire
0a493ac345 Fix scheduled resets triggering immediately when delay is unspecified (#1724) 2026-01-25 07:08:25 +02:00
Sapphire
17bb2703d1 Fix unassigned HMD flightlist step never showing (#1723) 2026-01-24 07:34:37 +02:00
Sapphire
f0981bf709 ProtocolAPI: Initialise RPCHandler after other members (#1722) 2026-01-24 01:17:25 +03:00
peelz
99de554c18 Add delay param to ResetRequest (#1712) 2026-01-23 03:38:08 +04:00
Sapphire
f95a4d56d7 Add feet mounting reset keybind (#1717) 2026-01-23 03:14:27 +04:00
Sapphire
1df3c9d322 Hide devices with unknown board type in DIY firmware tool (#1718) 2026-01-23 03:14:12 +04:00
sctanf
e0838cce6c Battery indicators (#1714) 2026-01-23 03:13:36 +04:00
Sapphire
e25d3201c2 Fix translation key for Autobone processing text (#1719) 2026-01-23 03:12:18 +04:00
Sapphire
5d14f14139 Fix alignment of neck and head dots in tracker assignment page (#1720) 2026-01-23 03:11:37 +04:00
Eiren Rain
09e81f5ace Fix trackers table having an extra header 2026-01-19 20:29:23 +01:00
Maya
8f57ef2de4 Migrate core/dev.slimevr.protocol to Kotlin (#1688)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2026-01-14 15:50:04 +01:00
loucass003
ea242960b3 Lint 2026-01-12 21:34:19 +01:00
Eiren Rain
35ac14a7de Packet loss (#1687)
Co-authored-by: loucass003 <loucass003@gmail.com>
2026-01-12 21:22:53 +01:00
Aed
690a8b5c6e add manual mounting to stay alligned setup (#1692) 2026-01-08 02:16:08 +01:00
sctanf
255b8b2865 Detect and use tracker PID during HID enumeration (#1556) 2026-01-07 10:13:33 +01:00
Eiren Rain
e27ec63985 Accept fixed tracker accel (#1706) 2026-01-07 08:57:24 +03:00
Butterscotch!
9f8be6551c Accept fixed tracker accel 2026-01-06 22:51:17 -05:00
lucas lelievre
f09cd687c7 Make ignore buttons be session only in checklist (#1675) 2026-01-05 16:21:36 +01:00
lucas lelievre
686499f8dd fix fw tool source (#1690) 2026-01-05 16:20:45 +01:00
Butterscotch!
a3bcc61892 Fix race conditions from Play Store (#1696) 2025-12-26 10:28:39 +01:00
sctanf
faf70c9a39 Add nRF consts (#1685) 2025-12-26 09:26:32 +01:00
sctanf
2aa8d3a056 hid add "unknown" runtime state (#1693) 2025-12-25 16:41:46 +01:00
Meia
23df46ca33 Amplify UI sounds by 8dB (#1694) 2025-12-25 16:41:08 +01:00
lucas lelievre
8407f52777 Better columns width for table view (#1691) 2025-12-19 00:24:28 +01:00
lucas lelievre
b44dcaa9c2 Runtime (#1678) 2025-12-19 00:11:10 +01:00
sctanf
ff0d823aff Merge remote-tracking branch 'upstream/main' into runtime 2025-12-18 10:46:44 -06:00
sctanf
2e8bfa5373 Update solarxr-protocol 2025-12-18 02:35:33 -06:00
sctanf
87940ddd03 TrackerBattery tooltip remove classes 2025-12-18 00:04:07 -06:00
sctanf
6208979ce9 TrackerBattery battery level tooltip if not shown 2025-12-17 23:48:00 -06:00
lucas lelievre
9a27fb1320 separate firmware date from version (#1650) 2025-12-18 06:46:10 +01:00
sctanf
53129328d0 Update solarxr-protocol 2025-12-17 22:59:24 -06:00
lucas lelievre
2d79c5a0e9 Add @ImSapphire as code owner for i18n directory 2025-12-18 05:03:19 +01:00
sctanf
74f5a92ce1 fw date default 2025-12-15 09:16:47 -06:00
sctanf
146930279c add firmware date to new field 2025-12-15 09:16:47 -06:00
sctanf
0c33579858 HIDCommon don't show firmware date in version 2025-12-15 09:16:46 -06:00
sctanf
c9783d097b show voltage in less situations 2025-12-15 09:16:30 -06:00
sctanf
d3eafb8d06 only show runtime if nonzero 2025-12-15 09:16:30 -06:00
sctanf
09d44b51d6 linter borked it 2025-12-15 09:16:30 -06:00
sctanf
cf357e71f5 lint 2025-12-15 09:16:29 -06:00
sctanf
122efacc52 show runtime in gui 2025-12-15 09:16:29 -06:00
sctanf
7f536528d0 Parse runtime from HID tracker 2025-12-15 09:16:28 -06:00
Eiren Rain
3982249ebf Bump actions/upload-artifact from 5 to 6 (#1683) 2025-12-15 17:53:59 +03:00
Eiren Rain
388bea2e72 Bump actions/download-artifact from 6 to 7 (#1684) 2025-12-15 17:53:41 +03:00
dependabot[bot]
921a760817 Bump actions/download-artifact from 6 to 7
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 14:12:16 +00:00
dependabot[bot]
55bcec4dda Bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 14:12:07 +00:00
Eiren Rain
bb08e8dc6a DesktopHID only warn if device cannot open (#1682) 2025-12-15 11:08:44 +03:00
sctanf
a82f950eb6 DesktopHID only warn if device cannot open 2025-12-14 20:52:14 -06:00
Eiren Rain
e2dbaab8ba hid packet 6 and packet 7 (data2) (#1679) 2025-12-14 10:25:49 +03:00
sctanf
3611bb5cc7 hid packet 6 and packet 7 (data2)
this is the worst meme ever
2025-12-13 23:59:36 -06:00
lucas lelievre
f01f599526 New Pontoon translations (#1672) 2025-12-11 20:39:52 +01:00
SlimeVR-bot
6847526ce8 Pontoon/GUI: Update Simplified Chinese (zh-Hans)
Co-authored-by: pwnint <ahndkp@gmail.com> (zh-Hans)
Co-authored-by: 寂听 <jiting@jtcat.com> (zh-Hans)
Co-authored-by: nekomona <nekomona@163.com> (zh-Hans)
2025-12-11 19:03:14 +00:00
SlimeVR-bot
c5f28a6a01 Pontoon/GUI: Update Simplified Chinese (zh-Hans)
Co-authored-by: 寂听 <jiting@jtcat.com> (zh-Hans)
Co-authored-by: Joshh <josh229411@icloud.com> (zh-Hans)
Co-authored-by: pwnint <ahndkp@gmail.com> (zh-Hans)
Co-authored-by: nekomona <nekomona@163.com> (zh-Hans)
2025-12-11 19:03:14 +00:00
lucas lelievre
86d7d5fdc6 Fix tracker set selection (#1668) 2025-12-11 20:02:52 +01:00
lucas lelievre
781f4d489a Better Android signing & Google Play bundle building (#1670) 2025-12-11 19:56:07 +01:00
jabberrock
5a42426048 [Stay Aligned] Fix broken tracker rotations (#1669) 2025-12-11 07:26:12 -05:00
Butterscotch!
44643f2cc6 Rename Google Play artifact 2025-12-11 07:06:02 -05:00
Butterscotch!
d902515f4f Change message 2025-12-11 06:30:40 -05:00
Butterscotch!
f9df08aefd Include all Android tasks for signing & Play CI 2025-12-11 06:27:20 -05:00
Butterscotch!
28b18e0d42 Handle KeyStore secret directly in Gradle 2025-12-11 06:27:20 -05:00
loucass003
247c063791 Lint 2025-12-11 10:11:16 +01:00
lucas lelievre
ab248287cc Update gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-11 09:44:33 +01:00
lucas lelievre
9a26fc98b8 Update gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-11 09:44:28 +01:00
loucass003
16a2ac8474 Lint 2025-12-11 09:36:02 +01:00
loucass003
c4acf4cc41 Better selection + only set the prefered once for a new user 2025-12-11 09:30:21 +01:00
loucass003
4b0a2d27d0 Fix tracker set selection 2025-12-11 09:19:25 +01:00
lucas lelievre
2c6708bfe7 Don't show fw update icon when update is blocked (#1667) 2025-12-11 08:35:46 +01:00
Sapphire
2880623cce Fix fw update icon low battery warning 2025-12-11 00:30:54 -06:00
Sapphire
17400ca337 Don't show fw update icon when update is blocked 2025-12-11 00:24:06 -06:00
lucas lelievre
3276f6db7a Fix tooltips on table and reset buttons (#1666) 2025-12-11 06:21:56 +01:00
loucass003
db59537adc Fix tooltips on table and reset buttons 2025-12-11 06:17:05 +01:00
lucas lelievre
4f1fd82923 Tooltip: Better handling of disabled buttons (#1665) 2025-12-11 04:02:12 +01:00
loucass003
f6ccb5970f Lint 2025-12-11 03:57:06 +01:00
loucass003
c937b91267 Better handling of disabled buttons 2025-12-11 03:54:23 +01:00
lucas lelievre
2d1f32b950 Disable R8 optimization for Android (#1664) 2025-12-11 03:28:49 +01:00
Butterscotch!
8acba98bcc Temporarily disable Proguard optimization 2025-12-10 21:23:38 -05:00
lucas lelievre
d7ba1b8335 Fix mobile tooltip (#1662) 2025-12-11 03:13:13 +01:00
lucas lelievre
d20e9bfd94 Fix tiertiary dropdown text color (#1663) 2025-12-11 02:56:37 +01:00
loucass003
3d54a86bd8 Fix tiertiary dropdown text color 2025-12-11 02:54:22 +01:00
loucass003
c9883f5eb4 Fix mobile tooltip 2025-12-11 02:28:09 +01:00
lucas lelievre
8bd36fac25 Increase accent text contrast for ace theme (#1656) 2025-12-11 02:26:43 +01:00
lucas lelievre
ab4d507d9f Snep theme (#1659) 2025-12-11 02:26:26 +01:00
lucas lelievre
9efb985260 Sentry fixes (#1658) 2025-12-11 02:26:10 +01:00
loucass003
2c2c227187 Fix scaled proportions event not triggering 2025-12-11 02:24:00 +01:00
sctanf
63cca6756e lint 2025-12-10 19:07:28 -06:00
lucas lelievre
b0d7fefa5e Only skip server start when CLI arg is passed (#1660) 2025-12-11 02:02:57 +01:00
Butterscotch!
35a5cb47d9 Disable Android obfuscation 2025-12-10 19:07:54 -05:00
lucas lelievre
dfc4383271 Update gui/src/hooks/app.ts
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-10 21:58:47 +01:00
lucas lelievre
185431a733 Update gui/src/hooks/tracking-checklist.ts
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-10 21:58:35 +01:00
Sapphire
5b68a01186 Only skip server start when CLI arg is passed 2025-12-10 14:36:56 -06:00
lucas lelievre
2c4dd4085f Remove Ktor dependency (#1655) 2025-12-10 21:34:35 +01:00
sctanf
4d3ff0e9c9 snep 2025-12-10 11:42:16 -06:00
loucass003
ee6182bb23 lint 2025-12-10 17:15:07 +01:00
loucass003
9576d6e034 Sentry fixes 2025-12-10 17:12:25 +01:00
lucas lelievre
227ddc87d2 Increment Android version code and log config (#1657) 2025-12-10 13:51:46 +01:00
Butterscotch!
b3b7730b2c Increment Android version code and log config 2025-12-10 07:14:54 -05:00
Butterscotch!
075a155f13 Increase accent text contrast for ace theme 2025-12-10 05:31:43 -05:00
Butterscotch!
79a3b66e43 Fix formatting 2025-12-10 05:08:29 -05:00
lucas lelievre
fe58968718 New Pontoon translations (#1654) 2025-12-10 09:38:53 +01:00
Butterscotch!
276e73e724 Remove Ktor dependency 2025-12-10 00:39:27 -05:00
SlimeVR-bot
01dd916498 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 20:00:05 +00:00
SlimeVR-bot
6ebf9792ac Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 16:30:06 +00:00
SlimeVR-bot
02f8195b5b Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
7b4946f41d Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
5f4c90128f Pontoon/GUI: Update German (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
6a2a30e319 Pontoon/GUI: Update Dutch (nl), German (de)
Co-authored-by: Nola <stefsecretdesecret@gmail.com> (nl)
Co-authored-by: Joshh <josh229411@icloud.com> (nl)
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com> (nl)
Co-authored-by: Smeltie <martijnklerks123@gmail.com> (nl)
Co-authored-by: C0D3 M4513R <mail@c0d3m4513r.com> (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: stephaniegoldschmidt9 <stephaniegoldschmidt9@gmail.com> (de)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
8a5f27e8d9 Pontoon/GUI: Update 28 localizations 2025-12-09 15:26:14 +00:00
lucas lelievre
199bec40e1 Build and sign release APK (#1653) 2025-12-09 16:25:49 +01:00
lucas lelievre
9d32220275 Merge branch 'main' into bscotch/android-signing-ci 2025-12-09 14:51:16 +01:00
lucas lelievre
8b689d6df8 Android fixes & update (#1648) 2025-12-09 14:50:59 +01:00
Butterscotch!
490005ae69 Merge remote-tracking branch 'upstream/main' into bscotch/android-fixes 2025-12-09 07:53:46 -05:00
Butterscotch!
575778ab85 Don't fail for keystore 2025-12-09 07:25:54 -05:00
Butterscotch!
85ee162d58 Remove unused import 2025-12-09 07:18:26 -05:00
Butterscotch!
712fa6a1ad Avoid Android Gradle project for desktop tests 2025-12-09 02:55:12 -05:00
Butterscotch!
819481adcd Early fail for keystore issues 2025-12-09 02:36:21 -05:00
Butterscotch!
bc26227443 Build and sign release with Gradle 2025-12-09 02:36:21 -05:00
lucas lelievre
ac43ca947e New Pontoon translations (#1646) 2025-12-09 05:25:55 +01:00
SlimeVR-bot
4451d8aaf4 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
79a9e15c5a Pontoon/GUI: Update Thai (th), German (de)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Cusmo84 <saopob@gmail.com> (th)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
5403cdb28e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
272f37374e Pontoon/GUI: Update Thai (th), German (de)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: Zahnatom <zahnatomletsplay@gmail.com> (de)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
4147578dc8 Pontoon/GUI: Update Thai (th), German (de)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz> (de)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
65bd03c272 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
4835e89c5f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
7ea4516545 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
2f208fe08a Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
db584baed3 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
1d41627fb1 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
63b8d4c8cb Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
8e60ecd070 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
6ee173791e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
b9d72c0a40 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
36b2e01d88 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
569315f6dc Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
a4fab8afed Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
d1e3c35693 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
d12f3c4854 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
Co-authored-by: ReDoX <redox01@o2.pl> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
e32903f36f Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
ab126c336c Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
79a6d62506 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
08f691b5b6 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
b12632fd1a Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
Co-authored-by: ReDoX <redox01@o2.pl> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
54f3ab4634 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
415168d040 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
6be313144e Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
98e571c94b Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
1561c464e9 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
4992d599aa Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
lucas lelievre
90b3dfe0db v18.0rc1 fixes (#1651) 2025-12-09 05:25:07 +01:00
lucas lelievre
ab87c5b1e8 Update gui/src/hooks/crypto.ts
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-12-09 04:46:35 +01:00
lucas lelievre
3ee6c065cf Disable root overscroll (#1652) 2025-12-09 04:41:25 +01:00
lucas lelievre
d1249d2b44 Apply suggestions from code review
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-09 04:37:12 +01:00
Butterscotch!
94a70d3b2e Update Ktor to latest 2.3.X version 2025-12-08 21:50:53 -05:00
Butterscotch!
b67162eb43 Revert Ktor version update 2025-12-08 21:47:00 -05:00
Lasse Lauwerys
4390d35e00 Disable root overscroll 2025-12-09 02:37:13 +01:00
lucas lelievre
19126c0d4d Update gui/public/i18n/en/translation.ftl
Co-authored-by: Maya <jovannmc@femboyfurry.net>
2025-12-08 09:51:43 +01:00
lucas lelievre
0cf0f6cb49 Update gui/public/i18n/en/translation.ftl
Co-authored-by: Maya <jovannmc@femboyfurry.net>
2025-12-08 09:51:36 +01:00
lucas lelievre
d3d3838761 Update gui/src/components/onboarding/pages/WifiCreds.tsx
Co-authored-by: Maya <jovannmc@femboyfurry.net>
2025-12-08 09:47:15 +01:00
loucass003
4984026f6b Lint 2025-12-08 09:28:09 +01:00
loucass003
bb7e825c41 Remove confusion with dongles in the Connect page 2025-12-08 09:25:03 +01:00
loucass003
bc96ddd555 More fixes and metrics 2025-12-08 05:40:33 +01:00
loucass003
ec85284f78 Lint 2025-12-08 05:31:57 +01:00
loucass003
867287e740 More sentry metrics 2025-12-08 05:25:07 +01:00
loucass003
2e93187021 More sentry metrics 2025-12-08 05:12:05 +01:00
loucass003
2a19d67974 Make sentry report anonymous unique user ids so we can count release adoption 2025-12-08 04:28:00 +01:00
loucass003
176f7e4271 Round one of fixes 2025-12-08 03:39:49 +01:00
Butterscotch!
3a6c60d912 Only get GUI port once 2025-12-07 05:23:03 -05:00
Butterscotch!
066c28adb4 Use randomized Android GUI port 2025-12-07 05:20:13 -05:00
Butterscotch!
364ed3209c Prevent Android GUI race condition 2025-12-07 05:12:56 -05:00
Butterscotch!
dab6ec28af Simpler bytesSkipped check 2025-12-07 04:53:09 -05:00
Butterscotch!
b221250ba7 More Gradle cleanup 2025-12-07 04:48:09 -05:00
Butterscotch!
215635634f Update Android versions & Proguard settings 2025-12-07 04:43:15 -05:00
Butterscotch!
184133a613 Fix OTA upload socket not being closed 2025-12-07 04:22:01 -05:00
Butterscotch!
32248c75cf Fix Android SDK level errors 2025-12-07 04:21:37 -05:00
lucas lelievre
0671c0e89f New Pontoon translations (#1631) 2025-12-06 00:38:06 +01:00
SlimeVR-bot
2acadbe11b Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
5688c71d2e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
d3c89618f1 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
478ffdb611 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
0b7e5781d5 Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:48 +00:00
SlimeVR-bot
446a53277e Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:48 +00:00
SlimeVR-bot
b2acc1b28d Pontoon/GUI: Update French (fr)
Co-authored-by: lucas <llelievr2@gmail.com> (fr)
Co-authored-by: Naoto <naotomuramasa@gmail.com> (fr)
Co-authored-by: Joshh <josh229411@icloud.com> (fr)
Co-authored-by: Arya <arya.allermoz@gmail.com> (fr)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
27d2fff725 Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:48 +00:00
SlimeVR-bot
0c1f9b3e25 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
cfa4039e9e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
7b62b21e6f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
cc3af4ae7e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
09c44fc935 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
92f441d51f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
d5912513ff Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
6417bf3167 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
5bf0694734 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
7b95837663 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
40067df800 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
c5546d71d2 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
307c250240 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
ca1afaa0aa Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
809a0b81b2 Pontoon/GUI: Update Thai (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
01d5456f9f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
b81605dcf9 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
bb3be2fd17 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
b34da7dd3e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
0cc97ba9f8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
a754a24d3f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
df209436c8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
6abd06d435 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
43f6a9fac9 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
e07a152d46 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
e73dcad9a8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
87de27e4ec Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
e851abfd4f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
561dfd2d2e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
4e716ac53b Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
12cd7908ef Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
1e1cb435a2 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
0bd6d4fdbd Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
9f2bd7f2e7 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
a6c5de6ef3 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
86046993b8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
f7106833ed Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
ef35b93569 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
2f5649a90a Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Cusmo84 <saopob@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
efd07a9afb Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
2fad9b2563 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
8d2b74b254 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: Cusmo84 <saopob@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: yuyavx <yuyavxvtuber@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
3f1a614ac6 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
326284853c Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
3ae337b3d8 Pontoon/GUI: Update Thai (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
fbef209d2d Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
544b060691 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
63bceb49ca Pontoon/GUI: Update Latinamerican Spanish (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
be9265cb97 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
c7286f8e48 Pontoon/GUI: Update German (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
a8e76e9198 Pontoon/GUI: Update German (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
be09af8ca6 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
d47533db08 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
c34944912b Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
67b764026f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
9b74665e94 Pontoon/GUI: Update Thai (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
855d708464 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
760ecc6ae6 Pontoon/GUI: Update Thai (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
2f4bcb17b6 Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:47 +00:00
SlimeVR-bot
78e7517363 Pontoon/GUI: Update Latinamerican Spanish (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
27e4af57f1 Pontoon/GUI: Update Latinamerican Spanish (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
1d029a6c3a Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
Co-authored-by: 白貓 <yen.max@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
fe547cf56b Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
9bddff99d8 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
11fc8a3fa7 Pontoon/GUI: Update Spain Spanish (es-ES)
Co-authored-by: Baddie <baddie@femboy.gay> (es-ES)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
075ca4715e Pontoon/GUI: Update French (fr)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
991299b4fc Pontoon/GUI: Update French (fr)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
2025-12-05 23:37:47 +00:00
lucas lelievre
84d85c29b7 Before RC fixes (#1644)
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-06 00:37:23 +01:00
lucas lelievre
5f1167f0de Remove the need for restart before OTA on newer firmware (#1627) 2025-12-05 22:12:03 +01:00
loucass003
d74b26fbda Lint 2025-12-05 20:08:02 +01:00
loucass003
838a60172d Make version check for 18.0 switch 2025-12-05 20:04:02 +01:00
lucas lelievre
d6c05d2f9c Improved tracker assignment ui (#1643) 2025-12-05 18:53:53 +01:00
lucas lelievre
25e74767be Remove useless onboarding pages (#1642) 2025-12-05 18:18:15 +01:00
lucas lelievre
742a3fcafe Small UI fixes (#1641) 2025-12-05 18:17:51 +01:00
lucas lelievre
45f0e14582 Make reset sound loop better when more than 3s (#1640) 2025-12-05 18:17:19 +01:00
loucass003
937c810f7a Fix solarxr 2025-12-05 10:15:08 +01:00
lucas lelievre
80a68e9a37 Scaled proportions rework (#1636)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-05 10:02:59 +01:00
loucass003
ce6b3439c9 Revert "New tracker assignment + Fix concurency error with tap"
This reverts commit 12dd1cb314.
2025-12-05 06:42:49 +01:00
loucass003
12dd1cb314 New tracker assignment + Fix concurency error with tap 2025-12-05 06:41:01 +01:00
Sapphire
d420bf0007 Update en translation (#1639) 2025-12-03 03:26:23 +01:00
Butterscotch!
8e885a8890 Simplify reset code (again) (#1595)
Co-authored-by: loucass003 <loucass003@gmail.com>
2025-12-02 18:26:03 +01:00
lucas lelievre
a5160fbb8a Server Guards: Mounting timeout and yaw reset guard (#1628)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
2025-12-02 15:13:54 +01:00
lucas lelievre
2e1ec07b23 Session flightlist (#1407)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
2025-12-02 14:49:45 +01:00
peelz
0dc78a7e72 Skip starting server from GUI when server is already running (#1612) 2025-12-02 14:03:08 +01:00
dependabot[bot]
ebd7712862 Bump actions/checkout from 5 to 6 (#1633)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 13:48:39 +01:00
Erimel
25beefd973 Check driver version (#1618) 2025-12-02 13:47:55 +01:00
Aed
2ee65a9bd2 Stay Aligned UI Improvements (#1632) 2025-11-24 11:05:17 +01:00
Sapphire
d986a5e116 Fix race condition in DataFeedHandler::sendDataFeedUpdate (#1621)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-11-22 12:13:47 -05:00
Eiren Rain
8018ce7283 Android fixes (#1629) 2025-11-20 13:34:39 +03:00
Butterscotch!
a5cdbffa4c Fix packet hex formatting on Android 2025-11-20 02:30:16 -05:00
Butterscotch!
3b690eac53 Fix activity context 2025-11-20 02:09:33 -05:00
Butterscotch!
1cdca18538 Redo v0.17.0 release 2025-11-20 02:09:33 -05:00
lucas lelievre
6d77045aa1 Better flakes / deprecate shell.nix (#1626) 2025-11-20 07:00:42 +01:00
Eiren Rain
b02234f9fc New Pontoon translations (#1625) 2025-11-18 23:28:50 +03:00
SlimeVR-bot
eb10f07711 Pontoon/GUI: Update French (fr), German (de)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
Co-authored-by: C0D3 M4513R <mail@c0d3m4513r.com> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: bongocatlifelol <bongocatlifelol@gmail.com> (de)
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz> (de)
Co-authored-by: stephaniegoldschmidt9 <stephaniegoldschmidt9@gmail.com> (de)
2025-11-17 19:25:36 +00:00
SlimeVR-bot
f15a503936 Pontoon/GUI: Update 28 localizations
Co-authored-by: Bader <baq100@gmail.com> (ar)
Co-authored-by: Vaso <dudysoso1@gmail.com> (ar)
Co-authored-by: FennT <0094falcon@gmail.com> (ar)
Co-authored-by: nekomona <nekomona@163.com> (zh-Hans)
Co-authored-by: pwnint <ahndkp@gmail.com> (zh-Hans)
Co-authored-by: ZZNYJIDI <zznyjidi@hotmail.com> (zh-Hans)
Co-authored-by: Yingxue <a1175815821@163.com> (zh-Hans)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
Co-authored-by: JaydenHa <jayden@jaydenha.uk> (zh-Hant)
Co-authored-by: Cheezik <cheatistv@email.cz> (cs)
Co-authored-by: Jeeko <d.safarik06@gmail.com> (cs)
Co-authored-by: viwas45hu978ot <viwashuot@gmail.com> (da)
Co-authored-by: Nola <stefsecretdesecret@gmail.com> (nl)
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com> (nl)
Co-authored-by: SaabAerospace <SaabAerospace@hotmail.com> (nl)
Co-authored-by: siofrain <maradaichides@gmail.com> (fi)
Co-authored-by: Iris <vakotoneva@gmail.com> (fi)
Co-authored-by: SlimePuppy <minouviolet2007+github@gmail.com> (fr)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
Co-authored-by: the1pigeon <the1pigeon@gmail.com> (fr)
Co-authored-by: martin <martin@dolez.fr> (fr)
Co-authored-by: rascrifice <noppyfloppy69@gmail.com> (fr)
Co-authored-by: C0D3 M4513R <mail@c0d3m4513r.com> (de)
Co-authored-by: dennis.staudacher <dennis.staudacher@icloud.com> (de)
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz> (de)
Co-authored-by: Jatoxo <jatoxo123@gmail.com> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: Kyra <sebastianzockt@gmail.com> (de)
Co-authored-by: stephaniegoldschmidt9 <stephaniegoldschmidt9@gmail.com> (de)
Co-authored-by: odydoubouridis <odydoubouridis@gmail.com> (el)
Co-authored-by: origalili123 <origalili123@gmail.com> (he)
Co-authored-by: Daniel <danielkariv98@gmail.com> (he)
Co-authored-by: Etch9 <mario.mazzara30@gmail.com> (it)
Co-authored-by: namakeingo <namakeingo@gmail.com> (en-x-owo, it)
Co-authored-by: infopcgood <sshs_student_412@outlook.kr> (ko)
Co-authored-by: Kamilake <exjang0@gmail.com> (ko)
Co-authored-by: abb128 <abb128@sapples.net> (lt)
Co-authored-by: eivind.eriksen <eivind.eriksen08@gmail.com> (nb-NO)
Co-authored-by: darkowsness <darkowsness@gmail.com> (nb-NO)
Co-authored-by: ReDoX <redox01@o2.pl> (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
Co-authored-by: Tailsy <tailsy13@gmail.com> (pl)
Co-authored-by: michael091 <michael_m1@o2.pl> (pl)
Co-authored-by: mygz <miguelmiguelmnogueira@gmail.com> (pt-BR)
Co-authored-by: Sander Fernandes <sander@novatrackers.com.br> (pt-BR)
Co-authored-by: Gaabbu <gabrielsonada@outlook.com.br> (pt-BR)
Co-authored-by: lindetinn <Kuzmenko3g@gmail.com> (ru)
Co-authored-by: Flar <kani.dragonflar@gmail.com> (ru)
Co-authored-by: SummerArtz <summerpzmail@gmail.com> (ru)
Co-authored-by: Sergey <serezhenka.soldatov.2020@mail.ru> (ru)
Co-authored-by: Graphite0 <olegek.permjakov@gmail.com> (ru)
Co-authored-by: Clay <code.clayt@gmail.com> (ru)
Co-authored-by: viberbread <panfilov.iva2015@yandex.ru> (ru)
Co-authored-by: Alejandro <moctezumaalejandro25@gmail.com> (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
Co-authored-by: Uriel <imurx@proton.me> (es-419, es-ES, sv-SE)
Co-authored-by: Andokai <da.nova@duocuc.cl> (es-419)
Co-authored-by: Renka <lunastarletvr@gmail.com> (es-419, es-ES)
Co-authored-by: Baddie <baddie@femboy.gay> (es-ES)
Co-authored-by: adriangoldenhero <adriangoldenhero@gmail.com> (es-ES)
Co-authored-by: LavAriz <thecakegirl092@gmail.com> (es-ES)
Co-authored-by: cabbemannen <cabbemannen10@gmail.com> (sv-SE)
Co-authored-by: catdrout <c4tdrout@protonmail.com> (sv-SE)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: rwrdetenrl <NightAniMer@hotmail.com> (tr)
Co-authored-by: HappyTownCats <HappyTownCats@gmail.com> (uk)
Co-authored-by: Shans <KaluhinShans@gmail.com> (uk)
Co-authored-by: MenacingExiler <menacingexiler@gmail.com> (vi)
Co-authored-by: Dau <unnamedau@nowhatethis.com> (en-x-owo)
Co-authored-by: beq <beqbdean@gmail.com> (en-x-owo)
Co-authored-by: Mini <alexanderawatson64@gmail.com> (en-x-owo)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com> (en-x-owo)
2025-11-17 19:25:36 +00:00
lucas lelievre
c580aecb11 Refactor pull request creation command in workflow 2025-11-17 20:25:13 +01:00
lucas lelievre
81879afa32 Add a cute note to the README 2025-11-17 19:50:44 +01:00
lucas lelievre
1cb4edb651 Fix pontoon ci (#1624) 2025-11-17 19:14:04 +01:00
Sapphire
26e04db950 Fix 'Filter Slimes and HMD' dev setting only showing OpenVR HMD (#1614) 2025-11-10 11:25:03 +01:00
Eiren Rain
fade902fc0 Better fw update cache handling (#1617) 2025-11-08 02:41:48 +03:00
loucass003
e072fc75c6 Do not show release if no deploy file 2025-11-06 02:06:27 +01:00
loucass003
94da52c0e4 Better fw update cache handling 2025-11-06 02:05:08 +01:00
lucas lelievre
56c3290e1c Add digest to fw update files (#1616)
Co-authored-by: gorbit99 <gorbitgames@gmail.com>
2025-11-06 01:07:26 +01:00
gorbit99
e0f1ad8d4f Various rc fixes (#1615) 2025-11-05 19:12:28 +01:00
kruemmelbande
bd4ec047c3 fix linux safe mode icon (#1613) 2025-11-03 22:48:56 +01:00
lucas lelievre
e3b3cb77d1 Fix linux ci (#1611) 2025-11-03 20:22:54 +01:00
lucas lelievre
5a8804630b Fix lint (#1610) 2025-11-03 19:37:19 +01:00
Uriel
0df8b938d8 Update spotless and ktlint (#1528)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: loucass003 <loucass003@gmail.com>
2025-11-03 18:52:58 +01:00
lucas lelievre
7180f4eaa7 Make socket recover if slimevr crashed (#1604) 2025-11-03 18:01:25 +01:00
gorbit99
2a55617e3a Enable text input on the serial console page (#1562)
Co-authored-by: loucass003 <loucass003@gmail.com>
2025-11-03 16:20:59 +01:00
gorbit99
1777d584fe Rework Dropdown component (#1606) 2025-11-03 14:55:03 +01:00
unlogisch04
edd9ea02e1 Update jSerialComm to 2.11.3 (#1608) 2025-11-01 21:16:47 +01:00
sctanf
119d9158c0 Calibration tutorial fix settling (#1521)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
2025-11-01 00:42:42 +01:00
gorbit99
0e073a01fd Update eslint and add stylistic/jsx-self-closing-comp (#1607) 2025-11-01 00:41:53 +01:00
lucas lelievre
4e9fdb206c Firmware tool V2 (#1585) 2025-10-31 18:16:13 +01:00
Collin
0a08d57426 Positional tracker support (#920)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-31 17:54:07 +01:00
Butterscotch!
c316c50f30 Fix tracker drift logging (#1588) 2025-10-31 17:43:32 +01:00
Uriel
81716be512 Migrate to tauri logger (#1537)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-31 17:42:13 +01:00
Polymoria
1d273ac651 Smaller paddings in alerts (#1450) 2025-10-31 17:40:23 +01:00
sctanf
7dc815cd86 ManualProportions do not wrap height text (#1529) 2025-10-31 17:35:14 +01:00
Butterscotch!
d6f771e6b2 BVH rewrite (#1542) 2025-10-31 17:20:08 +01:00
Sapphire
3aeb0569b1 Show startup error when tracker server port is in use (#1596) 2025-10-31 17:17:56 +01:00
Summer
bf2c5d59ab Add Positional UDP packet (#1546) 2025-10-31 17:16:30 +01:00
Butterscotch!
94b2309945 Delete target web-gui before copying (#1573)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-31 17:12:12 +01:00
kruemmelbande
e81c9c5b2d add safe mode .desktop file (#1600) 2025-10-29 19:40:21 +01:00
Eiren Rain
900bdc03ca Bump actions/setup-node from 5 to 6 (#1591) 2025-10-27 18:45:09 +03:00
Eiren Rain
5a73ad77f2 Bump awalsh128/cache-apt-pkgs-action from 1.5.3 to 1.6.0 (#1592) 2025-10-27 18:45:00 +03:00
dependabot[bot]
1c6a29940a Bump actions/setup-node from 5 to 6
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:31:25 +00:00
dependabot[bot]
adb0ae969d Bump awalsh128/cache-apt-pkgs-action from 1.5.3 to 1.6.0
Bumps [awalsh128/cache-apt-pkgs-action](https://github.com/awalsh128/cache-apt-pkgs-action) from 1.5.3 to 1.6.0.
- [Release notes](https://github.com/awalsh128/cache-apt-pkgs-action/releases)
- [Commits](https://github.com/awalsh128/cache-apt-pkgs-action/compare/v1.5.3...v1.6.0)

---
updated-dependencies:
- dependency-name: awalsh128/cache-apt-pkgs-action
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:30:41 +00:00
Eiren Rain
ae5783ce9f Bump actions/download-artifact from 5 to 6 (#1599) 2025-10-27 18:25:32 +03:00
Eiren Rain
4408b36ffb Bump actions/upload-artifact from 4 to 5 (#1598) 2025-10-27 18:25:05 +03:00
dependabot[bot]
8708778596 Bump actions/download-artifact from 5 to 6
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:24:31 +00:00
dependabot[bot]
b045c88158 Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:00:37 +00:00
Eiren Rain
0235660642 Fix PFR extension being used for PFS file (#1593) 2025-10-22 20:49:46 +03:00
Butterscotch!
3d90d22b56 Fix PFR extension being used for PFS file 2025-10-21 23:05:21 -04:00
dependabot[bot]
7ac3993543 Bump gradle/actions from 4 to 5 (#1582)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-18 03:43:06 +02:00
Erimel
79294e95c7 Fix network adapter status vars (#1589) 2025-10-18 03:35:18 +02:00
gorbit99
2e9256a630 Remove the GET INFO button (#1587) 2025-10-17 17:03:43 +02:00
gorbit99
0e0992e6d4 Don't allow the same value for port in and port out (#1563)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-16 06:08:34 +02:00
gorbit99
5be7896d8b Add pausing to the serial console (#1569)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-16 05:45:46 +02:00
lucas lelievre
25c659ba03 Revert "Progress"
This reverts commit e38a4b40b5.
2025-10-10 19:02:50 +02:00
lucas lelievre
e38a4b40b5 Progress 2025-10-10 19:02:28 +02:00
Eiren Rain
de16acbcf4 New Pontoon translations (#1512) 2025-09-30 00:24:22 +03:00
Erimel
486cb295ac Pontoon: Update French (fr) localization of GUI
Co-Authored-By: Erimel <loukalemire@gmail.com>
Co-Authored-By: SlimePuppy <minouviolet2007+github@gmail.com>
2025-09-23 21:00:09 +00:00
nekomona
dd3fe24294 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
2025-09-23 21:00:09 +00:00
Alejandro
59bdedecbb Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Alejandro <moctezumaalejandro25@gmail.com>
2025-09-23 21:00:09 +00:00
YumeTomo
fc3d049019 Pontoon: Update Thai (th) localization of GUI
Co-Authored-By: YumeTomo <Sodnoobe@gmail.com>
Co-Authored-By: Cusmo84 <saopob@gmail.com>
Co-Authored-By: Kaiera huzu <patsakorn9090@gmail.com>
2025-09-23 21:00:09 +00:00
ReDoX
de150e7349 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2025-09-23 21:00:09 +00:00
Meow Wei
06b3f61d37 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-09-23 21:00:09 +00:00
Bader
82b96d5ebe Pontoon: Update Arabic (ar) localization of GUI
Co-Authored-By: Bader <baq100@gmail.com>
Co-Authored-By: FennT <0094falcon@gmail.com>
2025-09-23 21:00:09 +00:00
Aed
f2b4d468c2 Added Done button to end of mounting calibration (#1557) 2025-09-23 22:59:22 +02:00
Eiren Rain
1c0f5c381b Update CODEOWNERS (#1558) 2025-09-23 23:54:01 +03:00
lucas lelievre
fb25421ab0 OOPS 2025-09-23 20:23:51 +00:00
lucas lelievre
4890b4a71c Update CODEOWNERS 2025-09-23 22:17:57 +02:00
lucas lelievre
e38732a81c Remove secondary colors usage + improve spacing (#1554) 2025-09-22 21:27:07 +02:00
Eiren Rain
2a78354b17 Disable update prompt on Android (#1547) 2025-09-19 19:55:27 +03:00
Eiren Rain
3fb4347277 Fix Stagered fw update detection (#1544) 2025-09-19 19:55:17 +03:00
Eiren Rain
081e88ead4 Update gui/src/hooks/firmware-update.ts
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-09-18 15:34:56 +03:00
Uriel
73f41f8fc6 Disable update prompt on Android 2025-09-17 19:32:30 -03:00
loucass003
f233f59079 Fix Stagered fw update detection 2025-09-16 23:24:53 +02:00
Eiren Rain
9644b00690 fix: use transaction id in RPC reponses (#1527) 2025-09-16 18:54:12 +03:00
Eiren Rain
543e319c25 HID support on Android (#1532) 2025-09-16 14:57:24 +03:00
Eiren Rain
b7ef70f5c6 Bump actions/setup-java from 4 to 5 (#1522) 2025-09-16 14:25:42 +03:00
Eiren Rain
af171f8812 Fix Android serial support (#1533) 2025-09-16 14:25:11 +03:00
dependabot[bot]
8ec3cade06 Bump actions/setup-java from 4 to 5
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 11:23:12 +00:00
Eiren Rain
bec8be46ca Add folder icon option for the file input (#1536) 2025-09-16 14:22:47 +03:00
Eiren Rain
ac7f809132 Bump actions/setup-node from 4 to 5 (#1540) 2025-09-16 14:22:10 +03:00
Eiren Rain
fcb241fab8 Bump actions/labeler from 5 to 6 (#1541) 2025-09-16 14:21:55 +03:00
Eiren Rain
fbdcf2fa2d Race condition patch for constraints (#1535) 2025-09-16 14:21:13 +03:00
Butterscotch!
73c821e07b Merge remote-tracking branch 'upstream/main' into bscotch/android-serial-fix 2025-09-11 16:07:57 -04:00
Butterscotch!
422ddd7ee8 Write serial directly on Android 2025-09-11 16:07:49 -04:00
Butterscotch!
943ad974ec Limit Android serial buffer to 1024 chars 2025-09-11 16:03:57 -04:00
dependabot[bot]
12a5d59e89 Bump actions/labeler from 5 to 6
Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 6.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:22:53 +00:00
dependabot[bot]
85286651dd Bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:22:49 +00:00
Uriel
e9b3efe3d5 Add folder icon option for the file input 2025-09-05 14:13:54 -04:00
Butterscotch!
75fa1aa1e2 Messy race condition patch for constraints 2025-09-04 06:50:34 -04:00
Butterscotch!
7d642a21f5 Use a read buffer for Android serial
The serial reader on Android does not have a big enough buffer for our serial output, causing issues when parsing it. We can buffer until we reach a newline character to make parsing work.
2025-09-04 06:35:30 -04:00
Butterscotch!
4e1421180c Ensure serial port closure 2025-09-04 04:33:39 -04:00
Butterscotch!
f0a72645d7 Clear request more & update usbReceiver comment 2025-09-04 04:27:20 -04:00
Butterscotch!
86b8e0a904 Fix serial staying open after disconnect 2025-09-04 04:18:52 -04:00
Butterscotch!
789e6a6962 Make ACTION_USB_PERMISSION const 2025-09-04 02:37:52 -04:00
Butterscotch!
f03b300d72 Use val for usbReceiver 2025-09-04 02:26:36 -04:00
Butterscotch!
6b0822c0f6 Rename HID "Service" to "Manager" 2025-09-04 02:26:08 -04:00
Butterscotch!
d9774cab87 Extra requestingPermission handling for new device 2025-09-04 02:24:21 -04:00
Butterscotch!
f07f9f3718 Add comments for USB attach/detach events 2025-09-04 02:22:23 -04:00
Butterscotch!
486be0973b Use USB events for serial & re-request permission 2025-09-04 02:17:28 -04:00
Butterscotch!
9246dd00d3 Additional comments 2025-09-04 01:41:01 -04:00
Butterscotch!
baf515791d Fix HID service comments 2025-09-04 01:37:15 -04:00
Butterscotch!
876450d764 Make Android USB host mode optional 2025-09-04 01:34:22 -04:00
Butterscotch!
44e90e255b Rename HID classes for clarity 2025-09-04 01:34:06 -04:00
Butterscotch!
41026ab851 Move deviceIdLookup to HIDCommon 2025-09-04 01:28:26 -04:00
Butterscotch!
d8509c431d Remove device reattach handling
Events should be good enough :3
2025-09-04 01:05:35 -04:00
Butterscotch!
66df65eb80 Use Android USB events for HID instead of polling 2025-09-04 00:31:43 -04:00
Butterscotch!
30641a5809 Reconnect HID 2025-09-04 00:31:43 -04:00
Butterscotch!
574523daec Persist UsbDeviceConnection 2025-09-04 00:31:43 -04:00
Butterscotch!
1913605d16 De-duplicate HID code 2025-09-04 00:31:42 -04:00
Butterscotch!
8aeecab51f Implement awful reading 2025-09-04 00:29:45 -04:00
Butterscotch!
9fd5d6a187 Initial Android USB HID support 2025-09-04 00:29:45 -04:00
peelz
0c09c22306 fix: use transaction id in RPC reponses 2025-09-01 13:46:48 -04:00
551 changed files with 27311 additions and 27486 deletions

1
.envrc
View File

@@ -2,7 +2,6 @@ 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

31
.github/CODEOWNERS vendored
View File

@@ -2,23 +2,22 @@
* @Eirenliel
# Make everyone be able to approve SolarXR submodule changes
/solarxr-protocol @ButterscotchV @Erimelowo @ImUrX @loucass003
/solarxr-protocol @ButterscotchV @Erimelowo @loucass003
# Make Loucas and Uriel the owners of all GUI stuff
/gui/ @ImUrX @loucass003
/pnpm-lock.yaml @ImUrX @loucass003
/pnpm-workspace.yaml @ImUrX @loucass003
# Make Loucass the owner of all GUI stuff
/gui/ @loucass003
/pnpm-lock.yaml @loucass003
/pnpm-workspace.yaml @loucass003
# Uriel and Erimel responsible for i18n
/gui/public/i18n/ @ImUrX @Erimelowo
/gui/src/i18n/ @ImUrX @Erimelowo
/l10n.toml @ImUrX @Erimelowo
# loucass003 and Erimel responsible for i18n
/gui/public/i18n/ @loucass003 @Erimelowo @ImSapphire
/gui/src/i18n/ @loucass003 @Erimelowo
/l10n.toml @loucass003 @Erimelowo
/gui/src/components/settings/ @Erimelowo @ImUrX @loucass003
/gui/src/components/settings/ @Erimelowo @loucass003
# Rust part of the GUI
/gui/src-tauri/ @ImUrX
/Cargo.lock @ImUrX
/gui/electron/ @loucass003
# Some server code~
/server/ @ButterscotchV @Eirenliel @Erimelowo
@@ -32,7 +31,7 @@
/server/src/main/java/dev/slimevr/filtering/ @Erimelowo
# Linux files
*.nix @ImUrX
/flake.lock @ImUrX
/dev.slimevr.SlimeVR.metainfo.xml @ImUrX
/.envrc @ImUrX
*.nix @loucass003
/flake.lock @loucass003
/dev.slimevr.SlimeVR.metainfo.xml @loucass003
/.envrc @loucass003

View File

@@ -1,129 +0,0 @@
name: Build GUI
on:
push:
branches:
- main
paths:
- .github/workflows/build-gui.yml
- gui/**
- package*.json
pull_request:
paths:
- .github/workflows/build-gui.yml
- gui/**
- package*.json
workflow_dispatch:
create:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Build
run: |
pnpm i
cd gui
pnpm run lint
build:
strategy:
fail-fast: false
matrix:
os:
[
ubuntu-22.04,
windows-latest,
macos-latest,
ubuntu-22.04-arm,
windows-11-arm,
]
runs-on: ${{ matrix.os }}
env:
# Don't mark warnings as errors
CI: false
BUILD_ARCH: ${{ endsWith(matrix.os, 'arm') && 'aarch64' || 'amd64' }}
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- if: startsWith(matrix.os, 'ubuntu')
name: Set up Linux dependencies
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
with:
packages: libgtk-3-dev webkit2gtk-4.1 libappindicator3-dev librsvg2-dev patchelf
# Increment to invalidate the cache
version: ${{ format('v1.0-{0}', env.BUILD_ARCH) }}
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
- if: matrix.os == 'windows-11-arm'
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
cache: false
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
shell: bash
run: pnpm i
- name: Build
shell: bash
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
NODE_OPTIONS: ${{ matrix.os == 'macos-latest' && '--max-old-space-size=4096' || '' }}
run: pnpm run skipbundler --config $( ./gui/scripts/gitversion.mjs )
- if: startsWith(matrix.os, 'windows')
name: Upload a Build Artifact (Windows)
uses: actions/upload-artifact@v4
with:
# Artifact name
name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }}
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr.exe
- if: startsWith(matrix.os, 'ubuntu')
name: Upload a Build Artifact (Linux)
uses: actions/upload-artifact@v4
with:
# Artifact name
name: ${{ format('SlimeVR-GUI-Linux-{0}', env.BUILD_ARCH) }}
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr
- if: matrix.os == 'macos-latest'
name: Upload a Build Artifact (macOS)
uses: actions/upload-artifact@v4
with:
# Artifact name
name: SlimeVR-GUI-macOS
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr

263
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,263 @@
name: SlimeVR Full Build
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
workflow_dispatch:
jobs:
setup-matrix:
name: Configure Build Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
shell: bash
run: |
BASE='[{"os":"ubuntu-22.04","platform":"linux"},{"os":"windows-latest","platform":"windows"},{"os":"macos-latest","platform":"macos"}]'
EXTRA='[{"os":"ubuntu-22.04-arm","platform":"linux"},{"os":"windows-11-arm","platform":"windows"}]'
if [[ "${{ github.ref }}" == refs/tags/v* || "${{ github.ref }}" == refs/heads/main || "${{ github.event_name }}" == "workflow_dispatch" ]]; then
RESULT=$(echo "$BASE $EXTRA" | jq -c -s 'add')
else
RESULT=$(echo "$BASE" | jq -c '.')
fi
echo "matrix={\"include\":$RESULT}" >> "$GITHUB_OUTPUT"
gui-checks:
name: Gui Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup PNPM
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: GUI Lint
run: pnpm i && cd gui && pnpm run lint
java-checks:
name: Java Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Java Spotless Check
run: ./gradlew spotlessCheck --build-cache
build-server-jar:
name: Build Desktop Server
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Build ShadowJar
run: ./gradlew :server:desktop:shadowJar --build-cache
- name: Test with Gradle
run: ./gradlew :server:desktop:test
- name: Upload Server Jar
uses: actions/upload-artifact@v6
with:
name: server-jar
path: |
server/desktop/build/libs/slimevr.jar
server/core/resources
build-gui-frontend:
name: Build GUI Assets
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup PNPM
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Build JS
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: pnpm i && cd gui && pnpm run build
- name: Tar GUI Dist
run: tar -czf slimevr-gui-dist.tar.gz -C gui/out .
- name: Upload GUI Dist
uses: actions/upload-artifact@v6
with:
name: gui-dist
path: slimevr-gui-dist.tar.gz
package-desktop:
name: Package Desktop (${{ matrix.platform }} - ${{ matrix.os }})
needs: [setup-matrix, build-server-jar, build-gui-frontend]
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup PNPM
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Download Server Jar
uses: actions/download-artifact@v6
with:
name: server-jar
path: server
- name: Download GUI Dist
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Extract GUI for Electron
shell: bash
run: mkdir -p gui/out && tar -xzf slimevr-gui-dist.tar.gz -C gui/out
- name: Run Electron Builder
shell: bash
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: |
mkdir -p gui/dist/artifacts/linux/ \
gui/dist/artifacts/win \
gui/dist/artifacts/mac
cd gui
pnpm i
pnpm exec electron-builder --${{ matrix.platform }} \
${{ matrix.platform == 'macos' && '--universal' || '' }} \
--publish never
- name: Collect and Rename Artifacts
shell: bash
run: |
SRC_DIR="${{ github.workspace }}/gui/dist/artifacts"
DEST_DIR="${{ github.workspace }}/release-out"
mkdir -p "$DEST_DIR"
if [ "${{ matrix.platform }}" == "windows" ]; then
[[ "${{ matrix.os }}" == *"arm"* ]] && SUFFIX="win-aarch64" || SUFFIX="win64"
cp "$SRC_DIR"/win/*.zip "$DEST_DIR/SlimeVR-$SUFFIX.zip"
elif [ "${{ matrix.platform }}" == "linux" ]; then
for f in "$SRC_DIR"/linux/*; do
[ -d "$f" ] && continue
BASE=$(basename "$f")
NEW_NAME=$(echo "$BASE" | sed -e 's/x86_64/amd64/g' -e 's/arm64/aarch64/g')
cp "$f" "$DEST_DIR/$NEW_NAME"
done
elif [ "${{ matrix.platform }}" == "macos" ]; then
cp "$SRC_DIR"/mac/*.dmg "$DEST_DIR/SlimeVR-mac.dmg"
fi
echo "Collected files:"
ls -lh "$DEST_DIR"
- name: Upload For Release
uses: actions/upload-artifact@v6
with:
name: release-${{ matrix.platform }}-${{ matrix.os }}
path: release-out/*
bundle-android:
name: Build Android APK
needs: [build-gui-frontend]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Download GUI Dist
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Extract GUI for Android
run: mkdir -p gui/out && tar -xzf slimevr-gui-dist.tar.gz -C gui/out
- name: Build APK
run: ./gradlew :server:android:build --build-cache
env:
ANDROID_STORE_FILE: ${{ secrets.ANDROID_STORE_FILE }}
ANDROID_STORE_PASSWD: ${{ secrets.ANDROID_STORE_PASSWD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWD: ${{ secrets.ANDROID_KEY_PASSWD }}
- name: Test with Gradle
run: ./gradlew test
- name: Prepare APK
run: cp server/android/build/outputs/apk/release/*.apk ./SlimeVR-android.apk
- name: Upload APK
uses: actions/upload-artifact@v6
with:
name: release-android
path: SlimeVR-android.apk
create-release:
name: Finalize Release Draft
needs: [package-desktop, bundle-android, build-server-jar, build-gui-frontend]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Download All Release Artifacts
uses: actions/download-artifact@v6
with:
pattern: release-*
path: release-out
merge-multiple: true
- name: Download Server Jar
uses: actions/download-artifact@v6
with:
name: server-jar
path: server
- name: Download GUI Dist
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
files: |
release-out/*
server/desktop/build/libs/slimevr.jar
slimevr-gui-dist.tar.gz

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: '22.x'
@@ -20,7 +20,7 @@ jobs:
run: |
npx @slimevr/update-manifest-generator@latest
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v6
with:
name: "update-manifest.json"
path: ./update-manifest.json

View File

@@ -1,390 +0,0 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: SlimeVR Server
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
create:
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- run: mkdir ./gui/dist && touch ./gui/dist/somefile
shell: bash
- name: Check code formatting
run: ./gradlew spotlessCheck
- name: Test with Gradle
run: ./gradlew test
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Upload the Server JAR as a Build Artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: 'SlimeVR-Server' # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: server/desktop/build/libs/slimevr.jar
- name: Upload to draft release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
server/desktop/build/libs/slimevr.jar
bundle-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
run: pnpm i
- name: Build
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: cd gui && pnpm run build
- name: Build with Gradle
run: ./gradlew :server:android:assembleDebug
- name: Upload the Android Build Artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: 'SlimeVR-Android' # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: server/android/build/outputs/apk/*
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp server/android/build/outputs/apk/debug/android-debug.apk ./SlimeVR-android.apk
- name: Upload to draft release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-android.apk
bundle-linux:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
env:
BUILD_ARCH: ${{ endsWith(matrix.os, 'arm') && 'aarch64' || 'amd64' }}
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/download-artifact@v5
with:
name: 'SlimeVR-Server'
path: server/desktop/build/libs/
- name: Set up Linux dependencies
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
with:
packages: |
build-essential curl wget file libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev
# Increment to invalidate the cache
version: ${{ format('v1.0-{0}', env.BUILD_ARCH) }}
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
- name: Set up specific Linux versioned dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
libwebkit2gtk-4.1-0=2.44.0-2 \
libwebkit2gtk-4.1-dev=2.44.0-2 \
libjavascriptcoregtk-4.1-0=2.44.0-2 \
libjavascriptcoregtk-4.1-dev=2.44.0-2 \
gir1.2-javascriptcoregtk-4.1=2.44.0-2 \
gir1.2-webkit2-4.1=2.44.0-2;
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
run: pnpm i
- name: Build
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: pnpm run tauri build --config $( ./gui/scripts/gitversion.mjs )
- name: Make GUI tarball
run: |
tar czf slimevr-gui-dist.tar.gz -C gui/dist/ .
- uses: actions/upload-artifact@v4
if: matrix.os == 'ubuntu-latest'
with:
name: SlimeVR-GUI-Dist
path: ./slimevr-gui-dist.tar.gz
- uses: actions/upload-artifact@v4
with:
name: ${{ format('SlimeVR-GUI-Deb-{0}', env.BUILD_ARCH) }}
path: target/release/bundle/deb/slimevr*.deb
- uses: actions/upload-artifact@v4
with:
name: ${{ format('SlimeVR-GUI-AppImage-{0}', env.BUILD_ARCH) }}
path: target/release/bundle/appimage/slimevr*.AppImage
- uses: actions/upload-artifact@v4
with:
name: ${{ format('SlimeVR-GUI-RPM-{0}', env.BUILD_ARCH) }}
path: target/release/bundle/rpm/slimevr*.rpm
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/appimage/slimevr*.AppImage "./SlimeVR-$BUILD_ARCH.appimage"
cp target/release/bundle/deb/slimevr*.deb "./SlimeVR-$BUILD_ARCH.deb"
cp target/release/bundle/rpm/slimevr*.rpm "./SlimeVR-$BUILD_ARCH.rpm"
- name: Upload to draft release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./slimevr-gui-dist.tar.gz
./SlimeVR-*.appimage
./SlimeVR-*.deb
./SlimeVR-*.rpm
bundle-mac:
runs-on: macos-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/download-artifact@v5
with:
name: 'SlimeVR-Server'
path: server/desktop/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
run: |
rustup target add x86_64-apple-darwin
pnpm i
- name: Build
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
NODE_OPTIONS: --max-old-space-size=4096
run: pnpm run tauri build --target universal-apple-darwin --config $( ./gui/scripts/gitversion.mjs )
- name: Modify Application
run: |
cd target/universal-apple-darwin/release/bundle/macos/slimevr.app/Contents/MacOS
cp $( git rev-parse --show-toplevel )/server/desktop/build/libs/slimevr.jar ./
cd ../../../
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName SlimeVR" slimevr.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleName SlimeVR" slimevr.app/Contents/Info.plist
codesign --sign - --deep --force slimevr.app
mv slimevr.app SlimeVR.app
cd ../dmg/
./bundle_dmg.sh --volname SlimeVR --icon slimevr 180 170 --app-drop-link 480 170 \
--window-size 660 400 --hide-extension ../macos/SlimeVR.app \
--volicon ../macos/SlimeVR.app/Contents/Resources/icon.icns --skip-jenkins \
--eula ../../../../../LICENSE-MIT slimevr.dmg ../macos/SlimeVR.app
- uses: actions/upload-artifact@v4
with:
name: SlimeVR-GUI-MacApp
path: target/universal-apple-darwin/release/bundle/macos/SlimeVR*.app
- uses: actions/upload-artifact@v4
with:
name: SlimeVR-GUI-MacDmg
path: target/universal-apple-darwin/release/bundle/dmg/slimevr.dmg
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/universal-apple-darwin/release/bundle/dmg/slimevr.dmg ./SlimeVR-mac.dmg
- name: Upload to draft release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-mac.dmg
bundle-windows:
strategy:
matrix:
os: [windows-latest, windows-11-arm]
runs-on: ${{ matrix.os }}
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
env:
BUILD_ARCH: ${{ endsWith(matrix.os, 'arm') && 'win-aarch64' || 'win64' }}
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/download-artifact@v5
with:
name: 'SlimeVR-Server'
path: server/desktop/build/libs/
- if: matrix.os == 'windows-11-arm'
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
cache: false
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
shell: bash
run: pnpm i
- name: Build
shell: bash
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: pnpm run skipbundler --config $( ./gui/scripts/gitversion.mjs )
- name: Bundle to zips
shell: bash
run: |
mkdir SlimeVR
cp gui/src-tauri/icons/icon.ico ./SlimeVR/run.ico
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-$BUILD_ARCH.zip" ./SlimeVR/
- uses: actions/upload-artifact@v4
with:
name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }}
path: ./SlimeVR*.zip
- name: Upload to draft release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: ./SlimeVR-*.zip

View File

@@ -17,6 +17,6 @@ jobs:
pull-requests: write
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v6
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -3,22 +3,19 @@ on:
push:
branches:
- pontoon
jobs:
pull_request:
if: ${{ github.repository == 'SlimeVR/SlimeVR-Server' }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: repo-sync/pull-request@v2
with:
destination_branch: "main"
pr_title: "New Pontoon translations"
pr_body: "Please don't squash me 🥺"
pr_label: "Area: Translation"
github_token: ${{ secrets.PONTOON_BOT_KEY }}
- name: pull-request
env:
GH_TOKEN: ${{ secrets.PONTOON_BOT_KEY }}
run: |
gh_pr_up() { gh pr create "$@" --label "Area: Translation" --base main || gh pr edit "$@"; }
gh_pr_up --title "New Pontoon translations" --body "Please don't squash me 🥺"

View File

@@ -15,7 +15,7 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: pontoon
submodules: recursive

7
.gitignore vendored
View File

@@ -34,9 +34,6 @@
# ignore gradle build folder
build/
# Rust build artifacts
/target
# direnv has been claimed for Nix usage
.direnv/
.devenv
@@ -46,3 +43,7 @@ local.properties
# Ignore temporary config
vrconfig.yml.tmp
# Nixos
.bin/

View File

@@ -7,7 +7,6 @@
"gaborv.flatbuffers",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"rust-lang.rust-analyzer",
"bradlc.vscode-tailwindcss",
"EditorConfig.EditorConfig",
"macabeus.vscode-fluent",

View File

@@ -7,8 +7,6 @@ This document describes essential knowledge required to contribute to the SlimeV
- [Git](https://git-scm.com/downloads)
- [Java v17+](https://adoptium.net/temurin/releases/)
- [Node.js v16.9+](https://nodejs.org) (We recommend the use of `nvm` instead of installing Node.js directly)
- [Microsoft Edge WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section) or `webkit2gtk` for Linux
- [Rust](https://rustup.rs)
## Cloning the code
First, clone the codebase using git in a terminal in the folder you want.
@@ -32,13 +30,13 @@ be at `server/build/libs/slimevr.jar` (you can ignore `server.jar`).
(Note: Your IDE may be able to do all of the above for you.)
### Tauri (gui)
### Electron (gui)
- Activate corepack (included with Node.JS) via `corepack enable` (might require administrator permissions)
- Run `pnpm i` in your IDE's terminal to download and install dependencies.
- To launch the GUI in dev mode, run `pnpm gui`.
- Finally, to compile for production, run `pnpm run tauri build`. The result
will be at `target/release/slimevr.exe`.
- Finally, to compile for production, run `pnpm package:build`. The result
will be at `dist/artifacts/` content will change depending of the platform.
## Code style
@@ -84,7 +82,7 @@ Import the formatting settings defined in `spotless.xml`, like this:
Eclipse will only do a subset of the checks in `spotless`, so you may still want to do
`./gradlew spotlessApply` if you ever see an error from spotless.
### Tauri (gui)
### Electron (gui)
We use ESLint and Prettier to format GUI code.
- First, go into the GUI's directory with your terminal by running `cd gui`.
@@ -116,3 +114,9 @@ licensed under `GPL-v3`.
## Discord
We use discord *a lot* to coordinate and discuss development. Come join us at
https://discord.gg/SlimeVR!
## Use of AI
We DO NOT accept contributions that are generated with AI (for example, "vibe-coding").
If you do use AI, and you believe your usage of AI is reasonable, you must clearly disclose
how you used AI in your submission.

6401
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +0,0 @@
[workspace]
# Use 2021 edition resolver, better resolves crate features.
resolver = "2"
# A list of all rust crates in the workspace.
members = ["gui/src-tauri"]
# These settings can be inherited by workspace members
[workspace.package]
edition = "2021"
license = "MIT OR Apache-2.0"
rust-version = "1.75" # Tauri's MSRV
repository = "https://github.com/SlimeVR/SlimeVR-Server"
[profile.release]
lto = "thin"

View File

@@ -70,3 +70,6 @@ okay with this and that you are authorized to provide the above licenses.
[LICENSE-MIT]: LICENSE-MIT
[LICENSE-APACHE]: LICENSE-APACHE
[TRADEMARK]: TRADEMARK.md
*if you read this, u cute*

View File

@@ -1,33 +1,33 @@
## SlimeVR is a trademark or a registered trademark of SlimeVR B.V.
**Usage of SlimeVR software, hardware, or other intellectual property in this or other repositories does not grant you the right to use SlimeVR trademark as your own.**
The purpose of a trademark is to remove uncertainty for users and customers regarding the product's manufacturer or endorsement. You're not allowed to market your product using SlimeVR name, and your usage of the name should be only factual and descriptive. For example, calling original SlimeVR products SlimeVR or describing compatibility of other products or derivatives. This applies to all products, including software, and hardware including non-official Full-Body Trackers.
**Here are a few _acceptable_ uses of SlimeVR name when selling unofficial Slime trackers:**
* SlimeVR-compatible trackers
* Unofficial SlimeVR trackers / Non-official SlimeVR trackers
* DIY SlimeVR trackers
* Third-party SlimeVR Trackers
* Custom SlimeVR-compatible trackers
* < Your Brand > Slime Trackers
* Using "SlimeVR" as a search tag
**_Unacceptable_ uses include, but are not limited to:**
* SlimeVR store
* Buy SlimeVR
* SlimeVR Trackers
* Original SlimeVR
* Official SlimeVR
* SlimeVR BMI270 (or any other IMU model along with SlimeVR name)
* < Your brand > SlimeVR / < your brand > SlimeVR Trackers
Use of the SlimeVR name that can cause confusion is not allowed in any part of the listing, including, but not limited to: product title, product description, product metadata, site title, site name, site metadata, site texts, social media posts, or other advertisement.
Also, please ensure you use the correct spelling and capitalization: only **"SlimeVR" is acceptable**. Not "Slimevr", "slimevr", or "Slime VR". You're allowed to use the word "slime" as you wish, it's not a trademark.
Please understand that we have an obligation to reduce confusion for the customers, and we believe that our usage terms are generous compared to many other companies and products. This applies to all sellers or derivative products, we do not make exceptions.
---
## SlimeVR is a trademark or a registered trademark of SlimeVR B.V.
**Usage of SlimeVR software, hardware, or other intellectual property in this or other repositories does not grant you the right to use SlimeVR trademark as your own.**
The purpose of a trademark is to remove uncertainty for users and customers regarding the product's manufacturer or endorsement. You're not allowed to market your product using SlimeVR name, and your usage of the name should be only factual and descriptive. For example, calling original SlimeVR products SlimeVR or describing compatibility of other products or derivatives. This applies to all products, including software, and hardware including non-official Full-Body Trackers.
**Here are a few _acceptable_ uses of SlimeVR name when selling unofficial Slime trackers:**
* SlimeVR-compatible trackers
* Unofficial SlimeVR trackers / Non-official SlimeVR trackers
* DIY SlimeVR trackers
* Third-party SlimeVR Trackers
* Custom SlimeVR-compatible trackers
* < Your Brand > Slime Trackers
* Using "SlimeVR" as a search tag
**_Unacceptable_ uses include, but are not limited to:**
* SlimeVR store
* Buy SlimeVR
* SlimeVR Trackers
* Original SlimeVR
* Official SlimeVR
* SlimeVR BMI270 (or any other IMU model along with SlimeVR name)
* < Your brand > SlimeVR / < your brand > SlimeVR Trackers
Use of the SlimeVR name that can cause confusion is not allowed in any part of the listing, including, but not limited to: product title, product description, product metadata, site title, site name, site metadata, site texts, social media posts, or other advertisement.
Also, please ensure you use the correct spelling and capitalization: only **"SlimeVR" is acceptable**. Not "Slimevr", "slimevr", or "Slime VR". You're allowed to use the word "slime" as you wish, it's not a trademark.
Please understand that we have an obligation to reduce confusion for the customers, and we believe that our usage terms are generous compared to many other companies and products. This applies to all sellers or derivative products, we do not make exceptions.
---
If you have any questions about SlimeVR trademark or copyrighted materials, you can reach out to us at *tm[at]slimevr.dev*.

242
deny.toml
View File

@@ -1,242 +0,0 @@
# This template contains all of the possible sections and their default values
# Note that all fields that take a lint level have these possible values:
# * deny - An error will be produced and the check will fail
# * warn - A warning will be produced, but the check will not fail
# * allow - No warning or error will be produced, though in some cases a note
# will be
# The values provided in this template are the default values that will be used
# when any section or field is not specified in your own configuration
# Root options
# The graph table configures how the dependency graph is constructed and thus
# which crates the checks are performed against
[graph]
# If 1 or more target triples (and optionally, target_features) are specified,
# only the specified targets will be checked when running `cargo deny check`.
# This means, if a particular package is only ever used as a target specific
# dependency, such as, for example, the `nix` crate only being used via the
# `target_family = "unix"` configuration, that only having windows targets in
# this list would mean the nix crate, as well as any of its exclusive
# dependencies not shared by any other crates, would be ignored, as the target
# list here is effectively saying which targets you are building for.
targets = [
# The triple can be any string, but only the target triples built in to
# rustc (as of 1.40) can be checked against actual config expressions
#"x86_64-unknown-linux-musl",
# You can also specify which target_features you promise are enabled for a
# particular target. target_features are currently not validated against
# the actual valid features supported by the target architecture.
#{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
]
# When creating the dependency graph used as the source of truth when checks are
# executed, this field can be used to prune crates from the graph, removing them
# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
# is pruned from the graph, all of its dependencies will also be pruned unless
# they are connected to another crate in the graph that hasn't been pruned,
# so it should be used with care. The identifiers are [Package ID Specifications]
# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
#exclude = []
# If true, metadata will be collected with `--all-features`. Note that this can't
# be toggled off if true, if you want to conditionally enable `--all-features` it
# is recommended to pass `--all-features` on the cmd line instead
all-features = false
# If true, metadata will be collected with `--no-default-features`. The same
# caveat with `all-features` applies
no-default-features = false
# If set, these feature will be enabled when collecting metadata. If `--features`
# is specified on the cmd line they will take precedence over this option.
#features = []
# The output table provides options for how/if diagnostics are outputted
[output]
# When outputting inclusion graphs in diagnostics that include features, this
# option can be used to specify the depth at which feature edges will be added.
# This option is included since the graphs can be quite large and the addition
# of features from the crate(s) to all of the graph roots can be far too verbose.
# This option can be overridden via `--feature-depth` on the cmd line
feature-depth = 1
# This section is considered when running `cargo deny check advisories`
# More documentation for the advisories section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
[advisories]
# The path where the advisory databases are cloned/fetched into
#db-path = "$CARGO_HOME/advisory-dbs"
# The url(s) of the advisory databases to use
#db-urls = ["https://github.com/rustsec/advisory-db"]
# A list of advisory IDs to ignore. Note that ignored advisories will still
# output a note when they are encountered.
ignore = [
#"RUSTSEC-0000-0000",
#{ id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" },
#"a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish
#{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" },
]
# If this is true, then cargo deny will use the git executable to fetch advisory database.
# If this is false, then it uses a built-in git library.
# Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
# See Git Authentication for more information about setting up git authentication.
#git-fetch-with-cli = true
# This section is considered when running `cargo deny check licenses`
# More documentation for the licenses section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
[licenses]
# List of explicitly allowed licenses
# See https://spdx.org/licenses/ for list of possible licenses
# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
allow = [
"MIT",
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"Unicode-3.0",
"Unicode-DFS-2016",
"MIT-0",
"ISC",
"BSD-3-Clause",
"Zlib",
"MPL-2.0",
]
# The confidence threshold for detecting a license from license text.
# The higher the value, the more closely the license text must be to the
# canonical license text of a valid SPDX license file.
# [possible values: any between 0.0 and 1.0].
confidence-threshold = 0.8
# Allow 1 or more licenses on a per-crate basis, so that particular licenses
# aren't accepted for every possible crate as with the normal allow list
exceptions = [
# Each entry is the crate and version constraint, and its specific allow
# list
#{ allow = ["Zlib"], crate = "adler32" },
]
# Some crates don't have (easily) machine readable licensing information,
# adding a clarification entry for it allows you to manually specify the
# licensing information
#[[licenses.clarify]]
# The package spec the clarification applies to
#crate = "ring"
# The SPDX expression for the license requirements of the crate
#expression = "MIT AND ISC AND OpenSSL"
# One or more files in the crate's source used as the "source of truth" for
# the license expression. If the contents match, the clarification will be used
# when running the license check, otherwise the clarification will be ignored
# and the crate will be checked normally, which may produce warnings or errors
# depending on the rest of your configuration
#license-files = [
# Each entry is a crate relative path, and the (opaque) hash of its contents
#{ path = "LICENSE", hash = 0xbd0eed23 }
#]
[licenses.private]
# If true, ignores workspace crates that aren't published, or are only
# published to private registries.
# To see how to mark a crate as unpublished (to the official registry),
# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
ignore = false
# One or more private registries that you might publish crates to, if a crate
# is only published to private registries, and ignore is true, the crate will
# not have its license(s) checked
registries = [
#"https://sekretz.com/registry
]
# This section is considered when running `cargo deny check bans`.
# More documentation about the 'bans' section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
[bans]
# Lint level for when multiple versions of the same crate are detected
multiple-versions = "warn"
# Lint level for when a crate version requirement is `*`
wildcards = "allow"
# The graph highlighting used when creating dotgraphs for crates
# with multiple versions
# * lowest-version - The path to the lowest versioned duplicate is highlighted
# * simplest-path - The path to the version with the fewest edges is highlighted
# * all - Both lowest-version and simplest-path are used
highlight = "all"
# The default lint level for `default` features for crates that are members of
# the workspace that is being checked. This can be overridden by allowing/denying
# `default` on a crate-by-crate basis if desired.
workspace-default-features = "allow"
# The default lint level for `default` features for external crates that are not
# members of the workspace. This can be overridden by allowing/denying `default`
# on a crate-by-crate basis if desired.
external-default-features = "allow"
# List of crates that are allowed. Use with care!
allow = [
#"ansi_term@0.11.0",
#{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is allowed" },
]
# List of crates to deny
deny = [
#"ansi_term@0.11.0",
#{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is banned" },
# Wrapper crates can optionally be specified to allow the crate when it
# is a direct dependency of the otherwise banned crate
#{ crate = "ansi_term@0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term"] },
]
# List of features to allow/deny
# Each entry the name of a crate and a version range. If version is
# not specified, all versions will be matched.
#[[bans.features]]
#crate = "reqwest"
# Features to not allow
#deny = ["json"]
# Features to allow
#allow = [
# "rustls",
# "__rustls",
# "__tls",
# "hyper-rustls",
# "rustls",
# "rustls-pemfile",
# "rustls-tls-webpki-roots",
# "tokio-rustls",
# "webpki-roots",
#]
# If true, the allowed features must exactly match the enabled feature set. If
# this is set there is no point setting `deny`
#exact = true
# Certain crates/versions that will be skipped when doing duplicate detection.
skip = [
#"ansi_term@0.11.0",
#{ crate = "ansi_term@0.11.0", reason = "you can specify a reason why it can't be updated/removed" },
]
# Similarly to `skip` allows you to skip certain crates during duplicate
# detection. Unlike skip, it also includes the entire tree of transitive
# dependencies starting at the specified crate, up to a certain depth, which is
# by default infinite.
skip-tree = [
#"ansi_term@0.11.0", # will be skipped along with _all_ of its direct and transitive dependencies
#{ crate = "ansi_term@0.11.0", depth = 20 },
]
# This section is considered when running `cargo deny check sources`.
# More documentation about the 'sources' section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
[sources]
# Lint level for what to happen when a crate from a crate registry that is not
# in the allow list is encountered
unknown-registry = "warn"
# Lint level for what to happen when a crate from a git repository that is not
# in the allow list is encountered
unknown-git = "warn"
# List of URLs for allowed crate registries. Defaults to the crates.io index
# if not specified. If it is specified but empty, no registries are allowed.
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
# List of URLs for allowed Git repositories
allow-git = []
[sources.allow-org]
# 1 or more github.com organizations to allow git sources for
github = [""]
# 1 or more gitlab.com organizations to allow git sources for
gitlab = [""]
# 1 or more bitbucket.org organizations to allow git sources for
bitbucket = [""]

327
flake.lock generated
View File

@@ -1,295 +1,30 @@
{
"nodes": {
"cachix": {
"inputs": {
"devenv": [
"devenv"
],
"flake-compat": [
"devenv"
],
"git-hooks": [
"devenv",
"git-hooks"
],
"nixpkgs": [
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748883665,
"narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=",
"owner": "cachix",
"repo": "cachix",
"rev": "f707778d902af4d62d8dd92c269f8e70de09acbe",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "latest",
"repo": "cachix",
"type": "github"
}
},
"devenv": {
"inputs": {
"cachix": "cachix",
"flake-compat": "flake-compat",
"git-hooks": "git-hooks",
"nix": "nix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1750800495,
"narHash": "sha256-wBTGFNCx3Gr3BkNkEoFrKx9+d7otSdQesCDCPGDKZHk=",
"owner": "cachix",
"repo": "devenv",
"rev": "b33ab3610c084a7e3fabc5eefaeb437449f1efe7",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1750833544,
"narHash": "sha256-e5W27mfPGiM35qr0DjTUzLHP4ET2MbvRc4HJHScw/ko=",
"owner": "nix-community",
"repo": "fenix",
"rev": "c3940d9ff4d37e965e5841149367234c2aad1ab6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"devenv",
"nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1749398372,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"lastModified": 1762980239,
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"flake-utils": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"devenv",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1749636823,
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"devenv",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"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": {
"flake-compat": [
"devenv",
"flake-compat"
],
"flake-parts": "flake-parts",
"git-hooks-nix": [
"devenv",
"git-hooks"
],
"nixpkgs": "nixpkgs",
"nixpkgs-23-11": [
"devenv"
],
"nixpkgs-regression": [
"devenv"
]
},
"locked": {
"lastModified": 1750117611,
"narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=",
"owner": "cachix",
"repo": "nix",
"rev": "9e4fc95c388e2223d47da865503dee20d179776a",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "devenv-2.30",
"repo": "nix",
"type": "github"
}
},
"nix2container": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1749158376,
"narHash": "sha256-uirStFNxauh0lxzBowcp28X+Sq7JgsBIDnbwbAfZwf8=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "0f8974c58755dba441df03598eefd1e1cd50e341",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixgl": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1713543440,
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
"owner": "guibou",
"repo": "nixGL",
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
"type": "github"
},
"original": {
"owner": "guibou",
"repo": "nixGL",
"repo": "flake-parts",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1747179050,
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"type": "github"
},
"original": {
@@ -301,11 +36,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1748740939,
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
@@ -314,48 +49,10 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750741721,
"narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4b1164c3215f018c4442463a27689d973cffd750",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"fenix": "fenix",
"flake-parts": "flake-parts_2",
"mk-shell-bin": "mk-shell-bin",
"nix2container": "nix2container",
"nixgl": "nixgl",
"nixpkgs": "nixpkgs_2"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1750788942,
"narHash": "sha256-bBSdUlEw/7xh66rtMEDg39xQUNN2VaDJIbRPIwhpFYk=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "c68c8a81a7d2979778ae1e8ba024beacb4fff6b6",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
}
}
},

182
flake.nix
View File

@@ -1,156 +1,50 @@
{
description = "Affordable full-body tracking for VR!";
description = "SlimeVR Server & GUI";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
devenv = {
url = "github:cachix/devenv";
inputs.nixpkgs.follows = "nixpkgs";
};
nix2container = {
url = "github:nlewo/nix2container";
inputs.nixpkgs.follows = "nixpkgs";
};
mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin";
nixgl = {
url = "github:guibou/nixGL";
inputs.nixpkgs.follows = "nixpkgs";
};
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
};
nixConfig = {
extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=";
extra-substituters = "https://devenv.cachix.org";
};
outputs = inputs@{ self, nixpkgs, flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" ];
outputs = inputs @ {
self,
flake-parts,
nixgl,
...
}:
flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
inputs.devenv.flakeModule
];
systems = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
perSystem = { pkgs, ... }:
let
runtimeLibs = pkgs: (with pkgs; [
jdk17
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.
alsa-lib at-spi2-atk at-spi2-core cairo cups dbus expat
gdk-pixbuf glib gtk3 libdrm libgbm libglvnd libnotify
libxkbcommon mesa nspr nss pango systemd vulkan-loader
wayland xorg.libX11 xorg.libXcomposite xorg.libXdamage
xorg.libXext xorg.libXfixes xorg.libXrandr xorg.libxcb
xorg.libxshmfence libusb1 udev libxcrypt-legacy
rpm fpm
# Equivalent to inputs'.nixpkgs.legacyPackages.hello;
# packages.default = pkgs.hello;
_module.args.pkgs = import self.inputs.nixpkgs {
inherit system;
overlays = [nixgl.overlay];
wineWow64Packages.stable
zlib squashfsTools fakeroot libarchive icu
nodejs_22 pnpm pkg-config python3 gcc gnumake binutils git
pkgs.nodePackages.node-gyp-build
]);
slimeShell = pkgs.buildFHSEnv {
name = "slimevr-env";
targetPkgs = runtimeLibs;
profile = ''
export JAVA_HOME=${pkgs.jdk17}
export PATH="${pkgs.jdk17}/bin:$PATH"
# Tell electron-builder to use system tools instead of downloading them
export USE_SYSTEM_FPM=true
export USE_SYSTEM_MKSQUASHFS=true
'';
runScript = "bash";
};
in
{
devShells.default = slimeShell.env;
};
devenv.shells.default = let
fenixpkgs = inputs'.fenix.packages;
rust_toolchain = lib.importTOML ./rust-toolchain.toml;
in {
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 =
(with pkgs; [
pkgs.nixgl.nixGLIntel
cacert
])
++ lib.optionals pkgs.stdenv.isLinux (with pkgs; [
atk
cairo
dbus
dbus.lib
dprint
gdk-pixbuf
glib.out
glib-networking
gobject-introspection
gtk3
harfbuzz
libffi
libsoup_3
openssl.dev
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
libayatana-appindicator
libusb1
])
++ lib.optionals pkgs.stdenv.isDarwin [
pkgs.darwin.apple_sdk.frameworks.Security
];
languages.java = {
enable = true;
gradle.enable = true;
jdk.package = pkgs.jdk17;
};
languages.kotlin.enable = true;
languages.javascript = {
enable = true;
corepack.enable = true;
pnpm.enable = true;
npm.enable = true;
};
languages.rust = {
enable = true;
toolchain = fenixpkgs.fromToolchainName {
name = rust_toolchain.toolchain.channel;
sha256 = "sha256-yMuSb5eQPO/bHv+Bcf/US8LVMbf/G/0MSfiPwBhiPpk=";
};
components = rust_toolchain.toolchain.components;
};
env = {
GIO_EXTRA_MODULES = "${pkgs.glib-networking}/lib/gio/modules:${pkgs.dconf.lib}/lib/gio/modules";
};
enterShell = with pkgs; ''
# Export a LD_LIBRARY_PATH without libudev-zero as libgudev not likey
export SLIMEVR_RUST_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="${libudev-zero}/lib:${libayatana-appindicator}/lib:$LD_LIBRARY_PATH"
# GStreamer plugins won't be found without this
export GST_PLUGIN_SYSTEM_PATH_1_0="${pkgs.gst_all_1.gstreamer.out}/lib/gstreamer-1.0:${pkgs.gst_all_1.gst-plugins-base}/lib/gstreamer-1.0:${pkgs.gst_all_1.gst-plugins-good}/lib/gstreamer-1.0:${pkgs.gst_all_1.gst-plugins-bad}/lib/gstreamer-1.0"
'';
};
};
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

@@ -13,8 +13,10 @@ android.useAndroidX=true
android.nonTransitiveRClass=true
org.gradle.unsafe.configuration-cache=false
kotlinVersion=2.0.20
spotlessVersion=7.0.2
shadowJarVersion=8.3.2
buildconfigVersion=5.5.0
grgitVersion=5.2.2
kotlinVersion=2.3.10
spotlessVersion=8.2.1
shadowJarVersion=9.3.1
buildconfigVersion=6.0.7
# We should probably stop using grgit, see:
# https://andrewoberstar.com/posts/2024-04-02-dont-commit-to-grgit/
grgitVersion=5.3.3

Binary file not shown.

View File

@@ -1,6 +1,8 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
distributionSha256Sum=f1771298a70f6db5a29daf62378c4e18a17fc33c9ba6b14362e0cdf40610380d
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

34
gradlew vendored
View File

@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -83,10 +85,9 @@ done
# This is normally unused
# shellcheck disable=SC2034
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"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -133,10 +134,13 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
@@ -144,7 +148,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +156,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,11 +201,15 @@ if "$cygwin" || "$msys" ; then
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
# 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, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \

22
gradlew.bat vendored
View File

@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail

View File

@@ -1,8 +1,8 @@
VITE_FIRMWARE_TOOL_URL=https://fw-tool-api.slimevr.io
VITE_FIRMWARE_TOOL_S3_URL=https://fw-tool-bucket.slimevr.io
FIRMWARE_TOOL_SCHEMA_URL=https://fw-tool-api.slimevr.io/api-json
VITE_FIRMWARE_TOOL_URL=https://fw-tool-api-v2.slimevr.io
VITE_FIRMWARE_TOOL_S3_URL=https://fw-tool-bucket-v2.slimevr.io
FIRMWARE_TOOL_SCHEMA_URL=https://fw-tool-api-v2.slimevr.io/api-json
# VITE_FIRMWARE_TOOL_URL=http://localhost:3000
# VITE_FIRMWARE_TOOL_S3_URL=http://localhost:9000
# VITE_FIRMWARE_TOOL_S3_URL=http://localhost:9099
# FIRMWARE_TOOL_SCHEMA_URL=http://localhost:3000/api-json

4
gui/.gitignore vendored
View File

@@ -29,9 +29,13 @@ yarn-error.log*
/dist
/stats.html
vite.config.ts.timestamp*
electron.vite.config.*.mjs
# eslint
.eslintcache
# Sentry Config File
.env.sentry-build-plugin
# electron
out/

70
gui/electron-builder.yml Normal file
View File

@@ -0,0 +1,70 @@
appId: dev.slimevr.SlimeVR
productName: SlimeVR
# Global naming pattern
artifactName: "${productName}-${version}-${os}-${arch}.${ext}"
directories:
output: dist/artifacts/${os}
asar: true
asarUnpack:
- out/main/chunks/*.jar
electronLanguages:
- en-US
files:
- out/**/*
- index.html
- package.json
- node_modules/**
- "!node_modules/*/{README,readme,README.md,readme.md,CHANGELOG,CHANGELOG.md,changelog.md}"
- "!node_modules/*/{test,tests,__tests__,docs,doc,example,examples}"
- "!node_modules/*/.{git,github,vscode,editorconfig,eslintrc,prettierrc}"
- "!node_modules/**/*.{map,ts,tsx,d.ts}"
- "!**/.DS_Store"
linux:
category: Game
artifactName: "${productName}-${arch}.${ext}"
target:
- target: AppImage
- target: deb
- target: rpm
extraFiles:
- from: "../server/desktop/build/libs/slimevr.jar"
to: "."
- from: "./electron/resources/69-slimevr-devices.rules"
to: "."
icon: "./electron/resources/icons"
deb:
depends: [openjdk-17-jre-headless, udev]
afterInstall: "./electron/resources/scripts/postinstall.sh"
afterRemove: "./electron/resources/scripts/postremove.sh"
rpm:
depends: [java-latest-openjdk, udev]
afterInstall: "./electron/resources/scripts/postinstall.sh"
afterRemove: "./electron/resources/scripts/postremove.sh"
win:
artifactName: "${productName}-${os}-${arch}.${ext}"
target: zip
icon: "./electron/resources/icons/icon.ico"
extraFiles:
- from: "../server/desktop/build/libs/slimevr.jar"
to: "."
- from: "../server/core/resources"
to: "."
filter: ["**/*"]
mac:
target: dmg
artifactName: "SlimeVR-mac.${ext}"
x64ArchFiles: "**/register-protocol-handler.node"
icon: "./electron/resources/icons/icon.icns"
extraFiles:
- from: "../server/desktop/build/libs/slimevr.jar"
to: "Resources/slimevr.jar"

View File

@@ -0,0 +1,47 @@
import { defineConfig } from 'electron-vite'
import { resolve } from 'path'
import rendererConfig from './vite.config' // Import your existing React config
export default defineConfig({
main: {
build: {
rollupOptions: {
input: resolve(__dirname, 'electron/main/index.ts'),
external: [
'pino',
'pino-pretty',
'pino-roll',
'commander',
'open'
]
}
}
},
preload: {
build: {
rollupOptions: {
input: resolve(__dirname, 'electron/preload/index.ts'),
output: {
format: 'cjs', // Force CJS for the preload
entryFileNames: 'index.js' // Change back to .js
}
}
}
},
renderer: {
...rendererConfig,
root: '.',
build: {
commonjsOptions: {
// Force Rollup to treat the protocol directory as CommonJS
// even though it's not in node_modules
include: [/solarxr-protocol/, /node_modules/],
// Required for Flatbuffers/Generated code interop
transformMixedEsModules: true,
},
rollupOptions: {
input: resolve(__dirname, 'index.html')
}
}
}
})

1
gui/electron/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
resources/java-version/JavaVersion.class

12
gui/electron/main/cli.ts Normal file
View File

@@ -0,0 +1,12 @@
import { program } from "commander";
program
.option('-p --path <path>', 'set launch path')
.option(
'--skip-server-if-running',
'gui will not launch the server if it is already running'
)
.allowUnknownOption();
program.parse(process.argv);
export const options = program.opts();

448
gui/electron/main/index.ts Normal file
View File

@@ -0,0 +1,448 @@
import {
app,
BrowserWindow,
dialog,
Menu,
nativeImage,
net,
protocol,
screen,
shell,
Tray,
} from 'electron';
import { IPC_CHANNELS } from '../shared';
import path, { dirname, join } from 'path';
import open from 'open';
import trayIcon from '../resources/icons/icon.png?asset';
import appleTrayIcon from '../resources/icons/appleTrayIcon.png?asset';
import { readFile, stat } from 'fs/promises';
import { getPlatform, handleIpc, isPortAvailable } from './utils';
import {
findServerJar,
findSystemJRE,
getGuiDataFolder,
getLogsFolder,
getServerDataFolder,
getWindowStateFile,
} from './paths';
import { stores } from './store';
import { logger } from './logger';
import { writeFileSync } from 'node:fs';
import { spawn } from 'node:child_process';
import { discordPresence } from './presence';
import { options } from './cli';
import { ServerStatusEvent } from 'electron/preload/interface';
import { mkdir } from 'node:fs/promises';
import { MenuItem } from 'electron/main';
app.setPath('userData', getGuiDataFolder())
app.setPath('sessionData', join(getGuiDataFolder(), 'electron'))
// Register custom protocol to handle asset paths with leading slashes
protocol.registerSchemesAsPrivileged([
{
scheme: 'app',
privileges: {
standard: true,
secure: true,
supportFetchAPI: true,
corsEnabled: true,
},
},
]);
let mainWindow: BrowserWindow | null = null;
handleIpc(IPC_CHANNELS.GH_FETCH, async (e, options) => {
if (options.type === 'fw-releases') {
return fetch(
'https://api.github.com/repos/SlimeVR/SlimeVR-Tracker-ESP/releases'
).then((res) => res.json());
}
if (options.type === 'asset') {
if (
!options.url.startsWith(
'https://github.com/SlimeVR/SlimeVR-Tracker-ESP/releases/download'
)
)
return null;
return fetch(options.url).then((res) => res.json());
}
});
handleIpc(IPC_CHANNELS.OS_STATS, async () => {
return {
type: getPlatform(),
};
});
handleIpc(IPC_CHANNELS.I18N_OVERRIDE, async () => {
const overridefile = join(getServerDataFolder(), 'override.ftl');
const exists = await stat(overridefile)
.then(() => true)
.catch(() => false);
if (!exists) return false;
return readFile(overridefile, { encoding: 'utf-8' });
});
handleIpc(IPC_CHANNELS.LOG, (e, type, ...args) => {
let payload: Record<string, unknown> = {};
const messageParts: unknown[] = [];
args.forEach((arg) => {
if (arg instanceof Error) {
payload.err = arg;
} else if (typeof arg === 'object' && arg !== null) {
payload = { ...payload, ...arg };
} else {
messageParts.push(arg);
}
});
const msg = messageParts.join(' ');
switch (type) {
case 'error':
logger.error(payload, msg);
break;
case 'warn':
logger.warn(payload, msg);
break;
default:
logger.info(payload, msg);
}
});
handleIpc(IPC_CHANNELS.OPEN_URL, (e, url) => {
const allowed_urls = [
/steam:\/\/.*/,
/ms-settings:network$/,
/https:\/\/.*\.slimevr\.dev.*/,
/https:\/\/github\.com\/.*/,
/https:\/\/discord\.gg\/slimevr$/,
];
if (allowed_urls.find((a) => url.match(a))) open(url);
else logger.error({ url }, 'attempted to open non-whitelisted URL');
});
handleIpc(IPC_CHANNELS.STORAGE, async (e, { type, method, key, value }) => {
const store = stores[type];
if (!store) throw new Error(`Storage type ${type} not found`);
switch (method) {
case 'get':
return store.get(key!);
case 'set':
return store.set(key!, value);
case 'delete':
return store.delete(key!);
case 'save':
return store.save();
}
});
handleIpc(IPC_CHANNELS.DISCORD_PRESENCE, async (e, options) => {
if (options.enable && !discordPresence.state.ready) {
await discordPresence.connect();
discordPresence.updateActivity(options.activity);
} else if (!options.enable && discordPresence.state.ready) {
discordPresence.destroy();
}
});
handleIpc(IPC_CHANNELS.OPEN_FILE, (e, folder) => {
const requestedPath = path.resolve(folder);
const isAllowed = [getServerDataFolder(), getGuiDataFolder(), getLogsFolder()].some(
(parent) => {
const absoluteParent = path.resolve(parent);
const relative = path.relative(absoluteParent, requestedPath);
return !relative.includes('..') && !path.isAbsolute(relative);
}
);
if (isAllowed) {
shell.openPath(requestedPath);
} else {
logger.error({ path: requestedPath }, 'Blocked unauthorized path');
}
});
handleIpc(IPC_CHANNELS.GET_FOLDER, (e, folder) => {
switch (folder) {
case 'config':
return getGuiDataFolder();
case 'logs':
return getLogsFolder();
}
});
const windowStateFile = await readFile(getWindowStateFile(), {
encoding: 'utf-8',
}).catch(() => null);
const defaultWindowState: {
width: number;
height: number;
x?: number;
y?: number;
} = {
width: 1289.0,
height: 709.0,
x: undefined,
y: undefined,
};
const windowState = windowStateFile ? JSON.parse(windowStateFile) : defaultWindowState;
const MIN_WIDTH = 393;
const MIN_HEIGHT = 667;
function validateWindowState(state: typeof defaultWindowState) {
if (state.x === undefined || state.y === undefined) {
return state;
}
const displays = screen.getAllDisplays();
const isVisible = displays.some((display) => {
return (
state.x! >= display.bounds.x &&
state.y! >= display.bounds.y &&
state.x! + state.width <= display.bounds.x + display.bounds.width &&
state.y! + state.height <= display.bounds.y + display.bounds.height
);
});
const minWidth = MIN_WIDTH;
const minHeight = MIN_HEIGHT;
if (!isVisible || state.width < minWidth || state.height < minHeight) {
return defaultWindowState;
}
return state;
}
const saveWindowState = async () => {
await mkdir(dirname(getWindowStateFile()), { recursive: true });
writeFileSync(getWindowStateFile(), JSON.stringify(windowState));
};
function createWindow() {
const validatedState = validateWindowState(windowState);
mainWindow = new BrowserWindow({
width: validatedState.width,
height: validatedState.height,
x: validatedState.x,
y: validatedState.y,
minHeight: MIN_HEIGHT,
minWidth: MIN_WIDTH,
movable: true,
frame: false,
roundedCorners: true,
webPreferences: {
preload: join(__dirname, '../preload/index.js'),
nodeIntegration: false,
contextIsolation: true,
devTools: true,
},
});
if (process.env.ELECTRON_RENDERER_URL) {
mainWindow.loadURL(process.env.ELECTRON_RENDERER_URL);
mainWindow.webContents.openDevTools();
} else {
mainWindow.loadURL('app://./index.html');
}
mainWindow.on('closed', () => {
mainWindow = null;
});
handleIpc('window-actions', (e, action) => {
switch (action) {
case 'close':
mainWindow?.close();
break;
case 'minimize':
mainWindow?.minimize();
break;
case 'maximize':
mainWindow?.maximize();
break;
}
});
handleIpc('open-dialog', (e, options) => dialog.showOpenDialog(options));
handleIpc('save-dialog', (e, options) => dialog.showSaveDialog(options));
const icon = nativeImage.createFromPath(
getPlatform() === 'macos' ? appleTrayIcon : trayIcon
);
const tray = new Tray(icon);
tray.setToolTip('SlimeVR');
tray.on('click', () => {
mainWindow?.show();
});
const contextMenu = Menu.buildFromTemplate([
{
label: 'Show',
click: () => {
mainWindow?.show();
},
},
{
label: 'Hide',
click: () => {
mainWindow?.hide();
},
},
{ role: 'quit' },
]);
tray.setContextMenu(contextMenu);
const updateWindowState = () => {
if (!mainWindow) return;
windowState.minimized = mainWindow.isMinimized();
if (!mainWindow.isMinimized() && !mainWindow.isMaximized()) {
const bounds = mainWindow.getBounds();
windowState.width = bounds.width;
windowState.height = bounds.height;
windowState.x = bounds.x;
windowState.y = bounds.y;
}
};
mainWindow.on('move', updateWindowState);
mainWindow.on('resize', updateWindowState);
mainWindow.on('minimize', updateWindowState);
mainWindow.on('maximize', updateWindowState);
mainWindow.webContents.on('context-menu', (event, params) => {
const menu = new Menu();
menu.append(
new MenuItem({
label: 'Inspect Element',
click: () => {
mainWindow?.webContents.inspectElement(params.x, params.y);
},
})
);
menu.append(new MenuItem({ type: 'separator' }));
menu.append(new MenuItem({ label: 'Copy', role: 'copy' }));
menu.append(new MenuItem({ label: 'Paste', role: 'paste' }));
if (mainWindow)
menu.popup({ window: mainWindow });
});
}
const checkEnvironmentVariables = () => {
const to_check = ['_JAVA_OPTIONS', 'JAVA_TOOL_OPTIONS'];
const set = to_check.filter((env) => !!process.env[env]);
if (set.length > 0) {
dialog.showErrorBox(
'SlimeVR',
`You have environment variables ${set.join(', ')} set, which may cause the SlimeVR Server to fail to launch properly.`
);
app.exit(0);
}
};
const isServerRunning = async () => !(await isPortAvailable(21110));
const spawnServer = async () => {
if (options.skipServerIfRunning && (await isServerRunning())) {
logger.info(
{ skipServerIfRunning: options.skipServerIfRunning },
'Server is already running, skipping server start'
);
return;
}
const serverJar = findServerJar();
if (!serverJar) {
logger.info('server jar not found, skipping');
return;
}
const sharedDir = dirname(serverJar);
const javaBin = await findSystemJRE(sharedDir);
if (!javaBin) {
dialog.showErrorBox(
'SlimeVR',
`Couldn't find a compatible Java version, please download Java 17 or higher`
);
app.exit(0);
return;
}
logger.info({ javaBin, serverJar }, 'Found Java and server jar');
const process = spawn(javaBin, ['-Xmx128M', '-jar', serverJar, 'run']);
process.stdout?.on('data', (message) => {
mainWindow?.webContents.send(IPC_CHANNELS.SERVER_STATUS, {
message: message.toString(),
type: 'stdout',
} satisfies ServerStatusEvent);
});
process.stderr?.on('data', (message) => {
mainWindow?.webContents.send(IPC_CHANNELS.SERVER_STATUS, {
message: message.toString(),
type: 'stderr',
} satisfies ServerStatusEvent);
});
return {
process: process,
close: () => {
process.kill('SIGTERM');
},
};
};
app.whenReady().then(async () => {
// Register protocol handler for app:// scheme to handle assets with leading slashes
protocol.handle('app', (request) => {
const url = request.url.slice('app://'.length);
const filePath = path.normalize(join(__dirname, '../renderer', url));
return net.fetch('file://' + filePath);
});
checkEnvironmentVariables();
const server = await spawnServer();
createWindow();
logger.info('SlimeVR started!');
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
process.on('exit', () => {
server?.close();
});
app.on('before-quit', async () => {
logger.info('App quitting, saving...');
server?.close();
stores.settings.save();
stores.cache.save();
discordPresence.destroy();
await saveWindowState();
});
});

View File

@@ -0,0 +1,26 @@
import pino from 'pino';
import { getLogsFolder } from './paths';
import { join } from 'node:path';
const transport = pino.transport({
targets: [
{
target: 'pino-roll',
options: {
file: join(getLogsFolder(), 'slimevr-gui.log'),
frequency: 'daily',
size: '10m',
mkdir: true,
limit: { count: 7 },
},
level: 'info',
},
{
target: 'pino-pretty',
options: { colorize: true },
level: 'debug',
},
],
});
export const logger = pino(transport);

120
gui/electron/main/paths.ts Normal file
View File

@@ -0,0 +1,120 @@
import { app } from 'electron';
import path, { join } from 'node:path';
import { getPlatform } from './utils';
import { glob } from 'glob';
import { spawn } from 'node:child_process';
import javaVersionJar from '../resources/java-version/JavaVersion.jar?asset&asarUnpack';
import { existsSync } from 'node:fs';
import { options } from './cli';
const javaBin = getPlatform() === 'windows' ? 'java.exe' : 'java';
export const CONFIG_IDENTIFIER = 'dev.slimevr.SlimeVR';
export const getGuiDataFolder = () => {
const platform = getPlatform();
switch (platform) {
case 'linux':
if (process.env['XDG_DATA_HOME'])
return join(process.env['XDG_DATA_HOME'], CONFIG_IDENTIFIER);
return join(app.getPath('home'), '.local/share', CONFIG_IDENTIFIER);
case 'windows':
return join(app.getPath('appData'), CONFIG_IDENTIFIER);
case 'macos':
return join(
app.getPath('home'),
'Library/Application Support',
CONFIG_IDENTIFIER
);
case 'unknown':
throw 'error';
}
};
export const getServerDataFolder = () => {
const platform = getPlatform();
switch (platform) {
case 'linux':
case 'windows':
case 'macos':
return join(app.getPath('appData'), CONFIG_IDENTIFIER);
case 'unknown':
throw 'error';
}
};
export const getLogsFolder = () => {
return join(getGuiDataFolder(), 'logs');
};
export const getWindowStateFile = () =>
join(getServerDataFolder(), '.window-state.json');
const localJavaBin = (sharedDir: string) => {
const jre = join(sharedDir, 'jre/bin', javaBin);
return jre;
};
const javaHomeBin = () => {
const javaHome = process.env['JAVA_HOME'];
if (!javaHome) return null;
const javaHomeJre = join(javaHome, 'bin', javaBin);
return javaHomeJre;
};
export const findSystemJRE = async (sharedDir: string) => {
const paths = [
localJavaBin(sharedDir),
javaHomeBin(),
...(await glob('/usr/lib/jvm/*/bin/' + javaBin)),
...(await glob('/Library/Java/JavaVirtualMachines/*/Contents/Home/bin/' + javaBin)),
];
for (const path of paths) {
if (!path) continue;
const version = await new Promise<number | null>((resolve) => {
const process = spawn(path, ['-jar', javaVersionJar], {});
let version: number | null = null;
process.stdout?.once('data', (data) => {
try {
version = parseFloat(data.toString());
} catch {
version = null;
}
});
process.on('error', () => {
resolve(null);
});
process.on('exit', () => {
resolve(version);
});
});
if (version && version >= 17) return path;
}
return null;
};
export const findServerJar = () => {
const paths = [
options.path ? path.resolve(options.path) : undefined,
// AppImage passes the fakeroot in `APPDIR` env var.
process.env['APPDIR']
? path.resolve(join(process.env['APPDIR'], 'usr/share/slimevr/'))
: undefined,
path.dirname(app.getPath('exe')),
// For flatpack container
path.resolve('/app/share/slimevr/'),
path.resolve('/usr/share/slimevr/'),
];
return paths
.filter((p) => !!p)
.map((p) => join(p!, 'slimevr.jar'))
.find((p) => existsSync(p));
};

View File

@@ -0,0 +1,49 @@
import { Client } from '@xhayper/discord-rpc';
import { logger } from './logger';
export const richPresence = () => {
const initialState = () => ({ ready: false, start: Date.now() });
const state = initialState();
const client = new Client({
clientId: '1237970689009647639',
transport: { type: 'ipc' },
});
client.on('ready', () => {
state.ready = true;
});
client.on('disconnected', () => {
state.ready = false;
});
return {
state,
connect: async () => {
try {
await client.login();
} catch (e) {
logger.error(e, 'unable to connect to discord rpc');
}
},
updateActivity: (content: string) => {
if (!state.ready) return;
client.user
?.setActivity({
state: content,
largeImageKey: 'icon',
startTimestamp: state.start,
})
.catch((e) => {
logger.error(e, 'unable to update rpc activity');
});
},
destroy: () => {
client.destroy();
Object.assign(state, initialState());
},
};
};
export const discordPresence = richPresence();

View File

@@ -0,0 +1,76 @@
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
import { dirname, join } from "path";
import { logger } from "./logger";
import { getGuiDataFolder } from "./paths";
export class CustomStore {
private data: Record<string, unknown> = {};
private saveTimeout: NodeJS.Timeout | null = null;
private filePath: string;
private debounceMs: number;
constructor(filePath: string, debounceMs: number = 2000) {
this.filePath = filePath;
this.debounceMs = debounceMs;
this.load();
}
private load() {
try {
if (existsSync(this.filePath)) {
const raw = readFileSync(this.filePath, 'utf-8');
this.data = JSON.parse(raw);
}
} catch (err) {
logger.error(err, `Failed to load store at ${this.filePath}`);
this.data = {};
}
}
/** Set a key and trigger the debounced auto-save */
set(key: string, value: unknown) {
this.data[key] = value;
this.triggerAutoSave();
}
get<T>(key: string): T | undefined {
return this.data[key] as T;
}
delete(key: string): boolean {
if (key in this.data) {
delete this.data[key];
this.triggerAutoSave();
return true;
}
return false;
}
private triggerAutoSave() {
if (this.saveTimeout) clearTimeout(this.saveTimeout);
this.saveTimeout = setTimeout(() => {
this.save();
}, this.debounceMs);
}
save(): boolean {
try {
if (this.saveTimeout) clearTimeout(this.saveTimeout);
const dir = dirname(this.filePath);
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
writeFileSync(this.filePath, JSON.stringify(this.data, null, 2), 'utf-8');
return true;
} catch (err) {
logger.error(err, 'Save failed', this.filePath);
return false;
}
}
}
export const stores = {
settings: new CustomStore(join(getGuiDataFolder(), 'gui-settings.dat'), 1000),
cache: new CustomStore(join(getGuiDataFolder(), 'gui-cache.dat'), 100),
};

View File

@@ -0,0 +1,50 @@
import os from 'os'
import { OSStats } from "../preload/interface";
import { ipcMain, IpcMainInvokeEvent } from 'electron';
import { IpcInvokeMap } from '../shared';
import net from 'net'
export const getPlatform = (): OSStats['type'] => {
switch (os.platform()) {
case 'darwin':
return 'macos';
case 'win32':
return 'windows';
case 'linux':
return 'linux';
default:
return 'unknown';
}
};
export const isPortAvailable = (port: number) => {
return new Promise((resolve) => {
const s = net.createServer();
s.once('error', (err) => {
s.close();
if ("code" in err && err["code"] == "EADDRINUSE") {
resolve(false);
} else {
resolve(false);
}
});
s.once('listening', () => {
resolve(true);
s.close();
});
s.listen(port);
});
};
export function handleIpc<K extends keyof IpcInvokeMap>(
channel: K,
handler: (
event: IpcMainInvokeEvent,
...args: Parameters<IpcInvokeMap[K]>
) => ReturnType<IpcInvokeMap[K]>
) {
ipcMain.handle(channel, (event, ...args) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return handler(event, ...args as any);
});
}

View File

@@ -0,0 +1,39 @@
import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
import { IElectronAPI, ServerStatusEvent } from './interface';
import { IPC_CHANNELS } from '../shared';
contextBridge.exposeInMainWorld('electronAPI', {
onServerStatus: (callback) => {
const subscription = (_event: IpcRendererEvent, value: ServerStatusEvent) =>
callback(value);
ipcRenderer.on(IPC_CHANNELS.SERVER_STATUS, subscription);
return () => ipcRenderer.removeListener(IPC_CHANNELS.SERVER_STATUS, subscription);
},
openUrl: (url) => ipcRenderer.invoke(IPC_CHANNELS.OPEN_URL, url),
osStats: () => ipcRenderer.invoke(IPC_CHANNELS.OS_STATS),
close: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'close'),
minimize: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'minimize'),
maximize: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'maximize'),
getStorage: async (type) => {
return {
get: (key) =>
ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'get', key }),
set: (key, value) =>
ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'set', key, value }),
delete: (key) =>
ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'delete', key }),
save: () => ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'save' }),
};
},
log: (type, ...args) => ipcRenderer.invoke(IPC_CHANNELS.LOG, type, ...args),
i18nOverride: async () => ipcRenderer.invoke(IPC_CHANNELS.I18N_OVERRIDE),
showDecorations: () => {},
setTranslations: () => {},
openDialog: (options) => ipcRenderer.invoke(IPC_CHANNELS.OPEN_DIALOG, options),
saveDialog: (options) => ipcRenderer.invoke(IPC_CHANNELS.SAVE_DIALOG, options),
openConfigFolder: async () => ipcRenderer.invoke(IPC_CHANNELS.OPEN_FILE, await ipcRenderer.invoke(IPC_CHANNELS.GET_FOLDER, 'config')),
openLogsFolder: async () => ipcRenderer.invoke(IPC_CHANNELS.OPEN_FILE, await ipcRenderer.invoke(IPC_CHANNELS.GET_FOLDER, 'logs')),
openFile: (path) => ipcRenderer.invoke(IPC_CHANNELS.OPEN_FILE, path),
ghGet: (req) => ipcRenderer.invoke(IPC_CHANNELS.GH_FETCH, req),
setPresence: (options) => ipcRenderer.invoke(IPC_CHANNELS.DISCORD_PRESENCE, options)
} satisfies IElectronAPI);

64
gui/electron/preload/interface.d.ts vendored Normal file
View File

@@ -0,0 +1,64 @@
import {
OpenDialogOptions,
OpenDialogReturnValue,
SaveDialogOptions,
SaveDialogReturnValue,
} from 'electron';
export type ServerStatusEvent = {
type: 'stdout' | 'stderr' | 'error' | 'terminated' | 'other';
message: string;
};
export type OSStats = {
type: 'linux' | 'windows' | 'macos' | 'unknown';
};
export interface CrossStorage {
set(key: string, value: unknown): Promise<void>;
get<T>(key: string): Promise<T | undefined>;
delete(key: string): Promise<boolean>;
save(): Promise<boolean>;
}
export type GHGet = { type: 'fw-releases' } | { type: 'asset'; url: string };
export type GHReturn = {
asset: [number, string][] | null;
['fw-releases']:
| {
assets: { browser_download_url: string; name: string; digest: string }[];
prerelease: boolean;
tag_name: string;
body: string;
}[]
| null;
};
export type DiscordPresence = { enable: false } | { enable: true, activity: string }
export interface IElectronAPI {
onServerStatus: (cb: (data: ServerStatusEvent) => void) => () => void;
openUrl: (url: string) => Promise<void>;
osStats: () => Promise<OSStats>;
openLogsFolder: () => Promise<void>;
openConfigFolder: () => Promise<void>;
close: () => void;
minimize: () => void;
maximize: () => void;
showDecorations: (decorations: boolean) => void;
setTranslations: (translations: Record<string, string>) => void;
i18nOverride: () => Promise<string | false>;
getStorage: (type: 'settings' | 'cache') => Promise<CrossStorage>;
openDialog: (options: OpenDialogOptions) => Promise<OpenDialogReturnValue>;
saveDialog: (options: SaveDialogOptions) => Promise<SaveDialogReturnValue>;
log: (type: 'info' | 'error' | 'warn', ...args: unknown[]) => void;
openFile: (path: string) => void;
ghGet: <T extends GHGet>(options: T) => Promise<GHReturn[T['type']]>;
setPresence: (options: DiscordPresence) => void;
}
declare global {
interface Window {
electronAPI: IElectronAPI;
}
}

View File

@@ -18,6 +18,8 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="7522", MODE="0660
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="7523", MODE="0660", TAG+="uaccess"
# CH341
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="5523", MODE="0660", TAG+="uaccess"
# CH343
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D3", MODE="0660", TAG+="uaccess"
# CH9102x
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D4", MODE="0660", TAG+="uaccess"
@@ -26,8 +28,10 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D4", MODE="0660
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10C4", ATTRS{idProduct}=="EA60", MODE="0660", TAG+="uaccess"
## Espressif
# ESP32-C3
# ESP32-S3 / ESP32-C3 / ESP32-C5 / ESP32-C6 / ESP32-C61 / ESP32-H2 / ESP32-P4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303A", ATTRS{idProduct}=="1001", MODE="0660", TAG+="uaccess"
# ESP32-S2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303A", ATTRS{idProduct}=="0002", MODE="0660", TAG+="uaccess"
## FTDI
# FT232BM/L/Q, FT245BM/L/Q

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 747 B

After

Width:  |  Height:  |  Size: 747 B

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 698 B

After

Width:  |  Height:  |  Size: 698 B

View File

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1008 B

After

Width:  |  Height:  |  Size: 1008 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 922 B

After

Width:  |  Height:  |  Size: 922 B

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 579 B

View File

Before

Width:  |  Height:  |  Size: 555 B

After

Width:  |  Height:  |  Size: 555 B

View File

Before

Width:  |  Height:  |  Size: 848 B

After

Width:  |  Height:  |  Size: 848 B

View File

Before

Width:  |  Height:  |  Size: 848 B

After

Width:  |  Height:  |  Size: 848 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 645 B

After

Width:  |  Height:  |  Size: 645 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 848 B

After

Width:  |  Height:  |  Size: 848 B

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

View File

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

View File

@@ -0,0 +1,26 @@
#!/bin/bash
SRC="/opt/SlimeVR/69-slimevr-devices.rules"
DESTDIRS=("/lib" "/usr/lib")
if [[ ! -f "$SRC" ]]; then
echo "SlimeVR udev rules not found, serial console and dongles may not work" >&2
exit 0
fi
echo "Configuring SlimeVR udev rules..."
for DIR in "${DESTDIRS[@]}"; do
if [[ -d "$DIR" && ! -h "$DIR" ]]; then
echo "Copying rules to $DIR"
install -Dm644 "$SRC" "$DIR/udev/rules.d/69-slimevr-devices.rules"
if command -v udevadm >/dev/null 2>&1; then
udevadm control --reload-rules
udevadm trigger
fi
exit 0
fi
done
echo "Couldn't copy SlimeVR udev rules, serial console and dongles may not work" >&2

View File

@@ -0,0 +1,8 @@
#!/bin/bash
echo "Removing SlimeVR udev rules..."
rm -f "/lib/udev/rules.d/69-slimevr-devices.rules"
rm -f "/usr/lib/udev/rules.d/69-slimevr-devices.rules"
if command -v udevadm >/dev/null 2>&1; then
udevadm control --reload-rules
fi

49
gui/electron/shared.ts Normal file
View File

@@ -0,0 +1,49 @@
import {
OpenDialogOptions,
OpenDialogReturnValue,
SaveDialogOptions,
SaveDialogReturnValue,
} from 'electron';
import { DiscordPresence, GHGet, GHReturn, OSStats } from './preload/interface';
export const IPC_CHANNELS = {
SERVER_STATUS: 'server-status',
OPEN_URL: 'open-url',
OS_STATS: 'os-stats',
WINDOW_ACTIONS: 'window-actions',
LOG: 'log',
STORAGE: 'storage',
OPEN_DIALOG: 'open-dialog',
SAVE_DIALOG: 'save-dialog',
I18N_OVERRIDE: 'i18n-override',
OPEN_FILE: 'open-file',
GET_FOLDER: 'get-folder',
GH_FETCH: 'gh-fetch',
DISCORD_PRESENCE: 'discord-presence'
} as const;
export interface IpcInvokeMap {
[IPC_CHANNELS.OPEN_URL]: (url: string) => void;
[IPC_CHANNELS.OS_STATS]: () => Promise<OSStats>;
[IPC_CHANNELS.WINDOW_ACTIONS]: (action: 'close' | 'minimize' | 'maximize') => void;
[IPC_CHANNELS.LOG]: (type: 'info' | 'error' | 'warn', ...args: unknown[]) => void;
[IPC_CHANNELS.OPEN_DIALOG]: (
options: OpenDialogOptions
) => Promise<OpenDialogReturnValue>;
[IPC_CHANNELS.SAVE_DIALOG]: (
options: SaveDialogOptions
) => Promise<SaveDialogReturnValue>;
[IPC_CHANNELS.I18N_OVERRIDE]: () => Promise<string | false>;
[IPC_CHANNELS.STORAGE]: (args: {
type: 'settings' | 'cache';
method: 'get' | 'set' | 'delete' | 'save';
key?: string;
value?: unknown;
}) => Promise<unknown>;
[IPC_CHANNELS.OPEN_FILE]: (path: string) => void;
[IPC_CHANNELS.GET_FOLDER]: (folder: 'config' | 'logs') => string;
[IPC_CHANNELS.GH_FETCH]: <T extends GHGet>(
options: T
) => Promise<GHReturn[T['type']]>;
[IPC_CHANNELS.DISCORD_PRESENCE]: (options: DiscordPresence) => void;
}

View File

@@ -2,6 +2,7 @@ import { FlatCompat } from '@eslint/eslintrc';
import eslint from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import stylistic from '@stylistic/eslint-plugin';
const compat = new FlatCompat();
@@ -41,6 +42,7 @@ export const gui = [
files: ['src/**/*.{js,jsx,ts,tsx,json}'],
plugins: {
'@typescript-eslint': tseslint.plugin,
'@stylistic': stylistic,
},
rules: {
'react/react-in-jsx-scope': 'off',
@@ -60,6 +62,7 @@ export const gui = [
ignoreRestSiblings: true,
},
],
'@stylistic/jsx-self-closing-comp': 'error',
},
settings: {
'import/resolver': {

View File

@@ -1,104 +1,113 @@
{
"name": "slimevr-ui",
"version": "0.5.1",
"private": true,
"name": "slimevr",
"version": "0.0.0",
"author": "SlimeVR Team <contact@slimevr.dev>",
"homepage": "https://slimevr.dev",
"type": "module",
"dependencies": {
"@ryuziii/discord-rpc": "1.0.1-rc.1",
"@xhayper/discord-rpc": "^1.3.0",
"commander": "^14.0.3",
"discord-rich-presence": "^0.0.8",
"glob": "^13.0.3",
"open": "^11.0.0",
"pino": "^10.3.1",
"pino-pretty": "^13.1.3",
"pino-roll": "^4.0.0"
},
"scripts": {
"start": "vite --force",
"gui": "electron-vite dev --config electron.vite.config.ts --watch",
"build": "electron-vite build --config electron.vite.config.ts",
"package": "electron-builder",
"package:build": "pnpm build && pnpm package",
"preview": "electron-vite preview --config electron.vite.config.ts",
"skipbundler": "vite build",
"lint": "tsc --noEmit && eslint --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && prettier --check \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"lint:fix": "tsc --noEmit && eslint --fix --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && pnpm run format",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"javaversion-build": "cd electron/resources/java-version/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class",
"gen:javaversion": "cd electron/resources/java-version/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class",
"gen:firmware-tool": "openapi-codegen gen firmwareTool"
},
"devDependencies": {
"@dword-design/eslint-plugin-import-alias": "^4.0.9",
"@electron/asar": "^4.0.1",
"@fluent/bundle": "^0.18.0",
"@fluent/react": "^0.15.2",
"@fontsource/poppins": "^5.1.0",
"@formatjs/intl-localematcher": "^0.2.32",
"@hookform/resolvers": "^3.6.0",
"@openapi-codegen/cli": "^3.1.0",
"@openapi-codegen/typescript": "^8.0.2",
"@react-hookz/deep-equal": "^3.0.3",
"@react-three/drei": "^9.114.3",
"@react-three/fiber": "^8.17.10",
"@sentry/react": "^9.9.0",
"@sentry/react": "10.29.0",
"@sentry/vite-plugin": "^2.22.7",
"@stylistic/eslint-plugin": "^5.5.0",
"@tailwindcss/forms": "^0.5.9",
"@tailwindcss/typography": "^0.5.15",
"@tanstack/react-query": "^5.48.0",
"@tauri-apps/api": "^2.0.2",
"@tauri-apps/plugin-dialog": "^2.0.0",
"@tauri-apps/plugin-fs": "2.4.1",
"@tauri-apps/plugin-http": "^2.5.0",
"@tauri-apps/plugin-os": "^2.0.0",
"@tauri-apps/plugin-shell": "^2.0.0",
"@tauri-apps/plugin-store": "^2.0.0",
"@tweenjs/tween.js": "^25.0.0",
"@twemoji/svg": "^15.0.0",
"browser-fs-access": "^0.35.0",
"classnames": "^2.5.1",
"flatbuffers": "22.10.26",
"intl-pluralrules": "^2.0.1",
"ip-num": "^1.5.1",
"jotai": "^2.12.2",
"prompts": "^2.4.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.0.13",
"react-helmet": "^6.1.0",
"react-hook-form": "^7.53.0",
"react-markdown": "^9.0.1",
"react-modal": "^3.16.1",
"react-responsive": "^10.0.0",
"react-router-dom": "^6.26.2",
"remark-gfm": "^4.0.0",
"semver": "^7.6.3",
"solarxr-protocol": "file:../solarxr-protocol",
"three": "^0.163.0",
"ts-pattern": "^5.4.0",
"typescript": "^5.6.3",
"use-double-tap": "^1.3.6",
"yup": "^1.4.0"
},
"scripts": {
"start": "vite --force",
"build": "vite build",
"dev": "tauri dev",
"skipbundler": "tauri build --no-bundle",
"tauri": "tauri",
"lint": "tsc --noEmit && eslint --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && prettier --check \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"lint:fix": "tsc --noEmit && eslint --fix --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && pnpm run format",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"preview-vite": "vite preview",
"javaversion-build": "cd src-tauri/src/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class",
"gen:javaversion": "cd src-tauri/src/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class",
"gen:firmware-tool": "openapi-codegen gen firmwareTool",
"gen:icons": "tauri icon --ios-color '#663499' src-tauri/icons/icon.svg"
},
"devDependencies": {
"@dword-design/eslint-plugin-import-alias": "^4.0.9",
"@openapi-codegen/cli": "^2.0.2",
"@openapi-codegen/typescript": "^8.0.2",
"@tailwindcss/forms": "^0.5.9",
"@tauri-apps/cli": "^2.0.2",
"@types/file-saver": "^2.0.7",
"@types/node": "^24.3.1",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"@types/react-helmet": "^6.1.11",
"@types/react-modal": "3.16.3",
"@types/semver": "^7.5.8",
"@types/three": "^0.163.0",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"@typescript-eslint/eslint-plugin": "^8.48.1",
"@typescript-eslint/parser": "^8.48.1",
"@vitejs/plugin-react": "^4.3.2",
"ajv": "^8.17.1",
"autoprefixer": "^10.4.20",
"cross-env": "^7.0.3",
"browser-fs-access": "^0.35.0",
"classnames": "^2.5.1",
"convert": "^5.12.0",
"dmg-license": "^1.0.11",
"dotenv": "^16.4.5",
"eslint": "^8.57.1",
"eslint-config-airbnb": "^19.0.4",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsx-a11y": "^6.10.0",
"eslint-plugin-react": "^7.37.1",
"eslint-plugin-react-hooks": "^4.6.2",
"electron": "^40.3.0",
"electron-builder": "^26.7.0",
"electron-vite": "^5.0.0",
"eslint": "^9.39.1",
"eslint-import-resolver-typescript": "^3.10.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"flatbuffers": "22.10.26",
"globals": "^15.10.0",
"intl-pluralrules": "^2.0.1",
"ip-num": "^1.5.1",
"jotai": "^2.12.2",
"prettier": "^3.3.3",
"prompts": "^2.4.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.0.13",
"react-helmet": "^6.1.0",
"react-hook-form": "^7.63.0",
"react-markdown": "^9.0.1",
"react-modal": "^3.16.1",
"react-responsive": "^10.0.0",
"react-router-dom": "^6.26.2",
"remark-gfm": "^4.0.0",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.79.4",
"semver": "^7.6.3",
"solarxr-protocol": "file:../solarxr-protocol",
"spdx-satisfies": "^5.0.1",
"tailwind-gradient-mask-image": "^1.2.0",
"tailwindcss": "^3.4.13",
"typescript-eslint": "^8.8.0",
"vite": "^5.4.8"
}
"three": "^0.163.0",
"ts-pattern": "^5.4.0",
"typescript": "^5.6.3",
"typescript-eslint": "^8.46.2",
"use-double-tap": "^1.3.6",
"uuid": "^13.0.0",
"vite": "^5.4.8",
"yup": "^1.4.0"
},
"main": "./out/main/index.js"
}

Binary file not shown.

View File

@@ -7,7 +7,7 @@
## Websocket (server) status
websocket-connecting = جاري التحميل
websocket-connecting = جاري التحميل...
websocket-connection_lost = تعطل الخادم!
websocket-connection_lost-desc = يبدو أن خادم SlimeVR تعطل. تحقق من السجلات وأعد تشغيل البرنامج
websocket-timedout = تعذر الاتصال بالخادم
@@ -31,6 +31,9 @@ tips-tap_setup = يمكنك النقر ببطء مرتين على جهاز ال
tips-turn_on_tracker = هل تستخدم أجهزة تعقب SlimeVR الرسمية؟ تذكر <b><em> أن تشغل أجهزة التعقب </em></b> بعد توصيلها بالكمبيوتر!
tips-failed_webgl = فشل تهيئة WebGL.
## Units
## Body parts
body_part-NONE = غير محدد
@@ -197,7 +200,7 @@ widget-overlay-is_mirrored_label = عكس تراكب الشاشة
widget-drift_compensation-clear = حذف تعويض الانجراف
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = مسح إعادة تعيين التركيب
@@ -313,9 +316,7 @@ tracker-settings-name_section-label = اسم جهاز التعقب
tracker-settings-forget = انسي جهاز التعقب
tracker-settings-forget-description = يزيل جهاز التعقب من خادم SlimeVR ويمنعه من الاتصال به حتى يتم إعادة تشغيل الخادم. لن تضيع تكوين جهاز التعقب.
tracker-settings-forget-label = ننسى جهاز التعقب
tracker-settings-update-unavailable = لا يمكن تحديثه (اصنعها بنفسك)
tracker-settings-update-up_to_date = حديث
tracker-settings-update-available = { $versionName } متاح الآن
tracker-settings-update = التحديث الآن
tracker-settings-update-title = إصدار البرنامج الثابت
@@ -497,8 +498,6 @@ 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-enforce_joint_constraints = حدود الهيكل العظمي
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = فرض القيود
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = منع المفاصل من الدوران إلى ما بعد الحد الأقصى
@@ -618,9 +617,6 @@ settings-general-interface-connected_trackers_warning-label = تحذير عن أ
## Behavior settings
settings-interface-behavior = السلوك
settings-general-interface-dev_mode = وضع المطوّر
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
settings-general-interface-dev_mode-label = وضع المطوّر
settings-general-interface-use_tray = تصغير إلى علبة النظام
settings-general-interface-use_tray-description = يتيح لك إغلاق النافذة دون إغلاق خادم SlimeVR حتى تتمكن من الاستمرار في استخدامه دون إزعاجك من واجهة المستخدم الرسومية.
settings-general-interface-use_tray-label = تصغير إلى علبة النظام
@@ -637,6 +633,14 @@ settings-general-interface-discord_presence-message =
[many] كثيرة
*[other] أخرى
}
settings-interface-behavior-error_tracking = جمع الأخطاء عبر Sentry.io
settings-interface-behavior-error_tracking-description_v2 =
<h1>هل توافق على جمع بيانات الخطأ مجهولة المصدر؟</h1>
<b>نحن لا نجمع معلومات شخصية</b> مثل عنوان IP الخاص بك أو بيانات الاعتماد اللاسلكية. يقدر SlimeVR خصوصيتك!
لتوفير أفضل تجربة للمستخدم، نقوم بجمع تقارير الأخطاء ومقاييس الأداء ومعلومات نظام التشغيل مجهولة المصدر. يساعدنا هذا في اكتشاف الأخطاء والمشكلات المتعلقة ب SlimeVR. يتم جمع هذه المقاييس عبر Sentry.io.
settings-interface-behavior-error_tracking-label = إرسال الأخطاء إلى المطورين
## Serial settings
@@ -655,10 +659,11 @@ settings-serial-factory_reset-warning =
مما يعني أن إعدادات واي فاي والمعايرة <b>ستفقد جميعا!</b>
settings-serial-factory_reset-warning-ok = أنا أعرف ماذا أفعل
settings-serial-factory_reset-warning-cancel = إلغاء
settings-serial-get_infos = احصل على معلومات
settings-serial-serial_select = اختر منفذ تسلسلي
settings-serial-auto_dropdown_item = تلقائي
settings-serial-get_wifi_scan = احصل على فحص WiFi
settings-serial-file_type = نص عادي
settings-serial-save_logs = حفظ في ملف
## OSC router settings
@@ -688,10 +693,23 @@ settings-osc-router-network-address-placeholder = عنوان آي بي في 4
## OSC VRChat settings
settings-osc-vrchat = أجهزة تعقب "في ار تشات أوه أس سي"
# This cares about multilines
settings-osc-vrchat-description-v1 =
تغيير الإعدادات الخاصة بمعيار أجهزة تعقب OSC المستخدم لإرسال
بيانات التعقب إلى التطبيقات التي لا تحتوي على SteamVR (مثل Quest المستقل).
تأكد من تمكين OSC في VRChat عبر قائمة الإجراءات ضمن OSC > ممكن.
settings-osc-vrchat-enable = تمكين
settings-osc-vrchat-enable-description = بتبديل إرسال واستقبال البيانات.
settings-osc-vrchat-enable-label = تمكين
settings-osc-vrchat-oscqueryEnabled = تمكين OSCQuery
settings-osc-vrchat-oscqueryEnabled-description =
يكتشف OSCQuery تلقائيا مثيلات VRChat قيد التشغيل ويرسل البيانات إليها.
يمكنه أيضا الإعلان عن نفسه لهم من أجل تلقي بيانات HMD ووحدة التحكم.
للسماح بتلقي بيانات HMD ووحدة التحكم من VRChat ، انتقل إلى إعدادات القائمة الرئيسية
ضمن "التتبع و IK (الحركة العكسية)" وتمكين "السماح بإرسال بيانات OSC لتتبع الرأس والمعصم".
settings-osc-vrchat-oscqueryEnabled-label = تمكين OSCQuery
settings-osc-vrchat-network = منافذ الشبكة
settings-osc-vrchat-network-description-v1 = ضبط المنافذ الاستماع إلى البيانات وإرسالها. يمكن تركها دون أن تمس ل VRChat.
settings-osc-vrchat-network-port_in =
.label = منفذ الدخول
.placeholder = منفذ الدخول (الإفتراضي: 9001)
@@ -699,6 +717,7 @@ settings-osc-vrchat-network-port_out =
.label = منفذ الخروج
.placeholder = منفذ الخروج (الإفتراضي: 9000)
settings-osc-vrchat-network-address = عنوان الشبكة
settings-osc-vrchat-network-address-description-v1 = اختر العنوان الذي تريد إرسال البيانات إليه. يمكن تركها دون أن تمس ل VRChat.
settings-osc-vrchat-network-address-placeholder = عنوان آي بي الخاص بفي ار تشات
settings-osc-vrchat-network-trackers = أجهزة التعقب
settings-osc-vrchat-network-trackers-description = تبديل إرسال أجهزة تتبع محددة عبر أوه أس سي.
@@ -731,13 +750,54 @@ settings-osc-vmc-network-address-description = قم بتعيين العنوان
settings-osc-vmc-network-address-placeholder = عنوان آي بي في 4
settings-osc-vmc-vrm = نموذج في ار إم
settings-osc-vmc-vrm-description = قم بتحميل نموذج في ار إم للسماح بتركيز الرأس وتمكين توافق أعلى مع تطبيقات الأخرى
settings-osc-vmc-vrm-untitled_model = نموذج بدون عنوان
settings-osc-vmc-vrm-file_select = اسحب نموذج وأفلته لاستخدامه أو <u> تصفح </ u>
settings-osc-vmc-anchor_hip = ثبت في الوركين
settings-osc-vmc-anchor_hip-description = ثبت التعقب في الوركين، هو مفيد إن كنت تيوبنغ جالسًا. في حالة التعطيل، قم بتحميل نموذج في ار إم.
settings-osc-vmc-anchor_hip-label = ثبت في الوركين
settings-osc-vmc-mirror_tracking = اعكس التعقب
settings-osc-vmc-mirror_tracking-description = اعكس التعقب أفقيا.
settings-osc-vmc-mirror_tracking-label = اعكس التعقب
## Common OSC settings
## Advanced settings
settings-utils-advanced = متقدم
settings-utils-advanced-reset-gui = إعادة تعيين إعدادات واجهة المستخدم الرسومية (GUI)
settings-utils-advanced-reset-gui-description = قم باستعادة الإعدادات الافتراضية للواجهة.
settings-utils-advanced-reset-gui-label = إعادة تعيين واجهة المستخدم الرسومية
settings-utils-advanced-reset-server = إعادة تعيين إعدادات التعقب
settings-utils-advanced-reset-server-description = استعادة الإعدادات الافتراضية للتعقب.
settings-utils-advanced-reset-server-label = إعادة تعيين التعقب
settings-utils-advanced-reset-all = إعادة تعيين جميع الإعدادات
settings-utils-advanced-reset-all-description = قم باستعادة الإعدادات الافتراضية لكل من الواجهة و التعقب.
settings-utils-advanced-reset-all-label = إعادة تعيين الكل
settings-utils-advanced-reset_warning =
{ $type ->
[gui]
<b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين جميع الإعدادات الخاصة بك إلى الإعدادات الافتراضية.
هل أنت متأكد من أنك تريد القيام بذلك؟
[server] <b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين إعدادات التعقب إلى الإعدادات الافتراضية. هل أنت متأكد من أنك تريد القيام بذلك؟
*[all]
<b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين جميع الإعدادات الخاصة بك إلى الإعدادات الافتراضية.
هل أنت متأكد من أنك تريد القيام بذلك؟
}
settings-utils-advanced-reset_warning-reset = إعادة تعيين الإعدادات
settings-utils-advanced-reset_warning-cancel = إلغاء
settings-utils-advanced-open_data-v1 = مجلد التكوين
settings-utils-advanced-open_data-description-v1 = فتح مجلد إعدادات SlimeVR في مستكشف الملفات ، والذي يحتوي على الإعدادات
settings-utils-advanced-open_data-label = فتح المجلد
settings-utils-advanced-open_logs = مجلد السجلات
settings-utils-advanced-open_logs-description = افتح مجلد سجلات SlimeVR في مستكشف الملفات ، والذي يحتوي على سجلات التطبيق
settings-utils-advanced-open_logs-label = فتح المجلد
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
@@ -754,16 +814,12 @@ onboarding-setup_warning-cancel = متابعة الإعداد
## Wi-Fi setup
onboarding-wifi_creds-back = العودة إلى المقدمة
onboarding-wifi_creds = إدخل بيانات اعتماد واي فاي
# This cares about multilines
onboarding-wifi_creds-description =
ستستخدم أجهزة التعقب بيانات الاعتماد هذه للاتصال لاسلكيًا.
الرجاء استخدام بيانات الاعتماد التي تتصل بها حاليًا.
onboarding-wifi_creds-skip = تخطى إعدادات واي فاي
onboarding-wifi_creds-submit = إرسال!
onboarding-wifi_creds-ssid =
.label = اسم الواي فاي
.placeholder = أدخل اسم الواي فاي
onboarding-wifi_creds-ssid-required = مطلوب اسم Wi-Fi
onboarding-wifi_creds-password =
.label = كلمة السر
.placeholder = أدخل كلمة السر
@@ -798,13 +854,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = مرحبا بكم في سلايم في ار
onboarding-home-start = هيا نتجهز!
## Enter VR part of setup
onboarding-enter_vr-back = العودة إلى تعيين أجهزة التعقب
onboarding-enter_vr-title = حان وقت دخول في ار!
onboarding-enter_vr-description = ضع كل أجهزة التعقب ثم أدخل في ار!
onboarding-enter_vr-ready = أنا جاهز
## Setup done
onboarding-done-title = أنت جاهز تمامًا!
@@ -821,6 +870,7 @@ onboarding-connect_tracker-issue-serial = أواجه مشكلة في الاتص
onboarding-connect_tracker-usb = جهاز تعقب يو أس بي
onboarding-connect_tracker-connection_status-none = نبحث عن أجهزة التعقب
onboarding-connect_tracker-connection_status-serial_init = نتواصل بجهاز التسلسلي
onboarding-connect_tracker-connection_status-obtaining_mac_address = الحصول على عنوان mac الخاص بجهاز التعقب
onboarding-connect_tracker-connection_status-provisioning = نرسل بيانات اعتماد واي فاي
onboarding-connect_tracker-connection_status-connecting = جارٍ إرسال بيانات اعتماد الواي فاي
onboarding-connect_tracker-connection_status-looking_for_server = نبحث عن السرفر
@@ -853,6 +903,7 @@ onboarding-calibration_tutorial-status-waiting = بانتظارك
onboarding-calibration_tutorial-status-calibrating = جاري المعايرة
onboarding-calibration_tutorial-status-success = رائع!
onboarding-calibration_tutorial-status-error = تم نقل جهاز التعقب
onboarding-calibration_tutorial-skip = تخطي البرنامج التعليمي
## Tracker assignment tutorial
@@ -884,6 +935,31 @@ onboarding-assign_trackers-assigned =
onboarding-assign_trackers-advanced = إظهار مواقع التعيين المتقدمة
onboarding-assign_trackers-next = لقد عينت جميع أجهزة التعقب
onboarding-assign_trackers-mirror_view = عرض المرآة
onboarding-assign_trackers-option-amount =
{ $trackersCount ->
[zero] صفر
[one] واحد
[two] اثنان
[few] قليلة
[many] كثيرة
*[other] أخرى
}
onboarding-assign_trackers-option-label =
{ $mode ->
[lower-body] الجسم السفلي
[core] أساس الجسم
[enhanced-core] الأساس المحسن
[full-body] الجسم الكامل
*[all] الكل
}
onboarding-assign_trackers-option-description =
{ $mode ->
[lower-body] الحد الأدنى لتعقب الجسم الكامل في الواقع الافتراضي
[core] + تحسين تعقب العمود الفقري
[enhanced-core] + دوران القدم
[full-body] + تعقب الكوع
*[all] جميع مهام التعقب المتاحة
}
## Tracker assignment warnings
@@ -968,7 +1044,7 @@ onboarding-choose_mounting-manual_mounting-label-v2 = قد لا تكون الد
onboarding-choose_mounting-manual_mounting-description = سيسمح لك باختيار اتجاه التثبيت يدويًا لكل جهاز تعقب
# Multiline text
onboarding-choose_mounting-manual_modal-title =
هل أنت متأكد من أنك تريد
هل أنت متأكد من أنك تريد
معايرة التركيب التلقائي؟
onboarding-choose_mounting-manual_modal-description = <b>يوصى بمعايرة التركيب اليدوي للمستخدمين الجدد</b> ، حيث قد يكون من الصعب الحصول على أوضاع معايرة التركيب التلقائي الصحيحة من اول مرة وقد تتطلب بعض التمرين.
onboarding-choose_mounting-manual_modal-confirm = أنا أعرف ماذا أفعل
@@ -1003,7 +1079,6 @@ onboarding-automatic_mounting-put_trackers_on-next = ارتديت جميع أج
## Tracker manual proportions setupa
onboarding-manual_proportions-back = العودة إلى برنامج تعليم إعادة التعيين
onboarding-manual_proportions-title = نسب الجسم اليدوية
onboarding-manual_proportions-fine_tuning_button = ضبط النسب تلقائيا
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = يرجى توصيل سماعة رأس VR لاستخدام الضبط الدقيق التلقائي
@@ -1100,19 +1175,7 @@ onboarding-automatic_proportions-smol_warning =
<b>يرجى إعادة القياسات والتأكد من صحتها.</b>
onboarding-automatic_proportions-smol_warning-cancel = الرجوع
## Tracker scaled proportions setup
onboarding-scaled_proportions-title = النسب المقاسة
onboarding-scaled_proportions-description = لكي تعمل أجهزة التعقب SlimeVR ، نحتاج إلى معرفة طول عظامك. ستستخدم نسبة متوسطة وقياسها بناء على طولك.
onboarding-scaled_proportions-manual_height-title = تكوين طولك
onboarding-scaled_proportions-manual_height-description-v2 = سيتم استخدام هذا الطول كخط أساس لنسب جسمك.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR غير متصل حاليا ب SlimeVR ، لذلك لا يمكن أن تستند القياسات إلى سماعة الرأس الخاصة بك. <b>تابع على مسؤوليتك الخاصة أو تحقق من المستندات!</b>
onboarding-scaled_proportions-manual_height-height-v2 = طولك الكامل هو
onboarding-scaled_proportions-manual_height-estimated_height = الارتفاع المقدر لسماعة الرأس هو:
onboarding-scaled_proportions-manual_height-next_step = المتابعة والحفظ
onboarding-scaled_proportions-manual_height-warning-no_hmd = وصّل سماعة رأس VR
## Tracker scaled proportions reset
## User height calibration
## Stay Aligned setup
@@ -1140,12 +1203,27 @@ status_system-StatusSteamVRDisconnected =
*[other] حاليًا غير متصل بـ SteamVR عبر برنامج تشغيل SlimeVR.
}
status_system-StatusTrackerError = يحتوي جهاز التعقب { $trackerName } على خطأ.
status_system-StatusUnassignedHMD = يجب تعيين سماعة رأس VR كجهاز تعقب للرأس.
## Firmware tool globals
firmware_tool-next_step = الخطوة التالية
firmware_tool-previous_step = الخطوة السابقة
firmware_tool-ok = تبدو جيدة
firmware_tool-retry = اعادة المحاولة
firmware_tool-loading = تحميل...
## Firmware tool Steps
firmware_tool = أداة البرامج الثابتة DIY
firmware_tool-description = يسمح لك بتكوين و لتحديث أجهزة التعقب DIY الخاصة بك
firmware_tool-not_available = عفوا ، أداة البرامج الثابتة غير متوفرة في الوقت الحالي. عد لاحقا!
firmware_tool-not_compatible = أداة البرنامج الثابت غير متوافقة مع هذا الإصدار من الخادم. يرجى تحديث الخادم الخاص بك!
firmware_tool-flash_method_step = طريقة التثبيت
firmware_tool-flash_method_step-description = الرجاء حدد طريقة التثبيت التي تريد استخدامها
firmware_tool-flashbtn_step = اضغط على زر التمهيد
firmware_tool-flashbtn_step-description = قبل الانتقال إل الخطوة التالية، هناك بعض الأشياء التي عليك القيام بها
firmware_tool-flashbtn_step-board_SLIMEVR = أوقف تشغيل جهاز التعقب، قم بإزالة العلبة (إن وجدت)، وقم بتوصيل كابل USB بهذا الكمبيوتر ، ثم قم بإحدى الخطوات التالية وفقا لمراجعة لوحة SlimeVR:
## firmware tool build status
@@ -1186,3 +1264,6 @@ unknown_device-modal-forget = تجاهلها
## Error collection consent modal
## Tracking checklist section

View File

@@ -31,6 +31,9 @@ tips-tap_setup = Pro výběr trackeru na něj můžete dvakrát pomalu poklepat,
tips-turn_on_tracker = Máte oficiální SlimeVR trackery? <b><em>Po připojení k PC je nezapomeňte zapnout!</em></b>
tips-failed_webgl = Načtení WebGL selhalo.
## Units
## Body parts
body_part-NONE = Nepřiřazeno
@@ -117,7 +120,7 @@ skeleton_bone-ELBOW_OFFSET = Odsazení loktů
reset-reset_all = Obnovit nastavení proporcí
reset-reset_all_warning-v2 =
<b>Varování:</b> vyše proporce budou obnoveny do výchozích hodnot založených na vaší nakonfigurované výšce.
<b>Varování:</b> vyše proporce budou obnoveny do výchozích hodnot založených na vaší nakonfigurované výšce.
Jste si jistí že chcete udělat?
reset-reset_all_warning-reset = Obnovit proporce
reset-reset_all_warning-cancel = Zrušit
@@ -167,7 +170,7 @@ widget-overlay-is_mirrored_label = Zobrazit překrytí jako zrcadlo
widget-drift_compensation-clear = Vymazat kompenzaci driftu
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Vymazat reset nasazení
@@ -285,10 +288,8 @@ tracker-settings-name_section-label = Název trackeru
tracker-settings-forget = Zapomenout tracker
tracker-settings-forget-description = Odebere tracker z SlimeVR Serveru a zabrání jeho opětovnému připojení do té doby, dokud nebude server restarován. Konfigurace trackeru nebude ztracena.
tracker-settings-forget-label = Zapomenout tracker
tracker-settings-update-unavailable = Nelze aktualizovat (DIY)
tracker-settings-update-low-battery = Nelze provést aktualizaci. Baterie má méně než 50%
tracker-settings-update-up_to_date = Aktuální
tracker-settings-update-available = { $versionName } je nyní dostupný
tracker-settings-update = Aktualizovat nyní
tracker-settings-update-title = Verze Firmwareu
@@ -485,8 +486,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Připnutí k pod
settings-general-fk_settings-leg_tweak-toe_snap-description = Přichycení špiček se pokouší odhadnout rotaci vašich chodidel v případě, že nepoužíváte trackery chodidel.
settings-general-fk_settings-leg_tweak-foot_plant-description = Narovnání chodidla při dotyku narovnává chodidla tak, aby byla rovnoběžně se zemí.
settings-general-fk_settings-leg_fk = Sledování nohou
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Aktivovat reset nasazení nohou stoupnutím na špičky.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset nasazení nohou
settings-general-fk_settings-enforce_joint_constraints = Limity kostry
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Prosazování omezení
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Zabránit rotaci kloubům za jejich limit
@@ -593,9 +592,6 @@ settings-general-interface-connected_trackers_warning-label = Upozornění o př
## Behavior settings
settings-interface-behavior = Chování
settings-general-interface-dev_mode = Vývojářský režim
settings-general-interface-dev_mode-description = Tento režim může být užitečný, pokud potřebujete podrobné údaje nebo omunikovat s trackerama na pokročilejší úrovni.
settings-general-interface-dev_mode-label = Vývojářský režim
settings-general-interface-use_tray = Minimalizovat do oznamovací oblasti
settings-general-interface-use_tray-description = Umožňuje vám zavřít okno, aniž byste zavřeli SlimeVR Server, takže ho můžete nadále používat bez rozhraní.
settings-general-interface-use_tray-label = Minimalizovat do oznamovací oblasti
@@ -636,7 +632,6 @@ settings-serial-factory_reset-warning =
To znamená, že nastavení Wi-Fi a kalibrace <b>budou ztracena!</b>
settings-serial-factory_reset-warning-ok = Vím, co dělám
settings-serial-factory_reset-warning-cancel = Zrušit
settings-serial-get_infos = Získat informace
settings-serial-serial_select = Vyberte sériový port
settings-serial-auto_dropdown_item = Auto
settings-serial-get_wifi_scan = Skenovat WiFi
@@ -732,6 +727,9 @@ settings-osc-vmc-mirror_tracking = Zrcadlení sledování
settings-osc-vmc-mirror_tracking-description = Zrcadlit trakování horizontálně.
settings-osc-vmc-mirror_tracking-label = Zrcadlení trackování
## Common OSC settings
## Advanced settings
settings-utils-advanced = Pokročilé
@@ -765,6 +763,12 @@ settings-utils-advanced-open_logs = Složka s záznamy protokolů
settings-utils-advanced-open_logs-description = Otevřít složku s konfiguračními soubory pro SlimeVR v průzkumníku souborů?
settings-utils-advanced-open_logs-label = Otevřít složku
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Přeskočit nastavení
@@ -780,11 +784,6 @@ onboarding-setup_warning-cancel = Pokračovat v nastavení
## Wi-Fi setup
onboarding-wifi_creds-back = Zpět na úvod
onboarding-wifi_creds = Zadání přihlašovacích údajů k Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Sledovací zařízení budou tato přihlašovací údaje používat k připojení.
Použijte prosím přihlašovací údaje, ke kterým jste aktuálně připojeni.
onboarding-wifi_creds-skip = Přeskočit nastavení Wi-Fi
onboarding-wifi_creds-submit = Odeslat!
onboarding-wifi_creds-ssid =
@@ -818,13 +817,6 @@ onboarding-reset_tutorial-1 =
onboarding-home = Vítejte k SlimeVR
onboarding-home-start = Pusťme se do toho!
## Enter VR part of setup
onboarding-enter_vr-back = Zpět na přiřazení trackerů
onboarding-enter_vr-title = Čas vstoupit do VR!
onboarding-enter_vr-description = Nasaďte si všechny trackery a pak vstupte do VR!
onboarding-enter_vr-ready = Jsem připraven
## Setup done
onboarding-done-title = Vše je připraveno!
@@ -871,7 +863,6 @@ onboarding-connect_tracker-next = Připojil jsem všechny své trackery
onboarding-calibration_tutorial = Kalibrační návod pro IMU
onboarding-calibration_tutorial-subtitle = Tohle pomůže snížit drift trackerů!
onboarding-calibration_tutorial-description = Po každém zapnutí trackerů je potřeba je na chvíli položit na rovný povrch, aby se zkalibrovaly. Stejný postup provedeme teď kliknutím na tlačítko "{ onboarding-calibration_tutorial-calibrate }". <b>Během kalibrace jimi prosím nehýbejte!</b>
onboarding-calibration_tutorial-calibrate = Položil jsem trackery na stůl
onboarding-calibration_tutorial-status-waiting = Čekám na tebe
onboarding-calibration_tutorial-status-calibrating = Kalibruji
@@ -990,7 +981,6 @@ onboarding-automatic_mounting-put_trackers_on-next = Mám nasazené všechny tra
## Tracker manual proportions setupa
onboarding-manual_proportions-back = Zpět na tutoriál
onboarding-manual_proportions-title = Manuální proporce těla
onboarding-manual_proportions-fine_tuning_button = Automatické jemné doladění proporcí
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Pro použití automatického jemného lazení, prosím připojte VR headset
@@ -1089,30 +1079,8 @@ onboarding-automatic_proportions-smol_warning =
<b>Proveďte prosím přeměření a ujistěte se, že jsou hodnoty správné.</b>
onboarding-automatic_proportions-smol_warning-cancel = Jít zpět
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = Škálované proporce
onboarding-scaled_proportions-description = Aby trackery SlimeVR fungovaly, potřebujeme znát délku vašich kostí. Tímto se použije průměrný poměr a měřítko na základě vaší výšky.
onboarding-scaled_proportions-manual_height-title = Nakonfigurovat vaší výšku
onboarding-scaled_proportions-manual_height-description-v2 = Tato výška bude použita jak zaklad pro vaše tělesné proporce.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR není momentálně připojen k SlimeVR, takže měření nemůže být založeno na vašem headsetu. <b>Pokračujte na vlastní nebezpečí nebo se podívejte do dokumentace!</b>
onboarding-scaled_proportions-manual_height-height-v2 = Vaše celková výška je
onboarding-scaled_proportions-manual_height-estimated_height = Vaše odhadovaná výška headsetu je:
onboarding-scaled_proportions-manual_height-next_step = Uložit a pokračovat
onboarding-scaled_proportions-manual_height-warning =
Právě používáte manuální způsob nastavení škálování proporcí!
<b>Tento režim je doporučen pouze pokud nepoužíváte HMD s SlimeVR</b>
Abyste mohli používat automatcky škálované proporce, prosím:
onboarding-scaled_proportions-manual_height-warning-no_hmd = Připojte VR headset
onboarding-scaled_proportions-manual_height-warning-no_controllers = Ujistěte se, že jsou vaše ovladače připojeny a správně přirazeny k vaším rukám
## Tracker scaled proportions reset
onboarding-scaled_proportions-reset_proportion-title = Obnovení proporcí vašeho těla
onboarding-scaled_proportions-reset_proportion-description = Chcete-li nastavit tělesné proporce podle vaší výšky, předem musíte obnovit všechny vaše proporce. Tato operace obnoví všechny proporce, které jste nakonfigurovali. a následně se obnoví výchozí konfigurace.
onboarding-scaled_proportions-done-title = Proporce těla byla nastavena
onboarding-scaled_proportions-done-description = Vaše proporce těla by teď měli být nakonfigurovány na základě vaší výšky.
## Stay Aligned setup
@@ -1169,74 +1137,11 @@ firmware_tool = Nástroj pro DIY firmwere
firmware_tool-description = Umožní vám konfigurovat a flashovat vaše DIY trackery
firmware_tool-not_available = Jejda, nástroj pro firmware není v momentální chvíli k dispozici, Vraťte se později!
firmware_tool-not_compatible = Nástroj pro firmware není kompatibilní s touhle verzí serveru. Aktualizujte prosím svůj server.
firmware_tool-board_step = Vyberte vaší desku
firmware_tool-board_step-description = Vyberte jednu z desek uvedené níže.
firmware_tool-board_pins_step = Zkontrolujte piny
firmware_tool-board_pins_step-description =
Porsím ujistěte se že zvolené piny jsou správně.
Jestli jste postupovaly podle SlimeVR dokumentace, tak by měli být výchozí hodnoty správně
firmware_tool-board_pins_step-enable_led = Povolit LED
firmware_tool-board_pins_step-led_pin =
.label = LED pin
.placeholder = Vložte adresu pinu LED
firmware_tool-board_pins_step-battery_type = Vyberte typ baterie
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Externí baterie
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Interní baterie
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Vnitřní MCP3021
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Pin snímače baterie
.placeholder = Vložte adresu pinu na kterém je připojen snímač baterie
firmware_tool-board_pins_step-battery_resistor =
.label = Odpor baterie (Ohmy)
.placeholder = Vložte hodnotu rezistoru baterie
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Štít baterie R1 (v Ohmech)
.placeholder = Vložte hodnotu štítu baterie R1
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Štít baterie R2 (v Ohmech)
.placeholder = Vložte hodnotu štítu baterie R2
firmware_tool-add_imus_step = Deklarujte své IMU
firmware_tool-add_imus_step-description =
Prosím přidejte IMU které má váš tracker
Pokud jste následovali dokumentaci SlimeVR, výchozí hodnoty by měli být správné
firmware_tool-add_imus_step-imu_type-label = Typ IMU
firmware_tool-add_imus_step-imu_type-placeholder = Vyberte typ IMU
firmware_tool-add_imus_step-imu_rotation =
.label = Rotace IMU (stupně)
.placeholder = Úhel rotace IMU
firmware_tool-add_imus_step-scl_pin =
.label = SCL Pin
.placeholder = Adresa SCL pinu
firmware_tool-add_imus_step-sda_pin =
.label = SDA Pin
.placeholder = Adresa pinu SDA
firmware_tool-add_imus_step-int_pin =
.label = INT Pin
.placeholder = Adresa pinu INT
firmware_tool-add_imus_step-optional_tracker =
.label = Nepovinné trackery
firmware_tool-add_imus_step-show_less = Zobrazit měné
firmware_tool-add_imus_step-show_more = Zobrazit více
firmware_tool-add_imus_step-add_more = Přidat další IMU
firmware_tool-select_firmware_step = Vyberte verzi firmwaru
firmware_tool-select_firmware_step-description = Prosím zvolte, jakou verzi firmwaru chcete použít
firmware_tool-select_firmware_step-show-third-party =
.label = Zobrazit firmware třetích stran
firmware_tool-flash_method_step = Metoda flashování
firmware_tool-flash_method_step-description = Prosím zvolte metodu flashování, kterou chcete použít
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Použití metody "Over The Air" přenos přes vzduch. Vaše trackery použijí Wi-Fi pro aktualizaci jejich firmweru. Metoda funguje pouze na již nastavených a nakonfigorovaných trackerech.
firmware_tool-flash_method_step-serial =
.label = Sériový
.description = Použíte USB kabel pro aktualizování vaších trackerů.
firmware_tool-flashbtn_step = Stiskněte tlačítko bootu btn
firmware_tool-flashbtn_step-description = Než přejdeme na další krok, je tady pár věcí které musíte udělat
firmware_tool-flashbtn_step-board_SLIMEVR = Vypněte tracker, vyndejte z obalu (jestli v nějakém je), Připojte USB kabel k tomuto počítači a poté následujte jeden z kroků revize odpovídající k vaší verzi desky trackeru SlimeVR:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Zapněte tracker při tom co spojujete (zkratujete) obdelníkovou podložku FLASH z okraje na vrchní straně desky trackeru, a kovového obalu microkontroleru
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Zapněte tracker při spojování (zkratování) kruhové FLASH podložky na vrchní straně desky trackeru, a kovového štítu microkontrolleru
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Zapněte tracker při držení tlačítka FLASH na vrchní straně desky trackeru
firmware_tool-flashbtn_step-board_OTHER =
Před flashováním, pravděpodobně budete muset přepnout tracker do bootloader režimu.
Ve většině případů to znamená stisknutí boot tlačítka na desce trakeru před tím než začne proces flashování.
@@ -1258,9 +1163,6 @@ firmware_tool-flashing_step-exit = Odejít
## firmware tool build status
firmware_tool-build-CREATING_BUILD_FOLDER = Vytváření složky pro sestavení
firmware_tool-build-DOWNLOADING_FIRMWARE = Stahování firmweru
firmware_tool-build-EXTRACTING_FIRMWARE = Extrahování firmweru
firmware_tool-build-SETTING_UP_DEFINES = Konfigurování definicí
firmware_tool-build-BUILDING = Sestavování firmweru
firmware_tool-build-SAVING = Ukládání sestavení
firmware_tool-build-DONE = Sestavení dokončeno
@@ -1367,3 +1269,6 @@ error_collection_modal-description_v2 =
Tohle lze později změnit v sekci Chování v nastavení.
error_collection_modal-confirm = Souhlasím
error_collection_modal-cancel = Nesouhlasím
## Tracking checklist section

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!
@@ -27,6 +24,9 @@ tips-do_not_move_heels = Sørg for, at dine hæle ikke bevæger sig under optage
tips-file_select = Træk og slip filer for at bruge, eller <u>gennemse</u>.
tips-tap_setup = Du kan trykke langsomt 2 gange på din tracker for at vælge den i stedet for at vælge den i menuen.
## Units
## Body parts
body_part-NONE = Ikke tildelt
@@ -50,14 +50,17 @@ body_part-LEFT_UPPER_LEG = Venstre lår
body_part-LEFT_LOWER_LEG = Venstre ankel
body_part-LEFT_FOOT = Venstre fod
## BoardType
## Proportions
skeleton_bone-NONE = Ingen
skeleton_bone-HEAD = Hoved skift
skeleton_bone-NECK = Hals længde
skeleton_bone-torso_group = Torso Længde
skeleton_bone-CHEST = Bryst Længde
skeleton_bone-CHEST_OFFSET = Bryst Juster
skeleton_bone-CHEST = Bryst Længde
skeleton_bone-WAIST = Taljelængde
skeleton_bone-HIP = Hoftelængde
skeleton_bone-HIP_OFFSET = Hofte Juster
@@ -103,11 +106,14 @@ navbar-mounting = Montage Kalibrering
navbar-onboarding = Opsætningsguide
navbar-settings = Indstillinger
## Bounding volume hierarchy recording
## Biovision hierarchy recording
bvh-start_recording = Optag BVH
bvh-recording = Optager...
## Tracking pause
## Widget: Overlay settings
widget-overlay = Overlejring
@@ -118,6 +124,9 @@ widget-overlay-is_mirrored_label = Vis Overlejring som Spejl
widget-drift_compensation-clear = Klar afdriftskompensation
## Widget: Clear Mounting calibration
## Widget: Developer settings
widget-developer_mode = Udviklertilstand
@@ -134,7 +143,9 @@ widget-developer_mode-more_info = Mere info
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Rå
widget-imu_visualizer-rotation_preview = Forhåndsvisning
widget-imu_visualizer-rotation_hide = Skjul
## Widget: Skeleton Visualizer
## Tracker status
@@ -279,10 +290,6 @@ settings-general-steamvr-description =
Nyttig til spil eller apps, der kun understøtter bestemte trackere.
settings-general-steamvr-trackers-waist = Talje
settings-general-steamvr-trackers-chest = Bryst
settings-general-steamvr-trackers-feet = Fødder
settings-general-steamvr-trackers-knees = Knæ
settings-general-steamvr-trackers-elbows = Albuer
settings-general-steamvr-trackers-hands = Hænder
## Tracker mechanics
@@ -326,14 +333,7 @@ settings-general-fk_settings-leg_fk = Bensporing
settings-general-fk_settings-arm_fk = Arm sporing
settings-general-fk_settings-arm_fk-description = Tving arme til spore fra HMD, selvom positionshånddata er tilgængelige.
settings-general-fk_settings-arm_fk-force_arms = Tving arme fra HMD
settings-general-fk_settings-skeleton_settings = Indstillinger for skelet
settings-general-fk_settings-skeleton_settings-description = Slå skeletindstillinger til eller fra. Det anbefales at lade disse være på.
settings-general-fk_settings-skeleton_settings-extended_spine = Udvidet rygsøjle
settings-general-fk_settings-skeleton_settings-extended_pelvis = Forlænget pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Forlænget knæ
settings-general-fk_settings-vive_emulation-title = Vive emulering
settings-general-fk_settings-vive_emulation-description = Emuler de taljetrackerproblemer, som Vive-trackere har. Dette er en joke og gør sporing værre.
settings-general-fk_settings-vive_emulation-label = Aktivér Vive-emulering
## Gesture control settings (tracker tapping)
@@ -347,12 +347,18 @@ settings-general-gesture_control-taps =
}
settings-general-gesture_control-yawResetEnabled = Aktivér tryk for at yaw resette
## Interface settings
## Appearance settings
settings-general-interface = Brugergrænseflade
settings-general-interface-dev_mode = Udvikler-tilstand
settings-general-interface-dev_mode-description = Denne tilstand kan være nyttig, hvis du har brug for dybdegående data eller for at interagere med tilsluttede trackere på et mere avanceret niveau.
settings-general-interface-dev_mode-label = Udvikler-tilstand
settings-general-interface-theme = Farvetema
settings-general-interface-lang = Vælg sprog
settings-general-interface-lang-description = Skift det standardsprog, du vil bruge.
settings-general-interface-lang-placeholder = Vælg det sprog, der skal bruges
## Notification settings
settings-general-interface-serial_detection = Seriel enhedsregistrering
settings-general-interface-serial_detection-description = Denne mulighed viser en pop-up, hver gang du tilslutter en ny seriel enhed, der kan være en tracker. Det hjælper med at forbedre opsætningsprocessen for en tracker.
settings-general-interface-serial_detection-label = Seriel enhedsregistrering
@@ -360,10 +366,9 @@ settings-general-interface-feedback_sound = Feedback lyd
settings-general-interface-feedback_sound-description = Denne indstilling afspiller en lyd, når du nulstiller
settings-general-interface-feedback_sound-label = Feedback lyd
settings-general-interface-feedback_sound-volume = Feedback lydstyrke
settings-general-interface-theme = Farvetema
settings-general-interface-lang = Vælg sprog
settings-general-interface-lang-description = Skift det standardsprog, du vil bruge.
settings-general-interface-lang-placeholder = Vælg det sprog, der skal bruges
## Behavior settings
## Serial settings
@@ -378,7 +383,6 @@ settings-serial-factory_reset-warning =
Hvilket betyder, at alle Wi-Fi- og kalibreringsindstillinger <b>går tabt!</b>
settings-serial-factory_reset-warning-ok = Jeg ved hvad jeg laver
settings-serial-factory_reset-warning-cancel = Annuller
settings-serial-get_infos = Hent oplysninger
settings-serial-serial_select = Vælg en seriel port
settings-serial-auto_dropdown_item = Auto
@@ -409,14 +413,9 @@ settings-osc-router-network-address-placeholder = IPV4-adresse
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC trackere
# This cares about multilines
settings-osc-vrchat-description =
Skift VRChat-specifikke indstillinger for at modtage HMD-data og sende
trackerdata til FBT uden SteamVR (f.eks. Quest standalone).
settings-osc-vrchat-enable = Aktiver
settings-osc-vrchat-enable-label = Aktiver
settings-osc-vrchat-network = Netværksporte
settings-osc-vrchat-network-description = Indstil portene til at lytte og sende data til VRChat.
settings-osc-vrchat-network-port_in =
.label = Port ind
.placeholder = Port ind (standard: 9001)
@@ -424,7 +423,6 @@ settings-osc-vrchat-network-port_out =
.label = Port ud
.placeholder = Port ud (standard: 9000)
settings-osc-vrchat-network-address = Netværksadresse
settings-osc-vrchat-network-address-description = Vælg hvilken adresse der skal sende data til VRChat (tjek dine Wi-Fi-indstillinger på din enhed).
settings-osc-vrchat-network-address-placeholder = VRChat ip-adresse
settings-osc-vrchat-network-trackers = Trackere
settings-osc-vrchat-network-trackers-description = Skift afsendelse af specifikke trackere via OSC.
@@ -457,9 +455,20 @@ settings-osc-vmc-network-address-description = Vælg hvilken adresse du vil send
settings-osc-vmc-network-address-placeholder = IPV4-adresse
settings-osc-vmc-vrm = VRM-model
settings-osc-vmc-vrm-description = Indlæs en VRM-model for at tillade hovedanker og muliggøre en højere kompatibilitet med andre applikationer
settings-osc-vmc-vrm-model_unloaded = Ingen model indlæst
settings-osc-vmc-vrm-file_select = Træk og slip en model, du vil bruge, eller <u>gennemse</u>
## Common OSC settings
## Advanced settings
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Spring opsætning over
@@ -474,11 +483,6 @@ onboarding-setup_warning-cancel = Fortsæt konfigurationen
## Wi-Fi setup
onboarding-wifi_creds-back = Gå tilbage til introduktion
onboarding-wifi_creds = Indtast Wi-Fi-oplysninger
# This cares about multilines
onboarding-wifi_creds-description =
Trackerne bruger disse oplysninger til at oprette forbindelse trådløst.
Brug de oplysninger, du i øjeblikket har forbindelse til.
onboarding-wifi_creds-skip = Spring Wi-Fi-indstillinger over
onboarding-wifi_creds-submit = Færdig!
onboarding-wifi_creds-ssid =
@@ -492,20 +496,12 @@ onboarding-wifi_creds-password =
onboarding-reset_tutorial-back = Gå tilbage til monteringskalibrering
onboarding-reset_tutorial = Start forfra
onboarding-reset_tutorial-description = Denne funktion er ikke færdig, bare tryk på fortsæt
## Setup start
onboarding-home = Velkommen til SlimeVR
onboarding-home-start = Lad os komme i gang!
## Enter VR part of setup
onboarding-enter_vr-back = Gå tilbage til Tracker-tildeler
onboarding-enter_vr-title = Tid til at gå ind i VR!
onboarding-enter_vr-description = Tag alle dine trackere på, og gå derefter på VR!
onboarding-enter_vr-ready = Jeg er klar
## Setup done
onboarding-done-title = Du er klar!
@@ -516,8 +512,6 @@ onboarding-done-close = Luk opsætning
onboarding-connect_tracker-back = Gå tilbage til Wi-Fi-oplysninger
onboarding-connect_tracker-title = Tilslut trackere
onboarding-connect_tracker-description-p0 = Nu til den sjove del, forbind alle trackere!
onboarding-connect_tracker-description-p1 = Du skal blot tilslutte alle, der ikke er tilsluttet endnu, via en USB-port.
onboarding-connect_tracker-issue-serial = Jeg har problemer med at oprette forbindelse!
onboarding-connect_tracker-usb = USB-tracker
onboarding-connect_tracker-connection_status-none = Leder efter trackere
@@ -544,6 +538,9 @@ onboarding-connect_tracker-next = Jeg har tilsluttet alle mine trackere
## Tracker calibration tutorial
## Tracker assignment tutorial
## Tracker assignment setup
onboarding-assign_trackers-back = Gå tilbage til Wi-Fi-oplysninger
@@ -567,12 +564,8 @@ onboarding-assign_trackers-next = Jeg har tildelt alle trackerene
onboarding-choose_mounting = Hvilken monteringskalibreringsmetode vil du bruge?
onboarding-choose_mounting-auto_mounting = Automatisk montering
# Italized text
onboarding-choose_mounting-auto_mounting-subtitle = Anbefalet
onboarding-choose_mounting-auto_mounting-description = Dette registrerer automatisk monteringsretningerne til alle dine trackere fra 2 stillinger
onboarding-choose_mounting-manual_mounting = Manuel montering
# Italized text
onboarding-choose_mounting-manual_mounting-subtitle = Hvis du ved hvad du laver
onboarding-choose_mounting-manual_mounting-description = Dette giver dig mulighed for manuelt at vælge monteringsretningen for hver tracker
## Tracker manual mounting setup
@@ -593,12 +586,7 @@ onboarding-automatic_mounting-put_trackers_on-title = Tag dine trackere på
onboarding-automatic_mounting-put_trackers_on-description = For at kalibrere rotationer bruger vi de trackere, du lige har tildelt. Tag alle dine trackere på du kan se hvilke der er hvilke i figuren til højre.
onboarding-automatic_mounting-put_trackers_on-next = Jeg har alle mine trackere på
## Tracker proportions method choose
# Italized text
onboarding-choose_proportions-auto_proportions-subtitle = Anbefalet
## Tracker manual proportions setup
## Tracker manual proportions setupa
## Tracker automatic proportions setup
@@ -621,6 +609,48 @@ onboarding-automatic_proportions-verify_results-redo = prøv igen
onboarding-automatic_proportions-done-title = Krop målt og gemt.
onboarding-automatic_proportions-done-description = Kalibreringen af dine kropsproportioner er fuldført!
## User height calibration
## Stay Aligned setup
## Home
home-no_trackers = Ingen trackere registreret eller tildelt
## Trackers Still On notification
## Status system
## Firmware tool globals
## Firmware tool Steps
## firmware tool build status
## Firmware update status
## Dedicated Firmware Update Page
## Tray Menu
## First exit modal
## Unknown device modal
## Error collection consent modal
## Tracking checklist section

View File

@@ -31,6 +31,13 @@ tips-tap_setup = Sie können langsam 2 Mal auf Ihren Tracker tippen, um ihn ausz
tips-turn_on_tracker = Verwenden Sie offizielle SlimeVR-Tracker? Vergessen Sie nicht den <b><em>Tracker einzuschalten</em></b>, nachdem Sie ihn an den PC angeschlossen haben!
tips-failed_webgl = Fehler beim Initialisieren von WebGL.
## Units
unit-meter = Meter
unit-foot = Fuß
unit-inch = Zoll
unit-cm = Zentimeter
## Body parts
body_part-NONE = Nicht zugewiesen
@@ -95,6 +102,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
board_type-TTGO_TBASE = TTGO T-Base
board_type-ESP01 = ESP-01
board_type-SLIMEVR = SlimeVR
board_type-SLIMEVR_DEV = SlimeVR Dev Board
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
board_type-LOLIN_C3_MINI = Lolin C3 Mini
board_type-BEETLE32C3 = Beetle ESP32-C3
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
@@ -111,11 +120,29 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = SlimeVR Dev-IMU-Handschuh
skeleton_bone-NONE = Keine
skeleton_bone-HEAD = Kopfverschiebung
skeleton_bone-HEAD-desc =
Dies ist der Abstand von Ihrem Headset zur Mitte Ihres Kopfes.
Um ihn anzupassen, bewegen Sie den Kopf von links nach rechts, als würden Sie „nein“ sagen. Ändern Sie den Wert so lange, bis sich die anderen Tracker nicht mehr mitbewegen.
skeleton_bone-NECK = Halslänge
skeleton_bone-NECK-desc =
Dies ist der Abstand von der Mitte Ihres Kopfes bis zum Ansatz Ihres Nackens.
Um diesen anzupassen, nicken Sie mit Ihren Kopf, als würden Sie "ja" sagen, oder neigen Sie Ihren Kopf nach links und rechts. und modifizieren Sie es, bis die Bewegung in anderen Trackern vernachlässigbar ist. Passen Sie den Wert so lange an, bis Bewegungen anderer Tracker kaum noch vorhanden sind.
skeleton_bone-torso_group = Oberkörperhöhe
skeleton_bone-torso_group-desc =
Dies ist der Abstand vom Ansatz Ihres Nackens bis zu Ihren Hüften.
Stehen Sie aufrecht und ändern Sie den Wert, bis Ihre virtuellen Hüften mit Ihren echten übereinstimmen.
skeleton_bone-UPPER_CHEST = Obere Brustlänge
skeleton_bone-UPPER_CHEST-desc =
Dies ist der Abstand vom Ansatz Ihres Nackens bis zur Mitte Ihrer Brust.
Passen Sie zunächst Ihre Rumpflänge korrekt an und verändern Sie dann diesen Wert in verschiedenen Positionen (z.B. im Sitzen, beim Bücken oder Liegen), bis Ihre virtuelle Wirbelsäule mit Ihrer echten übereinstimmt.
skeleton_bone-CHEST_OFFSET = Brustversatz
skeleton_bone-CHEST_OFFSET-desc =
Dies kann angepasst werden, um Ihren virtuellen Brust-Tracker nach oben oder unten zu verschieben, um
die Kalibrierung in bestimmten Spielen oder Anwendungen zu unterstützen, die möglicherweise einen höheren oder niedrigeren Wert erwarten.
skeleton_bone-CHEST = Brustabstand
skeleton_bone-CHEST-desc =
Dies ist der Abstand vom Ansatz der Brust bis zur Mitte Ihrer Wirbelsäule.
Passen Sie zunächst Ihre Rumpflänge korrekt an und verändern Sie dann diesen Wert in verschiedenen Positionen (z.B. im Sitzen, beim Bücken oder Liegen), bis Ihre virtuelle Wirbelsäule mit Ihrer echten übereinstimmt.
skeleton_bone-WAIST = Taillenabstand
skeleton_bone-HIP = Hüftlänge
skeleton_bone-HIP_OFFSET = Hüftversatz
@@ -148,7 +175,11 @@ reset-reset_all_warning_default-v2 =
Möchten Sie dies wirklich tun?
reset-full = Reset
reset-mounting = Befestigungs-Reset
reset-mounting-feet = Fuß-Befestigungs-Reset
reset-mounting-fingers = Fingerkalibrierung
reset-yaw = Horizontaler Reset
reset-error-no_feet_tracker = Kein Fußtracker zugewiesen
reset-error-no_fingers_tracker = Kein Fingertracker zugewiesen
## Serial detection stuff
@@ -172,7 +203,9 @@ navbar-settings = Einstellungen
## Biovision hierarchy recording
bvh-start_recording = BVH aufnehmen
bvh-stop_recording = BVH-Aufnahme speichern
bvh-recording = Aufnahme läuft...
bvh-save_title = BVH-Aufnahme speichern
## Tracking pause
@@ -189,9 +222,9 @@ widget-overlay-is_mirrored_label = Visualisierung spiegeln
widget-drift_compensation-clear = Driftkompensation zurücksetzen
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Befestigungs-Reset zurücksetzen
widget-clear_mounting = Tracker-Ausrichtung zurücksetzen
## Widget: Developer settings
@@ -213,6 +246,7 @@ widget-imu_visualizer-rotation_raw = Rohe Drehung
widget-imu_visualizer-rotation_preview = Vorschau
widget-imu_visualizer-acceleration = Beschleunigung
widget-imu_visualizer-position = Position
widget-imu_visualizer-stay_aligned = Stay Aligned
## Widget: Skeleton Visualizer
@@ -240,6 +274,7 @@ tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Beschleunigung X/Y/Z
tracker-table-column-rotation = Rotation X/Y/Z
tracker-table-column-position = Position X/Y/Z
tracker-table-column-stay_aligned = Stay Aligned
tracker-table-column-url = Adresse
## Tracker rotation
@@ -253,7 +288,7 @@ 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-rotation-overriden = (von der Tracker-Ausrichtung überschrieben)
## Tracker information
@@ -305,10 +340,11 @@ tracker-settings-name_section-label = Trackername
tracker-settings-forget = Tracker Vergessen
tracker-settings-forget-description = Entfernt den Tracker vom SlimeVR Server und verhindert, dass er sich wieder verbindet, bis der Server neu gestartet wurde. Die Konfiguration des Trackers geht nicht verloren.
tracker-settings-forget-label = Tracker Vergessen
tracker-settings-update-unavailable = Kann nicht aktualisiert werden (DIY)
tracker-settings-update-unavailable-v2 = Keine Veröffentlichungen gefunden
tracker-settings-update-incompatible = Update nicht möglich. Board inkompatibel
tracker-settings-update-low-battery = Aktualisierung nicht möglich. Akku unter 50 %
tracker-settings-update-up_to_date = Auf dem neusten Stand
tracker-settings-update-available = { $versionName } ist jetzt Verfügbar
tracker-settings-update-blocked = Update nicht verfügbar. Weitere Veröffentlichungen sind nicht verfügbar.
tracker-settings-update = Jetzt aktualisieren
tracker-settings-update-title = Firmware-Version
@@ -376,18 +412,24 @@ mounting_selection_menu-close = Schließen
settings-sidebar-title = Einstellungen
settings-sidebar-general = Allgemein
settings-sidebar-steamvr = SteamVR
settings-sidebar-tracker_mechanics = Tracker-Mechanik
settings-sidebar-stay_aligned = Stay Aligned
settings-sidebar-fk_settings = FK-Einstellungen
settings-sidebar-gesture_control = Gestensteuerung
settings-sidebar-interface = Bedienoberfläche
settings-sidebar-osc_router = OSC-Router
settings-sidebar-osc_trackers = VRChat OSC-Tracker
settings-sidebar-osc_vmc = VMC
settings-sidebar-utils = Werkzeuge
settings-sidebar-serial = Serielle Konsole
settings-sidebar-appearance = Erscheinungsbild
settings-sidebar-home = Startbildschirm
settings-sidebar-checklist = Tracking-Checkliste
settings-sidebar-notifications = Benachrichtigungen
settings-sidebar-behavior = Verhalten
settings-sidebar-firmware-tool = DIY Firmware-Tool
settings-sidebar-vrc_warnings = VRChat Konfigurations-Warnungen
settings-sidebar-advanced = Erweitert
## SteamVR settings
@@ -450,7 +492,7 @@ settings-general-tracker_mechanics-drift_compensation-prediction-description =
Aktivieren Sie diese Funktion, wenn sich der Tracker kontinuierlich um die gier-Achse dreht.
settings-general-tracker_mechanics-drift_compensation-prediction-label = Prognose der Driftkompensation
settings-general-tracker_mechanics-drift_compensation_warning =
<b>Warnung:</b> Verwenden Sie die Driftkompensation nur, wenn sie sehr oft
<b>Warnung:</b> Verwenden Sie die Driftkompensation nur, wenn sie sehr oft
reseten müssen (alle ~5-10 Minuten).
Zu den IMUs, die häufig einen Reset benötigen, gehören:
@@ -459,16 +501,30 @@ settings-general-tracker_mechanics-drift_compensation_warning-cancel = Abbrechen
settings-general-tracker_mechanics-drift_compensation_warning-done = Ich verstehe
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensierungsmenge
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Nutze die letzten x Resets
settings-general-tracker_mechanics-save_mounting_reset = Automatische Befestigungs-Reset Kalibrierung speichern
settings-general-tracker_mechanics-save_mounting_reset = Automatische Tracker-Ausrichtung speichern
settings-general-tracker_mechanics-save_mounting_reset-description =
Speichert die automatische Befestigungs-Reset Kalibrierung für die Tracker zwischen den Neustarts. Nützlich
Speichert die automatische Tracker-Ausrichtung für die Tracker zwischen den Neustarts. Nützlich
wenn Sie einen Anzug tragen, bei dem sich die Tracker zwischen den Sitzungen nicht bewegen. <b>Für normale Benutzer nicht zu empfehlen!</b>
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Befestigungs-Reset speichern
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Tracker-Ausrichtung speichern
settings-general-tracker_mechanics-use_mag_on_all_trackers = Verwende das Magnetometer auf allen IMU-Trackern, die dies unterstützen.
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
Verwendet das Magnetometer auf allen Trackern, die über eine kompatible Firmware verfügen, um den Drift in stabilen magnetischen Umgebungen zu reduzieren.
Kann pro Tracker in den Einstellungen des Trackers deaktiviert werden. <b>Bitte schalten Sie keinen der Tracker aus, während Sie dies umschalten!</b>
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Magnetometer auf Trackern verwenden
settings-stay_aligned = Stay Aligned
settings-stay_aligned-description = Stay Aligned reduziert Drift, indem es deine Tracker schrittweise an deine entspannten Posen anpasst.
settings-stay_aligned-setup-label = Stay Aligned einrichten
settings-stay_aligned-setup-description = Sie müssen Stay Aligned einrichten, um es zu aktivieren.
settings-stay_aligned-warnings-drift_compensation = ⚠ Bitte schalten Sie die Driftkompensation aus! Diese steht in Konflikt mit Stay Aligned.
settings-stay_aligned-enabled-label = Tracker anpassen
settings-stay_aligned-general-label = Allgemein
settings-stay_aligned-relaxed_poses-label = Entspannte Posen
settings-stay_aligned-relaxed_poses-save_pose = Pose speichern
settings-stay_aligned-relaxed_poses-reset_pose = Pose zurücksetzen
settings-stay_aligned-relaxed_poses-close = Schließen
settings-stay_aligned-debug-label = Debuggen
settings-stay_aligned-debug-description = Bitte geben Sie Ihre Einstellungen mit an, wenn Sie Probleme mit Stay Aligned melden.
settings-stay_aligned-debug-copy-label = Einstellungen in die Zwischenablage kopieren
## FK/Tracking settings
@@ -490,24 +546,24 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Bodenclip kann d
settings-general-fk_settings-leg_tweak-toe_snap-description = Zehen-Ausrichtung versucht, die Rotation Ihrer Füße zu erraten, wenn keine Fuß-Tracker verwendet werden.
settings-general-fk_settings-leg_tweak-foot_plant-description = Fußkorrektur richtet Ihre Füße parallel zum Boden aus, wenn sie den Boden berühren.
settings-general-fk_settings-leg_fk = Beintracking
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Aktiviert das Zurücksetzen der Fußausrichtung, indem Sie auf die Zehenspitzen stehen.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Fußausrichtung zurücksetzen
settings-general-fk_settings-enforce_joint_constraints = Gelenkgrenzen
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Grenzen erzwingen
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Verhindert, dass sich Gelenke über ihre Grenzen hinaus drehen
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Mit Grenzen korrigieren
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Korrigiert Gelenkrotationen, wenn diese über ihre Grenzen hinausgehen
settings-general-fk_settings-ik = Positionsdaten
settings-general-fk_settings-ik-use_position = Positionsdaten verwenden
settings-general-fk_settings-arm_fk = Arm-Tracking
settings-general-fk_settings-arm_fk-description = Ändern Sie die Art und Weise, wie die Arme berechnet werden.
settings-general-fk_settings-arm_fk-force_arms = Arme vom VR-Headset erzwingen
settings-general-fk_settings-reset_settings = Einstellungen zurücksetzen
settings-general-fk_settings-reset_settings-reset_hmd_pitch-description = Setzen Sie die Neigung (vertikale Drehung) Ihres Headsets zurück, wenn Sie einen vollständigen Reset durchführen. Nützlich, wenn Sie ein Headset auf der Stirn für VTubing oder Mocap tragen. Nicht für VR aktivieren.
settings-general-fk_settings-reset_settings-reset_hmd_pitch = Headset-Nick (vertikale Drehung) zurücksetzen
settings-general-fk_settings-arm_fk-reset_mode-description = Ändern Sie, welche Armhaltung für den Befestigungs-Reset erwartet wird.
settings-general-fk_settings-arm_fk-reset_mode-description = Ändern Sie, welche Armhaltung für den Reset der Tracker-Ausrichtung erwartet wird.
settings-general-fk_settings-arm_fk-back = nach Hinten
settings-general-fk_settings-arm_fk-back-description = Der Standardmodus, bei dem die Oberarme nach hinten und die Unterarme nach vorne gehen.
settings-general-fk_settings-arm_fk-tpose_up = T-Pose (oben)
settings-general-fk_settings-arm_fk-tpose_up-description = Erwartet, dass deine Arme während des vollständigen Zurücksetzens seitlich nach unten gerichtet sind und während des Befestigungs-Reset um 90 Grad nach außen gerichtet sind.
settings-general-fk_settings-arm_fk-tpose_up-description = Erwartet, dass deine Arme während des vollständigen Zurücksetzens seitlich nach unten gerichtet sind und während des Reset der Tracker-Ausrichtung um 90 Grad nach außen gerichtet sind.
settings-general-fk_settings-arm_fk-tpose_down = T-Pose (unten)
settings-general-fk_settings-arm_fk-tpose_down-description = Erwartet, dass deine Arme während des vollständigen Zurücksetzens um 90 Grad nach außen gerichtet sind und während des Befestigungs-Reset seitlich nach unten.
settings-general-fk_settings-arm_fk-forward = Vorwärts
@@ -533,7 +589,7 @@ settings-general-fk_settings-self_localization-description = Der Motion-Capture-
settings-general-gesture_control = Gestensteuerung
settings-general-gesture_control-subtitle = Reset durch Antippen
settings-general-gesture_control-description = Erlaubt Reset durch das Antippen eines Trackers auszulösen. Der höchste Tracker auf dem Oberkörper wird für schnelle Resets genutzt, der höchste Tracker auf dem linken Bein wird für Reset genutzt und der höchste Tracker auf dem rechten Bein wird für Befestigungs-Reset genutzt. Das Antippen muss innerhalb von 0.5 Sekunden erfolgen, um erkannt zu werden.
settings-general-gesture_control-description = Erlaubt Reset durch das Antippen eines Trackers auszulösen. Der höchste Tracker auf dem Oberkörper wird für schnelle Resets genutzt, der höchste Tracker auf dem linken Bein wird für Reset genutzt und der höchste Tracker auf dem rechten Bein wird für Reset der Tracker-Ausrichtung genutzt. Das Antippen muss innerhalb von 0.5 Sekunden erfolgen, um erkannt zu werden.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
@@ -554,8 +610,8 @@ settings-general-gesture_control-yawResetTaps = Antipp-Anzahl für einen horizon
settings-general-gesture_control-fullResetEnabled = Vollständiger Reset durch Antippen
settings-general-gesture_control-fullResetDelay = Verzögerung für einen vollständigen Reset
settings-general-gesture_control-fullResetTaps = Antipp-Anzahl für einen vollständigen Reset
settings-general-gesture_control-mountingResetEnabled = Antippen für Befestigungs-Reset
settings-general-gesture_control-mountingResetDelay = Befestigungs-Reset-Verzögerung
settings-general-gesture_control-mountingResetEnabled = Aktivieren von Antippen für Reset der Tracker-Ausrichtung
settings-general-gesture_control-mountingResetDelay = Verzögerung von Reset der Tracker-Ausrichtung
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
@@ -564,6 +620,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = Erhö
## Appearance settings
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-show-navbar-onboarding = "{ navbar-onboarding }" in der Navigationsleiste anzeigen
settings-general-interface-show-navbar-onboarding-description = Dies ändert die Sichtbarkeit der Schaltfläche "{ navbar-onboarding }" in der Navigationsleiste
@@ -600,9 +659,6 @@ settings-general-interface-connected_trackers_warning-label = Warnung vor verbun
## Behavior settings
settings-interface-behavior = Verhalten
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-use_tray = In den Infobereich minimieren
settings-general-interface-use_tray-description = Erlaubt Ihnen, das Fenster zu schließen, ohne den SlimeVR-Server zu beenden. Dies erlaubt Ihnen diesen weiterzuverwenden, ohne dass das Fenster stört.
settings-general-interface-use_tray-label = In den Infobereich minimieren
@@ -623,6 +679,8 @@ settings-interface-behavior-error_tracking-description_v2 =
Um die bestmögliche Benutzererfahrung zu bieten, erfassen wir anonymisierte Fehlerberichte, Leistungsmetriken und Informationen zum Betriebssystem. Dies hilft uns, Fehler und Probleme mit SlimeVR zu erkennen. Diese Metriken werden über Sentry.io erfasst.
settings-interface-behavior-error_tracking-label = Fehler an Entwickler senden
settings-interface-behavior-bvh_directory = Verzeichnis zum Speichern von BVH-Aufnahmen
settings-interface-behavior-bvh_directory-label = Verzeichnis für BVH-Aufnahmen
## Serial settings
@@ -638,15 +696,19 @@ settings-serial-factory_reset = Werkseinstellungen zurücksetzen
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Warnung:</b> Dadurch wird der Tracker auf die Werkseinstellungen zurückgesetzt.
Das bedeutet, dass Wi-Fi- und Kalibrierungseinstellungen <b>verloren gehen!</b>
Das bedeutet, dass die WLAN- und Kalibrierungseinstellungen <b>verloren gehen!</b>
settings-serial-factory_reset-warning-ok = Ich weiß, was ich tue
settings-serial-factory_reset-warning-cancel = Abbruch
settings-serial-get_infos = Informationen abrufen
settings-serial-serial_select = Wählen Sie einen seriellen Anschluss
settings-serial-auto_dropdown_item = Auto
settings-serial-get_wifi_scan = WLAN-Scan
settings-serial-file_type = Klartext
settings-serial-save_logs = In Datei speichern
settings-serial-send_command = Senden
settings-serial-send_command-placeholder = Befehl...
settings-serial-send_command-warning = <b>Warnung:</b> Das Ausführen serieller Befehle kann zu Datenverlust führen oder die Tracker unbrauchbar machen.
settings-serial-send_command-warning-ok = Ich weiß, was ich tue
settings-serial-send_command-warning-cancel = Abbruch
## OSC router settings
@@ -679,7 +741,7 @@ settings-osc-vrchat = VRChat-OSC-Trackers
# This cares about multilines
settings-osc-vrchat-description-v1 =
Ändern Sie die Einstellungen, die speziell für den OSC-Trackers-Standard verwendet werden, um Tracking-Daten an Anwendungen ohne SteamVR zu senden (z. B. für Quest Standalone).
Stellen Sie sicher, dass Sie OSC in VRChat über das Aktionsmenü unter OSC > Aktiviert einschalten.
Stellen Sie sicher, dass Sie OSC in VRChat über das Aktionsmenü unter OSC > Aktiviert einschalten.
Um das Empfangen von HMD- und Controller-Daten von VRChat zu ermöglichen, gehen Sie in Ihrem Hauptmenü
zu den Einstellungen unter Tracking & IK > Erlaube das Senden von Kopf- und Handgelenk-VR-Tracking-OSC-Daten.
settings-osc-vrchat-enable = Aktivieren
@@ -741,6 +803,11 @@ settings-osc-vmc-mirror_tracking = Tracking spiegeln
settings-osc-vmc-mirror_tracking-description = Tracking horizontal spiegeln
settings-osc-vmc-mirror_tracking-label = Tracking spiegeln
## Common OSC settings
settings-osc-common-network-ports_match_error = Die Ein- und Ausgänge des OSC-Routers können nicht gleich sein!
settings-osc-common-network-port_banned_error = Der Port { $port } kann nicht verwendet werden!
## Advanced settings
settings-utils-advanced = Erweitert
@@ -774,6 +841,15 @@ settings-utils-advanced-open_logs = Logs-Ordner
settings-utils-advanced-open_logs-description = Öffnet den Logs-Ordner von SlimeVR im Explorer, der die Protokolle der App enthält.
settings-utils-advanced-open_logs-label = Ordner öffnen
## Home Screen
settings-home-list-layout = Layout der Tracker-Liste
settings-home-list-layout-desc = Wählen Sie eines der möglichen Startbildschirm-Layouts aus
settings-home-list-layout-table = Tabelle
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Einrichtung überspringen
@@ -787,12 +863,6 @@ onboarding-setup_warning-cancel = Einrichtung fortsetzen
## Wi-Fi setup
onboarding-wifi_creds-back = Zurück zur Einführung
onboarding-wifi_creds = WLAN-Zugangsdaten eingeben
# This cares about multilines
onboarding-wifi_creds-description =
Die Tracker nutzen diese Zugangsdaten, um sich mit dem WLAN zu verbinden.
Bitte verwenden Sie die Zugangsdaten, mit denen ihr PC gerade verbunden sind.
Dieses WLAN-Netzwerk muss ein 2.4 GHz-Netzwerk sein.
onboarding-wifi_creds-skip = WLAN-Zugangsdaten überspringen
onboarding-wifi_creds-submit = Weiter!
onboarding-wifi_creds-ssid =
@@ -805,7 +875,7 @@ onboarding-wifi_creds-password =
## Mounting setup
onboarding-reset_tutorial-back = Zurück zur Trackerausrichtung
onboarding-reset_tutorial-back = Zurück zur Tracker-Ausrichtung
onboarding-reset_tutorial = Tutorial neustarten
onboarding-reset_tutorial-explanation = Während Sie Ihre Tracker verwenden, können sie aufgrund der IMU-Gierdrift oder weil Sie sie physisch bewegt haben, aus der Ausrichtung geraten. Sie haben mehrere Möglichkeiten, dies zu beheben.
onboarding-reset_tutorial-skip = Schritt überspringen
@@ -822,24 +892,17 @@ onboarding-reset_tutorial-1 =
Dadurch werden die Position und Rotation aller Ihrer Tracker vollständig zurückgesetzt. Dies sollte die meisten Probleme beheben.
# Cares about multiline
onboarding-reset_tutorial-2 =
Tippen Sie { $taps } mal auf den markierten Tracker um einen Befestigungs-Reset auszulösen.
Tippen Sie { $taps } mal auf den markierten Tracker um einen Reset der Tracker-Ausrichtung auszulösen.
Ein Befestigungs-Reset hilft dabei, die Tracker neu auszurichten, so wie diese tatsächlich an Ihnen angebracht sind. Zum Beispiel, wenn Sie ein Tracker versehentlich verschoben haben und dessen Orientierung sich stark verändert hat.
Ein Reset der Tracker-Ausrichtung hilft dabei, die Tracker neu auszurichten, so wie diese tatsächlich an Ihnen angebracht sind. Zum Beispiel, wenn Sie ein Tracker versehentlich verschoben haben und dessen Orientierung sich stark verändert hat.
Sie müssen sich in einer "Skifahren"-Pose, wie im Befestigungs-Assistenten gezeigt wird, befinden. Nach dem Auslösen wird der Reset nach 3 Sekunden (konfigurierbar) durchgeführt.
Sie müssen sich in einer "Skifahren"-Pose, wie im Tracker-Ausrichtung-Assistenten gezeigt wird, befinden. Nach dem Auslösen wird der Reset nach 3 Sekunden (konfigurierbar) durchgeführt.
## Setup start
onboarding-home = Willkommen zu SlimeVR
onboarding-home-start = Los gehts!
## Enter VR part of setup
onboarding-enter_vr-back = Zurück zur Trackerzuweisung
onboarding-enter_vr-title = Zeit für VR!
onboarding-enter_vr-description = Ziehen Sie alle Tracker an und betreten Sie dann VR!
onboarding-enter_vr-ready = Ich bin bereit!
## Setup done
onboarding-done-title = Alles eingerichtet!
@@ -863,6 +926,11 @@ onboarding-connect_tracker-connection_status-looking_for_server = Suche nach Ser
onboarding-connect_tracker-connection_status-connection_error = Es kann keine WLAN-Verbindung hergestellt werden
onboarding-connect_tracker-connection_status-could_not_find_server = Server konnte nicht gefunden werden
onboarding-connect_tracker-connection_status-done = Verbindung zum Server hergestellt.
onboarding-connect_tracker-connection_status-no_serial_log = Konnte keine Logs vom Tracker abrufen
onboarding-connect_tracker-connection_status-no_serial_device_found = Konnte keinen Tracker über USB finden
onboarding-connect_serial-error-modal-no_serial_log = Ist der Tracker eingeschaltet?
onboarding-connect_serial-error-modal-no_serial_log-desc = Stellen Sie sicher, dass der Tracker eingeschaltet und mit Ihrem Computer verbunden ist.
onboarding-connect_serial-error-modal-no_serial_device_found = Keine Tracker erkannt
# $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",
@@ -870,17 +938,16 @@ onboarding-connect_tracker-connection_status-done = Verbindung zum Server herges
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Kein Tracker
[one] 1 Tracker
*[other] { $amount } Tracker
} verbunden
[0] Kein Tracker verbunden
[one] 1 Tracker verbunden
*[other] { $amount } Tracker verbunden
}
onboarding-connect_tracker-next = Ich habe alle meine Tracker verbunden.
## Tracker calibration tutorial
onboarding-calibration_tutorial = IMU-Kalibrierungs-Tutorial
onboarding-calibration_tutorial-subtitle = Dies wird dazu beitragen, das Driften der Tracker zu reduzieren!
onboarding-calibration_tutorial-description = Jedes Mal, wenn Sie Ihre Tracker einschalten, müssen diese für einen Moment auf einer ebenen Oberfläche ruhen, um sie zu kalibrieren. Lassen Sie uns dies nun tun, indem Sie auf die Schaltfläche "Kalibrieren" klicken. <b>Verschieben Sie die Tracker nicht!</b>
onboarding-calibration_tutorial-calibrate = Ich habe meine Tracker auf den Tisch gelegt
onboarding-calibration_tutorial-status-waiting = Wir warten auf Sie
onboarding-calibration_tutorial-status-calibrating = Kalibriere
@@ -907,10 +974,10 @@ onboarding-assign_trackers-description = Wählen Sie nun aus, welcher Tracker wo
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } von { $trackers ->
[one] 1 Tracker
*[other] { $trackers } Tracker
} zugewiesen
{ $trackers ->
[one] { $assigned } von 1 Tracker zugewiesen
*[other] { $assigned } von { $trackers } Tracker zugewiesen
}
onboarding-assign_trackers-advanced = Erweiterte Zuweisungspositionen anzeigen
onboarding-assign_trackers-next = Ich habe alle Tracker zugewiesen
onboarding-assign_trackers-mirror_view = Ansicht spiegeln
@@ -1048,26 +1115,21 @@ onboarding-automatic_mounting-mounting_reset-title = Befestigungs-Reset
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Beugen Sie sich in die "Skifahren"-Pose mit gebeugten Beinen, geneigtem Oberkörper und gebeugten Armen.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Drücken Sie die Schaltfläche "Befestigungs-Reset" und warten Sie 3 Sekunden, bevor die Drehungen der Tracker gesetzt werden.
onboarding-automatic_mounting-preparation-title = Vorbereitung
onboarding-automatic_mounting-preparation-step-0 = 1. Stehen Sie aufrecht mit Ihren Armen an den Seiten.
onboarding-automatic_mounting-preparation-step-1 = 2. Drücken Sie die Schaltfläche "Reset" und warten Sie 3 Sekunden, bevor die Tracker zurückgesetzt werden.
onboarding-automatic_mounting-put_trackers_on-title = Legen Sie Ihre Tracker an
onboarding-automatic_mounting-put_trackers_on-description = Um die Drehung der Tracker zu kalibrieren, werden die Tracker verwendet, welche Sie gerade zugewiesen haben. Ziehen Sie alle Ihre Tracker an, in der Abbildung rechts können sie sehen um welchen Tracker es sich handelt.
onboarding-automatic_mounting-put_trackers_on-next = Ich habe alle meine Tracker angelegt
onboarding-automatic_mounting-return-home = Fertig
## Tracker manual proportions setupa
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
onboarding-manual_proportions-fine_tuning_button = Automatische Feinabstimmung der Proportionen
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Bitte schließen Sie ein VR-Headset an, um die automatische Feinabstimmung zu nutzen
onboarding-manual_proportions-export = Proportionen exportieren
onboarding-manual_proportions-import = Proportionen importieren
onboarding-manual_proportions-import-success = Importiert
onboarding-manual_proportions-import-failed = Fehlgeschlagen
onboarding-manual_proportions-file_type = Körperproportions-Datei
onboarding-manual_proportions-all_proportions = Alle Proportionen
onboarding-manual_proportions-estimated_height = Geschätzte Benutzergröße
## Tracker automatic proportions setup
@@ -1152,34 +1214,37 @@ onboarding-automatic_proportions-smol_warning =
<b>Bitte wiederholen Sie die Messungen und stellen Sie sicher, dass sie korrekt sind.</b>
onboarding-automatic_proportions-smol_warning-cancel = Zurück
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = Skalierte Proportionen
onboarding-scaled_proportions-description = Damit die SlimeVR-Tracker funktionieren, müssen wir die Länge Ihrer Knochen kennen. Dafür wird ein durchschnittliches Proportionsverhältnis verwendet und basierend auf Ihrer Körpergröße skaliert.
onboarding-scaled_proportions-manual_height-title = Konfigurieren Sie Ihre Körpergröße
onboarding-scaled_proportions-manual_height-description-v2 = Diese Größe wird als Grundlage für Ihre Körperproportionen verwendet.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR ist derzeit nicht mit SlimeVR verbunden, daher können die Messungen nicht auf Ihrem Headset basieren. <b>Fahren Sie auf eigene Gefahr fort oder lesen Sie die Dokumentation!</b>
onboarding-scaled_proportions-manual_height-height-v2 = Ihre Körpergröße ist
onboarding-scaled_proportions-manual_height-estimated_height = Die geschätzte Höhe des Headsets beträgt:
onboarding-scaled_proportions-manual_height-next_step = Fortfahren und speichern
onboarding-scaled_proportions-manual_height-warning =
Sie verwenden derzeit die manuelle Methode zur Einrichtung skalierter Proportionen!
<b>Dieser Modus wird nur empfohlen, wenn Sie kein VR-Headset mit SlimeVR verwenden.</b>
Um die automatische Skalierung der Proportionen nutzen zu können, bitte:
onboarding-scaled_proportions-manual_height-warning-no_hmd = Schließen Sie ein VR-Headset an
onboarding-scaled_proportions-manual_height-warning-no_controllers = Stellen Sie sicher, dass Ihre Controller verbunden und korrekt den Händen zugewiesen sind
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = Schauen sie nicht auf den Boden
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = Schauen sie nicht zu hoch nach oben
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = Achten sie darauf, dass der Controller nach unten zeigt
onboarding-user_height-calibration-DONE = Erfolg!
## Tracker scaled proportions reset
## Stay Aligned setup
onboarding-scaled_proportions-reset_proportion-title = Zurücksetzen Ihrer Körperproportionen
onboarding-scaled_proportions-reset_proportion-description = Um Ihre Körperproportionen basierend auf Ihrer Größe festzulegen, müssen nun alle Ihre Proportionen zurückgesetzt werden. Dies wird alle konfigurierten Proportionen löschen und eine Basiskonfiguration bereitstellen.
onboarding-scaled_proportions-done-title = Körperproportionen festgelegt
onboarding-scaled_proportions-done-description = Ihre Körperproportionen sollten nun basierend auf Ihrer Größe konfiguriert sein.
onboarding-stay_aligned-title = Stay Aligned
onboarding-stay_aligned-description = Konfigurieren Sie Stay Aligned, um Ihre Tracker ausgerichtet zu halten.
onboarding-stay_aligned-put_trackers_on-title = Legen Sie Ihre Tracker an
onboarding-stay_aligned-put_trackers_on-description = Um Ihre Ruheposen zu speichern, verwenden wir die Tracker, die Sie gerade zugewiesenen haben. Legen Sie all Ihre Tracker an. In der Abbildung rechts können Sie sehen, welcher welcher ist.
onboarding-stay_aligned-put_trackers_on-trackers_warning = Sie haben derzeit weniger als 5 Tracker verbunden und zugewiesen! Dies ist die Mindestanzahl an Trackern, die erforderlich sind, damit Stay Aligned richtig funktioniert.
onboarding-stay_aligned-put_trackers_on-next = Ich habe alle meine Tracker angelegt
onboarding-stay_aligned-verify_mounting-title = Tracker-Ausrichtung
onboarding-stay_aligned-verify_mounting-redo_mounting = Tracker-Ausrichtungskalibrierung wiederholen
onboarding-stay_aligned-preparation-title = Vorbereitung
onboarding-stay_aligned-preparation-tip = Achten Sie darauf, aufrecht zu stehen. Schauen Sie nach vorne und lassen Sie die Arme an den Seiten hängen.
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Nehmen Sie eine bequeme Haltung ein. Entspannen Sie sich!
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Drücken Sie die Taste „Pose speichern“.
onboarding-stay_aligned-relaxed_poses-skip_step = Überspringen
onboarding-stay_aligned-previous_step = Zurück
onboarding-stay_aligned-next_step = Weiter
onboarding-stay_aligned-restart = Neu starten
onboarding-stay_aligned-done = Fertig
## Home
home-no_trackers = Keine Tracker erkannt oder zugewiesen
home-settings-close = Schließen
## Trackers Still On notification
@@ -1215,81 +1280,40 @@ firmware_tool = DIY Firmware-Tool
firmware_tool-description = Erlaubt ihnen das Konfigurieren und Flashen von DIY Trackern
firmware_tool-not_available = Das Firmware Tool ist im Moment nicht verfügbar. Versuche sie später erneut!
firmware_tool-not_compatible = Das Firmware Tool ist nicht mit dieser Version des Servers kompatibel. Bitte den Server aktualisieren!
firmware_tool-board_step = Wähle das Board
firmware_tool-board_step-description = Wähle eines der Boards unten aus der Liste aus.
firmware_tool-board_pins_step = Überprüfe die Pins
firmware_tool-board_pins_step-description =
Bitte vergewissern Sie sich, dass die ausgewählten Pins korrekt sind.
Wenn Sie der SlimeVR-Dokumentation gefolgt sind, sollten die Standardwerte korrekt sein.
firmware_tool-board_pins_step-enable_led = LED aktivieren
firmware_tool-board_pins_step-led_pin =
.label = LED Pin
.placeholder = Geben Sie die Pin-Nummer der LED ein.
firmware_tool-board_pins_step-battery_type = Wähle den Batterie Typ aus
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Externe Batterie
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Interne Batterie
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Internal MCP3021
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Batteriesensor-Pin
.placeholder = Geben Sie die Pin-Nummer des Batteriesensors ein.
firmware_tool-board_pins_step-battery_resistor =
.label = Batteriewiderstand (Ohm)
.placeholder = Geben Sie den Wert des Batteriewiderstands ein.
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Battery Shield R1 (Ohms)
.placeholder = Geben Sie den Wert des Widerstands R1 des Battery Shields ein
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Battery Shield R2 (Ohms)
.placeholder = Geben Sie den Wert des Widerstands R2 des Battery Shields ein
firmware_tool-add_imus_step = Deklarieren Sie die IMUs
firmware_tool-add_imus_step-description =
Bitte fügen Sie die IMUs hinzu, die Ihr Tracker hat.
Wenn Sie der SlimeVR-Dokumentation gefolgt sind, sollten die Standardwerte korrekt sein.
firmware_tool-add_imus_step-imu_type-label = IMU Typ
firmware_tool-add_imus_step-imu_type-placeholder = Wähle den IMU Typ aus
firmware_tool-add_imus_step-imu_rotation =
.label = IMU Rotation (deg)
.placeholder = Rotationswinkel des IMUs
firmware_tool-add_imus_step-scl_pin =
.label = SCL Pin
.placeholder = Pin-Nummer von SCL
firmware_tool-add_imus_step-sda_pin =
.label = SDA Pin
.placeholder = Pin-Nummer von SDA
firmware_tool-add_imus_step-int_pin =
.label = INT Pin
.placeholder = Pin-Nummer von INT
firmware_tool-add_imus_step-optional_tracker =
.label = Optionaler Tracker
firmware_tool-add_imus_step-show_less = Weniger anzeigen
firmware_tool-add_imus_step-show_more = Mehr anzeigen
firmware_tool-add_imus_step-add_more = Weitere IMUs hinzufügen
firmware_tool-select_firmware_step = Firmware-Version auswählen
firmware_tool-select_firmware_step-description = Bitte wählen Sie die Firmware-Version aus, die Sie verwenden möchten.
firmware_tool-select_firmware_step-show-third-party =
.label = Drittanbieter-Firmware anzeigen
firmware_tool-select_source-board_type = Boardtyp
firmware_tool-select_source-firmware = Firmware-Quelle
firmware_tool-select_source-version = Firmware-Version
firmware_tool-select_source-official = Offiziell
firmware_tool-select_source-dev = Dev
firmware_tool-board_defaults = Konfigurieren Sie Ihr Board
firmware_tool-board_defaults-add = Hinzufügen
firmware_tool-board_defaults-reset = Auf Standard zurücksetzen
firmware_tool-board_defaults-error-required = Erforderliches Feld
firmware_tool-board_defaults-error-format = Ungültiges Format
firmware_tool-board_defaults-error-format-number = Keine Zahl
firmware_tool-flash_method_step = Flash-Methode
firmware_tool-flash_method_step-description = Bitte wählen Sie die Flash-Methode aus, die Sie verwenden möchten.
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Verwenden Sie die Over-the-Air-Methode. Ihr Tracker wird das Wi-Fi nutzen, um die Firmware zu aktualisieren. Funktioniert nur bei bereits eingerichteten Trackern.
firmware_tool-flash_method_step-serial =
.label = Seriell
firmware_tool-flash_method_step-ota-v2 =
.label = WLAN
.description = Verwenden Sie die Over-the-Air-Methode. Ihr Tracker wird seine Firmware über WLAN aktualisieren. Funktioniert nur bei Trackern, die bereits eingerichtet wurden.
firmware_tool-flash_method_step-ota-info =
Wir nutzen Ihre WLAN-Zugangsdaten, um den Tracker zu flashen und zu bestätigen, dass alles korrekt funktioniert hat.
<b>Wir speichern Ihre WLAN-Zugangsdaten nicht!</b>
firmware_tool-flash_method_step-serial-v2 =
.label = USB
.description = Verwenden Sie ein USB-Kabel, um Ihren Tracker zu aktualisieren.
firmware_tool-flashbtn_step = Drücken Sie den Boot-Button
firmware_tool-flashbtn_step-description = Bevor Sie mit dem nächsten Schritt fortfahren, gibt es ein paar Dinge, die Sie erledigen müssen.
firmware_tool-flashbtn_step-board_SLIMEVR = Schalten Sie den Tracker aus, entfernen Sie das Gehäuse (falls vorhanden), verbinden Sie ein USB-Kabel mit diesem Computer und führen Sie dann einen der folgenden Schritte entsprechend Ihrer SlimeVR-Board-Revision aus:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Schalten Sie den Tracker ein, während Sie das zweite rechteckige FLASH-Pad von der Kante auf der Oberseite des Boards und den Metallschild des Mikrocontrollers kurzschließen.
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Schalten Sie den Tracker ein, während Sie das kreisförmige FLASH-Pad auf der Oberseite des Boards und den Metallschild des Mikrocontrollers kurzschließen.
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Schalten Sie den Tracker ein, während Sie den FLASH-Button auf der Oberseite des Boards drücken.
firmware_tool-flashbtn_step-board_OTHER =
Bevor Sie den Tracker flashen, müssen Sie ihn wahrscheinlich in den Bootloader-Modus versetzen.
In den meisten Fällen bedeutet das, dass Sie die Boot-Taste auf dem Board drücken müssen, bevor der Flash-Vorgang beginnt.
Wenn der Flash-Vorgang zu Beginn aufgrund eines Timeouts fehlschlägt, bedeutet das wahrscheinlich, dass der Tracker nicht im Bootloader-Modus war.
Bitte beziehen Sie sich auf die Flash-Anweisungen Ihres Boards, um zu erfahren, wie Sie den Bootloader-Modus aktivieren.
firmware_tool-flash_method_ota-title = Flashen über WLAN
firmware_tool-flash_method_ota-devices = Erkannte OTA-Geräte:
firmware_tool-flash_method_ota-no_devices = Es sind keine Boards vorhanden, die über OTA aktualisiert werden können. Stellen Sie sicher, dass Sie den richtigen Board-Typ ausgewählt haben.
firmware_tool-flash_method_serial-title = Über USB flashen
firmware_tool-flash_method_serial-wifi = WLAN-Zugangsdaten:
firmware_tool-flash_method_serial-devices-label = Erkannte serielle Geräte:
firmware_tool-flash_method_serial-devices-placeholder = Wählen Sie ein serielles Gerät aus
@@ -1304,10 +1328,10 @@ firmware_tool-flashing_step-exit = Schließen
## firmware tool build status
firmware_tool-build-QUEUED = Warte darauf, zu bauen....
firmware_tool-build-CREATING_BUILD_FOLDER = Erstelle den Build-Ordner
firmware_tool-build-DOWNLOADING_FIRMWARE = Lade die Firmware herunter
firmware_tool-build-EXTRACTING_FIRMWARE = Extrahiere die Firmware
firmware_tool-build-SETTING_UP_DEFINES = Konfiguriere die Defines
firmware_tool-build-DOWNLOADING_SOURCE = Lade den Quellcode herunter
firmware_tool-build-EXTRACTING_SOURCE = Entpacken des Quellcode
firmware_tool-build-BUILDING = Erstellen der Firmware
firmware_tool-build-SAVING = Speichern des Builds
firmware_tool-build-DONE = Erstellen abgeschlossen
@@ -1371,6 +1395,31 @@ unknown_device-modal-description =
Möchten Sie diesen mit SlimeVR verbinden?
unknown_device-modal-confirm = Sicher!
unknown_device-modal-forget = Ignorieren
# VRChat config warnings
vrc_config-page-title = VRChat Konfigurations-Warnungen
vrc_config-page-desc = Diese Seite zeigt den Zustand deiner VRChat-Einstellungen und zeigt, welche Einstellungen mit SlimeVR inkompatibel sind. Es wird dringend empfohlen, alle hier angezeigten Warnungen zu beheben, um das beste Nutzererlebnis mit SlimeVR zu gewährleisten.
vrc_config-page-help-desc = Schauen Sie sich unsere <a>Dokumentation zu diesem Thema</a> an!
vrc_config-on = An
vrc_config-off = Aus
vrc_config-invalid = Sie haben falsch konfigurierte VRChat-Einstellungen!
vrc_config-show_more = Mehr anzeigen
vrc_config-setting_name = Name der VRChat-Einstellung
vrc_config-recommended_value = Empfohlener Wert
vrc_config-current_value = Aktueller Wert
vrc_config-mute = Warnung stummschalten
vrc_config-mute-btn = Stummschalten
vrc_config-unmute-btn = Stummschaltung aufheben
vrc_config-disable_shoulder_tracking = Schultertracking deaktivieren
vrc_config-user_height = Echte Benutzergröße
vrc_config-spine_mode-UNKNOWN = Unbekannt
vrc_config-spine_mode-LOCK_HEAD = Kopf sperren
vrc_config-spine_mode-LOCK_HIP = Hüfte sperren
vrc_config-tracker_model-UNKNOWN = Unbekannt
vrc_config-tracker_model-AXIS = Achse
vrc_config-tracker_model-SYSTEM = System
vrc_config-avatar_measurement_type-UNKNOWN = Unbekannt
vrc_config-avatar_measurement_type-HEIGHT = Höhe
vrc_config-avatar_measurement_type-ARM_SPAN = Armspannweite
## Error collection consent modal
@@ -1381,3 +1430,33 @@ error_collection_modal-description_v2 =
Sie können diese Einstellung später im Abschnitt Verhalten auf der Einstellungsseite ändern.
error_collection_modal-confirm = Ich stimme zu
error_collection_modal-cancel = Ich will nicht
## Tracking checklist section
tracking_checklist-settings-close = Schließen
tracking_checklist-status-partial =
{ $count ->
[one] Sie haben 1 Warnung!
*[other] Sie haben { $count } Warnungen!
}
tracking_checklist-MOUNTING_CALIBRATION = Tracker-Ausrichtung durchführen
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR läuft nicht
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR läuft nicht. Nutzen sie es für VR?
tracking_checklist-STEAMVR_DISCONNECTED-open = SteamVR starten
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = Sie haben keine Tracker-Kalibrierung durchgeführt. Bitte lassen Sie Ihre Tracker (gelb markiert) für einige Sekunden auf einer stabilen Oberfläche ruhen.
tracking_checklist-TRACKER_ERROR = Tracker mit Fehlern
tracking_checklist-VRCHAT_SETTINGS = VRChat-Einstellungen konfigurieren
tracking_checklist-VRCHAT_SETTINGS-open = Gehen sie zu den VRChat-Warnungen
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Kontrollpanel öffnen
tracking_checklist-STAY_ALIGNED_CONFIGURED = Stay Aligned konfigurieren
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = Öffne den Stay Aligned Assistent
tracking_checklist-ignore = Ignorieren
preview-mocap_mode_soon = Mocap-Modus (Bald™)
preview-disable_render = Vorschau deaktivieren
preview-disabled_render = Vorschau deaktiviert
toolbar-mounting_calibration = Tracker-Ausrichtung
toolbar-mounting_calibration-default = Körper
toolbar-mounting_calibration-feet = Füße
toolbar-mounting_calibration-fingers = Finger
toolbar-assigned_trackers = { $count } Tracker zugewiesen
toolbar-unassigned_trackers = { $count } Tracker nicht zugewiesen

View File

@@ -18,6 +18,9 @@ websocket-connection_lost = Η σύνδεση μεταξύ του διακομι
tips-find_tracker = Δεν είστε σίγουροι ποιος ανιχνευτής είναι ποιος; Κουνήστε έναν ανιχνευτή και θα επισημάνει το αντίστοιχο στοιχείο.
tips-do_not_move_heels = Βεβαιωθείτε ότι οι φτέρνες σας δεν κινούνται κατά την εγγραφή!
## Units
## Body parts
body_part-NONE = Μη εκχωρημένο
@@ -41,13 +44,16 @@ body_part-LEFT_UPPER_LEG = Αριστερός μηρός
body_part-LEFT_LOWER_LEG = Αριστερός αστράγαλος
body_part-LEFT_FOOT = Αριστερό πόδι
## BoardType
## Proportions
skeleton_bone-NONE = Τίποτα
skeleton_bone-HEAD = Μετατόπιση κεφαλής
skeleton_bone-NECK = Μήκος λαιμού
skeleton_bone-CHEST = Μήκος στήθους
skeleton_bone-CHEST_OFFSET = Μετατόπιση στήθους
skeleton_bone-CHEST = Μήκος στήθους
skeleton_bone-WAIST = Μήκος μέσης
skeleton_bone-HIP = Μήκος γοφών
skeleton_bone-HIP_OFFSET = Μετατόπιση γοφών
@@ -106,6 +112,9 @@ widget-overlay-is_mirrored_label = Εμφάνιση υπέρθεσης ως κα
widget-drift_compensation-clear = Επαναφορά αντιστάθμισης drift
## Widget: Clear Mounting calibration
## Widget: Developer settings
widget-developer_mode = Λειτουργία προγραμματιστή
@@ -123,6 +132,9 @@ widget-imu_visualizer = Περιστροφή
widget-imu_visualizer-rotation_raw = Ακατέργαστο
widget-imu_visualizer-rotation_preview = Προεπισκόπηση
## Widget: Skeleton Visualizer
## Tracker status
tracker-status-none = Χωρίς κατάσταση
@@ -231,8 +243,6 @@ tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } αριστερό
settings-general-steamvr = SteamVR
settings-general-steamvr-trackers-waist = Μέση
settings-general-steamvr-trackers-chest = Στήθος
settings-general-steamvr-trackers-feet = Πόδια
settings-general-steamvr-trackers-hands = Χέρια
## Tracker mechanics
@@ -243,7 +253,13 @@ settings-general-steamvr-trackers-hands = Χέρια
## Gesture control settings (tracker tapping)
## Interface settings
## Appearance settings
## Notification settings
## Behavior settings
## Serial settings
@@ -260,6 +276,18 @@ settings-osc-vrchat-network-trackers-feet = Πόδια
## VMC OSC settings
## Common OSC settings
## Advanced settings
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
@@ -272,9 +300,6 @@ settings-osc-vrchat-network-trackers-feet = Πόδια
## Setup start
## Enter VR part of setup
## Setup done
@@ -302,17 +327,53 @@ settings-osc-vrchat-network-trackers-feet = Πόδια
## Tracker automatic mounting setup
## Tracker proportions method choose
## Tracker manual proportions setup
## Tracker manual proportions setupa
## Tracker automatic proportions setup
## User height calibration
## Stay Aligned setup
## Home
## Trackers Still On notification
## Status system
## Firmware tool globals
## Firmware tool Steps
## firmware tool build status
## Firmware update status
## Dedicated Firmware Update Page
## Tray Menu
## First exit modal
## Unknown device modal
## Error collection consent modal
## Tracking checklist section

View File

@@ -31,6 +31,9 @@ tips-tap_setup = u can swowly tap youw twackew 2 times to choose it insted of se
tips-turn_on_tracker = erm.. are u using offishal SlaiemVR twackews??! rember to <b><em>tuwn on yuor twackew</em></b> aftwew coneccting it to teh PC!
tips-failed_webgl = oh nooooo :( faiwled to initiawizwe WebGL...
## Units
## Body parts
body_part-NONE = unassyigned
@@ -189,7 +192,7 @@ widget-overlay-is_mirrored_label = dispway owovelay as miwwow
widget-drift_compensation-clear = cwear dwift compensation
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = cweaw weset meownting
@@ -300,9 +303,7 @@ tracker-settings-name_section-label = twackaw name
tracker-settings-forget = *forgors the tracker*
tracker-settings-forget-description = remooves teh twackew fwom da SwimeVR sewvew n pwevent it frum conecting to it til fhe sewvew iz westawtied. the cowonfigyuwatsin of da twackew woant b wost.
tracker-settings-forget-label = *forgors the tracker*
tracker-settings-update-unavailable = cannawt be updayted (DIY)
tracker-settings-update-up_to_date = up to dayte!! ^w^
tracker-settings-update-available = { $versionName } is naow awailabwe
tracker-settings-update = uwupdate meow!
## Tracker part card info
@@ -467,8 +468,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = fwoow-cwip can r
settings-general-fk_settings-leg_tweak-toe_snap-description = toe-snap atempts to gwess da wotation of ur fweet if fweet tracker thingys arewnt in use
settings-general-fk_settings-leg_tweak-foot_plant-description = pawb-pwant wotates youw feet to be pawawwew to the gwound wen in cawntact.
settings-general-fk_settings-leg_fk = leg twacking
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Enyabwe pawb Meownting Weset by tiptoeing.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Pawb Meownting Weset
settings-general-fk_settings-enforce_joint_constraints = skewetal wimits
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = enfourse constwaints
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = pwevents da joins fwom wotating past da wimit
@@ -541,6 +540,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = incwe
## Appearance settings
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-show-navbar-onboarding = show "{ navbar-onboarding }" on da nawigation bar
settings-general-interface-show-navbar-onboarding-description = dis change if da "{ navbar-onboarding }" button show on da nawigashun bar!
@@ -577,9 +579,6 @@ settings-general-interface-connected_trackers_warning-label = Connected twackews
## Behavior settings
settings-interface-behavior = behavur
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-use_tray = minimaize to systewm tway
settings-general-interface-use_tray-description = wets u cwose the wimdOwOw wifhout cwosing da SwimeVR Sewvew so uou can keep using it withowt da GUI bohtewing u.
settings-general-interface-use_tray-label = minimaize to systewm tway
@@ -610,7 +609,6 @@ settings-serial-factory_reset-warning =
which means wi-fi and cawibwation settings <b>wiww aww be wost!</b>
settings-serial-factory_reset-warning-ok = i know what I'm doing :3
settings-serial-factory_reset-warning-cancel = cancew
settings-serial-get_infos = get infows
settings-serial-serial_select = sewect a shewyaw pawt
settings-serial-auto_dropdown_item = awto
settings-serial-get_wifi_scan = get wifi scan uwu
@@ -697,6 +695,9 @@ settings-osc-vmc-mirror_tracking = miwwow twacking
settings-osc-vmc-mirror_tracking-description = miwwow da twacking howizawntawwy.
settings-osc-vmc-mirror_tracking-label = miwwow twacking
## Common OSC settings
## Advanced settings
settings-utils-advanced-reset_warning =
@@ -720,6 +721,12 @@ settings-utils-advanced-open_logs = logs fowdew
settings-utils-advanced-open_logs-description = open swimevr's logs fowdew in da fiwe explowew, containing teh logs of da app
settings-utils-advanced-open_logs-label = open fowdew
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = skipy setup
@@ -735,11 +742,6 @@ onboarding-setup_warning-cancel = continu setup
## Wi-Fi setup
onboarding-wifi_creds-back = gaww bawwk to intwoduction
onboarding-wifi_creds = input wi-fi cwedentials
# This cares about multilines
onboarding-wifi_creds-description =
teh twawckaws will use these cwedentials to connect wirelessly
pwease use teh cwedentials that yaww awe cwowently cownyected to
onboarding-wifi_creds-skip = skipy wi-fi settiwyngs
onboarding-wifi_creds-submit = suwbmyt!
onboarding-wifi_creds-ssid =
@@ -780,13 +782,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = wewcome to SwimeVR
onboarding-home-start = wets get set up!
## Enter VR part of setup
onboarding-enter_vr-back = gaww bawwk to twacker assignyment
onboarding-enter_vr-title = time to entew vr!
onboarding-enter_vr-description = put on awe yoaww twackaws and then entew vr!
onboarding-enter_vr-ready = iym weady
## Setup done
onboarding-done-title = yaww awe awe set!
@@ -817,17 +812,16 @@ onboarding-connect_tracker-connection_status-done = cownyected to teh sewvew
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] no twackers
[one] 1 twackers
*[other] { $amount } twackers
} cownyected
[0] no twackers cownyected
[one] 1 twackers cownyected
*[other] { $amount } twackers cownyected
}
onboarding-connect_tracker-next = i cownyected awe my twackaws
## Tracker calibration tutorial
onboarding-calibration_tutorial = imu cawibwashun tutowiawl
onboarding-calibration_tutorial-subtitle = dis will hewp weduce twackew dwifting!!!
onboarding-calibration_tutorial-description = evewy time you tuwn on youw twackews, dey need to west fow a moment on a fwat suwface to cawibwate. wet's do da same ting by booping da "{ onboarding-calibration_tutorial-calibrate }" buddon, <b>do nyot move dem!!!</b>
onboarding-calibration_tutorial-calibrate = i pwace da twackew on da tabwe
onboarding-calibration_tutorial-status-waiting = waiiiting fur u
onboarding-calibration_tutorial-status-calibrating = cawibwating
@@ -854,10 +848,10 @@ onboarding-assign_trackers-description = wets choyse which twackaw goes whewe. c
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 twackaws
*[other] { $trackers } twackaws
} assigned
{ $trackers ->
[one] { $assigned } of 1 twackaws assigned
*[other] { $assigned } of { $trackers } twackaws assigned
}
onboarding-assign_trackers-advanced = show advanced assign wocations
onboarding-assign_trackers-next = i assigned awe the twackaws
onboarding-assign_trackers-mirror_view = miwwow vyew
@@ -995,22 +989,15 @@ onboarding-automatic_mounting-mounting_reset-title = meownting weset
onboarding-automatic_mounting-mounting_reset-step-0 = 1. squawt in a "skiing" pose with yowo wegs bent, yowo upper body tilted fowwawds, and yowo awems bent.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. pwess the "weset meownting" button and wait fow 3 seconds befowe the twackaws' meownting wowations will weset.
onboarding-automatic_mounting-preparation-title = pwepaiwation
onboarding-automatic_mounting-preparation-step-0 = 1. stand upwight with yowo awems to yowo sides.
onboarding-automatic_mounting-preparation-step-1 = 2. pwess the "fuww weset" button and wait fow 3 seconds befowe the twackaws will weset.
onboarding-automatic_mounting-put_trackers_on-title = put on yowo twackaws
onboarding-automatic_mounting-put_trackers_on-description = to cawibwate meownting wowations, we'we gonna use the twackaws yowo just assigned. put on awe yowo twackaws, yowo can see which awe which in the figuwe to the wowight.
onboarding-automatic_mounting-put_trackers_on-next = i haff awe my twackaws on
## Tracker manual proportions setupa
onboarding-manual_proportions-back = go bawck to weset tutowiaw
onboarding-manual_proportions-title = manyuaw bodee pwopowtiesions
onboarding-manual_proportions-precision = pwecision adjusty
onboarding-manual_proportions-auto = owtomatic cawybwation
onboarding-manual_proportions-ratio = ajust by watio gwoups
onboarding-manual_proportions-fine_tuning_button = automaticawwy fine tuwune propowtions
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = pwease connect a vr headset to use automatic fine tuwuning
onboarding-manual_proportions-import-failed = faiwed :(
## Tracker automatic proportions setup
@@ -1097,23 +1084,11 @@ onboarding-automatic_proportions-smol_warning =
<b>pwease wedo da measuwments and ensuwe dey r cowwect.</b>
onboarding-automatic_proportions-smol_warning-cancel = go bak
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = scawed pwopowtions
onboarding-scaled_proportions-description = fow swimevr twackews to wowk, we need to kno teh bigness of youw bowones. dis wiww use an avewage pwopowtion and scawe it based on youw heit.
onboarding-scaled_proportions-manual_height-title = configuwe youw heit
onboarding-scaled_proportions-manual_height-description-v2 = dis heit wiww be used az a basewine fow youw body pwopowtions.
onboarding-scaled_proportions-manual_height-missing_steamvr = steawmvr is nawt cuwwentwy cowonnected to da swimevr, so measuwements cant be based on youw hedset ono... <b>pwoceed at youw owon wisk ow chek da docs!</b>
onboarding-scaled_proportions-manual_height-height-v2 = youw fuww heit is
onboarding-scaled_proportions-manual_height-estimated_height = youw estimated hedset heit is:
onboarding-scaled_proportions-manual_height-next_step = keep goin an saiv
## Tracker scaled proportions reset
## Stay Aligned setup
onboarding-scaled_proportions-reset_proportion-title = weset youw body pwopowtions
onboarding-scaled_proportions-reset_proportion-description = to set youw pwopowtions based on youw heit, u gotsa weset aww of youw pwopowtions. dis wiww cweaw any pwopowtions u hav configuwed and pwovide a basewine configuwation.
onboarding-scaled_proportions-done-title = body pwopowtions set
onboarding-scaled_proportions-done-description = youw body pwopowtions shuld nao be configuwed based on youw heit :3
## Home
@@ -1153,74 +1128,11 @@ firmware_tool = DIY fiwmwawe toow
firmware_tool-description = awwows u to configuwe an fwash youw DIY twackews
firmware_tool-not_available = oopsie woopsie! da fiwmwawe toow iz nawt avaiwabwe wight meow :3 twy agen laitew!
firmware_tool-not_compatible = teh fiwmwawe toow iz nawt compatibwe wit dis vershun of teh sewvew. pwease uwupdate youw sewvew!
firmware_tool-board_step = sewect youw boawd
firmware_tool-board_step-description = sewect wun of da boawds wisted bewow owo
firmware_tool-board_pins_step = check da pins
firmware_tool-board_pins_step-description =
pwease vewify dat da pins hewe r cowwect.
if u fowwowed teh swimevr docs teh defawt vawuwes shuld be cowwect
firmware_tool-board_pins_step-enable_led = enabwe da wights
firmware_tool-board_pins_step-led_pin =
.label = pin fow teh wight
.placeholder = put in teh pin addwess fow teh wight
firmware_tool-board_pins_step-battery_type = sewect da battewy taip
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = extewnaw battewy
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = intewnaw battewy
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = intewnaw mcp 3021
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = mcp3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = battewy sensow pin
.placeholder = put in teh pin addwess fow teh battewy sensow
firmware_tool-board_pins_step-battery_resistor =
.label = battewy wesistow (owms)
.placeholder = put in teh vawue fow teh battewy wesistow
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = battewy shiewd r1 (owms)
.placeholder = put in teh vawue of battewy shiewd r1
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = battewy shiewd r2 (owms)
.placeholder = put in teh vawue of battewy shiewd r2
firmware_tool-add_imus_step = decwawe youw imuwus
firmware_tool-add_imus_step-description =
pwease add teh imuwus dat youw twackew got
if u fowwowed teh swimevr docsteh defawt vawuwes shuld be cowwect
firmware_tool-add_imus_step-imu_type-label = imuwu taip
firmware_tool-add_imus_step-imu_type-placeholder = sewect teh taip of imuwu
firmware_tool-add_imus_step-imu_rotation =
.label = imuwu wotaishun (degwees)
.placeholder = wotaishun angle of teh imuwu
firmware_tool-add_imus_step-scl_pin =
.label = scl pin
.placeholder = pin addwess of scl
firmware_tool-add_imus_step-sda_pin =
.label = sda pin
.placeholder = pin addwess of sda
firmware_tool-add_imus_step-int_pin =
.label = int pin
.placeholder = pin addwess of int
firmware_tool-add_imus_step-optional_tracker =
.label = opshunal twackew
firmware_tool-add_imus_step-show_less = show wess
firmware_tool-add_imus_step-show_more = show mowe
firmware_tool-add_imus_step-add_more = add mowe imuwus!!
firmware_tool-select_firmware_step = sewect teh fiwmwawe vershun
firmware_tool-select_firmware_step-description = pwease chooze wat vershun of teh fiwmwawe u wanna use
firmware_tool-select_firmware_step-show-third-party =
.label = show thiwd pawty fiwmwawes
firmware_tool-flash_method_step = fwashin mefod
firmware_tool-flash_method_step-description = pwease sewect teh fwashin mefod u wanna use
firmware_tool-flash_method_step-ota =
.label = ovew teh aiw
.description = use da ovew teh aiw mefod. youw twackew wiww use da wifi to uwupdate its fiwmwawe :3 but it ownwy wowks on awedy fwashed twackews!
firmware_tool-flash_method_step-serial =
.label = sewiaw
.description = use an usb cabwe to uwupdate youw twackew.
firmware_tool-flashbtn_step = pwess da buwut buddon
firmware_tool-flashbtn_step-description = befow goin into da next step thewe's stuff u gotta do
firmware_tool-flashbtn_step-board_SLIMEVR = tuwn awf da twackew, wemove da case if u got wun, conecc an usb cabwe to dis compooper, den do wun of da fowwowin steps dependin on wat swimevr boawd u got:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = tuwn on da twackew whiwe showtin teh secund wectanguwaw FWASH!! pad fwom da edge on teh top side of teh boawd and da metaw shiewd of da micwocontwowwew
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = tuwn on da twackew whiwe showtin teh ciwcuwaw FWASH!! pad on teh top side of teh boawd and teh metaw shiewd of da micwocontwowwew
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = tuwn on da twackew whiwe pushin in da FWASH!! buddon on da top side of da boawd
firmware_tool-flashbtn_step-board_OTHER =
befow fwashin u prob need 2 put da twackew into buwutwoadew mowd :3
mowst of da time it meens pressin da buwut buddon on da boawd befow da fwashin pwocess stawts.
@@ -1236,16 +1148,12 @@ firmware_tool-build_step = bildin
firmware_tool-build_step-description = da fiwmwawe is bildin pwease wait :3
firmware_tool-flashing_step = fwashin
firmware_tool-flashing_step-description = youw twackews r fwashin, pwease fowwow da instwucshuns on da scween
firmware_tool-flashing_step-warning = do NAWT unpwug ow westawt da twackew duwin da upwoad pwocess unwess towd to, it culd make youw boawd unuwusabwe
firmware_tool-flashing_step-flash_more = fwash mowe twackews
firmware_tool-flashing_step-exit = exit
## firmware tool build status
firmware_tool-build-CREATING_BUILD_FOLDER = cweatin da bild fowdew
firmware_tool-build-DOWNLOADING_FIRMWARE = downwoadin da fiwmwawe
firmware_tool-build-EXTRACTING_FIRMWARE = extwactin da fiwmwawe
firmware_tool-build-SETTING_UP_DEFINES = configuwin da defains
firmware_tool-build-BUILDING = bildin da fiwmwawe
firmware_tool-build-SAVING = savin da bild
firmware_tool-build-DONE = bild compwete!
@@ -1254,7 +1162,6 @@ firmware_tool-build-ERROR = unabwe to bild da fiwmwawe...
## Firmware update status
firmware_update-status-DOWNLOADING = downwoadin da fiwmwawe
firmware_update-status-NEED_MANUAL_REBOOT = pwease westawt da twackew
firmware_update-status-AUTHENTICATING = awthenticatin wit da mcu
firmware_update-status-UPLOADING = upwoadin da fiwmwawe
firmware_update-status-SYNCING_WITH_MCU = syncin wit da mcu
@@ -1312,3 +1219,6 @@ unknown_device-modal-forget = ignowe it
## Error collection consent modal
## Tracking checklist section

View File

@@ -27,6 +27,13 @@ tips-tap_setup = You can slowly tap your tracker 2 times to choose it instead of
tips-turn_on_tracker = Using official SlimeVR trackers? Don't forget to <b><em>turn on your tracker</em></b> after connecting it to the PC!
tips-failed_webgl = Failed to initialize WebGL.
## Units
unit-meter = Meter
unit-foot = Foot
unit-inch = Inch
unit-cm = cm
## Body parts
body_part-NONE = Unassigned
body_part-HEAD = Head
@@ -89,6 +96,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
board_type-TTGO_TBASE = TTGO T-Base
board_type-ESP01 = ESP-01
board_type-SLIMEVR = SlimeVR
board_type-SLIMEVR_DEV = SlimeVR Dev Board
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
board_type-LOLIN_C3_MINI = Lolin C3 Mini
board_type-BEETLE32C3 = Beetle ESP32-C3
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
@@ -100,6 +109,11 @@ board_type-XIAO_ESP32C3 = Seeed Studio XIAO ESP32C3
board_type-HARITORA = Haritora
board_type-ESP32C6DEVKITC1 = Espressif ESP32-C6 DevKitC-1
board_type-GLOVE_IMU_SLIMEVR_DEV = SlimeVR Dev IMU Glove
board_type-GESTURES = Gestures
board_type-ESP32S3_SUPERMINI = ESP32-S3 Supermini
board_type-GENERIC_NRF = Generic nRF
board_type-SLIMEVR_BUTTERFLY_DEV = SlimeVR Dev Butterfly
board_type-SLIMEVR_BUTTERFLY = SlimeVR Butterfly
## Proportions
skeleton_bone-NONE = None
@@ -236,10 +250,14 @@ reset-reset_all_warning_default-v2 =
Are you sure you want to do this?
reset-full = Full Reset
reset-mounting = Reset Mounting
reset-mounting-feet = Reset Feet Mounting
reset-mounting-fingers = Reset Fingers Mounting
reset-mounting = Mounting Calibration
reset-mounting-feet = Feet Calibration
reset-mounting-fingers = Fingers Calibration
reset-yaw = Yaw Reset
reset-error-no_feet_tracker = No feet tracker assigned
reset-error-no_fingers_tracker = No finger tracker assigned
reset-error-mounting-need_full_reset = Need a full reset before mounting
reset-error-yaw-need_full_reset = Need a full reset before yaw reset
## Serial detection stuff
serial_detection-new_device-p0 = New serial device detected!
@@ -257,9 +275,11 @@ navbar-trackers_assign = Tracker Assignment
navbar-mounting = Mounting Calibration
navbar-onboarding = Setup Wizard
navbar-settings = Settings
navbar-connect_trackers = Connect Trackers
## Biovision hierarchy recording
bvh-start_recording = Record BVH
bvh-stop_recording = Save BVH recording
bvh-recording = Recording...
bvh-save_title = Save BVH recording
@@ -275,8 +295,8 @@ 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: Clear Mounting calibration
widget-clear_mounting = Clear mounting calibration
## Widget: Developer settings
widget-developer_mode = Developer Mode
@@ -316,6 +336,7 @@ tracker-table-column-name = Name
tracker-table-column-type = Type
tracker-table-column-battery = Battery
tracker-table-column-ping = Ping
tracker-table-column-packet_loss = Packet Loss
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
@@ -334,7 +355,7 @@ tracker-rotation-back = Back
tracker-rotation-back_left = Back-Left
tracker-rotation-back_right = Back-Right
tracker-rotation-custom = Custom
tracker-rotation-overriden = (overridden by mounting reset)
tracker-rotation-overriden = (overridden by mounting calibration)
## Tracker information
tracker-infos-manufacturer = Manufacturer
@@ -355,6 +376,10 @@ tracker-infos-magnetometer-status-v1 = { $status ->
[ENABLED] Enabled
}
tracker-infos-packet_loss = Packet Loss
tracker-infos-packets_lost = Packets Lost
tracker-infos-packets_received = Packets Received
## Tracker settings
tracker-settings-back = Go back to trackers list
tracker-settings-title = Tracker settings
@@ -383,13 +408,17 @@ tracker-settings-name_section-label = Tracker name
tracker-settings-forget = Forget tracker
tracker-settings-forget-description = Removes the tracker from the SlimeVR Server and prevents it from connecting until the server is restarted. The configuration of the tracker won't be lost.
tracker-settings-forget-label = Forget tracker
tracker-settings-update-unavailable = Cannot be updated (DIY)
tracker-settings-update-unavailable-v2 = No releases found
tracker-settings-update-incompatible = Cannot update. Incompatible board or firmware version
tracker-settings-update-low-battery = Cannot update. Battery lower than 50%
tracker-settings-update-up_to_date = Up to date
tracker-settings-update-blocked = Update not available. No other releases available
tracker-settings-update-available = { $versionName } is now available
tracker-settings-update = Update now
tracker-settings-update-title = Firmware version
tracker-settings-current-version = Current
tracker-settings-latest-version = Latest
tracker-settings-build-date = Build Date
## Tracker part card info
tracker-part_card-no_name = No name
@@ -452,6 +481,7 @@ mounting_selection_menu-close = Close
## Sidebar settings
settings-sidebar-title = Settings
settings-sidebar-general = General
settings-sidebar-steamvr = SteamVR
settings-sidebar-tracker_mechanics = Tracker mechanics
settings-sidebar-stay_aligned = Stay Aligned
settings-sidebar-fk_settings = Tracking settings
@@ -459,9 +489,12 @@ settings-sidebar-gesture_control = Gesture control
settings-sidebar-interface = Interface
settings-sidebar-osc_router = OSC router
settings-sidebar-osc_trackers = VRChat OSC Trackers
settings-sidebar-osc_vmc = VMC
settings-sidebar-utils = Utilities
settings-sidebar-serial = Serial console
settings-sidebar-appearance = Appearance
settings-sidebar-home = Home Screen
settings-sidebar-checklist = Tracking checklist
settings-sidebar-notifications = Notifications
settings-sidebar-behavior = Behavior
settings-sidebar-firmware-tool = DIY Firmware Tool
@@ -535,16 +568,20 @@ settings-general-tracker_mechanics-drift_compensation_warning-cancel = Cancel
settings-general-tracker_mechanics-drift_compensation_warning-done = I understand
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
settings-general-tracker_mechanics-save_mounting_reset = Save automatic mounting reset calibration
settings-general-tracker_mechanics-save_mounting_reset = Save automatic mounting calibration
settings-general-tracker_mechanics-save_mounting_reset-description =
Saves the automatic mounting reset calibrations for the trackers between restarts. Useful
Saves the automatic mounting calibration for the trackers between restarts. Useful
when wearing a suit where trackers don't move between sessions. <b>Not recommended for normal users!</b>
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Save mounting reset
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Save mounting calibration
settings-general-tracker_mechanics-use_mag_on_all_trackers = Use magnetometer on all IMU trackers that support it
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
Uses magnetometer on all trackers that have a compatible firmware for it, reducing drift in stable magnetic environments.
Can be disabled per tracker in the tracker's settings. <b>Please don't shutdown any of the trackers while toggling this!</b>
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Use magnetometer on trackers
settings-general-tracker_mechanics-trackers_over_usb = Trackers over USB
settings-general-tracker_mechanics-trackers_over_usb-description =
Enables receiving HID tracker data over USB. Make sure connected trackers have <b>connection over HID</b> enabled!
settings-general-tracker_mechanics-trackers_over_usb-enabled-label = Allow HID trackers to connect directly over USB
settings-stay_aligned = Stay Aligned
settings-stay_aligned-description = Stay Aligned reduces drift by gradually adjusting your trackers to match your relaxed poses.
@@ -586,26 +623,29 @@ 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 foot 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-v1 = Force feet mounting reset during general mounting resets.
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Force feet mounting reset
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Force feet mounting calibration during body mounting calibration.
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Force feet mounting calibration
settings-general-fk_settings-enforce_joint_constraints = Skeletal Limits
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Enforce constraints
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Prevents joints from rotating past their limit
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Correct with constraints
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Correct joint rotations when they push past their limit
settings-general-fk_settings-ik = Position data
settings-general-fk_settings-ik-use_position = Use Position data
settings-general-fk_settings-ik-use_position-description = Enables the use of position data from trackers that provide it. When enabling this make sure to full reset and recalibrate in game.
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Force arms to be tracked from the headset (HMD) even if positional hand data is available.
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-reset_settings = Reset settings
settings-general-fk_settings-reset_settings-reset_hmd_pitch-description = Reset the HMD's pitch (vertical rotation) upon doing a full reset. Useful if wearing an HMD on the forehead for VTubing or mocap. Do not enable for VR.
settings-general-fk_settings-reset_settings-reset_hmd_pitch = Reset HMD pitch
settings-general-fk_settings-arm_fk-reset_mode-description = Change which arm pose is expected for mounting reset.
settings-general-fk_settings-arm_fk-reset_mode-description = Change which arm pose is expected for mounting calibration.
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 at your sides during Full Reset, and 90 degrees up to the sides during Mounting Reset.
settings-general-fk_settings-arm_fk-tpose_up-description = Expects your arms to be down at your sides during Full Reset, and 90 degrees up to the sides during Mounting Calibration.
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 at your sides during Mounting Reset.
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 at your sides during Mounting Calibration.
settings-general-fk_settings-arm_fk-forward = Forward
settings-general-fk_settings-arm_fk-forward-description = Expects your arms to be raised forward at 90 degrees. Useful for VTubing.
settings-general-fk_settings-skeleton_settings-toggles = Skeleton toggles
@@ -629,7 +669,7 @@ settings-general-fk_settings-self_localization-description = Mocap Mode allows t
## 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. Taps must occur within the time limit of 0.3 seconds times the number of taps to be recognized.
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 Calibration. 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 ->
@@ -648,9 +688,9 @@ settings-general-gesture_control-yawResetTaps = Taps for yaw reset
settings-general-gesture_control-fullResetEnabled = Enable tap to full reset
settings-general-gesture_control-fullResetDelay = Full reset delay
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
settings-general-gesture_control-mountingResetEnabled = Enable tap to perform mounting calibration
settings-general-gesture_control-mountingResetDelay = Mounting calibration delay
settings-general-gesture_control-mountingResetTaps = Taps for mounting calibration
# 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.
@@ -737,12 +777,17 @@ settings-serial-factory_reset-warning =
Which means Wi-Fi and calibration settings <b>will all be lost!</b>
settings-serial-factory_reset-warning-ok = I know what I'm doing
settings-serial-factory_reset-warning-cancel = Cancel
settings-serial-get_infos = Get Infos
settings-serial-serial_select = Select a serial port
settings-serial-auto_dropdown_item = Auto
settings-serial-get_wifi_scan = Get WiFi Scan
settings-serial-file_type = Plain text
settings-serial-save_logs = Save To File
settings-serial-send_command = Send
settings-serial-send_command-placeholder = Command...
settings-serial-send_command-warning =
<b>Warning:</b> Running serial commands can lead to data loss or brick the trackers.
settings-serial-send_command-warning-ok = I know what I'm doing
settings-serial-send_command-warning-cancel = Cancel
## OSC router settings
settings-osc-router = OSC router
@@ -835,6 +880,10 @@ settings-osc-vmc-mirror_tracking = Mirror tracking
settings-osc-vmc-mirror_tracking-description = Mirror the tracking horizontally.
settings-osc-vmc-mirror_tracking-label = Mirror tracking
## Common OSC settings
settings-osc-common-network-ports_match_error = The OSC Router in and out ports can't be the same!
settings-osc-common-network-port_banned_error = The port { $port } can't be used!
## Advanced settings
settings-utils-advanced = Advanced
@@ -864,6 +913,16 @@ settings-utils-advanced-open_logs = Logs folder
settings-utils-advanced-open_logs-description = Open SlimeVR's logs folder in file explorer, containing the logs of the app
settings-utils-advanced-open_logs-label = Open folder
## Home Screen
settings-home-list-layout = Trackers list layout
settings-home-list-layout-desc = Select one of the possible layouts of the home screen
settings-home-list-layout-grid = Grid
settings-home-list-layout-table = Table
## Tracking Checlist
settings-tracking_checklist-active_steps = Active Steps
settings-tracking_checklist-active_steps-desc = List of all the steps in the tracking checklist. You can choose to disable specific steps.
## Setup/onboarding menu
onboarding-skip = Skip setup
onboarding-continue = Continue
@@ -876,12 +935,14 @@ onboarding-setup_warning-skip = Skip setup
onboarding-setup_warning-cancel = Continue setup
## Wi-Fi setup
onboarding-wifi_creds-back = Go Back to introduction
onboarding-wifi_creds = Input Wi-Fi credentials
onboarding-wifi_creds-back = Go back to introduction
onboarding-wifi_creds-v2 = Trackers using Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
The Trackers will use these credentials to connect wirelessly.
Please use the credentials that you are currently connected to.
onboarding-wifi_creds-description-v2 =
Most trackers (such as official SlimeVR trackers) use Wi-Fi to connect to the server.
Please use the credentials of the Wi-Fi network your device is currently connected to.
Make sure to use a 2.4GHz Wi-Fi connection for your trackers!
onboarding-wifi_creds-skip = Skip Wi-Fi settings
onboarding-wifi_creds-submit = Submit!
onboarding-wifi_creds-ssid =
@@ -892,8 +953,14 @@ onboarding-wifi_creds-password =
.label = Password
.placeholder = Enter password
onboarding-wifi_creds-dongle-title = Trackers using a dongle
onboarding-wifi_creds-dongle-description =
If your trackers came with a dongle, plug it into your device and you should be good to go!
onboarding-wifi_creds-dongle-wip = This section is a work in progress. A dedicated page to manage trackers that connect via a dongle will be made soon.
onboarding-wifi_creds-dongle-continue = Continue with a dongle
## Mounting setup
onboarding-reset_tutorial-back = Go Back to Mounting calibration
onboarding-reset_tutorial-back = Go back to Mounting calibration
onboarding-reset_tutorial = Reset tutorial
onboarding-reset_tutorial-explanation = While you use your trackers, they might get out of alignment because of IMU yaw drift, or because you might have moved them physically. You have several ways to fix this.
onboarding-reset_tutorial-skip = Skip step
@@ -907,9 +974,9 @@ onboarding-reset_tutorial-1 = Tap the highlighted tracker { $taps } times to tri
You need to be standing for this (i-pose). There is a 3 seconds delay (configurable) before it actually happens.
This fully resets the position and rotation of all your trackers. It should fix most issues.
# Cares about multiline
onboarding-reset_tutorial-2 = Tap the highlighted tracker { $taps } times to trigger a mounting reset.
onboarding-reset_tutorial-2 = Tap the highlighted tracker { $taps } times to trigger mounting calibration.
Mounting reset adjusts for how trackers are placed on your body. If they've moved or rotated significantly, this helps recalibrate their orientation.
Mounting calibration adjusts for how trackers are placed on your body. If they've moved or rotated significantly, this helps recalibrate their orientation.
You need to be in a pose like you are skiing as shown in the Automatic Mounting wizard, and you have a 3 second delay (configurable) before it gets triggered.
@@ -917,11 +984,6 @@ onboarding-reset_tutorial-2 = Tap the highlighted tracker { $taps } times to tri
onboarding-home = Welcome to SlimeVR
onboarding-home-start = Let's get set up!
## Enter VR part of setup
onboarding-enter_vr-back = Go Back to Tracker assignment
onboarding-enter_vr-title = Time to enter VR!
onboarding-enter_vr-description = Put on all your trackers and then enter VR!
onboarding-enter_vr-ready = I'm ready
## Setup done
onboarding-done-title = You're all set!
@@ -929,7 +991,7 @@ onboarding-done-description = Enjoy your full-body experience
onboarding-done-close = Close setup
## Tracker connection setup
onboarding-connect_tracker-back = Go Back to Wi-Fi credentials
onboarding-connect_tracker-back = Go back to Wi-Fi credentials
onboarding-connect_tracker-title = Connect trackers
onboarding-connect_tracker-description-p0-v1 = Now onto the fun part, connecting trackers!
onboarding-connect_tracker-description-p1-v1 = Connect each tracker one at a time through a USB port.
@@ -988,9 +1050,10 @@ onboarding-assignment_tutorial-second_step-continuation-v2 = The velcro side for
onboarding-assignment_tutorial-done = I put stickers and straps!
## Tracker assignment setup
onboarding-assign_trackers-back = Go Back to Wi-Fi Credentials
onboarding-assign_trackers-back = Go back to Wi-Fi credentials
onboarding-assign_trackers-title = Assign trackers
onboarding-assign_trackers-description = Let's choose which tracker goes where. Click on a location where you want to place a tracker
onboarding-assign_trackers-unassign_all = Unassign all trackers
# 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
@@ -1099,14 +1162,14 @@ onboarding-choose_mounting-manual_modal-confirm = I'm sure of what I'm doing
onboarding-choose_mounting-manual_modal-cancel = Cancel
## Tracker manual mounting setup
onboarding-manual_mounting-back = Go Back to Enter VR
onboarding-manual_mounting-back = Go back to Enter VR
onboarding-manual_mounting = Manual Mounting
onboarding-manual_mounting-description = Click on every tracker and select which way they are mounted
onboarding-manual_mounting-auto_mounting = Automatic mounting
onboarding-manual_mounting-next = Next step
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Go Back to Enter VR
onboarding-automatic_mounting-back = Go back to Enter VR
onboarding-automatic_mounting-title = Mounting Calibration
onboarding-automatic_mounting-description = For SlimeVR trackers to work, we need to assign a mounting orientation to your trackers to align them with your physical tracker mounting.
onboarding-automatic_mounting-manual_mounting = Manual mounting
@@ -1115,9 +1178,13 @@ onboarding-automatic_mounting-prev_step = Previous step
onboarding-automatic_mounting-done-title = Mounting orientations calibrated.
onboarding-automatic_mounting-done-description = Your mounting calibration is complete!
onboarding-automatic_mounting-done-restart = Try again
onboarding-automatic_mounting-mounting_reset-title = Mounting Reset
onboarding-automatic_mounting-mounting_reset-title = Mounting Calibration
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Squat in a "skiing" pose with your legs bent, your upper body tilted forwards, and your arms bent.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Press the "Reset Mounting" button and wait for 3 seconds before the trackers' mounting orientations will reset.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Press the "Mounting calibration" button and wait for 3 seconds before the trackers' mounting orientations will reset.
onboarding-automatic_mounting-mounting_reset-feet-step-0 = 1. Stand on your toes with both feet pointing forward. Alternatively you can do it sitting on a chair.
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. Press the "Feet calibration" button and wait for 3 seconds before the trackers' mounting orientations will reset.
onboarding-automatic_mounting-preparation-title = Preparation
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Press the "Full Reset" button.
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Stand upright with your arms to your sides. Make sure to look forward.
@@ -1125,9 +1192,10 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. Hold the position until
onboarding-automatic_mounting-put_trackers_on-title = Put on your trackers
onboarding-automatic_mounting-put_trackers_on-description = To calibrate mounting orientations, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
onboarding-automatic_mounting-put_trackers_on-next = I have all my trackers on
onboarding-automatic_mounting-return-home = Done
## Tracker manual proportions setupa
onboarding-manual_proportions-back = Go Back to Reset tutorial
onboarding-manual_proportions-back-scaled = Go back to Scaled Proportions
onboarding-manual_proportions-title = Manual Body Proportions
onboarding-manual_proportions-fine_tuning_button = Automatically fine tune proportions
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Please connect a VR headset to use automatic fine tuning
@@ -1141,7 +1209,7 @@ onboarding-manual_proportions-all_proportions = All proportions
onboarding-manual_proportions-estimated_height = Estimated user height
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Go Back to Manual Proportions
onboarding-automatic_proportions-back = Go back to Manual Proportions
onboarding-automatic_proportions-title = Measure your body
onboarding-automatic_proportions-description = For SlimeVR trackers to work, we need to know the length of your bones. This short calibration will measure it for you.
onboarding-automatic_proportions-manual = Manual proportions
@@ -1231,28 +1299,31 @@ onboarding-automatic_proportions-smol_warning =
<b>Please redo the measurements and ensure they are correct.</b>
onboarding-automatic_proportions-smol_warning-cancel = Go back
## Tracker scaled proportions setup
onboarding-scaled_proportions-title = Scaled proportions
onboarding-scaled_proportions-description = For SlimeVR trackers to work, we need to know the length of your bones. This will use an average proportion and scale it based on your height.
onboarding-scaled_proportions-manual_height-title = Configure your height
onboarding-scaled_proportions-manual_height-description-v2 = This height will be used as a baseline for your body proportions.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR is not currently connected to SlimeVR, so measurements can't be based on your headset. <b>Proceed at your own risk or check the docs!</b>
onboarding-scaled_proportions-manual_height-height-v2 = Your full height is
onboarding-scaled_proportions-manual_height-estimated_height = Your estimated headset height is:
onboarding-scaled_proportions-manual_height-next_step = Continue and save
onboarding-scaled_proportions-manual_height-warning =
You are currently using the manual way of setting up scaled proportions!
<b>This mode is recommended only if you do not use an HMD with SlimeVR.</b>
To be able to use the automatic scaled proportions please:
onboarding-scaled_proportions-manual_height-warning-no_hmd = Connect a VR Headset
onboarding-scaled_proportions-manual_height-warning-no_controllers = Make sure your controllers are connected and correctly assigned to your hands
## Tracker scaled proportions reset
onboarding-scaled_proportions-reset_proportion-title = Reset your body proportions
onboarding-scaled_proportions-reset_proportion-description = To set your body proportions based on your height, you need to now reset all of your proportions. This will clear any proportions you have configured and provide a baseline configuration.
onboarding-scaled_proportions-done-title = Body proportions set
onboarding-scaled_proportions-done-description = Your body proportions should now be configured based on your height.
## User height calibration
onboarding-user_height-title = What is your height?
onboarding-user_height-description = We need your height to calculate your body proportions and accurately represent your movements. You can either let SlimeVR calculate it, or input your height manually.
onboarding-user_height-need_head_tracker = A headset and controllers with positional tracking are required to perform the calibration.
onboarding-user_height-calculate = Calculate my height automatically
onboarding-user_height-next_step = Continue and save
onboarding-user_height-manual-proportions = Manual Proportions
onboarding-user_height-calibration-title = Calibration Progress
onboarding-user_height-calibration-RECORDING_FLOOR = Touch the floor with the tip of your controller
onboarding-user_height-calibration-WAITING_FOR_RISE = Stand back up
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = Stand back up and look forward
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Make sure your head is leveled
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = Do not look at the floor
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = Do not look too high up
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = Make sure the controller is pointing down
onboarding-user_height-calibration-RECORDING_HEIGHT = Stand back up and stand still!
onboarding-user_height-calibration-DONE = Success!
onboarding-user_height-calibration-ERROR_TIMEOUT = Calibration timed out, try again.
onboarding-user_height-calibration-ERROR_TOO_HIGH = The detected user height is too high, try again.
onboarding-user_height-calibration-ERROR_TOO_SMALL = The detected user height is too small. Make sure to stand straight and look forward at the end of the calibration.
onboarding-user_height-calibration-error = Calibration Failed
onboarding-user_height-manual-tip = While adjusting your height, try different poses and see how the skeleton matches your body.
onboarding-user_height-reset-warning = <b>Warning:</b> This will reset your proportions to be based on your height.
Are you sure you want to do this?
## Stay Aligned setup
onboarding-stay_aligned-title = Stay Aligned
@@ -1261,7 +1332,7 @@ onboarding-stay_aligned-put_trackers_on-title = Put on your trackers
onboarding-stay_aligned-put_trackers_on-description = To save your resting poses, we'll use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
onboarding-stay_aligned-put_trackers_on-trackers_warning = You have fewer than 5 trackers currently connected and assigned! This is the minimum amount of trackers required for Stay Aligned to function properly.
onboarding-stay_aligned-put_trackers_on-next = I have all my trackers on
onboarding-stay_aligned-verify_mounting-title = Check your Mounting
onboarding-stay_aligned-verify_mounting-title = Mounting Calibration
onboarding-stay_aligned-verify_mounting-step-0 = Stay Aligned requires good mounting. Otherwise, you won't get a good experience with Stay Aligned.
onboarding-stay_aligned-verify_mounting-step-1 = 1. Move around while standing.
onboarding-stay_aligned-verify_mounting-step-2 = 2. Sit down and move your legs and feet.
@@ -1286,9 +1357,12 @@ onboarding-stay_aligned-previous_step = Previous
onboarding-stay_aligned-next_step = Next
onboarding-stay_aligned-restart = Restart
onboarding-stay_aligned-done = Done
onboarding-stay_aligned-manual_mounting-done = Done
## Home
home-no_trackers = No trackers detected or assigned
home-settings = Home Page Settings
home-settings-close = Close
## Trackers Still On notification
trackers_still_on-modal-title = Trackers still on
@@ -1327,95 +1401,58 @@ firmware_tool-description =
firmware_tool-not_available = Oops, the firmware tool is not available at the moment. Come back later!
firmware_tool-not_compatible = The firmware tool is not compatible with this version of the server. Please update your server!
firmware_tool-board_step = Select your Board
firmware_tool-board_step-description = Select one of the boards listed below.
firmware_tool-select_source = Select the firmware to flash
firmware_tool-select_source-description = Select the firmware you want to flash on your board
firmware_tool-select_source-error = Unable to load Sources
firmware_tool-select_source-board_type = Board Type
firmware_tool-select_source-firmware = Firmware Source
firmware_tool-select_source-version = Firmware Version
firmware_tool-select_source-official = Official
firmware_tool-select_source-dev = Dev
firmware_tool-select_source-not_selected = No source selected
firmware_tool-select_source-no_boards = No available boards for this source
firmware_tool-select_source-no_versions = No available versions for this source
firmware_tool-board_pins_step = Check the pins
firmware_tool-board_pins_step-description =
Please verify that the selected pins are correct.
If you followed the SlimeVR documentation, the default values should be correct.
firmware_tool-board_pins_step-enable_led = Enable LED
firmware_tool-board_pins_step-led_pin =
.label = LED Pin
.placeholder = Enter the pin address of the LED
firmware_tool-board_pins_step-battery_type = Select the battery type
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = External battery
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Internal battery
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Internal MCP3021
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Battery sensor Pin
.placeholder = Enter the pin address of battery sensor
firmware_tool-board_pins_step-battery_resistor =
.label = Battery Resistor (Ohms)
.placeholder = Enter the value of battery resistor
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Battery Shield R1 (Ohms)
.placeholder = Enter the value of Battery Shield R1
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Battery Shield R2 (Ohms)
.placeholder = Enter the value of Battery Shield R2
firmware_tool-add_imus_step = Declare your IMUs
firmware_tool-add_imus_step-description =
Please add the IMUs that your tracker has.
If you followed the SlimeVR documentation, the default values should be correct.
firmware_tool-add_imus_step-imu_type-label = IMU type
firmware_tool-add_imus_step-imu_type-placeholder = Select the type of IMU
firmware_tool-add_imus_step-imu_rotation =
.label = IMU Rotation (deg)
.placeholder = Rotation angle of the IMU
firmware_tool-add_imus_step-scl_pin =
.label = SCL Pin
.placeholder = Pin address of SCL
firmware_tool-add_imus_step-sda_pin =
.label = SDA Pin
.placeholder = Pin address of SDA
firmware_tool-add_imus_step-int_pin =
.label = INT Pin
.placeholder = Pin address of INT
firmware_tool-add_imus_step-optional_tracker =
.label = Optional tracker
firmware_tool-add_imus_step-show_less = Show Less
firmware_tool-add_imus_step-show_more = Show More
firmware_tool-add_imus_step-add_more = Add more IMUs
firmware_tool-select_firmware_step = Select the firmware version
firmware_tool-select_firmware_step-description =
Please choose what version of the firmware you want to use
firmware_tool-select_firmware_step-show-third-party =
.label = Show third party firmwares
firmware_tool-board_defaults = Configure your board
firmware_tool-board_defaults-description = Set the pins or settings relative to your hardware
firmware_tool-board_defaults-add = Add
firmware_tool-board_defaults-reset = Reset to Default
firmware_tool-board_defaults-error-required = Required field
firmware_tool-board_defaults-error-format = Invalid format
firmware_tool-board_defaults-error-format-number = Not a number
firmware_tool-flash_method_step = Flashing Method
firmware_tool-flash_method_step-description =
Please select the flashing method you want to use
firmware_tool-flash_method_step-ota =
.label = OTA
firmware_tool-flash_method_step-ota-v2 =
.label = Wi-Fi
.description = Use the over-the-air method. Your tracker will use Wi-Fi to update its firmware. Only works on trackers that have been set up.
firmware_tool-flash_method_step-serial =
.label = Serial
firmware_tool-flash_method_step-ota-info =
We use your wifi credentials to flash the tracker and confirm that everything worked correctly.
<b>We do not store your wifi credentials!</b>
firmware_tool-flash_method_step-serial-v2 =
.label = USB
.description = Use a USB cable to update your tracker.
firmware_tool-flashbtn_step = Press the boot btn
firmware_tool-flashbtn_step = Press the boot button
firmware_tool-flashbtn_step-description = Before going to the next step, there are a few things you need to do
firmware_tool-flashbtn_step-board_SLIMEVR = Turn off the tracker, remove the case (if any), connect the USB cable to your computer, then follow the appropriate steps for your SlimeVR board revision:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Turn on the tracker while shorting the second rectangular FLASH pad from the edge on the top side of the board to the metal shield of the microcontroller.
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Turn on the tracker while shorting the circular FLASH pad on the top side of the board to the metal shield of the microcontroller.
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Turn on the tracker while pushing in the FLASH button on the top side of the board.
firmware_tool-flashbtn_step-board_SLIMEVR-r11-v2 = Turn on the tracker while shorting the second rectangular FLASH pad from the edge on the top side of the board to the metal shield of the microcontroller. The tracker LED should do a short blink.
firmware_tool-flashbtn_step-board_SLIMEVR-r12-v2 = Turn on the tracker while shorting the circular FLASH pad on the top side of the board to the metal shield of the microcontroller. The tracker LED should do a short blink.
firmware_tool-flashbtn_step-board_SLIMEVR-r14-v2 = Turn on the tracker while pushing in the FLASH button on the top side of the board. The tracker LED should do a short blink.
firmware_tool-flashbtn_step-board_OTHER = Before flashing, you will probably need to put the tracker into bootloader mode.
Most of the time, this means pressing the boot button on the board before the flashing process starts.
If the flashing process times out at the start, it probably means that the tracker was not in bootloader mode.
Refer to your board's flashing instructions to learn how to enter bootloader mode.
firmware_tool-flash_method_ota-title = Flashing over Wi-Fi
firmware_tool-flash_method_ota-devices = Detected OTA Devices:
firmware_tool-flash_method_ota-no_devices = There are no boards that can be updated using OTA, make sure you selected the correct board type
firmware_tool-flash_method_serial-title = Flashing over USB
firmware_tool-flash_method_serial-wifi = Wi-Fi Credentials:
firmware_tool-flash_method_serial-devices-label = Detected Serial Devices:
firmware_tool-flash_method_serial-devices-placeholder = Select a serial device
@@ -1433,10 +1470,10 @@ firmware_tool-flashing_step-flash_more = Flash more trackers
firmware_tool-flashing_step-exit = Exit
## firmware tool build status
firmware_tool-build-QUEUED = Waiting to build....
firmware_tool-build-CREATING_BUILD_FOLDER = Creating the build folder
firmware_tool-build-DOWNLOADING_FIRMWARE = Downloading the firmware
firmware_tool-build-EXTRACTING_FIRMWARE = Extracting the firmware
firmware_tool-build-SETTING_UP_DEFINES = Configuring the defines
firmware_tool-build-DOWNLOADING_SOURCE = Downloading the source code
firmware_tool-build-EXTRACTING_SOURCE = Extracting the source code
firmware_tool-build-BUILDING = Building the firmware
firmware_tool-build-SAVING = Saving the build
firmware_tool-build-DONE = Build Complete
@@ -1546,3 +1583,58 @@ error_collection_modal-description_v2 = { settings-interface-behavior-error_trac
You can change this setting later in the Behavior section of the settings page.
error_collection_modal-confirm = I agree
error_collection_modal-cancel = I don't want to
## Tracking checklist section
tracking_checklist = Tracking Checklist
tracking_checklist-settings = Tracking Checklist Settings
tracking_checklist-settings-close = Close
tracking_checklist-status-incomplete = You are not prepared to use SlimeVR!
tracking_checklist-status-partial = {$count ->
[one] You have 1 warning!
*[many] You have {$count} warnings!
}
tracking_checklist-status-complete = You are prepared to use SlimeVR!
tracking_checklist-MOUNTING_CALIBRATION = Perform a mounting calibration
tracking_checklist-FEET_MOUNTING_CALIBRATION = Perform a feet mounting calibration
tracking_checklist-FULL_RESET = Perform a full reset
tracking_checklist-FULL_RESET-desc = Some trackers need a reset to be performed.
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR not running
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR is not running. Are you using it for VR?
tracking_checklist-STEAMVR_DISCONNECTED-open = Launch SteamVR
tracking_checklist-TRACKERS_REST_CALIBRATION = Calibrate your trackers
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = You didn't perform tracker calibration. Please let your trackers (highlighted in yellow) rest on a stable surface for a few secconds.
tracking_checklist-TRACKER_ERROR = Trackers with Errors
tracking_checklist-TRACKER_ERROR-desc = Some of your trackers have an error. Please restart the trackers highlighted in yellow.
tracking_checklist-VRCHAT_SETTINGS = Configure VRChat settings
tracking_checklist-VRCHAT_SETTINGS-desc = You have misconfigured VRChat settings! This can negatively impact your tracking.
tracking_checklist-VRCHAT_SETTINGS-open = Go to VRChat Warnings
tracking_checklist-UNASSIGNED_HMD = VR headset not assigned to Head
tracking_checklist-UNASSIGNED_HMD-desc = The VR headset should be assigned as a head tracker.
tracking_checklist-NETWORK_PROFILE_PUBLIC = Change your network profile
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc = {$count ->
[one] Your network profile is currently set to Public ({$adapters}).
This is not recommended for SlimeVR to function properly.
<PublicFixLink>See how to fix it here.</PublicFixLink>
*[many] Some of your network adapters are set to public:
{$adapters}
This is not recommended for SlimeVR to function properly.
<PublicFixLink>See how to fix it here.</PublicFixLink>
}
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Open Control Panel
tracking_checklist-STAY_ALIGNED_CONFIGURED = Configure Stay Aligned
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = Record the Stay Aligned poses to reduce drift
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = Open Stay Aligned Wizard
tracking_checklist-ignore = Ignore
preview-mocap_mode_soon = Mocap Mode (Soon™)
preview-disable_render = Disable rendering
preview-disabled_render = Rendering disabled
toolbar-mounting_calibration = Mounting Calibration
toolbar-mounting_calibration-default = Body
toolbar-mounting_calibration-feet = Feet
toolbar-mounting_calibration-fingers = Fingers
toolbar-drift_reset = Drift Reset
toolbar-assigned_trackers = {$count} trackers assigned
toolbar-unassigned_trackers = {$count} trackers unassigned

View File

@@ -7,8 +7,8 @@
## Websocket (server) status
websocket-connecting = Conectando al servidor
websocket-connection_lost = Conexión al servidor perdida. Intentando reconectar...
websocket-connecting = Cargando...
websocket-connection_lost = ¡El servidor falló!
websocket-connection_lost-desc = Parece que el servidor de SlimeVR ha dejado de funcionar. Revise los registros y reinicie el programa.
websocket-timedout = No se ha podido conectar al servidor.
websocket-timedout-desc = Parece que el servidor de SlimeVR ha dejado de funcionar o se agotó el tiempo de espera de la conexión. Revise los registros y reinicie el programa
@@ -31,6 +31,9 @@ tips-tap_setup = Puedes tocar lentamente 2 veces el sensor para seleccionarlo en
tips-turn_on_tracker = ¿Estas usando trackers de SlimeVR oficiales? ¡Recuerda <b><em>encender tus trackers<em><b> después de conectarlos al PC!
tips-failed_webgl = Fallo al inicializar WebGL.
## Units
## Body parts
body_part-NONE = Sin asignar
@@ -95,6 +98,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
board_type-TTGO_TBASE = TTGO T-Base
board_type-ESP01 = ESP-01
board_type-SLIMEVR = SlimeVR
board_type-SLIMEVR_DEV = Placa de Desarrollo de SlimeVR
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
board_type-LOLIN_C3_MINI = Lolin C3 Mini
board_type-BEETLE32C3 = Beetle ESP32-C3
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
@@ -181,7 +186,7 @@ skeleton_bone-FOOT_SHIFT = Desplazamiento de pies
skeleton_bone-FOOT_SHIFT-desc =
Este valor es la distancia horizontal entre tu rodilla hacia tu tobillo.
Toma en cuenta las piernas bajas yendo hacia atrás cuando te paras recto.
Para ajustarlo, pon el largo de los pies en 0, inicia un reinicia completo y modifícalo hasta que tus pies
Para ajustarlo, pon el largo de los pies en 0, inicia un reinicio completo y modifícalo hasta que tus pies
virtuales se alineen con el medio de tus tobillos.
skeleton_bone-SKELETON_OFFSET = Desplazamiento del esqueleto
skeleton_bone-SKELETON_OFFSET-desc =
@@ -244,6 +249,8 @@ reset-reset_all_warning_default-v2 =
¿Estás seguro de que quieres hacer esto?
reset-full = Reinicio completo
reset-mounting = Reinicio de montura
reset-mounting-feet = Restablecer montura de los pies
reset-mounting-fingers = Restablecer montura de los dedos
reset-yaw = Reinicio horizontal
## Serial detection stuff
@@ -269,6 +276,7 @@ navbar-settings = Ajustes
bvh-start_recording = Grabar BVH
bvh-recording = Grabando...
bvh-save_title = Guardar grabación BVH
## Tracking pause
@@ -285,7 +293,7 @@ widget-overlay-is_mirrored_label = Mostrar interfaz reflejada
widget-drift_compensation-clear = Olvidar compensación de drift
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Olvidar reinicio de montura
@@ -403,10 +411,11 @@ tracker-settings-name_section-label = Nombre del sensor
tracker-settings-forget = Olvidar tracker
tracker-settings-forget-description = Remueve el tracker del servidor de SlimeVR y lo previene de conectarse hasta que el servidor se reinicie. La configuración del tracker no se perderá.
tracker-settings-forget-label = Olvidar tracker
tracker-settings-update-unavailable = No se puede actualizar (DIY)
tracker-settings-update-unavailable-v2 = No se encontraron lanzamientos
tracker-settings-update-incompatible = No se puede actualizar. Placa incompatible
tracker-settings-update-low-battery = No se puede actualizar. Batería por debajo del 50%
tracker-settings-update-up_to_date = Actualizado
tracker-settings-update-available = { $versionName } ya está disponible
tracker-settings-update-blocked = Actualización no disponible. No hay otras versiones disponibles
tracker-settings-update = Actualizar ahora
tracker-settings-update-title = Versión del firmware
@@ -474,6 +483,7 @@ mounting_selection_menu-close = Cerrar
settings-sidebar-title = Ajustes
settings-sidebar-general = General
settings-sidebar-steamvr = SteamVR
settings-sidebar-tracker_mechanics = Mecánicas del sensor
settings-sidebar-stay_aligned = Mantente Alineado
settings-sidebar-fk_settings = Ajustes de FK
@@ -481,6 +491,7 @@ settings-sidebar-gesture_control = Control de gestos
settings-sidebar-interface = Interfaz
settings-sidebar-osc_router = Router OSC
settings-sidebar-osc_trackers = Sensores OSC de VRChat
settings-sidebar-osc_vmc = VMC
settings-sidebar-utils = Utilidades
settings-sidebar-serial = Consola serial
settings-sidebar-appearance = Apariencia
@@ -609,13 +620,16 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = El clip del suel
settings-general-fk_settings-leg_tweak-toe_snap-description = El encajado de dedos intenta adivinar la rotación de los pies si sus respectivos trackers no están en uso.
settings-general-fk_settings-leg_tweak-foot_plant-description = El plantado del pie rota los pies para que sean paralelos con el suelo al entrar en contacto.
settings-general-fk_settings-leg_fk = Tracking de piernas
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Activar reinicio de montura para el pie mediante el pararse de puntillas.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reinicio de montura de pies
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Forzar el reinicio de la montura de los pies durante los reinicios generales del montaje.
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Forzar reinicio de montura de pies
settings-general-fk_settings-enforce_joint_constraints = Límites esqueléticos
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Imponer restricciones
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Evita que las articulaciones giren más allá de su límite
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Corregir con las limitaciones
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Corregir las rotaciones de las articulaciones cuando superan su límite
settings-general-fk_settings-ik = Datos de posición
settings-general-fk_settings-ik-use_position = Usar datos de posición
settings-general-fk_settings-ik-use_position-description = Permite el uso de los datos de posición de los trackers que lo proveen. Cuando actives esto asegúrate de hacer un reinicio completo y recalibrar en el juego.
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
@@ -722,9 +736,6 @@ settings-general-interface-connected_trackers_warning-label = Advertencia de tra
## Behavior settings
settings-interface-behavior = Comportamiento
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-use_tray = Minimizar a la bandeja del sistema
settings-general-interface-use_tray-description = Permite cerrar la ventana sin cerrar el servidor de SlimeVR para que puedas continuar usándolo sin que te moleste la interfaz.
settings-general-interface-use_tray-label = Minimizar a la bandeja del sistema
@@ -746,6 +757,9 @@ settings-interface-behavior-error_tracking-description_v2 =
Para proveer la mejor experiencia de usuario, recopilamos reportes de errores anonimizados, métricas de rendimiento, e información del sistema operativo. Esto nos ayuda a detectar errores y problemas con SlimeVR. Estas métricas son recopiladas a través de Sentry.io.
settings-interface-behavior-error_tracking-label = Enviar errores a los desarrolladores
settings-interface-behavior-bvh_directory = Carpeta para guardar grabaciones de BVH
settings-interface-behavior-bvh_directory-description = Elige una carpeta para guardar tus grabaciones BVH en lugar de tener que elegir dónde guardarlas cada vez.
settings-interface-behavior-bvh_directory-label = Carpeta de grabaciones BVH
## Serial settings
@@ -764,12 +778,16 @@ settings-serial-factory_reset-warning =
¡Esto significa que los ajustes de calibración y Wi-Fi <b>se perderán</b>!
settings-serial-factory_reset-warning-ok = Sé lo que estoy haciendo
settings-serial-factory_reset-warning-cancel = Cancelar
settings-serial-get_infos = Obtener información
settings-serial-serial_select = Selecciona un puerto serial
settings-serial-auto_dropdown_item = Auto
settings-serial-get_wifi_scan = Obtener escaneo WiFi
settings-serial-file_type = Texto sin formato
settings-serial-save_logs = Guardar en archivo
settings-serial-send_command = Enviar
settings-serial-send_command-placeholder = Comando...
settings-serial-send_command-warning = <b>Peligro:</b> Ejecutar comandos seriales puede causar perdida de datos o romper los trackers.
settings-serial-send_command-warning-ok = Sé lo que estoy haciendo
settings-serial-send_command-warning-cancel = Cancelar
## OSC router settings
@@ -867,6 +885,11 @@ settings-osc-vmc-mirror_tracking = Invertir el tracking
settings-osc-vmc-mirror_tracking-description = invierte el tracking horizontalmente.
settings-osc-vmc-mirror_tracking-label = Invertir el tracking
## Common OSC settings
settings-osc-common-network-ports_match_error = ¡Los puertos de entrada y salida del Router OSC no pueden ser los mismos!
settings-osc-common-network-port_banned_error = ¡El puerto { $port } no se puede usar!
## Advanced settings
settings-utils-advanced = Avanzado
@@ -900,6 +923,12 @@ settings-utils-advanced-open_logs = Carpeta de registros
settings-utils-advanced-open_logs-description = Abre la carpeta de registros de SlimeVR en el explorador de archivos, que contiene los registros de la aplicación
settings-utils-advanced-open_logs-label = Abrir carpeta
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Saltar configuración
@@ -915,11 +944,6 @@ onboarding-setup_warning-cancel = Continuar configuración
## Wi-Fi setup
onboarding-wifi_creds-back = Volver a la introducción
onboarding-wifi_creds = Ingresar credenciales del Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Los sensores utilizarán estas credenciales para conectarse inalámbricamente.
Por favor usa las credenciales del Wi-Fi al cuál estás conectado actualmente.
onboarding-wifi_creds-skip = Saltar ajustes de Wi-Fi
onboarding-wifi_creds-submit = ¡Enviar!
onboarding-wifi_creds-ssid =
@@ -960,13 +984,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = Bienvenido a SlimeVR
onboarding-home-start = ¡Comencemos!
## Enter VR part of setup
onboarding-enter_vr-back = Volver a la asignación de sensores
onboarding-enter_vr-title = ¡Es hora de entrar a la RV!
onboarding-enter_vr-description = ¡Ponte todos tus sensores y luego entra a la RV!
onboarding-enter_vr-ready = Estoy listo
## Setup done
onboarding-done-title = ¡Estás listo!
@@ -1018,7 +1035,7 @@ onboarding-connect_tracker-next = He conectado todos mis sensores
onboarding-calibration_tutorial = Tutorial de calibración de IMU
onboarding-calibration_tutorial-subtitle = ¡Esto te ayudara a reducir la desviación del tracker!
onboarding-calibration_tutorial-description = Cada vez que enciendes tus trackers, van a necesitar descansar un ratito en una superficie plana para calibrarse. Tratemos de hacer lo mismo presionando el botón «{ onboarding-calibration_tutorial-calibrate }», <b>¡No los muevas!</b>
onboarding-calibration_tutorial-description-v1 = Después de encender tus trackers, colócalos en una superficie estable por un momento para permitir la calibración. La calibración se puede realizar en cualquier momento después de encender los trackers—esta página simplemente proporciona un tutorial. Para comenzar, haz clic en el botón «{ onboarding-calibration_tutorial-calibrate }», y luego <b>¡no muevas tus trackers!</b>
onboarding-calibration_tutorial-calibrate = Puse los sensores en una mesa.
onboarding-calibration_tutorial-status-waiting = Esperando por ti
onboarding-calibration_tutorial-status-calibrating = Calibrando
@@ -1045,9 +1062,9 @@ onboarding-assign_trackers-description = Debes escoger dónde van los sensores.
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } de { $trackers ->
[one] 1 sensor asignado
*[other] { $trackers } sensores asignados
{ $trackers ->
[one] { $assigned } de 1 sensor asignado
*[other] { $assigned } de { $trackers } sensores asignados
}
onboarding-assign_trackers-advanced = Mostrar ubicación de asignaciones avanzados.
onboarding-assign_trackers-next = He asignado todos los sensores
@@ -1193,10 +1210,10 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. Mantén la posición ha
onboarding-automatic_mounting-put_trackers_on-title = Ponte tus sensores
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la ubicación de tus monturas, usaremos los sensores que has asignado. Ponte todos tus sensores, puedes ver cuál es cual en la figura de la derecha.
onboarding-automatic_mounting-put_trackers_on-next = Tengo puestos todos mis sensores
onboarding-automatic_mounting-return-home = Hecho
## Tracker manual proportions setupa
onboarding-manual_proportions-back = Volver al tutorial de reinicio
onboarding-manual_proportions-title = Proporciones de cuerpo manuales
onboarding-manual_proportions-fine_tuning_button = Ajustar automáticamente las proporciones
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Por favor conecte un visor VR para utilizar el ajuste automático
@@ -1294,31 +1311,8 @@ onboarding-automatic_proportions-smol_warning =
<b>Por favor vuelva a hacer las mediciones y asegúrese de que sean correctas.</b>
onboarding-automatic_proportions-smol_warning-cancel = Volver
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = Proporciones escaladas
onboarding-scaled_proportions-description = Para que los trackers SlimeVR funcionen, necesitamos saber el largo de sus huesos. Esto usará una proporción promedia y la escalará en función a su altura.
onboarding-scaled_proportions-manual_height-title = Ajuste su altura
onboarding-scaled_proportions-manual_height-description-v2 = Esta altura se utilizará como referencia para las proporciones de su cuerpo.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR no está conectado actualmente a SlimeVR, por lo que las mediciones no se pueden basar en su casco. <b>¡Proceda bajo su propio riesgo o consulte la documentación!</b>
onboarding-scaled_proportions-manual_height-height-v2 = Su altura total es
onboarding-scaled_proportions-manual_height-estimated_height = La altura estimada de su visor es:
onboarding-scaled_proportions-manual_height-next_step = Continuar y guardar
onboarding-scaled_proportions-manual_height-warning =
Actualmente estás utilizando la manera manual para configurar las proporciones escaladas!
<b>Este modo solo es recomendado si no utilizas un HMD con SlimeVR</b>
Para poder utilizar las proporciones escaladas automáticas, por favor:
onboarding-scaled_proportions-manual_height-warning-no_hmd = Conecta un visor VR
onboarding-scaled_proportions-manual_height-warning-no_controllers = Asegurate de que tus mandos están conectados y correctamente asignados a tus manos
## Tracker scaled proportions reset
onboarding-scaled_proportions-reset_proportion-title = Reestablecer las proporciones de su cuerpo
onboarding-scaled_proportions-reset_proportion-description = Para establecer las proporciones de su cuerpo en función a su altura, ahora debe restablecer todas sus proporciones. Esto borrará las proporciones que haya configurado y proporcionará una configuración de referencia.
onboarding-scaled_proportions-done-title = Proporciones corporales guardadas
onboarding-scaled_proportions-done-description = Las proporciones de su cuerpo ahora deberían estar configuradas en función de su altura.
## Stay Aligned setup
@@ -1357,6 +1351,7 @@ onboarding-stay_aligned-done = Hecho
## Home
home-no_trackers = No hay sensores detectados o asignados
home-settings-close = Cerrar
## Trackers Still On notification
@@ -1393,80 +1388,43 @@ firmware_tool = Herramienta de firmware DIY
firmware_tool-description = Le permite configurar y actualizar sus sensores construidos por usted
firmware_tool-not_available = Vaya, la herramienta de firmware no está disponible en este momento. ¡Vuelva más tarde!
firmware_tool-not_compatible = La herramienta de firmware no es compatible con esta versión del servidor. ¡Por favor, actualice la app!
firmware_tool-board_step = Seleccione su placa
firmware_tool-board_step-description = Seleccione una de las placas que se enumeran a continuación.
firmware_tool-board_pins_step = Revisar los pines
firmware_tool-board_pins_step-description =
Verifique que los pines seleccionados sean correctos.
Si siguió la documentación de SlimeVR, los valores predeterminados deben ser correctos
firmware_tool-board_pins_step-enable_led = Habilitar LED
firmware_tool-board_pins_step-led_pin =
.label = Pin del LED
.placeholder = Ingrese la dirección pin del LED
firmware_tool-board_pins_step-battery_type = Seleccione el tipo de batería
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batería externa
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batería interna
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interno
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Pin del sensor de batería
.placeholder = Ingrese la dirección pin del sensor de batería
firmware_tool-board_pins_step-battery_resistor =
.label = Resistencia de la batería (Ohmios)
.placeholder = Ingrese el valor de la resistencia de la batería.
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Shield de la batería R1 (Ohmios).
.placeholder = Ingrese el valor del shield de la batería R1.
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Shield de la batería R2 (Ohmios).
.placeholder = Ingrese el valor del shield de la batería R2.
firmware_tool-add_imus_step = Declare sus IMUs
firmware_tool-add_imus_step-description =
Por favor añada las IMU que tiene su sensor
Si siguió la documentación de SlimeVR, los valores predeterminados deben ser correctos
firmware_tool-add_imus_step-imu_type-label = Tipo de IMU
firmware_tool-add_imus_step-imu_type-placeholder = Seleccione el tipo de IMU
firmware_tool-add_imus_step-imu_rotation =
.label = Rotación del IMU (grados)
.placeholder = Ángulo de rotación del IMU
firmware_tool-add_imus_step-scl_pin =
.label = Pin SCL
.placeholder = Dirección pin SCL
firmware_tool-add_imus_step-sda_pin =
.label = Pin SDA
.placeholder = Dirección pin SDA
firmware_tool-add_imus_step-int_pin =
.label = Pin INT
.placeholder = Dirección pin INT
firmware_tool-add_imus_step-optional_tracker =
.label = Sensor opcional
firmware_tool-add_imus_step-show_less = Mostrar menos
firmware_tool-add_imus_step-show_more = Mostrar más
firmware_tool-add_imus_step-add_more = Agregar más IMUs
firmware_tool-select_firmware_step = Seleccione la versión del firmware
firmware_tool-select_firmware_step-description = Por favor elija la versión del firmware que desea utilizar
firmware_tool-select_firmware_step-show-third-party =
.label = Mostrar firmwares de terceros
firmware_tool-select_source = Selecciona el firmware para flashear
firmware_tool-select_source-description = Selecciona el firmware que quieres flashear en tu placa
firmware_tool-select_source-error = Incapaz de cargar fuentes
firmware_tool-select_source-board_type = Tipo de placa
firmware_tool-select_source-firmware = Fuente del Firmware
firmware_tool-select_source-version = Versión del Firmware
firmware_tool-select_source-official = Oficial
firmware_tool-select_source-dev = Desarrollo
firmware_tool-board_defaults = Configura tu placa
firmware_tool-board_defaults-description = Establece los pines o ajustes relativos a tu hardware
firmware_tool-board_defaults-add = Añadir
firmware_tool-board_defaults-reset = Reestablecer a predeterminado
firmware_tool-board_defaults-error-required = Campo requerido
firmware_tool-board_defaults-error-format = Formato inválido
firmware_tool-board_defaults-error-format-number = No es un número
firmware_tool-flash_method_step = Método de flasheo
firmware_tool-flash_method_step-description = Por favor seleccione el método de flasheo que desea utilizar
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Utilice el método por aire (OTA). Su sensor utilizará Wi-Fi para actualizar su firmware. Funciona sólo en sensores ya configurados.
firmware_tool-flash_method_step-serial =
.label = Serial
.description = Utilice un cable USB para actualizar su sensor.
firmware_tool-flash_method_step-ota-v2 =
.label = Wi-Fi
.description = Utilizar el método sobre-el-aire. Tu tracker utilizará Wi-Fi para actualizar su firmware. Solo funciona en trackers que han sido configurados.
firmware_tool-flash_method_step-ota-info =
Utilizamos tus credenciales de wifi para flashear el tracker y confirmar que todo funcionó correctamente.
<b>¡Nosotros no guardamos tus credenciales wifi!</b>
firmware_tool-flash_method_step-serial-v2 =
.label = USB
.description = Utilizar un cable USB para actualizar tu tracker.
firmware_tool-flashbtn_step = Presione el botón de boot
firmware_tool-flashbtn_step-description = Antes de pasar al siguiente paso, hay algunas cosas que debe hacer
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el sensor, retire la carcasa (si la hay), conecte un cable USB a esta computadora y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Encienda el sensor mientras cortocircuita el segundo FLASH pad rectangular desde el borde en la parte superior de la placa y el protector metálico del microcontrolador.
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Encienda el sensor mientras cortocircuita el FLASH pad circular en la parte superior de la placa y el escudo metálico del microcontrolador.
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Encienda el sensor mientras presiona el botón FLASH en la parte superior de la placa
firmware_tool-flashbtn_step-board_OTHER =
Antes de flashear, probablemente tendrá que poner el sensor en modo bootloader.
La mayoría de las veces, esto significa presionar el botón de boot en la placa antes de que comience el proceso de flasheo. Si el proceso de flasheo se agota al comienzo, probablemente significa que el sensor no estaba en modo bootloader.
Por favor, consulte las instrucciones de flasheo de su placa para saber cómo activar el modo bootloader.
firmware_tool-flash_method_ota-title = Flashear por Wi-Fi
firmware_tool-flash_method_ota-devices = Dispositivos OTA detectados:
firmware_tool-flash_method_ota-no_devices = No hay placas que se puedan actualizar mediante OTA, asegúrese de seleccionar el tipo de placa correcto
firmware_tool-flash_method_serial-title = Flashear por USB
firmware_tool-flash_method_serial-wifi = Credenciales del Wi-Fi:
firmware_tool-flash_method_serial-devices-label = Dispositivos serial detectados:
firmware_tool-flash_method_serial-devices-placeholder = Seleccione un dispositivo serial
@@ -1481,10 +1439,10 @@ firmware_tool-flashing_step-exit = Salir
## firmware tool build status
firmware_tool-build-QUEUED = Esperando a construir....
firmware_tool-build-CREATING_BUILD_FOLDER = Creando la carpeta de compilación
firmware_tool-build-DOWNLOADING_FIRMWARE = Descargando el firmware
firmware_tool-build-EXTRACTING_FIRMWARE = Extrayendo el firmware
firmware_tool-build-SETTING_UP_DEFINES = Configurando las definiciones
firmware_tool-build-DOWNLOADING_SOURCE = Descargando el código fuente
firmware_tool-build-EXTRACTING_SOURCE = Extrayendo el código fuente
firmware_tool-build-BUILDING = Compilando el firmware
firmware_tool-build-SAVING = Guardando la compilación
firmware_tool-build-DONE = Compilación completa
@@ -1598,3 +1556,12 @@ error_collection_modal-description_v2 =
Tu puedes cambiar esta configuración más tarde en la sección de comportamiento de la pagina de configuración.
error_collection_modal-confirm = Acepto
error_collection_modal-cancel = No quiero
## Tracking checklist section
tracking_checklist-settings-close = Cerrar
tracking_checklist-STEAMVR_DISCONNECTED-open = Abrir SteamVR
tracking_checklist-TRACKERS_REST_CALIBRATION = Calibra tus trackers
tracking_checklist-ignore = Ignorar
toolbar-assigned_trackers = { $count } trackers asignados
toolbar-unassigned_trackers = { $count } trackers sin asignar

View File

@@ -31,6 +31,9 @@ tips-tap_setup = Haz clic en el menú o golpea suavemente el tracker 2 veces par
tips-turn_on_tracker = ¿Estás usando trackers oficiales de SlimeVR? Recuerda <b><em>encender el tracker</em></b> antes de conectarlo a la PC!
tips-failed_webgl = No se pudo iniciar WebGL.
## Units
## Body parts
body_part-NONE = Sin asignar
@@ -95,6 +98,7 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
board_type-TTGO_TBASE = TTGO T-Base
board_type-ESP01 = ESP-01
board_type-SLIMEVR = SlimeVR
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
board_type-LOLIN_C3_MINI = Lolin C3 Mini
board_type-BEETLE32C3 = Beetle ESP32-C3
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
@@ -111,6 +115,10 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = Guante SlimeVR Dev IMU
skeleton_bone-NONE = Ninguno
skeleton_bone-HEAD = Desplazamiento de la cabeza
skeleton_bone-HEAD-desc =
Esta es la distancia desde el visor hasta la mitad de la cabeza.
Para ajustarlo, mueve la cabeza de izquierda a derecha como si no estuvieras de acuerdo y modifícalo
hasta que el movimiento en otros trackers sea insignificante.
skeleton_bone-NECK = Longitud del cuello
skeleton_bone-NECK-desc =
Esta es la distancia desde el medio de tu cabeza hasta la base de tu cuello.
@@ -123,19 +131,73 @@ skeleton_bone-torso_group-desc =
Para ajustarla, modifícala mientras estes de pie derecho hasta que tus caderas virtuales
estan en posicion con las verdaderas.
skeleton_bone-UPPER_CHEST = Longitud del torso superior
skeleton_bone-UPPER_CHEST-desc =
Esta es la distancia desde la base del cuello hasta la mitad del pecho.
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo en varias posiciones
(sentado, inclinado, acostado, etc.) hasta que tu columna vertebral virtual coincida con la real.
skeleton_bone-CHEST_OFFSET = Compensacion del pecho
skeleton_bone-CHEST_OFFSET-desc =
Esto puede ser ajustado para mover su tracker de pecho virtual hacia arriba o hacia abajo para ayudar
con la calibración en ciertos juegos o aplicaciones que pueden esperar que este sea mayor o menor.
skeleton_bone-CHEST = Longitud del pecho
skeleton_bone-CHEST-desc =
Esta es la distancia desde la mitad de su pecho hasta la mitad de su columna vertebral.
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo en varias posiciones
(sentado, inclinado, acostado, etc.) hasta que su columna vertebral virtual coincida con la real.
skeleton_bone-WAIST = Longitud de cintura
skeleton_bone-WAIST-desc =
Esta es la distancia desde la mitad de la columna vertebral hasta el ombligo.
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo en varias posiciones
(sentado, inclinado, acostado, etc.) hasta que tu columna vertebral virtual coincida con la real.
skeleton_bone-HIP = Longitud de cadera
skeleton_bone-HIP-desc =
Esta es la distancia desde el ombligo hasta tus caderas.
Para ajustarlo, configure la longitud de su torso correctamente y modifíquelo en varias posiciones
(sentado, inclinado, acostado, etc.) hasta que tu columna virtual coincida con la real.
skeleton_bone-HIP_OFFSET = Compensacion de cadera
skeleton_bone-HIP_OFFSET-desc =
Esto se puede ajustar para mover su tracker virtual de cadera hacia arriba o hacia abajo para ayudar
con la calibración en ciertos juegos o aplicaciones que pueden esperar que esté en su cintura.
skeleton_bone-HIPS_WIDTH = Ancho de la cadera
skeleton_bone-HIPS_WIDTH-desc =
Esta es la distancia entre el inicio de las piernas.
Para ajustarlo, realice un reinicio completo con las piernas rectas y modifíquelo hasta
que tus piernas virtuales coinciden con las reales horizontalmente.
skeleton_bone-leg_group = Longitud de la espinilla
skeleton_bone-leg_group-desc =
Esta es la distancia desde tus caderas hasta los pies.
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo
hasta que tus pies virtuales estén al mismo nivel que los reales.
skeleton_bone-UPPER_LEG = Longitud del muslo
skeleton_bone-UPPER_LEG-desc =
Esta es la distancia desde las caderas hasta las rodillas.
Para ajustarlo, ajuste la longitud de la pierna correctamente y modifíquelo
hasta que tus rodillas virtuales estén al mismo nivel que las reales.
skeleton_bone-LOWER_LEG = Longitud de la espinilla
skeleton_bone-LOWER_LEG-desc =
Esta es la distancia desde tus rodillas hasta tus tobillos.
Para ajustarlo, ajuste la longitud de la pierna correctamente y modifíquelo
hasta que tus rodillas virtuales estén al mismo nivel que las reales.
skeleton_bone-FOOT_LENGTH = Longitud del pie
skeleton_bone-FOOT_LENGTH-desc =
Esta es la distancia desde tus tobillos hasta los dedos de tus pies.
Para ajustarlo, camina de puntillas y modifícalo hasta que tus pies virtuales permanezcan en su lugar.
skeleton_bone-FOOT_SHIFT = Desplazamiento del pie
skeleton_bone-FOOT_SHIFT-desc =
Este valor es la distancia horizontal desde tu rodilla hacia tu tobillo.
Toma en cuenta la parte baja de tus piernas yendo hacia atrás cuando estes de pie.
Para ajustarlo, pon el largo de los pies a 0, inicie un reinicio completo y modifícalo hasta que tus pies
virtuales se alineen con el medio de tus tobillos.
skeleton_bone-SKELETON_OFFSET = Compensacion del esqueleto
skeleton_bone-SKELETON_OFFSET-desc =
Esto se puede ajustar para desplazar todos sus trackers hacia adelante o hacia atrás.
Se puede utilizar para ayudar con la calibración en ciertos juegos o aplicaciones
que pueden esperar que tus trackers esten mas alante.
skeleton_bone-SHOULDERS_DISTANCE = Distancia de hombros
skeleton_bone-SHOULDERS_DISTANCE-desc =
Esta es la distancia vertical desde la base del cuello hasta tus hombros.
Para ajustarlo, establezca la longitud de la parte superior del brazo en 0 y modifíquelo hasta que tus rastreadores virtuales de tus codos
se alineen verticalmente con tus hombros reales.
skeleton_bone-SHOULDERS_WIDTH = Ancho de hombros
skeleton_bone-arm_group = Longitud del brazo
skeleton_bone-UPPER_ARM = Longitud del brazo
@@ -157,6 +219,8 @@ reset-reset_all_warning_default-v2 =
¿Estás seguro de que quieres hacer esto?
reset-full = Reinicio completo
reset-mounting = Reiniciar montura
reset-mounting-feet = Reiniciar montura de los pies
reset-mounting-fingers = Reiniciar montura de los dedos
reset-yaw = Restablecimiento horizontal
## Serial detection stuff
@@ -182,6 +246,7 @@ navbar-settings = Configuración
bvh-start_recording = Grabar BVH
bvh-recording = Grabando...
bvh-save_title = Guardar grabación BVH
## Tracking pause
@@ -198,7 +263,7 @@ widget-overlay-is_mirrored_label = Mostrar overlay como espejo
widget-drift_compensation-clear = Eliminar compensacion del drift
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Limpiar reinicio de montura
@@ -222,6 +287,7 @@ widget-imu_visualizer-rotation_raw = Sin filtrar
widget-imu_visualizer-rotation_preview = Previsualización
widget-imu_visualizer-acceleration = Aceleración
widget-imu_visualizer-position = Posición
widget-imu_visualizer-stay_aligned = Mantener Alineado
## Widget: Skeleton Visualizer
@@ -249,6 +315,7 @@ 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-stay_aligned = Mantener Alineado
tracker-table-column-url = URL
## Tracker rotation
@@ -314,10 +381,9 @@ tracker-settings-name_section-label = Nombre del tracker
tracker-settings-forget = Olvidar tracker
tracker-settings-forget-description = Elimina el tracker del servidor SlimeVR y evita que se conecte a él hasta que se reinicie el servidor. La configuración del tracker no se perderá.
tracker-settings-forget-label = Olvidar tracker
tracker-settings-update-unavailable = No se puede actualizar (DIY)
tracker-settings-update-low-battery = No se puede actualizar. Batería inferior al 50%
tracker-settings-update-up_to_date = Actualizado
tracker-settings-update-available = { $versionName } ya esta disponible
tracker-settings-update-blocked = Actualización no disponible. No hay otras versiones disponibles
tracker-settings-update = Actualizar ahora
tracker-settings-update-title = Versión del firmware
@@ -386,6 +452,7 @@ mounting_selection_menu-close = Cerrar
settings-sidebar-title = Configuración
settings-sidebar-general = General
settings-sidebar-tracker_mechanics = Mecánicas del tracker
settings-sidebar-stay_aligned = Mantener Alineado
settings-sidebar-fk_settings = Configuración del tracking
settings-sidebar-gesture_control = Control de los gestos
settings-sidebar-interface = Interfaz
@@ -397,6 +464,7 @@ settings-sidebar-appearance = Apariencia
settings-sidebar-notifications = Notificaciones
settings-sidebar-behavior = Comportamiento
settings-sidebar-firmware-tool = Herramienta de firmware DIY
settings-sidebar-vrc_warnings = Advertencias de la configuración de VRChat
settings-sidebar-advanced = Avanzado
## SteamVR settings
@@ -444,12 +512,12 @@ 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-yaw-reset-smooth-time = Tiempo de suavizado al restablecer el eje horizontal (0s deshabilita el suavizado)
settings-general-tracker_mechanics-drift_compensation = Compensación en la desviación
settings-general-tracker_mechanics-drift_compensation = Compensación de drift
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensa la desviación horizontal del IMU aplicando una rotación inversa.
Cambia la cantidad de compensación y de reinicios que se tienen en cuenta.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensación en la desviación
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensación de drift
settings-general-tracker_mechanics-drift_compensation-prediction = Predicción de compensación de drift
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-prediction-description =
@@ -468,7 +536,7 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Cantidad de
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Usar los últimos X reinicios.
settings-general-tracker_mechanics-save_mounting_reset = Guardar la calibración de reajuste de montaje automático
settings-general-tracker_mechanics-save_mounting_reset-description =
Guarda las calibraciones de reajuste de montaje automático para los trackers entre reinicios. Útil
Guarda las calibraciones de reajuste de montaje automático para los trackers entre reinicios. Útil
cuando se lleva un traje en el que los trackers no se mueven entre sesiones. <b>No recomendado para usuarios normales!</b>
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Guardar restablecimiento de montaje
settings-general-tracker_mechanics-use_mag_on_all_trackers = Usar el magnetómetro en todos los trackers IMU que lo soporten
@@ -476,7 +544,25 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
Utiliza el magnetómetro en todos los trackers que tienen un firmware compatible con él, lo que reduce el drift en entornos magnéticos estables.
Se puede desactivar por rastreador en la configuración de los trackers. <b>¡Por favor, no apagues ninguno de los trackers mientras activas esta opción!</b>
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Usar magnetómetro en los rastreadores
settings-stay_aligned = Mantener Alineado
settings-stay_aligned-description = Mantener Alineado reduce el drift ajustando gradualmente tus trackers para que coincidan con tus poses relajadas
settings-stay_aligned-setup-label = Configurar Mantener Alineado
settings-stay_aligned-setup-description = Debe completar "Configurar Mantener Alineado" para habilitar Mantener Alineado.
settings-stay_aligned-warnings-drift_compensation = ⚠ ¡Desactive la compensación de drift! La compensación de drift entrará en conflicto con Mantener Alineado.
settings-stay_aligned-enabled-label = Ajustar trackers
settings-stay_aligned-hide_yaw_correction-label = Ocultar ajuste (para comparar sin Mantener Alineado)
settings-stay_aligned-general-label = General
settings-stay_aligned-relaxed_poses-label = Posturas relajadas
settings-stay_aligned-relaxed_poses-description = Mantener Alineado utiliza tus posturas relajadas para mantener los trackers alineados. Usa "Configurar Mantener Alineado" para actualizar estas posturas.
settings-stay_aligned-relaxed_poses-standing = Ajustar los trackers mientras estás de pie
settings-stay_aligned-relaxed_poses-sitting = Ajustar los trackers mientras estás sentado en una silla
settings-stay_aligned-relaxed_poses-flat = Ajuste los trackers mientras estás sentado en el suelo o acostado boca arriba
settings-stay_aligned-relaxed_poses-save_pose = Guardar pose
settings-stay_aligned-relaxed_poses-reset_pose = Restablecer pose
settings-stay_aligned-relaxed_poses-close = Cierra
settings-stay_aligned-debug-label = Depuración
settings-stay_aligned-debug-description = Incluya su configuración cuando informe problemas sobre Mantener Alineado.
settings-stay_aligned-debug-copy-label = Copiar ajustes al portapapeles
## FK/Tracking settings
@@ -498,8 +584,8 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Anclado al suelo
settings-general-fk_settings-leg_tweak-toe_snap-description = "Acople de puntera" intenta adivinar la rotación de tus pies si los trackers de estos no están en uso.
settings-general-fk_settings-leg_tweak-foot_plant-description = El plantado de pie gira los pies para que queden paralelos al suelo en el momento del contacto.
settings-general-fk_settings-leg_fk = Tracking de piernas
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Habilitar reinicio de montura de los pies al estar de puntillas.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reinicio de montura de los pies.
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Forzar el restablecimiento del montaje de los pies durante los reinicios generales del montaje.
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Forzar reinicio de la montura de los pies.
settings-general-fk_settings-enforce_joint_constraints = Límites esqueléticos
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Imponer restricciones
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Evita que las articulaciones giren más allá de su límite
@@ -613,9 +699,6 @@ settings-general-interface-connected_trackers_warning-label = Aviso de trackers
## Behavior settings
settings-interface-behavior = Comportamiento
settings-general-interface-dev_mode = Modo de desarrollador
settings-general-interface-dev_mode-description = Este modo puede ser útil si necesitas datos en profundidad o para interactuar con los trackers conectados a un nivel más avanzado
settings-general-interface-dev_mode-label = Modo de desarrollador
settings-general-interface-use_tray = Minimizar a la bandeja
settings-general-interface-use_tray-description = Te permite cerrar la ventana sin cerrar SlimeVR para que pueda seguir usándolo sin que la interfaz te moleste.
settings-general-interface-use_tray-label = Minimizar en la bandeja del sistema
@@ -636,6 +719,9 @@ settings-interface-behavior-error_tracking-description_v2 =
Para proporcionar la mejor experiencia de usuario, recopilamos informes de errores anónimos, métricas de rendimiento e información del sistema operativo. Esto nos ayuda a detectar errores y problemas con SlimeVR. Estas métricas se recopilan a través de Sentry.io.
settings-interface-behavior-error_tracking-label = Enviar errores a los desarrolladores
settings-interface-behavior-bvh_directory = Directorio para guardar grabaciones BVH
settings-interface-behavior-bvh_directory-description = Elija un directorio para guardar sus grabaciones BVH en lugar de tener que elegir dónde guardarlas cada vez.
settings-interface-behavior-bvh_directory-label = Directorio de grabaciones BVH
## Serial settings
@@ -654,12 +740,13 @@ settings-serial-factory_reset-warning =
Esto significa que los ajustes de Wi-Fi y calibración <b>se perderán</b>.
settings-serial-factory_reset-warning-ok = Sé lo que estoy haciendo
settings-serial-factory_reset-warning-cancel = Cancelar
settings-serial-get_infos = Obtener información
settings-serial-serial_select = Selecciona un puerto serial
settings-serial-auto_dropdown_item = Automático
settings-serial-get_wifi_scan = Obtener escaneo WiFi
settings-serial-file_type = Texto sin formato
settings-serial-save_logs = Guardar en archivo
settings-serial-send_command = Enviar
settings-serial-send_command-warning-cancel = Cancelar
## OSC router settings
@@ -755,6 +842,9 @@ settings-osc-vmc-mirror_tracking = Invertir el tracking
settings-osc-vmc-mirror_tracking-description = Invierte el tracking horizontalmente.
settings-osc-vmc-mirror_tracking-label = Invertir el tracking
## Common OSC settings
## Advanced settings
settings-utils-advanced = Avanzado
@@ -788,6 +878,12 @@ settings-utils-advanced-open_logs = Carpeta de registros
settings-utils-advanced-open_logs-description = Abra la carpeta de registros de SlimeVR en el explorador de archivos, que contiene los registros de la aplicación
settings-utils-advanced-open_logs-label = Abrir carpeta
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Omitir configuración
@@ -803,11 +899,6 @@ onboarding-setup_warning-cancel = Continuar con la configuración
## Wi-Fi setup
onboarding-wifi_creds-back = Volver a la introducción
onboarding-wifi_creds = Introduce credenciales de Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Los trackers utilizarán estas credenciales para conectarse de forma inalámbrica.
Por favor, utiliza las credenciales a las que está conectado actualmente.
onboarding-wifi_creds-skip = Omitir configuración Wi-Fi
onboarding-wifi_creds-submit = ¡Enviar!
onboarding-wifi_creds-ssid =
@@ -848,13 +939,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = Bienvenido a SlimeVR
onboarding-home-start = ¡Vamos a prepararnos!
## Enter VR part of setup
onboarding-enter_vr-back = Volver a la asignación del tracker
onboarding-enter_vr-title = ¡Hora de entrar en VR!
onboarding-enter_vr-description = ¡Ponte todos tus trackers y luego entra a la realidad virtual!
onboarding-enter_vr-ready = Estoy listo
## Setup done
onboarding-done-title = ¡Todo listo!
@@ -878,6 +962,17 @@ onboarding-connect_tracker-connection_status-looking_for_server = Buscando servi
onboarding-connect_tracker-connection_status-connection_error = No se puede conectar al Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = No se pudo encontrar el servidor
onboarding-connect_tracker-connection_status-done = Conectado al Server
onboarding-connect_tracker-connection_status-no_serial_log = No se pudieron obtener los registros del tracker
onboarding-connect_tracker-connection_status-no_serial_device_found = No se pudo encontrar un tracker conectado por USB
onboarding-connect_serial-error-modal-no_serial_log = ¿Está encendido el tracker?
onboarding-connect_serial-error-modal-no_serial_log-desc = Asegúrate de que el tracker esté encendido y conectado a tu ordenador.
onboarding-connect_serial-error-modal-no_serial_device_found = No se detectaron trackers
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
Conecte un tracker con el cable USB proporcionado a su ordenador y enciéndalo.
Si esto no funciona:
- intente usar un cable USB diferente
- intente usar un puerto USB diferente
- intente reinstalar el servidor SlimeVR y seleccione "Controladores USB" en la sección de componentes
# $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",
@@ -895,7 +990,6 @@ onboarding-connect_tracker-next = He conectado todos mis trackers
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-description = Cada vez que enciendas tus trackers, estos necesitan descansar sobre una superficie plana para calibrarse. Hagamos lo mismo pulsando el botón «{ onboarding-calibration_tutorial-calibrate }», <b>¡no los muevas!</b>
onboarding-calibration_tutorial-calibrate = Mis trackers estan en una superficie plana
onboarding-calibration_tutorial-status-waiting = Esperando por ti
onboarding-calibration_tutorial-status-calibrating = Calibrando
@@ -1063,19 +1157,27 @@ onboarding-automatic_mounting-mounting_reset-title = Reinicio de montura
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Ponte en cuclillas en postura de "esquí" con las piernas dobladas, la parte superior del cuerpo inclinada hacia adelante y los brazos doblados.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Presiona el botón "Restablecer montaje" y espera 3 segundos antes de que se restablezcan las orientaciones de montaje de los trackers.
onboarding-automatic_mounting-preparation-title = Preparación
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Presione el botón de "Reinicio completo".
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Ponte de pie con los brazos a los lados. Asegúrate de mirar hacia adelante.
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Mantenga la posición hasta que finalice el temporizador de 3 segundos.
onboarding-automatic_mounting-put_trackers_on-title = Ponte los trackers
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la posiciones de montura, vamos a utilizar los trackers que acabas de asignar. Colocate todos tus trackers, puedes ver cuales son cuales en la figura de la derecha.
onboarding-automatic_mounting-put_trackers_on-next = Tengo todos mis trackers en posicion
onboarding-automatic_mounting-return-home = Hecho
## Tracker manual proportions setupa
onboarding-manual_proportions-back = Volver al tutorial de reinicios
onboarding-manual_proportions-title = Proporciones físicas manuales
onboarding-manual_proportions-fine_tuning_button = Ajuste automático de las proporciones
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Conecte el visor RV para usar el ajuste automatico
onboarding-manual_proportions-export = Exportar proporciones
onboarding-manual_proportions-import = Importar proporciones
onboarding-manual_proportions-file_type = Archivo de proporciones físicas
onboarding-manual_proportions-normal_increment = Incremento normal
onboarding-manual_proportions-precise_increment = Incremento preciso
onboarding-manual_proportions-grouped_proportions = Proporciones agrupadas
onboarding-manual_proportions-all_proportions = Todas las proporciones
onboarding-manual_proportions-estimated_height = Altura estimada del usuario
## Tracker automatic proportions setup
@@ -1162,33 +1264,42 @@ onboarding-automatic_proportions-smol_warning =
<b>Vuelva a hacer las mediciones y asegúrese de que sean correctas.</b>
onboarding-automatic_proportions-smol_warning-cancel = Volver
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = Proporciones escaladas
onboarding-scaled_proportions-description = Para que los trackers de SlimeVR funcionen, necesitamos saber la longitud de sus huesos. Esto usará una proporción promedio y la escalará en función de su altura.
onboarding-scaled_proportions-manual_height-title = Configure su altura
onboarding-scaled_proportions-manual_height-description-v2 = Esta altura se utilizará como base para las proporciones de tu cuerpo.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR no está conectado actualmente a SlimeVR, por lo que las mediciones no se pueden basar con tu visor. <b>¡Proceda bajo su propio riesgo o consulte la documentación!</b>
onboarding-scaled_proportions-manual_height-height-v2 = Su altura total es
onboarding-scaled_proportions-manual_height-estimated_height = La altura estimada del visor es:
onboarding-scaled_proportions-manual_height-next_step = Continuar y guardar
onboarding-scaled_proportions-manual_height-warning =
¡Actualmente está utilizando la forma manual de configurar proporciones escaladas!
<b>Este modo solo se recomienda si no se utiliza un HMD con SlimeVR</b>
Para poder utilizar las proporciones escaladas automáticamente, por favor:
onboarding-scaled_proportions-manual_height-warning-no_hmd = Conecte un visor de RV
onboarding-scaled_proportions-manual_height-warning-no_controllers = Asegúrese de que sus controladores estén conectados y asignados correctamente a sus manos
## Tracker scaled proportions reset
onboarding-scaled_proportions-reset_proportion-title = Restablecer las proporciones del cuerpo
onboarding-scaled_proportions-reset_proportion-description = Para establecer las proporciones de su cuerpo en función de su altura, ahora debe restablecer todas sus proporciones. Esto borrará las proporciones que haya configurado y proporcionará una configuración de referencia.
onboarding-scaled_proportions-done-title = Proporciones del cuerpo guardadas
onboarding-scaled_proportions-done-description = Las proporciones de tu cuerpo ahora deberían configurarse en función de tu altura.
## Stay Aligned setup
onboarding-stay_aligned-title = Mantener Alineado
onboarding-stay_aligned-description = Configure Mantener Alineado para mantener sus trackers alineados.
onboarding-stay_aligned-put_trackers_on-title = Ponte los trackers
onboarding-stay_aligned-put_trackers_on-description = Para guardar tus posturas de descanso, vamos a utilizar los trackers que acabas de asignar. Ponte todos tus trackers, puedes ver cuál es cuál en la figura de la derecha.
onboarding-stay_aligned-put_trackers_on-trackers_warning = ¡Tiene menos de 5 trackers actualmente conectados y asignados! Esta es la cantidad mínima de trackers necesarios para que Mantener Alineado funcione correctamente.
onboarding-stay_aligned-put_trackers_on-next = Tengo todos mis trackers puestos
onboarding-stay_aligned-verify_mounting-title = Verifique su montaje
onboarding-stay_aligned-verify_mounting-step-0 = Mantener Alineado requiere un buen montaje. De lo contrario, no obtendrá una buena experiencia con Mantener Alineado.
onboarding-stay_aligned-verify_mounting-step-1 = 1. Muévete mientras estás de pie.
onboarding-stay_aligned-verify_mounting-step-2 = 2. Siéntate y mueve las piernas y los pies.
onboarding-stay_aligned-verify_mounting-step-3 = 3. Si sus trackers no están en el lugar correcto, presione "Rehacer calibración de montaje".
onboarding-stay_aligned-verify_mounting-redo_mounting = Rehacer calibración de montaje
onboarding-stay_aligned-preparation-title = Preparación
onboarding-stay_aligned-preparation-tip = Asegúrate de estar de pie. Sigue mirando hacia adelante con los brazos hacia abajo a los lados.
onboarding-stay_aligned-relaxed_poses-standing-title = Postura de pie relajada
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Párese en una posición cómoda. ¡Relájate!
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Presione el botón "Guardar pose".
onboarding-stay_aligned-relaxed_poses-sitting-title = Postura relajada sentado en silla
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Siéntese en una posición cómoda. ¡Relájate!
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Presione el botón "Guardar pose".
onboarding-stay_aligned-relaxed_poses-flat-title = Postura relajada sentado en el suelo
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Siéntate en el suelo con las piernas al frente. ¡Relájate!
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Presione el botón "Guardar pose".
onboarding-stay_aligned-relaxed_poses-skip_step = Omitir
onboarding-stay_aligned-done-title = ¡Mantener Alineado habilitado!
onboarding-stay_aligned-done-description = ¡Su configuración de Mantener Alineado está completa!
onboarding-stay_aligned-done-description-2 = ¡La configuración está completa! Puede reiniciar el proceso si desea recalibrar las poses.
onboarding-stay_aligned-previous_step = Atrás
onboarding-stay_aligned-next_step = Siguiente
onboarding-stay_aligned-restart = Reiniciar
onboarding-stay_aligned-done = Hecho
## Home
@@ -1228,74 +1339,11 @@ firmware_tool = Herramienta de firmware DIY
firmware_tool-description = Le permite configurar y actualizar sus trackers DIY
firmware_tool-not_available = Vaya, la herramienta de firmware no está disponible en este momento. ¡Vuelve más tarde!
firmware_tool-not_compatible = La herramienta de firmware no es compatible con esta versión del servidor. ¡Por favor, actualice su servidor!
firmware_tool-board_step = Seleccione su placa
firmware_tool-board_step-description = Seleccione una de las placas que se listen a continuación.
firmware_tool-board_pins_step = Revise los pines
firmware_tool-board_pins_step-description =
Por favor, verifique que los pines seleccionados sean correctos.
Si siguió la documentación de SlimeVR, los valores predeterminados deberian ser correctos
firmware_tool-board_pins_step-enable_led = Habilitar LED
firmware_tool-board_pins_step-led_pin =
.label = Pin del LED
.placeholder = Introduzca la dirección del pin del LED
firmware_tool-board_pins_step-battery_type = Seleccione el tipo de batería
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batería externa
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batería interna
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interno
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Pin del sensor de batería
.placeholder = Introduzca la dirección del pin sensor de la bateria
firmware_tool-board_pins_step-battery_resistor =
.label = Resistencia de la batería (ohmios)
.placeholder = Introduzca el valor de la resistencia de la bateria
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Shield de la Bateria R1 (Ohmios)
.placeholder = Introduzca el valor del Shield de la Bateria R1
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Shield de la Bateria R2 (Ohmios)
.placeholder = Introduzca el valor del Shield de la Bateria R2
firmware_tool-add_imus_step = Declare sus IMUs
firmware_tool-add_imus_step-description =
Por favor, añada las IMUs que su tracker tenga
Si siguió la documentación de SlimeVR, los valores predeterminados deben ser correctos
firmware_tool-add_imus_step-imu_type-label = Tipo de IMU
firmware_tool-add_imus_step-imu_type-placeholder = Seleccione el tipo de IMU
firmware_tool-add_imus_step-imu_rotation =
.label = Rotación del IMU (grados)
.placeholder = Ángulo de rotación del IMU
firmware_tool-add_imus_step-scl_pin =
.label = Pin SCL
.placeholder = Dirección del pin SCL
firmware_tool-add_imus_step-sda_pin =
.label = Pin SDA
.placeholder = Dirección del pin SDA
firmware_tool-add_imus_step-int_pin =
.label = Pin INT
.placeholder = Dirección del pin INT
firmware_tool-add_imus_step-optional_tracker =
.label = Tracker opcional
firmware_tool-add_imus_step-show_less = Mostrar menos
firmware_tool-add_imus_step-show_more = Mostrar más
firmware_tool-add_imus_step-add_more = Añadir más IMUs
firmware_tool-select_firmware_step = Seleccione la versión del firmware
firmware_tool-select_firmware_step-description = Elija la versión del firmware que desea utilizar
firmware_tool-select_firmware_step-show-third-party =
.label = Mostrar firmwares de terceros
firmware_tool-flash_method_step = Método de flasheado
firmware_tool-flash_method_step-description = Seleccione el método de flasheado que desea utilizar
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Usar el metodo "over the air". Su tracker usara el Wi-Fi para actualizar el firmware. Solo funciona en trackers ya configurados.
firmware_tool-flash_method_step-serial =
.label = Serial
.description = Usar un cable USB para actualizar el tracker.
firmware_tool-flashbtn_step = Pulse el botón de boot
firmware_tool-flashbtn_step-description = Antes de pasar al siguiente paso, hay algunas cosas que debe hacer
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el tracker, retire la carcasa (si la hay), conecte un cable USB a esta computadora y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Encienda el tracker mientras puentea el segundo pad FLASH rectangular desde el borde en la parte superior de la placa y el protector metálico del microcontrolador
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Encienda el tracker mientras puentea el pad circular FLASH en la parte superior de la placa y el protector metálico del microcontrolador
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Encienda el rastreador mientras presiona el botón FLASH en la parte superior de la placa
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el tracker, retire la carcasa (si la hay), conecte un cable USB a este ordenador y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
firmware_tool-flashbtn_step-board_OTHER =
Antes de flashear, probablemente tendrá que poner el tracker en modo bootloader.
La mayoría de las veces significa presionar el botón de boot en la placa antes de que comience el proceso de flasheo.
@@ -1318,9 +1366,6 @@ firmware_tool-flashing_step-exit = Salir
## firmware tool build status
firmware_tool-build-CREATING_BUILD_FOLDER = Creando la carpeta de compilación
firmware_tool-build-DOWNLOADING_FIRMWARE = Descargando el firmware
firmware_tool-build-EXTRACTING_FIRMWARE = Extrayendo el firmware
firmware_tool-build-SETTING_UP_DEFINES = Configurando las definiciones
firmware_tool-build-BUILDING = Compilando el firmware
firmware_tool-build-SAVING = Guardando la compilación
firmware_tool-build-DONE = Compilación completa
@@ -1384,6 +1429,46 @@ unknown_device-modal-description =
¿Quieres conectarlo a SlimeVR?
unknown_device-modal-confirm = ¡Claro!
unknown_device-modal-forget = Ignóralo
# VRChat config warnings
vrc_config-page-title = Advertencias sobre la configuración de VRChat
vrc_config-page-desc = Esta página muestra el estado de la configuración de VRChat y dice qué configuración es incompatible con SlimeVR. Se recomienda encarecidamente que corrijas las advertencias que aparecen aquí para obtener la mejor experiencia con SlimeVR.
vrc_config-page-help = ¿No encuentras los ajustes?
vrc_config-page-help-desc = ¡Consulte nuestra <a>documentación sobre este tema!</a>
vrc_config-page-big_menu = Seguimiento e IK (Menú grande)
vrc_config-page-big_menu-desc = Configuración relacionada al IK en el menú grande de configuración
vrc_config-page-wrist_menu = Seguimiento e IK (Menú de muñeca)
vrc_config-page-wrist_menu-desc = Ajustes relacionados al IK en el pequeño menú de ajustes (menú de muñeca)
vrc_config-on = Encendido
vrc_config-off = Apagado
vrc_config-invalid = ¡Tienes ajustes de VRChat mal configurados!
vrc_config-show_more = Mostrar más
vrc_config-setting_name = Nombre del ajuste de VRChat
vrc_config-recommended_value = Valor recomendado
vrc_config-current_value = Valor actual
vrc_config-mute = Silenciar advertencia
vrc_config-mute-btn = Silenciar
vrc_config-unmute-btn = Desilenciar
vrc_config-legacy_mode = Utilizar la resolución de IK antigua
vrc_config-disable_shoulder_tracking = Desactivar el seguimiento de hombros
vrc_config-shoulder_width_compensation = Compensación de la anchura del hombro
vrc_config-spine_mode = Modo columna FBT
vrc_config-tracker_model = Modelo de rastreador para "FBT"
vrc_config-avatar_measurement_type = Medida del avatar
vrc_config-calibration_range = Rango de calibración
vrc_config-calibration_visuals = Mostrar elementos visuales de la calibración
vrc_config-user_height = Altura real del usuario
vrc_config-spine_mode-UNKNOWN = Desconocido
vrc_config-spine_mode-LOCK_BOTH = Bloquear ambos
vrc_config-spine_mode-LOCK_HEAD = Bloquear cabeza
vrc_config-spine_mode-LOCK_HIP = Bloquear cadera
vrc_config-tracker_model-UNKNOWN = Desconocido
vrc_config-tracker_model-AXIS = Eje
vrc_config-tracker_model-BOX = Caja
vrc_config-tracker_model-SPHERE = Esfera
vrc_config-tracker_model-SYSTEM = Sistema
vrc_config-avatar_measurement_type-UNKNOWN = Desconocido
vrc_config-avatar_measurement_type-HEIGHT = Altura
vrc_config-avatar_measurement_type-ARM_SPAN = Amplitud de los brazos
## Error collection consent modal
@@ -1394,3 +1479,6 @@ error_collection_modal-description_v2 =
Puede cambiar esta configuración más adelante en la sección Comportamiento de la página de configuración.
error_collection_modal-confirm = Acepto
error_collection_modal-cancel = No quiero
## Tracking checklist section

View File

@@ -24,6 +24,9 @@ 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.
## Units
## Body parts
body_part-NONE = Määramata
@@ -48,6 +51,9 @@ body_part-LEFT_UPPER_LEG = Vasak reis
body_part-LEFT_LOWER_LEG = Vasak säär
body_part-LEFT_FOOT = Vasak jalg
## BoardType
## Proportions
skeleton_bone-NONE = Mitte midagi
@@ -122,7 +128,7 @@ widget-overlay-is_mirrored_label = Näita Ülekatet Peeglina
widget-drift_compensation-clear = Selgem triivi kompenseerimine
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Lähtesta paigaldusasend
@@ -142,7 +148,9 @@ 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
## Widget: Skeleton Visualizer
## Tracker status
@@ -298,10 +306,6 @@ settings-general-steamvr-description =
Kasulik teatud mängudele või äppidele, mis toetavad ainult teatuid jälgijaid.
settings-general-steamvr-trackers-waist = Vöökoht
settings-general-steamvr-trackers-chest = Rind
settings-general-steamvr-trackers-feet = Jalad
settings-general-steamvr-trackers-knees = Põlved
settings-general-steamvr-trackers-elbows = Küünarnukid
settings-general-steamvr-trackers-hands = Käed
## Tracker mechanics
@@ -366,9 +370,6 @@ settings-general-fk_settings-skeleton_settings-interp_hip_legs = Leia keskmine p
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
## Gesture control settings (tracker tapping)
@@ -432,6 +433,9 @@ settings-general-interface-feedback_sound-description = See suvand esitab lähte
settings-general-interface-feedback_sound-label = Tagasiside heli
settings-general-interface-feedback_sound-volume = Tagasiside helitugevus
## Behavior settings
## Serial settings
settings-serial = Jadakonsool
@@ -449,7 +453,6 @@ settings-serial-factory_reset-warning =
Mis tähendab et WI-FI ja kalibreerimis sätted <b>kustutatakse!</b>
settings-serial-factory_reset-warning-ok = Ma tean mida ma teen
settings-serial-factory_reset-warning-cancel = Tühista
settings-serial-get_infos = Saa infot
settings-serial-serial_select = Valige jadaport
settings-serial-auto_dropdown_item = Auto
@@ -481,15 +484,10 @@ settings-osc-router-network-address-placeholder = IPV4 aadress
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Jälgija
# This cares about multilines
settings-osc-vrchat-description =
Muuda VRChat-i spetsiifiliseid seadeid, et saada ja saata HMD andmeid.
Jälgijate andmed FBT jaoks (töötab Questi peal ilma arvuti ühenduseta).
settings-osc-vrchat-enable = Luba
settings-osc-vrchat-enable-description = Lülitage andmete sisestamine sisse/välja.
settings-osc-vrchat-enable-label = Luba
settings-osc-vrchat-network = Võrgupordid
settings-osc-vrchat-network-description = Lisage võrgupordid andmete saamiseks ja saatmiseks VRChat-i.
settings-osc-vrchat-network-port_in =
.label = Võrguport sisse
.placeholder = Võrguport sisse (vaikimisi: 9001)
@@ -497,7 +495,6 @@ settings-osc-vrchat-network-port_out =
.label = Võrguport välja
.placeholder = Võrguport välja (vaikimisi: 9000)
settings-osc-vrchat-network-address = Võrgu aadress
settings-osc-vrchat-network-address-description = Vali, mis aadressile saata andmeid VRChat-i jaoks (kontrolli enda Wi-Fi seadeid seadmest).
settings-osc-vrchat-network-address-placeholder = VRChat ip aadress
settings-osc-vrchat-network-trackers = Jälgia
settings-osc-vrchat-network-trackers-description = Lülita sisse/välja teatud jälgijate andmete saatmise OSC kaudu.
@@ -530,17 +527,23 @@ settings-osc-vmc-network-address-description = Valige, millisel aadressil soovit
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
## Common OSC settings
## Advanced settings
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Jäta seadistamine vahele
@@ -556,11 +559,6 @@ onboarding-setup_warning-cancel = Jätka seadistamist
## Wi-Fi setup
onboarding-wifi_creds-back = Mine tagasi juhistele
onboarding-wifi_creds = Sisestage enda Wi-Fi andmed!
# This cares about multilines
onboarding-wifi_creds-description =
Jälgijad kasutavad neid andmeid, et ühendada juhtmevabalt.
Palun kasutage neid Wi-Fi andmeid, millega te praegu olete ühendatud.
onboarding-wifi_creds-skip = Jätke Wi-Fi seaded vahele.
onboarding-wifi_creds-submit = Jätka!
onboarding-wifi_creds-ssid =
@@ -600,13 +598,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = Tere tulemast SlimeVR-i
onboarding-home-start = Hakkame sättima!
## Enter VR part of setup
onboarding-enter_vr-back = Minge tagasi jälgijate määramisse
onboarding-enter_vr-title = Aeg minna VR-i!
onboarding-enter_vr-description = Pange selga kõik jälgijad ja VR prillid.
onboarding-enter_vr-ready = Olen valmis
## Setup done
onboarding-done-title = Kõik on valmis!
@@ -617,8 +608,6 @@ onboarding-done-close = Sulgege juhend
onboarding-connect_tracker-back = Minge tagasi Wi-Fi andmetesse
onboarding-connect_tracker-title = Ühendage jälgijad
onboarding-connect_tracker-description-p0 = Nüüd lähme lõbusa osa juurde, ühendame kõik jälgijad-
onboarding-connect_tracker-description-p1 = Lihtsalt ühendage kõik jälgijad, mis ei ole ühendatud läbi USB enda arvutisse.
onboarding-connect_tracker-issue-serial = Mul on probleeme ühenduse loomisega!
onboarding-connect_tracker-usb = USB Jälgija
onboarding-connect_tracker-connection_status-none = Jälgijate otsimine
@@ -636,17 +625,16 @@ onboarding-connect_tracker-connection_status-done = Ühendatud serveriga
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Mitte ühtegi jälgijat ühendatud
[one] 1 jälgija
*[other] { $amount } jälgijat
} connected
[0] Mitte ühtegi jälgijat ühendatud connected
[one] 1 jälgija connected
*[other] { $amount } jälgijat 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
@@ -672,10 +660,10 @@ onboarding-assign_trackers-description = Valime mis jälgijad lähevad kuhu. Vaj
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 jälgija
*[other] { $trackers } jälgijat
} assigned
{ $trackers ->
[one] { $assigned } of 1 jälgija assigned
*[other] { $assigned } of { $trackers } jälgijat assigned
}
onboarding-assign_trackers-advanced = Kuva täpsemad määramiskohad
onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
@@ -685,12 +673,8 @@ onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
## 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
@@ -716,35 +700,13 @@ onboarding-automatic_mounting-mounting_reset-title = Paigalduse lähtestamine
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Kükita suusaasendis, jalad kõverad, ülakeha kallutatud ettepoole ja käed kõverad.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Vajutage "Lähtesta Paigaldusasend" nuppu ja oodage 3 sekuntit ja jälgijate paigaldusasend lähtestatakse.
onboarding-automatic_mounting-preparation-title = Ettevalmistus
onboarding-automatic_mounting-preparation-step-0 = 1. Seiske püsti, käed kõrval.
onboarding-automatic_mounting-preparation-step-1 = 2. Vajutage "Lähtesta" nuppu ja oodage 3 sekundit ja jälgijad lähtestatakse.
onboarding-automatic_mounting-put_trackers_on-title = Pange kõik jälgijad peale
onboarding-automatic_mounting-put_trackers_on-description = Et kalibreerida jälgijate paigaldus asendi pööret pange kõik jälgijad peale ja nüüd te näete mis on mis jälgijad paremal pool ekraani.
onboarding-automatic_mounting-put_trackers_on-next = Mul on kõik jälgijad küljes
## Tracker proportions method choose
## Tracker manual proportions setupa
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
@@ -758,15 +720,8 @@ onboarding-automatic_proportions-put_trackers_on-description = Et kalibreerida t
onboarding-automatic_proportions-put_trackers_on-next = Mul on kõik jälgijad küljes
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!
@@ -799,10 +754,19 @@ 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!
## User height calibration
## Stay Aligned setup
## Home
home-no_trackers = Jälgijaid ei tuvastatud ega määratud
## Trackers Still On notification
## Status system
status_system-StatusSteamVRDisconnected =
@@ -811,3 +775,33 @@ status_system-StatusSteamVRDisconnected =
*[other] Praegu ei ole SlimeVR-draiveri kaudu SteamVR-iga ühendatud.
}
status_system-StatusTrackerError = Jälgijal { $trackerName } on tõrge.
## Firmware tool globals
## Firmware tool Steps
## firmware tool build status
## Firmware update status
## Dedicated Firmware Update Page
## Tray Menu
## First exit modal
## Unknown device modal
## Error collection consent modal
## Tracking checklist section

View File

@@ -24,6 +24,9 @@ tips-do_not_move_heels = Varmista, että kantapääsi ei liiku tallennuksen aika
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.
## Units
## Body parts
body_part-NONE = Ei määritetty
@@ -48,6 +51,9 @@ body_part-LEFT_UPPER_LEG = Vasen reisi
body_part-LEFT_LOWER_LEG = Vasen nilkka
body_part-LEFT_FOOT = Vasen jalkaterä
## BoardType
## Proportions
skeleton_bone-NONE = Ei mikään
@@ -122,7 +128,7 @@ widget-overlay-is_mirrored_label = Näytä Overlay Peilinä
widget-drift_compensation-clear = Tyhjennä ajautumakompensaatio
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Tyhjennä asennuksen nollaus
@@ -142,7 +148,6 @@ 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
## Widget: Skeleton Visualizer
@@ -361,8 +366,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Floor clip voi v
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe snap yrittää arvata varpaiden asennon jos jalkaterän jäljitintä ei ole käytössä.
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot plant asettaa jalkateräsi yhdensuuntaisesti maan kanssa kosketuksessa.
settings-general-fk_settings-leg_fk = Jalkojen jäljitys
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Ota käyttöön jalkojen asennuksen nollaus varpaillaan.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Jalkojen asennuksen nollaus
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ä
@@ -388,9 +391,6 @@ settings-general-fk_settings-skeleton_settings-interp_hip_legs = Keskimääritä
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
## Gesture control settings (tracker tapping)
@@ -455,6 +455,9 @@ settings-general-interface-feedback_sound-label = Palaute ääni
settings-general-interface-feedback_sound-volume = Palaute äänen voimakkuus
settings-general-interface-connected_trackers_warning = Yhdistettyjen jäljittimien varoitus
settings-general-interface-connected_trackers_warning-description = Tämä vaihtoehto näyttää ponnahdusikkunan aina, kun yrität poistua SlimeVR:stä, kun sinulla on yksi tai useampi yhdistetty jäljitin. Se muistuttaa sinua sammuttamaan jäljittimet, kun olet valmis, akun käyttöiän säästämiseksi.
## Behavior settings
settings-general-interface-use_tray = Pienennä ilmaisinalueelle
settings-general-interface-use_tray-description = Voit sulkea ikkunan sulkematta SlimeVR-palvelinta, jotta voit jatkaa sen käyttöä ilman, että graafinen käyttöliittymä häiritsee sinua.
settings-general-interface-use_tray-label = Pienennä ilmaisinalueelle
@@ -479,7 +482,6 @@ settings-serial-factory_reset-warning =
Tämä tarkoittaa, että Wi-Fi- ja kalibrointiasetukset <b>menetetään kokonaan!</b>
settings-serial-factory_reset-warning-ok = Tiedän mitä teen
settings-serial-factory_reset-warning-cancel = Peruuta
settings-serial-get_infos = Hanki tietoja
settings-serial-serial_select = Valitse sarjaportti
settings-serial-auto_dropdown_item = Autom.
settings-serial-file_type = Teksti
@@ -558,17 +560,23 @@ settings-osc-vmc-network-address-description = Määritä osoite, johon tietoja
settings-osc-vmc-network-address-placeholder = IPV4-osoite
settings-osc-vmc-vrm = VRM-malli
settings-osc-vmc-vrm-description = Lataa VRM-malli salliaksesi pääankkurin ja mahdollistaaksesi paremman yhteensopivuuden muiden sovellusten kanssa
settings-osc-vmc-vrm-model_unloaded = Mallia ei ole ladattu
settings-osc-vmc-vrm-model_loaded =
{ $titled ->
[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
## Common OSC settings
## Advanced settings
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Ohita asennus
@@ -584,11 +592,6 @@ onboarding-setup_warning-cancel = Jatka asennusta
## Wi-Fi setup
onboarding-wifi_creds-back = Palaa esittelyyn
onboarding-wifi_creds = Syötä Wi-Fi-tunnistetiedot
# This cares about multilines
onboarding-wifi_creds-description =
Jäljittimet käyttävät näitä tunnistetietoja langattomaan yhteyden muodostamiseen.
Käytä tunnistetietoja, joihin olet tällä hetkellä yhteydessä.
onboarding-wifi_creds-skip = Ohita Wi-Fi-asetukset
onboarding-wifi_creds-submit = Lähetä!
onboarding-wifi_creds-ssid =
@@ -628,13 +631,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = Tervetuloa SlimeVR:ään
onboarding-home-start = Mennään asentamaan!
## Enter VR part of setup
onboarding-enter_vr-back = Palaa jäljittimien määritykseen
onboarding-enter_vr-title = Aika astua VR:ään!
onboarding-enter_vr-description = Laita kaikki jäljittimet päälle ja astu VR:ään!
onboarding-enter_vr-ready = Olen valmis
## Setup done
onboarding-done-title = Olet valmis!
@@ -672,7 +668,6 @@ onboarding-connect_tracker-next = Yhdistin kaikki jäljittimeni
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
@@ -812,26 +807,13 @@ 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
onboarding-choose_proportions-import-failed = Epäonnistui
onboarding-choose_proportions-file_type = Kehon mittasuhteet -tiedosto
## Tracker manual proportions setup
## Tracker manual proportions setupa
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
@@ -842,17 +824,8 @@ onboarding-automatic_proportions-put_trackers_on-title = Laita jäljittimet pä
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-description = Käytämme pituuttasi mittaustemme perustana käyttämällä HMD:n pituutta likiarvona todellisesta pituudestasi, mutta on parempi tarkistaa itse, ovatko ne oikein!
# All the text is in bold!
onboarding-automatic_proportions-check_height-calculation_warning = Paina painiketta <u>pystyasennossa</u> laskeaksesi pituutesi. Sinulla on 3 sekuntia painikkeen painamisen jälkeen!
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-description = Aiomme nyt tallentaa joitain tiettyä asentoja ja liikkeitä. Näitä kysytään seuraavassa näytössä. Ole valmis aloittamaan, kun painat nappia!
@@ -875,11 +848,14 @@ onboarding-automatic_proportions-verify_results-redo = Tee tallennus uudelleen
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 =
<b>Varoitus:</b> Mittasuhteita arvioitaessa havaittiin virhe!
<docs>Tarkista dokumentit</docs> tai liity <discord>Discordiin</discord> saadaksesi apua ^_^
onboarding-automatic_proportions-error_modal-confirm = Ymmäretty!
## User height calibration
## Stay Aligned setup
## Home
home-no_trackers = Jäjittimiä ei havaittu tai määritetty
@@ -903,6 +879,21 @@ status_system-StatusSteamVRDisconnected =
}
status_system-StatusTrackerError = { $trackerName } jäljittimessä on virhe
## Firmware tool globals
## Firmware tool Steps
## firmware tool build status
## Firmware update status
## Dedicated Firmware Update Page
## Tray Menu
@@ -911,3 +902,9 @@ status_system-StatusTrackerError = { $trackerName } jäljittimessä on virhe
## Unknown device modal
## Error collection consent modal
## Tracking checklist section

View File

@@ -31,6 +31,13 @@ tips-tap_setup = Vous pouvez tapoter lentement votre capteur 2 fois pour le choi
tips-turn_on_tracker = Vous utilisez des capteurs officiels SlimeVR ? N'oubliez pas <b><em>d'allumer votre capteur</em></b> après l'avoir connecté au PC !
tips-failed_webgl = Échec de l'initialisation de WebGL.
## Units
unit-meter = Metre
unit-foot = Pied
unit-inch = Pouce
unit-cm = cm
## Body parts
body_part-NONE = Non-attribué
@@ -95,6 +102,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
board_type-TTGO_TBASE = TTGO T-Base
board_type-ESP01 = ESP-01
board_type-SLIMEVR = SlimeVR
board_type-SLIMEVR_DEV = Carte de développement SlimeVR
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
board_type-LOLIN_C3_MINI = Lolin C3 Mini
board_type-BEETLE32C3 = Beetle ESP32-C3
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
@@ -118,7 +127,7 @@ skeleton_bone-HEAD-desc =
skeleton_bone-NECK = Longueur du cou
skeleton_bone-NECK-desc =
Ceci est la distance entre le milieu de votre tête et la base de votre cou.
Pour lajuster, hochez votre tête de haut en bas ou inclinez votre tête de gauche à droite et modifiez-la
Pour lajuster, hochez votre tête de haut en bas ou inclinez votre tête de gauche à droite et modifiez-la
jusquà ce que vos capteurs bougent le moins possible.
skeleton_bone-torso_group = Longueur du torse
skeleton_bone-torso_group-desc =
@@ -244,7 +253,12 @@ reset-reset_all_warning_default-v2 =
Êtes-vous sûr de vouloir faire cela ?
reset-full = Réinitialisation complète
reset-mounting = Réinitialiser l'alignement
reset-mounting-feet = Réinitialiser l'alignement des pieds
reset-mounting-fingers = Réinitialiser l'alignement des doigts
reset-yaw = Réinitialisation horizontale
reset-error-no_feet_tracker = Aucun traqueur de pieds nest assigné
reset-error-no_fingers_tracker = Aucun traqueur de doigts n'est assigné
reset-error-mounting-need_full_reset = Nécessite une réinitialisation complète avant de le monter
## Serial detection stuff
@@ -268,6 +282,7 @@ navbar-settings = Réglages
## Biovision hierarchy recording
bvh-start_recording = Enregistrer BVH
bvh-stop_recording = Sauvegarder lenregistrement BVH
bvh-recording = Enregistrement...
bvh-save_title = Sauvegarder lenregistrement BVH
@@ -286,7 +301,7 @@ 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 calibration
widget-clear_mounting = Réinitialiser la calibration de l'alignement
@@ -404,11 +419,11 @@ tracker-settings-name_section-label = Nom personalisé
tracker-settings-forget = Oublier capteur
tracker-settings-forget-description = Supprime le capteur du serveur SlimeVR et l'empêche de s'y connecter jusqu'à ce que le serveur soit redémarré. La configuration du capteur ne sera pas perdue.
tracker-settings-forget-label = Oublier capteur
tracker-settings-update-unavailable = Ne peut pas être mis à jour (DIY)
tracker-settings-update-unavailable-v2 = Aucune publication trouvée
tracker-settings-update-incompatible = Mise à jour impossible. Carte incompatible
tracker-settings-update-low-battery = Mise à jour impossible. Batterie inférieure à 50 %
tracker-settings-update-up_to_date = À jour
tracker-settings-update-blocked = Mise à jour non disponible. Aucune autre version disponible
tracker-settings-update-available = { $versionName } est maintenant disponible
tracker-settings-update = Mettre à jour maintenant
tracker-settings-update-title = Version du micrologiciel
@@ -476,6 +491,7 @@ mounting_selection_menu-close = Fermer
settings-sidebar-title = Réglages
settings-sidebar-general = Général
settings-sidebar-steamvr = SteamVR
settings-sidebar-tracker_mechanics = Paramètres des capteurs
settings-sidebar-stay_aligned = Garder Aligné
settings-sidebar-fk_settings = Paramètres de la capture
@@ -483,9 +499,11 @@ settings-sidebar-gesture_control = Contrôle gestuel
settings-sidebar-interface = Interface
settings-sidebar-osc_router = Routeur OSC
settings-sidebar-osc_trackers = Capteurs OSC VRChat
settings-sidebar-osc_vmc = VMC
settings-sidebar-utils = Utilitaires
settings-sidebar-serial = Console série
settings-sidebar-appearance = Apparence
settings-sidebar-home = Ecran d'accueil
settings-sidebar-notifications = Notifications
settings-sidebar-behavior = Comportement
settings-sidebar-firmware-tool = Outil de micrologiciel DIY
@@ -611,13 +629,16 @@ 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-leg_fk-reset_mounting_feet-description-v1 = Forcer la réinitialisation de l'alignement des pieds pendant la réinitialisation d'alignement générale.
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Forcer la réinitialisation de l'alignement des pieds
settings-general-fk_settings-enforce_joint_constraints = Limites squelettiques
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Appliquer les contraintes
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Empêche les articulations de tourner au-delà de leur limite
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Corriger avec les contraintes
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Corriger les rotations des articulations lorsqu'elles dépassent leur limite
settings-general-fk_settings-ik = Données de position
settings-general-fk_settings-ik-use_position = Utiliser les données de position
settings-general-fk_settings-ik-use_position-description = Permet d'utiliser les données de position des capteurs qui les fournissent. Assurez-vous de faire une réinitialisation complète et de recalibrer en jeu lorsque vous activez cette option.
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
@@ -724,9 +745,6 @@ settings-general-interface-connected_trackers_warning-label = Avertissement de c
## Behavior settings
settings-interface-behavior = Comportement
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-use_tray = Minimiser dans la zone de notifications
settings-general-interface-use_tray-description = Vous permet de fermer la fenêtre sans fermer le serveur SlimeVR afin que vous puissiez continuer à l'utiliser sans l'interface graphique.
settings-general-interface-use_tray-label = Minimiser dans la zone de notifications
@@ -768,12 +786,16 @@ settings-serial-factory_reset-warning =
Ce qui signifie que les paramètres de Wi-Fi et de calibration <b>seront tous perdus !</b>
settings-serial-factory_reset-warning-ok = Je sais ce que je fais
settings-serial-factory_reset-warning-cancel = Annuler
settings-serial-get_infos = Obtenir des informations
settings-serial-serial_select = Sélectionnez un port série
settings-serial-auto_dropdown_item = Automatique
settings-serial-get_wifi_scan = Obtenir scan WiFi
settings-serial-file_type = Texte brut
settings-serial-save_logs = Enregistrer dans un fichier
settings-serial-send_command = Envoyer
settings-serial-send_command-placeholder = Commande...
settings-serial-send_command-warning = <b>Avertissement:</b> Exécuter des commandes en série peut entraîner une perte de données ou rendre les capteurs inutilisables.
settings-serial-send_command-warning-ok = Je sais ce que je fais
settings-serial-send_command-warning-cancel = Annuler
## OSC router settings
@@ -869,6 +891,11 @@ settings-osc-vmc-mirror_tracking = Inverser les mouvements
settings-osc-vmc-mirror_tracking-description = Inverse les mouvements horizontalement
settings-osc-vmc-mirror_tracking-label = Inverser les mouvements
## Common OSC settings
settings-osc-common-network-ports_match_error = Les ports dentrée et de sortie du routeur OSC ne peuvent pas être les mêmes !
settings-osc-common-network-port_banned_error = Le port { $port } ne peut pas être utilisé !
## Advanced settings
settings-utils-advanced = Avancé
@@ -902,6 +929,14 @@ settings-utils-advanced-open_logs = Dossier des logs
settings-utils-advanced-open_logs-description = Ouvre le dossier des logs de SlimeVR, contenant ses logs, dans l'explorateur de fichier
settings-utils-advanced-open_logs-label = Ouvrir le dossier
## Home Screen
settings-home-list-layout-desc = Sélectionnez l'une des dispositions possibles de l'écran d'accueil
## Tracking Checlist
settings-tracking_checklist-active_steps = Etapes actives
## Setup/onboarding menu
onboarding-skip = Passer
@@ -917,11 +952,6 @@ onboarding-setup_warning-cancel = Continuer la configuration
## Wi-Fi setup
onboarding-wifi_creds-back = Retour à l'introduction
onboarding-wifi_creds = Saisir les identifiants Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Les capteurs utiliseront ces informations d'identification pour se connecter au réseau.
Veuillez utiliser les identifiants avec lesquels vous êtes actuellement connecté.
onboarding-wifi_creds-skip = Passer configuration Wi-Fi
onboarding-wifi_creds-submit = Valider
onboarding-wifi_creds-ssid =
@@ -962,13 +992,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = Bienvenue sur SlimeVR
onboarding-home-start = Commencer
## Enter VR part of setup
onboarding-enter_vr-back = Revenir à l'attribution des capteurs
onboarding-enter_vr-title = Allons en réalité virtuelle !
onboarding-enter_vr-description = Enfilez tous vos capteurs puis allez en réalité virtuelle !
onboarding-enter_vr-ready = Je suis prêt
## Setup done
onboarding-done-title = Vous êtes prêt !
@@ -1010,10 +1033,10 @@ onboarding-connect_serial-error-modal-no_serial_device_found-desc =
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
[0] No trackers connected
[one] 1 tracker connected
*[other] { $amount } trackers connected
}
onboarding-connect_tracker-next = J'ai connecté tous mes capteurs
## Tracker calibration tutorial
@@ -1194,10 +1217,10 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. Maintenez la position j
onboarding-automatic_mounting-put_trackers_on-title = Enfilez vos capteurs
onboarding-automatic_mounting-put_trackers_on-description = Pour calibrer l'alignement, nous allons utiliser les capteurs que vous venez d'attribuer.
onboarding-automatic_mounting-put_trackers_on-next = J'ai tous mes capteurs
onboarding-automatic_mounting-return-home = Terminé
## Tracker manual proportions setupa
onboarding-manual_proportions-back = Revenir au didacticiel de réinitialisation
onboarding-manual_proportions-title = Proportions manuelles du corps
onboarding-manual_proportions-fine_tuning_button = Automatiquement ajuster les proportions
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Veuillez connecter un casque VR pour utiliser l'ajustement automatique
@@ -1295,30 +1318,12 @@ onboarding-automatic_proportions-smol_warning =
<b>Veuillez refaire les mesures et vous assurer qu'elles sont correctes.</b>
onboarding-automatic_proportions-smol_warning-cancel = Retour
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = Proportions à l'échelle
onboarding-scaled_proportions-description = Pour que les capteurs SlimeVR fonctionnent, nous avons besoin de connaître la longueur de vos os. Cela utilisera une proportion moyenne et l'ajustera en fonction de votre taille.
onboarding-scaled_proportions-manual_height-title = Configuration de votre taille
onboarding-scaled_proportions-manual_height-description-v2 = Cette hauteur sera utilisée comme base pour les proportions de votre corps.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR n'est actuellement pas connecté à SlimeVR, les mesures ne peuvent donc pas être basées sur votre casque. <b>Procédez à vos risques et périls ou consultez la documentation !</b>
onboarding-scaled_proportions-manual_height-height-v2 = Votre hauteur totale est :
onboarding-scaled_proportions-manual_height-estimated_height = La hauteur estimée de votre casque est de :
onboarding-scaled_proportions-manual_height-next_step = Continuer et enregistrer
onboarding-scaled_proportions-manual_height-warning =
Vous utilisez actuellement le réglage manuel de la mise à l'échelle des proportions !
<b>Ce mode est recommandé uniquement si vous n'utilisez pas de casque VR avec SlimeVR</b>
Pour pouvoir utiliser les proportions mises à léchelle automatiquement, veuillez :
onboarding-scaled_proportions-manual_height-warning-no_hmd = Connecter un casque VR
onboarding-scaled_proportions-manual_height-warning-no_controllers = Assurez-vous que vos manettes sont connectées et correctement assignées à vos mains
## Tracker scaled proportions reset
onboarding-scaled_proportions-reset_proportion-title = Réinitialiser les proportions de votre corps
onboarding-scaled_proportions-reset_proportion-description = Pour définir les proportions de votre corps en fonction de votre taille, vous devez réinitialiser toutes vos proportions. Cela remplacera les proportions que vous avez configurées par une configuration de base.
onboarding-scaled_proportions-done-title = Ensemble de proportions du corps
onboarding-scaled_proportions-done-description = Les proportions de votre corps devraient maintenant être configurées à partir de votre taille.
onboarding-user_height-title = Quelle est votre taille ?
onboarding-user_height-need_head_tracker = Un casque VR (ou capteur de tête) et des manettes à position absolue sont nécessaires pour calculer votre taille.
onboarding-user_height-calculate = Calculer ma taille automatiquement
onboarding-user_height-next_step = Continuer et enregistrer
## Stay Aligned setup
@@ -1393,81 +1398,44 @@ firmware_tool = Outil de micrologiciel DIY
firmware_tool-description = Vous permet de configurer et de flash vos capteurs DIY
firmware_tool-not_available = Oups, l'outil de micrologiciel n'est pas disponible en ce moment. Revenez plus tard !
firmware_tool-not_compatible = L'outil de micrologiciel n'est pas compatible avec cette version de serveur. Veuillez mettre à jour votre serveur !
firmware_tool-board_step = Sélectionnez votre carte
firmware_tool-board_step-description = Sélectionnez l'une des cartes répertoriées ci-dessous.
firmware_tool-board_pins_step = Vérifiez les broches
firmware_tool-board_pins_step-description =
Veuillez vérifier que les broches sélectionnées sont correctes.
Si vous avez suivi la documentation de SlimeVR, les valeurs par défaut devraient être correctes.
firmware_tool-board_pins_step-enable_led = Activer la LED
firmware_tool-board_pins_step-led_pin =
.label = Broche LED
.placeholder = Entrez l'adresse de la broche LED
firmware_tool-board_pins_step-battery_type = Sélectionnez le type de batterie
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batterie externe
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batterie interne
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interne
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Broche du capteur de batterie
.placeholder = Entrez l'adresse de la broche du capteur de batterie
firmware_tool-board_pins_step-battery_resistor =
.label = Résistance de la batterie (Ohms)
.placeholder = Entrer la valeur de la résistance de la batterie
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Bouclier de batterie R1 (Ohms)
.placeholder = Saisir la valeur du bouclier de batterie R1
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Bouclier de batterie R2 (Ohms)
.placeholder = Saisir la valeur du bouclier de batterie R1
firmware_tool-add_imus_step = Déclarez vos IMU
firmware_tool-add_imus_step-description =
Veuillez ajouter les IMUs de votre capteur
Si vous avez suivi la documentation de SlimeVR, les valeurs par défaut devraient être correctes
firmware_tool-add_imus_step-imu_type-label = Type d'IMU
firmware_tool-add_imus_step-imu_type-placeholder = Sélectionnez le type d'IMU
firmware_tool-add_imus_step-imu_rotation =
.label = Rotation de l'IMU (deg)
.placeholder = Angle de rotation de l'IMU
firmware_tool-add_imus_step-scl_pin =
.label = Broche SCL
.placeholder = Adresse de la broche SCL
firmware_tool-add_imus_step-sda_pin =
.label = Broche SDA
.placeholder = Adresse de la broche SDA
firmware_tool-add_imus_step-int_pin =
.label = Broche INT
.placeholder = Adresse de la broche INT
firmware_tool-add_imus_step-optional_tracker =
.label = Capteur optionnel
firmware_tool-add_imus_step-show_less = Afficher moins
firmware_tool-add_imus_step-show_more = Afficher plus
firmware_tool-add_imus_step-add_more = Ajouter plus d'IMUs
firmware_tool-select_firmware_step = Sélectionnez la version du micrologiciel
firmware_tool-select_firmware_step-description = Veuillez choisir la version du micrologiciel que vous souhaitez utiliser
firmware_tool-select_firmware_step-show-third-party =
.label = Afficher les micrologiciels de tierces parties
firmware_tool-select_source = Sélectionnez le micrologiciel à flasher
firmware_tool-select_source-description = Sélectionnez le micrologiciel que vous souhaitez flasher sur votre carte
firmware_tool-select_source-error = Impossible de charger les sources
firmware_tool-select_source-board_type = Type de carte
firmware_tool-select_source-firmware = Source du micrologiciel
firmware_tool-select_source-version = Version du micrologiciel
firmware_tool-select_source-official = Officiel
firmware_tool-select_source-dev = Dev
firmware_tool-board_defaults = Configurez votre carte
firmware_tool-board_defaults-description = Réglez les broches ou réglages pour votre matériel
firmware_tool-board_defaults-add = Ajouter
firmware_tool-board_defaults-reset = Réinitialisation à la valeur par défaut
firmware_tool-board_defaults-error-required = Champ requis
firmware_tool-board_defaults-error-format = Format invalide
firmware_tool-board_defaults-error-format-number = Pas un nombre
firmware_tool-flash_method_step = Méthode de flash
firmware_tool-flash_method_step-description = Veuillez sélectionner la méthode de flash que vous souhaitez utiliser
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Utiliser la méthode « over the air ». Votre capteur utilisera le Wi-Fi pour mettre à jour son micrologiciel. Ne fonctionne que sur les capteurs déjà configurés.
firmware_tool-flash_method_step-serial =
.label = Série
.description = Utiliser un cable USB pour mettre à jour votre capteur
firmware_tool-flash_method_step-ota-v2 =
.label = Wi-Fi
.description = Utilisez la méthode « over-the-air ». Votre capteur utilisera le Wi-Fi pour mettre à jour son microgiciel. Cette méthode ne fonctionne que pour les capteurs déjà configurés.
firmware_tool-flash_method_step-ota-info =
Nous utilisons vos identifiants wifi pour flasher le capteur et confirmer que tout s'est déroulé correctement.
<b>Nous ne stockons pas vos identifiants wifi !</b>
firmware_tool-flash_method_step-serial-v2 =
.label = USB
.description = Utiliser un cable USB pour mettre à jour votre capteur.
firmware_tool-flashbtn_step = Appuyez sur le bouton boot
firmware_tool-flashbtn_step-description = Avant de passer à l'étape suivante, il y a quelques choses que vous devez faire
firmware_tool-flashbtn_step-board_SLIMEVR = Éteignez le capteur, retirez le boîtier (s'il y en a un), connectez un câble USB à votre ordinateur, puis effectuez l'une des étapes suivantes en fonction de la révision de votre carte SlimeVR :
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Allumez le capteur tout en court-circuitant le deuxième pad FLASH rectangulaire à partir du bord sur la face supérieure de la carte et du bouclier métallique du microcontrôleur
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Allumez le tracker tout en court-circuitant le pad FLASH circulaire sur le côté supérieur de la carte et le bouclier métallique du microcontrôleur
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Allumez le tracker tout en appuyant sur le bouton FLASH situé sur la partie supérieure de la carte
firmware_tool-flashbtn_step-board_OTHER =
Avant de flash le capteur, vous devrez probablement le mettre en mode bootloader.
La plupart du temps, il s'agit d'appuyer sur le bouton boot de la carte avant que le processus de flash ne commence.
Si le processus de flash expire au début du flash, cela signifie probablement que le capteur n'était pas en mode bootloader
Veuillez vous référer aux instructions de flash de votre carte pour savoir comment activer le mode boatloader
firmware_tool-flash_method_ota-title = Flasher via Wi-Fi
firmware_tool-flash_method_ota-devices = Appareils OTA détectés :
firmware_tool-flash_method_ota-no_devices = Il n'y a aucune carte pouvant être mise à jour à l'aide d'OTA, assurez-vous d'avoir sélectionné le bon type de carte
firmware_tool-flash_method_serial-title = Flasher via USB
firmware_tool-flash_method_serial-wifi = Identifiants Wi-Fi :
firmware_tool-flash_method_serial-devices-label = Appareils en série détectés :
firmware_tool-flash_method_serial-devices-placeholder = Sélectionnez un appareil en série
@@ -1482,10 +1450,10 @@ firmware_tool-flashing_step-exit = Quitter
## firmware tool build status
firmware_tool-build-QUEUED = En attente de la création...
firmware_tool-build-CREATING_BUILD_FOLDER = Création du dossier de création
firmware_tool-build-DOWNLOADING_FIRMWARE = Téléchargement du micrologiciel
firmware_tool-build-EXTRACTING_FIRMWARE = Extraction du micrologiciel
firmware_tool-build-SETTING_UP_DEFINES = Configuration des définitions
firmware_tool-build-DOWNLOADING_SOURCE = Téléchargement du code source
firmware_tool-build-EXTRACTING_SOURCE = Extraction du code source
firmware_tool-build-BUILDING = Création du micrologiciel
firmware_tool-build-SAVING = Enregistrement du micrologiciel
firmware_tool-build-DONE = Création terminée
@@ -1598,3 +1566,6 @@ error_collection_modal-description_v2 =
Vous pouvez modifier ce paramètre ultérieurement dans la section "Comportement" des paramètres.
error_collection_modal-confirm = Je suis d'accord
error_collection_modal-cancel = Je ne veux pas
## Tracking checklist section

View File

@@ -18,6 +18,9 @@ websocket-connection_lost = החיבור לשרת אבד. מנסה להתחבר
tips-find_tracker = לא בטוח איזה חיישן אתה מחזיק? נער את החיישן והתוכנה תסמן לך אותו.
tips-do_not_move_heels = אנא וודא שהעקבים שלך לא זזות בזמן הקלטה
## Units
## Body parts
body_part-NONE = לא שויך
@@ -41,6 +44,9 @@ body_part-LEFT_UPPER_LEG = ירך שמאל
body_part-LEFT_LOWER_LEG = קרסול שמאל
body_part-LEFT_FOOT = רגל שמאל
## BoardType
## Proportions
skeleton_bone-NONE = לא נבחר
@@ -99,6 +105,9 @@ widget-overlay-is_mirrored_label = הצג Overlay כהעתק
## Widget: Drift compensation
## Widget: Clear Mounting calibration
## Widget: Developer settings
widget-developer_mode = מצב מפתח
@@ -113,6 +122,9 @@ widget-developer_mode-more_info = הצג עוד מידע
widget-imu_visualizer = סיבוב
widget-imu_visualizer-rotation_preview = תצוגה מקדימה
## Widget: Skeleton Visualizer
## Tracker status
tracker-status-none = אין סטטוס
@@ -212,10 +224,6 @@ settings-sidebar-serial = טרמינל סידרתי
settings-general-steamvr = SteamVR
settings-general-steamvr-trackers-waist = מותניים
settings-general-steamvr-trackers-chest = חזה
settings-general-steamvr-trackers-feet = רגל
settings-general-steamvr-trackers-knees = ברכיים
settings-general-steamvr-trackers-elbows = מרפקים
settings-general-steamvr-trackers-hands = ידיים
## Tracker mechanics
@@ -243,7 +251,13 @@ settings-general-tracker_mechanics-drift_compensation-max_resets-label = שימ
## Gesture control settings (tracker tapping)
## Interface settings
## Appearance settings
## Notification settings
## Behavior settings
## Serial settings
@@ -262,6 +276,18 @@ settings-osc-vrchat-network-trackers-elbows = מרפקים
## VMC OSC settings
## Common OSC settings
## Advanced settings
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
@@ -274,9 +300,6 @@ settings-osc-vrchat-network-trackers-elbows = מרפקים
## Setup start
## Enter VR part of setup
## Setup done
@@ -304,10 +327,7 @@ settings-osc-vrchat-network-trackers-elbows = מרפקים
## Tracker automatic mounting setup
## Tracker proportions method choose
## Tracker manual proportions setup
## Tracker manual proportions setupa
## Tracker automatic proportions setup
@@ -322,9 +342,48 @@ onboarding-automatic_proportions-verify_results-confirm = הם נכונים
onboarding-automatic_proportions-done-title = הגוף שלך נמדד ונשמר
onboarding-automatic_proportions-done-description = תהליך כיול פרופורציות הגוף שלך הושלם!
## User height calibration
## Stay Aligned setup
## Home
home-no_trackers = לא זוהו או הוקצו חיישנים
## Trackers Still On notification
## Status system
## Firmware tool globals
## Firmware tool Steps
## firmware tool build status
## Firmware update status
## Dedicated Firmware Update Page
## Tray Menu
## First exit modal
## Unknown device modal
## Error collection consent modal
## Tracking checklist section

View File

@@ -31,6 +31,9 @@ tips-tap_setup = Puoi toccare lentamente 2 volte il tracker per sceglierlo invec
tips-turn_on_tracker = Stai utilizzando i tracker ufficiali di SlimeVR? Ricordati di <b><em>accendere il tuo tracker</em></b> dopo averlo collegato al PC!
tips-failed_webgl = Inizializzazione WebGL fallita.
## Units
## Body parts
body_part-NONE = Non assegnato
@@ -175,7 +178,7 @@ skeleton_bone-FOOT_SHIFT = Correzione per i piedi
skeleton_bone-FOOT_SHIFT-desc =
Questo valore è la distanza orizzontale dal ginocchio alla caviglia.
Tiene conto del fatto che la parte inferiore delle gambe va all'indietro quando si sta in piedi.
Per regolarla, impostare la lunghezza dei piedi su 0, eseguire un reset completo e modificarla
Per regolarla, impostare la lunghezza dei piedi su 0, eseguire un reset completo e modificarla
finché i piedi virtuali di non si allineano al centro delle caviglie.
skeleton_bone-SKELETON_OFFSET = Correzione per lo scheletro
skeleton_bone-SKELETON_OFFSET-desc =
@@ -278,7 +281,7 @@ widget-overlay-is_mirrored_label = Mostra Overlay come specchio
widget-drift_compensation-clear = Rimuovi compensazione per il drift
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = Cancella tutti i ripristini del posizionamento
@@ -396,10 +399,8 @@ tracker-settings-name_section-label = Nome del tracker
tracker-settings-forget = Dimentica il tracker
tracker-settings-forget-description = Rimuove il tracker dal SlimeVR server e impedisce che si riconnetta ad fino al riavvio del server. Le impostazioni del tracker non andranno perse.
tracker-settings-forget-label = Dimentica il tracker
tracker-settings-update-unavailable = Non può essere aggiornata (fai da te)
tracker-settings-update-low-battery = Non è possibile aggiornare. Batteria inferiore al 50%
tracker-settings-update-up_to_date = Aggiornata
tracker-settings-update-available = { $versionName } è ora disponibile
tracker-settings-update = Aggiorna
tracker-settings-update-title = Versione firmware
@@ -541,7 +542,7 @@ settings-general-tracker_mechanics-drift_compensation-prediction-description =
Abilita questa opzione se i tuoi tracker perdono continuano l'orientamento.
settings-general-tracker_mechanics-drift_compensation-prediction-label = Compensazione del drift predittiva
settings-general-tracker_mechanics-drift_compensation_warning =
<b>Attenzione:</b> Utilizzare la compensazione del drift solo se è necessario il ripristino
<b>Attenzione:</b> Utilizzare la compensazione del drift solo se è necessario il ripristino
molto spesso (ogni ~5-10 minuti).
Alcune IMU che sono soggetti a frequenti ripristini includono:
@@ -600,8 +601,6 @@ 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 = Tracciamento delle gambe
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Abilita il ripristino di posizionamento dei piedi mettendosi in punta di piedi.
settings-general-fk_settings-leg_fk-reset_mounting_feet = Ripristino del posizionamento dei piedi
settings-general-fk_settings-enforce_joint_constraints = Limiti dello scheletro
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Rispetta i vincoli
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Impedisci ai legamenti di ruotare oltre il loro limite
@@ -714,9 +713,6 @@ settings-general-interface-connected_trackers_warning-label = Avviso di tracker
## Behavior settings
settings-interface-behavior = Comportamento
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-use_tray = Riduci a icona nella barra delle applicazioni
settings-general-interface-use_tray-description = Ti consente di chiudere la finestra senza chiudere il server SlimeVR in modo da poter continuare a usarlo senza che la GUI ti infastidisca.
settings-general-interface-use_tray-label = Riduci a icona nella barra delle applicazioni
@@ -755,7 +751,6 @@ settings-serial-factory_reset-warning =
Ciò significa che le impostazioni Wi-Fi e di calibrazione <b>andranno tutte perse!</b>
settings-serial-factory_reset-warning-ok = Capisco cosa sto facendo
settings-serial-factory_reset-warning-cancel = Annulla
settings-serial-get_infos = Ottieni informazioni
settings-serial-serial_select = Seleziona una porta seriale
settings-serial-auto_dropdown_item = Automatico
settings-serial-get_wifi_scan = Elenca WiFi Network
@@ -858,6 +853,9 @@ settings-osc-vmc-mirror_tracking = Tracciamento speculare
settings-osc-vmc-mirror_tracking-description = Specchia il tracciamento orizzontalmente.
settings-osc-vmc-mirror_tracking-label = Tracciamento speculare
## Common OSC settings
## Advanced settings
settings-utils-advanced = Avanzato
@@ -891,6 +889,12 @@ settings-utils-advanced-open_logs = Cartella dei Log
settings-utils-advanced-open_logs-description = Apri la cartella dei log di SlimeVR in Esplora Risorse, contenente i log dell'app
settings-utils-advanced-open_logs-label = Apri cartella
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = Salta la configurazione
@@ -906,11 +910,6 @@ onboarding-setup_warning-cancel = Continua la configurazione
## Wi-Fi setup
onboarding-wifi_creds-back = Torna all'introduzione
onboarding-wifi_creds = Inserisci credenziali Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
I tracker utilizzeranno queste credenziali per connettersi in modalità wireless
Si prega di utilizzare le stesse credenziali con cui si è attualmente connessi
onboarding-wifi_creds-skip = Salta impostazioni Wi-Fi
onboarding-wifi_creds-submit = Conferma!
onboarding-wifi_creds-ssid =
@@ -929,7 +928,7 @@ onboarding-reset_tutorial-explanation = Mentre usi i tuoi tracker, potrebbero pe
onboarding-reset_tutorial-skip = Salta passaggio
# Cares about multiline
onboarding-reset_tutorial-0 =
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino dell'orientamento.
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino dell'orientamento.
Ciò farà sì che i tracker siano rivolti nella stessa direzione del tuo HMD.
# Cares about multiline
@@ -940,7 +939,7 @@ onboarding-reset_tutorial-1 =
Questo ripristinerà completamente la posizione e la rotazione di tutti i tuoi tracker. Dovrebbe risolvere la maggior parte dei problemi.
# Cares about multiline
onboarding-reset_tutorial-2 =
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino del posizionamento.
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino del posizionamento.
Il ripristino del posizionamento aiuta a determinare come i tracker vengono effettivamente posizionati su di te, quindi se li hai spostati accidentalmente e hai cambiato il modo in cui sono orientati di una grande quantità, questo aiuterà.
@@ -951,13 +950,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = Benvenuti a SlimeVR
onboarding-home-start = Prepariamoci!
## Enter VR part of setup
onboarding-enter_vr-back = Torna all'assegnazione dei tracker
onboarding-enter_vr-title = È ora di entrare in VR!
onboarding-enter_vr-description = Indossa tutti i tuoi tracker e entra in VR!
onboarding-enter_vr-ready = Sono prontə!
## Setup done
onboarding-done-title = È tutto pronto!
@@ -1009,7 +1001,6 @@ 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
@@ -1186,7 +1177,6 @@ onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei
## Tracker manual proportions setupa
onboarding-manual_proportions-back = Torna al tutorial di ripristino
onboarding-manual_proportions-title = Impostazione manuale delle proporzioni del corpo
onboarding-manual_proportions-fine_tuning_button = Regola automaticamente le proporzioni
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Per piacer collega un visore VR per utilizzare la regolazione automatica
@@ -1285,30 +1275,8 @@ onboarding-automatic_proportions-smol_warning =
<b>Si prega di ripetere le misurazioni e assicurarsi che siano corrette.</b>
onboarding-automatic_proportions-smol_warning-cancel = Indietro
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = Proporzioni in scala
onboarding-scaled_proportions-description = Affinché i tracker di SlimeVR funzionino, dobbiamo conoscere la lunghezza dei tuoi arti. Questo utilizzerà delle proporzioni nella media e la scalerà in base alla tua altezza.
onboarding-scaled_proportions-manual_height-title = Configura la tua altezza
onboarding-scaled_proportions-manual_height-description-v2 = Questa altezza verrà utilizzata come punto di riferimento per calcolare le proporzioni del tuo corpo.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR non è attualmente connesso a SlimeVR, quindi le misurazioni non possono essere basate sul visore. <b>Procedi a tua discrezione o controlla la documentazione!</b>
onboarding-scaled_proportions-manual_height-height-v2 = La tua altezza totale è
onboarding-scaled_proportions-manual_height-estimated_height = La altezza del tuo visore stimata è:
onboarding-scaled_proportions-manual_height-next_step = Continua e salva
onboarding-scaled_proportions-manual_height-warning =
Al momento stai utilizzando il metodo manuale per impostare le proporzioni in scala!
<b>Questa modalità è consigliata solo se non si utilizza un Visore con SlimeVR</b>
Per poter utilizzare le proporzioni in scala automatica, si prega di:
onboarding-scaled_proportions-manual_height-warning-no_hmd = Collegare un visore VR
onboarding-scaled_proportions-manual_height-warning-no_controllers = Assicurarsi che i controller siano collegati e assegnati correttamente alle mani
## Tracker scaled proportions reset
onboarding-scaled_proportions-reset_proportion-title = Ripristina le proporzioni del corpo
onboarding-scaled_proportions-reset_proportion-description = Per impostare le proporzioni del tuo corpo in base alla tua altezza, ora devi ripristinare tutte le tue proporzioni. In questo modo verranno cancellate tutte le proporzioni configurate e verrà fornita una configurazione di base.
onboarding-scaled_proportions-done-title = Proporzioni del corpo configurate
onboarding-scaled_proportions-done-description = Le proporzioni del tuo corpo dovrebbero ora essere configurate in base alla tua altezza.
## Stay Aligned setup
@@ -1383,74 +1351,11 @@ firmware_tool = Strumento firmware fai-da-te
firmware_tool-description = Ti consente di configurare e flashare i tuoi tracker fai-da-te
firmware_tool-not_available = Oops, lo strumento firmware non è disponibile al momento. Torna più tardi!
firmware_tool-not_compatible = Lo strumento firmware non è compatibile con questa versione del server. Aggiorna il tuo server!
firmware_tool-board_step = Seleziona la tua scheda
firmware_tool-board_step-description = Seleziona una delle schede elencate di seguito.
firmware_tool-board_pins_step = Controlla i pin
firmware_tool-board_pins_step-description =
Per piacer verifica che i pin selezionati siano corretti.
Se hai seguito la documentazione di SlimeVR, i valori predefiniti dovrebbero essere corretti
firmware_tool-board_pins_step-enable_led = Abilita LED
firmware_tool-board_pins_step-led_pin =
.label = Pin LED
.placeholder = Inserisci l'indirizzo del Pin LED
firmware_tool-board_pins_step-battery_type = Seleziona il tipo di batteria
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batteria esterna
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batteria interna
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interno
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = Pin del sensore della batteria
.placeholder = Inserisci l'indirizzo del sensore della batteria
firmware_tool-board_pins_step-battery_resistor =
.label = Resistenza della batteria (Ohm)
.placeholder = Inserisci il valore della resistenza della batteria
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = Shield R1 della batteria (Ohm)
.placeholder = Inserisci il valore dello Shield R1 della batteria
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = Shield R2 della batteria (Ohm)
.placeholder = Inserisci il valore dello Shield R2 della batteria
firmware_tool-add_imus_step = Specifica i tuoi IMU
firmware_tool-add_imus_step-description =
Per piacere aggiungi le IMU del tuo tracker
Se hai seguito la documentazione di SlimeVR, i valori predefiniti dovrebbero essere corretti
firmware_tool-add_imus_step-imu_type-label = Tipo dell'IMU
firmware_tool-add_imus_step-imu_type-placeholder = Seleziona il tipo dell'IMU
firmware_tool-add_imus_step-imu_rotation =
.label = Rotazione dell'IMU (gradi)
.placeholder = Angolo di rotazione dell'IMU
firmware_tool-add_imus_step-scl_pin =
.label = Pin SLC
.placeholder = Indirizzo del Pin SLC
firmware_tool-add_imus_step-sda_pin =
.label = Pin SDA
.placeholder = Indirezzo del Pin SDA
firmware_tool-add_imus_step-int_pin =
.label = Pin INT
.placeholder = Indirizzo del Pin INT
firmware_tool-add_imus_step-optional_tracker =
.label = Tracker opzionale
firmware_tool-add_imus_step-show_less = Mostra meno
firmware_tool-add_imus_step-show_more = Mostra di più
firmware_tool-add_imus_step-add_more = Aggiungere altre IMU
firmware_tool-select_firmware_step = Seleziona la versione del firmware
firmware_tool-select_firmware_step-description = Per piacere scegli la versione del firmware che desideri utilizzare
firmware_tool-select_firmware_step-show-third-party =
.label = Mostra firmware di terze parti
firmware_tool-flash_method_step = Metodo di flashing
firmware_tool-flash_method_step-description = Seleziona il metodo di flashing che desideri utilizzare
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Usa il metodo via rete. Il tuo tracker utilizzerà il Wi-Fi per aggiornare il suo firmware. Funziona solo su tracker già configurati.
firmware_tool-flash_method_step-serial =
.label = Seriale
.description = Usa un cavo USB per aggiornare il tracker.
firmware_tool-flashbtn_step = Premi il pulsante di avvio
firmware_tool-flashbtn_step-description = Prima di passare al passaggio successivo, ci sono alcune cose che devi fare
firmware_tool-flashbtn_step-board_SLIMEVR = Spegni il tracker, rimuovi la custodia (se presente), collega un cavo USB a questo computer, quindi esegui uno dei seguenti passaggi in base alla revisione della tua scheda SlimeVR:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Accendi il tracker mentre cortocircuiti il pad rettangolare FLASH, il secondo pad contando dal bordo superiore della scheda, e lo shield metallico del microcontroller
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Accendi il tracker mentre cortocircuiti il pad circolare FLASH, il pad vicino al bordo superiore della scheda, e lo shield metallico del microcontroller
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Accendi il tracker mentre premi il pulsante FLASH sul lato superiore della scheda
firmware_tool-flashbtn_step-board_OTHER =
Prima di eseguire il flashing, sarà probabilmente necessario mettere il tracker in modalità bootloader.
La maggior parte delle volte significa premere il pulsante di avvio sulla scheda prima che inizi il processo di flashing.
@@ -1473,9 +1378,6 @@ firmware_tool-flashing_step-exit = Esci
## firmware tool build status
firmware_tool-build-CREATING_BUILD_FOLDER = Creazione della cartella di compilazione
firmware_tool-build-DOWNLOADING_FIRMWARE = Scaricamento del firmware
firmware_tool-build-EXTRACTING_FIRMWARE = Estrazione del firmware
firmware_tool-build-SETTING_UP_DEFINES = Configurazione delle definizioni del firmware
firmware_tool-build-BUILDING = Compilazione del firmware
firmware_tool-build-SAVING = Salvataggio del codice compilato
firmware_tool-build-DONE = Compilazione completata
@@ -1589,3 +1491,6 @@ error_collection_modal-description_v2 =
Puoi modificare questa impostazione in un secondo momento nella sezione Comportamento delle impostazioni.
error_collection_modal-confirm = Acconsento
error_collection_modal-cancel = Non acconsento
## Tracking checklist section

View File

@@ -26,6 +26,9 @@ tips-tap_setup = 追跡装置をゆっくり2回軽くタップして選択す
tips-turn_on_tracker = SlimeVRの公式トラッカーを使っていますかトラッカーをPCに接続した後は<b><em>必ず電源を入れて</em></b>ください!
tips-failed_webgl = WebGLの初期化に失敗しました。
## Units
## Body parts
body_part-NONE = 未設定
@@ -155,7 +158,7 @@ widget-overlay-is_mirrored_label = オーバーレイをミラーとして表示
widget-drift_compensation-clear = ドリフト補正をクリアする
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = リセットマウンティングをクリア
@@ -394,8 +397,6 @@ 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 = Force arms from HMD
@@ -446,6 +447,9 @@ settings-general-gesture_control-mountingResetTaps = タップによるマウン
## Appearance settings
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 = 使用したいデフォルトの言語を変更する
@@ -469,9 +473,6 @@ settings-general-interface-connected_trackers_warning = 接続されたトラッ
## Behavior settings
settings-general-interface-dev_mode = 開発者モード
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
settings-general-interface-dev_mode-label = 開発者モード
settings-general-interface-use_tray-label = システムトレイに最小化する
## Serial settings
@@ -486,7 +487,6 @@ settings-serial-reboot = リブート
settings-serial-factory_reset = ファクトリーリセット
settings-serial-factory_reset-warning-ok = 自分が何しているかを知っています。
settings-serial-factory_reset-warning-cancel = キャンセル
settings-serial-get_infos = 情報取得
settings-serial-serial_select = シリアルポートを選択
settings-serial-auto_dropdown_item = 自動
@@ -554,9 +554,18 @@ settings-osc-vmc-network-address = ネットワークアドレス
settings-osc-vmc-network-address-placeholder = IPV4アドレス
settings-osc-vmc-vrm = VRMモデル
## Common OSC settings
## Advanced settings
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = 設定をスキップする
@@ -568,11 +577,6 @@ onboarding-setup_warning-cancel = セットアップを続行する
## Wi-Fi setup
onboarding-wifi_creds-back = 戻る
onboarding-wifi_creds = Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
トラッカーはこれらの認証情報を使ってWi-Fiに接続します。
現在接続している認証情報を使用してください。
onboarding-wifi_creds-skip = Wi-Fi設定をスキップする
onboarding-wifi_creds-submit = 実行!
onboarding-wifi_creds-ssid =
@@ -593,13 +597,6 @@ onboarding-reset_tutorial-skip = ステップをスキップする
onboarding-home = SlimeVRへようこそ
onboarding-home-start = セットアップ開始!
## Enter VR part of setup
onboarding-enter_vr-back = トラッカー割り当てに戻る
onboarding-enter_vr-title = VRに入る時間だ
onboarding-enter_vr-description = トラッカーを全部つけて、VRに突入せよ
onboarding-enter_vr-ready = 準備完了
## Setup done
onboarding-done-title = 準備完了です!
@@ -625,10 +622,10 @@ onboarding-connect_tracker-connection_status-done = サーバーに接続され
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
[0] No trackers connected
[one] 1 tracker connected
*[other] { $amount } trackers connected
}
onboarding-connect_tracker-next = すべてのトラッカーを接続しました
## Tracker calibration tutorial
@@ -653,10 +650,10 @@ onboarding-assign_trackers-description = どのトラッカーをどこに置く
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
{ $trackers ->
[one] { $assigned } of 1 tracker assigned
*[other] { $assigned } of { $trackers } trackers assigned
}
onboarding-assign_trackers-advanced = 高度な割り当て場所の表示
onboarding-assign_trackers-next = すべてのトラッカーを割り当てました
@@ -690,18 +687,13 @@ onboarding-automatic_mounting-mounting_reset-title = マウントリセット
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 足を曲げ、上体を前に倒し、腕を曲げた状態で、スキーのポーズでしゃがむ。
onboarding-automatic_mounting-mounting_reset-step-1 = 2. リセットマウンティングボタンを押し、3秒待つと装着方向がリセットされます。
onboarding-automatic_mounting-preparation-title = 準備
onboarding-automatic_mounting-preparation-step-0 = 1. 両手を横に広げて直立します。
onboarding-automatic_mounting-preparation-step-1 = 2. リセットボタンを押し、3秒待つとリセットされます。
onboarding-automatic_mounting-put_trackers_on-title = トラッカーを装着する
onboarding-automatic_mounting-put_trackers_on-description = マウントの方向を較正するために、先ほど割り当てたトラッカーを使用します。右の図でどれがどれだかわかると思います。
onboarding-automatic_mounting-put_trackers_on-next = すべてのトラッカーを装着しました
## Tracker manual proportions setupa
onboarding-manual_proportions-back = チュートリアルをリセットする
onboarding-manual_proportions-title = マニュアルボディプロポーション
onboarding-manual_proportions-precision = 精度を調整する
onboarding-manual_proportions-auto = 自動キャリブレーション
## Tracker automatic proportions setup
@@ -740,10 +732,10 @@ onboarding-automatic_proportions-done-title = 体を測定して保存
onboarding-automatic_proportions-done-description = ボディプロポーションのキャリブレーションが完了しました!
onboarding-automatic_proportions-error_modal-confirm = 了解!
## Tracker scaled proportions setup
## User height calibration
## Tracker scaled proportions reset
## Stay Aligned setup
## Home
@@ -798,3 +790,6 @@ unknown_device-modal-forget = 無視する
## Error collection consent modal
## Tracking checklist section

View File

@@ -31,6 +31,9 @@ tips-tap_setup = 목록에서 트래커를 선택하는 대신 트래커를 천
tips-turn_on_tracker = 공식 SlimeVR 트래커를 사용 중이신가요? 트래커를 <b><em>PC에 연결</em></b>하고 <b><em>전원을 키셔야</em></b> 해요.
tips-failed_webgl = WebGL 초기화에 실패했습니다.
## Units
## Body parts
body_part-NONE = 할당되지 않음
@@ -159,7 +162,7 @@ widget-overlay-is_mirrored_label = 오버레이 반전
widget-drift_compensation-clear = 틀어짐 보정 초기화
## Widget: Clear Reset Mounting
## Widget: Clear Mounting calibration
widget-clear_mounting = 착용 방향 정렬 초기화
@@ -275,9 +278,7 @@ tracker-settings-name_section-label = 트래커 이름
tracker-settings-forget = 트래커 삭제
tracker-settings-forget-description = SlimeVR 서버에서 트래커를 제거하고 서버를 다시 시작할 때까지 자동으로 연결하지 않아요. 트래커의 설정은 지워지지 않아요.
tracker-settings-forget-label = 트래커 삭제
tracker-settings-update-unavailable = 업데이트할 수 없음 (DIY)
tracker-settings-update-up_to_date = 최신 버전
tracker-settings-update-available = { $versionName } 사용 가능
tracker-settings-update = 지금 업데이트
tracker-settings-update-title = 펌웨어 버전
@@ -383,7 +384,7 @@ settings-general-steamvr-trackers-tracker_toggling = 자동 트래커 할당
settings-general-steamvr-trackers-tracker_toggling-description = 지정한 트래커 할당 상태에 따라 SteamVR 트래커를 자동으로 켜고 끄기
settings-general-steamvr-trackers-tracker_toggling-label = 자동 트래커 할당
settings-general-steamvr-trackers-hands-warning =
<b>경고:</b> 핸드 트래커를 사용하면 VR 컨트롤러가 작동하지 않아요.
<b>경고:</b> 핸드 트래커를 사용하면 VR 컨트롤러가 작동하지 않아요.
그래도 사용할까요?
settings-general-steamvr-trackers-hands-warning-cancel = 취소
settings-general-steamvr-trackers-hands-warning-done = 확인
@@ -414,7 +415,7 @@ settings-general-tracker_mechanics-drift_compensation-enabled-label = 틀어짐
settings-general-tracker_mechanics-drift_compensation-prediction = 틀어짐 보정 예측
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-prediction-description =
점점 심하게 틀어지는 트래커의 틀어짐 방향을 예측해요.
점점 심하게 틀어지는 트래커의 틀어짐 방향을 예측해요.
틀어짐 보정을 사용해도 트래커가 Yaw 축에서 계속 틀어지면 이 옵션을 켜세요.
settings-general-tracker_mechanics-drift_compensation-prediction-label = 예측해서 틀어짐 보정하기
settings-general-tracker_mechanics-drift_compensation_warning =
@@ -428,7 +429,7 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = 보정 강
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 보정에 사용할 최근 정렬 횟수
settings-general-tracker_mechanics-save_mounting_reset = 자동 착용 방향 정렬 보정값 저장
settings-general-tracker_mechanics-save_mounting_reset-description =
트래커의 착용 방향 정렬 보정값을 저장합니다. 트래커들의 위치가 고정된
트래커의 착용 방향 정렬 보정값을 저장합니다. 트래커들의 위치가 고정된
모션 캡처 슈트 같은 것을 사용할 때 유용해요. <b>일반 사용자들에게는 권장되지 않아요!</b>
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = 착용 방향 정렬 저장
settings-general-tracker_mechanics-use_mag_on_all_trackers = 자력계를 지원하는 모든 IMU 트래커에서 자력계 활성화
@@ -457,8 +458,6 @@ 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-enforce_joint_constraints = 골격 한계
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = 상수 강제 적용
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = 관절의 회전 각도를 제한합니다
@@ -526,6 +525,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = 몸
## Appearance settings
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-show-navbar-onboarding = 내비게이션 바에 "{ navbar-onboarding }" 표시
settings-general-interface-show-navbar-onboarding-description = 이 설정은 내비게이션 바에 "{ navbar-onboarding }" 버튼을 표시할 지 결정해요.
@@ -561,9 +563,6 @@ settings-general-interface-connected_trackers_warning-label = 종료 시 작동
## Behavior settings
settings-general-interface-dev_mode = 개발자 모드
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
settings-general-interface-dev_mode-label = 개발자 모드
settings-general-interface-use_tray = 작업 표시줄로 최소화
settings-general-interface-use_tray-description = SlimeVR 서버를 닫지 않고 창만 닫을 수 있게 하여 사용 시 항상 GUI를 띄워 놓을 필요가 없게 해요.
settings-general-interface-use_tray-label = 작업 표시줄로 최소화
@@ -595,7 +594,6 @@ settings-serial-factory_reset-warning =
계속하면 Wi-Fi와 캘리브레이션 정보도 <b>모두 삭제됩니다!</b>
settings-serial-factory_reset-warning-ok = 네! 알고 있어요.
settings-serial-factory_reset-warning-cancel = 취소
settings-serial-get_infos = 정보 가져오기
settings-serial-serial_select = 시리얼 포트 선택
settings-serial-auto_dropdown_item = 자동
settings-serial-get_wifi_scan = WiFi 검색
@@ -696,6 +694,9 @@ settings-osc-vmc-mirror_tracking = 움직임 좌우 반전
settings-osc-vmc-mirror_tracking-description = 움직임을 수평 방향으로 반전시킵니다.
settings-osc-vmc-mirror_tracking-label = 움직임 좌우 반전
## Common OSC settings
## Advanced settings
settings-utils-advanced = 고급
@@ -721,6 +722,12 @@ settings-utils-advanced-open_data-label = 폴더 열기
settings-utils-advanced-open_logs = 로그 폴더
settings-utils-advanced-open_logs-label = 폴더 열기
## Home Screen
## Tracking Checlist
## Setup/onboarding menu
onboarding-skip = 설정 건너뛰기
@@ -736,11 +743,6 @@ onboarding-setup_warning-cancel = 설정 계속하기
## Wi-Fi setup
onboarding-wifi_creds-back = 처음으로 돌아가기
onboarding-wifi_creds = Wi-Fi 자격 증명을 입력하세요
# This cares about multilines
onboarding-wifi_creds-description =
트래커는 이 자격 증명을 사용하여 무선으로 연결해요
지금 연결되어 있는 자격 증명을 사용해주세요
onboarding-wifi_creds-skip = Wi-Fi 설정 건너뛰기
onboarding-wifi_creds-submit = 저장!
onboarding-wifi_creds-ssid =
@@ -781,13 +783,6 @@ onboarding-reset_tutorial-2 =
onboarding-home = SlimeVR에 어서오세요!
onboarding-home-start = 설정하러 가보죠!
## Enter VR part of setup
onboarding-enter_vr-back = 트래커 위치 지정으로 돌아가기
onboarding-enter_vr-title = VR에 들어갈 시간이에요!
onboarding-enter_vr-description = 모든 트래커를 착용하고 VR에 입장하세요!
onboarding-enter_vr-ready = 준비됐어요!
## Setup done
onboarding-done-title = 모든 설정을 마쳤어요!
@@ -827,7 +822,6 @@ onboarding-connect_tracker-next = 트래커를 모두 연결했어요
onboarding-calibration_tutorial = IMU 보정 튜토리얼
onboarding-calibration_tutorial-subtitle = 트래커 틀어짐을 줄이는 데 도움이 될 거예요!
onboarding-calibration_tutorial-description = 매번 트래커의 전원을 켤 때마다 평평한 바닥에 트래커를 두고 잠시 기다려서 트래커를 보정해야 해요. 이번엔 "{ onboarding-calibration_tutorial-calibrate }"를 눌러서 직접 보정해 보죠. <b>(트래커를 움직이지 마세요!)</b>
onboarding-calibration_tutorial-calibrate = 트래커들을 모두 올려뒀어요
onboarding-calibration_tutorial-status-waiting = 대기 중
onboarding-calibration_tutorial-status-calibrating = 보정 중
@@ -985,25 +979,17 @@ onboarding-automatic_mounting-mounting_reset-title = 착용 방향 정렬
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 팔, 다리를 구부린 다음 상체를 앞으로 기울여서 마치 스키를 타는 것처럼 몸을 굽혀 낮추세요.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. "착용 방향 재설정" 버튼을 누르고 착용 방향이 재설정될 때 까지 3초간 기다려주세요.
onboarding-automatic_mounting-preparation-title = 준비
onboarding-automatic_mounting-preparation-step-0 = 1. 팔을 몸에 붙이고 똑바로 서 주세요
onboarding-automatic_mounting-preparation-step-1 = 2. "전체 정렬" 버튼을 누르고 트래커가 정렬될 때까지 3초간 기다려주세요.
onboarding-automatic_mounting-put_trackers_on-title = 트래커를 착용해주세요
onboarding-automatic_mounting-put_trackers_on-description = 트래커의 착용 방향을 보정하기 위해 방금 할당한 트래커들을 사용할 거예요. 모든 트래커를 착용했다면 오른쪽 그림에서 각각의 트래커가 어떤 위치에 있는지 확인할 수 있어요.
onboarding-automatic_mounting-put_trackers_on-next = 모든 트래커를 착용했어요
## Tracker manual proportions setupa
onboarding-manual_proportions-back = 정렬 튜토리얼로 돌아가기
onboarding-manual_proportions-title = 수동 신체 비율 설정
onboarding-manual_proportions-precision = 자세히 조절하기
onboarding-manual_proportions-auto = 자동 신체 비율 설정
onboarding-manual_proportions-ratio = 비율 그룹으로 조절하기
onboarding-manual_proportions-fine_tuning_button = 신체 비율을 자동으로 조정
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = 신체 비율 자동 조정 기능을 이용하려면 VR 헤드셋을 연결해 주세요
onboarding-manual_proportions-export = 신체 비율 내보내기
onboarding-manual_proportions-import = 신체 비율 가져오기
onboarding-manual_proportions-import-success = 가져오기 완료
onboarding-manual_proportions-import-failed = 가져오기 실패
onboarding-manual_proportions-file_type = 신체 비율 파일
## Tracker automatic proportions setup
@@ -1060,7 +1046,7 @@ onboarding-automatic_proportions-recording-description-p0 = 기록하는 중...
onboarding-automatic_proportions-recording-description-p1 = 아래에 표시된 동작을 따라 하세요
# Each line of text is a different list item
onboarding-automatic_proportions-recording-steps =
자리에서 똑바로 일어나서, 머리를 원을 그리듯이 움직이세요.
자리에서 똑바로 일어나서, 머리를 원을 그리듯이 움직이세요.
등을 앞으로 구부리고 스쿼트를 하듯이 몸을 낮추세요. 그대로 왼쪽을 바라본 다음 오른쪽을 바라보세요.
상체를 왼쪽(시계 반대 방향)으로 비틀어서 바닥을 향해 손을 뻗으세요.
상체를 오른쪽(시계 방향)으로 비틀어서 바닥을 향해 손을 뻗으세요.
@@ -1090,23 +1076,11 @@ onboarding-automatic_proportions-smol_warning =
<b>측정을 다시 수행하고 측정값들이 올바른지 확인해 주세요.</b>
onboarding-automatic_proportions-smol_warning-cancel = 돌아가기
## Tracker scaled proportions setup
## User height calibration
onboarding-scaled_proportions-title = 키를 사용하여 추산한 신체 비율
onboarding-scaled_proportions-description = SlimeVR 트래커들이 작동하기 위해서는 사용자의 뼈 길이를 알아야 합니다. 이 옵션은 뼈 길이를 측정된 키에 비례하는 평균치로 설정합니다.
onboarding-scaled_proportions-manual_height-title = 키 설정하기
onboarding-scaled_proportions-manual_height-description-v2 = 설정된 키는 신체 비율의 기준치로 사용됩니다.
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR이 SlimeVR에 연결되어 있지 않으므로 헤드셋을 이용해 값을 측정할 수 있어요. <b>위험을 감수하고 계속 진행하거나, 사용 설명서 및 도움말을 참조하세요!</b>
onboarding-scaled_proportions-manual_height-height-v2 = 사용자의 키:
onboarding-scaled_proportions-manual_height-estimated_height = 사용자의 추산된 헤드셋 높이:
onboarding-scaled_proportions-manual_height-next_step = 계속하고 저장하기
## Tracker scaled proportions reset
## Stay Aligned setup
onboarding-scaled_proportions-reset_proportion-title = 신체 비율 초기화
onboarding-scaled_proportions-reset_proportion-description = 키에 따라 신체 비율을 설정하려면, 현재 설정된 신체 비율을 모두 초기화해야 합니다. 이 작업은 기존에 설정된 신체 비율을 초기화하고 신체 비율을 기본 설정으로 되돌립니다.
onboarding-scaled_proportions-done-title = 신체 비율 설정됨
onboarding-scaled_proportions-done-description = 이제 사용자의 키에 비례한 신체 비율이 사용됩니다.
## Home
@@ -1144,74 +1118,11 @@ firmware_tool = DIY 펌웨어 도구
firmware_tool-description = DIY 트래커를 설정하고 펌웨어를 쓸 수 있습니다
firmware_tool-not_available = 앗, 지금은 펌웨어 툴을 사용할 수 없어요. 나중에 다시 오세요!
firmware_tool-not_compatible = 이 서버 버전은 펌웨어 도구를 지원하지 않습니다. 서버를 업데이트해 주세요!
firmware_tool-board_step = 보드 선택
firmware_tool-board_step-description = 아래의 보드 중 하나를 선택해 주세요.
firmware_tool-board_pins_step = 핀 확인
firmware_tool-board_pins_step-description =
설정된 핀이 정확한지 다시 확인해 주세요.
SlimeVR 사용 설명서를 따랐다면 기본값으로도 문제 없을 거에요
firmware_tool-board_pins_step-enable_led = LED 켜기
firmware_tool-board_pins_step-led_pin =
.label = LED 핀
.placeholder = LED가 연결된 핀 번호를 입력해 주세요
firmware_tool-board_pins_step-battery_type = 배터리 유형 선택
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = 외부 배터리
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = 내부 배터리
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = 내장 MCP3021
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
firmware_tool-board_pins_step-battery_sensor_pin =
.label = 배터리 센서 핀
.placeholder = 배터리 센서의 핀 번호를 입력해 주세요
firmware_tool-board_pins_step-battery_resistor =
.label = 배터리 저항 (옴)
.placeholder = 배터리 저항의 값을 입력해 주세요
firmware_tool-board_pins_step-battery_shield_resistor-0 =
.label = 배터리 쉴드 R1(옴)
.placeholder = 배터리 쉴드 R1 저항값을 입력해 주세요
firmware_tool-board_pins_step-battery_shield_resistor-1 =
.label = 배터리 쉴드 R2(옴)
.placeholder = 배터리 쉴드 R2 저항값을 입력해 주세요
firmware_tool-add_imus_step = IMU 설정
firmware_tool-add_imus_step-description =
트래커가 사용하는 IMU들을 추가해 주세요
SlimeVR 사용 설명서를 따랐다면 기본값으로도 문제 없을 거에요
firmware_tool-add_imus_step-imu_type-label = IMU 유형
firmware_tool-add_imus_step-imu_type-placeholder = IMU 유형을 선택해 주세요
firmware_tool-add_imus_step-imu_rotation =
.label = IMU 회전각 (도)
.placeholder = IMU의 회전각
firmware_tool-add_imus_step-scl_pin =
.label = SCL 핀
.placeholder = SCL 핀의 번호
firmware_tool-add_imus_step-sda_pin =
.label = SDA 핀
.placeholder = SDA 핀의 번호
firmware_tool-add_imus_step-int_pin =
.label = INT 핀
.placeholder = INT 핀의 번호
firmware_tool-add_imus_step-optional_tracker =
.label = 추가 트래커
firmware_tool-add_imus_step-show_less = 간단하게
firmware_tool-add_imus_step-show_more = 자세하게
firmware_tool-add_imus_step-add_more = 더 많은 IMU 추가
firmware_tool-select_firmware_step = 펌웨어 버전 선택
firmware_tool-select_firmware_step-description = 사용하고자 하는 펌웨어 버전을 선택해 주세요
firmware_tool-select_firmware_step-show-third-party =
.label = 제 3자 펌웨어 표시하기
firmware_tool-flash_method_step = 펌웨어 플래시 방식
firmware_tool-flash_method_step-description = 펌웨어를 트래커에 플래시할 방법을 선택해 주세요
firmware_tool-flash_method_step-ota =
.label = OTA
.description = Wi-Fi를 이용하여 무선으로 트래커의 펌웨어를 업데이트합니다. 이미 설정을 완료한 트래커들에만 사용할 수 있어요.
firmware_tool-flash_method_step-serial =
.label = Serial
.description = USB 케이블을 이용하여 트래커를 업데이트합니다.
firmware_tool-flashbtn_step = BOOT 버튼 누르기
firmware_tool-flashbtn_step-description = 다음 단계로 진행하기 전 몇 가지 작업을 해야 해요
firmware_tool-flashbtn_step-board_SLIMEVR = 트래커를 끄고, 케이스를 제거하고 (만약 있다면), 이 컴퓨터에 USB 케이블을 연결한 후 SlimeVR 보드 버전에 따라 해당하는 작업을 수행해 주세요:
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = 보드 상단 가장자리에 위치한 두 번째 직사각형 FLASH 패드와 MCU의 금속 덮개를 단락시키며 트래커 전원을 켜기
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = 보드 상단에 위치한 원형 FLASH 패드와 MCU의 금속 덮개를 단락시키며 트래커 전원을 켜기
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = 보드 상단의 FLASH 버튼을 누른 채로 트래커 전원을 켜기
firmware_tool-flashbtn_step-board_OTHER =
펌웨어를 쓰기 전에 트래커를 부트로더 모드에 진입시켜야 해요.
대부분의 경우 이는 펌웨어 쓰기 작업이 시작되기 전 보드에 있는 BOOT 버튼을 누르면 가능합니다.
@@ -1227,16 +1138,12 @@ firmware_tool-build_step = 빌드 중
firmware_tool-build_step-description = 펌웨어를 빌드하는 중입니다. 잠시만 기다려 주세요
firmware_tool-flashing_step = 펌웨어 쓰는 중
firmware_tool-flashing_step-description = 트래커에 펌웨어를 쓰는 중입니다. 화면의 지시를 따라 주세요
firmware_tool-flashing_step-warning = 별도의 지시가 없는 경우, 트래커를 선에서 분리하거나 업로드 중 전원을 끄지 말아 주세요. 트래커를 사용하지 못 하게 될 수도 있습니다
firmware_tool-flashing_step-flash_more = 더 많은 트래커에 펌웨어 쓰기
firmware_tool-flashing_step-exit = 나가기
## firmware tool build status
firmware_tool-build-CREATING_BUILD_FOLDER = 빌드 폴더 만드는 중
firmware_tool-build-DOWNLOADING_FIRMWARE = 펌웨어 다운로드 중
firmware_tool-build-EXTRACTING_FIRMWARE = 펌웨어 추출 중
firmware_tool-build-SETTING_UP_DEFINES = 매크로 상수 정의하는 중
firmware_tool-build-BUILDING = 펌웨어 빌드 중
firmware_tool-build-SAVING = 빌드 저장 중
firmware_tool-build-DONE = 빌드 완료
@@ -1245,7 +1152,6 @@ firmware_tool-build-ERROR = 펌웨어를 빌드할 수 없음
## Firmware update status
firmware_update-status-DOWNLOADING = 펌웨어 다운로드 중
firmware_update-status-NEED_MANUAL_REBOOT = 트래커의 전원을 껐다 켜 주세요
firmware_update-status-AUTHENTICATING = MCU와 연결 시도 중
firmware_update-status-UPLOADING = 펌웨어 업로드 중
firmware_update-status-SYNCING_WITH_MCU = MCU와 동기화 중
@@ -1305,3 +1211,6 @@ unknown_device-modal-forget = 무시할게요
error_collection_modal-title = 오류를 수집해도 될까요?
error_collection_modal-confirm = 동의해요
## Tracking checklist section

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