Compare commits
121 Commits
v0.15.0-rc
...
snap-seria
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8655fe22bc | ||
|
|
b08e2a0807 | ||
|
|
5f5d96a1c7 | ||
|
|
2bce1af454 | ||
|
|
d45527f72e | ||
|
|
bd3acf1889 | ||
|
|
347fcf503f | ||
|
|
12c3379e9a | ||
|
|
77a871239d | ||
|
|
337d345ded | ||
|
|
34de9c3586 | ||
|
|
cb28221c58 | ||
|
|
64903038e0 | ||
|
|
4cbc6031f8 | ||
|
|
66f619bb4f | ||
|
|
09a0ed153b | ||
|
|
e8fa981225 | ||
|
|
54f9907238 | ||
|
|
8525f85d59 | ||
|
|
7293ddaa90 | ||
|
|
3ec6a61763 | ||
|
|
7874bbca27 | ||
|
|
b978eaf3f1 | ||
|
|
b2817cb3ba | ||
|
|
ab265d1689 | ||
|
|
527c4c7f91 | ||
|
|
7c506a3fe2 | ||
|
|
217dc875d5 | ||
|
|
489052141d | ||
|
|
62553f4227 | ||
|
|
89c18f8488 | ||
|
|
a8a2197f91 | ||
|
|
535f502169 | ||
|
|
bcc4dd4018 | ||
|
|
eebdd61e47 | ||
|
|
b3e2b0f77f | ||
|
|
fbf487c9ad | ||
|
|
c0d23c80e6 | ||
|
|
6b8931699b | ||
|
|
3b41398ef2 | ||
|
|
73ee6f7ced | ||
|
|
c59595a669 | ||
|
|
c85f27fa80 | ||
|
|
1ab4023200 | ||
|
|
50fdd1869e | ||
|
|
d8153fee52 | ||
|
|
d5323fd050 | ||
|
|
84bfc3687e | ||
|
|
dd06e2b28a | ||
|
|
add1e4eb5d | ||
|
|
5a7a650f83 | ||
|
|
0427f16e72 | ||
|
|
89ec689a46 | ||
|
|
4ae5fb7215 | ||
|
|
241179a924 | ||
|
|
ad16d05c42 | ||
|
|
3ef550d8b1 | ||
|
|
26f330c762 | ||
|
|
79eb43fca3 | ||
|
|
712fbc3ee8 | ||
|
|
0add9bad97 | ||
|
|
b308cc8ce3 | ||
|
|
3920654370 | ||
|
|
503637cb0a | ||
|
|
45ff48d9ac | ||
|
|
47b6f0f3c3 | ||
|
|
a6dd914e83 | ||
|
|
7832783388 | ||
|
|
37553ea889 | ||
|
|
419841d9f9 | ||
|
|
a4c14aa23e | ||
|
|
d71879cc4d | ||
|
|
ca14fa05e5 | ||
|
|
4f4c90d129 | ||
|
|
c56d953516 | ||
|
|
b58e9b9074 | ||
|
|
85d227c926 | ||
|
|
b9d97bb2d8 | ||
|
|
4fc09c348a | ||
|
|
795d73dd19 | ||
|
|
01130b858e | ||
|
|
85ea808119 | ||
|
|
44765d5b6e | ||
|
|
853d112737 | ||
|
|
8881746941 | ||
|
|
d3ee82cccc | ||
|
|
947f440600 | ||
|
|
8e887395f1 | ||
|
|
3f42b8ab51 | ||
|
|
52a8e24d9e | ||
|
|
80248e82f9 | ||
|
|
647964fe99 | ||
|
|
010018b400 | ||
|
|
4783eab37c | ||
|
|
f693d562ba | ||
|
|
964b19be01 | ||
|
|
00c768919d | ||
|
|
c9415b2c02 | ||
|
|
93d666a233 | ||
|
|
cc8538a332 | ||
|
|
f9d619f93a | ||
|
|
471714afd0 | ||
|
|
91ce0ed734 | ||
|
|
a35d2a77a2 | ||
|
|
ea31d58fb8 | ||
|
|
e74dee1892 | ||
|
|
d84fc40b23 | ||
|
|
0dd004825d | ||
|
|
9f36444169 | ||
|
|
52509c7950 | ||
|
|
868c441220 | ||
|
|
5ad408f61d | ||
|
|
9b30f9800c | ||
|
|
07e5ef647a | ||
|
|
47909ad46c | ||
|
|
99c92fad9e | ||
|
|
d7861614b7 | ||
|
|
b4a3e9cbd5 | ||
|
|
e58946f622 | ||
|
|
c8532c76c2 | ||
|
|
6f26ea7b50 |
30
.github/workflows/build-gui.yml
vendored
@@ -42,35 +42,46 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-latest, macos-latest]
|
||||
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@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- if: matrix.os == 'ubuntu-22.04'
|
||||
- if: startsWith(matrix.os, 'ubuntu')
|
||||
name: Set up Linux dependencies
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.5.0
|
||||
with:
|
||||
packages: libgtk-3-dev webkit2gtk-4.1 libappindicator3-dev librsvg2-dev patchelf
|
||||
# Increment to invalidate the cache
|
||||
version: 1.0
|
||||
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
|
||||
with:
|
||||
shared-key: "${{ matrix.os }}"
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
@@ -87,23 +98,24 @@ jobs:
|
||||
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: matrix.os == 'windows-latest'
|
||||
- if: startsWith(matrix.os, 'windows')
|
||||
name: Upload a Build Artifact (Windows)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# Artifact name
|
||||
name: SlimeVR-GUI-Windows
|
||||
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: matrix.os == 'ubuntu-22.04'
|
||||
- if: startsWith(matrix.os, 'ubuntu')
|
||||
name: Upload a Build Artifact (Linux)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# Artifact name
|
||||
name: SlimeVR-GUI-Linux
|
||||
name: ${{ format('SlimeVR-GUI-Linux-{0}', env.BUILD_ARCH) }}
|
||||
# A file, directory or wildcard pattern that describes what to upload
|
||||
path: target/release/slimevr
|
||||
|
||||
|
||||
34
.github/workflows/generate-update-manifest.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
# This workflow will build the update manifest for the updater and update a GitHub release
|
||||
|
||||
name: Generate update manifest
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [released]
|
||||
|
||||
jobs:
|
||||
generate-manifest:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22.x'
|
||||
|
||||
- name: Generate update-manifest.json
|
||||
run: |
|
||||
npx @slimevr/update-manifest-generator@latest
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: "update-manifest.json"
|
||||
path: ./update-manifest.json
|
||||
|
||||
- name: Upload update-manifest.json to release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
tag_name: ${{ secrets.UPDATE_MANIFEST_RELEASE_TAG }}
|
||||
files: ./update-manifest.json
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
84
.github/workflows/gradle.yaml
vendored
@@ -29,8 +29,8 @@ jobs:
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: "17"
|
||||
distribution: "adopt"
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
@@ -44,7 +44,6 @@ jobs:
|
||||
- name: Test with Gradle
|
||||
run: ./gradlew test
|
||||
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -59,8 +58,8 @@ jobs:
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: "17"
|
||||
distribution: "adopt"
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
@@ -72,7 +71,7 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# Artifact name
|
||||
name: "SlimeVR-Server" # optional, default is artifact
|
||||
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
|
||||
|
||||
@@ -85,7 +84,6 @@ jobs:
|
||||
files: |
|
||||
server/desktop/build/libs/slimevr.jar
|
||||
|
||||
|
||||
bundle-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -99,8 +97,8 @@ jobs:
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: "17"
|
||||
distribution: "adopt"
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
@@ -127,7 +125,7 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# Artifact name
|
||||
name: "SlimeVR-Android" # optional, default is artifact
|
||||
name: 'SlimeVR-Android' # optional, default is artifact
|
||||
# A file, directory or wildcard pattern that describes what to upload
|
||||
path: server/android/build/outputs/apk/*
|
||||
|
||||
@@ -145,11 +143,16 @@ jobs:
|
||||
files: |
|
||||
./SlimeVR-android.apk
|
||||
|
||||
|
||||
bundle-linux:
|
||||
runs-on: ubuntu-24.04
|
||||
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@v4
|
||||
with:
|
||||
@@ -157,7 +160,7 @@ jobs:
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: "SlimeVR-Server"
|
||||
name: 'SlimeVR-Server'
|
||||
path: server/desktop/build/libs/
|
||||
|
||||
- name: Set up Linux dependencies
|
||||
@@ -166,7 +169,7 @@ jobs:
|
||||
packages: |
|
||||
build-essential curl wget file libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev
|
||||
# Increment to invalidate the cache
|
||||
version: 2.0
|
||||
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
|
||||
@@ -184,8 +187,6 @@ jobs:
|
||||
|
||||
- name: Cache cargo dependencies
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: "ubuntu-22.04"
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
@@ -207,31 +208,32 @@ jobs:
|
||||
tar czf slimevr-gui-dist.tar.gz -C gui/dist/ .
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
with:
|
||||
name: SlimeVR-GUI-Dist
|
||||
path: ./slimevr-gui-dist.tar.gz
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: SlimeVR-GUI-Deb
|
||||
name: ${{ format('SlimeVR-GUI-Deb-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/deb/slimevr*.deb
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: SlimeVR-GUI-AppImage
|
||||
name: ${{ format('SlimeVR-GUI-AppImage-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/appimage/slimevr*.AppImage
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: SlimeVR-GUI-RPM
|
||||
path: target/release/bundle/rpm/slimevr*.rpm
|
||||
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-amd64.appimage
|
||||
cp target/release/bundle/deb/slimevr*.deb ./SlimeVR-amd64.deb
|
||||
cp target/release/bundle/rpm/slimevr*.rpm ./SlimeVR-amd64.rpm
|
||||
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
|
||||
@@ -241,10 +243,9 @@ jobs:
|
||||
generate_release_notes: true
|
||||
files: |
|
||||
./slimevr-gui-dist.tar.gz
|
||||
./SlimeVR-amd64.appimage
|
||||
./SlimeVR-amd64.deb
|
||||
./SlimeVR-amd64.rpm
|
||||
|
||||
./SlimeVR-*.appimage
|
||||
./SlimeVR-*.deb
|
||||
./SlimeVR-*.rpm
|
||||
|
||||
bundle-mac:
|
||||
runs-on: macos-latest
|
||||
@@ -257,13 +258,11 @@ jobs:
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: "SlimeVR-Server"
|
||||
name: 'SlimeVR-Server'
|
||||
path: server/desktop/build/libs/
|
||||
|
||||
- name: Cache cargo dependencies
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: "macos-latest"
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
@@ -280,6 +279,7 @@ jobs:
|
||||
- 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
|
||||
@@ -321,11 +321,16 @@ jobs:
|
||||
files: |
|
||||
./SlimeVR-mac.dmg
|
||||
|
||||
|
||||
bundle-windows:
|
||||
runs-on: windows-latest
|
||||
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@v4
|
||||
with:
|
||||
@@ -333,13 +338,16 @@ jobs:
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: "SlimeVR-Server"
|
||||
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
|
||||
with:
|
||||
shared-key: "windows-latest"
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
@@ -366,11 +374,11 @@ jobs:
|
||||
cp server/desktop/build/libs/slimevr.jar ./SlimeVR/slimevr.jar
|
||||
cp server/core/resources/* ./SlimeVR/
|
||||
cp target/release/slimevr.exe ./SlimeVR/
|
||||
7z a -tzip SlimeVR-win64.zip ./SlimeVR/
|
||||
7z a -tzip "SlimeVR-$BUILD_ARCH.zip" ./SlimeVR/
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: SlimeVR-GUI-Windows
|
||||
name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }}
|
||||
path: ./SlimeVR*.zip
|
||||
|
||||
- name: Upload to draft release
|
||||
@@ -379,4 +387,4 @@ jobs:
|
||||
with:
|
||||
draft: true
|
||||
generate_release_notes: true
|
||||
files: ./SlimeVR-win64.zip
|
||||
files: ./SlimeVR-*.zip
|
||||
|
||||
@@ -1 +1 @@
|
||||
18.12.1
|
||||
22.17.0
|
||||
|
||||
@@ -105,6 +105,7 @@ When touching SolarXR:
|
||||
- After editing files, you should run `cd solarxr-protocol`, then either run
|
||||
`./generate-flatbuffer.ps1` (Windows) or `./generate-flatbuffer.sh` (Linux/OSX)
|
||||
- Make sure to commit your changes inside the submodule.
|
||||
- To make sure the gui use the latest generated code, run `pnpm i`.
|
||||
|
||||
## Code Licensing
|
||||
SlimeVR uses dual MIT and Apache-2.0 license. Be sure that any code that you reference,
|
||||
|
||||
1482
Cargo.lock
generated
683
flake.lock
generated
@@ -2,14 +2,15 @@
|
||||
"nodes": {
|
||||
"cachix": {
|
||||
"inputs": {
|
||||
"devenv": "devenv_2",
|
||||
"devenv": [
|
||||
"devenv"
|
||||
],
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
"devenv"
|
||||
],
|
||||
"git-hooks": [
|
||||
"devenv",
|
||||
"pre-commit-hooks"
|
||||
"git-hooks"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
@@ -17,51 +18,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726520618,
|
||||
"narHash": "sha256-jOsaBmJ/EtX5t/vbylCdS7pWYcKGmWOKg4QKUzKr6dA=",
|
||||
"lastModified": 1748883665,
|
||||
"narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=",
|
||||
"owner": "cachix",
|
||||
"repo": "cachix",
|
||||
"rev": "695525f9086542dfb09fde0871dbf4174abbf634",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "cachix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cachix_2": {
|
||||
"inputs": {
|
||||
"devenv": "devenv_3",
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"pre-commit-hooks"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712055811,
|
||||
"narHash": "sha256-7FcfMm5A/f02yyzuavJe06zLa9hcMHsagE28ADcmQvk=",
|
||||
"owner": "cachix",
|
||||
"repo": "cachix",
|
||||
"rev": "02e38da89851ec7fec3356a5c04bc8349cae0e30",
|
||||
"rev": "f707778d902af4d62d8dd92c269f8e70de09acbe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "latest",
|
||||
"repo": "cachix",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -69,92 +35,23 @@
|
||||
"devenv": {
|
||||
"inputs": {
|
||||
"cachix": "cachix",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nix": "nix_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730213537,
|
||||
"narHash": "sha256-bWoeNdFISbGK8M0Xw4edmManGCkJ1oNqbfNY0Hlv9Vc=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "5c046eeafd13f7a2b9fc733f70ea17571b24410f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devenv_2": {
|
||||
"inputs": {
|
||||
"cachix": "cachix_2",
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"flake-compat"
|
||||
],
|
||||
"nix": "nix_2",
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"git-hooks"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723156315,
|
||||
"narHash": "sha256-0JrfahRMJ37Rf1i0iOOn+8Z4CLvbcGNwa2ChOAVrp/8=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "ff5eb4f2accbcda963af67f1a1159e3f6c7f5f91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devenv_3": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"cachix",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-compat": "flake-compat",
|
||||
"git-hooks": "git-hooks",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"poetry2nix": "poetry2nix",
|
||||
"pre-commit-hooks": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"cachix",
|
||||
"pre-commit-hooks"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708704632,
|
||||
"narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=",
|
||||
"lastModified": 1750800495,
|
||||
"narHash": "sha256-wBTGFNCx3Gr3BkNkEoFrKx9+d7otSdQesCDCPGDKZHk=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196",
|
||||
"rev": "b33ab3610c084a7e3fabc5eefaeb437449f1efe7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "python-rewrite",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -167,11 +64,11 @@
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730270567,
|
||||
"narHash": "sha256-ZTBMwsY0i5zTT6rejotc9wqcSGkEgAeejXktJBo9Z5M=",
|
||||
"lastModified": 1750833544,
|
||||
"narHash": "sha256-e5W27mfPGiM35qr0DjTUzLHP4ET2MbvRc4HJHScw/ko=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "6535bb2a77a3bec73cc5b2d2ff63da8a479e32bd",
|
||||
"rev": "c3940d9ff4d37e965e5841149367234c2aad1ab6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -183,27 +80,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -221,11 +102,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712014858,
|
||||
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -239,11 +120,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727826117,
|
||||
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -252,57 +133,6 @@
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
@@ -317,17 +147,41 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749636823,
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"pre-commit-hooks",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
@@ -339,22 +193,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libgit2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1697646580,
|
||||
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mk-shell-bin": {
|
||||
"locked": {
|
||||
"lastModified": 1677004959,
|
||||
@@ -371,142 +209,62 @@
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712911606,
|
||||
"narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=",
|
||||
"owner": "domenkozar",
|
||||
"repo": "nix",
|
||||
"rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "domenkozar",
|
||||
"ref": "devenv-2.21",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"poetry2nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1688870561,
|
||||
"narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "165b1650b753316aa7f1787f3005a8d2da0f5301",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix2container": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729339656,
|
||||
"narHash": "sha256-smV7HQ/OqZeRguQxNjsb3uQDwm0p6zKDbSDbPCav/oY=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "cc96df7c3747c61c584d757cfc083922b4f4b33e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-regression": "nixpkgs-regression_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712911606,
|
||||
"narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=",
|
||||
"owner": "domenkozar",
|
||||
"repo": "nix",
|
||||
"rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "domenkozar",
|
||||
"ref": "devenv-2.21",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix_3": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-parts": "flake-parts",
|
||||
"libgit2": "libgit2",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||
"nixpkgs-regression": "nixpkgs-regression_3",
|
||||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
"git-hooks-nix": [
|
||||
"devenv",
|
||||
"git-hooks"
|
||||
],
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-23-11": [
|
||||
"devenv"
|
||||
],
|
||||
"nixpkgs-regression": [
|
||||
"devenv"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727438425,
|
||||
"narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=",
|
||||
"owner": "domenkozar",
|
||||
"lastModified": 1750117611,
|
||||
"narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=",
|
||||
"owner": "cachix",
|
||||
"repo": "nix",
|
||||
"rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546",
|
||||
"rev": "9e4fc95c388e2223d47da865503dee20d179776a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "domenkozar",
|
||||
"ref": "devenv-2.24",
|
||||
"owner": "cachix",
|
||||
"ref": "devenv-2.30",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix2container": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749158376,
|
||||
"narHash": "sha256-uirStFNxauh0lxzBowcp28X+Sq7JgsBIDnbwbAfZwf8=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "0f8974c58755dba441df03598eefd1e1cd50e341",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixgl": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_4",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
@@ -527,135 +285,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1692808169,
|
||||
"narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=",
|
||||
"lastModified": 1747179050,
|
||||
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9201b5ff357e781bf014d0330d18555695df7ba8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-23-11": {
|
||||
"locked": {
|
||||
"lastModified": 1717159533,
|
||||
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1727825735,
|
||||
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression_2": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression_3": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1720386169,
|
||||
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1717432640,
|
||||
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1729880355,
|
||||
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
|
||||
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -665,93 +299,34 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"poetry2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"cachix",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1692876271,
|
||||
"narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=",
|
||||
"lastModified": 1748740939,
|
||||
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"nix"
|
||||
],
|
||||
"flake-utils": "flake-utils_2",
|
||||
"gitignore": [
|
||||
"devenv",
|
||||
"nix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"devenv",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1712897695,
|
||||
"narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8",
|
||||
"lastModified": 1750741721,
|
||||
"narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4b1164c3215f018c4442463a27689d973cffd750",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726745158,
|
||||
"narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -763,17 +338,17 @@
|
||||
"mk-shell-bin": "mk-shell-bin",
|
||||
"nix2container": "nix2container",
|
||||
"nixgl": "nixgl",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1730197931,
|
||||
"narHash": "sha256-MjYc80pHGrD6TYMHHpXniCW0egVyHiDR23xAh7MN7Ww=",
|
||||
"lastModified": 1750788942,
|
||||
"narHash": "sha256-bBSdUlEw/7xh66rtMEDg39xQUNN2VaDJIbRPIwhpFYk=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "468b5cd43023d9771996b06ab7215997895a6059",
|
||||
"rev": "c68c8a81a7d2979778ae1e8ba024beacb4fff6b6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -782,36 +357,6 @@
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
@@ -78,7 +78,6 @@
|
||||
cacert
|
||||
])
|
||||
++ lib.optionals pkgs.stdenv.isLinux (with pkgs; [
|
||||
appimagekit
|
||||
atk
|
||||
cairo
|
||||
dbus
|
||||
@@ -122,13 +121,15 @@
|
||||
languages.javascript = {
|
||||
enable = true;
|
||||
corepack.enable = true;
|
||||
pnpm.enable = true;
|
||||
npm.enable = true;
|
||||
};
|
||||
|
||||
languages.rust = {
|
||||
enable = true;
|
||||
toolchain = fenixpkgs.fromToolchainName {
|
||||
name = rust_toolchain.toolchain.channel;
|
||||
sha256 = "sha256-VZZnlyP69+Y3crrLHQyJirqlHrTtGTsyiSnZB8jEvVo=";
|
||||
sha256 = "sha256-yMuSb5eQPO/bHv+Bcf/US8LVMbf/G/0MSfiPwBhiPpk=";
|
||||
};
|
||||
components = rust_toolchain.toolchain.components;
|
||||
};
|
||||
|
||||
@@ -19,9 +19,12 @@
|
||||
"@tauri-apps/api": "^2.0.2",
|
||||
"@tauri-apps/plugin-dialog": "^2.0.0",
|
||||
"@tauri-apps/plugin-fs": "^2.0.0",
|
||||
"@tauri-apps/plugin-http": "^2.5.0",
|
||||
"@tauri-apps/plugin-os": "^2.0.0",
|
||||
"@tauri-apps/plugin-shell": "^2.0.0",
|
||||
"@tauri-apps/plugin-store": "^2.0.0",
|
||||
"@tweenjs/tween.js": "^25.0.0",
|
||||
"@twemoji/svg": "^15.0.0",
|
||||
"browser-fs-access": "^0.35.0",
|
||||
"classnames": "^2.5.1",
|
||||
"flatbuffers": "22.10.26",
|
||||
@@ -98,4 +101,4 @@
|
||||
"typescript-eslint": "^8.8.0",
|
||||
"vite": "^5.4.8"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,13 @@
|
||||
|
||||
## Websocket (server) status
|
||||
|
||||
websocket-connecting = يتم التوصيل بالسيرفر
|
||||
websocket-connection_lost = انقطع الاتصال بالسيرفر. يتم إعادة التوصيل...
|
||||
websocket-connecting = جاري التحميل
|
||||
websocket-connection_lost = تعطل الخادم!
|
||||
websocket-connection_lost-desc = يبدو أن خادم SlimeVR تعطل. تحقق من السجلات وأعد تشغيل البرنامج
|
||||
websocket-timedout = تعذر الاتصال بالخادم
|
||||
websocket-timedout-desc = يبدو أن خادم SlimeVR قد تعطل أو انتهت مهلته. تحقق من السجلات وأعد تشغيل البرنامج
|
||||
websocket-error-close = الخروج من SlimeVR
|
||||
websocket-error-logs = افتح مجلد السجلات
|
||||
|
||||
## Update notification
|
||||
|
||||
@@ -49,12 +54,72 @@ body_part-LEFT_HAND = اليد اليسرى
|
||||
body_part-LEFT_UPPER_LEG = الفخذ الأيسر
|
||||
body_part-LEFT_LOWER_LEG = الكاحل الأيسر
|
||||
body_part-LEFT_FOOT = القدم اليسرى
|
||||
body_part-LEFT_THUMB_METACARPAL = عظم مشط الإبهام الأيسر
|
||||
body_part-LEFT_THUMB_PROXIMAL = الإبهام الأيسر القريب
|
||||
body_part-LEFT_THUMB_DISTAL = الإبهام الأيسر البعيد
|
||||
body_part-LEFT_INDEX_PROXIMAL = السبابة اليسرى القريبة
|
||||
body_part-LEFT_INDEX_INTERMEDIATE = السبابة اليسرى المتوسطة
|
||||
body_part-LEFT_INDEX_DISTAL = السبابة اليسرى البعيدة
|
||||
body_part-LEFT_MIDDLE_PROXIMAL = الجزء الأوسط الأيسر القريب
|
||||
body_part-LEFT_MIDDLE_INTERMEDIATE = الوسط الأيسر المتوسط
|
||||
body_part-LEFT_MIDDLE_DISTAL = الجزء الأوسط الأيسر البعيد
|
||||
body_part-LEFT_RING_PROXIMAL = الحلقة اليسرى القريبة
|
||||
body_part-LEFT_RING_INTERMEDIATE = الحلقة اليسرى المتوسطة
|
||||
body_part-LEFT_RING_DISTAL = الحلقة اليسرى البعيدة
|
||||
body_part-LEFT_LITTLE_PROXIMAL = الجزء الأيسر الصغير القريب
|
||||
body_part-LEFT_LITTLE_INTERMEDIATE = اليسار الصغير المتوسط
|
||||
body_part-LEFT_LITTLE_DISTAL = الجزء البعيد الأيسر الصغير
|
||||
body_part-RIGHT_THUMB_METACARPAL = مشط الإبهام الأيمن
|
||||
body_part-RIGHT_THUMB_PROXIMAL = الإبهام الأيمن القريب
|
||||
body_part-RIGHT_THUMB_DISTAL = الإبهام الأيمن البعيد
|
||||
body_part-RIGHT_INDEX_PROXIMAL = السبابة اليمنى القريبة
|
||||
body_part-RIGHT_INDEX_INTERMEDIATE = السبابة اليمنى المتوسطة
|
||||
body_part-RIGHT_INDEX_DISTAL = السبابة اليمنى البعيدة
|
||||
body_part-RIGHT_MIDDLE_PROXIMAL = منتصف اليمين القريب
|
||||
body_part-RIGHT_MIDDLE_INTERMEDIATE = الوسط الأيمن المتوسط
|
||||
body_part-RIGHT_MIDDLE_DISTAL = منتصف اليمين البعيد
|
||||
body_part-RIGHT_RING_PROXIMAL = الحلقة اليمنى القريبة
|
||||
body_part-RIGHT_RING_INTERMEDIATE = الحلقة اليمنى المتوسطة
|
||||
body_part-RIGHT_RING_DISTAL = الحلقة اليمنى البعيدة
|
||||
body_part-RIGHT_LITTLE_PROXIMAL = الجزء القريب الأيمن الصغير
|
||||
body_part-RIGHT_LITTLE_INTERMEDIATE = المتوسط الصغير الأيمن
|
||||
body_part-RIGHT_LITTLE_DISTAL = الجزء البعيد الصغير الأيمن
|
||||
|
||||
## BoardType
|
||||
|
||||
board_type-UNKNOWN = مجهول
|
||||
board_type-NODEMCU = NodeMCU
|
||||
board_type-CUSTOM = لوحة مخصصة
|
||||
board_type-WROOM32 = WROOM32
|
||||
board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = سلايم في آر
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-WRANGLER = رانجلر جويكونز
|
||||
board_type-MOCOPI = سوني موكوبي (Mocopi)
|
||||
board_type-WEMOSWROOM02 = Wemos Wroom-02 D1 Mini
|
||||
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 تطوير IMU
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = غير محدد
|
||||
skeleton_bone-HEAD = إمالة الرأس
|
||||
skeleton_bone-HEAD-desc =
|
||||
هذه هي المسافة من سماعة الرأس إلى منتصف رأسك.
|
||||
لضبط المسافة ، هز رأسك من اليسار إلى اليمين كما لو كنت لا توافق وقم بتعديله
|
||||
حتى أي حركة في أجهزة التتبع الأخرى لا تكاد تذكر.
|
||||
skeleton_bone-NECK = طول العنق
|
||||
skeleton_bone-NECK-desc =
|
||||
هذه هي المسافة من منتصف رأسك إلى قاعدة رقبتك.
|
||||
لضبطها ، حرك رأسك لأعلى ولأسفل كما لو كنت تومئ رأسك أو تميل رأسك
|
||||
إلى اليسار واليمين وقم بتعديله حتى تصبح أي حركة في أجهزة التتبع الأخرى ضئيلة.
|
||||
skeleton_bone-torso_group = طول الجذع
|
||||
skeleton_bone-UPPER_CHEST = طول أعلى الصدر
|
||||
skeleton_bone-CHEST_OFFSET = درجة تشريد الصدر
|
||||
@@ -81,6 +146,14 @@ skeleton_bone-ELBOW_OFFSET = درجة تشريد الكوع
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = إعادة تعيين جميع النسب
|
||||
reset-reset_all_warning-v2 =
|
||||
<b>تحذير:</b> ستتم إعادة تعيين النسب إلى الإعدادات الافتراضية التي تم تحجيمها إلى الارتفاع الذي تم تكوينه.
|
||||
هل أنت متأكد من أنك تريد القيام بذلك؟
|
||||
reset-reset_all_warning-reset = إعادة تعيين النسب
|
||||
reset-reset_all_warning-cancel = إلغاء
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>تحذير:</b> لم يتم ضبط طولك، وسيتم إعادة تعيين نسبك إلى الإعدادات الافتراضية مع الارتفاع الافتراضي.
|
||||
هل أنت متأكد من أنك تريد القيام بذلك؟
|
||||
reset-full = اعاده تعيين
|
||||
reset-mounting = إعادة تعيين التركيب
|
||||
reset-yaw = إعادة تعيين الانعراج
|
||||
@@ -142,9 +215,12 @@ widget-developer_mode-more_info = المزيد
|
||||
## Widget: IMU Visualizer
|
||||
|
||||
widget-imu_visualizer = دوران
|
||||
widget-imu_visualizer-preview = عرض
|
||||
widget-imu_visualizer-hide = إخفاء
|
||||
widget-imu_visualizer-rotation_raw = صافي
|
||||
widget-imu_visualizer-rotation_preview = عرض مسبق
|
||||
widget-imu_visualizer-rotation_hide = إخفاء
|
||||
widget-imu_visualizer-acceleration = التسارع
|
||||
widget-imu_visualizer-position = الموضع
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -196,9 +272,17 @@ tracker-infos-url = عنوان URL لجهاز التعقب
|
||||
tracker-infos-version = إصدار البرنامج الثابت
|
||||
tracker-infos-hardware_rev = مراجعة الأجهزة
|
||||
tracker-infos-hardware_identifier = معرف الجهاز
|
||||
tracker-infos-data_support = دعم البيانات
|
||||
tracker-infos-imu = مستشعر IMU
|
||||
tracker-infos-board_type = اللوحة الرئيسية
|
||||
tracker-infos-network_version = نسخة البروتوكول
|
||||
tracker-infos-magnetometer = المقياس المغناطيسي
|
||||
tracker-infos-magnetometer-status-v1 =
|
||||
{ $status ->
|
||||
[DISABLED] ملغي
|
||||
[ENABLED] فعال
|
||||
*[NOT_SUPPORTED] غير مدعوم
|
||||
}
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -213,14 +297,27 @@ tracker-settings-mounting_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 =
|
||||
هل يجب أن يستخدم هذا المتتبع مقياس المغناطيسية لتقليل الانجراف عند السماح باستخدام المقياس المغناطيسي؟ <b>من فضلا لا تغلق جهاز التتبع الخاص بك أثناء تبديل هذا!</b>
|
||||
|
||||
تحتاج إلى السماح باستخدام مقياس المغناطيسية أولا ، <magSetting>انقر هنا للذهاب إلى الإعداد</magSetting>.
|
||||
tracker-settings-use_mag-label = السماح بالمقياس المغناطيسي
|
||||
# The .<name> means it's an attribute and it's related to the top key.
|
||||
# In this case that is the settings for the assignment section.
|
||||
tracker-settings-name_section = اسم جهاز التعقب
|
||||
tracker-settings-name_section-description = أعطها لقب لطيف :)
|
||||
tracker-settings-name_section-placeholder = ساق نايتي بيست اليسرى
|
||||
tracker-settings-name_section-label = اسم جهاز التعقب
|
||||
tracker-settings-forget = انسي جهاز التعقب
|
||||
tracker-settings-forget-description = يزيل جهاز التعقب من خادم SlimeVR ويمنعه من الاتصال به حتى يتم إعادة تشغيل الخادم. لن تضيع تكوين جهاز التعقب.
|
||||
tracker-settings-forget-label = ننسى جهاز التعقب
|
||||
tracker-settings-update-unavailable = لا يمكن تحديثه (اصنعها بنفسك)
|
||||
tracker-settings-update-up_to_date = حديث
|
||||
tracker-settings-update-available = { $versionName } متاح الآن
|
||||
tracker-settings-update = التحديث الآن
|
||||
tracker-settings-update-title = إصدار البرنامج الثابت
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -296,6 +393,9 @@ settings-sidebar-utils = الأدوات المساعدة
|
||||
settings-sidebar-serial = وحدة التحكم التسلسلية
|
||||
settings-sidebar-appearance = مظهر
|
||||
settings-sidebar-notifications = إشعارات
|
||||
settings-sidebar-behavior = سلوك
|
||||
settings-sidebar-firmware-tool = أداة برامج الجهاز المصنوع بنفسك
|
||||
settings-sidebar-advanced = متقدم
|
||||
|
||||
## SteamVR settings
|
||||
|
||||
@@ -310,10 +410,14 @@ settings-general-steamvr-description =
|
||||
مفيد فقط للألعاب أو التطبيقات التي تدعم أجهزة تعقب معينة.
|
||||
settings-general-steamvr-trackers-waist = الخصر
|
||||
settings-general-steamvr-trackers-chest = الصدر
|
||||
settings-general-steamvr-trackers-feet = القدمين
|
||||
settings-general-steamvr-trackers-knees = الركبتين
|
||||
settings-general-steamvr-trackers-elbows = الكوعين
|
||||
settings-general-steamvr-trackers-hands = اليدين
|
||||
settings-general-steamvr-trackers-left_foot = القدم اليسرى
|
||||
settings-general-steamvr-trackers-right_foot = القدم اليمنى
|
||||
settings-general-steamvr-trackers-left_knee = الركبة اليسرى
|
||||
settings-general-steamvr-trackers-right_knee = الركبة اليمنى
|
||||
settings-general-steamvr-trackers-left_elbow = الكوع الأيسر
|
||||
settings-general-steamvr-trackers-right_elbow = الكوع الأيمن
|
||||
settings-general-steamvr-trackers-left_hand = اليد اليسرى
|
||||
settings-general-steamvr-trackers-right_hand = اليد اليمنى
|
||||
settings-general-steamvr-trackers-tracker_toggling = تعيين جهاز التعقب تلقائي
|
||||
settings-general-steamvr-trackers-tracker_toggling-description = يتعامل تلقائيا مع تبديل أجهزة تعقب SteamVR أو إيقاف تشغيلها اعتمادا على مهام التعقب الحالية
|
||||
settings-general-steamvr-trackers-tracker_toggling-label = تعيين جهاز التعقب التلقائي
|
||||
@@ -339,14 +443,39 @@ settings-general-tracker_mechanics-filtering-type-smoothing-description = ينع
|
||||
settings-general-tracker_mechanics-filtering-type-prediction = التنبؤ
|
||||
settings-general-tracker_mechanics-filtering-type-prediction-description = يقلل من وقت الإستجابة ويجعل الحركات أكثر سرعة ، ولكنه قد يزيد من التوتر.
|
||||
settings-general-tracker_mechanics-filtering-amount = المبلغ
|
||||
settings-general-tracker_mechanics-yaw-reset-smooth-time = إعادة ضبط الانعراج على نحو سلس (يتعطل التنعيم 0 ثوان)
|
||||
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 = التنبؤ بتعويض الانحراف
|
||||
# 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_warning =
|
||||
<b>تحذير:</b> استخدم تعويض الانحراف فقط إذا كنت بحاجة إلى إعادة الضبط
|
||||
في كثير من الأحيان (كل ~ 5-10 دقائق).
|
||||
|
||||
تتضمن بعض وحدات IMU المعرضة لإعادة الضبط المتكرر ما يلي:
|
||||
Joy-Cons و owoTrack و MPUs (بدون برامج ثابتة حديثة).
|
||||
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-description =
|
||||
يحفظ معايرة إعادة تعيين التثبيت التلقائي لأجهزة التتبع بين عمليات إعادة التشغيل. مفيد
|
||||
عند ارتداء بدلة حيث لا تتحرك المتتبعات بين الجلسات. <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 = استخدم المقياس المغناطيسي على أجهزة التعقب
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -370,9 +499,17 @@ settings-general-fk_settings-leg_tweak-foot_plant-description = تثبيت اص
|
||||
settings-general-fk_settings-leg_fk = تعقب الساق
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = تمكين إعادة ضبط تركيب القدمين عن طريق المشي على رؤوس الأصابع.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = إعادة تعيين تركيب القدمين
|
||||
settings-general-fk_settings-enforce_joint_constraints = حدود الهيكل العظمي
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = فرض القيود
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = منع المفاصل من الدوران إلى ما بعد الحد الأقصى
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = التصحيح مع قيود
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = تصحيح دوران المفاصل عندما تتجاوز حدودها
|
||||
settings-general-fk_settings-arm_fk = تعقب الذراع
|
||||
settings-general-fk_settings-arm_fk-description = تغيير طريقة تعقب الذراعين.
|
||||
settings-general-fk_settings-arm_fk-force_arms = إجبار الذراعين من ايتش أم دي
|
||||
settings-general-fk_settings-reset_settings = إعادة تعيين الإعدادات
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch-description = أعد تعيين درجة جهاز الرأس (الدوران الرأسي) عند إجراء إعادة تعيين كاملة. مفيد في حالة ارتداء جهاز الرأس على الجبهة ل VTubing أو mocap. لا تقم بتمكين لVR.
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch = إعادة تعيين درجة جهاز الرأس
|
||||
settings-general-fk_settings-arm_fk-reset_mode-description = قم بتغيير وضع الذراع المتوقع لإعادة ضبط المتصاعد.
|
||||
settings-general-fk_settings-arm_fk-back = العودة
|
||||
settings-general-fk_settings-arm_fk-back-description = الوضع الافتراضي، مع وضع الذراعين العلويين إلى الخلف والساعدين للأمام.
|
||||
@@ -398,9 +535,6 @@ settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = مت
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = متوسط انحراف الركبتين ولفة مع الكاحلين
|
||||
settings-general-fk_settings-self_localization-title = وضع Mocap
|
||||
settings-general-fk_settings-self_localization-description = يسمح وضع Mocap للهيكل العظمي بتعقب موضعه تقريبا بدون سماعة رأس أو أجهزة تعقب أخرى. لاحظ أن هذا يتطلب أجهزة تعقب القدمين والرأس للعمل ولا تزال تجريبية.
|
||||
settings-general-fk_settings-vive_emulation-title = محاكاة فايف
|
||||
settings-general-fk_settings-vive_emulation-description = محاكاة مشاكل تعقب الخصر التي تعاني منها أجهزة تعقب فايف. هذه مزحة وتجعل التتبع أسوأ.
|
||||
settings-general-fk_settings-vive_emulation-label = تمكين محاكاة فايف
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -449,6 +583,9 @@ settings-general-interface-dev_mode = وضع المطوّر
|
||||
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
|
||||
settings-general-interface-dev_mode-label = وضع المطوّر
|
||||
settings-general-interface-theme = موضوع اللون
|
||||
settings-general-interface-show-navbar-onboarding = إظهار "{ navbar-onboarding }" على قائمة التنقل
|
||||
settings-general-interface-show-navbar-onboarding-description = يغير هذا إذا ظهر الزر "{ navbar-onboarding }" على قائمة التنقل.
|
||||
settings-general-interface-show-navbar-onboarding-label = إظهار "{ navbar-onboarding }"
|
||||
settings-general-interface-lang = اختر اللغة
|
||||
settings-general-interface-lang-description = قم بتغيير اللغة الافتراضية التي تريد استخدامها.
|
||||
settings-general-interface-lang-placeholder = اختر اللغة التي تريد استخدامها
|
||||
@@ -460,6 +597,9 @@ settings-interface-appearance-font-os_font = خط نظام التشغيل
|
||||
settings-interface-appearance-font-slime_font = الخط الافتراضي
|
||||
settings-interface-appearance-font_size = قياس الخط الأساسي
|
||||
settings-interface-appearance-font_size-description = يؤثر هذا على حجم خط الواجهة بأكملها باستثناء لوحة الإعدادات هذه.
|
||||
settings-interface-appearance-decorations = استخدم الزخارف الأصلية للنظام
|
||||
settings-interface-appearance-decorations-description = لن يؤدي هذا إلى عرض الشريط الأعلى للواجهة وسيستخدم نظام التشغيل بدلا من ذلك.
|
||||
settings-interface-appearance-decorations-label = استخدم الزخارف الأصلية
|
||||
|
||||
## Notification settings
|
||||
|
||||
@@ -474,9 +614,29 @@ settings-general-interface-feedback_sound-volume = حجم صوت ردود الف
|
||||
settings-general-interface-connected_trackers_warning = تحذير عن أجهزة التعقب المتصلة
|
||||
settings-general-interface-connected_trackers_warning-description = سيعرض هذا الخيار نافذة كل مرة تحاول فيها الخروج من SlimeVR أثناء وجود جهاز أو أكثر من أجهزة التعقب المتصلة. سيذكرك بإيقاف تشغيل أجهزة التعقب عند الانتهاء للحفاظ على عمر البطارية.
|
||||
settings-general-interface-connected_trackers_warning-label = تحذير عن أجهزة التعقب المتصلة عند الخروج
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = السلوك
|
||||
settings-general-interface-dev_mode = وضع المطوّر
|
||||
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
|
||||
settings-general-interface-dev_mode-label = وضع المطوّر
|
||||
settings-general-interface-use_tray = تصغير إلى علبة النظام
|
||||
settings-general-interface-use_tray-description = يتيح لك إغلاق النافذة دون إغلاق خادم SlimeVR حتى تتمكن من الاستمرار في استخدامه دون إزعاجك من واجهة المستخدم الرسومية.
|
||||
settings-general-interface-use_tray-label = تصغير إلى علبة النظام
|
||||
settings-general-interface-discord_presence = مشاركة النشاط على Discord
|
||||
settings-general-interface-discord_presence-description = يخبر عميل Discord الخاص بك أنك تستخدم SlimeVR جنبا إلى جنب مع عدد أجهزة تعقب IMU التي تستخدمها.
|
||||
settings-general-interface-discord_presence-label = مشاركة النشاط على Discord
|
||||
settings-general-interface-discord_presence-message =
|
||||
{ $amount ->
|
||||
[0] صفر
|
||||
[zero] صفر
|
||||
[one] واحد
|
||||
[two] اثنان
|
||||
[few] قليل
|
||||
[many] كثيرة
|
||||
*[other] أخرى
|
||||
}
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -528,15 +688,10 @@ settings-osc-router-network-address-placeholder = عنوان آي بي في 4
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = أجهزة تعقب "في ار تشات أوه أس سي"
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description =
|
||||
قم بتغيير الإعدادات الخاصة ب في ار تشات لتلقي بيانات ايتش أم دي وإرسالها
|
||||
بيانات أجهزة تعقب لتعقب الجسم (يعمل على كوست مستقل).
|
||||
settings-osc-vrchat-enable = تمكين
|
||||
settings-osc-vrchat-enable-description = بتبديل إرسال واستقبال البيانات.
|
||||
settings-osc-vrchat-enable-label = تمكين
|
||||
settings-osc-vrchat-network = منافذ الشبكة
|
||||
settings-osc-vrchat-network-description = قم بتعيين المنافذ للاستماع وإرسال البيانات إلى في ار تشات
|
||||
settings-osc-vrchat-network-port_in =
|
||||
.label = منفذ الدخول
|
||||
.placeholder = منفذ الدخول (الإفتراضي: 9001)
|
||||
@@ -544,7 +699,6 @@ settings-osc-vrchat-network-port_out =
|
||||
.label = منفذ الخروج
|
||||
.placeholder = منفذ الخروج (الإفتراضي: 9000)
|
||||
settings-osc-vrchat-network-address = عنوان الشبكة
|
||||
settings-osc-vrchat-network-address-description = اختر العنوان الذي تريد إرسال البيانات إلى في ار تشات (تحقق من إعدادات واي فاي على جهازك)
|
||||
settings-osc-vrchat-network-address-placeholder = عنوان آي بي الخاص بفي ار تشات
|
||||
settings-osc-vrchat-network-trackers = أجهزة التعقب
|
||||
settings-osc-vrchat-network-trackers-description = تبديل إرسال أجهزة تتبع محددة عبر أوه أس سي.
|
||||
@@ -577,17 +731,14 @@ settings-osc-vmc-network-address-description = قم بتعيين العنوان
|
||||
settings-osc-vmc-network-address-placeholder = عنوان آي بي في 4
|
||||
settings-osc-vmc-vrm = نموذج في ار إم
|
||||
settings-osc-vmc-vrm-description = قم بتحميل نموذج في ار إم للسماح بتركيز الرأس وتمكين توافق أعلى مع تطبيقات الأخرى
|
||||
settings-osc-vmc-vrm-model_unloaded = لم يتم تحميل أي نموذج
|
||||
settings-osc-vmc-vrm-model_loaded =
|
||||
{ $titled ->
|
||||
[true] تحميل النموذج: { $name }
|
||||
*[other] تم تحميل نموذج بدون عنوان
|
||||
}
|
||||
settings-osc-vmc-vrm-file_select = اسحب نموذج وأفلته لاستخدامه أو <u> تصفح </ u>
|
||||
settings-osc-vmc-anchor_hip = ثبت في الوركين
|
||||
settings-osc-vmc-anchor_hip-description = ثبت التعقب في الوركين، هو مفيد إن كنت تيوبنغ جالسًا. في حالة التعطيل، قم بتحميل نموذج في ار إم.
|
||||
settings-osc-vmc-anchor_hip-label = ثبت في الوركين
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
onboarding-skip = تخطى الإعداد
|
||||
@@ -697,7 +848,6 @@ onboarding-connect_tracker-next = لقد قمت بتوصيل جميع أجهزة
|
||||
|
||||
onboarding-calibration_tutorial = برنامج تعليم معايرة IMU
|
||||
onboarding-calibration_tutorial-subtitle = سوف يساعد هذا في تقليل الانجراف التعقب!
|
||||
onboarding-calibration_tutorial-description = كل مرة تقوم بتشغيل أجهزة التعقب، يجب أن تستريح للحظة على سطح مستوٍ للمعايرة. لنفعل الشيء نفسه بالنقر فوق الزر "{ onboarding-calibration_tutorial-calibrate }" ، <b>لا تحركها!</b>
|
||||
onboarding-calibration_tutorial-calibrate = وضعت أجهزة التعقب على الطاولة
|
||||
onboarding-calibration_tutorial-status-waiting = بانتظارك
|
||||
onboarding-calibration_tutorial-status-calibrating = جاري المعايرة
|
||||
@@ -809,12 +959,12 @@ onboarding-choose_mounting = ما طريقة معايرة التركيب الم
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-description = اتجاه التركيب يصحح وضع أجهزة التعقب على جسمك.
|
||||
onboarding-choose_mounting-auto_mounting = التركيب التلقائي
|
||||
# Italized text
|
||||
onboarding-choose_mounting-auto_mounting-label = تجريبي
|
||||
# Italicized text
|
||||
onboarding-choose_mounting-auto_mounting-label-v2 = الموصى به
|
||||
onboarding-choose_mounting-auto_mounting-description = سيكتشف هذا تلقائيًا اتجاهات التركيب لجميع أجهزة التعقب من وضعين
|
||||
onboarding-choose_mounting-manual_mounting = التركيب اليدوي
|
||||
# Italized text
|
||||
onboarding-choose_mounting-manual_mounting-label = المستحسن
|
||||
# Italicized text
|
||||
onboarding-choose_mounting-manual_mounting-label-v2 = قد لا تكون الدقة كافية
|
||||
onboarding-choose_mounting-manual_mounting-description = سيسمح لك باختيار اتجاه التثبيت يدويًا لكل جهاز تعقب
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-manual_modal-title =
|
||||
@@ -847,44 +997,19 @@ onboarding-automatic_mounting-mounting_reset-title = إعادة تعيين ال
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. قرفص في وضع "التزلج" مع ثني ساقيك ، وإمالة الجزء العلوي من جسمك إلى الأمام ، وثني ذراعيك.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. اضغط على زر "إعادة تعيين التركيب" وانتظر لمدة 3 ثوان قبل إعادة تعيين دوران تركيب أجهزة التعقب.
|
||||
onboarding-automatic_mounting-preparation-title = التحضير
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. قف بشكل مستقيم مع ذراعيك على جانبيك.
|
||||
onboarding-automatic_mounting-preparation-step-1 = اضغط على زر "إعادة ضبط" و انتظر لمدة 3 ثوانٍ قبل إعادة تعيين أجهزة التعقب.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = ارتدي أجهزة التعقب
|
||||
onboarding-automatic_mounting-put_trackers_on-description = لمعايرة دوران التركيب، سنستخدم أجهزة التعقب التي قمت بتعيينها. ارتدي جميع أجهزة التعقب، يمكنك معرفة أي منها في المستند على اليمين.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = ارتديت جميع أجهزة التعقب.
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
onboarding-choose_proportions = ما هي طريقة معايرة النسب التي يجب استخدامها؟
|
||||
# Multiline string
|
||||
onboarding-choose_proportions-description-v1 =
|
||||
تستخدم نسب الجسم لمعرفة قياسات جسمك. إنهم مطالبون لحساب مواقع أجهزة التعقب.
|
||||
عندما لا تتطابق نسب جسمك مع تلك المحفوظة ، ستكون دقة التعقب أسوأ وستلاحظ أشياء مثل التزلج أو الانزلاق ، أو أن جسمك لا يتطابق مع صورتك الرمزية جيدا.
|
||||
<b>ما عليك سوى قياس جسمك مرة واحدة!</b> إن لم تكن خاطئة أو تغير جسمك ، فلن تحتاج إلى القيام بها مرة أخرى.
|
||||
onboarding-choose_proportions-auto_proportions = النسب التلقائية
|
||||
# Italized text
|
||||
onboarding-choose_proportions-auto_proportions-subtitle = الموصى به
|
||||
onboarding-choose_proportions-auto_proportions-descriptionv3 =
|
||||
سيؤدي ذلك إلى تخمين نسبك عن طريق تسجيل عينة من تحركاتك وتمريرها عبر خوارزمية.
|
||||
|
||||
<b>يتطلب ذلك توصيل جهاز الواقع الافتراضي (HMD) ب SlimeVR و وضعها على رأسك!</b>
|
||||
onboarding-choose_proportions-manual_proportions = النسب اليدوية
|
||||
# Italized text
|
||||
onboarding-choose_proportions-manual_proportions-subtitle = للمسات الصغيرة
|
||||
onboarding-choose_proportions-manual_proportions-description = سيسمح لك بتعديل النسب يدويًا عن طريق تعديلها مباشرة
|
||||
onboarding-choose_proportions-export = تصدير النسب
|
||||
onboarding-choose_proportions-import = استيراد النسب
|
||||
onboarding-choose_proportions-import-success = تم استيراده
|
||||
onboarding-choose_proportions-import-failed = فشل
|
||||
onboarding-choose_proportions-file_type = ملف نسب الجسم
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = العودة إلى برنامج تعليم إعادة التعيين
|
||||
onboarding-manual_proportions-title = نسب الجسم اليدوية
|
||||
onboarding-manual_proportions-precision = ضبط الدقة
|
||||
onboarding-manual_proportions-auto = المعايرة التلقائية
|
||||
onboarding-manual_proportions-ratio = اضبط حسب مجموعات النسب
|
||||
onboarding-manual_proportions-fine_tuning_button = ضبط النسب تلقائيا
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = يرجى توصيل سماعة رأس VR لاستخدام الضبط الدقيق التلقائي
|
||||
onboarding-manual_proportions-export = تصدير النسب
|
||||
onboarding-manual_proportions-import = استيراد النسب
|
||||
onboarding-manual_proportions-file_type = ملف نسب الجسم
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -905,21 +1030,33 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
يقوم جهاز الواقع الافتراضي بالإبلاغ عن البيانات الموضعية إلى خادم SlimeVR (وهذا يعني عموما تشغيل SteamVR وتوصيله ب SlimeVR باستخدام برنامج تشغيل SteamVR الخاص ب SlimeVR).
|
||||
يعمل التتبع الخاص بك ويمثل تحركاتك بدقة (على سبيل المثال ، لقد أجريت إعادة تعيين كاملة وتتحرك في الاتجاه الصحيح عند الركل, الانحناء, الجلوس, إلخ).
|
||||
onboarding-automatic_proportions-requirements-next = لقد قرأت المتطلبات
|
||||
onboarding-automatic_proportions-check_height-title = تحقق من طولك
|
||||
onboarding-automatic_proportions-check_height-description = نستخدم طولك كأساس لقياساتنا باستخدام ارتفاع HMD كتقريب لطولك الفعلي ، ولكن من الأفضل التحقق مما إذا كانت صحيحة بنفسك!
|
||||
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 = يرجى الضغط على الزر أثناء الوقوف <u>في وضع مستقيم</u> لحساب طولك. لديك 3 ثوان بعد الضغط على الزر!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = ابدأ في القياس أثناء الوقوف <u>في وضع مستقيم</u> لقياس طولك. احرص على عدم رفع يديك أعلى من سماعة الرأس ، لأنها قد تؤثر على القياس!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
إذا كنت تستخدم سماعة رأس VR مستقلة ، فتأكد من تشغيل حدود الحارس /
|
||||
لكي يكون طولك صحيحا!
|
||||
onboarding-automatic_proportions-check_height-fetch_height = أنا واقف!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = مجهول
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height1 = طولك من خلال HMD
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-height1 = لذا فإن طولك الفعلي هو
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = ارتفاع سماعة الرأس هو:
|
||||
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 = في بعض الحالات، قد لا يتم ضبط الارتفاع عن الأرض بشكل صحيح بواسطة سماعة الرأس، مما يتسبب في قياس ارتفاع سماعة الرأس على أنه أعلى مما ينبغي. يمكنك قياس "الارتفاع" عن الأرض لتصحيح ارتفاع سماعة الرأس.
|
||||
# All the text is in bold!
|
||||
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 = طولك الكامل المقدر هو:
|
||||
onboarding-automatic_proportions-check_floor_height-measure-start = ابدأ القياس
|
||||
onboarding-automatic_proportions-check_floor_height-measure-stop = توقف عن القياس
|
||||
onboarding-automatic_proportions-check_floor_height-measure-reset = إعد محاولة القياس
|
||||
onboarding-automatic_proportions-check_floor_height-skip_step = تخطي الخطوة وحفظ
|
||||
onboarding-automatic_proportions-check_floor_height-next_step = استخدم الارتفاع عن الأرض وحفظه
|
||||
onboarding-automatic_proportions-start_recording-title = استعد للتحرك
|
||||
onboarding-automatic_proportions-start_recording-description = سنقوم الآن بتسجيل بعض الوضعيات والحركات المحددة. ستتم مطالبتك بذلك في الشاشة التالية. كن مستعدا للبدء عند الضغط على الزر!
|
||||
onboarding-automatic_proportions-start_recording-next = بدء التسجيل
|
||||
@@ -953,10 +1090,33 @@ onboarding-automatic_proportions-verify_results-redo = إعادة التسجيل
|
||||
onboarding-automatic_proportions-verify_results-confirm = تبدو صحيحة
|
||||
onboarding-automatic_proportions-done-title = تم قياس الجسم و حفظه.
|
||||
onboarding-automatic_proportions-done-description = اكتملت معايرة نسب جسمك!
|
||||
onboarding-automatic_proportions-error_modal =
|
||||
<b>تحذير:</b> تم العثور على خطأ أثناء تقدير النسب!
|
||||
يرجى <docs>التحقق من المستندات</docs> أو الانضمام إلى <discord>Discord</discord> للحصول على المساعدة ^_^
|
||||
onboarding-automatic_proportions-error_modal-v2 =
|
||||
<b>تحذير:</b> حدث خطأ أثناء تقدير النسب!
|
||||
من المحتمل أن تكون هذه مشكلة معايرة التركيب. تأكد من أن التعقب يعمل بشكل صحيح قبل المحاولة مرة أخرى.
|
||||
يرجى <docs>التحقق من التعليمات</docs> أو الانضمام إلى <discord>Discord</discord> للحصول على المساعدة ^_^
|
||||
onboarding-automatic_proportions-error_modal-confirm = مفهوم!
|
||||
onboarding-automatic_proportions-smol_warning =
|
||||
الارتفاع الذي تم تكوينه هو { $height } و هو أصغر من الحد الأدنى للارتفاع المقبول البالغ { $minHeight }.
|
||||
<b>يرجى إعادة القياسات والتأكد من صحتها.</b>
|
||||
onboarding-automatic_proportions-smol_warning-cancel = الرجوع
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
onboarding-scaled_proportions-title = النسب المقاسة
|
||||
onboarding-scaled_proportions-description = لكي تعمل أجهزة التعقب SlimeVR ، نحتاج إلى معرفة طول عظامك. ستستخدم نسبة متوسطة وقياسها بناء على طولك.
|
||||
onboarding-scaled_proportions-manual_height-title = تكوين طولك
|
||||
onboarding-scaled_proportions-manual_height-description-v2 = سيتم استخدام هذا الطول كخط أساس لنسب جسمك.
|
||||
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR غير متصل حاليا ب SlimeVR ، لذلك لا يمكن أن تستند القياسات إلى سماعة الرأس الخاصة بك. <b>تابع على مسؤوليتك الخاصة أو تحقق من المستندات!</b>
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = طولك الكامل هو
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = الارتفاع المقدر لسماعة الرأس هو:
|
||||
onboarding-scaled_proportions-manual_height-next_step = المتابعة والحفظ
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = وصّل سماعة رأس VR
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
@@ -981,6 +1141,21 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = يحتوي جهاز التعقب { $trackerName } على خطأ.
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
tray_menu-show = عرض
|
||||
@@ -1008,3 +1183,6 @@ unknown_device-modal-description =
|
||||
هل تريد توصيله ب SlimeVR؟
|
||||
unknown_device-modal-confirm = أكيد
|
||||
unknown_device-modal-forget = تجاهلها
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -54,6 +54,11 @@ body_part-LEFT_HAND = Levá ruka
|
||||
body_part-LEFT_UPPER_LEG = Levé stehno
|
||||
body_part-LEFT_LOWER_LEG = Levý kotník
|
||||
body_part-LEFT_FOOT = Levá noha
|
||||
body_part-LEFT_THUMB_DISTAL = Vzdálená falanga levého palce
|
||||
body_part-LEFT_INDEX_DISTAL = Vzálená kůstka levého ukazováku
|
||||
body_part-LEFT_MIDDLE_DISTAL = Vzálená kůstka levého prostředníku
|
||||
body_part-LEFT_RING_DISTAL = Vzálená kůstka levého prsteníku
|
||||
body_part-RIGHT_THUMB_DISTAL = Vzálená falanga pravého pacle
|
||||
|
||||
## BoardType
|
||||
|
||||
@@ -94,6 +99,9 @@ skeleton_bone-leg_group = Délka nohy
|
||||
skeleton_bone-UPPER_LEG = Délka horní části nohy
|
||||
skeleton_bone-LOWER_LEG = Délka dolní části nohy
|
||||
skeleton_bone-FOOT_LENGTH = Délka chodidla
|
||||
skeleton_bone-FOOT_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ě.
|
||||
skeleton_bone-FOOT_SHIFT = Odsazení chodidla
|
||||
skeleton_bone-SKELETON_OFFSET = Odsazení kostry
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Vzdálenost ramen
|
||||
@@ -183,6 +191,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: Skeleton Visualizer
|
||||
|
||||
@@ -210,6 +219,7 @@ 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-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -276,6 +286,7 @@ tracker-settings-forget = Zapomenout tracker
|
||||
tracker-settings-forget-description = Odebere tracker z SlimeVR Serveru a zabrání jeho opětovnému připojení do té doby, dokud nebude server restarován. Konfigurace trackeru nebude ztracena.
|
||||
tracker-settings-forget-label = Zapomenout tracker
|
||||
tracker-settings-update-unavailable = Nelze aktualizovat (DIY)
|
||||
tracker-settings-update-low-battery = Nelze provést aktualizaci. Baterie má méně než 50%
|
||||
tracker-settings-update-up_to_date = Aktuální
|
||||
tracker-settings-update-available = { $versionName } je nyní dostupný
|
||||
tracker-settings-update = Aktualizovat nyní
|
||||
@@ -346,6 +357,7 @@ mounting_selection_menu-close = Zavřít
|
||||
settings-sidebar-title = Nastavení
|
||||
settings-sidebar-general = Obecné
|
||||
settings-sidebar-tracker_mechanics = Mechanika trackerů
|
||||
settings-sidebar-stay_aligned = Zůstaň Srovaný (Stay Aligned)
|
||||
settings-sidebar-fk_settings = Nastavení trackování
|
||||
settings-sidebar-gesture_control = Ovládání gesty
|
||||
settings-sidebar-interface = Rozhraní
|
||||
@@ -357,6 +369,7 @@ settings-sidebar-appearance = Vzhled
|
||||
settings-sidebar-notifications = Notifikace
|
||||
settings-sidebar-behavior = Chování
|
||||
settings-sidebar-firmware-tool = Nástroj pro DIY firmware
|
||||
settings-sidebar-vrc_warnings = Varovaní VRChat konfigurace
|
||||
settings-sidebar-advanced = Pokročilé
|
||||
|
||||
## SteamVR settings
|
||||
@@ -418,14 +431,39 @@ settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
Předpovídá kompenzaci driftu svislé osy přes předešle změřený rozsah.
|
||||
Povolte toto pokud se vaše trackery neustále otáčejí na vertikální ose.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = Predikce kompenzace driftu
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>Varování:</b> Kompenzaci driftu používejte pouze tehdy kdy musíte resetovat
|
||||
Neobvykle často (každých ~5-10 minut).
|
||||
|
||||
Některé IMU které náchylné k častým resetům zahrnují:
|
||||
Joy-Cons, owoTrack a MPU (bez aktuálního firmwaru).
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-cancel = Zrušit
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-done = Rozumím
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = Množství kompenzace
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Použít až x posledních obnovení
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Uložit automatickou kalibraci obnovení připevnění
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Uloží automatické kalibrování resetování umístění pro trackery mezi restarty. Užitečné
|
||||
pokud máte oblek, na kterém se umístění trackeru nemění mezi relacemi. <b>Nedoporučováno pro uživatele s běžnou sestavou</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Uložit "Kalibraci nasazení"
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Použít magnetometr na všech IMU trackerech, které jej podporují
|
||||
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-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-general-label = Obecné
|
||||
settings-stay_aligned-relaxed_poses-label = Relaxovací Póza
|
||||
settings-stay_aligned-relaxed_poses-standing = Upravit trackery při stoje
|
||||
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-copy-label = Zkopírovat nastavení do schránky
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -449,6 +487,7 @@ settings-general-fk_settings-leg_tweak-foot_plant-description = Narovnání chod
|
||||
settings-general-fk_settings-leg_fk = Sledování nohou
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Aktivovat reset nasazení nohou stoupnutím na špičky.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset nasazení nohou
|
||||
settings-general-fk_settings-enforce_joint_constraints = Limity kostry
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Prosazování omezení
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Zabránit rotaci kloubům za jejich limit
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Opravit pomocí omezení
|
||||
@@ -473,6 +512,7 @@ settings-general-fk_settings-skeleton_settings-extended_spine_model = Prodlouže
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Model s prodloužením pánve
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees_model = Model s prodloužením kolene
|
||||
settings-general-fk_settings-skeleton_settings-ratios = Poměry kostry
|
||||
settings-general-fk_settings-skeleton_settings-ratios-description = Změňte hodnoty nastavení kostry, Po změně budete možná muset poupravit vaše proporce.
|
||||
settings-general-fk_settings-self_localization-title = Režim Mocap
|
||||
settings-general-fk_settings-self_localization-description = Režim Mocap je experimentální funkce, která dokáže přibližně určit polohu vašeho těla bez VR Headsetu a dalších trackerů. Pro správnou funkci je však nutné mít trackery pro nohy a hlavu.
|
||||
|
||||
@@ -507,11 +547,16 @@ settings-general-gesture_control-fullResetTaps = Klepnutí pro úplný reset
|
||||
settings-general-gesture_control-mountingResetEnabled = Povolit klepnutí pro resetování montáže
|
||||
settings-general-gesture_control-mountingResetDelay = Zpoždění resetování montáže
|
||||
settings-general-gesture_control-mountingResetTaps = Klepnutí pro resetování montáže
|
||||
# The number of trackers that can have higher acceleration before a tap is rejected
|
||||
settings-general-gesture_control-numberTrackersOverThreshold = Trackery překročily práh
|
||||
settings-general-gesture_control-numberTrackersOverThreshold-description = Zvyšte tuto hodnotu, pokud detekce klepnutí nefunguje. Nepřekračujte ji nad hodnotu, která je potřebná k tomu, aby detekce klepnutí fungovala, protože by to mohlo způsobit více falešně pozitivních klepnutí.
|
||||
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = Vzhled
|
||||
settings-general-interface-dev_mode = Vývojářský režim
|
||||
settings-general-interface-dev_mode-description = Tento režim může být užitečný, pokud potřebujete podrobné údaje nebo omunikovat s trackerama na pokročilejší úrovni.
|
||||
settings-general-interface-dev_mode-label = Vývojářský režim
|
||||
settings-general-interface-theme = Barva tématu
|
||||
settings-general-interface-show-navbar-onboarding = Zobrazit "{ navbar-onboarding }" na navigačním panelu
|
||||
settings-general-interface-show-navbar-onboarding-description = Tohle mění jestli bude tlačítko pro "{ navbar-onboarding }" zobrazeno na navigačním panelu
|
||||
@@ -566,12 +611,12 @@ settings-general-interface-discord_presence-message =
|
||||
*[other] Používá { $amount } trackerů
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Sběr chyb prostřednictvím Sentry.io
|
||||
settings-interface-behavior-error_tracking-description =
|
||||
Aby jsme mohli doručit nejlepší zážitek pro uživatele, shromažďujeme anonymizované zprávy o chybách, metriky výkonu a informace o operačním systému. To nám pomáhá s nacházením chyb a závad s SlimeVR. Tyto metriky jsou sbírány prostřednictvím Sentry.io.
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Souhlasíte se shromažďováním anonymizovaých údajů o chybých?</h1>
|
||||
|
||||
<b>Neschromažďujeme žádné osobní informace</b>, pro příklad IP adresy nebo přihlašovací údaje sítě Wi-Fi. SlimeVR si váží a respektuje vaše soukromí!
|
||||
<b>Neschrožďujeme osobní udaje!</b> pro příklad IP adresy nebo přihlašovací údaje k sítím Wi-Fi. SlimeVR respektuje vaše soukromí!
|
||||
|
||||
Souhlasíte se schromažďováním anonymních informací o chybách?
|
||||
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
|
||||
|
||||
## Serial settings
|
||||
@@ -626,6 +671,11 @@ settings-osc-router-network-address-placeholder = Adresa IPV4
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = Trackery VRChat OSC
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description-v1 =
|
||||
Pro změnu nastavení specifických pro standart OSC pro odesílání
|
||||
sledovacích dat aplikacím bez SteamVR (např. Quest standalone).
|
||||
Ujistěte se že jste povolili OSC ve VRChat přes nabídku v menu Akcí pod OSC > Povoleno.
|
||||
settings-osc-vrchat-enable = Zapnout
|
||||
settings-osc-vrchat-enable-description = Vypnutí a zapnutí odesílání a přijímání dat.
|
||||
settings-osc-vrchat-enable-label = Zapnout
|
||||
@@ -653,6 +703,10 @@ settings-osc-vrchat-network-trackers-elbows = Lokty
|
||||
## VMC OSC settings
|
||||
|
||||
settings-osc-vmc = Virtuální snímání pohybu (Také známo jako Virtual Motion Capture)
|
||||
# This cares about multilines
|
||||
settings-osc-vmc-description =
|
||||
Změna nastavení specificky pro VCM (Virtual Motion Capture) protokol
|
||||
odesílat data o kostech SlimeVR a přijímat data o kostech z jiných aplikací.
|
||||
settings-osc-vmc-enable = Zapnout
|
||||
settings-osc-vmc-enable-description = Vypnutí a zapnutí odesílání a přijímání dat.
|
||||
settings-osc-vmc-enable-label = Zapnout
|
||||
@@ -794,6 +848,11 @@ onboarding-connect_tracker-connection_status-looking_for_server = Hledám server
|
||||
onboarding-connect_tracker-connection_status-connection_error = Nelze se připojit k síti Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = Nelze najít server
|
||||
onboarding-connect_tracker-connection_status-done = Připojeno k serveru
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = Nepodařilo se získat protokoly z trackeru
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = Nepodařilo se nalézt tracker přes USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = Je tracker zapnutý?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Ujistěte se, že je tracker zapnutý a připojený k vašemu počátači
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = Nebyly nalezeny žádné trackery
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -924,8 +983,7 @@ onboarding-automatic_mounting-mounting_reset-title = Reset nasazení trackerů
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Dřepněte si, jako při lyžování: nohy pokrčte v kolenou, trup nakloňte mírně dopředu a paže pokrčte.
|
||||
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-step-0 = 1. Postavte se vzpřímeně s rukama na bocích.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Stiskněte tlačítko "Reset" a počkejte 3 sekundy, než se trackery resetují.
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Stiskněte tlačítko pro "Plný Reset"
|
||||
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
|
||||
@@ -934,15 +992,16 @@ onboarding-automatic_mounting-put_trackers_on-next = Mám nasazené všechny tra
|
||||
|
||||
onboarding-manual_proportions-back = Zpět na tutoriál
|
||||
onboarding-manual_proportions-title = Manuální proporce těla
|
||||
onboarding-manual_proportions-precision = Přesná úprava
|
||||
onboarding-manual_proportions-auto = Automatická kalibrace proporcí
|
||||
onboarding-manual_proportions-ratio = Upravit podle poměrů končetin
|
||||
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
|
||||
onboarding-manual_proportions-export = Exportovat proporce
|
||||
onboarding-manual_proportions-import = Importovat proporce
|
||||
onboarding-manual_proportions-import-success = Importováno
|
||||
onboarding-manual_proportions-import-failed = Selhání
|
||||
onboarding-manual_proportions-file_type = Soubor tělesných proporcí
|
||||
onboarding-manual_proportions-normal_increment = Normální škála
|
||||
onboarding-manual_proportions-precise_increment = Přesná škála
|
||||
onboarding-manual_proportions-grouped_proportions = Skupinové proporce
|
||||
onboarding-manual_proportions-all_proportions = Všechny proporce
|
||||
onboarding-manual_proportions-estimated_height = Odhadovaná výška uživatele
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -964,6 +1023,9 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
Přesné sledování: Sledování funguje a přesně zaznamenává vaše pohyby (například jste provedli kompletní reset a trackery se správně pohybují při kopání, předklonu, sezení apod.).
|
||||
onboarding-automatic_proportions-requirements-next = Přečetl jsem si požadavky
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Měření výšky vašeho headsetu
|
||||
onboarding-automatic_proportions-check_height-description-v2 = Váš headset HMD výška by měla být o trochu menší než vaše celá výška, protože headset měří výšku úrovně vašich očí. Toto měření bude použito pro výchozí hodnoty vaších tělesných proporcí.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Započněte měření při tom když stojíte <u>vzpřímeně</u> aby jste změřili vaší výšku. Dávejte pozor aby jste nezvedly vaše ruce nad váš headset, mohlo by to ovlivnit výsledky měření!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
Pokud používáte Samostatný VR headset, ujistěte se že váš opatrovník /
|
||||
Hranice zapnutá aby byla vaše výška správně!
|
||||
@@ -977,6 +1039,8 @@ onboarding-automatic_proportions-check_height-measure-reset = Opakovat měření
|
||||
onboarding-automatic_proportions-check_height-next_step = Je to v pořádku!
|
||||
onboarding-automatic_proportions-check_floor_height-title = Změřte vaší výšku podlahy (dobrovolné)
|
||||
onboarding-automatic_proportions-check_floor_height-description = V některých případech, výška vaší podlahy nemusí být správně nastavena vaším headsetem, což způsobí že výška headsetu bude zaznamenána víš než by měla být. Můžete změřit "výšku" vaší podlahy aby jste opravily výšku vašeho headsetu
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = Začněte s měřením a přiložte ovladač proti vaší podlaze pro změření její výšky. pokud jste si jistí že výška podlahy je správně nastavená, můžete tento krok přeskočit
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = Výška vaší podlahy je:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = Vaše odhadnutá celá výška je:
|
||||
@@ -1035,13 +1099,38 @@ onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR není mome
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = Vaše celková výška je
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = Vaše odhadovaná výška headsetu je:
|
||||
onboarding-scaled_proportions-manual_height-next_step = Uložit a pokračovat
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
Právě používáte manuální způsob nastavení škálování proporcí!
|
||||
<b>Tento režim je doporučen pouze pokud nepoužíváte HMD s SlimeVR</b>
|
||||
|
||||
Abyste mohli používat automatcky škálované proporce, prosím:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Připojte VR headset
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Ujistěte se, že jsou vaše ovladače připojeny a správně přirazeny k vaším rukám
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
onboarding-scaled_proportions-reset_proportion-title = Obnovení proporcí vašeho těla
|
||||
onboarding-scaled_proportions-reset_proportion-description = Chcete-li nastavit tělesné proporce podle vaší výšky, předem musíte obnovit všechny vaše proporce. Tato operace obnoví všechny proporce, které jste nakonfigurovali. a následně se obnoví výchozí konfigurace.
|
||||
onboarding-scaled_proportions-done-title = Proporce těla byla nastavena
|
||||
onboarding-scaled_proportions-done-description = Vaše proporce těla by teď měli být nakonfigurovány na základě vaší výšky.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = Zůstaň Srovaný!
|
||||
onboarding-stay_aligned-description = Nakonfigurujte Zustaň Srovnaný, aby byly vaše trackery srovnáný.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Nasaďte si trackery
|
||||
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-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-relaxed_poses-standing-step-0 = 1. Stůjte v pohodlné pozici. Relaxujte!
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Přeskočit
|
||||
onboarding-stay_aligned-done-title = Zustaň Srovnaný zapnuto!
|
||||
onboarding-stay_aligned-previous_step = Předchozí
|
||||
onboarding-stay_aligned-next_step = Další
|
||||
onboarding-stay_aligned-restart = Restart
|
||||
onboarding-stay_aligned-done = Hotovo
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Nebyly zjištěny ani přiřazeny žádné trackery
|
||||
@@ -1101,7 +1190,16 @@ firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Odpor baterie (Ohmy)
|
||||
.placeholder = Vložte hodnotu rezistoru baterie
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Štít baterie R1 (v Ohmech)
|
||||
.placeholder = Vložte hodnotu štítu baterie R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Štít baterie R2 (v Ohmech)
|
||||
.placeholder = Vložte hodnotu štítu baterie R2
|
||||
firmware_tool-add_imus_step = Deklarujte své IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
Prosím přidejte IMU které má váš tracker
|
||||
Pokud jste následovali dokumentaci SlimeVR, výchozí hodnoty by měli být správné
|
||||
firmware_tool-add_imus_step-imu_type-label = Typ IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Vyberte typ IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
@@ -1133,16 +1231,27 @@ firmware_tool-flash_method_step-ota =
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Sériový
|
||||
.description = Použíte USB kabel pro aktualizování vaších trackerů.
|
||||
firmware_tool-flashbtn_step = Stiskněte tlačítko bootu btn
|
||||
firmware_tool-flashbtn_step-description = Než přejdeme na další krok, je tady pár věcí které musíte udělat
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Vypněte tracker, vyndejte z obalu (jestli v nějakém je), Připojte USB kabel k tomuto počítači a poté následujte jeden z kroků revize odpovídající k vaší verzi desky trackeru SlimeVR:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Zapněte tracker při tom co spojujete (zkratujete) obdelníkovou podložku FLASH z okraje na vrchní straně desky trackeru, a kovového obalu microkontroleru
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Zapněte tracker při spojování (zkratování) kruhové FLASH podložky na vrchní straně desky trackeru, a kovového štítu microkontrolleru
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Zapněte tracker při držení tlačítka FLASH na vrchní straně desky trackeru
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
Před flashováním, pravděpodobně budete muset přepnout tracker do bootloader režimu.
|
||||
Ve většině případů to znamená stisknutí boot tlačítka na desce trakeru před tím než začne proces flashování.
|
||||
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-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-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í
|
||||
firmware_tool-flash_method_serial-no_devices = Nebyla nalezena žádná kompatibilní seriová zařízení, prosím ujistěte se že trackery jsou připojeny
|
||||
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 = Během procesu nahrávání neodpojujte ani nerestartujte tracker, pokud k tomu nebudete vyzváni, může to způsobit to že vaše deska se stane nepoužitelnou
|
||||
firmware_tool-flashing_step-flash_more = Flashnout více trackerů
|
||||
firmware_tool-flashing_step-exit = Odejít
|
||||
|
||||
@@ -1160,7 +1269,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 = Čekání na restartování trackeru uživatelem
|
||||
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
|
||||
firmware_update-status-REBOOTING = Restartování trackeru
|
||||
@@ -1214,9 +1323,47 @@ unknown_device-modal-description =
|
||||
Chcete jej připojit k SlimeVR?
|
||||
unknown_device-modal-confirm = Jasně!
|
||||
unknown_device-modal-forget = Ignoruj
|
||||
vrc_config-page-help = Nemůžete najít specifické nastavení?
|
||||
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-on = Zapnuto
|
||||
vrc_config-off = Vypnuto
|
||||
vrc_config-invalid = Máte špatně nakonfigurované VRChat nastavení!
|
||||
vrc_config-show_more = Ukázat více
|
||||
vrc_config-setting_name = Jméno nastavení v VRChat
|
||||
vrc_config-recommended_value = Doporučená hodnota
|
||||
vrc_config-current_value = Aktuální hodnota
|
||||
vrc_config-mute = Upozornění na ztlumení
|
||||
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-spine_mode = Režim páteře FTB
|
||||
vrc_config-tracker_model = Model FBT trackeru
|
||||
vrc_config-avatar_measurement_type = Meření avataru
|
||||
vrc_config-calibration_range = Kalibrační rozsah
|
||||
vrc_config-calibration_visuals = Zobrazit vizualizaci kalibrace
|
||||
vrc_config-user_height = Reálná výška uživatele
|
||||
vrc_config-spine_mode-UNKNOWN = Neznámý
|
||||
vrc_config-spine_mode-LOCK_BOTH = Uzamknout obojí
|
||||
vrc_config-spine_mode-LOCK_HEAD = Uzamknout hlavu
|
||||
vrc_config-spine_mode-LOCK_HIP = Uzamknout boky
|
||||
vrc_config-tracker_model-UNKNOWN = Neznýmý
|
||||
vrc_config-tracker_model-AXIS = Osy
|
||||
vrc_config-tracker_model-BOX = Box
|
||||
vrc_config-tracker_model-SPHERE = Sféra
|
||||
vrc_config-tracker_model-SYSTEM = Systém
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = Neznámý
|
||||
vrc_config-avatar_measurement_type-HEIGHT = Výška
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = Rozpětí paží
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = Můžeme sbírat chyby?
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-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
|
||||
|
||||
@@ -306,6 +306,7 @@ tracker-settings-forget = Tracker Vergessen
|
||||
tracker-settings-forget-description = Entfernt den Tracker vom SlimeVR Server und verhindert, dass er sich wieder verbindet, bis der Server neu gestartet wurde. Die Konfiguration des Trackers geht nicht verloren.
|
||||
tracker-settings-forget-label = Tracker Vergessen
|
||||
tracker-settings-update-unavailable = Kann nicht aktualisiert werden (DIY)
|
||||
tracker-settings-update-low-battery = Aktualisierung nicht möglich. Akku unter 50 %
|
||||
tracker-settings-update-up_to_date = Auf dem neusten Stand
|
||||
tracker-settings-update-available = { $versionName } ist jetzt Verfügbar
|
||||
tracker-settings-update = Jetzt aktualisieren
|
||||
@@ -1297,7 +1298,7 @@ firmware_tool-build_step = Building
|
||||
firmware_tool-build_step-description = Die Firmware wird erstellt, bitte warten.
|
||||
firmware_tool-flashing_step = Flashen
|
||||
firmware_tool-flashing_step-description = Ihre Tracker werden geflasht, bitte folgen Sie den Anweisungen auf dem Bildschirm.
|
||||
firmware_tool-flashing_step-warning = Trennen Sie den Tracker während des Upload-Prozesses nicht vom Computer und starten Sie ihn nicht neu, es sei denn, Sie werden dazu aufgefordert. Andernfalls könnte Ihr Board unbrauchbar werden.
|
||||
firmware_tool-flashing_step-warning-v2 = Trennen oder schalten Sie den Tracker während des Upload-Vorgangs nicht aus, es sei denn, Sie werden dazu aufgefordert, da dies den Tracker unbrauchbar machen kann.
|
||||
firmware_tool-flashing_step-flash_more = Weitere Tracker flashen
|
||||
firmware_tool-flashing_step-exit = Schließen
|
||||
|
||||
@@ -1315,7 +1316,7 @@ firmware_tool-build-ERROR = Die Firmware konnte nicht erstellt werden
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Lade die Firmware herunter
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = Bitte starten Sie den Tracker neu
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = Bitte schalten Sie Ihren Tracker aus und wieder ein.
|
||||
firmware_update-status-AUTHENTICATING = Authentifizierung mit dem Mikrokontroller
|
||||
firmware_update-status-UPLOADING = Lade die Firmware hoch
|
||||
firmware_update-status-SYNCING_WITH_MCU = Synchronisieren mit dem Mikrokontroller
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
## Websocket (server) status
|
||||
websocket-connecting = Loading...
|
||||
websocket-connection_lost = The server crashed!
|
||||
websocket-connection_lost-desc = It looks like the SlimeVR server crashed. Check the logs and restart the program
|
||||
websocket-connection_lost-desc = It looks like the SlimeVR server crashed. Check the logs and restart the program.
|
||||
websocket-timedout = Could not connect to the server
|
||||
websocket-timedout-desc = It looks like the SlimeVR server crashed or timed out. Check the logs and restart the program
|
||||
websocket-timedout-desc = It looks like the SlimeVR server crashed or timed out. Check the logs and restart the program.
|
||||
websocket-error-close = Exit SlimeVR
|
||||
websocket-error-logs = Open the logs Folder
|
||||
|
||||
@@ -23,8 +23,8 @@ version_update-close = Close
|
||||
tips-find_tracker = Not sure which tracker is which? Shake a tracker and it will highlight the corresponding item.
|
||||
tips-do_not_move_heels = Ensure your heels do not move during recording!
|
||||
tips-file_select = Drag & drop files to use, or <u>browse</u>.
|
||||
tips-tap_setup = You can slowly tap 2 times your tracker to choose it instead of selecting it from the menu.
|
||||
tips-turn_on_tracker = Using official SlimeVR trackers? Remember to <b><em>turn on your tracker</em></b> after connecting it to the PC!
|
||||
tips-tap_setup = You can slowly tap your tracker 2 times to choose it instead of selecting it from the menu.
|
||||
tips-turn_on_tracker = Using official SlimeVR trackers? Don't forget to <b><em>turn on your tracker</em></b> after connecting it to the PC!
|
||||
tips-failed_webgl = Failed to initialize WebGL.
|
||||
|
||||
## Body parts
|
||||
@@ -139,9 +139,9 @@ skeleton_bone-WAIST-desc =
|
||||
(sitting down, bending over, lying down, etc.) until your virtual spine matches with your real one.
|
||||
skeleton_bone-HIP = Hip Length
|
||||
skeleton_bone-HIP-desc =
|
||||
This is the distance from your belly button to your hips
|
||||
To adjust it, adjust your Torso Length properly and modify it in various positions
|
||||
(sitting down, bending over, lying down, etc.) until your virtual spine matches with your real one.
|
||||
This is the distance from your belly button to your hips.
|
||||
To adjust it, set your Torso Length properly and modify it in various positions
|
||||
(sitting down, bending over, lying down, etc.) until your virtual spine matches your real one.
|
||||
skeleton_bone-HIP_OFFSET = Hip Offset
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
This can be adjusted to move your virtual hip tracker up or down in order to aid
|
||||
@@ -163,7 +163,7 @@ skeleton_bone-UPPER_LEG-desc =
|
||||
until your virtual knees are at the same level as your real ones.
|
||||
skeleton_bone-LOWER_LEG = Lower Leg Length
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
This is the distance from your hips to your knees.
|
||||
This is the distance from your knees to your ankles.
|
||||
To adjust it, adjust your Leg Length properly and modify it
|
||||
until your virtual knees are at the same level as your real ones.
|
||||
skeleton_bone-FOOT_LENGTH = Foot Length
|
||||
@@ -178,8 +178,8 @@ skeleton_bone-FOOT_SHIFT-desc =
|
||||
feet line up with the middle of your ankles.
|
||||
skeleton_bone-SKELETON_OFFSET = Skeleton Offset
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
This can be adjusted to offsets all your trackers forward or backwards.
|
||||
It can be used in order to aid with calibration in certain games or applications
|
||||
This can be adjusted to offset all your trackers forward or backward.
|
||||
It can be used to help with calibration in certain games or applications
|
||||
that may expect your trackers to be more forward.
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
@@ -222,7 +222,7 @@ skeleton_bone-HAND_Z-desc =
|
||||
skeleton_bone-ELBOW_OFFSET = Elbow Offset
|
||||
skeleton_bone-ELBOW_OFFSET-desc =
|
||||
This can be adjusted to move your virtual elbow trackers up or down in order to aid
|
||||
with VRChat accidentally binding and elbow tracker to the chest.
|
||||
with VRChat accidentally binding an elbow tracker to the chest.
|
||||
|
||||
## Tracker reset buttons
|
||||
reset-reset_all = Reset all proportions
|
||||
@@ -259,6 +259,7 @@ navbar-settings = Settings
|
||||
## Biovision hierarchy recording
|
||||
bvh-start_recording = Record BVH
|
||||
bvh-recording = Recording...
|
||||
bvh-save_title = Save BVH recording
|
||||
|
||||
## Tracking pause
|
||||
tracking-unpaused = Pause tracking
|
||||
@@ -293,6 +294,7 @@ widget-imu_visualizer-rotation_raw = Raw rotation
|
||||
widget-imu_visualizer-rotation_preview = Preview rotation
|
||||
widget-imu_visualizer-acceleration = Acceleration
|
||||
widget-imu_visualizer-position = Position
|
||||
widget-imu_visualizer-stay_aligned = Stay Aligned
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
widget-skeleton_visualizer-preview = Skeleton preview
|
||||
@@ -317,6 +319,7 @@ tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Accel. X/Y/Z
|
||||
tracker-table-column-rotation = Rotation X/Y/Z
|
||||
tracker-table-column-position = Position X/Y/Z
|
||||
tracker-table-column-stay_aligned = Stay Aligned
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -329,7 +332,7 @@ tracker-rotation-back = Back
|
||||
tracker-rotation-back_left = Back-Left
|
||||
tracker-rotation-back_right = Back-Right
|
||||
tracker-rotation-custom = Custom
|
||||
tracker-rotation-overriden = (overriden by mounting reset)
|
||||
tracker-rotation-overriden = (overridden by mounting reset)
|
||||
|
||||
## Tracker information
|
||||
tracker-infos-manufacturer = Manufacturer
|
||||
@@ -376,11 +379,12 @@ tracker-settings-name_section-description = Give it a cute nickname :)
|
||||
tracker-settings-name_section-placeholder = NightyBeast's left leg
|
||||
tracker-settings-name_section-label = Tracker name
|
||||
tracker-settings-forget = Forget tracker
|
||||
tracker-settings-forget-description = Removes the tracker from the SlimeVR Server and prevent it from connecting to it until the server is restarted. The configuration of the tracker won't be lost.
|
||||
tracker-settings-forget-description = Removes the tracker from the SlimeVR Server and prevents it from connecting until the server is restarted. The configuration of the tracker won't be lost.
|
||||
tracker-settings-forget-label = Forget tracker
|
||||
tracker-settings-update-unavailable = Cannot be updated (DIY)
|
||||
tracker-settings-update-low-battery = Cannot update. Battery lower than 50%
|
||||
tracker-settings-update-up_to_date = Up to date
|
||||
tracker-settings-update-blocked = Update not available. No other releases available
|
||||
tracker-settings-update-available = { $versionName } is now available
|
||||
tracker-settings-update = Update now
|
||||
tracker-settings-update-title = Firmware version
|
||||
@@ -391,7 +395,7 @@ tracker-part_card-unassigned = Unassigned
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu = Where do you want this tracker to be?
|
||||
body_assignment_menu-description = Choose a location where you want this tracker to be assigned. Alternatively you can choose to manage all trackers at once instead of one by one.
|
||||
body_assignment_menu-description = Choose a location where you want this tracker to be assigned. Alternatively, you can choose to manage all trackers at once instead of one by one.
|
||||
body_assignment_menu-show_advanced_locations = Show advanced assign locations
|
||||
body_assignment_menu-manage_trackers = Manage all trackers
|
||||
body_assignment_menu-unassign_tracker = Unassign tracker
|
||||
@@ -434,8 +438,8 @@ tracker_selection_menu-dont_assign = Unassign
|
||||
# This line cares about multilines.
|
||||
# <b>text</b> means that the text should be bold.
|
||||
tracker_selection_menu-neck_warning =
|
||||
<b>Warning:</b> A neck tracker can be deadly if adjusted too tightly,
|
||||
the strap could cut the circulation to your head!
|
||||
<b>Warning:</b> A neck tracker can be deadly if adjusted too tightly;
|
||||
the strap could cut off circulation to your head!
|
||||
tracker_selection_menu-neck_warning-done = I understand the risks
|
||||
tracker_selection_menu-neck_warning-cancel = Cancel
|
||||
|
||||
@@ -447,6 +451,7 @@ mounting_selection_menu-close = Close
|
||||
settings-sidebar-title = Settings
|
||||
settings-sidebar-general = General
|
||||
settings-sidebar-tracker_mechanics = Tracker mechanics
|
||||
settings-sidebar-stay_aligned = Stay Aligned
|
||||
settings-sidebar-fk_settings = Tracking settings
|
||||
settings-sidebar-gesture_control = Gesture control
|
||||
settings-sidebar-interface = Interface
|
||||
@@ -458,6 +463,7 @@ settings-sidebar-appearance = Appearance
|
||||
settings-sidebar-notifications = Notifications
|
||||
settings-sidebar-behavior = Behavior
|
||||
settings-sidebar-firmware-tool = DIY Firmware Tool
|
||||
settings-sidebar-vrc_warnings = VRChat Config Warnings
|
||||
settings-sidebar-advanced = Advanced
|
||||
|
||||
## SteamVR settings
|
||||
@@ -481,7 +487,7 @@ settings-general-steamvr-trackers-right_elbow = Right elbow
|
||||
settings-general-steamvr-trackers-left_hand = Left hand
|
||||
settings-general-steamvr-trackers-right_hand = Right hand
|
||||
settings-general-steamvr-trackers-tracker_toggling = Automatic tracker assignment
|
||||
settings-general-steamvr-trackers-tracker_toggling-description = Automatically handles toggling SteamVR trackers on or off depending on your current tracker assignments
|
||||
settings-general-steamvr-trackers-tracker_toggling-description = Automatically handles toggling SteamVR trackers on or off depending on your current tracker assignments.
|
||||
settings-general-steamvr-trackers-tracker_toggling-label = Automatic tracker assignment
|
||||
settings-general-steamvr-trackers-hands-warning = <b>Warning:</b> hand trackers will override your controllers.
|
||||
Are you sure?
|
||||
@@ -494,7 +500,7 @@ settings-general-tracker_mechanics-filtering = Filtering
|
||||
# This also cares about multilines
|
||||
settings-general-tracker_mechanics-filtering-description =
|
||||
Choose the filtering type for your trackers.
|
||||
Prediction predicts movement while smoothing smoothens movement.
|
||||
Prediction predicts movement while smoothing smooths movement.
|
||||
settings-general-tracker_mechanics-filtering-type = Filtering type
|
||||
settings-general-tracker_mechanics-filtering-type-none = No filtering
|
||||
settings-general-tracker_mechanics-filtering-type-none-description = Use rotations as is. Will not do any filtering.
|
||||
@@ -507,8 +513,8 @@ settings-general-tracker_mechanics-yaw-reset-smooth-time = Yaw reset smooth time
|
||||
settings-general-tracker_mechanics-drift_compensation = Drift compensation
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-description =
|
||||
Compensates IMU yaw drift by applying an inverse rotation.
|
||||
Change amount of compensation and up to how many resets are taken into account.
|
||||
Compensates for IMU yaw drift by applying an inverse rotation.
|
||||
Change the amount of compensation and the number of resets taken into account.
|
||||
This should only be used if you need to reset very often!
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensation
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = Drift compensation prediction
|
||||
@@ -538,6 +544,26 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
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-stay_aligned = Stay Aligned
|
||||
settings-stay_aligned-description = Stay Aligned reduces drift by gradually adjusting your trackers to match your relaxed poses.
|
||||
settings-stay_aligned-setup-label = Setup Stay Aligned
|
||||
settings-stay_aligned-setup-description = You must complete "Setup Stay Aligned" to enable Stay Aligned.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ Please turn off Drift Compensation! Drift Compensation will conflict with Stay Aligned.
|
||||
settings-stay_aligned-enabled-label = Adjust trackers
|
||||
settings-stay_aligned-hide_yaw_correction-label = Hide adjustment (to compare with no Stay Aligned)
|
||||
settings-stay_aligned-general-label = General
|
||||
settings-stay_aligned-relaxed_poses-label = Relaxed Poses
|
||||
settings-stay_aligned-relaxed_poses-description = Stay Aligned uses your relaxed poses to keep the trackers aligned. Use "Setup Stay Aligned" to update these poses.
|
||||
settings-stay_aligned-relaxed_poses-standing = Adjust trackers while standing
|
||||
settings-stay_aligned-relaxed_poses-sitting = Adjust trackers while sitting in a chair
|
||||
settings-stay_aligned-relaxed_poses-flat = Adjust trackers while sitting on the floor, or lying on your back
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Save pose
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Reset pose
|
||||
settings-stay_aligned-relaxed_poses-close = Close
|
||||
settings-stay_aligned-debug-label = Debugging
|
||||
settings-stay_aligned-debug-description = Please include your settings when reporting problems about Stay Aligned.
|
||||
settings-stay_aligned-debug-copy-label = Copy settings to clipboard
|
||||
|
||||
## FK/Tracking settings
|
||||
settings-general-fk_settings = Tracking settings
|
||||
|
||||
@@ -553,9 +579,9 @@ settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
|
||||
settings-general-fk_settings-leg_tweak-toe_snap = Toe snap
|
||||
settings-general-fk_settings-leg_tweak-foot_plant = Foot plant
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating correction strength
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-description = Skating-correction corrects for ice skating but can decrease accuracy in certain movement patterns. When enabling this make sure to full reset and recalibrate in game.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip-description = Floor-clip can Reduce or even eliminates clipping through the floor. When enabling this, make sure to full reset and recalibrate in game.
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap attempts to guess the rotation of your feet if feet trackers are not in use.
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-description = Skating-correction corrects for ice skating, but can decrease accuracy in certain movement patterns. When enabling this, make sure to perform a full reset and recalibrate in-game.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip-description = Floor-clip can reduce or eliminate clipping through the floor. When enabling this, make sure to perform a full reset and recalibrate in-game.
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap attempts to guess the rotation of your feet if foot trackers are not in use.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant rotates your feet to be parallel to the ground when in contact.
|
||||
settings-general-fk_settings-leg_fk = Leg tracking
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Enable feet Mounting Reset by tiptoeing.
|
||||
@@ -575,11 +601,11 @@ settings-general-fk_settings-arm_fk-reset_mode-description = Change which arm po
|
||||
settings-general-fk_settings-arm_fk-back = Back
|
||||
settings-general-fk_settings-arm_fk-back-description = The default mode, with the upper arms going back and lower arms going forward.
|
||||
settings-general-fk_settings-arm_fk-tpose_up = T-pose (up)
|
||||
settings-general-fk_settings-arm_fk-tpose_up-description = Expects your arms to be down on the sides during Full Reset, and 90 degrees up to the sides during Mounting Reset.
|
||||
settings-general-fk_settings-arm_fk-tpose_up-description = Expects your arms to be down at your sides during Full Reset, and 90 degrees up to the sides during Mounting Reset.
|
||||
settings-general-fk_settings-arm_fk-tpose_down = T-pose (down)
|
||||
settings-general-fk_settings-arm_fk-tpose_down-description = Expects your arms to be 90 degrees up to the sides during Full Reset, and down on the sides during Mounting Reset.
|
||||
settings-general-fk_settings-arm_fk-tpose_down-description = Expects your arms to be 90 degrees up to the sides during Full Reset, and down at your sides during Mounting Reset.
|
||||
settings-general-fk_settings-arm_fk-forward = Forward
|
||||
settings-general-fk_settings-arm_fk-forward-description = Expects your arms to be up 90 degrees forward. Useful for VTubing.
|
||||
settings-general-fk_settings-arm_fk-forward-description = Expects your arms to be raised forward at 90 degrees. Useful for VTubing.
|
||||
settings-general-fk_settings-skeleton_settings-toggles = Skeleton toggles
|
||||
settings-general-fk_settings-skeleton_settings-description = Toggle skeleton settings on or off. It is recommended to leave these on.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine_model = Extended spine model
|
||||
@@ -634,10 +660,10 @@ settings-general-interface-dev_mode-description = This mode can be useful if you
|
||||
settings-general-interface-dev_mode-label = Developer Mode
|
||||
settings-general-interface-theme = Color theme
|
||||
settings-general-interface-show-navbar-onboarding = Show "{ navbar-onboarding }" on navigation bar
|
||||
settings-general-interface-show-navbar-onboarding-description = This changes if the "{ navbar-onboarding }" button shows on the navigation bar.
|
||||
settings-general-interface-show-navbar-onboarding-description = This changes whether the "{ navbar-onboarding }" button shows on the navigation bar.
|
||||
settings-general-interface-show-navbar-onboarding-label = Show "{ navbar-onboarding }"
|
||||
settings-general-interface-lang = Select language
|
||||
settings-general-interface-lang-description = Change the default language you want to use.
|
||||
settings-general-interface-lang-description = Change the default language.
|
||||
settings-general-interface-lang-placeholder = Select the language to use
|
||||
# Keep the font name untranslated
|
||||
settings-interface-appearance-font = GUI font
|
||||
@@ -654,10 +680,10 @@ settings-interface-appearance-decorations-label = Use native decorations
|
||||
## Notification settings
|
||||
settings-interface-notifications = Notifications
|
||||
settings-general-interface-serial_detection = Serial device detection
|
||||
settings-general-interface-serial_detection-description = This option will show a pop-up every time you plug a new serial device that could be a tracker. It helps improving the setup process of a tracker.
|
||||
settings-general-interface-serial_detection-description = This option will show a pop-up every time you plug in a new serial device that could be a tracker. It helps to improve the setup process of a tracker.
|
||||
settings-general-interface-serial_detection-label = Serial device detection
|
||||
settings-general-interface-feedback_sound = Feedback sound
|
||||
settings-general-interface-feedback_sound-description = This option will play a sound when a reset is triggered.
|
||||
settings-general-interface-feedback_sound-description = This option plays a sound when a reset is triggered.
|
||||
settings-general-interface-feedback_sound-label = Feedback sound
|
||||
settings-general-interface-feedback_sound-volume = Feedback sound volume
|
||||
settings-general-interface-connected_trackers_warning = Connected trackers warning
|
||||
@@ -667,10 +693,10 @@ settings-general-interface-connected_trackers_warning-label = Connected trackers
|
||||
## Behavior settings
|
||||
settings-interface-behavior = Behavior
|
||||
settings-general-interface-dev_mode = Developer Mode
|
||||
settings-general-interface-dev_mode-description = This mode can be useful if you need in-depth data or to interact with connected trackers on a more advanced level.
|
||||
settings-general-interface-dev_mode-description = This mode can be useful if you need in-depth data or need to interact with connected trackers on a more advanced level.
|
||||
settings-general-interface-dev_mode-label = Developer Mode
|
||||
settings-general-interface-use_tray = Minimize to system tray
|
||||
settings-general-interface-use_tray-description = Lets you close the window without closing the SlimeVR Server so you can continue using it without having the GUI bothering you.
|
||||
settings-general-interface-use_tray-description = Lets you close the window without closing the SlimeVR Server so you can continue using it without having the GUI bother you.
|
||||
settings-general-interface-use_tray-label = Minimize to system tray
|
||||
settings-general-interface-discord_presence = Share activity on Discord
|
||||
settings-general-interface-discord_presence-description = Tells your Discord client that you are using SlimeVR along with the number of IMU trackers you are using.
|
||||
@@ -689,6 +715,9 @@ settings-interface-behavior-error_tracking-description_v2 =
|
||||
To provide the best user experience, we collect anonymized error reports, performance metrics, and operating system information. This helps us detect bugs and issues with SlimeVR. These metrics are collected via Sentry.io.
|
||||
|
||||
settings-interface-behavior-error_tracking-label = Send errors to developers
|
||||
settings-interface-behavior-bvh_directory = Directory to save BVH recordings
|
||||
settings-interface-behavior-bvh_directory-description = Choose a directory to save your BVH recordings instead of having to choose where to save them each time.
|
||||
settings-interface-behavior-bvh_directory-label = Directory for BVH recordings
|
||||
|
||||
## Serial settings
|
||||
settings-serial = Serial Console
|
||||
@@ -718,7 +747,7 @@ settings-osc-router = OSC router
|
||||
# This cares about multilines
|
||||
settings-osc-router-description =
|
||||
Forward OSC messages from another program.
|
||||
Useful for using another OSC program with VRChat for example.
|
||||
Useful for using another OSC program with VRChat, for example.
|
||||
settings-osc-router-enable = Enable
|
||||
settings-osc-router-enable-description = Toggle the forwarding of messages.
|
||||
settings-osc-router-enable-label = Enable
|
||||
@@ -778,7 +807,7 @@ settings-osc-vmc = Virtual Motion Capture
|
||||
# This cares about multilines
|
||||
settings-osc-vmc-description =
|
||||
Change settings specific to the VMC (Virtual Motion Capture) protocol
|
||||
to send SlimeVR's bone data and receive bone data from other apps.
|
||||
to send SlimeVR's bone data and receive bone data from other apps.
|
||||
settings-osc-vmc-enable = Enable
|
||||
settings-osc-vmc-enable-description = Toggle the sending and receiving of data.
|
||||
settings-osc-vmc-enable-label = Enable
|
||||
@@ -864,30 +893,30 @@ onboarding-wifi_creds-password =
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Go Back to Mounting calibration
|
||||
onboarding-reset_tutorial = Reset tutorial
|
||||
onboarding-reset_tutorial-explanation = While you use your trackers they might get out of alignment because of IMU yaw drift, or because you might have moved them physically. You have several ways to fix this.
|
||||
onboarding-reset_tutorial-explanation = While you use your trackers, they might get out of alignment because of IMU yaw drift, or because you might have moved them physically. You have several ways to fix this.
|
||||
onboarding-reset_tutorial-skip = Skip step
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-0 = Tap { $taps } times the highlighted tracker for triggering yaw reset.
|
||||
onboarding-reset_tutorial-0 = Tap the highlighted tracker { $taps } times to trigger a yaw reset.
|
||||
|
||||
This will make the trackers face the same direction as your headset (HMD).
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-1 = Tap { $taps } times the highlighted tracker for triggering full reset.
|
||||
onboarding-reset_tutorial-1 = Tap the highlighted tracker { $taps } times to trigger a full reset.
|
||||
|
||||
You need to be standing for this (i-pose). There is a 3 seconds delay (configurable) before it actually happens.
|
||||
This fully resets the position and rotation of all your trackers. It should fix most issues.
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-2 = Tap { $taps } times the highlighted tracker for triggering mounting reset.
|
||||
onboarding-reset_tutorial-2 = Tap the highlighted tracker { $taps } times to trigger a mounting reset.
|
||||
|
||||
Mounting reset helps on how the trackers are actually put on you, so if you accidentally moved them and changed how they are oriented by a big amount, this will help.
|
||||
Mounting reset adjusts for how trackers are placed on your body. If they've moved or rotated significantly, this helps recalibrate their orientation.
|
||||
|
||||
You need to be on a pose like you are skiing like it's shown on the Automatic Mounting wizard and you have a 3 second delay (configurable) before it gets triggered.
|
||||
You need to be in a pose like you are skiing as shown in the Automatic Mounting wizard, and you have a 3 second delay (configurable) before it gets triggered.
|
||||
|
||||
## Setup start
|
||||
onboarding-home = Welcome to SlimeVR
|
||||
onboarding-home-start = Let's get set up!
|
||||
|
||||
## Enter VR part of setup
|
||||
onboarding-enter_vr-back = Go Back to Tracker assignent
|
||||
onboarding-enter_vr-back = Go Back to Tracker assignment
|
||||
onboarding-enter_vr-title = Time to enter VR!
|
||||
onboarding-enter_vr-description = Put on all your trackers and then enter VR!
|
||||
onboarding-enter_vr-ready = I'm ready
|
||||
@@ -916,13 +945,13 @@ onboarding-connect_tracker-connection_status-done = Connected to the Server
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = Could not get logs from the tracker
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = Could not find a tracker from USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = Is the tracker turned on?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Make sure the tracker is turned on and connected to your computer
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Make sure the tracker is turned on and connected to your computer.
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = No trackers detected
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
Please connect a tracker with the provided usb cable to your computer and turn the tracker on.
|
||||
Please connect a tracker with the provided USB cable to your computer and turn the tracker on.
|
||||
If this does not work:
|
||||
- try with another usb cable
|
||||
- try with another usb port
|
||||
- try using a different USB cable
|
||||
- try using a different USB port
|
||||
- try reinstalling the SlimeVR server and select "USB Drivers" in the components section
|
||||
# $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
|
||||
@@ -939,8 +968,8 @@ onboarding-connect_tracker-next = I connected all my trackers
|
||||
## Tracker calibration tutorial
|
||||
onboarding-calibration_tutorial = IMU Calibration Tutorial
|
||||
onboarding-calibration_tutorial-subtitle = This will help reduce tracker drifting!
|
||||
onboarding-calibration_tutorial-description = Every time you turn on your trackers, they need to rest for a moment on a flat surface to calibrate. Let's do the same thing by clicking the "{ onboarding-calibration_tutorial-calibrate }" button, <b>do not move them!</b>
|
||||
onboarding-calibration_tutorial-calibrate = I placed my trackers on the table
|
||||
onboarding-calibration_tutorial-description-v1 = After turning on your trackers, place them on a stable surface for a moment to allow for calibration. Calibration can be performed at any time after the trackers are powered on—this page simply provides a tutorial. To begin, click the "{ onboarding-calibration_tutorial-calibrate }" button, then <b>do not move your trackers!</b>
|
||||
onboarding-calibration_tutorial-calibrate = I placed my trackers on a table
|
||||
onboarding-calibration_tutorial-status-waiting = Waiting for you
|
||||
onboarding-calibration_tutorial-status-calibrating = Calibrating
|
||||
onboarding-calibration_tutorial-status-success = Nice!
|
||||
@@ -1088,8 +1117,9 @@ onboarding-automatic_mounting-mounting_reset-title = Mounting Reset
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Squat in a "skiing" pose with your legs bent, your upper body tilted forwards, and your arms bent.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Press the "Reset Mounting" button and wait for 3 seconds before the trackers' mounting orientations will reset.
|
||||
onboarding-automatic_mounting-preparation-title = Preparation
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stand upright with your arms to your sides.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Press the "Full Reset" button and wait for 3 seconds before the trackers will reset.
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Press the "Full Reset" button.
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Stand upright with your arms to your sides. Make sure to look forward.
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Hold the position until the 3s timer ends.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Put on your trackers
|
||||
onboarding-automatic_mounting-put_trackers_on-description = To calibrate mounting orientations, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = I have all my trackers on
|
||||
@@ -1130,9 +1160,9 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
onboarding-automatic_proportions-requirements-next = I have read the requirements
|
||||
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Measure your headset height
|
||||
onboarding-automatic_proportions-check_height-description-v2 = Your headset (HMD) height should be slightly less than your full height, as headsets measure your eye height. This measurement will be used as a baseline for your body proportions.
|
||||
onboarding-automatic_proportions-check_height-description-v2 = Your headset (HMD) height should be slightly less than your full height because headsets measure your eye height. This measurement will be used as a baseline for your body proportions.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Start measuring while standing <u>upright</u> to measure your height. Be careful to not raise your hands higher than your headset, as they may affect the measurement!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Start measuring while standing <u>upright</u> to measure your height. Be careful not to raise your hands higher than your headset, as they may affect the measurement!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip = If you are using a standalone VR headset, make sure to have your guardian /
|
||||
boundary turned on so that your height is correct!
|
||||
# Context is that the height is unknown
|
||||
@@ -1167,9 +1197,9 @@ onboarding-automatic_proportions-recording-description-p1 = Make the moves shown
|
||||
# Each line of text is a different list item
|
||||
onboarding-automatic_proportions-recording-steps =
|
||||
Standing up straight, roll your head in a circle.
|
||||
Bend your back forwards and squat. While squatting, look to your left, then to your right.
|
||||
Twist your upper body to the left (counter-clockwise), then reach down towards the ground.
|
||||
Twist your upper body to the right (clockwise), then reach down towards the ground.
|
||||
Bend your back forward and squat. While squatting, look to your left, then to your right.
|
||||
Twist your upper body to the left (counter-clockwise), then reach down toward the ground.
|
||||
Twist your upper body to the right (clockwise), then reach down toward the ground.
|
||||
Roll your hips in a circular motion as if you're using a hula hoop.
|
||||
If there is time left on the recording, you can repeat these steps until it's finished.
|
||||
onboarding-automatic_proportions-recording-processing = Processing the result
|
||||
@@ -1210,7 +1240,7 @@ onboarding-scaled_proportions-manual_height-estimated_height = Your estimated he
|
||||
onboarding-scaled_proportions-manual_height-next_step = Continue and save
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
You are currently using the manual way of setting up scaled proportions!
|
||||
<b>This mode is recommended only if you do not use a HMD with SlimeVR</b>
|
||||
<b>This mode is recommended only if you do not use an HMD with SlimeVR.</b>
|
||||
|
||||
To be able to use the automatic scaled proportions please:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Connect a VR Headset
|
||||
@@ -1222,6 +1252,39 @@ onboarding-scaled_proportions-reset_proportion-description = To set your body pr
|
||||
onboarding-scaled_proportions-done-title = Body proportions set
|
||||
onboarding-scaled_proportions-done-description = Your body proportions should now be configured based on your height.
|
||||
|
||||
## Stay Aligned setup
|
||||
onboarding-stay_aligned-title = Stay Aligned
|
||||
onboarding-stay_aligned-description = Configure Stay Aligned to keep your trackers aligned.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Put on your trackers
|
||||
onboarding-stay_aligned-put_trackers_on-description = To save your resting poses, we'll use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = You have fewer than 5 trackers currently connected and assigned! This is the minimum amount of trackers required for Stay Aligned to function properly.
|
||||
onboarding-stay_aligned-put_trackers_on-next = I have all my trackers on
|
||||
onboarding-stay_aligned-verify_mounting-title = Check your Mounting
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = Stay Aligned requires good mounting. Otherwise, you won't get a good experience with Stay Aligned.
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. Move around while standing.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Sit down and move your legs and feet.
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. If your trackers aren't in the right place, press "Redo Mounting Calibration".
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = Redo Mounting calibration
|
||||
onboarding-stay_aligned-preparation-title = Preparation
|
||||
onboarding-stay_aligned-preparation-tip = Make sure to stand upright. Keep looking forward with your arms down at your sides.
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = Relaxed Standing Pose
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Stand in a comfortable position. Relax!
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Press the "Save pose" button.
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = Relaxed Sitting in Chair Pose
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Sit in a comfortable position. Relax!
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Press the "Save pose" button.
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Relaxed Sitting on Floor Pose
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Sit on the floor with your legs in front. Relax!
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Press the "Save pose" button.
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Skip
|
||||
onboarding-stay_aligned-done-title = Stay Aligned enabled!
|
||||
onboarding-stay_aligned-done-description = Your Stay Aligned setup is complete!
|
||||
onboarding-stay_aligned-done-description-2 = Setup is complete! You may restart the process if you want to recalibrate the poses.
|
||||
onboarding-stay_aligned-previous_step = Previous
|
||||
onboarding-stay_aligned-next_step = Next
|
||||
onboarding-stay_aligned-restart = Restart
|
||||
onboarding-stay_aligned-done = Done
|
||||
|
||||
## Home
|
||||
home-no_trackers = No trackers detected or assigned
|
||||
|
||||
@@ -1241,6 +1304,10 @@ status_system-StatusSteamVRDisconnected = { $type ->
|
||||
}
|
||||
status_system-StatusTrackerError = The { $trackerName } tracker has an error.
|
||||
status_system-StatusUnassignedHMD = The VR headset should be assigned as a head tracker.
|
||||
status_system-StatusPublicNetwork = {$count ->
|
||||
[one] Your network profile is currently set to Public ({$adapters}). This is not recommended for SlimeVR to function properly. <PublicFixLink>See how to fix it here.</PublicFixLink>
|
||||
*[many] Some of your network adapters are set to public: {$adapters}. This is not recommended for SlimeVR to function properly. <PublicFixLink>See how to fix it here.</PublicFixLink>
|
||||
}
|
||||
|
||||
|
||||
## Firmware tool globals
|
||||
@@ -1264,7 +1331,7 @@ firmware_tool-board_step-description = Select one of the boards listed below.
|
||||
firmware_tool-board_pins_step = Check the pins
|
||||
firmware_tool-board_pins_step-description =
|
||||
Please verify that the selected pins are correct.
|
||||
If you followed the SlimeVR documentation the defaults values should be correct
|
||||
If you followed the SlimeVR documentation, the default values should be correct.
|
||||
firmware_tool-board_pins_step-enable_led = Enable LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED Pin
|
||||
@@ -1292,8 +1359,8 @@ firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
|
||||
firmware_tool-add_imus_step = Declare your IMUs
|
||||
firmware_tool-add_imus_step-description =
|
||||
Please add the IMUs that your tracker has
|
||||
If you followed the SlimeVR documentation the defaults values should be correct
|
||||
Please add the IMUs that your tracker has.
|
||||
If you followed the SlimeVR documentation, the default values should be correct.
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU type
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Select the type of IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
@@ -1325,23 +1392,23 @@ firmware_tool-flash_method_step-description =
|
||||
Please select the flashing method you want to use
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Use the over the air method. Your tracker will use the Wi-Fi to update it's firmware. Works only on already setup trackers.
|
||||
.description = Use the over-the-air method. Your tracker will use Wi-Fi to update its firmware. Only works on trackers that have been set up.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Use a USB cable to update your tracker.
|
||||
|
||||
firmware_tool-flashbtn_step = Press the boot btn
|
||||
firmware_tool-flashbtn_step-description = Before going into the next step there is a few things you need to do
|
||||
firmware_tool-flashbtn_step-description = Before going to the next step, there are a few things you need to do
|
||||
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Turn off the tracker, remove the case (if any), connect a USB cable to this computer, then do one of the following steps according to your SlimeVR board revision:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Turn on the tracker while shorting the second rectangular FLASH pad from the edge on the top side of the board, and the metal shield of the microcontroller
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Turn on the tracker while shorting the circular FLASH pad on the top side of the board, and the metal shield of the microcontroller
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Turn on the tracker while pushing in the FLASH button on the top side of the board
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Turn off the tracker, remove the case (if any), connect the USB cable to your computer, then follow the appropriate steps for your SlimeVR board revision:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Turn on the tracker while shorting the second rectangular FLASH pad from the edge on the top side of the board to the metal shield of the microcontroller.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Turn on the tracker while shorting the circular FLASH pad on the top side of the board to the metal shield of the microcontroller.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Turn on the tracker while pushing in the FLASH button on the top side of the board.
|
||||
|
||||
firmware_tool-flashbtn_step-board_OTHER = Before flashing you will probably need to put the tracker into bootloader mode.
|
||||
Most of the time it means pressing the boot button on the board before the flashing process starts.
|
||||
If the flashing process timeout at the begining of the flashing it probably means that the tracker was not in bootloader mode
|
||||
Please refer to the flashing instructions of your board to know how to turn on the boatloader mode
|
||||
firmware_tool-flashbtn_step-board_OTHER = Before flashing, you will probably need to put the tracker into bootloader mode.
|
||||
Most of the time, this means pressing the boot button on the board before the flashing process starts.
|
||||
If the flashing process times out at the start, it probably means that the tracker was not in bootloader mode.
|
||||
Refer to your board's flashing instructions to learn how to enter bootloader mode.
|
||||
|
||||
|
||||
|
||||
@@ -1394,8 +1461,8 @@ firmware_update-status-ERROR_UNKNOWN = Unknown error
|
||||
## Dedicated Firmware Update Page
|
||||
firmware_update-title = Firmware update
|
||||
firmware_update-devices = Available Devices
|
||||
firmware_update-devices-description = Please select the trackers you want to update to the latest version of SlimeVR firmware
|
||||
firmware_update-no_devices = Plase make sure that the trackers you want to update are ON and connected to the Wi-Fi!
|
||||
firmware_update-devices-description = Please select the trackers you want to update to the latest version of SlimeVR firmware.
|
||||
firmware_update-no_devices = Please make sure that the trackers you want to update are ON and connected to the Wi-Fi!
|
||||
firmware_update-changelog-title = Updating to {$version}
|
||||
firmware_update-looking_for_devices = Looking for devices to update...
|
||||
firmware_update-retry = Retry
|
||||
@@ -1410,7 +1477,7 @@ tray_menu-quit = Quit
|
||||
## First exit modal
|
||||
tray_or_exit_modal-title = What should the close button do?
|
||||
# Multiline text
|
||||
tray_or_exit_modal-description = This lets you choose whether you want to exit the server or to minimize it to the tray when pressing the close button.
|
||||
tray_or_exit_modal-description = Choose whether to exit the server or minimize it to the tray when clicking the close button.
|
||||
|
||||
You can change this later in the interface settings!
|
||||
tray_or_exit_modal-radio-exit = Exit on close
|
||||
@@ -1442,6 +1509,9 @@ vrc_config-show_more = Show more
|
||||
vrc_config-setting_name = VRChat Setting name
|
||||
vrc_config-recommended_value = Recommended Value
|
||||
vrc_config-current_value = Current Value
|
||||
vrc_config-mute = Mute Warning
|
||||
vrc_config-mute-btn = Mute
|
||||
vrc_config-unmute-btn = Unmute
|
||||
vrc_config-legacy_mode = Use Legacy IK Solving
|
||||
vrc_config-disable_shoulder_tracking = Disable Shoulder Tracking
|
||||
vrc_config-shoulder_width_compensation = Shoulder Width Compensation
|
||||
@@ -1457,7 +1527,7 @@ vrc_config-spine_mode-LOCK_BOTH = Lock Both
|
||||
vrc_config-spine_mode-LOCK_HEAD = Lock Head
|
||||
vrc_config-spine_mode-LOCK_HIP = Lock Hip
|
||||
|
||||
vrc_config-tracker_model-UNKNOWN = Unkown
|
||||
vrc_config-tracker_model-UNKNOWN = Unknown
|
||||
vrc_config-tracker_model-AXIS = Axis
|
||||
vrc_config-tracker_model-BOX = Box
|
||||
vrc_config-tracker_model-SPHERE = Sphere
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
|
||||
websocket-connecting = Conectando al servidor
|
||||
websocket-connection_lost = Conexión al servidor perdida. Intentando reconectar...
|
||||
websocket-connection_lost-desc = Parece que el servidor de SlimeVR ha dejado de funcionar. Revise los registros y reinicie el programa.
|
||||
websocket-timedout = No se ha podido conectar al servidor.
|
||||
websocket-timedout-desc = Parece que el servidor de SlimeVR ha dejado de funcionar o se agotó el tiempo de espera de la conexión. Revise los registros y reinicie el programa
|
||||
websocket-error-close = Salir de SlimeVR
|
||||
websocket-error-logs = Abrir la carpeta de registros
|
||||
|
||||
## Update notification
|
||||
|
||||
@@ -92,40 +97,151 @@ board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-WRANGLER = Wrangler Joycons
|
||||
board_type-MOCOPI = Sony Mocopi
|
||||
board_type-WEMOSWROOM02 = Wemos Wroom-02 D1 Mini
|
||||
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
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Nada
|
||||
skeleton_bone-HEAD = Inclinación de cabeza
|
||||
skeleton_bone-HEAD-desc =
|
||||
Esta es la distancia entre tu casco y el medio de tu cabeza.
|
||||
Para ajustarlo, mueve tu cabeza de izquierda a derecha como si no estuvieras de acuerdo
|
||||
y modifícalo hasta que cualquier movimiento con otros trackers sea insignificante.
|
||||
skeleton_bone-NECK = Largo del cuello
|
||||
skeleton_bone-NECK-desc =
|
||||
Esta es la distancia entre el medio de tu cabeza hacia la base de tu nuca.
|
||||
Para ajustarlo, mueve tu cabeza de arriba a abajo como su estuvieras asintiendo o ladea tu cabeza
|
||||
hacia la izquierda y derecha y modifícalo hasta que cualquier movimiento con otros trackers sea insignificante.
|
||||
skeleton_bone-torso_group = Largo del torso
|
||||
skeleton_bone-torso_group-desc =
|
||||
Esta es la distancia entre la base de tu nuca con tus caderas.
|
||||
Para ajustarlo, modifícalo parándote recto hasta que tus caderas virtuales se alineen
|
||||
con las reales.
|
||||
skeleton_bone-UPPER_CHEST = Largo del pecho superior
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
Esta es la distancia entre la base de tu nuca hacia el medio de tu pecho.
|
||||
Para ajustarlo, ajusta el largo de tu torso apropiadamente y modifícalo en varias posiciones
|
||||
(Sentándote, agachándote, acostándote, etc.) hasta que tu columna virtual se alinee con la real.
|
||||
skeleton_bone-CHEST_OFFSET = Chest Offset
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
Esto se puede ajustar para mover tu tracker de pecho virtual hacia arriba o abajo para ayudar
|
||||
con la calibración en ciertos juegos o aplicaciones que lo esperan mas alto o bajo.
|
||||
skeleton_bone-CHEST = Largo del pecho
|
||||
skeleton_bone-CHEST-desc =
|
||||
Esta es la distancia entre la mitad de tu pecho hasta la mitad de tu columna.
|
||||
Para ajustarlo, ajusta el largo de tu torso apropiadamente y modifícalo en varias posiciones
|
||||
(sentándote, agachándote, acostándote, etc.) hasta que tu columna virtual se alinee con la real.
|
||||
skeleton_bone-WAIST = Largo de la cintura
|
||||
skeleton_bone-WAIST-desc =
|
||||
Esta es la distancia entre la mitad de tu columna con tu ombligo.
|
||||
Para ajustarlo, ajusta el largo de tu torso apropiadamente y modifícalo en varias posiciones
|
||||
(sentándote, agachándote, acostándote, etc.) hasta que tu columna virtual se alinee con la real.
|
||||
skeleton_bone-HIP = Largo de la cadera
|
||||
skeleton_bone-HIP-desc =
|
||||
Esta es la distancia entre tu ombligo hacia tus caderas
|
||||
Para ajustarla, ajusta el largo de tu torso apropiadamente y modifícala en varias posiciones
|
||||
(sentándote, agachándote, acostándote, etc.) hasta que tu columna virtual se alinee con la real.
|
||||
skeleton_bone-HIP_OFFSET = Desplazamiento de la cadera
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
Esto se puede ajustar para mover tu cadera virtual hacia arriba o hacia abajo para ayudar
|
||||
con la calibración en ciertos juegos o aplicaciones que lo esperen en tu cintura.
|
||||
skeleton_bone-HIPS_WIDTH = Ancho de la cadera
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
Esta es la distancia entre el comienzo de tus piernas.
|
||||
Para ajustarlo, inicia un reinicio completo con tus piernas rectas y modifícalo hasta que
|
||||
tus piernas virtuales se alineen con las reales horizontalmente.
|
||||
skeleton_bone-leg_group = Largo de la pierna
|
||||
skeleton_bone-leg_group-desc =
|
||||
Esta es la distancia entre tus caderas hacia tus pies.
|
||||
Para ajustarlo, ajusta el largo de tu torso apropiadamente y modifícalo
|
||||
hasta que tus pies virtuales estén al mismo nivel que los tuyos.
|
||||
skeleton_bone-UPPER_LEG = Largo del muslo
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
Esta es la distancia entre tus caderas hacia tus rodillas.
|
||||
Para ajustarlo, ajusta el largo de tus piernas apropiadamente y modifícalo
|
||||
hasta que tus rodillas virtuales estén al mismo nivel que las tuyas.
|
||||
skeleton_bone-LOWER_LEG = Largo de la tibia
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
Esta es la distancia entre tus rodillas hacia tus tobillos.
|
||||
Para ajustarlo, ajusta el largo de tus piernas apropiadamente y modifícalo
|
||||
hasta que tus rodillas virtuales estén al mismo nivel que las tuyas.
|
||||
skeleton_bone-FOOT_LENGTH = Largo del pie
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
Esta es la distancia entre tus tobillos hacia tus dedos del pie.
|
||||
Para ajustarla, párate de puntillas y modifícalo hasta que tus pies virtuales se mantengan en su lugar.
|
||||
skeleton_bone-FOOT_SHIFT = Desplazamiento de pies
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Este valor es la distancia horizontal entre tu rodilla hacia tu tobillo.
|
||||
Toma en cuenta las piernas bajas yendo hacia atrás cuando te paras recto.
|
||||
Para ajustarlo, pon el largo de los pies en 0, inicia un reinicia completo y modifícalo hasta que tus pies
|
||||
virtuales se alineen con el medio de tus tobillos.
|
||||
skeleton_bone-SKELETON_OFFSET = Desplazamiento del esqueleto
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
Esto puede ser ajustado para compensar todos tus trackers hacia adelante o hacia atrás.
|
||||
Se puede usar para ayudar con la calibración en ciertos juegos o aplicaciones
|
||||
que pueden esperar tus trackers estando más adelante.
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distancia de los hombros
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
Esta es la distancia vertical desde la base de tu nuca hasta tus hombros.
|
||||
Para ajustarlo, pon el largo del brazo superior en 0 y modifícalo hasta que tus trackers de codo virtuales
|
||||
se alineen verticalmente con tus hombros reales.
|
||||
skeleton_bone-SHOULDERS_WIDTH = Ancho de los hombros
|
||||
skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
Esta es la distancia horizontal desde la base de tu nuca hasta tus hombros.
|
||||
Para ajustarlo, pon el largo del brazo superior en 0 y modifícalo hasta que tus trackers de codo virtuales
|
||||
se alineen horizontalmente con tus hombros reales.
|
||||
skeleton_bone-arm_group = Largo del brazo
|
||||
skeleton_bone-arm_group-desc =
|
||||
Esta es la distancia desde tus hombros hasta tus muñecas.
|
||||
Para ajustarlo, ajusta la distancia de los hombros apropiadamente, pon la distancia de las manos Y
|
||||
en 0 y modifícalo hasta que tus trackers de mano se alineen con tus muñecas.
|
||||
skeleton_bone-UPPER_ARM = Largo del brazo superior
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
Esta es la distancia desde tus hombros hasta tus codos.
|
||||
Para ajustarlo, ajusta el largo de los brazos apropiadamente y modifícalo hasta que
|
||||
tus trackers de codos se alineen con tus codos reales.
|
||||
skeleton_bone-LOWER_ARM = Distancia del antebrazo
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
Esta es la distancia desde tus codos hasta tus muñecas.
|
||||
Para ajustarlo, ajusta el largo de los brazos apropiadamente y modifícalo hasta que
|
||||
tus trackers de codos se alineen con tus codos reales.
|
||||
skeleton_bone-HAND_Y = Distancia Y de la mano
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
Esta es la distancia vertical desde tus muñecas hasta la mitad de tu mano.
|
||||
Para ajustarlo para captura de movimiento, ajusta el largo de los brazos apropiadamente y modifícalo hasta que tus
|
||||
trackers de manos se alineen verticalmente con el medio de tus manos.
|
||||
Para ajustarlo para tracking de codo desde tus controles, pon el largo de los brazos en 0 y
|
||||
modifícalo hasta que tus trackers de codos se alineen verticalmente con tus muñecas.
|
||||
skeleton_bone-HAND_Z = Distancia Z de la mano
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
Esta es la distancia horizontal desde tus muñecas hasta la mitad de tu mano.
|
||||
Para ajustarlo para captura de movimiento, ponlo en 0.
|
||||
Para ajustarlo para tracking de codos desde tus controles, pon el largo de los brazos en 0 y
|
||||
modifícalo hasta que tus trackers de codos se alineen horizontalmente con tus muñecas.
|
||||
skeleton_bone-ELBOW_OFFSET = Desplazamiento del codo
|
||||
skeleton_bone-ELBOW_OFFSET-desc =
|
||||
Esto se puede ajustar para mover tus trackers de codos virtuales hacia arriba o hacia abajo para ayudar
|
||||
con VRChat accidentalmente colocando un tracker de codo al pecho.
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = Reiniciar todas las proporciones
|
||||
reset-reset_all_warning-v2 =
|
||||
<b>Advertencia:</b> Sus proporciones se restablecerán a los valores predeterminados escalados a su altura configurada.
|
||||
¿Estás seguro de que quiere hacer esto?
|
||||
reset-reset_all_warning-reset = Reiniciar proporciones
|
||||
reset-reset_all_warning-cancel = Cancelar
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>Advertencia:</b> Su altura no ha sido configurada, sus proporciones se restablecerán a los valores predeterminados con la altura predeterminada.
|
||||
¿Estás seguro de que quieres hacer esto?
|
||||
reset-full = Reinicio completo
|
||||
reset-mounting = Reinicio de montura
|
||||
reset-yaw = Reinicio horizontal
|
||||
@@ -193,6 +309,7 @@ widget-imu_visualizer-rotation_raw = Raw
|
||||
widget-imu_visualizer-rotation_preview = Preview
|
||||
widget-imu_visualizer-acceleration = Aceleración
|
||||
widget-imu_visualizer-position = Posición
|
||||
widget-imu_visualizer-stay_aligned = Mantente Alineado
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -220,6 +337,7 @@ tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Accel. X/Y/Z
|
||||
tracker-table-column-rotation = Rotación X/Y/Z
|
||||
tracker-table-column-position = Posición X/Y/Z
|
||||
tracker-table-column-stay_aligned = Mantente Alineado
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -286,6 +404,7 @@ tracker-settings-forget = Olvidar tracker
|
||||
tracker-settings-forget-description = Remueve el tracker del servidor de SlimeVR y lo previene de conectarse hasta que el servidor se reinicie. La configuración del tracker no se perderá.
|
||||
tracker-settings-forget-label = Olvidar tracker
|
||||
tracker-settings-update-unavailable = No se puede actualizar (DIY)
|
||||
tracker-settings-update-low-battery = No se puede actualizar. Batería por debajo del 50%
|
||||
tracker-settings-update-up_to_date = Actualizado
|
||||
tracker-settings-update-available = { $versionName } ya está disponible
|
||||
tracker-settings-update = Actualizar ahora
|
||||
@@ -356,6 +475,7 @@ mounting_selection_menu-close = Cerrar
|
||||
settings-sidebar-title = Ajustes
|
||||
settings-sidebar-general = General
|
||||
settings-sidebar-tracker_mechanics = Mecánicas del sensor
|
||||
settings-sidebar-stay_aligned = Mantente Alineado
|
||||
settings-sidebar-fk_settings = Ajustes de FK
|
||||
settings-sidebar-gesture_control = Control de gestos
|
||||
settings-sidebar-interface = Interfaz
|
||||
@@ -365,7 +485,9 @@ settings-sidebar-utils = Utilidades
|
||||
settings-sidebar-serial = Consola serial
|
||||
settings-sidebar-appearance = Apariencia
|
||||
settings-sidebar-notifications = Notificaciones
|
||||
settings-sidebar-behavior = Comportamiento
|
||||
settings-sidebar-firmware-tool = Herramienta de firmware DIY
|
||||
settings-sidebar-vrc_warnings = Advertencias de la configuración de VRChat
|
||||
settings-sidebar-advanced = Avanzado
|
||||
|
||||
## SteamVR settings
|
||||
@@ -447,6 +569,25 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Usa el magnetómetro en todos los trackers que tienen un firmware compatible, lo que reduce la desviación en entornos magnéticos estables.
|
||||
Se puede desactivar por sensor en la configuración del sensor. <b>¡Por favor, no apagues ninguno de los trackers mientras activas esta opción!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Usar magnetómetro en trackers
|
||||
settings-stay_aligned = Mantente Alineado
|
||||
settings-stay_aligned-description = Mantente Alineado reduce el desvío ajustando gradualmente tus trackers para calzar tus poses relajadas.
|
||||
settings-stay_aligned-setup-label = Configurar Mantente Alineado
|
||||
settings-stay_aligned-setup-description = Debes completar «Configurar Mantente Alineado» para activar Mantente Alineado.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ ¡Por favor desactiva la compensación de desvío! La compensación de desvío causará conflictos con Mantente Alineado.
|
||||
settings-stay_aligned-enabled-label = Ajustar trackers
|
||||
settings-stay_aligned-hide_yaw_correction-label = Ocultar ajustes (para comparar sin Mantente Alineado)
|
||||
settings-stay_aligned-general-label = General
|
||||
settings-stay_aligned-relaxed_poses-label = Poses relajadas
|
||||
settings-stay_aligned-relaxed_poses-description = Mantente Alineado utiliza tus poses relajadas para mantener tus trackers alineados. Utiliza «Configurar Mantente Alineado» para actualizar estas poses.
|
||||
settings-stay_aligned-relaxed_poses-standing = Ajustar trackers al estar parado
|
||||
settings-stay_aligned-relaxed_poses-sitting = Ajustar trackers al sentarse en una silla
|
||||
settings-stay_aligned-relaxed_poses-flat = Ajustar trackers al sentarse en el suelo o recostándose en su espalda.
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Guardar pose
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Reiniciar pose
|
||||
settings-stay_aligned-relaxed_poses-close = Cerrar
|
||||
settings-stay_aligned-debug-label = Depuración
|
||||
settings-stay_aligned-debug-description = Por favor incluye tus ajustes cuando reportes problemas acerca de Mantente Alineado.
|
||||
settings-stay_aligned-debug-copy-label = Copiar ajustes al portapapeles
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -542,6 +683,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = Aumen
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = Apariencia
|
||||
settings-general-interface-dev_mode = Modo desarrollador
|
||||
settings-general-interface-dev_mode-description = Este modo puede ser útil si es que necesitas información a fondo o para un nivel de interacción más avanzado con los sensores conectados.
|
||||
settings-general-interface-dev_mode-label = Modo desarrollador
|
||||
settings-general-interface-theme = Tema de color
|
||||
settings-general-interface-show-navbar-onboarding = Mostrar «{ navbar-onboarding }» en la barra de navegación
|
||||
settings-general-interface-show-navbar-onboarding-description = Esto cambia si el botón "{ navbar-onboarding }" se muestra en la barra de navegación.
|
||||
@@ -577,6 +721,7 @@ settings-general-interface-connected_trackers_warning-label = Advertencia de tra
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportamiento
|
||||
settings-general-interface-dev_mode = Modo desarrollador
|
||||
settings-general-interface-dev_mode-description = Este modo puede ser útil si es que necesitas información a fondo o para un nivel de interacción más avanzado con los sensores conectados.
|
||||
settings-general-interface-dev_mode-label = Modo desarrollador
|
||||
@@ -593,6 +738,14 @@ settings-general-interface-discord_presence-message =
|
||||
[many] Usando { $amount } de sensores
|
||||
*[other] Usando { $amount } sensores
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Recopilación de errores a través de Sentry.io
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Consientes a la recopilación de datos de errores anonimizados?</h1>
|
||||
|
||||
<b>No recopilamos información personal</b> como tu dirección IP o credenciales del Wi-Fi. ¡SlimeVR respeta tu privacidad!
|
||||
|
||||
Para proveer la mejor experiencia de usuario, recopilamos reportes de errores anonimizados, métricas de rendimiento, e información del sistema operativo. Esto nos ayuda a detectar errores y problemas con SlimeVR. Estas métricas son recopiladas a través de Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Enviar errores a los desarrolladores
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -656,6 +809,13 @@ settings-osc-vrchat-description-v1 =
|
||||
settings-osc-vrchat-enable = Habilitar
|
||||
settings-osc-vrchat-enable-description = Habilita el envio y recibo de datos.
|
||||
settings-osc-vrchat-enable-label = Habilitar
|
||||
settings-osc-vrchat-oscqueryEnabled = Habilitar OSCQuery
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery detecta automáticamente las instancias en ejecución de VRChat y les envía datos.
|
||||
También puede anunciarse a ellos para recibir datos del HMD y los mandos.
|
||||
Para permitir la recepción de datos de HMD y mandos de VRChat, vaya a la configuración de su menú principal
|
||||
en «Seguimiento e IK» y habilite «Permitir el envío de datos OSC de seguimiento de VR de cabeza y muñeca».
|
||||
settings-osc-vrchat-oscqueryEnabled-label = Habilitar OSCQuery
|
||||
settings-osc-vrchat-network = Puertos de conexión
|
||||
settings-osc-vrchat-network-description-v1 = Establece los puertos para recibir y enviar datos. Se puede dejar sin cambiar para VRChat.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
@@ -733,7 +893,12 @@ settings-utils-advanced-reset_warning =
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = Reiniciar ajustes
|
||||
settings-utils-advanced-reset_warning-cancel = Cancelar
|
||||
settings-utils-advanced-open_data-v1 = Carpeta de configuración
|
||||
settings-utils-advanced-open_data-description-v1 = Abre la carpeta de configuración de SlimeVR en el explorador de archivos, que contiene la configuración
|
||||
settings-utils-advanced-open_data-label = Abrir carpeta
|
||||
settings-utils-advanced-open_logs = Carpeta de registros
|
||||
settings-utils-advanced-open_logs-description = Abre la carpeta de registros de SlimeVR en el explorador de archivos, que contiene los registros de la aplicación
|
||||
settings-utils-advanced-open_logs-label = Abrir carpeta
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -825,6 +990,17 @@ onboarding-connect_tracker-connection_status-looking_for_server = Buscando servi
|
||||
onboarding-connect_tracker-connection_status-connection_error = Incapaz de conectar al Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = No se pudo encontrar el servidor
|
||||
onboarding-connect_tracker-connection_status-done = Conectado con el servidor
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = No se pudieron obtener los registros del tracker
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = No se pudo encontrar un tracker por USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = ¿El tracker esta encendido?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Asegúrate de que el tracker esté encendido y conectado a tu computadora
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = No se detectan trackers
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
Por favor conecta un tracker con el cable usb hacia tu computadora y enciende el tracker.
|
||||
Si esto no funciona:
|
||||
- intenta con otro cable usb
|
||||
- intenta con otro puerto usb
|
||||
- intenta reinstalando el servidor de SlimeVR y selecciona «Drivers USB» en la sección de componentes
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -1011,8 +1187,9 @@ onboarding-automatic_mounting-mounting_reset-title = Reinicio de montura
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Arrodíllate en una posición de «esquiar» con tus piernas dobladas, la parte superior de tu cuerpo inclinada hacia adelante, y tus brazos doblados.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Presiona el botón «Reinicio de montura» y espera 3 segundos hasta que se reinicie la montura.
|
||||
onboarding-automatic_mounting-preparation-title = Preparación
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Párate derecho con tus brazos a los costados.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Presiona el botón «Reiniciar» y espera 3 segundos hasta que se reinicien los sensores.
|
||||
onboarding-automatic_mounting-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.
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Mantén la posición hasta que el temporizador de 3s termine.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Ponte tus sensores
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la ubicación de tus monturas, usaremos los sensores que has asignado. Ponte todos tus sensores, puedes ver cuál es cual en la figura de la derecha.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Tengo puestos todos mis sensores
|
||||
@@ -1021,9 +1198,16 @@ onboarding-automatic_mounting-put_trackers_on-next = Tengo puestos todos mis sen
|
||||
|
||||
onboarding-manual_proportions-back = Volver al tutorial de reinicio
|
||||
onboarding-manual_proportions-title = Proporciones de cuerpo manuales
|
||||
onboarding-manual_proportions-precision = Ajuste con precisión
|
||||
onboarding-manual_proportions-auto = Calibración automática
|
||||
onboarding-manual_proportions-ratio = Ajustar por porcentajes
|
||||
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
|
||||
onboarding-manual_proportions-export = Exportar proporciones
|
||||
onboarding-manual_proportions-import = Importar proporciones
|
||||
onboarding-manual_proportions-file_type = Archivo de proporciones del cuerpo
|
||||
onboarding-manual_proportions-normal_increment = Incremento normal
|
||||
onboarding-manual_proportions-precise_increment = Incremento preciso
|
||||
onboarding-manual_proportions-grouped_proportions = Proporciones agrupadas
|
||||
onboarding-manual_proportions-all_proportions = Todas las proporciones
|
||||
onboarding-manual_proportions-estimated_height = Altura de usuario estimada
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1044,7 +1228,10 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
Tu visor esta reportando datos posicionales al servidor de SlimeVR (esto generalmente significa tener SteamVR abierto y conectado a SlimeVR usando el driver de SlimeVR para SteamVR).
|
||||
Tus sensores están funcionando y están representando tus movimientos con precisión (ej: Realizaste un reinicio completo y se mueven en la dirección correcta cuando pateas, te agachas, te sientas, etc).
|
||||
onboarding-automatic_proportions-requirements-next = He leído los requisitos
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Mide la altura de tu visor
|
||||
onboarding-automatic_proportions-check_height-description-v2 = La altura de su casco (HMD) debe ser ligeramente menor que su altura total, ya que el casco está a la altura de sus ojos. Esta medida se utilizará como punto de partida para las proporciones de su cuerpo.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Empieza a medir mientras estás <u>de pié</u> para medir tu altura. Ten cuidado con no levantar tus manos más allá de tu visor, ¡Ya que esto puede afectar la medición!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
Si está utilizando un casco de VR portable, asegúrese de tener el guardián/
|
||||
barrera activado así la altura es detectada correctamente!
|
||||
@@ -1055,11 +1242,14 @@ onboarding-automatic_proportions-check_height-hmd_height2 = La altura de su casc
|
||||
onboarding-automatic_proportions-check_height-measure-start = Empezar a medir
|
||||
onboarding-automatic_proportions-check_height-measure-stop = Dejar de medir
|
||||
onboarding-automatic_proportions-check_height-measure-reset = Volver a intentar la medición
|
||||
onboarding-automatic_proportions-check_height-next_step = Están bien
|
||||
onboarding-automatic_proportions-check_height-next_step = Usar la altura del visor
|
||||
onboarding-automatic_proportions-check_floor_height-title = Medir la altura de su piso (opcional)
|
||||
onboarding-automatic_proportions-check_floor_height-description = En algunos casos, es posible que el casco no ajuste correctamente la altura del piso, lo que hace que la altura del casco sea más alta de lo que debería ser. Puede medir la "altura" de su piso para corregir la altura de su casco.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = Empieza la medición y pon un mando en el piso para medir la altura. Si estás seguro de que la altura de tu piso es correcta, puedes saltar este paso.
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = La altura de su piso es:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = Su altura total estimada es:
|
||||
onboarding-automatic_proportions-check_floor_height-measure-start = Empezar a medir
|
||||
onboarding-automatic_proportions-check_floor_height-measure-stop = Dejar de medir
|
||||
onboarding-automatic_proportions-check_floor_height-measure-reset = Volver a intentar la medición
|
||||
@@ -1109,8 +1299,19 @@ onboarding-automatic_proportions-smol_warning-cancel = Volver
|
||||
onboarding-scaled_proportions-title = Proporciones escaladas
|
||||
onboarding-scaled_proportions-description = Para que los trackers SlimeVR funcionen, necesitamos saber el largo de sus huesos. Esto usará una proporción promedia y la escalará en función a su altura.
|
||||
onboarding-scaled_proportions-manual_height-title = Ajuste su altura
|
||||
onboarding-scaled_proportions-manual_height-description-v2 = Esta altura se utilizará como referencia para las proporciones de su cuerpo.
|
||||
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR no está conectado actualmente a SlimeVR, por lo que las mediciones no se pueden basar en su casco. <b>¡Proceda bajo su propio riesgo o consulte la documentación!</b>
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = Su altura total es
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = La altura estimada de su visor es:
|
||||
onboarding-scaled_proportions-manual_height-next_step = Continuar y guardar
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
Actualmente estás utilizando la manera manual para configurar las proporciones escaladas!
|
||||
|
||||
<b>Este modo solo es recomendado si no utilizas un HMD con SlimeVR</b>
|
||||
|
||||
Para poder utilizar las proporciones escaladas automáticas, por favor:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Conecta un visor VR
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Asegurate de que tus mandos están conectados y correctamente asignados a tus manos
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
@@ -1119,6 +1320,40 @@ onboarding-scaled_proportions-reset_proportion-description = Para establecer las
|
||||
onboarding-scaled_proportions-done-title = Proporciones corporales guardadas
|
||||
onboarding-scaled_proportions-done-description = Las proporciones de su cuerpo ahora deberían estar configuradas en función de su altura.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = Mantente Alineado
|
||||
onboarding-stay_aligned-description = Configura Mantente Alineado para mantener tus trackers alineados.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Ponte tus trackers
|
||||
onboarding-stay_aligned-put_trackers_on-description = Para guardar tus poses de descanso, usaremos los trackers que acabas de asignar. Colócate todos tus trackers, puedes ver cuál es cuál en la figura de la derecha.
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = ¡Tienes menos de 5 trackers actualmente conectados y asignados! Este es el monto mínimo de trackers requeridos para que Mantente Alineado funcione apropiadamente.
|
||||
onboarding-stay_aligned-put_trackers_on-next = Tengo puestos todos mis sensores
|
||||
onboarding-stay_aligned-verify_mounting-title = Revisa tu montura
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = Mantente Alineado requiere buena montura. De otra manera, no obtendrás una buena experiencia con Mantente Alineado.
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. Camina mientras estás parado.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Siéntate y mueve tus piernas y pies.
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. Si tus trackers no están en el lugar correcto, presiona «Reiniciar calibración de montura»
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = Reiniciar calibración de montura
|
||||
onboarding-stay_aligned-preparation-title = Preparación
|
||||
onboarding-stay_aligned-preparation-tip = Asegúrate de pararte recto. Debes estar mirando hacia enfrente y tus brazos deben estar hacia tus lados.
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = Pose de pie relajada
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Párate en una posición cómoda. ¡Relájate!
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Presiona el botón «Guardar pose».
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = Pose sentado en silla relajada
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Siéntate en una posición cómoda. ¡Relajate!
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Presiona el botón «Guardar pose».
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Pose sentado en piso relajada
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Siéntate en el piso con tus piernas en frente ¡Relájate!
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Presiona el botón «Guardar pose».
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Saltar
|
||||
onboarding-stay_aligned-done-title = ¡Mantente Alineado activado!
|
||||
onboarding-stay_aligned-done-description = ¡Tu configuración de Mantente Alineado está completa!
|
||||
onboarding-stay_aligned-done-description-2 = ¡Configuración completa! Puedes reiniciar el proceso si quieres re-calibrar las poses
|
||||
onboarding-stay_aligned-previous_step = Atrás
|
||||
onboarding-stay_aligned-next_step = Siguiente
|
||||
onboarding-stay_aligned-restart = Reiniciar
|
||||
onboarding-stay_aligned-done = Hecho
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = No hay sensores detectados o asignados
|
||||
@@ -1142,6 +1377,7 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = El tracker { $trackerName } tiene un error.
|
||||
status_system-StatusUnassignedHMD = El casco de RV debe ser asignado como un sensor de cabeza.
|
||||
status_system-StatusPublicNetwork = Tu perfil de red está actualmente configurado como Público. Esto no es recomendado para el correcto funcionamiento de SlimeVR. <PublicFixLink>Ve como arreglarlo aquí.</PublicFixLink>
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
@@ -1239,7 +1475,7 @@ 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-warning = No desconecte ni reinicie el sensor durante el proceso de carga a menos que se le indique que lo haga, ya que puede hacer que su placa quede inutilizable
|
||||
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
|
||||
|
||||
@@ -1257,7 +1493,7 @@ firmware_tool-build-ERROR = No se pudo compilar el firmware
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Descargando el firmware
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = Por favor reinicie el sensor
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = Por favor apaga tu tracker y enciéndelo de nuevo
|
||||
firmware_update-status-AUTHENTICATING = Autenticando con el microcontrolador
|
||||
firmware_update-status-UPLOADING = Cargando el firmware
|
||||
firmware_update-status-SYNCING_WITH_MCU = Sincronizando con el microcontrolador
|
||||
@@ -1312,6 +1548,53 @@ unknown_device-modal-description =
|
||||
¿Lo quieres conectar a SlimeVR?
|
||||
unknown_device-modal-confirm = ¡Claro!
|
||||
unknown_device-modal-forget = Ignorarlo
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = Advertencias de la configuración de VRChat
|
||||
vrc_config-page-desc = Esta página muestra el estado de tus ajustes de VRChat y muestra que ajustes son incompatibles con SlimeVR. Es altamente recomendado que arregles cualquier advertencia mostrada aquí para la mejor experiencia de usuario con SlimeVR.
|
||||
vrc_config-page-help = ¿No puedes encontrar los ajustes?
|
||||
vrc_config-page-help-desc = ¡Revisa nuestra <a>documentación en este tema!</a>
|
||||
vrc_config-page-big_menu = Tracking e IK (Menú Grande)
|
||||
vrc_config-page-big_menu-desc = Ajustes relacionados a IK en el menú de ajustes grande
|
||||
vrc_config-page-wrist_menu = Tracking e IK (Menú de Muñeca)
|
||||
vrc_config-page-wrist_menu-desc = Ajustes relacionados a IK en el menú de ajustes pequeño (menú de muñeca)
|
||||
vrc_config-on = Encendido
|
||||
vrc_config-off = Apagado
|
||||
vrc_config-invalid = ¡Tienes ajustes de VRChat mal configurados!
|
||||
vrc_config-show_more = Mostrar más
|
||||
vrc_config-setting_name = Nombre del ajuste de VRChat
|
||||
vrc_config-recommended_value = Valor recomendado
|
||||
vrc_config-current_value = Valor actual
|
||||
vrc_config-mute = Silenciar advertencia
|
||||
vrc_config-mute-btn = Silenciar
|
||||
vrc_config-unmute-btn = De-silenciar
|
||||
vrc_config-legacy_mode = Usar solución de IK de legado
|
||||
vrc_config-disable_shoulder_tracking = Desactivar tracking de hombros
|
||||
vrc_config-shoulder_width_compensation = Compensación de ancho de hombros
|
||||
vrc_config-spine_mode = Modo columna de FBT
|
||||
vrc_config-tracker_model = Modelo de tracker FBT
|
||||
vrc_config-avatar_measurement_type = Medida de avatar
|
||||
vrc_config-calibration_range = Rango de calibración
|
||||
vrc_config-calibration_visuals = Mostrar visualización de calibración
|
||||
vrc_config-user_height = Altura real del usuario
|
||||
vrc_config-spine_mode-UNKNOWN = Desconocido
|
||||
vrc_config-spine_mode-LOCK_BOTH = Bloquear ambas
|
||||
vrc_config-spine_mode-LOCK_HEAD = Bloquear cabeza
|
||||
vrc_config-spine_mode-LOCK_HIP = Bloquear cadera
|
||||
vrc_config-tracker_model-UNKNOWN = Desconocido
|
||||
vrc_config-tracker_model-AXIS = Eje
|
||||
vrc_config-tracker_model-BOX = Caja
|
||||
vrc_config-tracker_model-SPHERE = Esfera
|
||||
vrc_config-tracker_model-SYSTEM = Sistema
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = Desconocido
|
||||
vrc_config-avatar_measurement_type-HEIGHT = Altura
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = Longitud del brazo
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = ¿Podemos recopilar errores?
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-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
|
||||
|
||||
@@ -112,7 +112,16 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = Guante SlimeVR Dev IMU
|
||||
skeleton_bone-NONE = Ninguno
|
||||
skeleton_bone-HEAD = Desplazamiento de la cabeza
|
||||
skeleton_bone-NECK = Longitud del cuello
|
||||
skeleton_bone-NECK-desc =
|
||||
Esta es la distancia desde el medio de tu cabeza hasta la base de tu cuello.
|
||||
Para ajustarla, mueve tu cabeza para arriba y abajo como si estuvieras asintiendo
|
||||
o inclinalo a la izquierda y la derecha, continuando modificando
|
||||
hasta que el movimiento en otros rastreadores es insignificante.
|
||||
skeleton_bone-torso_group = Longitud del torso
|
||||
skeleton_bone-torso_group-desc =
|
||||
Esta es la distacia desde la base de tu cuello hasta tus caderas.
|
||||
Para ajustarla, modifícala mientras estes de pie derecho hasta que tus caderas virtuales
|
||||
estan en posicion con las verdaderas.
|
||||
skeleton_bone-UPPER_CHEST = Longitud del torso superior
|
||||
skeleton_bone-CHEST_OFFSET = Compensacion del pecho
|
||||
skeleton_bone-CHEST = Longitud del pecho
|
||||
@@ -306,6 +315,7 @@ tracker-settings-forget = Olvidar tracker
|
||||
tracker-settings-forget-description = Elimina el tracker del servidor SlimeVR y evita que se conecte a él hasta que se reinicie el servidor. La configuración del tracker no se perderá.
|
||||
tracker-settings-forget-label = Olvidar tracker
|
||||
tracker-settings-update-unavailable = No se puede actualizar (DIY)
|
||||
tracker-settings-update-low-battery = No se puede actualizar. Batería inferior al 50%
|
||||
tracker-settings-update-up_to_date = Actualizado
|
||||
tracker-settings-update-available = { $versionName } ya esta disponible
|
||||
tracker-settings-update = Actualizar ahora
|
||||
@@ -466,6 +476,7 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Utiliza el magnetómetro en todos los trackers que tienen un firmware compatible con él, lo que reduce el drift en entornos magnéticos estables.
|
||||
Se puede desactivar por rastreador en la configuración de los trackers. <b>¡Por favor, no apagues ninguno de los trackers mientras activas esta opción!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Usar magnetómetro en los rastreadores
|
||||
settings-stay_aligned-relaxed_poses-close = Cierra
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -563,6 +574,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = Aumen
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = Apariencia
|
||||
settings-general-interface-dev_mode = Modo de desarrollador
|
||||
settings-general-interface-dev_mode-description = Este modo puede ser útil si necesitas datos en profundidad o para interactuar con los trackers conectados a un nivel más avanzado
|
||||
settings-general-interface-dev_mode-label = Modo de desarrollador
|
||||
settings-general-interface-theme = Temas
|
||||
settings-general-interface-show-navbar-onboarding = Enseñar ''{ navbar-onboarding }" en la barra de navegación
|
||||
settings-general-interface-show-navbar-onboarding-description = Esto cambia si el botón de "{ navbar-onboarding }" enseña en la barra de navegación
|
||||
@@ -615,6 +629,12 @@ settings-general-interface-discord_presence-message =
|
||||
*[other] Usando { $amount } trackers
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Recopilación de errores a través de Sentry.io
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>¿Da su consentimiento para la recopilación de datos de error anónimos?</h1>
|
||||
|
||||
<b>No recopilamos información personal</b> , como su dirección IP o credenciales inalámbricas. ¡SlimeVR valora tu privacidad!
|
||||
|
||||
Para proporcionar la mejor experiencia de usuario, recopilamos informes de errores anónimos, métricas de rendimiento e información del sistema operativo. Esto nos ayuda a detectar errores y problemas con SlimeVR. Estas métricas se recopilan a través de Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Enviar errores a los desarrolladores
|
||||
|
||||
## Serial settings
|
||||
@@ -759,8 +779,14 @@ settings-utils-advanced-reset_warning =
|
||||
<b>Advertencia:</b> Esto restablecerá todas las configuraciones a los valores predeterminados
|
||||
¿Esta seguro de que quiere hacer esto?
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = Restablecer la configuración
|
||||
settings-utils-advanced-reset_warning-cancel = Cancelar
|
||||
settings-utils-advanced-open_data-v1 = Carpeta de configuración
|
||||
settings-utils-advanced-open_data-description-v1 = Abrirá la carpeta de configuración de SlimeVR en el explorador de archivos, que contiene la configuración
|
||||
settings-utils-advanced-open_data-label = Abrir carpeta
|
||||
settings-utils-advanced-open_logs = Carpeta de registros
|
||||
settings-utils-advanced-open_logs-description = Abra la carpeta de registros de SlimeVR en el explorador de archivos, que contiene los registros de la aplicación
|
||||
settings-utils-advanced-open_logs-label = Abrir carpeta
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -787,6 +813,7 @@ onboarding-wifi_creds-submit = ¡Enviar!
|
||||
onboarding-wifi_creds-ssid =
|
||||
.label = Nombre Wi-Fi
|
||||
.placeholder = Introduce nombre de Wi-Fi
|
||||
onboarding-wifi_creds-ssid-required = Es necesario el nombre del Wi-Fi
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Contraseña
|
||||
.placeholder = Introduce contraseña
|
||||
@@ -844,6 +871,7 @@ onboarding-connect_tracker-issue-serial = ¡Tengo problemas para conectarme!
|
||||
onboarding-connect_tracker-usb = Tracker USB
|
||||
onboarding-connect_tracker-connection_status-none = Buscando trackers
|
||||
onboarding-connect_tracker-connection_status-serial_init = Conectándose al dispositivo serial
|
||||
onboarding-connect_tracker-connection_status-obtaining_mac_address = Obteniendo la dirección MAC del tracker
|
||||
onboarding-connect_tracker-connection_status-provisioning = Enviando credenciales Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-connecting = Intentando conectarse a una red Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-looking_for_server = Buscando servidor
|
||||
@@ -873,6 +901,7 @@ onboarding-calibration_tutorial-status-waiting = Esperando por ti
|
||||
onboarding-calibration_tutorial-status-calibrating = Calibrando
|
||||
onboarding-calibration_tutorial-status-success = ¡Bien!
|
||||
onboarding-calibration_tutorial-status-error = El tracker se ha movido
|
||||
onboarding-calibration_tutorial-skip = Saltar tutorial
|
||||
|
||||
## Tracker assignment tutorial
|
||||
|
||||
@@ -1034,8 +1063,6 @@ onboarding-automatic_mounting-mounting_reset-title = Reinicio de montura
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Ponte en cuclillas en postura de "esquí" con las piernas dobladas, la parte superior del cuerpo inclinada hacia adelante y los brazos doblados.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Presiona el botón "Restablecer montaje" y espera 3 segundos antes de que se restablezcan las orientaciones de montaje de los trackers.
|
||||
onboarding-automatic_mounting-preparation-title = Preparación
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Mantente erguido con los brazos a los lados.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Pulse el botón "Reinicio completo" y espere 3 segundos antes de que los trackers se reinicien.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Ponte los trackers
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la posiciones de montura, vamos a utilizar los trackers que acabas de asignar. Colocate todos tus trackers, puedes ver cuales son cuales en la figura de la derecha.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Tengo todos mis trackers en posicion
|
||||
@@ -1044,9 +1071,11 @@ onboarding-automatic_mounting-put_trackers_on-next = Tengo todos mis trackers en
|
||||
|
||||
onboarding-manual_proportions-back = Volver al tutorial de reinicios
|
||||
onboarding-manual_proportions-title = Proporciones físicas manuales
|
||||
onboarding-manual_proportions-precision = Ajuste por precisión
|
||||
onboarding-manual_proportions-auto = Proporciones automáticas
|
||||
onboarding-manual_proportions-ratio = Ajustar por grupos de ratio
|
||||
onboarding-manual_proportions-fine_tuning_button = Ajuste automático de las proporciones
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Conecte el visor RV para usar el ajuste automatico
|
||||
onboarding-manual_proportions-export = Exportar proporciones
|
||||
onboarding-manual_proportions-import = Importar proporciones
|
||||
onboarding-manual_proportions-file_type = Archivo de proporciones físicas
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1067,12 +1096,33 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
Tu visor están reportando datos de posición al servidor de SlimeVR (esto generalmente significa tener SteamVR ejecutándose y conectado a SlimeVR usando el driver para SteamVR de SlimeVR).
|
||||
Su tracking está funcionando y está representando con precisión sus movimientos (ej. usted ha realizado un reinicio completo y se mueven en la dirección correcta al patear, agacharse, sentarse, etc).
|
||||
onboarding-automatic_proportions-requirements-next = He leído los requisitos
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Medir la altura del visor
|
||||
onboarding-automatic_proportions-check_height-description-v2 = La altura se su visor (HMD) deberia ser un poco menos que su altura total, ya que el visor mide la altura hasta sus ojos. Esta medición sera usada como base para las proporciones de su cuerpo.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Empieze a medir mientras este <u>de pie</u> para medir su altura. ¡Tenga cuidado de no levantar las manos mas alto que su visor, ya que podria afectar la medición!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
Si usted está usando un visor VR standalone, ¡asegúrese de tener su guardián /
|
||||
limite activado para que tu altura sea la correcta!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = Desconocida
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = La altura del visor es:
|
||||
onboarding-automatic_proportions-check_height-measure-start = Empezar a medir
|
||||
onboarding-automatic_proportions-check_height-measure-stop = Parar de medir
|
||||
onboarding-automatic_proportions-check_height-measure-reset = Reintentar medición
|
||||
onboarding-automatic_proportions-check_height-next_step = Usar la altura del visor
|
||||
onboarding-automatic_proportions-check_floor_height-title = Medir la altura del piso (opcional)
|
||||
onboarding-automatic_proportions-check_floor_height-description = En algunos casos, es posible que la altura del suelo no esté configurada correctamente por su visor, lo que hace esta sea más alta de lo que debería ser. Puede medir la "altura" de su piso para corregir la altura del visor.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = Comience a medir y coloque un mando contra su piso para medir su altura. Si está seguro de que la altura de su suelo es la correcta, puede omitir este paso.
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = La altura del suelo es:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = Su altura total estimada es:
|
||||
onboarding-automatic_proportions-check_floor_height-measure-start = Empezar a medir
|
||||
onboarding-automatic_proportions-check_floor_height-measure-stop = Parar de medir
|
||||
onboarding-automatic_proportions-check_floor_height-measure-reset = Reintentar medición
|
||||
onboarding-automatic_proportions-check_floor_height-skip_step = Saltar paso y guardar
|
||||
onboarding-automatic_proportions-check_floor_height-next_step = Usar altura del suelo y guardar
|
||||
onboarding-automatic_proportions-start_recording-title = Prepárate para moverte
|
||||
onboarding-automatic_proportions-start_recording-description = Ahora vamos a grabar algunas poses y movimientos específicos. Se le indicarán en la siguiente pantalla. ¡Prepárate para empezar cuando pulse el botón!
|
||||
onboarding-automatic_proportions-start_recording-next = Iniciar grabación
|
||||
@@ -1122,6 +1172,13 @@ onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR no está c
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = Su altura total es
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = La altura estimada del visor es:
|
||||
onboarding-scaled_proportions-manual_height-next_step = Continuar y guardar
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
¡Actualmente está utilizando la forma manual de configurar proporciones escaladas!
|
||||
<b>Este modo solo se recomienda si no se utiliza un HMD con SlimeVR</b>
|
||||
|
||||
Para poder utilizar las proporciones escaladas automáticamente, por favor:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Conecte un visor de RV
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Asegúrese de que sus controladores estén conectados y asignados correctamente a sus manos
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
@@ -1130,6 +1187,9 @@ onboarding-scaled_proportions-reset_proportion-description = Para establecer las
|
||||
onboarding-scaled_proportions-done-title = Proporciones del cuerpo guardadas
|
||||
onboarding-scaled_proportions-done-description = Las proporciones de tu cuerpo ahora deberían configurarse en función de tu altura.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = No se han detectado ni asignado trackers
|
||||
@@ -1217,15 +1277,81 @@ firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Tracker opcional
|
||||
firmware_tool-add_imus_step-show_less = Mostrar menos
|
||||
firmware_tool-add_imus_step-show_more = Mostrar más
|
||||
firmware_tool-add_imus_step-add_more = Añadir más IMUs
|
||||
firmware_tool-select_firmware_step = Seleccione la versión del firmware
|
||||
firmware_tool-select_firmware_step-description = Elija la versión del firmware que desea utilizar
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Mostrar firmwares de terceros
|
||||
firmware_tool-flash_method_step = Método de flasheado
|
||||
firmware_tool-flash_method_step-description = Seleccione el método de flasheado que desea utilizar
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Usar el metodo "over the air". Su tracker usara el Wi-Fi para actualizar el firmware. Solo funciona en trackers ya configurados.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Usar un cable USB para actualizar el tracker.
|
||||
firmware_tool-flashbtn_step = Pulse el botón de boot
|
||||
firmware_tool-flashbtn_step-description = Antes de pasar al siguiente paso, hay algunas cosas que debe hacer
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el tracker, retire la carcasa (si la hay), conecte un cable USB a esta computadora y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = Encienda el tracker mientras puentea el segundo pad FLASH rectangular desde el borde en la parte superior de la placa y el protector metálico del microcontrolador
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Encienda el tracker mientras puentea el pad circular FLASH en la parte superior de la placa y el protector metálico del microcontrolador
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Encienda el rastreador mientras presiona el botón FLASH en la parte superior de la placa
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
Antes de flashear, probablemente tendrá que poner el tracker en modo bootloader.
|
||||
La mayoría de las veces significa presionar el botón de boot en la placa antes de que comience el proceso de flasheo.
|
||||
Si el tiempo de espera del proceso de flasheo se agota al comienzo, probablemente signifique que el tracker no estaba en modo bootloader
|
||||
Consulte las instrucciones de flasheo de su placa para saber cómo activar el modo bootloader
|
||||
firmware_tool-flash_method_ota-devices = Dispositivos OTA detectados:
|
||||
firmware_tool-flash_method_ota-no_devices = No hay placas que se puedan actualizar mediante OTA, asegúrese de seleccionar el tipo de placa correcto
|
||||
firmware_tool-flash_method_serial-wifi = Credenciales del Wi-Fi:
|
||||
firmware_tool-flash_method_serial-devices-label = Dispositivos seriales detectados:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = Seleccione un dispositivo serial
|
||||
firmware_tool-flash_method_serial-no_devices = No se han detectado dispositivos serial compatibles, asegúrese de que el tracker esté enchufado
|
||||
firmware_tool-build_step = Compilando
|
||||
firmware_tool-build_step-description = El firmware se está compilando, espere por favor
|
||||
firmware_tool-flashing_step = Flasheando
|
||||
firmware_tool-flashing_step-description = Sus trackers estan siendo flasheados, por favor siga las instrucciones en pantalla
|
||||
firmware_tool-flashing_step-warning-v2 = No desconectes ni apagues el tracker durante el proceso de carga a menos que se le indique, ya que puede hacer que tu placa quede inutilizable
|
||||
firmware_tool-flashing_step-flash_more = Flashear más trackers
|
||||
firmware_tool-flashing_step-exit = Salir
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Creando la carpeta de compilación
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Descargando el firmware
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extrayendo el firmware
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configurando las definiciones
|
||||
firmware_tool-build-BUILDING = Compilando el firmware
|
||||
firmware_tool-build-SAVING = Guardando la compilación
|
||||
firmware_tool-build-DONE = Compilación completa
|
||||
firmware_tool-build-ERROR = No se ha podido compilar el firmware
|
||||
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Descargando el firmware
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = Por favor, apague y vuelva a encender su rastreador
|
||||
firmware_update-status-AUTHENTICATING = Autenticando con el microcontrolador
|
||||
firmware_update-status-UPLOADING = Cargando el firmware
|
||||
firmware_update-status-SYNCING_WITH_MCU = Sincronizando con el microcontrolador
|
||||
firmware_update-status-REBOOTING = Aplicando la actualización
|
||||
firmware_update-status-PROVISIONING = Aplicando credenciales Wi-Fi
|
||||
firmware_update-status-DONE = ¡Actualización completa!
|
||||
firmware_update-status-ERROR_DEVICE_NOT_FOUND = No se ha podido encontrar el dispositivo
|
||||
firmware_update-status-ERROR_TIMEOUT = Se agotó el tiempo de espera del proceso de actualización
|
||||
firmware_update-status-ERROR_DOWNLOAD_FAILED = No se pudo descargar el firmware
|
||||
firmware_update-status-ERROR_AUTHENTICATION_FAILED = No se pudo autenticar con el microcontrolador
|
||||
firmware_update-status-ERROR_UPLOAD_FAILED = No se pudo cargar el firmware
|
||||
firmware_update-status-ERROR_PROVISIONING_FAILED = No se pudieron configurar las credenciales de Wi-Fi
|
||||
firmware_update-status-ERROR_UNSUPPORTED_METHOD = El metodo de actualización no es compatible
|
||||
firmware_update-status-ERROR_UNKNOWN = Error desconocido
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
firmware_update-title = Actualización de firmware
|
||||
firmware_update-devices = Dispositivos disponibles
|
||||
firmware_update-devices-description = Seleccione los trackers que desea actualizar a la última versión del firmware de SlimeVR
|
||||
firmware_update-no_devices = ¡Asegúrese de que los trackers que desea actualizar estén encendidos y conectados al Wi-Fi!
|
||||
firmware_update-changelog-title = Actualizando a { $version }
|
||||
firmware_update-looking_for_devices = Buscando dispositivos para actualizar...
|
||||
firmware_update-retry = Reintentar
|
||||
firmware_update-update = Actualizar rastreadores seleccionados
|
||||
@@ -1262,7 +1388,7 @@ unknown_device-modal-forget = Ignóralo
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = ¿Podemos recopilar errores?
|
||||
error_collection_modal-description =
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-description_v2 }
|
||||
|
||||
Puede cambiar esta configuración más adelante en la sección Comportamiento de la página de configuración.
|
||||
|
||||
@@ -13,7 +13,7 @@ websocket-connection_lost-desc = Il semble que le serveur SlimeVR ait planté. V
|
||||
websocket-timedout = Impossible de se connecter au serveur
|
||||
websocket-timedout-desc = Il semble que le serveur SlimeVR ait planté ou que le délai d'attente ait expiré. Vérifiez les logs et redémarrez le programme.
|
||||
websocket-error-close = Quitter SlimeVR
|
||||
websocket-error-logs = Ouvrez le dossier des logs
|
||||
websocket-error-logs = Ouvrir le dossier des logs
|
||||
|
||||
## Update notification
|
||||
|
||||
@@ -111,29 +111,125 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = SlimeVR Dev IMU Glove
|
||||
|
||||
skeleton_bone-NONE = Aucun
|
||||
skeleton_bone-HEAD = Décalage de la tête
|
||||
skeleton_bone-HEAD-desc =
|
||||
Ceci est la distance entre votre casque et le milieu de votre tête.
|
||||
Pour l’ajuster, secouez votre tête de gauche à droite comme si vous disiez non et modifiez-la
|
||||
jusqu’à ce que vos capteurs bougent le moins possible.
|
||||
skeleton_bone-NECK = Longueur du cou
|
||||
skeleton_bone-NECK-desc =
|
||||
Ceci est la distance entre le milieu de votre tête et la base de votre cou.
|
||||
Pour l’ajuster, hochez votre tête de haut en bas ou inclinez votre tête de gauche à droite et modifiez-la
|
||||
jusqu’à ce que vos capteurs bougent le moins possible.
|
||||
skeleton_bone-torso_group = Longueur du torse
|
||||
skeleton_bone-torso_group-desc =
|
||||
Ceci est la distance entre la base de votre cou et vos hanches.
|
||||
Pour l’ajuster, tenez-vous debout et modifiez-la jusqu’à ce que
|
||||
vos hanches virtuelles soient alignées avec vos vraies hanches.
|
||||
skeleton_bone-UPPER_CHEST = Longueur de la poitrine supérieure
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
Ceci la distance entre la base de votre cou et le milieu de votre poitrine.
|
||||
Pour l’ajuster, ajustez correctement la longueur de votre torse et modifiez-la dans différentes positions
|
||||
(assis, penché, allongé, etc.) jusqu’à ce que votre colonne vertébrale virtuelle corresponde à votre colonne vertébrale réelle.
|
||||
skeleton_bone-CHEST_OFFSET = Décalage de la poitrine
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
Ceci peut être ajusté pour déplacer votre capteur virtuel de poitrine vers le haut ou vers le bas afin d’aider
|
||||
avec la calibration dans certains jeux ou applications qui peuvent s’attendre à ce qu’il soit plus ou moins haut.
|
||||
skeleton_bone-CHEST = Longueur de la poitrine
|
||||
skeleton_bone-CHEST-desc =
|
||||
Ceci est la distance entre le milieu de votre poitrine et le milieu de votre colonne vertébrale.
|
||||
Pour l’ajuster, ajustez correctement la longueur de votre torse et modifiez-la dans différentes positions
|
||||
(assis, penché, allongé, etc.) jusqu’à ce que votre colonne vertébrale virtuelle corresponde à votre colonne vertébrale réelle.
|
||||
skeleton_bone-WAIST = Longueur de la taille
|
||||
skeleton_bone-WAIST-desc =
|
||||
Ceci est la distance entre le milieu de votre colonne vertébrale et votre nombril.
|
||||
Pour l’ajuster, ajustez correctement la longueur de votre torse et modifiez-la dans différentes positions
|
||||
(assis, penché, allongé, etc.) jusqu’à ce que votre colonne vertébrale virtuelle corresponde à votre colonne vertébrale réelle.
|
||||
skeleton_bone-HIP = Longueur des hanches
|
||||
skeleton_bone-HIP-desc =
|
||||
Ceci est la distance entre votre nombril et vos hanches
|
||||
Pour l’ajuster, ajustez correctement la longueur de votre torse et modifiez-la dans différentes positions
|
||||
(assis, penché, allongé, etc.) jusqu’à ce que votre colonne vertébrale virtuelle corresponde à votre colonne vertébrale réelle.
|
||||
skeleton_bone-HIP_OFFSET = Décalage de la hanche
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
Ceci peut être ajusté pour déplacer votre capteur virtuel de hanche vers le haut ou vers le bas afin d’aider
|
||||
avec la calibration dans certains jeux ou applications qui pourraient s’attendre à ce qu’il soit sur votre taille.
|
||||
skeleton_bone-HIPS_WIDTH = Largeur des hanches
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
Ceci est la distance entre vos deux jambes.
|
||||
Pour l’ajuster, effectuez une réinitialisation complète avec vos jambes droites et modifiez-la jusqu’à ce que
|
||||
Vos jambes virtuelles soient au même niveau horizontalement que vos vraies jambes.
|
||||
skeleton_bone-leg_group = Longueur des jambes
|
||||
skeleton_bone-leg_group-desc =
|
||||
Ceci est la distance entre vos hanches et vos pieds.
|
||||
Pour l’ajuster, ajustez correctement la longueur du torse et modifiez-la
|
||||
jusqu’à ce que vos pieds virtuels soient au même niveau que vos pieds réels.
|
||||
skeleton_bone-UPPER_LEG = Longueur des jambes supérieures
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
Ceci est la distance entre vos hanches et vos genoux.
|
||||
Pour l’ajuster, ajustez correctement la longueur des jambes et modifiez-la
|
||||
jusqu’à ce que vos genoux virtuels soient au même niveau que vos genoux réels.
|
||||
skeleton_bone-LOWER_LEG = Longueur des jambes inférieures
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
Ceci est la distance entre vos genoux et vos chevilles.
|
||||
Pour l’ajuster, ajustez correctement la longueur des jambes et modifiez-la
|
||||
jusqu’à ce que vos genoux virtuels soient au même niveau que vos genoux réels.
|
||||
skeleton_bone-FOOT_LENGTH = Longueur des pieds
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
Ceci est la distance entre vos chevilles et vos orteils.
|
||||
Pour l’ajuster, allez sur la pointe des pieds et modifiez-la jusqu’à ce que vos pieds virtuels restent en place.
|
||||
skeleton_bone-FOOT_SHIFT = Décalage des pieds
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Ceci est la distance horizontale entre votre genou et votre cheville.
|
||||
Il tient compte du fait que le bas de vos jambes recule lorsque vous vous tenez droit.
|
||||
Pour l’ajuster, réglez la longueur des pieds à 0, effectuez une réinitialisation complète et modifiez-la jusqu’à ce que vos
|
||||
pieds virtuels s’alignent avec le milieu de vos chevilles.
|
||||
skeleton_bone-SKELETON_OFFSET = Décalage du squelette
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
Ceci peut être ajusté pour décaler tous vos capteurs vers l’avant ou vers l’arrière.
|
||||
Cela peut être utilisé pour aider à la calibration dans certains jeux ou applications
|
||||
qui pourraient s’attendre à ce que vos capteurs soient plus vers l'avant.
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distance des épaules
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
Ceci est la distance verticale entre la base de votre cou et vos épaules.
|
||||
Pour l’ajuster, réglez la longueur des bras à 0 et modifiez-la jusqu’à ce que vos capteurs de coude virtuels
|
||||
soient alignés verticalement avec vos vraies épaules.
|
||||
skeleton_bone-SHOULDERS_WIDTH = Largeur des épaules
|
||||
skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
Ceci est la distance horizontale entre la base de votre cou et vos épaules.
|
||||
Pour l’ajuster, réglez la longueur des bras à 0 et modifiez-la jusqu’à ce que vos capteurs de coude virtuels
|
||||
soient alignés horizontalement avec vos vraies épaules.
|
||||
skeleton_bone-arm_group = Longueur des bras
|
||||
skeleton_bone-arm_group-desc =
|
||||
Ceci est la distance entre vos épaules et vos poignets.
|
||||
Pour l’ajuster, ajustez correctement la distance des épaules, réglez la distance Y des mains
|
||||
à 0 et modifiez-la jusqu’à ce que vos capteurs de main soient alignés avec vos poignets.
|
||||
skeleton_bone-UPPER_ARM = Longueur des bras supérieurs
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
Ceci est la distance entre vos épaules et vos coudes.
|
||||
Pour l’ajuster, ajustez correctement la longueur des bras et modifiez-la jusqu’à ce que
|
||||
vos capteurs de coude soient alignés avec vos vrais coudes.
|
||||
skeleton_bone-LOWER_ARM = Longueur des avant-bras
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
Ceci est la distance entre vos coudes et vos poignets.
|
||||
Pour l’ajuster, ajustez correctement la longueur des bras et modifiez-la jusqu’à ce que
|
||||
vos capteurs de coude soient alignés avec vos vrais coudes.
|
||||
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
|
||||
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.
|
||||
skeleton_bone-HAND_Z = Distance Z des mains
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
Ceci est la distance horizontale entre vos poignets et le milieu de votre main.
|
||||
Pour l’ajuster pour la capture de mouvement, réglez-la à 0.
|
||||
Pour l’ajuster pour le suivi du coude à partir de vos manettes, réglez la longueur des bras à 0 et
|
||||
modifiez-la jusqu’à ce que vos capteurs de coude soient alignés horizontalement avec vos poignets.
|
||||
skeleton_bone-ELBOW_OFFSET = Décalage des coudes
|
||||
skeleton_bone-ELBOW_OFFSET-desc =
|
||||
Ceci peut être ajusté pour déplacer vos capteurs de coude virtuels vers le haut ou vers le bas afin d’aider
|
||||
dans le cas où VRChat lie accidentellement un capteur de coude à votre poitrine poitrine.
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
@@ -213,6 +309,7 @@ widget-imu_visualizer-rotation_raw = Brute
|
||||
widget-imu_visualizer-rotation_preview = Aperçu
|
||||
widget-imu_visualizer-acceleration = Accélération
|
||||
widget-imu_visualizer-position = Position
|
||||
widget-imu_visualizer-stay_aligned = Garder Aligné
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -240,6 +337,7 @@ tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Accél. X/Y/Z
|
||||
tracker-table-column-rotation = Rotation X/Y/Z
|
||||
tracker-table-column-position = Position X/Y/Z
|
||||
tracker-table-column-stay_aligned = Garder Aligné
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -306,6 +404,7 @@ tracker-settings-forget = Oublier capteur
|
||||
tracker-settings-forget-description = Supprime le capteur du serveur SlimeVR et l'empêche de s'y connecter jusqu'à ce que le serveur soit redémarré. La configuration du capteur ne sera pas perdue.
|
||||
tracker-settings-forget-label = Oublier capteur
|
||||
tracker-settings-update-unavailable = Ne peut pas être mis à jour (DIY)
|
||||
tracker-settings-update-low-battery = Mise à jour impossible. Batterie inférieure à 50 %
|
||||
tracker-settings-update-up_to_date = À jour
|
||||
tracker-settings-update-available = { $versionName } est maintenant disponible
|
||||
tracker-settings-update = Mettre à jour maintenant
|
||||
@@ -376,6 +475,7 @@ mounting_selection_menu-close = Fermer
|
||||
settings-sidebar-title = Réglages
|
||||
settings-sidebar-general = Général
|
||||
settings-sidebar-tracker_mechanics = Paramètres des capteurs
|
||||
settings-sidebar-stay_aligned = Garder Aligné
|
||||
settings-sidebar-fk_settings = Paramètres de la capture
|
||||
settings-sidebar-gesture_control = Contrôle gestuel
|
||||
settings-sidebar-interface = Interface
|
||||
@@ -387,6 +487,7 @@ settings-sidebar-appearance = Apparence
|
||||
settings-sidebar-notifications = Notifications
|
||||
settings-sidebar-behavior = Comportement
|
||||
settings-sidebar-firmware-tool = Outil de micrologiciel DIY
|
||||
settings-sidebar-vrc_warnings = Avertissements de configuration VRChat
|
||||
settings-sidebar-advanced = Avancé
|
||||
|
||||
## SteamVR settings
|
||||
@@ -468,6 +569,24 @@ 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-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é
|
||||
settings-stay_aligned-setup-description = Vous devez terminer « Configurer Garder Aligné » pour activer Garder Aligné.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ Veuillez désactiver la compensation de la dérive ! La compensation de la dérive entrera en conflit avec Garder Aligné.
|
||||
settings-stay_aligned-enabled-label = Ajuster les capteurs
|
||||
settings-stay_aligned-hide_yaw_correction-label = Masquer l'ajustement (pour comparer sans Garder Aligné)
|
||||
settings-stay_aligned-general-label = Général
|
||||
settings-stay_aligned-relaxed_poses-label = Postures détendues
|
||||
settings-stay_aligned-relaxed_poses-description = Garder Aligné utilise vos postures détendues pour garder vos capteurs alignés. Utilisez « Configurer Garder Aligné » pour mettre à jour ces poses.
|
||||
settings-stay_aligned-relaxed_poses-standing = Ajuster les capteurs en position debout
|
||||
settings-stay_aligned-relaxed_poses-sitting = Ajuster les capteurs en position assise sur une chaise
|
||||
settings-stay_aligned-relaxed_poses-flat = Ajuster les capteurs en position assise sur le sol ou allongée sur le dos
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Enregistrer la posture
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Réinitialiser la posture
|
||||
settings-stay_aligned-debug-label = Débogage
|
||||
settings-stay_aligned-debug-description = Veuillez inclure vos paramètres lorsque vous signalez des problèmes concernant Garder Aligné.
|
||||
settings-stay_aligned-debug-copy-label = Copier les paramètres dans le presse-papiers
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -563,6 +682,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = Augme
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = Apparence
|
||||
settings-general-interface-dev_mode = Mode développeur
|
||||
settings-general-interface-dev_mode-description = Ce mode peut être utile pour avoir des données approfondies ou pour interagir avec des capteurs connectés à un niveau plus avancé.
|
||||
settings-general-interface-dev_mode-label = Mode développeur
|
||||
settings-general-interface-theme = Thème
|
||||
settings-general-interface-show-navbar-onboarding = Afficher « { navbar-onboarding } » dans la barre de navigation
|
||||
settings-general-interface-show-navbar-onboarding-description = Cela décide si le bouton « { navbar-onboarding } » s'affiche dans la barre de navigation.
|
||||
@@ -615,12 +737,12 @@ settings-general-interface-discord_presence-message =
|
||||
*[other] Utilise { $amount } capteurs
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Collecte des erreurs via Sentry.io
|
||||
settings-interface-behavior-error_tracking-description =
|
||||
Pour procurer la meilleur expérience utilisateur, nous collectons des rapports, des métriques de performance, et des information de système d'exploitation de manière anonyme. Cela nous aide a détecter des bugs et des problème avec SlimeVR. Ces métriques sont collecte via Sentry.io.
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Consentez-vous à la collecte de données d'erreur anonymisée ?</h1>
|
||||
|
||||
Nous ne collectons pas vos informations personnelles comme votre adresse IP ou vos informations d'identification WIFI. SlimeVR respecte vos informations personnelles !
|
||||
<b>Nous ne collectons pas d'informations personnelles</b> telles que votre adresse IP ou vos identifiants Wi-Fi. SlimeVR accorde une grande importance à votre vie privée !
|
||||
|
||||
Consentez-vous à la collecte anonyme de vos données d'erreurs ?
|
||||
Pour offrir la meilleure expérience utilisateur possible, nous collectons des rapports d'erreurs anonymisés, des mesures de performance et des informations sur le système d'exploitation. Cela nous aide à détecter les bugs et les problèmes liés à SlimeVR. Ces données sont collectées via Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Envoyer les erreurs aux développeurs
|
||||
|
||||
## Serial settings
|
||||
@@ -680,8 +802,6 @@ settings-osc-vrchat-description-v1 =
|
||||
Modifier les paramètres spécifiques à la norme « OSC Trackers » utilisée pour l'envoi
|
||||
des données de suivi vers des applications sans SteamVR (par exemple, sur Quest).
|
||||
Assurez-vous d'activer le protocole OSC dans VRChat via le menu d'action (rond) sous OSC > Enabled.
|
||||
Pour permettre de recevoir les données de suivi du casque VR et des manettes à partir de VRChat,
|
||||
allez dans le menu principal sous Tracking & IK > Allow Sending Head and Wrist VR Tracking OSC Data.
|
||||
settings-osc-vrchat-enable = Activer
|
||||
settings-osc-vrchat-enable-description = Activer/désactiver l'envoi et la réception de données.
|
||||
settings-osc-vrchat-enable-label = Activer
|
||||
@@ -690,7 +810,7 @@ settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery détecte automatiquement les instances VRChat en cours d'exécution et leur envoie des données.
|
||||
Il peut également se faire détecter afin de recevoir les données du casque et des manettes VR.
|
||||
Pour permettre de recevoir les données du casque et des manettes de VRChat, allez dans les paramètres de votre menu principal
|
||||
sous « Tracking & IK » et activez « Allow Sending Head and Wrist VR Tracking OSC Data ».
|
||||
sous « Suivi et CI » et activez « Autoriser l'envoi de données OSC de suivi en VR pour la tête et les poignets ».
|
||||
settings-osc-vrchat-oscqueryEnabled-label = Activer OSCQuery
|
||||
settings-osc-vrchat-network = Ports réseau
|
||||
settings-osc-vrchat-network-description-v1 = Définissez les ports d'écoute et d'envoi des données. Peut être laissé intact pour VRChat.
|
||||
@@ -866,6 +986,17 @@ onboarding-connect_tracker-connection_status-looking_for_server = Recherche du s
|
||||
onboarding-connect_tracker-connection_status-connection_error = Impossible de se connecter au réseau
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = Impossible de trouver le serveur
|
||||
onboarding-connect_tracker-connection_status-done = Connecté au serveur
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = Erreur lors de l'obtention des journaux du capteur
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = Aucun capteur trouvé par USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = Le capteur est-il allumé ?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Assurez-vous que le capteur est allumé et connecté à votre ordinateur
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = Aucun capteur détecté
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
Veuillez connecter un capteur avec le câble USB fourni à votre ordinateur et l'allumer.
|
||||
Si cela ne fonctionne pas :
|
||||
- Essayez avec un autre câble USB
|
||||
- Essayez avec un autre port USB
|
||||
- Essayez de réinstaller le serveur SlimeVR et cochez « USB Drivers » dans la section des composants
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -1051,8 +1182,9 @@ onboarding-automatic_mounting-mounting_reset-title = Réinitialisation de l'alig
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Accroupissez-vous dans une pose de "ski" avec les jambes pliées, le haut du corps incliné vers l'avant et les bras pliés.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Appuyez sur le bouton "Réinitialiser l'alignement" et attendez 3 secondes avant que l'alignement des capteurs se calibre.
|
||||
onboarding-automatic_mounting-preparation-title = Préparation
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Tenez-vous debout avec vos bras à vos côtés.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Appuyez sur le bouton "Réinitialisation complète" et attendez 3 secondes avant que les capteurs ne se réinitialisent.
|
||||
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.
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Maintenez la position jusqu'à la fin du chronomètre de 3 secondes.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Enfilez vos capteurs
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Pour calibrer l'alignement, nous allons utiliser les capteurs que vous venez d'attribuer.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = J'ai tous mes capteurs
|
||||
@@ -1061,16 +1193,16 @@ onboarding-automatic_mounting-put_trackers_on-next = J'ai tous mes capteurs
|
||||
|
||||
onboarding-manual_proportions-back = Revenir au didacticiel de réinitialisation
|
||||
onboarding-manual_proportions-title = Proportions manuelles du corps
|
||||
onboarding-manual_proportions-precision = Ajustement de précision
|
||||
onboarding-manual_proportions-auto = Calibration automatique
|
||||
onboarding-manual_proportions-ratio = Ajuster par groupes de ratios
|
||||
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
|
||||
onboarding-manual_proportions-export = Exporter les proportions
|
||||
onboarding-manual_proportions-import = Importer les proportions
|
||||
onboarding-manual_proportions-import-success = Importé
|
||||
onboarding-manual_proportions-import-failed = Échec
|
||||
onboarding-manual_proportions-file_type = Fichier des proportions du corps
|
||||
onboarding-manual_proportions-normal_increment = Incrément normal
|
||||
onboarding-manual_proportions-precise_increment = Incrément précis
|
||||
onboarding-manual_proportions-grouped_proportions = Proportions groupées
|
||||
onboarding-manual_proportions-all_proportions = Toutes les proportions
|
||||
onboarding-manual_proportions-estimated_height = Taille estimée de l'utilisateur
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1167,6 +1299,13 @@ onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR n'est actu
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = Votre hauteur totale est :
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = La hauteur estimée de votre casque est de :
|
||||
onboarding-scaled_proportions-manual_height-next_step = Continuer et enregistrer
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
Vous utilisez actuellement le réglage manuel de la mise à l'échelle des proportions !
|
||||
<b>Ce mode est recommandé uniquement si vous n'utilisez pas de casque VR avec SlimeVR</b>
|
||||
|
||||
Pour pouvoir utiliser les proportions mises à l’échelle automatiquement, veuillez :
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Connecter un casque VR
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Assurez-vous que vos manettes sont connectées et correctement assignées à vos mains
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
@@ -1175,6 +1314,40 @@ onboarding-scaled_proportions-reset_proportion-description = Pour définir les p
|
||||
onboarding-scaled_proportions-done-title = Ensemble de proportions du corps
|
||||
onboarding-scaled_proportions-done-description = Les proportions de votre corps devraient maintenant être configurées à partir de votre taille.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = Garder Aligné
|
||||
onboarding-stay_aligned-description = Configurer Garder Aligné pour garder vos capteurs alignés.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Mettez vos capteurs
|
||||
onboarding-stay_aligned-put_trackers_on-description = Pour enregistrer vos postures de repos, nous utiliserons les capteurs que vous venez d’attribuer. Enfilez tous vos capteurs. Vous pouvez voir lesquels sont lesquels dans la figure de droite.
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = Vous avez actuellement moins de 5 capteurs connectés et attribués ! Il s’agit du nombre minimum de capteurs requis pour que Garder Aligné fonctionne correctement.
|
||||
onboarding-stay_aligned-put_trackers_on-next = J'ai tous mes capteurs sur moi
|
||||
onboarding-stay_aligned-verify_mounting-title = Vérifiez votre alignement
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = Garder Aligné nécessite un bon alignement. Sinon, vous n'aurez pas une bonne expérience avec Garder Aligné.
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. Déplacez-vous debout.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Asseyez-vous et bougez vos jambes et vos pieds.
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. Si vos capteurs ne sont pas au bons endroits, appuyez sur « Refaire la calibration de l'alignement »
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = Refaire la calibration de l'alignement
|
||||
onboarding-stay_aligned-preparation-title = Préparation
|
||||
onboarding-stay_aligned-preparation-tip = Assurez-vous de vous tenir droit. Vous devez regarder vers l'avant et vos bras doivent être le long de votre corps.
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = Posture debout détendu
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Tenez-vous dans une position confortable. Détendez-vous !
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-2 = 3. Appuyez sur le bouton « Enregistrer la posture ».
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = Posture assis détendu dans une chaise
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Asseyez-vous dans une position confortable. Détendez-vous !
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-2 = 3. Appuyez sur le bouton « Enregistrer la posture ».
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Posture assis détendu sur le sol
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Asseyez-vous sur le sol, les jambes devant. Détendez-vous !
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-2 = 3. Appuyez sur le bouton « Enregistrer la posture ».
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Sauter
|
||||
onboarding-stay_aligned-done-title = Garder Aligné activé !
|
||||
onboarding-stay_aligned-done-description = La configuration de Garder Aligné est terminée !
|
||||
onboarding-stay_aligned-done-description-2 = La configuration est terminée ! Vous pouvez recommencer le processus si vous souhaitez recalibrer les postures.
|
||||
onboarding-stay_aligned-previous_step = Précédent
|
||||
onboarding-stay_aligned-next_step = Prochain
|
||||
onboarding-stay_aligned-restart = Recommencer
|
||||
onboarding-stay_aligned-done = Fait
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Aucun capteur détecté ou attribué
|
||||
@@ -1198,6 +1371,7 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = Le capteur { $trackerName } a une erreur.
|
||||
status_system-StatusUnassignedHMD = Le casque VR devrait être attribué en tant que capteur de la tête.
|
||||
status_system-StatusPublicNetwork = Votre profil 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>
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
@@ -1296,7 +1470,7 @@ firmware_tool-build_step = Création
|
||||
firmware_tool-build_step-description = Le micrologiciel se fait créer, veuillez patienter
|
||||
firmware_tool-flashing_step = En train de flash
|
||||
firmware_tool-flashing_step-description = Vos traceurs se font flash, veuillez suivre les instructions à l'écran
|
||||
firmware_tool-flashing_step-warning = Ne débranchez pas ou ne redémarrez pas le capteur pendant le processus d'envoi à moins qu'on ne vous le dise, cela pourrait rendre votre carte inutilisable
|
||||
firmware_tool-flashing_step-warning-v2 = Ne débranchez pas ou n'éteignez pas le capteur pendant le processus d'envoi à moins qu'on ne vous le dise, cela pourrait rendre votre carte inutilisable
|
||||
firmware_tool-flashing_step-flash_more = Flash plus de capteurs
|
||||
firmware_tool-flashing_step-exit = Quitter
|
||||
|
||||
@@ -1314,7 +1488,7 @@ firmware_tool-build-ERROR = Impossible de créer le micrologiciel
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Téléchargement du micrologiciel
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = Veuillez redémarrer le capteur
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = Veuillez éteindre et rallumer votre capteur
|
||||
firmware_update-status-AUTHENTICATING = Authentification avec le MCU
|
||||
firmware_update-status-UPLOADING = Envoi du micrologiciel
|
||||
firmware_update-status-SYNCING_WITH_MCU = Synchronisation avec le MCU
|
||||
@@ -1368,12 +1542,52 @@ unknown_device-modal-description =
|
||||
Voulez-vous le connecter à SlimeVR ?
|
||||
unknown_device-modal-confirm = Oui!
|
||||
unknown_device-modal-forget = Ignorer
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = Avertissements de configuration VRChat
|
||||
vrc_config-page-desc = Cette page montre l’état de vos paramètres VRChat et montre quels paramètres sont incompatibles avec SlimeVR. Il est fortement recommandé de corriger tous les avertissements qui s’affichent ici pour la meilleure expérience utilisateur avec SlimeVR.
|
||||
vrc_config-page-help = Vous ne trouvez pas les paramètres ?
|
||||
vrc_config-page-help-desc = Consultez notre <a>documentation à ce sujet !</a>
|
||||
vrc_config-page-big_menu = Suivi et CI (menu principal)
|
||||
vrc_config-page-big_menu-desc = Paramètres liés au suivi dans le menu principal
|
||||
vrc_config-page-wrist_menu = Suivi et CI (menu rapide)
|
||||
vrc_config-page-wrist_menu-desc = Paramètres liés au suivi dans le petit menu des paramètres (menu rapide)
|
||||
vrc_config-on = Activé
|
||||
vrc_config-off = Désactivé
|
||||
vrc_config-invalid = Vous avez des paramètres VRChat mal configurés !
|
||||
vrc_config-show_more = Afficher plus
|
||||
vrc_config-setting_name = Nom du paramètre VRChat
|
||||
vrc_config-recommended_value = Valeur recommandée
|
||||
vrc_config-current_value = Valeur actuelle
|
||||
vrc_config-mute = Ignorer l'avertissement
|
||||
vrc_config-mute-btn = Ignorer
|
||||
vrc_config-unmute-btn = Ne plus ignorer
|
||||
vrc_config-legacy_mode = Utiliser l'ancienne méthode de résolution de la CI
|
||||
vrc_config-disable_shoulder_tracking = Désactiver le suivi des épaules
|
||||
vrc_config-shoulder_width_compensation = Compensation de la largeur des épaules
|
||||
vrc_config-spine_mode = Mode colonne vertébrale du suivi du corps
|
||||
vrc_config-tracker_model = Apparence des traqueurs du suivi du corps
|
||||
vrc_config-avatar_measurement_type = Mesure de l'avatar
|
||||
vrc_config-calibration_range = Plage de calibration
|
||||
vrc_config-calibration_visuals = Afficher les visuels de calibration
|
||||
vrc_config-user_height = Taille réelle de l'utilisateur
|
||||
vrc_config-spine_mode-UNKNOWN = Inconnu
|
||||
vrc_config-spine_mode-LOCK_BOTH = Verrouiller les deux
|
||||
vrc_config-spine_mode-LOCK_HEAD = Verrouiller la tête
|
||||
vrc_config-spine_mode-LOCK_HIP = Verrouiller la hanche
|
||||
vrc_config-tracker_model-UNKNOWN = Inconnu
|
||||
vrc_config-tracker_model-AXIS = Axe
|
||||
vrc_config-tracker_model-BOX = Cube
|
||||
vrc_config-tracker_model-SPHERE = Sphère
|
||||
vrc_config-tracker_model-SYSTEM = Système
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = Inconnu
|
||||
vrc_config-avatar_measurement_type-HEIGHT = Taille
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = Envergure des bras
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = Avons nous l'autorisation de collecter les erreurs ?
|
||||
error_collection_modal-description =
|
||||
{ settings-interface-behavior-error_tracking-description }
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-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
|
||||
|
||||
@@ -111,29 +111,118 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = Guanto SlimeVR Dev IMU
|
||||
|
||||
skeleton_bone-NONE = Nessuna selezione
|
||||
skeleton_bone-HEAD = Correzione per la testa
|
||||
skeleton_bone-HEAD-desc =
|
||||
La distanza tra il visore e il centro della testa.
|
||||
Scuoti la testa da sinistra a destra come se si fosse in disaccordo
|
||||
e modificala fino a quando il movimento degli altri tracker è trascurabile.
|
||||
skeleton_bone-NECK = Lunghezza del collo
|
||||
skeleton_bone-NECK-desc =
|
||||
La distanza tra il centro della testa e la base del collo.
|
||||
Muovere la testa verso l'alto e verso il basso come se si stesse annuendo o inclinare la testa a sinistra e a destra, modificala fino a quando il movimento degli altri tracker è trascurabile.
|
||||
skeleton_bone-torso_group = Lunghezza del torso
|
||||
skeleton_bone-torso_group-desc =
|
||||
La distanza dalla base del collo ai fianchi.
|
||||
Modificala stando in piedi finché i fianchi virtuali non si allineano a quelli reali.
|
||||
skeleton_bone-UPPER_CHEST = Lunghezza della parte superiore del petto
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
La distanza tra la base del collo e il centro del torace.
|
||||
Regola correttamente la lunghezza del busto e modificala in varie posizioni
|
||||
(seduti, piegati, sdraiati, ecc.) finché la colonna vertebrale virtuale non corrisponde a quella reale.
|
||||
skeleton_bone-CHEST_OFFSET = Correzione per il petto
|
||||
skeleton_bone-CHEST_OFFSET-desc = Questo parametro può essere regolato per spostare il tracker virtuale del torace verso l'alto o verso il basso, per aiutare a calibrare alcuni giochi o applicazioni che prevedono tracker più alto o più basso.
|
||||
skeleton_bone-CHEST = Lunghezza del torace
|
||||
skeleton_bone-CHEST-desc =
|
||||
La distanza tra il centro del petto e il centro della colonna vertebrale.
|
||||
Regola correttamente la lunghezza del busto e modificala in varie posizioni
|
||||
(seduti, piegati, sdraiati, ecc.) finché la colonna vertebrale virtuale non corrisponde a quella reale.
|
||||
skeleton_bone-WAIST = Lunghezza del girovita
|
||||
skeleton_bone-WAIST-desc =
|
||||
La distanza tra il centro della colonna vertebrale e l'ombelico.
|
||||
Regola correttamente la lunghezza del busto e modificala in varie posizioni
|
||||
(seduti, piegati, sdraiati, ecc.) finché la colonna vertebrale virtuale non corrisponde a quella reale.
|
||||
skeleton_bone-HIP = Lunghezza del bacino
|
||||
skeleton_bone-HIP-desc =
|
||||
La distanza tra l'ombelico e i fianchi
|
||||
Regola correttamente la lunghezza del busto e modificala in varie posizioni
|
||||
(seduti, piegati, sdraiati, ecc.) finché la colonna vertebrale virtuale non corrisponde a quella reale.
|
||||
skeleton_bone-HIP_OFFSET = Correzione per il bacino
|
||||
skeleton_bone-HIP_OFFSET-desc = Questo può parametro essere regolato per spostare il tracker virtuale dell'anca verso l'alto o verso il basso, in modo da aiutare a calibrare alcuni giochi o applicazioni che prevedono di posizionarlo sulla vita.
|
||||
skeleton_bone-HIPS_WIDTH = Larghezza del bacino
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
La distanza tra l'inizio delle gambe.
|
||||
Esegui un reset completo con le gambe dritte e modificala finché
|
||||
le gambe virtuali non coincidono con quelle reali in orizzontale.
|
||||
skeleton_bone-leg_group = Lunghezza della gamba
|
||||
skeleton_bone-leg_group-desc =
|
||||
La distanza tra i fianchi e i piedi.
|
||||
Regola correttamente la lunghezza del busto e modificala
|
||||
finché i piedi virtuali non si trovano allo stesso livello di quelli reali.
|
||||
skeleton_bone-UPPER_LEG = Lunghezza della parte superiore della gamba
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
La distanza tra i fianchi e le ginocchia.
|
||||
Regola adeguatamente la lunghezza delle gambe e modificala
|
||||
finché le ginocchia virtuali non sono allo stesso livello di quelle reali.
|
||||
skeleton_bone-LOWER_LEG = Lunghezza della parte inferiore della gamba
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
La distanza tra le ginocchia e le caviglie.
|
||||
Regola correttamente la lunghezza delle gambe e modificala
|
||||
fino a quando le ginocchia virtuali sono allo stesso livello di quelle reali.
|
||||
skeleton_bone-FOOT_LENGTH = Lunghezza dei piedi
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
La distanza tra le caviglie e le dita dei piedi.
|
||||
Cammina in punta di piedi e modificala finché i piedi virtuali non rimangono in posizione.
|
||||
skeleton_bone-FOOT_SHIFT = Correzione per i piedi
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Questo valore è la distanza orizzontale dal ginocchio alla caviglia.
|
||||
Tiene conto del fatto che la parte inferiore delle gambe va all'indietro quando si sta in piedi.
|
||||
Per regolarla, impostare la lunghezza dei piedi su 0, eseguire un reset completo e modificarla
|
||||
finché i piedi virtuali di non si allineano al centro delle caviglie.
|
||||
skeleton_bone-SKELETON_OFFSET = Correzione per lo scheletro
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
Questo parametro può essere regolato per spostare tutti i tracker in avanti o indietro.
|
||||
Può essere utilizzato per facilitare la calibrazione in alcuni giochi o applicazioni
|
||||
che potrebbero richiedere che i tracker siano più in avanti.
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distanza delle spalle
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
La distanza verticale dalla base del collo alle spalle.
|
||||
Imposta Lunghezza braccio superiore su 0 e modificala finché i tracker dei gomiti virtuali
|
||||
non si allineano verticalmente con le spalle reali.
|
||||
skeleton_bone-SHOULDERS_WIDTH = Larghezza delle spalle
|
||||
skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
La distanza orizzontale dalla base del collo alle spalle.
|
||||
Imposta Lunghezza braccio superiore su 0 e modificala finché i tracker dei gomiti virtuali
|
||||
non si allineano orizzontalmente con le spalle reali.
|
||||
skeleton_bone-arm_group = Lunghezza delle braccia
|
||||
skeleton_bone-UPPER_ARM = Lunghezza della parte superiore delle braccia
|
||||
skeleton_bone-arm_group-desc =
|
||||
La distanza tra le spalle e i polsi.
|
||||
Regola correttamente la distanza delle spalle, imposta la distanza delle mani Y
|
||||
su 0 e modificala finché i tracker delle mani non si allineano ai polsi.
|
||||
skeleton_bone-UPPER_ARM = Lunghezza braccio superiore
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
La distanza tra le spalle e i gomiti.
|
||||
Regola correttamente la Lunghezza delle braccia e modificala finché
|
||||
i tracker dei gomiti non si allineano con i gomiti reali.
|
||||
skeleton_bone-LOWER_ARM = Lunghezza degli avambracci
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
La distanza tra i gomiti e i polsi.
|
||||
Regola correttamente la Lunghezza del braccio e modificala finché
|
||||
i tracker dei gomiti non si allineano con i gomiti reali.
|
||||
skeleton_bone-HAND_Y = Distanza della mano sull'asse Y
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
La distanza verticale tra i polsi e il centro della mano.
|
||||
Per regolarla per il Motion Capture, regolare correttamente la lunghezza del braccio e modificarla finché i tracker delle mani di non si allineano verticalmente con il centro delle mani.
|
||||
Per regolarla per il tracciamento dei gomiti dai controller, impostare Lunghezza delle Braccia su 0 e
|
||||
modificarla finché i tracker dei gomiti non si allineano verticalmente con i polsi.
|
||||
skeleton_bone-HAND_Z = Distanza della mano sull'asse Z
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
La distanza orizzontale tra i polsi e il centro della mano.
|
||||
Per regolarla per il Motion Capture, impostatela su 0.
|
||||
Per regolarla per il tracciamento dei gomiti dai controller, impostate Lunghezza delle braccia su 0 e
|
||||
modificarla finché i tracker dei gomiti non si allineano orizzontalmente con i polsi.
|
||||
skeleton_bone-ELBOW_OFFSET = Correzione per il gomito
|
||||
skeleton_bone-ELBOW_OFFSET-desc =
|
||||
Questo può essere regolato per spostare i tracker virtuali del gomito verso l'alto o verso il basso
|
||||
per evitare che VRChat a leghi accidentalmente un tracker del gomito al petto.
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
@@ -148,7 +237,7 @@ reset-reset_all_warning_default-v2 =
|
||||
Sei sicurə di volerlo fare?
|
||||
reset-full = Ripristino completo
|
||||
reset-mounting = Ripristino del posizionamento
|
||||
reset-yaw = Ripristina dell'orientamento
|
||||
reset-yaw = Ripristino dell'orientamento
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -176,8 +265,8 @@ bvh-recording = Registrazione in corso...
|
||||
|
||||
## Tracking pause
|
||||
|
||||
tracking-unpaused = Pausa il tracking
|
||||
tracking-paused = Riprendi il tracking
|
||||
tracking-unpaused = Pausa il Tracciamento
|
||||
tracking-paused = Riprendi il tracciamento
|
||||
|
||||
## Widget: Overlay settings
|
||||
|
||||
@@ -206,13 +295,14 @@ widget-developer_mode-more_info = Ulteriori informazioni
|
||||
|
||||
## Widget: IMU Visualizer
|
||||
|
||||
widget-imu_visualizer = Rotazione
|
||||
widget-imu_visualizer = Dati di tracciamento
|
||||
widget-imu_visualizer-preview = Anteprima
|
||||
widget-imu_visualizer-hide = Nascondi
|
||||
widget-imu_visualizer-rotation_raw = Non processato
|
||||
widget-imu_visualizer-rotation_preview = Anteprima
|
||||
widget-imu_visualizer-acceleration = Accelerazione
|
||||
widget-imu_visualizer-position = Posizione
|
||||
widget-imu_visualizer-stay_aligned = Rimani Allineato
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -240,6 +330,7 @@ tracker-table-column-temperature = Temperatura °C
|
||||
tracker-table-column-linear-acceleration = Accellerazione X/Y/Z
|
||||
tracker-table-column-rotation = Rotazione X/Y/Z
|
||||
tracker-table-column-position = Rotazione X/Y/Z
|
||||
tracker-table-column-stay_aligned = Rimani Allineato
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -283,7 +374,7 @@ tracker-settings-title = Impostazioni del tracker
|
||||
tracker-settings-assignment_section = Assegnazione
|
||||
tracker-settings-assignment_section-description = Definisce a che parte del corpo è assegnato il tracker.
|
||||
tracker-settings-assignment_section-edit = Modifica assegnazione
|
||||
tracker-settings-mounting_section = Posizionamento di montaggio
|
||||
tracker-settings-mounting_section = Orientamento del posizionamento
|
||||
tracker-settings-mounting_section-description = Dove è posizionato il tracker?
|
||||
tracker-settings-mounting_section-edit = Modifica posizionamento
|
||||
tracker-settings-drift_compensation_section = Consenti compensazione per il drift
|
||||
@@ -306,6 +397,7 @@ tracker-settings-forget = Dimentica il tracker
|
||||
tracker-settings-forget-description = Rimuove il tracker dal SlimeVR server e impedisce che si riconnetta ad fino al riavvio del server. Le impostazioni del tracker non andranno perse.
|
||||
tracker-settings-forget-label = Dimentica il tracker
|
||||
tracker-settings-update-unavailable = Non può essere aggiornata (fai da te)
|
||||
tracker-settings-update-low-battery = Non è possibile aggiornare. Batteria inferiore al 50%
|
||||
tracker-settings-update-up_to_date = Aggiornata
|
||||
tracker-settings-update-available = { $versionName } è ora disponibile
|
||||
tracker-settings-update = Aggiorna
|
||||
@@ -376,7 +468,8 @@ mounting_selection_menu-close = Chiudi
|
||||
settings-sidebar-title = Impostazioni
|
||||
settings-sidebar-general = Generali
|
||||
settings-sidebar-tracker_mechanics = Comportamento del tracker
|
||||
settings-sidebar-fk_settings = Impostazioni di traking
|
||||
settings-sidebar-stay_aligned = Rimani Allineato
|
||||
settings-sidebar-fk_settings = Impostazioni del tracciamento
|
||||
settings-sidebar-gesture_control = Controllo con gesti
|
||||
settings-sidebar-interface = Interfaccia
|
||||
settings-sidebar-osc_router = Router OSC
|
||||
@@ -385,7 +478,9 @@ settings-sidebar-utils = Strumenti
|
||||
settings-sidebar-serial = Console seriale
|
||||
settings-sidebar-appearance = Aspetto
|
||||
settings-sidebar-notifications = Notifiche
|
||||
settings-sidebar-behavior = Comportamento
|
||||
settings-sidebar-firmware-tool = Strumento firmware fai-da-te
|
||||
settings-sidebar-vrc_warnings = Avvertimenti per le impostazioni di VRChat
|
||||
settings-sidebar-advanced = Avanzate
|
||||
|
||||
## SteamVR settings
|
||||
@@ -458,17 +553,36 @@ settings-general-tracker_mechanics-drift_compensation-max_resets-label = Utilizz
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Salva automaticamente la calibrazione del ripristino del posizionamento
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Salva in automatico la calibrazione del ripristino del posizionamento per i tracker tra un riavvio e l'altro. Utile
|
||||
quando si indossa una tuta in cui la posizione e orientamento dei tracker non cambia tra una sessione e l'altra. <b>Non raccomandato per gli utenti standard!</b>
|
||||
quando si indossa una tuta in cui la posizione e orientamento dei tracker non cambia tra una sessione e l'altra. <b>Non consigliato per gli utenti normali!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Salva il ripristino del posizionamento
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Utilizza il magnetometro su tutti i tracker IMU che lo supportano
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Utilizza il magnetometro su tutti i tracker che dispongono di un firmware compatibile, riducendo il drift in ambienti magnetici stabili.
|
||||
Può essere disabilitato per ogni tracker nelle impostazioni del tracker. <b>Per favore non spegnere nessuno dei tracker durante l'attivazione!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Usa il magnetometro sui tracker
|
||||
settings-stay_aligned = Rimani Allineato
|
||||
settings-stay_aligned-description = Rimani Allineato riduce la deriva regolando gradualmente i tracker per allinearsi alle tue pose rilassate.
|
||||
settings-stay_aligned-setup-label = Configura Rimani Allineato
|
||||
settings-stay_aligned-setup-description = Devi completare "Configura Rimani Allineato" per attivare Rimani Allineato.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ Si prega di disattivare la compensazione del drift! La compensazione del drift andrà in conflitto con l'opzione Rimani allineato.
|
||||
settings-stay_aligned-enabled-label = Regola i tracker
|
||||
settings-stay_aligned-hide_yaw_correction-label = Nascondi regolazione (per confrontare con l'opzione Rimani allineato)
|
||||
settings-stay_aligned-general-label = Generale
|
||||
settings-stay_aligned-relaxed_poses-label = Pose Rilassate
|
||||
settings-stay_aligned-relaxed_poses-description = Rimani Allineato utilizza le tue pose rilassate per mantenere allineati i tracker. Usa "Configura Rimani Allineato" per aggiornare queste pose.
|
||||
settings-stay_aligned-relaxed_poses-standing = Regola i tracker stando in piedi
|
||||
settings-stay_aligned-relaxed_poses-sitting = Regola i tracker mentre sei seduto su una sedia
|
||||
settings-stay_aligned-relaxed_poses-flat = Regola i tracker mentre sei seduto a terra o sdraiato sulla schiena
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Salva posa
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Ripristina posa
|
||||
settings-stay_aligned-relaxed_poses-close = Chiudi
|
||||
settings-stay_aligned-debug-label = Debug
|
||||
settings-stay_aligned-debug-description = Includi le tue impostazioni quando segnali problemi relativi a Rimani Allineato.
|
||||
settings-stay_aligned-debug-copy-label = Copia le impostazioni negli appunti
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
settings-general-fk_settings = Impostazioni di tracking
|
||||
settings-general-fk_settings = Impostazioni del traciamento
|
||||
# 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
|
||||
@@ -485,7 +599,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-description = "Correzi
|
||||
settings-general-fk_settings-leg_tweak-floor_clip-description = "Compenetrazione pavimento" può ridurre o anche eliminare completamente la compenetrazione con il pavimento. Quando abiliti questa funzione é necessario eseguire un ripristino completo e ri-calibrazione in gioco per il corretto funzionamento.
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = "Dita dei piedi piantate" prova ad indovinare la rotazione dei tuoi piedi quando non stai usando dei tracker per i piedi.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = "Piedi piantati" ruota i piedi in modo tale che siano paralleli al terreno quando in contatto con esso.
|
||||
settings-general-fk_settings-leg_fk = Tracking delle gambe
|
||||
settings-general-fk_settings-leg_fk = Tracciamento delle gambe
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Abilita il ripristino di posizionamento dei piedi mettendosi in punta di piedi.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Ripristino del posizionamento dei piedi
|
||||
settings-general-fk_settings-enforce_joint_constraints = Limiti dello scheletro
|
||||
@@ -493,7 +607,7 @@ settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Ris
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Impedisci ai legamenti di ruotare oltre il loro limite
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Correggi con i vincoli
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Correggi le rotazioni dei legamenti quando si spingono oltre il loro limite
|
||||
settings-general-fk_settings-arm_fk = Tracking delle braccia
|
||||
settings-general-fk_settings-arm_fk = Tracciamento delle braccia
|
||||
settings-general-fk_settings-arm_fk-description = Forza il calcolo della posizione delle braccia a utilizzare il visore anche se la posizione delle mani é disponibile.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Forza il calcolo delle braccia dal visore
|
||||
settings-general-fk_settings-reset_settings = Ripristino delle impostazioni
|
||||
@@ -509,7 +623,7 @@ settings-general-fk_settings-arm_fk-tpose_down-description = Si aspetta che le b
|
||||
settings-general-fk_settings-arm_fk-forward = Avanti
|
||||
settings-general-fk_settings-arm_fk-forward-description = Si aspetta che le tue braccia siano alzate di 90 gradi in avanti. Utile per VTubing.
|
||||
settings-general-fk_settings-skeleton_settings-toggles = Interruttori per lo scheletro
|
||||
settings-general-fk_settings-skeleton_settings-description = Abilita o disabilita le impostazioni dello scheletro. É raccomandato lasciare queste impostazioni attive.
|
||||
settings-general-fk_settings-skeleton_settings-description = Abilita o disabilita le impostazioni dello scheletro. É consigliato lasciare queste impostazioni attive.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine_model = Modello di colonna vertebrale estesa
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = modello di bacino esteso
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees_model = Modello di ginocchio esteso
|
||||
@@ -596,6 +710,13 @@ settings-general-interface-feedback_sound-volume = Volume del suono di feedback
|
||||
settings-general-interface-connected_trackers_warning = Avviso di tracker connessi
|
||||
settings-general-interface-connected_trackers_warning-description = Questa opzione mostrerà un pop-up ogni volta che proverai ad uscire da SmileVR mentre uno o più tracker sono connessi. Ció ti permetterà di ricordarti di spegnere i tuoi tracker per preservarne la durata delle batterie.
|
||||
settings-general-interface-connected_trackers_warning-label = Avviso di tracker connessi alla chiusura dell'applicazione
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportamento
|
||||
settings-general-interface-dev_mode = Modalità sviluppatore
|
||||
settings-general-interface-dev_mode-description = Questa modalità è utile se hai bisogno di dati approfonditi o devi interagire in maniera più avanzata con i tracker connessi.
|
||||
settings-general-interface-dev_mode-label = Modalità sviluppatore
|
||||
settings-general-interface-use_tray = Riduci a icona nella barra delle applicazioni
|
||||
settings-general-interface-use_tray-description = Ti consente di chiudere la finestra senza chiudere il server SlimeVR in modo da poter continuare a usarlo senza che la GUI ti infastidisca.
|
||||
settings-general-interface-use_tray-label = Riduci a icona nella barra delle applicazioni
|
||||
@@ -608,6 +729,14 @@ settings-general-interface-discord_presence-message =
|
||||
[one] Sta usando 1 tracker
|
||||
*[other] Sta usando { $amount } tracker
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Raccolta degli errori tramite Sentry.io
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Acconsenti alla raccolta di dati di errore anonimizzati?</h1>
|
||||
|
||||
<b>Non raccogliamo informazioni personali</b> come l'indirizzo IP o le credenziali wireless. SlimeVR ha a cuore la tua privacy!
|
||||
|
||||
Per offrire la migliore esperienza utente, raccogliamo segnalazioni di errori anonime, metriche delle prestazioni e informazioni sul sistema operativo. Questo ci aiuta a rilevare bug e problemi con SlimeVR. Queste metriche vengono raccolte tramite Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Invia errori agli sviluppatori
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -755,9 +884,12 @@ settings-utils-advanced-reset_warning =
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = Ripristina impostazioni
|
||||
settings-utils-advanced-reset_warning-cancel = Annulla
|
||||
settings-utils-advanced-open_data = Cartella dei dati
|
||||
settings-utils-advanced-open_data-description = Aprire la cartella dati di SlimeVR in Esplora Risorse, contenente i file di configurazione e di registro.
|
||||
settings-utils-advanced-open_data-v1 = Cartella di configurazione
|
||||
settings-utils-advanced-open_data-description-v1 = Apri la cartella di configurazione di SlimeVR in Esplora Risorse, contenente la configurazione
|
||||
settings-utils-advanced-open_data-label = Apri cartella
|
||||
settings-utils-advanced-open_logs = Cartella dei Log
|
||||
settings-utils-advanced-open_logs-description = Apri la cartella dei log di SlimeVR in Esplora Risorse, contenente i log dell'app
|
||||
settings-utils-advanced-open_logs-label = Apri cartella
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -766,7 +898,7 @@ onboarding-continue = Continua
|
||||
onboarding-wip = Lavori in corso
|
||||
onboarding-previous_step = Passaggio precedente
|
||||
onboarding-setup_warning =
|
||||
<b>Attenzione:</b> La configurazione è necessaria per un buon tracking,
|
||||
<b>Attenzione:</b> La configurazione è necessaria per un buon tracciamento,
|
||||
è richiesta se è la prima volta che usi SlimeVR.
|
||||
onboarding-setup_warning-skip = Salta la configurazione
|
||||
onboarding-setup_warning-cancel = Continua la configurazione
|
||||
@@ -849,6 +981,17 @@ onboarding-connect_tracker-connection_status-looking_for_server = Ricerca del se
|
||||
onboarding-connect_tracker-connection_status-connection_error = Impossibile connettersi al Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = Impossibile trovare il server
|
||||
onboarding-connect_tracker-connection_status-done = Connesso al server
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = Impossibile ottenere log dal tracker
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = Impossibile trovare un tracker tramite USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = Il tracker è acceso?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Assicurati che il tracker sia acceso e connesso al computer
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = Nessun tracker rilevato
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
Con il cavo USB in dotazione collega un tracker al computer e accendilo.
|
||||
Se questo non funziona:
|
||||
- Prova con un altro cavo USB
|
||||
- Prova con un'altra porta USB
|
||||
- Prova a reinstallare il server SlimeVR e seleziona "Driver USB" nella sezione componenti
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -1034,8 +1177,9 @@ onboarding-automatic_mounting-mounting_reset-title = Ripristino del posizionamen
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Piegati come per sciare: con le gambe leggermente piegate e unite, la parte superiore del corpo inclinata in avanti e le braccia piegate.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Premere il pulsante "Ripristino del posizionamento" e attendere 3 secondi prima che le rotazioni delle posizioni di montaggio dei tracker vengano ripristinate.
|
||||
onboarding-automatic_mounting-preparation-title = Preparazione
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stai in piedi drittə con le braccia lungo i fianchi.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Premi il pulsante "Ripristino completo" e attendi 3 secondi prima che i tracker vengano ripristinati.
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Premi il pulsante "Ripristino completo".
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Stai in piedi con le braccia lungo i fianchi. Assicurati di guardare in avanti.
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Mantieni la posizione fino allo scadere dei 3 secondi.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Indossa i tuoi tracker
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Per calibrare le rotazioni delle posizioni di montaggio useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei tracker
|
||||
@@ -1044,16 +1188,16 @@ onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei
|
||||
|
||||
onboarding-manual_proportions-back = Torna al tutorial di ripristino
|
||||
onboarding-manual_proportions-title = Impostazione manuale delle proporzioni del corpo
|
||||
onboarding-manual_proportions-precision = Regolazione di precisione
|
||||
onboarding-manual_proportions-auto = Calibrazione automatica
|
||||
onboarding-manual_proportions-ratio = Regolazione tramite gruppi di rapporti
|
||||
onboarding-manual_proportions-fine_tuning_button = Regola automaticamente le proporzioni
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Per piacer collega un visore VR per utilizzare la regolazione automatica
|
||||
onboarding-manual_proportions-export = Esporta le proporzioni del corpo
|
||||
onboarding-manual_proportions-import = Importa le proporzioni del corpo
|
||||
onboarding-manual_proportions-import-success = Importate con successo
|
||||
onboarding-manual_proportions-import-failed = Importazione fallita
|
||||
onboarding-manual_proportions-file_type = File delle proporzioni del corpo
|
||||
onboarding-manual_proportions-normal_increment = Incremento normale
|
||||
onboarding-manual_proportions-precise_increment = Incremento preciso
|
||||
onboarding-manual_proportions-grouped_proportions = Proporzioni raggruppate
|
||||
onboarding-manual_proportions-all_proportions = Tutte le proporzioni
|
||||
onboarding-manual_proportions-estimated_height = Altezza utente stimata
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1151,6 +1295,13 @@ onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR non è att
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = La tua altezza totale è
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = La altezza del tuo visore stimata è:
|
||||
onboarding-scaled_proportions-manual_height-next_step = Continua e salva
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
Al momento stai utilizzando il metodo manuale per impostare le proporzioni in scala!
|
||||
<b>Questa modalità è consigliata solo se non si utilizza un Visore con SlimeVR</b>
|
||||
|
||||
Per poter utilizzare le proporzioni in scala automatica, si prega di:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Collegare un visore VR
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Assicurarsi che i controller siano collegati e assegnati correttamente alle mani
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
@@ -1159,6 +1310,40 @@ onboarding-scaled_proportions-reset_proportion-description = Per impostare le pr
|
||||
onboarding-scaled_proportions-done-title = Proporzioni del corpo configurate
|
||||
onboarding-scaled_proportions-done-description = Le proporzioni del tuo corpo dovrebbero ora essere configurate in base alla tua altezza.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = Rimani Allineato
|
||||
onboarding-stay_aligned-description = Configura Rimani Allineato per mantenere allineati i tuoi tracker.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Indossa i tuoi tracker
|
||||
onboarding-stay_aligned-put_trackers_on-description = Per salvare la tua posa useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = Hai meno di 5 tracker attualmente collegati e assegnati! Questa è la quantità minima di tracker necessaria per il corretto funzionamento di Stay Aligned.
|
||||
onboarding-stay_aligned-put_trackers_on-next = Sto indossando tutti i miei tracker
|
||||
onboarding-stay_aligned-verify_mounting-title = Controlla il posizionamento dei tuoi tracker
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = Rimani Allineato richiede un buon posizionamento dei tracker. In caso contrario, non otterrai una buona esperienza con Rimani Allineato.
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. Muoviti stando in piedi.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Siediti e muovi gambe e piedi.
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. Se i tuoi tracker non sono nel posto giusto, riavvia il processo.
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = Rifai la calibrazione del posizionamento
|
||||
onboarding-stay_aligned-preparation-title = Preparazione
|
||||
onboarding-stay_aligned-preparation-tip = Assicurati di stare in piedi. Devi guardare in avanti e le tue braccia devono essere abbassate lungo i fianchi.
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = Posa Rilassata in piedi
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Stai in una posizione comoda. Rilassati!
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Premi il pulsante "Salva posa".
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = Seduto rilassato nella posa della sedia
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Siediti in una posizione comoda. Rilassati!
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Premi il pulsante "Salva posa".
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Posa rilassata seduta a terra
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Siediti a terra con le gambe in avanti. Rilassati!
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Premi il pulsante "Salva posa".
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Salta
|
||||
onboarding-stay_aligned-done-title = Rimani Allineato è abilitato!
|
||||
onboarding-stay_aligned-done-description = La configurazione di Rimani Allineato è completa!
|
||||
onboarding-stay_aligned-done-description-2 = L'installazione è completa! È possibile riavviare il processo se si desidera ricalibrare le pose
|
||||
onboarding-stay_aligned-previous_step = Precedente
|
||||
onboarding-stay_aligned-next_step = Successivo
|
||||
onboarding-stay_aligned-restart = Riavvia
|
||||
onboarding-stay_aligned-done = Fatto
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Nessun tracker rilevato o assegnato
|
||||
@@ -1182,6 +1367,7 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = Il tracker { $trackerName } ha un errore.
|
||||
status_system-StatusUnassignedHMD = Il visore deve essere assegnato come tracker della testa.
|
||||
status_system-StatusPublicNetwork = Il profilo di rete è attualmente impostato su Pubblico. Questo non è consigliato per il corretto funzionamento di SlimeVR. <PublicFixLink>Scopri come risolverlo qui.</PublicFixLink>
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
@@ -1280,7 +1466,7 @@ firmware_tool-build_step = Compilazione
|
||||
firmware_tool-build_step-description = Il firmware è in fase di compilazione, attendere
|
||||
firmware_tool-flashing_step = Flashing
|
||||
firmware_tool-flashing_step-description = Stiamo flashando I tuoi tracker, per piacere segui le istruzioni sullo schermo
|
||||
firmware_tool-flashing_step-warning = Non scollegare o riavviare il tracker durante il processo di caricamento a meno che non venga richiesto, potrebbe rendere la scheda inutilizzabile
|
||||
firmware_tool-flashing_step-warning-v2 = Non scollegare o spegnere il tracker durante il processo di caricamento a meno che non venga richiesto, potrebbe rendere la scheda inutilizzabile
|
||||
firmware_tool-flashing_step-flash_more = Esegui il flashing di altri tracker
|
||||
firmware_tool-flashing_step-exit = Esci
|
||||
|
||||
@@ -1298,7 +1484,7 @@ firmware_tool-build-ERROR = Impossibile compilare il firmware
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Scaricamento del firmware
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = In attesa che l'utente riavvii il tracker
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = Spegnere e riaccendere il tracker
|
||||
firmware_update-status-AUTHENTICATING = Autenticazione con l'MCU
|
||||
firmware_update-status-UPLOADING = Caricamento del firmware
|
||||
firmware_update-status-SYNCING_WITH_MCU = Sincronizzazione con l'MCU
|
||||
@@ -1353,3 +1539,53 @@ unknown_device-modal-description =
|
||||
Vuoi collegarlo a SlimeVR?
|
||||
unknown_device-modal-confirm = Certo!
|
||||
unknown_device-modal-forget = Ignoralo
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = Avvertimenti per le impostazioni di VRChat
|
||||
vrc_config-page-desc = Questa pagina mostra lo stato delle impostazioni di VRChat e quali impostazioni sono incompatibili con SlimeVR. Si consiglia vivamente di correggere eventuali avvisi visualizzati qui per una migliore esperienza utente con SlimeVR.
|
||||
vrc_config-page-help = Non riesci a trovare le impostazioni?
|
||||
vrc_config-page-help-desc = Dai un'occhiata alla nostra <a>documentazione su questo argomento!</a>
|
||||
vrc_config-page-big_menu = Tracking e IK (Menu Grande)
|
||||
vrc_config-page-big_menu-desc = Impostazioni relative a IK nel menu delle impostazioni grande
|
||||
vrc_config-page-wrist_menu = Tracking & IK (Menu al polso)
|
||||
vrc_config-page-wrist_menu-desc = Impostazioni relative a IK nel menu delle impostazioni piccolo (menu al polso)
|
||||
vrc_config-on = Acceso
|
||||
vrc_config-off = Spento
|
||||
vrc_config-invalid = Hai configurato male le impostazioni di VRChat!
|
||||
vrc_config-show_more = Mostra di più
|
||||
vrc_config-setting_name = Nome dell'impostazione in VRChat
|
||||
vrc_config-recommended_value = Valore consigliato
|
||||
vrc_config-current_value = Valore corrente
|
||||
vrc_config-mute = Avviso: microfono disattivato
|
||||
vrc_config-mute-btn = Muto
|
||||
vrc_config-unmute-btn = Riattiva il microfono
|
||||
vrc_config-legacy_mode = Usa la risoluzione IK versione precedente
|
||||
vrc_config-disable_shoulder_tracking = Disabilita il tracciamento della spalla
|
||||
vrc_config-shoulder_width_compensation = Compensazione della larghezza delle spalle
|
||||
vrc_config-spine_mode = Modalità spina dorsale FBT
|
||||
vrc_config-tracker_model = Modello Tracker FBT
|
||||
vrc_config-avatar_measurement_type = Misurazione dell'avatar
|
||||
vrc_config-calibration_range = Raggio di Calibrazione
|
||||
vrc_config-calibration_visuals = Mostra Aiuto Visivo Calibrazione
|
||||
vrc_config-user_height = Altezza reale dell'utente
|
||||
vrc_config-spine_mode-UNKNOWN = Sconosciuto
|
||||
vrc_config-spine_mode-LOCK_BOTH = Blocca entrambi
|
||||
vrc_config-spine_mode-LOCK_HEAD = Blocca Testa
|
||||
vrc_config-spine_mode-LOCK_HIP = Blocca anca
|
||||
vrc_config-tracker_model-UNKNOWN = Sconosciuto
|
||||
vrc_config-tracker_model-AXIS = Assi
|
||||
vrc_config-tracker_model-BOX = Cubo
|
||||
vrc_config-tracker_model-SPHERE = Sfera
|
||||
vrc_config-tracker_model-SYSTEM = Sistema
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = Sconosciuto
|
||||
vrc_config-avatar_measurement_type-HEIGHT = Altezza
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = Apertura del braccio
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = Possiamo raccogliere gli errori?
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-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
|
||||
|
||||
694
gui/public/i18n/lt/translation.ftl
Normal file
@@ -0,0 +1,694 @@
|
||||
# Please developers (not translators) don't reuse a key inside another key
|
||||
# or concat text with a translation string in the code, use the appropriate
|
||||
# features like variables and selectors in each appropriate case!
|
||||
# And also comment the string if it's something not easy to translate, so you help
|
||||
# translators on what it means
|
||||
|
||||
|
||||
## Websocket (server) status
|
||||
|
||||
websocket-connecting = Įkeliama...
|
||||
websocket-connection_lost = Įvyko techninė klaida!
|
||||
websocket-connection_lost-desc = Panašu, kad įvyko techninė klaida SlimeVR serveryje. Patikrinkite log'us ir bandykite jį perkrauti.
|
||||
websocket-timedout = Nepavyko susisiekti su serveriu
|
||||
websocket-timedout-desc = Panašu, kad SlimeVR serveris užstrigo. Patikrinkite log'us ir bandykite jį perkrauti.
|
||||
websocket-error-close = Uždaryti SlimeVR
|
||||
websocket-error-logs = Atidaryti log'ų aplanką
|
||||
|
||||
## Update notification
|
||||
|
||||
version_update-title = Yra nauja versija: { $version }
|
||||
version_update-description = Paspaudus „{ version_update-update }“, bus atsiųstas SlimeVR diegiklis.
|
||||
version_update-update = Atnaujinti
|
||||
version_update-close = Atmesti
|
||||
|
||||
## Tips
|
||||
|
||||
tips-find_tracker = Neaiškų, kuris sekiklis yra kuris? Pakratykite vieną - atitinkamas elementas bus paryškintas.
|
||||
tips-do_not_move_heels = Įrašymo metu pasirūpinkite, kad kulnai nejudėtų!
|
||||
tips-file_select = Tempkite failus čia, arba <u>pasirinkite</u> rankiniu būdu.
|
||||
tips-tap_setup = Vietoj pasirinkimo iš meniu, galite du kartus švelniai bakstelėti sekiklį, kad jį pasirinkti.
|
||||
tips-turn_on_tracker = Naudojate oficialius SlimeVR sekiklius? Nepamirškite <b><em>įjungti juos</em></b> po prijungimo prie kompiuterio!
|
||||
tips-failed_webgl = Įvyko techninė klaida inicijuojant WebGL.
|
||||
|
||||
## Body parts
|
||||
|
||||
body_part-NONE = Nepriskirta
|
||||
body_part-HEAD = Galva
|
||||
body_part-NECK = Kaklas
|
||||
body_part-RIGHT_SHOULDER = Dešinysis petys
|
||||
body_part-RIGHT_UPPER_ARM = Dešinysis žastas
|
||||
body_part-RIGHT_LOWER_ARM = Dešinysis dilbis
|
||||
body_part-RIGHT_HAND = Dešinioji ranka
|
||||
body_part-RIGHT_UPPER_LEG = Dešinioji šlaunis
|
||||
body_part-RIGHT_LOWER_LEG = Dešinioji blauzda
|
||||
body_part-RIGHT_FOOT = Dešinioji pėda
|
||||
body_part-UPPER_CHEST = Viršutinė krūtinės dalis
|
||||
body_part-CHEST = Krūtinė
|
||||
body_part-WAIST = Liemuo
|
||||
body_part-HIP = Klubai
|
||||
body_part-LEFT_SHOULDER = Kairysis petys
|
||||
body_part-LEFT_UPPER_ARM = Kairysis žastas
|
||||
body_part-LEFT_LOWER_ARM = Kairysis dilbis
|
||||
body_part-LEFT_HAND = Kairioji ranka
|
||||
body_part-LEFT_UPPER_LEG = Kairioji šlaunis
|
||||
body_part-LEFT_LOWER_LEG = Kairioji blauzda
|
||||
body_part-LEFT_FOOT = Kairioji pėda
|
||||
body_part-LEFT_THUMB_METACARPAL = Kairiojo nykščio delnakaulis
|
||||
body_part-LEFT_THUMB_PROXIMAL = Kairiojo nykščio artimoji dalis
|
||||
body_part-LEFT_THUMB_DISTAL = Kairiojo nykščio tolimiausioji dalis
|
||||
body_part-LEFT_INDEX_PROXIMAL = Kairiojo smiliaus artimoji dalis
|
||||
body_part-LEFT_INDEX_INTERMEDIATE = Kairiojo smiliaus vidurinė dalis
|
||||
body_part-LEFT_INDEX_DISTAL = Kairiojo smiliaus tolimiausioji dalis
|
||||
body_part-LEFT_MIDDLE_PROXIMAL = Kairiojo didžiojo piršto artimoji dalis
|
||||
body_part-LEFT_MIDDLE_INTERMEDIATE = Kairiojo didžiojo piršto vidurinė dalis
|
||||
body_part-LEFT_MIDDLE_DISTAL = Kairiojo didžiojo piršto tolimiausioji dalis
|
||||
body_part-LEFT_RING_PROXIMAL = Kairiojo bevardžio piršto artimoji dalis
|
||||
body_part-LEFT_RING_INTERMEDIATE = Kairiojo bevardžio piršto vidurinė dalis
|
||||
body_part-LEFT_RING_DISTAL = Kairiojo bevardžio piršto tolimiausioji dalis
|
||||
body_part-LEFT_LITTLE_PROXIMAL = Kairiojo mažylio artimoji dalis
|
||||
body_part-LEFT_LITTLE_INTERMEDIATE = Kairiojo mažylio vidurinė dalis
|
||||
body_part-LEFT_LITTLE_DISTAL = Kairiojo mažylio tolimiausioji dalis
|
||||
body_part-RIGHT_THUMB_METACARPAL = Dešiniojo nykščio delnakaulis
|
||||
body_part-RIGHT_THUMB_PROXIMAL = Dešiniojo nykščio artimoji dalis
|
||||
body_part-RIGHT_THUMB_DISTAL = Dešiniojo nykščio tolimiausioji dalis
|
||||
body_part-RIGHT_INDEX_PROXIMAL = Dešiniojo smiliaus artimoji dalis
|
||||
body_part-RIGHT_INDEX_INTERMEDIATE = Dešiniojo smiliaus vidurinė dalis
|
||||
body_part-RIGHT_INDEX_DISTAL = Dešiniojo smiliaus tolimiausioji dalis
|
||||
body_part-RIGHT_MIDDLE_PROXIMAL = Dešinioji didžiojo piršto artimoji dalis
|
||||
body_part-RIGHT_MIDDLE_INTERMEDIATE = Dešinioji didžiojo piršto vidurinė dalis
|
||||
body_part-RIGHT_MIDDLE_DISTAL = Dešinioji didžiojo piršto tolimiausioji dalis
|
||||
body_part-RIGHT_RING_PROXIMAL = Dešiniojo bevardžio piršto artimoji dalis
|
||||
body_part-RIGHT_RING_INTERMEDIATE = Dešiniojo bevardžio piršto vidurinė dalis
|
||||
body_part-RIGHT_RING_DISTAL = Dešiniojo bevardžio piršto tolimiausioji dalis
|
||||
body_part-RIGHT_LITTLE_PROXIMAL = Dešiniojo mažylio artimoji dalis
|
||||
body_part-RIGHT_LITTLE_INTERMEDIATE = Dešiniojo mažylio vidurinė dalis
|
||||
body_part-RIGHT_LITTLE_DISTAL = Dešiniojo mažylio tolimiausioji dalis
|
||||
|
||||
## BoardType
|
||||
|
||||
board_type-UNKNOWN = Nežinoma
|
||||
board_type-NODEMCU = NodeMCU
|
||||
board_type-CUSTOM = Nestandartinė plokštė
|
||||
board_type-WROOM32 = WROOM32
|
||||
board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-WRANGLER = „Wrangler“ Joycon'ai
|
||||
board_type-MOCOPI = Sony Mocopi
|
||||
board_type-WEMOSWROOM02 = Wemos Wroom-02 D1 Mini
|
||||
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
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Nenurodyta
|
||||
skeleton_bone-HEAD = Galvos poslinkis
|
||||
skeleton_bone-HEAD-desc =
|
||||
Tai atstumas nuo jūsų VR akinių iki galvos centro.
|
||||
Norėdami tinkamai nustatyti, sukite galvą į kairę ir dešinę, tarsi nesutinkate, ir koreguokite,
|
||||
kol judesys kituose sekikliuose taps minimalus.
|
||||
skeleton_bone-NECK = Kaklo ilgis
|
||||
skeleton_bone-NECK-desc =
|
||||
Tai atstumas nuo galvos centro iki kaklo pagrindo.
|
||||
Norėdami tinkamai nustatyti, linktelėkite galvą aukštyn ir žemyn, arba palenkite
|
||||
galvą į kairę ir dešinę ir koreguokite, kol judesys kituose sekikliuose taps minimalus
|
||||
skeleton_bone-torso_group = Liemens ilgis
|
||||
skeleton_bone-torso_group-desc =
|
||||
Tai atstumas nuo kaklo pagrindo iki klubų.
|
||||
Norėdami tinkamai nustatyti, stovėkite tiesiai ir koreguokite, kol
|
||||
virtualūs klubai sutaps su jūsų realiaisiais.
|
||||
skeleton_bone-UPPER_CHEST = Viršutinės krūtinės ilgis
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
Tai atstumas nuo kaklo pagrindo iki krūtinės vidurio.
|
||||
Pirmiausiai tinkamai nustatykite liemens ilgį, tada koreguokite įvairiose padėtyse
|
||||
(sėdint, pasilenkiant, gulint), kol virtualus stuburas tiksliai sutaps su realiuoju.
|
||||
skeleton_bone-CHEST_OFFSET = Krūtinės poslinkis
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
Koreguokite tai, jei reikia perkelti virtualų krūtinės sekiklį aukštyn ar žemyn, kad pagerinti
|
||||
kalibravimą tam tikruose žaidimuose ar programose, kurios tikisi sekiklį matyti aukščiau ar žemiau.
|
||||
skeleton_bone-CHEST = Krūtinės ilgis
|
||||
skeleton_bone-CHEST-desc =
|
||||
Tai atstumas nuo krūtinės vidurio iki stuburo centro.
|
||||
Pirmiausiai tinkamai nustatykite liemens ilgį, tada koreguokite įvairiose padėtyse
|
||||
(sėdint, pasilenkiant, gulint), kol virtualus stuburas tiksliai sutaps su realiuoju.
|
||||
skeleton_bone-WAIST = Juosmens ilgis
|
||||
skeleton_bone-WAIST-desc =
|
||||
Tai atstumas nuo stuburo centro iki bambos.
|
||||
Pirmiausiai tinkamai nustatykite liemens ilgį, tada koreguokite įvairiose padėtyse
|
||||
(sėdint, pasilenkiant, gulint), kol virtualus stuburas tiksliai sutaps su realiuoju.
|
||||
skeleton_bone-HIP = Klubų ilgis
|
||||
skeleton_bone-HIP-desc =
|
||||
Tai atstumas nuo bambos iki klubų.
|
||||
Pirmiausiai tinkamai nustatykite liemens ilgį, tada koreguokite įvairiose padėtyse
|
||||
(sėdint, pasilenkiant, gulint), kol virtualus stuburas tiksliai sutaps su realiuoju.
|
||||
skeleton_bone-HIP_OFFSET = Klubų poslinkis
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
Koreguokite tai, jei reikia perkelti virtualų klubų sekiklį aukštyn ar žemyn, kad pagerinti
|
||||
kalibravimą tam tikruose žaidimuose ar programose, kurios tikisi sekiklį matyti liemens lygyje.
|
||||
skeleton_bone-HIPS_WIDTH = Klubų plotis
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
Tai atstumas tarp jūsų kojų pradžios taškų.
|
||||
Norėdami tinkamai nustatyti, atlikite pilną atstatymą tiesiomis kojomis ir koreguokite,
|
||||
kol virtualios kojos horizontaliai sutaps su realiosiomis.
|
||||
skeleton_bone-leg_group = Kojų ilgis
|
||||
skeleton_bone-leg_group-desc =
|
||||
Tai atstumas tarp klubų iki pėdų.
|
||||
Pirmiausiai tinkamai nustatykite liemens ilgį, tada koreguokite,
|
||||
kol virtualios pėdos bus tame pačiame aukštyje kaip jūsų realiosios.
|
||||
skeleton_bone-UPPER_LEG = Šlaunies ilgis
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
Tai atstumas tarp klubų iki kelių.
|
||||
Pirmiausiai tinkamai nustatykite kojų ilgį, tada koreguokite,
|
||||
kol virtualūs keliai bus tame pačiame aukštyje kaip jūsų realieji.
|
||||
skeleton_bone-LOWER_LEG = Blauzdos ilgis
|
||||
skeleton_bone-FOOT_LENGTH = Pėdos ilgis
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
Tai atstumas nuo kulkšnių iki kojų pirštų.
|
||||
Norėdami tinkamai nustatyti, atsistokite ant pirštų galų ir koreguokite, kol
|
||||
virtualios pėdos stabiliai laikysis vietoje.
|
||||
skeleton_bone-FOOT_SHIFT = Pėdos poslinkis
|
||||
skeleton_bone-SKELETON_OFFSET = Skeletinė kompensacija
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Pečių atstumas
|
||||
skeleton_bone-SHOULDERS_WIDTH = Pečių plotis
|
||||
skeleton_bone-arm_group = Rankų ilgis
|
||||
skeleton_bone-UPPER_ARM = Žasto ilgis
|
||||
skeleton_bone-LOWER_ARM = Dilbio ilgis
|
||||
skeleton_bone-HAND_Y = Rankos atstumas Y
|
||||
skeleton_bone-HAND_Z = Rankos atstumas Z
|
||||
skeleton_bone-ELBOW_OFFSET = Alkūnės poslinkis
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = Atstatyti visas proporcijas
|
||||
reset-reset_all_warning-v2 =
|
||||
<b>Dėmesio:</b> Jūsų proporcijos bus atstatytos į numatytąsias, pritaikytas pagal jūsų nustatytą ūgį.
|
||||
Ar tikrai norite tai padaryti?
|
||||
reset-reset_all_warning-reset = Atstatyti proporcijas
|
||||
reset-reset_all_warning-cancel = Atšaukti
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>Dėmesio:</b> Jūs nenustatėte ūgio, todėl proporcijos bus atstatytos pagal numatytąjį ūgį.
|
||||
Ar tikrai norite tai padaryti?
|
||||
reset-full = Pilnas atstatymas
|
||||
reset-mounting = Tvirtinimo pozicijų atstatymas
|
||||
reset-yaw = Horizontalus atstatymas
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
serial_detection-new_device-p0 = Aptiktas naujas serijinis įrenginys!
|
||||
serial_detection-new_device-p1 = Įveskite savo „Wi-Fi“ prisijungimo duomenis!
|
||||
serial_detection-new_device-p2 = Pasirinkite, ką norite su juo daryti
|
||||
serial_detection-open_wifi = Prijungti prie „Wi-Fi“
|
||||
serial_detection-open_serial = Atidaryti serijinę konsolę
|
||||
serial_detection-submit = Patvirtinti!
|
||||
serial_detection-close = Uždaryti
|
||||
|
||||
## Navigation bar
|
||||
|
||||
navbar-home = Pradžia
|
||||
navbar-body_proportions = Kūno proporcijos
|
||||
navbar-trackers_assign = Sekiklių priskyrimas
|
||||
navbar-mounting = Tvirtinimo kalibravimas
|
||||
navbar-onboarding = Sąrankos vedlys
|
||||
navbar-settings = Nustatymai
|
||||
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = Įrašyti BVH
|
||||
bvh-recording = Įrašoma...
|
||||
|
||||
## Tracking pause
|
||||
|
||||
tracking-unpaused = Pristabdyti sekimą
|
||||
tracking-paused = Tęsti sekimą
|
||||
|
||||
## Widget: Overlay settings
|
||||
|
||||
widget-overlay = Perdanga
|
||||
widget-overlay-is_visible_label = Rodyti perdangą SteamVR'e
|
||||
widget-overlay-is_mirrored_label = Rodyti perdangą kaip veidrodį
|
||||
|
||||
## Widget: Drift compensation
|
||||
|
||||
widget-drift_compensation-clear = Išvalyti dreifo kompensavimą
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
widget-clear_mounting = Išvalyti tvirtinimo atstatymą
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = Kūrėjo režimas
|
||||
widget-developer_mode-high_contrast = Didelis kontrastas
|
||||
widget-developer_mode-precise_rotation = Tiksli rotacija
|
||||
widget-developer_mode-fast_data_feed = Greitas duomenų perdavimas
|
||||
widget-developer_mode-filter_slimes_and_hmd = Filtruoti Slime ir HMD įrenginius
|
||||
widget-developer_mode-sort_by_name = Rikiuoti pagal pavadinimą
|
||||
widget-developer_mode-raw_slime_rotation = Neapdorota rotacija
|
||||
widget-developer_mode-more_info = Daugiau informacijos
|
||||
|
||||
## Widget: IMU Visualizer
|
||||
|
||||
widget-imu_visualizer = Sekimo duomenys
|
||||
widget-imu_visualizer-preview = Peržiūra
|
||||
widget-imu_visualizer-hide = Slėpti
|
||||
widget-imu_visualizer-rotation_raw = Neapdorota rotacija
|
||||
widget-imu_visualizer-rotation_preview = Rotacijos peržiūra
|
||||
widget-imu_visualizer-acceleration = Akceleracija
|
||||
widget-imu_visualizer-position = Pozicija
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
widget-skeleton_visualizer-preview = Skeleto peržiūra
|
||||
widget-skeleton_visualizer-hide = Slėpti
|
||||
|
||||
## Tracker status
|
||||
|
||||
tracker-status-none = Nėra būsenos
|
||||
tracker-status-busy = Užimtas
|
||||
tracker-status-error = Klaida
|
||||
tracker-status-disconnected = Atjungtas
|
||||
tracker-status-occluded = Užblokuotas
|
||||
tracker-status-ok = Veikiantis
|
||||
tracker-status-timed_out = Nebepasiekiamas
|
||||
|
||||
## Tracker status columns
|
||||
|
||||
tracker-table-column-name = Pavadinimas
|
||||
tracker-table-column-type = Tipas
|
||||
tracker-table-column-battery = Baterija
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-tps = TPS
|
||||
tracker-table-column-temperature = Temp. °C
|
||||
tracker-table-column-linear-acceleration = Akcel. X/Y/Z
|
||||
tracker-table-column-rotation = Rotacija X/Y/Z
|
||||
tracker-table-column-position = Pozicija X/Y/Z
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
|
||||
tracker-rotation-front = Priekyje
|
||||
tracker-rotation-front_left = Priekyje kairėje
|
||||
tracker-rotation-front_right = Priekyje dešinėje
|
||||
tracker-rotation-left = Kairėje
|
||||
tracker-rotation-right = Dešinėje
|
||||
tracker-rotation-back = Gale
|
||||
tracker-rotation-back_left = Gale kairėje
|
||||
tracker-rotation-back_right = Gale dešinėje
|
||||
tracker-rotation-custom = Pasirinktinis
|
||||
tracker-rotation-overriden = (perstatyta pagal tvirtinimo atstatymą)
|
||||
|
||||
## Tracker information
|
||||
|
||||
tracker-infos-manufacturer = Gamintojas
|
||||
tracker-infos-display_name = Rodomas pavadinimas
|
||||
tracker-infos-custom_name = Pasirinktinis pavadinimas
|
||||
tracker-infos-url = Sekiklio URL
|
||||
tracker-infos-version = Programinės įrangos versija
|
||||
tracker-infos-hardware_rev = Įrenginio revizija
|
||||
tracker-infos-hardware_identifier = Įrenginio ID
|
||||
tracker-infos-data_support = Duomenų palaikymas
|
||||
tracker-infos-imu = IMU jutiklis
|
||||
tracker-infos-board_type = Pagrindinė plokštė
|
||||
tracker-infos-network_version = Protokolo versija
|
||||
tracker-infos-magnetometer = Magnetometras
|
||||
tracker-infos-magnetometer-status-v1 =
|
||||
{ $status ->
|
||||
[DISABLED] Išjungtas
|
||||
[ENABLED] Įjungtas
|
||||
*[NOT_SUPPORTED] Nepalaikomas
|
||||
}
|
||||
|
||||
## Tracker settings
|
||||
|
||||
tracker-settings-back = Grįžti į sekiklio sąrašą
|
||||
tracker-settings-title = Sekiklio nustatymai
|
||||
tracker-settings-assignment_section = Priskyrimas
|
||||
tracker-settings-assignment_section-description = Kūno dalis, kuriai priskirtas sekiklis.
|
||||
tracker-settings-assignment_section-edit = Keisti priskyrimą
|
||||
tracker-settings-mounting_section = Tvirtinimo kryptis
|
||||
tracker-settings-mounting_section-description = Kur sekiklis yra tvirtinamas?
|
||||
tracker-settings-mounting_section-edit = Keisti tvirtinimą
|
||||
tracker-settings-drift_compensation_section = Leisti dreifo kompensavimo naudojimą
|
||||
tracker-settings-drift_compensation_section-description = Ar šis sekiklis turėtų kompensuoti dreifą, kai dreifo kompensavimas įjungtas?
|
||||
tracker-settings-drift_compensation_section-edit = Leisti dreifo kompensavimo naudojimą
|
||||
tracker-settings-use_mag = Leisti sekiklio magnetometro naudojimą
|
||||
# Multiline!
|
||||
tracker-settings-use_mag-description =
|
||||
Ar šis sekiklis turėtų naudoti magnetometrą dreifui sumažinti, kai įjungtas jo naudojimas? <b>Neišjunkite sekiklio keisdami šį nustatymą!</b>
|
||||
|
||||
Pirmiausia reikia įjungti magnetometro naudojimą, <magSetting>spustelėkite čia, kad pereiti prie nustatymo.</magSetting>
|
||||
tracker-settings-use_mag-label = Leisti magnetometro naudojimą
|
||||
# The .<name> means it's an attribute and it's related to the top key.
|
||||
# In this case that is the settings for the assignment section.
|
||||
tracker-settings-name_section = Sekiklio pavadinimas
|
||||
tracker-settings-name_section-description = Sugalvokite jam mielą vardą :)
|
||||
tracker-settings-name_section-placeholder = NightyBeast kairė koja
|
||||
tracker-settings-name_section-label = Sekiklio pavadinimas
|
||||
tracker-settings-forget = Pamiršti sekiklį
|
||||
tracker-settings-forget-description = Tai pašalins sekiklį iš SlimeVR serverio ir nebeleis jam prisijungti, kol neperkrausite serverį. Sekiklio nustatymai nebus prarasti.
|
||||
tracker-settings-forget-label = Pamiršti sekiklį
|
||||
tracker-settings-update-unavailable = Neįmanoma atnaujinti (DIY)
|
||||
tracker-settings-update-low-battery = Negalima atnaujinti, baterijos lygis žemesnis nei 50%
|
||||
tracker-settings-update-up_to_date = Atnaujinta
|
||||
tracker-settings-update-available = Prieinamas atnaujinimas: { $versionName }
|
||||
tracker-settings-update = Atnaujinti dabar
|
||||
tracker-settings-update-title = Programinės įrangos versija
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
tracker-part_card-no_name = Be pavadinimo
|
||||
tracker-part_card-unassigned = Nepriskirtas
|
||||
|
||||
## Body assignment menu
|
||||
|
||||
body_assignment_menu = Kur norite priskirti šį sekiklį?
|
||||
body_assignment_menu-description = Pasirinkite kūno vietą, į kurią priskirti šį sekikli. Taip pat galite valdyti visus sekiklius vienu metu, o ne po vieną.
|
||||
body_assignment_menu-show_advanced_locations = Rodyti išplėstines priskyrimo vietas
|
||||
body_assignment_menu-manage_trackers = Tvarkyti visus sekiklius
|
||||
body_assignment_menu-unassign_tracker = Išvalyti sekiklio priskyrimą
|
||||
|
||||
## Tracker assignment menu
|
||||
|
||||
# A -translation_key (with a dash in the front) means that it's a label.
|
||||
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
|
||||
#
|
||||
# We are using it here because english doesn't require changing the text in each case but
|
||||
# maybe your language does.
|
||||
-tracker_selection-part = Kurį sekiklį norite priskirti prie jūsų
|
||||
tracker_selection_menu-NONE = Kuro sekiklio priskyrimą norite išvalyti?
|
||||
tracker_selection_menu-HEAD = { -tracker_selection-part } galvos?
|
||||
tracker_selection_menu-NECK = { -tracker_selection-part } kaklo?
|
||||
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } dešinio peties?
|
||||
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } dešinio žasto?
|
||||
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } dešinio dilbio?
|
||||
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } dešinės rankos?
|
||||
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } dešiniosios šlaunies?
|
||||
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } dešiniosios blauzdos?
|
||||
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } dešinės pėdos?
|
||||
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } dešinio kontrolerio?
|
||||
tracker_selection_menu-UPPER_CHEST = { -tracker_selection-part } viršutinės krūtinės dalies?
|
||||
tracker_selection_menu-CHEST = { -tracker_selection-part } krūtinės?
|
||||
tracker_selection_menu-WAIST = { -tracker_selection-part } liemens?
|
||||
tracker_selection_menu-HIP = { -tracker_selection-part } klubų?
|
||||
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } kairio peties?
|
||||
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } kairio žasto?
|
||||
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } kairio dilbio?
|
||||
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } kairės rankos?
|
||||
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } kairiosios šlaunies?
|
||||
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } kairiosios blauzdos?
|
||||
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } kairės pėdos?
|
||||
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } kairio kontrolerio?
|
||||
tracker_selection_menu-unassigned = Nepriskirti sekikliai
|
||||
tracker_selection_menu-assigned = Priskirti sekikliai
|
||||
tracker_selection_menu-dont_assign = Išvalyti priskyrimą
|
||||
# This line cares about multilines.
|
||||
# <b>text</b> means that the text should be bold.
|
||||
tracker_selection_menu-neck_warning =
|
||||
<b>Dėmesio:</b> Kaklo sekiklio naudojimas gali sutrikdyti kraujotaką į
|
||||
galvą ir būti mirtinai pavojingas, jei dirželis netinkamai sureguliuotas!
|
||||
tracker_selection_menu-neck_warning-done = Suprantu riziką
|
||||
tracker_selection_menu-neck_warning-cancel = Atšaukti
|
||||
|
||||
## Mounting menu
|
||||
|
||||
mounting_selection_menu = Kur norite tvirtinti šį sekiklį?
|
||||
mounting_selection_menu-close = Uždaryti
|
||||
|
||||
## Sidebar settings
|
||||
|
||||
settings-sidebar-title = Nustatymai
|
||||
settings-sidebar-general = Bendrieji
|
||||
settings-sidebar-tracker_mechanics = Sekiklių mechanika
|
||||
settings-sidebar-fk_settings = Sekimo nustatymai
|
||||
settings-sidebar-gesture_control = Valdymas gestais
|
||||
settings-sidebar-interface = Sąsaja
|
||||
settings-sidebar-osc_router = OSC maršrutizatorius
|
||||
settings-sidebar-osc_trackers = VRChat OSC sekikliai
|
||||
settings-sidebar-utils = Įrankiai
|
||||
settings-sidebar-serial = Serijinė konsolė
|
||||
settings-sidebar-appearance = Išvaizda
|
||||
settings-sidebar-notifications = Pranešimai
|
||||
settings-sidebar-behavior = Elgsena
|
||||
settings-sidebar-firmware-tool = DIY sekiklių programinės įrangos įrankis
|
||||
settings-sidebar-advanced = Išplėstiniai
|
||||
|
||||
## SteamVR settings
|
||||
|
||||
settings-general-steamvr = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR sekikliai
|
||||
# Not all translation keys support multiline, only the ones that specify it will actually
|
||||
# split it in lines (that also means you can split in lines however you want in those).
|
||||
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
|
||||
# This one is one of this cases that cares about multilines
|
||||
settings-general-steamvr-description =
|
||||
Įjungti ar išjungti konkrečius SteamVR sekiklius.
|
||||
Tai naudinga žaidimams ar programoms, kurios veikia tik su tam tikrais sekikliais.
|
||||
settings-general-steamvr-trackers-waist = Liemuo
|
||||
settings-general-steamvr-trackers-chest = Krūtinė
|
||||
settings-general-steamvr-trackers-left_foot = Kairė pėda
|
||||
settings-general-steamvr-trackers-right_foot = Dešinė pėda
|
||||
settings-general-steamvr-trackers-left_knee = Kairysis kelias
|
||||
settings-general-steamvr-trackers-right_knee = Dešinysis kelias
|
||||
settings-general-steamvr-trackers-left_elbow = Kairė alkūnė
|
||||
settings-general-steamvr-trackers-right_elbow = Dešinė alkūnė
|
||||
settings-general-steamvr-trackers-left_hand = Kairė ranka
|
||||
settings-general-steamvr-trackers-right_hand = Dešinė ranka
|
||||
settings-general-steamvr-trackers-tracker_toggling = Automatinis sekiklių perjungimas
|
||||
settings-general-steamvr-trackers-tracker_toggling-description = Automatiškai įjungs ar išjungs SteamVR sekiklius pagal jūsų sekiklių priskyrimą
|
||||
settings-general-steamvr-trackers-tracker_toggling-label = Automatinis sekiklių perjungimas
|
||||
settings-general-steamvr-trackers-hands-warning =
|
||||
<b>Dėmesio:</b> rankų sekikliai atjungs jūsų kontrolerius.
|
||||
Ar tikrai to norite?
|
||||
settings-general-steamvr-trackers-hands-warning-cancel = Atšaukti
|
||||
settings-general-steamvr-trackers-hands-warning-done = Taip
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
settings-general-tracker_mechanics = Sekiklių mechanika
|
||||
settings-general-tracker_mechanics-filtering = Filtravimas
|
||||
# This also cares about multilines
|
||||
settings-general-tracker_mechanics-filtering-description =
|
||||
Pasirinkite filtravimo tipą.
|
||||
Prognozavimas numato judesius, o švelninimas juos sušvelnina.
|
||||
settings-general-tracker_mechanics-filtering-type = Filtravimo tipas
|
||||
settings-general-tracker_mechanics-filtering-type-none = Be filtravimo
|
||||
settings-general-tracker_mechanics-filtering-type-none-description = Naudoja judesius be jokio filtravimo.
|
||||
settings-general-tracker_mechanics-filtering-type-smoothing = Švelninimas
|
||||
settings-general-tracker_mechanics-filtering-type-smoothing-description = Sušvelnina judesius, bet prideda sekimo vėlavimą.
|
||||
settings-general-tracker_mechanics-filtering-type-prediction = Prognozavimas
|
||||
settings-general-tracker_mechanics-filtering-type-prediction-description = Sumažina sekimo vėlavimą, bet gali padidinti sekimo drebėjimą.
|
||||
settings-general-tracker_mechanics-filtering-amount = Filtravimo stiprumas
|
||||
settings-general-tracker_mechanics-yaw-reset-smooth-time = Horizontalaus atstatymo sušvelninimo laikas (0 s išjungs švelninimą)
|
||||
settings-general-tracker_mechanics-drift_compensation = Dreifo kompensavimas
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-description =
|
||||
Kompensuoja IMU jutiklių dreifą taikant priešingą sukimąsi.
|
||||
Galima keisti kompensavimo stiprumą, ir kiek atstatymų įtraukti į dreifo apskaičiavimą.
|
||||
Naudokite tik jeigu jūsų sekikliams reikalinga labai dažnai atlikti atstatymus!
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Dreifo kompensavimas
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = Dreifo kompensavimo prognozavimas
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
Prognozuoja horizontalaus dreifo kompensavimą už jau pamatuoto intervalo ribų.
|
||||
Įjunkite, jeigu jūsų sekikliai nuolat sukasi aplink vertikalią ašį.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = Dreifo kompensavimo prognozavimas
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>Dėmesio:</b> Dreifo kompensavimo naudokite tik jeigu jūsų
|
||||
sekikliams reikalinga labai dažnai atlikti atstatymus (kas 5, 10 min.).
|
||||
|
||||
Kai kurie sekikliai, linkę į dažną atstatymą:
|
||||
Joycon'ai, owoTrack, ir MPU IMU jutikliai be naujos programinės įrangos
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-cancel = Atšaukti
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-done = Suprantu
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensavimo stiprumas
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Kiek paskutinių atstatymų naudoti, dreifo kompensavimo atstatymui
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Išsaugoti automatinio tvirtinimo pozicijų kalibravimą
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Išsaugo sekiklių automatinio tvirtinimo pozicijų kalibravimą tarp paleidimų iš naujo. Tai yra naudinga,
|
||||
jeigu naudojate sekimo aprangą, kuriame sekikliai nepajuda tarp sesijų. <b>Nerekomenduojama įprastiems naudotojams!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Išsaugoti tvirtinimo pozicijų atstatymą
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Naudoti magnetometrą visuose IMU jutikliuose, kurie jį turi
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Naudoja magnetometrą visuose sekikliuose, kurių programinė įrangą jį palaiko. Tai sumažiną dreifą jeigu magnetinė aplinka stabili.
|
||||
Galima individualiai tai išjungti kiekvieno sekiklio nustatymuose. <b>Neišjunkite sekiklių keisdami šį nustatymą!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Naudoti magnetometrą sekikliuose
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
settings-general-fk_settings = Sekimo nustatymai
|
||||
# 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 = Rėmimas prie grindų
|
||||
# Skating correction:
|
||||
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
|
||||
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
|
||||
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = Slydimo korekcija
|
||||
settings-general-fk_settings-leg_tweak-toe_snap = Pėdų pasukimo spėjimas
|
||||
settings-general-fk_settings-leg_tweak-foot_plant = Pėdos prispaudimas
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-amount = Slydimo korekcijos stiprumas
|
||||
settings-general-fk_settings-leg_tweak-skating_correction-description = Koreguoja pėdų čiuožimo efektą. Gali sumažinti tikslumą kai kurių judesių metru. Įjungus - atlikite pilną atstatymą, ir kalibraciją žaidime.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip-description = Neleidžia pėdoms prasiskverbti pro grindis. Įjungus - atlikite pilną atstatymą, ir kalibraciją žaidime.
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Bando atspėti pėdų pasukimą, jei nenaudojate pėdų sekiklius.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Pasuka pėdas taip, kad jos būtų lygiagrečios grindims, kai stovite.
|
||||
settings-general-fk_settings-leg_fk = Kojų sekimas
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Įjungia pėdų tvirtinimo atstatymą atsistojant ant pirštų galų.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Pėdų tvirtinimo atstatymas
|
||||
settings-general-fk_settings-enforce_joint_constraints = Skeletiniai ribojimai
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Taikyti ribojimus
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Neleidžia sąnariams pasisukti už jų fiziologinės ribos.
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Taisyti pagal ribojimus
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Koreguoja sąnarių padėtis, kai jos viršija ribas
|
||||
settings-general-fk_settings-arm_fk = Rankų sekimas
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
settings-general-gesture_control = Valdymas gestais
|
||||
settings-general-gesture_control-subtitle = Atstatymas bakstelėjant sekiklius
|
||||
settings-general-gesture_control-description = Leidžia atstatyti bakstelėjant sekiklį: aukščiausias krūtinės sekiklis yra naudojamas horizontaliam atstatymui; aukščiausias kairės kojos sekiklis pilnam atstatymui; o aukščiausias dešinės kojos - tvirtinimo pozicijų atstatymui. Bakstelėjimas turi būti atliktas per 0.3 sekundžių padauginus bakstelėjimų skaičiumi.
|
||||
# This is a unit: 3 taps, 2 taps, 1 tap
|
||||
# $amount (Number) - Amount of taps (touches to the tracker's case)
|
||||
settings-general-gesture_control-taps =
|
||||
{ $amount ->
|
||||
[one] { $amount } bakstelėjimas
|
||||
[few] { $amount } bakstelėjimai
|
||||
[many] { $amount } bakstelėjimo
|
||||
*[other] { $amount } bakstelėjimų
|
||||
}
|
||||
# This is a unit: 3 trackers, 2 trackers, 1 tracker
|
||||
# $amount (Number) - Amount of trackers
|
||||
settings-general-gesture_control-trackers =
|
||||
{ $amount ->
|
||||
[one] { $amount } sekiklis
|
||||
[few] { $amount } sekikliai
|
||||
[many] { $amount } sekiklio
|
||||
*[other] { $amount } sekiklių
|
||||
}
|
||||
|
||||
## Appearance settings
|
||||
|
||||
|
||||
## Notification settings
|
||||
|
||||
|
||||
## Behavior settings
|
||||
|
||||
|
||||
## Serial settings
|
||||
|
||||
|
||||
## OSC router settings
|
||||
|
||||
|
||||
## OSC VRChat settings
|
||||
|
||||
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
|
||||
## Wi-Fi setup
|
||||
|
||||
|
||||
## Mounting setup
|
||||
|
||||
|
||||
## Setup start
|
||||
|
||||
|
||||
## Enter VR part of setup
|
||||
|
||||
|
||||
## Setup done
|
||||
|
||||
|
||||
## Tracker connection setup
|
||||
|
||||
|
||||
## Tracker calibration tutorial
|
||||
|
||||
|
||||
## Tracker assignment tutorial
|
||||
|
||||
|
||||
## Tracker assignment setup
|
||||
|
||||
|
||||
## Tracker assignment warnings
|
||||
|
||||
|
||||
## Tracker mounting method choose
|
||||
|
||||
|
||||
## Tracker manual mounting setup
|
||||
|
||||
|
||||
## Tracker automatic mounting setup
|
||||
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
|
||||
## Status system
|
||||
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
## First exit modal
|
||||
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-confirm = Sutinku
|
||||
error_collection_modal-cancel = Nesutinku
|
||||
@@ -1,6 +1,3 @@
|
||||
### SlimeVR complete GUI translations
|
||||
|
||||
|
||||
# Please developers (not translators) don't reuse a key inside another key
|
||||
# or concat text with a translation string in the code, use the appropriate
|
||||
# features like variables and selectors in each appropriate case!
|
||||
@@ -10,13 +7,29 @@
|
||||
|
||||
## Websocket (server) status
|
||||
|
||||
websocket-connecting = Kobler til serveren
|
||||
websocket-connecting = Laster...
|
||||
websocket-connection_lost = Mistet server-tilkobling. Vennligst vent mens koblingen gjenopprettes...
|
||||
websocket-connection_lost-desc = Det ser ut som at SlimeVR serveren har krasjet. Sjekk loggene og restart programmet.
|
||||
websocket-timedout = Klarte ikke å koble til serveren.
|
||||
websocket-timedout-desc = Det ser ut som at SlimeVR serveren har krasjet eller har brukt for lang til på å koble til. Sjekk loggene og restart programmet.
|
||||
websocket-error-close = Avslutt SlimeVR
|
||||
websocket-error-logs = Åpne opp "logs" mappen.
|
||||
|
||||
## Update notification
|
||||
|
||||
version_update-title = Ny versjon tilgjengelig: { $version }
|
||||
version_update-description = Å klikke "{ version_update-update }" laster ned SlimeVR installatøren for deg.
|
||||
version_update-update = Oppdater
|
||||
version_update-close = Lukk
|
||||
|
||||
## Tips
|
||||
|
||||
tips-find_tracker = Vanskeligheter med å skille mellom dine trackere? Rist én for å finne fram riktig gjenstand.
|
||||
tips-do_not_move_heels = Vær obs på at helene dine står stille under innspillingen!
|
||||
tips-find_tracker = Usikker på hvilken tracker som er hvilken? Rist en av dem! Den ristede trackeren vil bli fremhevet.
|
||||
tips-do_not_move_heels = Sørg for at dine heler ikke beveger under opptaket!
|
||||
tips-file_select = Dra og slipp filene for å enten bruke eller <u>gå igjennom</u>.
|
||||
tips-tap_setup = Du kan forsiktig trykke på din tracker 2 ganger sammenhengende istedenfor å velge den fra menyen.
|
||||
tips-turn_on_tracker = Bruker du offisielle SlimeVR trackere? Husk å <b><em>skru dem på</em></b> etter å ha koblet dem til PCen din!
|
||||
tips-failed_webgl = Feil ved initialisering av WebGL.
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -25,31 +38,54 @@ body_part-HEAD = Hode
|
||||
body_part-NECK = Hals
|
||||
body_part-RIGHT_SHOULDER = Høyre skulder
|
||||
body_part-RIGHT_UPPER_ARM = Høyre overarm
|
||||
body_part-RIGHT_LOWER_ARM = Høyre nedre arm
|
||||
body_part-RIGHT_LOWER_ARM = Høyre underarm
|
||||
body_part-RIGHT_HAND = Høyre hånd
|
||||
body_part-RIGHT_UPPER_LEG = Høyre lår
|
||||
body_part-RIGHT_LOWER_LEG = Høyre ankel
|
||||
body_part-RIGHT_FOOT = Høyre fot
|
||||
body_part-RIGHT_CONTROLLER = Høyre kontroller
|
||||
body_part-UPPER_CHEST = Øvre bryst
|
||||
body_part-CHEST = Bryst
|
||||
body_part-WAIST = Midje
|
||||
body_part-HIP = Hofte
|
||||
body_part-LEFT_SHOULDER = Venstre skulder
|
||||
body_part-LEFT_UPPER_ARM = Venstre overarm
|
||||
body_part-LEFT_LOWER_ARM = Venstre nedre arm
|
||||
body_part-LEFT_LOWER_ARM = Venstre underarm
|
||||
body_part-LEFT_HAND = Venstre hånd
|
||||
body_part-LEFT_UPPER_LEG = Venstre lår
|
||||
body_part-LEFT_LOWER_LEG = Venstre ankel
|
||||
body_part-LEFT_FOOT = Venstre fot
|
||||
body_part-LEFT_CONTROLLER = Venstre kontroller
|
||||
body_part-LEFT_THUMB_METACARPAL = Venstre tommel mellomhånden
|
||||
body_part-LEFT_THUMB_PROXIMAL = Venstre tommel proksimal
|
||||
body_part-LEFT_THUMB_DISTAL = Venstre tommel lengst unna
|
||||
body_part-LEFT_INDEX_PROXIMAL = Venstre innerste pekefinger
|
||||
body_part-LEFT_INDEX_INTERMEDIATE = Venstre middels pekefinger
|
||||
body_part-LEFT_INDEX_DISTAL = Venstre yterste pekefinger
|
||||
body_part-LEFT_MIDDLE_PROXIMAL = Venstre innerste langfinger
|
||||
body_part-LEFT_MIDDLE_INTERMEDIATE = Venstre middels langfinger
|
||||
body_part-LEFT_MIDDLE_DISTAL = Venstre yterste langfinger
|
||||
body_part-LEFT_RING_PROXIMAL = Venstre innerste ring
|
||||
|
||||
## BoardType
|
||||
|
||||
board_type-UNKNOWN = Ukjent
|
||||
board_type-NODEMCU = NodeMCU
|
||||
board_type-CUSTOM = Egendefinert brett
|
||||
board_type-WROOM32 = WROOM32
|
||||
board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-XIAO_ESP32C3 = Seeed Studio XIAO ESP32C3
|
||||
board_type-HARITORA = Haritora
|
||||
board_type-ESP32C6DEVKITC1 = Espressif ESP32-C6 DevKitC-1
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Ingen
|
||||
skeleton_bone-HEAD = Hode bytte
|
||||
skeleton_bone-NECK = Halslengde
|
||||
skeleton_bone-CHEST = Bryst-lengde
|
||||
skeleton_bone-torso_group = Torsolengde
|
||||
skeleton_bone-CHEST_OFFSET = Bryst-forskyvning
|
||||
skeleton_bone-CHEST = Bryst-lengde
|
||||
skeleton_bone-WAIST = Midje-lengde
|
||||
skeleton_bone-HIP = Hofte-lengde
|
||||
skeleton_bone-HIP_OFFSET = Hofte-forskyvning
|
||||
@@ -63,16 +99,17 @@ skeleton_bone-SHOULDERS_DISTANCE = Skulder-distanse
|
||||
skeleton_bone-SHOULDERS_WIDTH = Skulder-bredde
|
||||
skeleton_bone-UPPER_ARM = Overarms-lengde
|
||||
skeleton_bone-LOWER_ARM = Nedre arm-lengde
|
||||
skeleton_bone-CONTROLLER_Y = Kontroller distanse Y
|
||||
skeleton_bone-CONTROLLER_Z = Kontroller distanse Z
|
||||
skeleton_bone-ELBOW_OFFSET = Albue-forskyvning
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = Nullstill alle proporsjoner
|
||||
reset-reset_all_warning-cancel = Avbryt
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>Advarsel:</b> Høyden din har ikke blitt konfigurert, proporsjonene dine vil bli tilbakestilt til standardinnstillingene med standardhøyden.
|
||||
Er du sikker på at du vil gjøre dette?
|
||||
reset-full = Nullstill
|
||||
reset-mounting = Nullstill montering
|
||||
reset-quick = Rask nullstilling
|
||||
|
||||
## Serial detection stuff
|
||||
|
||||
@@ -93,17 +130,26 @@ navbar-mounting = Monterings kalibrering
|
||||
navbar-onboarding = Oppsetts veiviser
|
||||
navbar-settings = Innstillinger
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = BVH-innspilling
|
||||
bvh-recording = Spiller inn...
|
||||
|
||||
## Tracking pause
|
||||
|
||||
|
||||
## Widget: Overlay settings
|
||||
|
||||
widget-overlay = Overlegg
|
||||
widget-overlay-is_visible_label = Vis overlegg i SteamVR
|
||||
widget-overlay-is_mirrored_label = Vis overlegg som speil
|
||||
|
||||
## Widget: Drift compensation
|
||||
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = Utvikler modus
|
||||
@@ -121,6 +167,9 @@ widget-imu_visualizer = Rotasjon
|
||||
widget-imu_visualizer-rotation_raw = Rå
|
||||
widget-imu_visualizer-rotation_preview = Forhåndsvisning
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
|
||||
## Tracker status
|
||||
|
||||
tracker-status-none = Ingen status
|
||||
@@ -149,6 +198,7 @@ tracker-rotation-front = Front
|
||||
tracker-rotation-left = Venstre
|
||||
tracker-rotation-right = Høyre
|
||||
tracker-rotation-back = Bak
|
||||
tracker-rotation-custom = Egendefinert
|
||||
|
||||
## Tracker information
|
||||
|
||||
@@ -173,7 +223,7 @@ tracker-settings-drift_compensation_section-edit = Tillat avdrifts-kompensasjon
|
||||
# The .<name> means it's an attribute and it's related to the top key.
|
||||
# In this case that is the settings for the assignment section.
|
||||
tracker-settings-name_section = Tracker navn
|
||||
tracker-settings-name_section-description = Gi den et søtt kallenavn-navn :)
|
||||
tracker-settings-name_section-description = Gi den et søtt kallenavn :)
|
||||
tracker-settings-name_section-placeholder = ~Thͭiͪaͥsͣˢ~ venstre ben
|
||||
|
||||
## Tracker part card info
|
||||
@@ -260,10 +310,7 @@ settings-general-steamvr-description =
|
||||
Nyttig for spill eller programmer som bare støtter visse trackere.
|
||||
settings-general-steamvr-trackers-waist = Midje
|
||||
settings-general-steamvr-trackers-chest = Bryst
|
||||
settings-general-steamvr-trackers-feet = Føtter
|
||||
settings-general-steamvr-trackers-knees = Knær
|
||||
settings-general-steamvr-trackers-elbows = Albuer
|
||||
settings-general-steamvr-trackers-hands = Hender
|
||||
settings-general-steamvr-trackers-hands-warning-cancel = Avbryt
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -287,14 +334,18 @@ settings-general-tracker_mechanics-drift_compensation-description =
|
||||
Kompenserer for IMU yaw avdrift ved å legge til en rotasjon av omvendt verdi.
|
||||
Endre mengde kompensasjon og opp til hvor mange nullstillinger som skal bli gjort rede for.
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Avdrifts kompansering
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-cancel = Avbryt
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompanserings mengde
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Bruk opp til x siste nullstillinger
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Bruk magnetometer på alle IMU-trackere som støtter det
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Bruker magnetometer på alle trackere som har en kompatibel firmware for det, noe som reduserer drift i stabile magnetiske områder.
|
||||
Kan deaktiveres per tracker i trackerens innstillinger. <b>Ikke slå av noen av trackerne mens du endrer denne innstillingen !</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Bruk magnetometer på trackere
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
settings-general-fk_settings = Sporings innstillinger
|
||||
settings-general-fk_settings-leg_tweak = Bein-justeringer
|
||||
settings-general-fk_settings-leg_tweak-description = Gulv-clip kan redusere, om ikke eliminere det at lemmer går gjennom gulvet, men kan skape problemer når du er på knærne. Skating-korreksjon jobber mot "ice-skating", men kan forverre presisjonen i visse bevegelsesmønster.
|
||||
settings-general-fk_settings = Tracking innstillinger
|
||||
# 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
|
||||
@@ -308,14 +359,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating-korre
|
||||
settings-general-fk_settings-arm_fk = Arm sporing
|
||||
settings-general-fk_settings-arm_fk-description = Endre metoden armene spores på.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Tving armer fra HMD
|
||||
settings-general-fk_settings-skeleton_settings = Skjellet innstillinger
|
||||
settings-general-fk_settings-skeleton_settings-description = Skru skjellet innstillinger av eller på. Det anbefales å la disse stå på.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine = Forlenget ryggrad
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Forlenget pelvis
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Forlenget kne
|
||||
settings-general-fk_settings-vive_emulation-title = Vive emulasjon
|
||||
settings-general-fk_settings-vive_emulation-description = Emuler midjesporings problemene som Vive sporerene har. Dette er en vits og gjør sporingen verre.
|
||||
settings-general-fk_settings-vive_emulation-label = Aktiver Vive emulasjon
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -329,29 +373,38 @@ settings-general-gesture_control-taps =
|
||||
[one] 1 trykk
|
||||
*[other] { $amount } trykk
|
||||
}
|
||||
settings-general-gesture_control-quickResetEnabled = Aktiver rask nullstilling ved trykk
|
||||
settings-general-gesture_control-quickResetDelay = Rask nullstillings utsettelse
|
||||
settings-general-gesture_control-quickResetTaps = Trykking for rask nullstilling
|
||||
settings-general-gesture_control-resetEnabled = Aktiver nullstilling ved trykking
|
||||
settings-general-gesture_control-resetDelay = Nullstillings utsettelse
|
||||
settings-general-gesture_control-resetTaps = Trykking for nullstilling
|
||||
settings-general-gesture_control-mountingResetEnabled = Aktiver monterings-nullstilling ved trykking
|
||||
settings-general-gesture_control-mountingResetDelay = Monterings-nullstilling utsettelse
|
||||
settings-general-gesture_control-mountingResetTaps = Trykking for monterings-nullstilling
|
||||
|
||||
## Interface settings
|
||||
## Appearance settings
|
||||
|
||||
settings-general-interface = Grensesnitt
|
||||
settings-general-interface-dev_mode = Utvikler modus
|
||||
settings-general-interface-dev_mode-description = Denne modusen kan være hjelpsom dersom du trenger data som gir mer innsyn eller for å samhandle med tilkoblede sporere på et mer avansert nivå.
|
||||
settings-general-interface-dev_mode-label = Utvikler modus
|
||||
settings-general-interface-serial_detection = Seriell enhets gjenkjenning
|
||||
settings-general-interface-serial_detection-description = Dette valget viser en pop-up for hver gang du kobler til en ny seriell-enhet som kunne vært en sporer. Dette forbedrer sporerens konfigureringsprosess.
|
||||
settings-general-interface-serial_detection-label = Seriell enhets gjenkjenning
|
||||
settings-general-interface-lang = Velg språk
|
||||
settings-general-interface-lang-description = Endre hovedspråket du vil bruke.
|
||||
settings-general-interface-lang-placeholder = Velg språket du vil bruke
|
||||
|
||||
## Notification settings
|
||||
|
||||
settings-general-interface-serial_detection = Seriell enhets gjenkjenning
|
||||
settings-general-interface-serial_detection-description = Dette valget viser en pop-up for hver gang du kobler til en ny seriell-enhet som kunne vært en sporer. Dette forbedrer sporerens konfigureringsprosess.
|
||||
settings-general-interface-serial_detection-label = Seriell enhets gjenkjenning
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-dev_mode = Utvikler modus
|
||||
settings-general-interface-dev_mode-description = Denne modusen kan være hjelpsom dersom du trenger data som gir mer innsyn eller for å samhandle med tilkoblede sporere på et mer avansert nivå.
|
||||
settings-general-interface-dev_mode-label = Utvikler modus
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Samtykker du til innsamling av anonymiserte feildata?</h1>
|
||||
|
||||
<b>Vi samler ikke inn personlig informasjon</b> slik som din IP-adresse eller trådløs-legitimasjon. SlimeVR verdsetter ditt personvern!
|
||||
|
||||
For å gi deg den beste brukeropplevelsen, samler vi inn anonymiserte feilrapporter, ytelsesmålinger og informasjon om operativsystemet. Dette hjelper oss med å oppdage feil og problemer med SlimeVR. Disse beregningene samles inn via Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Send feilmeldinger til utviklere
|
||||
|
||||
## Serial settings
|
||||
|
||||
settings-serial = Seriell konsoll
|
||||
@@ -401,15 +454,10 @@ settings-osc-router-network-address-placeholder = IPV4 adresse
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = VRChat OSC Trackere
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description =
|
||||
Juster på innstillinger spesifikt for VRChat for å motta HMD-data og sende
|
||||
sporer-data for FBT (funker for Quest standalone).
|
||||
settings-osc-vrchat-enable = Aktiver
|
||||
settings-osc-vrchat-enable-description = Skru av/på utsending og mottakelse av data.
|
||||
settings-osc-vrchat-enable-label = Aktiver
|
||||
settings-osc-vrchat-network = Nettverks-porter
|
||||
settings-osc-vrchat-network-description = Still inn portene som skal motta og sende data til VRChat.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
.label = Port Inn
|
||||
.placeholder = Port inn (normalverdi: 9001)
|
||||
@@ -417,16 +465,21 @@ settings-osc-vrchat-network-port_out =
|
||||
.label = Port Ut
|
||||
.placeholder = Port ut (standardisering: 9000)
|
||||
settings-osc-vrchat-network-address = Nettverksadresse
|
||||
settings-osc-vrchat-network-address-description = Velg hvilken adresse som skal sende ut data til VRChat (sjekk Wi-Fi innstillingene på din enhet).
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat ip adresse
|
||||
settings-osc-vrchat-network-trackers = Trackere
|
||||
settings-osc-vrchat-network-trackers-description = Skru av/på sendingen av spesifikke sporere via OSC.
|
||||
settings-osc-vrchat-network-trackers-chest = Bryst
|
||||
settings-osc-vrchat-network-trackers-waist = Midje
|
||||
settings-osc-vrchat-network-trackers-hip = Hofte
|
||||
settings-osc-vrchat-network-trackers-knees = Knær
|
||||
settings-osc-vrchat-network-trackers-feet = Føtter
|
||||
settings-osc-vrchat-network-trackers-elbows = Albuer
|
||||
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
onboarding-skip = Hopp over oppsett
|
||||
@@ -454,15 +507,11 @@ onboarding-wifi_creds-password =
|
||||
|
||||
onboarding-reset_tutorial-back = Gå tilbake til monterings kalibrering
|
||||
onboarding-reset_tutorial = Nullstill opplæringen
|
||||
onboarding-reset_tutorial-description = Denne funksjonen er ikke klar, bare trykk fortsett
|
||||
onboarding-reset_tutorial-skip = Hopp over trinn
|
||||
|
||||
## Setup start
|
||||
|
||||
onboarding-home = Velkommen til SlimeVR
|
||||
# This cares about multilines and it's centered!!
|
||||
onboarding-home-description =
|
||||
Muliggjør hel-kropps sporing
|
||||
for alle
|
||||
onboarding-home-start = La oss sette i gang!
|
||||
|
||||
## Enter VR part of setup
|
||||
@@ -482,15 +531,9 @@ onboarding-done-close = Lukk guiden
|
||||
|
||||
onboarding-connect_tracker-back = Gå tilbake til Wi-Fi legitimasjon
|
||||
onboarding-connect_tracker-title = Koble til trackere
|
||||
onboarding-connect_tracker-description-p0 = Nå begynner den morsomme delen, å koble til alle trackerne!
|
||||
onboarding-connect_tracker-description-p1 = Ta og koble til alt som ikke er tilkoblet enda, via en USB port.
|
||||
onboarding-connect_tracker-issue-serial = Jeg sliter med å koble til!
|
||||
onboarding-connect_tracker-usb = USB Tracker
|
||||
onboarding-connect_tracker-connection_status-connecting = Sender Wi-Fi legitimasjon
|
||||
onboarding-connect_tracker-connection_status-connected = Koblet til Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-error = Kunne ikke koble til Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = Ser etter trackere
|
||||
onboarding-connect_tracker-connection_status-handshake = Koblet til Serveren
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -504,6 +547,12 @@ onboarding-connect_tracker-connected_trackers =
|
||||
}
|
||||
onboarding-connect_tracker-next = Jeg har tilkoblet alle mine trackere
|
||||
|
||||
## Tracker calibration tutorial
|
||||
|
||||
|
||||
## Tracker assignment tutorial
|
||||
|
||||
|
||||
## Tracker assignment setup
|
||||
|
||||
onboarding-assign_trackers-back = Gå tilbake til Wi-Fi legitimasjon
|
||||
@@ -520,6 +569,13 @@ onboarding-assign_trackers-assigned =
|
||||
onboarding-assign_trackers-advanced = Vis avanserte tildelings-plasseringer
|
||||
onboarding-assign_trackers-next = Jeg har tildelt alle trackerne
|
||||
|
||||
## Tracker assignment warnings
|
||||
|
||||
|
||||
## Tracker mounting method choose
|
||||
|
||||
onboarding-choose_mounting-manual_modal-cancel = Avbryt
|
||||
|
||||
## Tracker manual mounting setup
|
||||
|
||||
onboarding-manual_mounting-back = Gå tilbake for å tre inn i VR
|
||||
@@ -543,18 +599,14 @@ onboarding-automatic_mounting-mounting_reset-title = Monterings nullstilling
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Gjør knebøy som om du står på ski, bøyde knær, overkroppen rettet forover og armer bøyd.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Trykk på "Nullstill montering" knappen og vent 3 sekunder før trackernes monterings-rotasjon nullstilles.
|
||||
onboarding-automatic_mounting-preparation-title = Forberedning
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stå rett med armene til siden.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Trykk på "Nullstill" knappen og vent 3 sekunder før trackerne nullstilles.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Ta på deg dine trackere
|
||||
onboarding-automatic_mounting-put_trackers_on-description = For å kalibrere monterings-rotasjonene, må vi bruke trackerne du akkurat tildelte. Ta på deg alle dine trackere, du kan se hvem som er hvem i figuren til høyre.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Jeg har alle mine trackere på
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = Gå tilbake til Nullstillings opplæring
|
||||
onboarding-manual_proportions-title = Manuelle kropps-proporsjoner
|
||||
onboarding-manual_proportions-precision = Presisjons justering
|
||||
onboarding-manual_proportions-auto = Automatisk kalibrering
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -566,22 +618,14 @@ onboarding-automatic_proportions-prev_step = Forrige steg
|
||||
onboarding-automatic_proportions-put_trackers_on-title = Ta på deg alle dine trackere
|
||||
onboarding-automatic_proportions-put_trackers_on-description = For å kalibrere dine proporsjoner, bruker vi trackerne du akkurat har tildelt. Ta på deg alle dine trackere, du kan se hvem som går hvor i figuren til høyre.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Jeg har alle mine trackere på
|
||||
onboarding-automatic_proportions-preparation-title = Forberedning
|
||||
onboarding-automatic_proportions-preparation-description = Plasser en stol rett bak deg innenfor ditt play space. Vær forberedt på å sette deg ned i løpet av autobein oppsettet.
|
||||
onboarding-automatic_proportions-preparation-next = Jeg er foran en stol
|
||||
onboarding-automatic_proportions-start_recording-title = Gjør deg klar til å bevege deg
|
||||
onboarding-automatic_proportions-start_recording-description = Vi kommer nå til å spille inn noen spesifikke poseringer og bevegelser. Disse vil bli vist i den neste skjermen. Gjør deg klar til å starte når du trykker på knappen!
|
||||
onboarding-automatic_proportions-start_recording-next = Start Innspilling
|
||||
onboarding-automatic_proportions-recording-title = REC
|
||||
onboarding-automatic_proportions-recording-description-p0 = Innspilling pågår...
|
||||
onboarding-automatic_proportions-recording-description-p1 = Utfør bevegelsene vist nedenfor:
|
||||
onboarding-automatic_proportions-recording-steps-0 = Bøy knærne noen få ganger.
|
||||
onboarding-automatic_proportions-recording-steps-1 = Sett deg i stolen, reis deg så opp.
|
||||
onboarding-automatic_proportions-recording-steps-2 = Vri overkroppen til venstre, så bøy til høyre.
|
||||
onboarding-automatic_proportions-recording-steps-3 = Vri overkroppen til høyre, så bøy til venstre.
|
||||
onboarding-automatic_proportions-recording-steps-4 = Rist på kroppen til tiden går ut.
|
||||
onboarding-automatic_proportions-recording-processing = Jobber med resultatet
|
||||
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
|
||||
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 20)
|
||||
onboarding-automatic_proportions-recording-timer =
|
||||
{ $time ->
|
||||
[one] 1 sekund igjen
|
||||
@@ -596,6 +640,49 @@ onboarding-automatic_proportions-verify_results-confirm = De er riktige
|
||||
onboarding-automatic_proportions-done-title = Kropp målt og lagret.
|
||||
onboarding-automatic_proportions-done-description = Din kropps-proposisjons kalibrering er fullført!
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Ingen trackere oppdaget eller tildelt
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
|
||||
## Status system
|
||||
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
## First exit modal
|
||||
|
||||
tray_or_exit_modal-cancel = Avbryt
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
|
||||
websocket-connecting = Verbinding maken met de server
|
||||
websocket-connection_lost = Verbinding met de server verbroken. Opniew verbinding maken...
|
||||
websocket-connection_lost-desc = Het ziet er naar uit dat de verbinding met de SlimeVR server is verbroken. Check het logboek en start het programma opnieuw.
|
||||
websocket-timedout = Kan niet verbinden met de server.
|
||||
websocket-timedout-desc = Het ziet er naar uit dat de SlimeVR server is gestopt. Check het logboek en start het programma opnieuw.
|
||||
websocket-error-close = SlimeVR afsluiten
|
||||
websocket-error-logs = Open het logboek.
|
||||
|
||||
## Update notification
|
||||
|
||||
@@ -49,10 +54,42 @@ body_part-LEFT_HAND = Linkerhand
|
||||
body_part-LEFT_UPPER_LEG = Linkerdij
|
||||
body_part-LEFT_LOWER_LEG = Linkerenkel
|
||||
body_part-LEFT_FOOT = Linkervoet
|
||||
body_part-LEFT_THUMB_METACARPAL = Linkerduim middenhandsbeentje
|
||||
body_part-LEFT_THUMB_PROXIMAL = Linkerduim proximaal
|
||||
body_part-LEFT_THUMB_DISTAL = Linkerduim distaal
|
||||
body_part-LEFT_INDEX_PROXIMAL = Linker wijsvinger proximaal
|
||||
body_part-LEFT_INDEX_INTERMEDIATE = Linker middelste kootje van de wijsvinger
|
||||
body_part-LEFT_INDEX_DISTAL = Linker wijsvinger distaal
|
||||
body_part-LEFT_MIDDLE_PROXIMAL = Linker middelvinger proximaal
|
||||
body_part-LEFT_MIDDLE_INTERMEDIATE = Linker middelste kootje van de middelvinger
|
||||
body_part-LEFT_MIDDLE_DISTAL = Linker middelvinger distaal
|
||||
body_part-LEFT_RING_PROXIMAL = Linker ringvinger proximaal
|
||||
body_part-LEFT_RING_INTERMEDIATE = Linker middelste kootje van de ringvinger
|
||||
body_part-LEFT_RING_DISTAL = Linker ringvinger distaal
|
||||
body_part-LEFT_LITTLE_PROXIMAL = Linker kleine vinger proximaal
|
||||
body_part-LEFT_LITTLE_INTERMEDIATE = Linker middelste kootje van de kleine vinger
|
||||
body_part-LEFT_LITTLE_DISTAL = Linker kleine vinger distaal
|
||||
body_part-RIGHT_THUMB_METACARPAL = Rechterduim middenhandsbeentje
|
||||
body_part-RIGHT_THUMB_PROXIMAL = Rechterduim proximaal
|
||||
body_part-RIGHT_THUMB_DISTAL = Rechterduim distaal
|
||||
body_part-RIGHT_INDEX_PROXIMAL = Rechter wijsvinger proximaal
|
||||
body_part-RIGHT_INDEX_INTERMEDIATE = Rechter middelste kootje van de wijsvinger
|
||||
body_part-RIGHT_INDEX_DISTAL = Rechter wijsvinger distaal
|
||||
body_part-RIGHT_MIDDLE_PROXIMAL = Rechts middelvinger proximaal
|
||||
body_part-RIGHT_MIDDLE_INTERMEDIATE = Rechter middelste kootje van de middelvinger
|
||||
body_part-RIGHT_MIDDLE_DISTAL = Rechter middelvinger distaal
|
||||
body_part-RIGHT_RING_PROXIMAL = Rechter ringvinger proximaal
|
||||
body_part-RIGHT_RING_INTERMEDIATE = Rechter middelste kootje van de ringvinger
|
||||
body_part-RIGHT_RING_DISTAL = Rechter ringvinger distaal
|
||||
body_part-RIGHT_LITTLE_PROXIMAL = Rechter kleine vinger proximaal
|
||||
body_part-RIGHT_LITTLE_INTERMEDIATE = Rechter middelste kootje van de kleine vinger
|
||||
body_part-RIGHT_LITTLE_DISTAL = Rechter kleine vinger distaal
|
||||
|
||||
## BoardType
|
||||
|
||||
board_type-UNKNOWN = Onbekend
|
||||
board_type-NODEMCU = NodeMCU
|
||||
board_type-CUSTOM = Custom bord
|
||||
board_type-WROOM32 = WROOM32
|
||||
board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
@@ -60,7 +97,15 @@ board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ES32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-WRANGLER = Wrangler Joycons
|
||||
board_type-MOCOPI = Sony Mocopi
|
||||
board_type-WEMOSWROOM02 = Wemos Wroom-02 D1 Mini
|
||||
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
|
||||
|
||||
## Proportions
|
||||
|
||||
@@ -93,8 +138,14 @@ skeleton_bone-ELBOW_OFFSET = Elleboogoffset
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = Alle afmetingen resetten
|
||||
reset-reset_all_warning-v2 =
|
||||
<b>Waarschuwing:</b> Je verhoudingen worden teruggezet naar de standaardinstellingen, geschaald op basis van je ingestelde lengte.
|
||||
Weet je zeker dat je dit wilt doen?
|
||||
reset-reset_all_warning-reset = Verhoudingen resetten
|
||||
reset-reset_all_warning-cancel = Annuleren
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>Waarschuwing:</b> Uw lengte is nog niet ingesteld, je verhoudingen worden teruggezet naar de standaardinstellingen met de standaard lengte.
|
||||
Weet je zeker dat je dit wilt doen?
|
||||
reset-full = Volledige reset
|
||||
reset-mounting = Reset montage
|
||||
reset-yaw = Yaw Reset
|
||||
@@ -238,15 +289,26 @@ tracker-settings-mounting_section-edit = Montage bewerken
|
||||
tracker-settings-drift_compensation_section = Laat drift compensatie toe
|
||||
tracker-settings-drift_compensation_section-description = Moet deze tracker compenseren voor drift wanneer drift compensatie is ingeschakeld?
|
||||
tracker-settings-drift_compensation_section-edit = Laat drift compensatie toe
|
||||
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>.
|
||||
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.
|
||||
tracker-settings-name_section = Trackernaam
|
||||
tracker-settings-name_section-description = Geef een schattige bijnaam :)
|
||||
tracker-settings-name_section-placeholder = NightyBeast's linkerbeen
|
||||
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 = Kan niet worden bijgewerkt (DIY)
|
||||
tracker-settings-update-up_to_date = Up to date.
|
||||
tracker-settings-update-available = { $versionName } is nu beschikbaar
|
||||
tracker-settings-update = Werk nu bij.
|
||||
tracker-settings-update-title = Firmware versie
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -322,6 +384,8 @@ settings-sidebar-utils = Hulpmiddelen
|
||||
settings-sidebar-serial = Serieel console
|
||||
settings-sidebar-appearance = Uiterlijk
|
||||
settings-sidebar-notifications = Notificaties
|
||||
settings-sidebar-behavior = Gedrag
|
||||
settings-sidebar-firmware-tool = DIY Firmware Tool
|
||||
settings-sidebar-advanced = Geavanceerd
|
||||
|
||||
## SteamVR settings
|
||||
@@ -376,8 +440,19 @@ settings-general-tracker_mechanics-drift_compensation-description =
|
||||
Veranderd de sterkte van de compensatie en hoeveel resets worden gebruikt.
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensate
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = Voorspelling van driftcompensatie
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
Voorspelt compensatie van gierdrift buiten het eerder gemeten bereik.
|
||||
Schakel dit in als uw trackers continu om de gier-as draaien.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = Voorspelling van driftcompensatie
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>Waarschuwing:</b> Gebruik alleen driftcompensatie als je heel vaak
|
||||
moet resetten (elke ~5-10 minuten).
|
||||
|
||||
IMU's die vaak worden gereset, zijn onder ander:
|
||||
Joy-Cons, owoTrack en MPU's (zonder recente firmware).
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-cancel = Annuleren
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-done = Ik begrijp het
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensatiesterkte
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Gebruik de laatste x resets
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Sla de automatische montage reset kalibratie op
|
||||
@@ -413,6 +488,11 @@ settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant rotee
|
||||
settings-general-fk_settings-leg_fk = Been tracking
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Schakel Montage Reset voor de voeten in door op je tenen te staan.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Voeten 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-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
|
||||
@@ -444,9 +524,6 @@ settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Berek
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Bereken het gemiddelde van de 'yaw en roll van de knie trackers met die van de enkels'
|
||||
settings-general-fk_settings-self_localization-title = Mocap modus
|
||||
settings-general-fk_settings-self_localization-description = Mocap modus staat het skelet model toe om zijn eigen positie te bepalen zonder het gebruik van een headset of andere trackers. Dit vergt wel het gebruik van voet en hoofd trackers, dit is momenteel nog expirimenteel.
|
||||
settings-general-fk_settings-vive_emulation-title = Vive-emulatie
|
||||
settings-general-fk_settings-vive_emulation-description = Emuleer de problemen met de taille van Vive trackers. Dit is een mop en maakt tracking slechter.
|
||||
settings-general-fk_settings-vive_emulation-label = Vive-emulatie inschakelen
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -518,6 +595,13 @@ settings-general-interface-feedback_sound-volume = Feedback geluid volume
|
||||
settings-general-interface-connected_trackers_warning = Waarschuwing voor verbonden trackers
|
||||
settings-general-interface-connected_trackers_warning-description = Deze optie toont een pop-up bericht telkens wanneer je SlimeVR probeert af te sluiten terwijl er nog trackers verbonden zijn. Dit bericht herinnert je eraan om je trackers uit te schakelen wanneer je klaar bent om de batterijduur te sparen.
|
||||
settings-general-interface-connected_trackers_warning-label = Waarschuwing voor verbonden trackers bij het afsluiten
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Gedrag
|
||||
settings-general-interface-dev_mode = Ontwikkelaarsmodus
|
||||
settings-general-interface-dev_mode-description = Deze modus kan nuttig zijn als je diepgaande gegevens nodig hebt of op een geavanceerd niveau wilt communiceren met aangesloten trackers.
|
||||
settings-general-interface-dev_mode-label = Ontwikkelaarsmodus
|
||||
settings-general-interface-use_tray = Minimaliseren naar systeem vak
|
||||
settings-general-interface-use_tray-description = Hiermee kun je het venster sluiten zonder de SlimeVR server te beëindigen, zodat je deze op de achtergrond kunt blijven gebruiken zonder dat de GUI in de weg zit.
|
||||
settings-general-interface-use_tray-label = Minimaliseren naar systeem vak
|
||||
@@ -530,6 +614,14 @@ settings-general-interface-discord_presence-message =
|
||||
[one] Gebruikt 1 tracker
|
||||
*[other] Gebruikt { $amount } trackers
|
||||
}
|
||||
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>
|
||||
|
||||
<b>We verzamelen geen persoonlijke informatie</b> zoals uw IP-adres of draadloze inloggegevens. SlimeVR hecht veel waarde aan uw 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
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -588,6 +680,13 @@ settings-osc-vrchat-description-v1 = Wijzig instellingen die specifiek zijn voor
|
||||
settings-osc-vrchat-enable = Inschakelen
|
||||
settings-osc-vrchat-enable-description = Schakel het verzenden en ontvangen van gegevens in en uit.
|
||||
settings-osc-vrchat-enable-label = Inschakelen
|
||||
settings-osc-vrchat-oscqueryEnabled = OSCQuery inschakelen
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery detecteert automatisch actieve instanties van VRChat en stuurt hen data.
|
||||
Het kan zichzelf ook aan hen bekendmaken om HMD- en controllerdata te ontvangen.
|
||||
Om HMD- en controllerdata van VRChat te kunnen ontvangen, ga je in het hoofdmenu naar Instellingen,
|
||||
onder "Tracking & IK", en schakel je "Allow Sending Head and Wrist VR Tracking OSC Data" in.
|
||||
settings-osc-vrchat-oscqueryEnabled-label = Schakel OSCQuery in
|
||||
settings-osc-vrchat-network = Netwerkpoorten
|
||||
settings-osc-vrchat-network-description-v1 = Stel de poorten in voor het ontvangen en verzenden van tracking data. Kan op standaardinstellingen blijven voor VRChat.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
@@ -630,6 +729,7 @@ settings-osc-vmc-network-address-description = Stel het adres in waarnaar gegeve
|
||||
settings-osc-vmc-network-address-placeholder = IPV4-adres
|
||||
settings-osc-vmc-vrm = VRM Model
|
||||
settings-osc-vmc-vrm-description = Laad een VRM-model om hoofdverankering mogelijk te maken en zorg voor een hogere compatibiliteit met andere applicaties.
|
||||
settings-osc-vmc-vrm-untitled_model = Naamloos model
|
||||
settings-osc-vmc-vrm-file_select = Sleep een modelbestand naar hier om ze te gebruiken of <u>blader</u>.
|
||||
settings-osc-vmc-anchor_hip = Heupverankering
|
||||
settings-osc-vmc-anchor_hip-description = Veranker de tracking aan de heupen, handig voor zittende VTubing. Als u deze uitschakelt, laadt u een VRM-model.
|
||||
@@ -650,11 +750,26 @@ settings-utils-advanced-reset-server-label = Tracking resetten
|
||||
settings-utils-advanced-reset-all = Alle instellingen resetten
|
||||
settings-utils-advanced-reset-all-description = Herstel de standaardwaarden voor instellingen van beide de interface en de tracking.
|
||||
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?
|
||||
[server]
|
||||
<b>Waarschuwing</b>Hiermee worden al uw tracking instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet u zeker dat u dit wilt doen?
|
||||
*[all]
|
||||
<b>Waarschuwing:</b> Hiermee worden al uw instellingen teruggezet naar de standaardinstellingen.
|
||||
Weet u zeker dat u dit wilt doen?
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = Instellingen resetten
|
||||
settings-utils-advanced-reset_warning-cancel = Annuleren
|
||||
settings-utils-advanced-open_data = Gegevensmap
|
||||
settings-utils-advanced-open_data-description = Open de gegevensmap van SlimeVR in de bestandsverkenner, met configuratie- en logbestanden.
|
||||
settings-utils-advanced-open_data-v1 = Configuratiemap
|
||||
settings-utils-advanced-open_data-description-v1 = Open de configuratiemap van SlimeVR in de bestandsverkenner, met configuratiebestanden.
|
||||
settings-utils-advanced-open_data-label = Map openen
|
||||
settings-utils-advanced-open_logs = logboeken
|
||||
settings-utils-advanced-open_logs-description = Open de logmap van SlimeVR in de bestandsverkenner, met de logboeken van de app
|
||||
settings-utils-advanced-open_logs-label = Map openen
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -929,43 +1044,19 @@ 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-preparation-title = Voorbereiding
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Sta rechtop met je armen langs je zij.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Druk op de knop "Resetten" en wacht 3 seconden voordat de trackers opnieuw worden ingesteld.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Doe je trackers aan
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Om 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
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
onboarding-choose_proportions = Welke verhoudingskalibratiemethode moet worden gebruikt?
|
||||
# Multiline string
|
||||
onboarding-choose_proportions-description-v1 =
|
||||
Lichaamsverhoudingen worden gebruikt om de afmetingen van je lichaam te bepalen. Deze informatie is nodig om de posities van de trackers te berekenen.
|
||||
Als de verhoudingen van je lichaam niet overeenkomen met de opgeslagen waarden, zal de tracking-precisie slechter zijn. Je kunt dan last krijgen van ongemakkelijke effecten zoals schuiven of glijden, of kan je lichaam niet goed overeenkomen met je avatar in VR.
|
||||
<b>Je hoeft je lichaam maar één keer te meten!</b> Tenzij de metingen onjuist zijn of je lichaam is veranderd, hoef je dit niet opnieuw te doen.
|
||||
onboarding-choose_proportions-auto_proportions = Automatische verhoudingen
|
||||
# Italicized text
|
||||
onboarding-choose_proportions-auto_proportions-subtitle = Aanbevolen
|
||||
onboarding-choose_proportions-auto_proportions-descriptionv3 =
|
||||
Deze functie zal je lichaamsverhoudingen schatten door een sample van je bewegingen op te nemen en deze door een algoritme te laten analyseren.
|
||||
<b>Hiervoor moet je headset (HMD) verbonden zijn met SlimeVR en op je hoofd zitten!</b>
|
||||
onboarding-choose_proportions-manual_proportions = Handmatige lichaamsverhoudingen
|
||||
# Italicized text
|
||||
onboarding-choose_proportions-manual_proportions-subtitle = Voor kleine details
|
||||
onboarding-choose_proportions-manual_proportions-description = Hier kan je jouw verhoudingen handmatig aanpassen
|
||||
onboarding-choose_proportions-export = Export proporties
|
||||
onboarding-choose_proportions-import = Importeer proporties
|
||||
onboarding-choose_proportions-import-success = geïmporteerd
|
||||
onboarding-choose_proportions-import-failed = Mislukt
|
||||
onboarding-choose_proportions-file_type = Lichaamsproporties bestand
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = Ga terug naar de reset tutorial
|
||||
onboarding-manual_proportions-title = Handmatige lichaamsverhoudingen
|
||||
onboarding-manual_proportions-precision = Precisie-aanpassing
|
||||
onboarding-manual_proportions-auto = Automatische kalibratie
|
||||
onboarding-manual_proportions-ratio = Aanpassen via verhoudingen
|
||||
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
|
||||
onboarding-manual_proportions-export = Export proporties
|
||||
onboarding-manual_proportions-import = Importeer proporties
|
||||
onboarding-manual_proportions-file_type = Lichaamsproporties bestand
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -981,21 +1072,29 @@ 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 = Controleer je lengte
|
||||
onboarding-automatic_proportions-check_height-description =
|
||||
We gebruiken je lengte als een basis voor onze metingen middels de HMD's hoogte, hiermee bepalen we je echte lengte.
|
||||
Maar het is beter om zelf te controleren of dit klopt.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning = Druk op de knop terwijl je <u>rechtop</u> staat om je lengte te berekenen. Je hebt 3 seconden na dat je op de knop drukt!
|
||||
onboarding-automatic_proportions-check_height-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-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!
|
||||
onboarding-automatic_proportions-check_height-fetch_height = Ik sta!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = Onbekend
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height1 = Je HMD lengte is
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-height1 = Je echte lengte is
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = De hoogte van uw 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.
|
||||
# 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-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
|
||||
onboarding-automatic_proportions-check_floor_height-skip_step = Sla deze stap over en sla op.
|
||||
onboarding-automatic_proportions-check_floor_height-next_step = Gebruik vloerhoogte en bespaar
|
||||
onboarding-automatic_proportions-start_recording-title = Zorg dat je klaar bent om te bewegen
|
||||
onboarding-automatic_proportions-start_recording-description = We gaan nu enkele specifieke houdingen en bewegingen opnemen. Deze worden in het volgende scherm geprompt. Zorg dat je klaar bent om te beginnen als de knop wordt ingedrukt!
|
||||
onboarding-automatic_proportions-start_recording-next = Start opname
|
||||
@@ -1030,6 +1129,42 @@ onboarding-automatic_proportions-error_modal-v2 =
|
||||
Dit is waarschijnlijk een probleem met de montagekalibratie. Zorg ervoor dat je tracking goed werkt voordat je het opnieuw probeert.
|
||||
<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 }.
|
||||
<b>Voer de metingen opnieuw uit en controleer of ze correct zijn.</b>
|
||||
onboarding-automatic_proportions-smol_warning-cancel = Ga terug
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
onboarding-scaled_proportions-title = Geschaalde proporties
|
||||
onboarding-scaled_proportions-description =
|
||||
Voor een correcte werking van de SlimeVR-trackers hebben we de lengte van uw botten nodig.
|
||||
We gebruiken hiervoor een gemiddelde lichaamsverhouding, geschaald op basis van uw lengte.
|
||||
onboarding-scaled_proportions-manual_height-title = Configureer uw lengte
|
||||
onboarding-scaled_proportions-manual_height-description-v2 = Deze lengte wordt gebruikt als basis voor je lichaamsverhoudingen.
|
||||
onboarding-scaled_proportions-manual_height-missing_steamvr =
|
||||
SteamVR is momenteel niet verbonden met SlimeVR, dus metingen kunnen niet worden gebaseerd op je headset.
|
||||
<b>Ga verder op eigen risico of raadpleeg de documentatie!</b>
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = Uw volledige lengte is
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = De geschatte hoogte van uw headset is:
|
||||
onboarding-scaled_proportions-manual_height-next_step = Opslaan en doorgaan
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
Je gebruikt momenteel de handmatige manier om geschaalde verhoudingen in te stellen!
|
||||
<b>Deze modus wordt alleen aanbevolen als je geen HMD met SlimeVR gebruikt.</b>
|
||||
|
||||
Om de automatische geschaalde verhoudingen te kunnen gebruiken, doe het volgende:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Sluit een VR-headset aan
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Zorg ervoor dat je controllers zijn verbonden en correct aan je handen zijn toegewezen
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
onboarding-scaled_proportions-reset_proportion-title = Reset je lichaamsverhoudingen
|
||||
onboarding-scaled_proportions-reset_proportion-description = Om je lichaamsverhoudingen op basis van je lengte in te stellen, moet je nu al je verhoudingen resetten. Dit zal alle verhoudingen die je hebt ingesteld wissen en een basisconfiguratie bieden.
|
||||
onboarding-scaled_proportions-done-title = Lichaamsverhoudingen ingesteld
|
||||
onboarding-scaled_proportions-done-description = Je lichaamsverhoudingen zouden nu gebaseerd moeten zijn op je lengte
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
@@ -1079,11 +1214,79 @@ firmware_tool-board_pins_step-enable_led = LED inschakelen
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED-pin
|
||||
.placeholder = Voer het adres van de LED-pin in
|
||||
firmware_tool-board_pins_step-battery_type = Selecteer het batterijtype
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Externe batterij
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Interne batterij
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Interne MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Batterij sensor Pin
|
||||
.placeholder = Voer het pin-adres van de batterij sensor in
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Batterij Weerstand (Ohm)
|
||||
.placeholder = Voer de waarde van de batterijweerstand in
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Batterij Shield R1 (Ohm)
|
||||
.placeholder = Voer de waarde in van Battery Shield R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Batterij Shield R2 (Ohm)
|
||||
.placeholder = Voer de waarde in van Battery Shield R2
|
||||
firmware_tool-add_imus_step = Declareer uw IMU's
|
||||
firmware_tool-add_imus_step-description =
|
||||
Voeg de IMU's toe die je tracker heeft
|
||||
Als je de SlimeVR-documentatie hebt gevolgd, zouden de standaardwaarden correct moeten zijn.
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU-type
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Selecteer het type IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = IMU-rotatie (graden)
|
||||
.placeholder = Rotatie van de IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL-pin
|
||||
.placeholder = Pin-adres van SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA-pin
|
||||
.placeholder = Pin-adres van SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT-pin
|
||||
.placeholder = Pin-adres van INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Optionele tracker
|
||||
firmware_tool-add_imus_step-show_less = Toon minder
|
||||
firmware_tool-add_imus_step-show_more = Toon meer
|
||||
firmware_tool-add_imus_step-add_more = Voeg meer IMU's toe
|
||||
firmware_tool-select_firmware_step = Selecteer de firmwareversie
|
||||
firmware_tool-select_firmware_step-description = Kies de versie van de firmware die je wilt gebruiken
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Firmware van derden weergeven
|
||||
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 =
|
||||
.label = OTA
|
||||
.description = Gebruik de draadloze methode. Je tracker zal de Wi-Fi gebruiken om de firmware bij te werken. Werkt alleen op reeds geconfigureerde trackers.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Gebruik een USB-kabel om je tracker bij te werken.
|
||||
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-board_SLIMEVR-r11 = Zet de tracker aan terwijl u het tweede rechthoekige FLASH-pad vanaf de rand aan de bovenkant van het board kortsluit, en het metalen schild van de microcontroller.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = Zet de tracker aan terwijl u het ronde FLASH-pad aan de bovenkant van het board kortsluit, en het metalen schild van de microcontroller.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Zet de tracker aan terwijl u de FLASH-knop aan de bovenkant van het board indrukt.
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
Voordat u 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.
|
||||
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_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
|
||||
firmware_tool-flash_method_serial-no_devices = Er zijn geen compatibele seriële apparaten gedetecteerd, zorg ervoor dat de tracker is aangesloten.
|
||||
firmware_tool-build_step = Aan het bouwen
|
||||
firmware_tool-build_step-description = De firmware wordt gebouwd, even geduld a.u.b.
|
||||
firmware_tool-flashing_step = Firmware aan het uploaden
|
||||
firmware_tool-flashing_step-description = Je trackers worden geflashed, volg de instructies op het scherm
|
||||
firmware_tool-flashing_step-warning = Trek de tracker niet los en start hem niet opnieuw op tijdens het uploadproces, tenzij dit wordt verteld, hierdoor kan je bord onbruikbaar worden
|
||||
firmware_tool-flashing_step-flash_more = Flash meer trackers
|
||||
firmware_tool-flashing_step-exit = Sluit
|
||||
|
||||
@@ -1094,17 +1297,23 @@ firmware_tool-build-DOWNLOADING_FIRMWARE = Firmware wordt gedownload
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Firmware wordt uitgepakt
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configureren van de definities
|
||||
firmware_tool-build-BUILDING = Firmware wordt gebouwd
|
||||
firmware_tool-build-SAVING = De build opslaan
|
||||
firmware_tool-build-DONE = Build voltooid
|
||||
firmware_tool-build-ERROR = Kan de firmware niet bouwen
|
||||
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Firmware wordt gedownload
|
||||
firmware_update-status-AUTHENTICATING = Authenticatie met de mcu
|
||||
firmware_update-status-UPLOADING = Firmware wordt geüpload
|
||||
firmware_update-status-SYNCING_WITH_MCU = Synchroniseren met de mcu
|
||||
firmware_update-status-REBOOTING = De update toepassen
|
||||
firmware_update-status-PROVISIONING = Wi-Fi-inloggegevens instellen
|
||||
firmware_update-status-DONE = Update voltooid!
|
||||
firmware_update-status-ERROR_DEVICE_NOT_FOUND = Kan het apparaat niet vinden
|
||||
firmware_update-status-ERROR_TIMEOUT = Er is een time-out opgetreden voor het updateproces
|
||||
firmware_update-status-ERROR_DOWNLOAD_FAILED = Kan de firmware niet downloaden
|
||||
firmware_update-status-ERROR_AUTHENTICATION_FAILED = Kan niet verifiëren met de mcu
|
||||
firmware_update-status-ERROR_UPLOAD_FAILED = Kan de firmware niet uploaden
|
||||
firmware_update-status-ERROR_PROVISIONING_FAILED = Kan de Wi-Fi-inloggegevens niet instellen
|
||||
firmware_update-status-ERROR_UNSUPPORTED_METHOD = De updatemethode wordt niet ondersteund
|
||||
@@ -1120,6 +1329,7 @@ firmware_update-changelog-title = Bijwerken naar { $version }
|
||||
firmware_update-looking_for_devices = Op zoek naar apparaten om bij te werken...
|
||||
firmware_update-retry = Opnieuw
|
||||
firmware_update-update = Geselecteerde trackers bijwerken
|
||||
firmware_update-exit = Sluit
|
||||
|
||||
## Tray Menu
|
||||
|
||||
@@ -1146,3 +1356,13 @@ unknown_device-modal-title = Er is een nieuwe tracker gevonden!
|
||||
unknown_device-modal-description = Er is een nieuwe tracker gevonden met MAC-adres <b>{ $deviceId }</b>. Wil je deze verbinden met SlimeVR?
|
||||
unknown_device-modal-confirm = Tuurlijk!
|
||||
unknown_device-modal-forget = Negeer het
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = Kunnen we fouten verzamelen?
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-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
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
|
||||
websocket-connecting = Łączenie z serwerem
|
||||
websocket-connection_lost = Połączenie z serwerem zostało utracone. Próba ponownego połączenia...
|
||||
websocket-connection_lost-desc = Wygląda na to, że serwer SlimeVR przestał działać. Sprawdź dzienniki i uruchom ponownie program
|
||||
websocket-timedout = Nie można połączyć się z serwerem
|
||||
websocket-timedout-desc = Wygląda na to, że serwer SlimeVR uległ awarii lub upłynął limit czasu. Sprawdź dzienniki i uruchom ponownie program
|
||||
websocket-error-close = Wyjdź ze SlimeVR
|
||||
websocket-error-logs = Otwórz folder dzienników
|
||||
|
||||
## Update notification
|
||||
|
||||
@@ -49,38 +54,193 @@ body_part-LEFT_HAND = Lewa dłoń
|
||||
body_part-LEFT_UPPER_LEG = Lewe udo
|
||||
body_part-LEFT_LOWER_LEG = Lewe podudzie
|
||||
body_part-LEFT_FOOT = Lewa stopa
|
||||
body_part-LEFT_THUMB_METACARPAL = Śródręcze lewego kciuka
|
||||
body_part-LEFT_THUMB_PROXIMAL = Lewy kciuk proksymalnie
|
||||
body_part-LEFT_THUMB_DISTAL = Lewy kciuk dystalnie
|
||||
body_part-LEFT_INDEX_PROXIMAL = Lewy wskazujący proksymalny
|
||||
body_part-LEFT_INDEX_INTERMEDIATE = Lewy wsakzujący pośredni
|
||||
body_part-LEFT_INDEX_DISTAL = Lewy wsakzujący dystalnie
|
||||
body_part-LEFT_MIDDLE_PROXIMAL = Lewy środkowy proksymalny
|
||||
body_part-LEFT_MIDDLE_INTERMEDIATE = Lewy środkowy pośredni
|
||||
body_part-LEFT_MIDDLE_DISTAL = Lewy środkowy dystalny
|
||||
body_part-LEFT_RING_PROXIMAL = Lewy pierścień proksymalnie
|
||||
body_part-LEFT_RING_INTERMEDIATE = Lewy pierścień pośredni
|
||||
body_part-LEFT_RING_DISTAL = Lewy pierścień dystalnie
|
||||
body_part-LEFT_LITTLE_PROXIMAL = Lewy mały proksymalnie
|
||||
body_part-LEFT_LITTLE_INTERMEDIATE = Lewy mały pośredni
|
||||
body_part-LEFT_LITTLE_DISTAL = Lewy mały dystalnie
|
||||
body_part-RIGHT_THUMB_METACARPAL = Prawy kciuk śródręcza
|
||||
body_part-RIGHT_THUMB_PROXIMAL = Prawy kciuk proksymalny
|
||||
body_part-RIGHT_THUMB_DISTAL = Prawy kciuk dystalny
|
||||
body_part-RIGHT_INDEX_PROXIMAL = Prawy indeks proksymalny
|
||||
body_part-RIGHT_INDEX_INTERMEDIATE = Prawy indeks pośredni
|
||||
body_part-RIGHT_INDEX_DISTAL = Prawy dystalny wskaźnik
|
||||
body_part-RIGHT_MIDDLE_PROXIMAL = Prawy środkowy proksymalny
|
||||
body_part-RIGHT_MIDDLE_INTERMEDIATE = Prawy środkowy pośredni
|
||||
body_part-RIGHT_MIDDLE_DISTAL = Prawy środkowy dystalny
|
||||
body_part-RIGHT_RING_PROXIMAL = Prawy pierścień proksymalny
|
||||
body_part-RIGHT_RING_INTERMEDIATE = Prawy pierścień pośredni
|
||||
body_part-RIGHT_RING_DISTAL = Prawy pierścień dystalny
|
||||
body_part-RIGHT_LITTLE_PROXIMAL = Prawy mały proksymalny
|
||||
body_part-RIGHT_LITTLE_INTERMEDIATE = Prawy mały pośredni
|
||||
body_part-RIGHT_LITTLE_DISTAL = Prawy mały dystalny
|
||||
|
||||
## BoardType
|
||||
|
||||
board_type-UNKNOWN = Nieznany
|
||||
board_type-NODEMCU = Kontroler NodeMCU
|
||||
board_type-CUSTOM = Płytka niestandardowa
|
||||
board_type-WROOM32 = WROOM32
|
||||
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-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-WRANGLER = Wrangler Joycons
|
||||
board_type-MOCOPI = Sony Mocopi
|
||||
board_type-WEMOSWROOM02 = Wemos Wroom-02 D1 Mini
|
||||
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 = Rękawica SlimeVR Dev IMU
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Brak
|
||||
skeleton_bone-HEAD = Przesunięcie głowy
|
||||
skeleton_bone-HEAD-desc =
|
||||
To jest odległość od headsetu do środka głowy.
|
||||
Aby ją dostosować, obracaj głową(lewo i prawo) i edytuj wartość do momentu kiedy ruch innych urządzeń będzie minimalny.
|
||||
skeleton_bone-NECK = Długość szyi
|
||||
skeleton_bone-NECK-desc =
|
||||
To jest odległość od środka głowy do podstawy szyi.
|
||||
Aby go dostosować, przesuń głowę w górę i w dół, jakbyś kiwnął głową lub przechylić głowę
|
||||
po lewej i prawej stronie i zmodyfikuj go, aż jakikolwiek ruch w innych śledzących nie będzie znikomy.
|
||||
skeleton_bone-torso_group = Długość torsu
|
||||
skeleton_bone-torso_group-desc =
|
||||
To jest odległość od podstawy szyi do bioder.
|
||||
Aby go dostosować, zmodyfikuj go w stojąco prosto, aż do wirtualnej linii bioder
|
||||
Zwykle z twoimi prawdziwymi.
|
||||
skeleton_bone-UPPER_CHEST = Długość górnej części klatki piersiowej
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
To jest odległość od podstawy szyi do środka klatki piersiowej.
|
||||
Aby go dostosować, odpowiednio dostosuj długość tułowia i zmodyfikuj ją w różnych pozycjach
|
||||
(Siedząc, pochylając się, leżąc itp.) Dopóki wirtualny kręgosłup nie pasuje do twojego prawdziwego.
|
||||
skeleton_bone-CHEST_OFFSET = Przesunięcie klatki piersiowej
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
Można to dostosować, aby przesunąć wirtualny tracker klatki piersiowej w górę lub w dół, aby pomóc
|
||||
z kalibracją w niektórych grach lub aplikacjach, które mogą oczekiwać, że będzie wyższa lub niższa.
|
||||
skeleton_bone-CHEST = Długość klatki piersiowej
|
||||
skeleton_bone-CHEST-desc =
|
||||
To jest odległość od środka klatki piersiowej do środka kręgosłupa.
|
||||
Aby go dostosować, odpowiednio dostosuj długość tułowia i zmodyfikuj ją w różnych pozycjach
|
||||
(Siedząc, pochylając się, leżąc itp.) Dopóki wirtualny kręgosłup nie pasuje do twojego prawdziwego.
|
||||
skeleton_bone-WAIST = Długość talii
|
||||
skeleton_bone-WAIST-desc =
|
||||
To jest odległość od środka kręgosłupa do przycisku brzucha.
|
||||
Aby go dostosować, odpowiednio dostosuj długość tułowia i zmodyfikuj ją w różnych pozycjach
|
||||
(Siedząc, pochylając się, leżąc itp.) Dopóki wirtualny kręgosłup nie pasuje do twojego prawdziwego.
|
||||
skeleton_bone-HIP = Długość bioder
|
||||
skeleton_bone-HIP-desc =
|
||||
To jest odległość od przycisku brzucha do bioder
|
||||
Aby go dostosować, odpowiednio dostosuj długość tułowia i zmodyfikuj ją w różnych pozycjach
|
||||
(Siedząc, pochylając się, leżąc itp.) Dopóki wirtualny kręgosłup nie pasuje do twojego prawdziwego.
|
||||
skeleton_bone-HIP_OFFSET = Przesunięcie bioder
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
Można to dostosować, aby przesunąć wirtualny tracker bioder w górę lub w dół, aby pomóc
|
||||
z kalibracją w niektórych grach lub aplikacjach, które mogą oczekiwać, że będzie w talii.
|
||||
skeleton_bone-HIPS_WIDTH = Szerokość bioder
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
To jest odległość między początkiem nóg.
|
||||
Aby go dostosować, wykonaj pełny reset z nogami prosto i zmodyfikuj go aż do POW
|
||||
Twoje wirtualne nogi pasują do twoich prawdziwych w poziomie.
|
||||
skeleton_bone-leg_group = Długość nóg
|
||||
skeleton_bone-leg_group-desc =
|
||||
To jest odległość od bioder do stóp.
|
||||
Aby go dostosować, odpowiednio dostosuj długość tułowia i zmodyfikuj ją
|
||||
Dopóki twoje wirtualne stopy nie znajdą się na tym samym poziomie co twoje prawdziwe.
|
||||
skeleton_bone-UPPER_LEG = Długość górnej części nogi
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
To jest odległość od bioder do kolan.
|
||||
Aby go dostosować, odpowiednio wyregentuj długość nogi i zmodyfikuj ją
|
||||
Dopóki wirtualne kolana nie znajdą się na tym samym poziomie co twoje prawdziwe.
|
||||
skeleton_bone-LOWER_LEG = Długość dolnej części nogi
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
To jest odległość od twoich kolan do kostek.
|
||||
Aby go dostosować, odpowiednio wyregentuj długość nogi i zmodyfikuj ją
|
||||
Dopóki wirtualne kolana nie znajdą się na tym samym poziomie co twoje prawdziwe.
|
||||
skeleton_bone-FOOT_LENGTH = Długość stopy
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
To jest odległość od twoich kostek do twoich palców.
|
||||
Aby go dostosować, na palcach i zmodyfikuj, aż twoje wirtualne stopy pozostaną na miejscu.
|
||||
skeleton_bone-FOOT_SHIFT = Przesunięcie stopy
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Ta wartość jest poziomą odległością od kolana do kostki.
|
||||
Opowiada o dolnych nogach cofających się, gdy stoi prosto.
|
||||
Aby go dostosować, ustaw długość stopy na 0, wykonaj pełny reset i zmodyfikuj ją, aż do wirtualnegow
|
||||
Stopy ustawiają się w środku kostek.
|
||||
skeleton_bone-SKELETON_OFFSET = Przesunięcie szkieletu
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
Można to dostosować do przesunięcia wszystkich twoich trackerów do przodu lub do tyłu.
|
||||
Można go użyć, aby pomóc w kalibracji w niektórych grach lub aplikacjach
|
||||
To może oczekiwać, że twoi trackerzy będą bardziej naprzód.
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Odległość ramion
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
To jest pionowa odległość od podstawy szyi do ramion.
|
||||
Aby go dostosować, ustaw długość górnego ramienia na 0 i zmodyfikuj go, aż wirtualne śledzenie łokci
|
||||
Ustaw pionowo z prawdziwymi ramionami.
|
||||
skeleton_bone-SHOULDERS_WIDTH = Szerokość ramion
|
||||
skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
To jest pozioma odległość od podstawy szyi do ramion.
|
||||
Aby go dostosować, ustaw długość górnego ramienia na 0 i zmodyfikuj go, aż wirtualne śledzenie łokci
|
||||
Ustaw poziomo z prawdziwymi ramionami.
|
||||
skeleton_bone-arm_group = Długość ramienia
|
||||
skeleton_bone-arm_group-desc =
|
||||
To jest odległość od ramion do nadgarstków.
|
||||
Aby go dostosować, odpowiednio dostosuj odległość ramion, ustaw odległość dłoni y¶
|
||||
do 0 i zmodyfikuj go, aż śledzące rękę nie ustawiają się na nadgarstki.
|
||||
skeleton_bone-UPPER_ARM = Długość bicepsa
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
To jest odległość od ramion do łokci.
|
||||
Aby go dostosować, odpowiednio wyregentuj długość ramienia i zmodyfikuj ją do ¶
|
||||
Twoje tropiniki łokciowe ustawiają się z twoimi prawdziwymi łokciami.
|
||||
skeleton_bone-LOWER_ARM = Długość przedramienia
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
To jest odległość od twoich łokci do nadgarstków.
|
||||
Aby go dostosować, odpowiednio wyregentuj długość ramienia i zmodyfikuj ją do ¶
|
||||
Twoje tropiniki łokciowe ustawiają się z twoimi prawdziwymi łokciami.
|
||||
skeleton_bone-HAND_Y = Odległość dłoni w osi Y
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
To jest pionowa odległość od nadgarstków do środka ręki.
|
||||
Aby dostosować go do przechwytywania ruchu, prawidłowo dostosuj długość ramienia i zmodyfikuj ją, aż będziesz
|
||||
Dręczniki ręczne ustawiają się pionowo z środkiem dłoni.
|
||||
Aby dostosować go do śledzenia łokcia z kontrolerów, ustaw długość ramienia na 0 i ¶
|
||||
Zmodyfikuj go, aż twoje urządzenia śledzące łokieć ustawiają się w pionie z nadgarstkami.
|
||||
skeleton_bone-HAND_Z = Odległość dłoni w osi Z
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
To jest pozioma odległość od nadgarstków do środka ręki.
|
||||
Aby dostosować go do przechwytywania ruchu, ustaw go na 0.
|
||||
Aby dostosować go do śledzenia łokcia z kontrolerów, ustaw długość ramienia na 0 i ¶
|
||||
Zmodyfikuj go, aż twoich śledzących łokcia w sposób poziomo z nadgarstkami.
|
||||
skeleton_bone-ELBOW_OFFSET = Przesunięcie łokcia
|
||||
skeleton_bone-ELBOW_OFFSET-desc =
|
||||
Można to dostosować, aby przesunąć wirtualne urządzenia śledzące łokieć w górę lub w dół, aby pomóc
|
||||
z VRCHAT przypadkowo wiążącą tropiciel łokcia z klatką piersiową.
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = Zresetuj wszystkie wymiary
|
||||
reset-reset_all_warning-v2 =
|
||||
<b> Ostrzeżenie: </b> Twoje proporcje zostaną zresetowane do wartości domyślnych skalowanych do skonfigurowanego wysokości.
|
||||
Czy na pewno chcesz to zrobić?
|
||||
reset-reset_all_warning-reset = Zresetuj proporcje
|
||||
reset-reset_all_warning-cancel = Anuluj
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b> Ostrzeżenie: </b> Twoja wysokość nie została skonfigurowana, twoje proporcje zostaną zresetowane do domyślnych z domyślnym wysokością.
|
||||
Czy na pewno chcesz to zrobić?
|
||||
reset-full = Pełny Reset
|
||||
reset-mounting = Zresetuj położenie
|
||||
reset-yaw = Reset odchylenia
|
||||
@@ -142,9 +302,12 @@ widget-developer_mode-more_info = Więcej info
|
||||
## Widget: IMU Visualizer
|
||||
|
||||
widget-imu_visualizer = Rotacja
|
||||
widget-imu_visualizer-preview = Podgląd
|
||||
widget-imu_visualizer-hide = Ukryj
|
||||
widget-imu_visualizer-rotation_raw = Raw
|
||||
widget-imu_visualizer-rotation_preview = Podgląd
|
||||
widget-imu_visualizer-rotation_hide = Ukryj
|
||||
widget-imu_visualizer-acceleration = Akceleracja
|
||||
widget-imu_visualizer-position = Pozycja
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -196,9 +359,17 @@ tracker-infos-url = Tracker URL
|
||||
tracker-infos-version = Wersja oprogramowania
|
||||
tracker-infos-hardware_rev = Rewizja sprzętu
|
||||
tracker-infos-hardware_identifier = Identyfikator sprzętu
|
||||
tracker-infos-data_support = Wsparcie danych
|
||||
tracker-infos-imu = Czujnik IMU
|
||||
tracker-infos-board_type = Płyta główna
|
||||
tracker-infos-network_version = Wersja protokołu
|
||||
tracker-infos-magnetometer = Magnetometer
|
||||
tracker-infos-magnetometer-status-v1 =
|
||||
{ $status ->
|
||||
[DISABLED] Wyłączony
|
||||
[ENABLED] Włączony
|
||||
*[NOT_SUPPORTED] Nieobsługiwane
|
||||
}
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -213,14 +384,28 @@ tracker-settings-mounting_section-edit = Edytuj
|
||||
tracker-settings-drift_compensation_section = Pozwalaj na kompensację dryfu
|
||||
tracker-settings-drift_compensation_section-description = Czy ten tracker powinien być korygowany, gdy kompensacja dryfu jest włączona?
|
||||
tracker-settings-drift_compensation_section-edit = Pozwalaj na kompensację dryfu
|
||||
tracker-settings-use_mag = Zezwól na magnetometr na tym trackerze
|
||||
# Multiline!
|
||||
tracker-settings-use_mag-description =
|
||||
Czy ten tracker powinien używać magnetometru, aby zmniejszyć dryft, gdy użycie magnetometru jest dozwolone? <b>Proszę nie wyłączać trackera podczas przełączania tej opcji!</b> ¶
|
||||
¶
|
||||
Najpierw musisz zezwolić na użycie magnetometru, <magSetting>kliknij tutaj, aby przejść do ustawienia</magSetting> .
|
||||
tracker-settings-use_mag-label = Pozwól na magnetometr
|
||||
# The .<name> means it's an attribute and it's related to the top key.
|
||||
# In this case that is the settings for the assignment section.
|
||||
tracker-settings-name_section = Nazwa Trackera
|
||||
tracker-settings-name_section-description = Daj mu słodką nazwę :)
|
||||
tracker-settings-name_section-placeholder = Lewa noga Yexo
|
||||
tracker-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 = Nie można zaktualizować (zrób to sam)
|
||||
tracker-settings-update-low-battery = Nie można zaktualizować. Bateria poniżej 50%
|
||||
tracker-settings-update-up_to_date = Aktualny
|
||||
tracker-settings-update-available = Wersja { $versionName } jest już dostępna
|
||||
tracker-settings-update = Zaktualizuj teraz
|
||||
tracker-settings-update-title = Wersja oprogramowania
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -296,6 +481,8 @@ settings-sidebar-utils = Narzędzia
|
||||
settings-sidebar-serial = Konsola szeregowa
|
||||
settings-sidebar-appearance = Wygląd
|
||||
settings-sidebar-notifications = Powiadomienia
|
||||
settings-sidebar-firmware-tool = Narzędzie do oprogramowania sprzętowego DIY
|
||||
settings-sidebar-advanced = Zaawansowany
|
||||
|
||||
## SteamVR settings
|
||||
|
||||
@@ -350,6 +537,20 @@ settings-general-tracker_mechanics-drift_compensation-description =
|
||||
Kompensuje dryf odchylenia IMU poprzez zastosowanie odwrotnej rotacji.
|
||||
Zmień wysokość kompensacji i do ilu resetów jest branych pod uwagę.
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Kompensacja dryfu
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = Przewidywanie kompensacji dryfu
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
Przewiduje kompensację dryfu odchylenia poza wcześniej zmierzony zakres.¶
|
||||
Włącz tę opcję, jeśli trackery stale obracają się wokół osi odchylenia.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = Przewidywanie kompensacji dryfu
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>Ostrzeżenie:</b> Kompensacji dryftu używaj tylko wtedy, gdy chcesz zresetować¶
|
||||
bardzo często (co 5-10 minut).¶
|
||||
¶
|
||||
Niektóre IMU podatne na częste resetowanie obejmują:¶
|
||||
Joy-Cons, owoTrack i MPU (bez najnowszego oprogramowania).
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-cancel = Anuluj
|
||||
settings-general-tracker_mechanics-drift_compensation_warning-done = Rozumiem
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = Ilość kompensacji
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Użyj maksymalnie x ostatnich resetów
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Zapisz pozycję trackerów na ciele
|
||||
@@ -357,6 +558,11 @@ settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Zapisuje kalibrację pozycji trackerów na ciele pomiędzy ponownymi uruchomieniami. Użyteczne¶
|
||||
podczas noszenia stroju, w którym trackery przymocowane sa na stałe. <b>Niezalecane dla zwykłych użytkowników z odpinanymi trackerami!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Zapisz pozycję trackerów
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Użyj magnetometru na wszystkich trackerach IMU, które go obsługują
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Wykorzystuje magnetometr we wszystkich trackerach, które mają kompatybilne oprogramowanie sprzętowe, redukując dryf w stabilnych środowiskach magnetycznych.¶
|
||||
Można wyłączyć dla każdego modułu śledzącego w ustawieniach modułu śledzącego. <b>Proszę nie wyłączać żadnego modułu śledzącego podczas przełączania!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Użyj magnetometru na trackerach
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -380,6 +586,11 @@ settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant obrac
|
||||
settings-general-fk_settings-leg_fk = Śledzenie nóg
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Włącz resetowanie montażu stóp, chodząc na palcach.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset mocowania stóp
|
||||
settings-general-fk_settings-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-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
|
||||
@@ -411,9 +622,6 @@ settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Uśre
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Średnie odchylenie kolan i przechylenie kostek
|
||||
settings-general-fk_settings-self_localization-title = Tryb Mocap
|
||||
settings-general-fk_settings-self_localization-description = Tryb Mocap pozwala szkieletowi z grubsza śledzić własną pozycję bez headsetu lub innych trackerów. Pamiętaj, że wymaga to śledzenia stóp i głowy do działania i nadal jest eksperymentalne.
|
||||
settings-general-fk_settings-vive_emulation-title = Emulacja Vive
|
||||
settings-general-fk_settings-vive_emulation-description = Naśladuj problemy z trackerem talii, które mają trackery Vive. To żart i pogarsza śledzenie.
|
||||
settings-general-fk_settings-vive_emulation-label = Włącz emulację Vive
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -458,6 +666,9 @@ settings-general-interface-dev_mode = Tryb Dewelopera
|
||||
settings-general-interface-dev_mode-description = Ten tryb przydaje się do sprawdzania większej ilości danych.
|
||||
settings-general-interface-dev_mode-label = Tryb Dewelopera
|
||||
settings-general-interface-theme = Motyw kolorystyczny
|
||||
settings-general-interface-show-navbar-onboarding = Pokaż „{ navbar-onboarding }” na pasku nawigacyjnym
|
||||
settings-general-interface-show-navbar-onboarding-description = Zmienia się to, jeśli na pasku nawigacyjnym pojawi się przycisk „{ navbar-onboarding }”.
|
||||
settings-general-interface-show-navbar-onboarding-label = Pokaż „{ navbar-onboarding }”
|
||||
settings-general-interface-lang = Wybierz Język
|
||||
settings-general-interface-lang-description = Zmień podstawowy język jaki chcesz używać
|
||||
settings-general-interface-lang-placeholder = Wybierz język, który będziesz używać
|
||||
@@ -469,6 +680,9 @@ settings-interface-appearance-font-os_font = Czcionka systemu operacyjnego
|
||||
settings-interface-appearance-font-slime_font = Domyślna czcionka
|
||||
settings-interface-appearance-font_size = Skalowanie czcionki
|
||||
settings-interface-appearance-font_size-description = Wpływa to na rozmiar czcionki całego interfejsu z wyjątkiem tego panelu ustawień
|
||||
settings-interface-appearance-decorations = Skorzystaj z natywnych dekoracji systemowych
|
||||
settings-interface-appearance-decorations-description = Nie spowoduje to wyrenderowania górnego paska interfejsu i zamiast tego użyje paska systemu operacyjnego.
|
||||
settings-interface-appearance-decorations-label = Użyj domyślnych dekoracji
|
||||
|
||||
## Notification settings
|
||||
|
||||
@@ -483,6 +697,13 @@ settings-general-interface-feedback_sound-volume = Poziom głośności dzwięku
|
||||
settings-general-interface-connected_trackers_warning = Ostrzeżenie o podłączonych trackerach
|
||||
settings-general-interface-connected_trackers_warning-description = Ta opcja wyświetli wyskakujące okienko za każdym razem, gdy spróbujesz wyjść ze SlimeVR, mając jeden lub więcej podłączonych trackerów. Przypomina o wyłączeniu trackerów, gdy skończysz, aby wydłużyć żywotność baterii.
|
||||
settings-general-interface-connected_trackers_warning-label = Ostrzeżenie o podłączonych trackerach przy wyjściu
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Zachowanie
|
||||
settings-general-interface-dev_mode = Tryb Dewelopera
|
||||
settings-general-interface-dev_mode-description = Ten tryb przydaje się do sprawdzania większej ilości danych.
|
||||
settings-general-interface-dev_mode-label = Tryb Dewelopera
|
||||
settings-general-interface-use_tray = Minimalizuj do zasobnika systemowego
|
||||
settings-general-interface-use_tray-description = Pozwala zamknąć okno bez wyłączania serwera SlimeVR, aby używać trackerów bez interfejsu graficznego.
|
||||
settings-general-interface-use_tray-label = Minimalizuj do zasobnika systemowego
|
||||
@@ -496,6 +717,14 @@ settings-general-interface-discord_presence-message =
|
||||
[few] Używanie { $amount } trackerów
|
||||
*[many] Używanie { $amount } trackerów
|
||||
}
|
||||
settings-interface-behavior-error_tracking = Zbieranie błędów za pomocą Sentry.io
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>Czy wyrażasz zgodę na gromadzenie anonimowych danych o błędach?</h1>
|
||||
|
||||
<b>Nie gromadzimy danych osobowych</b> , takich jak adres IP lub dane uwierzytelniające sieci bezprzewodowej. SlimeVR ceni Twoją prywatność!
|
||||
|
||||
Aby zapewnić jak najlepsze wrażenia użytkownika, gromadzimy anonimowe raporty o błędach, wskaźniki wydajności i informacje o systemie operacyjnym. Pomaga nam to wykrywać błędy i problemy ze SlimeVR. Dane te są zbierane za pomocą Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Wysyłanie błędów do deweloperów
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -549,9 +778,22 @@ settings-osc-router-network-address-placeholder = IPV4 address
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = VRChat OSC Trackers
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description-v1 =
|
||||
Zmień ustawienia specyficzne dla standardu OSC Trackers używanego do wysyłania¶
|
||||
śledzenie danych do aplikacji bez SteamVR (np. samodzielny Quest).¶
|
||||
Upewnij się, że włączyłeś OSC w VRChat poprzez menu akcji w opcji OSC włączone.¶
|
||||
Aby zezwolić na odbieranie danych HMD i kontrolera z VRChat, przejdź do menu głównego¶
|
||||
ustawienia w obszarze Śledzenie i IK Zezwalaj na wysyłanie danych OSC śledzenia głowy i nadgarstka VR.
|
||||
settings-osc-vrchat-enable = Zezwól
|
||||
settings-osc-vrchat-enable-description = Zezwól na wysyłanie i odbieranie danych.
|
||||
settings-osc-vrchat-enable-label = Zezwól
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery automatycznie wykrywa uruchomione instancje VRChat i wysyła im dane.
|
||||
Może również reklamować się do nich w celu otrzymania danych HMD i administratora.
|
||||
Aby zezwolić na odbieranie danych HMD i kontrolera z VRChat, przejdź do ustawień menu głównego
|
||||
w sekcji "Tracking & IK" i włącz opcję "Zezwalaj na wysyłanie danych OSC śledzenia głowy i nadgarstka VR".
|
||||
settings-osc-vrchat-oscqueryEnabled-label = Włącz OSCQuery
|
||||
settings-osc-vrchat-network = Porty sieciowe
|
||||
settings-osc-vrchat-network-description-v1 = Ustaw porty do odbierania i wysyłania danych. Nie trzeba tego zmieniać dla VRChata.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
@@ -594,12 +836,7 @@ settings-osc-vmc-network-address-description = Wybierz adres, na który chcesz w
|
||||
settings-osc-vmc-network-address-placeholder = IPV4 adres
|
||||
settings-osc-vmc-vrm = Model VRM
|
||||
settings-osc-vmc-vrm-description = Załaduj model VRM, aby umożliwić zablokowanie głowy i zapewnić większą kompatybilność z innymi aplikacjami
|
||||
settings-osc-vmc-vrm-model_unloaded = Nie załadowano modelu
|
||||
settings-osc-vmc-vrm-model_loaded =
|
||||
{ $titled ->
|
||||
[true] Model załadowany: { $name }
|
||||
*[other] Załadowano model bez nazwy
|
||||
}
|
||||
settings-osc-vmc-vrm-untitled_model = Model bez nazwy
|
||||
settings-osc-vmc-vrm-file_select = Przeciągnij i upuść model, którego chcesz użyć, lub <u>przeglądaj</u>
|
||||
settings-osc-vmc-anchor_hip = Blokada na biodrach
|
||||
settings-osc-vmc-anchor_hip-description = Zablokuj śledzenie na biodrach, przydatne podczas siedzenia VTubing. W przypadku wyłączenia załaduj model VRM.
|
||||
@@ -608,6 +845,35 @@ settings-osc-vmc-mirror_tracking = Odbicie lustrzane śledzenia
|
||||
settings-osc-vmc-mirror_tracking-description = Odbij śledzenie w poziomie.
|
||||
settings-osc-vmc-mirror_tracking-label = Odbicie lustrzane śledzenia
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Zaawansowany
|
||||
settings-utils-advanced-reset-gui = Zresetuj ustawienia GUI
|
||||
settings-utils-advanced-reset-gui-description = Przywróć domyślne ustawienia interfejsu.
|
||||
settings-utils-advanced-reset-gui-label = Zresetuj GUI
|
||||
settings-utils-advanced-reset-server = Zresetuj ustawienia śledzenia
|
||||
settings-utils-advanced-reset-server-description = Przywróć domyślne ustawienia śledzenia.
|
||||
settings-utils-advanced-reset-server-label = Zresetuj śledzenie
|
||||
settings-utils-advanced-reset-all = Zresetuj wszystkie ustawienia
|
||||
settings-utils-advanced-reset-all-description = Przywróć ustawienia domyślne interfejsu i śledzenia.
|
||||
settings-utils-advanced-reset-all-label = Zresetuj wszystko
|
||||
settings-utils-advanced-reset_warning =
|
||||
{ $type ->
|
||||
[gui] <b>Ostrzeżenie:</b> Spowoduje to przywrócenie ustawień domyślnych interfejsu GUI.¶
|
||||
[server] <b>Ostrzeżenie:</b>Spowoduje to przywrócenie domyślnych ustawień śledzenia.¶
|
||||
*[all]
|
||||
<b>Ostrzeżenie:</b> Spowoduje to zresetowanie wszystkich ustawień do wartości domyślnych.¶
|
||||
Czy na pewno chcesz to zrobić?
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = Zresetuj ustawienia
|
||||
settings-utils-advanced-reset_warning-cancel = Anuluj
|
||||
settings-utils-advanced-open_data-v1 = Folder konfiguracyjny
|
||||
settings-utils-advanced-open_data-description-v1 = Otwórz folder konfiguracyjny SlimeVR w eksploratorze plików, zawierający konfigurację
|
||||
settings-utils-advanced-open_data-label = Otwórz folder
|
||||
settings-utils-advanced-open_logs = Folder dzienników
|
||||
settings-utils-advanced-open_logs-description = Otwórz folder dzienników SlimeVR w eksploratorze plików, zawierający dzienniki aplikacji
|
||||
settings-utils-advanced-open_logs-label = Otwórz folder
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
onboarding-skip = Pomiń wstępną konfiguracje
|
||||
@@ -633,6 +899,7 @@ onboarding-wifi_creds-submit = Potwierdź!
|
||||
onboarding-wifi_creds-ssid =
|
||||
.label = SSID
|
||||
.placeholder = Enter SSID
|
||||
onboarding-wifi_creds-ssid-required = Nazwa Wi-Fi jest wymagana
|
||||
onboarding-wifi_creds-password =
|
||||
.label = Password
|
||||
.placeholder = Enter password
|
||||
@@ -690,12 +957,24 @@ onboarding-connect_tracker-issue-serial = Mam problemy z połączeniem!
|
||||
onboarding-connect_tracker-usb = USB Tracker
|
||||
onboarding-connect_tracker-connection_status-none = Szukanie Trackerów
|
||||
onboarding-connect_tracker-connection_status-serial_init = Łączenie z urządzeniem szeregowym
|
||||
onboarding-connect_tracker-connection_status-obtaining_mac_address = Uzyskiwanie adresu MAC modułu śledzącego
|
||||
onboarding-connect_tracker-connection_status-provisioning = Wysyłanie danych Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-connecting = Wysyłanie danych Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-looking_for_server = Szukanie serwera
|
||||
onboarding-connect_tracker-connection_status-connection_error = Nie można połączyć się z Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = Nie można znaleźć serwera
|
||||
onboarding-connect_tracker-connection_status-done = Połączono z serwerem
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = Nie można pobrać dzienników z modułu śledzącego
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = Nie można znaleźć lokalizatora z USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = Czy tracker jest włączony?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Upewnij się, że tracker jest włączony i podłączony do komputera
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = Nie wykryto trackerów
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
Podłącz tracker za pomocą dostarczonego USB do komputera i włącz tracker.
|
||||
Jeśli to nie zadziała:
|
||||
- Spróbuj użyć innego USB
|
||||
- Spróbuj użyć innego portu USB
|
||||
- spróbuj ponownie zainstalować serwer SlimeVR i wybierz "Sterowniki USB" w sekcji komponentów
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -721,6 +1000,7 @@ onboarding-calibration_tutorial-status-waiting = Czekam na Ciebie
|
||||
onboarding-calibration_tutorial-status-calibrating = Kalibracja
|
||||
onboarding-calibration_tutorial-status-success = Nieźle!
|
||||
onboarding-calibration_tutorial-status-error = Tracker został przeniesiony
|
||||
onboarding-calibration_tutorial-skip = Pomiń samouczek
|
||||
|
||||
## Tracker assignment tutorial
|
||||
|
||||
@@ -847,11 +1127,11 @@ onboarding-choose_mounting = Jakiej metody kalibracji montażu użyć?
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-description = Orientacja montażu koryguje umieszczenie trackerów na ciele.
|
||||
onboarding-choose_mounting-auto_mounting = Automatyczne mocowanie
|
||||
# Italized text
|
||||
# Italicized text
|
||||
onboarding-choose_mounting-auto_mounting-label-v2 = Zalecane
|
||||
onboarding-choose_mounting-auto_mounting-description = To automatycznie wykryje kierunki montażu dla wszystkich twoich trackerów z 2 pozycji
|
||||
onboarding-choose_mounting-manual_mounting = Montaż ręczny
|
||||
# Italized text
|
||||
# Italicized text
|
||||
onboarding-choose_mounting-manual_mounting-label-v2 = Może nie być wystarczająco dokładne
|
||||
onboarding-choose_mounting-manual_mounting-description = Umożliwi to ręczne wybranie kierunku montażu dla każdego trackera
|
||||
# Multiline text
|
||||
@@ -885,44 +1165,24 @@ 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-preparation-title = Przygotowania
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stań prosto z rękami wyciągniętymi na bok.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Naciśnij "Reset" i poczekaj 3 sekundy zanim trackery się zresetują.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Załóż trackery
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Aby skalibrować rotacje, użyjemy trackerów które 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
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
onboarding-choose_proportions = Jakiej metody kalibracji proporcji użyć?
|
||||
# Multiline string
|
||||
onboarding-choose_proportions-description-v1 =
|
||||
Proporcje ciała służą do określenia wymiarów Twojego ciała. Są niezbędne do obliczenia właściwej pozycji trackerów.¶
|
||||
Gdy proporcje Twojego ciała nie będą odpowiadać zapisanym, Twoja precyzja śledzenia będzie gorsza i zauważysz takie problemy jak niedopasowanie awatara do Twojego ciała, efekt jazdy na łyżwach i ślizgania się.¶
|
||||
<b>Wystarczy zmierzyć swoje ciało tylko raz!</b> O ile proporcje są poprawne i Twoje ciało się nie zmieniło, nie musisz powtarzać żadnych pomiarów.
|
||||
onboarding-choose_proportions-auto_proportions = Proporcje automatyczne
|
||||
# Italized text
|
||||
onboarding-choose_proportions-auto_proportions-subtitle = Zalecana
|
||||
onboarding-choose_proportions-auto_proportions-descriptionv3 =
|
||||
Spowoduje to estymację Twoich proporcji poprzez zarejestrowanie nagrania Twoich ruchów i przetworzenie ich przez algorytm.¶
|
||||
¶
|
||||
<b>Wymaga to podłączenia headsetu (HMD) do SlimeVR i założenia go na głowę!</b>
|
||||
onboarding-choose_proportions-manual_proportions = Ręczne proporcje
|
||||
# Italized text
|
||||
onboarding-choose_proportions-manual_proportions-subtitle = Drobne detale
|
||||
onboarding-choose_proportions-manual_proportions-description = Umożliwi to ręczne dostosowanie proporcji poprzez ich bezpośrednią modyfikację
|
||||
onboarding-choose_proportions-export = Eksportuj proporcje
|
||||
onboarding-choose_proportions-import = Importuj proporcje
|
||||
onboarding-choose_proportions-import-success = Importowane
|
||||
onboarding-choose_proportions-import-failed = Niepowodzenie
|
||||
onboarding-choose_proportions-file_type = Proporcje ciała
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = Wróć do samouczka resetowania
|
||||
onboarding-manual_proportions-title = Manualne Proporcje Ciała
|
||||
onboarding-manual_proportions-precision = Precyzyjna Regulacja
|
||||
onboarding-manual_proportions-auto = Automatyczna Kalibracja
|
||||
onboarding-manual_proportions-ratio = Dostosuj według grup proporcji
|
||||
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
|
||||
onboarding-manual_proportions-export = Eksportuj proporcje
|
||||
onboarding-manual_proportions-import = Importuj proporcje
|
||||
onboarding-manual_proportions-file_type = Proporcje ciała
|
||||
onboarding-manual_proportions-normal_increment = Normalny przyrost
|
||||
onboarding-manual_proportions-precise_increment = Precyzyjny przyrost
|
||||
onboarding-manual_proportions-grouped_proportions = Zgrupowane proporcje
|
||||
onboarding-manual_proportions-all_proportions = Wszystkie proporcje
|
||||
onboarding-manual_proportions-estimated_height = Szacowany wzrost użytkownika
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -943,21 +1203,33 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
Twój headset raportuje dane o pozycji do serwera SlimeVR (zazwyczaj oznacza to, że SteamVR jest uruchomiony i podłączony do SlimeVR za pomocą sterownika SteamVR SlimeVR).¶
|
||||
Twoje śledzenie działa i dokładnie odzwierciedla Twoje ruchy (wykonałeś pełny reset i poruszają się we właściwym kierunku podczas kopania, schylania się, siedzenia itp.).
|
||||
onboarding-automatic_proportions-requirements-next = Zapoznałem się z wymaganiami
|
||||
onboarding-automatic_proportions-check_height-title = Sprawdź swój wzrost
|
||||
onboarding-automatic_proportions-check_height-description = Używamy Twojego wzrostu jako podstawy naszych pomiarów, używając wzrostu HMD jako przybliżenia Twojego rzeczywistego wzrostu, ale lepiej samemu sprawdzić, czy są prawidłowe!
|
||||
onboarding-automatic_proportions-check_height-title-v3 = Zmierz wysokość headsetu
|
||||
onboarding-automatic_proportions-check_height-description-v2 = Wysokość headsetu (HMD) powinna być nieco mniejsza niż pełny wzrost, ponieważ headset mierzy wysokość oczu. Pomiar ten zostanie wykorzystany jako punkt odniesienia dla proporcji Twojego ciała.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning = Naciśnij przycisk stojąc <u>wyprostowany</u>, aby obliczyć swój wzrost. Masz 3 sekundy po naciśnięciu przycisku!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = Rozpocznij pomiar, stojąc <u>prosto</u> , aby zmierzyć swój wzrost. Uważaj, aby nie podnosić rąk wyżej niż headset, ponieważ mogą one wpłynąć na pomiar!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
Jeśli korzystasz z samodzielnego zestawu VR, upewnij się, że twoja granica¶
|
||||
bezpieczeństwa (guardian) jest włączona, aby poprawnie rozpoznać Twój wzrost!
|
||||
onboarding-automatic_proportions-check_height-fetch_height = Stoję!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = Nieznany
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height1 = Twoja wysokość HMD to
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-height1 = więc twój rzeczywisty wzrost to
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = Wysokość headsetu wynosi:
|
||||
onboarding-automatic_proportions-check_height-measure-start = Rozpocznij pomiar
|
||||
onboarding-automatic_proportions-check_height-measure-stop = Przestań mierzyć
|
||||
onboarding-automatic_proportions-check_height-measure-reset = Ponawianie próby pomiaru
|
||||
onboarding-automatic_proportions-check_height-next_step = Są w porządku
|
||||
onboarding-automatic_proportions-check_floor_height-title = Zmierz wysokość podłogi (opcjonalnie)
|
||||
onboarding-automatic_proportions-check_floor_height-description = W niektórych przypadkach wysokość podłogi może nie być prawidłowo ustawiona przez headset, co powoduje, że wysokość headsetu jest mierzona jako wyższa niż powinna. Możesz zmierzyć "wysokość" podłogi, aby skorygować wysokość headsetu.
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_floor_height-calculation_warning-v2 = Rozpocznij pomiar i przyłóż kontroler do podłogi, aby zmierzyć jej wysokość. Jeśli masz pewność, że wysokość podłogi jest prawidłowa, możesz pominąć ten krok.
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_floor_height-floor_height = Wysokość podłogi wynosi:
|
||||
onboarding-automatic_proportions-check_floor_height-full_height = Twój szacowany pełny wzrost to:
|
||||
onboarding-automatic_proportions-check_floor_height-measure-start = Rozpocznij pomiar
|
||||
onboarding-automatic_proportions-check_floor_height-measure-stop = Przestań mierzyć
|
||||
onboarding-automatic_proportions-check_floor_height-measure-reset = Ponawianie próby pomiaru
|
||||
onboarding-automatic_proportions-check_floor_height-skip_step = Pomiń krok i zapisz
|
||||
onboarding-automatic_proportions-check_floor_height-next_step = Wykorzystaj wysokość podłogi i zaoszczędź
|
||||
onboarding-automatic_proportions-start_recording-title = Bądź gotowy żeby się ruszać
|
||||
onboarding-automatic_proportions-start_recording-description = Będziemy teraz nagrywać specyficzne pozycje i ruchy. Będą one pokazane w następnym okienku. Bądź gotowy po naciśnięciu przycisku!
|
||||
onboarding-automatic_proportions-start_recording-next = Uruchom nagrywanie
|
||||
@@ -989,10 +1261,43 @@ onboarding-automatic_proportions-verify_results-redo = Powtórz nagranie
|
||||
onboarding-automatic_proportions-verify_results-confirm = Wyniki prawidłowe
|
||||
onboarding-automatic_proportions-done-title = Zmierzono oraz zapisano.
|
||||
onboarding-automatic_proportions-done-description = Twoja kalibracja ciała została zakończona!
|
||||
onboarding-automatic_proportions-error_modal =
|
||||
<b>Ostrzeżenie:</b> Wykryto błąd podczas szacowania proporcji!
|
||||
Proszę <docs>sprawdź dokumentację</docs> lub dołącz do naszego <discord>Discord</discord>, aby uzyskać pomoc ^_^
|
||||
onboarding-automatic_proportions-error_modal-v2 =
|
||||
<b>Uwaga:</b> Wystąpił błąd podczas szacowania proporcji!¶
|
||||
Jest to prawdopodobnie problem z kalibracją montażu. Zanim spróbujesz ponownie, upewnij się, że śledzenie działa prawidłowo.¶
|
||||
Proszę, <docs>dokumentacja sprawdź dokumenty</docs> lub dołącz do naszego <discorda>Discord</discord>, aby uzyskać pomoc^_^
|
||||
onboarding-automatic_proportions-error_modal-confirm = Zrozumiano!
|
||||
onboarding-automatic_proportions-smol_warning =
|
||||
Skonfigurowana wysokość { $height } jest mniejsza niż minimalna akceptowana wysokość { $minHeight }.
|
||||
<b>Powtórz pomiary i upewnij się, że są prawidłowe.</b>
|
||||
onboarding-automatic_proportions-smol_warning-cancel = Przejdź wstecz
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
onboarding-scaled_proportions-title = Skalowane proporcje
|
||||
onboarding-scaled_proportions-description = Aby SlimeVR działało poprawnie, musimy znać długość twoich kości. Ta kalibracja zrobi to za ciebie.
|
||||
onboarding-scaled_proportions-manual_height-title = Skonfiguruj swój wzrost
|
||||
onboarding-scaled_proportions-manual_height-description-v2 = Ta wysokość zostanie wykorzystana jako linia bazowa dla proporcji Twojego ciała.
|
||||
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR nie jest obecnie połączony ze SlimeVR, więc pomiary nie mogą być oparte na goglach. <b>Kontynuuj na własne ryzyko lub sprawdź dokumenty!</b>
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = Twój wzrost to
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = Szacowana wysokość headsetu to:
|
||||
onboarding-scaled_proportions-manual_height-next_step = Kontynuuj i zapisz
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
Obecnie korzystasz z ręcznego sposobu ustawiania proporcji w skali rozgrywki!
|
||||
<b>Ten tryb jest zalecany tylko wtedy, gdy nie używasz gogli ze SlimeVR</b>
|
||||
|
||||
Aby móc korzystać z automatycznie skalowanych proporcji, należy:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = Podłącz gogle VR
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = Upewnij się, że kontrolery są podłączone i prawidłowo przypisane do Twoich rąk
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
onboarding-scaled_proportions-reset_proportion-title = Zresetuj wszystkie wymiary
|
||||
onboarding-scaled_proportions-reset_proportion-description = Aby ustawić proporcje ciała na podstawie wzrostu, musisz teraz zresetować wszystkie proporcje. Spowoduje to wyczyszczenie wszystkich skonfigurowanych proporcji i zapewnienie konfiguracji bazowej.
|
||||
onboarding-scaled_proportions-done-title = Proporcje Ciała
|
||||
onboarding-scaled_proportions-done-description = Proporcje Twojego ciała powinny być teraz skonfigurowane w oparciu o Twój wzrost.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
@@ -1018,6 +1323,150 @@ status_system-StatusSteamVRDisconnected =
|
||||
status_system-StatusTrackerError = Tracker { $trackerName } ma błąd.
|
||||
status_system-StatusUnassignedHMD = Headset powinien być przypisany do śledzenia głowy.
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
firmware_tool-next_step = Następny krok
|
||||
firmware_tool-previous_step = Poprzedni krok
|
||||
firmware_tool-ok = Wygląda dobrze
|
||||
firmware_tool-retry = Powtórz
|
||||
firmware_tool-loading = Ładowanie...
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
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-board_step = Wybierz swoją tablicę
|
||||
firmware_tool-board_step-description = Wybierz jedną z plansz wymienionych poniżej.
|
||||
firmware_tool-board_pins_step = Sprawdź piny
|
||||
firmware_tool-board_pins_step-description =
|
||||
Sprawdź, czy wybrane piny są prawidłowe.¶
|
||||
Jeśli postępowałeś zgodnie z dokumentacją SlimeVR, wartości domyślne powinny być prawidłowe
|
||||
firmware_tool-board_pins_step-enable_led = Włącz diodę LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Pin LED
|
||||
.placeholder = Wprowadź adres pin diody LED
|
||||
firmware_tool-board_pins_step-battery_type = Wybierz typ baterii
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Bateria zewnętrzna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Bateria wewnętrzna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Wewnętrzny MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Czujnik akumulatora Pin
|
||||
.placeholder = Wprowadź adres pin czujnika akumulatora
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Rezystor akumulatora (Ohms)
|
||||
.placeholder = Wprowadź wartość rezystora akumulatora
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Osłona akumulatora R1 (Ohms)
|
||||
.placeholder = Wprowadź wartość Battery Shield R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Osłona akumulatora R2 (Ohms)
|
||||
.placeholder = Wprowadź wartość Battery Shield R2
|
||||
firmware_tool-add_imus_step = Zadeklaruj swoje IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
Dodaj IMU, które posiada Twój tracker¶
|
||||
Jeśli postępowałeś zgodnie z dokumentacją SlimeVR, wartości domyślne powinny być prawidłowe
|
||||
firmware_tool-add_imus_step-imu_type-label = Typ IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Wybierz typ IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Obrót IMU (stopnie)
|
||||
.placeholder = Kąt obrotu IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL Pin
|
||||
.placeholder = Adres PIN SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA Pin
|
||||
.placeholder = Adres PIN SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT Pin
|
||||
.placeholder = Adres PIN INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Opcjonalny moduł śledzący
|
||||
firmware_tool-add_imus_step-show_less = Pokaż mniej
|
||||
firmware_tool-add_imus_step-show_more = Pokaż więcej
|
||||
firmware_tool-add_imus_step-add_more = Dodaj więcej IMU
|
||||
firmware_tool-select_firmware_step = Wybierz wersję oprogramowania sprzętowego
|
||||
firmware_tool-select_firmware_step-description = Wybierz wersję oprogramowania, której chcesz używać
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Pokaż oprogramowanie sprzętowe innych firm
|
||||
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 =
|
||||
.label = OTA
|
||||
.description = Użyj metody bezprzewodowej. Twój tracker użyje Wi-Fi do aktualizacji oprogramowania sprzętowego. Działa tylko na już skonfigurowanych trackerach.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Aby zaktualizować tracker, użyj kabla USB.
|
||||
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 = 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 = Włącz tracker zwierając okrągłą podkładkę FLASH na górze płytki i metalową osłonę mikrokontrolera
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = Włącz tracker, naciskając przycisk FLASH na górze płytki
|
||||
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-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-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
|
||||
firmware_tool-flash_method_serial-no_devices = Nie wykryto kompatybilnych urządzeń szeregowych. Upewnij się, że tracker jest podłączony
|
||||
firmware_tool-build_step = Building
|
||||
firmware_tool-build_step-description = Trwa tworzenie oprogramowania sprzętowego. Proszę czekać
|
||||
firmware_tool-flashing_step = Flashing
|
||||
firmware_tool-flashing_step-description = Twoje trackery migają. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie
|
||||
firmware_tool-flashing_step-flash_more = Flashuj więcej trackerów
|
||||
firmware_tool-flashing_step-exit = Wyjście
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Tworzenie folderu kompilacji
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Pobieranie oprogramowania sprzętowego
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Wyodrębnianie oprogramowania sprzętowego
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Konfigurowanie definicji
|
||||
firmware_tool-build-BUILDING = Budowa oprogramowania sprzętowego
|
||||
firmware_tool-build-SAVING = Zapisywanie kompilacji
|
||||
firmware_tool-build-DONE = Budowa ukończona
|
||||
firmware_tool-build-ERROR = Nie można zbudować oprogramowania sprzętowego
|
||||
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Pobieranie oprogramowania sprzętowego
|
||||
firmware_update-status-AUTHENTICATING = Uwierzytelnianie za pomocą MCU
|
||||
firmware_update-status-UPLOADING = Przesyłanie oprogramowania sprzętowego
|
||||
firmware_update-status-SYNCING_WITH_MCU = Synchronizacja z MCU
|
||||
firmware_update-status-REBOOTING = Ponowne uruchomienie trackera
|
||||
firmware_update-status-PROVISIONING = Ustawianie danych uwierzytelniających Wi-Fi
|
||||
firmware_update-status-DONE = Aktualizacja zakończona!
|
||||
firmware_update-status-ERROR_DEVICE_NOT_FOUND = Nie udało się znaleźć urządzenia
|
||||
firmware_update-status-ERROR_TIMEOUT = Upłynął limit czasu procesu aktualizacji
|
||||
firmware_update-status-ERROR_DOWNLOAD_FAILED = Nie można pobrać oprogramowania sprzętowego
|
||||
firmware_update-status-ERROR_AUTHENTICATION_FAILED = Nie można uwierzytelnić za pomocą MCU
|
||||
firmware_update-status-ERROR_UPLOAD_FAILED = Nie można załadować oprogramowania sprzętowego
|
||||
firmware_update-status-ERROR_PROVISIONING_FAILED = Nie można ustawić danych uwierzytelniających Wi-Fi
|
||||
firmware_update-status-ERROR_UNSUPPORTED_METHOD = Metoda aktualizacji nie jest obsługiwana
|
||||
firmware_update-status-ERROR_UNKNOWN = Nieznany błąd
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
firmware_update-title = Aktualizacja oprogramowania
|
||||
firmware_update-devices = Dostępne urządzenia
|
||||
firmware_update-devices-description = Wybierz trackery, które chcesz zaktualizować do najnowszej wersji oprogramowania SlimeVR
|
||||
firmware_update-no_devices = Upewnij się, że trackery, które chcesz zaktualizować, są włączone i połączone z Wi-Fi!
|
||||
firmware_update-changelog-title = Aktualizuję do wersji { $version }
|
||||
firmware_update-looking_for_devices = Szukasz urządzeń do aktualizacji...
|
||||
firmware_update-retry = Spróbować ponownie
|
||||
firmware_update-update = Zaktualizuj wybrane moduły śledzące
|
||||
firmware_update-exit = Wyjście
|
||||
|
||||
## Tray Menu
|
||||
|
||||
tray_menu-show = Pokaż
|
||||
@@ -1045,3 +1494,50 @@ unknown_device-modal-description =
|
||||
Czy chcesz podłączyć go do SlimeVR?
|
||||
unknown_device-modal-confirm = Jasne!
|
||||
unknown_device-modal-forget = Ignoruj
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = Ostrzeżenia dotyczące konfiguracji VRChat
|
||||
vrc_config-page-desc = Ta strona pokazuje stan ustawień VRChat i pokazuje, jakie ustawienia są niekompatybilne ze SlimeVR. Zdecydowanie zaleca się naprawienie wszelkich pojawiających się tutaj ostrzeżeń, aby zapewnić najlepsze wrażenia użytkownika z SlimeVR.
|
||||
vrc_config-page-help = Nie możesz znaleźć ustawień?
|
||||
vrc_config-page-help-desc = Zapoznaj się <a>z naszą dokumentacją na ten temat!</a>
|
||||
vrc_config-page-big_menu = Śledzenie i IK (duże menu)
|
||||
vrc_config-page-big_menu-desc = Ustawienia związane z kinematyką odwrotną w dużym menu ustawień
|
||||
vrc_config-page-wrist_menu = Śledzenie i IK (menu na nadgarstku)
|
||||
vrc_config-page-wrist_menu-desc = Ustawienia związane z kinematyką odwrotną w małym menu ustawień (menu na nadgarstku)
|
||||
vrc_config-on = Na
|
||||
vrc_config-off = Od
|
||||
vrc_config-invalid = Źle skonfigurowałeś ustawienia VRChat!
|
||||
vrc_config-show_more = Pokaż więcej
|
||||
vrc_config-setting_name = Nazwa ustawienia VRChat
|
||||
vrc_config-recommended_value = Zalecana wartość
|
||||
vrc_config-current_value = Bieżąca wartość
|
||||
vrc_config-legacy_mode = Korzystanie ze starszego rozwiązywania kinematyki odwrotnej
|
||||
vrc_config-disable_shoulder_tracking = Wyłącz śledzenie ramienia
|
||||
vrc_config-shoulder_width_compensation = Kompensacja szerokości barku
|
||||
vrc_config-spine_mode = Tryb FBT Spine
|
||||
vrc_config-tracker_model = Model śledzenia FBT
|
||||
vrc_config-avatar_measurement_type = Pomiar awatara
|
||||
vrc_config-calibration_range = Zakres kalibracji
|
||||
vrc_config-calibration_visuals = Wyświetlanie wizualizacji kalibracji
|
||||
vrc_config-user_height = Rzeczywista wysokość użytkownika
|
||||
vrc_config-spine_mode-UNKNOWN = Nieznany
|
||||
vrc_config-spine_mode-LOCK_BOTH = Zablokuj oba
|
||||
vrc_config-spine_mode-LOCK_HEAD = Zablokuj głowicę
|
||||
vrc_config-spine_mode-LOCK_HIP = Zablokuj biodro
|
||||
vrc_config-tracker_model-UNKNOWN = Nieznany
|
||||
vrc_config-tracker_model-AXIS = Oś
|
||||
vrc_config-tracker_model-BOX = Pudełko
|
||||
vrc_config-tracker_model-SPHERE = Sfera
|
||||
vrc_config-tracker_model-SYSTEM = System
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = Nieznany
|
||||
vrc_config-avatar_measurement_type-HEIGHT = Wysokość
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = Rozpiętość ramion
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = Czy możemy zbierać błędy?
|
||||
error_collection_modal-description_v2 =
|
||||
{ ustawienia-interfejsu-zachowanie-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ę
|
||||
|
||||
@@ -41,7 +41,7 @@ body_part-RIGHT_UPPER_ARM = Braço superior direito
|
||||
body_part-RIGHT_LOWER_ARM = Antebraço direito
|
||||
body_part-RIGHT_HAND = Mão Direita
|
||||
body_part-RIGHT_UPPER_LEG = Coxa direita
|
||||
body_part-RIGHT_LOWER_LEG = Canela direita
|
||||
body_part-RIGHT_LOWER_LEG = Tornozelo direito
|
||||
body_part-RIGHT_FOOT = Pé direito
|
||||
body_part-UPPER_CHEST = Peito Superior
|
||||
body_part-CHEST = Peito
|
||||
@@ -52,7 +52,7 @@ body_part-LEFT_UPPER_ARM = Braço superior esquerdo
|
||||
body_part-LEFT_LOWER_ARM = Antebraço esquerdo
|
||||
body_part-LEFT_HAND = Mão esquerda
|
||||
body_part-LEFT_UPPER_LEG = Coxa esquerda
|
||||
body_part-LEFT_LOWER_LEG = Canela esquerda
|
||||
body_part-LEFT_LOWER_LEG = Tornozelo esquerdo
|
||||
body_part-LEFT_FOOT = Pé esquerdo
|
||||
body_part-LEFT_THUMB_METACARPAL = Metacarpo do polegar esquerdo
|
||||
body_part-LEFT_THUMB_PROXIMAL = Proximal do polegar esquerdo
|
||||
@@ -282,6 +282,7 @@ tracker-settings-forget = Esquecer o tracker
|
||||
tracker-settings-forget-description = Remove o tracker do servidor SlimeVR e impede que ele se conecte a ele até que o servidor seja reiniciado. A configuração do tracker não será perdida.
|
||||
tracker-settings-forget-label = Esquecer o tracker
|
||||
tracker-settings-update-unavailable = Não pode ser atualizado (DIY)
|
||||
tracker-settings-update-low-battery = Não é possível atualizar. Bateria abaixo de 50%
|
||||
tracker-settings-update-up_to_date = Atualizado
|
||||
tracker-settings-update-available = { $versionName } está disponível
|
||||
tracker-settings-update = Atualizar agora
|
||||
@@ -363,6 +364,7 @@ settings-sidebar-appearance = Aparência
|
||||
settings-sidebar-notifications = Notificações
|
||||
settings-sidebar-behavior = Comportamento
|
||||
settings-sidebar-firmware-tool = Ferramenta de firmware DIY
|
||||
settings-sidebar-vrc_warnings = Alerta nas Configurações do VRChat
|
||||
settings-sidebar-advanced = Avançado
|
||||
|
||||
## SteamVR settings
|
||||
@@ -444,6 +446,8 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Usa o magnetômetro em todos os trackers com firmware compatível, reduzindo o drift em ambientes magneticamente estáveis.
|
||||
Essa opção pode ser desativada indivualmente nas configurações de cada tracker. <b>Não desligue nenhum dos trackers enquanto altera esta opção!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Usar o magnetômetro nos trackers
|
||||
settings-stay_aligned-general-label = Geral
|
||||
settings-stay_aligned-relaxed_poses-close = Fechar
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -540,6 +544,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = Aumen
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = Aparência
|
||||
settings-general-interface-dev_mode = Modo de desenvolvedor
|
||||
settings-general-interface-dev_mode-description = Este modo pode ser útil se precisar de dados específicos ou para interagir com trackers conectados a um nível mais avançado
|
||||
settings-general-interface-dev_mode-label = Modo de desenvolvedor
|
||||
settings-general-interface-theme = Cor do tema
|
||||
settings-general-interface-show-navbar-onboarding = Mostrar "{ navbar-onboarding }" na barra de navegação
|
||||
settings-general-interface-show-navbar-onboarding-description = Isso muda se o botão "{ navbar-onboarding }" for exibido na barra de navegação.
|
||||
@@ -945,18 +952,18 @@ onboarding-assign_trackers-warning-RIGHT_FOOT =
|
||||
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
|
||||
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
|
||||
{ $unassigned ->
|
||||
[0] Canela esquerda está atribuída, porém a coxa esquerda e peito, quadril ou cintura também precisam ser atribuídos!
|
||||
[1] Canela esquerda está atribuída, porém peito, quadril ou cintura também precisam ser atribuídos!
|
||||
[2] Canela esquerda está atribuída, porém a coxa direita também precisa ser atribuída!
|
||||
*[unknown] Canela esquerda está atribuída, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
|
||||
[2] Tornozelo esquerdo está atribuído, porém a coxa direita também precisa ser atribuída!
|
||||
[1] Tornozelo esquerdo está atribuído, porém peito, quadril ou cintura também precisam ser atribuídos!
|
||||
[0] Tornozelo esquerdo está atribuído, porém a coxa esquerda e peito, quadril ou cintura também precisam ser atribuídos!
|
||||
*[unknown] Tornozelo esquerdo está atribuído, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
|
||||
}
|
||||
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
|
||||
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
|
||||
{ $unassigned ->
|
||||
[0] Canela direita está atribuída, porém a coxa direita e peito, quadril ou cintura também precisam ser atribuídos!
|
||||
[1] Canela direita está atribuída, porém peito, quadril ou cintura também precisam ser atribuídos!
|
||||
[2] Canela direita está atribuída, porém a coxa direita também precisa ser atribuída!
|
||||
*[unknown] Canela direita está atribuída, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
|
||||
[2] Tornozelo direito está atribuído, porém a coxa direita também precisa ser atribuída!
|
||||
[1] Tornozelo direito está atribuído, porém peito, quadril ou cintura também precisam ser atribuídos!
|
||||
[0] Tornozelo direito está atribuído, porém a coxa direita e peito, quadril ou cintura também precisam ser atribuídos!
|
||||
*[unknown] Tornozelo direito está atribuído, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
|
||||
}
|
||||
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
|
||||
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
|
||||
@@ -1027,8 +1034,6 @@ onboarding-automatic_mounting-mounting_reset-title = Reset de Posição
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Agache-se em uma pose de "esqui" com as pernas dobradas, a parte superior do corpo inclinada para a frente e os braços dobrados.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Pressione o botão "Resetar Posição" e aguarde 3 segundos antes que as rotações de posição dos trackers sejam redefinidas.
|
||||
onboarding-automatic_mounting-preparation-title = Preparação
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Fique de pé com os braços ao lado do corpo.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Pressione o botão "Reset" e aguarde 3 segundos antes que os trackers sejam reiniciados.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Coloque seus trackers
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar as rotações de posicionamento, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver qual é qual na figura na direita.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Coloquei todos os meus trackers
|
||||
@@ -1037,15 +1042,10 @@ onboarding-automatic_mounting-put_trackers_on-next = Coloquei todos os meus trac
|
||||
|
||||
onboarding-manual_proportions-back = Voltar para o tutorial de reset
|
||||
onboarding-manual_proportions-title = Proporções de corpo manuais
|
||||
onboarding-manual_proportions-precision = Ajuste de precisão
|
||||
onboarding-manual_proportions-auto = Calibragem Automática
|
||||
onboarding-manual_proportions-ratio = Ajustar por grupos de proporções
|
||||
onboarding-manual_proportions-fine_tuning_button = Melhorar automaticamente as proporções
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Por favor, conecte seu headset VR para utilizar a melhoria automatica
|
||||
onboarding-manual_proportions-export = Exportar proporções
|
||||
onboarding-manual_proportions-import = Importar proporções
|
||||
onboarding-manual_proportions-import-success = Importado
|
||||
onboarding-manual_proportions-import-failed = Falhou
|
||||
onboarding-manual_proportions-file_type = Arquivo de proporções do corpo
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
@@ -1151,6 +1151,10 @@ onboarding-scaled_proportions-reset_proportion-description = Para definir as pro
|
||||
onboarding-scaled_proportions-done-title = Proporções do corpo definidas
|
||||
onboarding-scaled_proportions-done-description = As proporções do seu corpo agora devem ser configuradas com base em sua altura.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-put_trackers_on-next = Todos meus trackers estão ligados
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Nenhum tracker detectado ou atribuído
|
||||
@@ -1270,7 +1274,6 @@ firmware_tool-build_step = Compilando
|
||||
firmware_tool-build_step-description = O firmware está sendo compilado, aguarde
|
||||
firmware_tool-flashing_step = Atualizando
|
||||
firmware_tool-flashing_step-description = Seus trackers estão atualizando, por favor, siga as instruções na tela
|
||||
firmware_tool-flashing_step-warning = Não desconecte nem reinicie o tracker durante o processo de upload, a menos que seja solicitado, pois isso pode tornar sua placa inutilizável
|
||||
firmware_tool-flashing_step-flash_more = Atualizar mais trackers
|
||||
firmware_tool-flashing_step-exit = Sair
|
||||
|
||||
@@ -1288,7 +1291,6 @@ firmware_tool-build-ERROR = Não foi possível compilar o firmware
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = Baixando o firmware
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = Favor reiniciar o tracker
|
||||
firmware_update-status-AUTHENTICATING = Autenticando com o mcu
|
||||
firmware_update-status-UPLOADING = Fazendo upload do firmware
|
||||
firmware_update-status-SYNCING_WITH_MCU = Sincronizando com o mcu
|
||||
|
||||
1260
gui/public/i18n/sv-SE/translation.ftl
Normal file
@@ -23,6 +23,8 @@ tips-find_tracker = Не знаєте який трекер вибирати? П
|
||||
tips-do_not_move_heels = Переконайтеся, що не рухаєте п'ятами під час запису!
|
||||
tips-file_select = Перетягніть файли для використання або <u>знайдіть</u>.
|
||||
tips-tap_setup = Ви можете повільно постукати 2 рази по трекеру, щоб вибрати його, замість того, щоб вибирати його з меню.
|
||||
tips-turn_on_tracker = Використовуєте офіційні трекери SlimeVR? Не забудьте <b><em>увімкнути трекер</em></b> після підключення до ПК!
|
||||
tips-failed_webgl = Не вдалося ініціалізувати WebGL.
|
||||
|
||||
## Body parts
|
||||
|
||||
@@ -48,6 +50,9 @@ body_part-LEFT_UPPER_LEG = Ліве стегно
|
||||
body_part-LEFT_LOWER_LEG = Ліва щиколотка
|
||||
body_part-LEFT_FOOT = Ліва нога
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Нічого
|
||||
@@ -80,7 +85,7 @@ skeleton_bone-ELBOW_OFFSET = Зміщення ліктя
|
||||
|
||||
reset-reset_all = Скинути всі пропорції
|
||||
reset-full = Повне скидання
|
||||
reset-mounting = Скинути закріплення
|
||||
reset-mounting = Скинути положення
|
||||
reset-yaw = Скинути нахил
|
||||
|
||||
## Serial detection stuff
|
||||
@@ -98,7 +103,7 @@ serial_detection-close = Закрити
|
||||
navbar-home = Домашня сторінка
|
||||
navbar-body_proportions = Пропорції тіла
|
||||
navbar-trackers_assign = Призначення трекера
|
||||
navbar-mounting = Калібрування закріплення
|
||||
navbar-mounting = Калібрування положення
|
||||
navbar-onboarding = Майстер налаштування
|
||||
navbar-settings = Параметри
|
||||
|
||||
@@ -122,6 +127,10 @@ widget-overlay-is_mirrored_label = Відображення накладання
|
||||
|
||||
widget-drift_compensation-clear = Очистити компенсацію дрейфу
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
widget-clear_mounting = Очистити скидання положення
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = Режим розробника
|
||||
@@ -138,7 +147,11 @@ widget-developer_mode-more_info = Детальніше
|
||||
widget-imu_visualizer = Обертання
|
||||
widget-imu_visualizer-rotation_raw = Необроблене
|
||||
widget-imu_visualizer-rotation_preview = Попередній перегляд
|
||||
widget-imu_visualizer-rotation_hide = Приховати
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
widget-skeleton_visualizer-preview = Перегляд скелета
|
||||
widget-skeleton_visualizer-hide = Сховати
|
||||
|
||||
## Tracker status
|
||||
|
||||
@@ -148,6 +161,7 @@ tracker-status-error = Помилка
|
||||
tracker-status-disconnected = Відключено
|
||||
tracker-status-occluded = Закрито
|
||||
tracker-status-ok = OK
|
||||
tracker-status-timed_out = Минув час очікування
|
||||
|
||||
## Tracker status columns
|
||||
|
||||
@@ -165,9 +179,15 @@ tracker-table-column-url = URL
|
||||
## Tracker rotation
|
||||
|
||||
tracker-rotation-front = Спереду
|
||||
tracker-rotation-front_left = Ліва сторона передньої частини
|
||||
tracker-rotation-front_right = Права сторона передньої частини
|
||||
tracker-rotation-left = Зліва
|
||||
tracker-rotation-right = Справа
|
||||
tracker-rotation-back = Ззаду
|
||||
tracker-rotation-back_left = Ліва сторона задньої частини
|
||||
tracker-rotation-back_right = Права сторона задньої частини
|
||||
tracker-rotation-custom = Персональне
|
||||
tracker-rotation-overriden = (замінено скиданням положення)
|
||||
|
||||
## Tracker information
|
||||
|
||||
@@ -180,6 +200,7 @@ tracker-infos-hardware_rev = Ревізія обладнання
|
||||
tracker-infos-hardware_identifier = Ідентифікатор обладнання
|
||||
tracker-infos-imu = IMU Сенсор
|
||||
tracker-infos-board_type = Основна плата
|
||||
tracker-infos-network_version = Версія протоколу
|
||||
|
||||
## Tracker settings
|
||||
|
||||
@@ -188,9 +209,9 @@ tracker-settings-title = Налаштування трекеру
|
||||
tracker-settings-assignment_section = Призначення
|
||||
tracker-settings-assignment_section-description = До якої частини тіла призначенний трекер.
|
||||
tracker-settings-assignment_section-edit = Редагування призначення
|
||||
tracker-settings-mounting_section = Позиція закріпу
|
||||
tracker-settings-mounting_section = Позиція трекера
|
||||
tracker-settings-mounting_section-description = Де закріплено трекер?
|
||||
tracker-settings-mounting_section-edit = Редагувати закріплення
|
||||
tracker-settings-mounting_section-edit = Змінити місце розташування
|
||||
tracker-settings-drift_compensation_section = Дозволити компенсацію дрейфу
|
||||
tracker-settings-drift_compensation_section-description = Чи повинен цей трекер компенсувати свій дрейф, коли включена компенсація дрейфу?
|
||||
tracker-settings-drift_compensation_section-edit = Дозволити компенсацію дрейфу
|
||||
@@ -199,6 +220,9 @@ tracker-settings-drift_compensation_section-edit = Дозволити компе
|
||||
tracker-settings-name_section = Ім'я трекера
|
||||
tracker-settings-name_section-description = Дайте йому миле прізвисько °^°
|
||||
tracker-settings-name_section-placeholder = Ліва нога NightyBeast
|
||||
tracker-settings-forget = Забути трекери
|
||||
tracker-settings-forget-description = Прибирає трекер із SlimeVR і забороняє йому підключатися до сервера до того, як він буде перезапущений. Конфігурацію трекера не буде втрачено.
|
||||
tracker-settings-forget-label = Забути трекери
|
||||
|
||||
## Tracker part card info
|
||||
|
||||
@@ -257,7 +281,7 @@ tracker_selection_menu-neck_warning-cancel = Скасувати
|
||||
|
||||
## Mounting menu
|
||||
|
||||
mounting_selection_menu = Де ви хочете, щоб був цей трекер?
|
||||
mounting_selection_menu = Де ви хочете розташувати цей трекер?
|
||||
mounting_selection_menu-close = Закрити
|
||||
|
||||
## Sidebar settings
|
||||
@@ -272,6 +296,8 @@ settings-sidebar-osc_router = OSC роутер
|
||||
settings-sidebar-osc_trackers = VRChat OSC трекери
|
||||
settings-sidebar-utils = Утиліти
|
||||
settings-sidebar-serial = Послідовна консоль
|
||||
settings-sidebar-appearance = Зовнішність
|
||||
settings-sidebar-notifications = Сповіщення
|
||||
|
||||
## SteamVR settings
|
||||
|
||||
@@ -286,10 +312,22 @@ settings-general-steamvr-description =
|
||||
Корисно для ігор або програм, які підтримують лише певні трекери.
|
||||
settings-general-steamvr-trackers-waist = Талія
|
||||
settings-general-steamvr-trackers-chest = Груди
|
||||
settings-general-steamvr-trackers-feet = Ступні
|
||||
settings-general-steamvr-trackers-knees = Коліна
|
||||
settings-general-steamvr-trackers-elbows = Лікті
|
||||
settings-general-steamvr-trackers-hands = Руки
|
||||
settings-general-steamvr-trackers-left_foot = Ліва ступня
|
||||
settings-general-steamvr-trackers-right_foot = Права ступня
|
||||
settings-general-steamvr-trackers-left_knee = Ліве коліно
|
||||
settings-general-steamvr-trackers-right_knee = Праве коліно
|
||||
settings-general-steamvr-trackers-left_elbow = Лівий лікоть
|
||||
settings-general-steamvr-trackers-right_elbow = Правий лікоть
|
||||
settings-general-steamvr-trackers-left_hand = Ліва рука
|
||||
settings-general-steamvr-trackers-right_hand = Права рука
|
||||
settings-general-steamvr-trackers-tracker_toggling = Автоматичне призначення трекерів
|
||||
settings-general-steamvr-trackers-tracker_toggling-description = Автоматично займається увімкненням та вимкненням трекерів SlimeVR залежно від поточних призначень ваших трекерів
|
||||
settings-general-steamvr-trackers-tracker_toggling-label = Автоматичне призначення трекерів
|
||||
settings-general-steamvr-trackers-hands-warning =
|
||||
<b>Увага:</b> трекери рук перевизначать ваші контролери.
|
||||
Ви впевнені?
|
||||
settings-general-steamvr-trackers-hands-warning-cancel = Скасувати
|
||||
settings-general-steamvr-trackers-hands-warning-done = Так
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -307,6 +345,7 @@ settings-general-tracker_mechanics-filtering-type-smoothing-description = Згл
|
||||
settings-general-tracker_mechanics-filtering-type-prediction = Передбачення
|
||||
settings-general-tracker_mechanics-filtering-type-prediction-description = Зменшує затримку і робить рухи більш швидкими, але може посилити тремтіння.
|
||||
settings-general-tracker_mechanics-filtering-amount = Кількість
|
||||
settings-general-tracker_mechanics-yaw-reset-smooth-time = Час згладжування скидання рискання (0 сек. відключає згладжування)
|
||||
settings-general-tracker_mechanics-drift_compensation = Компенсація дрейфу
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-description =
|
||||
@@ -315,6 +354,11 @@ settings-general-tracker_mechanics-drift_compensation-description =
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Компенсація дрейфу
|
||||
settings-general-tracker_mechanics-drift_compensation-amount-label = Сума компенсації
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Використання до x останніх скидань
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Зберегти автоматичне калібрування положення трекерів
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Зберігає калібрування положення трекерів на тілі між перезавантаженнями. Корисний
|
||||
при носінні костюма, в якому трекери не переміщаються між сесіями. <b>Не рекомендується для звичайних користувачів!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Зберегти калібрування положення
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -336,23 +380,45 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Прив'язк
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Корекція пальців ноги намагається вгадати обертання ваших ступень, якщо трекери для них не використовуються
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Корекція ступні повертає ваші ступні так, щоб вони були паралельні землі при контакті
|
||||
settings-general-fk_settings-leg_fk = Трекінг ноги
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Активуйте скидання положення стопи, піднявшись навшпиньки.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Скинути положення стопи
|
||||
settings-general-fk_settings-arm_fk = Трекінг руки
|
||||
settings-general-fk_settings-arm_fk-description = Намагатися відстежувати руки за допомогою шолома, навіть якщо є інформація о позиції руки
|
||||
settings-general-fk_settings-arm_fk-force_arms = Відстеження рук з шолома
|
||||
settings-general-fk_settings-skeleton_settings = Налаштування скелета
|
||||
settings-general-fk_settings-reset_settings = Скинути налаштування
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch-description = Скидає тангаж шолому (вертикальне обертання). Корисно, якщо носити шолом на лобі для вітюбінга або мокап. Не вмикати для VR.
|
||||
settings-general-fk_settings-reset_settings-reset_hmd_pitch = Скинути тангаж шолому
|
||||
settings-general-fk_settings-arm_fk-reset_mode-description = Змініть позу руки, яка очікується для скидання налаштувань положення.
|
||||
settings-general-fk_settings-arm_fk-back = Назад
|
||||
settings-general-fk_settings-arm_fk-back-description = Стандартний режим: плечі ззаду, а передпліччя спереду.
|
||||
settings-general-fk_settings-arm_fk-tpose_up = Т-поза (вгору)
|
||||
settings-general-fk_settings-arm_fk-tpose_up-description = Очікується, що ваші руки будуть опущені з боків під час повного скидання, та на 90 градусів у сторони під час скидання положення.
|
||||
settings-general-fk_settings-arm_fk-tpose_down = Т-поза (вниз)
|
||||
settings-general-fk_settings-arm_fk-tpose_down-description = Очікується, що ваші руки будуть піднятими в сторони на 90 градусів під час повного скидання, та опущені з боків під час скидання положення.
|
||||
settings-general-fk_settings-arm_fk-forward = Вперед
|
||||
settings-general-fk_settings-arm_fk-forward-description = Очікується, що ваші руки будуть підняті вперед на 90 градусів. Корисно для вітюбінга.
|
||||
settings-general-fk_settings-skeleton_settings-toggles = Перемикачі скелета
|
||||
settings-general-fk_settings-skeleton_settings-description = Увімкніть або вимкніть налаштування скелета. Рекомендується залишити їх увімкненими.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine = Подовжений хребет
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Розширений таз
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Подовжене коліно
|
||||
settings-general-fk_settings-vive_emulation-title = Емуляція Vive
|
||||
settings-general-fk_settings-vive_emulation-description = Емуляція проблем з трекером талії, які є у трекерів Vive. Це жарт і погіршує відстеження.
|
||||
settings-general-fk_settings-vive_emulation-label = Увімкнути емуляцію Vive
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine_model = Подовжена модель хребта
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis_model = Розширена модель тазу
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees_model = Подовжена модель коліна
|
||||
settings-general-fk_settings-skeleton_settings-ratios = Співвідношення скелета
|
||||
settings-general-fk_settings-skeleton_settings-ratios-description = Змініть параметри скелета. Можливо, вам доведеться скоригувати пропорції після їхньої зміни.
|
||||
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_hip = Розрахувати талію від грудей до стегон
|
||||
settings-general-fk_settings-skeleton_settings-impute_waist_from_chest_legs = Розрахувати талію від грудей до ніг
|
||||
settings-general-fk_settings-skeleton_settings-impute_hip_from_chest_legs = Розрахувати стегно від грудей до ніг
|
||||
settings-general-fk_settings-skeleton_settings-impute_hip_from_waist_legs = Розрахувати стегно від талії до ніг
|
||||
settings-general-fk_settings-skeleton_settings-interp_hip_legs = Інтерполяція рискання та крену стегн з ногами
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Інтерполяція рискання та крену трекерів на колінах та щиколотках
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = Інтерполяція рискання та крену колін з щиколотками
|
||||
settings-general-fk_settings-self_localization-title = Режим Мокап
|
||||
settings-general-fk_settings-self_localization-description = Режим Мокап дозволяє скелету приблизно відстежувати власне положення без використання шолому або інших трекерів. Зверніть увагу, що для цього потрібні трекери ніг і голови, і це все ще експериментальний метод.
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
settings-general-gesture_control = Управління жестами
|
||||
settings-general-gesture_control-subtitle = Скидання на основі дотику
|
||||
settings-general-gesture_control-description = Дозволяє запускати скидання, торкнувшись трекера. Трекер найвищий на вашому тулубі використовується для скидання нахилу, трекер найвищий на лівій нозі використовується для повного скидання, а трекер найвищий на правій нозі використовується для скидання закріплення. Слід зазначити, що дотики повинні відбутися протягом 0,6 секунди для реєстрації.
|
||||
settings-general-gesture_control-description = Дозволяє запускати скидання, торкнувшись трекера. Трекер найвищий на вашому тулубі використовується для скидання рискання, трекер найвищий на лівій нозі використовується для повного скидання, а трекер найвищий на правій нозі використовується для скидання положення. Слід зазначити, що для реєстрації дотики мають тривати протягом 0,3 секунди.
|
||||
# This is a unit: 3 taps, 2 taps, 1 tap
|
||||
# $amount (Number) - Amount of taps (touches to the tracker's case)
|
||||
settings-general-gesture_control-taps =
|
||||
@@ -368,16 +434,35 @@ settings-general-gesture_control-yawResetTaps = Дотики для скидан
|
||||
settings-general-gesture_control-fullResetEnabled = Увімкнути дотик для повного скидання
|
||||
settings-general-gesture_control-fullResetDelay = Затримка повного скидання
|
||||
settings-general-gesture_control-fullResetTaps = Дотики для повного скидання
|
||||
settings-general-gesture_control-mountingResetEnabled = Увімкнути дотик для скидання прив'язки
|
||||
settings-general-gesture_control-mountingResetDelay = Затримка скидання прив'язки
|
||||
settings-general-gesture_control-mountingResetTaps = Дотики для скидання прив'язки
|
||||
settings-general-gesture_control-mountingResetEnabled = Увімкнути дотик для скидання положення
|
||||
settings-general-gesture_control-mountingResetDelay = Затримка скидання положення
|
||||
settings-general-gesture_control-mountingResetTaps = Дотики для скидання положення
|
||||
# The number of trackers that can have higher acceleration before a tap is rejected
|
||||
settings-general-gesture_control-numberTrackersOverThreshold = Трекери перевищують поріг
|
||||
settings-general-gesture_control-numberTrackersOverThreshold-description = Збільште це значення, якщо не працює виявлення дотика. Не збільшуйте його вище ніж необхідно для виявлення дотика, оскільки це призведе до більшої кількості помилкових спрацьовувань.
|
||||
|
||||
## Interface settings
|
||||
## Appearance settings
|
||||
|
||||
settings-general-interface = Інтерфейс
|
||||
settings-interface-appearance = Зовнішність
|
||||
settings-general-interface-dev_mode = Режим розробника
|
||||
settings-general-interface-dev_mode-description = Цей режим може бути корисним, якщо вам потрібні поглиблені дані або для взаємодії з підключеними трекерами на більш просунутому рівні.
|
||||
settings-general-interface-dev_mode-label = Режим розробника
|
||||
settings-general-interface-theme = Варіація оформлення
|
||||
settings-general-interface-lang = Виберіть мову
|
||||
settings-general-interface-lang-description = Змініть мову за замовчуванням, яку ви хочете використовувати.
|
||||
settings-general-interface-lang-placeholder = Виберіть мову для використання
|
||||
# Keep the font name untranslated
|
||||
settings-interface-appearance-font = Шрифт GUI
|
||||
settings-interface-appearance-font-description = Це змінює шрифт, який використовується інтерфейсом.
|
||||
settings-interface-appearance-font-placeholder = Шрифт за замовчуванням
|
||||
settings-interface-appearance-font-os_font = Шрифт операційної системи
|
||||
settings-interface-appearance-font-slime_font = Шрифт за замовчуванням
|
||||
settings-interface-appearance-font_size = Базове масштабування шрифту
|
||||
settings-interface-appearance-font_size-description = Це впливає на розмір шрифту всього інтерфейсу, крім цієї панелі налаштувань.
|
||||
|
||||
## Notification settings
|
||||
|
||||
settings-interface-notifications = Повідомлення
|
||||
settings-general-interface-serial_detection = Виявлення послідовного пристрою
|
||||
settings-general-interface-serial_detection-description = Цей параметр відображатиме спливаюче вікно кожного разу, коли ви підключаєте новий послідовний пристрій, який може бути трекером. Це допомагає покращити процес налаштування трекера.
|
||||
settings-general-interface-serial_detection-label = Виявлення послідовного пристрою
|
||||
@@ -385,10 +470,21 @@ settings-general-interface-feedback_sound = Звук зворотного зв'
|
||||
settings-general-interface-feedback_sound-description = Ця опція відтворюватиме звуковий сигнал при спрацьовуванні скидання
|
||||
settings-general-interface-feedback_sound-label = Звук зворотного зв'язку
|
||||
settings-general-interface-feedback_sound-volume = Гучність звуку зворотного зв'язку
|
||||
settings-general-interface-theme = Варіація оформлення
|
||||
settings-general-interface-lang = Виберіть мову
|
||||
settings-general-interface-lang-description = Змініть мову за замовчуванням, яку ви хочете використовувати.
|
||||
settings-general-interface-lang-placeholder = Виберіть мову для використання
|
||||
settings-general-interface-connected_trackers_warning = Попередження про підключені трекери
|
||||
settings-general-interface-connected_trackers_warning-description = Ця опція відображатиме спливаюче вікно кожного разу, коли ви намагатиметеся вийти зі SlimeVR, якщо підключено один або декілька трекерів. Він нагадує вам вимкнути ваші трекери, коли ви закінчите, щоб зберегти заряд батареї.
|
||||
settings-general-interface-connected_trackers_warning-label = Попередження про підключені трекери під час виходу
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-dev_mode = Режим розробника
|
||||
settings-general-interface-dev_mode-description = Цей режим може бути корисним, якщо вам потрібні поглиблені дані або для взаємодії з підключеними трекерами на більш просунутому рівні.
|
||||
settings-general-interface-dev_mode-label = Режим розробника
|
||||
settings-general-interface-use_tray = Згорнути в системний трей
|
||||
settings-general-interface-use_tray-description = Дозволяє закрити вікно, не закриваючи сервер SlimeVR, так що ви можете продовжувати використати його, не турбуючись про інтерфейс.
|
||||
settings-general-interface-use_tray-label = Згорнути в системний трей
|
||||
settings-general-interface-discord_presence = Ділитися активністю в Discord
|
||||
settings-general-interface-discord_presence-description = Повідомляє вашому клієнту Discord, що ви використовуєте SlimeVR, а також передає кількість трекерів IMU, які ви використовуєте.
|
||||
settings-general-interface-discord_presence-label = Ділитися активністю в Discord
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -410,6 +506,9 @@ settings-serial-factory_reset-warning-cancel = Скасувати
|
||||
settings-serial-get_infos = Отримати інформацію
|
||||
settings-serial-serial_select = Вибір послідовного порту
|
||||
settings-serial-auto_dropdown_item = Автоматично
|
||||
settings-serial-get_wifi_scan = Сканувати мережу Wi-Fi
|
||||
settings-serial-file_type = Простий текст
|
||||
settings-serial-save_logs = Зберегти у файл
|
||||
|
||||
## OSC router settings
|
||||
|
||||
@@ -439,15 +538,11 @@ settings-osc-router-network-address-placeholder = IPV4-адреса
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = VRChat OSC трекери
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description =
|
||||
Змініть специфічні для VRChat налаштування для отримання даних шолому та надсилання
|
||||
даних трекерів для FBT без SteamVR (наприклад, автономний Quest).
|
||||
settings-osc-vrchat-enable = Увімкнути
|
||||
settings-osc-vrchat-enable-description = Перемикайте відправку та отримання даних.
|
||||
settings-osc-vrchat-enable-label = Увімкнути
|
||||
settings-osc-vrchat-network = Мережеві порти
|
||||
settings-osc-vrchat-network-description = Встановіть порти для прослуховування і відправки даних в VRChat.
|
||||
settings-osc-vrchat-network-description-v1 = Встановіть порти для прослуховування і відправки даних. Можна залишити без змін для VRChat.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
.label = Вхідний Порт
|
||||
.placeholder = Вхідний Порт (зазвичай: 9001)
|
||||
@@ -455,7 +550,7 @@ settings-osc-vrchat-network-port_out =
|
||||
.label = Вихідний Порт
|
||||
.placeholder = Вихідний Порт (зазвичай: 9000)
|
||||
settings-osc-vrchat-network-address = Мережева адреса
|
||||
settings-osc-vrchat-network-address-description = Виберіть, за якою адресою надсилати дані до VRChat (перевірте налаштування Wi-Fi на своєму пристрої).
|
||||
settings-osc-vrchat-network-address-description-v1 = Виберіть, за якою адресою надсилати дані. Можна залишити без змін для VRChat.
|
||||
settings-osc-vrchat-network-address-placeholder = IP-адреса VRChat
|
||||
settings-osc-vrchat-network-trackers = Трекери
|
||||
settings-osc-vrchat-network-trackers-description = Перемикання відправку конкретних трекерів через OSC.
|
||||
@@ -488,16 +583,16 @@ settings-osc-vmc-network-address-description = Виберіть, за якою
|
||||
settings-osc-vmc-network-address-placeholder = IPV4-адреса
|
||||
settings-osc-vmc-vrm = Модель VRM
|
||||
settings-osc-vmc-vrm-description = Завантажте модель VRM, щоб дозволити головний якір і забезпечити більш високу сумісність з іншими програмами
|
||||
settings-osc-vmc-vrm-model_unloaded = Модель не завантажена
|
||||
settings-osc-vmc-vrm-model_loaded =
|
||||
{ $titled ->
|
||||
[true] Модель завантажена: { $name }
|
||||
*[other] Завантажена модель без назви
|
||||
}
|
||||
settings-osc-vmc-vrm-file_select = Перетягніть модель для використання або <u>знайдіть</u>
|
||||
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 = Дзеркальний трекінг
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -530,7 +625,7 @@ onboarding-wifi_creds-password =
|
||||
|
||||
## Mounting setup
|
||||
|
||||
onboarding-reset_tutorial-back = Повернутися до розділу Калібрування прив'язки
|
||||
onboarding-reset_tutorial-back = Повернутися до калібрування положення
|
||||
onboarding-reset_tutorial = Інструкція по скиданню
|
||||
onboarding-reset_tutorial-explanation = Коли ви використовуєте свої трекери, вони можуть вийти з вирівнювання через дрейф нахилу IMU або тому, що ви могли їх фізично перемістити. Це можна виправити кількома способами.
|
||||
onboarding-reset_tutorial-skip = Пропустити крок
|
||||
@@ -541,17 +636,17 @@ onboarding-reset_tutorial-0 =
|
||||
Це змусить трекери дивитися в тому ж напрямку, що і ваш шолом.
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-1 =
|
||||
Торкніться { $taps } виділеного трекера, щоб ініціювати повне скидання.
|
||||
Торкніться { $taps } разів виділеного трекера, щоб ініціювати повне скидання.
|
||||
|
||||
Для цього потрібно стояти (i-поза). Існує затримка 3 секунди (налаштовується), перш ніж це дійсно станеться.
|
||||
Це повністю скидає положення та обертання всіх ваших трекерів. Це має вирішити більшість проблем.
|
||||
Для цього потрібно стояти (i-поза). Існує затримка 3 секунди (можна налаштувати), перш ніж воно спрацює.
|
||||
Це повністю скидає розташування всіх ваших трекерів, та має вирішити більшість проблем.
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-2 =
|
||||
Торкніться { $taps } виділеного елемента стеження, щоб активувати скидання прив'язки.
|
||||
Торкніться { $taps } разів виділеного трекеру, щоб активувати скидання положення.
|
||||
|
||||
Скидання прив'язки допомагає в тому, як трекери насправді надягнені на вас, тому, якщо ви випадково перемістили їх і змінили місце прикріплення на велику кількість, це допоможе.
|
||||
Скидання положення допомагає в тому, як трекери насправді надягнені на вас, тому, якщо ви випадково перемістили їх та змінили місце розташування, це допоможе.
|
||||
|
||||
Вам потрібно бути в позі, ніби ви катаєтеся на лижах, як показано на майстрі автоматичної прив'язки, і у вас є 3-секундна затримка (налаштовується), перш ніж вона спрацює.
|
||||
Вам потрібно бути в позі, ніби ви катаєтеся на лижах, як показано на майстрі автоматичної прив'язки положення. У вас є затримка у 3 секунди (можна налаштувати), перш ніж спрацює скидання.
|
||||
|
||||
## Setup start
|
||||
|
||||
@@ -575,8 +670,8 @@ onboarding-done-close = Закрити налаштування
|
||||
|
||||
onboarding-connect_tracker-back = Повернутися до даних Wi-Fi
|
||||
onboarding-connect_tracker-title = Підключіть трекери
|
||||
onboarding-connect_tracker-description-p0 = Тепер перейдемо до найцікавішого, з'єднання усіх трекерів!
|
||||
onboarding-connect_tracker-description-p1 = Просто підключіть все, що ще не підключено, через USB-порт.
|
||||
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 = Шукаємо трекери
|
||||
@@ -619,8 +714,8 @@ onboarding-assignment_tutorial = Як підготувати Slime трекер
|
||||
onboarding-assignment_tutorial-first_step = 1. Розмістіть наліпку з частиною тіла (якщо вона у вас є) на трекері відповідно до вашого вибору
|
||||
# This text has a character limit of around 11 characters, so please keep it short
|
||||
onboarding-assignment_tutorial-sticker = Наліпка
|
||||
onboarding-assignment_tutorial-second_step = 2. Прикріпіть ремінь до трекера, зберігаючи гачок і петльову сторону лицьової сторони ремінця в такій орієнтації:
|
||||
onboarding-assignment_tutorial-second_step-continuation = Гачок і петльова сторона для подовжувача повинні бути в такій орієнтації:
|
||||
onboarding-assignment_tutorial-second_step-v2 = 2. Прикріпіть ремінець до трекера, тримаючи липучку в тому ж напрямку, що й лицьова сторона вашого трекера:
|
||||
onboarding-assignment_tutorial-second_step-continuation-v2 = Сторона з липучкою додаткового модуля повинна дивитися вгору, як на зображенні нижче:
|
||||
onboarding-assignment_tutorial-done = Я наклеїв наліпки і закріпив ремінці!
|
||||
|
||||
## Tracker assignment setup
|
||||
@@ -640,6 +735,7 @@ onboarding-assign_trackers-assigned =
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Відобразити розширені розташування призначень
|
||||
onboarding-assign_trackers-next = Я призначив усі трекери
|
||||
onboarding-assign_trackers-mirror_view = Дзеркальний вигляд
|
||||
|
||||
## Tracker assignment warnings
|
||||
|
||||
@@ -659,23 +755,26 @@ onboarding-assign_trackers-warning-LEFT_FOOT =
|
||||
|
||||
## Tracker mounting method choose
|
||||
|
||||
onboarding-choose_mounting = Який метод калібрування закріплення використовувати?
|
||||
onboarding-choose_mounting = Який спосіб калібрування положення використовувати?
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-description = Орієнтація кріплення коригується для розміщення трекерів на вашому тілі.
|
||||
onboarding-choose_mounting-auto_mounting = Автоматична прив'язка
|
||||
# Italized text
|
||||
onboarding-choose_mounting-auto_mounting-label = Експериментальний
|
||||
onboarding-choose_mounting-auto_mounting-description = Це автоматично визначить напрямки прив'язки для всіх ваших трекерів з 2 поз
|
||||
onboarding-choose_mounting-manual_mounting = Ручна прив'язка
|
||||
# Italized text
|
||||
onboarding-choose_mounting-manual_mounting-label = Рекомендується
|
||||
onboarding-choose_mounting-manual_mounting-description = Це дозволить вибрати напрямок прив'язки вручну для кожного трекера
|
||||
onboarding-choose_mounting-auto_mounting = Автоматична прив'язка положення
|
||||
onboarding-choose_mounting-auto_mounting-description = Це автоматично визначить орієнтацію всіх ваших трекерів з 2 поз
|
||||
onboarding-choose_mounting-manual_mounting = Самостійна прив'язка
|
||||
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-cancel = Скасувати
|
||||
|
||||
## Tracker manual mounting setup
|
||||
|
||||
onboarding-manual_mounting-back = Повернутися до VR
|
||||
onboarding-manual_mounting = Ручне закріплення
|
||||
onboarding-manual_mounting-description = Натисніть на кожен трекер і виберіть, в який бік вони прив'язані
|
||||
onboarding-manual_mounting = Самостійна прив'язка
|
||||
onboarding-manual_mounting-description = Натисніть на кожен трекер і виберіть, як вони розташовані
|
||||
onboarding-manual_mounting-auto_mounting = Автоматична прив'язка
|
||||
onboarding-manual_mounting-next = Наступний крок
|
||||
|
||||
@@ -686,10 +785,7 @@ onboarding-automatic_mounting-next = Наступний крок
|
||||
onboarding-automatic_mounting-prev_step = Попередній крок
|
||||
onboarding-automatic_mounting-done-restart = Спробуйте знову
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
@@ -711,8 +807,57 @@ onboarding-automatic_proportions-recording-timer =
|
||||
onboarding-automatic_proportions-verify_results-title = Перевірити результати
|
||||
onboarding-automatic_proportions-verify_results-processing = Обробка результату
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
|
||||
## Status system
|
||||
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
## First exit modal
|
||||
|
||||
tray_or_exit_modal-radio-exit = Вийти після закриття
|
||||
tray_or_exit_modal-radio-tray = Згорнути в системний трей
|
||||
tray_or_exit_modal-submit = Зберегти
|
||||
tray_or_exit_modal-cancel = Скасувати
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
unknown_device-modal-title = Знайдено новий трекер!
|
||||
unknown_device-modal-description =
|
||||
З'явився новий трекер із MAC-адресою <b>{ $deviceId }</b>.
|
||||
Бажаєте підключити його до SlimeVR?
|
||||
unknown_device-modal-confirm = Звісно!
|
||||
unknown_device-modal-forget = Ігнорувати
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
|
||||
websocket-connecting = 正在连接到服务器
|
||||
websocket-connection_lost = 与服务器的连接丢失,正在尝试重新连接...
|
||||
websocket-connection_lost-desc = 看起来 SlimeVR 服务器崩溃了。检查日志并重新启动程序
|
||||
websocket-timedout = 无法连接到服务器
|
||||
websocket-timedout-desc = 看起来 SlimeVR 服务器崩溃或超时了。检查日志并重新启动程序
|
||||
websocket-error-close = 退出 SlimeVR
|
||||
websocket-error-logs = 打开日志文件夹
|
||||
|
||||
## Update notification
|
||||
|
||||
@@ -92,47 +97,139 @@ board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ES32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
board_type-OWOTRACK = owoTrack
|
||||
board_type-WRANGLER = Wrangler Joycons
|
||||
board_type-MOCOPI = 索尼 Mocopi
|
||||
board_type-WEMOSWROOM02 = Wemos Wroom-02 D1 Mini
|
||||
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开发版IMU手套
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = 无
|
||||
skeleton_bone-HEAD = 头部偏移
|
||||
skeleton_bone-HEAD-desc =
|
||||
从头戴显示器到头部中心的距离。
|
||||
调节时,左右摇头并修改此参数,使头部移动时其他追踪器位置保持不变。
|
||||
skeleton_bone-NECK = 颈部长度
|
||||
skeleton_bone-NECK-desc =
|
||||
从头部中心到脖子根部的距离。
|
||||
调节时,上下点头或左右倾斜头部,并修改此参数,
|
||||
使头部移动时其他追踪器位置保持不变。
|
||||
skeleton_bone-torso_group = 躯干长度
|
||||
skeleton_bone-torso_group-desc =
|
||||
从脖子根部到臀部的距离。
|
||||
调节时,直立并修改此参数,使虚拟臀部与真实的臀部对齐。
|
||||
skeleton_bone-UPPER_CHEST = 上胸长度
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
从脖子根部到胸部中部的距离。
|
||||
调节时,先完成躯干长度的设置,再修改此参数,
|
||||
并进行包括坐下、弯腰、平躺等动作,使虚拟脊椎与真实的脊椎对齐。
|
||||
skeleton_bone-CHEST_OFFSET = 胸部偏移
|
||||
skeleton_bone-CHEST_OFFSET-desc = 向上或向下移动臀部胸部追踪器,用于在某些游戏或应用中移动胸部追踪器位置。
|
||||
skeleton_bone-CHEST = 胸部长度
|
||||
skeleton_bone-CHEST-desc =
|
||||
从胸部中部到脊椎中部的距离。
|
||||
调节时,先完成躯干长度的设置,再修改此参数,
|
||||
并进行包括坐下、弯腰、平躺等动作,使虚拟脊椎与真实的脊椎对齐。
|
||||
skeleton_bone-WAIST = 腰部长度
|
||||
skeleton_bone-WAIST-desc =
|
||||
从脊椎中部到肚脐的距离。
|
||||
调节时,先完成躯干长度的设置,再修改此参数,
|
||||
并进行包括坐下、弯腰、平躺等动作,使虚拟脊椎与真实的脊椎对齐。
|
||||
skeleton_bone-HIP = 髋部长度
|
||||
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 =
|
||||
从臀部到脚踝的距离。
|
||||
调节时,先完成躯干长度的设置,再修改此参数,
|
||||
使虚拟脚部与真实的脚部位置对齐。
|
||||
skeleton_bone-UPPER_LEG = 大腿长度
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
从臀部到膝盖的距离。
|
||||
调节时,先完成腿部长度的设置,再修改此参数,
|
||||
使虚拟膝盖与真实的膝盖位置对齐。
|
||||
skeleton_bone-LOWER_LEG = 小腿长度
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
从膝盖到脚踝的距离。
|
||||
调节时,先完成腿部长度的设置,再修改此参数,
|
||||
使虚拟膝盖与真实的膝盖位置对齐。
|
||||
skeleton_bone-FOOT_LENGTH = 脚部长度
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
从脚踝到脚趾的距离。
|
||||
调节时,踮起脚尖并修改此参数,
|
||||
使虚拟脚部位置与真实脚部位置对齐。
|
||||
skeleton_bone-FOOT_SHIFT = 脚部偏移
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
从膝盖到脚踝的水平距离。可用于修正直立式小腿向后弯曲的问题。
|
||||
调节时,先将脚部长度设置为0,进行完全复位,
|
||||
再修改此参数,使虚拟脚部对齐脚踝中心。
|
||||
skeleton_bone-SKELETON_OFFSET = 骨架偏移
|
||||
skeleton_bone-SKELETON_OFFSET-desc = 向前或向后移动所有虚拟追踪器,用于在某些游戏或应用中调节追踪器位置。
|
||||
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距离
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
从脖子中心到肩膀的垂直距离。
|
||||
调节时,先将上臂长度设置为0,再修改此参数,
|
||||
使虚拟肘部追踪器与真实的肩膀位置在垂直方向上对齐。
|
||||
skeleton_bone-SHOULDERS_WIDTH = 肩膀宽度
|
||||
skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
从脖子中心到肩膀的水平距离。
|
||||
调节时,先将上臂长度设置为0,再修改此参数,
|
||||
使虚拟肘部追踪器与真实的肩膀位置在水平方向上对齐。
|
||||
skeleton_bone-arm_group = 手臂长度
|
||||
skeleton_bone-arm_group-desc =
|
||||
从肩膀到手腕的距离。
|
||||
调整时,先完成肩膀距离的配置,将手部距离Y设置为0,
|
||||
再修改此参数,使手部追踪器与手腕对齐。
|
||||
skeleton_bone-UPPER_ARM = 上臂长度
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
从肩膀到手肘的距离。
|
||||
调整时,先完成手臂长度的设置,再修改此参数,
|
||||
使肘部追踪器与真实的手肘位置对齐。
|
||||
skeleton_bone-LOWER_ARM = 前臂距离
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
从手肘到手腕的距离。
|
||||
调整时,先完成手臂长度的设置,再修改此参数,
|
||||
使肘部追踪器与真实的手肘位置对齐。
|
||||
skeleton_bone-HAND_Y = 手部距离Y
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
从手腕到手中心的c垂直距离。
|
||||
在动捕模式下,先完成手臂长度的设置,
|
||||
再修改此参数,使手部追踪器与手的中心在垂直方向上对齐。
|
||||
在使用控制器进行肘部追踪的情况下,将手臂长度设置为0,
|
||||
再修改此参数,使肘部追踪器与手的中心在垂直方向上对齐。
|
||||
skeleton_bone-HAND_Z = 手部距离Z
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
从手腕到手中心的水平距离。
|
||||
在动捕模式下,将此数值设置为0。
|
||||
在使用控制器进行肘部追踪的情况下,将手臂长度设置为0,
|
||||
并修改此参数,使肘部追踪器与手腕在水平方向对齐。
|
||||
skeleton_bone-ELBOW_OFFSET = 肘部偏移
|
||||
skeleton_bone-ELBOW_OFFSET-desc = 向上或向下移动肘部虚拟追踪器,避免VRChat将肘部追踪器绑定到胸部。
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
reset-reset_all = 重置身体比例
|
||||
reset-reset_all_warning =
|
||||
<b>警告:</b> 这会将您的身体比例重置为仅基于身高的默认比例。
|
||||
reset-reset_all_warning-v2 =
|
||||
<b>警告:</b> 您的骨骼比例将重置为您配置的身高下的默认值。
|
||||
您确定要执行此操作吗?
|
||||
reset-reset_all_warning-reset = 重置身体比例
|
||||
reset-reset_all_warning-cancel = 取消
|
||||
reset-reset_all_warning_default =
|
||||
<b>警告:</b> 您当前没有设置身高,
|
||||
这样将使用默认身高计算身体比例。
|
||||
reset-reset_all_warning_default-v2 =
|
||||
<b>警告:</b> 您的身高尚未配置,您的骨骼比例将重置为默认身高下的默认值。
|
||||
您确定要执行此操作吗?
|
||||
reset-full = 完整重置
|
||||
reset-mounting = 重置佩戴
|
||||
@@ -201,6 +298,7 @@ widget-imu_visualizer-rotation_raw = 原始旋转
|
||||
widget-imu_visualizer-rotation_preview = 预览
|
||||
widget-imu_visualizer-acceleration = 加速度
|
||||
widget-imu_visualizer-position = 位置
|
||||
widget-imu_visualizer-stay_aligned = 持续校准
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -228,6 +326,7 @@ tracker-table-column-temperature = 温度 °C
|
||||
tracker-table-column-linear-acceleration = 加速度 X/Y/Z
|
||||
tracker-table-column-rotation = 旋转 X/Y/Z
|
||||
tracker-table-column-position = 位置 X/Y/Z
|
||||
tracker-table-column-stay_aligned = 持续校准
|
||||
tracker-table-column-url = 地址
|
||||
|
||||
## Tracker rotation
|
||||
@@ -294,6 +393,7 @@ tracker-settings-forget = 忘记追踪器
|
||||
tracker-settings-forget-description = 从 SlimeVR 服务器中移除该追踪器,并在服务器重启前不再连接这一追踪器。追踪器的配置信息不会被清除。
|
||||
tracker-settings-forget-label = 忘记追踪器
|
||||
tracker-settings-update-unavailable = 无法升级(DIY)
|
||||
tracker-settings-update-low-battery = 无法更新。当前电池电量低于 50%
|
||||
tracker-settings-update-up_to_date = 已是最新
|
||||
tracker-settings-update-available = { $versionName } 现在可用
|
||||
tracker-settings-update = 立即更新
|
||||
@@ -364,6 +464,7 @@ mounting_selection_menu-close = 关闭
|
||||
settings-sidebar-title = 设置
|
||||
settings-sidebar-general = 通用设置
|
||||
settings-sidebar-tracker_mechanics = 追踪器设置
|
||||
settings-sidebar-stay_aligned = 持续校准
|
||||
settings-sidebar-fk_settings = FK 设置
|
||||
settings-sidebar-gesture_control = 手势控制
|
||||
settings-sidebar-interface = 交互界面
|
||||
@@ -373,7 +474,9 @@ settings-sidebar-utils = 工具
|
||||
settings-sidebar-serial = 串口控制台
|
||||
settings-sidebar-appearance = 外观
|
||||
settings-sidebar-notifications = 通知
|
||||
settings-sidebar-behavior = 行为
|
||||
settings-sidebar-firmware-tool = DIY固件工具
|
||||
settings-sidebar-vrc_warnings = VRChat设置警告
|
||||
settings-sidebar-advanced = 高级选项
|
||||
|
||||
## SteamVR settings
|
||||
@@ -455,6 +558,24 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
在所有有固件支持的追踪器上启用磁力计,在磁场稳定的环境中可以减轻飘移。
|
||||
可以在个别追踪器上禁用本功能。<b>切换此选项时请勿关闭任何一个追踪器的电源!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = 在追踪器上启用磁力计
|
||||
settings-stay_aligned = 持续校准
|
||||
settings-stay_aligned-description = 持续校准会逐渐将追踪器对齐到设置的放松姿势,减少追踪器漂移的影响
|
||||
settings-stay_aligned-setup-label = 配置持续校准
|
||||
settings-stay_aligned-setup-description = 完成“配置持续校准”后才可启动持续校准。
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ 使用持续校准时请关闭漂移补偿功能,避免发生干扰
|
||||
settings-stay_aligned-enabled-label = 调整追踪器
|
||||
settings-stay_aligned-hide_yaw_correction-label = 隐藏调整效果(用于与持续校准关闭时进行比较)
|
||||
settings-stay_aligned-general-label = 通用设置
|
||||
settings-stay_aligned-relaxed_poses-label = 放松姿势
|
||||
settings-stay_aligned-relaxed_poses-description = 持续校准使用您设定的放松姿势保持追踪器校准。使用“设置持续校准”来更新放松姿势。
|
||||
settings-stay_aligned-relaxed_poses-standing = 站立放松姿势
|
||||
settings-stay_aligned-relaxed_poses-sitting = 椅子上放松姿势
|
||||
settings-stay_aligned-relaxed_poses-flat = 地面/平躺放松姿势
|
||||
settings-stay_aligned-relaxed_poses-save_pose = 保存姿势
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = 重置姿势
|
||||
settings-stay_aligned-debug-label = 调试
|
||||
settings-stay_aligned-debug-description = 在报告持续校准相关问题时,请包含您的以下设置信息
|
||||
settings-stay_aligned-debug-copy-label = 复制设置信息到剪贴板
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -514,9 +635,6 @@ settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = 平
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_ankle = 平均膝盖与小腿间航向轴和横滚轴的数值
|
||||
settings-general-fk_settings-self_localization-title = 动作捕捉模式
|
||||
settings-general-fk_settings-self_localization-description = 动作捕捉模式允许在没有头戴设备或其他追踪器的情况下粗略地跟踪骨架姿态。请注意,本功能需要脚部和头部追踪器,且现阶段依然是实验性的。
|
||||
settings-general-fk_settings-vive_emulation-title = Vive 模拟
|
||||
settings-general-fk_settings-vive_emulation-description = 模拟Vive追踪器的腰部丢追问题。( 注:这是一个玩笑功能,会劣化追踪质量。)
|
||||
settings-general-fk_settings-vive_emulation-label = 开启 Vive 模拟
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -583,6 +701,13 @@ settings-general-interface-feedback_sound-volume = 提示音音量
|
||||
settings-general-interface-connected_trackers_warning = 已连接追踪器警告
|
||||
settings-general-interface-connected_trackers_warning-description = 启用本选项后,每次当退出 SlimeVR 时仍有追踪器连接着会显示通知,提醒你在使用完毕时关闭追踪器电源来节省电池电量。
|
||||
settings-general-interface-connected_trackers_warning-label = 退出时,有追踪器连接中则显示警告
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = 行为
|
||||
settings-general-interface-dev_mode = 开发者模式
|
||||
settings-general-interface-dev_mode-description = 如果你需要深入的资料或对连接的追踪器进行进阶调整,开启此模式将会非常有用。
|
||||
settings-general-interface-dev_mode-label = 开发者模式
|
||||
settings-general-interface-use_tray = 最小化至任务栏
|
||||
settings-general-interface-use_tray-description = 关闭 SlimeVR 窗口时,SlimeVR 服务器将会隐藏至任务栏图标而不会直接退出,可以继续使用。
|
||||
settings-general-interface-use_tray-label = 最小化至任务栏
|
||||
@@ -594,6 +719,14 @@ settings-general-interface-discord_presence-message =
|
||||
[0] { "" }
|
||||
*[other] 正在使用 { $amount } 个追踪器
|
||||
}
|
||||
settings-interface-behavior-error_tracking = 通过 Sentry.io 收集错误信息
|
||||
settings-interface-behavior-error_tracking-description_v2 =
|
||||
<h1>您是否同意收集匿名的错误信息?</h1>
|
||||
|
||||
<b>我们不会收集您的个人信息</b> ,例如您的 IP 地址或 WiFi 信息。SlimeVR 重视您的隐私!
|
||||
|
||||
为了提供最佳用户体验,我们会收集匿名错误报告、性能指标和操作系统信息。这有助于我们检测 SlimeVR 的错误和问题。这些指标将通过 Sentry.io 收集。
|
||||
settings-interface-behavior-error_tracking-label = 向开发人员发送错误信息
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -656,6 +789,13 @@ settings-osc-vrchat-description-v1 =
|
||||
settings-osc-vrchat-enable = 启用
|
||||
settings-osc-vrchat-enable-description = 切换数据的发送和接收
|
||||
settings-osc-vrchat-enable-label = 启用
|
||||
settings-osc-vrchat-oscqueryEnabled = 启用 OSCQuery
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery 会自动检测正在运行的 VRChat 并向其发送数据。
|
||||
它还可以向 VRChat 通告自身,以便接收头戴显示器和控制器数据。
|
||||
要允许从 VRChat 接收头戴显示器和控制器数据,请进入主菜单的设置
|
||||
并启用“允许发送头部和手腕VR追踪OSC数据”。
|
||||
settings-osc-vrchat-oscqueryEnabled-label = 启用 OSCQuery
|
||||
settings-osc-vrchat-network = 网络端口
|
||||
settings-osc-vrchat-network-description-v1 = 设置传输OSC数据的端口。用于VRChat时无需修改。
|
||||
settings-osc-vrchat-network-port_in =
|
||||
@@ -733,9 +873,12 @@ settings-utils-advanced-reset_warning =
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = 重置设置
|
||||
settings-utils-advanced-reset_warning-cancel = 取消
|
||||
settings-utils-advanced-open_data = 数据文件夹
|
||||
settings-utils-advanced-open_data-description = 在文件管理器中打开SlimeVR的数据文件夹,查看配置文件与日志文件。
|
||||
settings-utils-advanced-open_data-v1 = 配置文件夹
|
||||
settings-utils-advanced-open_data-description-v1 = 在文件管理器中打开SlimeVR的配置文件夹,查看配置文件。
|
||||
settings-utils-advanced-open_data-label = 打开文件夹
|
||||
settings-utils-advanced-open_logs = 日志文件夹
|
||||
settings-utils-advanced-open_logs-description = 在文件管理器中打开SlimeVR的日志文件夹,查看SlimeVR的日志文件。
|
||||
settings-utils-advanced-open_logs-label = 打开文件夹
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -827,6 +970,17 @@ 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_serial-error-modal-no_serial_log = 追踪器开关是否打开?
|
||||
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线将追踪器连接到电脑并打开追踪器开关。
|
||||
若仍无法工作:
|
||||
- 尝试其他的USB线
|
||||
- 尝试其他的USB接口
|
||||
- 尝试重新安装SlimeVR服务端并在安装时勾选“USB驱动”
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -1001,53 +1155,27 @@ onboarding-automatic_mounting-mounting_reset-title = 佩戴重置
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 双腿弯曲以滑雪的姿势蹲下,上身向前倾斜,手臂弯曲。
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 按下佩戴重置按钮并等待 3 秒钟,然后追踪器的佩戴方向将被重置。
|
||||
onboarding-automatic_mounting-preparation-title = 准备
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. 身体直立,双臂放在身体两侧。
|
||||
onboarding-automatic_mounting-preparation-step-1 = 按下“复位”按钮,等待 3 秒钟,追踪器将复位。
|
||||
onboarding-automatic_mounting-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 = 所有的追踪器都已开启!
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
onboarding-choose_proportions = 使用哪种方法校准身体比例?
|
||||
# Multiline string
|
||||
onboarding-choose_proportions-description-v1 =
|
||||
身体比例记录了你身体各部分的尺寸。它们被用来计算虚拟追踪器的位置。
|
||||
如果保存的身体比例和实际身体尺寸不匹配,追踪精度将会下降,并且会出现脚在地面滑动,或是身体和虚拟形象动作不一致的情况。
|
||||
<b>身体比例设置只要进行一次!</b> 除非身体比例存在错误或是身体尺寸发生了改变,否则不需要重复进行身体比例设置。
|
||||
onboarding-choose_proportions-auto_proportions = 自动调整身体比例
|
||||
# Italicized text
|
||||
onboarding-choose_proportions-auto_proportions-subtitle = 推荐
|
||||
onboarding-choose_proportions-auto_proportions-descriptionv3 =
|
||||
这将录制你的运动样本并通过算法来推测你的身体比例。
|
||||
|
||||
<b>需要戴上头戴设备,并确保设备已连接到 SlimeVR!</b>
|
||||
onboarding-choose_proportions-manual_proportions = 手动调整身体比例
|
||||
# Italicized text
|
||||
onboarding-choose_proportions-manual_proportions-subtitle = 用于精细调整
|
||||
onboarding-choose_proportions-manual_proportions-description = 这将需要你手动修改以调整你的身体比例
|
||||
onboarding-choose_proportions-scaled_proportions = 标准身体比例
|
||||
# Italized text
|
||||
onboarding-choose_proportions-scaled_proportions-subtitle = 推荐新用户使用
|
||||
# Multiline string
|
||||
onboarding-choose_proportions-scaled_proportions-description =
|
||||
这将根据您的身高和平均人体比例设置身体比例,可以获得基本的全身跟踪效果。
|
||||
|
||||
<b>这需要将您的头戴显示器 (HMD) 连接到 SlimeVR 并戴在头上!</b>
|
||||
onboarding-choose_proportions-scaled_proportions-button = 标准身体比例
|
||||
onboarding-choose_proportions-export = 导出身体比例
|
||||
onboarding-choose_proportions-import = 导入身体比例
|
||||
onboarding-choose_proportions-import-success = 导入成功
|
||||
onboarding-choose_proportions-import-failed = 导入失败
|
||||
onboarding-choose_proportions-file_type = 身体比例文件
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = 返回重置教程
|
||||
onboarding-manual_proportions-title = 手动调整身体比例
|
||||
onboarding-manual_proportions-precision = 精确调整
|
||||
onboarding-manual_proportions-auto = 自动校准
|
||||
onboarding-manual_proportions-ratio = 按比例分组调整
|
||||
onboarding-manual_proportions-fine_tuning_button = 自动微调身体比例
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = 请连接 VR头戴显示器 以使用自动微调
|
||||
onboarding-manual_proportions-export = 导出身体比例
|
||||
onboarding-manual_proportions-import = 导入身体比例
|
||||
onboarding-manual_proportions-file_type = 身体比例文件
|
||||
onboarding-manual_proportions-normal_increment = 正常调整
|
||||
onboarding-manual_proportions-precise_increment = 精细调整
|
||||
onboarding-manual_proportions-grouped_proportions = 分组身体比例
|
||||
onboarding-manual_proportions-all_proportions = 所有身体比例
|
||||
onboarding-manual_proportions-estimated_height = 估测用户身高
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1068,10 +1196,10 @@ onboarding-automatic_proportions-requirements-descriptionv2 =
|
||||
你的头戴设备正在向 SlimeVR 服务器回报位置信息(通常需要 SteamVR 正在运行且通过 SlimeVR 的 SteamVR 驱动连接到 SlimeVR)。
|
||||
你的追踪器正常工作并能反应实际运动(进行过完整重置和佩戴重置,踢腿、弯腰、坐下等动作时虚拟骨骼向正确的方向弯曲)。
|
||||
onboarding-automatic_proportions-requirements-next = 我已阅读
|
||||
onboarding-automatic_proportions-check_height-title-v2 = 测量你的身高
|
||||
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-v2 = 在 <u>直立</u> 时开始测量以计算您的身高。小心不要将手举到高于头显,它们可能会影响测量结果!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning-v3 = 在 <u>站直</u> 时开始测量以计算您的身高。注意不要将手举过头显,不然可能会影响测量结果!
|
||||
onboarding-automatic_proportions-check_height-guardian_tip =
|
||||
如果你正在使用一体机进行串流,请确保开启并设置了安全边界,
|
||||
以获取正确的高度信息。
|
||||
@@ -1086,9 +1214,10 @@ onboarding-automatic_proportions-check_height-next_step = 数值没问题
|
||||
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 = 如果您确定您的地板高度是正确的,则可以跳过此步骤。
|
||||
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 = 估计您的身高为:
|
||||
onboarding-automatic_proportions-check_floor_height-measure-start = 开始测量
|
||||
onboarding-automatic_proportions-check_floor_height-measure-stop = 停止测量
|
||||
onboarding-automatic_proportions-check_floor_height-measure-reset = 重试测量
|
||||
@@ -1134,10 +1263,18 @@ onboarding-automatic_proportions-smol_warning-cancel = 返回
|
||||
onboarding-scaled_proportions-title = 标准身体比例
|
||||
onboarding-scaled_proportions-description = 为了让 SlimeVR 追踪器正常使用,我们需要知道你的骨头的长度。将会使用人体平均骨骼比例,并缩放至您的身高。
|
||||
onboarding-scaled_proportions-manual_height-title = 配置您的身高
|
||||
onboarding-scaled_proportions-manual_height-description = 您的头戴显示器 (HMD) 高度应略小于您的身高,因为头戴显示器会测量您眼睛的高度。此高度将用作计算您身体比例的基准。
|
||||
onboarding-scaled_proportions-manual_height-description-v2 = 此身高将用作您身体比例的基准。
|
||||
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR 当前未连接到 SlimeVR,因此不能基于您的头戴显示器进行测量。 <b>请连接后再继续操作或查看文档!</b>
|
||||
onboarding-scaled_proportions-manual_height-height = 您的头戴显示器的高度是
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = 您的身高为
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = 估计您的头显高度为:
|
||||
onboarding-scaled_proportions-manual_height-next_step = 保存并继续
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
您当前正在手动设置缩放身体比例!
|
||||
<b>建议只在您不使用头戴显示器时使用此模式</b>
|
||||
|
||||
为了能够使用自动缩放身体比例,请:
|
||||
onboarding-scaled_proportions-manual_height-warning-no_hmd = 连接 VR 头戴显示器
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = 确保您的控制器已连接并正确分配到手部
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
@@ -1146,6 +1283,40 @@ onboarding-scaled_proportions-reset_proportion-description = 为了根据您的
|
||||
onboarding-scaled_proportions-done-title = 身体比例已设置
|
||||
onboarding-scaled_proportions-done-description = 身体比例已根据您的身高进行设置。
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = 持续校准
|
||||
onboarding-stay_aligned-description = 配置持续校准以保持追踪器校准
|
||||
onboarding-stay_aligned-put_trackers_on-title = 穿戴好追踪器
|
||||
onboarding-stay_aligned-put_trackers_on-description = 为了保存放松姿势,我们将使用你刚才分配的追踪器。戴上你所有的追踪器,你可以在右边的图中看到哪个追踪器对应哪个。
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = 您当前已经连接和分配的追踪器数量少于 5 个!这是持续校准正常运行所需的最小追踪器数量。
|
||||
onboarding-stay_aligned-put_trackers_on-next = 所有的追踪器都已开启!
|
||||
onboarding-stay_aligned-verify_mounting-title = 检查追踪器佩戴
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = 持续校准需要良好的追踪器佩戴固定。否则,持续校准的效果可能会不太理想。
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. 请在站立时四处移动。
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. 请坐下并移动腿和脚
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. 如果追踪器不在正确的位置上,请重新进行这个流程。
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = 重做佩戴校准
|
||||
onboarding-stay_aligned-preparation-title = 准备
|
||||
onboarding-stay_aligned-preparation-tip = 站直并向前看,双臂放在身体两侧。
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = 站立放松姿势
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. 以舒适的姿势站立并放松。
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-2 = 3. 按下“检测姿势”按钮。
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = 椅子上放松姿势
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. 以舒适的姿势坐下并放松。
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-2 = 3. 按下“检测姿势”按钮。
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = 地面/平躺放松姿势
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. 以舒适的姿势坐或躺在地面上,保持腿在前方并放松。
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-2 = 3. 按下“检测姿势”按钮。
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = 跳过
|
||||
onboarding-stay_aligned-done-title = 持续校准已开启!
|
||||
onboarding-stay_aligned-done-description = 持续校准已设定完成!
|
||||
onboarding-stay_aligned-done-description-2 = 设置完成!如果要重新校准放松姿势,可以重新进行该过程
|
||||
onboarding-stay_aligned-previous_step = 上一步
|
||||
onboarding-stay_aligned-next_step = 下一步
|
||||
onboarding-stay_aligned-restart = 重新开始
|
||||
onboarding-stay_aligned-done = 完成
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = 未检测到或未分配追踪器
|
||||
@@ -1169,6 +1340,7 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = { $trackerName } 追踪器发生错误
|
||||
status_system-StatusUnassignedHMD = VR头显应被分配为头部追踪器。
|
||||
status_system-StatusPublicNetwork = 您当前的网络类型设置为“公开”。 这可能会导致SlimeVR功能出现异常。<PublicFixLink>点击这里查看如何进行设置。</PublicFixLink>
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
@@ -1267,7 +1439,7 @@ firmware_tool-build_step = 构建中
|
||||
firmware_tool-build_step-description = 固件正在构建中,请稍候
|
||||
firmware_tool-flashing_step = 固件烧录中
|
||||
firmware_tool-flashing_step-description = 正在向追踪器烧录固件,请按照屏幕上的指示操作
|
||||
firmware_tool-flashing_step-warning = 除非特别指示,在固件传输过程中请勿断开或重启追踪器,否则可能会导致您的电路板无法使用
|
||||
firmware_tool-flashing_step-warning-v2 = 除非特别指示,在固件传输过程中请勿断开或关闭追踪器,否则可能会导致您的电路板无法使用
|
||||
firmware_tool-flashing_step-flash_more = 烧录更多的追踪器
|
||||
firmware_tool-flashing_step-exit = 退出
|
||||
|
||||
@@ -1285,7 +1457,7 @@ firmware_tool-build-ERROR = 无法构建固件
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = 正在下载固件
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = 等待用户重启追踪器
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = 请关闭您的追踪器,然后再重新打开
|
||||
firmware_update-status-AUTHENTICATING = 正在确认追踪器连接
|
||||
firmware_update-status-UPLOADING = 正在传输固件
|
||||
firmware_update-status-SYNCING_WITH_MCU = 正在与追踪器同步
|
||||
@@ -1339,3 +1511,53 @@ unknown_device-modal-description =
|
||||
要将它连接到 SlimeVR 吗?
|
||||
unknown_device-modal-confirm = 是的!
|
||||
unknown_device-modal-forget = 忽略它
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = VRChat设置警告
|
||||
vrc_config-page-desc = 本页会显示当前VRChat设置的状态,并显示哪些设置与SlimeVR存在冲突。为获得最好的体验,建议修复此处显示的所有警告后再进行使用。
|
||||
vrc_config-page-help = 找不到设置信息?
|
||||
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-on = 开
|
||||
vrc_config-off = 关
|
||||
vrc_config-invalid = 存在错误的VRChat设置!
|
||||
vrc_config-show_more = 显示更多
|
||||
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 = 使用旧版IK解算
|
||||
vrc_config-disable_shoulder_tracking = 禁用肩膀追踪
|
||||
vrc_config-shoulder_width_compensation = 肩宽补偿
|
||||
vrc_config-spine_mode = 全追脊柱模式
|
||||
vrc_config-tracker_model = 全追追踪器模型
|
||||
vrc_config-avatar_measurement_type = 虚拟形象测量
|
||||
vrc_config-calibration_range = 校准范围
|
||||
vrc_config-calibration_visuals = 显示全追校准范围
|
||||
vrc_config-user_height = 用户真实身高
|
||||
vrc_config-spine_mode-UNKNOWN = 未知
|
||||
vrc_config-spine_mode-LOCK_BOTH = 同时锁定
|
||||
vrc_config-spine_mode-LOCK_HEAD = 锁定头部
|
||||
vrc_config-spine_mode-LOCK_HIP = 锁定臀部
|
||||
vrc_config-tracker_model-UNKNOWN = 未知
|
||||
vrc_config-tracker_model-AXIS = 十字轴
|
||||
vrc_config-tracker_model-BOX = 方盒
|
||||
vrc_config-tracker_model-SPHERE = 球体
|
||||
vrc_config-tracker_model-SYSTEM = 系统模型
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = 未知
|
||||
vrc_config-avatar_measurement_type-HEIGHT = 身高
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = 臂展
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
error_collection_modal-title = 我们可以收集错误信息吗?
|
||||
error_collection_modal-description_v2 =
|
||||
{ settings-interface-behavior-error_tracking-description_v2 }
|
||||
|
||||
您可以稍后在设置页面的行为部分中更改此设置。
|
||||
error_collection_modal-confirm = 我同意
|
||||
error_collection_modal-cancel = 还是算了
|
||||
|
||||
@@ -111,29 +111,120 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = SlimeVR Dev IMU 手套
|
||||
|
||||
skeleton_bone-NONE = 無
|
||||
skeleton_bone-HEAD = 頭部偏移
|
||||
skeleton_bone-HEAD-desc =
|
||||
這是從頭戴顯示器到頭中央的距離。
|
||||
若要調整,請左右搖頭(如不同意、否定般的樣子),檢查其他追蹤器的數值跳
|
||||
動並變更此參數,直到數值跳動小到可以忽略不計。
|
||||
skeleton_bone-NECK = 頸部長度
|
||||
skeleton_bone-NECK-desc =
|
||||
這是從頭中央到脖子底部的距離。
|
||||
若要調整,請上下點頭(如同意、肯定般的樣子),或將頭倒向兩側肩膀,檢查
|
||||
其他追蹤器的數值跳動並變更此參數,直到數值跳動小到可以忽略不計。
|
||||
skeleton_bone-torso_group = 軀幹長度
|
||||
skeleton_bone-torso_group-desc =
|
||||
這是從脖子底部到臀部的距離。
|
||||
若要調整,請站立並調整此參數,直到虛擬的臀部與實際臀部對齊。
|
||||
skeleton_bone-UPPER_CHEST = 上胸長度
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
這是從脖子底部到胸部中間的距離。
|
||||
若要調整,請適當調整軀幹長度,檢查各種姿勢(坐下、彎腰、躺下等)並進行
|
||||
修改,直到虛擬的脊椎與實際脊椎對齊。
|
||||
skeleton_bone-CHEST_OFFSET = 胸部偏移
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
調整胸部追蹤器的上下補償。某些遊戲或是應用程式可能會期待追蹤器比較上面
|
||||
或下面,可以透過調整本數值來校正。
|
||||
skeleton_bone-CHEST = 胸部長度
|
||||
skeleton_bone-CHEST-desc =
|
||||
這是從胸部中間到脊椎中間的距離。
|
||||
若要調整,請適當調整軀幹長度,檢查各種姿勢(坐下、彎腰、躺下等)並進行
|
||||
修改,直到虛擬的脊椎與實際脊椎對齊。
|
||||
skeleton_bone-WAIST = 腰部長度
|
||||
skeleton_bone-WAIST-desc =
|
||||
這是從脊椎中間到肚臍的距離。
|
||||
若要調整,請適當調整軀幹長度,檢查各種姿勢(坐下、彎腰、躺下等)並進行
|
||||
修改,直到虛擬的脊椎與實際脊椎對齊。
|
||||
skeleton_bone-HIP = 臀部長度
|
||||
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 =
|
||||
這是從臀部到腳部的距離。
|
||||
若要調整,請適當調整軀幹長度後,修改此數值,直到虛擬的腳部
|
||||
與實際腳部的高度一致。
|
||||
skeleton_bone-UPPER_LEG = 大腿長度
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
這是從臀部到膝蓋的距離。
|
||||
若要調整,請適當調整腿部長度後,修改此數值,直到虛擬的膝蓋
|
||||
與實際膝蓋的高度一致。
|
||||
skeleton_bone-LOWER_LEG = 小腿長度
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
這是從膝蓋到腳踝的距離。
|
||||
若要調整,請適當調整腿部長度後,修改此數值,直到虛擬的膝蓋
|
||||
與實際膝蓋的高度一致。
|
||||
skeleton_bone-FOOT_LENGTH = 腳部長度
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
這是從腳踝到腳趾的距離。
|
||||
若要調整,請踮起腳尖,修改此數值,直到虛擬的腳部與實際腳部對齊。
|
||||
skeleton_bone-FOOT_SHIFT = 腳部偏移
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
這是從膝蓋到腳踝的水平距離。
|
||||
這個數值可以校正站直時小腿會向後移動的問題。
|
||||
若要調整,請將腳部長度設為 0,進行完整重置後再修改,直到虛擬腳部與
|
||||
腳踝中間對齊。
|
||||
skeleton_bone-SKELETON_OFFSET = 骨骼偏移
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
調整全部追蹤器的向前或向後補償。某些遊戲或是應用程式可能會期待追蹤器
|
||||
比較前面,可以透過調整本數值來校正。
|
||||
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距離
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
這是從脖子底部到肩膀的垂直距離。
|
||||
若要調整,請將上臂長度設為 0 再修改,直到虛擬的肘部追蹤器與
|
||||
實際的肩膀垂直對齊。
|
||||
skeleton_bone-SHOULDERS_WIDTH = 肩膀寬度
|
||||
skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
這是從脖子底部到肩膀的水平距離。
|
||||
若要調整,請將上臂長度設為 0 再修改,直到虛擬的肘部追蹤器與
|
||||
實際的肩膀水平對齊。
|
||||
skeleton_bone-arm_group = 手臂長度
|
||||
skeleton_bone-arm_group-desc =
|
||||
這是從肩膀到手腕的距離。
|
||||
若要調整,請適當調整肩膀距離,將手部距離 Y 設定為 0 再修改,
|
||||
直到虛擬的手部追蹤器與手腕對齊。
|
||||
skeleton_bone-UPPER_ARM = 上臂長度
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
這是從肩膀到手肘的距離。
|
||||
若要調整,請適當調整手臂長度後,修改此數值,直到虛擬的
|
||||
手肘追蹤器與實際手肘的位置一致。
|
||||
skeleton_bone-LOWER_ARM = 前臂長度
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
這是從手肘到手腕的距離。
|
||||
若要調整,請適當調整手臂長度後,修改此數值,直到虛擬的
|
||||
手肘追蹤器與實際手肘的位置一致。
|
||||
skeleton_bone-HAND_Y = 手部距離Y
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
這是從手腕到手中間的垂直距離。
|
||||
若要調整以進行動作捕捉,請適當調整手臂長度後修改此數值,直到虛擬的手部追蹤器
|
||||
與實際的手中間垂直對齊。
|
||||
若要調整以從控制器進行肘部跟蹤,請將手臂長度設為 0 後修改此數值,直到虛擬的肘
|
||||
部追蹤器與實際的手腕垂直對齊。
|
||||
skeleton_bone-HAND_Z = 手部距離Z
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
這是從手腕到手中間的水平距離。
|
||||
若要調整以進行動作捕捉,請將此值設定為 0。
|
||||
若要調整以從控制器進行肘部跟蹤,請將手臂長度設為 0 後修改此數值,直到虛擬的肘
|
||||
部追蹤器與實際的手腕水平對齊。
|
||||
skeleton_bone-ELBOW_OFFSET = 肘部偏移
|
||||
skeleton_bone-ELBOW_OFFSET-desc = 將虛擬的肘部追蹤器向上或向下調整,以避免 VRChat 將肘部追蹤器綁到胸部。
|
||||
|
||||
## Tracker reset buttons
|
||||
|
||||
@@ -199,7 +290,7 @@ widget-developer_mode = 開發者選項
|
||||
widget-developer_mode-high_contrast = 高對比 UI
|
||||
widget-developer_mode-precise_rotation = 顯示精確旋轉
|
||||
widget-developer_mode-fast_data_feed = 快速資料更新
|
||||
widget-developer_mode-filter_slimes_and_hmd = 只顯示 Slime 追蹤器與頭戴顯示器
|
||||
widget-developer_mode-filter_slimes_and_hmd = 只顯示 SlimeVR 追蹤器與頭戴顯示器
|
||||
widget-developer_mode-sort_by_name = 依名稱排序
|
||||
widget-developer_mode-raw_slime_rotation = 顯示原始旋轉
|
||||
widget-developer_mode-more_info = 更多資訊
|
||||
@@ -213,6 +304,7 @@ widget-imu_visualizer-rotation_raw = 原始旋轉
|
||||
widget-imu_visualizer-rotation_preview = 預覽
|
||||
widget-imu_visualizer-acceleration = 加速度
|
||||
widget-imu_visualizer-position = 位置
|
||||
widget-imu_visualizer-stay_aligned = 持續校正
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -240,6 +332,7 @@ tracker-table-column-temperature = 溫度 ℃
|
||||
tracker-table-column-linear-acceleration = 加速度 X/Y/Z
|
||||
tracker-table-column-rotation = 旋轉 X/Y/Z
|
||||
tracker-table-column-position = 位置 X/Y/Z
|
||||
tracker-table-column-stay_aligned = 持續校正
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -306,6 +399,7 @@ tracker-settings-forget = 忘記追蹤器
|
||||
tracker-settings-forget-description = 從 SlimeVR 伺服器程式中移除該追蹤器,且直到重新啟動伺服器前不會再次連接。該追蹤器的設定不會遺失。
|
||||
tracker-settings-forget-label = 忘記追蹤器
|
||||
tracker-settings-update-unavailable = 無法更新 (DIY)
|
||||
tracker-settings-update-low-battery = 無法更新,電池電量低於 50%
|
||||
tracker-settings-update-up_to_date = 已為最新版本
|
||||
tracker-settings-update-available = 版本 { $versionName } 可供更新
|
||||
tracker-settings-update = 立即更新
|
||||
@@ -376,6 +470,7 @@ mounting_selection_menu-close = 關閉
|
||||
settings-sidebar-title = 設定
|
||||
settings-sidebar-general = 一般設定
|
||||
settings-sidebar-tracker_mechanics = 追蹤機制
|
||||
settings-sidebar-stay_aligned = 持續校正
|
||||
settings-sidebar-fk_settings = 追蹤設定
|
||||
settings-sidebar-gesture_control = 手勢控制
|
||||
settings-sidebar-interface = 使用者介面
|
||||
@@ -387,6 +482,7 @@ settings-sidebar-appearance = 外觀
|
||||
settings-sidebar-notifications = 通知
|
||||
settings-sidebar-behavior = 行為
|
||||
settings-sidebar-firmware-tool = DIY 韌體工具
|
||||
settings-sidebar-vrc_warnings = VRChat 配置警告
|
||||
settings-sidebar-advanced = 進階
|
||||
|
||||
## SteamVR settings
|
||||
@@ -468,6 +564,25 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
在所有有韌體支援的追蹤器上使用磁力計,在磁場穩定的環境中可以減緩偏移。
|
||||
開啟此選項後,可以個別在追蹤器選項內停用磁力計。<b>切換此選項時請勿關閉任何一個追蹤器的電源!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = 在追蹤器上啟用磁力計
|
||||
settings-stay_aligned = 持續校正
|
||||
settings-stay_aligned-description = 持續校正功能會逐漸調整追蹤器以對齊到設定的放鬆姿態,進而減少追蹤器偏移的影響。
|
||||
settings-stay_aligned-setup-label = 設定持續校正
|
||||
settings-stay_aligned-setup-description = 完成「設定持續校正」後,才可啟用持續校正功能。
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ 啟用持續校正時請關閉偏移補償功能,避免發生干擾。
|
||||
settings-stay_aligned-enabled-label = 調整追蹤器
|
||||
settings-stay_aligned-hide_yaw_correction-label = 隱藏調整效果(可與關閉持續校正的效果對比)
|
||||
settings-stay_aligned-general-label = 一般設定
|
||||
settings-stay_aligned-relaxed_poses-label = 放鬆的姿態
|
||||
settings-stay_aligned-relaxed_poses-description = 持續校正功能會使用各種放鬆的姿態保持追蹤器的定位。請使用「設定持續校正」來更新設定的姿態。
|
||||
settings-stay_aligned-relaxed_poses-standing = 使用站立姿勢調整追蹤器
|
||||
settings-stay_aligned-relaxed_poses-sitting = 使用坐在椅子上的姿勢調整追蹤器
|
||||
settings-stay_aligned-relaxed_poses-flat = 使用坐在地板上或躺下的姿勢調整追蹤器
|
||||
settings-stay_aligned-relaxed_poses-save_pose = 儲存姿勢
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = 重置姿勢
|
||||
settings-stay_aligned-relaxed_poses-close = 關閉
|
||||
settings-stay_aligned-debug-label = 除錯資訊
|
||||
settings-stay_aligned-debug-description = 在回報與持續校正相關的問題時,請附上以下設定參數。
|
||||
settings-stay_aligned-debug-copy-label = 複製設定參數進剪貼簿
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -480,11 +595,11 @@ settings-general-fk_settings-leg_tweak-floor_clip = 地板限制
|
||||
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
|
||||
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
|
||||
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = 腳滑修正
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = 腳滑補正
|
||||
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-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-toe_snap-description = 腳趾跟地功能在沒有腳部的追蹤器時,會嘗試猜測腳掌的旋轉角度。
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = 腳底貼地功能會在腳底與地面接觸時,將腳部旋轉成與地板平行。
|
||||
@@ -558,6 +673,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = 如
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = 外觀
|
||||
settings-general-interface-dev_mode = 開發者模式
|
||||
settings-general-interface-dev_mode-description = 本功能會提供更深入的資料,也能與已連線的追蹤器進行更進一步的控制。
|
||||
settings-general-interface-dev_mode-label = 開發者模式
|
||||
settings-general-interface-theme = 佈景主題色彩
|
||||
settings-general-interface-show-navbar-onboarding = 在導覽列上顯示「{ navbar-onboarding }」
|
||||
settings-general-interface-show-navbar-onboarding-description = 本選項變更 「{ navbar-onboarding }」 按鈕是否要顯示在導覽列上。
|
||||
@@ -574,7 +692,7 @@ settings-interface-appearance-font-slime_font = 預設字體
|
||||
settings-interface-appearance-font_size = 文字縮放
|
||||
settings-interface-appearance-font_size-description = 本設定會影響整個 UI 的文字大小,除了本設定面板以外。
|
||||
settings-interface-appearance-decorations = 使用系統原生的視窗邊框
|
||||
settings-interface-appearance-decorations-description = 不顯示標題列 UI,替換成作業系統提供的標題列。
|
||||
settings-interface-appearance-decorations-description = 不顯示標題列 UI,使用作業系統提供的標題列。
|
||||
settings-interface-appearance-decorations-label = 使用原生的視窗邊框
|
||||
|
||||
## Notification settings
|
||||
@@ -678,8 +796,8 @@ settings-osc-vrchat-oscqueryEnabled = 啟用 OSCQuery
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery 會自動偵測並發送數據給正在執行中的 VRChat 程式。
|
||||
也會把自己廣告給其他應用程式,以接收頭戴顯示器與控制器的數據。
|
||||
要允許從 VRChat 接收頭戴顯示器與控制器的數據,請進入主功能表的設定
|
||||
並啟用「允許透過 OSC 發送頭部與腕部的 VR 追蹤數據」。
|
||||
要允許從 VRChat 接收頭戴顯示器與控制器的數據,請進入主選單的設定
|
||||
在「追蹤 & IK」下,啟用「允許透過 OSC 發送頭部與腕部的 VR 追蹤數據」。
|
||||
settings-osc-vrchat-oscqueryEnabled-label = 啟用 OSCQuery
|
||||
settings-osc-vrchat-network = 連接埠
|
||||
settings-osc-vrchat-network-description-v1 = 設定收發追蹤器資料的連接埠埠號,使用 VRChat 不須更改。
|
||||
@@ -855,6 +973,17 @@ 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_serial-error-modal-no_serial_log = 追蹤器電源開了嗎?
|
||||
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 傳輸線將追蹤器連接到你的電腦後,再打開追蹤器電源。
|
||||
如果還是不行,請嘗試以下操作:
|
||||
- 使用另一條 USB 傳輸線
|
||||
- 使用另一個 USB 插座
|
||||
- 重新安裝 SlimeVR 伺服器程式,然後在安裝元件部分將「USB drivers」打勾
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -1029,8 +1158,9 @@ onboarding-automatic_mounting-mounting_reset-title = 配戴重置
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 雙腿彎曲以滑雪的姿勢蹲下,上身向前傾斜,手臂彎曲。
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. 按下「配戴重置」按鈕並等待 3 秒鐘,追蹤器的配戴方向將被重置。
|
||||
onboarding-automatic_mounting-preparation-title = 準備
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. 身體直立,雙臂放在身體兩側。
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. 按下「完整重置」按鈕,等待 3 秒鐘,追蹤器將會重置。
|
||||
onboarding-automatic_mounting-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 = 我所有的追蹤器都戴好了!
|
||||
@@ -1039,16 +1169,16 @@ onboarding-automatic_mounting-put_trackers_on-next = 我所有的追蹤器都戴
|
||||
|
||||
onboarding-manual_proportions-back = 返回重置教學
|
||||
onboarding-manual_proportions-title = 手動調整軀幹比例
|
||||
onboarding-manual_proportions-precision = 精確調整
|
||||
onboarding-manual_proportions-auto = 進行自動校正
|
||||
onboarding-manual_proportions-ratio = 依比例分組調整
|
||||
onboarding-manual_proportions-fine_tuning_button = 自動微調軀幹比例
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = 請連接 VR 頭戴顯示器以使用此功能
|
||||
onboarding-manual_proportions-export = 匯出軀幹比例
|
||||
onboarding-manual_proportions-import = 匯入軀幹比例
|
||||
onboarding-manual_proportions-import-success = 匯入成功
|
||||
onboarding-manual_proportions-import-failed = 匯入失敗
|
||||
onboarding-manual_proportions-file_type = 軀幹比例描述檔
|
||||
onboarding-manual_proportions-normal_increment = 正常調整
|
||||
onboarding-manual_proportions-precise_increment = 精確調整
|
||||
onboarding-manual_proportions-grouped_proportions = 分組調整軀幹比例
|
||||
onboarding-manual_proportions-all_proportions = 全部軀幹比例
|
||||
onboarding-manual_proportions-estimated_height = 預估的使用者身高
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1079,11 +1209,11 @@ onboarding-automatic_proportions-check_height-guardian_tip = 如果你使用的
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = 不明
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = 你的頭戴顯示器高度是:
|
||||
onboarding-automatic_proportions-check_height-hmd_height2 = 頭戴顯示器的高度為:
|
||||
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_height-next_step = 使用頭戴顯示器高度
|
||||
onboarding-automatic_proportions-check_floor_height-title = 測量地板高度(選用)
|
||||
onboarding-automatic_proportions-check_floor_height-description = 在某些情況下,頭戴顯示器可能無法正確設定地板高度,導致頭戴顯示器測得的高度高於應有的高度。你可以測量地板的「高度」以校正頭戴顯示器的高度。
|
||||
# All the text is in bold!
|
||||
@@ -1139,7 +1269,7 @@ onboarding-scaled_proportions-manual_height-title = 設定你的身高
|
||||
onboarding-scaled_proportions-manual_height-description-v2 = 身高會當作軀幹比例設定的基礎。
|
||||
onboarding-scaled_proportions-manual_height-missing_steamvr = SteamVR 目前尚未連接到 SlimeVR,因此無法根據頭戴顯示器測量身高。<b>請查閱說明文件,繼續操作請自行承擔風險!</b>
|
||||
onboarding-scaled_proportions-manual_height-height-v2 = 你的身高全長為
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = 你的估計身高為:
|
||||
onboarding-scaled_proportions-manual_height-estimated_height = 頭戴顯示器估計高度為:
|
||||
onboarding-scaled_proportions-manual_height-next_step = 繼續並儲存
|
||||
onboarding-scaled_proportions-manual_height-warning =
|
||||
你現在正在手動設定縮放型軀幹比例,<b>這個方法僅在你使用 SlimeVR
|
||||
@@ -1156,6 +1286,40 @@ onboarding-scaled_proportions-reset_proportion-description = 要依照身高設
|
||||
onboarding-scaled_proportions-done-title = 軀幹比例已設定
|
||||
onboarding-scaled_proportions-done-description = 軀幹比例現在已經依照你的身高設定。
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = 持續校正
|
||||
onboarding-stay_aligned-description = 設定持續校正功能讓追蹤器保持對齊狀態。
|
||||
onboarding-stay_aligned-put_trackers_on-title = 請戴好追蹤器
|
||||
onboarding-stay_aligned-put_trackers_on-description = 為了保存放鬆中的姿態,我們將使用你剛才分配的追蹤器。戴上你所有的追蹤器,你可以在右邊的圖中看到追蹤器的對應部位。
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = 你目前已連接與分配的追蹤器少於 5 個,持續校正功能需要 5 個以上的追蹤器才能正常運作。
|
||||
onboarding-stay_aligned-put_trackers_on-next = 我所有的追蹤器都戴好了
|
||||
onboarding-stay_aligned-verify_mounting-title = 確認追蹤器的配戴狀態
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = 持續校正功能需要良好的追蹤器配戴固定,否則體驗會不如預期。
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. 請站著四處走動。
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. 坐下並擺動你的腿跟腳。
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. 如果虛擬追蹤器不在正確的位置上,請調整追蹤器並重複這個流程。
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = 重做配戴校正
|
||||
onboarding-stay_aligned-preparation-title = 準備
|
||||
onboarding-stay_aligned-preparation-tip = 請確保站直。你必須向前直視,並且兩臂垂到身體兩側。
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = 放鬆的站立姿勢
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. 請以舒適的姿態站著,保持放鬆。
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 3. 請按下「儲存姿勢」按鈕。
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = 放鬆的坐在椅子上的姿勢
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. 請以舒適的姿態坐著,保持放鬆。
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 3. 請按下「儲存姿勢」按鈕。
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = 放鬆的坐在地板上的姿勢
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. 請以舒適的姿態坐在地板上,腿部朝前,保持放鬆。
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 3. 請按下「儲存姿勢」按鈕。
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = 跳過
|
||||
onboarding-stay_aligned-done-title = 持續校正已啟用!
|
||||
onboarding-stay_aligned-done-description = 持續校正功能設定完成。
|
||||
onboarding-stay_aligned-done-description-2 = 設定完成。若需要重新校正姿勢,可以重新進行這個流程。
|
||||
onboarding-stay_aligned-previous_step = 上一步
|
||||
onboarding-stay_aligned-next_step = 下一步
|
||||
onboarding-stay_aligned-restart = 重新開始
|
||||
onboarding-stay_aligned-done = 完成
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = 未偵測到或未分配追蹤器
|
||||
@@ -1179,6 +1343,7 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = 追蹤器{ $trackerName }發生錯誤
|
||||
status_system-StatusUnassignedHMD = VR 頭戴顯示器應被分配為頭部追蹤器。
|
||||
status_system-StatusPublicNetwork = 你的網路設定檔目前設為「公開」,SlimeVR 為了能正常運作,不建議如此設定。 <PublicFixLink>此處提供修正的方法。</PublicFixLink>
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
@@ -1277,7 +1442,7 @@ firmware_tool-build_step = 建置中
|
||||
firmware_tool-build_step-description = 韌體正在建置中,請稍後
|
||||
firmware_tool-flashing_step = 燒錄中
|
||||
firmware_tool-flashing_step-description = 追蹤器燒錄中,請遵循畫面上的指示
|
||||
firmware_tool-flashing_step-warning = 除非特別指示,燒錄中請勿移除或是重啟追蹤器,否則可能導致主板無法使用。
|
||||
firmware_tool-flashing_step-warning-v2 = 除非特別指示,燒錄中請勿移除或是關閉追蹤器,否則可能導致主板無法使用
|
||||
firmware_tool-flashing_step-flash_more = 燒錄更多追蹤器
|
||||
firmware_tool-flashing_step-exit = 離開
|
||||
|
||||
@@ -1295,7 +1460,7 @@ firmware_tool-build-ERROR = 無法建置韌體
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = 正在下載韌體
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = 請重新啟動追蹤器
|
||||
firmware_update-status-NEED_MANUAL_REBOOT-v2 = 請關閉追蹤器的電源再打開
|
||||
firmware_update-status-AUTHENTICATING = 正在與 MCU 認證
|
||||
firmware_update-status-UPLOADING = 正在上傳韌體
|
||||
firmware_update-status-SYNCING_WITH_MCU = 正在與 MCU 同步
|
||||
@@ -1350,6 +1515,46 @@ unknown_device-modal-description =
|
||||
要將它連接到 SlimeVR 嗎?
|
||||
unknown_device-modal-confirm = 好喔!
|
||||
unknown_device-modal-forget = 別管它
|
||||
# VRChat config warnings
|
||||
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-big_menu-desc = 主選單中與 IK (逆向運動學)相關的設定
|
||||
vrc_config-page-wrist_menu = 追蹤 & IK(快速選單)
|
||||
vrc_config-page-wrist_menu-desc = 快速選單中與 IK (逆向運動學)相關的設定
|
||||
vrc_config-on = 開啟
|
||||
vrc_config-off = 關閉
|
||||
vrc_config-invalid = VRChat 的設定有誤!
|
||||
vrc_config-show_more = 顯示更多
|
||||
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 = 使用傳統 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-calibration_range = 校正範圍
|
||||
vrc_config-calibration_visuals = 顯示 FBT 校正範圍
|
||||
vrc_config-user_height = 用戶真實身高
|
||||
vrc_config-spine_mode-UNKNOWN = 不明
|
||||
vrc_config-spine_mode-LOCK_BOTH = 同時鎖定
|
||||
vrc_config-spine_mode-LOCK_HEAD = 鎖定頭部
|
||||
vrc_config-spine_mode-LOCK_HIP = 鎖定臀部
|
||||
vrc_config-tracker_model-UNKNOWN = 不明
|
||||
vrc_config-tracker_model-AXIS = 軸
|
||||
vrc_config-tracker_model-BOX = 箱型
|
||||
vrc_config-tracker_model-SPHERE = 球型
|
||||
vrc_config-tracker_model-SYSTEM = 系統
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = 不明
|
||||
vrc_config-avatar_measurement_type-HEIGHT = 身高
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = 臂展
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
BIN
gui/public/images/relaxed_pose_flat.webp
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
gui/public/images/relaxed_pose_sitting.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
gui/public/images/relaxed_pose_standing.webp
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
gui/public/images/reset/FullResetPose.webp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
gui/public/images/reset/FullResetPoseSide.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
gui/public/images/reset/FullResetPoseWrong.webp
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
gui/public/images/stay-aligned/StayAlignedFloor.webp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
gui/public/images/stay-aligned/StayAlignedSitting.webp
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
gui/public/images/stay-aligned/StayAlignedStanding.webp
Normal file
|
After Width: | Height: | Size: 57 KiB |
42
gui/src-tauri/69-slimevr-devices.rules
Normal file
@@ -0,0 +1,42 @@
|
||||
# Copyright 2025 Eiren Rain and SlimeVR Contributors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
## QinHeng
|
||||
# CH340
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="7522", MODE="0660", TAG+="uaccess"
|
||||
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"
|
||||
# CH9102x
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D4", MODE="0660", TAG+="uaccess"
|
||||
|
||||
## Silabs
|
||||
# CP210x
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10C4", ATTRS{idProduct}=="EA60", MODE="0660", TAG+="uaccess"
|
||||
|
||||
## Espressif
|
||||
# ESP32-C3
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303A", ATTRS{idProduct}=="1001", MODE="0660", TAG+="uaccess"
|
||||
|
||||
## FTDI
|
||||
# FT232BM/L/Q, FT245BM/L/Q
|
||||
# FT232RL/Q, FT245RL/Q
|
||||
# VNC1L with VDPS Firmware
|
||||
# VNC2 with FT232Slave
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0660", TAG+="uaccess"
|
||||
|
||||
## SlimeVR
|
||||
# smol slime dongle
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="7690", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="7690", MODE="0660", TAG+="uaccess"
|
||||
@@ -54,6 +54,7 @@ dirs-next = "2.0.0"
|
||||
discord-sdk = "0.3.6"
|
||||
tokio = { version = "1.37.0", features = ["time"] }
|
||||
itertools = "0.13.0"
|
||||
tauri-plugin-http = "2.5.0"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
win32job = "1"
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
"identifier": "migrated",
|
||||
"description": "permissions that were migrated from v1",
|
||||
"local": true,
|
||||
"windows": [
|
||||
"main"
|
||||
],
|
||||
"windows": ["main"],
|
||||
"permissions": [
|
||||
"core:default",
|
||||
"core:window:allow-close",
|
||||
@@ -19,6 +17,9 @@
|
||||
"core:window:allow-set-decorations",
|
||||
"store:default",
|
||||
"os:allow-os-type",
|
||||
"os:allow-hostname",
|
||||
"os:allow-locale",
|
||||
"dialog:allow-open",
|
||||
"dialog:allow-save",
|
||||
"shell:allow-open",
|
||||
"store:allow-get",
|
||||
@@ -30,6 +31,14 @@
|
||||
{
|
||||
"identifier": "fs:scope",
|
||||
"allow": [{ "path": "$APPDATA" }, { "path": "$APPDATA/**" }]
|
||||
},
|
||||
{
|
||||
"identifier": "http:default",
|
||||
"allow": [
|
||||
{
|
||||
"url": "https://github.com/SlimeVR/SlimeVR-Tracker-ESP/releases/download/*"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Version=1.5
|
||||
Categories=Game;Development;GTK;
|
||||
Categories=Game;GTK;
|
||||
Exec={{exec}}
|
||||
Icon={{icon}}
|
||||
|
||||
|
||||
@@ -65,6 +65,18 @@ work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
</provides>
|
||||
|
||||
<releases>
|
||||
<release version="0.16.0" date="2025-07-01"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.16.0</url></release>
|
||||
<release version="0.16.0~rc.2" type="development" date="2025-06-20"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.16.0-rc.2</url></release>
|
||||
<release version="0.16.0~rc.1" type="development" date="2025-05-27"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.16.0-rc.1</url></release>
|
||||
<release version="0.15.0" date="2025-05-19"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.15.0</url></release>
|
||||
<release version="0.15.0~rc.4" type="development" date="2025-05-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.15.0-rc.4</url></release>
|
||||
<release version="0.15.0~rc.3" type="development" date="2025-04-28"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.15.0-rc.3</url></release>
|
||||
<release version="0.15.0~rc.2" type="development" date="2025-04-25"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.15.0-rc.2</url></release>
|
||||
<release version="0.15.0~rc.1" type="development" date="2025-04-23"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.15.0-rc.1</url></release>
|
||||
<release version="0.14.1" date="2025-04-15"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.14.1</url></release>
|
||||
<release version="0.14.0" date="2025-04-10"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.14.0</url></release>
|
||||
<release version="0.14.0~rc.2" type="development" date="2025-03-25"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.14.0-rc.2</url></release>
|
||||
<release version="0.14.0~rc.1" type="development" date="2025-02-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.14.0-rc1</url></release>
|
||||
<release version="0.13.2" date="2024-11-06"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.13.2</url></release>
|
||||
<release version="0.13.1" date="2024-11-05"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.13.1</url></release>
|
||||
<release version="0.13.1~rc.3" type="development" date="2024-10-31"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.13.1-rc.3</url></release>
|
||||
@@ -254,6 +254,7 @@ fn setup_tauri(
|
||||
.plugin(tauri_plugin_os::init())
|
||||
.plugin(tauri_plugin_shell::init())
|
||||
.plugin(tauri_plugin_store::Builder::default().build())
|
||||
.plugin(tauri_plugin_http::init())
|
||||
.invoke_handler(tauri::generate_handler![
|
||||
update_window_state,
|
||||
logging,
|
||||
|
||||
@@ -80,17 +80,36 @@ impl WindowState {
|
||||
window.unmaximize()?;
|
||||
}
|
||||
|
||||
if self.width > util::MIN_WINDOW_SIZE_WIDTH
|
||||
&& self.height > util::MIN_WINDOW_SIZE_HEIGHT
|
||||
let size = if self.width >= util::MIN_WINDOW_SIZE_WIDTH
|
||||
&& self.height >= util::MIN_WINDOW_SIZE_HEIGHT
|
||||
{
|
||||
window.set_size(LogicalSize::new(self.width, self.height))?;
|
||||
}
|
||||
Some(LogicalSize::new(self.width, self.height))
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let pos = PhysicalPosition::new(self.x, self.y);
|
||||
for monitor in window.available_monitors()? {
|
||||
if monitor.contains(pos) {
|
||||
let monitor = window
|
||||
.available_monitors()?
|
||||
.into_iter()
|
||||
.find(|x| x.contains(pos))
|
||||
.map(|m| (m, true))
|
||||
.or(window.current_monitor()?.map(|m| (m, false)));
|
||||
|
||||
// Don't surpass the monitor's size
|
||||
if let Some((monitor, is_old)) = monitor {
|
||||
let monitor_size = *monitor.size();
|
||||
let window_size = size
|
||||
.map(|s| s.to_physical(monitor.scale_factor()))
|
||||
.unwrap_or(window.outer_size()?);
|
||||
window.set_size(PhysicalSize::new(
|
||||
u32::min(monitor_size.width, window_size.width),
|
||||
u32::min(monitor_size.height, window_size.height),
|
||||
))?;
|
||||
|
||||
// If the position of the window was previously in the config
|
||||
if is_old {
|
||||
window.set_position(pos)?;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ pub fn create_tray<R: Runtime>(app: &tauri::AppHandle<R>) -> tauri::Result<()> {
|
||||
.title("SlimeVR")
|
||||
.tooltip("SlimeVR")
|
||||
.icon_as_template(true)
|
||||
.menu_on_left_click(false)
|
||||
.show_menu_on_left_click(false)
|
||||
.icon(if cfg!(target_os = "macos") {
|
||||
include_image!("icons/appleTrayIcon.png")
|
||||
} else {
|
||||
@@ -146,7 +146,7 @@ pub fn create_tray<R: Runtime>(app: &tauri::AppHandle<R>) -> tauri::Result<()> {
|
||||
_ => {}
|
||||
})
|
||||
// We don't want this as we open the window on left click
|
||||
.menu_on_left_click(false)
|
||||
.show_menu_on_left_click(false)
|
||||
.build(app)?;
|
||||
|
||||
app.manage(TrayAvailable(true));
|
||||
|
||||
@@ -10,12 +10,15 @@
|
||||
"linux": {
|
||||
"deb": {
|
||||
"depends": [
|
||||
"openjdk-17-jre-headless"
|
||||
"openjdk-17-jre-headless",
|
||||
"udev"
|
||||
],
|
||||
"files": {
|
||||
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar"
|
||||
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar",
|
||||
"/lib/udev/rules.d/69-slimevr.rules": "./69-slimevr-devices.rules"
|
||||
},
|
||||
"desktopTemplate": "./dev.slimevr.SlimeVR.desktop"
|
||||
"desktopTemplate": "./dev.slimevr.SlimeVR.desktop",
|
||||
"section": "contrib/games"
|
||||
},
|
||||
"appimage": {
|
||||
"bundleMediaFramework": true,
|
||||
@@ -25,10 +28,12 @@
|
||||
},
|
||||
"rpm": {
|
||||
"depends": [
|
||||
"java-17-openjdk"
|
||||
"java-latest-openjdk",
|
||||
"udev"
|
||||
],
|
||||
"files": {
|
||||
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar"
|
||||
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar",
|
||||
"/usr/lib/udev/rules.d/69-slimevr.rules": "./69-slimevr-devices.rules"
|
||||
},
|
||||
"desktopTemplate": "./dev.slimevr.SlimeVR.desktop"
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ import { AdvancedSettings } from './components/settings/pages/AdvancedSettings';
|
||||
import { FirmwareUpdate } from './components/firmware-update/FirmwareUpdate';
|
||||
import { ConnectionLost } from './components/onboarding/pages/ConnectionLost';
|
||||
import { VRCWarningsPage } from './components/vrc/VRCWarningsPage';
|
||||
import { StayAlignedSetup } from './components/onboarding/pages/stay-aligned/StayAlignedSetup';
|
||||
|
||||
export const GH_REPO = 'SlimeVR/SlimeVR-Server';
|
||||
export const VersionContext = createContext('');
|
||||
@@ -173,6 +174,7 @@ function Layout() {
|
||||
path="body-proportions/scaled"
|
||||
element={<ScaledProportionsPage />}
|
||||
/>
|
||||
<Route path="stay-aligned" element={<StayAlignedSetup />} />
|
||||
<Route path="done" element={<DonePage />} />
|
||||
</Route>
|
||||
<Route path="*" element={<TopBar></TopBar>}></Route>
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { useLayoutEffect } from 'react';
|
||||
import { useConfig } from './hooks/config';
|
||||
import { Outlet } from 'react-router-dom';
|
||||
import { Outlet, useNavigate } from 'react-router-dom';
|
||||
|
||||
export function AppLayout() {
|
||||
const { config } = useConfig();
|
||||
const navigate = useNavigate();
|
||||
|
||||
useLayoutEffect(() => {
|
||||
if (!config) return;
|
||||
@@ -26,6 +27,12 @@ export function AppLayout() {
|
||||
}
|
||||
}, [config]);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
if (config && !config.doneOnboarding) {
|
||||
navigate('/onboarding/home');
|
||||
}
|
||||
}, [config?.doneOnboarding]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Outlet />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Localized } from '@fluent/react';
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import {
|
||||
RecordBVHRequestT,
|
||||
@@ -9,18 +9,43 @@ import { useWebsocketAPI } from '@/hooks/websocket-api';
|
||||
import { BigButton } from './commons/BigButton';
|
||||
import { RecordIcon } from './commons/icon/RecordIcon';
|
||||
import classNames from 'classnames';
|
||||
import { isTauri } from '@tauri-apps/api/core';
|
||||
import { save } from '@tauri-apps/plugin-dialog';
|
||||
import { useConfig } from '@/hooks/config';
|
||||
|
||||
export function BVHButton(props: React.HTMLAttributes<HTMLButtonElement>) {
|
||||
const { config } = useConfig();
|
||||
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
|
||||
const [recording, setRecording] = useState(false);
|
||||
const [saving, setSaving] = useState(false);
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
useEffect(() => {
|
||||
sendRPCPacket(RpcMessage.RecordBVHStatusRequest, new RecordBVHRequestT());
|
||||
}, []);
|
||||
|
||||
const toggleBVH = () => {
|
||||
const record = new RecordBVHRequestT();
|
||||
record.stop = recording;
|
||||
const toggleBVH = async () => {
|
||||
const record = new RecordBVHRequestT(recording);
|
||||
|
||||
if (isTauri() && !recording) {
|
||||
if (config?.bvhDirectory) {
|
||||
record.path = config.bvhDirectory;
|
||||
} else {
|
||||
setSaving(true);
|
||||
record.path = await save({
|
||||
title: l10n.getString('bvh-save_title'),
|
||||
filters: [
|
||||
{
|
||||
name: 'BVH',
|
||||
extensions: ['bvh'],
|
||||
},
|
||||
],
|
||||
defaultPath: 'bvh-recording.bvh',
|
||||
});
|
||||
setSaving(false);
|
||||
}
|
||||
}
|
||||
|
||||
sendRPCPacket(RpcMessage.RecordBVHRequest, record);
|
||||
};
|
||||
|
||||
@@ -33,6 +58,7 @@ export function BVHButton(props: React.HTMLAttributes<HTMLButtonElement>) {
|
||||
<BigButton
|
||||
icon={<RecordIcon width={20} />}
|
||||
onClick={toggleBVH}
|
||||
disabled={saving}
|
||||
className={classNames(
|
||||
props.className,
|
||||
'border',
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import { Localized } from '@fluent/react';
|
||||
import { ClearDriftCompensationRequestT, RpcMessage } from 'solarxr-protocol';
|
||||
import { useWebsocketAPI } from '@/hooks/websocket-api';
|
||||
import { BigButton } from './commons/BigButton';
|
||||
import { TrashIcon } from './commons/icon/TrashIcon';
|
||||
|
||||
export function ClearDriftCompensationButton({
|
||||
disabled,
|
||||
}: {
|
||||
disabled: boolean;
|
||||
}) {
|
||||
const { sendRPCPacket } = useWebsocketAPI();
|
||||
|
||||
const clearDriftCompensation = () => {
|
||||
const record = new ClearDriftCompensationRequestT();
|
||||
sendRPCPacket(RpcMessage.ClearDriftCompensationRequest, record);
|
||||
};
|
||||
|
||||
return (
|
||||
<Localized id="widget-drift_compensation-clear">
|
||||
<BigButton
|
||||
icon={<TrashIcon size={20} />}
|
||||
onClick={clearDriftCompensation}
|
||||
disabled={disabled}
|
||||
></BigButton>
|
||||
</Localized>
|
||||
);
|
||||
}
|
||||
@@ -1,26 +1,19 @@
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { BVHButton } from './BVHButton';
|
||||
import { ClearDriftCompensationButton } from './ClearDriftCompensationButton';
|
||||
import { TrackingPauseButton } from './TrackingPauseButton';
|
||||
import { ResetButton } from './home/ResetButton';
|
||||
import { OverlayWidget } from './widgets/OverlayWidget';
|
||||
import { TipBox } from './commons/TipBox';
|
||||
import { DeveloperModeWidget } from './widgets/DeveloperModeWidget';
|
||||
import { useConfig } from '@/hooks/config';
|
||||
import {
|
||||
ResetType,
|
||||
RpcMessage,
|
||||
SettingsRequestT,
|
||||
SettingsResponseT,
|
||||
StatusData,
|
||||
} from 'solarxr-protocol';
|
||||
import { useEffect, useMemo, useState } from 'react';
|
||||
import { ResetType, StatusData } from 'solarxr-protocol';
|
||||
import { useMemo } from 'react';
|
||||
import { parseStatusToLocale, useStatusContext } from '@/hooks/status-system';
|
||||
import { useWebsocketAPI } from '@/hooks/websocket-api';
|
||||
import { ClearMountingButton } from './ClearMountingButton';
|
||||
import { ToggleableSkeletonVisualizerWidget } from './widgets/SkeletonVisualizerWidget';
|
||||
import { useAtomValue } from 'jotai';
|
||||
import { flatTrackersAtom } from '@/store/app-store';
|
||||
import { A } from './commons/A';
|
||||
|
||||
function UnprioritizedStatuses() {
|
||||
const { l10n } = useLocalization();
|
||||
@@ -38,6 +31,11 @@ function UnprioritizedStatuses() {
|
||||
id={`status_system-${StatusData[status.dataType]}`}
|
||||
vars={parseStatusToLocale(status, trackers, l10n)}
|
||||
key={status.id}
|
||||
elems={{
|
||||
PublicFixLink: (
|
||||
<A href="https://docs.slimevr.dev/common-issues.html#network-profile-is-currently-set-to-public"></A>
|
||||
),
|
||||
}}
|
||||
>
|
||||
<TipBox whitespace={false} hideIcon>
|
||||
{`Warning, you should fix ${StatusData[status.dataType]}`}
|
||||
@@ -50,17 +48,6 @@ function UnprioritizedStatuses() {
|
||||
|
||||
export function WidgetsComponent() {
|
||||
const { config } = useConfig();
|
||||
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
|
||||
const [driftCompensationEnabled, setDriftCompensationEnabled] =
|
||||
useState(false);
|
||||
useEffect(() => {
|
||||
sendRPCPacket(RpcMessage.SettingsRequest, new SettingsRequestT());
|
||||
}, []);
|
||||
|
||||
useRPCPacket(RpcMessage.SettingsResponse, (settings: SettingsResponseT) => {
|
||||
if (settings.driftCompensation != null)
|
||||
setDriftCompensationEnabled(settings.driftCompensation.enabled);
|
||||
});
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -69,11 +56,10 @@ export function WidgetsComponent() {
|
||||
<ResetButton type={ResetType.Full} size="big"></ResetButton>
|
||||
<ResetButton type={ResetType.Mounting} size="big"></ResetButton>
|
||||
<ClearMountingButton></ClearMountingButton>
|
||||
<BVHButton></BVHButton>
|
||||
{(typeof __ANDROID__ === 'undefined' || !__ANDROID__?.isThere()) && (
|
||||
<BVHButton></BVHButton>
|
||||
)}
|
||||
<TrackingPauseButton></TrackingPauseButton>
|
||||
<ClearDriftCompensationButton
|
||||
disabled={!driftCompensationEnabled}
|
||||
></ClearDriftCompensationButton>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<OverlayWidget></OverlayWidget>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import classNames from 'classnames';
|
||||
import { ReactNode, useLayoutEffect, useRef, useState } from 'react';
|
||||
import { ReactNode, useEffect, useRef, useState } from 'react';
|
||||
import { BodyPart } from 'solarxr-protocol';
|
||||
import { PersonFrontIcon } from './PersonFrontIcon';
|
||||
import { useBreakpoint } from '@/hooks/breakpoint';
|
||||
@@ -9,7 +9,7 @@ export function BodyInteractions({
|
||||
rightControls,
|
||||
highlightedRoles,
|
||||
assignedRoles,
|
||||
width = 228,
|
||||
width = 248,
|
||||
dotsSize = 15,
|
||||
variant = 'tracker-select',
|
||||
mirror,
|
||||
@@ -30,6 +30,12 @@ export function BodyInteractions({
|
||||
const personRef = useRef<HTMLDivElement | null>(null);
|
||||
const leftContainerRef = useRef<HTMLDivElement | null>(null);
|
||||
const rightContainerRef = useRef<HTMLDivElement | null>(null);
|
||||
const mutationObserverRef = useRef<MutationObserver>(
|
||||
new MutationObserver(() => updateSlots())
|
||||
);
|
||||
const resizeObserverRef = useRef<ResizeObserver>(
|
||||
new ResizeObserver(() => updateSlots())
|
||||
);
|
||||
const canvasRefRef = useRef<HTMLCanvasElement | null>(null);
|
||||
const [slotsButtonsPos, setSlotsButtonPos] = useState<
|
||||
{
|
||||
@@ -78,7 +84,7 @@ export function BodyInteractions({
|
||||
};
|
||||
};
|
||||
|
||||
useLayoutEffect(() => {
|
||||
const updateSlots = () => {
|
||||
if (
|
||||
!(
|
||||
personRef.current &&
|
||||
@@ -88,7 +94,6 @@ export function BodyInteractions({
|
||||
)
|
||||
)
|
||||
return;
|
||||
|
||||
const ctx = canvasRefRef.current.getContext('2d');
|
||||
if (!ctx) return;
|
||||
const slotsPos = getSlotsPos();
|
||||
@@ -147,7 +152,44 @@ export function BodyInteractions({
|
||||
});
|
||||
}
|
||||
setSlotsButtonPos(slots);
|
||||
}, [leftControls, rightControls, variant]);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
updateSlots();
|
||||
}, [variant]);
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
!rightContainerRef.current ||
|
||||
!leftContainerRef.current ||
|
||||
!personRef.current
|
||||
)
|
||||
return;
|
||||
|
||||
resizeObserverRef.current.observe(personRef.current);
|
||||
|
||||
mutationObserverRef.current.observe(rightContainerRef.current, {
|
||||
attributes: true,
|
||||
childList: true,
|
||||
subtree: true,
|
||||
});
|
||||
mutationObserverRef.current.observe(leftContainerRef.current, {
|
||||
attributes: true,
|
||||
childList: true,
|
||||
subtree: true,
|
||||
});
|
||||
|
||||
return () => {
|
||||
if (
|
||||
!rightContainerRef.current ||
|
||||
!leftContainerRef.current ||
|
||||
!personRef.current
|
||||
)
|
||||
return;
|
||||
mutationObserverRef.current.takeRecords();
|
||||
resizeObserverRef.current.unobserve(personRef.current);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="relative">
|
||||
|
||||
@@ -36,6 +36,16 @@ function ButtonContent({
|
||||
);
|
||||
}
|
||||
|
||||
export type ButtonProps = {
|
||||
children?: ReactNode;
|
||||
icon?: ReactNode;
|
||||
variant: 'primary' | 'secondary' | 'tertiary' | 'quaternary';
|
||||
to?: string;
|
||||
loading?: boolean;
|
||||
rounded?: boolean;
|
||||
state?: any;
|
||||
} & React.ButtonHTMLAttributes<HTMLButtonElement>;
|
||||
|
||||
export function Button({
|
||||
children,
|
||||
variant,
|
||||
@@ -46,15 +56,7 @@ export function Button({
|
||||
icon,
|
||||
rounded = false,
|
||||
...props
|
||||
}: {
|
||||
children?: ReactNode;
|
||||
icon?: ReactNode;
|
||||
variant: 'primary' | 'secondary' | 'tertiary' | 'quaternary';
|
||||
to?: string;
|
||||
loading?: boolean;
|
||||
rounded?: boolean;
|
||||
state?: any;
|
||||
} & React.ButtonHTMLAttributes<HTMLButtonElement>) {
|
||||
}: ButtonProps) {
|
||||
const classes = useMemo(() => {
|
||||
const variantsMap = {
|
||||
primary: classNames({
|
||||
|
||||
@@ -19,7 +19,7 @@ interface InputProps {
|
||||
name: string;
|
||||
}
|
||||
|
||||
const FileInputContentBlank = ({
|
||||
export const FileInputContentBlank = ({
|
||||
isDragging,
|
||||
label,
|
||||
}: {
|
||||
@@ -55,7 +55,7 @@ const FileInputContentBlank = ({
|
||||
);
|
||||
};
|
||||
|
||||
const FileInputContentFile = ({
|
||||
export const FileInputContentFile = ({
|
||||
importedFileName,
|
||||
onClearPicker,
|
||||
}: {
|
||||
@@ -79,7 +79,8 @@ const FileInputContentFile = ({
|
||||
<a
|
||||
href="#"
|
||||
className="h-12 w-12 hover:bg-accent-background-20 cursor-pointer"
|
||||
onClick={() => {
|
||||
onClick={(ev) => {
|
||||
ev.stopPropagation();
|
||||
onClearPicker();
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -2,7 +2,8 @@ import { useLocalization } from '@fluent/react';
|
||||
import { useEffect, useMemo, useContext } from 'react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { useConfig } from '@/hooks/config';
|
||||
import { langs, LangContext } from '@/i18n/config';
|
||||
import { LangContext } from '@/i18n/config';
|
||||
import { langs } from '@/i18n/names';
|
||||
import { Dropdown, DropdownDirection } from './Dropdown';
|
||||
|
||||
export function LangSelector({
|
||||
@@ -20,7 +21,21 @@ export function LangSelector({
|
||||
});
|
||||
|
||||
const languagesItems = useMemo(
|
||||
() => langs.map(({ key, name }) => ({ label: name, value: key })),
|
||||
() =>
|
||||
langs.map(({ key, name, emoji }) => ({
|
||||
component: (
|
||||
<div>
|
||||
<img
|
||||
draggable="false"
|
||||
className="inline-block w-auto h-[1em] -translate-y-[0.05em]"
|
||||
src={emoji}
|
||||
/>
|
||||
{' ' + name}
|
||||
</div>
|
||||
),
|
||||
label: name,
|
||||
value: key,
|
||||
})),
|
||||
[]
|
||||
);
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ export function NumberSelector({
|
||||
-
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex flex-grow justify-center items-center w-10 text-standard">
|
||||
<div className="flex flex-grow justify-center text-center items-center w-10 text-standard">
|
||||
{valueLabelFormat ? valueLabelFormat(value) : value}
|
||||
</div>
|
||||
<div className="flex gap-1">
|
||||
|
||||
68
gui/src/components/commons/TauriFileInput.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
import {
|
||||
Control,
|
||||
Controller,
|
||||
RefCallBack,
|
||||
UseControllerProps,
|
||||
} from 'react-hook-form';
|
||||
import { FileInputContentBlank, FileInputContentFile } from './FileInput';
|
||||
import { open } from '@tauri-apps/plugin-dialog';
|
||||
|
||||
export function InnerTauriFileInput({
|
||||
label,
|
||||
value,
|
||||
onChange,
|
||||
directory,
|
||||
ref,
|
||||
}: {
|
||||
label: string;
|
||||
value: string | null;
|
||||
onChange: (...event: any[]) => void;
|
||||
directory: boolean;
|
||||
ref: RefCallBack;
|
||||
}) {
|
||||
return (
|
||||
<div ref={ref} onClick={async () => onChange(await open({ directory }))}>
|
||||
{value !== null
|
||||
? FileInputContentFile({
|
||||
importedFileName: value,
|
||||
onClearPicker: () => onChange(null),
|
||||
})
|
||||
: FileInputContentBlank({ isDragging: false, label })}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export function TauriFileInput({
|
||||
control,
|
||||
rules,
|
||||
name,
|
||||
label,
|
||||
directory = false,
|
||||
}: {
|
||||
rules: UseControllerProps<any>['rules'];
|
||||
control: Control<any>;
|
||||
/**
|
||||
* Use a translation key!
|
||||
**/
|
||||
label: string;
|
||||
name: string;
|
||||
directory?: boolean;
|
||||
disabled?: boolean;
|
||||
}) {
|
||||
return (
|
||||
<Controller
|
||||
rules={rules}
|
||||
name={name}
|
||||
control={control}
|
||||
render={({ field: { onChange, value, ref } }) => (
|
||||
<InnerTauriFileInput
|
||||
label={label}
|
||||
value={value}
|
||||
onChange={onChange}
|
||||
ref={ref}
|
||||
directory={directory}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -37,7 +37,7 @@ export function VerticalStep({
|
||||
setTimeout(() => {
|
||||
if (!refTop.current) return;
|
||||
refTop.current.scrollIntoView({ behavior: 'smooth' });
|
||||
}, 500);
|
||||
}, 300);
|
||||
}, [isSelected]);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
@@ -78,7 +78,7 @@ export function VerticalStep({
|
||||
<div
|
||||
style={{ height: !isSelected ? 0 : height }}
|
||||
className={classNames('overflow-clip px-1', {
|
||||
'duration-500 transition-[height]': shouldAnimate,
|
||||
'duration-300 transition-[height]': shouldAnimate,
|
||||
})}
|
||||
>
|
||||
<div ref={ref}>{children}</div>
|
||||
@@ -88,12 +88,13 @@ export function VerticalStep({
|
||||
);
|
||||
}
|
||||
|
||||
type VerticalStepComponentType = FC<{
|
||||
export type VerticalStepComponentProps = {
|
||||
nextStep: () => void;
|
||||
prevStep: () => void;
|
||||
goTo: (id: string) => void;
|
||||
isActive: boolean;
|
||||
}>;
|
||||
};
|
||||
type VerticalStepComponentType = FC<VerticalStepComponentProps>;
|
||||
|
||||
export type VerticalStep = {
|
||||
title: string;
|
||||
@@ -101,7 +102,13 @@ export type VerticalStep = {
|
||||
component: VerticalStepComponentType;
|
||||
};
|
||||
|
||||
export default function VerticalStepper({ steps }: { steps: VerticalStep[] }) {
|
||||
export default function VerticalStepper({
|
||||
steps,
|
||||
onStepChange,
|
||||
}: {
|
||||
steps: VerticalStep[];
|
||||
onStepChange?: (index: number, id?: string) => void;
|
||||
}) {
|
||||
const [currStep, setStep] = useState(0);
|
||||
|
||||
const nextStep = () => {
|
||||
@@ -121,6 +128,10 @@ export default function VerticalStepper({ steps }: { steps: VerticalStep[] }) {
|
||||
setStep(step);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
onStepChange?.(currStep, steps[currStep].id);
|
||||
}, [currStep]);
|
||||
|
||||
return (
|
||||
<ol className="relative border-l border-gray-700 text-gray-400">
|
||||
{steps.map(({ title, component: StepComponent }, index) => (
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
export function CheckIcon({ size = 9 }: { size?: number }) {
|
||||
export function CheckIcon({
|
||||
size = 9,
|
||||
className,
|
||||
}: {
|
||||
size?: number;
|
||||
className?: string;
|
||||
}) {
|
||||
return (
|
||||
<svg
|
||||
width={size}
|
||||
height={size}
|
||||
viewBox="0 0 9 7"
|
||||
className={className}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<g clipPath="url(#clip0_548_761)">
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
export function CrossIcon({ size = 20 }: { size: number }) {
|
||||
export function CrossIcon({
|
||||
size = 20,
|
||||
className,
|
||||
}: {
|
||||
size?: number;
|
||||
className?: string;
|
||||
}) {
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 20 20"
|
||||
width={size}
|
||||
height={20}
|
||||
height={size}
|
||||
className={className}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
|
||||
@@ -5,12 +5,12 @@ export function WifiIcon({
|
||||
value,
|
||||
disabled = false,
|
||||
}: {
|
||||
value: number;
|
||||
value: number | null;
|
||||
disabled?: boolean;
|
||||
}) {
|
||||
const percent = useMemo(
|
||||
() =>
|
||||
value
|
||||
value != null
|
||||
? Math.max(
|
||||
Math.min(((value - -95) * (100 - 0)) / (-40 - -95) + 0, 100)
|
||||
) / 100
|
||||
@@ -18,7 +18,7 @@ export function WifiIcon({
|
||||
[value]
|
||||
);
|
||||
|
||||
const y = useMemo(() => (percent ? (1 - percent) * 13 : 0), [percent]);
|
||||
const y = useMemo(() => (1 - percent) * 13, [percent]);
|
||||
|
||||
const col = useMemo(() => {
|
||||
const colorsMap: { [key: number]: string } = {
|
||||
|
||||
@@ -241,7 +241,7 @@ export function AddImusStep({
|
||||
<div className="flex flex-col w-full">
|
||||
<div className="flex flex-col gap-4">
|
||||
<Typography color="secondary">
|
||||
{l10n.getString('firmware_tool-board_pins_step-description')}
|
||||
{l10n.getString('firmware_tool-add_imus_step-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="my-4 flex flex-col gap-4">
|
||||
|
||||
@@ -3,7 +3,6 @@ import { Typography } from '@/components/commons/Typography';
|
||||
import { getTrackerName } from '@/hooks/tracker';
|
||||
import { ComponentProps, useEffect, useMemo, useRef, useState } from 'react';
|
||||
import {
|
||||
BoardType,
|
||||
DeviceDataT,
|
||||
DeviceIdTableT,
|
||||
FirmwareUpdateMethod,
|
||||
@@ -13,13 +12,12 @@ import {
|
||||
RpcMessage,
|
||||
TrackerStatus,
|
||||
} from 'solarxr-protocol';
|
||||
import semver from 'semver';
|
||||
import classNames from 'classnames';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import Markdown from 'react-markdown';
|
||||
import remark from 'remark-gfm';
|
||||
import { WarningBox } from '@/components/commons/TipBox';
|
||||
import { FirmwareRelease, useAppContext } from '@/hooks/app';
|
||||
import { useAppContext } from '@/hooks/app';
|
||||
import { DeviceCardControl } from '@/components/firmware-tool/DeviceCard';
|
||||
import { Control, useForm } from 'react-hook-form';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
@@ -35,34 +33,7 @@ import { LoaderIcon, SlimeState } from '@/components/commons/icon/LoaderIcon';
|
||||
import { A } from '@/components/commons/A';
|
||||
import { useAtomValue } from 'jotai';
|
||||
import { devicesAtom } from '@/store/app-store';
|
||||
|
||||
export function checkForUpdate(
|
||||
currentFirmwareRelease: FirmwareRelease,
|
||||
device: DeviceDataT
|
||||
): 'need-update' | 'low-battery' | 'updated' | 'unavailable' {
|
||||
if (
|
||||
device.hardwareInfo?.officialBoardType !== BoardType.SLIMEVR ||
|
||||
!semver.valid(currentFirmwareRelease.version) ||
|
||||
!semver.valid(device.hardwareInfo.firmwareVersion?.toString() ?? 'none')
|
||||
) {
|
||||
return 'unavailable';
|
||||
}
|
||||
|
||||
const canUpdate = semver.lt(
|
||||
device.hardwareInfo.firmwareVersion?.toString() ?? 'none',
|
||||
currentFirmwareRelease.version
|
||||
);
|
||||
|
||||
if (
|
||||
canUpdate &&
|
||||
device.hardwareStatus?.batteryPctEstimate &&
|
||||
device.hardwareStatus?.batteryPctEstimate < 50
|
||||
) {
|
||||
return 'low-battery';
|
||||
}
|
||||
|
||||
return canUpdate ? 'need-update' : 'updated';
|
||||
}
|
||||
import { checkForUpdate } from '@/hooks/firmware-update';
|
||||
|
||||
interface FirmwareUpdateForm {
|
||||
selectedDevices: { [key: string]: boolean };
|
||||
@@ -144,7 +115,7 @@ export function FirmwareUpdate() {
|
||||
device.trackers.length > 0 &&
|
||||
currentFirmwareRelease &&
|
||||
device.hardwareInfo &&
|
||||
checkForUpdate(currentFirmwareRelease, device) === 'need-update' &&
|
||||
checkForUpdate(currentFirmwareRelease, device) === 'can-update' &&
|
||||
device.trackers.every(({ status }) => status === TrackerStatus.OK)
|
||||
) || [];
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ export function CalibrationTutorialPage() {
|
||||
</Typography>
|
||||
</div>
|
||||
<Localized
|
||||
id="onboarding-calibration_tutorial-description"
|
||||
id="onboarding-calibration_tutorial-description-v1"
|
||||
elems={{ b: <b></b> }}
|
||||
>
|
||||
<Typography color="secondary">
|
||||
|
||||
@@ -5,6 +5,7 @@ import { useNavigate } from 'react-router-dom';
|
||||
import {
|
||||
RpcMessage,
|
||||
StartWifiProvisioningRequestT,
|
||||
StatusData,
|
||||
StopWifiProvisioningRequestT,
|
||||
WifiProvisioningStatus,
|
||||
WifiProvisioningStatusResponseT,
|
||||
@@ -15,7 +16,7 @@ import { ArrowLink } from '@/components/commons/ArrowLink';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { LoaderIcon, SlimeState } from '@/components/commons/icon/LoaderIcon';
|
||||
import { ProgressBar } from '@/components/commons/ProgressBar';
|
||||
import { TipBox } from '@/components/commons/TipBox';
|
||||
import { TipBox, WarningBox } from '@/components/commons/TipBox';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { TrackerCard } from '@/components/tracker/TrackerCard';
|
||||
import { useIsRestCalibrationTrackers } from '@/hooks/imu-logic';
|
||||
@@ -23,6 +24,9 @@ import './ConnectTracker.scss';
|
||||
import { useAtomValue } from 'jotai';
|
||||
import { connectedIMUTrackersAtom } from '@/store/app-store';
|
||||
import { BaseModal } from '@/components/commons/BaseModal';
|
||||
import { useStatusContext } from '@/hooks/status-system';
|
||||
import { A } from '@/components/commons/A';
|
||||
import { CONNECT_TRACKER } from '@/utils/tauri';
|
||||
|
||||
const statusLabelMap = {
|
||||
[WifiProvisioningStatus.NONE]:
|
||||
@@ -72,6 +76,8 @@ const statusProgressMap = {
|
||||
|
||||
export function ConnectTrackersPage() {
|
||||
const { l10n } = useLocalization();
|
||||
const { statuses } = useStatusContext();
|
||||
|
||||
const connectedIMUTrackers = useAtomValue(connectedIMUTrackersAtom);
|
||||
const { applyProgress, state } = useOnboarding();
|
||||
const navigate = useNavigate();
|
||||
@@ -159,6 +165,12 @@ export function ConnectTrackersPage() {
|
||||
[connectedIMUTrackers.length]
|
||||
);
|
||||
|
||||
const filteredStatuses = useMemo(() => {
|
||||
return Object.entries(statuses).filter(
|
||||
([, value]) => value.dataType == StatusData.StatusPublicNetwork
|
||||
);
|
||||
}, [statuses]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<BaseModal
|
||||
@@ -187,7 +199,7 @@ export function ConnectTrackersPage() {
|
||||
></Typography>
|
||||
</Localized>
|
||||
<video
|
||||
src="/videos/turn-on-tracker.webm"
|
||||
src={CONNECT_TRACKER}
|
||||
loop
|
||||
autoPlay
|
||||
className="w-full aspect-video rounded-md mt-2"
|
||||
@@ -231,7 +243,23 @@ export function ConnectTrackersPage() {
|
||||
>
|
||||
<TipBox>Conditional tip</TipBox>
|
||||
</Localized>
|
||||
|
||||
{filteredStatuses.map(([, status]) => (
|
||||
<div className="pt-4">
|
||||
<Localized
|
||||
key={status.id}
|
||||
id={`status_system-${StatusData[status.dataType]}`}
|
||||
elems={{
|
||||
PublicFixLink: (
|
||||
<A href="https://docs.slimevr.dev/common-issues.html#network-profile-is-currently-set-to-public"></A>
|
||||
),
|
||||
}}
|
||||
>
|
||||
<WarningBox whitespace={false}>
|
||||
{`Warning, you should fix ${StatusData[status.dataType]}`}
|
||||
</WarningBox>
|
||||
</Localized>
|
||||
</div>
|
||||
))}
|
||||
<div
|
||||
className={classNames(
|
||||
'rounded-xl h-24 flex gap-2 p-3 lg:w-full mt-4 relative',
|
||||
|
||||
@@ -17,16 +17,19 @@ import { Tooltip } from '@/components/commons/Tooltip';
|
||||
function IncrementButton({
|
||||
children,
|
||||
onClick,
|
||||
bgDark,
|
||||
}: {
|
||||
children: ReactNode;
|
||||
onClick?: MouseEventHandler<HTMLDivElement>;
|
||||
bgDark: boolean;
|
||||
}) {
|
||||
return (
|
||||
<div
|
||||
onClick={onClick}
|
||||
className={classNames(
|
||||
'p-3 rounded-lg xs:w-10 xs:h-10 flex flex-col justify-center items-center cursor-pointer',
|
||||
'bg-background-40 hover:bg-opacity-50 active:bg-accent-background-30'
|
||||
'hover:bg-opacity-50 active:bg-accent-background-30',
|
||||
{ 'bg-background-60': bgDark, 'bg-background-40': !bgDark }
|
||||
)}
|
||||
>
|
||||
<Typography variant="vr-accessible" bold>
|
||||
@@ -128,43 +131,51 @@ function ProportionItem({
|
||||
'duration-300'
|
||||
)}
|
||||
>
|
||||
<Tooltip
|
||||
content={
|
||||
<Localized id={`${part.label}-desc`}>
|
||||
<Typography
|
||||
variant="standard"
|
||||
whitespace="whitespace-pre-wrap"
|
||||
></Typography>
|
||||
</Localized>
|
||||
}
|
||||
preferedDirection="bottom"
|
||||
mode="corner"
|
||||
>
|
||||
<div className="flex flex-grow" onClick={toggleOpen}>
|
||||
<Typography variant="section-title" bold>
|
||||
{l10n.getString(part.label)}
|
||||
</Typography>
|
||||
</div>
|
||||
</Tooltip>
|
||||
<div className="flex flex-grow" onClick={toggleOpen}>
|
||||
<Typography variant="section-title" bold>
|
||||
{l10n.getString(part.label)}
|
||||
</Typography>
|
||||
<Tooltip
|
||||
content={
|
||||
<Localized id={`${part.label}-desc`}>
|
||||
<Typography
|
||||
variant="standard"
|
||||
whitespace="whitespace-pre-wrap"
|
||||
></Typography>
|
||||
</Localized>
|
||||
}
|
||||
preferedDirection="bottom"
|
||||
mode="corner"
|
||||
>
|
||||
<div className="hover:opacity-100 opacity-65 ml-1 scale-[0.65] border-2 border-solid text-xs w-5 h-5 flex justify-center items-center rounded-full cursor-help">
|
||||
i
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
<div className="flex gap-4 items-center mobile:justify-center mobile:w-full">
|
||||
<div
|
||||
className={classNames(
|
||||
'flex items-center gap-2 my-2 opacity-10',
|
||||
part.type === 'group-part'
|
||||
? 'group-hover/child-buttons:opacity-100'
|
||||
: 'group-hover/buttons:opacity-100'
|
||||
)}
|
||||
className={classNames('flex items-center gap-2 my-2 opacity-100')}
|
||||
>
|
||||
{!precise && (
|
||||
<IncrementButton onClick={() => boneIncrement(-5)}>
|
||||
<IncrementButton
|
||||
bgDark={part.type !== 'group-part'}
|
||||
onClick={() => boneIncrement(-5)}
|
||||
>
|
||||
{configFormat.format(-5)}
|
||||
</IncrementButton>
|
||||
)}
|
||||
<IncrementButton onClick={() => boneIncrement(-1)}>
|
||||
<IncrementButton
|
||||
bgDark={part.type !== 'group-part'}
|
||||
onClick={() => boneIncrement(-1)}
|
||||
>
|
||||
{configFormat.format(-1)}
|
||||
</IncrementButton>
|
||||
{precise && (
|
||||
<IncrementButton onClick={() => boneIncrement(-0.5)}>
|
||||
<IncrementButton
|
||||
bgDark={part.type !== 'group-part'}
|
||||
onClick={() => boneIncrement(-0.5)}
|
||||
>
|
||||
{configFormat.format(-0.5)}
|
||||
</IncrementButton>
|
||||
)}
|
||||
@@ -181,23 +192,27 @@ function ProportionItem({
|
||||
)}
|
||||
</div>
|
||||
<div
|
||||
className={classNames(
|
||||
'flex items-center gap-2 my-2 opacity-10',
|
||||
part.type === 'group-part'
|
||||
? 'group-hover/child-buttons:opacity-100'
|
||||
: 'group-hover/buttons:opacity-100'
|
||||
)}
|
||||
className={classNames('flex items-center gap-2 my-2 opacity-100')}
|
||||
>
|
||||
{precise && (
|
||||
<IncrementButton onClick={() => boneIncrement(+0.5)}>
|
||||
<IncrementButton
|
||||
bgDark={part.type !== 'group-part'}
|
||||
onClick={() => boneIncrement(+0.5)}
|
||||
>
|
||||
{configFormat.format(+0.5)}
|
||||
</IncrementButton>
|
||||
)}
|
||||
<IncrementButton onClick={() => boneIncrement(+1)}>
|
||||
<IncrementButton
|
||||
bgDark={part.type !== 'group-part'}
|
||||
onClick={() => boneIncrement(+1)}
|
||||
>
|
||||
{configFormat.format(+1)}
|
||||
</IncrementButton>
|
||||
{!precise && (
|
||||
<IncrementButton onClick={() => boneIncrement(+5)}>
|
||||
<IncrementButton
|
||||
bgDark={part.type !== 'group-part'}
|
||||
onClick={() => boneIncrement(+5)}
|
||||
>
|
||||
{configFormat.format(+5)}
|
||||
</IncrementButton>
|
||||
)}
|
||||
@@ -208,7 +223,8 @@ function ProportionItem({
|
||||
<div
|
||||
className={classNames(
|
||||
'flex items-center fill-background-20',
|
||||
part.type === 'bone' && 'opacity-20'
|
||||
part.type === 'bone' && 'opacity-50 cursor-not-allowed',
|
||||
part.type !== 'bone' && 'hover:scale-110'
|
||||
)}
|
||||
onClick={toggleOpen}
|
||||
>
|
||||
|
||||
@@ -35,6 +35,7 @@ import { Typography } from '@/components/commons/Typography';
|
||||
import { useLocaleConfig } from '@/i18n/config';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { ResetButton } from '@/components/home/ResetButton';
|
||||
import { Vector3 } from 'three';
|
||||
|
||||
function IconButton({
|
||||
onClick,
|
||||
@@ -454,9 +455,25 @@ export function ManualProportionsPage() {
|
||||
</div>
|
||||
</div>
|
||||
<div className="rounded-md overflow-clip w-1/3 bg-background-60 hidden mobile:hidden sm:flex relative">
|
||||
<SkeletonVisualizerWidget />
|
||||
<SkeletonVisualizerWidget
|
||||
onInit={(context) => {
|
||||
context.addView({
|
||||
left: 0,
|
||||
bottom: 0,
|
||||
width: 1,
|
||||
height: 1,
|
||||
position: new Vector3(3, 2.5, -3),
|
||||
onHeightChange(v, newHeight) {
|
||||
// retouch the target and scale settings so the height element doesnt hide the head
|
||||
v.controls.target.set(0, newHeight / 1.7, 0);
|
||||
const scale = Math.max(1, newHeight) / 1.2;
|
||||
v.camera.zoom = 1 / scale;
|
||||
},
|
||||
});
|
||||
}}
|
||||
/>
|
||||
|
||||
<div className="top-4 w-full px-4 absolute flex gap-2 flex-col md:flex-row">
|
||||
<div className="top-4 w-full px-4 absolute flex gap-2 flex-col lg:flex-row md:flex-wrap">
|
||||
<div className="h-14 flex flex-grow items-center">
|
||||
<ResetButton
|
||||
type={ResetType.Full}
|
||||
|
||||
@@ -65,7 +65,7 @@ export function ScaledProportionsPage() {
|
||||
elems={{ b: <b></b> }}
|
||||
>
|
||||
<Typography
|
||||
whitespace="whitespace-pre"
|
||||
whitespace="whitespace-pre-line"
|
||||
color="text-background-60"
|
||||
></Typography>
|
||||
</Localized>
|
||||
|
||||
@@ -24,7 +24,9 @@ export function DoneStep({ variant }: { variant: 'onboarding' | 'alone' }) {
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
<SkeletonVisualizerWidget />
|
||||
<div className="flex flex-grow max-h-[450px]">
|
||||
<SkeletonVisualizerWidget />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,9 @@ import { ResetType } from 'solarxr-protocol';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { ResetButton } from '@/components/home/ResetButton';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import { useBreakpoint } from '@/hooks/breakpoint';
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { CrossIcon } from '@/components/commons/icon/CrossIcon';
|
||||
import { CheckIcon } from '@/components/commons/icon/CheckIcon';
|
||||
|
||||
export function PreparationStep({
|
||||
nextStep,
|
||||
@@ -14,7 +15,6 @@ export function PreparationStep({
|
||||
prevStep: () => void;
|
||||
variant: 'onboarding' | 'alone';
|
||||
}) {
|
||||
const { isMobile } = useBreakpoint('mobile');
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
@@ -25,27 +25,43 @@ export function PreparationStep({
|
||||
{l10n.getString('onboarding-automatic_mounting-preparation-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(
|
||||
'onboarding-automatic_mounting-preparation-step-0'
|
||||
)}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(
|
||||
'onboarding-automatic_mounting-preparation-step-1'
|
||||
)}
|
||||
</Typography>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-0">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-1">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-2">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
{isMobile && (
|
||||
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-12">
|
||||
<div className="grid grid-cols-3 py-4 gap-2">
|
||||
<div className="flex flex-col bg-background-70 rounded-md relative max-h-64">
|
||||
<CheckIcon className="md:w-14 sm:w-8 w-6 h-auto absolute top-2 right-2 fill-status-success"></CheckIcon>
|
||||
<img
|
||||
src="/images/reset-pose.webp"
|
||||
width={50}
|
||||
src="/images/reset/FullResetPose.webp"
|
||||
className="h-full object-contain"
|
||||
alt="Reset position"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex flex-col bg-background-70 rounded-md relative max-h-64">
|
||||
<CheckIcon className="md:w-14 sm:w-8 w-6 h-auto absolute top-2 right-2 fill-status-success"></CheckIcon>
|
||||
<img
|
||||
src="/images/reset/FullResetPoseSide.webp"
|
||||
className="h-full object-contain"
|
||||
alt="Reset position side"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col bg-background-70 rounded-md relative max-h-64">
|
||||
<CrossIcon className="md:w-14 sm:w-8 w-6 h-auto absolute top-2 right-2 fill-status-critical"></CrossIcon>
|
||||
<img
|
||||
src="/images/reset/FullResetPoseWrong.webp"
|
||||
className="h-full object-contain"
|
||||
alt="Reset position wrong"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex gap-3 mobile:justify-between">
|
||||
<Button
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tertiary'}
|
||||
@@ -60,11 +76,6 @@ export function PreparationStep({
|
||||
></ResetButton>
|
||||
</div>
|
||||
</div>
|
||||
{!isMobile && (
|
||||
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-12">
|
||||
<img src="/images/reset-pose.webp" width={90} alt="Reset position" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -7,12 +7,18 @@ import { PreparationStep } from './mounting-steps/Preparation';
|
||||
import { PutTrackersOnStep } from './mounting-steps/PutTrackersOn';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
|
||||
const steps: Step[] = [
|
||||
// Auto mounting steps that can be included within other flows
|
||||
export const autoMountingSteps: Step[] = [
|
||||
{ type: 'numbered', component: PutTrackersOnStep },
|
||||
{ type: 'numbered', component: PreparationStep },
|
||||
{ type: 'numbered', component: MountingResetStep },
|
||||
];
|
||||
|
||||
const steps: Step[] = [
|
||||
...autoMountingSteps,
|
||||
{ type: 'fullsize', component: DoneStep },
|
||||
];
|
||||
|
||||
export function AutomaticMountingPage() {
|
||||
const { l10n } = useLocalization();
|
||||
const { applyProgress, state } = useOnboarding();
|
||||
|
||||
@@ -56,8 +56,7 @@ export function ManualMountingPage() {
|
||||
mountingOrientationDegrees
|
||||
);
|
||||
assignreq.trackerId = td.tracker.trackerId;
|
||||
assignreq.allowDriftCompensation =
|
||||
td.tracker.info?.allowDriftCompensation ?? true;
|
||||
assignreq.allowDriftCompensation = false;
|
||||
|
||||
sendRPCPacket(RpcMessage.AssignTrackerRequest, assignreq);
|
||||
});
|
||||
|
||||
@@ -2,8 +2,9 @@ import { ResetType } from 'solarxr-protocol';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { ResetButton } from '@/components/home/ResetButton';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import { useBreakpoint } from '@/hooks/breakpoint';
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { CheckIcon } from '@/components/commons/icon/CheckIcon';
|
||||
import { CrossIcon } from '@/components/commons/icon/CrossIcon';
|
||||
|
||||
export function PreparationStep({
|
||||
nextStep,
|
||||
@@ -14,7 +15,6 @@ export function PreparationStep({
|
||||
prevStep: () => void;
|
||||
variant: 'onboarding' | 'alone';
|
||||
}) {
|
||||
const { isMobile } = useBreakpoint('mobile');
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
@@ -25,27 +25,43 @@ export function PreparationStep({
|
||||
{l10n.getString('onboarding-automatic_mounting-preparation-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(
|
||||
'onboarding-automatic_mounting-preparation-step-0'
|
||||
)}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(
|
||||
'onboarding-automatic_mounting-preparation-step-1'
|
||||
)}
|
||||
</Typography>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-0">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-1">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-2">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
{isMobile && (
|
||||
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-12">
|
||||
<div className="grid grid-cols-3 py-4 gap-2">
|
||||
<div className="flex flex-col bg-background-70 rounded-md relative max-h-64">
|
||||
<CheckIcon className="md:w-14 sm:w-8 w-6 h-auto absolute top-2 right-2 fill-status-success"></CheckIcon>
|
||||
<img
|
||||
src="/images/reset-pose.webp"
|
||||
width={100}
|
||||
src="/images/reset/FullResetPose.webp"
|
||||
className="h-full object-contain"
|
||||
alt="Reset position"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex flex-col bg-background-70 rounded-md relative max-h-64">
|
||||
<CheckIcon className="md:w-14 sm:w-8 w-6 h-auto absolute top-2 right-2 fill-status-success"></CheckIcon>
|
||||
<img
|
||||
src="/images/reset/FullResetPoseSide.webp"
|
||||
className="h-full object-contain"
|
||||
alt="Reset position side"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col bg-background-70 rounded-md relative max-h-64">
|
||||
<CrossIcon className="md:w-14 sm:w-8 w-6 h-auto absolute top-2 right-2 fill-status-critical"></CrossIcon>
|
||||
<img
|
||||
src="/images/reset/FullResetPoseWrong.webp"
|
||||
className="h-full object-contain"
|
||||
alt="Reset position wrong"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex gap-3 mobile:justify-between">
|
||||
<Button
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tertiary'}
|
||||
@@ -60,11 +76,6 @@ export function PreparationStep({
|
||||
></ResetButton>
|
||||
</div>
|
||||
</div>
|
||||
{!isMobile && (
|
||||
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-12">
|
||||
<img src="/images/reset-pose.webp" width={90} alt="Reset position" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,229 @@
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { DoneStep } from './stay-aligned-steps/Done';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import {
|
||||
FlatRelaxedPoseStep,
|
||||
SittingRelaxedPoseStep,
|
||||
StandingRelaxedPoseStep,
|
||||
} from './stay-aligned-steps/RelaxedPoseSteps';
|
||||
import { EnableStayAlignedRequestT, RpcMessage } from 'solarxr-protocol';
|
||||
import { RPCPacketType, useWebsocketAPI } from '@/hooks/websocket-api';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import VerticalStepper from '@/components/commons/VerticalStepper';
|
||||
import { useBreakpoint } from '@/hooks/breakpoint';
|
||||
import {
|
||||
SkeletonPreviewView,
|
||||
SkeletonVisualizerWidget,
|
||||
} from '@/components/widgets/SkeletonVisualizerWidget';
|
||||
import { Vector3 } from 'three';
|
||||
import { Easing } from '@tweenjs/tween.js';
|
||||
import { VerifyMountingStep } from './stay-aligned-steps/VerifyMounting';
|
||||
import { PutTrackersOnStep } from './stay-aligned-steps/PutTrackersOnStep';
|
||||
import { PreparationStep } from './stay-aligned-steps/PreparationStep';
|
||||
|
||||
export function enableStayAligned(
|
||||
enable: boolean,
|
||||
sendRPCPacket: (type: RpcMessage, data: RPCPacketType) => void
|
||||
) {
|
||||
const req = new EnableStayAlignedRequestT();
|
||||
req.enable = enable;
|
||||
sendRPCPacket(RpcMessage.EnableStayAlignedRequest, req);
|
||||
}
|
||||
|
||||
export function StayAlignedSetup() {
|
||||
const { l10n } = useLocalization();
|
||||
const { isMobile } = useBreakpoint('mobile');
|
||||
const { sendRPCPacket } = useWebsocketAPI();
|
||||
|
||||
const viewsRef = useRef<{
|
||||
cam1?: SkeletonPreviewView;
|
||||
cam2?: SkeletonPreviewView;
|
||||
}>({});
|
||||
|
||||
useEffect(() => {
|
||||
// Disable Stay Aligned as soon as we enter the setup flow so that we don't
|
||||
// adjust the trackers while trying to set up the feature
|
||||
enableStayAligned(false, sendRPCPacket);
|
||||
}, []);
|
||||
|
||||
const updateCamSizes = () => {
|
||||
const views = viewsRef.current;
|
||||
if (!views.cam1 || !views.cam2) return;
|
||||
if (!views.cam2.hidden) {
|
||||
if (isMobile) {
|
||||
views.cam1.height = 1;
|
||||
views.cam2.height = 1;
|
||||
views.cam2.width = 0.5;
|
||||
views.cam1.width = 0.5;
|
||||
views.cam1.bottom = 0;
|
||||
views.cam2.bottom = 0;
|
||||
views.cam2.left = 0.5;
|
||||
} else {
|
||||
views.cam1.height = 0.5;
|
||||
views.cam2.height = 0.5;
|
||||
views.cam2.width = 1;
|
||||
views.cam1.width = 1;
|
||||
views.cam1.bottom = 0;
|
||||
views.cam2.bottom = 0.5;
|
||||
views.cam2.left = 0;
|
||||
}
|
||||
} else {
|
||||
views.cam1.height = 1;
|
||||
views.cam2.height = 1;
|
||||
views.cam2.width = 1;
|
||||
views.cam1.width = 1;
|
||||
views.cam1.bottom = 0;
|
||||
views.cam2.bottom = 0;
|
||||
views.cam2.left = 0;
|
||||
}
|
||||
};
|
||||
|
||||
const onStepChange = (index: number, id?: string) => {
|
||||
if (id === 'start') {
|
||||
enableStayAligned(false, sendRPCPacket);
|
||||
}
|
||||
|
||||
const views = viewsRef.current;
|
||||
if (!views.cam1 || !views.cam2) return;
|
||||
switch (id) {
|
||||
case 'standing': {
|
||||
views.cam2.hidden = true;
|
||||
views.cam1.tween
|
||||
.stop()
|
||||
.to(new Vector3(0, 1, -6), 500)
|
||||
.easing(Easing.Quadratic.InOut)
|
||||
.startFromCurrentValues();
|
||||
break;
|
||||
}
|
||||
case 'flat':
|
||||
case 'sitting': {
|
||||
views.cam2.hidden = false;
|
||||
views.cam1.tween
|
||||
.stop()
|
||||
.to(new Vector3(-5, 1, -0), 500)
|
||||
.easing(Easing.Quadratic.InOut)
|
||||
.startFromCurrentValues();
|
||||
|
||||
views.cam2.tween
|
||||
.stop()
|
||||
.to(new Vector3(0, 4, -0.2), 500)
|
||||
.easing(Easing.Quadratic.InOut)
|
||||
.startFromCurrentValues();
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
views.cam2.hidden = true;
|
||||
views.cam1.tween
|
||||
.stop()
|
||||
.to(new Vector3(3, 2.5, -3), 1000)
|
||||
.easing(Easing.Quadratic.InOut)
|
||||
.startFromCurrentValues();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateCamSizes();
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
updateCamSizes();
|
||||
}, [isMobile]);
|
||||
|
||||
return (
|
||||
<div className="h-full w-full flex gap-2 mobile:flex-col bg-background-80">
|
||||
<div className="bg-background-70 rounded-md flex-grow p-4 overflow-y-auto">
|
||||
<div className="flex flex-col xs:max-w-lg gap-3">
|
||||
<Typography variant="main-title">
|
||||
{l10n.getString('onboarding-stay_aligned-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString('onboarding-stay_aligned-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex pl-4 pt-4">
|
||||
<VerticalStepper
|
||||
onStepChange={onStepChange}
|
||||
steps={[
|
||||
{
|
||||
title: l10n.getString(
|
||||
'onboarding-stay_aligned-put_trackers_on-title'
|
||||
),
|
||||
component: PutTrackersOnStep,
|
||||
id: 'start',
|
||||
},
|
||||
{
|
||||
title: l10n.getString(
|
||||
'onboarding-stay_aligned-preparation-title'
|
||||
),
|
||||
component: PreparationStep,
|
||||
},
|
||||
{
|
||||
title: l10n.getString(
|
||||
'onboarding-stay_aligned-verify_mounting-title'
|
||||
),
|
||||
component: VerifyMountingStep,
|
||||
},
|
||||
{
|
||||
title: l10n.getString(
|
||||
'onboarding-stay_aligned-relaxed_poses-standing-title'
|
||||
),
|
||||
component: StandingRelaxedPoseStep,
|
||||
id: 'standing',
|
||||
},
|
||||
{
|
||||
title: l10n.getString(
|
||||
'onboarding-stay_aligned-relaxed_poses-sitting-title'
|
||||
),
|
||||
component: SittingRelaxedPoseStep,
|
||||
id: 'sitting',
|
||||
},
|
||||
{
|
||||
title: l10n.getString(
|
||||
'onboarding-stay_aligned-relaxed_poses-flat-title'
|
||||
),
|
||||
component: FlatRelaxedPoseStep,
|
||||
id: 'flat',
|
||||
},
|
||||
{
|
||||
title: l10n.getString('onboarding-stay_aligned-done-title'),
|
||||
component: DoneStep,
|
||||
},
|
||||
]}
|
||||
></VerticalStepper>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-background-70 rounded-md xs:max-w-xs sm:max-w-sm md:max-w-md lg:max-w-lg w-full mobile:h-[30%]">
|
||||
<SkeletonVisualizerWidget
|
||||
onInit={(context) => {
|
||||
viewsRef.current.cam1 = context.addView({
|
||||
left: 0,
|
||||
bottom: 0,
|
||||
width: 1,
|
||||
height: 1,
|
||||
position: new Vector3(3, 2.5, -3),
|
||||
onHeightChange(v, newHeight) {
|
||||
v.controls.target.set(0, newHeight / 2, 0);
|
||||
const scale = Math.max(1, newHeight) / 1.5;
|
||||
v.camera.zoom = 1 / scale;
|
||||
},
|
||||
});
|
||||
|
||||
viewsRef.current.cam2 = context.addView({
|
||||
left: 0,
|
||||
bottom: 0.5,
|
||||
width: 1,
|
||||
height: 0.5,
|
||||
hidden: true,
|
||||
position: new Vector3(3, 2.5, -3),
|
||||
onHeightChange(v, newHeight) {
|
||||
v.controls.target.set(0, newHeight / 2, 0);
|
||||
const scale = Math.max(1, newHeight) / 1.5;
|
||||
v.camera.zoom = 1 / scale;
|
||||
},
|
||||
});
|
||||
}}
|
||||
></SkeletonVisualizerWidget>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper';
|
||||
import { Localized } from '@fluent/react';
|
||||
|
||||
export function DoneStep({ goTo }: VerticalStepComponentProps) {
|
||||
return (
|
||||
<div className="flex flex-col items-center w-full justify-center gap-5 py-2">
|
||||
<div className="flex gap-1 flex-col justify-center items-center pt-10">
|
||||
<Localized id="onboarding-stay_aligned-done-description">
|
||||
<Typography variant="main-title"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-stay_aligned-done-description-2">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
<div className="flex gap-3 justify-between">
|
||||
<Localized id="onboarding-stay_aligned-restart">
|
||||
<Button variant={'secondary'} onClick={() => goTo('start')}></Button>
|
||||
</Localized>
|
||||
<Localized id="onboarding-stay_aligned-done">
|
||||
<Button
|
||||
variant="primary"
|
||||
to="/settings/trackers"
|
||||
state={{ scrollTo: 'stayaligned' }}
|
||||
></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { CheckIcon } from '@/components/commons/icon/CheckIcon';
|
||||
import { CrossIcon } from '@/components/commons/icon/CrossIcon';
|
||||
import { TipBox } from '@/components/commons/TipBox';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper';
|
||||
import { ResetButton } from '@/components/home/ResetButton';
|
||||
import { Localized } from '@fluent/react';
|
||||
import { ResetType } from 'solarxr-protocol';
|
||||
|
||||
export function PreparationStep({
|
||||
nextStep,
|
||||
prevStep,
|
||||
}: VerticalStepComponentProps) {
|
||||
return (
|
||||
<div className="flex flex-col flex-grow justify-between py-2 gap-2">
|
||||
<div className="flex flex-col gap-1">
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-0">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-1">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
<Localized id="onboarding-automatic_mounting-preparation-v2-step-2">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
<Localized id="onboarding-stay_aligned-preparation-tip">
|
||||
<TipBox>TIP</TipBox>
|
||||
</Localized>
|
||||
<div className="grid grid-cols-3 py-4 gap-2">
|
||||
<div className="flex flex-col bg-background-60 rounded-md relative">
|
||||
<CheckIcon className="md:w-20 sm:w-10 w-6 h-auto absolute top-2 right-2 fill-status-success"></CheckIcon>
|
||||
<img src="/images/reset/FullResetPose.webp" alt="Reset position" />
|
||||
</div>
|
||||
<div className="flex flex-col bg-background-60 rounded-md relative">
|
||||
<CheckIcon className="md:w-20 sm:w-10 w-6 h-auto absolute top-2 right-2 fill-status-success"></CheckIcon>
|
||||
<img
|
||||
src="/images/reset/FullResetPoseSide.webp"
|
||||
alt="Reset position side"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col bg-background-60 rounded-md relative">
|
||||
<CrossIcon className="md:w-20 sm:w-10 w-6 h-auto absolute top-2 right-2 fill-status-critical"></CrossIcon>
|
||||
<img
|
||||
src="/images/reset/FullResetPoseWrong.webp"
|
||||
alt="Reset position wrong"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex gap-3 justify-between">
|
||||
<Localized id="onboarding-stay_aligned-previous_step">
|
||||
<Button variant={'secondary'} onClick={prevStep}></Button>
|
||||
</Localized>
|
||||
|
||||
<ResetButton
|
||||
size="small"
|
||||
type={ResetType.Full}
|
||||
onReseted={nextStep}
|
||||
></ResetButton>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
import { BodyDisplay } from '@/components/commons/BodyDisplay';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { TipBox, WarningBox } from '@/components/commons/TipBox';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper';
|
||||
import { assignedTrackersAtom } from '@/store/app-store';
|
||||
import { Localized } from '@fluent/react';
|
||||
import { useAtomValue } from 'jotai';
|
||||
|
||||
export function PutTrackersOnStep({ nextStep }: VerticalStepComponentProps) {
|
||||
const assignedTrackers = useAtomValue(assignedTrackersAtom);
|
||||
|
||||
// Keep the button while in dev
|
||||
const canContinue = assignedTrackers.length >= 5 || import.meta.env.DEV;
|
||||
|
||||
return (
|
||||
<div className="flex flex-col w-full py-2">
|
||||
<div className="flex flex-col flex-grow gap-2">
|
||||
<div className="flex flex-grow flex-col gap-4">
|
||||
<div>
|
||||
<Localized id="onboarding-stay_aligned-put_trackers_on-description">
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<Localized id="tips-find_tracker">
|
||||
<TipBox>Tip</TipBox>
|
||||
</Localized>
|
||||
</div>
|
||||
{assignedTrackers.length < 5 && (
|
||||
<div className="flex">
|
||||
<Localized id="onboarding-stay_aligned-put_trackers_on-trackers_warning">
|
||||
<WarningBox>Warning</WarningBox>
|
||||
</Localized>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-16">
|
||||
<BodyDisplay
|
||||
trackers={assignedTrackers}
|
||||
width={150}
|
||||
dotsSize={15}
|
||||
variant="dots"
|
||||
hideUnassigned={true}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="flex gap-3 justify-end">
|
||||
<Localized id="onboarding-stay_aligned-put_trackers_on-next">
|
||||
<Button
|
||||
variant="primary"
|
||||
onClick={nextStep}
|
||||
disabled={!canContinue}
|
||||
></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import {
|
||||
DetectRelaxedPoseButton,
|
||||
ResetRelaxedPoseButton,
|
||||
} from '@/components/stay-aligned/RelaxedPose';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import { StayAlignedRelaxedPose } from 'solarxr-protocol';
|
||||
import { enableStayAligned } from '@/components/onboarding/pages/stay-aligned/StayAlignedSetup';
|
||||
import { useWebsocketAPI } from '@/hooks/websocket-api';
|
||||
import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper';
|
||||
import { ReactNode } from 'react';
|
||||
|
||||
function PosePage({
|
||||
nextStep,
|
||||
prevStep,
|
||||
descriptionKeys,
|
||||
children,
|
||||
relaxedPose,
|
||||
lastStep = false,
|
||||
}: VerticalStepComponentProps & {
|
||||
descriptionKeys: string[];
|
||||
children: ReactNode;
|
||||
relaxedPose: StayAlignedRelaxedPose;
|
||||
lastStep?: boolean;
|
||||
}) {
|
||||
const { l10n } = useLocalization();
|
||||
const { sendRPCPacket } = useWebsocketAPI();
|
||||
return (
|
||||
<div className="flex flex-col py-2">
|
||||
<div className="flex flex-col gap-2">
|
||||
{descriptionKeys.map((descriptionKey) => (
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(descriptionKey)}
|
||||
</Typography>
|
||||
))}
|
||||
</div>
|
||||
<div className="flex pt-1 items-center fill-background-50 justify-center px-12">
|
||||
{children}
|
||||
</div>
|
||||
<div className="flex justify-between">
|
||||
<Button variant={'secondary'} onClick={prevStep}>
|
||||
{l10n.getString('onboarding-stay_aligned-previous_step')}
|
||||
</Button>
|
||||
<div className="flex gap-2">
|
||||
<ResetRelaxedPoseButton
|
||||
variant="secondary"
|
||||
onClick={() => {
|
||||
if (lastStep) {
|
||||
enableStayAligned(true, sendRPCPacket);
|
||||
}
|
||||
nextStep();
|
||||
}}
|
||||
pose={relaxedPose}
|
||||
>
|
||||
{l10n.getString('onboarding-stay_aligned-relaxed_poses-skip_step')}
|
||||
</ResetRelaxedPoseButton>
|
||||
<DetectRelaxedPoseButton
|
||||
onClick={() => {
|
||||
if (lastStep) {
|
||||
enableStayAligned(true, sendRPCPacket);
|
||||
}
|
||||
nextStep();
|
||||
}}
|
||||
pose={relaxedPose}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export const StandingRelaxedPoseStep = (
|
||||
verticalStepProps: VerticalStepComponentProps
|
||||
) => (
|
||||
<PosePage
|
||||
{...verticalStepProps}
|
||||
descriptionKeys={[
|
||||
'onboarding-stay_aligned-relaxed_poses-standing-step-0',
|
||||
'onboarding-stay_aligned-relaxed_poses-standing-step-1-v2',
|
||||
]}
|
||||
relaxedPose={StayAlignedRelaxedPose.STANDING}
|
||||
>
|
||||
<img
|
||||
src={'/images/stay-aligned/StayAlignedStanding.webp'}
|
||||
width={300}
|
||||
alt="Reset position"
|
||||
/>
|
||||
</PosePage>
|
||||
);
|
||||
|
||||
export const SittingRelaxedPoseStep = (
|
||||
verticalStepProps: VerticalStepComponentProps
|
||||
) => (
|
||||
<PosePage
|
||||
{...verticalStepProps}
|
||||
descriptionKeys={[
|
||||
'onboarding-stay_aligned-relaxed_poses-sitting-step-0',
|
||||
'onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2',
|
||||
]}
|
||||
relaxedPose={StayAlignedRelaxedPose.SITTING}
|
||||
>
|
||||
<img
|
||||
src={'/images/stay-aligned/StayAlignedSitting.webp'}
|
||||
width={300}
|
||||
alt="Reset position"
|
||||
/>
|
||||
</PosePage>
|
||||
);
|
||||
|
||||
export const FlatRelaxedPoseStep = (
|
||||
verticalStepProps: VerticalStepComponentProps
|
||||
) => (
|
||||
<PosePage
|
||||
{...verticalStepProps}
|
||||
descriptionKeys={[
|
||||
'onboarding-stay_aligned-relaxed_poses-flat-step-0',
|
||||
'onboarding-stay_aligned-relaxed_poses-flat-step-1-v2',
|
||||
]}
|
||||
relaxedPose={StayAlignedRelaxedPose.FLAT}
|
||||
lastStep
|
||||
>
|
||||
<img
|
||||
src={'/images/stay-aligned/StayAlignedFloor.webp'}
|
||||
width={600}
|
||||
alt="Reset position"
|
||||
/>
|
||||
</PosePage>
|
||||
);
|
||||
@@ -0,0 +1,46 @@
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper';
|
||||
import { Localized } from '@fluent/react';
|
||||
|
||||
export function VerifyMountingStep({
|
||||
nextStep,
|
||||
prevStep,
|
||||
}: VerticalStepComponentProps) {
|
||||
return (
|
||||
<div className="flex flex-grow flex-col gap-4 py-2">
|
||||
<div className="flex flex-col gap-2">
|
||||
<Localized id="onboarding-stay_aligned-verify_mounting-step-0">
|
||||
<Typography color="secondary" />
|
||||
</Localized>
|
||||
<Localized id="onboarding-stay_aligned-verify_mounting-step-1">
|
||||
<Typography color="secondary" />
|
||||
</Localized>
|
||||
<Localized id="onboarding-stay_aligned-verify_mounting-step-2">
|
||||
<Typography color="secondary" />
|
||||
</Localized>
|
||||
<Localized id="onboarding-stay_aligned-verify_mounting-step-3">
|
||||
<Typography color="secondary" />
|
||||
</Localized>
|
||||
</div>
|
||||
<div className="flex gap-3 justify-between">
|
||||
<Localized id="onboarding-stay_aligned-previous_step">
|
||||
<Button variant="secondary" onClick={prevStep}></Button>
|
||||
</Localized>
|
||||
|
||||
<div className="flex gap-2">
|
||||
<Localized id="onboarding-stay_aligned-verify_mounting-redo_mounting">
|
||||
<Button
|
||||
variant={'secondary'}
|
||||
to="/onboarding/mounting/choose"
|
||||
state={{ alonePage: true }}
|
||||
></Button>
|
||||
</Localized>
|
||||
<Localized id="onboarding-stay_aligned-next_step">
|
||||
<Button variant="primary" onClick={nextStep}></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -21,12 +21,43 @@ const ASSIGN_MODE_OPTIONS = [
|
||||
{} as Record<AssignMode, number>
|
||||
);
|
||||
|
||||
const ItemContent = ({
|
||||
mode,
|
||||
trackersCount,
|
||||
}: {
|
||||
mode: string;
|
||||
trackersCount: number;
|
||||
}) => {
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
<>
|
||||
<Typography variant="main-title" textAlign="text-right">
|
||||
{l10n.getString('onboarding-assign_trackers-option-amount', {
|
||||
trackersCount,
|
||||
})}
|
||||
</Typography>
|
||||
<div className="flex flex-col">
|
||||
<Typography>
|
||||
{l10n.getString('onboarding-assign_trackers-option-label', {
|
||||
mode,
|
||||
})}
|
||||
</Typography>
|
||||
<Typography variant="standard" color="secondary">
|
||||
{l10n.getString('onboarding-assign_trackers-option-description', {
|
||||
mode,
|
||||
})}
|
||||
</Typography>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export function TrackerAssignOptions({
|
||||
variant = 'radio',
|
||||
}: {
|
||||
variant: 'radio' | 'dropdown';
|
||||
}) {
|
||||
const { l10n } = useLocalization();
|
||||
const connectedIMUTrackers = useAtomValue(connectedIMUTrackersAtom);
|
||||
|
||||
const { config, setConfig } = useConfig();
|
||||
@@ -56,34 +87,6 @@ export function TrackerAssignOptions({
|
||||
}
|
||||
}, [connectedIMUTrackers, assignMode]);
|
||||
|
||||
const ItemContent = ({
|
||||
mode,
|
||||
trackersCount,
|
||||
}: {
|
||||
mode: string;
|
||||
trackersCount: number;
|
||||
}) => (
|
||||
<>
|
||||
<Typography variant="main-title" textAlign="text-right">
|
||||
{l10n.getString('onboarding-assign_trackers-option-amount', {
|
||||
trackersCount,
|
||||
})}
|
||||
</Typography>
|
||||
<div className="flex flex-col">
|
||||
<Typography>
|
||||
{l10n.getString('onboarding-assign_trackers-option-label', {
|
||||
mode,
|
||||
})}
|
||||
</Typography>
|
||||
<Typography variant="standard" color="secondary">
|
||||
{l10n.getString('onboarding-assign_trackers-option-description', {
|
||||
mode,
|
||||
})}
|
||||
</Typography>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
if (variant == 'dropdown')
|
||||
return (
|
||||
<Dropdown
|
||||
|
||||
@@ -216,8 +216,7 @@ export function TrackersAssignPage() {
|
||||
assignreq.bodyPosition = role;
|
||||
assignreq.mountingOrientation = rotation;
|
||||
assignreq.trackerId = trackerId;
|
||||
assignreq.allowDriftCompensation =
|
||||
tracker?.tracker?.info?.allowDriftCompensation ?? true;
|
||||
assignreq.allowDriftCompensation = false;
|
||||
|
||||
sendRPCPacket(RpcMessage.AssignTrackerRequest, assignreq);
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@ import { DEFAULT_LOCALE, LangContext } from '@/i18n/config';
|
||||
import { getSentryOrCompute } from '@/utils/sentry';
|
||||
|
||||
const config = await loadConfig();
|
||||
|
||||
if (config?.errorTracking !== undefined) {
|
||||
// load sentry ASAP to catch early errors
|
||||
getSentryOrCompute(config.errorTracking ?? false);
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { WarningBox } from '@/components/commons/TipBox';
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { BaseModal } from '@/components/commons/BaseModal';
|
||||
import ReactModal from 'react-modal';
|
||||
|
||||
export function DriftCompensationModal({
|
||||
isOpen = true,
|
||||
onClose,
|
||||
accept,
|
||||
...props
|
||||
}: {
|
||||
/**
|
||||
* Is the parent/sibling component opened?
|
||||
*/
|
||||
isOpen: boolean;
|
||||
/**
|
||||
* Function to trigger when the warning hasn't been accepted
|
||||
*/
|
||||
onClose: () => void;
|
||||
/**
|
||||
* Function when you press `I understand`
|
||||
*/
|
||||
accept: () => void;
|
||||
} & ReactModal.Props) {
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
<BaseModal
|
||||
isOpen={isOpen}
|
||||
shouldCloseOnOverlayClick
|
||||
onRequestClose={onClose}
|
||||
className={props.className}
|
||||
overlayClassName={props.overlayClassName}
|
||||
>
|
||||
<div className="flex w-full h-full flex-col ">
|
||||
<div className="flex flex-col flex-grow items-center gap-3">
|
||||
<Localized
|
||||
id="settings-general-tracker_mechanics-drift_compensation_warning"
|
||||
elems={{ b: <b></b> }}
|
||||
>
|
||||
<WarningBox>
|
||||
<b>Warning:</b> Drift compensation should only be used if you find
|
||||
you need to reset very often (~5-10 minutes).
|
||||
<br />
|
||||
Some IMUs prone to frequent resets include: Joy-Cons, owoTrack,
|
||||
and MPUs (without recent firmware).
|
||||
</WarningBox>
|
||||
</Localized>
|
||||
|
||||
<div className="flex flex-row gap-3 pt-5 place-content-center">
|
||||
<Button variant="primary" onClick={onClose}>
|
||||
{l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation_warning-cancel'
|
||||
)}
|
||||
</Button>
|
||||
<Button
|
||||
variant="tertiary"
|
||||
onClick={() => {
|
||||
accept();
|
||||
}}
|
||||
>
|
||||
{l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation_warning-done'
|
||||
)}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</BaseModal>
|
||||
);
|
||||
}
|
||||
@@ -8,9 +8,11 @@ import { useForm } from 'react-hook-form';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import './SettingsLayout.scss';
|
||||
import { useVRCConfig } from '@/hooks/vrc-config';
|
||||
|
||||
export function SettingSelectorMobile() {
|
||||
const { l10n } = useLocalization();
|
||||
const { state: vrcConfigState } = useVRCConfig();
|
||||
const navigate = useNavigate();
|
||||
const { pathname } = useLocation();
|
||||
|
||||
@@ -44,6 +46,14 @@ export function SettingSelectorMobile() {
|
||||
label: l10n.getString('settings-sidebar-firmware-tool'),
|
||||
value: { url: '/settings/firmware-tool' },
|
||||
},
|
||||
...(vrcConfigState?.isSupported
|
||||
? [
|
||||
{
|
||||
label: l10n.getString('settings-sidebar-vrc_warnings'),
|
||||
value: { url: '/vrc-warnings' },
|
||||
},
|
||||
]
|
||||
: []),
|
||||
{
|
||||
label: l10n.getString('settings-sidebar-advanced'),
|
||||
value: { url: '/settings/advanced' },
|
||||
|
||||
@@ -3,6 +3,7 @@ import { ReactNode, useMemo } from 'react';
|
||||
import { NavLink, useLocation, useMatch } from 'react-router-dom';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import { useVRCConfig } from '@/hooks/vrc-config';
|
||||
|
||||
export function SettingsLink({
|
||||
to,
|
||||
@@ -41,6 +42,7 @@ export function SettingsLink({
|
||||
|
||||
export function SettingsSidebar() {
|
||||
const { l10n } = useLocalization();
|
||||
const { state: vrcConfigState } = useVRCConfig();
|
||||
|
||||
return (
|
||||
<div className="flex flex-col px-5 py-5 gap-3 overflow-y-auto bg-background-70 rounded-lg h-full">
|
||||
@@ -55,6 +57,9 @@ export function SettingsSidebar() {
|
||||
<SettingsLink to="/settings/trackers" scrollTo="steamvr">
|
||||
SteamVR
|
||||
</SettingsLink>
|
||||
<SettingsLink to="/settings/trackers" scrollTo="stayaligned">
|
||||
{l10n.getString('settings-sidebar-stay_aligned')}
|
||||
</SettingsLink>
|
||||
<SettingsLink to="/settings/trackers" scrollTo="mechanics">
|
||||
{l10n.getString('settings-sidebar-tracker_mechanics')}
|
||||
</SettingsLink>
|
||||
@@ -107,6 +112,13 @@ export function SettingsSidebar() {
|
||||
{l10n.getString('settings-sidebar-firmware-tool')}
|
||||
</SettingsLink>
|
||||
</div>
|
||||
{vrcConfigState?.isSupported && (
|
||||
<div className="flex flex-col gap-2">
|
||||
<SettingsLink to="/vrc-warnings">
|
||||
{l10n.getString('settings-sidebar-vrc_warnings')}
|
||||
</SettingsLink>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex flex-col gap-2">
|
||||
<SettingsLink to="/settings/advanced">
|
||||
{l10n.getString('settings-sidebar-advanced')}
|
||||
|
||||
@@ -21,8 +21,6 @@ function guiDefaults() {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const { lang, ...guiDefaults } = defaultGUIConfig;
|
||||
|
||||
// Include "devSettings" which has all the properties of "defaultDevConfig"
|
||||
// @ts-expect-error "devSettings" is not in the "guiDefaults" object but we want to include it (from "defaultDevConfig")
|
||||
guiDefaults.devSettings = defaultDevConfig;
|
||||
|
||||
return guiDefaults;
|
||||
|
||||
@@ -3,7 +3,6 @@ import { useEffect, useState } from 'react';
|
||||
import { DefaultValues, useForm } from 'react-hook-form';
|
||||
import {
|
||||
ChangeSettingsRequestT,
|
||||
DriftCompensationSettingsT,
|
||||
FilteringSettingsT,
|
||||
FilteringType,
|
||||
LegTweaksSettingsT,
|
||||
@@ -32,9 +31,15 @@ import {
|
||||
} from '@/components/settings/SettingsPageLayout';
|
||||
import { HandsWarningModal } from '@/components/settings/HandsWarningModal';
|
||||
import { MagnetometerToggleSetting } from './MagnetometerToggleSetting';
|
||||
import { DriftCompensationModal } from '@/components/settings/DriftCompensationModal';
|
||||
import {
|
||||
defaultStayAlignedSettings,
|
||||
StayAlignedSettings,
|
||||
StayAlignedSettingsForm,
|
||||
serializeStayAlignedSettings,
|
||||
deserializeStayAlignedSettings,
|
||||
} from './components/StayAlignedSettings';
|
||||
|
||||
interface SettingsForm {
|
||||
export type SettingsForm = {
|
||||
trackers: {
|
||||
waist: boolean;
|
||||
chest: boolean;
|
||||
@@ -52,12 +57,6 @@ interface SettingsForm {
|
||||
type: number;
|
||||
amount: number;
|
||||
};
|
||||
driftCompensation: {
|
||||
enabled: boolean;
|
||||
prediction: boolean;
|
||||
amount: number;
|
||||
maxResets: number;
|
||||
};
|
||||
toggles: {
|
||||
extendedSpine: boolean;
|
||||
extendedPelvis: boolean;
|
||||
@@ -103,7 +102,8 @@ interface SettingsForm {
|
||||
saveMountingReset: boolean;
|
||||
resetHmdPitch: boolean;
|
||||
};
|
||||
}
|
||||
stayAligned: StayAlignedSettingsForm;
|
||||
};
|
||||
|
||||
const defaultValues: SettingsForm = {
|
||||
trackers: {
|
||||
@@ -143,12 +143,6 @@ const defaultValues: SettingsForm = {
|
||||
interpKneeAnkle: 0.2,
|
||||
},
|
||||
filtering: { amount: 0.1, type: FilteringType.NONE },
|
||||
driftCompensation: {
|
||||
enabled: false,
|
||||
prediction: false,
|
||||
amount: 0.1,
|
||||
maxResets: 1,
|
||||
},
|
||||
tapDetection: {
|
||||
mountingResetEnabled: false,
|
||||
yawResetEnabled: false,
|
||||
@@ -169,6 +163,7 @@ const defaultValues: SettingsForm = {
|
||||
saveMountingReset: false,
|
||||
resetHmdPitch: false,
|
||||
},
|
||||
stayAligned: defaultStayAlignedSettings,
|
||||
};
|
||||
|
||||
export function GeneralSettings() {
|
||||
@@ -290,12 +285,7 @@ export function GeneralSettings() {
|
||||
filtering.amount = values.filtering.amount;
|
||||
settings.filtering = filtering;
|
||||
|
||||
const driftCompensation = new DriftCompensationSettingsT();
|
||||
driftCompensation.enabled = values.driftCompensation.enabled;
|
||||
driftCompensation.prediction = values.driftCompensation.prediction;
|
||||
driftCompensation.amount = values.driftCompensation.amount;
|
||||
driftCompensation.maxResets = values.driftCompensation.maxResets;
|
||||
settings.driftCompensation = driftCompensation;
|
||||
settings.stayAligned = serializeStayAlignedSettings(values.stayAligned);
|
||||
|
||||
if (values.resetsSettings) {
|
||||
const resetsSettings = new ResetsSettingsT();
|
||||
@@ -333,10 +323,6 @@ export function GeneralSettings() {
|
||||
formData.filtering = settings.filtering;
|
||||
}
|
||||
|
||||
if (settings.driftCompensation) {
|
||||
formData.driftCompensation = settings.driftCompensation;
|
||||
}
|
||||
|
||||
if (settings.steamVrTrackers) {
|
||||
formData.trackers = settings.steamVrTrackers;
|
||||
if (
|
||||
@@ -420,6 +406,12 @@ export function GeneralSettings() {
|
||||
formData.resetsSettings = settings.resetsSettings;
|
||||
}
|
||||
|
||||
if (settings.stayAligned) {
|
||||
formData.stayAligned = deserializeStayAlignedSettings(
|
||||
settings.stayAligned
|
||||
);
|
||||
}
|
||||
|
||||
reset({ ...getValues(), ...formData });
|
||||
});
|
||||
|
||||
@@ -446,8 +438,6 @@ export function GeneralSettings() {
|
||||
// }
|
||||
// }, [state]);
|
||||
|
||||
const [showDriftCompWarning, setShowDriftCompWarning] = useState(false);
|
||||
|
||||
return (
|
||||
<SettingsPageLayout>
|
||||
<HandsWarningModal
|
||||
@@ -612,6 +602,7 @@ export function GeneralSettings() {
|
||||
</div>
|
||||
</>
|
||||
</SettingsPagePaneLayout>
|
||||
<StayAlignedSettings values={getValues()} control={control} />
|
||||
<SettingsPagePaneLayout icon={<WrenchIcon></WrenchIcon>} id="mechanics">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
@@ -685,102 +676,6 @@ export function GeneralSettings() {
|
||||
step={0.1}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col pt-4 pb-4"></div>
|
||||
<Typography bold>
|
||||
{l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation'
|
||||
)}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
{l10n
|
||||
.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-description'
|
||||
)
|
||||
.split('\n')
|
||||
.map((line, i) => (
|
||||
<Typography color="secondary" key={i}>
|
||||
{line}
|
||||
</Typography>
|
||||
))}
|
||||
</div>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="driftCompensation.enabled"
|
||||
label={l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-enabled-label'
|
||||
)}
|
||||
onClick={() => {
|
||||
if (getValues('driftCompensation.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
setShowDriftCompWarning(true);
|
||||
}}
|
||||
/>
|
||||
<div className="flex flex-col pt-2 pb-4"></div>
|
||||
<Typography bold>
|
||||
{l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-prediction'
|
||||
)}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
{l10n
|
||||
.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-prediction-description'
|
||||
)
|
||||
.split('\n')
|
||||
.map((line, i) => (
|
||||
<Typography color="secondary" key={i}>
|
||||
{line}
|
||||
</Typography>
|
||||
))}
|
||||
</div>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="driftCompensation.prediction"
|
||||
label={l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-prediction-label'
|
||||
)}
|
||||
/>
|
||||
<DriftCompensationModal
|
||||
accept={() => {
|
||||
setShowDriftCompWarning(false);
|
||||
}}
|
||||
onClose={() => {
|
||||
setShowDriftCompWarning(false);
|
||||
setValue('driftCompensation.enabled', false);
|
||||
}}
|
||||
isOpen={showDriftCompWarning}
|
||||
></DriftCompensationModal>
|
||||
<div className="flex gap-5 pt-5 md:flex-row flex-col">
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="driftCompensation.amount"
|
||||
label={l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-amount-label'
|
||||
)}
|
||||
valueLabelFormat={(value) => percentageFormat.format(value)}
|
||||
min={0.1}
|
||||
max={1.0}
|
||||
step={0.1}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex gap-5 pt-5 md:flex-row flex-col">
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="driftCompensation.maxResets"
|
||||
label={l10n.getString(
|
||||
'settings-general-tracker_mechanics-drift_compensation-max_resets-label'
|
||||
)}
|
||||
min={1}
|
||||
max={25}
|
||||
step={1}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex gap-5 pt-5 md:flex-row flex-col">
|
||||
<NumberSelector
|
||||
control={control}
|
||||
|
||||
@@ -18,6 +18,8 @@ import { Range } from '@/components/commons/Range';
|
||||
import { Dropdown } from '@/components/commons/Dropdown';
|
||||
import { ArrowRightLeftIcon } from '@/components/commons/icon/ArrowIcons';
|
||||
import { isTrayAvailable } from '@/utils/tauri';
|
||||
import { isTauri } from '@tauri-apps/api/core';
|
||||
import { TauriFileInput } from '@/components/commons/TauriFileInput';
|
||||
|
||||
interface InterfaceSettingsForm {
|
||||
appearance: {
|
||||
@@ -32,6 +34,7 @@ interface InterfaceSettingsForm {
|
||||
useTray: boolean;
|
||||
discordPresence: boolean;
|
||||
errorTracking: boolean;
|
||||
bvhDirectory: string | null;
|
||||
};
|
||||
notifications: {
|
||||
watchNewDevices: boolean;
|
||||
@@ -71,6 +74,7 @@ export function InterfaceSettings() {
|
||||
discordPresence:
|
||||
config?.discordPresence ?? defaultConfig.discordPresence,
|
||||
errorTracking: config?.errorTracking ?? false,
|
||||
bvhDirectory: config?.bvhDirectory ?? defaultConfig.bvhDirectory,
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -92,6 +96,7 @@ export function InterfaceSettings() {
|
||||
discordPresence: values.behavior.discordPresence,
|
||||
debug: values.behavior.devmode,
|
||||
errorTracking: values.behavior.errorTracking,
|
||||
bvhDirectory: values.behavior.bvhDirectory,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -314,6 +319,32 @@ export function InterfaceSettings() {
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{isTauri() && (
|
||||
<>
|
||||
<Typography bold>
|
||||
{l10n.getString('settings-interface-behavior-bvh_directory')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-1 pb-2">
|
||||
<Localized
|
||||
id={'settings-interface-behavior-bvh_directory-description'}
|
||||
>
|
||||
<Typography color="secondary"></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
<div className="grid gap-3 pb-5">
|
||||
<TauriFileInput
|
||||
name="behavior.bvhDirectory"
|
||||
rules={{
|
||||
required: false,
|
||||
}}
|
||||
control={control}
|
||||
label="settings-interface-behavior-bvh_directory-label"
|
||||
directory
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</>
|
||||
</SettingsPagePaneLayout>
|
||||
|
||||
|
||||
@@ -114,13 +114,6 @@ export function Serial() {
|
||||
}
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (consoleRef.current)
|
||||
consoleRef.current.scrollTo({
|
||||
top: consoleRef.current.scrollHeight,
|
||||
});
|
||||
}, [consoleContent]);
|
||||
|
||||
useEffect(() => {
|
||||
const id = setInterval(() => {
|
||||
if (!isSerialOpen) {
|
||||
@@ -248,7 +241,7 @@ export function Serial() {
|
||||
</div>
|
||||
<div className="bg-background-80 rounded-lg flex-grow h-0 flex flex-col p-2">
|
||||
<div
|
||||
className="flex-grow overflow-x-auto overflow-y-auto"
|
||||
className="flex-grow overflow-auto overscroll-y-contain snap-y snap-proximity"
|
||||
ref={consoleRef}
|
||||
>
|
||||
<div className="flex select-text">
|
||||
@@ -258,6 +251,7 @@ export function Serial() {
|
||||
: l10n.getString('settings-serial-connection_lost')}
|
||||
</pre>
|
||||
</div>
|
||||
<div className="snap-end" />
|
||||
</div>
|
||||
<div className="border-t-2 pt-2 border-background-60 border-solid gap-2 flex flex-row">
|
||||
<div className="xs:flex flex-grow xs:flex-wrap gap-2 grid grid-cols-2">
|
||||
|
||||
@@ -70,11 +70,10 @@ export function VMCSettings() {
|
||||
);
|
||||
if (values.vmc.vrmJson !== undefined) {
|
||||
if (values.vmc.vrmJson.length > 0) {
|
||||
vmcOsc.vrmJson = await parseVRMFile(values.vmc.vrmJson[0]);
|
||||
if (vmcOsc.vrmJson) {
|
||||
setModelName(
|
||||
JSON.parse(vmcOsc.vrmJson)?.extensions?.VRM?.meta?.title || ''
|
||||
);
|
||||
const file = await parseVRMFile(values.vmc.vrmJson[0]);
|
||||
if (file) {
|
||||
vmcOsc.vrmJson = file.json;
|
||||
setModelName(file.name);
|
||||
}
|
||||
} else {
|
||||
vmcOsc.vrmJson = '';
|
||||
@@ -114,7 +113,7 @@ export function VMCSettings() {
|
||||
}
|
||||
const vrmJson = settings.vmcOsc.vrmJson?.toString();
|
||||
if (vrmJson) {
|
||||
setModelName(JSON.parse(vrmJson)?.extensions?.VRM?.meta?.title || '');
|
||||
setModelName(getVRMName(vrmJson) || '');
|
||||
}
|
||||
|
||||
formData.vmc.anchorHip = settings.vmcOsc.anchorHip;
|
||||
@@ -299,7 +298,9 @@ export function VMCSettings() {
|
||||
const gltfHeaderStart = 0;
|
||||
const gltfHeaderEnd = 20;
|
||||
|
||||
async function parseVRMFile(vrm: File): Promise<string | null> {
|
||||
async function parseVRMFile(
|
||||
vrm: File
|
||||
): Promise<{ json: string; name: string } | null> {
|
||||
const headerView = new DataView(
|
||||
await vrm.slice(gltfHeaderStart, gltfHeaderEnd).arrayBuffer()
|
||||
);
|
||||
@@ -337,7 +338,36 @@ async function parseVRMFile(vrm: File): Promise<string | null> {
|
||||
return null;
|
||||
}
|
||||
|
||||
return vrm
|
||||
const json = await vrm
|
||||
.slice(gltfHeaderEnd, gltfHeaderEnd + jsonLength, 'application/json')
|
||||
.text();
|
||||
|
||||
const name = getVRMName(json);
|
||||
if (name === null) return null;
|
||||
|
||||
return { json, name };
|
||||
}
|
||||
|
||||
function getVRMName(json: string): string | null {
|
||||
try {
|
||||
const data = JSON.parse(json);
|
||||
|
||||
if (typeof data?.extensions?.VRMC_vrm?.specVersion === 'string') {
|
||||
const name = data.extensions.VRMC_vrm.meta.name;
|
||||
|
||||
if (typeof name !== 'string') {
|
||||
error(
|
||||
`The name of the VRM model is not a string, instead it is a ${typeof name}`
|
||||
);
|
||||
return null;
|
||||
}
|
||||
|
||||
return name;
|
||||
} else {
|
||||
return data?.extensions?.VRM?.meta?.title || '';
|
||||
}
|
||||
} catch (e) {
|
||||
error(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
import { BaseModal } from '@/components/commons/BaseModal';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import {
|
||||
DetectRelaxedPoseButton,
|
||||
ResetRelaxedPoseButton,
|
||||
} from '@/components/stay-aligned/RelaxedPose';
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import { Dispatch, ReactNode, SetStateAction } from 'react';
|
||||
import { StayAlignedRelaxedPose } from 'solarxr-protocol';
|
||||
|
||||
function StaAlignedPoseModal({
|
||||
open,
|
||||
title,
|
||||
descriptionKeys,
|
||||
children,
|
||||
relaxedPose,
|
||||
}: {
|
||||
open: [boolean, Dispatch<SetStateAction<boolean>>];
|
||||
title: string;
|
||||
descriptionKeys: string[];
|
||||
children: ReactNode;
|
||||
relaxedPose: StayAlignedRelaxedPose;
|
||||
lastStep?: boolean;
|
||||
}) {
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
<BaseModal
|
||||
isOpen={open[0]}
|
||||
appendClasses={'w-xl max-w-xl mobile:w-full'}
|
||||
closeable
|
||||
onRequestClose={() => {
|
||||
open[1](false);
|
||||
}}
|
||||
>
|
||||
<div className="flex flex-col">
|
||||
<div className="pb-4">
|
||||
<Typography variant="main-title">{l10n.getString(title)}</Typography>
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
{descriptionKeys.map((descriptionKey) => (
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(descriptionKey)}
|
||||
</Typography>
|
||||
))}
|
||||
</div>
|
||||
<div className="flex pt-1 items-center fill-background-50 justify-center px-12">
|
||||
{children}
|
||||
</div>
|
||||
<div className="flex justify-between">
|
||||
<Button variant={'tertiary'} onClick={() => open[1](false)}>
|
||||
{l10n.getString('settings-stay_aligned-relaxed_poses-close')}
|
||||
</Button>
|
||||
<div className="flex gap-2">
|
||||
<ResetRelaxedPoseButton
|
||||
variant="tertiary"
|
||||
onClick={() => {
|
||||
open[1](false);
|
||||
}}
|
||||
pose={relaxedPose}
|
||||
>
|
||||
{l10n.getString('settings-stay_aligned-relaxed_poses-reset_pose')}
|
||||
</ResetRelaxedPoseButton>
|
||||
<DetectRelaxedPoseButton
|
||||
onClick={() => {
|
||||
open[1](false);
|
||||
}}
|
||||
pose={relaxedPose}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</BaseModal>
|
||||
);
|
||||
}
|
||||
|
||||
export const StandingRelaxedPoseModal = ({
|
||||
open,
|
||||
}: {
|
||||
open: [boolean, Dispatch<SetStateAction<boolean>>];
|
||||
}) => (
|
||||
<StaAlignedPoseModal
|
||||
open={open}
|
||||
title={'onboarding-stay_aligned-relaxed_poses-standing-title'}
|
||||
descriptionKeys={[
|
||||
'onboarding-stay_aligned-relaxed_poses-standing-step-0',
|
||||
'onboarding-stay_aligned-relaxed_poses-standing-step-1-v2',
|
||||
]}
|
||||
relaxedPose={StayAlignedRelaxedPose.STANDING}
|
||||
>
|
||||
<img
|
||||
src={'/images/stay-aligned/StayAlignedStanding.webp'}
|
||||
width={260}
|
||||
alt="Reset position"
|
||||
/>
|
||||
</StaAlignedPoseModal>
|
||||
);
|
||||
|
||||
export const SittingRelaxedPoseModal = ({
|
||||
open,
|
||||
}: {
|
||||
open: [boolean, Dispatch<SetStateAction<boolean>>];
|
||||
}) => (
|
||||
<StaAlignedPoseModal
|
||||
open={open}
|
||||
title={'onboarding-stay_aligned-relaxed_poses-sitting-title'}
|
||||
descriptionKeys={[
|
||||
'onboarding-stay_aligned-relaxed_poses-sitting-step-0',
|
||||
'onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2',
|
||||
]}
|
||||
relaxedPose={StayAlignedRelaxedPose.SITTING}
|
||||
>
|
||||
<img
|
||||
src={'/images/stay-aligned/StayAlignedSitting.webp'}
|
||||
width={260}
|
||||
alt="Reset position"
|
||||
/>
|
||||
</StaAlignedPoseModal>
|
||||
);
|
||||
|
||||
export const FlatRelaxedPoseModal = ({
|
||||
open,
|
||||
}: {
|
||||
open: [boolean, Dispatch<SetStateAction<boolean>>];
|
||||
}) => (
|
||||
<StaAlignedPoseModal
|
||||
open={open}
|
||||
title={'onboarding-stay_aligned-relaxed_poses-flat-title'}
|
||||
descriptionKeys={[
|
||||
'onboarding-stay_aligned-relaxed_poses-flat-step-0',
|
||||
'onboarding-stay_aligned-relaxed_poses-flat-step-1-v2',
|
||||
]}
|
||||
relaxedPose={StayAlignedRelaxedPose.FLAT}
|
||||
>
|
||||
<img
|
||||
src={'/images/stay-aligned/StayAlignedFloor.webp'}
|
||||
width={560}
|
||||
alt="Reset position"
|
||||
/>
|
||||
</StaAlignedPoseModal>
|
||||
);
|
||||
@@ -0,0 +1,323 @@
|
||||
import { Control } from 'react-hook-form';
|
||||
import { StayAlignedSettingsT } from 'solarxr-protocol';
|
||||
import { SettingsForm } from '@/components/settings/pages/GeneralSettings';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { CheckBox } from '@/components/commons/Checkbox';
|
||||
import { WrenchIcon } from '@/components/commons/icon/WrenchIcons';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { SettingsPagePaneLayout } from '@/components/settings/SettingsPageLayout';
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { useAtomValue } from 'jotai';
|
||||
import { connectedIMUTrackersAtom } from '@/store/app-store';
|
||||
import { bodypartToString } from '@/utils/formatting';
|
||||
import { useLocaleConfig } from '@/i18n/config';
|
||||
import {
|
||||
FlatRelaxedPoseModal,
|
||||
SittingRelaxedPoseModal,
|
||||
StandingRelaxedPoseModal,
|
||||
} from './StayAlignedPoseModal';
|
||||
import { useState } from 'react';
|
||||
|
||||
export type StayAlignedSettingsForm = {
|
||||
enabled: boolean;
|
||||
extraYawCorrection: boolean;
|
||||
hideYawCorrection: boolean;
|
||||
standingEnabled: boolean;
|
||||
standingUpperLegAngle: number;
|
||||
standingLowerLegAngle: number;
|
||||
standingFootAngle: number;
|
||||
sittingEnabled: boolean;
|
||||
sittingUpperLegAngle: number;
|
||||
sittingLowerLegAngle: number;
|
||||
sittingFootAngle: number;
|
||||
flatEnabled: boolean;
|
||||
flatUpperLegAngle: number;
|
||||
flatLowerLegAngle: number;
|
||||
flatFootAngle: number;
|
||||
setupComplete: boolean;
|
||||
};
|
||||
|
||||
export const defaultStayAlignedSettings: StayAlignedSettingsForm = {
|
||||
enabled: false,
|
||||
extraYawCorrection: false,
|
||||
hideYawCorrection: false,
|
||||
standingEnabled: false,
|
||||
standingUpperLegAngle: 0.0,
|
||||
standingLowerLegAngle: 0.0,
|
||||
standingFootAngle: 0.0,
|
||||
sittingEnabled: false,
|
||||
sittingUpperLegAngle: 0.0,
|
||||
sittingLowerLegAngle: 0.0,
|
||||
sittingFootAngle: 0.0,
|
||||
flatEnabled: false,
|
||||
flatUpperLegAngle: 0.0,
|
||||
flatLowerLegAngle: 0.0,
|
||||
flatFootAngle: 0.0,
|
||||
setupComplete: false,
|
||||
};
|
||||
|
||||
export function serializeStayAlignedSettings(
|
||||
settings: StayAlignedSettingsForm
|
||||
): StayAlignedSettingsT {
|
||||
const serialized = new StayAlignedSettingsT();
|
||||
serialized.enabled = settings.enabled;
|
||||
serialized.extraYawCorrection = settings.extraYawCorrection;
|
||||
serialized.hideYawCorrection = settings.hideYawCorrection;
|
||||
serialized.standingEnabled = settings.standingEnabled;
|
||||
serialized.standingUpperLegAngle = settings.standingUpperLegAngle;
|
||||
serialized.standingLowerLegAngle = settings.standingLowerLegAngle;
|
||||
serialized.standingFootAngle = settings.standingFootAngle;
|
||||
serialized.sittingEnabled = settings.sittingEnabled;
|
||||
serialized.sittingUpperLegAngle = settings.sittingUpperLegAngle;
|
||||
serialized.sittingLowerLegAngle = settings.sittingLowerLegAngle;
|
||||
serialized.sittingFootAngle = settings.sittingFootAngle;
|
||||
serialized.flatEnabled = settings.flatEnabled;
|
||||
serialized.flatUpperLegAngle = settings.flatUpperLegAngle;
|
||||
serialized.flatLowerLegAngle = settings.flatLowerLegAngle;
|
||||
serialized.flatFootAngle = settings.flatFootAngle;
|
||||
return serialized;
|
||||
}
|
||||
|
||||
export function deserializeStayAlignedSettings(
|
||||
serialized: StayAlignedSettingsT
|
||||
): StayAlignedSettingsForm {
|
||||
return serialized;
|
||||
}
|
||||
|
||||
function CopySettingsButton({ values }: { values: SettingsForm }) {
|
||||
const { l10n } = useLocalization();
|
||||
const { currentLocales } = useLocaleConfig();
|
||||
const numberFormat = new Intl.NumberFormat(currentLocales, {
|
||||
minimumFractionDigits: 1,
|
||||
maximumFractionDigits: 1,
|
||||
});
|
||||
|
||||
const trackers = useAtomValue(connectedIMUTrackersAtom);
|
||||
|
||||
function boolify(value: boolean) {
|
||||
return value ? 'true' : 'false';
|
||||
}
|
||||
|
||||
const copySettings = () => {
|
||||
const config = values.stayAligned;
|
||||
|
||||
const debug = `
|
||||
Stay Aligned
|
||||
|
||||
GENERAL
|
||||
=======
|
||||
Enabled: ${config.enabled ? 'true' : 'false'}
|
||||
Extra yaw correction: ${boolify(config.extraYawCorrection)}
|
||||
Setup complete: ${boolify(config.setupComplete)}
|
||||
|
||||
RELAXED POSES
|
||||
=============
|
||||
Standing: ${config.standingEnabled ? `Enabled (upper_leg=${numberFormat.format(config.standingUpperLegAngle)}, lower_leg=${numberFormat.format(config.standingLowerLegAngle)}, foot=${numberFormat.format(config.standingFootAngle)})` : 'Not enabled'}
|
||||
Sitting: ${config.sittingEnabled ? `Enabled (upper_leg=${numberFormat.format(config.sittingUpperLegAngle)}, lower_leg=${numberFormat.format(config.sittingLowerLegAngle)}, foot=${numberFormat.format(config.sittingFootAngle)})` : 'Not enabled'}
|
||||
Flat: ${config.flatEnabled ? `Enabled (upper_leg=${numberFormat.format(config.flatUpperLegAngle)}, lower_leg=${numberFormat.format(config.flatLowerLegAngle)}, foot=${numberFormat.format(config.flatFootAngle)})` : 'Not enabled'}
|
||||
|
||||
TRACKERS
|
||||
========
|
||||
${trackers
|
||||
.map((t) => {
|
||||
const info = t.tracker.info;
|
||||
const stayAligned = t.tracker.stayAligned;
|
||||
if (info && stayAligned) {
|
||||
return `${bodypartToString(info.bodyPart)}: correction=${numberFormat.format(stayAligned.yawCorrectionInDeg)} locked=${stayAligned.locked ? `true locked_error=${numberFormat.format(stayAligned.lockedErrorInDeg)}` : 'false'} center_error=${numberFormat.format(stayAligned.centerErrorInDeg)} neighbor_error=${numberFormat.format(stayAligned.neighborErrorInDeg)}`;
|
||||
}
|
||||
})
|
||||
.join('\n')}
|
||||
|
||||
OTHER
|
||||
=====
|
||||
Filtering: type=${values.filtering.type} amount=${numberFormat.format(values.filtering.amount)}
|
||||
Enforce constraints: ${boolify(values.toggles.enforceConstraints)}
|
||||
Skating correction: ${boolify(values.toggles.skatingCorrection)}
|
||||
`;
|
||||
|
||||
navigator.clipboard.writeText(debug);
|
||||
};
|
||||
|
||||
return (
|
||||
<Button variant="primary" onClick={copySettings}>
|
||||
{l10n.getString('settings-stay_aligned-debug-copy-label')}
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
|
||||
export function StayAlignedSettings({
|
||||
values,
|
||||
control,
|
||||
}: {
|
||||
values: SettingsForm;
|
||||
control: Control<SettingsForm, any>;
|
||||
}) {
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
const config = values.stayAligned;
|
||||
const hasStandingPose =
|
||||
config.standingEnabled ||
|
||||
config.standingUpperLegAngle !== 0.0 ||
|
||||
config.standingLowerLegAngle !== 0.0 ||
|
||||
config.standingFootAngle !== 0.0;
|
||||
const hasSittingPose =
|
||||
config.sittingEnabled ||
|
||||
config.sittingUpperLegAngle !== 0.0 ||
|
||||
config.sittingLowerLegAngle !== 0.0 ||
|
||||
config.sittingFootAngle !== 0.0;
|
||||
const hasFlatPose =
|
||||
config.flatEnabled ||
|
||||
config.flatUpperLegAngle !== 0.0 ||
|
||||
config.flatLowerLegAngle !== 0.0 ||
|
||||
config.flatFootAngle !== 0.0;
|
||||
|
||||
const openStanding = useState(false);
|
||||
const openSitting = useState(false);
|
||||
const openFlat = useState(false);
|
||||
|
||||
return (
|
||||
<>
|
||||
<SettingsPagePaneLayout icon={<WrenchIcon />} id="stayaligned">
|
||||
<Typography variant="main-title">
|
||||
{l10n.getString('settings-stay_aligned')}
|
||||
</Typography>
|
||||
<div className="mt-2">
|
||||
<Typography color="secondary">
|
||||
{l10n.getString('settings-stay_aligned-description')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString('settings-stay_aligned-setup-description')}
|
||||
</Typography>
|
||||
<div className="flex mt-2">
|
||||
<Button
|
||||
variant="primary"
|
||||
to="/onboarding/stay-aligned"
|
||||
state={{ alonePage: true }}
|
||||
>
|
||||
{l10n.getString('settings-stay_aligned-setup-label')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<Typography bold>
|
||||
{l10n.getString('settings-stay_aligned-general-label')}
|
||||
</Typography>
|
||||
<div className="grid sm:grid-cols-2 gap-3 mt-2">
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="stayAligned.enabled"
|
||||
label={l10n.getString('settings-stay_aligned-enabled-label')}
|
||||
disabled={!config.setupComplete}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="stayAligned.hideYawCorrection"
|
||||
label={l10n.getString(
|
||||
'settings-stay_aligned-hide_yaw_correction-label'
|
||||
)}
|
||||
disabled={!config.setupComplete}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<Typography bold>
|
||||
{l10n.getString('settings-stay_aligned-relaxed_poses-label')}
|
||||
</Typography>
|
||||
<div className="mt-2">
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(
|
||||
'settings-stay_aligned-relaxed_poses-description'
|
||||
)}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid sm:grid-cols-1 gap-3 mt-2">
|
||||
<div className="flex gap-2">
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="stayAligned.standingEnabled"
|
||||
label={l10n.getString(
|
||||
'settings-stay_aligned-relaxed_poses-standing'
|
||||
)}
|
||||
disabled={!config.setupComplete || !hasStandingPose}
|
||||
/>
|
||||
<StandingRelaxedPoseModal
|
||||
open={openStanding}
|
||||
></StandingRelaxedPoseModal>
|
||||
<Localized id="settings-stay_aligned-relaxed_poses-save_pose">
|
||||
<Button
|
||||
variant="primary"
|
||||
className="w-full max-w-32"
|
||||
disabled={!config.setupComplete}
|
||||
onClick={() => openStanding[1](true)}
|
||||
></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
<div className="flex gap-2">
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="stayAligned.sittingEnabled"
|
||||
label={l10n.getString(
|
||||
'settings-stay_aligned-relaxed_poses-sitting'
|
||||
)}
|
||||
disabled={!config.setupComplete || !hasSittingPose}
|
||||
/>
|
||||
<SittingRelaxedPoseModal
|
||||
open={openSitting}
|
||||
></SittingRelaxedPoseModal>
|
||||
<Localized id="settings-stay_aligned-relaxed_poses-save_pose">
|
||||
<Button
|
||||
variant="primary"
|
||||
className="w-full max-w-32"
|
||||
disabled={!config.setupComplete}
|
||||
onClick={() => openSitting[1](true)}
|
||||
></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
<div className="flex gap-2">
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="stayAligned.flatEnabled"
|
||||
label={l10n.getString(
|
||||
'settings-stay_aligned-relaxed_poses-flat'
|
||||
)}
|
||||
disabled={!config.setupComplete || !hasFlatPose}
|
||||
/>
|
||||
<FlatRelaxedPoseModal open={openFlat}></FlatRelaxedPoseModal>
|
||||
<Localized id="settings-stay_aligned-relaxed_poses-save_pose">
|
||||
<Button
|
||||
variant="primary"
|
||||
className="w-full max-w-32"
|
||||
disabled={!config.setupComplete}
|
||||
onClick={() => openFlat[1](true)}
|
||||
></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<Typography bold>
|
||||
{l10n.getString('settings-stay_aligned-debug-label')}
|
||||
</Typography>
|
||||
<div className="mt-2">
|
||||
<Typography color="secondary">
|
||||
{l10n.getString('settings-stay_aligned-debug-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="mt-2">
|
||||
<CopySettingsButton values={values} />
|
||||
</div>
|
||||
</div>
|
||||
</SettingsPagePaneLayout>
|
||||
</>
|
||||
);
|
||||
}
|
||||
73
gui/src/components/stay-aligned/RelaxedPose.tsx
Normal file
@@ -0,0 +1,73 @@
|
||||
import { useLocalization } from '@fluent/react';
|
||||
import {
|
||||
DetectStayAlignedRelaxedPoseRequestT,
|
||||
RpcMessage,
|
||||
StayAlignedRelaxedPose,
|
||||
} from 'solarxr-protocol';
|
||||
import { useWebsocketAPI } from '@/hooks/websocket-api';
|
||||
import { MouseEventHandler } from 'react';
|
||||
import { Button, ButtonProps } from '@/components/commons/Button';
|
||||
|
||||
/**
|
||||
* Tells the server to set a relaxed pose to the current pose's angles.
|
||||
*/
|
||||
export function DetectRelaxedPoseButton({
|
||||
pose,
|
||||
onClick,
|
||||
}: {
|
||||
pose: StayAlignedRelaxedPose;
|
||||
onClick?: MouseEventHandler<HTMLButtonElement>;
|
||||
}) {
|
||||
const { sendRPCPacket } = useWebsocketAPI();
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
<Button
|
||||
variant="primary"
|
||||
onClick={(e) => {
|
||||
const req = new DetectStayAlignedRelaxedPoseRequestT();
|
||||
req.pose = pose;
|
||||
sendRPCPacket(RpcMessage.DetectStayAlignedRelaxedPoseRequest, req);
|
||||
if (onClick) {
|
||||
onClick(e);
|
||||
}
|
||||
}}
|
||||
>
|
||||
{l10n.getString('settings-stay_aligned-relaxed_poses-save_pose')}
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tells the server to reset the angles in a relaxed pose.
|
||||
*/
|
||||
export function ResetRelaxedPoseButton({
|
||||
pose,
|
||||
variant = 'primary',
|
||||
onClick,
|
||||
children,
|
||||
}: {
|
||||
variant: ButtonProps['variant'];
|
||||
pose: StayAlignedRelaxedPose;
|
||||
onClick?: MouseEventHandler<HTMLButtonElement>;
|
||||
} & React.PropsWithChildren) {
|
||||
const { sendRPCPacket } = useWebsocketAPI();
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
return (
|
||||
<Button
|
||||
variant={variant}
|
||||
onClick={(e) => {
|
||||
const req = new DetectStayAlignedRelaxedPoseRequestT();
|
||||
req.pose = pose;
|
||||
sendRPCPacket(RpcMessage.ResetStayAlignedRelaxedPoseRequest, req);
|
||||
if (onClick) {
|
||||
onClick(e);
|
||||
}
|
||||
}}
|
||||
>
|
||||
{children ||
|
||||
l10n.getString('settings-stay_aligned-relaxed_poses-reset_pose')}
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
33
gui/src/components/stay-aligned/StayAlignedInfo.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { useLocaleConfig } from '@/i18n/config';
|
||||
import { TrackerDataT } from 'solarxr-protocol';
|
||||
|
||||
export function StayAlignedInfo({
|
||||
color,
|
||||
tracker,
|
||||
}: {
|
||||
color: 'primary' | 'secondary';
|
||||
tracker: TrackerDataT;
|
||||
}) {
|
||||
const { currentLocales } = useLocaleConfig();
|
||||
const degreeFormat = new Intl.NumberFormat(currentLocales, {
|
||||
style: 'unit',
|
||||
unit: 'degree',
|
||||
minimumFractionDigits: 1,
|
||||
maximumFractionDigits: 1,
|
||||
});
|
||||
|
||||
const stayAligned = tracker.stayAligned;
|
||||
if (!stayAligned) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
const locked = stayAligned.locked ? '🔒' : '';
|
||||
const delta = degreeFormat.format(stayAligned.yawCorrectionInDeg);
|
||||
|
||||
return (
|
||||
<Typography color={color} whitespace="whitespace-nowrap">
|
||||
{locked} {delta}
|
||||
</Typography>
|
||||
);
|
||||
}
|
||||
@@ -27,25 +27,32 @@ export function TrackerBattery({
|
||||
minimumFractionDigits: 2,
|
||||
});
|
||||
|
||||
const charging = (voltage || 0) > 4.3;
|
||||
const showVoltage = voltage && config?.debug;
|
||||
|
||||
return (
|
||||
<div className="flex gap-2">
|
||||
<div className="flex flex-col justify-around">
|
||||
<BatteryIcon
|
||||
value={value}
|
||||
disabled={disabled}
|
||||
charging={(voltage || 0) > 4.3}
|
||||
/>
|
||||
</div>
|
||||
<div className="w-10">
|
||||
<Typography color={textColor}>
|
||||
{percentFormatter.format(value)}
|
||||
</Typography>
|
||||
{voltage && config?.debug && (
|
||||
<Typography color={textColor}>
|
||||
{voltageFormatter.format(voltage)}V
|
||||
</Typography>
|
||||
)}
|
||||
<BatteryIcon value={value} disabled={disabled} charging={charging} />
|
||||
</div>
|
||||
{((!charging || showVoltage) && (
|
||||
<div className="w-10">
|
||||
{!charging && (
|
||||
<Typography color={textColor}>
|
||||
{percentFormatter.format(value)}
|
||||
</Typography>
|
||||
)}
|
||||
{showVoltage && (
|
||||
<Typography color={textColor}>
|
||||
{voltageFormatter.format(voltage)}V
|
||||
</Typography>
|
||||
)}
|
||||
</div>
|
||||
)) || (
|
||||
<div className="flex flex-col justify-center w-10">
|
||||
<div className="w-5 h-1 bg-background-30 rounded-full"></div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useConfig } from '@/hooks/config';
|
||||
import { MouseEventHandler } from 'react';
|
||||
import {
|
||||
DeviceDataT,
|
||||
@@ -14,21 +15,26 @@ import { BodyPartIcon } from '@/components/commons/BodyPartIcon';
|
||||
import { DownloadIcon } from '@/components/commons/icon/DownloadIcon';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { useAppContext } from '@/hooks/app';
|
||||
import { checkForUpdate } from '@/components/firmware-update/FirmwareUpdate';
|
||||
import { Tooltip } from '@/components/commons/Tooltip';
|
||||
import { Localized } from '@fluent/react';
|
||||
import { checkForUpdate } from '@/hooks/firmware-update';
|
||||
|
||||
function UpdateIcon({
|
||||
showUpdate,
|
||||
}: {
|
||||
showUpdate: 'need-update' | 'low-battery' | 'updated' | 'unavailable';
|
||||
showUpdate:
|
||||
| 'can-update'
|
||||
| 'low-battery'
|
||||
| 'updated'
|
||||
| 'unavailable'
|
||||
| 'blocked';
|
||||
}) {
|
||||
const content = (
|
||||
<div className="relative">
|
||||
<div
|
||||
className={classNames(
|
||||
'absolute rounded-full h-6 w-6 left-1 top-1 bg-accent-background-10 animate-[ping_2s_linear_infinite]',
|
||||
showUpdate !== 'need-update' && 'hidden'
|
||||
showUpdate !== 'can-update' && 'hidden'
|
||||
)}
|
||||
></div>
|
||||
<div
|
||||
@@ -44,7 +50,7 @@ function UpdateIcon({
|
||||
</div>
|
||||
);
|
||||
|
||||
return showUpdate !== 'need-update' ? (
|
||||
return showUpdate !== 'can-update' ? (
|
||||
<Tooltip
|
||||
preferedDirection="top"
|
||||
content={
|
||||
@@ -69,6 +75,8 @@ function TrackerBig({
|
||||
tracker: TrackerDataT;
|
||||
device?: DeviceDataT;
|
||||
}) {
|
||||
const { config } = useConfig();
|
||||
|
||||
const { useName } = useTracker(tracker);
|
||||
|
||||
const trackerName = useName();
|
||||
@@ -86,10 +94,10 @@ function TrackerBig({
|
||||
<div className="flex justify-center">
|
||||
<TrackerStatus status={tracker.status}></TrackerStatus>
|
||||
</div>
|
||||
<div className="flex text-default justify-center gap-5 flex-wrap">
|
||||
<div className="min-h-9 flex text-default justify-center gap-5 flex-wrap items-center">
|
||||
{device && device.hardwareStatus && (
|
||||
<>
|
||||
{device.hardwareStatus.batteryPctEstimate && (
|
||||
{device.hardwareStatus.batteryPctEstimate != null && (
|
||||
<TrackerBattery
|
||||
voltage={device.hardwareStatus.batteryVoltage}
|
||||
value={device.hardwareStatus.batteryPctEstimate / 100}
|
||||
@@ -100,8 +108,9 @@ function TrackerBig({
|
||||
{(device.hardwareStatus.rssi != null ||
|
||||
device.hardwareStatus.ping != null) && (
|
||||
<TrackerWifi
|
||||
rssi={device.hardwareStatus.rssi || 0}
|
||||
ping={device.hardwareStatus.ping || 0}
|
||||
rssi={device.hardwareStatus.rssi}
|
||||
rssiShowNumeric={config?.debug}
|
||||
ping={device.hardwareStatus.ping}
|
||||
disabled={tracker.status === TrackerStatusEnum.DISCONNECTED}
|
||||
></TrackerWifi>
|
||||
)}
|
||||
@@ -138,7 +147,7 @@ function TrackerSmol({
|
||||
{device && device.hardwareStatus && (
|
||||
<>
|
||||
<div className="flex flex-col justify-center items-center">
|
||||
{device.hardwareStatus.batteryPctEstimate && (
|
||||
{device.hardwareStatus.batteryPctEstimate != null && (
|
||||
<TrackerBattery
|
||||
voltage={device.hardwareStatus.batteryVoltage}
|
||||
value={device.hardwareStatus.batteryPctEstimate / 100}
|
||||
@@ -150,8 +159,8 @@ function TrackerSmol({
|
||||
{(device.hardwareStatus.rssi != null ||
|
||||
device.hardwareStatus.ping != null) && (
|
||||
<TrackerWifi
|
||||
rssi={device.hardwareStatus.rssi || 0}
|
||||
ping={device.hardwareStatus.ping || 0}
|
||||
rssi={device.hardwareStatus.rssi}
|
||||
ping={device.hardwareStatus.ping}
|
||||
disabled={tracker.status === TrackerStatusEnum.DISCONNECTED}
|
||||
></TrackerWifi>
|
||||
)}
|
||||
@@ -203,7 +212,8 @@ export function TrackerCard({
|
||||
'rounded-lg overflow-hidden transition-[box-shadow] duration-200 ease-linear',
|
||||
interactable && 'hover:bg-background-50 cursor-pointer',
|
||||
outlined && 'outline outline-2 outline-accent-background-40',
|
||||
warning && 'border-status-warning border-solid border-2',
|
||||
warning &&
|
||||
'outline outline-2 -outline-offset-2 outline-status-warning',
|
||||
bg
|
||||
)}
|
||||
style={
|
||||
|
||||
@@ -26,7 +26,6 @@ import {
|
||||
import { ArrowLink } from '@/components/commons/ArrowLink';
|
||||
import { BodyPartIcon } from '@/components/commons/BodyPartIcon';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { CheckBox } from '@/components/commons/Checkbox';
|
||||
import { WarningIcon } from '@/components/commons/icon/WarningIcon';
|
||||
import { Input } from '@/components/commons/Input';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
@@ -38,9 +37,9 @@ import { Quaternion } from 'three';
|
||||
import { useAppContext } from '@/hooks/app';
|
||||
import { MagnetometerToggleSetting } from '@/components/settings/pages/MagnetometerToggleSetting';
|
||||
import semver from 'semver';
|
||||
import { checkForUpdate } from '@/components/firmware-update/FirmwareUpdate';
|
||||
import { useSetAtom } from 'jotai';
|
||||
import { ignoredTrackersAtom } from '@/store/app-store';
|
||||
import { checkForUpdate } from '@/hooks/firmware-update';
|
||||
|
||||
const rotationsLabels: [Quaternion, string][] = [
|
||||
[rotationToQuatMap.BACK, 'tracker-rotation-back'],
|
||||
@@ -57,7 +56,6 @@ export function TrackerSettingsPage() {
|
||||
const { l10n } = useLocalization();
|
||||
|
||||
const { sendRPCPacket } = useWebsocketAPI();
|
||||
const [firstLoad, setFirstLoad] = useState(false);
|
||||
const [selectRotation, setSelectRotation] = useState<boolean>(false);
|
||||
const [selectBodypart, setSelectBodypart] = useState<boolean>(false);
|
||||
const { trackernum, deviceid } = useParams<{
|
||||
@@ -66,16 +64,14 @@ export function TrackerSettingsPage() {
|
||||
}>();
|
||||
const { control, watch, reset, handleSubmit } = useForm<{
|
||||
trackerName: string | null;
|
||||
allowDriftCompensation: boolean | null;
|
||||
}>({
|
||||
defaultValues: {
|
||||
trackerName: null,
|
||||
allowDriftCompensation: null,
|
||||
},
|
||||
reValidateMode: 'onSubmit',
|
||||
});
|
||||
const setIgnoredTracker = useSetAtom(ignoredTrackersAtom);
|
||||
const { trackerName, allowDriftCompensation } = watch();
|
||||
const { trackerName } = watch();
|
||||
|
||||
const tracker = useTrackerFromId(trackernum, deviceid);
|
||||
|
||||
@@ -89,8 +85,7 @@ export function TrackerSettingsPage() {
|
||||
);
|
||||
assignreq.bodyPosition = tracker?.tracker.info?.bodyPart || BodyPart.NONE;
|
||||
assignreq.trackerId = tracker?.tracker.trackerId;
|
||||
if (allowDriftCompensation != null)
|
||||
assignreq.allowDriftCompensation = allowDriftCompensation;
|
||||
assignreq.allowDriftCompensation = false;
|
||||
sendRPCPacket(RpcMessage.AssignTrackerRequest, assignreq);
|
||||
setSelectRotation(false);
|
||||
};
|
||||
@@ -101,8 +96,7 @@ export function TrackerSettingsPage() {
|
||||
const assignreq = new AssignTrackerRequestT();
|
||||
assignreq.bodyPosition = role;
|
||||
assignreq.trackerId = tracker?.tracker.trackerId;
|
||||
if (allowDriftCompensation != null)
|
||||
assignreq.allowDriftCompensation = allowDriftCompensation;
|
||||
assignreq.allowDriftCompensation = false;
|
||||
sendRPCPacket(RpcMessage.AssignTrackerRequest, assignreq);
|
||||
setSelectBodypart(false);
|
||||
};
|
||||
@@ -113,12 +107,7 @@ export function TrackerSettingsPage() {
|
||||
|
||||
const updateTrackerSettings = () => {
|
||||
if (!tracker) return;
|
||||
if (allowDriftCompensation == null) return;
|
||||
if (
|
||||
trackerName == tracker.tracker.info?.customName &&
|
||||
allowDriftCompensation == tracker.tracker.info?.allowDriftCompensation
|
||||
)
|
||||
return;
|
||||
if (trackerName == tracker.tracker.info?.customName) return;
|
||||
const assignreq = new AssignTrackerRequestT();
|
||||
assignreq.bodyPosition = tracker?.tracker.info?.bodyPart || BodyPart.NONE;
|
||||
assignreq.mountingOrientation = currRotation
|
||||
@@ -127,7 +116,7 @@ export function TrackerSettingsPage() {
|
||||
|
||||
assignreq.displayName = trackerName ?? null;
|
||||
assignreq.trackerId = tracker?.tracker.trackerId;
|
||||
assignreq.allowDriftCompensation = allowDriftCompensation;
|
||||
assignreq.allowDriftCompensation = false;
|
||||
sendRPCPacket(RpcMessage.AssignTrackerRequest, assignreq);
|
||||
};
|
||||
|
||||
@@ -138,21 +127,10 @@ export function TrackerSettingsPage() {
|
||||
useDebouncedEffect(() => updateTrackerSettings(), [trackerName], 1000);
|
||||
|
||||
useEffect(() => {
|
||||
updateTrackerSettings();
|
||||
}, [allowDriftCompensation]);
|
||||
|
||||
useEffect(() => {
|
||||
if (tracker && !firstLoad) setFirstLoad(true);
|
||||
}, [tracker, firstLoad]);
|
||||
|
||||
useEffect(() => {
|
||||
if (firstLoad) {
|
||||
reset({
|
||||
trackerName: tracker?.tracker.info?.customName as string | null,
|
||||
allowDriftCompensation: tracker?.tracker.info?.allowDriftCompensation,
|
||||
});
|
||||
}
|
||||
}, [firstLoad]);
|
||||
reset({
|
||||
trackerName: tracker?.tracker.info?.customName as string | null,
|
||||
});
|
||||
}, []);
|
||||
|
||||
const boardType = useMemo(() => {
|
||||
if (tracker?.device?.hardwareInfo?.officialBoardType) {
|
||||
@@ -244,12 +222,20 @@ export function TrackerSettingsPage() {
|
||||
)}
|
||||
{!updateUnavailable && (
|
||||
<>
|
||||
{needUpdate === 'blocked' && (
|
||||
// This happens only if no update is available and or the user is not in the current stagged
|
||||
<Localized id="tracker-settings-update-blocked">
|
||||
<Typography>
|
||||
Update not available. No other releases available
|
||||
</Typography>
|
||||
</Localized>
|
||||
)}
|
||||
{needUpdate === 'updated' && (
|
||||
<Localized id="tracker-settings-update-up_to_date">
|
||||
<Typography>Up to date</Typography>
|
||||
</Localized>
|
||||
)}
|
||||
{needUpdate === 'need-update' && currentFirmwareRelease && (
|
||||
{needUpdate === 'can-update' && currentFirmwareRelease && (
|
||||
<Localized
|
||||
id="tracker-settings-update-available"
|
||||
vars={{ versionName: currentFirmwareRelease.name }}
|
||||
@@ -273,9 +259,9 @@ export function TrackerSettingsPage() {
|
||||
<Localized id="tracker-settings-update">
|
||||
<Button
|
||||
variant={
|
||||
needUpdate === 'need-update' ? 'primary' : 'secondary'
|
||||
needUpdate === 'can-update' ? 'primary' : 'secondary'
|
||||
}
|
||||
disabled={needUpdate !== 'need-update'}
|
||||
disabled={needUpdate !== 'can-update'}
|
||||
to="/firmware-update"
|
||||
>
|
||||
Update now
|
||||
@@ -469,29 +455,6 @@ export function TrackerSettingsPage() {
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{tracker?.tracker.info?.isImu && (
|
||||
<div className="flex flex-col gap-2 w-full mt-3">
|
||||
<Typography variant="section-title">
|
||||
{l10n.getString('tracker-settings-drift_compensation_section')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{l10n.getString(
|
||||
'tracker-settings-drift_compensation_section-description'
|
||||
)}
|
||||
</Typography>
|
||||
<div className="flex">
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
name="allowDriftCompensation"
|
||||
control={control}
|
||||
label={l10n.getString(
|
||||
'tracker-settings-drift_compensation_section-edit'
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{tracker?.tracker.info?.isImu &&
|
||||
tracker?.tracker.info?.magnetometer !==
|
||||
MagnetometerStatus.NOT_SUPPORTED && (
|
||||
|
||||
@@ -8,8 +8,8 @@ export function TrackerWifi({
|
||||
disabled,
|
||||
textColor = 'secondary',
|
||||
}: {
|
||||
rssi: number;
|
||||
ping: number;
|
||||
rssi: number | null;
|
||||
ping: number | null;
|
||||
rssiShowNumeric?: boolean;
|
||||
disabled?: boolean;
|
||||
textColor?: string;
|
||||
@@ -19,19 +19,20 @@ export function TrackerWifi({
|
||||
<div className="flex flex-col justify-around">
|
||||
<WifiIcon value={rssi} disabled={disabled} />
|
||||
</div>
|
||||
{!disabled && (
|
||||
{(!disabled && (ping != null || (rssiShowNumeric && rssi != null)) && (
|
||||
<div className="w-12">
|
||||
<Typography color={textColor} whitespace="whitespace-nowrap">
|
||||
{ping} ms
|
||||
</Typography>
|
||||
{rssiShowNumeric && (
|
||||
{ping != null && (
|
||||
<Typography color={textColor} whitespace="whitespace-nowrap">
|
||||
{ping} ms
|
||||
</Typography>
|
||||
)}
|
||||
{rssiShowNumeric && rssi != null && (
|
||||
<Typography color={textColor} whitespace="whitespace-nowrap">
|
||||
{rssi} dBm
|
||||
</Typography>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
{disabled && (
|
||||
)) || (
|
||||
<div className="flex flex-col justify-center w-12">
|
||||
<div className="w-7 h-1 bg-background-30 rounded-full"></div>
|
||||
</div>
|
||||
|
||||