Compare commits
299 Commits
v18.0.0-rc
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
181c6599b7 | ||
|
|
fb77d3cf8a | ||
|
|
1a4b19a5e1 | ||
|
|
a9f553729e | ||
|
|
ed96742680 | ||
|
|
5e7816d72d | ||
|
|
abab38e422 | ||
|
|
7835b17379 | ||
|
|
30612a866b | ||
|
|
bba574ce86 | ||
|
|
6d3d725b6c | ||
|
|
948bc06542 | ||
|
|
8f4ee3268d | ||
|
|
8f97bd997b | ||
|
|
18f6c9c24f | ||
|
|
c7bdd041f2 | ||
|
|
f75a011fb3 | ||
|
|
555764914d | ||
|
|
e4be98c7e7 | ||
|
|
701ce9dc0a | ||
|
|
3f950cc11d | ||
|
|
d8ce34a962 | ||
|
|
ef9d5e7862 | ||
|
|
e3f06eff55 | ||
|
|
7a062b7d7b | ||
|
|
121f3297ae | ||
|
|
9951f00979 | ||
|
|
d8bb744ce4 | ||
|
|
4db342b4ae | ||
|
|
e9f96e6d21 | ||
|
|
56c6ebdadf | ||
|
|
4f941a5892 | ||
|
|
bf69046efe | ||
|
|
cdcdb1b443 | ||
|
|
f875e9df4d | ||
|
|
12dd408f0b | ||
|
|
5e53bae9dc | ||
|
|
b19e190004 | ||
|
|
06c8bdc81a | ||
|
|
62338250e8 | ||
|
|
1ff79ebb13 | ||
|
|
2f9678d882 | ||
|
|
94d70cbe55 | ||
|
|
f5c26f97aa | ||
|
|
b367c7d3d6 | ||
|
|
c9cae35946 | ||
|
|
a895b0b583 | ||
|
|
5321c25bb2 | ||
|
|
b39691b879 | ||
|
|
74e7f02668 | ||
|
|
09e1510298 | ||
|
|
0d95a731e3 | ||
|
|
7d5706520b | ||
|
|
e887b3153d | ||
|
|
a7aa897fad | ||
|
|
29e2fd863b | ||
|
|
330cac26ec | ||
|
|
ca9195ba97 | ||
|
|
908270ffff | ||
|
|
942fbcf6f6 | ||
|
|
dbc6bae898 | ||
|
|
8482802375 | ||
|
|
fdd3614204 | ||
|
|
706a2780d9 | ||
|
|
97a90076a4 | ||
|
|
ef85b8f3e1 | ||
|
|
83700a1d1a | ||
|
|
36a363f8ed | ||
|
|
1c8381337a | ||
|
|
f698b27be5 | ||
|
|
f2767cf3bc | ||
|
|
fe873729b6 | ||
|
|
031b35eb06 | ||
|
|
bcc604cf63 | ||
|
|
adf01eed16 | ||
|
|
bd1750f252 | ||
|
|
49adf0ee84 | ||
|
|
04a2fa72a7 | ||
|
|
064c41d419 | ||
|
|
7c92023af7 | ||
|
|
ac01b75342 | ||
|
|
95a7801a50 | ||
|
|
db1ec5d024 | ||
|
|
a96cd8a38f | ||
|
|
45d5789685 | ||
|
|
4b08123a61 | ||
|
|
bfc99ab02c | ||
|
|
6eb8a18430 | ||
|
|
489b8e6549 | ||
|
|
7bb2ecfff1 | ||
|
|
59b4b34840 | ||
|
|
9597888902 | ||
|
|
dbfcc8ba0a | ||
|
|
fd8e9fba83 | ||
|
|
f65d1828fe | ||
|
|
c32601809b | ||
|
|
fdf86a1e56 | ||
|
|
71908523f9 | ||
|
|
2b7d678321 | ||
|
|
5d64fa8369 | ||
|
|
fe6bb4534c | ||
|
|
95daec6814 | ||
|
|
43b104fcc3 | ||
|
|
a33d6b1c1a | ||
|
|
cf67b9306b | ||
|
|
238c86ee98 | ||
|
|
7f56209ca9 | ||
|
|
a3e50cdc02 | ||
|
|
b7c43d8373 | ||
|
|
cadc13f2e0 | ||
|
|
7965d2e081 | ||
|
|
b829a20169 | ||
|
|
653b8b4014 | ||
|
|
a891203204 | ||
|
|
0236a05f26 | ||
|
|
28deb357da | ||
|
|
4d93f87a01 | ||
|
|
88adfce242 | ||
|
|
3d02795dbc | ||
|
|
7ff50f78eb | ||
|
|
0e3aaf105c | ||
|
|
f638540886 | ||
|
|
343d69d690 | ||
|
|
e2d7d354c6 | ||
|
|
cc6f297b92 | ||
|
|
2add43e71a | ||
|
|
0a493ac345 | ||
|
|
17bb2703d1 | ||
|
|
f0981bf709 | ||
|
|
99de554c18 | ||
|
|
f95a4d56d7 | ||
|
|
1df3c9d322 | ||
|
|
e0838cce6c | ||
|
|
e25d3201c2 | ||
|
|
5d14f14139 | ||
|
|
09e81f5ace | ||
|
|
8f57ef2de4 | ||
|
|
ea242960b3 | ||
|
|
35ac14a7de | ||
|
|
690a8b5c6e | ||
|
|
255b8b2865 | ||
|
|
e27ec63985 | ||
|
|
9f8be6551c | ||
|
|
f09cd687c7 | ||
|
|
686499f8dd | ||
|
|
a3bcc61892 | ||
|
|
faf70c9a39 | ||
|
|
2aa8d3a056 | ||
|
|
23df46ca33 | ||
|
|
8407f52777 | ||
|
|
b44dcaa9c2 | ||
|
|
ff0d823aff | ||
|
|
2e8bfa5373 | ||
|
|
87940ddd03 | ||
|
|
6208979ce9 | ||
|
|
9a27fb1320 | ||
|
|
53129328d0 | ||
|
|
2d79c5a0e9 | ||
|
|
74f5a92ce1 | ||
|
|
146930279c | ||
|
|
0c33579858 | ||
|
|
c9783d097b | ||
|
|
d3eafb8d06 | ||
|
|
09d44b51d6 | ||
|
|
cf357e71f5 | ||
|
|
122efacc52 | ||
|
|
7f536528d0 | ||
|
|
3982249ebf | ||
|
|
388bea2e72 | ||
|
|
921a760817 | ||
|
|
55bcec4dda | ||
|
|
bb08e8dc6a | ||
|
|
a82f950eb6 | ||
|
|
e2dbaab8ba | ||
|
|
3611bb5cc7 | ||
|
|
f01f599526 | ||
|
|
6847526ce8 | ||
|
|
c5f28a6a01 | ||
|
|
86d7d5fdc6 | ||
|
|
781f4d489a | ||
|
|
5a42426048 | ||
|
|
44643f2cc6 | ||
|
|
d902515f4f | ||
|
|
f9df08aefd | ||
|
|
28b18e0d42 | ||
|
|
247c063791 | ||
|
|
ab248287cc | ||
|
|
9a26fc98b8 | ||
|
|
16a2ac8474 | ||
|
|
c4acf4cc41 | ||
|
|
4b0a2d27d0 | ||
|
|
2c6708bfe7 | ||
|
|
2880623cce | ||
|
|
17400ca337 | ||
|
|
3276f6db7a | ||
|
|
db59537adc | ||
|
|
4f1fd82923 | ||
|
|
f6ccb5970f | ||
|
|
c937b91267 | ||
|
|
2d1f32b950 | ||
|
|
8acba98bcc | ||
|
|
d7ba1b8335 | ||
|
|
d20e9bfd94 | ||
|
|
3d54a86bd8 | ||
|
|
c9883f5eb4 | ||
|
|
8bd36fac25 | ||
|
|
ab4d507d9f | ||
|
|
9efb985260 | ||
|
|
2c2c227187 | ||
|
|
63cca6756e | ||
|
|
b0d7fefa5e | ||
|
|
35a5cb47d9 | ||
|
|
dfc4383271 | ||
|
|
185431a733 | ||
|
|
5b68a01186 | ||
|
|
2c4dd4085f | ||
|
|
4d3ff0e9c9 | ||
|
|
ee6182bb23 | ||
|
|
9576d6e034 | ||
|
|
227ddc87d2 | ||
|
|
b3b7730b2c | ||
|
|
075a155f13 | ||
|
|
79a3b66e43 | ||
|
|
fe58968718 | ||
|
|
276e73e724 | ||
|
|
01dd916498 | ||
|
|
6ebf9792ac | ||
|
|
02f8195b5b | ||
|
|
7b4946f41d | ||
|
|
5f4c90128f | ||
|
|
6a2a30e319 | ||
|
|
8a5f27e8d9 | ||
|
|
199bec40e1 | ||
|
|
9d32220275 | ||
|
|
8b689d6df8 | ||
|
|
490005ae69 | ||
|
|
575778ab85 | ||
|
|
85ee162d58 | ||
|
|
712fa6a1ad | ||
|
|
819481adcd | ||
|
|
bc26227443 | ||
|
|
ac43ca947e | ||
|
|
4451d8aaf4 | ||
|
|
79a9e15c5a | ||
|
|
5403cdb28e | ||
|
|
272f37374e | ||
|
|
4147578dc8 | ||
|
|
65bd03c272 | ||
|
|
4835e89c5f | ||
|
|
7ea4516545 | ||
|
|
2f208fe08a | ||
|
|
db584baed3 | ||
|
|
1d41627fb1 | ||
|
|
63b8d4c8cb | ||
|
|
8e60ecd070 | ||
|
|
6ee173791e | ||
|
|
b9d72c0a40 | ||
|
|
36b2e01d88 | ||
|
|
569315f6dc | ||
|
|
a4fab8afed | ||
|
|
d1e3c35693 | ||
|
|
d12f3c4854 | ||
|
|
e32903f36f | ||
|
|
ab126c336c | ||
|
|
79a6d62506 | ||
|
|
08f691b5b6 | ||
|
|
b12632fd1a | ||
|
|
54f3ab4634 | ||
|
|
415168d040 | ||
|
|
6be313144e | ||
|
|
98e571c94b | ||
|
|
1561c464e9 | ||
|
|
4992d599aa | ||
|
|
90b3dfe0db | ||
|
|
ab87c5b1e8 | ||
|
|
3ee6c065cf | ||
|
|
d1249d2b44 | ||
|
|
94a70d3b2e | ||
|
|
b67162eb43 | ||
|
|
4390d35e00 | ||
|
|
19126c0d4d | ||
|
|
0cf0f6cb49 | ||
|
|
d3d3838761 | ||
|
|
4984026f6b | ||
|
|
bb7e825c41 | ||
|
|
bc96ddd555 | ||
|
|
ec85284f78 | ||
|
|
867287e740 | ||
|
|
2e93187021 | ||
|
|
2a19d67974 | ||
|
|
176f7e4271 | ||
|
|
3a6c60d912 | ||
|
|
066c28adb4 | ||
|
|
364ed3209c | ||
|
|
dab6ec28af | ||
|
|
b221250ba7 | ||
|
|
215635634f | ||
|
|
184133a613 | ||
|
|
32248c75cf |
1
.envrc
@@ -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
|
||||
|
||||
5
.github/CODEOWNERS
vendored
@@ -10,15 +10,14 @@
|
||||
/pnpm-workspace.yaml @loucass003
|
||||
|
||||
# loucass003 and Erimel responsible for i18n
|
||||
/gui/public/i18n/ @loucass003 @Erimelowo
|
||||
/gui/public/i18n/ @loucass003 @Erimelowo @ImSapphire
|
||||
/gui/src/i18n/ @loucass003 @Erimelowo
|
||||
/l10n.toml @loucass003 @Erimelowo
|
||||
|
||||
/gui/src/components/settings/ @Erimelowo @loucass003
|
||||
|
||||
# Rust part of the GUI
|
||||
/gui/src-tauri/ @loucass003
|
||||
/Cargo.lock @loucass003
|
||||
/gui/electron/ @loucass003
|
||||
|
||||
# Some server code~
|
||||
/server/ @ButterscotchV @Eirenliel @Erimelowo
|
||||
|
||||
129
.github/workflows/build-gui.yml
vendored
@@ -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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v6
|
||||
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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- if: startsWith(matrix.os, 'ubuntu')
|
||||
name: Set up Linux dependencies
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
|
||||
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@v6
|
||||
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@v5
|
||||
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@v5
|
||||
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@v5
|
||||
with:
|
||||
# Artifact name
|
||||
name: SlimeVR-GUI-macOS
|
||||
# A file, directory or wildcard pattern that describes what to upload
|
||||
path: target/release/slimevr
|
||||
291
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,291 @@
|
||||
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: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
- 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: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
- 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: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
- 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: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
- 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: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
- 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
|
||||
|
||||
- name: Build Google Play release bundle
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
run: ./gradlew :server:android:bundleRelease
|
||||
env:
|
||||
ANDROID_STORE_FILE: ${{ secrets.ANDROID_GPLAY_STORE_FILE }}
|
||||
ANDROID_STORE_PASSWD: ${{ secrets.ANDROID_GPLAY_STORE_PASSWD }}
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_GPLAY_KEY_ALIAS }}
|
||||
ANDROID_KEY_PASSWD: ${{ secrets.ANDROID_GPLAY_KEY_PASSWD }}
|
||||
|
||||
- name: Upload the Google Play artifact
|
||||
uses: actions/upload-artifact@v6
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
# Artifact name
|
||||
name: 'SlimeVR-Android-GPDev' # optional, default is artifact
|
||||
# A file, directory or wildcard pattern that describes what to upload
|
||||
path: server/android/build/outputs/bundle/release/*
|
||||
|
||||
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
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
run: |
|
||||
npx @slimevr/update-manifest-generator@latest
|
||||
|
||||
- uses: actions/upload-artifact@v5
|
||||
- uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: "update-manifest.json"
|
||||
path: ./update-manifest.json
|
||||
|
||||
390
.github/workflows/gradle.yaml
vendored
@@ -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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
|
||||
- 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
|
||||
|
||||
- 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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
|
||||
- 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 with Gradle
|
||||
run: ./gradlew shadowJar
|
||||
|
||||
- name: Upload the Server JAR as a Build Artifact
|
||||
uses: actions/upload-artifact@v5
|
||||
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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Get tags
|
||||
run: git fetch --tags origin --recurse-submodules=no --force
|
||||
|
||||
- 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
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v6
|
||||
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@v5
|
||||
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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v6
|
||||
with:
|
||||
name: 'SlimeVR-Server'
|
||||
path: server/desktop/build/libs/
|
||||
|
||||
- name: Set up Linux dependencies
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
|
||||
with:
|
||||
packages: |
|
||||
build-essential curl wget file libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev xdg-utils
|
||||
# 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@v6
|
||||
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@v5
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
with:
|
||||
name: SlimeVR-GUI-Dist
|
||||
path: ./slimevr-gui-dist.tar.gz
|
||||
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ format('SlimeVR-GUI-Deb-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/deb/slimevr*.deb
|
||||
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ format('SlimeVR-GUI-AppImage-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/appimage/slimevr*.AppImage
|
||||
|
||||
- uses: actions/upload-artifact@v5
|
||||
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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v6
|
||||
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@v6
|
||||
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@v5
|
||||
with:
|
||||
name: SlimeVR-GUI-MacApp
|
||||
path: target/universal-apple-darwin/release/bundle/macos/SlimeVR*.app
|
||||
|
||||
- uses: actions/upload-artifact@v5
|
||||
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@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v6
|
||||
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@v6
|
||||
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@v5
|
||||
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
|
||||
7
.gitignore
vendored
@@ -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/
|
||||
|
||||
1
.vscode/extensions.json
vendored
@@ -7,7 +7,6 @@
|
||||
"gaborv.flatbuffers",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode",
|
||||
"rust-lang.rust-analyzer",
|
||||
"bradlc.vscode-tailwindcss",
|
||||
"EditorConfig.EditorConfig",
|
||||
"macabeus.vscode-fluent",
|
||||
|
||||
@@ -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.
|
||||
|
||||
6898
Cargo.lock
generated
16
Cargo.toml
@@ -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.82" # Tauri's MSRV
|
||||
repository = "https://github.com/SlimeVR/SlimeVR-Server"
|
||||
|
||||
[profile.release]
|
||||
lto = "thin"
|
||||
242
deny.toml
@@ -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 = [""]
|
||||
39
flake.lock
generated
@@ -1,26 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756795219,
|
||||
"narHash": "sha256-tKBQtz1JLKWrCJUxVkHKR+YKmVpm0KZdJdPWmR2slQ8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "80dbdab137f2809e3c823ed027e1665ce2502d74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
@@ -72,27 +51,9 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756597274,
|
||||
"narHash": "sha256-wfaKRKsEVQDB7pQtAt04vRgFphkVscGRpSx3wG1l50E=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "21614ed2d3279a9aa1f15c88d293e65a98991b30",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
86
flake.nix
@@ -1,74 +1,50 @@
|
||||
{
|
||||
description = "Affordable full-body tracking for VR!";
|
||||
description = "SlimeVR Server & GUI";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
fenix = {
|
||||
url = "github:nix-community/fenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, flake-parts, fenix, ... }:
|
||||
outputs = inputs@{ self, nixpkgs, flake-parts, ... }:
|
||||
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
systems = [ "x86_64-linux" ];
|
||||
|
||||
perSystem = { system, lib, ... }:
|
||||
perSystem = { pkgs, ... }:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
runtimeLibs = pkgs: (with pkgs; [
|
||||
jdk17
|
||||
|
||||
rust_toolchain = lib.importTOML ./rust-toolchain.toml;
|
||||
fenixPkgs = fenix.packages.${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
|
||||
|
||||
rustToolchainSet = fenixPkgs.fromToolchainName {
|
||||
name = rust_toolchain.toolchain.channel;
|
||||
sha256 = "sha256-+9FmLhAOezBZCOziO0Qct1NOrfpjNsXxc/8I0c7BdKE=";
|
||||
};
|
||||
in {
|
||||
wineWow64Packages.stable
|
||||
zlib squashfsTools fakeroot libarchive icu
|
||||
nodejs_22 pnpm pkg-config python3 gcc gnumake binutils git
|
||||
pkgs.nodePackages.node-gyp-build
|
||||
]);
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
name = "slimevr";
|
||||
slimeShell = pkgs.buildFHSEnv {
|
||||
name = "slimevr-env";
|
||||
targetPkgs = runtimeLibs;
|
||||
profile = ''
|
||||
export JAVA_HOME=${pkgs.jdk17}
|
||||
export PATH="${pkgs.jdk17}/bin:$PATH"
|
||||
|
||||
buildInputs =
|
||||
(with pkgs; [
|
||||
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 udev libusb1
|
||||
]) ++ lib.optionals pkgs.stdenv.isDarwin [
|
||||
pkgs.darwin.apple_sdk.frameworks.Security
|
||||
] ++ [
|
||||
pkgs.jdk17
|
||||
pkgs.kotlin
|
||||
rustToolchainSet.rustc
|
||||
rustToolchainSet.cargo
|
||||
rustToolchainSet.rustfmt
|
||||
];
|
||||
|
||||
nativeBuildInputs = with pkgs; [ pnpm nodejs_22 gradle ];
|
||||
|
||||
RUST_BACKTRACE = 1;
|
||||
GIO_EXTRA_MODULES = "${pkgs.glib-networking}/lib/gio/modules:${pkgs.dconf.lib}/lib/gio/modules";
|
||||
|
||||
shellHook = ''
|
||||
export SLIMEVR_RUST_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
|
||||
export LD_LIBRARY_PATH="${pkgs.udev}/lib:${pkgs.libayatana-appindicator}/lib:$LD_LIBRARY_PATH"
|
||||
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"
|
||||
|
||||
# Force linker and pkg-config to use udev from nixpkgs so libgudev/hidapi
|
||||
# resolve against the correct libudev implementation at link time.
|
||||
export PKG_CONFIG_PATH="${pkgs.udev}/lib/pkgconfig:${pkgs.glib}/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
export LIBRARY_PATH="${pkgs.udev}/lib:$LIBRARY_PATH"
|
||||
export LD_RUN_PATH="${pkgs.udev}/lib:$LD_RUN_PATH"
|
||||
export NIX_LDFLAGS="-L${pkgs.udev}/lib -ludev $NIX_LDFLAGS"
|
||||
export LDFLAGS="-L${pkgs.udev}/lib -Wl,-rpath,${pkgs.udev}/lib -ludev $LDFLAGS"
|
||||
# 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,8 +13,10 @@ android.useAndroidX=true
|
||||
android.nonTransitiveRClass=true
|
||||
org.gradle.unsafe.configuration-cache=false
|
||||
|
||||
kotlinVersion=2.0.20
|
||||
spotlessVersion=8.0.0
|
||||
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
|
||||
|
||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,7 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||
distributionSha256Sum=bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
|
||||
distributionSha256Sum=f1771298a70f6db5a29daf62378c4e18a17fc33c9ba6b14362e0cdf40610380d
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
4
gui/.gitignore
vendored
@@ -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
@@ -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"
|
||||
47
gui/electron.vite.config.ts
Normal 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
@@ -0,0 +1 @@
|
||||
resources/java-version/JavaVersion.class
|
||||
12
gui/electron/main/cli.ts
Normal 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();
|
||||
477
gui/electron/main/index.ts
Normal file
@@ -0,0 +1,477 @@
|
||||
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/Square30x30Logo.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 { closeLogger, 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';
|
||||
|
||||
// Fixes colors looking washed on linux
|
||||
// Might affect hdr
|
||||
if (process.platform === 'linux') {
|
||||
app.commandLine.appendSwitch('disable-features', 'WaylandWpColorManagerV1');
|
||||
app.commandLine.appendSwitch('force-color-profile', 'srgb');
|
||||
}
|
||||
|
||||
app.setPath('userData', getGuiDataFolder());
|
||||
app.setPath('sessionData', join(getGuiDataFolder(), 'electron'));
|
||||
|
||||
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 'hide':
|
||||
mainWindow?.hide();
|
||||
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.quit();
|
||||
}
|
||||
};
|
||||
|
||||
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.quit()
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info({ javaBin, serverJar }, 'Found Java and server jar');
|
||||
const platform = getPlatform();
|
||||
const serverWorkdir = getServerDataFolder()
|
||||
const serverProcess = spawn(javaBin, ['-Xmx128M', '-jar', serverJar, 'run'], {
|
||||
cwd: serverWorkdir,
|
||||
shell: false,
|
||||
env:
|
||||
platform === 'windows'
|
||||
? {
|
||||
...process.env,
|
||||
APPDATA: app.getPath('appData'),
|
||||
LOCALAPPDATA: process.env['USERPROFILE'] ? path.join(process.env['USERPROFILE'], 'AppData', 'Local') : undefined,
|
||||
}
|
||||
: undefined,
|
||||
});
|
||||
|
||||
const sendToWindow = (event: ServerStatusEvent) => {
|
||||
if (mainWindow && !mainWindow.webContents.isDestroyed()) {
|
||||
mainWindow.webContents.send(IPC_CHANNELS.SERVER_STATUS, event);
|
||||
}
|
||||
};
|
||||
|
||||
serverProcess.stdout?.on('data', (message) => {
|
||||
sendToWindow({ message: message.toString(), type: 'stdout' });
|
||||
});
|
||||
|
||||
serverProcess.stderr?.on('data', (message) => {
|
||||
sendToWindow({ message: message.toString(), type: 'stderr' });
|
||||
});
|
||||
|
||||
serverProcess.on('error', (err) => {
|
||||
logger.info({ err }, 'Error launching the java server');
|
||||
if (!isQuitting) app.quit();
|
||||
})
|
||||
|
||||
serverProcess.on('exit', () => {
|
||||
logger.info('Server process exiting');
|
||||
})
|
||||
|
||||
const exited = new Promise<void>((resolve) => serverProcess.once('exit', resolve));
|
||||
|
||||
return {
|
||||
process: serverProcess,
|
||||
close: () => serverProcess.kill(),
|
||||
waitForExit: () => exited,
|
||||
};
|
||||
};
|
||||
|
||||
let isQuitting = false;
|
||||
|
||||
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', () => {
|
||||
app.quit();
|
||||
});
|
||||
|
||||
app.on('before-quit', async (event) => {
|
||||
if (isQuitting) return;
|
||||
isQuitting = true;
|
||||
event.preventDefault();
|
||||
logger.info('App quitting, saving...');
|
||||
server?.close();
|
||||
await server?.waitForExit();
|
||||
stores.settings.save();
|
||||
stores.cache.save();
|
||||
discordPresence.destroy();
|
||||
await saveWindowState();
|
||||
await closeLogger();
|
||||
app.exit(0);
|
||||
});
|
||||
});
|
||||
34
gui/electron/main/logger.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
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);
|
||||
|
||||
export const closeLogger = () =>
|
||||
new Promise<void>((resolve) => {
|
||||
logger.flush(() => {
|
||||
transport.once('close', resolve);
|
||||
transport.end();
|
||||
});
|
||||
});
|
||||
120
gui/electron/main/paths.ts
Normal 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,
|
||||
app.isPackaged ? path.resolve(process.resourcesPath) : 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));
|
||||
};
|
||||
49
gui/electron/main/presence.ts
Normal 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();
|
||||
76
gui/electron/main/store.ts
Normal 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),
|
||||
};
|
||||
50
gui/electron/main/utils.ts
Normal 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);
|
||||
});
|
||||
}
|
||||
40
gui/electron/preload/index.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
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'),
|
||||
hide: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'hide'),
|
||||
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);
|
||||
65
gui/electron/preload/interface.d.ts
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
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;
|
||||
hide: () => 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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 747 B After Width: | Height: | Size: 747 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 698 B |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 1008 B After Width: | Height: | Size: 1008 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 922 B After Width: | Height: | Size: 922 B |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 579 B After Width: | Height: | Size: 579 B |
|
Before Width: | Height: | Size: 555 B After Width: | Height: | Size: 555 B |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 645 B After Width: | Height: | Size: 645 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
gui/electron/resources/java-version/JavaVersion.jar
Normal 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);
|
||||
}
|
||||
}
|
||||
26
gui/electron/resources/scripts/postinstall.sh
Normal 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
|
||||
8
gui/electron/resources/scripts/postremove.sh
Normal 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
@@ -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' | 'hide') => 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;
|
||||
}
|
||||
143
gui/package.json
@@ -1,40 +1,87 @@
|
||||
{
|
||||
"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-opener": "^2.4.0",
|
||||
"@tauri-apps/plugin-log": "~2",
|
||||
"@tauri-apps/plugin-os": "^2.0.0",
|
||||
"@tauri-apps/plugin-shell": "^2.3.0",
|
||||
"@tauri-apps/plugin-store": "^2.4.1",
|
||||
"@tweenjs/tween.js": "^25.0.0",
|
||||
"@twemoji/svg": "^15.0.0",
|
||||
"@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": "^8.48.1",
|
||||
"@typescript-eslint/parser": "^8.48.1",
|
||||
"@vitejs/plugin-react": "^4.3.2",
|
||||
"ajv": "^8.17.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"browser-fs-access": "^0.35.0",
|
||||
"classnames": "^2.5.1",
|
||||
"convert": "^5.12.0",
|
||||
"dmg-license": "^1.0.11",
|
||||
"dotenv": "^16.4.5",
|
||||
"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",
|
||||
@@ -46,65 +93,21 @@
|
||||
"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",
|
||||
"@stylistic/eslint-plugin": "^5.5.0",
|
||||
"@tailwindcss/forms": "^0.5.9",
|
||||
"@tauri-apps/cli": "~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",
|
||||
"@vitejs/plugin-react": "^4.3.2",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"cross-env": "^7.0.3",
|
||||
"dotenv": "^16.4.5",
|
||||
"eslint": "^9.39.0",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"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": "^4.6.2",
|
||||
"globals": "^15.10.0",
|
||||
"prettier": "^3.3.3",
|
||||
"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",
|
||||
"three": "^0.163.0",
|
||||
"ts-pattern": "^5.4.0",
|
||||
"typescript": "^5.6.3",
|
||||
"typescript-eslint": "^8.46.2",
|
||||
"vite": "^5.4.8"
|
||||
}
|
||||
"use-double-tap": "^1.3.6",
|
||||
"uuid": "^13.0.0",
|
||||
"vite": "^5.4.8",
|
||||
"yup": "^1.4.0"
|
||||
},
|
||||
"main": "./out/main/index.js"
|
||||
}
|
||||
|
||||
BIN
gui/public/fonts/noto-sans-v42-latin-regular.woff2
Normal file
@@ -814,11 +814,6 @@ 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 =
|
||||
@@ -1269,3 +1264,6 @@ unknown_device-modal-forget = تجاهلها
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
websocket-connecting = Připojování k serveru
|
||||
websocket-connection_lost = Ztraceno spojení se serverem. Pokouším se znovu připojit...
|
||||
websocket-connection_lost-desc = Vypadá to že SlimeVR server spadl. Zkontrolujte záznamy protokolů a restartuje aplikaci
|
||||
websocket-timedout = Nelze se připojit k serveru
|
||||
websocket-timedout = Nepodařilo se připojit k serveru
|
||||
websocket-timedout-desc = Vypadá to že buď vypršel časový limit SlimeVR serveru, a nebo došlo k zhroucení. Zkontrolujte záznamy protokolů a restartuje aplikaci
|
||||
websocket-error-close = Ukončit SlimeVR
|
||||
websocket-error-logs = Otevření složku s záznamy protokolů
|
||||
@@ -33,6 +33,10 @@ tips-failed_webgl = Načtení WebGL selhalo.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Metr
|
||||
unit-foot = Foot
|
||||
unit-inch = Palec
|
||||
unit-cm = cm
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -73,6 +77,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
|
||||
@@ -84,6 +90,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 vývojářská IMU rukavice
|
||||
board_type-GESTURES = Gesta
|
||||
board_type-ESP32S3_SUPERMINI = ESP32-S3 Supermini
|
||||
board_type-GENERIC_NRF = Obecné nRF
|
||||
board_type-SLIMEVR_BUTTERFLY_DEV = SlimeVR Dev Butterfly
|
||||
board_type-SLIMEVR_BUTTERFLY = SlimeVR Butterfly
|
||||
|
||||
## Proportions
|
||||
|
||||
@@ -104,7 +115,7 @@ skeleton_bone-LOWER_LEG = Délka dolní části nohy
|
||||
skeleton_bone-FOOT_LENGTH = Délka chodidla
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
Toto je vzdálenost mezi vaši kotníky a prsty na nohou.
|
||||
Pro upravení, Chodtě po špičkách dokud vaše virtuální nohy nezůstanou na místě.
|
||||
Pro upravení, Choďte po špičkách dokud vaše virtuální nohy nezůstanou na místě.
|
||||
skeleton_bone-FOOT_SHIFT = Odsazení chodidla
|
||||
skeleton_bone-SKELETON_OFFSET = Odsazení kostry
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Vzdálenost ramen
|
||||
@@ -129,7 +140,11 @@ reset-reset_all_warning_default-v2 =
|
||||
Jste si jistí že to chcete udělat?
|
||||
reset-full = Plný Reset
|
||||
reset-mounting = Znovu nastavit nasazení
|
||||
reset-mounting-feet = Obnovit pozice nasazení nohou
|
||||
reset-mounting-fingers = Obnovit pozice nasazení prstů
|
||||
reset-yaw = Rychlý reset
|
||||
reset-error-no_feet_tracker = Žádný tracker nohou nebyl přiřazen
|
||||
reset-error-no_fingers_tracker = Žádné trackery prstů nebyly přiřazeny
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -149,11 +164,14 @@ navbar-trackers_assign = Přiřazení trackerů
|
||||
navbar-mounting = Kalibrace nasazení
|
||||
navbar-onboarding = Průvodce nastavením
|
||||
navbar-settings = Nastavení
|
||||
navbar-connect_trackers = Připojte Trackery
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = Nahrát BVH
|
||||
bvh-stop_recording = Uložit BVH záznam
|
||||
bvh-recording = Nahrávání...
|
||||
bvh-save_title = Uložit BVH záznam
|
||||
|
||||
## Tracking pause
|
||||
|
||||
@@ -194,7 +212,7 @@ widget-imu_visualizer-rotation_raw = Nezpracované
|
||||
widget-imu_visualizer-rotation_preview = Náhled
|
||||
widget-imu_visualizer-acceleration = Akcelerace
|
||||
widget-imu_visualizer-position = Pozice
|
||||
widget-imu_visualizer-stay_aligned = Zůstaň Srovaný (Stay Aligned)
|
||||
widget-imu_visualizer-stay_aligned = Zůstaň Srovnaný (Stay Aligned)
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -217,12 +235,13 @@ tracker-table-column-name = Název
|
||||
tracker-table-column-type = Typ
|
||||
tracker-table-column-battery = Baterie
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-packet_loss = Ztráta Paketů
|
||||
tracker-table-column-tps = TPS
|
||||
tracker-table-column-temperature = Teplota °C
|
||||
tracker-table-column-linear-acceleration = Akcel. X/Y/Z
|
||||
tracker-table-column-rotation = Rotace X/Y/Z
|
||||
tracker-table-column-position = Pozice X/Y/Z
|
||||
tracker-table-column-stay_aligned = Zůstaň Srovaný (Stay Aligned)
|
||||
tracker-table-column-stay_aligned = Zůstaň Srovnaný (Stay Aligned)
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -258,6 +277,9 @@ tracker-infos-magnetometer-status-v1 =
|
||||
[ENABLED] Povoleno
|
||||
*[NOT_SUPPORTED] Není podporováno
|
||||
}
|
||||
tracker-infos-packet_loss = Ztráta Paketů
|
||||
tracker-infos-packets_lost = Pakety Ztraceny
|
||||
tracker-infos-packets_received = Pakety Přijaty
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -288,10 +310,16 @@ 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-v2 = Žádné vydání nebyla nalezena
|
||||
tracker-settings-update-incompatible = Nelze aktualizovat. Nekompatibilní deska nebo verze firmwaru
|
||||
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-blocked = Není dostupná aktualizace. Žádná jiná verze není k dispozici
|
||||
tracker-settings-update = Aktualizovat nyní
|
||||
tracker-settings-update-title = Verze Firmwareu
|
||||
tracker-settings-current-version = Současný
|
||||
tracker-settings-latest-version = Nejnovější
|
||||
tracker-settings-build-date = Datum sestavení
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -357,16 +385,20 @@ mounting_selection_menu-close = Zavřít
|
||||
|
||||
settings-sidebar-title = Nastavení
|
||||
settings-sidebar-general = Obecné
|
||||
settings-sidebar-steamvr = SteamVR
|
||||
settings-sidebar-tracker_mechanics = Mechanika trackerů
|
||||
settings-sidebar-stay_aligned = Zůstaň Srovaný (Stay Aligned)
|
||||
settings-sidebar-stay_aligned = Zůstaň Srovnaný (Stay Aligned)
|
||||
settings-sidebar-fk_settings = Nastavení trackování
|
||||
settings-sidebar-gesture_control = Ovládání gesty
|
||||
settings-sidebar-interface = Rozhraní
|
||||
settings-sidebar-osc_router = OSC router
|
||||
settings-sidebar-osc_trackers = VRChat OSC tracker
|
||||
settings-sidebar-osc_vmc = VMC
|
||||
settings-sidebar-utils = Nástroje
|
||||
settings-sidebar-serial = Sériová konzole
|
||||
settings-sidebar-appearance = Vzhled
|
||||
settings-sidebar-home = Domovská obrazovka
|
||||
settings-sidebar-checklist = Přehled trackování
|
||||
settings-sidebar-notifications = Notifikace
|
||||
settings-sidebar-behavior = Chování
|
||||
settings-sidebar-firmware-tool = Nástroj pro DIY firmware
|
||||
@@ -452,18 +484,25 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Použití magnetometr na všech trackerech které pro to mají kompatibilní firmware, snížení drifutu v stailních magnetických prostředích.
|
||||
Může být vypnuto pro jednotivé trackery v jejich nastaveních. <b> Prosíme nevypínejte žádný z trackerů při přepínání tohoto nastavení! </b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Použít magnetometru na trackerech
|
||||
settings-stay_aligned = Zůstaň Srovaný (Stay Aligned)
|
||||
settings-stay_aligned-description = Zůstaň Srovaný redukuje drift pomocí postupného upravování vašich trackerů do vaší relaxůjící pózy.
|
||||
settings-stay_aligned-setup-label = Nastavte Zůstaň Sronaný
|
||||
settings-stay_aligned-setup-description = Musíte dokončit "Nastvení Zůstaň Srovaný" pro zapnutí Zůstaň Srovnaný.
|
||||
settings-general-tracker_mechanics-trackers_over_usb = Trackery přes USB
|
||||
settings-stay_aligned = Zůstaň Srovnaný (Stay Aligned)
|
||||
settings-stay_aligned-description = Zůstaň Srovnaný (Stay Aligned) redukuje drift pomocí postupného upravování vašich trackerů do vaší relaxůjící pózy.
|
||||
settings-stay_aligned-setup-label = Nastavte Zůstaň Srovnaný (Stay Aligned)
|
||||
settings-stay_aligned-setup-description = Musíte dokončit "Nastavení Zůstaň Srovnaný" pro zapnutí Zůstaň Srovnaný.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ Prosím vypněte Kompenzaci Driftu! Kompenzace driftu bude narušovat funkčnost Zůstaň Srovnaný.
|
||||
settings-stay_aligned-enabled-label = Upravit trackery
|
||||
settings-stay_aligned-hide_yaw_correction-label = Skrýt ladění (pro srovnání s vypnutým Zůstaň Srovnaný)
|
||||
settings-stay_aligned-general-label = Obecné
|
||||
settings-stay_aligned-relaxed_poses-label = Relaxovací Póza
|
||||
settings-stay_aligned-relaxed_poses-description = Zůstaň Srovnaný používá vaše uvolněné pózy k udržení srovnání trackerů. K aktualizaci těchto póz použijte "Nastavte Zůstaň Srovnaný".
|
||||
settings-stay_aligned-relaxed_poses-standing = Upravit trackery při stoje
|
||||
settings-stay_aligned-relaxed_poses-sitting = Upravit pozici trackerů při sezení na židli
|
||||
settings-stay_aligned-relaxed_poses-flat = Upravte pozici trackerů při sezení na zemi, nebo ležení na zádech
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Uložit pózu
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Obnovit pózu
|
||||
settings-stay_aligned-relaxed_poses-close = Zavřít
|
||||
settings-stay_aligned-debug-label = Ladění
|
||||
settings-stay_aligned-debug-description = Při nahlašování problémů s Zůstaň Srovnaný, prosím zahrňte vaše nastavení.
|
||||
settings-stay_aligned-debug-copy-label = Zkopírovat nastavení do schránky
|
||||
|
||||
## FK/Tracking settings
|
||||
@@ -472,7 +511,7 @@ settings-general-fk_settings = Nastavení trackování
|
||||
# Floor clip:
|
||||
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
|
||||
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Podlahovej clip
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Clip podlahy
|
||||
# Skating correction:
|
||||
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
|
||||
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
|
||||
@@ -486,11 +525,14 @@ 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-v1 = Vynutit kalibraci nasazení pro trackery 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
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Opravit pomocí omezení
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Opravit rotaci kloubů, když překročí svůj limit
|
||||
settings-general-fk_settings-ik = Data pozice
|
||||
settings-general-fk_settings-ik-use_position = Použít Data pozice
|
||||
settings-general-fk_settings-arm_fk = Trackování ramen
|
||||
settings-general-fk_settings-arm_fk-description = Vynutit sledování rukou z VR headsetu, i když jsou k dispozici údaje o poloze rukou z trackerů.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Vynutit ruce z VR Headsetu
|
||||
@@ -614,6 +656,9 @@ settings-interface-behavior-error_tracking-description_v2 =
|
||||
|
||||
Aby jsme mohli poskytnout nejlepší zážitek uživatelům, schromažďujeme proto anonymizované zprávy o chybých, metriky výkon a informace o operačním systém. To nám pomáhá zjištovat chyby a problémy s SlimeVR. Tyto matriky jsou schromažďovány prostřednictvím Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Odeslat chyby vývojářům
|
||||
settings-interface-behavior-bvh_directory = Cesta pro uložení BVH záznamů
|
||||
settings-interface-behavior-bvh_directory-description = Vyberte cestu k uložení záznamů BHV. namísto toho, abyste pokaždé vybírali, kam je uložit.
|
||||
settings-interface-behavior-bvh_directory-label = Lokace pro BVH nahrávky
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -624,7 +669,7 @@ settings-serial-description =
|
||||
Může být užitečné, pokud potřebujete zjistit, zda se firmware chová špatně.
|
||||
settings-serial-connection_lost = Ztráta připojení k seriálu, Připojení se obnovuje...
|
||||
settings-serial-reboot = Restartovat
|
||||
settings-serial-factory_reset = Obnovení továrního nastavení
|
||||
settings-serial-factory_reset = Obnovení do továrního nastavení
|
||||
# This cares about multilines
|
||||
# <b>text</b> means that the text should be bold
|
||||
settings-serial-factory_reset-warning =
|
||||
@@ -637,6 +682,10 @@ settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Skenovat WiFi
|
||||
settings-serial-file_type = Prostý text
|
||||
settings-serial-save_logs = Uložit jako soubor
|
||||
settings-serial-send_command = Odeslat
|
||||
settings-serial-send_command-placeholder = Příkaz...
|
||||
settings-serial-send_command-warning-ok = Vím, co dělám!
|
||||
settings-serial-send_command-warning-cancel = Zrušit
|
||||
|
||||
## OSC router settings
|
||||
|
||||
@@ -729,6 +778,7 @@ settings-osc-vmc-mirror_tracking-label = Zrcadlení trackování
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
settings-osc-common-network-port_banned_error = Port { $port } nelze použít!
|
||||
|
||||
## Advanced settings
|
||||
|
||||
@@ -765,9 +815,14 @@ settings-utils-advanced-open_logs-label = Otevřít složku
|
||||
|
||||
## Home Screen
|
||||
|
||||
settings-home-list-layout = Uspořádání seznamu trackerů
|
||||
settings-home-list-layout-desc = Vyberte jedno z možných uspořádání domovské obrazovky.
|
||||
settings-home-list-layout-grid = Mřížka
|
||||
settings-home-list-layout-table = Tabulka
|
||||
|
||||
## Tracking Checlist
|
||||
|
||||
settings-tracking_checklist-active_steps = Aktivní kroky
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -784,11 +839,7 @@ 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-v2 = Trackey používající Wi-Fi
|
||||
onboarding-wifi_creds-skip = Přeskočit nastavení Wi-Fi
|
||||
onboarding-wifi_creds-submit = Odeslat!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -798,6 +849,8 @@ onboarding-wifi_creds-ssid-required = Je vyžadován název sítě Wi-Fi
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Heslo
|
||||
.placeholder = Zadejte heslo
|
||||
onboarding-wifi_creds-dongle-title = Trackery používající dongle
|
||||
onboarding-wifi_creds-dongle-continue = Pokračovat s donglem
|
||||
|
||||
## Mounting setup
|
||||
|
||||
@@ -819,7 +872,7 @@ onboarding-reset_tutorial-1 =
|
||||
|
||||
## Setup start
|
||||
|
||||
onboarding-home = Vítejte k SlimeVR
|
||||
onboarding-home = Vítejte ve SlimeVR
|
||||
onboarding-home-start = Pusťme se do toho!
|
||||
|
||||
## Setup done
|
||||
@@ -890,6 +943,7 @@ onboarding-assignment_tutorial-done = Nachystal jsem samolepky a pásky!
|
||||
onboarding-assign_trackers-back = Zpět na přihlašovací údaje Wi-Fi
|
||||
onboarding-assign_trackers-title = Přiřazení trackerů
|
||||
onboarding-assign_trackers-description = Vyberte, na jakou končetinu každý tracker patří. Klikněte na místo, kam chcete umístit tracker
|
||||
onboarding-assign_trackers-unassign_all = Zrušit přiřazení všech trackerů
|
||||
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
@@ -937,7 +991,7 @@ onboarding-assign_trackers-warning-LEFT_FOOT =
|
||||
|
||||
## Tracker mounting method choose
|
||||
|
||||
onboarding-choose_mounting = Jakou metodu nasazení trackerů použít?
|
||||
onboarding-choose_mounting = Jakou metodu nasazení trackerů chcete použít?
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-description = Správná orientace nasazení zajistí přesné sledování trackerů na těle.
|
||||
onboarding-choose_mounting-auto_mounting = Automatická detekce nasazení
|
||||
@@ -980,12 +1034,15 @@ onboarding-automatic_mounting-mounting_reset-step-0 = 1. Dřepněte si, jako př
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Stiskněte tlačítko "Resetovat nasazení trackerů" a vyčkejte 3 sekundy. Orientace nasazení trackerů se nastaví na základní hodnoty.
|
||||
onboarding-automatic_mounting-preparation-title = Příprava
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Stiskněte tlačítko pro "Plný Reset"
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Zůstaňte v pozici, dokud 3s časovač neskončí.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Nasaďte si trackery
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Pro kalibraci směru nasazení použijeme právě přiřazené trackery. Nasaďte si prosím všechny trackery. Můžete zkontrolovat jejich umístění na obrázku vpravo.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Mám nasazené všechny trackery
|
||||
onboarding-automatic_mounting-return-home = Hotovo
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back-scaled = Jít zpět na Škálování Proporcí
|
||||
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
|
||||
@@ -1086,27 +1143,57 @@ onboarding-automatic_proportions-smol_warning-cancel = Jít zpět
|
||||
|
||||
## User height calibration
|
||||
|
||||
onboarding-user_height-title = Jaká je vaše výška?
|
||||
onboarding-user_height-calculate = Vypočítejte mou výšku automaticky
|
||||
onboarding-user_height-next_step = Uložit a pokračovat
|
||||
onboarding-user_height-manual-proportions = Manuální Proporce
|
||||
onboarding-user_height-calibration-title = Průběh kalibrace
|
||||
onboarding-user_height-calibration-WAITING_FOR_RISE = Postavte se zpátky
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Ujistěte se, že je vaše hlava ve vodorovné pozici
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = Nedívejte se na podlahu
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = Nedívej se příliš vysoko
|
||||
onboarding-user_height-calibration-RECORDING_HEIGHT = Znovu se postavte a nehýbejte se!
|
||||
onboarding-user_height-calibration-DONE = Úspěch!
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = Časový limit kalibrace vypršel, zkuste to znovu.
|
||||
onboarding-user_height-calibration-error = Kalibrace selhala
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = Zůstaň Srovaný!
|
||||
onboarding-stay_aligned-description = Nakonfigurujte Zustaň Srovnaný, aby byly vaše trackery srovnáný.
|
||||
onboarding-stay_aligned-title = Zůstaň Srovnaný!
|
||||
onboarding-stay_aligned-description = Nakonfigurujte Zůstaň Srovnaný, aby byly vaše trackery srovnány.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Nasaďte si trackery
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = Aktuálně máte méně než 5 připojených a přiřazených trackerů! Toto je minimální počet trackerů potřebné pro správné fungování funkce Zůstaň Srovnaný.
|
||||
onboarding-stay_aligned-put_trackers_on-next = Mám nasazené všechny trackery
|
||||
onboarding-stay_aligned-verify_mounting-title = Zkotrolujte nasazení
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = Zůstaň Srovnaný vyžaduje dobré nasazení. V opačném případě nebudete mít nejlepší zážitek s Zůstaň Srovnaný.
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. Pohybujte se ve stoje.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Posaďte se a pohybujte nohama a chodidly.
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = Předělat kalibraci nasazení
|
||||
onboarding-stay_aligned-preparation-title = Příprava
|
||||
onboarding-stay_aligned-preparation-tip = Ujistěte se, že stojíte vzpřímeně. koukáte vpřed a máte ruce podél těla.
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = Uvolněná pozice ve stoje
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Stůjte v pohodlné pozici. Relaxujte!
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Zmáčkněte tlačítko "Uložit pózu"
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = Uvolněná póza při sezení v židli
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Posaďte se do pohodlné pozice, Relaxujte!
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Zmáčkněte tlačítko "Uložit pózu"
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Uvolněná pozice při sezení na zemi
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Zmáčkněte tlačítko "Uložit pózu"
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Přeskočit
|
||||
onboarding-stay_aligned-done-title = Zustaň Srovnaný zapnuto!
|
||||
onboarding-stay_aligned-done-title = Zůstaň Srovnaný zapnuto!
|
||||
onboarding-stay_aligned-done-description = Váš nastavení Zůstaň Srovnaný je dokončeno!
|
||||
onboarding-stay_aligned-done-description-2 = Vaše nastavení je dokončeno! Pokud chcete vaše pózy znovu zkalibrovat, můžete proces zopakovat.
|
||||
onboarding-stay_aligned-previous_step = Předchozí
|
||||
onboarding-stay_aligned-next_step = Další
|
||||
onboarding-stay_aligned-restart = Restart
|
||||
onboarding-stay_aligned-done = Hotovo
|
||||
onboarding-stay_aligned-manual_mounting-done = Hotovo
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Nebyly zjištěny ani přiřazeny žádné trackery
|
||||
home-settings = Nastavení domovské stránky
|
||||
home-settings-close = Zavřít
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
@@ -1142,8 +1229,28 @@ 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-select_source = Vyberte firmware k flashování
|
||||
firmware_tool-select_source-error = Nelze načíst Zdroje
|
||||
firmware_tool-select_source-board_type = Typ desky
|
||||
firmware_tool-select_source-firmware = Zdrojový kód firmwaru
|
||||
firmware_tool-select_source-version = Verze firmwaru
|
||||
firmware_tool-select_source-official = Oficiální
|
||||
firmware_tool-select_source-dev = Vývojářské
|
||||
firmware_tool-select_source-not_selected = Nebyl vybrán žádný zdroj
|
||||
firmware_tool-board_defaults = Nekonfigurujte vaší desku
|
||||
firmware_tool-board_defaults-add = Přidat
|
||||
firmware_tool-board_defaults-reset = Restartovat do výchozího nastavení
|
||||
firmware_tool-board_defaults-error-required = Povinné pole
|
||||
firmware_tool-board_defaults-error-format = Neplatný formát
|
||||
firmware_tool-board_defaults-error-format-number = Není číslo
|
||||
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-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = Použijte "wireless" metodu. Vaše trackery budou používát Wi-Fi pro aktualizování jejich firmweru. Funguje pouze u trackerů, které již byly nastaveny.
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.description = Použíjte USB kabel k 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:
|
||||
@@ -1152,8 +1259,10 @@ firmware_tool-flashbtn_step-board_OTHER =
|
||||
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í.
|
||||
Pokud procesu flashování vyprší čas hned na začátku flashování, to nejspíš znamená že tracker nebyl v řežimu bootloaderu
|
||||
Podívejte se prosím na instrukce procesu flashování pro desku vašeho zařízení, aby jste zjistili jak se dostat do režimu bootloaderu
|
||||
firmware_tool-flash_method_ota-title = Flashování přes Wi-Fi
|
||||
firmware_tool-flash_method_ota-devices = Byla detekována zařízení s OTA:
|
||||
firmware_tool-flash_method_ota-no_devices = Nebyly nalezeny žádné zákadní desky které by mohly být aktualizované pomocí OTA, prosím ujistěte se že jste zvolily správný typ základní desky
|
||||
firmware_tool-flash_method_serial-title = Flashování přes USB
|
||||
firmware_tool-flash_method_serial-wifi = Přihlašovací údaje Wi-Fi:
|
||||
firmware_tool-flash_method_serial-devices-label = Detekována Sériová Zařízení:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = Vyberte sériové zařízení
|
||||
@@ -1162,12 +1271,16 @@ firmware_tool-build_step = Sestavování
|
||||
firmware_tool-build_step-description = Firmwere se sestavuje, čekejte prosím
|
||||
firmware_tool-flashing_step = Flashování
|
||||
firmware_tool-flashing_step-description = Probíhá flashování vašich trackerů, prosím postupujte dle instrukcí na obrazovce
|
||||
firmware_tool-flashing_step-warning-v2 = Během procesu nahrávání prosíme NEVYPÍNEJTE ani NEODPOJUJTE vaše trackery pokud k tomu nejste vyzváni, učiněním můžete způsobit že deska trackeru se stane nefunkční.
|
||||
firmware_tool-flashing_step-flash_more = Flashnout více trackerů
|
||||
firmware_tool-flashing_step-exit = Odejít
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-QUEUED = Čekání na sestavení...
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Vytváření složky pro sestavení
|
||||
firmware_tool-build-DOWNLOADING_SOURCE = Stahování zdrojového kódu
|
||||
firmware_tool-build-EXTRACTING_SOURCE = Extrahování zdrojového kódu
|
||||
firmware_tool-build-BUILDING = Sestavování firmweru
|
||||
firmware_tool-build-SAVING = Ukládání sestavení
|
||||
firmware_tool-build-DONE = Sestavení dokončeno
|
||||
@@ -1176,6 +1289,7 @@ firmware_tool-build-ERROR = Nepodařilo se sestavit firmwere
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Stahování firmwaru
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = Vypněte a znovu zapněte tracker prosím
|
||||
firmware_update-status-AUTHENTICATING = Autentifikování s mcu
|
||||
firmware_update-status-UPLOADING = Nahrávání firmwaru
|
||||
firmware_update-status-SYNCING_WITH_MCU = Synchronizace s MCU
|
||||
@@ -1200,7 +1314,7 @@ firmware_update-no_devices = Prosím ujistěte se, že tracker který chcete akt
|
||||
firmware_update-changelog-title = Aktualizování na { $version }
|
||||
firmware_update-looking_for_devices = Hledání zařízení pro aktualizaci
|
||||
firmware_update-retry = Opakovat
|
||||
firmware_update-update = Aktualizovat Zvolený/é Tracker/y
|
||||
firmware_update-update = Aktualizovat Zvolené Trackery
|
||||
firmware_update-exit = Odejít
|
||||
|
||||
## Tray Menu
|
||||
@@ -1230,10 +1344,15 @@ unknown_device-modal-description =
|
||||
Chcete jej připojit k SlimeVR?
|
||||
unknown_device-modal-confirm = Jasně!
|
||||
unknown_device-modal-forget = Ignoruj
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = Varování VRChat konfigurace
|
||||
vrc_config-page-desc = Tato stránka slouží k zobrazení vašeho aktuálního stavu nastavení ve VRChat. přesněji, nástavní které jsou nekompatibilní s SlimeVR. Je silně doporučeno poupravit všechny chybné nastavení které jsou zde zobrazeny pro nejlepší zážitek s SlimeVR.
|
||||
vrc_config-page-help = Nemůžete najít specifické nastavení?
|
||||
vrc_config-page-help-desc = Podívejte se na naší <a>dokumentaci k tomuto tématu!</a>
|
||||
vrc_config-page-big_menu = Sledování & IK (Velké Menu)
|
||||
vrc_config-page-big_menu-desc = Nastavení souvicející s IK ve velké nabídce nastavení
|
||||
vrc_config-page-wrist_menu = Sledování & IK (Zápěstní menu)
|
||||
vrc_config-page-wrist_menu-desc = Nastavení související s IK najdete v malém (zápěstním) menu
|
||||
vrc_config-on = Zapnuto
|
||||
vrc_config-off = Vypnuto
|
||||
vrc_config-invalid = Máte špatně nakonfigurované VRChat nastavení!
|
||||
@@ -1246,6 +1365,7 @@ vrc_config-mute-btn = Ztlumení
|
||||
vrc_config-unmute-btn = Zrušit ztlumení
|
||||
vrc_config-legacy_mode = Použít starší řešení IK
|
||||
vrc_config-disable_shoulder_tracking = Vypnout sledování ramen
|
||||
vrc_config-shoulder_width_compensation = Kompenzace Šířky Ramen
|
||||
vrc_config-spine_mode = Režim páteře FTB
|
||||
vrc_config-tracker_model = Model FBT trackeru
|
||||
vrc_config-avatar_measurement_type = Meření avataru
|
||||
@@ -1274,3 +1394,31 @@ 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
|
||||
|
||||
tracking_checklist-settings-close = Zavřít
|
||||
tracking_checklist-status-incomplete = Nejste připraveni používat SlimeVR!
|
||||
tracking_checklist-status-complete = Jste připravení k použití SlimeVR
|
||||
tracking_checklist-FULL_RESET = Proveďte plné obnovení
|
||||
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR není zapnut
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR není zapnut. Používáte ho pro VR?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-open = Spusťte SteamVR
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION = Kalibrujte vaše trackery
|
||||
tracking_checklist-TRACKER_ERROR = Trackery s chybami
|
||||
tracking_checklist-VRCHAT_SETTINGS = Nakonfigurujte nastavení VRChat
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = Přejít k varování ve VRChat
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = Změňte profil sítě
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Otevřete Ovládací Panel
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = Nakonfigurujte Zůstaň Srovnaný
|
||||
tracking_checklist-ignore = Ignorovat
|
||||
preview-mocap_mode_soon = Režim Mocap (brzy™)
|
||||
preview-disable_render = Vypnout vykreslování
|
||||
preview-disabled_render = Vykreslování vypnuto
|
||||
toolbar-mounting_calibration = Kalibrace nasazení
|
||||
toolbar-mounting_calibration-default = Tělo
|
||||
toolbar-mounting_calibration-feet = Chodidla
|
||||
toolbar-mounting_calibration-fingers = Prsty
|
||||
toolbar-drift_reset = Restartování driftu
|
||||
toolbar-assigned_trackers = { $count } trackery/ů přiřazeno
|
||||
toolbar-unassigned_trackers = { $count } trackey/ů nepřiřazeno
|
||||
|
||||
@@ -483,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 =
|
||||
@@ -656,3 +651,6 @@ home-no_trackers = Ingen trackere registreret eller tildelt
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -33,6 +33,10 @@ tips-failed_webgl = Fehler beim Initialisieren von WebGL.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Meter
|
||||
unit-foot = Fuß
|
||||
unit-inch = Zoll
|
||||
unit-cm = Zentimeter
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -111,11 +115,19 @@ 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-Handschuh
|
||||
board_type-GESTURES = Gesten
|
||||
board_type-ESP32S3_SUPERMINI = ESP32-S3 Supermini
|
||||
board_type-GENERIC_NRF = Generisches nRF
|
||||
board_type-SLIMEVR_BUTTERFLY_DEV = SlimeVR Dev Butterfly
|
||||
board_type-SLIMEVR_BUTTERFLY = SlimeVR Butterfly
|
||||
|
||||
## Proportions
|
||||
|
||||
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.
|
||||
@@ -133,6 +145,9 @@ 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
|
||||
@@ -166,7 +181,12 @@ reset-reset_all_warning_default-v2 =
|
||||
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
|
||||
reset-error-mounting-need_full_reset = Ein vollständiger Reset ist vor der Tracker-Ausrichtung erforderlich.
|
||||
reset-error-yaw-need_full_reset = Für den Yaw-Reset ist ein vollständiger Reset erforderlich.
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -186,6 +206,7 @@ navbar-trackers_assign = Tracker-Zuordnung
|
||||
navbar-mounting = Tracker-Ausrichtung
|
||||
navbar-onboarding = Einrichtungs-Assistent
|
||||
navbar-settings = Einstellungen
|
||||
navbar-connect_trackers = Tracker verbinden
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
@@ -211,7 +232,7 @@ widget-drift_compensation-clear = Driftkompensation zurücksetzen
|
||||
|
||||
## Widget: Clear Mounting calibration
|
||||
|
||||
widget-clear_mounting = Befestigungs-Reset zurücksetzen
|
||||
widget-clear_mounting = Tracker-Ausrichtung zurücksetzen
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
@@ -256,6 +277,7 @@ tracker-table-column-name = Name
|
||||
tracker-table-column-type = Typ
|
||||
tracker-table-column-battery = Batterie
|
||||
tracker-table-column-ping = Latenz
|
||||
tracker-table-column-packet_loss = Paketverlust
|
||||
tracker-table-column-tps = TPS
|
||||
tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Beschleunigung X/Y/Z
|
||||
@@ -275,7 +297,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
|
||||
|
||||
@@ -297,6 +319,9 @@ tracker-infos-magnetometer-status-v1 =
|
||||
[ENABLED] Angeschalten
|
||||
*[NOT_SUPPORTED] Nicht unterstützt
|
||||
}
|
||||
tracker-infos-packet_loss = Paketverlust
|
||||
tracker-infos-packets_lost = Pakete verloren
|
||||
tracker-infos-packets_received = Pakete empfangen
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -327,11 +352,16 @@ 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-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-blocked = Update nicht verfügbar. Weitere Veröffentlichungen sind nicht verfügbar.
|
||||
tracker-settings-update = Jetzt aktualisieren
|
||||
tracker-settings-update-title = Firmware-Version
|
||||
tracker-settings-current-version = Aktuelle
|
||||
tracker-settings-latest-version = Aktuelleste
|
||||
tracker-settings-build-date = Herstellungsdatum
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -409,6 +439,8 @@ 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
|
||||
@@ -484,20 +516,34 @@ 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-general-tracker_mechanics-trackers_over_usb = Tracker über USB
|
||||
settings-general-tracker_mechanics-trackers_over_usb-enabled-label = Erlaube HID-Tracker eine USB-Direktverbindung
|
||||
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-hide_yaw_correction-label = Anpassung ausblenden (zum Vergleich ohne Stay Aligned)
|
||||
settings-stay_aligned-general-label = Allgemein
|
||||
settings-stay_aligned-relaxed_poses-label = Entspannte Posen
|
||||
settings-stay_aligned-relaxed_poses-standing = Tracker im Stehen anpassen
|
||||
settings-stay_aligned-relaxed_poses-sitting = Tracker anpassen, während du auf einem Stuhl sitzt
|
||||
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
|
||||
@@ -520,22 +566,26 @@ 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-v1 = Erzwinge Fußausrichtungs-Kalibrierung während der Körperausrichtungs-Kalibrierung.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Fuß-Ausrichtung kalibrieren
|
||||
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
|
||||
@@ -561,7 +611,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 =
|
||||
@@ -582,8 +632,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
|
||||
@@ -651,6 +701,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
|
||||
|
||||
@@ -666,7 +718,7 @@ 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-serial_select = Wählen Sie einen seriellen Anschluss
|
||||
@@ -674,6 +726,11 @@ 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
|
||||
|
||||
@@ -770,6 +827,7 @@ 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
|
||||
@@ -807,9 +865,14 @@ 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-grid = Raster
|
||||
settings-home-list-layout-table = Tabelle
|
||||
|
||||
## Tracking Checlist
|
||||
|
||||
settings-tracking_checklist-active_steps = Aktive Schritte
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -824,12 +887,7 @@ 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-v2 = Tracker mit WLAN
|
||||
onboarding-wifi_creds-skip = WLAN-Zugangsdaten überspringen
|
||||
onboarding-wifi_creds-submit = Weiter!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -839,10 +897,12 @@ onboarding-wifi_creds-ssid-required = WLAN-Name ist erforderlich
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Passwort
|
||||
.placeholder = Passwort eingeben
|
||||
onboarding-wifi_creds-dongle-title = Tracker mit einem Dongle
|
||||
onboarding-wifi_creds-dongle-continue = Fahre mit einem Dongle fort
|
||||
|
||||
## 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
|
||||
@@ -859,11 +919,11 @@ 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
|
||||
|
||||
@@ -893,7 +953,10 @@ 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
|
||||
@@ -934,6 +997,7 @@ onboarding-assignment_tutorial-done = Ich habe Aufkleber und Bänder angebracht!
|
||||
onboarding-assign_trackers-back = Zurück zu den WLAN-Zugangsdaten
|
||||
onboarding-assign_trackers-title = Tracker zuweisen
|
||||
onboarding-assign_trackers-description = Wählen Sie nun aus, welcher Tracker wo befestigt ist. Klicken Sie auf einen Ort, an dem der Tracker platziert ist.
|
||||
onboarding-assign_trackers-unassign_all = Alle Trackerzuweisungen aufheben
|
||||
# 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
|
||||
@@ -1079,6 +1143,9 @@ 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-v2-step-0 = 1. Drücke den Knopf "Kompletter Reset".
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Stehe aufrecht mit den Armen an den Seiten. Schaue unbedingt nach vorne.
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Halte die Position, bis 3 Sekunden abgelaufen sind.
|
||||
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
|
||||
@@ -1092,6 +1159,7 @@ onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Bitte schlie
|
||||
onboarding-manual_proportions-export = Proportionen exportieren
|
||||
onboarding-manual_proportions-import = Proportionen importieren
|
||||
onboarding-manual_proportions-file_type = Körperproportions-Datei
|
||||
onboarding-manual_proportions-grouped_proportions = Gruppierte Proportionen
|
||||
onboarding-manual_proportions-all_proportions = Alle Proportionen
|
||||
onboarding-manual_proportions-estimated_height = Geschätzte Benutzergröße
|
||||
|
||||
@@ -1180,20 +1248,65 @@ onboarding-automatic_proportions-smol_warning-cancel = Zurück
|
||||
|
||||
## User height calibration
|
||||
|
||||
onboarding-user_height-title = Wie groß bist du?
|
||||
onboarding-user_height-description = Wir brauchen deine Größe, um deine Körperproportionen zu berechnen und deine Bewegungen genau darzustellen. Du kannst dies entweder SlimeVR berechnen lassen oder deine Höhe manuell eingeben.
|
||||
onboarding-user_height-calculate = Berechne meine Körpergröße automatisch
|
||||
onboarding-user_height-next_step = Fortfahren und speichern
|
||||
onboarding-user_height-manual-proportions = Manuelle Körperproportionen
|
||||
onboarding-user_height-calibration-title = Kalibrierungsfortschritt
|
||||
onboarding-user_height-calibration-WAITING_FOR_RISE = Steh wieder auf
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = Steh wieder auf und schau nach vorne
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Achte darauf, dass dein Kopf waagerecht ist
|
||||
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-RECORDING_HEIGHT = Steh wieder auf und steh still!
|
||||
onboarding-user_height-calibration-DONE = Erfolg!
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = Die Kalibrierung ist abgelaufen, versuche es nochmal.
|
||||
onboarding-user_height-calibration-ERROR_TOO_HIGH = Die erkannte Benutzerhöhe ist zu hoch, versuche es erneut.
|
||||
onboarding-user_height-calibration-error = Kalibrierung fehlgeschlagen
|
||||
onboarding-user_height-reset-warning =
|
||||
<b>Achtung:</b> Die Proportionen werden zurückgesetzt und auf Basis deiner Körpergröße neu berechnet.
|
||||
Bist du dir sicher?
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
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-step-1 = 1. Bewege dich im Stehen.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Setz dich hin und bewege deine Beine und Füße.
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. Wenn deine Tracker nicht an der richtigen Stelle sind, drücke "Ausrichtungskalibrierung wiederholen".
|
||||
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-title = Entspannte Stehpose
|
||||
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-sitting-title = Entspannte Im-Stuhl-sitzen-Pose
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Nehme eine bequeme Haltung ein. Entspanne dich!
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Drücke die Taste „Pose speichern“.
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Entspannte Sitzposition auf dem Boden
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Setz dich mit den Beinen nach vorne auf den Boden. Entspann dich!
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Drücke die Taste „Pose speichern“.
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Überspringen
|
||||
onboarding-stay_aligned-done-title = Stay aligned aktiviert!
|
||||
onboarding-stay_aligned-done-description = Dein Stay Aligned-Setup ist komplett!
|
||||
onboarding-stay_aligned-previous_step = Zurück
|
||||
onboarding-stay_aligned-next_step = Weiter
|
||||
onboarding-stay_aligned-restart = Neu starten
|
||||
onboarding-stay_aligned-done = Fertig
|
||||
onboarding-stay_aligned-manual_mounting-done = Fertig
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Keine Tracker erkannt oder zugewiesen
|
||||
home-settings = Startseiten-Einstellungen
|
||||
home-settings-close = Schließen
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
@@ -1229,10 +1342,35 @@ 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-select_source = Wähle die Firmware zum Flashen aus
|
||||
firmware_tool-select_source-description = Wähle die Firmware aus, die du auf deinem Board flashen möchtest
|
||||
firmware_tool-select_source-error = Quellen konnten nicht geladen werden
|
||||
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-select_source-not_selected = Keine Quelle ausgewählt
|
||||
firmware_tool-select_source-no_boards = Keine verfügbaren Boards für diese Quelle
|
||||
firmware_tool-select_source-no_versions = Keine verfügbaren Versionen für diese Quelle
|
||||
firmware_tool-board_defaults = Konfigurieren Sie Ihr Board
|
||||
firmware_tool-board_defaults-description = Stelle die Pins oder Einstellungen relativ zu deiner Hardware ein
|
||||
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-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:
|
||||
@@ -1241,8 +1379,10 @@ firmware_tool-flashbtn_step-board_OTHER =
|
||||
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
|
||||
@@ -1257,7 +1397,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_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
|
||||
@@ -1323,6 +1466,13 @@ 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 = Kannst du die Einstellungen nicht finden?
|
||||
vrc_config-page-help-desc = Schauen Sie sich unsere <a>Dokumentation zu diesem Thema</a> an!
|
||||
vrc_config-page-big_menu = Tracking & IK (Großes Menü)
|
||||
vrc_config-page-big_menu-desc = Einstellungen im Zusammenhang mit IK im großen Einstellungsmenü
|
||||
vrc_config-page-wrist_menu = Tracking & IK (Handgelenkmenü)
|
||||
vrc_config-page-wrist_menu-desc = Einstellungen im Zusammenhang mit IK im kleinen Einstellungsmenü (Handgelenkmenü)
|
||||
vrc_config-on = An
|
||||
vrc_config-off = Aus
|
||||
vrc_config-invalid = Sie haben falsch konfigurierte VRChat-Einstellungen!
|
||||
@@ -1333,10 +1483,27 @@ vrc_config-current_value = Aktueller Wert
|
||||
vrc_config-mute = Warnung stummschalten
|
||||
vrc_config-mute-btn = Stummschalten
|
||||
vrc_config-unmute-btn = Stummschaltung aufheben
|
||||
vrc_config-legacy_mode = Verwende Legacy IK Solving
|
||||
vrc_config-disable_shoulder_tracking = Schultertracking deaktivieren
|
||||
vrc_config-shoulder_width_compensation = Schulterbreitenkompensation
|
||||
vrc_config-spine_mode = FBT-Wirbelsäulenmodus
|
||||
vrc_config-tracker_model = FBT-Trackermodell
|
||||
vrc_config-avatar_measurement_type = Avatar-Messung
|
||||
vrc_config-calibration_range = Kalibrierungsbereich
|
||||
vrc_config-calibration_visuals = Display-Kalibrierungsvisualisierungen
|
||||
vrc_config-user_height = Echte Benutzergröße
|
||||
vrc_config-spine_mode-UNKNOWN = Unbekannt
|
||||
vrc_config-spine_mode-LOCK_BOTH = Beide sperren
|
||||
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-BOX = Box
|
||||
vrc_config-tracker_model-SPHERE = Sphäre
|
||||
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
|
||||
|
||||
@@ -1347,3 +1514,53 @@ 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 = Tracking-Checkliste
|
||||
tracking_checklist-settings = Einstellungen der Tracking-Checkliste
|
||||
tracking_checklist-settings-close = Schließen
|
||||
tracking_checklist-status-incomplete = Du bist nicht darauf vorbereitet, SlimeVR zu benutzen!
|
||||
tracking_checklist-status-partial =
|
||||
{ $count ->
|
||||
[one] Sie haben 1 Warnung!
|
||||
*[other] Sie haben { $count } Warnungen!
|
||||
}
|
||||
tracking_checklist-status-complete = Du bist bereit, SlimeVR zu nutzen!
|
||||
tracking_checklist-MOUNTING_CALIBRATION = Tracker-Ausrichtung durchführen
|
||||
tracking_checklist-FEET_MOUNTING_CALIBRATION = Führe eine Fußmontage-Kalibrierung durch
|
||||
tracking_checklist-FULL_RESET = Führe einen vollständigen Reset durch
|
||||
tracking_checklist-FULL_RESET-desc = Manche Tracker benötigen eine erneute Kalibrierung.
|
||||
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 = Kalibriere deine Tracker
|
||||
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-TRACKER_ERROR-desc = Einige deiner Tracker haben einen Fehler. Bitte starte die gelb markierten Tracker neu.
|
||||
tracking_checklist-VRCHAT_SETTINGS = VRChat-Einstellungen konfigurieren
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = Du hast die VRChat-Einstellungen falsch konfiguriert! Das kann sich negativ auf dein Tracking auswirken.
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = Gehen sie zu den VRChat-Warnungen
|
||||
tracking_checklist-UNASSIGNED_HMD = VR-Headset nicht dem Kopf zugewiesen
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = Das VR-Headset sollte als Kopf-Tracker zugewiesen sein.
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = Ändere dein Netzwerkprofil
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc =
|
||||
{ $count ->
|
||||
[one] Dein Netzwerkprofil ist derzeit auf Öffentlich ({ $adapters }) eingestellt. Dies wird für das ordnungsgemäße Funktionieren von SlimeVR nicht empfohlen. <PublicFixLink>Hier erfährst du, wie du das beheben kannst.</PublicFixLink>
|
||||
*[other] Einige deiner Netzwerkadapter sind auf Öffentlich eingestellt:¶{ $adapters }¶Das wird nicht empfohlen, damit SlimeVR ordnungsgemäß funktioniert.¶<PublicFixLink>Hier erfährst du, wie du das beheben kannst.</PublicFixLink>
|
||||
}
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Kontrollpanel öffnen
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = Stay Aligned konfigurieren
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = Zeichne die Stay Aligned-Posen auf, um Drift zu reduzieren
|
||||
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-drift_reset = Drift-Reset
|
||||
toolbar-assigned_trackers = { $count } Tracker zugewiesen
|
||||
toolbar-unassigned_trackers = { $count } Tracker nicht zugewiesen
|
||||
|
||||
@@ -374,3 +374,6 @@ settings-osc-vrchat-network-trackers-feet = Πόδια
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -742,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 =
|
||||
@@ -1224,3 +1219,6 @@ unknown_device-modal-forget = ignowe it
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -109,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
|
||||
@@ -331,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
|
||||
@@ -370,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
|
||||
@@ -407,6 +417,7 @@ 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
|
||||
@@ -567,6 +578,10 @@ 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.
|
||||
@@ -921,11 +936,13 @@ 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-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 =
|
||||
@@ -936,6 +953,12 @@ 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 = Reset tutorial
|
||||
@@ -1334,6 +1357,7 @@ 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
|
||||
@@ -1385,6 +1409,9 @@ 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_defaults = Configure your board
|
||||
firmware_tool-board_defaults-description = Set the pins or settings relative to your hardware
|
||||
@@ -1557,7 +1584,7 @@ error_collection_modal-description_v2 = { settings-interface-behavior-error_trac
|
||||
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
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
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 = 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
|
||||
websocket-error-close = Salir de SlimeVR
|
||||
websocket-error-logs = Abrir la carpeta de registros
|
||||
@@ -33,6 +33,10 @@ tips-failed_webgl = Fallo al inicializar WebGL.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Metro
|
||||
unit-foot = Pie
|
||||
unit-inch = Pulgada
|
||||
unit-cm = cm
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -111,6 +115,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 = Guante SlimeVR Dev IMU
|
||||
board_type-GESTURES = Gestos
|
||||
board_type-ESP32S3_SUPERMINI = ESP32-S3 Supermini
|
||||
board_type-GENERIC_NRF = nRF Genérico
|
||||
board_type-SLIMEVR_BUTTERFLY_DEV = SlimeVR Dev Butterfly
|
||||
board_type-SLIMEVR_BUTTERFLY = SlimeVR Butterfly
|
||||
|
||||
## Proportions
|
||||
|
||||
@@ -252,6 +261,10 @@ 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
|
||||
reset-error-no_feet_tracker = Tracker de pie sin asignar
|
||||
reset-error-no_fingers_tracker = Tracker de dedos sin asignar
|
||||
reset-error-mounting-need_full_reset = Es necesario un reinicio completo antes de montar
|
||||
reset-error-yaw-need_full_reset = Es necesario un reinicio completo antes del reinicio horizontal
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -271,10 +284,12 @@ navbar-trackers_assign = Asignación de sensores
|
||||
navbar-mounting = Calibración de montura
|
||||
navbar-onboarding = Asistente de configuración
|
||||
navbar-settings = Ajustes
|
||||
navbar-connect_trackers = Conectar Trackers
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = Grabar BVH
|
||||
bvh-stop_recording = Guardar grabación BVH
|
||||
bvh-recording = Grabando...
|
||||
bvh-save_title = Guardar grabación BVH
|
||||
|
||||
@@ -418,6 +433,9 @@ tracker-settings-update-up_to_date = Actualizado
|
||||
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
|
||||
tracker-settings-current-version = Actual
|
||||
tracker-settings-latest-version = Último
|
||||
tracker-settings-build-date = Fecha de fabricación
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -495,6 +513,8 @@ settings-sidebar-osc_vmc = VMC
|
||||
settings-sidebar-utils = Utilidades
|
||||
settings-sidebar-serial = Consola serial
|
||||
settings-sidebar-appearance = Apariencia
|
||||
settings-sidebar-home = Pantalla de Inicio
|
||||
settings-sidebar-checklist = Lista de Tracking
|
||||
settings-sidebar-notifications = Notificaciones
|
||||
settings-sidebar-behavior = Comportamiento
|
||||
settings-sidebar-firmware-tool = Herramienta de firmware DIY
|
||||
@@ -651,7 +671,7 @@ settings-general-fk_settings-skeleton_settings-extended_spine_model = Modelo ext
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Modelo extendido del pelvis
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees_model = Modelo extendido de la rodilla
|
||||
settings-general-fk_settings-skeleton_settings-ratios = Radios del esqueleto
|
||||
settings-general-fk_settings-skeleton_settings-ratios-description = Cambia los valores de los ajustes del esqueleto. Podes llegar a necesitar reajustar tus proporciones después de cambiar estos valores.
|
||||
settings-general-fk_settings-skeleton_settings-ratios-description = Cambia los valores de los ajustes del esqueleto. Podrías llegar a necesitar reajustar tus proporciones después de cambiar estos valores.
|
||||
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Imputar de la cintura al pecho hasta la cadera
|
||||
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Imputar de la cintura al pecho hasta las piernas
|
||||
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Imputar de la cadera al pecho hasta las piernas
|
||||
@@ -925,9 +945,15 @@ settings-utils-advanced-open_logs-label = Abrir carpeta
|
||||
|
||||
## Home Screen
|
||||
|
||||
settings-home-list-layout = Diseño de la lista de Trackers
|
||||
settings-home-list-layout-desc = Selecciona uno de los posibles diseños de la pantalla de inicio
|
||||
settings-home-list-layout-grid = Cuadrícula
|
||||
settings-home-list-layout-table = Tabla
|
||||
|
||||
## Tracking Checlist
|
||||
|
||||
settings-tracking_checklist-active_steps = Pasos Activos
|
||||
settings-tracking_checklist-active_steps-desc = Lista de todos los pasos en la lista de tracking. Puedes elegir desactivar pasos específicos.
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -944,11 +970,13 @@ 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
|
||||
onboarding-wifi_creds-v2 = Trackers utilizando 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-description-v2 =
|
||||
La mayoría de trackers (como los trackers oficiales de SlimeVR) utilizan Wi-Fi para conectar al servidor.
|
||||
Por favor utiliza las credenciales de la red Wi-Fi donde tu dispositivo esta actualmente conectado.
|
||||
|
||||
¡Asegúrate de utilizar una conexión Wi-Fi 2.4Ghz para tus trackers!
|
||||
onboarding-wifi_creds-skip = Saltar ajustes de Wi-Fi
|
||||
onboarding-wifi_creds-submit = ¡Enviar!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -958,12 +986,16 @@ onboarding-wifi_creds-ssid-required = Se requiere el nombre del Wi-Fi
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Contraseña
|
||||
.placeholder = Ingresa la contraseña
|
||||
onboarding-wifi_creds-dongle-title = Trackers utilizando un dongle
|
||||
onboarding-wifi_creds-dongle-description = ¡Si tus trackers llegaron con un dongle, conéctalo a tu dispositivo y deberías estar listo para usar!
|
||||
onboarding-wifi_creds-dongle-wip = Esta sección es un trabajo en progreso. Una página dedicada para administrar trackers que se conectan via dongle sera hecha pronto.
|
||||
onboarding-wifi_creds-dongle-continue = Continuar con un dongle
|
||||
|
||||
## Mounting setup
|
||||
|
||||
onboarding-reset_tutorial-back = Volver a la calibración de montura
|
||||
onboarding-reset_tutorial = Reiniciar tutorial
|
||||
onboarding-reset_tutorial-explanation = Mientras estés usando tus trackers, estos pueden empezar a desalinearse por el drift horizontal del IMU, o porque los moviste físicamente. Hay varias formas de arreglar este tipo de problemas.
|
||||
onboarding-reset_tutorial-explanation = Mientras estés usando tus trackers, estos pueden empezar a desalinearse por el desvío horizontal del IMU, o porque los moviste físicamente. Hay varias formas de arreglar este tipo de problemas.
|
||||
onboarding-reset_tutorial-skip = Saltar paso
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-0 =
|
||||
@@ -974,8 +1006,8 @@ onboarding-reset_tutorial-0 =
|
||||
onboarding-reset_tutorial-1 =
|
||||
Toca { $taps } veces el tracker resaltado para activar el reinicio completo.
|
||||
|
||||
Se requiere que estas de forma parada (pose en i). Esto tiene un delay de 3 segundos (configurable) antes de que actualmente suceda.
|
||||
Esto reinicia completamente la posición y rotación de todos tus sensores, debería de arreglar la mayoría de tus problemas.
|
||||
Se requiere que estés de pie (pose en i). Esto tiene una demora de 3 segundos (configurable) antes de que realmente suceda.
|
||||
Esto reinicia completamente la posición y rotación de todos tus trackers. Debería de arreglar la mayoría de los problemas.
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-2 =
|
||||
Toca { $taps } veces el tracker resaltado para activar el reinicio de montura.
|
||||
@@ -1063,6 +1095,7 @@ onboarding-assignment_tutorial-done = ¡Puse las correas y stickers!
|
||||
onboarding-assign_trackers-back = Volver a las credenciales Wi-Fi
|
||||
onboarding-assign_trackers-title = Asignación de sensores
|
||||
onboarding-assign_trackers-description = Debes escoger dónde van los sensores. Has clic en la ubicación donde quieras colocar un sensor
|
||||
onboarding-assign_trackers-unassign_all = Des-asignar todos los 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
|
||||
@@ -1208,6 +1241,8 @@ onboarding-automatic_mounting-done-restart = Volver al inicio
|
||||
onboarding-automatic_mounting-mounting_reset-title = Reinicio de montura
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Arrodíllate en una posición de «esquiar» con tus piernas dobladas, la parte superior de tu cuerpo inclinada hacia adelante, y tus brazos doblados.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Presiona el botón «Reinicio de montura» y espera 3 segundos hasta que se reinicie la montura.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-0 = 1. Párate de puntillas con ambos pies apuntando hacia el frente. Alternativamente puedes hacerlo sentándote en una silla.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. Presiona el botón "Calibración de pies" y espera por 3 segundos hasta que la orientación de los trackers se reinicie.
|
||||
onboarding-automatic_mounting-preparation-title = Preparación
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Presiona el botón «Reinicio completo».
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Párate recto con los brazos a tus lados. Asegúrate de mirar hacia adelante.
|
||||
@@ -1219,6 +1254,7 @@ onboarding-automatic_mounting-return-home = Hecho
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back-scaled = Regresar a Proporciones Escaladas
|
||||
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
|
||||
@@ -1318,6 +1354,30 @@ onboarding-automatic_proportions-smol_warning-cancel = Volver
|
||||
|
||||
## User height calibration
|
||||
|
||||
onboarding-user_height-title = ¿Cuál es tu altura?
|
||||
onboarding-user_height-description = Necesitamos tu altura para calcular tus proporciones corporales y representar tus movimientos de manera precisa. Puedes dejar que SlimeVR lo calcule, o puedes ingresar tu altura manualmente.
|
||||
onboarding-user_height-need_head_tracker = Un casco y controles con rastreo posicional son requeridos para realizar la calibración.
|
||||
onboarding-user_height-calculate = Calcular mi altura automáticamente
|
||||
onboarding-user_height-next_step = Continuar y guardar
|
||||
onboarding-user_height-manual-proportions = Proporciones Manuales
|
||||
onboarding-user_height-calibration-title = Progreso de Calibración
|
||||
onboarding-user_height-calibration-RECORDING_FLOOR = Toca el suelo con la punta de tu control
|
||||
onboarding-user_height-calibration-WAITING_FOR_RISE = Vuelve a pararte
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = Vuelve a pararte y mira hacia adelante
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Asegúrate de que tu cabeza este derecha
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = No mires al suelo
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = No mires demasiado arriba
|
||||
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = Asegúrate que el control este apuntando hacia abajo
|
||||
onboarding-user_height-calibration-RECORDING_HEIGHT = ¡Vuelve a pararte y no te muevas!
|
||||
onboarding-user_height-calibration-DONE = ¡Éxito!
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = Calibración agotada, inténtalo de nuevo.
|
||||
onboarding-user_height-calibration-ERROR_TOO_HIGH = La altura del usuario detectada es demasiado alta, inténtalo de nuevo.
|
||||
onboarding-user_height-calibration-ERROR_TOO_SMALL = La altura del usuario detectada es demasiado baja. Asegúrate de pararte derecho y mirar hacia el frente al final de la calibración.
|
||||
onboarding-user_height-calibration-error = Calibración Fallida
|
||||
onboarding-user_height-manual-tip = Mientras ajustas tu altura, intenta poses distintas y ve como el esqueleto se ajusta a tu cuerpo.
|
||||
onboarding-user_height-reset-warning =
|
||||
<b>Peligro:</b> Esto reiniciará tus proporciones para ser basadas en tu altura.
|
||||
¿Seguro quieres hacer esto?
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
@@ -1356,6 +1416,7 @@ onboarding-stay_aligned-done = Hecho
|
||||
## Home
|
||||
|
||||
home-no_trackers = No hay sensores detectados o asignados
|
||||
home-settings = Ajustes de la Página de Inicio
|
||||
home-settings-close = Cerrar
|
||||
|
||||
## Trackers Still On notification
|
||||
@@ -1422,6 +1483,9 @@ firmware_tool-flash_method_step-serial-v2 =
|
||||
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-v2 = Enciende el tracker mientras haces corto en el segundo pad rectangular de FLASH desde el borde en la parte superior de la placa con el protector metálico del microcontrolador. El LED del tracker debería hacer un parpadeo breve.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12-v2 = Enciende el tracker mientras haces corto en pad circular de FLASH en la parte superior de la placa con el protector metálico del microcontrolador. El LED del tracker debería hacer un parpadeo breve.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14-v2 = Enciende el tracker mientras pulsas el botón FLASH en la parte superior de la placa. El LED del tracker deberia hacer un parpadeo breve.
|
||||
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.
|
||||
@@ -1437,7 +1501,7 @@ firmware_tool-flash_method_serial-no_devices = No se han detectado dispositivos
|
||||
firmware_tool-build_step = Compilando
|
||||
firmware_tool-build_step-description = El firmware se está compilando, por favor espere
|
||||
firmware_tool-flashing_step = Flasheando
|
||||
firmware_tool-flashing_step-description = Sus sensores se están flasheando, por favor siga las instrucciones en la pantalla
|
||||
firmware_tool-flashing_step-description = Sus trackers se están flasheando, por favor siga las instrucciones en la pantalla
|
||||
firmware_tool-flashing_step-warning-v2 = No desconectes o apagues el tracker durante el proceso de subida a menos que se te indique, puede causar que tu placa quede inutilizable.
|
||||
firmware_tool-flashing_step-flash_more = Flashear más sensores
|
||||
firmware_tool-flashing_step-exit = Salir
|
||||
@@ -1561,9 +1625,62 @@ 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 = Lista de Tracking
|
||||
tracking_checklist-settings = Ajustes de la Lista de Tracking
|
||||
tracking_checklist-settings-close = Cerrar
|
||||
tracking_checklist-status-incomplete = ¡No estás listo para usar SlimeVR!
|
||||
tracking_checklist-status-partial =
|
||||
{ $count ->
|
||||
[one] ¡Tienes 1 advertencia!
|
||||
[many] ¡Tienes { $count } advertencias!
|
||||
*[other] { "" }
|
||||
}
|
||||
tracking_checklist-status-complete = ¡Estás listo para usar SlimeVR!
|
||||
tracking_checklist-MOUNTING_CALIBRATION = Realizar una calibración de montura
|
||||
tracking_checklist-FEET_MOUNTING_CALIBRATION = Realizar una calibración de montura de los pies
|
||||
tracking_checklist-FULL_RESET = Realizar un reinicio completo
|
||||
tracking_checklist-FULL_RESET-desc = Algunos trackers necesitan realizar un reinicio.
|
||||
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR no se está ejecutando
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR no se esta ejecutando. ¿Lo estas usando para VR?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-open = Abrir SteamVR
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION = Calibra tus trackers
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = No realizaste una calibración para los trackers. Por favor deja reposar tus trackers (resaltados en amarillo) en una superficie estable por unos segundos.
|
||||
tracking_checklist-TRACKER_ERROR = Trackers con Errores
|
||||
tracking_checklist-TRACKER_ERROR-desc = Algunos de tus trackers tienen un error. Por favor reinicia el tracker resaltado en amarillo.
|
||||
tracking_checklist-VRCHAT_SETTINGS = Configurar ajustes de VRChat
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = ¡Tienes ajustes mal puestos en VRChat! Esto puede impactar negativamente tu tracking.
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = Ir a Advertencias de VRChat
|
||||
tracking_checklist-UNASSIGNED_HMD = Casco VR sin asignar a Cabeza
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = El casco VR debería estar asignado como un tracker de cabeza.
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = Cambia tu perfil de red
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc =
|
||||
{ $count ->
|
||||
[one]
|
||||
Tu perfil de red esta actualmente configurado como Público ({ $adapters }).
|
||||
Esto no es recomendado para el correcto funcionamiento de SlimeVR.
|
||||
<PublicFixLink>Ve como arreglarlo aquí</PublicFixLink>
|
||||
[many]
|
||||
Algunos de tus adaptadores de red están configurados como públicos:
|
||||
{ $adapters }
|
||||
Esto no es recomendado para el correcto funcionamiento de SlimeVR.
|
||||
<PublicFixLink>Ve como arreglarlo aquí</PublicFixLink>
|
||||
*[other] { "" }
|
||||
}
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Abrir Panel de Control
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = Configurar Stay Aligned
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = Graba las poses de Stay Aligned para reducir el desvío
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = Abrir el ayudante de Stay Aligned
|
||||
tracking_checklist-ignore = Ignorar
|
||||
preview-mocap_mode_soon = Modo Mocap (Pronto™)
|
||||
preview-disable_render = Desactivar renderizado
|
||||
preview-disabled_render = Renderizado desactivado
|
||||
toolbar-mounting_calibration = Calibración de montura
|
||||
toolbar-mounting_calibration-default = Cuerpo
|
||||
toolbar-mounting_calibration-feet = Pies
|
||||
toolbar-mounting_calibration-fingers = Dedos
|
||||
toolbar-drift_reset = Reinicio de Desviación
|
||||
toolbar-assigned_trackers = { $count } trackers asignados
|
||||
toolbar-unassigned_trackers = { $count } trackers sin asignar
|
||||
|
||||
@@ -33,6 +33,10 @@ tips-failed_webgl = No se pudo iniciar WebGL.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Metro
|
||||
unit-foot = Pie
|
||||
unit-inch = Pulgada
|
||||
unit-cm = cm
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -241,10 +245,12 @@ navbar-trackers_assign = Asignación de trackers
|
||||
navbar-mounting = Calibración de montura
|
||||
navbar-onboarding = Asistente de Configuración
|
||||
navbar-settings = Configuración
|
||||
navbar-connect_trackers = Conectar Trackers
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = Grabar BVH
|
||||
bvh-stop_recording = Guardar grabación BVH
|
||||
bvh-recording = Grabando...
|
||||
bvh-save_title = Guardar grabación BVH
|
||||
|
||||
@@ -381,6 +387,7 @@ 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-incompatible = No se puede actualizar. Versión de placa o firmware incompatible
|
||||
tracker-settings-update-low-battery = No se puede actualizar. Batería inferior al 50%
|
||||
tracker-settings-update-up_to_date = Actualizado
|
||||
tracker-settings-update-blocked = Actualización no disponible. No hay otras versiones disponibles
|
||||
@@ -451,6 +458,7 @@ mounting_selection_menu-close = Cerrar
|
||||
|
||||
settings-sidebar-title = Configuración
|
||||
settings-sidebar-general = General
|
||||
settings-sidebar-steamvr = SteamVR
|
||||
settings-sidebar-tracker_mechanics = Mecánicas del tracker
|
||||
settings-sidebar-stay_aligned = Mantener Alineado
|
||||
settings-sidebar-fk_settings = Configuración del tracking
|
||||
@@ -899,11 +907,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 =
|
||||
@@ -1484,3 +1487,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
|
||||
|
||||
|
||||
@@ -559,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 =
|
||||
@@ -807,3 +802,6 @@ status_system-StatusTrackerError = Jälgijal { $trackerName } on tõrge.
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -592,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 =
|
||||
@@ -910,3 +905,6 @@ status_system-StatusTrackerError = { $trackerName } jäljittimessä on virhe
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
## Websocket (server) status
|
||||
|
||||
websocket-connecting = Connexion au serveur
|
||||
websocket-connecting = Chargement...
|
||||
websocket-connection_lost = Connexion avec le serveur perdue. Reconnexion...
|
||||
websocket-connection_lost-desc = Il semble que le serveur SlimeVR ait planté. Vérifiez les logs et redémarrez le programme.
|
||||
websocket-timedout = Impossible de se connecter au serveur
|
||||
@@ -33,7 +33,7 @@ tips-failed_webgl = Échec de l'initialisation de WebGL.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Metre
|
||||
unit-meter = Mètre
|
||||
unit-foot = Pied
|
||||
unit-inch = Pouce
|
||||
unit-cm = cm
|
||||
@@ -115,6 +115,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 = Gestes
|
||||
board_type-ESP32S3_SUPERMINI = ESP32-S3 Supermini
|
||||
board_type-GENERIC_NRF = nRF Générique
|
||||
board_type-SLIMEVR_BUTTERFLY_DEV = SlimeVR Dev Butterfly
|
||||
board_type-SLIMEVR_BUTTERFLY = SlimeVR Butterfly
|
||||
|
||||
## Proportions
|
||||
|
||||
@@ -225,7 +230,7 @@ skeleton_bone-LOWER_ARM-desc =
|
||||
skeleton_bone-HAND_Y = Distance Y des mains
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
Ceci est la distance verticale entre vos poignets et le milieu de vos main.
|
||||
Pour l’ajuster pour la capture de mouvement, ajustez correctement la longueur des bras et modifiez-la jusqu’à ce que votre
|
||||
Pour l’ajuster pour la capture de mouvement, ajustez correctement la longueur des bras et modifiez-la jusqu’à ce que vos
|
||||
capteurs de main soient alignés verticalement avec le milieu de vos mains.
|
||||
Pour l’ajuster pour le suivi des coudes à partir de vos manettes, réglez la longueur des bras à 0 et
|
||||
modifiez-la jusqu’à ce que vos capteurs de coude soient alignés verticalement avec vos poignets.
|
||||
@@ -256,9 +261,10 @@ 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 n’est assigné
|
||||
reset-error-no_fingers_tracker = Aucun traqueur de doigts n'est assigné
|
||||
reset-error-no_feet_tracker = Aucun capteur de pieds n’est assigné
|
||||
reset-error-no_fingers_tracker = Aucun capteur de doigts n'est assigné
|
||||
reset-error-mounting-need_full_reset = Nécessite une réinitialisation complète avant de le monter
|
||||
reset-error-yaw-need_full_reset = Nécessite une réinitialisation complète avant une réinitialisation horizontale
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -278,6 +284,7 @@ navbar-trackers_assign = Attribution des capteurs
|
||||
navbar-mounting = Alignement des capteurs
|
||||
navbar-onboarding = Assistant de configuration
|
||||
navbar-settings = Réglages
|
||||
navbar-connect_trackers = Connecter les capteurs
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
@@ -348,6 +355,7 @@ tracker-table-column-name = Nom
|
||||
tracker-table-column-type = Type
|
||||
tracker-table-column-battery = Batterie
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-packet_loss = Pertes de paquets
|
||||
tracker-table-column-tps = TPS
|
||||
tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Accél. X/Y/Z
|
||||
@@ -389,6 +397,9 @@ tracker-infos-magnetometer-status-v1 =
|
||||
[ENABLED] Activé
|
||||
*[NOT_SUPPORTED] Non pris en charge
|
||||
}
|
||||
tracker-infos-packet_loss = Pertes de paquets
|
||||
tracker-infos-packets_lost = Paquets perdus
|
||||
tracker-infos-packets_received = Paquets reçus
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -426,6 +437,9 @@ tracker-settings-update-up_to_date = À jour
|
||||
tracker-settings-update-blocked = Mise à jour non disponible. Aucune autre version disponible
|
||||
tracker-settings-update = Mettre à jour maintenant
|
||||
tracker-settings-update-title = Version du micrologiciel
|
||||
tracker-settings-current-version = Actuel
|
||||
tracker-settings-latest-version = Dernière version
|
||||
tracker-settings-build-date = Date de build
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -504,6 +518,7 @@ settings-sidebar-utils = Utilitaires
|
||||
settings-sidebar-serial = Console série
|
||||
settings-sidebar-appearance = Apparence
|
||||
settings-sidebar-home = Ecran d'accueil
|
||||
settings-sidebar-checklist = Checklist de suivi
|
||||
settings-sidebar-notifications = Notifications
|
||||
settings-sidebar-behavior = Comportement
|
||||
settings-sidebar-firmware-tool = Outil de micrologiciel DIY
|
||||
@@ -589,6 +604,9 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Utilise le magnétomètre sur tous les capteurs dotés d'un micrologiciel compatible, réduisant ainsi la dérive dans des environnements magnétiques stables.
|
||||
Peut être désactivé par capteur dans les paramètres du capteur. <b>Ne fermez aucun des capteurs en changeant cette option !</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Utiliser le magnétomètre sur les capteurs
|
||||
settings-general-tracker_mechanics-trackers_over_usb = Capteurs via USB
|
||||
settings-general-tracker_mechanics-trackers_over_usb-description = Permet de recevoir des données de suivi HID via USB. Assurez-vous que les capteurs connectés ont <b>la connexion via HID</b> activée !
|
||||
settings-general-tracker_mechanics-trackers_over_usb-enabled-label = Permettre aux capteurs HID de se connecter directement via USB
|
||||
settings-stay_aligned = Garder Aligné
|
||||
settings-stay_aligned-description = Garder Aligné réduit la dérive en ajustant progressivement vos capteurs pour qu’ils correspondent à vos postures détendues.
|
||||
settings-stay_aligned-setup-label = Configurer Garder Aligné
|
||||
@@ -851,7 +869,7 @@ settings-osc-vrchat-network-port_out =
|
||||
settings-osc-vrchat-network-address = Adresse réseau
|
||||
settings-osc-vrchat-network-address-description-v1 = Choisissez l'adresse à laquelle envoyer des données. Peut être laissé intact pour VRChat.
|
||||
settings-osc-vrchat-network-address-placeholder = Adresse IP VRChat
|
||||
settings-osc-vrchat-network-trackers = capteurs
|
||||
settings-osc-vrchat-network-trackers = Capteurs
|
||||
settings-osc-vrchat-network-trackers-description = Sélectionner quels capteurs envoyer via OSC.
|
||||
settings-osc-vrchat-network-trackers-chest = Poitrine
|
||||
settings-osc-vrchat-network-trackers-hip = Hanche
|
||||
@@ -931,11 +949,15 @@ settings-utils-advanced-open_logs-label = Ouvrir le dossier
|
||||
|
||||
## Home Screen
|
||||
|
||||
settings-home-list-layout = Disposition de la liste des capteurs
|
||||
settings-home-list-layout-desc = Sélectionnez l'une des dispositions possibles de l'écran d'accueil
|
||||
settings-home-list-layout-grid = Grille
|
||||
settings-home-list-layout-table = Tableau
|
||||
|
||||
## Tracking Checlist
|
||||
|
||||
settings-tracking_checklist-active_steps = Etapes actives
|
||||
settings-tracking_checklist-active_steps-desc = Liste de toutes les étapes de la checklist de suivi. Vous pouvez choisir de désactiver certaines étapes.
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -952,11 +974,13 @@ 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
|
||||
onboarding-wifi_creds-v2 = Capteurs utilisant le 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-description-v2 =
|
||||
La plupart des capteurs (comme les capteurs officiels SlimeVR) utilisent le Wi-Fi pour se connecter au serveur.
|
||||
Veuillez utiliser les identifiants du réseau Wi-Fi auquel votre appareil est actuellement connecté.
|
||||
|
||||
Assurez-vous d’utiliser une connexion Wi-Fi 2,4 GHz pour vos capteurs !
|
||||
onboarding-wifi_creds-skip = Passer configuration Wi-Fi
|
||||
onboarding-wifi_creds-submit = Valider
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -966,6 +990,10 @@ onboarding-wifi_creds-ssid-required = Le nom du Wi-Fi est requis
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Mot de passe du Wi-Fi
|
||||
.placeholder = Mot de passe
|
||||
onboarding-wifi_creds-dongle-title = Capteurs utilisant un dongle
|
||||
onboarding-wifi_creds-dongle-description = Si vos capteurs ont été livrés avec un dongle, branchez-le à votre appareil et vous devriez être prêt !
|
||||
onboarding-wifi_creds-dongle-wip = Cette section est en cours de développement. Une page dédiée à la gestion des capteurs connectés via un dongle sera bientôt créée.
|
||||
onboarding-wifi_creds-dongle-continue = Continuer avec un dongle
|
||||
|
||||
## Mounting setup
|
||||
|
||||
@@ -1071,6 +1099,7 @@ onboarding-assignment_tutorial-done = J'ai mis les autocollants et les sangles !
|
||||
onboarding-assign_trackers-back = Revenir aux identifiants Wi-Fi
|
||||
onboarding-assign_trackers-title = Attribuer des capteurs
|
||||
onboarding-assign_trackers-description = Choisissons où mettre chaque capteur.
|
||||
onboarding-assign_trackers-unassign_all = Désattribuer tout les capteurs
|
||||
# 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
|
||||
@@ -1215,6 +1244,8 @@ onboarding-automatic_mounting-done-restart = Retourner au début
|
||||
onboarding-automatic_mounting-mounting_reset-title = Réinitialisation de l'alignement
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Accroupissez-vous dans une pose de "ski" avec les jambes pliées, le haut du corps incliné vers l'avant et les bras pliés.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Appuyez sur le bouton "Réinitialiser l'alignement" et attendez 3 secondes avant que l'alignement des capteurs se calibre.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-0 = 1. Mettez-vous sur la pointe des pieds, les deux pieds pointés vers l’avant. Vous pouvez aussi le faire assis sur une chaise.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. Appuyez sur le bouton « Calibration des pieds » et attendez 3 secondes avant que l’orientation de l'alignement des capteurs ne se réinitialise.
|
||||
onboarding-automatic_mounting-preparation-title = Préparation
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Appuyez sur le bouton « Réinitialisation complète ».
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Tenez-vous droit debout, les bras le long du corps. Assurez-vous de regarder vers l’avant.
|
||||
@@ -1226,6 +1257,7 @@ onboarding-automatic_mounting-return-home = Terminé
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back-scaled = Retour aux proportions mises à l'échelle
|
||||
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
|
||||
@@ -1326,9 +1358,29 @@ onboarding-automatic_proportions-smol_warning-cancel = Retour
|
||||
## User height calibration
|
||||
|
||||
onboarding-user_height-title = Quelle est votre taille ?
|
||||
onboarding-user_height-description = Nous avons besoin de votre taille pour calculer les proportions de votre corps ainsi que pour représenter précisément vos mouvements. Vous pouvez laisser SlimeVR la calculer ou entrer votre taille manuellement.
|
||||
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
|
||||
onboarding-user_height-manual-proportions = Proportions manuelles
|
||||
onboarding-user_height-calibration-title = Progression de la calibration
|
||||
onboarding-user_height-calibration-RECORDING_FLOOR = Touchez le sol avec l'extrémité de votre contrôleur
|
||||
onboarding-user_height-calibration-WAITING_FOR_RISE = Relevez-vous
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = Relevez-vous et regardez droit devant vous
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Assurez-vous que votre tête est bien droite
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = Ne regardez pas vers le sol
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = Ne regardez pas trop haut
|
||||
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = Assurez-vous que votre manette pointe vers le bas
|
||||
onboarding-user_height-calibration-RECORDING_HEIGHT = Relevez-vous et restez immobile !
|
||||
onboarding-user_height-calibration-DONE = Succès !
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = Délais de calibration expiré, veuillez réessayer.
|
||||
onboarding-user_height-calibration-ERROR_TOO_HIGH = La taille détectée est trop grande, veuillez réessayez.
|
||||
onboarding-user_height-calibration-ERROR_TOO_SMALL = La taille détectée est trop petite. Veuillez rester droit et regardez devant vous à la fin de la calibration.
|
||||
onboarding-user_height-calibration-error = Calibration échouée
|
||||
onboarding-user_height-manual-tip = En ajustant votre taille, essayez différentes poses et regardez comment le squelette suit vos mouvements.
|
||||
onboarding-user_height-reset-warning =
|
||||
<b>Attention :</b> Cette action réinitialisera vos proportions pour être basées sur votre taille.
|
||||
Êtes-vous sûr de vouloir continuer ?
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
@@ -1363,10 +1415,13 @@ onboarding-stay_aligned-previous_step = Précédent
|
||||
onboarding-stay_aligned-next_step = Prochain
|
||||
onboarding-stay_aligned-restart = Recommencer
|
||||
onboarding-stay_aligned-done = Fait
|
||||
onboarding-stay_aligned-manual_mounting-done = Terminé
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Aucun capteur détecté ou attribué
|
||||
home-settings = Paramètres de la page d'accueil
|
||||
home-settings-close = Fermer
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
@@ -1411,6 +1466,9 @@ 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-select_source-not_selected = Aucune source sélectionnée
|
||||
firmware_tool-select_source-no_boards = Aucune carte disponible pour cette source
|
||||
firmware_tool-select_source-no_versions = Aucune version disponible pour cette source
|
||||
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
|
||||
@@ -1432,6 +1490,9 @@ firmware_tool-flash_method_step-serial-v2 =
|
||||
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-v2 = Allumez le capteur tout en court-circuitant le second pad FLASH rectangulaire à partir du bord en haut de la carte jusqu’à la protection métallique du microcontrôleur. La LED du capteur devrait faire un clignotement rapide.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12-v2 = Allumez le capteur tout en court-circuitant le pad FLASH circulaire sur le dessus de la carte à la protection métallique du microcontrôleur. La LED du capteur devrait faire un clignotement rapide.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14-v2 = Allumez le capteur tout en appuyant sur le bouton FLASH sur le dessus de la carte. La LED du capteur devrait faire un clignotement brièvement.
|
||||
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.
|
||||
@@ -1571,3 +1632,57 @@ 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
|
||||
|
||||
tracking_checklist = Checklist de suivi
|
||||
tracking_checklist-settings = Paramètres de lachecklist de suivi
|
||||
tracking_checklist-settings-close = Fermer
|
||||
tracking_checklist-status-incomplete = Vous n’êtes pas prêt à utiliser SlimeVR !
|
||||
tracking_checklist-status-partial =
|
||||
{ $count ->
|
||||
[one] Vous avez 1 avertissement !
|
||||
*[other] Vous avez { $count } avertissements !
|
||||
}
|
||||
tracking_checklist-status-complete = Vous êtes prêt à utiliser SlimeVR !
|
||||
tracking_checklist-MOUNTING_CALIBRATION = Effectuer une calibration de l'alignement
|
||||
tracking_checklist-FEET_MOUNTING_CALIBRATION = Effectuer une calibration de l'alignement des pieds
|
||||
tracking_checklist-FULL_RESET = Faire une réinitialisation complète
|
||||
tracking_checklist-FULL_RESET-desc = Certains capteurs nécessitent une réinitialisation.
|
||||
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR n'est pas lancé
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR n'est pas lancé. L’utilisez-vous pour la VR ?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-open = Lancer SteamVR
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION = Calibrer vos capteurs
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = Vous n’avez pas fait de calibration de capteur. Veuillez laisser vos capteurs (surlignés en jaune) reposer sur une surface stable pendant quelques seconds.
|
||||
tracking_checklist-TRACKER_ERROR = Capteurs avec erreur
|
||||
tracking_checklist-TRACKER_ERROR-desc = Certains de vos capteurs ont une erreur. Veuillez redémarrer les capteurs surlignés en jaune.
|
||||
tracking_checklist-VRCHAT_SETTINGS = Configurez les paramètres de VRChat
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = Vous avez mal configuré les paramètres de VRChat ! Cela peut dégrader votre suivi.
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = Aller sur les avertissements de VRChat
|
||||
tracking_checklist-UNASSIGNED_HMD = Casque VR non attribué à la tête
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = Le casque VR devrait être attribué en tant que capteur de la tête.
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = Modifier votre profil de réseau
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc =
|
||||
{ $count ->
|
||||
[one] Votre profil de réseau est actuellement défini comme étant public. Ce n’est pas recommandé pour le fonctionnement correct de SlimeVR. <PublicFixLink>Voyez comment y remédier ici.</PublicFixLink>
|
||||
*[other]
|
||||
Certains de vos adaptateurs réseau sont réglés sur public :
|
||||
{ $adapters }
|
||||
Ce n’est pas recommandé pour que SlimeVR fonctionne correctement.
|
||||
<PublicFixLink>Voyez comment y remédier ici.</PublicFixLink>
|
||||
}
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Ouvrir le panneau de configuration
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = Configurer Garder Aligné
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = Enregistrez les poses Garder Aligné pour réduire la dérive
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = Ouvrir l'assistant de Garder Aligné
|
||||
tracking_checklist-ignore = Ignorer
|
||||
preview-mocap_mode_soon = Mode Mocap (Bientôt™)
|
||||
preview-disable_render = Désactiver le rendu
|
||||
preview-disabled_render = Rendu désactivé
|
||||
toolbar-mounting_calibration = Calibration de l'alignement
|
||||
toolbar-mounting_calibration-default = Corps
|
||||
toolbar-mounting_calibration-feet = Pieds
|
||||
toolbar-mounting_calibration-fingers = Doigts
|
||||
toolbar-drift_reset = Réinitialisation de la dérive
|
||||
toolbar-assigned_trackers = { $count } capteurs assignés
|
||||
toolbar-unassigned_trackers = { $count } capteurs non assignés
|
||||
|
||||
@@ -384,3 +384,6 @@ home-no_trackers = לא זוהו או הוקצו חיישנים
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -910,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 =
|
||||
@@ -1496,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
|
||||
|
||||
|
||||
@@ -577,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 =
|
||||
@@ -795,3 +790,6 @@ unknown_device-modal-forget = 無視する
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -743,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 =
|
||||
@@ -1216,3 +1211,6 @@ unknown_device-modal-forget = 무시할게요
|
||||
|
||||
error_collection_modal-title = 오류를 수집해도 될까요?
|
||||
error_collection_modal-confirm = 동의해요
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -694,3 +694,6 @@ settings-general-gesture_control-trackers =
|
||||
|
||||
error_collection_modal-confirm = Sutinku
|
||||
error_collection_modal-cancel = Nesutinku
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -497,11 +497,6 @@ onboarding-wip = Arbeid pågår
|
||||
## Wi-Fi setup
|
||||
|
||||
onboarding-wifi_creds-back = Gå tilbake til introduksjonen
|
||||
onboarding-wifi_creds = Tast inn Wi-Fi legitimasjon
|
||||
# This cares about multilines
|
||||
onboarding-wifi_creds-description =
|
||||
Trackerne bruker denne legitimasjonen for å koble til trådløst.
|
||||
Vennligst bruk legitimasjonen til nettet du er koblet til nå.
|
||||
onboarding-wifi_creds-skip = Hopp over Wi-Fi innstillinger
|
||||
onboarding-wifi_creds-submit = Send inn!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -683,3 +678,6 @@ tray_or_exit_modal-cancel = Avbryt
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -33,6 +33,10 @@ tips-failed_webgl = WebGL initialiseren is gefaald.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Meter
|
||||
unit-foot = Voet
|
||||
unit-inch = Inch
|
||||
unit-cm = cm
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -98,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-ontwikkelingsbord
|
||||
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
|
||||
@@ -109,6 +115,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 Handschoen
|
||||
board_type-GESTURES = Gebaren
|
||||
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
|
||||
|
||||
@@ -247,6 +258,10 @@ reset-mounting = Reset montage
|
||||
reset-mounting-feet = Reset voetmontage
|
||||
reset-mounting-fingers = Reset vingermontage
|
||||
reset-yaw = Yaw Reset
|
||||
reset-error-no_feet_tracker = Geen voet-tracker toegewezen
|
||||
reset-error-no_fingers_tracker = Geen vingertracker toegewezen
|
||||
reset-error-mounting-need_full_reset = Je hebt een volledige reset nodig voordat je een montagekalibratie kunt uitvoeren.
|
||||
reset-error-yaw-need_full_reset = Je hebt een volledige reset nodig voordat je een yaw reset kunt uitvoeren.
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -266,10 +281,12 @@ navbar-trackers_assign = Tracker-toewijzing
|
||||
navbar-mounting = Montage-kalibratie
|
||||
navbar-onboarding = Installatiewizard
|
||||
navbar-settings = Instellingen
|
||||
navbar-connect_trackers = Verbind Trackers
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = BVH opnemen
|
||||
bvh-stop_recording = Sla BVH-opname op
|
||||
bvh-recording = Opname bezig...
|
||||
bvh-save_title = Sla BVH-opname op
|
||||
|
||||
@@ -335,6 +352,7 @@ tracker-table-column-name = Naam
|
||||
tracker-table-column-type = Type
|
||||
tracker-table-column-battery = Batterij
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-packet_loss = Pakketverlies
|
||||
tracker-table-column-tps = TPS
|
||||
tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Accel. X/Y/Z
|
||||
@@ -376,6 +394,9 @@ tracker-infos-magnetometer-status-v1 =
|
||||
[ENABLED] Ingeschakeld
|
||||
*[NOT_SUPPORTED] Niet ondersteund
|
||||
}
|
||||
tracker-infos-packet_loss = Pakketverlies
|
||||
tracker-infos-packets_lost = Verloren pakketten
|
||||
tracker-infos-packets_received = Ontvangen pakketten
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -393,8 +414,8 @@ tracker-settings-drift_compensation_section-edit = Laat drift compensatie toe
|
||||
tracker-settings-use_mag = Sta de magnetometer toe op deze tracker.
|
||||
# Multiline!
|
||||
tracker-settings-use_mag-description =
|
||||
Wilt u dat deze tracker de magnetometer gebruikt om drift te verminderen wanneer de magnetometer is toegestaan? <b>Zet de tracker niet uit terwijl u dit aan of uit zet.</b>
|
||||
U moet eerst de magnetometer toestemming geven,<magSetting>click hier om naar de instellingen te gaan</magSetting>.
|
||||
Wilt je dat deze tracker de magnetometer gebruikt om drift te verminderen wanneer de magnetometer is toegestaan? <b>Zet de tracker niet uit terwijl je dit aan of uit zet.</b>
|
||||
Je moet eerst de magnetometer toestemming geven,<magSetting>click hier om naar de instellingen te gaan</magSetting>.
|
||||
tracker-settings-use_mag-label = Laat magnetometer toe
|
||||
# The .<name> means it's an attribute and it's related to the top key.
|
||||
# In this case that is the settings for the assignment section.
|
||||
@@ -405,11 +426,16 @@ tracker-settings-name_section-label = Trackernaam
|
||||
tracker-settings-forget = Vergeet tracker
|
||||
tracker-settings-forget-description = Verwijdert de tracker van de SlimeVR Server en voorkomt dat deze verbinding kan maken totdat de server opnieuw wordt opgestart. De configuratie van de tracker blijft behouden.
|
||||
tracker-settings-forget-label = Vergeet tracker
|
||||
tracker-settings-update-unavailable-v2 = Geen versies gevonden.
|
||||
tracker-settings-update-incompatible = Kan niet worden bijgewerkt. Incompatibel bord
|
||||
tracker-settings-update-low-battery = Kan niet worden bijgewerkt. Batterij lager dan 50%
|
||||
tracker-settings-update-up_to_date = Up to date.
|
||||
tracker-settings-update-blocked = Update is niet beschikbaar. Er zijn geen andere versies beschikbaar.
|
||||
tracker-settings-update = Werk nu bij.
|
||||
tracker-settings-update-title = Firmware versie
|
||||
tracker-settings-current-version = Actueel
|
||||
tracker-settings-latest-version = Nieuwste
|
||||
tracker-settings-build-date = Creatiedatum
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -475,6 +501,7 @@ mounting_selection_menu-close = Sluiten
|
||||
|
||||
settings-sidebar-title = Instellingen
|
||||
settings-sidebar-general = Algemeen
|
||||
settings-sidebar-steamvr = SteamVR
|
||||
settings-sidebar-tracker_mechanics = Trackersinstellingen
|
||||
settings-sidebar-stay_aligned = Blijf in lijn
|
||||
settings-sidebar-fk_settings = FK-instellingen
|
||||
@@ -482,9 +509,12 @@ settings-sidebar-gesture_control = Tikbediening
|
||||
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 = Hulpmiddelen
|
||||
settings-sidebar-serial = Serieel console
|
||||
settings-sidebar-appearance = Uiterlijk
|
||||
settings-sidebar-home = Startscherm
|
||||
settings-sidebar-checklist = Tracking checklist
|
||||
settings-sidebar-notifications = Notificaties
|
||||
settings-sidebar-behavior = Gedrag
|
||||
settings-sidebar-firmware-tool = DIY Firmware Tool
|
||||
@@ -566,8 +596,11 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Gebruikt magnetometer op alle trackers die er een compatibele firmware voor hebben, waardoor drift in stabiele magnetische omgevingen wordt verminderd.
|
||||
Je kan dit per individuele tracker uit zetten in de instellingen van de tracker. <b>Sluit geen van de trackers af terwijl u dit in- en uitschakelt!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Gebruik magnetometer op de trackers
|
||||
settings-general-tracker_mechanics-trackers_over_usb = Trackers via USB
|
||||
settings-general-tracker_mechanics-trackers_over_usb-description = Maakt het mogelijk om HID-trackergegevens via USB te ontvangen. Zorg ervoor dat verbonden trackers <b>"verbinding over HID"</b> hebben ingeschakeld!
|
||||
settings-general-tracker_mechanics-trackers_over_usb-enabled-label = Laat HID-trackers direct via USB verbinden
|
||||
settings-stay_aligned = Blijf in lijn
|
||||
settings-stay_aligned-description = ijf in lijn vermindert drift door je trackers geleidelijk aan te passen zodat ze overeenkomen met je ontspannen houdingen.
|
||||
settings-stay_aligned-description = Blijf in lijn vermindert drift door je trackers geleidelijk aan te passen zodat ze overeenkomen met je ontspannen houdingen.
|
||||
settings-stay_aligned-setup-label = Blijf in lijn instellen
|
||||
settings-stay_aligned-setup-description = Je moet "Blijf in lijn instellen" voltooien om Blijf in lijn te activeren.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ Schakel Drift Compensation uit! Drift Compensation conflicteert met Blijf in lijn.
|
||||
@@ -608,11 +641,16 @@ settings-general-fk_settings-leg_tweak-floor_clip-description =
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap probeert de rotatie van uw voeten te raden als voet-trackers niet worden gebruikt.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant roteert je voeten zodat ze evenwijdig aan de grond zijn wanneer ze in contact zijn.
|
||||
settings-general-fk_settings-leg_fk = Been tracking
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Forceer de voet montage reset tijdens normale montage resets.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Forceer voet montage reset
|
||||
settings-general-fk_settings-enforce_joint_constraints = Bewegingslimieten van het skelet
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Beperkingen toepassen
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Voorkomt dat gewrichten over hun limiet draaien
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Corrigeren met beperkingen
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Corrigeer gewrichtsrotaties wanneer ze hun limiet overschrijden
|
||||
settings-general-fk_settings-ik = Positie gegevens
|
||||
settings-general-fk_settings-ik-use_position = Positiegegevens gebruiken
|
||||
settings-general-fk_settings-ik-use_position-description = Maakt gebruik van positiegegevens mogelijk van de trackers die deze leveren. Zorg er voor dat je een volledige reset doet en opnieuw kalibreert in het spel wanneer je dit inschakelt.
|
||||
settings-general-fk_settings-arm_fk = Arm tracking
|
||||
settings-general-fk_settings-arm_fk-description = Verander de manier waarop de armen worden getrackt.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Dwing armen vanuit HMD
|
||||
@@ -733,9 +771,9 @@ settings-general-interface-discord_presence-message =
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Foutverzameling via Sentry.io
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Geeft u toestemming voor het verzamelen van geanonimiseerde foutgegevens?</h1>
|
||||
<h1>Geef je toestemming voor het verzamelen van geanonimiseerde foutgegevens?</h1>
|
||||
|
||||
<b>We verzamelen geen persoonlijke informatie</b> zoals uw IP-adres of draadloze inloggegevens. SlimeVR hecht veel waarde aan uw privacy!
|
||||
<b>We verzamelen geen persoonlijke informatie</b> zoals jouw IP-adres of draadloze inloggegevens. SlimeVR hecht veel waarde aan je privacy!
|
||||
|
||||
Om de beste gebruikerservaring te bieden, verzamelen we geanonimiseerde foutrapporten, prestatiestatistieken en informatie over het besturingssysteem. Dit helpt ons bij het detecteren van fouten en problemen met SlimeVR. Deze statistieken worden verzameld via Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Stuur fouten naar de ontwikkelaars
|
||||
@@ -765,6 +803,11 @@ settings-serial-auto_dropdown_item = Automatisch
|
||||
settings-serial-get_wifi_scan = WiFi-scan uitvoeren
|
||||
settings-serial-file_type = Gewone tekst
|
||||
settings-serial-save_logs = Opslaan in bestand
|
||||
settings-serial-send_command = Verzenden
|
||||
settings-serial-send_command-placeholder = Commando...
|
||||
settings-serial-send_command-warning = <b>Waarschuwing:</b> Het uitvoeren van seriële opdrachten kan leiden tot gegevensverlies of de trackers stuk maken.
|
||||
settings-serial-send_command-warning-ok = Ik weet wat ik doe
|
||||
settings-serial-send_command-warning-cancel = Annuleren
|
||||
|
||||
## OSC router settings
|
||||
|
||||
@@ -859,6 +902,8 @@ settings-osc-vmc-mirror_tracking-label = Gespiegelde tracking
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
settings-osc-common-network-ports_match_error = De in- en uit poorten van de OSC-Router mogen niet hetzelfde zijn!
|
||||
settings-osc-common-network-port_banned_error = Het poort { $port } kan niet worden gebruikt!
|
||||
|
||||
## Advanced settings
|
||||
|
||||
@@ -875,14 +920,14 @@ settings-utils-advanced-reset-all-label = Alles resetten
|
||||
settings-utils-advanced-reset_warning =
|
||||
{ $type ->
|
||||
[gui]
|
||||
<b>Waarschuwing</b>Hiermee worden al uw GUI instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet u zeker dat u dit wilt doen?
|
||||
<b>Waarschuwing</b>Hiermee worden al je GUI instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet je zeker dat je dit wilt doen?
|
||||
[server]
|
||||
<b>Waarschuwing</b>Hiermee worden al uw tracking instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet u zeker dat u dit wilt doen?
|
||||
<b>Waarschuwing</b>Hiermee worden al je tracking instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet je zeker dat je dit wilt doen?
|
||||
*[all]
|
||||
<b>Waarschuwing:</b> Hiermee worden al uw instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet u zeker dat u dit wilt doen?
|
||||
<b>Waarschuwing:</b> Hiermee worden al je instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet je zeker dat je dit wilt doen?
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = Instellingen resetten
|
||||
settings-utils-advanced-reset_warning-cancel = Annuleren
|
||||
@@ -895,9 +940,15 @@ settings-utils-advanced-open_logs-label = Map openen
|
||||
|
||||
## Home Screen
|
||||
|
||||
settings-home-list-layout = Trackers lijst indeling
|
||||
settings-home-list-layout-desc = Selecteer een van de mogelijke indelingen voor het startscherm
|
||||
settings-home-list-layout-grid = Rooster
|
||||
settings-home-list-layout-table = Tabel
|
||||
|
||||
## Tracking Checlist
|
||||
|
||||
settings-tracking_checklist-active_steps = Actieve stappen
|
||||
settings-tracking_checklist-active_steps-desc = Laat alle stappen die in de tracking checklist komen zien. U kan of dit uitzetten of negeerbare stappen laten zien.
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -914,11 +965,13 @@ onboarding-setup_warning-cancel = Doorgaan met setupgids
|
||||
## Wi-Fi setup
|
||||
|
||||
onboarding-wifi_creds-back = Ga terug naar de introductie
|
||||
onboarding-wifi_creds = Voer de WiFi-inloggegevens in
|
||||
onboarding-wifi_creds-v2 = Trackers die Wi-Fi gebruiken
|
||||
# This cares about multilines
|
||||
onboarding-wifi_creds-description =
|
||||
Deze gegevens worden gebruikt om de trackers draadloos te verbinden met de server.
|
||||
Gelieve de gegevens te gebruiken van het netwerk waarmee je momenteel bent verbonden.
|
||||
onboarding-wifi_creds-description-v2 =
|
||||
De meeste trackers (zoals de officiële SlimeVR-trackers) gebruiken Wi-Fi om verbinding te maken met de server.
|
||||
Gebruik de inloggegevens van het Wi-Fi-netwerk waarmee je apparaat momenteel is verbonden.
|
||||
|
||||
Zorg ervoor dat je een 2,4GHz-Wi-Fi-verbinding gebruikt voor jouw trackers!
|
||||
onboarding-wifi_creds-skip = WiFi-instellingen overslaan
|
||||
onboarding-wifi_creds-submit = Verzenden!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -928,6 +981,10 @@ onboarding-wifi_creds-ssid-required = Wi-Fi-naam is vereist
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Paswoord
|
||||
.placeholder = Vul paswoord in
|
||||
onboarding-wifi_creds-dongle-title = Trackers met een dongle
|
||||
onboarding-wifi_creds-dongle-description = Als je trackers met een dongle zijn geleverd, steek die dan in je apparaat en je bent klaar om te beginnen!
|
||||
onboarding-wifi_creds-dongle-wip = Dit gedeelte is nog in ontwikkeling. Er komt binnenkort een aparte pagina om trackers te beheren die via een dongle verbinden.
|
||||
onboarding-wifi_creds-dongle-continue = Ga verder met een dongle
|
||||
|
||||
## Mounting setup
|
||||
|
||||
@@ -1033,6 +1090,7 @@ onboarding-assignment_tutorial-done = Ik heb stickers en riemen geplaatst!
|
||||
onboarding-assign_trackers-back = Ga terug naar de instellingen voor WiFi-configuratie
|
||||
onboarding-assign_trackers-title = Trackers toewijzen
|
||||
onboarding-assign_trackers-description = Laten we de bevesteging van je trackers bepalen. Klik op de lichaamslocatie waar je een tracker wilt toewijzen.
|
||||
onboarding-assign_trackers-unassign_all = Alle trackers toewijzing verwijderen
|
||||
# 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
|
||||
@@ -1175,6 +1233,8 @@ onboarding-automatic_mounting-done-restart = Terug naar start
|
||||
onboarding-automatic_mounting-mounting_reset-title = Montage-reset
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Ga staan in een "skie"-houding met gebogen benen, je bovenlichaam naar voren gekanteld en armen gebogen.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Druk op de knop "Reset montage" en wacht 3 seconden voordat de montagerichtingen van de trackers opnieuw worden ingesteld.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-0 = 1. Sta op je tenen met beide voeten naar voren gericht. Je kunt het ook zittend op een stoel doen.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. Druk op de knop "Voetkalibratie" en wacht 3 seconden voordat de montageoriëntaties van de trackers gereset worden.
|
||||
onboarding-automatic_mounting-preparation-title = Voorbereiding
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Druk op de knop "Volledige reset".
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Ga rechtop staan met je armen langs je zij. Zorg dat je recht vooruit kijkt.
|
||||
@@ -1182,9 +1242,11 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. Houd deze houding aan t
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Doe je trackers aan
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Om montagerichtingen te kalibreren gaan we gebruik maken van de trackers die je net hebt toegewezen. Doe al je trackers aan, je kunt zien welke trackers welke zijn in de figuur rechts.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Ik heb al mijn trackers aan
|
||||
onboarding-automatic_mounting-return-home = Klaar
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back-scaled = Ga terug naar geschaalde proporties
|
||||
onboarding-manual_proportions-title = Handmatige lichaamsverhoudingen
|
||||
onboarding-manual_proportions-fine_tuning_button = Automatisch afstemmen van verhoudingen
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Sluit een VR-headset aan om automatische fijnafstelling te gebruiken
|
||||
@@ -1211,26 +1273,26 @@ onboarding-automatic_proportions-requirements-title = Vereisten
|
||||
# Each line of text is a different list item
|
||||
onboarding-automatic_proportions-requirements-descriptionv2 = Je hebt voldaan aan de minimale vereisten om je voeten te tracken (over het algemeen 5 trackers). Je hebt je trackers en headset aan en draagt ze. Je trackers en headset zijn verbonden met de SlimeVR server en werken naar behoren (zonder haperingen, loskoppelingen etc.). Je headset stuurt positiedata naar de SlimeVR server (dit vereist doorgaans dat SteamVR draait en verbonden is met SlimeVR via de SlimeVR SteamVR-driver). De tracking werkt en registreert je bewegingen nauwkeurig (je hebt bijvoorbeeld een volledige reset uitgevoerd en de trackers bewegen in de juiste richting bij schoppen, bukken, zitten etc.).
|
||||
onboarding-automatic_proportions-requirements-next = Ik heb de vereisten gelezen
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Meet de hoogte van uw headset
|
||||
onboarding-automatic_proportions-check_height-description-v2 = De hoogte van uw headset (HMD) moet iets minder zijn dan uw volledige lengte, aangezien headsets uw ooghoogte meten. Deze meting wordt gebruikt als basis voor uw lichaamsverhoudingen.
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Meet de hoogte van je headset
|
||||
onboarding-automatic_proportions-check_height-description-v2 = De hoogte van je headset (HMD) moet iets minder zijn dan jouw volledige lengte, aangezien headsets je ooghoogte meten. Deze meting wordt gebruikt als basis voor je lichaamsverhoudingen.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Begin met meten terwijl je <u>rechtop</u> staat om je lengte te meten. Let erop dat je je handen niet hoger dan je headset tilt, want dat kan de meting beïnvloeden!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip = Als je een losse VR-bril gebruikt, zorg er dan voor dat je guardian/veilige zone is ingeschakeld zodat je lengte correct is gekalibreerd!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = Onbekend
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = De hoogte van uw headset is:
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = De hoogte van je headset is:
|
||||
onboarding-automatic_proportions-check_height-measure-start = Begin met meten
|
||||
onboarding-automatic_proportions-check_height-measure-stop = Stoppen met meten
|
||||
onboarding-automatic_proportions-check_height-measure-reset = Probeer opnieuw te meten
|
||||
onboarding-automatic_proportions-check_height-next_step = Ze zijn goed
|
||||
onboarding-automatic_proportions-check_floor_height-title = Meet uw vloerhoogte (optioneel)
|
||||
onboarding-automatic_proportions-check_floor_height-description = In sommige gevallen wordt uw vloerhoogte mogelijk niet correct ingesteld door uw headset, waardoor de hoogte van de headset hoger wordt gemeten dan zou moeten. U kunt de "hoogte" van uw vloer meten om de hoogte van uw headset te corrigeren.
|
||||
onboarding-automatic_proportions-check_floor_height-title = Meet je vloerhoogte (optioneel)
|
||||
onboarding-automatic_proportions-check_floor_height-description = In sommige gevallen wordt je vloerhoogte mogelijk niet correct ingesteld door je headset, waardoor de hoogte van de headset hoger wordt gemeten dan zou moeten. Je kunt de "hoogte" van je vloer meten om de hoogte van je headset te corrigeren.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = Begin met meten en zet een controller op je vloer om de hoogte te meten. Als je zeker weet dat je vloerhoogte klopt, kun je deze stap overslaan.
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = Uw vloerhoogte is:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = Uw geschatte volledige lengte is:
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = Je vloerhoogte is:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = Je geschatte volledige lengte is:
|
||||
onboarding-automatic_proportions-check_floor_height-measure-start = Begin met meten
|
||||
onboarding-automatic_proportions-check_floor_height-measure-stop = Stoppen met meten
|
||||
onboarding-automatic_proportions-check_floor_height-measure-reset = Probeer opnieuw te meten
|
||||
@@ -1271,12 +1333,36 @@ onboarding-automatic_proportions-error_modal-v2 =
|
||||
<docs>Bekijk de documentatie</docs> of word lid van onze <discord>Discord</discord> voor hulp ^_^
|
||||
onboarding-automatic_proportions-error_modal-confirm = Begrepen!
|
||||
onboarding-automatic_proportions-smol_warning =
|
||||
Uw ingestelde lengte van { $height } is lager dan de toegestane minimumlengte van { $minHeight }.
|
||||
Jouw ingestelde lengte van { $height } is lager dan de toegestane minimumlengte van { $minHeight }.
|
||||
<b>Voer de metingen opnieuw uit en controleer of ze correct zijn.</b>
|
||||
onboarding-automatic_proportions-smol_warning-cancel = Ga terug
|
||||
|
||||
## User height calibration
|
||||
|
||||
onboarding-user_height-title = Wat is jouw lengte?
|
||||
onboarding-user_height-description = We hebben je lengte nodig om je lichaamsproporties te berekenen en je bewegingen nauwkeurig weer te geven. Je kunt SlimeVR je lengte laten berekenen, of je lengte handmatig invoeren.
|
||||
onboarding-user_height-need_head_tracker = Voor de kalibratie zijn een headset en controllers met positionele tracking vereist.
|
||||
onboarding-user_height-calculate = Bereken mijn lengte automatisch
|
||||
onboarding-user_height-next_step = Doorgaan en opslaan
|
||||
onboarding-user_height-manual-proportions = Handmatige lichaamsverhoudingen
|
||||
onboarding-user_height-calibration-title = Vooruitgang van de kalibratie
|
||||
onboarding-user_height-calibration-RECORDING_FLOOR = Raak de vloer aan met de punt van je controller
|
||||
onboarding-user_height-calibration-WAITING_FOR_RISE = Sta weer op
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = Sta weer op en kijk vooruit
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Zorg dat je hoofd vlak staat
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = Kijk niet naar de vloer
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = Kijk niet te veel omhoog
|
||||
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = Zorg dat de controller naar beneden wijst
|
||||
onboarding-user_height-calibration-RECORDING_HEIGHT = Sta weer op en blijf stilstaan!
|
||||
onboarding-user_height-calibration-DONE = Gelukt!
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = Kalibratie sessie is verlopen, probeer het opnieuw.
|
||||
onboarding-user_height-calibration-ERROR_TOO_HIGH = De gedetecteerde gebruikershoogte is te hoog, probeer het opnieuw.
|
||||
onboarding-user_height-calibration-ERROR_TOO_SMALL = De gedetecteerde gebruikerslengte is te klein. Zorg dat je voor het einde van de kalibratie rechtop staat en naar voren kijkt.
|
||||
onboarding-user_height-calibration-error = Kalibratie mislukt
|
||||
onboarding-user_height-manual-tip = Tijdens het aanpassen van je lengte kan je verschillende poses proberen en kijken hoe het skelet met jouw lichaam overeenkomt.
|
||||
onboarding-user_height-reset-warning =
|
||||
<b>Waarschuwing:</b> Dit zet je verhoudingen terug op basis van jouw lengte.
|
||||
Weet je zeker dat je dit wilt doen?
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
@@ -1311,10 +1397,13 @@ onboarding-stay_aligned-previous_step = Vorige
|
||||
onboarding-stay_aligned-next_step = Volgende
|
||||
onboarding-stay_aligned-restart = Herstarten
|
||||
onboarding-stay_aligned-done = Klaar
|
||||
onboarding-stay_aligned-manual_mounting-done = Klaar
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Geen trackers gedetecteerd of toegewezen
|
||||
home-settings = Startpagina-instellingen
|
||||
home-settings-close = Sluiten
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
@@ -1355,18 +1444,50 @@ firmware_tool = DIY firmware-tool
|
||||
firmware_tool-description = Hiermee kan je uw DIY-trackers configureren en flashen
|
||||
firmware_tool-not_available = Oeps, de firmwaretool is momenteel niet beschikbaar. Kom later terug!
|
||||
firmware_tool-not_compatible = De firmwaretool is niet compatibel met deze versie van de server. Gelieve te updaten!
|
||||
firmware_tool-select_source = Selecteer de firmware die je wilt flashen
|
||||
firmware_tool-select_source-description = Selecteer de firmware die je op jouw bord wilt flashen
|
||||
firmware_tool-select_source-error = Kan bronnen niet laden
|
||||
firmware_tool-select_source-board_type = Type bord
|
||||
firmware_tool-select_source-firmware = Firmware-bron
|
||||
firmware_tool-select_source-version = Firmware versie
|
||||
firmware_tool-select_source-official = Officieel
|
||||
firmware_tool-select_source-dev = Ontwikkelaar
|
||||
firmware_tool-select_source-not_selected = Geen bron geselecteerd
|
||||
firmware_tool-select_source-no_boards = Geen beschikbare borden voor deze bron
|
||||
firmware_tool-select_source-no_versions = Geen beschikbare versies voor deze bron
|
||||
firmware_tool-board_defaults = Configureer je bord
|
||||
firmware_tool-board_defaults-description = Stel de pinnen of instellingen in ten opzichte van jouw hardware
|
||||
firmware_tool-board_defaults-add = Toevoegen
|
||||
firmware_tool-board_defaults-reset = Reset naar standaard
|
||||
firmware_tool-board_defaults-error-required = Verplicht veld
|
||||
firmware_tool-board_defaults-error-format = Ongeldig formaat
|
||||
firmware_tool-board_defaults-error-format-number = Is geen nummer
|
||||
firmware_tool-flash_method_step = Flashing methode
|
||||
firmware_tool-flash_method_step-description = Kies de flashingsmethode die je wilt gebruiken
|
||||
firmware_tool-flash_method_step-ota-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = Gebruik de over-the-air methode. Jouw tracker zal via wifi de firmware bijwerken. Werkt alleen op trackers die al zijn ingesteld.
|
||||
firmware_tool-flash_method_step-ota-info =
|
||||
We gebruiken jouw wifi-inloggegevens om de tracker te flashen en te bevestigen dat alles correct werkte.
|
||||
<b>We slaan je wifi-gegevens niet op!</b>
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.description = Gebruik een USB kabel om jouw tracker up te daten.
|
||||
firmware_tool-flashbtn_step = Druk op de bootknop
|
||||
firmware_tool-flashbtn_step-description = Voordat u naar de volgende stap gaat, zijn er een paar dingen die u moet doen.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Zet de tracker uit, verwijder de behuizing (indien aanwezig), verbind een USB-kabel met deze computer en voer vervolgens een van de volgende stappen uit, afhankelijk van de revisie van uw SlimeVR-board:
|
||||
firmware_tool-flashbtn_step-description = Voordat je naar de volgende stap gaat, zijn er een paar dingen die je moet doen.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Zet de tracker uit, verwijder de behuizing (indien aanwezig), verbind een USB-kabel met deze computer en voer vervolgens een van de volgende stappen uit, afhankelijk van de revisie van je SlimeVR-bord:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11-v2 = Zet de tracker aan terwijl je het tweede rechthoekige FLASH-contact vlak bij de rand aan de bovenkant van de printplaat kortsluit tot het metalen schild van de microcontroller. De LED van de tracker zou kort moeten knipperen.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12-v2 = Zet de tracker aan terwijl je het ronde FLASH-contact aan de bovenkant van de printplaat kortsluit tot het metalen schild van de microcontroller. De LED van de tracker zou kort moeten knipperen.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14-v2 = Zet de tracker aan terwijl je de FLASH-knop aan de bovenkant van de printplaat ingedrukt houdt. De LED van de tracker zou kort moeten knipperen.
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
Voordat u gaat flashen, moet de tracker waarschijnlijk in de bootloader-modus worden gezet.
|
||||
Voordat je gaat flashen, moet de tracker waarschijnlijk in de bootloader-modus worden gezet.
|
||||
Meestal betekent dit het indrukken van de bootknop op het board voordat het flashproces begint.
|
||||
Als het flashproces time-out bij het begin van het flashen, betekent dit waarschijnlijk dat de tracker niet in de bootloader-modus stond.
|
||||
Raadpleeg de flitsinstructies van uw board om te weten hoe u de bootloader-modus inschakelt.
|
||||
Als het flashproces verloopt bij het begin van het flashen, betekent dit waarschijnlijk dat de tracker niet in de bootloader-modus stond.
|
||||
Raadpleeg de flashing-instructies van je board om te weten hoe je de bootloader-modus inschakelt.
|
||||
firmware_tool-flash_method_ota-title = Flashen over Wi-Fi
|
||||
firmware_tool-flash_method_ota-devices = Gedetecteerde OTA-apparaten:
|
||||
firmware_tool-flash_method_ota-no_devices = Er zijn geen boards die via OTA bijgewerkt kunnen worden, zorg ervoor dat u het juiste boardtype heeft geselecteerd.
|
||||
firmware_tool-flash_method_ota-no_devices = Er zijn geen boards die via OTA bijgewerkt kunnen worden, zorg ervoor dat je het juiste boardtype heeft geselecteerd.
|
||||
firmware_tool-flash_method_serial-title = Flashen over USB
|
||||
firmware_tool-flash_method_serial-wifi = Wi-Fi-gegevens:
|
||||
firmware_tool-flash_method_serial-devices-label = Gedetecteerde serial apparaten:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = Selecteer een serieel apparaat
|
||||
@@ -1381,7 +1502,10 @@ firmware_tool-flashing_step-exit = Sluit
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-QUEUED = Wachten om te maken....
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = De buildmap maken
|
||||
firmware_tool-build-DOWNLOADING_SOURCE = Broncode wordt gedownload
|
||||
firmware_tool-build-EXTRACTING_SOURCE = Broncode wordt uitgepakt
|
||||
firmware_tool-build-BUILDING = Firmware wordt gebouwd
|
||||
firmware_tool-build-SAVING = De build opslaan
|
||||
firmware_tool-build-DONE = Build voltooid
|
||||
@@ -1493,3 +1617,60 @@ error_collection_modal-description_v2 =
|
||||
U kunt deze instelling later wijzigen in de sectie Gedrag van de instellingenpagina.
|
||||
error_collection_modal-confirm = Ik ben akkoord
|
||||
error_collection_modal-cancel = Ik wil het niet
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
tracking_checklist = Tracking Checklist
|
||||
tracking_checklist-settings = Instellingen voor trackingchecklists
|
||||
tracking_checklist-settings-close = Sluiten
|
||||
tracking_checklist-status-incomplete = U bent niet voorbereid om SlimeVR te gebruiken!
|
||||
tracking_checklist-status-partial =
|
||||
{ $count ->
|
||||
[one] U heeft 1 waarschuwing!
|
||||
*[other] U heeft { $count } waarschuwingen!
|
||||
}
|
||||
tracking_checklist-status-complete = U bent klaar om SlimeVR te gebruiken!
|
||||
tracking_checklist-MOUNTING_CALIBRATION = Voer een montagekalibratie uit
|
||||
tracking_checklist-FEET_MOUNTING_CALIBRATION = Voer een voetmontage-kalibratie uit
|
||||
tracking_checklist-FULL_RESET = Voer een volledige reset uit
|
||||
tracking_checklist-FULL_RESET-desc = Sommige trackers hebben een reset nodig
|
||||
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR draait niet
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR draait niet. Gebruik je het voor VR?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-open = Open SteamVR
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION = Kalibreer je trackers
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = Je hebt geen tracker kalibratie uitgevoerd. Laat je Slimes (gemarkeerd met geel) rusten op een stabiele ondergrond voor een paar secondes.
|
||||
tracking_checklist-TRACKER_ERROR = Trackers met fouten
|
||||
tracking_checklist-TRACKER_ERROR-desc = Sommige van je trackers hebben een fout. Herstart de tracker die in het geel zijn gemarkeerd aub.
|
||||
tracking_checklist-VRCHAT_SETTINGS = Configureer VRChat-instellingen
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = Je hebt enkele VRchat-instellingen verkeerd geconfigureerd! Dit kan jouw trackingervaring negatief beïnvloeden.
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = Ga naar VRChat Waarschuwingen
|
||||
tracking_checklist-UNASSIGNED_HMD = VR-headset niet toegewezen aan Hoofd
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = De VR-headset moet worden toegewezen als hoofdtracker.
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = Verander je netwerkprofiel
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc =
|
||||
{ $count ->
|
||||
[one]
|
||||
Uw netwerk-profiel is op dit moment of publiek ingesteld ({ $adapters })
|
||||
Dit wordt niet aanbevolen voor een goede werking van SlimeVR
|
||||
<PublicFixLink>Hier lees je hoe je dit kan oplossen</PublicFixLink>
|
||||
*[other]
|
||||
Sommige van je netwerkadapters staan ingesteld op openbaar:
|
||||
{ $adapters }.
|
||||
Dit wordt niet aanbevolen voor een goede werking van SlimeVR.
|
||||
<PublicFixLink>Hier lees je hoe je dit kan oplossen.</PublicFixLink>
|
||||
}
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Open Configuratiescherm
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = Configureer Blijf in lijn
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = Noteer de blijf in lijn posities voor een verbeterde imu-drift
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = Open Blijf in lijn wizard
|
||||
tracking_checklist-ignore = Negeren
|
||||
preview-mocap_mode_soon = Mocap-modus (binnenkort™)
|
||||
preview-disable_render = Schakel rendering uit
|
||||
preview-disabled_render = Rendering uitgeschakeld
|
||||
toolbar-mounting_calibration = Montage-kalibratie
|
||||
toolbar-mounting_calibration-default = Lichaam
|
||||
toolbar-mounting_calibration-feet = Voeten
|
||||
toolbar-mounting_calibration-fingers = Vingers
|
||||
toolbar-drift_reset = Drift Reset
|
||||
toolbar-assigned_trackers = { $count } trackers toegewezen
|
||||
toolbar-unassigned_trackers = { $count } trackers niet toegewezen
|
||||
|
||||
@@ -33,6 +33,10 @@ tips-failed_webgl = Nie udało się zainicjalizować WebGL.
|
||||
|
||||
## Units
|
||||
|
||||
unit-meter = Metr
|
||||
unit-foot = Stopa
|
||||
unit-inch = Cal
|
||||
unit-cm = cm
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -98,6 +102,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = Podstawa T TTGO
|
||||
board_type-ESP01 = Zobacz materiał ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-SLIMEVR_DEV = SlimeVR Płytka Deweloperska
|
||||
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
|
||||
@@ -249,6 +255,10 @@ reset-mounting = Zresetuj położenie
|
||||
reset-mounting-feet = Zresetuj mocowanie stóp
|
||||
reset-mounting-fingers = Zresetuj mocowanie palców
|
||||
reset-yaw = Reset odchylenia
|
||||
reset-error-no_feet_tracker = Nie przypisano urządzenia śledzenia stóp
|
||||
reset-error-no_fingers_tracker = Nie przypisano urządzenia śledzenia palcy
|
||||
reset-error-mounting-need_full_reset = Potrzebny jest pełny reset przed montażem
|
||||
reset-error-yaw-need_full_reset = Potrzebny jest pełny reset przed resetem obrotu
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -268,10 +278,12 @@ navbar-trackers_assign = Przydzielenie Trackerów
|
||||
navbar-mounting = Kalibracja Pozycji
|
||||
navbar-onboarding = Wstępna konfiguracja
|
||||
navbar-settings = Ustawienia
|
||||
navbar-connect_trackers = Połącz Urządzenia
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = Nagraj BVH
|
||||
bvh-stop_recording = Zapisz nagranie BVH
|
||||
bvh-recording = Nagrywanie...
|
||||
bvh-save_title = Zapisz nagranie BVH
|
||||
|
||||
@@ -408,11 +420,15 @@ tracker-settings-name_section-label = Nazwa Urządzenia
|
||||
tracker-settings-forget = Zapomnij o trackerze
|
||||
tracker-settings-forget-description = Usuwa moduł śledzący z serwera SlimeVR i uniemożliwia mu połączenie się z nim do czasu ponownego uruchomienia serwera. Konfiguracja modułu śledzącego nie zostanie utracona.
|
||||
tracker-settings-forget-label = Zapomnij o trackerze
|
||||
tracker-settings-update-unavailable-v2 = Nie znaleziono aktualizacji
|
||||
tracker-settings-update-incompatible = Nie można zaktualizować. Niekompatybilne urządzenie lub wersja oprogramowania.
|
||||
tracker-settings-update-low-battery = Nie można zaktualizować. Bateria poniżej 50%
|
||||
tracker-settings-update-up_to_date = Aktualny
|
||||
tracker-settings-update-blocked = Aktualizacja niedostępna. Brak innych wersji
|
||||
tracker-settings-update = Zaktualizuj teraz
|
||||
tracker-settings-update-title = Wersja oprogramowania
|
||||
tracker-settings-current-version = Aktualny
|
||||
tracker-settings-latest-version = Najnowszy
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -478,6 +494,7 @@ mounting_selection_menu-close = Zamknij
|
||||
|
||||
settings-sidebar-title = Ustawienia
|
||||
settings-sidebar-general = Ogólne
|
||||
settings-sidebar-steamvr = SteamVR
|
||||
settings-sidebar-tracker_mechanics = Mechanika trackerów
|
||||
settings-sidebar-stay_aligned = Wyrównywanie
|
||||
settings-sidebar-fk_settings = Ustawienia śledzenia
|
||||
@@ -485,9 +502,12 @@ settings-sidebar-gesture_control = Sterowanie gestami
|
||||
settings-sidebar-interface = Interfejs
|
||||
settings-sidebar-osc_router = OSC router
|
||||
settings-sidebar-osc_trackers = Śledzenie VRChat OSC
|
||||
settings-sidebar-osc_vmc = VMC
|
||||
settings-sidebar-utils = Narzędzia
|
||||
settings-sidebar-serial = Konsola szeregowa
|
||||
settings-sidebar-appearance = Wygląd
|
||||
settings-sidebar-home = Strona Główna
|
||||
settings-sidebar-checklist = Lista kontrolna
|
||||
settings-sidebar-notifications = Powiadomienia
|
||||
settings-sidebar-behavior = Zachowanie
|
||||
settings-sidebar-firmware-tool = Narzędzie do oprogramowania sprzętowego DIY
|
||||
@@ -613,11 +633,16 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Floor-clip może
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap próbuje odgadnąć obrót twoich stóp, jeśli trackery stóp nie są używane.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant obraca stopy, aby były równoległe do podłoża podczas kontaktu.
|
||||
settings-general-fk_settings-leg_fk = Śledzenie nóg
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Wymuś kalibracje montażu stóp podczas kalibracji pozycji.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Wymuś kalibracje mocowania stóp
|
||||
settings-general-fk_settings-enforce_joint_constraints = Limity szkieletowe
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Wymuszanie ograniczeń
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Zapobiega obracaniu się stawów poza ich limit
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Korygowanie za pomocą ograniczeń
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Koryguj rotacje stawów, gdy przekraczają swój limit
|
||||
settings-general-fk_settings-ik = Dane pozycji
|
||||
settings-general-fk_settings-ik-use_position = Użyj danych o pozycji
|
||||
settings-general-fk_settings-ik-use_position-description = Umożliwia wykorzystanie danych o pozycji z urządzeń, które je wspierają. Włączając to, upewnij się, że dokonałeś reset w aplikacji i skalibrowałeś położenie w grze.
|
||||
settings-general-fk_settings-arm_fk = Śledzenie ramienia
|
||||
settings-general-fk_settings-arm_fk-description = Zmień sposób śledzenia ramion.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Śledź ramiona z gogli VR
|
||||
@@ -775,6 +800,11 @@ settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Skanuj sieci WiFi
|
||||
settings-serial-file_type = Zwykły tekst
|
||||
settings-serial-save_logs = Zapisz do pliku
|
||||
settings-serial-send_command = Wyślij
|
||||
settings-serial-send_command-placeholder = Polecenie...
|
||||
settings-serial-send_command-warning = <b>Ostrzeżenie:</b> Wysyłanie poleceń szeregowych może prowadzić do utraty danych lub zablokowania urządzenia.
|
||||
settings-serial-send_command-warning-ok = Wiem co robię
|
||||
settings-serial-send_command-warning-cancel = Anuluj
|
||||
|
||||
## OSC router settings
|
||||
|
||||
@@ -874,6 +904,8 @@ settings-osc-vmc-mirror_tracking-label = Odbicie lustrzane śledzenia
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
settings-osc-common-network-ports_match_error = Porty wejściowe i wyjściowe routera OSC nie mogą być takie same!
|
||||
settings-osc-common-network-port_banned_error = Port { $port } nie może zostać użyty!
|
||||
|
||||
## Advanced settings
|
||||
|
||||
@@ -906,9 +938,15 @@ settings-utils-advanced-open_logs-label = Otwórz folder
|
||||
|
||||
## Home Screen
|
||||
|
||||
settings-home-list-layout = Układ listy urządzeń
|
||||
settings-home-list-layout-desc = Wybierz jeden z możliwych układów ekranu głównego
|
||||
settings-home-list-layout-grid = Siatka
|
||||
settings-home-list-layout-table = Tabela
|
||||
|
||||
## Tracking Checlist
|
||||
|
||||
settings-tracking_checklist-active_steps = Aktywne Kroki
|
||||
settings-tracking_checklist-active_steps-desc = Lista wszystkich kroków kontrolnych. Możesz wyłączyć konkretne punkty.
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -925,11 +963,6 @@ onboarding-setup_warning-cancel = Kontynuuj konfigurację
|
||||
## Wi-Fi setup
|
||||
|
||||
onboarding-wifi_creds-back = Cofnij się do początku
|
||||
onboarding-wifi_creds = Wpisz dane Wi-Fi
|
||||
# This cares about multilines
|
||||
onboarding-wifi_creds-description =
|
||||
Trackery będą używać tej sieci do łączenia się z serwerem
|
||||
proszę używać sieci do której jest się połączonym
|
||||
onboarding-wifi_creds-skip = Pomiń ustawienia Wi-Fi
|
||||
onboarding-wifi_creds-submit = Potwierdź!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -1046,6 +1079,7 @@ onboarding-assignment_tutorial-done = Umieszczam naklejki i paski!
|
||||
onboarding-assign_trackers-back = Cofnij się do ustawień Wi-Fi
|
||||
onboarding-assign_trackers-title = Przydziel Trackery
|
||||
onboarding-assign_trackers-description = Wybierzmy gdzie idzie jaki tracker. Naciśnij gdzie chcesz go przydzielić
|
||||
onboarding-assign_trackers-unassign_all = Usuń przydzielenie wszystkich urządzeń
|
||||
# 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
|
||||
@@ -1193,6 +1227,8 @@ onboarding-automatic_mounting-done-restart = Cofnij się na początek
|
||||
onboarding-automatic_mounting-mounting_reset-title = Kalibracja Pozycji
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Zrób pozycje "na Małysza" z wygiętymi nogami, tułowiem pochylonym do przodu z wygiętymi rękami.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Naciśnij "Zresetuj Położenie" i poczekaj 3 sekundy zanim trackery się zresetują.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-0 = 1. Stań na palcach z obiema stopami skierowanymi do przodu. Alternatywnie możesz to zrobić siedząc na krześle.
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. Naciśnij "Kalibracja Stóp" i poczekaj 3 sekundy zanim zresetuje pozycje.
|
||||
onboarding-automatic_mounting-preparation-title = Przygotowania
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Naciśnij przycisk "Pełny reset".
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Stań prosto z rękami po bokach. Upewnij się, że patrzysz przed siebie.
|
||||
@@ -1200,9 +1236,11 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. Utrzymaj pozycję, aż
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Załóż trackery
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Aby skalibrować rotacje, użyjemy trackerów które przypisano przed chwilą. Załóż wszystkie trackery, możesz je odróznić na postaci po prawej.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Wszystkie trackery założone
|
||||
onboarding-automatic_mounting-return-home = Gotowe
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back-scaled = Wróć do skalowania proporcji
|
||||
onboarding-manual_proportions-title = Manualne Proporcje Ciała
|
||||
onboarding-manual_proportions-fine_tuning_button = Automatyczne dostrajanie proporcji
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Podłącz gogle VR, aby korzystać z automatycznego dostrajania
|
||||
@@ -1304,6 +1342,30 @@ onboarding-automatic_proportions-smol_warning-cancel = Przejdź wstecz
|
||||
|
||||
## User height calibration
|
||||
|
||||
onboarding-user_height-title = Jaki masz wzrost?
|
||||
onboarding-user_height-description = Potrzebujemy twojego wzrostu, aby obliczyć proporcje ciała i dokładnie oddać twoje ruchy. Możesz pozwolić SlimeVR to obliczyć albo wpisać swój wzrost ręcznie.
|
||||
onboarding-user_height-need_head_tracker = Do kalibracji wymaganę są gogle vr z kontrolerami.
|
||||
onboarding-user_height-calculate = Automatycznie oblicz mój wzrost
|
||||
onboarding-user_height-next_step = Kontynuuj i zapisz
|
||||
onboarding-user_height-manual-proportions = Manualne Proporcje Ciała
|
||||
onboarding-user_height-calibration-title = Postęp kalibracji
|
||||
onboarding-user_height-calibration-RECORDING_FLOOR = Dotknij podłogi górną częścią kontrolera
|
||||
onboarding-user_height-calibration-WAITING_FOR_RISE = Wstań
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = Wstań i spójrz przed siebie
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = Upewnij się, że masz głowę poziomo
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = Nie patrz w podłogę
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = Nie patrz za wysoko
|
||||
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = Upewnij się, że kontroler jest skierowany w dół
|
||||
onboarding-user_height-calibration-RECORDING_HEIGHT = Wstań i nie ruszaj się!
|
||||
onboarding-user_height-calibration-DONE = Sukces!
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = Kalibracja zakończona niepomyślnie, spróbuj ponownie.
|
||||
onboarding-user_height-calibration-ERROR_TOO_HIGH = Wykryty wzrost użytkownika jest zbyt wysoki, spróbuj ponownie.
|
||||
onboarding-user_height-calibration-ERROR_TOO_SMALL = Wykryty wzrost użytkownika jest zbyt mały. Upewnij się, że stoisz prosto i patrzysz przed siebie pod koniec kalibracji.
|
||||
onboarding-user_height-calibration-error = Kalibracja nieudana
|
||||
onboarding-user_height-manual-tip = Podczas regulacji wzrostu wypróbuj różne pozy i zobacz, czy szkielet odzwierciedla twoje ruchy.
|
||||
onboarding-user_height-reset-warning =
|
||||
<b>Ostrzeżenie:</b> Spowoduje to zresetowanie wszystkich ustawień proporcji do wartości domyślnych.
|
||||
Czy na pewno chcesz to zrobić?
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
@@ -1342,6 +1404,8 @@ onboarding-stay_aligned-done = Gotowy
|
||||
## Home
|
||||
|
||||
home-no_trackers = Nie wykryto ani nie przypisano żadnych trackerów
|
||||
home-settings = Ustawienia strony głównej
|
||||
home-settings-close = Zamknij
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
@@ -1383,21 +1447,50 @@ firmware_tool = Narzędzie do oprogramowania sprzętowego DIY
|
||||
firmware_tool-description = Umożliwia konfigurowanie i flashowanie trackerów DIY
|
||||
firmware_tool-not_available = Ups, narzędzie do oprogramowania sprzętowego nie jest obecnie dostępne. Wróć później!
|
||||
firmware_tool-not_compatible = Narzędzie oprogramowania układowego nie jest kompatybilne z tą wersją serwera. Proszę zaktualizować swój serwer!
|
||||
firmware_tool-select_source = Wybierz oprogramowanie do wgrania
|
||||
firmware_tool-select_source-description = Wybierz oprogramowanie, które chcesz wgrać na urządzenie
|
||||
firmware_tool-select_source-error = Nie można załadować oprogramowania
|
||||
firmware_tool-select_source-board_type = Typ urządzenia
|
||||
firmware_tool-select_source-firmware = Źródło oprogramowania
|
||||
firmware_tool-select_source-version = Wersja oprogramowania
|
||||
firmware_tool-select_source-official = Oficjalny
|
||||
firmware_tool-select_source-dev = Deweloperski
|
||||
firmware_tool-board_defaults = Skonfiguruj swoje urządzenie
|
||||
firmware_tool-board_defaults-description = Ustaw piny lub ustawienia do twojego urządzenia
|
||||
firmware_tool-board_defaults-add = Dodaj
|
||||
firmware_tool-board_defaults-reset = Zresetuj do domyślnych ustawień
|
||||
firmware_tool-board_defaults-error-required = Wymagane pole
|
||||
firmware_tool-board_defaults-error-format = Nieprawidłowy format
|
||||
firmware_tool-board_defaults-error-format-number = To nie liczba
|
||||
firmware_tool-flash_method_step = Metoda flashowania
|
||||
firmware_tool-flash_method_step-description = Wybierz metodę flashowania, której chcesz użyć
|
||||
firmware_tool-flash_method_step-ota-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = Użyj metody bezprzewodowej. Twoje urządzenie będzie aktualizować się przez Wi-Fi. Działa tylko z skonfigurowanymi urządzeniami.
|
||||
firmware_tool-flash_method_step-ota-info =
|
||||
Używamy Twoich danych wi-fi, aby wgrać tracker i potwierdzić, że wszystko działa poprawnie.
|
||||
<b>Nie przechowujemy Twoich danych wifi!</b>
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.description = Użyj kabla usb, aby aktualizować urządzenie.
|
||||
firmware_tool-flashbtn_step = Naciśnij przycisk zasilania
|
||||
firmware_tool-flashbtn_step-description = Zanim przejdziesz do następnego kroku, musisz zrobić kilka rzeczy
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR =
|
||||
Naciśnij przycisk flash na płytce drukowanej przed włożeniem, aby włączyć tracker.¶
|
||||
Jeśli tracker był już włączony, po prostu go wyłącz i włącz ponownie, naciskając przycisk lub zwierając podkładki flash.¶
|
||||
Oto kilka zdjęć, jak to zrobić, zgodnie z różnymi wersjami trackera SlimeVR
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11-v2 = Włącz tracker zwierając drugi prostokątny pad FLASH od krawędzi na górnej stronie płytki, a metalową osłonę mikrokontrolera
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12-v2 = Włącz tracker zwierając drugi prostokątny pad FLASH od krawędzi na górnej stronie płytki, a metalową osłonę mikrokontrolera
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14-v2 = Włącz tracker, naciskając przycisk FLASH na górnej stronie płytki. Dioda LED powinna krótko mrógnąć.
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
Przed flashowaniem prawdopodobnie będziesz musiał przełączyć moduł śledzący w tryb bootloadera.¶
|
||||
W większości przypadków oznacza to naciśnięcie przycisku rozruchu na płycie przed rozpoczęciem procesu flashowania.¶
|
||||
Jeśli na początku flashowania upłynie limit czasu procesu flashowania, prawdopodobnie oznacza to, że moduł śledzący nie był w trybie bootloadera¶
|
||||
Aby dowiedzieć się, jak włączyć tryb ładowarki łodzi, zapoznaj się z instrukcjami flashowania swojej tablicy
|
||||
firmware_tool-flash_method_ota-title = Wgrywanie przez Wi-Fi
|
||||
firmware_tool-flash_method_ota-devices = Wykryte urządzenia OTA:
|
||||
firmware_tool-flash_method_ota-no_devices = Nie ma tablic, które można zaktualizować za pomocą OTA, upewnij się, że wybrałeś właściwy typ płyty
|
||||
firmware_tool-flash_method_serial-title = Wgrywanie przez USB
|
||||
firmware_tool-flash_method_serial-wifi = Dane uwierzytelniające Wi-Fi:
|
||||
firmware_tool-flash_method_serial-devices-label = Wykryte urządzenia szeregowe:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = Wybierz urządzenie szeregowe
|
||||
@@ -1412,7 +1505,10 @@ firmware_tool-flashing_step-exit = Wyjście
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-QUEUED = Budowanie....
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Tworzenie folderu kompilacji
|
||||
firmware_tool-build-DOWNLOADING_SOURCE = Pobieranie kodu źródłowego
|
||||
firmware_tool-build-EXTRACTING_SOURCE = Ekstrakcja kodu źródłowego
|
||||
firmware_tool-build-BUILDING = Budowa oprogramowania sprzętowego
|
||||
firmware_tool-build-SAVING = Zapisywanie kompilacji
|
||||
firmware_tool-build-DONE = Budowa ukończona
|
||||
@@ -1521,8 +1617,72 @@ vrc_config-avatar_measurement_type-ARM_SPAN = Rozpiętość ramion
|
||||
|
||||
error_collection_modal-title = Czy możemy zbierać błędy?
|
||||
error_collection_modal-description_v2 =
|
||||
{ ustawienia-interfejsu-zachowanie-error_tracking-description_v2 }
|
||||
{ settings-interface-behavior-error_tracking-description_v2 }
|
||||
|
||||
To ustawienie można zmienić później w sekcji Zachowanie na stronie ustawień.
|
||||
error_collection_modal-confirm = Zgadzam się
|
||||
error_collection_modal-cancel = Nie chcę
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
tracking_checklist = Lista Kontrolna
|
||||
tracking_checklist-settings = Ustawienia Listy Kontrolnej
|
||||
tracking_checklist-settings-close = Zamknij
|
||||
tracking_checklist-status-incomplete = Nie jesteś przygotowany aby korzystać ze SlimeVR!
|
||||
tracking_checklist-status-partial =
|
||||
{ $count ->
|
||||
[one] Masz { $count } ostrzeżenie!
|
||||
[few] Masz { $count } ostrzeżeń!
|
||||
*[many] Masz { $count } ostrzeżeń!
|
||||
}
|
||||
tracking_checklist-status-complete = Jesteś gotowy korzystać ze SlimeVR!
|
||||
tracking_checklist-MOUNTING_CALIBRATION = Wykonaj kalibrację montażu
|
||||
tracking_checklist-FEET_MOUNTING_CALIBRATION = Wykonaj kalibrację montażu stóp
|
||||
tracking_checklist-FULL_RESET = Wykonaj pełny reset
|
||||
tracking_checklist-FULL_RESET-desc = Niektóre urządzenia wymagają resetu.
|
||||
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR nie jest uruchomiony
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR nie jest uruchomiony. Czy twoje gogle są podłączone?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-open = Uruchom SteamVR
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION = Skalibruj swoje urządzenia
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = Nie wykonałeś kalibracji urządzenia. Proszę, pozwól swoim urządzeniom (podświetlonym na żółto) odpocząć na stabilnej powierzchni przez kilka sekund.
|
||||
tracking_checklist-TRACKER_ERROR = Urządzenia z błędami
|
||||
tracking_checklist-TRACKER_ERROR-desc = Niektóre z Twoich urządzeń mają błędy. Proszę ponownie uruchomić urządzenia podświetlone na żółto.
|
||||
tracking_checklist-VRCHAT_SETTINGS = Konfiguruj ustawienia do VRChat'a
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = Źle ustawiłeś ustawienia VRChat'a! Może to negatywnie wpłynąć na twoje śledzenie.
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = Przejdź do ostrzeżeń VRChat
|
||||
tracking_checklist-UNASSIGNED_HMD = Zestaw VR nieprzypisany do Głowy
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = Zestaw VR powinien być przypisany jako śledzenie głowy.
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = Zmień profil sieciowy
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc =
|
||||
{ $count ->
|
||||
[one]
|
||||
Jeden z Twoich adapterów sieciowych jest ustawiony na publiczny:
|
||||
{ $adapters }
|
||||
Nie zaleca się tego, aby SlimeVR działał poprawnie.
|
||||
<PublicFixLink>Zobacz, jak to naprawić tutaj.</PublicFixLink>
|
||||
[few]
|
||||
Niektóre z Twoich adapterów sieciowych są ustawione na publiczne:
|
||||
{ $adapters }
|
||||
Nie zaleca się tego, aby SlimeVR działał poprawnie.
|
||||
<PublicFixLink>Zobacz, jak to naprawić tutaj.</PublicFixLink>
|
||||
*[many]
|
||||
Niektóre z Twoich adapterów sieciowych są ustawione na publiczne:
|
||||
{ $adapters }
|
||||
Nie zaleca się tego, aby SlimeVR działał poprawnie.
|
||||
<PublicFixLink>Zobacz, jak to naprawić tutaj.</PublicFixLink>
|
||||
}
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = Otwórz panel sterowania
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = Konfiguruj Opcje Wyrównywania
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = Zapisz pozycje wyrównywania, aby zmniejszyć poślizg
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = Otwórz Konfiguracje Wyrównywania
|
||||
tracking_checklist-ignore = Ignoruj
|
||||
preview-mocap_mode_soon = Tryb mocap (wkrótce™)
|
||||
preview-disable_render = Wyłącz renderowanie
|
||||
preview-disabled_render = Renderowanie wyłączone
|
||||
toolbar-mounting_calibration = Kalibracja Pozycji
|
||||
toolbar-mounting_calibration-default = Ciało
|
||||
toolbar-mounting_calibration-feet = Stopy
|
||||
toolbar-mounting_calibration-fingers = Palce
|
||||
toolbar-drift_reset = Reset Poślizgu
|
||||
toolbar-assigned_trackers = { $count } Przydzielonych urządzeń
|
||||
toolbar-unassigned_trackers = { $count } Nieprzydzielonych urządzeń
|
||||
|
||||
@@ -920,11 +920,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 =
|
||||
@@ -1507,3 +1502,6 @@ error_collection_modal-description_v2 =
|
||||
Вы можете изменить эту настройку позже на странице настроек в разделе Поведение.
|
||||
error_collection_modal-confirm = Я согласен
|
||||
error_collection_modal-cancel = Я не согласен
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -842,11 +842,6 @@ onboarding-setup_warning-cancel = Fortsätt inställning
|
||||
## Wi-Fi setup
|
||||
|
||||
onboarding-wifi_creds-back = Gå tillbaka till introduktion
|
||||
onboarding-wifi_creds = Skriv in Wi-Fi information
|
||||
# This cares about multilines
|
||||
onboarding-wifi_creds-description =
|
||||
Trackers kommer att använda dessa uppgifter för att ansluta trådlöst.
|
||||
Använd de autentiseringsuppgifter som du för närvarande är ansluten till.
|
||||
onboarding-wifi_creds-skip = Hoppa över Wi-Fi inställningar.
|
||||
onboarding-wifi_creds-submit = Överlämna!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -1247,3 +1242,6 @@ error_collection_modal-description_v2 =
|
||||
Du kan ändra denna inställningen senare i beteende-sektionen av inställnings-sidan
|
||||
error_collection_modal-confirm = Jag tillåter.
|
||||
error_collection_modal-cancel = Jag vill inte
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -17,9 +17,9 @@ websocket-error-logs = เปิดโฟลเดอร์ไฟล์บัน
|
||||
|
||||
## Update notification
|
||||
|
||||
version_update-title = มีเวอร์ชั่นใหม่พร้อมแล้ว: { $version }
|
||||
version_update-title = มีเวอร์ชันใหม่พร้อมแล้ว: { $version }
|
||||
version_update-description = คลิกที่ "{ version_update-update }" เพื่อดาวน์โหลดตัวติดตั้ง SlimeVR ให้คุณ
|
||||
version_update-update = อัพเดต
|
||||
version_update-update = อัปเดต
|
||||
version_update-close = ปิด
|
||||
|
||||
## Tips
|
||||
@@ -115,6 +115,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 = บอร์ดพัฒนาถุงมือ IMU SlimeVR
|
||||
board_type-GESTURES = ท่าทางสัมผัส
|
||||
board_type-ESP32S3_SUPERMINI = ESP32-S3 Supermini
|
||||
board_type-GENERIC_NRF = บอร์ด NRF ทั่วไป
|
||||
board_type-SLIMEVR_BUTTERFLY_DEV = SlimeVR Dev Butterfly
|
||||
board_type-SLIMEVR_BUTTERFLY = SlimeVR Butterfly
|
||||
|
||||
## Proportions
|
||||
|
||||
@@ -141,7 +146,7 @@ skeleton_bone-UPPER_CHEST-desc =
|
||||
skeleton_bone-CHEST_OFFSET = การชดเชยตำแหน่งหน้าอก
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
นี่เป็นการปรับให้แทร็กเกอร์เสมือนบริเวณอกสูงขึ้น หรือต่ำลงเพื่อช่วย
|
||||
ในการตั้งศูนย์หรือปรับเทียบสำหรับบางเกมหรือแอปพลิเคชั่นที่กำหนดตำแหน่งแทร็กเกอร์สูงกว่า หรือต่ำกว่า
|
||||
ในการตั้งศูนย์หรือปรับเทียบสำหรับบางเกมหรือแอปพลิเคชันที่กำหนดตำแหน่งแทร็กเกอร์สูงกว่า หรือต่ำกว่า
|
||||
skeleton_bone-CHEST = ความยาวหน้าอก
|
||||
skeleton_bone-CHEST-desc =
|
||||
นี่เป็นระยะห่างจากกลางหน้าอกถึงกลางกระดูกสันหลัง
|
||||
@@ -151,7 +156,7 @@ skeleton_bone-WAIST = ความยาวเอว
|
||||
skeleton_bone-WAIST-desc =
|
||||
นี่เป็นระยะห่างจากตรงกลางกระดูกสันหลังถึงสะดือ
|
||||
ปรับด้วยการเริ่มจากการปรับความยาวลำตัวให้เหมาะสมก่อน แล้วปรับค่านี้ในท่าต่างๆ
|
||||
(นั่งลง ก้มตัว นอนราบ เป็นต้น) จนกว่ากระดูกหลังเสมือนจะตรงกับกระดูกสันหลังจริง
|
||||
(นั่งลง ก้มตัว นอนราบ เป็นต้น) จนกว่ากระดูกหลังเสมือนจะตรงกับกระดูกสันหลังจริงของคุณ
|
||||
skeleton_bone-HIP = ความยาวสะโพก
|
||||
skeleton_bone-HIP-desc =
|
||||
นี่เป็นระยะห่างจากสะดือถึงสะโพก
|
||||
@@ -160,12 +165,12 @@ skeleton_bone-HIP-desc =
|
||||
skeleton_bone-HIP_OFFSET = การชดเชยตำแหน่งสะโพก
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
ปรับค่านี้เพื่อขยับแทร็กเกอร์เสมือนของสะโพกขึ้นหรือลง
|
||||
เพื่อช่วยในการตั้งศูนย์หรือปรับเทียบสำหรับบางเกมหรือแอปพลิเคชั่นที่กำหนดตำแหน่งแทร็กเกอร์ให้อยู่ที่สะโพก
|
||||
เพื่อช่วยในการตั้งศูนย์หรือปรับเทียบสำหรับบางเกมหรือแอปพลิเคชันที่กำหนดตำแหน่งแทร็กเกอร์ให้อยู่ที่สะโพก
|
||||
skeleton_bone-HIPS_WIDTH = ความกว้างสะโพก
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
นี่เป็นระยะห่างจากจุดเริ่มต้นของขาทั้งสอง
|
||||
ปรับด้วยการเริ่มจากการรีเซ็ตแทร็กเกอร์ทั้งหมดในขณะที่ยืนตรง
|
||||
ขาตรง และจึงปรับค่านี้จนกระทั้งขาเสมือนของคุณตรงกับขาจริงในแนวนอน
|
||||
ปรับด้วยการเริ่มจากการรีเซ็ตทั้งหมดในขณะที่ยืนตรง
|
||||
ขาตรง และจึงปรับค่านี้จนกระทั่งขาเสมือนของคุณตรงกับขาจริงในแนวนอน
|
||||
skeleton_bone-leg_group = ความยาวขา
|
||||
skeleton_bone-leg_group-desc =
|
||||
นี่เป็นระยะห่างจากสะโพกถึงเท้า
|
||||
@@ -189,7 +194,7 @@ skeleton_bone-FOOT_SHIFT = การปรับชดเชยการวา
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
นี่เป็นระยะห่างในแนวนอนจากหัวเข่าถึงข้อเท้า
|
||||
ค่านี้ช่วยในการคำนวณการเอียงของขาส่วนล่างเมื่อยืนตัวตรง
|
||||
โดยเริ่มจากการตั้งความยาวเท้าเป็น 0, รีเซ็ตแทร็กเกอร์ทั้งหมด,
|
||||
โดยเริ่มจากการตั้งความยาวเท้าเป็น 0, จากนั้นรีเซ็ตทั้งหมด
|
||||
แล้วจึงปรับค่าจนกระทั่งเท้าเสมือนตรงกับกลางข้อเท้าจริงของคุณ
|
||||
skeleton_bone-SKELETON_OFFSET = การชดเชยตำแหน่งโครงร่างรวม
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
@@ -226,14 +231,14 @@ skeleton_bone-HAND_Y-desc =
|
||||
นี่เป็นระยะห่างในแนวตั้งจากข้อมือถึงกลางมือของคุณ
|
||||
หากใช้สำหรับ Motion Capture ให้เริ่มจากปรับความยาวแขนให้เหมาะสม แล้วปรับค่านี้จนกว่า
|
||||
แทร็กเกอร์เสมือนของมือนั้นอยู่ในแนวตั้งเดียวกับกลางมือจริง
|
||||
หากใช้สำหรับจับตำแหน่งข้อศอกจากคอนโทรลเลอร์ ให้เริ่มจากตั้งความยาวแขน เป็น 0 และ
|
||||
หากใช้สำหรับจับตำแหน่งข้อศอกจากคอนโทรลเลอร์ ให้เริ่มจากตั้งความยาวแขน เป็น 0
|
||||
และปรับค่าจนกว่าแทร็กเกอร์ข้อศอกนั้นอยู่ในแนวตั้งเดียวกับข้อมือจริง
|
||||
skeleton_bone-HAND_Z = ระยะมือแนวราบ (แกน Z)
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
นี่เป็นระยะห่างแนวนอนจากข้อมือถึงกลางมือของคุณ
|
||||
หากใช้สำหรับ Motion capture ให้ตั้งค่านี้เป็น 0
|
||||
หากใช้สำหรับจับตำแหน่งข้อศอกจากคอนโทรลเลอร์ ให้เริ่มจากตั้งความยาวแขนเป็น 0 และ
|
||||
ปรับค่าจนกว่าแทร็กเกอร์ข้อศอกนั้นอยู่ในแนวราบเดียวกับข้อมือจริงของคุณ
|
||||
หากใช้สำหรับจับตำแหน่งข้อศอกจากคอนโทรลเลอร์ ให้เริ่มจากตั้งความยาวแขนเป็น 0
|
||||
และปรับค่าจนกว่าแทร็กเกอร์ข้อศอกนั้นอยู่ในแนวราบเดียวกับข้อมือจริงของคุณ
|
||||
skeleton_bone-ELBOW_OFFSET = ชดเชยตำแหน่งข้อศอก
|
||||
skeleton_bone-ELBOW_OFFSET-desc =
|
||||
สามารถปรับเพื่อเลื่อนแทร็กเกอร์ข้อศอกเสมือนของคุณขึ้นหรือลงเพื่อช่วย
|
||||
@@ -250,23 +255,23 @@ reset-reset_all_warning-cancel = ยกเลิก
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>คำเตือน:</b> คุณยังไม่ได้ตั้งค่าความสูง สัดส่วนของคุณจะถูกรีเซ็ตเป็นค่าเริ่มต้น
|
||||
คุณแน่ใจหรือไม่ว่าต้องการทำเช่นนี้
|
||||
reset-full = รีเซ็ตแทร็กเกอร์ทั้งหมด
|
||||
reset-full = รีเซ็ตทั้งหมด
|
||||
reset-mounting = รีเซ็ตตั้งศูนย์การติดตั้ง
|
||||
reset-mounting-feet = รีเซ็ตทิศทางติดตั้งเท้า
|
||||
reset-mounting-fingers = รีเซ็ตการติดตั้งนิ้วมือ
|
||||
reset-yaw = รีเซ็ตแกนตั้ง
|
||||
reset-error-no_feet_tracker = ไม่ได้กำหนดแทร็กเกอร์เท้า
|
||||
reset-error-no_fingers_tracker = ไม่ได้กําหนดแทร็กเกอร์นิ้ว
|
||||
reset-error-mounting-need_full_reset = ต้องรีเซ็ตแทร็กเกอร์ทั้งหมดก่อนการตั้งศูนย์การติดตั้ง
|
||||
reset-error-yaw-need_full_reset = ต้องรีเซ็ตแทร็กเกอร์ทั้งหมดก่อนรีเซ็ตแกนตั้ง
|
||||
reset-error-no_fingers_tracker = ไม่ได้กำหนดแทร็กเกอร์นิ้ว
|
||||
reset-error-mounting-need_full_reset = ต้องรีเซ็ตทั้งหมดก่อนการตั้งศูนย์การติดตั้ง
|
||||
reset-error-yaw-need_full_reset = ต้องรีเซ็ตทั้งหมดก่อนรีเซ็ตแกนตั้ง
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
serial_detection-new_device-p0 = ตรวจพบอุปกรณ์ Serial ใหม่!
|
||||
serial_detection-new_device-p1 = ป้อนข้อมูลการเข้าสู่ระบบ Wi-Fi ของคุณ!
|
||||
serial_detection-new_device-p1 = ใส่ข้อมูลเครือข่าย Wi-Fi ของคุณ!
|
||||
serial_detection-new_device-p2 = กรุณาเลือกสิ่งที่คุณต้องการทำกับอุปกรณ์
|
||||
serial_detection-open_wifi = เชื่อมต่อกับ Wi-Fi
|
||||
serial_detection-open_serial = เปิด Serial console
|
||||
serial_detection-open_serial = เปิดหน้าคอนโซล Serial
|
||||
serial_detection-submit = ยืนยัน!
|
||||
serial_detection-close = ปิด
|
||||
|
||||
@@ -349,6 +354,7 @@ tracker-table-column-name = ชื่อ
|
||||
tracker-table-column-type = ชนิด
|
||||
tracker-table-column-battery = แบตเตอรี่
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-packet_loss = สูญเสียแพ็คเก็ต
|
||||
tracker-table-column-tps = TPS
|
||||
tracker-table-column-temperature = อุณหภูมิ °C
|
||||
tracker-table-column-linear-acceleration = ความเร่ง X/Y/Z
|
||||
@@ -390,6 +396,9 @@ tracker-infos-magnetometer-status-v1 =
|
||||
[ENABLED] เปิดใช้งาน
|
||||
*[NOT_SUPPORTED] ไม่รองรับ
|
||||
}
|
||||
tracker-infos-packet_loss = สูญเสียแพ็คเก็ต
|
||||
tracker-infos-packets_lost = สูญเสียแพ็คเก็ต
|
||||
tracker-infos-packets_received = ได้รับแพ็คเก็ต
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -401,9 +410,9 @@ tracker-settings-assignment_section-edit = แก้ไขการกำหน
|
||||
tracker-settings-mounting_section = ทิศทางการติดตั้ง
|
||||
tracker-settings-mounting_section-description = แทร็กเกอร์นี้อยู่ด้านไหนของคุณ?
|
||||
tracker-settings-mounting_section-edit = แก้ไขการติดตั้ง
|
||||
tracker-settings-drift_compensation_section = เปิดใช้การชดเชยค่าดริฟท์
|
||||
tracker-settings-drift_compensation_section-description = ให้แทร็กเกอร์ตัวนี้ชดเชยค่าดริฟท์เมื่อมีการเปิดใช้งานการชดเชยค่าดริฟท์หรือไม่?
|
||||
tracker-settings-drift_compensation_section-edit = ใช้การชดเชยค่าดริฟท์
|
||||
tracker-settings-drift_compensation_section = เปิดใช้การชดเชยการดริฟท์
|
||||
tracker-settings-drift_compensation_section-description = ให้แทร็กเกอร์ตัวนี้ชดเชยการดริฟท์เมื่อมีการเปิดใช้งานการชดเชยการดริฟท์หรือไม่?
|
||||
tracker-settings-drift_compensation_section-edit = ใช้การชดเชยการดริฟท์
|
||||
tracker-settings-use_mag = เปิดใช้งานเซ็นเซอร์สนามแม่เหล็กสำหรับแทร็กเกอร์ตัวนี้
|
||||
# Multiline!
|
||||
tracker-settings-use_mag-description =
|
||||
@@ -421,13 +430,14 @@ tracker-settings-forget-description = ลบแทร็กเกอร์ออ
|
||||
tracker-settings-forget-label = ลืมแทร็กเกอร์
|
||||
tracker-settings-update-unavailable-v2 = ไม่พบเวอร์ชันที่เผยแพร่
|
||||
tracker-settings-update-incompatible = ไม่สามารถอัปเดตได้ บอร์ดไม่รองรับ
|
||||
tracker-settings-update-low-battery = ไม่สามารถอัพเดตได้ แบตเตอรี่ต่ำกว่า 50%
|
||||
tracker-settings-update-low-battery = ไม่สามารถอัปเดตได้ แบตเตอรี่ต่ำกว่า 50%
|
||||
tracker-settings-update-up_to_date = เป็นเวอร์ชันล่าสุดแล้ว
|
||||
tracker-settings-update-blocked = ไม่มีอัปเดต ไม่มีเวอร์ชันอื่นให้ใช้งาน
|
||||
tracker-settings-update = อัพเดตทันที
|
||||
tracker-settings-update = อัปเดตทันที
|
||||
tracker-settings-update-title = เวอร์ชันเฟิร์มแวร์
|
||||
tracker-settings-current-version = ปัจจุบัน
|
||||
tracker-settings-latest-version = ล่าสุด
|
||||
tracker-settings-build-date = วันที่สร้าง
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -465,7 +475,7 @@ tracker_selection_menu-UPPER_CHEST = { -tracker_selection-part } หน้าอ
|
||||
tracker_selection_menu-CHEST = { -tracker_selection-part } อก?
|
||||
tracker_selection_menu-WAIST = { -tracker_selection-part } เอว?
|
||||
tracker_selection_menu-HIP = { -tracker_selection-part } สะโพก?
|
||||
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } หัวไหลซ้าย?
|
||||
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } ไหล่ซ้าย?
|
||||
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } แขนซ้ายส่วนบน?
|
||||
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } แขนซ้ายส่วนล่าง?
|
||||
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } มือซ้าย?
|
||||
@@ -503,10 +513,10 @@ settings-sidebar-osc_router = เราเตอร์ OSC
|
||||
settings-sidebar-osc_trackers = แทร็กเกอร์ VRChat OSC
|
||||
settings-sidebar-osc_vmc = VMC
|
||||
settings-sidebar-utils = เครื่องมือ
|
||||
settings-sidebar-serial = Serial Console
|
||||
settings-sidebar-serial = คอนโซล Serial
|
||||
settings-sidebar-appearance = รูปแบบ
|
||||
settings-sidebar-home = หน้าหลัก
|
||||
settings-sidebar-checklist = รายการเตรียมความพร้อมแทร็กกิ้ง
|
||||
settings-sidebar-checklist = รายการเตรียมความพร้อมแทร็กเกอร์
|
||||
settings-sidebar-notifications = การแจ้งเตือน
|
||||
settings-sidebar-behavior = พฤติกรรมการทำงาน
|
||||
settings-sidebar-firmware-tool = เครื่องมือเฟิร์มแวร์ DIY
|
||||
@@ -550,7 +560,7 @@ settings-general-tracker_mechanics-filtering = การกรองข้อม
|
||||
# This also cares about multilines
|
||||
settings-general-tracker_mechanics-filtering-description =
|
||||
เลือกประเภทการกรองสัญญาณรบกวนสำหรับแทร็กเกอร์
|
||||
หากใช้การการคาดการณ์จะคาดการณ์การเคลื่อนไหว ในขณะที่การทำให้ราบรื่นจะทำให้การเคลื่อนไหวราบรื่นขึ้น
|
||||
หากใช้การคาดการณ์จะคาดการณ์การเคลื่อนไหว ในขณะที่การทำให้ราบรื่นจะทำให้การเคลื่อนไหวราบรื่นขึ้น
|
||||
settings-general-tracker_mechanics-filtering-type = ประเภทการกรองสัญญาณ
|
||||
settings-general-tracker_mechanics-filtering-type-none = ไม่มีการกรอง
|
||||
settings-general-tracker_mechanics-filtering-type-none-description = ใช้ค่าการหมุนตามจริง จะไม่มีการกรองข้อมูลใดๆ
|
||||
@@ -560,49 +570,52 @@ settings-general-tracker_mechanics-filtering-type-prediction = คาดกา
|
||||
settings-general-tracker_mechanics-filtering-type-prediction-description = ลดความหน่วง และทำให้การเคลื่อนไหวฉับไวขึ้น แต่อาจเพิ่มการกระตุก
|
||||
settings-general-tracker_mechanics-filtering-amount = ปริมาณ
|
||||
settings-general-tracker_mechanics-yaw-reset-smooth-time = เวลาหน่วงการรีเซ็ตแกนตั้ง(ตั้งที่ 0 วินาทีเพื่อปิดการใช้)
|
||||
settings-general-tracker_mechanics-drift_compensation = การชดเชยค่าดริฟท์
|
||||
settings-general-tracker_mechanics-drift_compensation = การชดเชยการดริฟท์
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-description =
|
||||
ชดเชยความคลาดเคลื่อนแกนตั้งของ IMU โดยหมุนชดเชยในทิศทางตรงข้าม
|
||||
โดยนำปริมาณการรีเซ็ตและจำนวนครั้งในการรีเซ็ตมาพิจารณา
|
||||
ควรใช้เฉพาะในกรณีที่คุณต้องรีเซ็ตบ่อยครั้งมากเท่านั้น!
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = การชดเชยค่าดริฟท์
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = การคาดการณ์การชดเชยค่าดริฟท์
|
||||
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 =
|
||||
คาดการณ์การชดเชยค่าดริฟท์ของแกนตั้งนอกเหนือจากช่วงที่เคยถูกวัดไว้
|
||||
คาดการณ์การชดเชยการดริฟท์ของแกนตั้งนอกเหนือจากช่วงที่เคยถูกวัดไว้
|
||||
เปิดใช้งานหากแทร็กเกอร์ของคุณหมุนรอบแกนตั้งอย่างต่อเนื่อง
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = คาดการณ์การชดเชยค่าดริฟท์
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = คาดการณ์การชดเชยการดริฟท์
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>คำเตือน:</b> ควรใช้การชดเชยดริฟท์เฉพาะในกรณีที่คุณต้องรีเซ็ต
|
||||
บ่อยครั้งมากเท่านั้น (ทุก ~5-10 นาที)
|
||||
|
||||
IMU บางตัวที่มีแนวโน้มที่จะต้องรีเซ็ตบ่อย ได้แก่:
|
||||
Joy-Cons, owoTrack, และ MPU (หากเฟิร์มแวร์ไม่ได้รับการอัพเดต)
|
||||
Joy-Cons, owoTrack, และ MPU (หากเฟิร์มแวร์ไม่ได้รับการอัปเดต)
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-cancel = ยกเลิก
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-done = ฉันเข้าใจแล้ว
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = ปริมาณการชดเชย
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = ใช้ค่าจากการรีเซ็ต X ครั้ง
|
||||
settings-general-tracker_mechanics-save_mounting_reset = บันทึกการตั้งศูนย์การรีเซ็ตการติดตั้งอัตโนมัติ
|
||||
settings-general-tracker_mechanics-save_mounting_reset = บันทึกค่าการตั้งศูนย์การติดตั้งโดยอัตโนมัติ
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
บันทึกการตั้งศูนย์การติดตั้งแทร็กเกอร์ระหว่างการรีสตาร์ท มีประโยชน์
|
||||
เมื่อสวมชุดที่แทร็กเกอร์ไม่ขยับระหว่างเซสชัน <b>ไม่แนะนำสำหรับผู้ใช้ทั่วไป!</b>
|
||||
บันทึกการตั้งศูนย์การติดตั้งแทร็กเกอร์อัตโนมัติ เพื่อใช้ซ้ำเมื่อรีสตาร์ท
|
||||
มีประโยชน์เมื่อสวมชุดที่ตำแหน่งแทร็กเกอร์ไม่เปลี่ยนแปลงระหว่างการใช้งาน <b>ไม่แนะนำสำหรับผู้ใช้ทั่วไป!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = บันทึกการรีเซ็ตการติดตั้ง
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = ใช้เซ็นเซอร์สนามแม่เหล็กบนแทร็กเกอร์ที่ IMU รองรับ
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
ใช้เซ็นเซอร์สนามแม่เหล็กบนแทร็กเกอร์ทั้งหมดที่มีเฟิร์มแวร์ที่เข้ากันได้ ซึ่งช่วยลดดริฟท์ในสภาพแวดล้อมที่มีสนามแม่เหล็กคงที่
|
||||
สามารถปิดการใช้งานสำหรับแทร็กเกอร์แต่ละตัวได้ในการตั้งค่าของแทร็กเกอร์ <b>โปรดอย่าปิดแทร็กเกอร์ ในขณะที่กำลังสลับการตั้งค่านี้!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = ใช้เซ็นเซอร์สนามแม่เหล็กกับแทร็กเกอร์
|
||||
settings-general-tracker_mechanics-trackers_over_usb = ต่อแทร็กเกอร์ผ่าน USB
|
||||
settings-general-tracker_mechanics-trackers_over_usb-description = เปิดใช้งานการรับข้อมูลแทร็กเกอร์แบบ HID ผ่านสาย USB ตรวจสอบว่าแทร็กเกอร์ของคุณได้เปิด <b>การเชื่อมต่อผ่าน HID</b> เอาไว้!
|
||||
settings-general-tracker_mechanics-trackers_over_usb-enabled-label = เปิดให้แทร็กเกอร์แบบ HID ต่อโดยตรงผ่านสาย USB
|
||||
settings-stay_aligned = Stay Aligned
|
||||
settings-stay_aligned-description = Stay Aligned จะลดดริฟท์โดยค่อยๆ ปรับแทร็กเกอร์ให้เข้ากับท่าทางผ่อนคลายของคุณ
|
||||
settings-stay_aligned-setup-label = ตั้งค่า Stay Aligned
|
||||
settings-stay_aligned-setup-description = คุณต้องทำ "ตั้งค่า Stay Aligned" ให้เสร็จสมบูรณ์เพื่อเปิดใช้งาน Stay Aligned
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ โปรดปิด การชดเชยค่าดริฟท์! เพราะมันจะขัดแย้งกับการทำงานของ Stay Aligned
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ โปรดปิด การชดเชยการดริฟท์! เพราะมันจะขัดแย้งกับการทำงานของ Stay Aligned
|
||||
settings-stay_aligned-enabled-label = เปิดใช้งาน
|
||||
settings-stay_aligned-hide_yaw_correction-label = ซ่อนการปรับแต่ง (เพื่อเปรียบเทียบกับแบบไม่มี Stay Aligned)
|
||||
settings-stay_aligned-general-label = ทั่วไป
|
||||
settings-stay_aligned-relaxed_poses-label = ท่าทางผ่อนคลาย
|
||||
settings-stay_aligned-relaxed_poses-description = Stay Aligned ใช้ท่าทางผ่อนคลายของคุณเพื่อให้แทร็กเกอร์อยู่ในแนวที่ถูกต้อง ใช้ "ตั้งค่า Stay Aligned" เพื่ออัพเดตท่าทางเหล่านี้
|
||||
settings-stay_aligned-relaxed_poses-description = Stay Aligned ใช้ท่าทางผ่อนคลายของคุณเพื่อให้แทร็กเกอร์อยู่ในแนวที่ถูกต้อง ใช้ "ตั้งค่า Stay Aligned" เพื่ออัปเดตท่าทางเหล่านี้
|
||||
settings-stay_aligned-relaxed_poses-standing = ปรับแทร็กเกอร์ขณะยืน
|
||||
settings-stay_aligned-relaxed_poses-sitting = ปรับแทร็กเกอร์ขณะนั่งเก้าอี้
|
||||
settings-stay_aligned-relaxed_poses-flat = ปรับแทร็กเกอร์ขณะนั่งบนพื้น หรือนอนหงาย
|
||||
@@ -628,10 +641,10 @@ settings-general-fk_settings-leg_tweak-skating_correction = การแก้
|
||||
settings-general-fk_settings-leg_tweak-toe_snap = เดาการหมุนเท้า
|
||||
settings-general-fk_settings-leg_tweak-foot_plant = ปรับสมดุลเท้า
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-amount = ปริมาณการแก้ไขการไถล
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-description = การแก้ไขการไถล จะแก้ไขปัญหาที่เท้าสไลด์เหมือนเล่นสเก็ตน้ำแข็ง แต่สามารถลดความแม่นยำในการเคลื่อนไหวบางรูปแบบ เมื่อเปิดใช้งานแล้วต้องทำการรีเซ็ตแทร็กเกอร์ทั้งหมด แล้วตั้งศูนย์หรือปรับเทียบใหม่ในเกม
|
||||
settings-general-fk_settings-leg_tweak-floor_clip-description = การล๊อกระดับพื้นสามารถลดหรือกำจัดการทะลุผ่านพื้นได้ เมื่อเปิดใช้งานแล้วต้องทำการรีเซ็ตแทร็กเกอร์ทั้งหมด แล้วตั้งศูนย์หรือปรับเทียบใหม่ในเกม
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-description = การแก้ไขการไถล จะแก้ไขปัญหาที่เท้าสไลด์เหมือนเล่นสเก็ตน้ำแข็ง แต่สามารถลดความแม่นยำในการเคลื่อนไหวบางรูปแบบ เมื่อเปิดใช้งานแล้วต้องทำการรีเซ็ตทั้งหมด แล้วตั้งศูนย์หรือปรับเทียบใหม่ในเกม
|
||||
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_tweak-foot_plant-description = การปรับสมดุลเท้า จะหมุนเท้าให้ขนานกับพื้นเมื่อมีการสัมผัสพื้น
|
||||
settings-general-fk_settings-leg_fk = การจับตำแหน่งขา
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = บังคับรีเซ็ตการติดตั้งเท้าในระหว่างการรีเซ็ตการติดตั้งทั่วไป
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = บังคับรีเซ็ตการติดตั้งเท้า
|
||||
@@ -642,20 +655,20 @@ settings-general-fk_settings-enforce_joint_constraints-correct_constraints = แ
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = แก้ไขการหมุนของข้อต่อเมื่อมีการหมุนเกินขีดจำกัด
|
||||
settings-general-fk_settings-ik = ข้อมูลตำแหน่ง
|
||||
settings-general-fk_settings-ik-use_position = ใช้ข้อมูลตำแหน่ง
|
||||
settings-general-fk_settings-ik-use_position-description = เปิดใช้งานการใช้ข้อมูลตำแหน่งจากแทร็กเกอร์ที่รองรับ เมื่อเปิดใช้งานแล้วโปรดทำการรีเซ็ตแทร็กเกอร์ทั้งหมด แล้วตั้งศูนย์หรือปรับเทียบใหม่ในเกม
|
||||
settings-general-fk_settings-ik-use_position-description = เปิดใช้งานการใช้ข้อมูลตำแหน่งจากแทร็กเกอร์ที่รองรับ เมื่อเปิดใช้งานแล้วโปรดทำการรีเซ็ตทั้งหมด แล้วตั้งศูนย์หรือปรับเทียบใหม่ในเกม
|
||||
settings-general-fk_settings-arm_fk = การจับตำแหน่งแขน
|
||||
settings-general-fk_settings-arm_fk-description = บังคับให้ใช้ตำแหน่งแขนจากแว่น VR แม้ว่าจะมีข้อมูลตำแหน่งมืออยู่ก็ตาม
|
||||
settings-general-fk_settings-arm_fk-description = บังคับให้ติดตามแขนจากเฮดเซ็ต (HMD) แม้ว่าจะมีข้อมูลตำแหน่งมืออยู่ก็ตาม
|
||||
settings-general-fk_settings-arm_fk-force_arms = บังคับใช้ตำแหน่งแขนจากแว่น
|
||||
settings-general-fk_settings-reset_settings = ตั้งค่าการรีเซ็ต
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch-description = รีเซ็ตความเอียง (การหมุนก้มหรือเงย) ของ HMD เมื่อทำการรีเซ็ตแทร็กเกอร์ทั้งหมด มีประโยชน์หากสวม HMD ไว้ที่หน้าผากสำหรับ VTubing หรือ MoCap ไม่ควรเปิดใช้งานสำหรับการใช้งาน VR ทั่วไป
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch-description = รีเซ็ตความเอียง (การหมุนก้มหรือเงย) ของ HMD เมื่อทำการรีเซ็ตทั้งหมด มีประโยชน์หากสวม HMD ไว้ที่หน้าผากสำหรับ VTubing หรือ MoCap ไม่ควรเปิดใช้งานสำหรับการใช้งาน VR ทั่วไป
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch = รีเซ็ตความเอียงของ HMD
|
||||
settings-general-fk_settings-arm_fk-reset_mode-description = เปลี่ยนท่าทางแขนที่ใช้สำหรับการรีเซ็ตตั้งศูนย์การติดตั้ง
|
||||
settings-general-fk_settings-arm_fk-back = ยื่นไปด้านหลัง
|
||||
settings-general-fk_settings-arm_fk-back-description = โหมดค่าเริ่มต้น โดยแขนท่อนบนจะเอียงไปด้านหลัง และแขนท่อนล่างจะชี้ไปด้านหน้า
|
||||
settings-general-fk_settings-arm_fk-tpose_up = ที-โพส (แขนขึ้น)
|
||||
settings-general-fk_settings-arm_fk-tpose_up-description = กำหนดให้แขนแนบลำตัวระหว่างการรีเซ็ตแทร็กเกอร์ทั้งหมด และเหยียดออกด้านข้าง 90 องศา ระหว่างการรีเซ็ตตั้งศูนย์การติดตั้ง
|
||||
settings-general-fk_settings-arm_fk-tpose_up-description = กำหนดให้แขนแนบลำตัวระหว่างการรีเซ็ตทั้งหมด และเหยียดออกด้านข้าง 90 องศา ระหว่างการรีเซ็ตตั้งศูนย์การติดตั้ง
|
||||
settings-general-fk_settings-arm_fk-tpose_down = ที-โพส (แขนลง)
|
||||
settings-general-fk_settings-arm_fk-tpose_down-description = กำหนดให้แขนเหยียดออกด้านข้าง 90 องศา ระหว่างการรีเซ็ตแทร็กเกอร์ทั้งหมดและแนบลำตัว ระหว่างการรีเซ็ตตั้งศูนย์การติดตั้ง
|
||||
settings-general-fk_settings-arm_fk-tpose_down-description = กำหนดให้แขนเหยียดออกด้านข้าง 90 องศา ระหว่างการรีเซ็ตทั้งหมดและแนบลำตัว ระหว่างการรีเซ็ตตั้งศูนย์การติดตั้ง
|
||||
settings-general-fk_settings-arm_fk-forward = ไปข้างหน้า
|
||||
settings-general-fk_settings-arm_fk-forward-description = กำหนดให้แขนยกไปด้านหน้าทำมุม 90 องศา มีประโยชน์สำหรับงาน VTubing
|
||||
settings-general-fk_settings-skeleton_settings-toggles = ตัวเลือกโครงกระดูก
|
||||
@@ -670,7 +683,7 @@ settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs =
|
||||
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = คำนวณตำแหน่งสะโพกจากอกและขา
|
||||
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = คำนวณตำแหน่งสะโพกจากเอวและขา
|
||||
settings-general-fk_settings-skeleton_settings-interp_hip_legs = เฉลี่ยค่าแกนตั้งและแกนยาวของสะโพกร่วมกับขา
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = เฉลี่ยค่าแกนตั้งและแกนยาวของตัวแทร็กเกอร์เข่าร่วมกับข้อเท้า
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = เฉลี่ยค่าแกนตั้งและแกนยาวของแทร็กเกอร์เข่าร่วมกับข้อเท้า
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = เฉลี่ยค่าแกนตั้งและแกนยาวของเข่าร่วมกับข้อเท้า
|
||||
settings-general-fk_settings-self_localization-title = โหมด Mocap
|
||||
settings-general-fk_settings-self_localization-description = โหมด Mocap ช่วยให้โมเดลโครงกระดูกสามารถติดตามตำแหน่งโดยประมาณได้ โดยไม่ต้องใช้อุปกรณ์เฮดเซต (แว่น VR ) หรือแทร็กเกอร์อื่น ๆ โปรดทราบว่าฟังก์ชันนี้ต้องใช้แทร็กเกอร์ที่เท้าและศีรษะจึงจะทำงานได้ และยังอยู่ในช่วงทดลอง
|
||||
@@ -679,7 +692,7 @@ settings-general-fk_settings-self_localization-description = โหมด Mocap
|
||||
|
||||
settings-general-gesture_control = การควบคุมด้วยท่าทาง
|
||||
settings-general-gesture_control-subtitle = การรีเซ็ตด้วยการแตะ
|
||||
settings-general-gesture_control-description = เปิดใช้การรีเซ็ตด้วยการแตะแทร็กเกอร์ แทร็กเกอร์ที่อยู่สูงที่สุดบนลำตัวจะใช้สำหรับการรีเซ็ตแกนตั้ง แทร็กเกอร์ที่อยู่สูงที่สุดบนขาซ้ายใช้สำหรับรีเซ็ตแทร็กเกอร์ทั้งหมด และแทร็กเกอร์ที่อยู่สูงที่สุดบนขาขวาใช้สำหรับรีเซ็ตตั้งศูนย์การติดตั้ง โดยการแตะจะต้องเกิดขึ้นภายในเวลา 0.3 วินาทีคูณด้วยจำนวนครั้งของการแตะเพื่อให้ระบบรับรู้
|
||||
settings-general-gesture_control-description = เปิดใช้การรีเซ็ตด้วยการแตะแทร็กเกอร์ แทร็กเกอร์ที่อยู่สูงที่สุดบนลำตัวจะใช้สำหรับการรีเซ็ตแกนตั้ง แทร็กเกอร์ที่อยู่สูงที่สุดบนขาซ้ายใช้สำหรับรีเซ็ตทั้งหมด และแทร็กเกอร์ที่อยู่สูงที่สุดบนขาขวาใช้สำหรับรีเซ็ตตั้งศูนย์การติดตั้ง โดยการแตะจะต้องเกิดขึ้นภายในเวลา 0.3 วินาทีคูณด้วยจำนวนครั้งของการแตะเพื่อให้ระบบรับรู้
|
||||
# This is a unit: 3 taps, 2 taps, 1 tap
|
||||
# $amount (Number) - Amount of taps (touches to the tracker's case)
|
||||
settings-general-gesture_control-taps = { $amount } ครั้ง
|
||||
@@ -689,7 +702,7 @@ settings-general-gesture_control-trackers = { $amount } ตัว
|
||||
settings-general-gesture_control-yawResetEnabled = ใช้การแตะเพื่อรีเซ็ตแกนตั้ง
|
||||
settings-general-gesture_control-yawResetDelay = เวลาหน่วงก่อนรีเซ็ตแกนตั้ง
|
||||
settings-general-gesture_control-yawResetTaps = แตะเพื่อรีเซ็ตแกนตั้ง
|
||||
settings-general-gesture_control-fullResetEnabled = ใช้การแตะเพื่อรีเซ็ตแทร็กเกอร์ทั้งหมด
|
||||
settings-general-gesture_control-fullResetEnabled = ใช้การแตะเพื่อรีเซ็ตทั้งหมด
|
||||
settings-general-gesture_control-fullResetDelay = เวลาหน่วงก่อนรีเซ็ตทั้งหมด
|
||||
settings-general-gesture_control-fullResetTaps = แตะเพื่อรีเซ็ตทั้งหมด
|
||||
settings-general-gesture_control-mountingResetEnabled = ใช้การแตะเพื่อรีเซ็ตการตั้งศูนย์การติดตั้ง
|
||||
@@ -729,7 +742,7 @@ settings-interface-appearance-decorations-label = ใช้แถบด้าน
|
||||
settings-interface-notifications = การแจ้งเตือน
|
||||
settings-general-interface-serial_detection = การตรวจจับอุปกรณ์ Serial
|
||||
settings-general-interface-serial_detection-description = ตัวเลือกนี้จะแสดงหน้าต่างป๊อปอัพทุกครั้งที่คุณเสียบอุปกรณ์ Serial ใหม่ที่อาจเป็นแทร็กเกอร์ ช่วยลดขั้นตอนการตั้งค่าแทร็กเกอร์
|
||||
settings-general-interface-serial_detection-label = ใช้การตรวจจับอุปกรณ์ซีเรียล
|
||||
settings-general-interface-serial_detection-label = ใช้การตรวจจับอุปกรณ์ Serial
|
||||
settings-general-interface-feedback_sound = การแจ้งเตือนด้วยเสียง
|
||||
settings-general-interface-feedback_sound-description = ตัวเลือกนี้จะเล่นเสียงเมื่อมีการใช้การรีเซ็ต
|
||||
settings-general-interface-feedback_sound-label = แจ้งเตือนด้วยเสียง
|
||||
@@ -766,7 +779,7 @@ settings-interface-behavior-bvh_directory-label = ไดเร็กทอรี
|
||||
|
||||
## Serial settings
|
||||
|
||||
settings-serial = Serial Console
|
||||
settings-serial = คอนโซล Serial
|
||||
# This cares about multilines
|
||||
settings-serial-description =
|
||||
นี่คือฟีดข้อมูลสดสำหรับการสื่อสารแบบ Serial
|
||||
@@ -823,7 +836,7 @@ settings-osc-vrchat = แทร็กเกอร์ OSC VRChat
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description-v1 =
|
||||
เปลี่ยนการตั้งค่าเฉพาะสำหรับมาตรฐานแทร็กเกอร์ OSC ที่ใช้ในการส่งข้อมูลการติดตาม
|
||||
ไปยังแอปพลิเคชันที่ไม่ได้ใช้ SteamVR (เช่นอุปกรณ์ VR แบบเดี่ยว)
|
||||
ไปยังแอปพลิเคชันที่ไม่ได้ใช้ SteamVR (เช่น เฮดเซ็ท VR แบบ Standalone )
|
||||
ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน OSC ใน VRChat ผ่านเมนู Action Menu แล้วไปที่ ตัวเลือก>OSC > เปิดใช้งาน
|
||||
settings-osc-vrchat-enable = เปิดใช้งาน
|
||||
settings-osc-vrchat-enable-description = เปิดการรับและส่งข้อมูล
|
||||
@@ -832,7 +845,7 @@ settings-osc-vrchat-oscqueryEnabled = เปิดใช้งาน OSCQuery
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery จะตรวจจับอินสแตนซ์ของ VRChat ที่กำลังทำงานโดยอัตโนมัติ และส่งข้อมูลไปให้
|
||||
และยังสามารถประกาศตัวเองเพื่อให้ได้รับข้อมูลจาก HMD และของคอนโทรเลอร์จาก VRChat ได้อีกด้วย
|
||||
หากต้องการอนุญาตให้รับข้อมูล HMD และตัวควบคุมจาก VRChat ให้ไปที่การตั้งค่าเมนูหลัก ใต้ "การติดตาม & IK" และเปิดใช้งาน "อนุญาติให้ส่งข้อมูลการติดตามศรีษะและข้อมือ VR ผ่าน OSC"
|
||||
หากต้องการอนุญาตให้รับข้อมูล HMD และตัวควบคุมจาก VRChat ให้ไปที่การตั้งค่าเมนูหลัก ใต้ "การติดตาม & IK" และเปิดใช้งาน "อนุญาตให้ส่งข้อมูลการติดตามศีรษะและข้อมือ VR ผ่าน OSC"
|
||||
settings-osc-vrchat-oscqueryEnabled-label = เปิดใช้งาน OSCQuery
|
||||
settings-osc-vrchat-network = พอร์ตเครือข่าย
|
||||
settings-osc-vrchat-network-description-v1 = ตั้งค่าพอร์ตสำหรับการรับฟังและการส่งข้อมูล สามารถปล่อยว่างไว้สำหรับ VRChat
|
||||
@@ -872,18 +885,18 @@ settings-osc-vmc-network-port_out =
|
||||
.label = พอร์ตขาออก
|
||||
.placeholder = พอร์ตขาออก (ค่าเริ่มต้น: 39539)
|
||||
settings-osc-vmc-network-address = ที่อยู่เครือข่าย
|
||||
settings-osc-vmc-network-address-description = เลื่อกที่อยู่เครือข่ายที่จะส่งข้อมูลผ่าน VMC
|
||||
settings-osc-vmc-network-address-description = เลือกที่อยู่เครือข่ายที่จะส่งข้อมูลผ่าน VMC
|
||||
settings-osc-vmc-network-address-placeholder = ที่อยู่ IPV4
|
||||
settings-osc-vmc-vrm = โมเดล VRM
|
||||
settings-osc-vmc-vrm-description = โหลดโมเดล VRM เพื่อเปิดใช้งานการยึดศีรษะและเพิ่มความเข้ากันได้กับแอปพลิเคชันอื่น
|
||||
settings-osc-vmc-vrm-untitled_model = โมเดลที่ไม่มีชื่อ
|
||||
settings-osc-vmc-vrm-file_select = ลากและวางโมเดลหรือ <u>ค้นหา</u>
|
||||
settings-osc-vmc-anchor_hip = ตรึงตำแหน่งที่สะโพก
|
||||
settings-osc-vmc-anchor_hip-description = ตรึงการติดตามตำแหน่งไว้ที่สะโพก มีประโยชน์สำหรับการทำ VTubing ขณะนั่ง
|
||||
settings-osc-vmc-anchor_hip-label = ตรึงตำแหน่งสะโพก
|
||||
settings-osc-vmc-anchor_hip = ยึดตำแหน่งที่สะโพก
|
||||
settings-osc-vmc-anchor_hip-description = ยึดการติดตามที่สะโพก มีประโยชน์สำหรับการทำ VTubing ในขณะนั่ง หากปิดใช้งาน ให้โหลดโมเดล VRM
|
||||
settings-osc-vmc-anchor_hip-label = ยึดแหน่งที่สะโพก
|
||||
settings-osc-vmc-mirror_tracking = สะท้อนตำแหน่งการติดตาม
|
||||
settings-osc-vmc-mirror_tracking-description = สะท้อนการติดตามในแนวนอน
|
||||
settings-osc-vmc-mirror_tracking-label = สะท้อนการติดตาม
|
||||
settings-osc-vmc-mirror_tracking-label = สะท้อนตำแหน่งการติดตาม
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
@@ -896,25 +909,25 @@ settings-utils-advanced = ขั้นสูง
|
||||
settings-utils-advanced-reset-gui = รีเซ็ตตั้งค่า GUI
|
||||
settings-utils-advanced-reset-gui-description = คืนค่าการตั้งค่าเริ่มต้นสำหรับอินเทอร์เฟซ
|
||||
settings-utils-advanced-reset-gui-label = รีเซ็ต GUI
|
||||
settings-utils-advanced-reset-server = รีเซ็ตตั้งค่าการแทร็กกิ้ง
|
||||
settings-utils-advanced-reset-server-description = คืนค่าการจับตำแหน่งทั้งหมดเป็นค่าเริ่มต้น
|
||||
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>การดำเนินการนี้จะรีเซ็ตการตั้งค่า GUI เป็นค่าเริ่มต้น คุณแน่ใจที่จะดำเนินการต่อไหม?
|
||||
[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-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-description = เปิดโฟลเดอร์บันทึกไฟล์ของ SlimeVR โดยภายในจะมีไฟล์บันทึกการทำงานของแอป
|
||||
settings-utils-advanced-open_logs-label = เปิดโฟลเดอร์
|
||||
|
||||
## Home Screen
|
||||
@@ -933,22 +946,24 @@ settings-tracking_checklist-active_steps-desc = รายการขั้น
|
||||
|
||||
onboarding-skip = ข้ามการตั้งค่า
|
||||
onboarding-continue = ดำเนินการต่อ
|
||||
onboarding-wip = อยู่ในระหว่างการดำเนินการ
|
||||
onboarding-wip = ยังไม่พร้อมใช้งาน
|
||||
onboarding-previous_step = ขั้นตอนก่อนหน้า
|
||||
onboarding-setup_warning =
|
||||
<b>คำเตือน:</b> การตั้งค่าเริ่มต้นนี้จำเป็นสำหรับการจับตำแหน่งที่ดี
|
||||
จำเป็นต้องดำเนินกาหากนี่เป็นครั้งแรกที่คุณใช้ SlimeVR
|
||||
จำเป็นต้องดำเนินการหากนี่เป็นครั้งแรกที่คุณใช้ SlimeVR
|
||||
onboarding-setup_warning-skip = ข้ามการตั้งค่า
|
||||
onboarding-setup_warning-cancel = ดำเนินการตั้งค่าต่อ
|
||||
|
||||
## Wi-Fi setup
|
||||
|
||||
onboarding-wifi_creds-back = กลับไปที่หน้าบทนำ
|
||||
onboarding-wifi_creds = ป้อนข้อมูลประจำตัว Wi-Fi
|
||||
onboarding-wifi_creds-v2 = แทร็กเกอร์ที่ใช้ Wi-Fi
|
||||
# This cares about multilines
|
||||
onboarding-wifi_creds-description =
|
||||
แทร็กเกอร์จะใช้ข้อมูลประจำตัวเหล่านี้ในการเชื่อมต่อแบบไร้สาย
|
||||
โปรดใช้ข้อมูลประจำตัวที่คุณกำลังเชื่อมต่ออยู่ในปัจจุบัน
|
||||
onboarding-wifi_creds-description-v2 =
|
||||
แทร็กเกอร์ส่วนใหญ่ (เช่นแทร็กเกอร์ทางการของ SlimeVR ) ใช้ Wi-Fi เพื่อเชื่อมต่อกับเซิร์ฟเวอร์
|
||||
โปรดใช้ข้อมูลเครือข่าย Wi-Fi ที่อุปกรณ์ของคุณกำลังเชื่อมต่ออยู่
|
||||
|
||||
และตรวจสอบให้แน่ใจว่าคุณใช้การเชื่อมต่อ Wi-Fi เป็นคลื่น 2.4GHz กับแทร็กเกอร์นี้
|
||||
onboarding-wifi_creds-skip = ข้ามการตั้งค่า Wi-Fi
|
||||
onboarding-wifi_creds-submit = ยืนยัน!
|
||||
onboarding-wifi_creds-ssid =
|
||||
@@ -958,29 +973,33 @@ onboarding-wifi_creds-ssid-required = ต้องระบุชื่อ Wi-Fi
|
||||
onboarding-wifi_creds-password =
|
||||
.label = รหัสผ่าน
|
||||
.placeholder = ป้อนรหัสผ่าน
|
||||
onboarding-wifi_creds-dongle-title = แทร็กเกอร์ที่ใช้ดองเกิล
|
||||
onboarding-wifi_creds-dongle-description = หากแทร็กเกอร์ของคุณมาพร้อมกับดองเกิล ให้เสียบมันเข้ากับอุปกรณ์ของคุณ แล้วก็สามารถเริ่มต้นใช้งานได้เลย!
|
||||
onboarding-wifi_creds-dongle-wip = ส่วนนี้กำลังอยู่ระหว่างการพัฒนา เป็นหน้าสำหรับจัดการแทร็กเกอรืที่เชื่อมต่อผ่านดองเกิลที่กำลังจะถูกทำขึ้นมาเร็วๆ นี้
|
||||
onboarding-wifi_creds-dongle-continue = ดำเนินการต่อด้วยดองเกิล
|
||||
|
||||
## Mounting setup
|
||||
|
||||
onboarding-reset_tutorial-back = กลับไปยังการตั้งศูนย์การติดตั้งแทร็กเกอร์
|
||||
onboarding-reset_tutorial = บทช่วยสอนการรีเซ็ต
|
||||
onboarding-reset_tutorial-explanation = ขณะใช้งานแทร็กเกอร์ของคุณอาจคลาดเคลื่อนเนื่องจากการดริฟท์ของแกนตั้งของ IMU หรือจากการเคลื่อนที่ทางกายภาพของตัวแทร็กเกอร์เอง คุณมีวิธีการแก้ไขหลายวิธี
|
||||
onboarding-reset_tutorial-explanation = ขณะที่คุณใช้แทร็กเกอร์ มันอาจเกิดการคลาดเคลื่อนขึ้นได้เนื่องจากการดริฟท์ของ IMU หรือจากการที่แทร็กเกอร์บนตัวคุณนั้นขยับออกจากตำแหน่ง คุณมีหลายวิธีในการแก้ไขปัญหานี้
|
||||
onboarding-reset_tutorial-skip = ข้ามขั้นตอนนี้
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-0 =
|
||||
แตะแทร็กเกอร์ที่ถูกเน้น { $taps } ครั้ง ในการรีเซ็ตแกนตั้ง
|
||||
นี่จะทำให้แทร็กเกอร์หันไปด้านเดียวกับแว่น VR ของคุณ
|
||||
แตะแทร็กเกอร์ที่ไฮไลท์ { $taps } ครั้ง เพื่อเรียกใช้การรีเซ็ตแกนตั้ง
|
||||
นี่จะทำให้แทร็กเกอร์หันไปในทิศทางเดียวกับเฮดเซ็ท (HMD) ของคุณ
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-1 =
|
||||
แตะแทร็กเกอร์ที่ถูกเน้น { $taps } ครั้ง ในการรีเซ็ตแทรกเกอร์ทั้งหมด
|
||||
คุณจำเป็นจะต้องยืนตรง แขนแนบลำตัวในการรีเซ็ตนี้(i-pose) จะมีดีเลย์ 3 วินาที (สามารถปรับได้) ก่อนจะเริ่มการรีเซ็ต
|
||||
นี่จะรีเซ็ตตำแหน่งและค่าหมุนของแทร็กเกอร์ทั้งหมดกลับมาที่เดิม ซึ่งช่วยแก้ปัญหาส่วนใหญ่ได้
|
||||
แตะแทร็กเกอร์ที่ไฮไลท์ { $taps } ครั้ง เพื่อเรียกใช้การรีเซ็ตทั้งหมด
|
||||
คุณจำเป็นจะต้องยืนตรง แขนแนบลำตัว(i-pose) จะนับถอยหลัง 3 วินาที (สามารถปรับได้) ก่อนที่การรีเซ็ตจะเกิดขึ้น
|
||||
นี่จะรีเซ็ตตำแหน่งและการหมุนของแทร็กเกอร์ทั้งหมดของคุณ ซึ่งช่วยแก้ปัญหาส่วนใหญ่ได้
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-2 =
|
||||
แตะไปยังแทร็กเกอร์ที่ถูกเน้น { $taps } ครั้ง เพื่อทำการรีเซ็ตตำแหน่งแทร็กเกอร์
|
||||
แตะแทร็กเกอร์ที่ไฮไลท์ { $taps } ครั้ง เพื่อเรียกใช้การตั้งศูนย์การติดตั้ง
|
||||
|
||||
รีเซ็ตตำแหน่งนั้นช่วยปรับตำแหน่งที่แทร็กเกอร์ถูกวางบนตัวคุณจริงๆ ดังนั้นหากคุณเผลอเคลื่อนย้ายแทร็กเกอร์และเปลี่ยนทิศทางของมันไปมาก สิ่งนี้จะช่วยแก้ไขได้
|
||||
การตั้งศูนย์การติดตั้งจะปรับแก้ตามวิธีการวางแทร็กเกอร์บนร่างกายของคุณ นี่จะช่วยคุณได้มากหากคุณเผลอเคลื่อนย้ายหรือเปลี่ยนทิศทางของแทร็กเกอร์จนมากเกินไป
|
||||
|
||||
คุณต้องอยู่ในท่าเหมือนกำลังเล่นสกีตามที่แสดงในตัวช่วยการติดตั้งอัตโนมัติ โดยจะนับถอยหลังใน 3 วิาที (สามารถกำหนดได้) ก่อนจะทำการรีเซ็ต
|
||||
คุณต้องอยู่ในท่าเล่นสกีตามที่แสดงในตัวช่วยตั้งค่า โดยจะนับถอยหลังใน 3 วินาที (สามารถกำหนดได้) ก่อนที่การรีเซ็ตจะเกิดขึ้น
|
||||
|
||||
## Setup start
|
||||
|
||||
@@ -995,25 +1014,25 @@ onboarding-done-close = ปิดการตั้งค่า
|
||||
|
||||
## Tracker connection setup
|
||||
|
||||
onboarding-connect_tracker-back = กลับไปหน้าข้อมูล Wi-Fi
|
||||
onboarding-connect_tracker-back = กลับไปหน้าข้อมูลเครือข่าย Wi-Fi
|
||||
onboarding-connect_tracker-title = เชื่อมต่อแทร็กเกอร์
|
||||
onboarding-connect_tracker-description-p0-v1 = มาถึงส่วนที่สนุกแล้ว การเชื่อมต่อแทร็กเกอร์!
|
||||
onboarding-connect_tracker-description-p0-v1 = มาถึงส่วนที่น่าสนใจแล้ว คือการเชื่อมต่อแทร็กเกอร์!
|
||||
onboarding-connect_tracker-description-p1-v1 = เชื่อมต่อแทร็กเกอร์ทีละตัวผ่านพอร์ต USB
|
||||
onboarding-connect_tracker-issue-serial = ฉันมีปัญหาในการเชื่อมต่อ!
|
||||
onboarding-connect_tracker-usb = USB แทร็กเกอร์
|
||||
onboarding-connect_tracker-connection_status-none = กำลังมองหาแทร็กเกอร์...
|
||||
onboarding-connect_tracker-connection_status-none = กำลังค้นหาแทร็กเกอร์
|
||||
onboarding-connect_tracker-connection_status-serial_init = กำลังเชื่อมต่อกับอุปกรณ์ Serial
|
||||
onboarding-connect_tracker-connection_status-obtaining_mac_address = กำลังรับ MAC address ของแทร็กเกอร์
|
||||
onboarding-connect_tracker-connection_status-provisioning = กำลังส่งข้อมูล Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-provisioning = กำลังส่งข้อมูลเครือข่าย Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-connecting = กำลังพยายามเชื่อมต่อ Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-looking_for_server = กำลังหาเซิร์ฟเวอร์
|
||||
onboarding-connect_tracker-connection_status-connection_error = ไม่สามารถเชื่อมต่อกับ Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = ไม่พบเซิร์ฟเวอร์
|
||||
onboarding-connect_tracker-connection_status-done = เชื่อมต่อกับเซิร์ฟเวอร์แล้ว
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = ไม่สามารถรับบันทึกจากแทร็กเกอร์ได้
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = ไม่สามารถหาแทร็กเกอร์จาก USB
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = ไม่พบแทร็กเกอร์จาก USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = แทร็กเกอร์คุณเปิดอยู่หรือเปล่า?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = ตรวจสอบให้แน่ใจว่าแทร็กเกอร์นั้นเปิดอยู่และเชื่อมต่อกับคอมพิวเตอร์ของคุณ
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = ตรวจสอบให้แน่ใจว่าแทร็กเกอร์เปิดอยู่และเชื่อมต่อกับคอมพิวเตอร์ของคุณ
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = ไม่พบแทร็กเกอร์
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
โปรดเชื่อมต่อแทร็กเกอร์ด้วยสาย USB เข้ากับคอมพิวเตอร์ของคุณและเปิดแทร็กเกอร์
|
||||
@@ -1036,8 +1055,8 @@ onboarding-connect_tracker-next = ฉันเชื่อมต่อแทร
|
||||
## Tracker calibration tutorial
|
||||
|
||||
onboarding-calibration_tutorial = บทเรียนการตั้งศูนย์ IMU
|
||||
onboarding-calibration_tutorial-subtitle = นี่จะช่วยลดค่าดริฟท์ของแทร็กเกอร์!
|
||||
onboarding-calibration_tutorial-description-v1 = หลังจากเปิดแทร็กเกอร์แล้ว ให้วางไว้บนพื้นผิวที่มั่นคงสักครู่เพื่อทำการตั้งศูนย์ การตั้งศูนย์ IMU สามารถทำได้ตลอดเวลาหลังจากเปิดแทร็กเกอร์—หน้าจอนี้เพียงแค่ให้บทช่วยสอน หากต้องการเริ่ม ให้คลิกปุ่ม "{ onboarding-calibration_tutorial-calibrate }" จากนั้น <b>อย่าขยับแทร็กเกอร์ของคุณ!</b>
|
||||
onboarding-calibration_tutorial-subtitle = นี่จะช่วยลดการดริฟท์ของแทร็กเกอร์!
|
||||
onboarding-calibration_tutorial-description-v1 = หลังจากเปิดแทร็กเกอร์แล้ว ให้วางไว้บนพื้นที่เรียบนิ่งๆสักครู่เพื่อทำการตั้งศูนย์ การตั้งศูนย์ IMU สามารถทำได้ตลอดเวลาหลังจากเปิดแทร็กเกอร์—หน้าจอนี้เพียงแค่ให้บทช่วยสอน หากต้องการเริ่ม ให้คลิกปุ่ม "{ onboarding-calibration_tutorial-calibrate }" จากนั้น <b>อย่าขยับแทร็กเกอร์ของคุณ!</b>
|
||||
onboarding-calibration_tutorial-calibrate = ฉันวางแทร็กเกอร์บนโต๊ะแล้ว
|
||||
onboarding-calibration_tutorial-status-waiting = กำลังรอคุณอยู่
|
||||
onboarding-calibration_tutorial-status-calibrating = กำลังตั้งศูนย์
|
||||
@@ -1048,7 +1067,7 @@ onboarding-calibration_tutorial-skip = ข้ามบทช่วยสอน
|
||||
## Tracker assignment tutorial
|
||||
|
||||
onboarding-assignment_tutorial = วิธีเตรียมแทร็กเกอร์ Slime ก่อนสวมใส่
|
||||
onboarding-assignment_tutorial-first_step = 1. ติดสติกเกอร์ส่วนของร่างกาย (หากคุณมี) บนแทร็กเกอร์ตามที่คุณเลือก
|
||||
onboarding-assignment_tutorial-first_step = 1. ติดสติกเกอร์บอกส่วนของร่างกาย (หากคุณมี) บนแทร็กเกอร์ตามที่คุณเลือก
|
||||
# This text has a character limit of around 11 characters, so please keep it short
|
||||
onboarding-assignment_tutorial-sticker = สติกเกอร์
|
||||
onboarding-assignment_tutorial-second_step-v2 = 2. ติดสายรัดเข้ากับแทร็กเกอร์ของคุณ โดยให้ด้านหนามเตยของสายรัดหันไปในทิศทางเดียวกับหน้าของแทร็กเกอร์:
|
||||
@@ -1057,17 +1076,17 @@ onboarding-assignment_tutorial-done = ฉันแปะสติกเกอร
|
||||
|
||||
## Tracker assignment setup
|
||||
|
||||
onboarding-assign_trackers-back = กลับไปยังการตั้งค่า Wi-Fi
|
||||
onboarding-assign_trackers-back = กลับไปยังการตั้งค่าข้อมูลเครือข่าย Wi-Fi
|
||||
onboarding-assign_trackers-title = กำหนดตำแหน่งแทร็กเกอร์
|
||||
onboarding-assign_trackers-description = มาเลือกกันเลยว่าแทร็กเกอร์ไหนจะไปอยู่ตรงไหน คลิกที่ตำแหน่งที่คุณต้องการกำหนดแทร็กเกอร์
|
||||
onboarding-assign_trackers-description = มาเลือกกันเลยว่าแทร็กเกอร์ไหนจะไปอยู่ตรงไหน คลิกที่ตำแหน่งที่คุณต้องการกำหนดแทร็กเกอร์ได้เลย
|
||||
onboarding-assign_trackers-unassign_all = ยกเลิกการกำหนดแทร็กเกอร์ทั้งหมด
|
||||
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned = แทร็กเกอร์ { $assigned } จาก { $trackers } ตัว ได้ถูกกำหนดตำแหน่งแล้ว
|
||||
onboarding-assign_trackers-advanced = แสดงตำแหน่งที่กำหนดได้เพิ่มเติม
|
||||
onboarding-assign_trackers-next = ฉันได้กำหนดตำแหน่งหมดแล้ว
|
||||
onboarding-assign_trackers-mirror_view = สะท้อนด้านตำแหน่ง
|
||||
onboarding-assign_trackers-next = ฉันกำหนดแทร็กเกอร์ทั้งหมดแล้ว
|
||||
onboarding-assign_trackers-mirror_view = มุมมองภาพสะท้อน
|
||||
onboarding-assign_trackers-option-amount = x{ $trackersCount }
|
||||
onboarding-assign_trackers-option-label =
|
||||
{ $mode ->
|
||||
@@ -1095,7 +1114,7 @@ onboarding-assign_trackers-warning-LEFT_FOOT =
|
||||
[0] กำหนดตำแหน่งเท้าซ้ายแล้ว แต่ยังต้องกำหนดข้อเท้าซ้าย, ต้นขาซ้าย และส่วนใดส่วนหนึ่งระหว่าง อก, สะโพก หรือ เอว เพิ่มเติมด้วย!
|
||||
[1] กำหนดตำแหน่งเท้าซ้ายแล้ว แต่ยังต้องกำหนดต้นขาซ้าย และส่วนใดส่วนหนึ่งระหว่าง อก, สะโพก หรือ เอว เพิ่มเติมด้วย!
|
||||
[2] กำหนดตำแหน่งเท้าซ้ายแล้ว แต่ยังต้องกำหนดข้อเท้าซ้าย และส่วนใดส่วนหนึ่งระหว่าง อก, สะโพก หรือ เอว เพิ่มเติมด้วย!
|
||||
[3] เท้าซ้าย ถูกกำหนดแล้ว แต่คุณต้องกำหนด และส่วนใดส่วนหนึ่งระหว่าง อก สะโพก หรือ เอว ด้วย
|
||||
[3] เท้าซ้าย ถูกกำหนดแล้ว แต่คุณต้องกำหนด และส่วนใดส่วนหนึ่งระหว่าง อก, สะโพก หรือ เอว ด้วย
|
||||
[4] กำหนดตำแหน่งเท้าซ้ายแล้ว แต่ยังต้องกำหนดส่วนใดส่วนหนึ่งระหว่าง อก, สะโพก หรือ เอว เพิ่มเติมด้วย!
|
||||
[5] กำหนดตำแหน่งเท้าซ้ายแล้ว แต่ยังต้องกำหนดต้นขาซ้ายเพิ่มเติมด้วย!
|
||||
[6] กำหนดตำแหน่งเท้าซ้ายแล้ว แต่ยังต้องกำหนดข้อเท้าซ้ายเพิ่มเติมด้วย!
|
||||
@@ -1158,21 +1177,21 @@ onboarding-assign_trackers-warning-WAIST =
|
||||
|
||||
onboarding-choose_mounting = ต้องการใช้วิธีการตั้งศูนย์การติดตั้งแบบใด?
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-description = การตั้งศูนย์การติดตั้งจะแก้ไขการวางแนวของแทร็กเกอร์บนร่างกายของคุณ
|
||||
onboarding-choose_mounting-description = การตั้งศูนย์การติดตั้งจะแก้ไขทิศทางการติดตั้งของแทร็กเกอร์บนร่างกายของคุณ
|
||||
onboarding-choose_mounting-auto_mounting = ตั้งศูนย์การติดตั้งอัตโนมัติ
|
||||
# Italicized text
|
||||
onboarding-choose_mounting-auto_mounting-label-v2 = แนะนำ
|
||||
onboarding-choose_mounting-auto_mounting-description = ะบบจะตรวจจับการวางแนวการติดตั้งของแทร็กเกอร์ทั้งหมดของคุณโดยอัตโนมัติ จากท่าทาง 2 ท่า
|
||||
onboarding-choose_mounting-auto_mounting-description = ระบบจะตรวจจับทิศทางการติดตั้งของแทร็กเกอร์ทั้งหมดของคุณโดยอัตโนมัติ จากท่าทาง 2 ท่า
|
||||
onboarding-choose_mounting-manual_mounting = ตั้งศูนย์การติดตั้งด้วยตัวเอง
|
||||
# Italicized text
|
||||
onboarding-choose_mounting-manual_mounting-label-v2 = อาจมีความแม่นยำไม่เพียงพอ
|
||||
onboarding-choose_mounting-manual_mounting-description = คุณสามารถเลือกการวางแนวการติดตั้งด้วยตนเองสำหรับแทร็กเกอร์แต่ละตัว
|
||||
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 = ฉันรู้ว่าฉันทําอะไรอยู่
|
||||
onboarding-choose_mounting-manual_modal-confirm = ฉันรู้ว่าฉันทำอะไรอยู่
|
||||
onboarding-choose_mounting-manual_modal-cancel = ยกเลิก
|
||||
|
||||
## Tracker manual mounting setup
|
||||
@@ -1187,7 +1206,7 @@ onboarding-manual_mounting-next = ขั้นตอนถัดไป
|
||||
|
||||
onboarding-automatic_mounting-back = กลับไปยังเข้าสู่ VR
|
||||
onboarding-automatic_mounting-title = ตั้งศูนย์การติดตั้งแทร็กเกอร์
|
||||
onboarding-automatic_mounting-description = เพื่อให้ SlimeVR ทำงานได้ เราจะต้องทำการตั้งค่าการติดตั้งของแทร็กเกอร์ของคุณให้ตรงกับการติดตั้งบนร่างกายจริง
|
||||
onboarding-automatic_mounting-description = เพื่อให้แทร็กเกอร์ SlimeVR ทำงานได้ เราจำเป็นต้องกำหนดทิศทางการติดตั้งให้กับแทร็กเกอร์ของคุณเพื่อจัดแนวให้ตรงกับการติดตั้งแทร็กเกอร์บนร่างกายคุณ
|
||||
onboarding-automatic_mounting-manual_mounting = ตั้งศูนย์การติดตั้งด้วยตนเอง
|
||||
onboarding-automatic_mounting-next = ขั้นตอนถัดไป
|
||||
onboarding-automatic_mounting-prev_step = ขั้นตอนก่อนหน้า
|
||||
@@ -1196,30 +1215,30 @@ onboarding-automatic_mounting-done-description = ตั้งศูนย์ก
|
||||
onboarding-automatic_mounting-done-restart = ลองอีกครั้ง
|
||||
onboarding-automatic_mounting-mounting_reset-title = ตั้งศูนย์การติดตั้ง
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. ย่อตัวในท่า "เล่นสกี" โดยการงอขา ลำตัวส่วนบนเอียงไปด้านหน้า และงอแขน
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. กดปุ่ม "ตั้งศูนย์การติดตั้ง" และรอ 3 วินาที ก่อนที่การวางแนวการติดตั้งของแทร็กเกอร์จะถูกรีเซ็ต
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. กดปุ่ม "ตั้งศูนย์การติดตั้ง" และรอ 3 วินาที ก่อนที่ทิศทางการติดตั้งของแทร็กเกอร์จะถูกรีเซ็ต
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-0 = 1. ยืนเขย่งปลายเท้าทั้งสองข้างโดยให้เท้าชี้ไปด้านหน้า หรืออีกทางเลือกหนึ่งคือคุณสามารถทำได้ขณะนั่งอยู่บนเก้าอี้
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. กดปุ่ม "ตั้งศูนย์เท้า" และรอ 3 วินาที ก่อนที่การวางแนวการติดตั้งของแทร็กเกอร์จะถูกรีเซ็ต
|
||||
onboarding-automatic_mounting-preparation-title = การเตรียมความพร้อม
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. กดที่ปุ่ม "รีเซ็ตแทร็กเกอร์ทั้งหมด"
|
||||
onboarding-automatic_mounting-mounting_reset-feet-step-1 = 2. กดปุ่ม "ตั้งศูนย์เท้า" และรอ 3 วินาที ก่อนที่ทิศทางการติดตั้งของแทร็กเกอร์จะถูกรีเซ็ต
|
||||
onboarding-automatic_mounting-preparation-title = การเตรียมตัว
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. กดที่ปุ่ม "รีเซ็ตทั้งหมด"
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. ยืนตัวตรง แขนแนบลำตัว ตรวจสอบให้แน่ใจว่ากำลังมองตรงไปข้างหน้า
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. ค้างท่าทางไว้จนกว่าตัวจับเวลา 3 วินาทีจะสิ้นสุดลง
|
||||
onboarding-automatic_mounting-put_trackers_on-title = ใส่แทร็กเกอร์ของคุณ
|
||||
onboarding-automatic_mounting-put_trackers_on-description = เพื่อตั้งศูนย์การวางแนวการติดตั้ง เราจะใช้แทร็กเกอร์ที่คุณกำหนดตำแหน่งไปเมื่อสักครู่ โปรดสวมใส่แทร็กเกอร์ของคุณ โดยคุณสามารถดูว่าแทร็กเกอร์ใดคือส่วนใดได้จากภาพด้านขวา
|
||||
onboarding-automatic_mounting-put_trackers_on-next = ฉันใส่แทร็กเกอร์ทั้งหมดแล้ว
|
||||
onboarding-automatic_mounting-put_trackers_on-description = เพื่อตั้งศูนย์ทิศทางการติดตั้ง เราจะใช้แทร็กเกอร์ที่คุณกำหนดตำแหน่งไปเมื่อสักครู่ โปรดสวมใส่แทร็กเกอร์ของคุณ โดยคุณสามารถดูว่าแทร็กเกอร์ใดคือส่วนใดได้จากภาพด้านขวา
|
||||
onboarding-automatic_mounting-put_trackers_on-next = ฉันสวมแทร็กเกอร์ทั้งหมดแล้ว
|
||||
onboarding-automatic_mounting-return-home = เสร็จแล้ว
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back-scaled = กลับไปที่สัดส่วนที่อ้างอิงขนาด
|
||||
onboarding-manual_proportions-title = ปรับสัดส่วนร่างกายด้วยตนเอง
|
||||
onboarding-manual_proportions-fine_tuning_button = ปรับค่าสัดส่วนร่างกายโดยอัตโนมัติ
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = กรุณาเชื่อมแว่น VR ของคุณเพื่อใช้งานการปรับค่าโดยอัตโนมัติ
|
||||
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-file_type = ไฟล์ข้อมูลสัดส่วน
|
||||
onboarding-manual_proportions-normal_increment = เพิ่มจำนวนแบบปกติ
|
||||
onboarding-manual_proportions-precise_increment = เพิ่มจำนวนแบบละเอียด
|
||||
onboarding-manual_proportions-grouped_proportions = กลุ่มสัดส่วนร่างกาย
|
||||
onboarding-manual_proportions-grouped_proportions = สัดส่วนแบบกลุ่ม
|
||||
onboarding-manual_proportions-all_proportions = สัดส่วนทั้งหมด
|
||||
onboarding-manual_proportions-estimated_height = ความสูงของผู้ใช้โดยประมาณ
|
||||
|
||||
@@ -1231,8 +1250,8 @@ onboarding-automatic_proportions-description = เพื่อให้ SlimeVR
|
||||
onboarding-automatic_proportions-manual = ปรับสัดส่วนด้วยตัวเอง
|
||||
onboarding-automatic_proportions-prev_step = ขั้นตอนก่อนหน้า
|
||||
onboarding-automatic_proportions-put_trackers_on-title = ใส่แทร็กเกอร์ของคุณ
|
||||
onboarding-automatic_proportions-put_trackers_on-description = เราจะใช้แทร็กเกอรที่ถูกกำหนดตำแหน่งไว้แล้วในการตั้งศูนย์สัดส่วน ใส่แทร็กเกอร์ของคุณได้เลย หากไม่แน่ใจว่าแทร็กเกอร์เป็นตัวไหน สามารถดูได้จากภาพด้านขวา
|
||||
onboarding-automatic_proportions-put_trackers_on-next = ฉันใส่แทร็กเกอร์ทั้งหมดแล้ว
|
||||
onboarding-automatic_proportions-put_trackers_on-description = เราจะใช้แทร็กเกอร์ที่ถูกกำหนดตำแหน่งไว้แล้วในการตั้งศูนย์สัดส่วน ใส่แทร็กเกอร์ของคุณได้เลย หากไม่แน่ใจว่าแทร็กเกอร์เป็นตัวไหน สามารถดูได้จากภาพด้านขวา
|
||||
onboarding-automatic_proportions-put_trackers_on-next = ฉันสวมแทร็กเกอร์ครบทุกตัวแล้ว
|
||||
onboarding-automatic_proportions-requirements-title = สิ่งที่ต้องการ
|
||||
# Each line of text is a different list item
|
||||
onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
@@ -1245,8 +1264,10 @@ onboarding-automatic_proportions-requirements-next = ฉันได้อ่า
|
||||
onboarding-automatic_proportions-check_height-title-v3 = วัดความสูงของเฮดเซ็ท
|
||||
onboarding-automatic_proportions-check_height-description-v2 = ความสูงเฮดเซ็ท (HMD) ควรจะต่ำกว่าความสูงจริงของคุณเล็กน้อย เนื่องจากเฮดเซ็ทจะวัดความสูงระดับสายตา การวัดนี้จะถูกใช้เป็นพื้นฐานสำหรับการคำนวณสัดส่วนร่างกายของคุณ
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = ให้เริ่มต้นการวัดในขณะที่ยืนตัว<u>ตรง</u>เพื่อวัดความสูงของคุณ ระวังอย่าให้มือของคุณยกสูงเกินเฮดเซ็ท เพราะอาจส่งผลต่อการวัด!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip = หากคุณใช้อุปกรณ์แว่น VR แบบเดี่ยวๆ โปรดตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน Guardian /Boundary เพื่อให้การวัดความสูงถูกต้อง!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = ให้เริ่มต้นการวัดในขณะที่ยืนตัว <u>ตรง</u> เพื่อวัดความสูงของคุณ ระวังอย่าให้มือของคุณยกสูงเกินเฮดเซ็ท เพราะอาจส่งผลต่อการวัด!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
หากคุณใช้เฮดเซ็ท VR แบบ Standalone โปรดตรวจสอบให้แน่ใจว่าได้เปิด Guardian /
|
||||
Boundary เพื่อให้ความสูงของคุณถูกต้อง!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = ไม่ทราบ
|
||||
# Shows an element below it
|
||||
@@ -1255,10 +1276,10 @@ onboarding-automatic_proportions-check_height-measure-start = เริ่มก
|
||||
onboarding-automatic_proportions-check_height-measure-stop = หยุดการวัด
|
||||
onboarding-automatic_proportions-check_height-measure-reset = ทำการวัดอีกครั้ง
|
||||
onboarding-automatic_proportions-check_height-next_step = ใช้ความสูงจากเฮดเซ็ทคุณ
|
||||
onboarding-automatic_proportions-check_floor_height-title = วัดความสูงของพื้นของคุณ (ไม่บังคับ)
|
||||
onboarding-automatic_proportions-check_floor_height-description = ในบางกรณีแว่นของคุณอาจมีการตั้งค่าความสูงของพื้นที่ไม่ถูกต้อง ทำให้ความสูงของแว่นวัดได้สูงกว่าที่ควร คุณสามารถวัดความ"สูง" ของพื้นให้ถูกต้องได้
|
||||
onboarding-automatic_proportions-check_floor_height-title = วัดความสูงพื้นของคุณ (ไม่บังคับ)
|
||||
onboarding-automatic_proportions-check_floor_height-description = ในบางกรณี ความสูงพื้นของเฮดเซ็ทอาจไม่ได้ถูกตั้งค่าอย่างถูกต้อง ทำให้ความสูงที่วัดได้สูงเกินกว่าที่ควรจะเป็น คุณสามารถวัด "ความสูง" ของพื้นเพื่อแก้ไขความสูงของเฮดเซ็ทคุณได้
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = เริ่มต้นการวัดโดยการวาง Controller บนพื้นเพื่อวัดความสูงของพื้นของคุณ ถ้าคุณมั่นใจแล้วว่าความสูงของพื้นคุณถูกต้อง คุณสามารถข้ามขั้นตอนนี้ได้
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = เริ่มการวัดและวางคอนโทรลเลอร์ไว้บนพื้นเพื่อวัดความสูง หากคุณแน่ใจว่าความสูงพื้นถูกต้อง คุณสามารถข้ามขั้นตอนนี้ได้
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = ความสูงของพื้นของคุณคือ:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = ความสูงโดยประมาณของคุณคือ:
|
||||
@@ -1291,7 +1312,7 @@ onboarding-automatic_proportions-verify_results-processing = กำลังป
|
||||
onboarding-automatic_proportions-verify_results-redo = ทำการบันทึกใหม่
|
||||
onboarding-automatic_proportions-verify_results-confirm = ถูกต้องแล้ว
|
||||
onboarding-automatic_proportions-done-title = วัดสัดส่วนร่างกายและบันทึกเรียบร้อยแล้ว
|
||||
onboarding-automatic_proportions-done-description = ปรับสัดส่วนร่างกายของคุณสำเร็จแล้ว
|
||||
onboarding-automatic_proportions-done-description = การตั้งศูนย์สัดส่วนร่างกายของคุณเสร็จสมบูรณ์แล้ว!
|
||||
onboarding-automatic_proportions-error_modal-v2 =
|
||||
<b>คำเตือน:</b> เกิดข้อผิดพลาดระหว่างการประมาณสัดส่วน!
|
||||
อาจเกิดจากตำแหน่งการติดตั้งแทร็กเกอร์ที่ไม่ถูกต้อง โปรดตรวจสอบว่าแทร็กเกอร์ทำงานอย่างถูกต้อง แล้วลองอีกครั้ง
|
||||
@@ -1308,7 +1329,7 @@ onboarding-user_height-title = ความสูงของคุณคือ
|
||||
onboarding-user_height-description = เราต้องการความสูงของคุณเพื่อคำนวณสัดส่วนร่างกายและแสดงการเคลื่อนไหวของคุณอย่างแม่นยำ คุณสามารถให้ SlimeVR คำนวณให้ หรือป้อนความสูงเองด้วยตนเอง
|
||||
onboarding-user_height-need_head_tracker = จำเป็นต้องใช้เฮดเซ็ต (หรือแทร็กเกอร์ส่วนหัว) และคอนโทรลเลอร์ที่มีการติดตามตำแหน่งเพื่อทำการตั้งศูนย์
|
||||
onboarding-user_height-calculate = คำนวณความสูงของฉันโดยอัตโนมัติ
|
||||
onboarding-user_height-next_step = ดำเนินการต่อและบันทึก
|
||||
onboarding-user_height-next_step = บันทึกและดำเนินการต่อ
|
||||
onboarding-user_height-manual-proportions = ปรับสัดส่วนด้วยตัวเอง
|
||||
onboarding-user_height-calibration-title = ความคืบหน้าการตั้งศูนย์
|
||||
onboarding-user_height-calibration-RECORDING_FLOOR = แตะพื้นด้วยปลายคอนโทรลเลอร์ของคุณ
|
||||
@@ -1317,14 +1338,14 @@ onboarding-user_height-calibration-WAITING_FOR_FW_LOOK = ยืนขึ้น
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-ok = ตรวจสอบให้แน่ใจว่าหัวของคุณอยู่ในแนวระนาบ
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-low = อย่ามองที่พื้น
|
||||
onboarding-user_height-calibration-WAITING_FOR_FW_LOOK-high = อย่าเงยหน้าสูงเกินไป
|
||||
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = ตรวจสอบให้แน่ใจว่าคอนโทรลเลอร์ชี้ลง
|
||||
onboarding-user_height-calibration-WAITING_FOR_CONTROLLER_PITCH = ตรวจสอบให้แน่ใจว่าคอนโทรลเลอร์นั้นชี้ลง
|
||||
onboarding-user_height-calibration-RECORDING_HEIGHT = ยืนขึ้นอีกครั้งแล้วยืนนิ่งๆ!
|
||||
onboarding-user_height-calibration-DONE = สําเร็จ!
|
||||
onboarding-user_height-calibration-DONE = สำเร็จ!
|
||||
onboarding-user_height-calibration-ERROR_TIMEOUT = การตั้งศูนย์หมดเวลา ลองใหม่อีกครั้ง
|
||||
onboarding-user_height-calibration-ERROR_TOO_HIGH = ความสูงของผู้ใช้ที่ตรวจพบสูงเกินไป ลองใหม่อีกครั้ง
|
||||
onboarding-user_height-calibration-ERROR_TOO_SMALL = ความสูงของผู้ใช้ที่ตรวจพบเตี้ยเกินไป ตรวจสอบให้แน่ใจว่ายืนตัวตรงเต็มที่ระหว่างกระบวนการ
|
||||
onboarding-user_height-calibration-ERROR_TOO_SMALL = ความสูงของผู้ใช้ที่ตรวจพบเตี้ยเกินไป ตรวจสอบให้แน่ใจว่ายืนตัวตรงในระหว่างการตั้งศูนย์
|
||||
onboarding-user_height-calibration-error = ตั้งศูนย์ไม่สำเร็จ
|
||||
onboarding-user_height-manual-tip = ขณะปรับความสูงของคุณ ให้ลองทำท่าทางต่างๆ และดูว่าโครงกระดูกตรงกับร่างกายของคุณอย่างไร
|
||||
onboarding-user_height-manual-tip = ขณะปรับความสูงของคุณ ให้ลองทำท่าทางต่างๆ และดูว่าการเคลื่อนไหวของโครงกระดูกตรงกับร่างกายของคุณหรือไม่
|
||||
onboarding-user_height-reset-warning = คุณได้ตั้งค่าสัดส่วนไว้แล้วโดยใช้หน้าสัดส่วนแบบปรับเอง การดำเนินการต่อจะเป็นการรีเซ็ตสัดส่วนเหล่านี้เพื่อใช้เฉพาะความสูงของคุณเท่านั้น คุณต้องการดำเนินการต่อหรือไม่?
|
||||
|
||||
## Stay Aligned setup
|
||||
@@ -1360,10 +1381,11 @@ onboarding-stay_aligned-previous_step = ก่อนหน้า
|
||||
onboarding-stay_aligned-next_step = ต่อไป
|
||||
onboarding-stay_aligned-restart = เริ่มใหม่
|
||||
onboarding-stay_aligned-done = เสร็จแล้ว
|
||||
onboarding-stay_aligned-manual_mounting-done = เสร็จแล้ว
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = ไม่พบแทร็กเกอร์หรือยังไม่ได้ถูกกำหนด
|
||||
home-no_trackers = ไม่พบหรือไม่ได้กำหนดแทร็กเกอร์
|
||||
home-settings = การตั้งค่าหน้าหลัก
|
||||
home-settings-close = ปิด
|
||||
|
||||
@@ -1371,22 +1393,22 @@ home-settings-close = ปิด
|
||||
|
||||
trackers_still_on-modal-title = แทร็กเกอร์ยังคงเปิดอยู่
|
||||
trackers_still_on-modal-description =
|
||||
มีแทร็กเกอร์เปิดค้างไว้อยู่
|
||||
คุณแน่ใจที่จะปิด SlimeVR?
|
||||
มีแทร็กเกอร์อยู่ตั้งแต่หนึ่งตัวขึ้นไปเปิดอยู่
|
||||
คุณยังต้องการออกจาก SlimeVR หรือไม่?
|
||||
trackers_still_on-modal-confirm = ออกจาก SlimeVR
|
||||
trackers_still_on-modal-cancel = ใจเย็นๆก่อน....
|
||||
|
||||
## Status system
|
||||
|
||||
status_system-StatusTrackerReset = เราแนะนำให้คุณทำการรีเซ็ตทั้งหมดเพราะว่าแทร็กเกอร์หนึ่งตัวหรือมากกว่านั้นยังไม่ได้ถูกปรับ
|
||||
status_system-StatusTrackerReset = แนะนำให้ทำการรีเซ็ตทั้งหมด เนื่องจากมีแทร็กเกอร์ที่ยังไม่ได้ปรับค่าตั้งแต่หนึ่งตัวขึ้นไป
|
||||
status_system-StatusSteamVRDisconnected =
|
||||
{ $type ->
|
||||
[steamvr_feeder] ขณะนี้ยังไม่มีการเชื่อมต่อกับแอป SlimeVR Feeder
|
||||
*[steamvr] ขณะนี้ยังไม่มีการเชื่อมต่อกับ SteamVR ผ่านไดรเวอร์ SlimeVR
|
||||
}
|
||||
status_system-StatusTrackerError = แทร็กเกอร์ { $trackerName } เกิดข้อผิดพลาด
|
||||
status_system-StatusUnassignedHMD = แว่น VR ของคุณควรจะถูกกำหนดเป็นแทร็กเกอร์ส่วนหัว
|
||||
status_system-StatusPublicNetwork = โปรไฟล์เครือข่ายของคุณตอนนี้ถูกตั้งค่าเป็นสาธารณะ ({ $adapters }) ซึ่งไม่แนะนำสำหรับการทำงานของ SlimeVR <PublicFixLink>ดูวิธีการแก้ไขให้เหมาะสมที่นี่</PublicFixLink>
|
||||
status_system-StatusUnassignedHMD = เฮดเซ็ท VR ของคุณควรจะถูกกำหนดเป็นแทร็กเกอร์ส่วนหัว
|
||||
status_system-StatusPublicNetwork = โปรไฟล์เครือข่ายของคุณตอนนี้ถูกตั้งค่าเป็นสาธารณะ ({ $adapters }) ในขณะนี้ ซึ่งไม่แนะนำสำหรับการทำงานของ SlimeVR <PublicFixLink>สามารถดูวิธีการแก้ไขได้ที่นี่</PublicFixLink>
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
@@ -1399,17 +1421,20 @@ firmware_tool-loading = กำลังโหลด...
|
||||
## Firmware tool Steps
|
||||
|
||||
firmware_tool = เครื่องมือเฟิร์มแวร์ DIY
|
||||
firmware_tool-description = ให้คุณตั้งค่าและแฟลชเฟิร์มแวร์แทร็กเกอร์ DIY ของคุณ
|
||||
firmware_tool-not_available = ไอ่หย๊า เครื่องมือเฟิร์มแวร์ยังไม่พร้อมใช้งานในขณะนี้ โปรดกลับมาใหม่ทีหลัง!
|
||||
firmware_tool-not_compatible = Firmware นี้เข้ากันไม่ได้กับเซิร์ฟเวอร์เวอร์ชั่นนี้ โปรดอัปเดตเซิร์ฟเวอร์ของคุณ!
|
||||
firmware_tool-select_source = เลือกเฟิร์มแวร์ที่จะแฟลช
|
||||
firmware_tool-select_source-description = เลือกเฟิร์มแวร์ที่คุณต้องการแฟลชลงบนบอร์ดของคุณ
|
||||
firmware_tool-description = ช่วยให้คุณกำหนดค่าและลงเฟิร์มแวร์แทร็กเกอร์ DIY ของคุณ
|
||||
firmware_tool-not_available = ขออภัย เครื่องมือเฟิร์มแวร์ยังไม่พร้อมใช้งานในขณะนี้ โปรดกลับมาในภายหลัง!
|
||||
firmware_tool-not_compatible = เครื่องมือเฟิร์มแวร์ไม่เข้ากันกับ SlimeVR Server เวอร์ชันนี้ โปรดอัปเดต SlimeVR Server ของคุณ!
|
||||
firmware_tool-select_source = เลือกเฟิร์มแวร์ที่คุณจะติดตั้ง
|
||||
firmware_tool-select_source-description = เลือกเฟิร์มแวร์ที่คุณต้องการลงบนบอร์ดของคุณ
|
||||
firmware_tool-select_source-error = ไม่สามารถโหลดแหล่งที่มาได้
|
||||
firmware_tool-select_source-board_type = ชนิดของบอร์ด
|
||||
firmware_tool-select_source-firmware = แหล่งที่มาของเฟิร์มแวร์
|
||||
firmware_tool-select_source-version = เวอร์ชั่นของเฟิร์มแวร์
|
||||
firmware_tool-select_source-version = เวอร์ชันของเฟิร์มแวร์
|
||||
firmware_tool-select_source-official = ทางการ
|
||||
firmware_tool-select_source-dev = รุ่นพัฒนา
|
||||
firmware_tool-select_source-not_selected = ยังไม่ได้กำหนดแหล่งเฟิร์มแวร์
|
||||
firmware_tool-select_source-no_boards = ไม่มีเฟิร์มแวร์บอร์ดสำหรับแหล่งนี้
|
||||
firmware_tool-select_source-no_versions = ไม่มีเวอร์ชั่นที่ใช้ได้สำหรับแหล่งนี้
|
||||
firmware_tool-board_defaults = กำหนดค่าบอร์ดของคุณ
|
||||
firmware_tool-board_defaults-description = ตั้งค่า Pin หรือการตั้งค่าที่เกี่ยวข้องกับฮาร์ดแวร์ของคุณ
|
||||
firmware_tool-board_defaults-add = เพิ่ม
|
||||
@@ -1417,84 +1442,84 @@ firmware_tool-board_defaults-reset = รีเซ็ตเป็นค่าเ
|
||||
firmware_tool-board_defaults-error-required = ช่องที่จำเป็น
|
||||
firmware_tool-board_defaults-error-format = รูปแบบไม่ถูกต้อง
|
||||
firmware_tool-board_defaults-error-format-number = ไม่ใช่ตัวเลข
|
||||
firmware_tool-flash_method_step = วิธีการลง Firmware
|
||||
firmware_tool-flash_method_step-description = กรุณาเลือกวิธีการลง Firmware ที่คุณต้องการ
|
||||
firmware_tool-flash_method_step = วิธีการลงเฟิร์มแวร์
|
||||
firmware_tool-flash_method_step-description = กรุณาเลือกวิธีการลงเฟิร์มแวร์ที่คุณต้องการใช้
|
||||
firmware_tool-flash_method_step-ota-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = ใช้การอัปเดตแบบ Over-the-air (OTA) โดยแทร็กเกอร์คุณจะใช้ Wi-Fi เพื่ออัปเดตเฟิร์มแวร์ ใช้งานได้เฉพาะแทร็กเกอร์ที่ได้รับการตั้งค่าแล้วเท่านั้น
|
||||
firmware_tool-flash_method_step-ota-info =
|
||||
เราใช้ข้อมูลรับรอง Wi-Fi ของคุณเพื่อแฟลชแทร็กเกอร์และยืนยันว่าทุกอย่างทำงานได้อย่างถูกต้อง
|
||||
เราใช้ข้อมูลรับรอง Wi-Fi ของคุณเพื่อลงเฟิร์มแวร์แทร็กเกอร์และยืนยันว่าทุกอย่างทำงานได้อย่างถูกต้อง
|
||||
<b>เราไม่จัดเก็บข้อมูล Wi-Fi ของคุณ!</b>
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.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 = ปิดแทร็กเกอร์ของคุณ ถอดบอร์ดออกจากเคส(ถ้ามี) แล้วต่อสาย USB จากแทร็กเกอร์เข้าสู่คอมพิวเตอร์ จากนั้นทำตามขั้นตอนตามชนิดบอร์ดของ SlimeVR คุณ
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11-v2 = เปิดแทร็กเกอร์ขณะทำการลัดวงจรแพด FLASH สี่เหลี่ยมอันที่สองจากขอบด้านบนของบอร์ดเข้ากับฝาโลหะของไมโครคอนโทรลเลอร์ ไฟ LED ของแทร็กเกอร์ควรกะพริบสั้นๆ
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12-v2 = เปิดแทร็กเกอร์ขณะทำการลัดวงจรแพด FLASH วงกลมที่ด้านบนของบอร์ดเข้ากับฝาครอบโลหะของไมโครคอนโทรลเลอร์ ไฟ LED ของแทร็กเกอร์ควรกะพริบสั้นๆ
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14-v2 = เปิดแทร็กเกอร์ขณะกดปุ่ม FLASH ที่ด้านบนของบอร์ดค้างไว้ ไฟ LED ของแทร็กเกอร์ควรกะพริบสั้นๆ
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
ก่อนการแฟลช คุณอาจต้องตั้งค่าแทร็กเกอร์ให้อยู่ในโหมดบูตโหลดเดอร์ก่อน
|
||||
โดยส่วนใหญ่ คุณจะต้องกดปุ่มบูตบนบอร์ดก่อนที่กระบวนการแฟลชจะเริ่มต้น
|
||||
หากกระบวนการแฟลชหมดเวลาที่จุดเริ่มต้น อาจหมายความว่าแทร็กเกอร์ไม่ได้อยู่ในโหมดบูตโหลดเดอร์
|
||||
โปรดดูคำแนะนำการแฟลชของบอร์ดของคุณเพื่อทราบวิธีเปิดโหมดบูตโหลดเดอร์
|
||||
firmware_tool-flash_method_ota-title = กำลังแฟลชผ่าน Wi-Fi
|
||||
ก่อนลงเฟิร์มแวร์ คุณอาจต้องตั้งค่าแทร็กเกอร์ให้อยู่ในโหมดบูตโหลดเดอร์ก่อน
|
||||
โดยส่วนใหญ่ คุณจะต้องกดปุ่มบูตบนบอร์ดก่อนที่กระบวนการลงเฟิร์มแวร์จะเริ่มต้น
|
||||
หากกระบวนการหมดเวลาตั้งแต่เริ่มต้น อาจหมายความว่าแทร็กเกอร์ไม่ได้อยู่ในโหมดบูตโหลดเดอร์
|
||||
โปรดดูคำแนะนำการลงเฟิร์มแวร์ของบอร์ดของคุณเพื่อทราบวิธีเปิดโหมดบูตโหลดเดอร์
|
||||
firmware_tool-flash_method_ota-title = กำลังลงเฟิร์มแวร์ผ่าน Wi-Fi
|
||||
firmware_tool-flash_method_ota-devices = พบอุปกรณ์ OTA:
|
||||
firmware_tool-flash_method_ota-no_devices = ไม่พบบอร์ดที่เราสามารถอัพเดตได้ผ่าน OTA กรุณาตรวจสอบว่าคุณได้เลือกชนิดของบอร์ดที่ถูกต้อง
|
||||
firmware_tool-flash_method_serial-title = กำลังแฟลชผ่าน USB
|
||||
firmware_tool-flash_method_serial-wifi = ข้อมูล Wi-Fi:
|
||||
firmware_tool-flash_method_serial-devices-label = พบอุปกรณ์ซีเรียล:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = เลือกอุปกรณ์ซีเรียลของคุณ
|
||||
firmware_tool-flash_method_serial-no_devices = ไม่พบอุปกรณ์ซีเรียลที่เข้ากันได้ กรุณาตรวจสอบว่าแทร็กเกอร์ของคุณเสียบอยู่
|
||||
firmware_tool-flash_method_ota-no_devices = ไม่พบบอร์ดที่สามารถอัปเดตโดยใช้ OTA ได้ ตรวจสอบให้แน่ใจว่าคุณเลือกประเภทบอร์ดได้ถูกต้อง
|
||||
firmware_tool-flash_method_serial-title = กำลังลงเฟิร์มแวร์ผ่าน USB
|
||||
firmware_tool-flash_method_serial-wifi = ข้อมูลเครือข่าย Wi-Fi:
|
||||
firmware_tool-flash_method_serial-devices-label = พบอุปกรณ์ Serial:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = เลือกอุปกรณ์ Serial ของคุณ
|
||||
firmware_tool-flash_method_serial-no_devices = ไม่พบอุปกรณ์ Serial ที่เข้ากันได้ ตรวจสอบให้แน่ใจว่าได้เสียบแทร็กเกอร์แล้ว
|
||||
firmware_tool-build_step = สร้างเฟิร์มแวร์
|
||||
firmware_tool-build_step-description = กำลังสร้างเฟิร์มแวร์ โปรดรอสักครู่
|
||||
firmware_tool-flashing_step = ติดตั้งเฟิร์มแวร์
|
||||
firmware_tool-flashing_step-description = กำลังติดตั้งเฟิร์มแวร์ให้แทร็กเกอร์ของคุณ กรุณาทำตามคำแนะนำบนหน้าจอ
|
||||
firmware_tool-build_step-description = เฟิร์มแวร์กำลังสร้าง โปรดรอสักครู่
|
||||
firmware_tool-flashing_step = ลงเฟิร์มแวร์
|
||||
firmware_tool-flashing_step-description = กำลังลงเฟิร์มแวร์ให้แทร็กเกอร์ของคุณ กรุณาทำตามคำแนะนำบนหน้าจอ
|
||||
firmware_tool-flashing_step-warning-v2 = อย่าถอดสาย หรือปิดแทร็กเกอร์ในระหว่างกระบวนการอัปโหลด เว้นแต่จะได้รับคำแนะนำ ไม่อย่างนั้นอาจทำให้บอร์ดของคุณใช้งานไม่ได้
|
||||
firmware_tool-flashing_step-flash_more = ติดตั้งเฟิร์มแวร์ให้แทร็กเกอร์ตัวอื่น
|
||||
firmware_tool-flashing_step-flash_more = ลงเฟิร์มแวร์ให้แทร็กเกอร์ตัวอื่น
|
||||
firmware_tool-flashing_step-exit = ออก
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-QUEUED = กำลังรอการสร้าง...
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = กำลังสร้าง Build folder
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = กำลังสร้างโฟลเดอร์บิลด์
|
||||
firmware_tool-build-DOWNLOADING_SOURCE = กำลังดาวน์โหลดซอร์สโค้ด
|
||||
firmware_tool-build-EXTRACTING_SOURCE = กำลังแตกไฟล์ซอร์สโค้ด
|
||||
firmware_tool-build-BUILDING = กำลังสร้างตัว Firmware
|
||||
firmware_tool-build-SAVING = บันทึกค่าที่สร้างไว้
|
||||
firmware_tool-build-DONE = การสร้างเสร็จสมบูรณ์
|
||||
firmware_tool-build-ERROR = ไม่สามารถสร้าง Firmware ได้
|
||||
firmware_tool-build-BUILDING = กำลังสร้างเฟิร์มแวร์
|
||||
firmware_tool-build-SAVING = กำลังบันทึกไฟล์บิลด์
|
||||
firmware_tool-build-DONE = สร้างเสร็จสมบูรณ์
|
||||
firmware_tool-build-ERROR = ไม่สามารถสร้างเฟิร์มแวร์ได้
|
||||
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = กำลังโหลด Firmware
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = กรุณปิดและเปิดแทร็กเกอร์ของคุณใหม่อีกครั้ง
|
||||
firmware_update-status-DOWNLOADING = กำลังดาวน์โหลดเฟิร์มแวร์
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = โปรดปิดและเปิดแทร็กเกอร์ของคุณอีกครั้ง
|
||||
firmware_update-status-AUTHENTICATING = กำลังยืนยันตัวตนกับ MCU
|
||||
firmware_update-status-UPLOADING = กำลังอัปโหลดเฟิร์มแวร์
|
||||
firmware_update-status-SYNCING_WITH_MCU = กำลังซิงโครไนซ์กับ MCU
|
||||
firmware_update-status-REBOOTING = กำลังดำเนินการอัปเดต
|
||||
firmware_update-status-PROVISIONING = ตั้งค่าข้อมูลการเชื่อมต่อ Wi-Fi
|
||||
firmware_update-status-DONE = อัพเดตสำเร็จ!
|
||||
firmware_update-status-ERROR_DEVICE_NOT_FOUND = ไม่สามารถหาตัวอุปกรณ์ได้
|
||||
firmware_update-status-ERROR_TIMEOUT = กระบวนการอัปเดตหมดเวลาการเชื่อมต่อ
|
||||
firmware_update-status-ERROR_DOWNLOAD_FAILED = ไม่สามารถดาวน์โหลด Firmware ได้
|
||||
firmware_update-status-ERROR_AUTHENTICATION_FAILED = ไม่สามารถยืนยันตัวตนหรือเชื่อมต่อกับ MCU ได้
|
||||
firmware_update-status-ERROR_UPLOAD_FAILED = ไม่สามารถอัปโหลดเฟิร์มแวร์ได้
|
||||
firmware_update-status-ERROR_PROVISIONING_FAILED = ไม่สามารถตั้งข้อมูลการเชื่อมต่อ Wi-Fi ได้
|
||||
firmware_update-status-ERROR_UNSUPPORTED_METHOD = ยังไม่รองรับวิธีการอัพเดตนี้
|
||||
firmware_update-status-SYNCING_WITH_MCU = กำลังซิงค์กับ MCU
|
||||
firmware_update-status-REBOOTING = กำลังใช้การอัปเดต
|
||||
firmware_update-status-PROVISIONING = ตั้งค่าข้อมูลเครือข่าย Wi-Fi
|
||||
firmware_update-status-DONE = อัปเดตสำเร็จ!
|
||||
firmware_update-status-ERROR_DEVICE_NOT_FOUND = ไม่พบอุปกรณ์
|
||||
firmware_update-status-ERROR_TIMEOUT = กระบวนการอัปเดตหมดเวลา
|
||||
firmware_update-status-ERROR_DOWNLOAD_FAILED = ไม่สามารถดาวน์โหลดเฟิร์มแวร์
|
||||
firmware_update-status-ERROR_AUTHENTICATION_FAILED = ไม่สามารถยืนยันตัวตนกับ MCU
|
||||
firmware_update-status-ERROR_UPLOAD_FAILED = ไม่สามารถอัปโหลดเฟิร์มแวร์
|
||||
firmware_update-status-ERROR_PROVISIONING_FAILED = ไม่สามารถตั้งค่าข้อมูลเครือข่าย Wi-Fi
|
||||
firmware_update-status-ERROR_UNSUPPORTED_METHOD = ยังไม่รองรับวิธีการอัปเดตนี้
|
||||
firmware_update-status-ERROR_UNKNOWN = เกิดข้อผิดพลาดที่ไม่รู้จัก
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
firmware_update-title = อัพเดตเฟิร์มแวร์
|
||||
firmware_update-title = อัปเดตเฟิร์มแวร์
|
||||
firmware_update-devices = อุปกรณ์ที่พร้อมใช้งาน
|
||||
firmware_update-devices-description = โปรดเลือกตัวแทร็กเกอร์ที่คุณต้องการอัปเดตเป็น Firmware SlimeVR เวอร์ชันล่าสุด
|
||||
firmware_update-no_devices = กรุณาตรวจสอบว่าแทร็กเกอร์ที่คุณต้องการจะอัพเดทนั้นเปิดอยู่ และต่อเข้ากับ Wi-Fi!
|
||||
firmware_update-devices-description = โปรดเลือกแทร็กเกอร์ที่คุณต้องการอัปเดตเป็นเฟิร์มแวร์ SlimeVR เวอร์ชันล่าสุด
|
||||
firmware_update-no_devices = กรุณาตรวจสอบว่าแทร็กเกอร์ที่คุณต้องการจะอัปเดตนั้นเปิดอยู่ และต่อเข้ากับ Wi-Fi!
|
||||
firmware_update-changelog-title = กำลังอัปเดตเป็น { $version }
|
||||
firmware_update-looking_for_devices = กำลังมองหาอุปกรณ์เพื่ออัพเดต...
|
||||
firmware_update-looking_for_devices = กำลังมองหาอุปกรณ์เพื่ออัปเดต...
|
||||
firmware_update-retry = ลองอีกครั้ง
|
||||
firmware_update-update = อัพเดตแทร็กเกอร์ที่เลือก
|
||||
firmware_update-update = อัปเดตแทร็กเกอร์ที่เลือก
|
||||
firmware_update-exit = ออก
|
||||
|
||||
## Tray Menu
|
||||
@@ -1507,9 +1532,12 @@ tray_menu-quit = ออก
|
||||
|
||||
tray_or_exit_modal-title = คุณต้องการให้ปุ่มปิดทำอะไร?
|
||||
# Multiline text
|
||||
tray_or_exit_modal-description = นี่จะให้คุณเลือกว่าจะเป็นการปิดโปรแกรมหรือเป็นการพับเก็บโปรแกรมเมื่อกดปุ่มปิด
|
||||
tray_or_exit_modal-radio-exit = ออกโปรแกรมเมื่อปิด
|
||||
tray_or_exit_modal-radio-tray = พับไปยัง System tray
|
||||
tray_or_exit_modal-description =
|
||||
เลือกที่จะออกจากโปรแกรม หรือย่อไปที่ถาดระบบเมื่อคลิกปุ่มปิด
|
||||
|
||||
คุณสามารถเปลี่ยนการตั้งค่านี้ได้ภายหลังในส่วนการตั้งค่าอินเทอร์เฟซ
|
||||
tray_or_exit_modal-radio-exit = ออกเมื่อปิด
|
||||
tray_or_exit_modal-radio-tray = ย่อไปที่ถาดระบบ
|
||||
tray_or_exit_modal-submit = บันทึก
|
||||
tray_or_exit_modal-cancel = ยกเลิก
|
||||
|
||||
@@ -1522,30 +1550,30 @@ unknown_device-modal-description =
|
||||
unknown_device-modal-confirm = แน่นอน
|
||||
unknown_device-modal-forget = เพิกเฉย
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = คำเตือนการตั้งค่าของ VRChat
|
||||
vrc_config-page-title = คำเตือนการตั้งค่าใน VRChat
|
||||
vrc_config-page-desc = หน้านี้แสดงการตั้งค่าใน VRChat ของคุณ และการตั้งค่าที่ไม่เข้ากับ SlimeVR เราแนะนำเป็นอย่างยิ่งให้คุณแก้ไขการแจ้งเตือนที่แสดงให้เห็นเพื่อประสบการณ์การใช้ SlimeVR ที่ดีที่สุด
|
||||
vrc_config-page-help = ไม่พบการตั้งค่าใช่ไหม?
|
||||
vrc_config-page-help-desc = สามารถดู<a>เอกสารประกอบการตั้งค่าตรงนี้!</a>
|
||||
vrc_config-page-big_menu = แทร็กกิ้ง & IK (หน้าเมนูใหญ่)
|
||||
vrc_config-page-help-desc = สามารถดู <a>เอกสารประกอบการตั้งค่าได้ที่นี่!</a>
|
||||
vrc_config-page-big_menu = แทร็กกิ้ง & IK (หน้าเมนูใหญ่)
|
||||
vrc_config-page-big_menu-desc = การตั้งค่าที่เกี่ยวกับ IK ในเมนูการตั้งค่าหลัก
|
||||
vrc_config-page-wrist_menu = แทร็กกิ้ง & IK (เมนูบนข้อมือ)
|
||||
vrc_config-page-wrist_menu-desc = การตั้งค่าที่เกี่ยวกับ IK ในเมนูตั้งค่าเล็ก (เมนูบนข้อมือ)
|
||||
vrc_config-page-wrist_menu-desc = การตั้งค่าเกี่ยวกับ IK ในเมนูตั้งค่าเล็ก (เมนูบนข้อมือ)
|
||||
vrc_config-on = เปิด
|
||||
vrc_config-off = ปิด
|
||||
vrc_config-invalid = คุณมีการตั้งค่าใน VRchat ที่ไม่ถูกต้อง!
|
||||
vrc_config-invalid = คุณมีการตั้งค่าใน VRChat ที่ไม่ถูกต้อง!
|
||||
vrc_config-show_more = แสดงข้อมูลเพิ่มเติม
|
||||
vrc_config-setting_name = ชื่อการตั้งค่าใน VRchat
|
||||
vrc_config-recommended_value = ค่าที่แนะนำ
|
||||
vrc_config-setting_name = ชื่อการตั้งค่าใน VRChat
|
||||
vrc_config-recommended_value = การตั้งค่าที่แนะนำ
|
||||
vrc_config-current_value = การตั้งค่าปัจจุบัน
|
||||
vrc_config-mute = ปิดคำเตือนการตั้งค่า
|
||||
vrc_config-mute-btn = ปิดคำเตือน
|
||||
vrc_config-unmute-btn = เลิกแจ้งเตือน
|
||||
vrc_config-legacy_mode = การตั้งศูนย์แบบเก่า
|
||||
vrc_config-disable_shoulder_tracking = ปิดใช้งานการจับตำแหน่งไหล
|
||||
vrc_config-unmute-btn = แสดงคำเตือน
|
||||
vrc_config-legacy_mode = ใช้การแก้ไข IK แบบเก่า
|
||||
vrc_config-disable_shoulder_tracking = ปิดการใช้งานการติดตามไหล่
|
||||
vrc_config-shoulder_width_compensation = การชดเชยความกว้างของไหล่
|
||||
vrc_config-spine_mode = โหมดกระดูกสันหลัง FBT
|
||||
vrc_config-tracker_model = โมเดลแทร็กเกอร์ FBT
|
||||
vrc_config-avatar_measurement_type = การวัดของอวาตาร์
|
||||
vrc_config-avatar_measurement_type = การวัดขนาดอวาตาร์
|
||||
vrc_config-calibration_range = ช่วงการตั้งศูนย์
|
||||
vrc_config-calibration_visuals = แสดงภาพการตั้งศูนย์
|
||||
vrc_config-user_height = ความสูงจริงของผู้ใช้
|
||||
@@ -1564,46 +1592,49 @@ vrc_config-avatar_measurement_type-ARM_SPAN = ช่วงแขน
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = อนุญาติให้เราเก็บข้อมูลขอผิดพลาดหรือไม่?
|
||||
error_collection_modal-title = อนุญาตให้เราเก็บข้อมูลข้อผิดพลาดหรือไม่?
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-description_v2 }
|
||||
คุณสามารถเปลี่ยนการตั้งค่านี้ในภายหลังได้ในแถบ พฤติกรรมการทำงาน ภายในหน้าการตั้งค่า
|
||||
error_collection_modal-confirm = ฉันตกลง
|
||||
error_collection_modal-cancel = ฉันไม่ต้องการ
|
||||
tracking_checklist = รายการเตรียมความพร้อมแทร็กกิ้ง
|
||||
tracking_checklist-settings = รายการเตรียมพร้อมแทร็กเกอร์
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
tracking_checklist = รายการเตรียมพร้อมแทร็กเกอร์
|
||||
tracking_checklist-settings = การตั้งค่ารายการเตรียมพร้อมแทร็กเกอร์
|
||||
tracking_checklist-settings-close = ปิด
|
||||
tracking_checklist-status-incomplete = คุณยังไม่พร้อมที่จะใช้ SlimeVR!
|
||||
tracking_checklist-status-partial = คุณมี { $count } คำเตือน
|
||||
tracking_checklist-status-partial = คุณมี { $count } คำเตือน!
|
||||
tracking_checklist-status-complete = คุณพร้อมที่จะใช้ SlimeVR แล้ว!
|
||||
tracking_checklist-MOUNTING_CALIBRATION = ตั้งศูนย์การติดตั้ง
|
||||
tracking_checklist-MOUNTING_CALIBRATION = ทำการตั้งศูนย์การติดตั้ง
|
||||
tracking_checklist-FEET_MOUNTING_CALIBRATION = ตั้งศูนย์การติดตั้งแทร็กเกอร์เท้า
|
||||
tracking_checklist-FULL_RESET = รีเซ็ตแทร็กเกอร์ทั้งหมด
|
||||
tracking_checklist-FULL_RESET = ทำการรีเซ็ตทั้งหมด
|
||||
tracking_checklist-FULL_RESET-desc = แทร็กเกอร์บางส่วนจำเป็นต้องทำการรีเซ็ต
|
||||
tracking_checklist-STEAMVR_DISCONNECTED = SteamVR ไม่ได้ทำงานอยู่
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR ไม่ได้ทำงานอยู่ คุณใช้งานเพื่อเล่น VR ใช่หรือไม่?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-desc = SteamVR ไม่ได้ทำงานอยู่ คุณจะใช้เพื่อเล่น VR ใช่หรือไม่?
|
||||
tracking_checklist-STEAMVR_DISCONNECTED-open = เปิด SteamVR
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION = ตั้งศูนย์แทร็กเกอร์ของคุณ
|
||||
tracking_checklist-TRACKERS_REST_CALIBRATION-desc = คุณยังไม่ได้ทำการตั้งศูนย์แทร็กเกอร์ โปรดวางแทร็กเกอร์ของคุณ (ที่ไฮไลต์ด้วยสีเหลือง) ไว้บนพื้นที่ราบเวลาสองสามวินาที
|
||||
tracking_checklist-TRACKER_ERROR = แทร็กเกอร์มีปัญหา
|
||||
tracking_checklist-TRACKER_ERROR-desc = ตัวแทร็กเกอร์บางส่วนของคุณมีปัญหา โปรดทำการรีสตาร์ทแทร็กเกอร์ที่ไฮไลต์ด้วยสีเหลือง
|
||||
tracking_checklist-VRCHAT_SETTINGS = การตั้งค่าของ VRChat
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = คุณมีการตั้งค่าของ VRChat ที่ไม่ถูกต้อง! ซึ่งอาจส่งผลเสียต่อการจับตำแหน่งของแทร็กเกอร์คุณ
|
||||
tracking_checklist-TRACKER_ERROR = แทร็กเกอร์ที่มีปัญหา
|
||||
tracking_checklist-TRACKER_ERROR-desc = แทร็กเกอร์บางตัวของคุณมีปัญหา โปรดทำการรีสตาร์ทแทร็กเกอร์ที่ไฮไลต์ด้วยสีเหลือง
|
||||
tracking_checklist-VRCHAT_SETTINGS = การตั้งค่าใน VRChat
|
||||
tracking_checklist-VRCHAT_SETTINGS-desc = คุณมีการตั้งค่าใน VRChat ที่ไม่ถูกต้อง! ซึ่งอาจส่งผลเสียต่อการจับตำแหน่งของแทร็กเกอร์คุณ
|
||||
tracking_checklist-VRCHAT_SETTINGS-open = ไปยังคำเตือนการตั้งค่า VRChat
|
||||
tracking_checklist-UNASSIGNED_HMD = อุปกรณ์แว่น VR ไม่ได้ถูกกำหนดที่ส่วนหัว
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = ควรระบุอุปกรณ์แว่น VR ให้เป็นแทร็กเกอร์ส่วนหัว
|
||||
tracking_checklist-UNASSIGNED_HMD = เฮดเซ็ท VR ไม่ได้ถูกกำหนดที่ส่วนหัว
|
||||
tracking_checklist-UNASSIGNED_HMD-desc = ควรระบุเฮตเซ็ท VR ให้เป็นแทร็กเกอร์ส่วนหัว
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC = แก้ไขโปรไฟล์เครือข่าย
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-desc =
|
||||
โปรไฟล์เครือข่ายของคุณ ({ $adapters }) ถูกตั้งค่าเป็น สาธารณะ (Public) อยู่ในขณะนี้ ซึ่งไม่แนะนำสำหรับการทำงานที่ถูกต้องของ SlimeVR
|
||||
<PublicFixLink>ดูวิธีการแก้ไขได้ที่นี่</PublicFixLink>
|
||||
tracking_checklist-NETWORK_PROFILE_PUBLIC-open = เปิด Control Panel
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED = ตั้งค่า Stay Aligned
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = บันทึกท่าท่างแบบใน Stay Aligned เพื่อลดค่าดริฟท์
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-desc = บันทึกท่าท่างใน Stay Aligned เพื่อลดการดริฟท์
|
||||
tracking_checklist-STAY_ALIGNED_CONFIGURED-open = เปิดตัวช่วยการตั้งค่า Stay Aligned
|
||||
tracking_checklist-ignore = ละเว้น
|
||||
preview-mocap_mode_soon = โหมด Mocap (เร็ว ๆ นี้™)
|
||||
preview-disable_render = ปิดการแสดงตัวอย่าง
|
||||
preview-disabled_render = ปิดใช้งานการแสดงผล
|
||||
preview-disabled_render = การแสดงตัวอย่างถูกปิด
|
||||
toolbar-mounting_calibration = ตั้งศูนย์การติดตั้ง
|
||||
toolbar-mounting_calibration-default = ร่างกาย
|
||||
toolbar-mounting_calibration-feet = เท้า
|
||||
|
||||
@@ -376,3 +376,6 @@ settings-osc-vrchat-network-address = Ağ adresi
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||
@@ -615,11 +615,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 =
|
||||
@@ -856,3 +851,6 @@ unknown_device-modal-forget = Ігнорувати
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
## Tracking checklist section
|
||||
|
||||
|
||||