mirror of
https://github.com/SlimeVR/SlimeVR-Server.git
synced 2026-04-06 02:01:58 +02:00
Compare commits
50 Commits
rest-calib
...
v0.17.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b02234f9fc | ||
|
|
eb10f07711 | ||
|
|
f15a503936 | ||
|
|
c580aecb11 | ||
|
|
81879afa32 | ||
|
|
1cb4edb651 | ||
|
|
26e04db950 | ||
|
|
fade902fc0 | ||
|
|
e072fc75c6 | ||
|
|
94da52c0e4 | ||
|
|
56c3290e1c | ||
|
|
e0f1ad8d4f | ||
|
|
bd4ec047c3 | ||
|
|
e3b3cb77d1 | ||
|
|
5a8804630b | ||
|
|
0df8b938d8 | ||
|
|
7180f4eaa7 | ||
|
|
2a55617e3a | ||
|
|
1777d584fe | ||
|
|
edd9ea02e1 | ||
|
|
119d9158c0 | ||
|
|
0e073a01fd | ||
|
|
4e9fdb206c | ||
|
|
0a08d57426 | ||
|
|
c316c50f30 | ||
|
|
81716be512 | ||
|
|
1d273ac651 | ||
|
|
7dc815cd86 | ||
|
|
d6f771e6b2 | ||
|
|
3aeb0569b1 | ||
|
|
bf2c5d59ab | ||
|
|
94b2309945 | ||
|
|
e81c9c5b2d | ||
|
|
900bdc03ca | ||
|
|
5a73ad77f2 | ||
|
|
1c6a29940a | ||
|
|
adb0ae969d | ||
|
|
ae5783ce9f | ||
|
|
4408b36ffb | ||
|
|
8708778596 | ||
|
|
b045c88158 | ||
|
|
0235660642 | ||
|
|
3d90d22b56 | ||
|
|
7ac3993543 | ||
|
|
79294e95c7 | ||
|
|
2e9256a630 | ||
|
|
0e0992e6d4 | ||
|
|
5be7896d8b | ||
|
|
25c659ba03 | ||
|
|
e38a4b40b5 |
12
.github/workflows/build-gui.yml
vendored
12
.github/workflows/build-gui.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
|
||||
- if: startsWith(matrix.os, 'ubuntu')
|
||||
name: Set up Linux dependencies
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
|
||||
with:
|
||||
packages: libgtk-3-dev webkit2gtk-4.1 libappindicator3-dev librsvg2-dev patchelf
|
||||
# Increment to invalidate the cache
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
|
||||
- if: startsWith(matrix.os, 'windows')
|
||||
name: Upload a Build Artifact (Windows)
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
# Artifact name
|
||||
name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }}
|
||||
@@ -112,7 +112,7 @@ jobs:
|
||||
|
||||
- if: startsWith(matrix.os, 'ubuntu')
|
||||
name: Upload a Build Artifact (Linux)
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
# Artifact name
|
||||
name: ${{ format('SlimeVR-GUI-Linux-{0}', env.BUILD_ARCH) }}
|
||||
@@ -121,7 +121,7 @@ jobs:
|
||||
|
||||
- if: matrix.os == 'macos-latest'
|
||||
name: Upload a Build Artifact (macOS)
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
# Artifact name
|
||||
name: SlimeVR-GUI-macOS
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/setup-node@v5
|
||||
- uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: '22.x'
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
run: |
|
||||
npx @slimevr/update-manifest-generator@latest
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: "update-manifest.json"
|
||||
path: ./update-manifest.json
|
||||
|
||||
42
.github/workflows/gradle.yaml
vendored
42
.github/workflows/gradle.yaml
vendored
@@ -33,7 +33,7 @@ jobs:
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
|
||||
- run: mkdir ./gui/dist && touch ./gui/dist/somefile
|
||||
shell: bash
|
||||
@@ -62,13 +62,13 @@ jobs:
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew shadowJar
|
||||
|
||||
- name: Upload the Server JAR as a Build Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
# Artifact name
|
||||
name: 'SlimeVR-Server' # optional, default is artifact
|
||||
@@ -101,11 +101,11 @@ jobs:
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
@@ -122,7 +122,7 @@ jobs:
|
||||
run: ./gradlew :server:android:assembleDebug
|
||||
|
||||
- name: Upload the Android Build Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
# Artifact name
|
||||
name: 'SlimeVR-Android' # optional, default is artifact
|
||||
@@ -158,16 +158,16 @@ jobs:
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v5
|
||||
- uses: actions/download-artifact@v6
|
||||
with:
|
||||
name: 'SlimeVR-Server'
|
||||
path: server/desktop/build/libs/
|
||||
|
||||
- name: Set up Linux dependencies
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
|
||||
with:
|
||||
packages: |
|
||||
build-essential curl wget file libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev
|
||||
build-essential curl wget file libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev xdg-utils
|
||||
# Increment to invalidate the cache
|
||||
version: ${{ format('v1.0-{0}', env.BUILD_ARCH) }}
|
||||
# Enables a workaround to attempt to run pre and post install scripts
|
||||
@@ -190,7 +190,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
@@ -207,23 +207,23 @@ jobs:
|
||||
run: |
|
||||
tar czf slimevr-gui-dist.tar.gz -C gui/dist/ .
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
with:
|
||||
name: SlimeVR-GUI-Dist
|
||||
path: ./slimevr-gui-dist.tar.gz
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ format('SlimeVR-GUI-Deb-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/deb/slimevr*.deb
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ format('SlimeVR-GUI-AppImage-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/appimage/slimevr*.AppImage
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ format('SlimeVR-GUI-RPM-{0}', env.BUILD_ARCH) }}
|
||||
path: target/release/bundle/rpm/slimevr*.rpm
|
||||
@@ -256,7 +256,7 @@ jobs:
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v5
|
||||
- uses: actions/download-artifact@v6
|
||||
with:
|
||||
name: 'SlimeVR-Server'
|
||||
path: server/desktop/build/libs/
|
||||
@@ -266,7 +266,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
@@ -297,12 +297,12 @@ jobs:
|
||||
--volicon ../macos/SlimeVR.app/Contents/Resources/icon.icns --skip-jenkins \
|
||||
--eula ../../../../../LICENSE-MIT slimevr.dmg ../macos/SlimeVR.app
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: SlimeVR-GUI-MacApp
|
||||
path: target/universal-apple-darwin/release/bundle/macos/SlimeVR*.app
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: SlimeVR-GUI-MacDmg
|
||||
path: target/universal-apple-darwin/release/bundle/dmg/slimevr.dmg
|
||||
@@ -336,7 +336,7 @@ jobs:
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v5
|
||||
- uses: actions/download-artifact@v6
|
||||
with:
|
||||
name: 'SlimeVR-Server'
|
||||
path: server/desktop/build/libs/
|
||||
@@ -351,7 +351,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
@@ -376,7 +376,7 @@ jobs:
|
||||
cp target/release/slimevr.exe ./SlimeVR/
|
||||
7z a -tzip "SlimeVR-$BUILD_ARCH.zip" ./SlimeVR/
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }}
|
||||
path: ./SlimeVR*.zip
|
||||
|
||||
15
.github/workflows/pontoon-pr.yml
vendored
15
.github/workflows/pontoon-pr.yml
vendored
@@ -3,22 +3,19 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- pontoon
|
||||
|
||||
jobs:
|
||||
pull_request:
|
||||
if: ${{ github.repository == 'SlimeVR/SlimeVR-Server' }}
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: repo-sync/pull-request@v2
|
||||
with:
|
||||
destination_branch: "main"
|
||||
pr_title: "New Pontoon translations"
|
||||
pr_body: "Please don't squash me 🥺"
|
||||
pr_label: "Area: Translation"
|
||||
github_token: ${{ secrets.PONTOON_BOT_KEY }}
|
||||
- name: pull-request
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PONTOON_BOT_KEY }}
|
||||
run: |
|
||||
gh_pr_up() { gh pr create "$@" --label "Area: Translation" --base main || gh pr edit "$@"; }
|
||||
gh_pr_up --title "New Pontoon translations" --body "Please don't squash me 🥺"
|
||||
|
||||
668
Cargo.lock
generated
668
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@ members = ["gui/src-tauri"]
|
||||
[workspace.package]
|
||||
edition = "2021"
|
||||
license = "MIT OR Apache-2.0"
|
||||
rust-version = "1.75" # Tauri's MSRV
|
||||
rust-version = "1.82" # Tauri's MSRV
|
||||
repository = "https://github.com/SlimeVR/SlimeVR-Server"
|
||||
|
||||
[profile.release]
|
||||
|
||||
@@ -70,3 +70,6 @@ okay with this and that you are authorized to provide the above licenses.
|
||||
[LICENSE-MIT]: LICENSE-MIT
|
||||
[LICENSE-APACHE]: LICENSE-APACHE
|
||||
[TRADEMARK]: TRADEMARK.md
|
||||
|
||||
|
||||
*if you read this, u cute*
|
||||
|
||||
107
flake.lock
generated
107
flake.lock
generated
@@ -43,11 +43,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750800495,
|
||||
"narHash": "sha256-wBTGFNCx3Gr3BkNkEoFrKx9+d7otSdQesCDCPGDKZHk=",
|
||||
"lastModified": 1757003908,
|
||||
"narHash": "sha256-Op3cnPTav+ObcL4R4BGuWHEFxW6YS2A0aE3Av6sZN2g=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "b33ab3610c084a7e3fabc5eefaeb437449f1efe7",
|
||||
"rev": "ac8ebf17828c0e7d9be0270d359123fffcc6f066",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -64,11 +64,11 @@
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750833544,
|
||||
"narHash": "sha256-e5W27mfPGiM35qr0DjTUzLHP4ET2MbvRc4HJHScw/ko=",
|
||||
"lastModified": 1756795219,
|
||||
"narHash": "sha256-tKBQtz1JLKWrCJUxVkHKR+YKmVpm0KZdJdPWmR2slQ8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "c3940d9ff4d37e965e5841149367234c2aad1ab6",
|
||||
"rev": "80dbdab137f2809e3c823ed027e1665ce2502d74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -120,11 +120,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -133,12 +133,15 @@
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -160,10 +163,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749636823,
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -182,6 +186,7 @@
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
@@ -219,7 +224,10 @@
|
||||
"devenv",
|
||||
"git-hooks"
|
||||
],
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-23-11": [
|
||||
"devenv"
|
||||
],
|
||||
@@ -228,11 +236,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750117611,
|
||||
"narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=",
|
||||
"lastModified": 1755029779,
|
||||
"narHash": "sha256-3+GHIYGg4U9XKUN4rg473frIVNn8YD06bjwxKS1IPrU=",
|
||||
"owner": "cachix",
|
||||
"repo": "nix",
|
||||
"rev": "9e4fc95c388e2223d47da865503dee20d179776a",
|
||||
"rev": "b0972b0eee6726081d10b1199f54de6d2917f861",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -249,11 +257,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749158376,
|
||||
"narHash": "sha256-uirStFNxauh0lxzBowcp28X+Sq7JgsBIDnbwbAfZwf8=",
|
||||
"lastModified": 1752002763,
|
||||
"narHash": "sha256-JYAkdZvpdSx9GUoHPArctYMypSONob4DYKRkOubUWtY=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "0f8974c58755dba441df03598eefd1e1cd50e341",
|
||||
"rev": "4f2437f6a1844b843b380d483087ae6d461240ee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -270,11 +278,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713543440,
|
||||
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
|
||||
"lastModified": 1752054764,
|
||||
"narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=",
|
||||
"owner": "guibou",
|
||||
"repo": "nixGL",
|
||||
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
|
||||
"rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -285,11 +293,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1747179050,
|
||||
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
|
||||
"lastModified": 1756787288,
|
||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
|
||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -301,11 +309,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1748740939,
|
||||
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
|
||||
"lastModified": 1754788789,
|
||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
|
||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -314,22 +322,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1750741721,
|
||||
"narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4b1164c3215f018c4442463a27689d973cffd750",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
@@ -338,17 +330,17 @@
|
||||
"mk-shell-bin": "mk-shell-bin",
|
||||
"nix2container": "nix2container",
|
||||
"nixgl": "nixgl",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750788942,
|
||||
"narHash": "sha256-bBSdUlEw/7xh66rtMEDg39xQUNN2VaDJIbRPIwhpFYk=",
|
||||
"lastModified": 1756597274,
|
||||
"narHash": "sha256-wfaKRKsEVQDB7pQtAt04vRgFphkVscGRpSx3wG1l50E=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "c68c8a81a7d2979778ae1e8ba024beacb4fff6b6",
|
||||
"rev": "21614ed2d3279a9aa1f15c88d293e65a98991b30",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -357,6 +349,21 @@
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
enable = true;
|
||||
toolchain = fenixpkgs.fromToolchainName {
|
||||
name = rust_toolchain.toolchain.channel;
|
||||
sha256 = "sha256-yMuSb5eQPO/bHv+Bcf/US8LVMbf/G/0MSfiPwBhiPpk=";
|
||||
sha256 = "sha256-+9FmLhAOezBZCOziO0Qct1NOrfpjNsXxc/8I0c7BdKE=";
|
||||
};
|
||||
components = rust_toolchain.toolchain.components;
|
||||
};
|
||||
|
||||
@@ -14,7 +14,7 @@ android.nonTransitiveRClass=true
|
||||
org.gradle.unsafe.configuration-cache=false
|
||||
|
||||
kotlinVersion=2.0.20
|
||||
spotlessVersion=7.0.2
|
||||
spotlessVersion=8.0.0
|
||||
shadowJarVersion=8.3.2
|
||||
buildconfigVersion=5.5.0
|
||||
grgitVersion=5.2.2
|
||||
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,8 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||
distributionSha256Sum=bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
34
gradlew
vendored
34
gradlew
vendored
@@ -15,6 +15,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
@@ -55,7 +57,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
@@ -83,10 +85,9 @@ done
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
|
||||
' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
@@ -133,10 +134,13 @@ location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
@@ -144,7 +148,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
@@ -152,7 +156,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
@@ -197,11 +201,15 @@ if "$cygwin" || "$msys" ; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
|
||||
22
gradlew.bat
vendored
22
gradlew.bat
vendored
@@ -13,6 +13,8 @@
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
|
||||
8
gui/.env
8
gui/.env
@@ -1,8 +1,8 @@
|
||||
VITE_FIRMWARE_TOOL_URL=https://fw-tool-api.slimevr.io
|
||||
VITE_FIRMWARE_TOOL_S3_URL=https://fw-tool-bucket.slimevr.io
|
||||
FIRMWARE_TOOL_SCHEMA_URL=https://fw-tool-api.slimevr.io/api-json
|
||||
VITE_FIRMWARE_TOOL_URL=https://fw-tool-api-v2.slimevr.io
|
||||
VITE_FIRMWARE_TOOL_S3_URL=https://fw-tool-bucket-v2.slimevr.io
|
||||
FIRMWARE_TOOL_SCHEMA_URL=https://fw-tool-api-v2.slimevr.io/api-json
|
||||
|
||||
|
||||
# VITE_FIRMWARE_TOOL_URL=http://localhost:3000
|
||||
# VITE_FIRMWARE_TOOL_S3_URL=http://localhost:9000
|
||||
# VITE_FIRMWARE_TOOL_S3_URL=http://localhost:9099
|
||||
# FIRMWARE_TOOL_SCHEMA_URL=http://localhost:3000/api-json
|
||||
|
||||
@@ -2,6 +2,7 @@ import { FlatCompat } from '@eslint/eslintrc';
|
||||
import eslint from '@eslint/js';
|
||||
import globals from 'globals';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import stylistic from '@stylistic/eslint-plugin';
|
||||
|
||||
const compat = new FlatCompat();
|
||||
|
||||
@@ -41,6 +42,7 @@ export const gui = [
|
||||
files: ['src/**/*.{js,jsx,ts,tsx,json}'],
|
||||
plugins: {
|
||||
'@typescript-eslint': tseslint.plugin,
|
||||
'@stylistic': stylistic,
|
||||
},
|
||||
rules: {
|
||||
'react/react-in-jsx-scope': 'off',
|
||||
@@ -60,6 +62,7 @@ export const gui = [
|
||||
ignoreRestSiblings: true,
|
||||
},
|
||||
],
|
||||
'@stylistic/jsx-self-closing-comp': 'error',
|
||||
},
|
||||
settings: {
|
||||
'import/resolver': {
|
||||
|
||||
@@ -16,15 +16,18 @@
|
||||
"@sentry/vite-plugin": "^2.22.7",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"@tanstack/react-query": "^5.48.0",
|
||||
"@tauri-apps/api": "^2.0.2",
|
||||
"@tauri-apps/plugin-dialog": "^2.0.0",
|
||||
"@tauri-apps/plugin-fs": "2.4.1",
|
||||
"@tauri-apps/plugin-http": "^2.5.0",
|
||||
"@tauri-apps/plugin-os": "^2.0.0",
|
||||
"@tauri-apps/plugin-shell": "^2.0.0",
|
||||
"@tauri-apps/plugin-store": "^2.0.0",
|
||||
"@tauri-apps/api": "~2",
|
||||
"@tauri-apps/plugin-dialog": "~2",
|
||||
"@tauri-apps/plugin-fs": "~2",
|
||||
"@tauri-apps/plugin-http": "~2",
|
||||
"@tauri-apps/plugin-log": "~2",
|
||||
"@tauri-apps/plugin-opener": "~2",
|
||||
"@tauri-apps/plugin-os": "~2",
|
||||
"@tauri-apps/plugin-shell": "~2",
|
||||
"@tauri-apps/plugin-store": "~2",
|
||||
"@tweenjs/tween.js": "^25.0.0",
|
||||
"@twemoji/svg": "^15.0.0",
|
||||
"ajv": "^8.17.1",
|
||||
"browser-fs-access": "^0.35.0",
|
||||
"classnames": "^2.5.1",
|
||||
"flatbuffers": "22.10.26",
|
||||
@@ -36,7 +39,7 @@
|
||||
"react-dom": "^18.3.1",
|
||||
"react-error-boundary": "^4.0.13",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-hook-form": "^7.53.0",
|
||||
"react-hook-form": "^7.63.0",
|
||||
"react-markdown": "^9.0.1",
|
||||
"react-modal": "^3.16.1",
|
||||
"react-responsive": "^10.0.0",
|
||||
@@ -69,9 +72,11 @@
|
||||
"@dword-design/eslint-plugin-import-alias": "^4.0.9",
|
||||
"@openapi-codegen/cli": "^2.0.2",
|
||||
"@openapi-codegen/typescript": "^8.0.2",
|
||||
"@stylistic/eslint-plugin": "^5.5.0",
|
||||
"@tailwindcss/forms": "^0.5.9",
|
||||
"@tauri-apps/cli": "^2.0.2",
|
||||
"@tauri-apps/cli": "~2",
|
||||
"@types/file-saver": "^2.0.7",
|
||||
"@types/node": "^24.3.1",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@types/react-helmet": "^6.1.11",
|
||||
@@ -84,12 +89,12 @@
|
||||
"autoprefixer": "^10.4.20",
|
||||
"cross-env": "^7.0.3",
|
||||
"dotenv": "^16.4.5",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint": "^9.39.0",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-import-resolver-typescript": "^3.6.3",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.0",
|
||||
"eslint-plugin-react": "^7.37.1",
|
||||
"eslint-import-resolver-typescript": "^3.10.1",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"globals": "^15.10.0",
|
||||
"prettier": "^3.3.3",
|
||||
@@ -98,7 +103,7 @@
|
||||
"spdx-satisfies": "^5.0.1",
|
||||
"tailwind-gradient-mask-image": "^1.2.0",
|
||||
"tailwindcss": "^3.4.13",
|
||||
"typescript-eslint": "^8.8.0",
|
||||
"typescript-eslint": "^8.46.2",
|
||||
"vite": "^5.4.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
## Websocket (server) status
|
||||
|
||||
websocket-connecting = جاري التحميل
|
||||
websocket-connecting = جاري التحميل...
|
||||
websocket-connection_lost = تعطل الخادم!
|
||||
websocket-connection_lost-desc = يبدو أن خادم SlimeVR تعطل. تحقق من السجلات وأعد تشغيل البرنامج
|
||||
websocket-timedout = تعذر الاتصال بالخادم
|
||||
@@ -313,7 +313,6 @@ 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 = التحديث الآن
|
||||
@@ -616,9 +615,6 @@ settings-general-interface-connected_trackers_warning-label = تحذير عن أ
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = السلوك
|
||||
settings-general-interface-dev_mode = وضع المطوّر
|
||||
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
|
||||
settings-general-interface-dev_mode-label = وضع المطوّر
|
||||
settings-general-interface-use_tray = تصغير إلى علبة النظام
|
||||
settings-general-interface-use_tray-description = يتيح لك إغلاق النافذة دون إغلاق خادم SlimeVR حتى تتمكن من الاستمرار في استخدامه دون إزعاجك من واجهة المستخدم الرسومية.
|
||||
settings-general-interface-use_tray-label = تصغير إلى علبة النظام
|
||||
@@ -661,7 +657,6 @@ settings-serial-factory_reset-warning =
|
||||
مما يعني أن إعدادات واي فاي والمعايرة <b>ستفقد جميعا!</b>
|
||||
settings-serial-factory_reset-warning-ok = أنا أعرف ماذا أفعل
|
||||
settings-serial-factory_reset-warning-cancel = إلغاء
|
||||
settings-serial-get_infos = احصل على معلومات
|
||||
settings-serial-serial_select = اختر منفذ تسلسلي
|
||||
settings-serial-auto_dropdown_item = تلقائي
|
||||
settings-serial-get_wifi_scan = احصل على فحص WiFi
|
||||
@@ -712,6 +707,7 @@ settings-osc-vrchat-oscqueryEnabled-description =
|
||||
ضمن "التتبع و IK (الحركة العكسية)" وتمكين "السماح بإرسال بيانات OSC لتتبع الرأس والمعصم".
|
||||
settings-osc-vrchat-oscqueryEnabled-label = تمكين OSCQuery
|
||||
settings-osc-vrchat-network = منافذ الشبكة
|
||||
settings-osc-vrchat-network-description-v1 = ضبط المنافذ الاستماع إلى البيانات وإرسالها. يمكن تركها دون أن تمس ل VRChat.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
.label = منفذ الدخول
|
||||
.placeholder = منفذ الدخول (الإفتراضي: 9001)
|
||||
@@ -719,6 +715,7 @@ settings-osc-vrchat-network-port_out =
|
||||
.label = منفذ الخروج
|
||||
.placeholder = منفذ الخروج (الإفتراضي: 9000)
|
||||
settings-osc-vrchat-network-address = عنوان الشبكة
|
||||
settings-osc-vrchat-network-address-description-v1 = اختر العنوان الذي تريد إرسال البيانات إليه. يمكن تركها دون أن تمس ل VRChat.
|
||||
settings-osc-vrchat-network-address-placeholder = عنوان آي بي الخاص بفي ار تشات
|
||||
settings-osc-vrchat-network-trackers = أجهزة التعقب
|
||||
settings-osc-vrchat-network-trackers-description = تبديل إرسال أجهزة تتبع محددة عبر أوه أس سي.
|
||||
@@ -751,13 +748,48 @@ settings-osc-vmc-network-address-description = قم بتعيين العنوان
|
||||
settings-osc-vmc-network-address-placeholder = عنوان آي بي في 4
|
||||
settings-osc-vmc-vrm = نموذج في ار إم
|
||||
settings-osc-vmc-vrm-description = قم بتحميل نموذج في ار إم للسماح بتركيز الرأس وتمكين توافق أعلى مع تطبيقات الأخرى
|
||||
settings-osc-vmc-vrm-untitled_model = نموذج بدون عنوان
|
||||
settings-osc-vmc-vrm-file_select = اسحب نموذج وأفلته لاستخدامه أو <u> تصفح </ u>
|
||||
settings-osc-vmc-anchor_hip = ثبت في الوركين
|
||||
settings-osc-vmc-anchor_hip-description = ثبت التعقب في الوركين، هو مفيد إن كنت تيوبنغ جالسًا. في حالة التعطيل، قم بتحميل نموذج في ار إم.
|
||||
settings-osc-vmc-anchor_hip-label = ثبت في الوركين
|
||||
settings-osc-vmc-mirror_tracking = اعكس التعقب
|
||||
settings-osc-vmc-mirror_tracking-description = اعكس التعقب أفقيا.
|
||||
settings-osc-vmc-mirror_tracking-label = اعكس التعقب
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = متقدم
|
||||
settings-utils-advanced-reset-gui = إعادة تعيين إعدادات واجهة المستخدم الرسومية (GUI)
|
||||
settings-utils-advanced-reset-gui-description = قم باستعادة الإعدادات الافتراضية للواجهة.
|
||||
settings-utils-advanced-reset-gui-label = إعادة تعيين واجهة المستخدم الرسومية
|
||||
settings-utils-advanced-reset-server = إعادة تعيين إعدادات التعقب
|
||||
settings-utils-advanced-reset-server-description = استعادة الإعدادات الافتراضية للتعقب.
|
||||
settings-utils-advanced-reset-server-label = إعادة تعيين التعقب
|
||||
settings-utils-advanced-reset-all = إعادة تعيين جميع الإعدادات
|
||||
settings-utils-advanced-reset-all-description = قم باستعادة الإعدادات الافتراضية لكل من الواجهة و التعقب.
|
||||
settings-utils-advanced-reset-all-label = إعادة تعيين الكل
|
||||
settings-utils-advanced-reset_warning =
|
||||
{ $type ->
|
||||
[gui]
|
||||
<b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين جميع الإعدادات الخاصة بك إلى الإعدادات الافتراضية.
|
||||
هل أنت متأكد من أنك تريد القيام بذلك؟
|
||||
[server] <b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين إعدادات التعقب إلى الإعدادات الافتراضية. هل أنت متأكد من أنك تريد القيام بذلك؟
|
||||
*[all]
|
||||
<b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين جميع الإعدادات الخاصة بك إلى الإعدادات الافتراضية.
|
||||
هل أنت متأكد من أنك تريد القيام بذلك؟
|
||||
}
|
||||
settings-utils-advanced-reset_warning-reset = إعادة تعيين الإعدادات
|
||||
settings-utils-advanced-reset_warning-cancel = إلغاء
|
||||
settings-utils-advanced-open_data-v1 = مجلد التكوين
|
||||
settings-utils-advanced-open_data-description-v1 = فتح مجلد إعدادات SlimeVR في مستكشف الملفات ، والذي يحتوي على الإعدادات
|
||||
settings-utils-advanced-open_data-label = فتح المجلد
|
||||
settings-utils-advanced-open_logs = مجلد السجلات
|
||||
settings-utils-advanced-open_logs-description = افتح مجلد سجلات SlimeVR في مستكشف الملفات ، والذي يحتوي على سجلات التطبيق
|
||||
settings-utils-advanced-open_logs-label = فتح المجلد
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
@@ -784,6 +816,7 @@ onboarding-wifi_creds-submit = إرسال!
|
||||
onboarding-wifi_creds-ssid =
|
||||
.label = اسم الواي فاي
|
||||
.placeholder = أدخل اسم الواي فاي
|
||||
onboarding-wifi_creds-ssid-required = مطلوب اسم Wi-Fi
|
||||
onboarding-wifi_creds-password =
|
||||
.label = كلمة السر
|
||||
.placeholder = أدخل كلمة السر
|
||||
@@ -841,6 +874,7 @@ onboarding-connect_tracker-issue-serial = أواجه مشكلة في الاتص
|
||||
onboarding-connect_tracker-usb = جهاز تعقب يو أس بي
|
||||
onboarding-connect_tracker-connection_status-none = نبحث عن أجهزة التعقب
|
||||
onboarding-connect_tracker-connection_status-serial_init = نتواصل بجهاز التسلسلي
|
||||
onboarding-connect_tracker-connection_status-obtaining_mac_address = الحصول على عنوان mac الخاص بجهاز التعقب
|
||||
onboarding-connect_tracker-connection_status-provisioning = نرسل بيانات اعتماد واي فاي
|
||||
onboarding-connect_tracker-connection_status-connecting = جارٍ إرسال بيانات اعتماد الواي فاي
|
||||
onboarding-connect_tracker-connection_status-looking_for_server = نبحث عن السرفر
|
||||
@@ -873,6 +907,7 @@ onboarding-calibration_tutorial-status-waiting = بانتظارك
|
||||
onboarding-calibration_tutorial-status-calibrating = جاري المعايرة
|
||||
onboarding-calibration_tutorial-status-success = رائع!
|
||||
onboarding-calibration_tutorial-status-error = تم نقل جهاز التعقب
|
||||
onboarding-calibration_tutorial-skip = تخطي البرنامج التعليمي
|
||||
|
||||
## Tracker assignment tutorial
|
||||
|
||||
@@ -904,6 +939,31 @@ onboarding-assign_trackers-assigned =
|
||||
onboarding-assign_trackers-advanced = إظهار مواقع التعيين المتقدمة
|
||||
onboarding-assign_trackers-next = لقد عينت جميع أجهزة التعقب
|
||||
onboarding-assign_trackers-mirror_view = عرض المرآة
|
||||
onboarding-assign_trackers-option-amount =
|
||||
{ $trackersCount ->
|
||||
[zero] صفر
|
||||
[one] واحد
|
||||
[two] اثنان
|
||||
[few] قليلة
|
||||
[many] كثيرة
|
||||
*[other] أخرى
|
||||
}
|
||||
onboarding-assign_trackers-option-label =
|
||||
{ $mode ->
|
||||
[lower-body] الجسم السفلي
|
||||
[core] أساس الجسم
|
||||
[enhanced-core] الأساس المحسن
|
||||
[full-body] الجسم الكامل
|
||||
*[all] الكل
|
||||
}
|
||||
onboarding-assign_trackers-option-description =
|
||||
{ $mode ->
|
||||
[lower-body] الحد الأدنى لتعقب الجسم الكامل في الواقع الافتراضي
|
||||
[core] + تحسين تعقب العمود الفقري
|
||||
[enhanced-core] + دوران القدم
|
||||
[full-body] + تعقب الكوع
|
||||
*[all] جميع مهام التعقب المتاحة
|
||||
}
|
||||
|
||||
## Tracker assignment warnings
|
||||
|
||||
@@ -988,7 +1048,7 @@ onboarding-choose_mounting-manual_mounting-label-v2 = قد لا تكون الد
|
||||
onboarding-choose_mounting-manual_mounting-description = سيسمح لك باختيار اتجاه التثبيت يدويًا لكل جهاز تعقب
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-manual_modal-title =
|
||||
هل أنت متأكد من أنك تريد
|
||||
هل أنت متأكد من أنك تريد
|
||||
معايرة التركيب التلقائي؟
|
||||
onboarding-choose_mounting-manual_modal-description = <b>يوصى بمعايرة التركيب اليدوي للمستخدمين الجدد</b> ، حيث قد يكون من الصعب الحصول على أوضاع معايرة التركيب التلقائي الصحيحة من اول مرة وقد تتطلب بعض التمرين.
|
||||
onboarding-choose_mounting-manual_modal-confirm = أنا أعرف ماذا أفعل
|
||||
@@ -1131,9 +1191,14 @@ 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
|
||||
onboarding-scaled_proportions-manual_height-warning-no_controllers = تأكد من توصيل وحدات التحكم الخاصة بك وتخصيصها بشكل صحيح ليديك
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
onboarding-scaled_proportions-reset_proportion-title = إعادة ضبط نسب جسمك
|
||||
onboarding-scaled_proportions-reset_proportion-description = لتعيين نسب جسمك بناء على طولك ، تحتاج إلى إعادة تعيين جميع نسبك. سيؤدي ذلك إلى مسح أي نسب قمت بتكوينها وتوفير تكوين أساسي.
|
||||
onboarding-scaled_proportions-done-title = مجموعة نسب الجسم
|
||||
onboarding-scaled_proportions-done-description = قد تم الآن تكوين نسب جسمك بناء على طولك.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
@@ -1160,12 +1225,29 @@ status_system-StatusSteamVRDisconnected =
|
||||
*[other] حاليًا غير متصل بـ SteamVR عبر برنامج تشغيل SlimeVR.
|
||||
}
|
||||
status_system-StatusTrackerError = يحتوي جهاز التعقب { $trackerName } على خطأ.
|
||||
status_system-StatusUnassignedHMD = يجب تعيين سماعة رأس VR كجهاز تعقب للرأس.
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
firmware_tool-next_step = الخطوة التالية
|
||||
firmware_tool-previous_step = الخطوة السابقة
|
||||
firmware_tool-ok = تبدو جيدة
|
||||
firmware_tool-retry = اعادة المحاولة
|
||||
firmware_tool-loading = تحميل...
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
firmware_tool = أداة البرامج الثابتة DIY
|
||||
firmware_tool-description = يسمح لك بتكوين و لتحديث أجهزة التعقب DIY الخاصة بك
|
||||
firmware_tool-not_available = عفوا ، أداة البرامج الثابتة غير متوفرة في الوقت الحالي. عد لاحقا!
|
||||
firmware_tool-not_compatible = أداة البرنامج الثابت غير متوافقة مع هذا الإصدار من الخادم. يرجى تحديث الخادم الخاص بك!
|
||||
firmware_tool-flash_method_step = طريقة التثبيت
|
||||
firmware_tool-flash_method_step-description = الرجاء حدد طريقة التثبيت التي تريد استخدامها
|
||||
firmware_tool-flashbtn_step = اضغط على زر التمهيد
|
||||
firmware_tool-flashbtn_step-description = قبل الانتقال إل الخطوة التالية، هناك بعض الأشياء التي عليك القيام بها
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = أوقف تشغيل جهاز التعقب، قم بإزالة العلبة (إن وجدت)، وقم بتوصيل كابل USB بهذا الكمبيوتر ، ثم قم بإحدى الخطوات التالية وفقا لمراجعة لوحة SlimeVR:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r11 = قم بتشغيل جهاز التعقب أثناء تقصير دائرة لوحة FLASH المستطيلة الثانية من الحافة الموجودة على الجانب العلوي من اللوحة ، والدرع المعدني للمتحكم الدقيق
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = قم بتشغيل جهاز التعقب أثناء تقصير دائرة لوحة FLASH الدائرية على الجانب العلوي من اللوحة ، والدرع المعدني للمتحكم الدقيق
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ skeleton_bone-ELBOW_OFFSET = Odsazení loktů
|
||||
|
||||
reset-reset_all = Obnovit nastavení proporcí
|
||||
reset-reset_all_warning-v2 =
|
||||
<b>Varování:</b> vyše proporce budou obnoveny do výchozích hodnot založených na vaší nakonfigurované výšce.
|
||||
<b>Varování:</b> vyše proporce budou obnoveny do výchozích hodnot založených na vaší nakonfigurované výšce.
|
||||
Jste si jistí že chcete udělat?
|
||||
reset-reset_all_warning-reset = Obnovit proporce
|
||||
reset-reset_all_warning-cancel = Zrušit
|
||||
@@ -285,7 +285,6 @@ tracker-settings-name_section-label = Název trackeru
|
||||
tracker-settings-forget = Zapomenout tracker
|
||||
tracker-settings-forget-description = Odebere tracker z SlimeVR Serveru a zabrání jeho opětovnému připojení do té doby, dokud nebude server restarován. Konfigurace trackeru nebude ztracena.
|
||||
tracker-settings-forget-label = Zapomenout tracker
|
||||
tracker-settings-update-unavailable = Nelze aktualizovat (DIY)
|
||||
tracker-settings-update-low-battery = Nelze provést aktualizaci. Baterie má méně než 50%
|
||||
tracker-settings-update-up_to_date = Aktuální
|
||||
tracker-settings-update-available = { $versionName } je nyní dostupný
|
||||
@@ -485,8 +484,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Připnutí k pod
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Přichycení špiček se pokouší odhadnout rotaci vašich chodidel v případě, že nepoužíváte trackery chodidel.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Narovnání chodidla při dotyku narovnává chodidla tak, aby byla rovnoběžně se zemí.
|
||||
settings-general-fk_settings-leg_fk = Sledování nohou
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Aktivovat reset nasazení nohou stoupnutím na špičky.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset nasazení nohou
|
||||
settings-general-fk_settings-enforce_joint_constraints = Limity kostry
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Prosazování omezení
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Zabránit rotaci kloubům za jejich limit
|
||||
@@ -593,9 +590,6 @@ settings-general-interface-connected_trackers_warning-label = Upozornění o př
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Chování
|
||||
settings-general-interface-dev_mode = Vývojářský režim
|
||||
settings-general-interface-dev_mode-description = Tento režim může být užitečný, pokud potřebujete podrobné údaje nebo omunikovat s trackerama na pokročilejší úrovni.
|
||||
settings-general-interface-dev_mode-label = Vývojářský režim
|
||||
settings-general-interface-use_tray = Minimalizovat do oznamovací oblasti
|
||||
settings-general-interface-use_tray-description = Umožňuje vám zavřít okno, aniž byste zavřeli SlimeVR Server, takže ho můžete nadále používat bez rozhraní.
|
||||
settings-general-interface-use_tray-label = Minimalizovat do oznamovací oblasti
|
||||
@@ -636,7 +630,6 @@ settings-serial-factory_reset-warning =
|
||||
To znamená, že nastavení Wi-Fi a kalibrace <b>budou ztracena!</b>
|
||||
settings-serial-factory_reset-warning-ok = Vím, co dělám
|
||||
settings-serial-factory_reset-warning-cancel = Zrušit
|
||||
settings-serial-get_infos = Získat informace
|
||||
settings-serial-serial_select = Vyberte sériový port
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Skenovat WiFi
|
||||
@@ -732,6 +725,9 @@ settings-osc-vmc-mirror_tracking = Zrcadlení sledování
|
||||
settings-osc-vmc-mirror_tracking-description = Zrcadlit trakování horizontálně.
|
||||
settings-osc-vmc-mirror_tracking-label = Zrcadlení trackování
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Pokročilé
|
||||
@@ -871,7 +867,6 @@ onboarding-connect_tracker-next = Připojil jsem všechny své trackery
|
||||
|
||||
onboarding-calibration_tutorial = Kalibrační návod pro IMU
|
||||
onboarding-calibration_tutorial-subtitle = Tohle pomůže snížit drift trackerů!
|
||||
onboarding-calibration_tutorial-description = Po každém zapnutí trackerů je potřeba je na chvíli položit na rovný povrch, aby se zkalibrovaly. Stejný postup provedeme teď kliknutím na tlačítko "{ onboarding-calibration_tutorial-calibrate }". <b>Během kalibrace jimi prosím nehýbejte!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Položil jsem trackery na stůl
|
||||
onboarding-calibration_tutorial-status-waiting = Čekám na tebe
|
||||
onboarding-calibration_tutorial-status-calibrating = Kalibruji
|
||||
@@ -1169,68 +1164,8 @@ firmware_tool = Nástroj pro DIY firmwere
|
||||
firmware_tool-description = Umožní vám konfigurovat a flashovat vaše DIY trackery
|
||||
firmware_tool-not_available = Jejda, nástroj pro firmware není v momentální chvíli k dispozici, Vraťte se později!
|
||||
firmware_tool-not_compatible = Nástroj pro firmware není kompatibilní s touhle verzí serveru. Aktualizujte prosím svůj server.
|
||||
firmware_tool-board_step = Vyberte vaší desku
|
||||
firmware_tool-board_step-description = Vyberte jednu z desek uvedené níže.
|
||||
firmware_tool-board_pins_step = Zkontrolujte piny
|
||||
firmware_tool-board_pins_step-description =
|
||||
Porsím ujistěte se že zvolené piny jsou správně.
|
||||
Jestli jste postupovaly podle SlimeVR dokumentace, tak by měli být výchozí hodnoty správně
|
||||
firmware_tool-board_pins_step-enable_led = Povolit LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED pin
|
||||
.placeholder = Vložte adresu pinu LED
|
||||
firmware_tool-board_pins_step-battery_type = Vyberte typ baterie
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Externí baterie
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Interní baterie
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Vnitřní MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Pin snímače baterie
|
||||
.placeholder = Vložte adresu pinu na kterém je připojen snímač baterie
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Odpor baterie (Ohmy)
|
||||
.placeholder = Vložte hodnotu rezistoru baterie
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Štít baterie R1 (v Ohmech)
|
||||
.placeholder = Vložte hodnotu štítu baterie R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Štít baterie R2 (v Ohmech)
|
||||
.placeholder = Vložte hodnotu štítu baterie R2
|
||||
firmware_tool-add_imus_step = Deklarujte své IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
Prosím přidejte IMU které má váš tracker
|
||||
Pokud jste následovali dokumentaci SlimeVR, výchozí hodnoty by měli být správné
|
||||
firmware_tool-add_imus_step-imu_type-label = Typ IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Vyberte typ IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Rotace IMU (stupně)
|
||||
.placeholder = Úhel rotace IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL Pin
|
||||
.placeholder = Adresa SCL pinu
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA Pin
|
||||
.placeholder = Adresa pinu SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT Pin
|
||||
.placeholder = Adresa pinu INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Nepovinné trackery
|
||||
firmware_tool-add_imus_step-show_less = Zobrazit měné
|
||||
firmware_tool-add_imus_step-show_more = Zobrazit více
|
||||
firmware_tool-add_imus_step-add_more = Přidat další IMU
|
||||
firmware_tool-select_firmware_step = Vyberte verzi firmwaru
|
||||
firmware_tool-select_firmware_step-description = Prosím zvolte, jakou verzi firmwaru chcete použít
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Zobrazit firmware třetích stran
|
||||
firmware_tool-flash_method_step = Metoda flashování
|
||||
firmware_tool-flash_method_step-description = Prosím zvolte metodu flashování, kterou chcete použít
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Použití metody "Over The Air" přenos přes vzduch. Vaše trackery použijí Wi-Fi pro aktualizaci jejich firmweru. Metoda funguje pouze na již nastavených a nakonfigorovaných trackerech.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Sériový
|
||||
.description = Použíte USB kabel pro aktualizování vaších trackerů.
|
||||
firmware_tool-flashbtn_step = Stiskněte tlačítko bootu btn
|
||||
firmware_tool-flashbtn_step-description = Než přejdeme na další krok, je tady pár věcí které musíte udělat
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Vypněte tracker, vyndejte z obalu (jestli v nějakém je), Připojte USB kabel k tomuto počítači a poté následujte jeden z kroků revize odpovídající k vaší verzi desky trackeru SlimeVR:
|
||||
@@ -1258,9 +1193,6 @@ firmware_tool-flashing_step-exit = Odejít
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Vytváření složky pro sestavení
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Stahování firmweru
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extrahování firmweru
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Konfigurování definicí
|
||||
firmware_tool-build-BUILDING = Sestavování firmweru
|
||||
firmware_tool-build-SAVING = Ukládání sestavení
|
||||
firmware_tool-build-DONE = Sestavení dokončeno
|
||||
|
||||
@@ -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!
|
||||
@@ -50,14 +47,17 @@ body_part-LEFT_UPPER_LEG = Venstre lår
|
||||
body_part-LEFT_LOWER_LEG = Venstre ankel
|
||||
body_part-LEFT_FOOT = Venstre fod
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Ingen
|
||||
skeleton_bone-HEAD = Hoved skift
|
||||
skeleton_bone-NECK = Hals længde
|
||||
skeleton_bone-torso_group = Torso Længde
|
||||
skeleton_bone-CHEST = Bryst Længde
|
||||
skeleton_bone-CHEST_OFFSET = Bryst Juster
|
||||
skeleton_bone-CHEST = Bryst Længde
|
||||
skeleton_bone-WAIST = Taljelængde
|
||||
skeleton_bone-HIP = Hoftelængde
|
||||
skeleton_bone-HIP_OFFSET = Hofte Juster
|
||||
@@ -103,11 +103,14 @@ navbar-mounting = Montage Kalibrering
|
||||
navbar-onboarding = Opsætningsguide
|
||||
navbar-settings = Indstillinger
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
## Biovision hierarchy recording
|
||||
|
||||
bvh-start_recording = Optag BVH
|
||||
bvh-recording = Optager...
|
||||
|
||||
## Tracking pause
|
||||
|
||||
|
||||
## Widget: Overlay settings
|
||||
|
||||
widget-overlay = Overlejring
|
||||
@@ -118,6 +121,9 @@ widget-overlay-is_mirrored_label = Vis Overlejring som Spejl
|
||||
|
||||
widget-drift_compensation-clear = Klar afdriftskompensation
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = Udviklertilstand
|
||||
@@ -134,7 +140,9 @@ widget-developer_mode-more_info = Mere info
|
||||
widget-imu_visualizer = Rotation
|
||||
widget-imu_visualizer-rotation_raw = Rå
|
||||
widget-imu_visualizer-rotation_preview = Forhåndsvisning
|
||||
widget-imu_visualizer-rotation_hide = Skjul
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
|
||||
## Tracker status
|
||||
|
||||
@@ -279,10 +287,6 @@ settings-general-steamvr-description =
|
||||
Nyttig til spil eller apps, der kun understøtter bestemte trackere.
|
||||
settings-general-steamvr-trackers-waist = Talje
|
||||
settings-general-steamvr-trackers-chest = Bryst
|
||||
settings-general-steamvr-trackers-feet = Fødder
|
||||
settings-general-steamvr-trackers-knees = Knæ
|
||||
settings-general-steamvr-trackers-elbows = Albuer
|
||||
settings-general-steamvr-trackers-hands = Hænder
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -326,14 +330,7 @@ settings-general-fk_settings-leg_fk = Bensporing
|
||||
settings-general-fk_settings-arm_fk = Arm sporing
|
||||
settings-general-fk_settings-arm_fk-description = Tving arme til spore fra HMD, selvom positionshånddata er tilgængelige.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Tving arme fra HMD
|
||||
settings-general-fk_settings-skeleton_settings = Indstillinger for skelet
|
||||
settings-general-fk_settings-skeleton_settings-description = Slå skeletindstillinger til eller fra. Det anbefales at lade disse være på.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine = Udvidet rygsøjle
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Forlænget pelvis
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Forlænget knæ
|
||||
settings-general-fk_settings-vive_emulation-title = Vive emulering
|
||||
settings-general-fk_settings-vive_emulation-description = Emuler de taljetrackerproblemer, som Vive-trackere har. Dette er en joke og gør sporing værre.
|
||||
settings-general-fk_settings-vive_emulation-label = Aktivér Vive-emulering
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -347,12 +344,18 @@ settings-general-gesture_control-taps =
|
||||
}
|
||||
settings-general-gesture_control-yawResetEnabled = Aktivér tryk for at yaw resette
|
||||
|
||||
## Interface settings
|
||||
## Appearance settings
|
||||
|
||||
settings-general-interface = Brugergrænseflade
|
||||
settings-general-interface-dev_mode = Udvikler-tilstand
|
||||
settings-general-interface-dev_mode-description = Denne tilstand kan være nyttig, hvis du har brug for dybdegående data eller for at interagere med tilsluttede trackere på et mere avanceret niveau.
|
||||
settings-general-interface-dev_mode-label = Udvikler-tilstand
|
||||
settings-general-interface-theme = Farvetema
|
||||
settings-general-interface-lang = Vælg sprog
|
||||
settings-general-interface-lang-description = Skift det standardsprog, du vil bruge.
|
||||
settings-general-interface-lang-placeholder = Vælg det sprog, der skal bruges
|
||||
|
||||
## Notification settings
|
||||
|
||||
settings-general-interface-serial_detection = Seriel enhedsregistrering
|
||||
settings-general-interface-serial_detection-description = Denne mulighed viser en pop-up, hver gang du tilslutter en ny seriel enhed, der kan være en tracker. Det hjælper med at forbedre opsætningsprocessen for en tracker.
|
||||
settings-general-interface-serial_detection-label = Seriel enhedsregistrering
|
||||
@@ -360,10 +363,9 @@ settings-general-interface-feedback_sound = Feedback lyd
|
||||
settings-general-interface-feedback_sound-description = Denne indstilling afspiller en lyd, når du nulstiller
|
||||
settings-general-interface-feedback_sound-label = Feedback lyd
|
||||
settings-general-interface-feedback_sound-volume = Feedback lydstyrke
|
||||
settings-general-interface-theme = Farvetema
|
||||
settings-general-interface-lang = Vælg sprog
|
||||
settings-general-interface-lang-description = Skift det standardsprog, du vil bruge.
|
||||
settings-general-interface-lang-placeholder = Vælg det sprog, der skal bruges
|
||||
|
||||
## Behavior settings
|
||||
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -378,7 +380,6 @@ settings-serial-factory_reset-warning =
|
||||
Hvilket betyder, at alle Wi-Fi- og kalibreringsindstillinger <b>går tabt!</b>
|
||||
settings-serial-factory_reset-warning-ok = Jeg ved hvad jeg laver
|
||||
settings-serial-factory_reset-warning-cancel = Annuller
|
||||
settings-serial-get_infos = Hent oplysninger
|
||||
settings-serial-serial_select = Vælg en seriel port
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
|
||||
@@ -409,14 +410,9 @@ settings-osc-router-network-address-placeholder = IPV4-adresse
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = VRChat OSC trackere
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description =
|
||||
Skift VRChat-specifikke indstillinger for at modtage HMD-data og sende
|
||||
trackerdata til FBT uden SteamVR (f.eks. Quest standalone).
|
||||
settings-osc-vrchat-enable = Aktiver
|
||||
settings-osc-vrchat-enable-label = Aktiver
|
||||
settings-osc-vrchat-network = Netværksporte
|
||||
settings-osc-vrchat-network-description = Indstil portene til at lytte og sende data til VRChat.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
.label = Port ind
|
||||
.placeholder = Port ind (standard: 9001)
|
||||
@@ -424,7 +420,6 @@ settings-osc-vrchat-network-port_out =
|
||||
.label = Port ud
|
||||
.placeholder = Port ud (standard: 9000)
|
||||
settings-osc-vrchat-network-address = Netværksadresse
|
||||
settings-osc-vrchat-network-address-description = Vælg hvilken adresse der skal sende data til VRChat (tjek dine Wi-Fi-indstillinger på din enhed).
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat ip-adresse
|
||||
settings-osc-vrchat-network-trackers = Trackere
|
||||
settings-osc-vrchat-network-trackers-description = Skift afsendelse af specifikke trackere via OSC.
|
||||
@@ -457,9 +452,14 @@ settings-osc-vmc-network-address-description = Vælg hvilken adresse du vil send
|
||||
settings-osc-vmc-network-address-placeholder = IPV4-adresse
|
||||
settings-osc-vmc-vrm = VRM-model
|
||||
settings-osc-vmc-vrm-description = Indlæs en VRM-model for at tillade hovedanker og muliggøre en højere kompatibilitet med andre applikationer
|
||||
settings-osc-vmc-vrm-model_unloaded = Ingen model indlæst
|
||||
settings-osc-vmc-vrm-file_select = Træk og slip en model, du vil bruge, eller <u>gennemse</u>
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
onboarding-skip = Spring opsætning over
|
||||
@@ -492,7 +492,6 @@ onboarding-wifi_creds-password =
|
||||
|
||||
onboarding-reset_tutorial-back = Gå tilbage til monteringskalibrering
|
||||
onboarding-reset_tutorial = Start forfra
|
||||
onboarding-reset_tutorial-description = Denne funktion er ikke færdig, bare tryk på fortsæt
|
||||
|
||||
## Setup start
|
||||
|
||||
@@ -516,8 +515,6 @@ onboarding-done-close = Luk opsætning
|
||||
|
||||
onboarding-connect_tracker-back = Gå tilbage til Wi-Fi-oplysninger
|
||||
onboarding-connect_tracker-title = Tilslut trackere
|
||||
onboarding-connect_tracker-description-p0 = Nu til den sjove del, forbind alle trackere!
|
||||
onboarding-connect_tracker-description-p1 = Du skal blot tilslutte alle, der ikke er tilsluttet endnu, via en USB-port.
|
||||
onboarding-connect_tracker-issue-serial = Jeg har problemer med at oprette forbindelse!
|
||||
onboarding-connect_tracker-usb = USB-tracker
|
||||
onboarding-connect_tracker-connection_status-none = Leder efter trackere
|
||||
@@ -544,6 +541,9 @@ onboarding-connect_tracker-next = Jeg har tilsluttet alle mine trackere
|
||||
## Tracker calibration tutorial
|
||||
|
||||
|
||||
## Tracker assignment tutorial
|
||||
|
||||
|
||||
## Tracker assignment setup
|
||||
|
||||
onboarding-assign_trackers-back = Gå tilbage til Wi-Fi-oplysninger
|
||||
@@ -567,12 +567,8 @@ onboarding-assign_trackers-next = Jeg har tildelt alle trackerene
|
||||
|
||||
onboarding-choose_mounting = Hvilken monteringskalibreringsmetode vil du bruge?
|
||||
onboarding-choose_mounting-auto_mounting = Automatisk montering
|
||||
# Italized text
|
||||
onboarding-choose_mounting-auto_mounting-subtitle = Anbefalet
|
||||
onboarding-choose_mounting-auto_mounting-description = Dette registrerer automatisk monteringsretningerne til alle dine trackere fra 2 stillinger
|
||||
onboarding-choose_mounting-manual_mounting = Manuel montering
|
||||
# Italized text
|
||||
onboarding-choose_mounting-manual_mounting-subtitle = Hvis du ved hvad du laver
|
||||
onboarding-choose_mounting-manual_mounting-description = Dette giver dig mulighed for manuelt at vælge monteringsretningen for hver tracker
|
||||
|
||||
## Tracker manual mounting setup
|
||||
@@ -593,12 +589,7 @@ onboarding-automatic_mounting-put_trackers_on-title = Tag dine trackere på
|
||||
onboarding-automatic_mounting-put_trackers_on-description = For at kalibrere rotationer bruger vi de trackere, du lige har tildelt. Tag alle dine trackere på du kan se hvilke der er hvilke i figuren til højre.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Jeg har alle mine trackere på
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
# Italized text
|
||||
onboarding-choose_proportions-auto_proportions-subtitle = Anbefalet
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
@@ -621,6 +612,48 @@ onboarding-automatic_proportions-verify_results-redo = prøv igen
|
||||
onboarding-automatic_proportions-done-title = Krop målt og gemt.
|
||||
onboarding-automatic_proportions-done-description = Kalibreringen af dine kropsproportioner er fuldført!
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Ingen trackere registreret eller tildelt
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
|
||||
## Status system
|
||||
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
## First exit modal
|
||||
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -112,9 +112,21 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = SlimeVR Dev-IMU-Handschuh
|
||||
skeleton_bone-NONE = Keine
|
||||
skeleton_bone-HEAD = Kopfverschiebung
|
||||
skeleton_bone-NECK = Halslänge
|
||||
skeleton_bone-NECK-desc =
|
||||
Dies ist der Abstand von der Mitte Ihres Kopfes bis zum Ansatz Ihres Nackens.
|
||||
Um diesen anzupassen, nicken Sie mit Ihren Kopf, als würden Sie "ja" sagen, oder neigen Sie Ihren Kopf nach links und rechts. und modifizieren Sie es, bis die Bewegung in anderen Trackern vernachlässigbar ist. Passen Sie den Wert so lange an, bis Bewegungen anderer Tracker kaum noch vorhanden sind.
|
||||
skeleton_bone-torso_group = Oberkörperhöhe
|
||||
skeleton_bone-torso_group-desc =
|
||||
Dies ist der Abstand vom Ansatz Ihres Nackens bis zu Ihren Hüften.
|
||||
Stehen Sie aufrecht und ändern Sie den Wert, bis Ihre virtuellen Hüften mit Ihren echten übereinstimmen.
|
||||
skeleton_bone-UPPER_CHEST = Obere Brustlänge
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
Dies ist der Abstand vom Ansatz Ihres Nackens bis zur Mitte Ihrer Brust.
|
||||
Passen Sie zunächst Ihre Rumpflänge korrekt an und verändern Sie dann diesen Wert in verschiedenen Positionen (z. B. im Sitzen, beim Bücken oder Liegen), bis Ihre virtuelle Wirbelsäule mit Ihrer echten übereinstimmt.
|
||||
skeleton_bone-CHEST_OFFSET = Brustversatz
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
Dies kann angepasst werden, um Ihren virtuellen Brust-Tracker nach oben oder unten zu verschieben, um
|
||||
die Kalibrierung in bestimmten Spielen oder Anwendungen zu unterstützen, die möglicherweise einen höheren oder niedrigeren Wert erwarten.
|
||||
skeleton_bone-CHEST = Brustabstand
|
||||
skeleton_bone-WAIST = Taillenabstand
|
||||
skeleton_bone-HIP = Hüftlänge
|
||||
@@ -148,6 +160,7 @@ reset-reset_all_warning_default-v2 =
|
||||
Möchten Sie dies wirklich tun?
|
||||
reset-full = Reset
|
||||
reset-mounting = Befestigungs-Reset
|
||||
reset-mounting-feet = Fuß-Befestigungs-Reset
|
||||
reset-yaw = Horizontaler Reset
|
||||
|
||||
## Serial detection stuff
|
||||
@@ -305,7 +318,6 @@ tracker-settings-name_section-label = Trackername
|
||||
tracker-settings-forget = Tracker Vergessen
|
||||
tracker-settings-forget-description = Entfernt den Tracker vom SlimeVR Server und verhindert, dass er sich wieder verbindet, bis der Server neu gestartet wurde. Die Konfiguration des Trackers geht nicht verloren.
|
||||
tracker-settings-forget-label = Tracker Vergessen
|
||||
tracker-settings-update-unavailable = Kann nicht aktualisiert werden (DIY)
|
||||
tracker-settings-update-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
|
||||
@@ -388,6 +400,7 @@ settings-sidebar-appearance = Erscheinungsbild
|
||||
settings-sidebar-notifications = Benachrichtigungen
|
||||
settings-sidebar-behavior = Verhalten
|
||||
settings-sidebar-firmware-tool = DIY Firmware-Tool
|
||||
settings-sidebar-vrc_warnings = VRChat Konfigurations-Warnungen
|
||||
settings-sidebar-advanced = Erweitert
|
||||
|
||||
## SteamVR settings
|
||||
@@ -450,7 +463,7 @@ settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
Aktivieren Sie diese Funktion, wenn sich der Tracker kontinuierlich um die gier-Achse dreht.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = Prognose der Driftkompensation
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>Warnung:</b> Verwenden Sie die Driftkompensation nur, wenn sie sehr oft
|
||||
<b>Warnung:</b> Verwenden Sie die Driftkompensation nur, wenn sie sehr oft
|
||||
reseten müssen (alle ~5-10 Minuten).
|
||||
|
||||
Zu den IMUs, die häufig einen Reset benötigen, gehören:
|
||||
@@ -461,7 +474,7 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensieru
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Nutze die letzten x Resets
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Automatische Befestigungs-Reset Kalibrierung speichern
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Speichert die automatische Befestigungs-Reset Kalibrierung für die Tracker zwischen den Neustarts. Nützlich
|
||||
Speichert die automatische Befestigungs-Reset Kalibrierung für die Tracker zwischen den Neustarts. Nützlich
|
||||
wenn Sie einen Anzug tragen, bei dem sich die Tracker zwischen den Sitzungen nicht bewegen. <b>Für normale Benutzer nicht zu empfehlen!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Befestigungs-Reset speichern
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Verwende das Magnetometer auf allen IMU-Trackern, die dies unterstützen.
|
||||
@@ -469,6 +482,11 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Verwendet das Magnetometer auf allen Trackern, die über eine kompatible Firmware verfügen, um den Drift in stabilen magnetischen Umgebungen zu reduzieren.
|
||||
Kann pro Tracker in den Einstellungen des Trackers deaktiviert werden. <b>Bitte schalten Sie keinen der Tracker aus, während Sie dies umschalten!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Magnetometer auf Trackern verwenden
|
||||
settings-stay_aligned = Stay Aligned
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Pose speichern
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Pose zurücksetzen
|
||||
settings-stay_aligned-relaxed_poses-close = Schließen
|
||||
settings-stay_aligned-debug-copy-label = Einstellungen in die Zwischenablage kopieren
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -490,8 +508,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Bodenclip kann d
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Zehen-Ausrichtung versucht, die Rotation Ihrer Füße zu erraten, wenn keine Fuß-Tracker verwendet werden.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Fußkorrektur richtet Ihre Füße parallel zum Boden aus, wenn sie den Boden berühren.
|
||||
settings-general-fk_settings-leg_fk = Beintracking
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Aktiviert das Zurücksetzen der Fußausrichtung, indem Sie auf die Zehenspitzen stehen.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Fußausrichtung zurücksetzen
|
||||
settings-general-fk_settings-enforce_joint_constraints = Gelenkgrenzen
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Grenzen erzwingen
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Verhindert, dass sich Gelenke über ihre Grenzen hinaus drehen
|
||||
@@ -564,6 +580,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = Erhö
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = Erscheinungsbild
|
||||
settings-general-interface-dev_mode = Entwicklermodus
|
||||
settings-general-interface-dev_mode-description = Der Entwicklermodus stellt mehr Daten dar und erlaubt auch erweiterte Einstellungen, so wie erweiterte Optionen bei verbundenen Trackern.
|
||||
settings-general-interface-dev_mode-label = Entwicklermodus
|
||||
settings-general-interface-theme = Farbschema
|
||||
settings-general-interface-show-navbar-onboarding = "{ navbar-onboarding }" in der Navigationsleiste anzeigen
|
||||
settings-general-interface-show-navbar-onboarding-description = Dies ändert die Sichtbarkeit der Schaltfläche "{ navbar-onboarding }" in der Navigationsleiste
|
||||
@@ -600,9 +619,6 @@ settings-general-interface-connected_trackers_warning-label = Warnung vor verbun
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Verhalten
|
||||
settings-general-interface-dev_mode = Entwicklermodus
|
||||
settings-general-interface-dev_mode-description = Der Entwicklermodus stellt mehr Daten dar und erlaubt auch erweiterte Einstellungen, so wie erweiterte Optionen bei verbundenen Trackern.
|
||||
settings-general-interface-dev_mode-label = Entwicklermodus
|
||||
settings-general-interface-use_tray = In den Infobereich minimieren
|
||||
settings-general-interface-use_tray-description = Erlaubt Ihnen, das Fenster zu schließen, ohne den SlimeVR-Server zu beenden. Dies erlaubt Ihnen diesen weiterzuverwenden, ohne dass das Fenster stört.
|
||||
settings-general-interface-use_tray-label = In den Infobereich minimieren
|
||||
@@ -641,7 +657,6 @@ settings-serial-factory_reset-warning =
|
||||
Das bedeutet, dass Wi-Fi- und Kalibrierungseinstellungen <b>verloren gehen!</b>
|
||||
settings-serial-factory_reset-warning-ok = Ich weiß, was ich tue
|
||||
settings-serial-factory_reset-warning-cancel = Abbruch
|
||||
settings-serial-get_infos = Informationen abrufen
|
||||
settings-serial-serial_select = Wählen Sie einen seriellen Anschluss
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = WLAN-Scan
|
||||
@@ -679,7 +694,7 @@ settings-osc-vrchat = VRChat-OSC-Trackers
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description-v1 =
|
||||
Ändern Sie die Einstellungen, die speziell für den OSC-Trackers-Standard verwendet werden, um Tracking-Daten an Anwendungen ohne SteamVR zu senden (z. B. für Quest Standalone).
|
||||
Stellen Sie sicher, dass Sie OSC in VRChat über das Aktionsmenü unter OSC > Aktiviert einschalten.
|
||||
Stellen Sie sicher, dass Sie OSC in VRChat über das Aktionsmenü unter OSC > Aktiviert einschalten.
|
||||
Um das Empfangen von HMD- und Controller-Daten von VRChat zu ermöglichen, gehen Sie in Ihrem Hauptmenü
|
||||
zu den Einstellungen unter Tracking & IK > Erlaube das Senden von Kopf- und Handgelenk-VR-Tracking-OSC-Daten.
|
||||
settings-osc-vrchat-enable = Aktivieren
|
||||
@@ -741,6 +756,10 @@ settings-osc-vmc-mirror_tracking = Tracking spiegeln
|
||||
settings-osc-vmc-mirror_tracking-description = Tracking horizontal spiegeln
|
||||
settings-osc-vmc-mirror_tracking-label = Tracking spiegeln
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
settings-osc-common-network-port_banned_error = Der Port { $port } kann nicht verwendet werden!
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Erweitert
|
||||
@@ -863,6 +882,8 @@ onboarding-connect_tracker-connection_status-looking_for_server = Suche nach Ser
|
||||
onboarding-connect_tracker-connection_status-connection_error = Es kann keine WLAN-Verbindung hergestellt werden
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = Server konnte nicht gefunden werden
|
||||
onboarding-connect_tracker-connection_status-done = Verbindung zum Server hergestellt.
|
||||
onboarding-connect_serial-error-modal-no_serial_log = Ist der Tracker eingeschaltet?
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = Keine Tracker erkannt
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -870,17 +891,16 @@ onboarding-connect_tracker-connection_status-done = Verbindung zum Server herges
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] Kein Tracker
|
||||
[one] 1 Tracker
|
||||
*[other] { $amount } Tracker
|
||||
} verbunden
|
||||
[0] Kein Tracker verbunden
|
||||
[one] 1 Tracker verbunden
|
||||
*[other] { $amount } Tracker verbunden
|
||||
}
|
||||
onboarding-connect_tracker-next = Ich habe alle meine Tracker verbunden.
|
||||
|
||||
## Tracker calibration tutorial
|
||||
|
||||
onboarding-calibration_tutorial = IMU-Kalibrierungs-Tutorial
|
||||
onboarding-calibration_tutorial-subtitle = Dies wird dazu beitragen, das Driften der Tracker zu reduzieren!
|
||||
onboarding-calibration_tutorial-description = Jedes Mal, wenn Sie Ihre Tracker einschalten, müssen diese für einen Moment auf einer ebenen Oberfläche ruhen, um sie zu kalibrieren. Lassen Sie uns dies nun tun, indem Sie auf die Schaltfläche "Kalibrieren" klicken. <b>Verschieben Sie die Tracker nicht!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Ich habe meine Tracker auf den Tisch gelegt
|
||||
onboarding-calibration_tutorial-status-waiting = Wir warten auf Sie
|
||||
onboarding-calibration_tutorial-status-calibrating = Kalibriere
|
||||
@@ -907,10 +927,10 @@ onboarding-assign_trackers-description = Wählen Sie nun aus, welcher Tracker wo
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } von { $trackers ->
|
||||
[one] 1 Tracker
|
||||
*[other] { $trackers } Tracker
|
||||
} zugewiesen
|
||||
{ $trackers ->
|
||||
[one] { $assigned } von 1 Tracker zugewiesen
|
||||
*[other] { $assigned } von { $trackers } Tracker zugewiesen
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Erweiterte Zuweisungspositionen anzeigen
|
||||
onboarding-assign_trackers-next = Ich habe alle Tracker zugewiesen
|
||||
onboarding-assign_trackers-mirror_view = Ansicht spiegeln
|
||||
@@ -1048,26 +1068,22 @@ onboarding-automatic_mounting-mounting_reset-title = Befestigungs-Reset
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Beugen Sie sich in die "Skifahren"-Pose mit gebeugten Beinen, geneigtem Oberkörper und gebeugten Armen.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Drücken Sie die Schaltfläche "Befestigungs-Reset" und warten Sie 3 Sekunden, bevor die Drehungen der Tracker gesetzt werden.
|
||||
onboarding-automatic_mounting-preparation-title = Vorbereitung
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stehen Sie aufrecht mit Ihren Armen an den Seiten.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Drücken Sie die Schaltfläche "Reset" und warten Sie 3 Sekunden, bevor die Tracker zurückgesetzt werden.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Legen Sie Ihre Tracker an
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Um die Drehung der Tracker zu kalibrieren, werden die Tracker verwendet, welche Sie gerade zugewiesen haben. Ziehen Sie alle Ihre Tracker an, in der Abbildung rechts können sie sehen um welchen Tracker es sich handelt.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Ich habe alle meine Tracker angelegt
|
||||
onboarding-automatic_mounting-return-home = Fertig
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = Gehen Sie zurück zum Reset-Tutorial
|
||||
onboarding-manual_proportions-title = Manuelle Körperproportionen
|
||||
onboarding-manual_proportions-precision = Feinanpassung
|
||||
onboarding-manual_proportions-auto = Automatische Kalibrierung
|
||||
onboarding-manual_proportions-ratio = Anpassung nach Proportionen
|
||||
onboarding-manual_proportions-fine_tuning_button = Automatische Feinabstimmung der Proportionen
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Bitte schließen Sie ein VR-Headset an, um die automatische Feinabstimmung zu nutzen
|
||||
onboarding-manual_proportions-export = Proportionen exportieren
|
||||
onboarding-manual_proportions-import = Proportionen importieren
|
||||
onboarding-manual_proportions-import-success = Importiert
|
||||
onboarding-manual_proportions-import-failed = Fehlgeschlagen
|
||||
onboarding-manual_proportions-file_type = Körperproportions-Datei
|
||||
onboarding-manual_proportions-all_proportions = Alle Proportionen
|
||||
onboarding-manual_proportions-estimated_height = Geschätzte Benutzergröße
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1177,6 +1193,13 @@ onboarding-scaled_proportions-reset_proportion-description = Um Ihre Körperprop
|
||||
onboarding-scaled_proportions-done-title = Körperproportionen festgelegt
|
||||
onboarding-scaled_proportions-done-description = Ihre Körperproportionen sollten nun basierend auf Ihrer Größe konfiguriert sein.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-put_trackers_on-next = Ich habe alle meine Tracker angelegt
|
||||
onboarding-stay_aligned-preparation-title = Vorbereitung
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Überspringen
|
||||
onboarding-stay_aligned-done = Fertig
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Keine Tracker erkannt oder zugewiesen
|
||||
@@ -1215,68 +1238,8 @@ firmware_tool = DIY Firmware-Tool
|
||||
firmware_tool-description = Erlaubt ihnen das Konfigurieren und Flashen von DIY Trackern
|
||||
firmware_tool-not_available = Das Firmware Tool ist im Moment nicht verfügbar. Versuche sie später erneut!
|
||||
firmware_tool-not_compatible = Das Firmware Tool ist nicht mit dieser Version des Servers kompatibel. Bitte den Server aktualisieren!
|
||||
firmware_tool-board_step = Wähle das Board
|
||||
firmware_tool-board_step-description = Wähle eines der Boards unten aus der Liste aus.
|
||||
firmware_tool-board_pins_step = Überprüfe die Pins
|
||||
firmware_tool-board_pins_step-description =
|
||||
Bitte vergewissern Sie sich, dass die ausgewählten Pins korrekt sind.
|
||||
Wenn Sie der SlimeVR-Dokumentation gefolgt sind, sollten die Standardwerte korrekt sein.
|
||||
firmware_tool-board_pins_step-enable_led = LED aktivieren
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED Pin
|
||||
.placeholder = Geben Sie die Pin-Nummer der LED ein.
|
||||
firmware_tool-board_pins_step-battery_type = Wähle den Batterie Typ aus
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Externe Batterie
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Interne Batterie
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Internal MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Batteriesensor-Pin
|
||||
.placeholder = Geben Sie die Pin-Nummer des Batteriesensors ein.
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Batteriewiderstand (Ohm)
|
||||
.placeholder = Geben Sie den Wert des Batteriewiderstands ein.
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Battery Shield R1 (Ohms)
|
||||
.placeholder = Geben Sie den Wert des Widerstands R1 des Battery Shields ein
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Battery Shield R2 (Ohms)
|
||||
.placeholder = Geben Sie den Wert des Widerstands R2 des Battery Shields ein
|
||||
firmware_tool-add_imus_step = Deklarieren Sie die IMUs
|
||||
firmware_tool-add_imus_step-description =
|
||||
Bitte fügen Sie die IMUs hinzu, die Ihr Tracker hat.
|
||||
Wenn Sie der SlimeVR-Dokumentation gefolgt sind, sollten die Standardwerte korrekt sein.
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU Typ
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Wähle den IMU Typ aus
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = IMU Rotation (deg)
|
||||
.placeholder = Rotationswinkel des IMUs
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL Pin
|
||||
.placeholder = Pin-Nummer von SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA Pin
|
||||
.placeholder = Pin-Nummer von SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT Pin
|
||||
.placeholder = Pin-Nummer von INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Optionaler Tracker
|
||||
firmware_tool-add_imus_step-show_less = Weniger anzeigen
|
||||
firmware_tool-add_imus_step-show_more = Mehr anzeigen
|
||||
firmware_tool-add_imus_step-add_more = Weitere IMUs hinzufügen
|
||||
firmware_tool-select_firmware_step = Firmware-Version auswählen
|
||||
firmware_tool-select_firmware_step-description = Bitte wählen Sie die Firmware-Version aus, die Sie verwenden möchten.
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Drittanbieter-Firmware anzeigen
|
||||
firmware_tool-flash_method_step = Flash-Methode
|
||||
firmware_tool-flash_method_step-description = Bitte wählen Sie die Flash-Methode aus, die Sie verwenden möchten.
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Verwenden Sie die Over-the-Air-Methode. Ihr Tracker wird das Wi-Fi nutzen, um die Firmware zu aktualisieren. Funktioniert nur bei bereits eingerichteten Trackern.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Seriell
|
||||
.description = Verwenden Sie ein USB-Kabel, um Ihren Tracker zu aktualisieren.
|
||||
firmware_tool-flashbtn_step = Drücken Sie den Boot-Button
|
||||
firmware_tool-flashbtn_step-description = Bevor Sie mit dem nächsten Schritt fortfahren, gibt es ein paar Dinge, die Sie erledigen müssen.
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Schalten Sie den Tracker aus, entfernen Sie das Gehäuse (falls vorhanden), verbinden Sie ein USB-Kabel mit diesem Computer und führen Sie dann einen der folgenden Schritte entsprechend Ihrer SlimeVR-Board-Revision aus:
|
||||
@@ -1305,9 +1268,6 @@ firmware_tool-flashing_step-exit = Schließen
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Erstelle den Build-Ordner
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Lade die Firmware herunter
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extrahiere die Firmware
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Konfiguriere die Defines
|
||||
firmware_tool-build-BUILDING = Erstellen der Firmware
|
||||
firmware_tool-build-SAVING = Speichern des Builds
|
||||
firmware_tool-build-DONE = Erstellen abgeschlossen
|
||||
@@ -1371,6 +1331,21 @@ unknown_device-modal-description =
|
||||
Möchten Sie diesen mit SlimeVR verbinden?
|
||||
unknown_device-modal-confirm = Sicher!
|
||||
unknown_device-modal-forget = Ignorieren
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = VRChat Konfigurations-Warnungen
|
||||
vrc_config-on = An
|
||||
vrc_config-off = Aus
|
||||
vrc_config-invalid = Sie haben falsch konfigurierte VRChat-Einstellungen!
|
||||
vrc_config-show_more = Mehr anzeigen
|
||||
vrc_config-setting_name = Name der VRChat-Einstellung
|
||||
vrc_config-recommended_value = Empfohlener Wert
|
||||
vrc_config-current_value = Aktueller Wert
|
||||
vrc_config-mute = Warnung stummschalten
|
||||
vrc_config-mute-btn = Stummschalten
|
||||
vrc_config-unmute-btn = Stummschaltung aufheben
|
||||
vrc_config-user_height = Echte Benutzergröße
|
||||
vrc_config-tracker_model-UNKNOWN = Unbekannt
|
||||
vrc_config-tracker_model-AXIS = Achse
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -41,13 +41,16 @@ body_part-LEFT_UPPER_LEG = Αριστερός μηρός
|
||||
body_part-LEFT_LOWER_LEG = Αριστερός αστράγαλος
|
||||
body_part-LEFT_FOOT = Αριστερό πόδι
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Τίποτα
|
||||
skeleton_bone-HEAD = Μετατόπιση κεφαλής
|
||||
skeleton_bone-NECK = Μήκος λαιμού
|
||||
skeleton_bone-CHEST = Μήκος στήθους
|
||||
skeleton_bone-CHEST_OFFSET = Μετατόπιση στήθους
|
||||
skeleton_bone-CHEST = Μήκος στήθους
|
||||
skeleton_bone-WAIST = Μήκος μέσης
|
||||
skeleton_bone-HIP = Μήκος γοφών
|
||||
skeleton_bone-HIP_OFFSET = Μετατόπιση γοφών
|
||||
@@ -106,6 +109,9 @@ widget-overlay-is_mirrored_label = Εμφάνιση υπέρθεσης ως κα
|
||||
|
||||
widget-drift_compensation-clear = Επαναφορά αντιστάθμισης drift
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = Λειτουργία προγραμματιστή
|
||||
@@ -123,6 +129,9 @@ widget-imu_visualizer = Περιστροφή
|
||||
widget-imu_visualizer-rotation_raw = Ακατέργαστο
|
||||
widget-imu_visualizer-rotation_preview = Προεπισκόπηση
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
|
||||
## Tracker status
|
||||
|
||||
tracker-status-none = Χωρίς κατάσταση
|
||||
@@ -231,8 +240,6 @@ tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } αριστερό
|
||||
settings-general-steamvr = SteamVR
|
||||
settings-general-steamvr-trackers-waist = Μέση
|
||||
settings-general-steamvr-trackers-chest = Στήθος
|
||||
settings-general-steamvr-trackers-feet = Πόδια
|
||||
settings-general-steamvr-trackers-hands = Χέρια
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -243,7 +250,13 @@ settings-general-steamvr-trackers-hands = Χέρια
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
|
||||
## Interface settings
|
||||
## Appearance settings
|
||||
|
||||
|
||||
## Notification settings
|
||||
|
||||
|
||||
## Behavior settings
|
||||
|
||||
|
||||
## Serial settings
|
||||
@@ -260,6 +273,12 @@ settings-osc-vrchat-network-trackers-feet = Πόδια
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
|
||||
@@ -302,17 +321,53 @@ settings-osc-vrchat-network-trackers-feet = Πόδια
|
||||
## Tracker automatic mounting setup
|
||||
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -300,7 +300,6 @@ tracker-settings-name_section-label = twackaw name
|
||||
tracker-settings-forget = *forgors the tracker*
|
||||
tracker-settings-forget-description = remooves teh twackew fwom da SwimeVR sewvew n pwevent it frum conecting to it til fhe sewvew iz westawtied. the cowonfigyuwatsin of da twackew woant b wost.
|
||||
tracker-settings-forget-label = *forgors the tracker*
|
||||
tracker-settings-update-unavailable = cannawt be updayted (DIY)
|
||||
tracker-settings-update-up_to_date = up to dayte!! ^w^
|
||||
tracker-settings-update-available = { $versionName } is naow awailabwe
|
||||
tracker-settings-update = uwupdate meow!
|
||||
@@ -467,8 +466,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = fwoow-cwip can r
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = toe-snap atempts to gwess da wotation of ur fweet if fweet tracker thingys arewnt in use
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = pawb-pwant wotates youw feet to be pawawwew to the gwound wen in cawntact.
|
||||
settings-general-fk_settings-leg_fk = leg twacking
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Enyabwe pawb Meownting Weset by tiptoeing.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Pawb Meownting Weset
|
||||
settings-general-fk_settings-enforce_joint_constraints = skewetal wimits
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = enfourse constwaints
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = pwevents da joins fwom wotating past da wimit
|
||||
@@ -541,6 +538,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = incwe
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = appeawance
|
||||
settings-general-interface-dev_mode = devwowwewow mode
|
||||
settings-general-interface-dev_mode-description = this mode can be wowseffuw if you need in-dipth data owow to intewact with cownnected twackaws on a wowowe wowadvanced wowwevew
|
||||
settings-general-interface-dev_mode-label = devwowwewow mode
|
||||
settings-general-interface-theme = cowor theem
|
||||
settings-general-interface-show-navbar-onboarding = show "{ navbar-onboarding }" on da nawigation bar
|
||||
settings-general-interface-show-navbar-onboarding-description = dis change if da "{ navbar-onboarding }" button show on da nawigashun bar!
|
||||
@@ -577,9 +577,6 @@ settings-general-interface-connected_trackers_warning-label = Connected twackews
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = behavur
|
||||
settings-general-interface-dev_mode = devwowwewow mode
|
||||
settings-general-interface-dev_mode-description = this mode can be wowseffuw if you need in-dipth data owow to intewact with cownnected twackaws on a wowowe wowadvanced wowwevew
|
||||
settings-general-interface-dev_mode-label = devwowwewow mode
|
||||
settings-general-interface-use_tray = minimaize to systewm tway
|
||||
settings-general-interface-use_tray-description = wets u cwose the wimdOwOw wifhout cwosing da SwimeVR Sewvew so uou can keep using it withowt da GUI bohtewing u.
|
||||
settings-general-interface-use_tray-label = minimaize to systewm tway
|
||||
@@ -610,7 +607,6 @@ settings-serial-factory_reset-warning =
|
||||
which means wi-fi and cawibwation settings <b>wiww aww be wost!</b>
|
||||
settings-serial-factory_reset-warning-ok = i know what I'm doing :3
|
||||
settings-serial-factory_reset-warning-cancel = cancew
|
||||
settings-serial-get_infos = get infows
|
||||
settings-serial-serial_select = sewect a shewyaw pawt
|
||||
settings-serial-auto_dropdown_item = awto
|
||||
settings-serial-get_wifi_scan = get wifi scan uwu
|
||||
@@ -697,6 +693,9 @@ settings-osc-vmc-mirror_tracking = miwwow twacking
|
||||
settings-osc-vmc-mirror_tracking-description = miwwow da twacking howizawntawwy.
|
||||
settings-osc-vmc-mirror_tracking-label = miwwow twacking
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced-reset_warning =
|
||||
@@ -817,17 +816,16 @@ onboarding-connect_tracker-connection_status-done = cownyected to teh sewvew
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] no twackers
|
||||
[one] 1 twackers
|
||||
*[other] { $amount } twackers
|
||||
} cownyected
|
||||
[0] no twackers cownyected
|
||||
[one] 1 twackers cownyected
|
||||
*[other] { $amount } twackers cownyected
|
||||
}
|
||||
onboarding-connect_tracker-next = i cownyected awe my twackaws
|
||||
|
||||
## Tracker calibration tutorial
|
||||
|
||||
onboarding-calibration_tutorial = imu cawibwashun tutowiawl
|
||||
onboarding-calibration_tutorial-subtitle = dis will hewp weduce twackew dwifting!!!
|
||||
onboarding-calibration_tutorial-description = evewy time you tuwn on youw twackews, dey need to west fow a moment on a fwat suwface to cawibwate. wet's do da same ting by booping da "{ onboarding-calibration_tutorial-calibrate }" buddon, <b>do nyot move dem!!!</b>
|
||||
onboarding-calibration_tutorial-calibrate = i pwace da twackew on da tabwe
|
||||
onboarding-calibration_tutorial-status-waiting = waiiiting fur u
|
||||
onboarding-calibration_tutorial-status-calibrating = cawibwating
|
||||
@@ -854,10 +852,10 @@ onboarding-assign_trackers-description = wets choyse which twackaw goes whewe. c
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } of { $trackers ->
|
||||
[one] 1 twackaws
|
||||
*[other] { $trackers } twackaws
|
||||
} assigned
|
||||
{ $trackers ->
|
||||
[one] { $assigned } of 1 twackaws assigned
|
||||
*[other] { $assigned } of { $trackers } twackaws assigned
|
||||
}
|
||||
onboarding-assign_trackers-advanced = show advanced assign wocations
|
||||
onboarding-assign_trackers-next = i assigned awe the twackaws
|
||||
onboarding-assign_trackers-mirror_view = miwwow vyew
|
||||
@@ -995,8 +993,6 @@ onboarding-automatic_mounting-mounting_reset-title = meownting weset
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. squawt in a "skiing" pose with yowo wegs bent, yowo upper body tilted fowwawds, and yowo awems bent.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. pwess the "weset meownting" button and wait fow 3 seconds befowe the twackaws' meownting wowations will weset.
|
||||
onboarding-automatic_mounting-preparation-title = pwepaiwation
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. stand upwight with yowo awems to yowo sides.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. pwess the "fuww weset" button and wait fow 3 seconds befowe the twackaws will weset.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = put on yowo twackaws
|
||||
onboarding-automatic_mounting-put_trackers_on-description = to cawibwate meownting wowations, we'we gonna use the twackaws yowo just assigned. put on awe yowo twackaws, yowo can see which awe which in the figuwe to the wowight.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = i haff awe my twackaws on
|
||||
@@ -1005,12 +1001,8 @@ onboarding-automatic_mounting-put_trackers_on-next = i haff awe my twackaws on
|
||||
|
||||
onboarding-manual_proportions-back = go bawck to weset tutowiaw
|
||||
onboarding-manual_proportions-title = manyuaw bodee pwopowtiesions
|
||||
onboarding-manual_proportions-precision = pwecision adjusty
|
||||
onboarding-manual_proportions-auto = owtomatic cawybwation
|
||||
onboarding-manual_proportions-ratio = ajust by watio gwoups
|
||||
onboarding-manual_proportions-fine_tuning_button = automaticawwy fine tuwune propowtions
|
||||
onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = pwease connect a vr headset to use automatic fine tuwuning
|
||||
onboarding-manual_proportions-import-failed = faiwed :(
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1115,6 +1107,9 @@ onboarding-scaled_proportions-reset_proportion-description = to set youw pwopowt
|
||||
onboarding-scaled_proportions-done-title = body pwopowtions set
|
||||
onboarding-scaled_proportions-done-description = youw body pwopowtions shuld nao be configuwed based on youw heit :3
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = no twackaws detecyted owo wowigned
|
||||
@@ -1153,68 +1148,8 @@ firmware_tool = DIY fiwmwawe toow
|
||||
firmware_tool-description = awwows u to configuwe an fwash youw DIY twackews
|
||||
firmware_tool-not_available = oopsie woopsie! da fiwmwawe toow iz nawt avaiwabwe wight meow :3 twy agen laitew!
|
||||
firmware_tool-not_compatible = teh fiwmwawe toow iz nawt compatibwe wit dis vershun of teh sewvew. pwease uwupdate youw sewvew!
|
||||
firmware_tool-board_step = sewect youw boawd
|
||||
firmware_tool-board_step-description = sewect wun of da boawds wisted bewow owo
|
||||
firmware_tool-board_pins_step = check da pins
|
||||
firmware_tool-board_pins_step-description =
|
||||
pwease vewify dat da pins hewe r cowwect.
|
||||
if u fowwowed teh swimevr docs teh defawt vawuwes shuld be cowwect
|
||||
firmware_tool-board_pins_step-enable_led = enabwe da wights
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = pin fow teh wight
|
||||
.placeholder = put in teh pin addwess fow teh wight
|
||||
firmware_tool-board_pins_step-battery_type = sewect da battewy taip
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = extewnaw battewy
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = intewnaw battewy
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = intewnaw mcp 3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = mcp3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = battewy sensow pin
|
||||
.placeholder = put in teh pin addwess fow teh battewy sensow
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = battewy wesistow (owms)
|
||||
.placeholder = put in teh vawue fow teh battewy wesistow
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = battewy shiewd r1 (owms)
|
||||
.placeholder = put in teh vawue of battewy shiewd r1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = battewy shiewd r2 (owms)
|
||||
.placeholder = put in teh vawue of battewy shiewd r2
|
||||
firmware_tool-add_imus_step = decwawe youw imuwus
|
||||
firmware_tool-add_imus_step-description =
|
||||
pwease add teh imuwus dat youw twackew got
|
||||
if u fowwowed teh swimevr docsteh defawt vawuwes shuld be cowwect
|
||||
firmware_tool-add_imus_step-imu_type-label = imuwu taip
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = sewect teh taip of imuwu
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = imuwu wotaishun (degwees)
|
||||
.placeholder = wotaishun angle of teh imuwu
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = scl pin
|
||||
.placeholder = pin addwess of scl
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = sda pin
|
||||
.placeholder = pin addwess of sda
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = int pin
|
||||
.placeholder = pin addwess of int
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = opshunal twackew
|
||||
firmware_tool-add_imus_step-show_less = show wess
|
||||
firmware_tool-add_imus_step-show_more = show mowe
|
||||
firmware_tool-add_imus_step-add_more = add mowe imuwus!!
|
||||
firmware_tool-select_firmware_step = sewect teh fiwmwawe vershun
|
||||
firmware_tool-select_firmware_step-description = pwease chooze wat vershun of teh fiwmwawe u wanna use
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = show thiwd pawty fiwmwawes
|
||||
firmware_tool-flash_method_step = fwashin mefod
|
||||
firmware_tool-flash_method_step-description = pwease sewect teh fwashin mefod u wanna use
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = ovew teh aiw
|
||||
.description = use da ovew teh aiw mefod. youw twackew wiww use da wifi to uwupdate its fiwmwawe :3 but it ownwy wowks on awedy fwashed twackews!
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = sewiaw
|
||||
.description = use an usb cabwe to uwupdate youw twackew.
|
||||
firmware_tool-flashbtn_step = pwess da buwut buddon
|
||||
firmware_tool-flashbtn_step-description = befow goin into da next step thewe's stuff u gotta do
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = tuwn awf da twackew, wemove da case if u got wun, conecc an usb cabwe to dis compooper, den do wun of da fowwowin steps dependin on wat swimevr boawd u got:
|
||||
@@ -1236,16 +1171,12 @@ firmware_tool-build_step = bildin
|
||||
firmware_tool-build_step-description = da fiwmwawe is bildin pwease wait :3
|
||||
firmware_tool-flashing_step = fwashin
|
||||
firmware_tool-flashing_step-description = youw twackews r fwashin, pwease fowwow da instwucshuns on da scween
|
||||
firmware_tool-flashing_step-warning = do NAWT unpwug ow westawt da twackew duwin da upwoad pwocess unwess towd to, it culd make youw boawd unuwusabwe
|
||||
firmware_tool-flashing_step-flash_more = fwash mowe twackews
|
||||
firmware_tool-flashing_step-exit = exit
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = cweatin da bild fowdew
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = downwoadin da fiwmwawe
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = extwactin da fiwmwawe
|
||||
firmware_tool-build-SETTING_UP_DEFINES = configuwin da defains
|
||||
firmware_tool-build-BUILDING = bildin da fiwmwawe
|
||||
firmware_tool-build-SAVING = savin da bild
|
||||
firmware_tool-build-DONE = bild compwete!
|
||||
@@ -1254,7 +1185,6 @@ firmware_tool-build-ERROR = unabwe to bild da fiwmwawe...
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = downwoadin da fiwmwawe
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = pwease westawt da twackew
|
||||
firmware_update-status-AUTHENTICATING = awthenticatin wit da mcu
|
||||
firmware_update-status-UPLOADING = upwoadin da fiwmwawe
|
||||
firmware_update-status-SYNCING_WITH_MCU = syncin wit da mcu
|
||||
|
||||
@@ -89,6 +89,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-SLIMEVR_DEV = SlimeVR Dev Board
|
||||
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
@@ -383,7 +385,8 @@ tracker-settings-name_section-label = Tracker name
|
||||
tracker-settings-forget = Forget tracker
|
||||
tracker-settings-forget-description = Removes the tracker from the SlimeVR Server and prevents it from connecting until the server is restarted. The configuration of the tracker won't be lost.
|
||||
tracker-settings-forget-label = Forget tracker
|
||||
tracker-settings-update-unavailable = Cannot be updated (DIY)
|
||||
tracker-settings-update-unavailable-v2 = No releases found
|
||||
tracker-settings-update-incompatible = Cannot update. Incompatible board
|
||||
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
|
||||
@@ -593,6 +596,9 @@ settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Enf
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Prevents joints from rotating past their limit
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Correct with constraints
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Correct joint rotations when they push past their limit
|
||||
settings-general-fk_settings-ik = Position data
|
||||
settings-general-fk_settings-ik-use_position = Use Position data
|
||||
settings-general-fk_settings-ik-use_position-description = Enables the use of position data from trackers that provide it. When enabling this make sure to full reset and recalibrate in game.
|
||||
settings-general-fk_settings-arm_fk = Arm tracking
|
||||
settings-general-fk_settings-arm_fk-description = Force arms to be tracked from the headset (HMD) even if positional hand data is available.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
|
||||
@@ -737,12 +743,17 @@ settings-serial-factory_reset-warning =
|
||||
Which means Wi-Fi and calibration settings <b>will all be lost!</b>
|
||||
settings-serial-factory_reset-warning-ok = I know what I'm doing
|
||||
settings-serial-factory_reset-warning-cancel = Cancel
|
||||
settings-serial-get_infos = Get Infos
|
||||
settings-serial-serial_select = Select a serial port
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Get WiFi Scan
|
||||
settings-serial-file_type = Plain text
|
||||
settings-serial-save_logs = Save To File
|
||||
settings-serial-send_command = Send
|
||||
settings-serial-send_command-placeholder = Command...
|
||||
settings-serial-send_command-warning =
|
||||
<b>Warning:</b> Running serial commands can lead to data loss or brick the trackers.
|
||||
settings-serial-send_command-warning-ok = I know what I'm doing
|
||||
settings-serial-send_command-warning-cancel = Cancel
|
||||
|
||||
## OSC router settings
|
||||
settings-osc-router = OSC router
|
||||
@@ -835,6 +846,10 @@ settings-osc-vmc-mirror_tracking = Mirror tracking
|
||||
settings-osc-vmc-mirror_tracking-description = Mirror the tracking horizontally.
|
||||
settings-osc-vmc-mirror_tracking-label = Mirror tracking
|
||||
|
||||
## Common OSC settings
|
||||
settings-osc-common-network-ports_match_error = The OSC Router in and out ports can't be the same!
|
||||
settings-osc-common-network-port_banned_error = The port { $port } can't be used!
|
||||
|
||||
## Advanced settings
|
||||
settings-utils-advanced = Advanced
|
||||
|
||||
@@ -1328,78 +1343,38 @@ firmware_tool-description =
|
||||
firmware_tool-not_available = Oops, the firmware tool is not available at the moment. Come back later!
|
||||
firmware_tool-not_compatible = The firmware tool is not compatible with this version of the server. Please update your server!
|
||||
|
||||
firmware_tool-board_step = Select your Board
|
||||
firmware_tool-board_step-description = Select one of the boards listed below.
|
||||
firmware_tool-select_source = Select the firmware to flash
|
||||
firmware_tool-select_source-description = Select the firmware you want to flash on your board
|
||||
firmware_tool-select_source-error = Unable to load Sources
|
||||
firmware_tool-select_source-board_type = Board Type
|
||||
firmware_tool-select_source-firmware = Firmware Source
|
||||
firmware_tool-select_source-version = Firmware Version
|
||||
firmware_tool-select_source-official = Official
|
||||
firmware_tool-select_source-dev = Dev
|
||||
|
||||
firmware_tool-board_pins_step = Check the pins
|
||||
firmware_tool-board_pins_step-description =
|
||||
Please verify that the selected pins are correct.
|
||||
If you followed the SlimeVR documentation, the default values should be correct.
|
||||
firmware_tool-board_pins_step-enable_led = Enable LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED Pin
|
||||
.placeholder = Enter the pin address of the LED
|
||||
|
||||
firmware_tool-board_pins_step-battery_type = Select the battery type
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = External battery
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Internal battery
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Internal MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
|
||||
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Battery sensor Pin
|
||||
.placeholder = Enter the pin address of battery sensor
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Battery Resistor (Ohms)
|
||||
.placeholder = Enter the value of battery resistor
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Battery Shield R1 (Ohms)
|
||||
.placeholder = Enter the value of Battery Shield R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Battery Shield R2 (Ohms)
|
||||
.placeholder = Enter the value of Battery Shield R2
|
||||
|
||||
firmware_tool-add_imus_step = Declare your IMUs
|
||||
firmware_tool-add_imus_step-description =
|
||||
Please add the IMUs that your tracker has.
|
||||
If you followed the SlimeVR documentation, the default values should be correct.
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU type
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Select the type of IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = IMU Rotation (deg)
|
||||
.placeholder = Rotation angle of the IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL Pin
|
||||
.placeholder = Pin address of SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA Pin
|
||||
.placeholder = Pin address of SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT Pin
|
||||
.placeholder = Pin address of INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Optional tracker
|
||||
firmware_tool-add_imus_step-show_less = Show Less
|
||||
firmware_tool-add_imus_step-show_more = Show More
|
||||
firmware_tool-add_imus_step-add_more = Add more IMUs
|
||||
|
||||
firmware_tool-select_firmware_step = Select the firmware version
|
||||
firmware_tool-select_firmware_step-description =
|
||||
Please choose what version of the firmware you want to use
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Show third party firmwares
|
||||
firmware_tool-board_defaults = Configure your board
|
||||
firmware_tool-board_defaults-description = Set the pins or settings relative to your hardware
|
||||
firmware_tool-board_defaults-add = Add
|
||||
firmware_tool-board_defaults-reset = Reset to Default
|
||||
firmware_tool-board_defaults-error-required = Required field
|
||||
firmware_tool-board_defaults-error-format = Invalid format
|
||||
firmware_tool-board_defaults-error-format-number = Not a number
|
||||
|
||||
firmware_tool-flash_method_step = Flashing Method
|
||||
firmware_tool-flash_method_step-description =
|
||||
Please select the flashing method you want to use
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
|
||||
firmware_tool-flash_method_step-ota-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = Use the over-the-air method. Your tracker will use Wi-Fi to update its firmware. Only works on trackers that have been set up.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
firmware_tool-flash_method_step-ota-info =
|
||||
We use your wifi credentials to flash the tracker and confirm that everything worked correctly.
|
||||
<b>We do not store your wifi credentials!</b>
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.description = Use a USB cable to update your tracker.
|
||||
|
||||
|
||||
firmware_tool-flashbtn_step = Press the boot btn
|
||||
firmware_tool-flashbtn_step-description = Before going to the next step, there are a few things you need to do
|
||||
|
||||
@@ -1413,10 +1388,10 @@ firmware_tool-flashbtn_step-board_OTHER = Before flashing, you will probably nee
|
||||
If the flashing process times out at the start, it probably means that the tracker was not in bootloader mode.
|
||||
Refer to your board's flashing instructions to learn how to enter bootloader mode.
|
||||
|
||||
|
||||
|
||||
firmware_tool-flash_method_ota-title = Flashing over Wi-Fi
|
||||
firmware_tool-flash_method_ota-devices = Detected OTA Devices:
|
||||
firmware_tool-flash_method_ota-no_devices = There are no boards that can be updated using OTA, make sure you selected the correct board type
|
||||
firmware_tool-flash_method_serial-title = Flashing over USB
|
||||
firmware_tool-flash_method_serial-wifi = Wi-Fi Credentials:
|
||||
firmware_tool-flash_method_serial-devices-label = Detected Serial Devices:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = Select a serial device
|
||||
@@ -1434,10 +1409,10 @@ firmware_tool-flashing_step-flash_more = Flash more trackers
|
||||
firmware_tool-flashing_step-exit = Exit
|
||||
|
||||
## firmware tool build status
|
||||
firmware_tool-build-QUEUED = Waiting to build....
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Creating the build folder
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Downloading the firmware
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extracting the firmware
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configuring the defines
|
||||
firmware_tool-build-DOWNLOADING_SOURCE = Downloading the source code
|
||||
firmware_tool-build-EXTRACTING_SOURCE = Extracting the source code
|
||||
firmware_tool-build-BUILDING = Building the firmware
|
||||
firmware_tool-build-SAVING = Saving the build
|
||||
firmware_tool-build-DONE = Build Complete
|
||||
|
||||
@@ -95,6 +95,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-SLIMEVR_DEV = Placa de Desarrollo de SlimeVR
|
||||
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
@@ -244,6 +246,8 @@ reset-reset_all_warning_default-v2 =
|
||||
¿Estás seguro de que quieres hacer esto?
|
||||
reset-full = Reinicio completo
|
||||
reset-mounting = Reinicio de montura
|
||||
reset-mounting-feet = Restablecer montura de los pies
|
||||
reset-mounting-fingers = Restablecer montura de los dedos
|
||||
reset-yaw = Reinicio horizontal
|
||||
|
||||
## Serial detection stuff
|
||||
@@ -269,6 +273,7 @@ navbar-settings = Ajustes
|
||||
|
||||
bvh-start_recording = Grabar BVH
|
||||
bvh-recording = Grabando...
|
||||
bvh-save_title = Guardar grabación BVH
|
||||
|
||||
## Tracking pause
|
||||
|
||||
@@ -403,9 +408,11 @@ tracker-settings-name_section-label = Nombre del sensor
|
||||
tracker-settings-forget = Olvidar tracker
|
||||
tracker-settings-forget-description = Remueve el tracker del servidor de SlimeVR y lo previene de conectarse hasta que el servidor se reinicie. La configuración del tracker no se perderá.
|
||||
tracker-settings-forget-label = Olvidar tracker
|
||||
tracker-settings-update-unavailable = No se puede actualizar (DIY)
|
||||
tracker-settings-update-unavailable-v2 = No se encontraron lanzamientos
|
||||
tracker-settings-update-incompatible = No se puede actualizar. Placa incompatible
|
||||
tracker-settings-update-low-battery = No se puede actualizar. Batería por debajo del 50%
|
||||
tracker-settings-update-up_to_date = Actualizado
|
||||
tracker-settings-update-blocked = Actualización no disponible. No hay otras versiones disponibles
|
||||
tracker-settings-update-available = { $versionName } ya está disponible
|
||||
tracker-settings-update = Actualizar ahora
|
||||
tracker-settings-update-title = Versión del firmware
|
||||
@@ -609,6 +616,8 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = El clip del suel
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = El encajado de dedos intenta adivinar la rotación de los pies si sus respectivos trackers no están en uso.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = El plantado del pie rota los pies para que sean paralelos con el suelo al entrar en contacto.
|
||||
settings-general-fk_settings-leg_fk = Tracking de piernas
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Forzar el reinicio de la montura de los pies durante los reinicios generales del montaje.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Forzar reinicio de montura de pies
|
||||
settings-general-fk_settings-enforce_joint_constraints = Límites esqueléticos
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Imponer restricciones
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Evita que las articulaciones giren más allá de su límite
|
||||
@@ -720,9 +729,6 @@ settings-general-interface-connected_trackers_warning-label = Advertencia de tra
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportamiento
|
||||
settings-general-interface-dev_mode = Modo desarrollador
|
||||
settings-general-interface-dev_mode-description = Este modo puede ser útil si es que necesitas información a fondo o para un nivel de interacción más avanzado con los sensores conectados.
|
||||
settings-general-interface-dev_mode-label = Modo desarrollador
|
||||
settings-general-interface-use_tray = Minimizar a la bandeja del sistema
|
||||
settings-general-interface-use_tray-description = Permite cerrar la ventana sin cerrar el servidor de SlimeVR para que puedas continuar usándolo sin que te moleste la interfaz.
|
||||
settings-general-interface-use_tray-label = Minimizar a la bandeja del sistema
|
||||
@@ -744,6 +750,9 @@ settings-interface-behavior-error_tracking-description_v2 =
|
||||
|
||||
Para proveer la mejor experiencia de usuario, recopilamos reportes de errores anonimizados, métricas de rendimiento, e información del sistema operativo. Esto nos ayuda a detectar errores y problemas con SlimeVR. Estas métricas son recopiladas a través de Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Enviar errores a los desarrolladores
|
||||
settings-interface-behavior-bvh_directory = Carpeta para guardar grabaciones de BVH
|
||||
settings-interface-behavior-bvh_directory-description = Elige una carpeta para guardar tus grabaciones BVH en lugar de tener que elegir dónde guardarlas cada vez.
|
||||
settings-interface-behavior-bvh_directory-label = Carpeta de grabaciones BVH
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -762,12 +771,14 @@ settings-serial-factory_reset-warning =
|
||||
¡Esto significa que los ajustes de calibración y Wi-Fi <b>se perderán</b>!
|
||||
settings-serial-factory_reset-warning-ok = Sé lo que estoy haciendo
|
||||
settings-serial-factory_reset-warning-cancel = Cancelar
|
||||
settings-serial-get_infos = Obtener información
|
||||
settings-serial-serial_select = Selecciona un puerto serial
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Obtener escaneo WiFi
|
||||
settings-serial-file_type = Texto sin formato
|
||||
settings-serial-save_logs = Guardar en archivo
|
||||
settings-serial-send_command-placeholder = Comando...
|
||||
settings-serial-send_command-warning-ok = Sé lo que estoy haciendo
|
||||
settings-serial-send_command-warning-cancel = Cancelar
|
||||
|
||||
## OSC router settings
|
||||
|
||||
@@ -865,6 +876,11 @@ settings-osc-vmc-mirror_tracking = Invertir el tracking
|
||||
settings-osc-vmc-mirror_tracking-description = invierte el tracking horizontalmente.
|
||||
settings-osc-vmc-mirror_tracking-label = Invertir el tracking
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
settings-osc-common-network-ports_match_error = ¡Los puertos de entrada y salida del Router OSC no pueden ser los mismos!
|
||||
settings-osc-common-network-port_banned_error = ¡El puerto { $port } no se puede usar!
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Avanzado
|
||||
@@ -1016,6 +1032,7 @@ onboarding-connect_tracker-next = He conectado todos mis sensores
|
||||
|
||||
onboarding-calibration_tutorial = Tutorial de calibración de IMU
|
||||
onboarding-calibration_tutorial-subtitle = ¡Esto te ayudara a reducir la desviación del tracker!
|
||||
onboarding-calibration_tutorial-description-v1 = Después de encender tus trackers, colócalos en una superficie estable por un momento para permitir la calibración. La calibración se puede realizar en cualquier momento después de encender los trackers—esta página simplemente proporciona un tutorial. Para comenzar, haz clic en el botón «{ onboarding-calibration_tutorial-calibrate }», y luego <b>¡no muevas tus trackers!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Puse los sensores en una mesa.
|
||||
onboarding-calibration_tutorial-status-waiting = Esperando por ti
|
||||
onboarding-calibration_tutorial-status-calibrating = Calibrando
|
||||
@@ -1042,9 +1059,9 @@ onboarding-assign_trackers-description = Debes escoger dónde van los sensores.
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } de { $trackers ->
|
||||
[one] 1 sensor asignado
|
||||
*[other] { $trackers } sensores asignados
|
||||
{ $trackers ->
|
||||
[one] { $assigned } de 1 sensor asignado
|
||||
*[other] { $assigned } de { $trackers } sensores asignados
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Mostrar ubicación de asignaciones avanzados.
|
||||
onboarding-assign_trackers-next = He asignado todos los sensores
|
||||
@@ -1190,6 +1207,7 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. Mantén la posición ha
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Ponte tus sensores
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la ubicación de tus monturas, usaremos los sensores que has asignado. Ponte todos tus sensores, puedes ver cuál es cual en la figura de la derecha.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Tengo puestos todos mis sensores
|
||||
onboarding-automatic_mounting-return-home = Hecho
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
@@ -1390,68 +1408,24 @@ firmware_tool = Herramienta de firmware DIY
|
||||
firmware_tool-description = Le permite configurar y actualizar sus sensores construidos por usted
|
||||
firmware_tool-not_available = Vaya, la herramienta de firmware no está disponible en este momento. ¡Vuelva más tarde!
|
||||
firmware_tool-not_compatible = La herramienta de firmware no es compatible con esta versión del servidor. ¡Por favor, actualice la app!
|
||||
firmware_tool-board_step = Seleccione su placa
|
||||
firmware_tool-board_step-description = Seleccione una de las placas que se enumeran a continuación.
|
||||
firmware_tool-board_pins_step = Revisar los pines
|
||||
firmware_tool-board_pins_step-description =
|
||||
Verifique que los pines seleccionados sean correctos.
|
||||
Si siguió la documentación de SlimeVR, los valores predeterminados deben ser correctos
|
||||
firmware_tool-board_pins_step-enable_led = Habilitar LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Pin del LED
|
||||
.placeholder = Ingrese la dirección pin del LED
|
||||
firmware_tool-board_pins_step-battery_type = Seleccione el tipo de batería
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batería externa
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batería interna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interno
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Pin del sensor de batería
|
||||
.placeholder = Ingrese la dirección pin del sensor de batería
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Resistencia de la batería (Ohmios)
|
||||
.placeholder = Ingrese el valor de la resistencia de la batería.
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Shield de la batería R1 (Ohmios).
|
||||
.placeholder = Ingrese el valor del shield de la batería R1.
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Shield de la batería R2 (Ohmios).
|
||||
.placeholder = Ingrese el valor del shield de la batería R2.
|
||||
firmware_tool-add_imus_step = Declare sus IMUs
|
||||
firmware_tool-add_imus_step-description =
|
||||
Por favor añada las IMU que tiene su sensor
|
||||
Si siguió la documentación de SlimeVR, los valores predeterminados deben ser correctos
|
||||
firmware_tool-add_imus_step-imu_type-label = Tipo de IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Seleccione el tipo de IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Rotación del IMU (grados)
|
||||
.placeholder = Ángulo de rotación del IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = Pin SCL
|
||||
.placeholder = Dirección pin SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = Pin SDA
|
||||
.placeholder = Dirección pin SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = Pin INT
|
||||
.placeholder = Dirección pin INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Sensor opcional
|
||||
firmware_tool-add_imus_step-show_less = Mostrar menos
|
||||
firmware_tool-add_imus_step-show_more = Mostrar más
|
||||
firmware_tool-add_imus_step-add_more = Agregar más IMUs
|
||||
firmware_tool-select_firmware_step = Seleccione la versión del firmware
|
||||
firmware_tool-select_firmware_step-description = Por favor elija la versión del firmware que desea utilizar
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Mostrar firmwares de terceros
|
||||
firmware_tool-select_source-error = Incapaz de cargar fuentes
|
||||
firmware_tool-select_source-board_type = Tipo de placa
|
||||
firmware_tool-select_source-firmware = Fuente del Firmware
|
||||
firmware_tool-select_source-version = Versión del Firmware
|
||||
firmware_tool-select_source-official = Oficial
|
||||
firmware_tool-select_source-dev = Desarrollo
|
||||
firmware_tool-board_defaults = Configura tu placa
|
||||
firmware_tool-board_defaults-add = Añadir
|
||||
firmware_tool-board_defaults-error-format = Formato inválido
|
||||
firmware_tool-board_defaults-error-format-number = No es un número
|
||||
firmware_tool-flash_method_step = Método de flasheo
|
||||
firmware_tool-flash_method_step-description = Por favor seleccione el método de flasheo que desea utilizar
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Utilice el método por aire (OTA). Su sensor utilizará Wi-Fi para actualizar su firmware. Funciona sólo en sensores ya configurados.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Utilice un cable USB para actualizar su sensor.
|
||||
firmware_tool-flash_method_step-ota-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = Utilizar el método sobre-el-aire. Tu tracker utilizará Wi-Fi para actualizar su firmware. Solo funciona en trackers que han sido configurados.
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.description = Utilizar un cable USB para actualizar tu tracker.
|
||||
firmware_tool-flashbtn_step = Presione el botón de boot
|
||||
firmware_tool-flashbtn_step-description = Antes de pasar al siguiente paso, hay algunas cosas que debe hacer
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el sensor, retire la carcasa (si la hay), conecte un cable USB a esta computadora y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
|
||||
@@ -1479,9 +1453,8 @@ 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-DOWNLOADING_SOURCE = Descargando el código fuente
|
||||
firmware_tool-build-EXTRACTING_SOURCE = Extrayendo el código fuente
|
||||
firmware_tool-build-BUILDING = Compilando el firmware
|
||||
firmware_tool-build-SAVING = Guardando la compilación
|
||||
firmware_tool-build-DONE = Compilación completa
|
||||
|
||||
@@ -111,6 +111,10 @@ board_type-GLOVE_IMU_SLIMEVR_DEV = Guante SlimeVR Dev IMU
|
||||
|
||||
skeleton_bone-NONE = Ninguno
|
||||
skeleton_bone-HEAD = Desplazamiento de la cabeza
|
||||
skeleton_bone-HEAD-desc =
|
||||
Esta es la distancia desde el visor hasta la mitad de la cabeza.
|
||||
Para ajustarlo, mueve la cabeza de izquierda a derecha como si no estuvieras de acuerdo y modifícalo
|
||||
hasta que el movimiento en otros trackers sea insignificante.
|
||||
skeleton_bone-NECK = Longitud del cuello
|
||||
skeleton_bone-NECK-desc =
|
||||
Esta es la distancia desde el medio de tu cabeza hasta la base de tu cuello.
|
||||
@@ -123,19 +127,73 @@ skeleton_bone-torso_group-desc =
|
||||
Para ajustarla, modifícala mientras estes de pie derecho hasta que tus caderas virtuales
|
||||
estan en posicion con las verdaderas.
|
||||
skeleton_bone-UPPER_CHEST = Longitud del torso superior
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
Esta es la distancia desde la base del cuello hasta la mitad del pecho.
|
||||
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo en varias posiciones
|
||||
(sentado, inclinado, acostado, etc.) hasta que tu columna vertebral virtual coincida con la real.
|
||||
skeleton_bone-CHEST_OFFSET = Compensacion del pecho
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
Esto puede ser ajustado para mover su tracker de pecho virtual hacia arriba o hacia abajo para ayudar
|
||||
con la calibración en ciertos juegos o aplicaciones que pueden esperar que este sea mayor o menor.
|
||||
skeleton_bone-CHEST = Longitud del pecho
|
||||
skeleton_bone-CHEST-desc =
|
||||
Esta es la distancia desde la mitad de su pecho hasta la mitad de su columna vertebral.
|
||||
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo en varias posiciones
|
||||
(sentado, inclinado, acostado, etc.) hasta que su columna vertebral virtual coincida con la real.
|
||||
skeleton_bone-WAIST = Longitud de cintura
|
||||
skeleton_bone-WAIST-desc =
|
||||
Esta es la distancia desde la mitad de la columna vertebral hasta el ombligo.
|
||||
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo en varias posiciones
|
||||
(sentado, inclinado, acostado, etc.) hasta que tu columna vertebral virtual coincida con la real.
|
||||
skeleton_bone-HIP = Longitud de cadera
|
||||
skeleton_bone-HIP-desc =
|
||||
Esta es la distancia desde el ombligo hasta tus caderas.
|
||||
Para ajustarlo, configure la longitud de su torso correctamente y modifíquelo en varias posiciones
|
||||
(sentado, inclinado, acostado, etc.) hasta que tu columna virtual coincida con la real.
|
||||
skeleton_bone-HIP_OFFSET = Compensacion de cadera
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
Esto se puede ajustar para mover su tracker virtual de cadera hacia arriba o hacia abajo para ayudar
|
||||
con la calibración en ciertos juegos o aplicaciones que pueden esperar que esté en su cintura.
|
||||
skeleton_bone-HIPS_WIDTH = Ancho de la cadera
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
Esta es la distancia entre el inicio de las piernas.
|
||||
Para ajustarlo, realice un reinicio completo con las piernas rectas y modifíquelo hasta
|
||||
que tus piernas virtuales coinciden con las reales horizontalmente.
|
||||
skeleton_bone-leg_group = Longitud de la espinilla
|
||||
skeleton_bone-leg_group-desc =
|
||||
Esta es la distancia desde tus caderas hasta los pies.
|
||||
Para ajustarlo, ajuste la longitud de su torso correctamente y modifíquelo
|
||||
hasta que tus pies virtuales estén al mismo nivel que los reales.
|
||||
skeleton_bone-UPPER_LEG = Longitud del muslo
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
Esta es la distancia desde las caderas hasta las rodillas.
|
||||
Para ajustarlo, ajuste la longitud de la pierna correctamente y modifíquelo
|
||||
hasta que tus rodillas virtuales estén al mismo nivel que las reales.
|
||||
skeleton_bone-LOWER_LEG = Longitud de la espinilla
|
||||
skeleton_bone-LOWER_LEG-desc =
|
||||
Esta es la distancia desde tus rodillas hasta tus tobillos.
|
||||
Para ajustarlo, ajuste la longitud de la pierna correctamente y modifíquelo
|
||||
hasta que tus rodillas virtuales estén al mismo nivel que las reales.
|
||||
skeleton_bone-FOOT_LENGTH = Longitud del pie
|
||||
skeleton_bone-FOOT_LENGTH-desc =
|
||||
Esta es la distancia desde tus tobillos hasta los dedos de tus pies.
|
||||
Para ajustarlo, camina de puntillas y modifícalo hasta que tus pies virtuales permanezcan en su lugar.
|
||||
skeleton_bone-FOOT_SHIFT = Desplazamiento del pie
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Este valor es la distancia horizontal desde tu rodilla hacia tu tobillo.
|
||||
Toma en cuenta la parte baja de tus piernas yendo hacia atrás cuando estes de pie.
|
||||
Para ajustarlo, pon el largo de los pies a 0, inicie un reinicio completo y modifícalo hasta que tus pies
|
||||
virtuales se alineen con el medio de tus tobillos.
|
||||
skeleton_bone-SKELETON_OFFSET = Compensacion del esqueleto
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
Esto se puede ajustar para desplazar todos sus trackers hacia adelante o hacia atrás.
|
||||
Se puede utilizar para ayudar con la calibración en ciertos juegos o aplicaciones
|
||||
que pueden esperar que tus trackers esten mas alante.
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distancia de hombros
|
||||
skeleton_bone-SHOULDERS_DISTANCE-desc =
|
||||
Esta es la distancia vertical desde la base del cuello hasta tus hombros.
|
||||
Para ajustarlo, establezca la longitud de la parte superior del brazo en 0 y modifíquelo hasta que tus rastreadores virtuales de tus codos
|
||||
se alineen verticalmente con tus hombros reales.
|
||||
skeleton_bone-SHOULDERS_WIDTH = Ancho de hombros
|
||||
skeleton_bone-arm_group = Longitud del brazo
|
||||
skeleton_bone-UPPER_ARM = Longitud del brazo
|
||||
@@ -157,6 +215,8 @@ reset-reset_all_warning_default-v2 =
|
||||
¿Estás seguro de que quieres hacer esto?
|
||||
reset-full = Reinicio completo
|
||||
reset-mounting = Reiniciar montura
|
||||
reset-mounting-feet = Reiniciar montura de los pies
|
||||
reset-mounting-fingers = Reiniciar montura de los dedos
|
||||
reset-yaw = Restablecimiento horizontal
|
||||
|
||||
## Serial detection stuff
|
||||
@@ -182,6 +242,7 @@ navbar-settings = Configuración
|
||||
|
||||
bvh-start_recording = Grabar BVH
|
||||
bvh-recording = Grabando...
|
||||
bvh-save_title = Guardar grabación BVH
|
||||
|
||||
## Tracking pause
|
||||
|
||||
@@ -222,6 +283,7 @@ widget-imu_visualizer-rotation_raw = Sin filtrar
|
||||
widget-imu_visualizer-rotation_preview = Previsualización
|
||||
widget-imu_visualizer-acceleration = Aceleración
|
||||
widget-imu_visualizer-position = Posición
|
||||
widget-imu_visualizer-stay_aligned = Mantener Alineado
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -249,6 +311,7 @@ tracker-table-column-temperature = Temperatura °C
|
||||
tracker-table-column-linear-acceleration = Aceleración X/Y/Z
|
||||
tracker-table-column-rotation = Rotación X/Y/Z
|
||||
tracker-table-column-position = Posición X/Y/Z
|
||||
tracker-table-column-stay_aligned = Mantener Alineado
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
@@ -314,9 +377,9 @@ tracker-settings-name_section-label = Nombre del tracker
|
||||
tracker-settings-forget = Olvidar tracker
|
||||
tracker-settings-forget-description = Elimina el tracker del servidor SlimeVR y evita que se conecte a él hasta que se reinicie el servidor. La configuración del tracker no se perderá.
|
||||
tracker-settings-forget-label = Olvidar tracker
|
||||
tracker-settings-update-unavailable = No se puede actualizar (DIY)
|
||||
tracker-settings-update-low-battery = No se puede actualizar. Batería inferior al 50%
|
||||
tracker-settings-update-up_to_date = Actualizado
|
||||
tracker-settings-update-blocked = Actualización no disponible. No hay otras versiones disponibles
|
||||
tracker-settings-update-available = { $versionName } ya esta disponible
|
||||
tracker-settings-update = Actualizar ahora
|
||||
tracker-settings-update-title = Versión del firmware
|
||||
@@ -386,6 +449,7 @@ mounting_selection_menu-close = Cerrar
|
||||
settings-sidebar-title = Configuración
|
||||
settings-sidebar-general = General
|
||||
settings-sidebar-tracker_mechanics = Mecánicas del tracker
|
||||
settings-sidebar-stay_aligned = Mantener Alineado
|
||||
settings-sidebar-fk_settings = Configuración del tracking
|
||||
settings-sidebar-gesture_control = Control de los gestos
|
||||
settings-sidebar-interface = Interfaz
|
||||
@@ -397,6 +461,7 @@ settings-sidebar-appearance = Apariencia
|
||||
settings-sidebar-notifications = Notificaciones
|
||||
settings-sidebar-behavior = Comportamiento
|
||||
settings-sidebar-firmware-tool = Herramienta de firmware DIY
|
||||
settings-sidebar-vrc_warnings = Advertencias de la configuración de VRChat
|
||||
settings-sidebar-advanced = Avanzado
|
||||
|
||||
## SteamVR settings
|
||||
@@ -444,12 +509,12 @@ settings-general-tracker_mechanics-filtering-type-prediction = Predicción
|
||||
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduce la latencia y hace que los movimientos sean mas inmediatos, pero puede aumentar la fluctuación.
|
||||
settings-general-tracker_mechanics-filtering-amount = Cantidad
|
||||
settings-general-tracker_mechanics-yaw-reset-smooth-time = Tiempo de suavizado al restablecer el eje horizontal (0s deshabilita el suavizado)
|
||||
settings-general-tracker_mechanics-drift_compensation = Compensación en la desviación
|
||||
settings-general-tracker_mechanics-drift_compensation = Compensación de drift
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-description =
|
||||
Compensa la desviación horizontal del IMU aplicando una rotación inversa.
|
||||
Cambia la cantidad de compensación y de reinicios que se tienen en cuenta.
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensación en la desviación
|
||||
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensación de drift
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = Predicción de compensación de drift
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
@@ -468,7 +533,7 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Cantidad de
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Usar los últimos X reinicios.
|
||||
settings-general-tracker_mechanics-save_mounting_reset = Guardar la calibración de reajuste de montaje automático
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
Guarda las calibraciones de reajuste de montaje automático para los trackers entre reinicios. Útil
|
||||
Guarda las calibraciones de reajuste de montaje automático para los trackers entre reinicios. Útil
|
||||
cuando se lleva un traje en el que los trackers no se mueven entre sesiones. <b>No recomendado para usuarios normales!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = Guardar restablecimiento de montaje
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = Usar el magnetómetro en todos los trackers IMU que lo soporten
|
||||
@@ -476,7 +541,25 @@ settings-general-tracker_mechanics-use_mag_on_all_trackers-description =
|
||||
Utiliza el magnetómetro en todos los trackers que tienen un firmware compatible con él, lo que reduce el drift en entornos magnéticos estables.
|
||||
Se puede desactivar por rastreador en la configuración de los trackers. <b>¡Por favor, no apagues ninguno de los trackers mientras activas esta opción!</b>
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers-label = Usar magnetómetro en los rastreadores
|
||||
settings-stay_aligned = Mantener Alineado
|
||||
settings-stay_aligned-description = Mantener Alineado reduce el drift ajustando gradualmente tus trackers para que coincidan con tus poses relajadas
|
||||
settings-stay_aligned-setup-label = Configurar Mantener Alineado
|
||||
settings-stay_aligned-setup-description = Debe completar "Configurar Mantener Alineado" para habilitar Mantener Alineado.
|
||||
settings-stay_aligned-warnings-drift_compensation = ⚠ ¡Desactive la compensación de drift! La compensación de drift entrará en conflicto con Mantener Alineado.
|
||||
settings-stay_aligned-enabled-label = Ajustar trackers
|
||||
settings-stay_aligned-hide_yaw_correction-label = Ocultar ajuste (para comparar sin Mantener Alineado)
|
||||
settings-stay_aligned-general-label = General
|
||||
settings-stay_aligned-relaxed_poses-label = Posturas relajadas
|
||||
settings-stay_aligned-relaxed_poses-description = Mantener Alineado utiliza tus posturas relajadas para mantener los trackers alineados. Usa "Configurar Mantener Alineado" para actualizar estas posturas.
|
||||
settings-stay_aligned-relaxed_poses-standing = Ajustar los trackers mientras estás de pie
|
||||
settings-stay_aligned-relaxed_poses-sitting = Ajustar los trackers mientras estás sentado en una silla
|
||||
settings-stay_aligned-relaxed_poses-flat = Ajuste los trackers mientras estás sentado en el suelo o acostado boca arriba
|
||||
settings-stay_aligned-relaxed_poses-save_pose = Guardar pose
|
||||
settings-stay_aligned-relaxed_poses-reset_pose = Restablecer pose
|
||||
settings-stay_aligned-relaxed_poses-close = Cierra
|
||||
settings-stay_aligned-debug-label = Depuración
|
||||
settings-stay_aligned-debug-description = Incluya su configuración cuando informe problemas sobre Mantener Alineado.
|
||||
settings-stay_aligned-debug-copy-label = Copiar ajustes al portapapeles
|
||||
|
||||
## FK/Tracking settings
|
||||
|
||||
@@ -498,8 +581,8 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Anclado al suelo
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = "Acople de puntera" intenta adivinar la rotación de tus pies si los trackers de estos no están en uso.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = El plantado de pie gira los pies para que queden paralelos al suelo en el momento del contacto.
|
||||
settings-general-fk_settings-leg_fk = Tracking de piernas
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Habilitar reinicio de montura de los pies al estar de puntillas.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reinicio de montura de los pies.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = Forzar el restablecimiento del montaje de los pies durante los reinicios generales del montaje.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = Forzar reinicio de la montura de los pies.
|
||||
settings-general-fk_settings-enforce_joint_constraints = Límites esqueléticos
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Imponer restricciones
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Evita que las articulaciones giren más allá de su límite
|
||||
@@ -613,9 +696,6 @@ settings-general-interface-connected_trackers_warning-label = Aviso de trackers
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportamiento
|
||||
settings-general-interface-dev_mode = Modo de desarrollador
|
||||
settings-general-interface-dev_mode-description = Este modo puede ser útil si necesitas datos en profundidad o para interactuar con los trackers conectados a un nivel más avanzado
|
||||
settings-general-interface-dev_mode-label = Modo de desarrollador
|
||||
settings-general-interface-use_tray = Minimizar a la bandeja
|
||||
settings-general-interface-use_tray-description = Te permite cerrar la ventana sin cerrar SlimeVR para que pueda seguir usándolo sin que la interfaz te moleste.
|
||||
settings-general-interface-use_tray-label = Minimizar en la bandeja del sistema
|
||||
@@ -636,6 +716,9 @@ settings-interface-behavior-error_tracking-description_v2 =
|
||||
|
||||
Para proporcionar la mejor experiencia de usuario, recopilamos informes de errores anónimos, métricas de rendimiento e información del sistema operativo. Esto nos ayuda a detectar errores y problemas con SlimeVR. Estas métricas se recopilan a través de Sentry.io.
|
||||
settings-interface-behavior-error_tracking-label = Enviar errores a los desarrolladores
|
||||
settings-interface-behavior-bvh_directory = Directorio para guardar grabaciones BVH
|
||||
settings-interface-behavior-bvh_directory-description = Elija un directorio para guardar sus grabaciones BVH en lugar de tener que elegir dónde guardarlas cada vez.
|
||||
settings-interface-behavior-bvh_directory-label = Directorio de grabaciones BVH
|
||||
|
||||
## Serial settings
|
||||
|
||||
@@ -654,7 +737,6 @@ settings-serial-factory_reset-warning =
|
||||
Esto significa que los ajustes de Wi-Fi y calibración <b>se perderán</b>.
|
||||
settings-serial-factory_reset-warning-ok = Sé lo que estoy haciendo
|
||||
settings-serial-factory_reset-warning-cancel = Cancelar
|
||||
settings-serial-get_infos = Obtener información
|
||||
settings-serial-serial_select = Selecciona un puerto serial
|
||||
settings-serial-auto_dropdown_item = Automático
|
||||
settings-serial-get_wifi_scan = Obtener escaneo WiFi
|
||||
@@ -755,6 +837,9 @@ settings-osc-vmc-mirror_tracking = Invertir el tracking
|
||||
settings-osc-vmc-mirror_tracking-description = Invierte el tracking horizontalmente.
|
||||
settings-osc-vmc-mirror_tracking-label = Invertir el tracking
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Avanzado
|
||||
@@ -878,6 +963,17 @@ onboarding-connect_tracker-connection_status-looking_for_server = Buscando servi
|
||||
onboarding-connect_tracker-connection_status-connection_error = No se puede conectar al Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-could_not_find_server = No se pudo encontrar el servidor
|
||||
onboarding-connect_tracker-connection_status-done = Conectado al Server
|
||||
onboarding-connect_tracker-connection_status-no_serial_log = No se pudieron obtener los registros del tracker
|
||||
onboarding-connect_tracker-connection_status-no_serial_device_found = No se pudo encontrar un tracker conectado por USB
|
||||
onboarding-connect_serial-error-modal-no_serial_log = ¿Está encendido el tracker?
|
||||
onboarding-connect_serial-error-modal-no_serial_log-desc = Asegúrate de que el tracker esté encendido y conectado a tu ordenador.
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found = No se detectaron trackers
|
||||
onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
Conecte un tracker con el cable USB proporcionado a su ordenador y enciéndalo.
|
||||
Si esto no funciona:
|
||||
- intente usar un cable USB diferente
|
||||
- intente usar un puerto USB diferente
|
||||
- intente reinstalar el servidor SlimeVR y seleccione "Controladores USB" en la sección de componentes
|
||||
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
|
||||
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
|
||||
# English in this case only has 2 plural rules, which are "one" and "other",
|
||||
@@ -895,7 +991,6 @@ onboarding-connect_tracker-next = He conectado todos mis trackers
|
||||
|
||||
onboarding-calibration_tutorial = Tutorial de calibración de IMU
|
||||
onboarding-calibration_tutorial-subtitle = ¡Esto ayudará a reducir el drift de los trackers!
|
||||
onboarding-calibration_tutorial-description = Cada vez que enciendas tus trackers, estos necesitan descansar sobre una superficie plana para calibrarse. Hagamos lo mismo pulsando el botón «{ onboarding-calibration_tutorial-calibrate }», <b>¡no los muevas!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Mis trackers estan en una superficie plana
|
||||
onboarding-calibration_tutorial-status-waiting = Esperando por ti
|
||||
onboarding-calibration_tutorial-status-calibrating = Calibrando
|
||||
@@ -1063,9 +1158,13 @@ onboarding-automatic_mounting-mounting_reset-title = Reinicio de montura
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Ponte en cuclillas en postura de "esquí" con las piernas dobladas, la parte superior del cuerpo inclinada hacia adelante y los brazos doblados.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Presiona el botón "Restablecer montaje" y espera 3 segundos antes de que se restablezcan las orientaciones de montaje de los trackers.
|
||||
onboarding-automatic_mounting-preparation-title = Preparación
|
||||
onboarding-automatic_mounting-preparation-v2-step-0 = 1. Presione el botón de "Reinicio completo".
|
||||
onboarding-automatic_mounting-preparation-v2-step-1 = 2. Ponte de pie con los brazos a los lados. Asegúrate de mirar hacia adelante.
|
||||
onboarding-automatic_mounting-preparation-v2-step-2 = 3. Mantenga la posición hasta que finalice el temporizador de 3 segundos.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Ponte los trackers
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la posiciones de montura, vamos a utilizar los trackers que acabas de asignar. Colocate todos tus trackers, puedes ver cuales son cuales en la figura de la derecha.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Tengo todos mis trackers en posicion
|
||||
onboarding-automatic_mounting-return-home = Hecho
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
@@ -1076,6 +1175,11 @@ onboarding-manual_proportions-fine_tuning_button-disabled-tooltip = Conecte el v
|
||||
onboarding-manual_proportions-export = Exportar proporciones
|
||||
onboarding-manual_proportions-import = Importar proporciones
|
||||
onboarding-manual_proportions-file_type = Archivo de proporciones físicas
|
||||
onboarding-manual_proportions-normal_increment = Incremento normal
|
||||
onboarding-manual_proportions-precise_increment = Incremento preciso
|
||||
onboarding-manual_proportions-grouped_proportions = Proporciones agrupadas
|
||||
onboarding-manual_proportions-all_proportions = Todas las proporciones
|
||||
onboarding-manual_proportions-estimated_height = Altura estimada del usuario
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -1189,6 +1293,37 @@ onboarding-scaled_proportions-done-description = Las proporciones de tu cuerpo a
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
onboarding-stay_aligned-title = Mantener Alineado
|
||||
onboarding-stay_aligned-description = Configure Mantener Alineado para mantener sus trackers alineados.
|
||||
onboarding-stay_aligned-put_trackers_on-title = Ponte los trackers
|
||||
onboarding-stay_aligned-put_trackers_on-description = Para guardar tus posturas de descanso, vamos a utilizar los trackers que acabas de asignar. Ponte todos tus trackers, puedes ver cuál es cuál en la figura de la derecha.
|
||||
onboarding-stay_aligned-put_trackers_on-trackers_warning = ¡Tiene menos de 5 trackers actualmente conectados y asignados! Esta es la cantidad mínima de trackers necesarios para que Mantener Alineado funcione correctamente.
|
||||
onboarding-stay_aligned-put_trackers_on-next = Tengo todos mis trackers puestos
|
||||
onboarding-stay_aligned-verify_mounting-title = Verifique su montaje
|
||||
onboarding-stay_aligned-verify_mounting-step-0 = Mantener Alineado requiere un buen montaje. De lo contrario, no obtendrá una buena experiencia con Mantener Alineado.
|
||||
onboarding-stay_aligned-verify_mounting-step-1 = 1. Muévete mientras estás de pie.
|
||||
onboarding-stay_aligned-verify_mounting-step-2 = 2. Siéntate y mueve las piernas y los pies.
|
||||
onboarding-stay_aligned-verify_mounting-step-3 = 3. Si sus trackers no están en el lugar correcto, presione "Rehacer calibración de montaje".
|
||||
onboarding-stay_aligned-verify_mounting-redo_mounting = Rehacer calibración de montaje
|
||||
onboarding-stay_aligned-preparation-title = Preparación
|
||||
onboarding-stay_aligned-preparation-tip = Asegúrate de estar de pie. Sigue mirando hacia adelante con los brazos hacia abajo a los lados.
|
||||
onboarding-stay_aligned-relaxed_poses-standing-title = Postura de pie relajada
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-0 = 1. Párese en una posición cómoda. ¡Relájate!
|
||||
onboarding-stay_aligned-relaxed_poses-standing-step-1-v2 = 2. Presione el botón "Guardar pose".
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-title = Postura relajada sentado en silla
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-0 = 1. Siéntese en una posición cómoda. ¡Relájate!
|
||||
onboarding-stay_aligned-relaxed_poses-sitting-step-1-v2 = 2. Presione el botón "Guardar pose".
|
||||
onboarding-stay_aligned-relaxed_poses-flat-title = Postura relajada sentado en el suelo
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-0 = 1. Siéntate en el suelo con las piernas al frente. ¡Relájate!
|
||||
onboarding-stay_aligned-relaxed_poses-flat-step-1-v2 = 2. Presione el botón "Guardar pose".
|
||||
onboarding-stay_aligned-relaxed_poses-skip_step = Omitir
|
||||
onboarding-stay_aligned-done-title = ¡Mantener Alineado habilitado!
|
||||
onboarding-stay_aligned-done-description = ¡Su configuración de Mantener Alineado está completa!
|
||||
onboarding-stay_aligned-done-description-2 = ¡La configuración está completa! Puede reiniciar el proceso si desea recalibrar las poses.
|
||||
onboarding-stay_aligned-previous_step = Atrás
|
||||
onboarding-stay_aligned-next_step = Siguiente
|
||||
onboarding-stay_aligned-restart = Reiniciar
|
||||
onboarding-stay_aligned-done = Hecho
|
||||
|
||||
## Home
|
||||
|
||||
@@ -1228,71 +1363,11 @@ firmware_tool = Herramienta de firmware DIY
|
||||
firmware_tool-description = Le permite configurar y actualizar sus trackers DIY
|
||||
firmware_tool-not_available = Vaya, la herramienta de firmware no está disponible en este momento. ¡Vuelve más tarde!
|
||||
firmware_tool-not_compatible = La herramienta de firmware no es compatible con esta versión del servidor. ¡Por favor, actualice su servidor!
|
||||
firmware_tool-board_step = Seleccione su placa
|
||||
firmware_tool-board_step-description = Seleccione una de las placas que se listen a continuación.
|
||||
firmware_tool-board_pins_step = Revise los pines
|
||||
firmware_tool-board_pins_step-description =
|
||||
Por favor, verifique que los pines seleccionados sean correctos.
|
||||
Si siguió la documentación de SlimeVR, los valores predeterminados deberian ser correctos
|
||||
firmware_tool-board_pins_step-enable_led = Habilitar LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Pin del LED
|
||||
.placeholder = Introduzca la dirección del pin del LED
|
||||
firmware_tool-board_pins_step-battery_type = Seleccione el tipo de batería
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batería externa
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batería interna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interno
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Pin del sensor de batería
|
||||
.placeholder = Introduzca la dirección del pin sensor de la bateria
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Resistencia de la batería (ohmios)
|
||||
.placeholder = Introduzca el valor de la resistencia de la bateria
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Shield de la Bateria R1 (Ohmios)
|
||||
.placeholder = Introduzca el valor del Shield de la Bateria R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Shield de la Bateria R2 (Ohmios)
|
||||
.placeholder = Introduzca el valor del Shield de la Bateria R2
|
||||
firmware_tool-add_imus_step = Declare sus IMUs
|
||||
firmware_tool-add_imus_step-description =
|
||||
Por favor, añada las IMUs que su tracker tenga
|
||||
Si siguió la documentación de SlimeVR, los valores predeterminados deben ser correctos
|
||||
firmware_tool-add_imus_step-imu_type-label = Tipo de IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Seleccione el tipo de IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Rotación del IMU (grados)
|
||||
.placeholder = Ángulo de rotación del IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = Pin SCL
|
||||
.placeholder = Dirección del pin SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = Pin SDA
|
||||
.placeholder = Dirección del pin SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = Pin INT
|
||||
.placeholder = Dirección del pin INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Tracker opcional
|
||||
firmware_tool-add_imus_step-show_less = Mostrar menos
|
||||
firmware_tool-add_imus_step-show_more = Mostrar más
|
||||
firmware_tool-add_imus_step-add_more = Añadir más IMUs
|
||||
firmware_tool-select_firmware_step = Seleccione la versión del firmware
|
||||
firmware_tool-select_firmware_step-description = Elija la versión del firmware que desea utilizar
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Mostrar firmwares de terceros
|
||||
firmware_tool-flash_method_step = Método de flasheado
|
||||
firmware_tool-flash_method_step-description = Seleccione el método de flasheado que desea utilizar
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Usar el metodo "over the air". Su tracker usara el Wi-Fi para actualizar el firmware. Solo funciona en trackers ya configurados.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Usar un cable USB para actualizar el tracker.
|
||||
firmware_tool-flashbtn_step = Pulse el botón de boot
|
||||
firmware_tool-flashbtn_step-description = Antes de pasar al siguiente paso, hay algunas cosas que debe hacer
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el tracker, retire la carcasa (si la hay), conecte un cable USB a esta computadora y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Apague el tracker, retire la carcasa (si la hay), conecte un cable USB a este ordenador y, a continuación, realice uno de los siguientes pasos de acuerdo con la revisión de la placa SlimeVR:
|
||||
firmware_tool-flashbtn_step-board_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
|
||||
@@ -1318,9 +1393,6 @@ firmware_tool-flashing_step-exit = Salir
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Creando la carpeta de compilación
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Descargando el firmware
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extrayendo el firmware
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configurando las definiciones
|
||||
firmware_tool-build-BUILDING = Compilando el firmware
|
||||
firmware_tool-build-SAVING = Guardando la compilación
|
||||
firmware_tool-build-DONE = Compilación completa
|
||||
@@ -1384,6 +1456,46 @@ unknown_device-modal-description =
|
||||
¿Quieres conectarlo a SlimeVR?
|
||||
unknown_device-modal-confirm = ¡Claro!
|
||||
unknown_device-modal-forget = Ignóralo
|
||||
# VRChat config warnings
|
||||
vrc_config-page-title = Advertencias sobre la configuración de VRChat
|
||||
vrc_config-page-desc = Esta página muestra el estado de la configuración de VRChat y dice qué configuración es incompatible con SlimeVR. Se recomienda encarecidamente que corrijas las advertencias que aparecen aquí para obtener la mejor experiencia con SlimeVR.
|
||||
vrc_config-page-help = ¿No encuentras los ajustes?
|
||||
vrc_config-page-help-desc = ¡Consulte nuestra <a>documentación sobre este tema!</a>
|
||||
vrc_config-page-big_menu = Seguimiento e IK (Menú grande)
|
||||
vrc_config-page-big_menu-desc = Configuración relacionada al IK en el menú grande de configuración
|
||||
vrc_config-page-wrist_menu = Seguimiento e IK (Menú de muñeca)
|
||||
vrc_config-page-wrist_menu-desc = Ajustes relacionados al IK en el pequeño menú de ajustes (menú de muñeca)
|
||||
vrc_config-on = Encendido
|
||||
vrc_config-off = Apagado
|
||||
vrc_config-invalid = ¡Tienes ajustes de VRChat mal configurados!
|
||||
vrc_config-show_more = Mostrar más
|
||||
vrc_config-setting_name = Nombre del ajuste de VRChat
|
||||
vrc_config-recommended_value = Valor recomendado
|
||||
vrc_config-current_value = Valor actual
|
||||
vrc_config-mute = Silenciar advertencia
|
||||
vrc_config-mute-btn = Silenciar
|
||||
vrc_config-unmute-btn = Desilenciar
|
||||
vrc_config-legacy_mode = Utilizar la resolución de IK antigua
|
||||
vrc_config-disable_shoulder_tracking = Desactivar el seguimiento de hombros
|
||||
vrc_config-shoulder_width_compensation = Compensación de la anchura del hombro
|
||||
vrc_config-spine_mode = Modo columna FBT
|
||||
vrc_config-tracker_model = Modelo de rastreador para "FBT"
|
||||
vrc_config-avatar_measurement_type = Medida del avatar
|
||||
vrc_config-calibration_range = Rango de calibración
|
||||
vrc_config-calibration_visuals = Mostrar elementos visuales de la calibración
|
||||
vrc_config-user_height = Altura real del usuario
|
||||
vrc_config-spine_mode-UNKNOWN = Desconocido
|
||||
vrc_config-spine_mode-LOCK_BOTH = Bloquear ambos
|
||||
vrc_config-spine_mode-LOCK_HEAD = Bloquear cabeza
|
||||
vrc_config-spine_mode-LOCK_HIP = Bloquear cadera
|
||||
vrc_config-tracker_model-UNKNOWN = Desconocido
|
||||
vrc_config-tracker_model-AXIS = Eje
|
||||
vrc_config-tracker_model-BOX = Caja
|
||||
vrc_config-tracker_model-SPHERE = Esfera
|
||||
vrc_config-tracker_model-SYSTEM = Sistema
|
||||
vrc_config-avatar_measurement_type-UNKNOWN = Desconocido
|
||||
vrc_config-avatar_measurement_type-HEIGHT = Altura
|
||||
vrc_config-avatar_measurement_type-ARM_SPAN = Amplitud de los brazos
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@ body_part-LEFT_UPPER_LEG = Vasak reis
|
||||
body_part-LEFT_LOWER_LEG = Vasak säär
|
||||
body_part-LEFT_FOOT = Vasak jalg
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Mitte midagi
|
||||
@@ -142,7 +145,9 @@ widget-developer_mode-more_info = Rohkem infot
|
||||
widget-imu_visualizer = Rotatsiooni
|
||||
widget-imu_visualizer-rotation_raw = Toores
|
||||
widget-imu_visualizer-rotation_preview = Eelvaade
|
||||
widget-imu_visualizer-rotation_hide = Peida
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
|
||||
## Tracker status
|
||||
|
||||
@@ -298,10 +303,6 @@ settings-general-steamvr-description =
|
||||
Kasulik teatud mängudele või äppidele, mis toetavad ainult teatuid jälgijaid.
|
||||
settings-general-steamvr-trackers-waist = Vöökoht
|
||||
settings-general-steamvr-trackers-chest = Rind
|
||||
settings-general-steamvr-trackers-feet = Jalad
|
||||
settings-general-steamvr-trackers-knees = Põlved
|
||||
settings-general-steamvr-trackers-elbows = Küünarnukid
|
||||
settings-general-steamvr-trackers-hands = Käed
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -366,9 +367,6 @@ settings-general-fk_settings-skeleton_settings-interp_hip_legs = Leia keskmine p
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Leia keskmine põlvede lengerdus ja pöörlemine säärte abiga
|
||||
settings-general-fk_settings-self_localization-title = Mocapi režiim
|
||||
settings-general-fk_settings-self_localization-description = Mocap-režiim võimaldab skeletil ligikaudselt jälgida oma asukohta ilma peakomplekti või muude jälgijateta. Pange tähele, et see nõuab jalgade ja peajälgijate olemasolu ning on endiselt eksperimentaalne.
|
||||
settings-general-fk_settings-vive_emulation-title = Vive-i emulatsioon
|
||||
settings-general-fk_settings-vive_emulation-description = Emuleeri vöökoha jälgija probleeme mis Vive jälgijatel on. See on nali ja teeb jälgijate täpsuse halvaks.
|
||||
settings-general-fk_settings-vive_emulation-label = Luba Vive-i emulatsioon
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -432,6 +430,9 @@ settings-general-interface-feedback_sound-description = See suvand esitab lähte
|
||||
settings-general-interface-feedback_sound-label = Tagasiside heli
|
||||
settings-general-interface-feedback_sound-volume = Tagasiside helitugevus
|
||||
|
||||
## Behavior settings
|
||||
|
||||
|
||||
## Serial settings
|
||||
|
||||
settings-serial = Jadakonsool
|
||||
@@ -449,7 +450,6 @@ settings-serial-factory_reset-warning =
|
||||
Mis tähendab et WI-FI ja kalibreerimis sätted <b>kustutatakse!</b>
|
||||
settings-serial-factory_reset-warning-ok = Ma tean mida ma teen
|
||||
settings-serial-factory_reset-warning-cancel = Tühista
|
||||
settings-serial-get_infos = Saa infot
|
||||
settings-serial-serial_select = Valige jadaport
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
|
||||
@@ -481,15 +481,10 @@ settings-osc-router-network-address-placeholder = IPV4 aadress
|
||||
## OSC VRChat settings
|
||||
|
||||
settings-osc-vrchat = VRChat OSC Jälgija
|
||||
# This cares about multilines
|
||||
settings-osc-vrchat-description =
|
||||
Muuda VRChat-i spetsiifiliseid seadeid, et saada ja saata HMD andmeid.
|
||||
Jälgijate andmed FBT jaoks (töötab Questi peal ilma arvuti ühenduseta).
|
||||
settings-osc-vrchat-enable = Luba
|
||||
settings-osc-vrchat-enable-description = Lülitage andmete sisestamine sisse/välja.
|
||||
settings-osc-vrchat-enable-label = Luba
|
||||
settings-osc-vrchat-network = Võrgupordid
|
||||
settings-osc-vrchat-network-description = Lisage võrgupordid andmete saamiseks ja saatmiseks VRChat-i.
|
||||
settings-osc-vrchat-network-port_in =
|
||||
.label = Võrguport sisse
|
||||
.placeholder = Võrguport sisse (vaikimisi: 9001)
|
||||
@@ -497,7 +492,6 @@ settings-osc-vrchat-network-port_out =
|
||||
.label = Võrguport välja
|
||||
.placeholder = Võrguport välja (vaikimisi: 9000)
|
||||
settings-osc-vrchat-network-address = Võrgu aadress
|
||||
settings-osc-vrchat-network-address-description = Vali, mis aadressile saata andmeid VRChat-i jaoks (kontrolli enda Wi-Fi seadeid seadmest).
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat ip aadress
|
||||
settings-osc-vrchat-network-trackers = Jälgia
|
||||
settings-osc-vrchat-network-trackers-description = Lülita sisse/välja teatud jälgijate andmete saatmise OSC kaudu.
|
||||
@@ -530,17 +524,17 @@ settings-osc-vmc-network-address-description = Valige, millisel aadressil soovit
|
||||
settings-osc-vmc-network-address-placeholder = IPV4 aadress
|
||||
settings-osc-vmc-vrm = VRM-mudel
|
||||
settings-osc-vmc-vrm-description = Laadige VRM-mudel, et võimaldada peaankurdamist ja suuremat ühilduvust teiste rakendustega.
|
||||
settings-osc-vmc-vrm-model_unloaded = Mudelit pole laaditud
|
||||
settings-osc-vmc-vrm-model_loaded =
|
||||
{ $titled ->
|
||||
[true] Mudel laaditud: { $name }
|
||||
*[other] Pealkirjata mudel on laaditud
|
||||
}
|
||||
settings-osc-vmc-vrm-file_select = Kasutatava mudeli pukseerimine või <u>sirvimine</u>
|
||||
settings-osc-vmc-anchor_hip = Ankurda puusadel
|
||||
settings-osc-vmc-anchor_hip-description = Ankurdage jälgimine puusadele, mis on kasulik istuva VTubingu jaoks. Keelamise korral laadige VRM-mudel.
|
||||
settings-osc-vmc-anchor_hip-label = Ankurda puusadel
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
onboarding-skip = Jäta seadistamine vahele
|
||||
@@ -617,8 +611,6 @@ onboarding-done-close = Sulgege juhend
|
||||
|
||||
onboarding-connect_tracker-back = Minge tagasi Wi-Fi andmetesse
|
||||
onboarding-connect_tracker-title = Ühendage jälgijad
|
||||
onboarding-connect_tracker-description-p0 = Nüüd lähme lõbusa osa juurde, ühendame kõik jälgijad-
|
||||
onboarding-connect_tracker-description-p1 = Lihtsalt ühendage kõik jälgijad, mis ei ole ühendatud läbi USB enda arvutisse.
|
||||
onboarding-connect_tracker-issue-serial = Mul on probleeme ühenduse loomisega!
|
||||
onboarding-connect_tracker-usb = USB Jälgija
|
||||
onboarding-connect_tracker-connection_status-none = Jälgijate otsimine
|
||||
@@ -636,17 +628,16 @@ onboarding-connect_tracker-connection_status-done = Ühendatud serveriga
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] Mitte ühtegi jälgijat ühendatud
|
||||
[one] 1 jälgija
|
||||
*[other] { $amount } jälgijat
|
||||
} connected
|
||||
[0] Mitte ühtegi jälgijat ühendatud connected
|
||||
[one] 1 jälgija connected
|
||||
*[other] { $amount } jälgijat connected
|
||||
}
|
||||
onboarding-connect_tracker-next = Olen ühendanud kõik oma jälgijad
|
||||
|
||||
## Tracker calibration tutorial
|
||||
|
||||
onboarding-calibration_tutorial = IMU kalibreerimise õpetus
|
||||
onboarding-calibration_tutorial-subtitle = See aitab vähendada jälgija driftimist!
|
||||
onboarding-calibration_tutorial-description = Iga kord, kui lülitate oma jälgijad sisse, peavad nad kalibreerimiseks hetkeks tasasel pinnal olema. Teeme sama, klõpsates nuppu "{ onboarding-calibration_tutorial-calibrate }", <b>ärge liigutage neid!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Panin oma jälgijad lauale
|
||||
onboarding-calibration_tutorial-status-waiting = Ootan sind
|
||||
onboarding-calibration_tutorial-status-calibrating = Kalibreerimine
|
||||
@@ -672,10 +663,10 @@ onboarding-assign_trackers-description = Valime mis jälgijad lähevad kuhu. Vaj
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } of { $trackers ->
|
||||
[one] 1 jälgija
|
||||
*[other] { $trackers } jälgijat
|
||||
} assigned
|
||||
{ $trackers ->
|
||||
[one] { $assigned } of 1 jälgija assigned
|
||||
*[other] { $assigned } of { $trackers } jälgijat assigned
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Kuva täpsemad määramiskohad
|
||||
onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
|
||||
|
||||
@@ -685,12 +676,8 @@ onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
|
||||
## Tracker mounting method choose
|
||||
|
||||
onboarding-choose_mounting-auto_mounting = Automaatne paigaldamine
|
||||
# Italized text
|
||||
onboarding-choose_mounting-auto_mounting-label = Eksperimentaalne
|
||||
onboarding-choose_mounting-auto_mounting-description = See tuvastab automaatselt kõigi teie jälgijate paigaldussuuna 2 poosist
|
||||
onboarding-choose_mounting-manual_mounting = Käsitsi paigaldamine
|
||||
# Italized text
|
||||
onboarding-choose_mounting-manual_mounting-label = Soovitatud
|
||||
onboarding-choose_mounting-manual_mounting-description = See võimaldab teil valida iga jälgija paigaldussuuna käsitsi
|
||||
|
||||
## Tracker manual mounting setup
|
||||
@@ -716,35 +703,14 @@ onboarding-automatic_mounting-mounting_reset-title = Paigalduse lähtestamine
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Kükita suusaasendis, jalad kõverad, ülakeha kallutatud ettepoole ja käed kõverad.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Vajutage "Lähtesta Paigaldusasend" nuppu ja oodage 3 sekuntit ja jälgijate paigaldusasend lähtestatakse.
|
||||
onboarding-automatic_mounting-preparation-title = Ettevalmistus
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Seiske püsti, käed kõrval.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Vajutage "Lähtesta" nuppu ja oodage 3 sekundit ja jälgijad lähtestatakse.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Pange kõik jälgijad peale
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Et kalibreerida jälgijate paigaldus asendi pööret pange kõik jälgijad peale ja nüüd te näete mis on mis jälgijad paremal pool ekraani.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Mul on kõik jälgijad küljes
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
onboarding-choose_proportions = Millist proportsiooni kalibreerimismeetodit kasutada?
|
||||
# Multiline string
|
||||
onboarding-choose_proportions-description =
|
||||
Keha proportsioone kasutatakse teie keha mõõtude tundmiseks. Neid on vaja, et arvutada jälgijate asukohad.
|
||||
Kui teie keha proportsioonid ei vasta salvestatud proportsioonidele, on teie jälgimistäpsus halvem ja märkate selliseid asju nagu jalgade uisutamine või libistamine või keha ei sobi teie avatariga hästi.
|
||||
onboarding-choose_proportions-auto_proportions = Automaatsed proportsioonid
|
||||
# Italized text
|
||||
onboarding-choose_proportions-auto_proportions-subtitle = Soovitatud
|
||||
# Italized text
|
||||
onboarding-choose_proportions-manual_proportions-subtitle = Väikeste puudutuste jaoks
|
||||
onboarding-choose_proportions-manual_proportions-description = See võimaldab teil proportsioone käsitsi reguleerida, muutes neid otseselt
|
||||
onboarding-choose_proportions-export = Ekspordi proportsioonid
|
||||
onboarding-choose_proportions-file_type = Keha proportsioonide fail
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-back = Mine tagasi lähtestamise õppetusse
|
||||
onboarding-manual_proportions-title = Käsitsi keha proportsioonid
|
||||
onboarding-manual_proportions-precision = Täpne reguleerimine
|
||||
onboarding-manual_proportions-auto = Automaatne kalibreerimine
|
||||
onboarding-manual_proportions-ratio = Kohandamine suhtarvugruppide järgi
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -758,15 +724,8 @@ onboarding-automatic_proportions-put_trackers_on-description = Et kalibreerida t
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Mul on kõik jälgijad küljes
|
||||
onboarding-automatic_proportions-requirements-title = Nõuded
|
||||
onboarding-automatic_proportions-requirements-next = Olen lugenud nõudeid
|
||||
onboarding-automatic_proportions-check_height-title = Kontrollige oma pikkust
|
||||
onboarding-automatic_proportions-check_height-description = Me kasutame teie pikkust oma mõõtmiste alusena, kasutades HMD kõrgust teie tegeliku kõrguse ligikaudseks arvutamiseks, kuid parem on ise kontrollida, kas need on õiged!
|
||||
onboarding-automatic_proportions-check_height-fetch_height = Ma seisan!
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = Tundmatu
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height1 = Teie HMD kõrgus on
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-height1 = nii et teie tegelik kõrgus on
|
||||
onboarding-automatic_proportions-check_height-next_step = Nendega on kõik korras
|
||||
onboarding-automatic_proportions-start_recording-title = Olge valmis liikuma
|
||||
onboarding-automatic_proportions-start_recording-description = Me nüüd salvestame teatud poose ja liigutusi neid näete järgmisel ekraanil. Olge valmis, kui te vajutate nuppu!
|
||||
@@ -799,10 +758,22 @@ onboarding-automatic_proportions-done-title = Kere mõõdetud ja salvestatud.
|
||||
onboarding-automatic_proportions-done-description = Teie keha proportsioonid kalibreerimine on valmis!
|
||||
onboarding-automatic_proportions-error_modal-confirm = Sain aru!
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Jälgijaid ei tuvastatud ega määratud
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
|
||||
## Status system
|
||||
|
||||
status_system-StatusSteamVRDisconnected =
|
||||
@@ -811,3 +782,30 @@ status_system-StatusSteamVRDisconnected =
|
||||
*[other] Praegu ei ole SlimeVR-draiveri kaudu SteamVR-iga ühendatud.
|
||||
}
|
||||
status_system-StatusTrackerError = Jälgijal { $trackerName } on tõrge.
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
## First exit modal
|
||||
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@ body_part-LEFT_UPPER_LEG = Vasen reisi
|
||||
body_part-LEFT_LOWER_LEG = Vasen nilkka
|
||||
body_part-LEFT_FOOT = Vasen jalkaterä
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Ei mikään
|
||||
@@ -142,7 +145,6 @@ widget-developer_mode-more_info = Lisätietoja
|
||||
widget-imu_visualizer = Kierto
|
||||
widget-imu_visualizer-rotation_raw = Käsittelemätön
|
||||
widget-imu_visualizer-rotation_preview = Esikatselu
|
||||
widget-imu_visualizer-rotation_hide = Piilota
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
@@ -361,8 +363,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Floor clip voi v
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe snap yrittää arvata varpaiden asennon jos jalkaterän jäljitintä ei ole käytössä.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot plant asettaa jalkateräsi yhdensuuntaisesti maan kanssa kosketuksessa.
|
||||
settings-general-fk_settings-leg_fk = Jalkojen jäljitys
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Ota käyttöön jalkojen asennuksen nollaus varpaillaan.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Jalkojen asennuksen nollaus
|
||||
settings-general-fk_settings-arm_fk = Käsivarsien jäljitys
|
||||
settings-general-fk_settings-arm_fk-description = Muuta tapaa, jolla käsivarsia jäljitetään.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Pakota kädet HMD:ltä
|
||||
@@ -388,9 +388,6 @@ settings-general-fk_settings-skeleton_settings-interp_hip_legs = Keskimääritä
|
||||
settings-general-fk_settings-skeleton_settings-interp_knee_tracker_ankle = Keskimääritä polvijäljittimen kallistus nilkoilla'
|
||||
settings-general-fk_settings-self_localization-title = Mocap-tila
|
||||
settings-general-fk_settings-self_localization-description = Mocap-tila sallii luurangon karkeasti seurata omaa sijaintiaan ilman laseja tai muita jäljittimiä. Huomioi, että tämä vaatii jalka- ja pääjäljittimien toimimista ja on vielä kokeellinen.
|
||||
settings-general-fk_settings-vive_emulation-title = Vive-emulointi
|
||||
settings-general-fk_settings-vive_emulation-description = Emuloi vyötäröjäljittimen ongelmia, joita Vive jäljittimillä on. Tämä on vitsi ja pahentaa jäljitystä.
|
||||
settings-general-fk_settings-vive_emulation-label = Ota Vive-emulointi käyttöön
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
@@ -455,6 +452,9 @@ settings-general-interface-feedback_sound-label = Palaute ääni
|
||||
settings-general-interface-feedback_sound-volume = Palaute äänen voimakkuus
|
||||
settings-general-interface-connected_trackers_warning = Yhdistettyjen jäljittimien varoitus
|
||||
settings-general-interface-connected_trackers_warning-description = Tämä vaihtoehto näyttää ponnahdusikkunan aina, kun yrität poistua SlimeVR:stä, kun sinulla on yksi tai useampi yhdistetty jäljitin. Se muistuttaa sinua sammuttamaan jäljittimet, kun olet valmis, akun käyttöiän säästämiseksi.
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-use_tray = Pienennä ilmaisinalueelle
|
||||
settings-general-interface-use_tray-description = Voit sulkea ikkunan sulkematta SlimeVR-palvelinta, jotta voit jatkaa sen käyttöä ilman, että graafinen käyttöliittymä häiritsee sinua.
|
||||
settings-general-interface-use_tray-label = Pienennä ilmaisinalueelle
|
||||
@@ -479,7 +479,6 @@ settings-serial-factory_reset-warning =
|
||||
Tämä tarkoittaa, että Wi-Fi- ja kalibrointiasetukset <b>menetetään kokonaan!</b>
|
||||
settings-serial-factory_reset-warning-ok = Tiedän mitä teen
|
||||
settings-serial-factory_reset-warning-cancel = Peruuta
|
||||
settings-serial-get_infos = Hanki tietoja
|
||||
settings-serial-serial_select = Valitse sarjaportti
|
||||
settings-serial-auto_dropdown_item = Autom.
|
||||
settings-serial-file_type = Teksti
|
||||
@@ -558,17 +557,17 @@ settings-osc-vmc-network-address-description = Määritä osoite, johon tietoja
|
||||
settings-osc-vmc-network-address-placeholder = IPV4-osoite
|
||||
settings-osc-vmc-vrm = VRM-malli
|
||||
settings-osc-vmc-vrm-description = Lataa VRM-malli salliaksesi pääankkurin ja mahdollistaaksesi paremman yhteensopivuuden muiden sovellusten kanssa
|
||||
settings-osc-vmc-vrm-model_unloaded = Mallia ei ole ladattu
|
||||
settings-osc-vmc-vrm-model_loaded =
|
||||
{ $titled ->
|
||||
[true] Malli ladattu: { $name }
|
||||
*[other] Nimetön malli ladattu
|
||||
}
|
||||
settings-osc-vmc-vrm-file_select = Vedä ja pudota mallia käytettäväksi tai <u>selaa</u>
|
||||
settings-osc-vmc-anchor_hip = Ankkuri lantiolla
|
||||
settings-osc-vmc-anchor_hip-description = Ankkuroi jäljitin lonkalle, hyödyllinen istuvaan VTubing. Jos poistat käytöstä, lataa VRM-malli.
|
||||
settings-osc-vmc-anchor_hip-label = Ankkuroi lonkalle
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
onboarding-skip = Ohita asennus
|
||||
@@ -672,7 +671,6 @@ onboarding-connect_tracker-next = Yhdistin kaikki jäljittimeni
|
||||
|
||||
onboarding-calibration_tutorial = IMU-kalibrointi tutoriaali
|
||||
onboarding-calibration_tutorial-subtitle = Tämä auttaa vähentämään jäljittimen ajautumaa!
|
||||
onboarding-calibration_tutorial-description = Joka kerta, kun käynnistät jäljittimet, niiden täytyy levätä hetken tasaisella alustalla kalibroidakseen. Tehdään sama asia painamalla "{ onboarding-calibration_tutorial-calibrate }" nappia, <b>älä liikuta niitä!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Asetin jäljittimeni pöydälle
|
||||
onboarding-calibration_tutorial-status-waiting = Odotetaan sinua
|
||||
onboarding-calibration_tutorial-status-calibrating = Kalibroi
|
||||
@@ -812,26 +810,13 @@ onboarding-automatic_mounting-mounting_reset-title = Asennuksen Nollaus
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Kyykisty "hiihtoasentoon" siten, että jalat ovat koukussa, ylävartalo kallistettuna eteenpäin ja kädet koukussa.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Paina "Nollaa Asennus" -painiketta ja odota 3 sekuntia, ennen kuin jäljittimien asennuskierrot nollautuvat.
|
||||
onboarding-automatic_mounting-preparation-title = Valmistelu
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Seiso pystyssä kädet sivuilla.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Paina "Täysinollaus" -painiketta ja odota 3 sekuntia, ennen kuin jäljittimet nollautuvat.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Laita jäljittimet päällesi
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Kalibroidaksemme asennuskierrokset käytämme juuri määrittämiäsi jäljittimiä. Laita kaikki jäljittimet päällesi, näet mitkä ovat mitäkin oikealla olevassa kuvassa.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Minulla on kaikki jäljittimet päällä
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
onboarding-choose_proportions = Mitä kalibrointimenetelmää käytetään?
|
||||
onboarding-choose_proportions-auto_proportions = Automaattiset mittasuhteet
|
||||
onboarding-choose_proportions-manual_proportions = Manuaaliset mittasuhteet
|
||||
onboarding-choose_proportions-import-failed = Epäonnistui
|
||||
onboarding-choose_proportions-file_type = Kehon mittasuhteet -tiedosto
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
onboarding-manual_proportions-title = Manuaaliset kehon mittasuhteet
|
||||
onboarding-manual_proportions-precision = Tarkka säätö
|
||||
onboarding-manual_proportions-auto = Automaattiset mittasuhteet
|
||||
onboarding-manual_proportions-ratio = Säädä suhderyhmien mukaan
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -842,17 +827,8 @@ onboarding-automatic_proportions-put_trackers_on-title = Laita jäljittimet pä
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Minulla on kaikki jäljittimet päällä
|
||||
onboarding-automatic_proportions-requirements-title = Vaatimukset
|
||||
onboarding-automatic_proportions-requirements-next = Olen lukenut vaatimukset
|
||||
onboarding-automatic_proportions-check_height-title = Tarkista pituutesi
|
||||
onboarding-automatic_proportions-check_height-description = Käytämme pituuttasi mittaustemme perustana käyttämällä HMD:n pituutta likiarvona todellisesta pituudestasi, mutta on parempi tarkistaa itse, ovatko ne oikein!
|
||||
# All the text is in bold!
|
||||
onboarding-automatic_proportions-check_height-calculation_warning = Paina painiketta <u>pystyasennossa</u> laskeaksesi pituutesi. Sinulla on 3 sekuntia painikkeen painamisen jälkeen!
|
||||
onboarding-automatic_proportions-check_height-fetch_height = Seison
|
||||
# Context is that the height is unknown
|
||||
onboarding-automatic_proportions-check_height-unknown = Tuntematon
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-hmd_height1 = HMD-korkeus on
|
||||
# Shows an element below it
|
||||
onboarding-automatic_proportions-check_height-height1 = Joten todellinen pituutesi on
|
||||
onboarding-automatic_proportions-check_height-next_step = Ne ovat hyvät
|
||||
onboarding-automatic_proportions-start_recording-title = Valmistaudu liikkumaan
|
||||
onboarding-automatic_proportions-start_recording-description = Aiomme nyt tallentaa joitain tiettyä asentoja ja liikkeitä. Näitä kysytään seuraavassa näytössä. Ole valmis aloittamaan, kun painat nappia!
|
||||
@@ -875,11 +851,17 @@ onboarding-automatic_proportions-verify_results-redo = Tee tallennus uudelleen
|
||||
onboarding-automatic_proportions-verify_results-confirm = Nämä ovat oikein
|
||||
onboarding-automatic_proportions-done-title = Keho mitattu ja tallennettu.
|
||||
onboarding-automatic_proportions-done-description = Kehosi mittasuhteiden kalibrointi on valmis!
|
||||
onboarding-automatic_proportions-error_modal =
|
||||
<b>Varoitus:</b> Mittasuhteita arvioitaessa havaittiin virhe!
|
||||
<docs>Tarkista dokumentit</docs> tai liity <discord>Discordiin</discord> saadaksesi apua ^_^
|
||||
onboarding-automatic_proportions-error_modal-confirm = Ymmäretty!
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = Jäjittimiä ei havaittu tai määritetty
|
||||
@@ -903,6 +885,21 @@ status_system-StatusSteamVRDisconnected =
|
||||
}
|
||||
status_system-StatusTrackerError = { $trackerName } jäljittimessä on virhe
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
@@ -911,3 +908,6 @@ status_system-StatusTrackerError = { $trackerName } jäljittimessä on virhe
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
@@ -118,7 +119,7 @@ skeleton_bone-HEAD-desc =
|
||||
skeleton_bone-NECK = Longueur du cou
|
||||
skeleton_bone-NECK-desc =
|
||||
Ceci est la distance entre le milieu de votre tête et la base de votre cou.
|
||||
Pour l’ajuster, hochez votre tête de haut en bas ou inclinez votre tête de gauche à droite et modifiez-la
|
||||
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 =
|
||||
@@ -406,7 +407,8 @@ tracker-settings-name_section-label = Nom personalisé
|
||||
tracker-settings-forget = Oublier capteur
|
||||
tracker-settings-forget-description = Supprime le capteur du serveur SlimeVR et l'empêche de s'y connecter jusqu'à ce que le serveur soit redémarré. La configuration du capteur ne sera pas perdue.
|
||||
tracker-settings-forget-label = Oublier capteur
|
||||
tracker-settings-update-unavailable = Ne peut pas être mis à jour (DIY)
|
||||
tracker-settings-update-unavailable-v2 = Aucune publication trouvée
|
||||
tracker-settings-update-incompatible = Mise à jour impossible. Carte incompatible
|
||||
tracker-settings-update-low-battery = Mise à jour impossible. Batterie inférieure à 50 %
|
||||
tracker-settings-update-up_to_date = À jour
|
||||
tracker-settings-update-blocked = Mise à jour non disponible. Aucune autre version disponible
|
||||
@@ -620,6 +622,8 @@ settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = App
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Empêche les articulations de tourner au-delà de leur limite
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints = Corriger avec les contraintes
|
||||
settings-general-fk_settings-enforce_joint_constraints-correct_constraints-description = Corriger les rotations des articulations lorsqu'elles dépassent leur limite
|
||||
settings-general-fk_settings-ik = Données de position
|
||||
settings-general-fk_settings-ik-use_position = Utiliser les données de position
|
||||
settings-general-fk_settings-arm_fk = Capture des bras
|
||||
settings-general-fk_settings-arm_fk-description = Changez la façon dont les bras sont captés.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Forcer les bras en provenance du casque VR
|
||||
@@ -726,9 +730,6 @@ settings-general-interface-connected_trackers_warning-label = Avertissement de c
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportement
|
||||
settings-general-interface-dev_mode = Mode développeur
|
||||
settings-general-interface-dev_mode-description = Ce mode peut être utile pour avoir des données approfondies ou pour interagir avec des capteurs connectés à un niveau plus avancé.
|
||||
settings-general-interface-dev_mode-label = Mode développeur
|
||||
settings-general-interface-use_tray = Minimiser dans la zone de notifications
|
||||
settings-general-interface-use_tray-description = Vous permet de fermer la fenêtre sans fermer le serveur SlimeVR afin que vous puissiez continuer à l'utiliser sans l'interface graphique.
|
||||
settings-general-interface-use_tray-label = Minimiser dans la zone de notifications
|
||||
@@ -770,7 +771,6 @@ settings-serial-factory_reset-warning =
|
||||
Ce qui signifie que les paramètres de Wi-Fi et de calibration <b>seront tous perdus !</b>
|
||||
settings-serial-factory_reset-warning-ok = Je sais ce que je fais
|
||||
settings-serial-factory_reset-warning-cancel = Annuler
|
||||
settings-serial-get_infos = Obtenir des informations
|
||||
settings-serial-serial_select = Sélectionnez un port série
|
||||
settings-serial-auto_dropdown_item = Automatique
|
||||
settings-serial-get_wifi_scan = Obtenir scan WiFi
|
||||
@@ -871,6 +871,9 @@ settings-osc-vmc-mirror_tracking = Inverser les mouvements
|
||||
settings-osc-vmc-mirror_tracking-description = Inverse les mouvements horizontalement
|
||||
settings-osc-vmc-mirror_tracking-label = Inverser les mouvements
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Avancé
|
||||
@@ -1012,10 +1015,10 @@ onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] No trackers
|
||||
[one] 1 tracker
|
||||
*[other] { $amount } trackers
|
||||
} connected
|
||||
[0] No trackers connected
|
||||
[one] 1 tracker connected
|
||||
*[other] { $amount } trackers connected
|
||||
}
|
||||
onboarding-connect_tracker-next = J'ai connecté tous mes capteurs
|
||||
|
||||
## Tracker calibration tutorial
|
||||
@@ -1395,68 +1398,8 @@ firmware_tool = Outil de micrologiciel DIY
|
||||
firmware_tool-description = Vous permet de configurer et de flash vos capteurs DIY
|
||||
firmware_tool-not_available = Oups, l'outil de micrologiciel n'est pas disponible en ce moment. Revenez plus tard !
|
||||
firmware_tool-not_compatible = L'outil de micrologiciel n'est pas compatible avec cette version de serveur. Veuillez mettre à jour votre serveur !
|
||||
firmware_tool-board_step = Sélectionnez votre carte
|
||||
firmware_tool-board_step-description = Sélectionnez l'une des cartes répertoriées ci-dessous.
|
||||
firmware_tool-board_pins_step = Vérifiez les broches
|
||||
firmware_tool-board_pins_step-description =
|
||||
Veuillez vérifier que les broches sélectionnées sont correctes.
|
||||
Si vous avez suivi la documentation de SlimeVR, les valeurs par défaut devraient être correctes.
|
||||
firmware_tool-board_pins_step-enable_led = Activer la LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Broche LED
|
||||
.placeholder = Entrez l'adresse de la broche LED
|
||||
firmware_tool-board_pins_step-battery_type = Sélectionnez le type de batterie
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batterie externe
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batterie interne
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interne
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Broche du capteur de batterie
|
||||
.placeholder = Entrez l'adresse de la broche du capteur de batterie
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Résistance de la batterie (Ohms)
|
||||
.placeholder = Entrer la valeur de la résistance de la batterie
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Bouclier de batterie R1 (Ohms)
|
||||
.placeholder = Saisir la valeur du bouclier de batterie R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Bouclier de batterie R2 (Ohms)
|
||||
.placeholder = Saisir la valeur du bouclier de batterie R1
|
||||
firmware_tool-add_imus_step = Déclarez vos IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
Veuillez ajouter les IMUs de votre capteur
|
||||
Si vous avez suivi la documentation de SlimeVR, les valeurs par défaut devraient être correctes
|
||||
firmware_tool-add_imus_step-imu_type-label = Type d'IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Sélectionnez le type d'IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Rotation de l'IMU (deg)
|
||||
.placeholder = Angle de rotation de l'IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = Broche SCL
|
||||
.placeholder = Adresse de la broche SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = Broche SDA
|
||||
.placeholder = Adresse de la broche SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = Broche INT
|
||||
.placeholder = Adresse de la broche INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Capteur optionnel
|
||||
firmware_tool-add_imus_step-show_less = Afficher moins
|
||||
firmware_tool-add_imus_step-show_more = Afficher plus
|
||||
firmware_tool-add_imus_step-add_more = Ajouter plus d'IMUs
|
||||
firmware_tool-select_firmware_step = Sélectionnez la version du micrologiciel
|
||||
firmware_tool-select_firmware_step-description = Veuillez choisir la version du micrologiciel que vous souhaitez utiliser
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Afficher les micrologiciels de tierces parties
|
||||
firmware_tool-flash_method_step = Méthode de flash
|
||||
firmware_tool-flash_method_step-description = Veuillez sélectionner la méthode de flash que vous souhaitez utiliser
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Utiliser la méthode « over the air ». Votre capteur utilisera le Wi-Fi pour mettre à jour son micrologiciel. Ne fonctionne que sur les capteurs déjà configurés.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Série
|
||||
.description = Utiliser un cable USB pour mettre à jour votre capteur
|
||||
firmware_tool-flashbtn_step = Appuyez sur le bouton boot
|
||||
firmware_tool-flashbtn_step-description = Avant de passer à l'étape suivante, il y a quelques choses que vous devez faire
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Éteignez le capteur, retirez le boîtier (s'il y en a un), connectez un câble USB à votre ordinateur, puis effectuez l'une des étapes suivantes en fonction de la révision de votre carte SlimeVR :
|
||||
@@ -1485,9 +1428,6 @@ firmware_tool-flashing_step-exit = Quitter
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Création du dossier de création
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Téléchargement du micrologiciel
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extraction du micrologiciel
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configuration des définitions
|
||||
firmware_tool-build-BUILDING = Création du micrologiciel
|
||||
firmware_tool-build-SAVING = Enregistrement du micrologiciel
|
||||
firmware_tool-build-DONE = Création terminée
|
||||
|
||||
@@ -41,6 +41,9 @@ body_part-LEFT_UPPER_LEG = ירך שמאל
|
||||
body_part-LEFT_LOWER_LEG = קרסול שמאל
|
||||
body_part-LEFT_FOOT = רגל שמאל
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = לא נבחר
|
||||
@@ -99,6 +102,9 @@ widget-overlay-is_mirrored_label = הצג Overlay כהעתק
|
||||
## Widget: Drift compensation
|
||||
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = מצב מפתח
|
||||
@@ -113,6 +119,9 @@ widget-developer_mode-more_info = הצג עוד מידע
|
||||
widget-imu_visualizer = סיבוב
|
||||
widget-imu_visualizer-rotation_preview = תצוגה מקדימה
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
|
||||
## Tracker status
|
||||
|
||||
tracker-status-none = אין סטטוס
|
||||
@@ -212,10 +221,6 @@ settings-sidebar-serial = טרמינל סידרתי
|
||||
settings-general-steamvr = SteamVR
|
||||
settings-general-steamvr-trackers-waist = מותניים
|
||||
settings-general-steamvr-trackers-chest = חזה
|
||||
settings-general-steamvr-trackers-feet = רגל
|
||||
settings-general-steamvr-trackers-knees = ברכיים
|
||||
settings-general-steamvr-trackers-elbows = מרפקים
|
||||
settings-general-steamvr-trackers-hands = ידיים
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -243,7 +248,13 @@ settings-general-tracker_mechanics-drift_compensation-max_resets-label = שימ
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
|
||||
## Interface settings
|
||||
## Appearance settings
|
||||
|
||||
|
||||
## Notification settings
|
||||
|
||||
|
||||
## Behavior settings
|
||||
|
||||
|
||||
## Serial settings
|
||||
@@ -262,6 +273,12 @@ settings-osc-vrchat-network-trackers-elbows = מרפקים
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
|
||||
@@ -304,10 +321,7 @@ settings-osc-vrchat-network-trackers-elbows = מרפקים
|
||||
## Tracker automatic mounting setup
|
||||
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
|
||||
## Tracker manual proportions setup
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
@@ -322,9 +336,48 @@ onboarding-automatic_proportions-verify_results-confirm = הם נכונים
|
||||
onboarding-automatic_proportions-done-title = הגוף שלך נמדד ונשמר
|
||||
onboarding-automatic_proportions-done-description = תהליך כיול פרופורציות הגוף שלך הושלם!
|
||||
|
||||
## Tracker scaled proportions setup
|
||||
|
||||
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = לא זוהו או הוקצו חיישנים
|
||||
|
||||
## Trackers Still On notification
|
||||
|
||||
|
||||
## Status system
|
||||
|
||||
|
||||
## Firmware tool globals
|
||||
|
||||
|
||||
## Firmware tool Steps
|
||||
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
|
||||
## Firmware update status
|
||||
|
||||
|
||||
## Dedicated Firmware Update Page
|
||||
|
||||
|
||||
## Tray Menu
|
||||
|
||||
|
||||
## First exit modal
|
||||
|
||||
|
||||
## Unknown device modal
|
||||
|
||||
|
||||
## Error collection consent modal
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ skeleton_bone-FOOT_SHIFT = Correzione per i piedi
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Questo valore è la distanza orizzontale dal ginocchio alla caviglia.
|
||||
Tiene conto del fatto che la parte inferiore delle gambe va all'indietro quando si sta in piedi.
|
||||
Per regolarla, impostare la lunghezza dei piedi su 0, eseguire un reset completo e modificarla
|
||||
Per regolarla, impostare la lunghezza dei piedi su 0, eseguire un reset completo e modificarla
|
||||
finché i piedi virtuali di non si allineano al centro delle caviglie.
|
||||
skeleton_bone-SKELETON_OFFSET = Correzione per lo scheletro
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
@@ -396,7 +396,6 @@ tracker-settings-name_section-label = Nome del tracker
|
||||
tracker-settings-forget = Dimentica il tracker
|
||||
tracker-settings-forget-description = Rimuove il tracker dal SlimeVR server e impedisce che si riconnetta ad fino al riavvio del server. Le impostazioni del tracker non andranno perse.
|
||||
tracker-settings-forget-label = Dimentica il tracker
|
||||
tracker-settings-update-unavailable = Non può essere aggiornata (fai da te)
|
||||
tracker-settings-update-low-battery = Non è possibile aggiornare. Batteria inferiore al 50%
|
||||
tracker-settings-update-up_to_date = Aggiornata
|
||||
tracker-settings-update-available = { $versionName } è ora disponibile
|
||||
@@ -541,7 +540,7 @@ settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
Abilita questa opzione se i tuoi tracker perdono continuano l'orientamento.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = Compensazione del drift predittiva
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
<b>Attenzione:</b> Utilizzare la compensazione del drift solo se è necessario il ripristino
|
||||
<b>Attenzione:</b> Utilizzare la compensazione del drift solo se è necessario il ripristino
|
||||
molto spesso (ogni ~5-10 minuti).
|
||||
|
||||
Alcune IMU che sono soggetti a frequenti ripristini includono:
|
||||
@@ -600,8 +599,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = "Compenetrazione
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = "Dita dei piedi piantate" prova ad indovinare la rotazione dei tuoi piedi quando non stai usando dei tracker per i piedi.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = "Piedi piantati" ruota i piedi in modo tale che siano paralleli al terreno quando in contatto con esso.
|
||||
settings-general-fk_settings-leg_fk = Tracciamento delle gambe
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Abilita il ripristino di posizionamento dei piedi mettendosi in punta di piedi.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Ripristino del posizionamento dei piedi
|
||||
settings-general-fk_settings-enforce_joint_constraints = Limiti dello scheletro
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Rispetta i vincoli
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Impedisci ai legamenti di ruotare oltre il loro limite
|
||||
@@ -714,9 +711,6 @@ settings-general-interface-connected_trackers_warning-label = Avviso di tracker
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportamento
|
||||
settings-general-interface-dev_mode = Modalità sviluppatore
|
||||
settings-general-interface-dev_mode-description = Questa modalità è utile se hai bisogno di dati approfonditi o devi interagire in maniera più avanzata con i tracker connessi.
|
||||
settings-general-interface-dev_mode-label = Modalità sviluppatore
|
||||
settings-general-interface-use_tray = Riduci a icona nella barra delle applicazioni
|
||||
settings-general-interface-use_tray-description = Ti consente di chiudere la finestra senza chiudere il server SlimeVR in modo da poter continuare a usarlo senza che la GUI ti infastidisca.
|
||||
settings-general-interface-use_tray-label = Riduci a icona nella barra delle applicazioni
|
||||
@@ -755,7 +749,6 @@ settings-serial-factory_reset-warning =
|
||||
Ciò significa che le impostazioni Wi-Fi e di calibrazione <b>andranno tutte perse!</b>
|
||||
settings-serial-factory_reset-warning-ok = Capisco cosa sto facendo
|
||||
settings-serial-factory_reset-warning-cancel = Annulla
|
||||
settings-serial-get_infos = Ottieni informazioni
|
||||
settings-serial-serial_select = Seleziona una porta seriale
|
||||
settings-serial-auto_dropdown_item = Automatico
|
||||
settings-serial-get_wifi_scan = Elenca WiFi Network
|
||||
@@ -858,6 +851,9 @@ settings-osc-vmc-mirror_tracking = Tracciamento speculare
|
||||
settings-osc-vmc-mirror_tracking-description = Specchia il tracciamento orizzontalmente.
|
||||
settings-osc-vmc-mirror_tracking-label = Tracciamento speculare
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Avanzato
|
||||
@@ -929,7 +925,7 @@ onboarding-reset_tutorial-explanation = Mentre usi i tuoi tracker, potrebbero pe
|
||||
onboarding-reset_tutorial-skip = Salta passaggio
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-0 =
|
||||
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino dell'orientamento.
|
||||
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino dell'orientamento.
|
||||
|
||||
Ciò farà sì che i tracker siano rivolti nella stessa direzione del tuo HMD.
|
||||
# Cares about multiline
|
||||
@@ -940,7 +936,7 @@ onboarding-reset_tutorial-1 =
|
||||
Questo ripristinerà completamente la posizione e la rotazione di tutti i tuoi tracker. Dovrebbe risolvere la maggior parte dei problemi.
|
||||
# Cares about multiline
|
||||
onboarding-reset_tutorial-2 =
|
||||
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino del posizionamento.
|
||||
Tocca { $taps } volte il tracker evidenziato per eseguire il ripristino del posizionamento.
|
||||
|
||||
Il ripristino del posizionamento aiuta a determinare come i tracker vengono effettivamente posizionati su di te, quindi se li hai spostati accidentalmente e hai cambiato il modo in cui sono orientati di una grande quantità, questo aiuterà.
|
||||
|
||||
@@ -1009,7 +1005,6 @@ onboarding-connect_tracker-next = Ho collegato tutti i miei tracker
|
||||
|
||||
onboarding-calibration_tutorial = Tutorial di calibrazione IMU
|
||||
onboarding-calibration_tutorial-subtitle = Ciò aiuterà a ridurre il drift del tracker!
|
||||
onboarding-calibration_tutorial-description = Ogni volta che accendi i tracker, devono riposare per un momento su una superficie piana per calibrare. Facciamo la stessa cosa cliccando sul pulsante "{ onboarding-calibration_tutorial-calibrate }", <b>non muoverli!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Ho messo i miei tracker sul tavolo
|
||||
onboarding-calibration_tutorial-status-waiting = Ti aspettiamo
|
||||
onboarding-calibration_tutorial-status-calibrating = Calibrazione in corso
|
||||
@@ -1383,68 +1378,8 @@ firmware_tool = Strumento firmware fai-da-te
|
||||
firmware_tool-description = Ti consente di configurare e flashare i tuoi tracker fai-da-te
|
||||
firmware_tool-not_available = Oops, lo strumento firmware non è disponibile al momento. Torna più tardi!
|
||||
firmware_tool-not_compatible = Lo strumento firmware non è compatibile con questa versione del server. Aggiorna il tuo server!
|
||||
firmware_tool-board_step = Seleziona la tua scheda
|
||||
firmware_tool-board_step-description = Seleziona una delle schede elencate di seguito.
|
||||
firmware_tool-board_pins_step = Controlla i pin
|
||||
firmware_tool-board_pins_step-description =
|
||||
Per piacer verifica che i pin selezionati siano corretti.
|
||||
Se hai seguito la documentazione di SlimeVR, i valori predefiniti dovrebbero essere corretti
|
||||
firmware_tool-board_pins_step-enable_led = Abilita LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Pin LED
|
||||
.placeholder = Inserisci l'indirizzo del Pin LED
|
||||
firmware_tool-board_pins_step-battery_type = Seleziona il tipo di batteria
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Batteria esterna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Batteria interna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 interno
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Pin del sensore della batteria
|
||||
.placeholder = Inserisci l'indirizzo del sensore della batteria
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Resistenza della batteria (Ohm)
|
||||
.placeholder = Inserisci il valore della resistenza della batteria
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Shield R1 della batteria (Ohm)
|
||||
.placeholder = Inserisci il valore dello Shield R1 della batteria
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Shield R2 della batteria (Ohm)
|
||||
.placeholder = Inserisci il valore dello Shield R2 della batteria
|
||||
firmware_tool-add_imus_step = Specifica i tuoi IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
Per piacere aggiungi le IMU del tuo tracker
|
||||
Se hai seguito la documentazione di SlimeVR, i valori predefiniti dovrebbero essere corretti
|
||||
firmware_tool-add_imus_step-imu_type-label = Tipo dell'IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Seleziona il tipo dell'IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Rotazione dell'IMU (gradi)
|
||||
.placeholder = Angolo di rotazione dell'IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = Pin SLC
|
||||
.placeholder = Indirizzo del Pin SLC
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = Pin SDA
|
||||
.placeholder = Indirezzo del Pin SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = Pin INT
|
||||
.placeholder = Indirizzo del Pin INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Tracker opzionale
|
||||
firmware_tool-add_imus_step-show_less = Mostra meno
|
||||
firmware_tool-add_imus_step-show_more = Mostra di più
|
||||
firmware_tool-add_imus_step-add_more = Aggiungere altre IMU
|
||||
firmware_tool-select_firmware_step = Seleziona la versione del firmware
|
||||
firmware_tool-select_firmware_step-description = Per piacere scegli la versione del firmware che desideri utilizzare
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Mostra firmware di terze parti
|
||||
firmware_tool-flash_method_step = Metodo di flashing
|
||||
firmware_tool-flash_method_step-description = Seleziona il metodo di flashing che desideri utilizzare
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Usa il metodo via rete. Il tuo tracker utilizzerà il Wi-Fi per aggiornare il suo firmware. Funziona solo su tracker già configurati.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Seriale
|
||||
.description = Usa un cavo USB per aggiornare il tracker.
|
||||
firmware_tool-flashbtn_step = Premi il pulsante di avvio
|
||||
firmware_tool-flashbtn_step-description = Prima di passare al passaggio successivo, ci sono alcune cose che devi fare
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Spegni il tracker, rimuovi la custodia (se presente), collega un cavo USB a questo computer, quindi esegui uno dei seguenti passaggi in base alla revisione della tua scheda SlimeVR:
|
||||
@@ -1473,9 +1408,6 @@ firmware_tool-flashing_step-exit = Esci
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Creazione della cartella di compilazione
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Scaricamento del firmware
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Estrazione del firmware
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configurazione delle definizioni del firmware
|
||||
firmware_tool-build-BUILDING = Compilazione del firmware
|
||||
firmware_tool-build-SAVING = Salvataggio del codice compilato
|
||||
firmware_tool-build-DONE = Compilazione completata
|
||||
|
||||
@@ -394,8 +394,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = フロアクリ
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = 足指スナップは足トラッカーを使用していない場合、足の回転を推測しようとします。
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = 足の着地は足が地面に接触したときに足を地面に平行に回転させます。
|
||||
settings-general-fk_settings-leg_fk = 足のトラッキング
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = つま先立ちで足のマウンティングリセットを有効にします。
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = 足のマウンティングリセット
|
||||
settings-general-fk_settings-arm_fk = アームトラッキング
|
||||
settings-general-fk_settings-arm_fk-description = 腕の追従方法を変更する。
|
||||
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
|
||||
@@ -446,6 +444,9 @@ settings-general-gesture_control-mountingResetTaps = タップによるマウン
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = 外観
|
||||
settings-general-interface-dev_mode = 開発者モード
|
||||
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
|
||||
settings-general-interface-dev_mode-label = 開発者モード
|
||||
settings-general-interface-theme = カラーテーマ
|
||||
settings-general-interface-lang = 言語を選択
|
||||
settings-general-interface-lang-description = 使用したいデフォルトの言語を変更する
|
||||
@@ -469,9 +470,6 @@ settings-general-interface-connected_trackers_warning = 接続されたトラッ
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-dev_mode = 開発者モード
|
||||
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
|
||||
settings-general-interface-dev_mode-label = 開発者モード
|
||||
settings-general-interface-use_tray-label = システムトレイに最小化する
|
||||
|
||||
## Serial settings
|
||||
@@ -486,7 +484,6 @@ settings-serial-reboot = リブート
|
||||
settings-serial-factory_reset = ファクトリーリセット
|
||||
settings-serial-factory_reset-warning-ok = 自分が何しているかを知っています。
|
||||
settings-serial-factory_reset-warning-cancel = キャンセル
|
||||
settings-serial-get_infos = 情報取得
|
||||
settings-serial-serial_select = シリアルポートを選択
|
||||
settings-serial-auto_dropdown_item = 自動
|
||||
|
||||
@@ -554,6 +551,9 @@ settings-osc-vmc-network-address = ネットワークアドレス
|
||||
settings-osc-vmc-network-address-placeholder = IPV4アドレス
|
||||
settings-osc-vmc-vrm = VRMモデル
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
@@ -625,10 +625,10 @@ onboarding-connect_tracker-connection_status-done = サーバーに接続され
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] No trackers
|
||||
[one] 1 tracker
|
||||
*[other] { $amount } trackers
|
||||
} connected
|
||||
[0] No trackers connected
|
||||
[one] 1 tracker connected
|
||||
*[other] { $amount } trackers connected
|
||||
}
|
||||
onboarding-connect_tracker-next = すべてのトラッカーを接続しました
|
||||
|
||||
## Tracker calibration tutorial
|
||||
@@ -653,10 +653,10 @@ onboarding-assign_trackers-description = どのトラッカーをどこに置く
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } of { $trackers ->
|
||||
[one] 1 tracker
|
||||
*[other] { $trackers } trackers
|
||||
} assigned
|
||||
{ $trackers ->
|
||||
[one] { $assigned } of 1 tracker assigned
|
||||
*[other] { $assigned } of { $trackers } trackers assigned
|
||||
}
|
||||
onboarding-assign_trackers-advanced = 高度な割り当て場所の表示
|
||||
onboarding-assign_trackers-next = すべてのトラッカーを割り当てました
|
||||
|
||||
@@ -690,8 +690,6 @@ onboarding-automatic_mounting-mounting_reset-title = マウントリセット
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 足を曲げ、上体を前に倒し、腕を曲げた状態で、スキーのポーズでしゃがむ。
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. リセットマウンティングボタンを押し、3秒待つと装着方向がリセットされます。
|
||||
onboarding-automatic_mounting-preparation-title = 準備
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. 両手を横に広げて直立します。
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. リセットボタンを押し、3秒待つとリセットされます。
|
||||
onboarding-automatic_mounting-put_trackers_on-title = トラッカーを装着する
|
||||
onboarding-automatic_mounting-put_trackers_on-description = マウントの方向を較正するために、先ほど割り当てたトラッカーを使用します。右の図でどれがどれだかわかると思います。
|
||||
onboarding-automatic_mounting-put_trackers_on-next = すべてのトラッカーを装着しました
|
||||
@@ -700,8 +698,6 @@ onboarding-automatic_mounting-put_trackers_on-next = すべてのトラッカー
|
||||
|
||||
onboarding-manual_proportions-back = チュートリアルをリセットする
|
||||
onboarding-manual_proportions-title = マニュアルボディプロポーション
|
||||
onboarding-manual_proportions-precision = 精度を調整する
|
||||
onboarding-manual_proportions-auto = 自動キャリブレーション
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
|
||||
@@ -746,6 +742,9 @@ onboarding-automatic_proportions-error_modal-confirm = 了解!
|
||||
## Tracker scaled proportions reset
|
||||
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = トラッカーを検出できません。もしくは割り当てられていません。
|
||||
|
||||
@@ -275,7 +275,6 @@ tracker-settings-name_section-label = 트래커 이름
|
||||
tracker-settings-forget = 트래커 삭제
|
||||
tracker-settings-forget-description = SlimeVR 서버에서 트래커를 제거하고 서버를 다시 시작할 때까지 자동으로 연결하지 않아요. 트래커의 설정은 지워지지 않아요.
|
||||
tracker-settings-forget-label = 트래커 삭제
|
||||
tracker-settings-update-unavailable = 업데이트할 수 없음 (DIY)
|
||||
tracker-settings-update-up_to_date = 최신 버전
|
||||
tracker-settings-update-available = { $versionName } 사용 가능
|
||||
tracker-settings-update = 지금 업데이트
|
||||
@@ -383,7 +382,7 @@ settings-general-steamvr-trackers-tracker_toggling = 자동 트래커 할당
|
||||
settings-general-steamvr-trackers-tracker_toggling-description = 지정한 트래커 할당 상태에 따라 SteamVR 트래커를 자동으로 켜고 끄기
|
||||
settings-general-steamvr-trackers-tracker_toggling-label = 자동 트래커 할당
|
||||
settings-general-steamvr-trackers-hands-warning =
|
||||
<b>경고:</b> 핸드 트래커를 사용하면 VR 컨트롤러가 작동하지 않아요.
|
||||
<b>경고:</b> 핸드 트래커를 사용하면 VR 컨트롤러가 작동하지 않아요.
|
||||
그래도 사용할까요?
|
||||
settings-general-steamvr-trackers-hands-warning-cancel = 취소
|
||||
settings-general-steamvr-trackers-hands-warning-done = 확인
|
||||
@@ -414,7 +413,7 @@ settings-general-tracker_mechanics-drift_compensation-enabled-label = 틀어짐
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction = 틀어짐 보정 예측
|
||||
# This cares about multilines
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-description =
|
||||
점점 심하게 틀어지는 트래커의 틀어짐 방향을 예측해요.
|
||||
점점 심하게 틀어지는 트래커의 틀어짐 방향을 예측해요.
|
||||
틀어짐 보정을 사용해도 트래커가 Yaw 축에서 계속 틀어지면 이 옵션을 켜세요.
|
||||
settings-general-tracker_mechanics-drift_compensation-prediction-label = 예측해서 틀어짐 보정하기
|
||||
settings-general-tracker_mechanics-drift_compensation_warning =
|
||||
@@ -428,7 +427,7 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = 보정 강
|
||||
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 보정에 사용할 최근 정렬 횟수
|
||||
settings-general-tracker_mechanics-save_mounting_reset = 자동 착용 방향 정렬 보정값 저장
|
||||
settings-general-tracker_mechanics-save_mounting_reset-description =
|
||||
트래커의 착용 방향 정렬 보정값을 저장합니다. 트래커들의 위치가 고정된
|
||||
트래커의 착용 방향 정렬 보정값을 저장합니다. 트래커들의 위치가 고정된
|
||||
모션 캡처 슈트 같은 것을 사용할 때 유용해요. <b>일반 사용자들에게는 권장되지 않아요!</b>
|
||||
settings-general-tracker_mechanics-save_mounting_reset-enabled-label = 착용 방향 정렬 저장
|
||||
settings-general-tracker_mechanics-use_mag_on_all_trackers = 자력계를 지원하는 모든 IMU 트래커에서 자력계 활성화
|
||||
@@ -457,8 +456,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = 플로어 클립
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = 토 스냅은 발 트래커가 없을 때, 발 트래커가 있는 것처럼 예측해서 움직여주는 기능이에요.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = 풋 플랜트는 발이 바닥에 닿았을 때 바닥과 평평하게 회전시켜 줘요.
|
||||
settings-general-fk_settings-leg_fk = 발 트래킹
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = 까치발을 들어 발 트래커의 착용 방향 정렬을 활성화하기
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = 발 트래커 착용 방향 정렬
|
||||
settings-general-fk_settings-enforce_joint_constraints = 골격 한계
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = 상수 강제 적용
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = 관절의 회전 각도를 제한합니다
|
||||
@@ -526,6 +523,9 @@ settings-general-gesture_control-numberTrackersOverThreshold-description = 몸
|
||||
## Appearance settings
|
||||
|
||||
settings-interface-appearance = 모양
|
||||
settings-general-interface-dev_mode = 개발자 모드
|
||||
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
|
||||
settings-general-interface-dev_mode-label = 개발자 모드
|
||||
settings-general-interface-theme = 컬러 테마
|
||||
settings-general-interface-show-navbar-onboarding = 내비게이션 바에 "{ navbar-onboarding }" 표시
|
||||
settings-general-interface-show-navbar-onboarding-description = 이 설정은 내비게이션 바에 "{ navbar-onboarding }" 버튼을 표시할 지 결정해요.
|
||||
@@ -561,9 +561,6 @@ settings-general-interface-connected_trackers_warning-label = 종료 시 작동
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-dev_mode = 개발자 모드
|
||||
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
|
||||
settings-general-interface-dev_mode-label = 개발자 모드
|
||||
settings-general-interface-use_tray = 작업 표시줄로 최소화
|
||||
settings-general-interface-use_tray-description = SlimeVR 서버를 닫지 않고 창만 닫을 수 있게 하여 사용 시 항상 GUI를 띄워 놓을 필요가 없게 해요.
|
||||
settings-general-interface-use_tray-label = 작업 표시줄로 최소화
|
||||
@@ -595,7 +592,6 @@ settings-serial-factory_reset-warning =
|
||||
계속하면 Wi-Fi와 캘리브레이션 정보도 <b>모두 삭제됩니다!</b>
|
||||
settings-serial-factory_reset-warning-ok = 네! 알고 있어요.
|
||||
settings-serial-factory_reset-warning-cancel = 취소
|
||||
settings-serial-get_infos = 정보 가져오기
|
||||
settings-serial-serial_select = 시리얼 포트 선택
|
||||
settings-serial-auto_dropdown_item = 자동
|
||||
settings-serial-get_wifi_scan = WiFi 검색
|
||||
@@ -696,6 +692,9 @@ settings-osc-vmc-mirror_tracking = 움직임 좌우 반전
|
||||
settings-osc-vmc-mirror_tracking-description = 움직임을 수평 방향으로 반전시킵니다.
|
||||
settings-osc-vmc-mirror_tracking-label = 움직임 좌우 반전
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = 고급
|
||||
@@ -827,7 +826,6 @@ onboarding-connect_tracker-next = 트래커를 모두 연결했어요
|
||||
|
||||
onboarding-calibration_tutorial = IMU 보정 튜토리얼
|
||||
onboarding-calibration_tutorial-subtitle = 트래커 틀어짐을 줄이는 데 도움이 될 거예요!
|
||||
onboarding-calibration_tutorial-description = 매번 트래커의 전원을 켤 때마다 평평한 바닥에 트래커를 두고 잠시 기다려서 트래커를 보정해야 해요. 이번엔 "{ onboarding-calibration_tutorial-calibrate }"를 눌러서 직접 보정해 보죠. <b>(트래커를 움직이지 마세요!)</b>
|
||||
onboarding-calibration_tutorial-calibrate = 트래커들을 모두 올려뒀어요
|
||||
onboarding-calibration_tutorial-status-waiting = 대기 중
|
||||
onboarding-calibration_tutorial-status-calibrating = 보정 중
|
||||
@@ -985,8 +983,6 @@ onboarding-automatic_mounting-mounting_reset-title = 착용 방향 정렬
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 팔, 다리를 구부린 다음 상체를 앞으로 기울여서 마치 스키를 타는 것처럼 몸을 굽혀 낮추세요.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. "착용 방향 재설정" 버튼을 누르고 착용 방향이 재설정될 때 까지 3초간 기다려주세요.
|
||||
onboarding-automatic_mounting-preparation-title = 준비
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. 팔을 몸에 붙이고 똑바로 서 주세요
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. "전체 정렬" 버튼을 누르고 트래커가 정렬될 때까지 3초간 기다려주세요.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = 트래커를 착용해주세요
|
||||
onboarding-automatic_mounting-put_trackers_on-description = 트래커의 착용 방향을 보정하기 위해 방금 할당한 트래커들을 사용할 거예요. 모든 트래커를 착용했다면 오른쪽 그림에서 각각의 트래커가 어떤 위치에 있는지 확인할 수 있어요.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = 모든 트래커를 착용했어요
|
||||
@@ -995,15 +991,10 @@ 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 = 신체 비율 파일
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
@@ -1060,7 +1051,7 @@ onboarding-automatic_proportions-recording-description-p0 = 기록하는 중...
|
||||
onboarding-automatic_proportions-recording-description-p1 = 아래에 표시된 동작을 따라 하세요
|
||||
# Each line of text is a different list item
|
||||
onboarding-automatic_proportions-recording-steps =
|
||||
자리에서 똑바로 일어나서, 머리를 원을 그리듯이 움직이세요.
|
||||
자리에서 똑바로 일어나서, 머리를 원을 그리듯이 움직이세요.
|
||||
등을 앞으로 구부리고 스쿼트를 하듯이 몸을 낮추세요. 그대로 왼쪽을 바라본 다음 오른쪽을 바라보세요.
|
||||
상체를 왼쪽(시계 반대 방향)으로 비틀어서 바닥을 향해 손을 뻗으세요.
|
||||
상체를 오른쪽(시계 방향)으로 비틀어서 바닥을 향해 손을 뻗으세요.
|
||||
@@ -1108,6 +1099,9 @@ onboarding-scaled_proportions-reset_proportion-description = 키에 따라 신
|
||||
onboarding-scaled_proportions-done-title = 신체 비율 설정됨
|
||||
onboarding-scaled_proportions-done-description = 이제 사용자의 키에 비례한 신체 비율이 사용됩니다.
|
||||
|
||||
## Stay Aligned setup
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
home-no_trackers = 감지되거나 할당된 트래커가 없어요.
|
||||
@@ -1144,68 +1138,8 @@ firmware_tool = DIY 펌웨어 도구
|
||||
firmware_tool-description = DIY 트래커를 설정하고 펌웨어를 쓸 수 있습니다
|
||||
firmware_tool-not_available = 앗, 지금은 펌웨어 툴을 사용할 수 없어요. 나중에 다시 오세요!
|
||||
firmware_tool-not_compatible = 이 서버 버전은 펌웨어 도구를 지원하지 않습니다. 서버를 업데이트해 주세요!
|
||||
firmware_tool-board_step = 보드 선택
|
||||
firmware_tool-board_step-description = 아래의 보드 중 하나를 선택해 주세요.
|
||||
firmware_tool-board_pins_step = 핀 확인
|
||||
firmware_tool-board_pins_step-description =
|
||||
설정된 핀이 정확한지 다시 확인해 주세요.
|
||||
SlimeVR 사용 설명서를 따랐다면 기본값으로도 문제 없을 거에요
|
||||
firmware_tool-board_pins_step-enable_led = LED 켜기
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED 핀
|
||||
.placeholder = LED가 연결된 핀 번호를 입력해 주세요
|
||||
firmware_tool-board_pins_step-battery_type = 배터리 유형 선택
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = 외부 배터리
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = 내부 배터리
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = 내장 MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = 배터리 센서 핀
|
||||
.placeholder = 배터리 센서의 핀 번호를 입력해 주세요
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = 배터리 저항 (옴)
|
||||
.placeholder = 배터리 저항의 값을 입력해 주세요
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = 배터리 쉴드 R1(옴)
|
||||
.placeholder = 배터리 쉴드 R1 저항값을 입력해 주세요
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = 배터리 쉴드 R2(옴)
|
||||
.placeholder = 배터리 쉴드 R2 저항값을 입력해 주세요
|
||||
firmware_tool-add_imus_step = IMU 설정
|
||||
firmware_tool-add_imus_step-description =
|
||||
트래커가 사용하는 IMU들을 추가해 주세요
|
||||
SlimeVR 사용 설명서를 따랐다면 기본값으로도 문제 없을 거에요
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU 유형
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = IMU 유형을 선택해 주세요
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = IMU 회전각 (도)
|
||||
.placeholder = IMU의 회전각
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL 핀
|
||||
.placeholder = SCL 핀의 번호
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA 핀
|
||||
.placeholder = SDA 핀의 번호
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT 핀
|
||||
.placeholder = INT 핀의 번호
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = 추가 트래커
|
||||
firmware_tool-add_imus_step-show_less = 간단하게
|
||||
firmware_tool-add_imus_step-show_more = 자세하게
|
||||
firmware_tool-add_imus_step-add_more = 더 많은 IMU 추가
|
||||
firmware_tool-select_firmware_step = 펌웨어 버전 선택
|
||||
firmware_tool-select_firmware_step-description = 사용하고자 하는 펌웨어 버전을 선택해 주세요
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = 제 3자 펌웨어 표시하기
|
||||
firmware_tool-flash_method_step = 펌웨어 플래시 방식
|
||||
firmware_tool-flash_method_step-description = 펌웨어를 트래커에 플래시할 방법을 선택해 주세요
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Wi-Fi를 이용하여 무선으로 트래커의 펌웨어를 업데이트합니다. 이미 설정을 완료한 트래커들에만 사용할 수 있어요.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = USB 케이블을 이용하여 트래커를 업데이트합니다.
|
||||
firmware_tool-flashbtn_step = BOOT 버튼 누르기
|
||||
firmware_tool-flashbtn_step-description = 다음 단계로 진행하기 전 몇 가지 작업을 해야 해요
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = 트래커를 끄고, 케이스를 제거하고 (만약 있다면), 이 컴퓨터에 USB 케이블을 연결한 후 SlimeVR 보드 버전에 따라 해당하는 작업을 수행해 주세요:
|
||||
@@ -1227,16 +1161,12 @@ firmware_tool-build_step = 빌드 중
|
||||
firmware_tool-build_step-description = 펌웨어를 빌드하는 중입니다. 잠시만 기다려 주세요
|
||||
firmware_tool-flashing_step = 펌웨어 쓰는 중
|
||||
firmware_tool-flashing_step-description = 트래커에 펌웨어를 쓰는 중입니다. 화면의 지시를 따라 주세요
|
||||
firmware_tool-flashing_step-warning = 별도의 지시가 없는 경우, 트래커를 선에서 분리하거나 업로드 중 전원을 끄지 말아 주세요. 트래커를 사용하지 못 하게 될 수도 있습니다
|
||||
firmware_tool-flashing_step-flash_more = 더 많은 트래커에 펌웨어 쓰기
|
||||
firmware_tool-flashing_step-exit = 나가기
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = 빌드 폴더 만드는 중
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = 펌웨어 다운로드 중
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = 펌웨어 추출 중
|
||||
firmware_tool-build-SETTING_UP_DEFINES = 매크로 상수 정의하는 중
|
||||
firmware_tool-build-BUILDING = 펌웨어 빌드 중
|
||||
firmware_tool-build-SAVING = 빌드 저장 중
|
||||
firmware_tool-build-DONE = 빌드 완료
|
||||
@@ -1245,7 +1175,6 @@ firmware_tool-build-ERROR = 펌웨어를 빌드할 수 없음
|
||||
## Firmware update status
|
||||
|
||||
firmware_update-status-DOWNLOADING = 펌웨어 다운로드 중
|
||||
firmware_update-status-NEED_MANUAL_REBOOT = 트래커의 전원을 껐다 켜 주세요
|
||||
firmware_update-status-AUTHENTICATING = MCU와 연결 시도 중
|
||||
firmware_update-status-UPLOADING = 펌웨어 업로드 중
|
||||
firmware_update-status-SYNCING_WITH_MCU = MCU와 동기화 중
|
||||
|
||||
@@ -355,7 +355,6 @@ 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 }
|
||||
@@ -541,8 +540,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Neleidžia pėdo
|
||||
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.
|
||||
@@ -595,6 +592,9 @@ settings-general-gesture_control-trackers =
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
|
||||
@@ -394,9 +394,6 @@ 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>
|
||||
|
||||
@@ -422,7 +419,6 @@ settings-serial-factory_reset-warning =
|
||||
Som betyr at Wi-Fi og kalibrerings innstillingene dine </b>vil bli tapt!</b>
|
||||
settings-serial-factory_reset-warning-ok = Jeg vet hva jeg driver med
|
||||
settings-serial-factory_reset-warning-cancel = Avslutt
|
||||
settings-serial-get_infos = Få info
|
||||
settings-serial-serial_select = Velg en serieport
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
|
||||
@@ -477,6 +473,9 @@ settings-osc-vrchat-network-trackers-elbows = Albuer
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
|
||||
@@ -113,12 +113,12 @@ skeleton_bone-NONE = Geen
|
||||
skeleton_bone-HEAD = Hoofdverschuiving
|
||||
skeleton_bone-HEAD-desc =
|
||||
Dit is de afstand tussen je headset en het midden van je hoofd.
|
||||
Om dit aan te passen, schud je je hoofd naar links en rechts alsof je 'nee' zegt,
|
||||
Om dit aan te passen, schud je je hoofd naar links en rechts alsof je 'nee' zegt,
|
||||
pas het aan totdat beweging van de andere trackers te verwaarlozen is.
|
||||
skeleton_bone-NECK = Neklengte
|
||||
skeleton_bone-NECK-desc =
|
||||
Dit is de afstand tussen het midden van je hoofd en de basis van je nek.
|
||||
Om dit aan te passen, beweeg je je hoofd op en neer alsof je knikt, of kantel je je hoofd
|
||||
Om dit aan te passen, beweeg je je hoofd op en neer alsof je knikt, of kantel je je hoofd
|
||||
naar links en rechts. Wijzig de positie totdat beweging in andere trackers verwaarloosbaar is.
|
||||
skeleton_bone-torso_group = Romp lengte
|
||||
skeleton_bone-torso_group-desc =
|
||||
@@ -128,7 +128,7 @@ skeleton_bone-torso_group-desc =
|
||||
skeleton_bone-UPPER_CHEST = Bovenborst Lengte
|
||||
skeleton_bone-UPPER_CHEST-desc =
|
||||
Dit is de afstand tussen de basis van je nek en het midden van je borst.
|
||||
Om dit aan te passen, stel je de torso-lengte correct af en pas je deze aan in verschillende houdingen
|
||||
Om dit aan te passen, stel je de torso-lengte correct af en pas je deze aan in verschillende houdingen
|
||||
(zitten, bukken, liggen, enz.) totdat je virtuele ruggengraat overeenkomt met je echte.
|
||||
skeleton_bone-CHEST_OFFSET = Borstoffset
|
||||
skeleton_bone-CHEST_OFFSET-desc =
|
||||
@@ -137,12 +137,12 @@ skeleton_bone-CHEST_OFFSET-desc =
|
||||
skeleton_bone-CHEST = Borstafstand
|
||||
skeleton_bone-CHEST-desc =
|
||||
Dit is de afstand van het midden van je borst tot het midden van je ruggengraat.
|
||||
Om dit aan te passen, stel je de torso-lengte correct af en pas je deze aan in verschillende houdingen
|
||||
Om dit aan te passen, stel je de torso-lengte correct af en pas je deze aan in verschillende houdingen
|
||||
(zitten, bukken, liggen, enz.) totdat je virtuele ruggengraat overeenkomt met je echte.
|
||||
skeleton_bone-WAIST = Taille lengte
|
||||
skeleton_bone-WAIST-desc =
|
||||
Dit is de afstand van het midden van je ruggengraat tot je navel.
|
||||
Om dit aan te passen, stel je de torso-lengte correct af en pas je deze aan in verschillende houdingen
|
||||
Om dit aan te passen, stel je de torso-lengte correct af en pas je deze aan in verschillende houdingen
|
||||
(zitten, bukken, liggen, enz.) totdat je virtuele ruggengraat overeenkomt met je echte.
|
||||
skeleton_bone-HIP = Heuplengte
|
||||
skeleton_bone-HIP-desc =
|
||||
@@ -200,7 +200,7 @@ skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
skeleton_bone-arm_group = Armlengte
|
||||
skeleton_bone-arm_group-desc =
|
||||
Dit is de afstand van je schouders tot je polsen.
|
||||
Om dit aan te passen, pas je de schouderafstand correct aan, stel je Handafstand Y in op 0,
|
||||
Om dit aan te passen, pas je de schouderafstand correct aan, stel je Handafstand Y in op 0,
|
||||
en pas je deze aan totdat je handtrackers op één lijn liggen met je polsen.
|
||||
skeleton_bone-UPPER_ARM = Bovenarmlengte
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
@@ -215,15 +215,15 @@ skeleton_bone-LOWER_ARM-desc =
|
||||
skeleton_bone-HAND_Y = Afstand hand Y
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
Dit is de verticale afstand van je polsen tot het midden van je hand.
|
||||
Om dit aan te passen voor motion capture, pas je de armlengte correct aan
|
||||
en pas je deze aan totdat je handtrackers verticaal uitgelijnd zijn met het midden van je handen.
|
||||
Wil je het aanpassen voor elleboogtracking vanaf je controllers,
|
||||
Om dit aan te passen voor motion capture, pas je de armlengte correct aan
|
||||
en pas je deze aan totdat je handtrackers verticaal uitgelijnd zijn met het midden van je handen.
|
||||
Wil je het aanpassen voor elleboogtracking vanaf je controllers,
|
||||
stel dan de armlengte in op 0 en pas je deze aan totdat je elleboogtrackers verticaal op één lijn liggen met je polsen.
|
||||
skeleton_bone-HAND_Z = Afstand hand Z
|
||||
skeleton_bone-HAND_Z-desc =
|
||||
Dit is de horizontale afstand van je polsen tot het midden van je hand.
|
||||
Als je dit wilt aanpassen voor motion capture, stel je deze in op 0.
|
||||
Wil je het aanpassen voor elleboogtracking vanaf je controllers, stel dan de armlengte in op 0
|
||||
Wil je het aanpassen voor elleboogtracking vanaf je controllers, stel dan de armlengte in op 0
|
||||
en pas je deze aan totdat je elleboogtrackers horizontaal op één lijn liggen met je polsen.
|
||||
skeleton_bone-ELBOW_OFFSET = Elleboogoffset
|
||||
skeleton_bone-ELBOW_OFFSET-desc = Dit kan worden aangepast om je virtuele elleboogtrackers omhoog of omlaag te verplaatsen, zodat wordt voorkomen dat VRChat per ongeluk een elleboogtracker aan de borst koppelt.
|
||||
@@ -402,7 +402,6 @@ 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-low-battery = Kan niet worden bijgewerkt. Batterij lager dan 50%
|
||||
tracker-settings-update-up_to_date = Up to date.
|
||||
tracker-settings-update-blocked = Update is niet beschikbaar. Er zijn geen andere versies beschikbaar.
|
||||
@@ -607,8 +606,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description =
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap probeert de rotatie van uw voeten te raden als voet-trackers niet worden gebruikt.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-plant roteert je voeten zodat ze evenwijdig aan de grond zijn wanneer ze in contact zijn.
|
||||
settings-general-fk_settings-leg_fk = Been tracking
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = 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
|
||||
@@ -720,9 +717,6 @@ settings-general-interface-connected_trackers_warning-label = Waarschuwing voor
|
||||
## 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
|
||||
@@ -764,7 +758,6 @@ settings-serial-factory_reset-warning =
|
||||
Wat betekent dat Wi-Fi en kalibratie-instellingen <b>allemaal verloren gaan!</b>
|
||||
settings-serial-factory_reset-warning-ok = Ik weet wat ik doe
|
||||
settings-serial-factory_reset-warning-cancel = Annuleren
|
||||
settings-serial-get_infos = Informatie ophalen
|
||||
settings-serial-serial_select = Selecteer een seriële poort
|
||||
settings-serial-auto_dropdown_item = Automatisch
|
||||
settings-serial-get_wifi_scan = WiFi-scan uitvoeren
|
||||
@@ -862,6 +855,9 @@ settings-osc-vmc-mirror_tracking = Gespiegelde tracking
|
||||
settings-osc-vmc-mirror_tracking-description = De tracking horizontaal spiegelen.
|
||||
settings-osc-vmc-mirror_tracking-label = Gespiegelde tracking
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Geavanceerd
|
||||
@@ -877,7 +873,7 @@ 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.
|
||||
<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.
|
||||
@@ -1003,10 +999,10 @@ onboarding-connect_serial-error-modal-no_serial_device_found-desc =
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] Geen trackers
|
||||
[one] 1 tracker
|
||||
*[other] { $amount } trackers
|
||||
} verbonden
|
||||
[0] Geen trackers verbonden
|
||||
[one] 1 tracker verbonden
|
||||
*[other] { $amount } trackers verbonden
|
||||
}
|
||||
onboarding-connect_tracker-next = Ik heb al mijn trackers verbonden
|
||||
|
||||
## Tracker calibration tutorial
|
||||
@@ -1040,10 +1036,10 @@ onboarding-assign_trackers-description = Laten we de bevesteging van je trackers
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } van { $trackers ->
|
||||
[one] 1 tracker
|
||||
*[other] { $trackers } trackers
|
||||
} toegewezen
|
||||
{ $trackers ->
|
||||
[one] { $assigned } van 1 tracker toegewezen
|
||||
*[other] { $assigned } van { $trackers } trackers toegewezen
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Geavanceerde toewijzingslocaties weergeven
|
||||
onboarding-assign_trackers-next = Ik heb alle trackers toegewezen
|
||||
onboarding-assign_trackers-mirror_view = Gespiegelde weergave
|
||||
@@ -1385,68 +1381,8 @@ firmware_tool = DIY firmware-tool
|
||||
firmware_tool-description = Hiermee kan je uw DIY-trackers configureren en flashen
|
||||
firmware_tool-not_available = Oeps, de firmwaretool is momenteel niet beschikbaar. Kom later terug!
|
||||
firmware_tool-not_compatible = De firmwaretool is niet compatibel met deze versie van de server. Gelieve te updaten!
|
||||
firmware_tool-board_step = Selecteer je bord
|
||||
firmware_tool-board_step-description = Selecteer een van de onderstaande borden.
|
||||
firmware_tool-board_pins_step = Controleer de pinnen
|
||||
firmware_tool-board_pins_step-description =
|
||||
Controleer of de geselecteerde pinnen correct zijn.
|
||||
Als je de SlimeVR-documentatie hebt gevolgd, zouden de standaardwaarden correct moeten zijn
|
||||
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:
|
||||
@@ -1475,9 +1411,6 @@ firmware_tool-flashing_step-exit = Sluit
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = De buildmap maken
|
||||
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
|
||||
|
||||
@@ -405,7 +405,6 @@ 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-blocked = Aktualizacja niedostępna. Brak innych wersji
|
||||
@@ -727,9 +726,6 @@ settings-general-interface-connected_trackers_warning-label = Ostrzeżenie o pod
|
||||
## 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
|
||||
@@ -772,7 +768,6 @@ settings-serial-factory_reset-warning =
|
||||
Co oznacza, że ustawienia Wi-Fi i kalibracji <b>zostaną utracone!</b>
|
||||
settings-serial-factory_reset-warning-ok = Wiem co robię
|
||||
settings-serial-factory_reset-warning-cancel = Anuluj
|
||||
settings-serial-get_infos = Uzyskaj informacje
|
||||
settings-serial-serial_select = Wybierz port szeregowy
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Skanuj sieci WiFi
|
||||
@@ -875,6 +870,9 @@ 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
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Zaawansowany
|
||||
@@ -1407,68 +1405,8 @@ 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 =
|
||||
@@ -1500,9 +1438,6 @@ 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
|
||||
|
||||
@@ -281,7 +281,6 @@ tracker-settings-name_section-label = Nome do tracker
|
||||
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
|
||||
@@ -469,8 +468,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Clipping de chã
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Encaixar os dedos do pé, tenta adivinhar a rotação dos seus pés se os trackers dos pés não estiverem em uso.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Pé plantado gira os pés para ficarem paralelos ao chão quando em contato.
|
||||
settings-general-fk_settings-leg_fk = Tracking de pernas
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Ativar o Reset de Posição dos pés ao ficar nas pontas dos pés.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Reset de Posição dos pés
|
||||
settings-general-fk_settings-enforce_joint_constraints = Limites do esqueleto
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Impor limites
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Evita que as articulações rotacionem além de seu limite
|
||||
@@ -583,9 +580,6 @@ settings-general-interface-connected_trackers_warning-label = Aviso de trackers
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Comportamento
|
||||
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-use_tray = Minimizar para bandeja do sistema
|
||||
settings-general-interface-use_tray-description = Permite que você feche a janela sem fechar o servidor do SlimeVR, para que possa continuar usando-o sem que a interface gráfica o incomode.
|
||||
settings-general-interface-use_tray-label = Minimizar para a bandeja do sistema
|
||||
@@ -624,7 +618,6 @@ settings-serial-factory_reset-warning =
|
||||
Que significa que as opções de Wi-Fi e calibrações <b>vão ser todos perdidos!</b>
|
||||
settings-serial-factory_reset-warning-ok = Eu sei o que estou fazendo
|
||||
settings-serial-factory_reset-warning-cancel = Cancelar
|
||||
settings-serial-get_infos = Obter informações
|
||||
settings-serial-serial_select = Selecione uma porta serial
|
||||
settings-serial-auto_dropdown_item = Auto
|
||||
settings-serial-get_wifi_scan = Obter varredura WiFi
|
||||
@@ -726,6 +719,9 @@ settings-osc-vmc-mirror_tracking = Espelhar rastreamento
|
||||
settings-osc-vmc-mirror_tracking-description = Espelhar o rastreamento horizontalmente.
|
||||
settings-osc-vmc-mirror_tracking-label = Espelhar rastreamento
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Avançado
|
||||
@@ -856,17 +852,16 @@ onboarding-connect_tracker-connection_status-done = Conectado ao servidor
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] No trackers
|
||||
[one] 1 tracker
|
||||
*[other] { $amount } trackers
|
||||
} connected
|
||||
[0] No trackers connected
|
||||
[one] 1 tracker connected
|
||||
*[other] { $amount } trackers connected
|
||||
}
|
||||
onboarding-connect_tracker-next = Eu conectei todos os meus trackers
|
||||
|
||||
## Tracker calibration tutorial
|
||||
|
||||
onboarding-calibration_tutorial = Tutorial de Calibração IMU.
|
||||
onboarding-calibration_tutorial-subtitle = Isso ajudará a reduzir o drift dos trackers!
|
||||
onboarding-calibration_tutorial-description = Cada vez que ligar seus trackers, eles precisam ficar parados por um momento em uma superfície plana para calibrar. Vamos fazer a mesma coisa clicando no botão "{ onboarding-calibration_tutorial-calibrate }", <b>não os mova!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Eu coloquei meus trackers na mesa
|
||||
onboarding-calibration_tutorial-status-waiting = Esperando por você
|
||||
onboarding-calibration_tutorial-status-calibrating = Calibrando
|
||||
@@ -893,10 +888,10 @@ onboarding-assign_trackers-description = Vamos escolher onde cada tracker vai. C
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } of { $trackers ->
|
||||
[one] 1 tracker
|
||||
*[other] { $trackers } trackers
|
||||
} assigned
|
||||
{ $trackers ->
|
||||
[one] { $assigned } of 1 tracker assigned
|
||||
*[other] { $assigned } of { $trackers } trackers assigned
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Mostrar locais de atribuição avançados
|
||||
onboarding-assign_trackers-next = Atribui todos os trackers
|
||||
onboarding-assign_trackers-mirror_view = Inverter visão
|
||||
@@ -1193,66 +1188,8 @@ firmware_tool = Ferramenta de Firmware DIY
|
||||
firmware_tool-description = Permite você configurar e fazer upload do firmware em seu tracker DIY
|
||||
firmware_tool-not_available = Oops, a ferramenta de firmware não está disponível no momento. Volte novamente mais tarde!
|
||||
firmware_tool-not_compatible = A ferramenta de firmware não é compativel com essa versão do servidor. Por favor, atualize o seu servidor!
|
||||
firmware_tool-board_step = Selecione sua placa
|
||||
firmware_tool-board_step-description = Selecione uma das placas listadas abaixo
|
||||
firmware_tool-board_pins_step = Verifique os pinos
|
||||
firmware_tool-board_pins_step-description =
|
||||
Verifique se os pinos selecionados estão corretos.
|
||||
Se você seguiu a documentação do SlimeVR, os valores pré-definidos devem estar corretos
|
||||
firmware_tool-board_pins_step-enable_led = Ligar LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Pino do LED
|
||||
.placeholder = Digite o endereço do pino do LED
|
||||
firmware_tool-board_pins_step-battery_type = Selecione o tipo de bateria
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Bateria externa
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Bateria Interna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 Interna
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Pino do sensor da bateria
|
||||
.placeholder = Digite o endereço do pino do sensor da bateria
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Resistor da bateria (Ohms)
|
||||
.placeholder = Digite o valor do resistor da bateria
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Proteção da bateria R1
|
||||
.placeholder = Digite o valor da proteção da bateria R1
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Proteção da bateria R2
|
||||
.placeholder = Digite o valor da proteção da bateria R2
|
||||
firmware_tool-add_imus_step = Declare suas IMUs
|
||||
firmware_tool-add_imus_step-description = Se você seguiu a documentação do SlimeVR, os valores pré-definidos devem estar corretos
|
||||
firmware_tool-add_imus_step-imu_type-label = Tipo de IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Selecione o tipo de IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Rotação da IMU (Graus)
|
||||
.placeholder = O ângulo de rotação do IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = Pino SCL
|
||||
.placeholder = Endereço do pino SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = Pino SDA
|
||||
.placeholder = Endereço do Pino SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = Pino INT
|
||||
.placeholder = Endereço do pino INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Tracker opcional
|
||||
firmware_tool-add_imus_step-show_less = Mostrar menos
|
||||
firmware_tool-add_imus_step-show_more = Mostrar mais
|
||||
firmware_tool-add_imus_step-add_more = Adicionar mais IMU's
|
||||
firmware_tool-select_firmware_step = Seleciona a versão do firmware
|
||||
firmware_tool-select_firmware_step-description = Por favor, escolha a versão do firmware deseja utilizar
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Mostrar firmwares de terceiros
|
||||
firmware_tool-flash_method_step = Método de upload
|
||||
firmware_tool-flash_method_step-description = Por favor, selecione o método de upload que deseja utilizar
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Use o método "over the air". Seu tracker usará o Wi-Fi para atualizar o firmware. Apenas funciona em trackers já configurados
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = Use um cabo USB para atualizar seu tracker
|
||||
firmware_tool-flashbtn_step = Pressione o botão de boot
|
||||
firmware_tool-flashbtn_step-description = Antes de ir para o próximo passo, aqui estão algumas etapas que você necessita fazer
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Deslige o tracker, tire de case (se tiver), conecte o cabo USB nesse computador, e tente seguir os seguintes passos de acordo com a revisão de sua placa SlimeVR
|
||||
@@ -1280,9 +1217,6 @@ firmware_tool-flashing_step-exit = Sair
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Criando a pasta de compilação
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Baixando o firmware
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extraindo o firmware
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Configurando os defines
|
||||
firmware_tool-build-BUILDING = Compilando o firmware
|
||||
firmware_tool-build-SAVING = Salvando a compilação
|
||||
firmware_tool-build-DONE = Compilação concluída
|
||||
|
||||
@@ -147,7 +147,7 @@ skeleton_bone-WAIST-desc =
|
||||
skeleton_bone-HIP = Длина таза
|
||||
skeleton_bone-HIP-desc =
|
||||
Это расстояние от вашего пупка до ваших бедер.
|
||||
Чтобы откалибровать его, убедитесь, что "Длина туловища" задана верно, и изменяйте значение в различных
|
||||
Чтобы откалибровать его, убедитесь, что "Длина туловища" задана верно, и изменяйте значение в различных
|
||||
позициях (сидя, наклонившись, лёжа и т.д.), пока ваш виртуальный позвоночник не совпадет с реальным.
|
||||
skeleton_bone-HIP_OFFSET = Смещение таза
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
@@ -161,7 +161,7 @@ skeleton_bone-HIPS_WIDTH-desc =
|
||||
skeleton_bone-leg_group = Длина ноги
|
||||
skeleton_bone-leg_group-desc =
|
||||
Это расстояние от ваших бёдер до ваших ступней.
|
||||
Чтобы откалибровать его, убедитесь, что "Длина туловища" задана верно,
|
||||
Чтобы откалибровать его, убедитесь, что "Длина туловища" задана верно,
|
||||
и изменяйте значение, пока ваши виртуальные ступни не совпадут с реальными.
|
||||
skeleton_bone-UPPER_LEG = Длина бедра
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
@@ -182,7 +182,7 @@ skeleton_bone-FOOT_SHIFT = Смещение стопы
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Это горизонтальное расстояние от ваших колен до ваших лодыжек.
|
||||
Оно отвечает за смещение голеней назад, когда вы стоите прямо.
|
||||
Чтобы откалибровать его, установите "Длину ноги" равной 0, выполните полный сброс, и
|
||||
Чтобы откалибровать его, установите "Длину ноги" равной 0, выполните полный сброс, и
|
||||
изменяйте значение, пока ваши виртуальные ступни не сравняются с центром лодыжек.
|
||||
skeleton_bone-SKELETON_OFFSET = Смещение скелета
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
@@ -402,7 +402,6 @@ tracker-settings-name_section-label = Имя трекера
|
||||
tracker-settings-forget = Забыть трекер
|
||||
tracker-settings-forget-description = Убирает трекер с SlimeVR Сервер и запрещает ему подключаться к серверу до того как он будет перезапущен. Конфигурация трекера не будет потеряна.
|
||||
tracker-settings-forget-label = Забыть трекер
|
||||
tracker-settings-update-unavailable = Невозможно обновить (DIY)
|
||||
tracker-settings-update-low-battery = Невозможно обновить. Заряд батареи менее 50%
|
||||
tracker-settings-update-up_to_date = Обновлено
|
||||
tracker-settings-update-available = { $versionName } теперь доступна
|
||||
@@ -607,8 +606,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Привязка
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap пытается угадать вращение ваших ступней, если трекеры для них не используются.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Foot-Plant поворачивает ваши ступни так, чтобы они были параллельны земле при контакте.
|
||||
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 = Предотвращает вращение суставов за пределы их возможностей
|
||||
@@ -724,9 +721,6 @@ settings-general-interface-connected_trackers_warning-label = Предупреж
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Поведение
|
||||
settings-general-interface-dev_mode = Режим разработчика
|
||||
settings-general-interface-dev_mode-description = Этот режим может быть полезен, если вам нужны подробные данные или для взаимодействия с подключенными трекерами на более продвинутом уровне.
|
||||
settings-general-interface-dev_mode-label = Режим разработчика
|
||||
settings-general-interface-use_tray = Свернуть в системный трей
|
||||
settings-general-interface-use_tray-description = Позволяет закрыть окно, не закрывая сервер SlimeVR, так что вы можете продолжать использовать его, не беспокоясь о графическом интерфейсе.
|
||||
settings-general-interface-use_tray-label = Свернуть в системный трей
|
||||
@@ -764,7 +758,6 @@ settings-serial-factory_reset-warning =
|
||||
Это означает, что Wi-Fi и настройки калибровки <b>будут потеряны!</b>
|
||||
settings-serial-factory_reset-warning-ok = Я знаю, что я делаю
|
||||
settings-serial-factory_reset-warning-cancel = Отмена
|
||||
settings-serial-get_infos = Получить информацию
|
||||
settings-serial-serial_select = Выбрать серийный порт
|
||||
settings-serial-auto_dropdown_item = Авто
|
||||
settings-serial-get_wifi_scan = Получить сканирование Wi-Fi
|
||||
@@ -868,6 +861,9 @@ settings-osc-vmc-mirror_tracking = Отзеркалить отслеживани
|
||||
settings-osc-vmc-mirror_tracking-description = Отзеркалить отслеживание горизонтально.
|
||||
settings-osc-vmc-mirror_tracking-label = Отзеркалить отслеживание
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Продвинутые
|
||||
@@ -1021,7 +1017,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 = Калибровка
|
||||
@@ -1342,13 +1337,10 @@ 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 = Настройка функции "Оставаться выровненным" завершена!
|
||||
@@ -1397,68 +1389,8 @@ firmware_tool = Инструмент Прошивки DIY
|
||||
firmware_tool-description = Позволяет вам настроить и прошить ваши DIY трекеры
|
||||
firmware_tool-not_available = Упс! В данный момент инструмент прошивки недоступен. Возвращайтесь позже!
|
||||
firmware_tool-not_compatible = Средство прошивки несовместимо с этой версией сервера. Пожалуйста, обновите свой сервер!
|
||||
firmware_tool-board_step = Выберите вашу плату
|
||||
firmware_tool-board_step-description = Выберите одну из перечисленных ниже плат
|
||||
firmware_tool-board_pins_step = Проверьте контакты
|
||||
firmware_tool-board_pins_step-description =
|
||||
Пожалуйста, проверьте правильность выбранных контактов.
|
||||
Если вы следовали документации SlimeVR, значения по умолчанию должны быть корректными
|
||||
firmware_tool-board_pins_step-enable_led = Включить светодиод
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = Контакт светодиода
|
||||
.placeholder = Введите адрес контакта светодиода
|
||||
firmware_tool-board_pins_step-battery_type = Выберите тип аккумуляторной батареи
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = Внешняя АКБ
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = Внутренняя АКБ
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = Внутренний MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = Контакт датчика АКБ
|
||||
.placeholder = Введите адрес контакта датчика АКБ
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = Резистор АКБ (Ом)
|
||||
.placeholder = Введите величину резистора АКБ
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = Battery Shield R1 (Ом)
|
||||
.placeholder = Введите значение R1 Battery Shield
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = Battery Shield R2 (Ом)
|
||||
.placeholder = Введите значение R2 Battery Shield
|
||||
firmware_tool-add_imus_step = Укажите ваши IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
Пожалуйста, добавьте IMU, которые установлены на вашем трекере
|
||||
Если вы следовали документации SlimeVR, значения по умолчанию должны быть корректными
|
||||
firmware_tool-add_imus_step-imu_type-label = Тип IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = Выберите тип IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = Поворот IMU (градусы)
|
||||
.placeholder = Угол поворота IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = Контакт SCL
|
||||
.placeholder = Адрес контакта SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = Контакт SDA
|
||||
.placeholder = Адрес контакта SDA
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = Контакт INT
|
||||
.placeholder = Адрес контакта INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = Опциональный трекер
|
||||
firmware_tool-add_imus_step-show_less = Свернуть
|
||||
firmware_tool-add_imus_step-show_more = Развернуть
|
||||
firmware_tool-add_imus_step-add_more = Добавить больше IMU
|
||||
firmware_tool-select_firmware_step = Выбрать версию прошивки
|
||||
firmware_tool-select_firmware_step-description = Пожалуйста, выберите версию прошивки, которую вы хотите использовать
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = Показать прошивки сторонних производителей
|
||||
firmware_tool-flash_method_step = Способ прошивки
|
||||
firmware_tool-flash_method_step-description = Пожалуйста, выберите способ прошивки, который вы хотите использовать
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = Использовать метод обновления "по воздуху". Ваш трекер будет использовать Wi-Fi для обновления прошивки. Работает только с уже настроенными трекерами.
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Последовательный порт
|
||||
.description = Использовать подключение по USB кабелю для обновления вашего трекера.
|
||||
firmware_tool-flashbtn_step = Нажмите кнопку загрузки
|
||||
firmware_tool-flashbtn_step-description = Прежде чем перейти к следующему шагу, вам нужно сделать ещё несколько действий
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = Отключите трекер, извлеките его из корпуса (если он есть), подключите USB кабель к компьютеру, затем выполните одно из следующих действий в соответствии с ревизией вашей платы от SlimeVR:
|
||||
@@ -1487,9 +1419,6 @@ firmware_tool-flashing_step-exit = Выйти
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Создание папки сборки
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Загрузка прошивки
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Извлечение прошивки
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Настройка определений
|
||||
firmware_tool-build-BUILDING = Сборка прошивки
|
||||
firmware_tool-build-SAVING = Сохранение сборки
|
||||
firmware_tool-build-DONE = Сборка завершена
|
||||
|
||||
@@ -103,7 +103,7 @@ skeleton_bone-HEAD-desc =
|
||||
skeleton_bone-NECK = Halsens längd
|
||||
skeleton_bone-NECK-desc =
|
||||
Detta är distansen från mittpunkten av ditt huvud till din nackes bas.
|
||||
För att justera det, skaka ditt huvud upp och ner, som om att du säger ja eller luta ditt
|
||||
För att justera det, skaka ditt huvud upp och ner, som om att du säger ja eller luta ditt
|
||||
huvud höger eller vänster och modifiera det tills någon rörelse i andra rörelsesensorer är obetydlig.
|
||||
skeleton_bone-torso_group = Halsens längd
|
||||
skeleton_bone-torso_group-desc =
|
||||
@@ -146,7 +146,7 @@ skeleton_bone-HIPS_WIDTH-desc =
|
||||
skeleton_bone-leg_group = Benlängd
|
||||
skeleton_bone-leg_group-desc =
|
||||
Detta är distansen från dina höfter till dina fötter.
|
||||
För att justera det, justera din Torso-längd ordentligt och modifiera
|
||||
För att justera det, justera din Torso-längd ordentligt och modifiera
|
||||
den tills dina virtuella fötter är på samma nivå som dina riktiga.
|
||||
skeleton_bone-UPPER_LEG = Längd på övre delen av benet
|
||||
skeleton_bone-UPPER_LEG-desc =
|
||||
@@ -166,7 +166,7 @@ skeleton_bone-FOOT_SHIFT = Fotförskjutning
|
||||
skeleton_bone-FOOT_SHIFT-desc =
|
||||
Detta värde är den horisontella distansen från dina ditt knä till din fotled.
|
||||
den tar hänsyn till att dina underben går baklänges när du står rakt upp.
|
||||
För att justera det, ställ fotens längd till 0, utför en full återställning och modifiera den tills
|
||||
För att justera det, ställ fotens längd till 0, utför en full återställning och modifiera den tills
|
||||
dina virtuella fötter matchar mitten av dina fotleder.
|
||||
skeleton_bone-SKELETON_OFFSET = Skelettets förskjutning
|
||||
skeleton_bone-SKELETON_OFFSET-desc =
|
||||
@@ -186,7 +186,7 @@ skeleton_bone-SHOULDERS_WIDTH-desc =
|
||||
skeleton_bone-arm_group = Armlängd
|
||||
skeleton_bone-arm_group-desc =
|
||||
Detta är avståndet från dina axlar till dina handleder.
|
||||
För att justera det, justera Avståndet mellan axlar ordentligt, ändra Handavstånd Y
|
||||
För att justera det, justera Avståndet mellan axlar ordentligt, ändra Handavstånd Y
|
||||
till 0 och modifiera tills dina hand-sensorer är i linje med dina handleder.
|
||||
skeleton_bone-UPPER_ARM = Längd på överarm
|
||||
skeleton_bone-UPPER_ARM-desc =
|
||||
@@ -196,7 +196,7 @@ skeleton_bone-UPPER_ARM-desc =
|
||||
skeleton_bone-LOWER_ARM = Längd på underarm
|
||||
skeleton_bone-LOWER_ARM-desc =
|
||||
Detta är avståndet från dina armbågar till dina handleder.
|
||||
För att justera det, justera Armlängd ordentligt och modifiera det
|
||||
För att justera det, justera Armlängd ordentligt och modifiera det
|
||||
tills dina armbågs-spårare matchar med dina riktiga armbågar.
|
||||
skeleton_bone-HAND_Y = Handavstånd Y
|
||||
skeleton_bone-HAND_Y-desc =
|
||||
@@ -388,7 +388,6 @@ tracker-settings-name_section-label = Sensorns namn
|
||||
tracker-settings-forget = Glöm spårning
|
||||
tracker-settings-forget-description = Tar bort trackern från SlimeVR-servern och förhindrar den från att ansluta till den tills servern startas om. Konfigurationen av trackern kommer inte att gå förlorad.
|
||||
tracker-settings-forget-label = Glöm spårning
|
||||
tracker-settings-update-unavailable = Kan ej uppdateras (DIY)
|
||||
tracker-settings-update-low-battery = Kan ej uppdatera. Batteriet är under 50%
|
||||
tracker-settings-update-up_to_date = Uppdaterad
|
||||
tracker-settings-update-available = { $versionName } är nu tillgänlig
|
||||
@@ -576,8 +575,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Floor-clip kan m
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Toe-snap försöker gissa rotationen på dina fötter om fotspårare inte används.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Fotplatta roterar fötterna så att de är parallella med marken vid kontakt.
|
||||
settings-general-fk_settings-leg_fk = Spårning av ben
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Aktivera fötterna Montering Återställning genom att gå på tå.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Fötter Montering Återställning
|
||||
settings-general-fk_settings-enforce_joint_constraints = Skelett-gränser
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = Upprätthåll begränsningar
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints-description = Förhindra leder från att rotera förbi dess gränser
|
||||
@@ -675,9 +672,6 @@ settings-general-interface-connected_trackers_warning-label = Varning för uppko
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = Beteende
|
||||
settings-general-interface-dev_mode = Utvecklarläge
|
||||
settings-general-interface-dev_mode-description = Det här läget kan vara användbart om du behöver djupgående data eller vill interagera med anslutna trackers på en mer avancerad nivå.
|
||||
settings-general-interface-dev_mode-label = Utvecklarläge
|
||||
settings-general-interface-use_tray = Minimera till systemfältet
|
||||
settings-general-interface-use_tray-description = Låter dig stänga fönstret utan att stänga SlimeVR-servern så att du kan fortsätta använda den utan att GUI stör dig.
|
||||
settings-general-interface-use_tray-label = Minimera till systemfältet
|
||||
@@ -708,7 +702,6 @@ settings-serial-factory_reset-warning =
|
||||
Det innebär att Wi-Fi- och kalibreringsinställningar <b>kommer att gå förlorade!</b>
|
||||
settings-serial-factory_reset-warning-ok = Jag vet vad jag gör
|
||||
settings-serial-factory_reset-warning-cancel = Avbryt
|
||||
settings-serial-get_infos = Få information
|
||||
settings-serial-serial_select = Välj en serieport
|
||||
settings-serial-auto_dropdown_item = Automatiskt
|
||||
settings-serial-get_wifi_scan = Hämta WiFi-skanning
|
||||
@@ -740,7 +733,7 @@ settings-osc-vrchat-oscqueryEnabled = Aktivera OSCQuery
|
||||
settings-osc-vrchat-oscqueryEnabled-description =
|
||||
OSCQuery känner automatiskt av körande instanser av VRChat och skickar data till OSCQuery.
|
||||
De kan även annonsera sig själva till VRChat för att få HMD och kontrollerdata.
|
||||
För att tillåta samling av HMD och kontrollerdata från VRChat, gå till din huvudmenys inställningar
|
||||
För att tillåta samling av HMD och kontrollerdata från VRChat, gå till din huvudmenys inställningar
|
||||
under "Tracking & IK" och tillåt "Allow Sending Head and Wrist VR Tracking OSC Data"
|
||||
settings-osc-vrchat-oscqueryEnabled-label = Aktivera OSCQuery
|
||||
settings-osc-vrchat-network = Nätverksportar
|
||||
@@ -790,6 +783,9 @@ settings-osc-vmc-mirror_tracking = Spegla spårning
|
||||
settings-osc-vmc-mirror_tracking-description = Spegla spårning horisontellt.
|
||||
settings-osc-vmc-mirror_tracking-label = Spegla spårning
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Avancerad
|
||||
@@ -928,7 +924,6 @@ onboarding-connect_tracker-next = Jag har anslutit alla mina spårare
|
||||
|
||||
onboarding-calibration_tutorial = Handledning för IMU-kalibrering
|
||||
onboarding-calibration_tutorial-subtitle = Detta kommer att bidra till att minska spårarens drift!
|
||||
onboarding-calibration_tutorial-description = Varje gång du slår på dina trackers måste de vila en stund på en plan yta för att kalibreras. Låt oss göra samma sak genom att klicka på knappen "{ onboarding-calibration_tutorial-calibrate }", <b>rör dem inte!</b>
|
||||
onboarding-calibration_tutorial-calibrate = Jag placerade mina trackers på bordet
|
||||
onboarding-calibration_tutorial-status-waiting = Väntar på dig
|
||||
onboarding-calibration_tutorial-status-calibrating = Kalibrering
|
||||
@@ -1062,7 +1057,7 @@ onboarding-choose_mounting-manual_modal-title =
|
||||
Är du säker på att du vill göra
|
||||
den automatiska monterings-kalibreringen?
|
||||
onboarding-choose_mounting-manual_modal-description =
|
||||
<b>Den manuella monterings-kalibreringen är rekommenderad för nya användare</b>, eftersom den automatiska monterings-kalibreringen kan vara svår att få rätt första gången
|
||||
<b>Den manuella monterings-kalibreringen är rekommenderad för nya användare</b>, eftersom den automatiska monterings-kalibreringen kan vara svår att få rätt första gången
|
||||
och kan behöva lite träning för att få rätt.
|
||||
onboarding-choose_mounting-manual_modal-confirm = Jag är säker på vad jag gör
|
||||
onboarding-choose_mounting-manual_modal-cancel = Avbryt
|
||||
@@ -1166,9 +1161,6 @@ firmware_tool-flashing_step-exit = Stäng
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = Skapar bygges-filen
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = Laddar ner mjukvaran
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = Extraherar mjukvaran
|
||||
firmware_tool-build-SETTING_UP_DEFINES = Konfigurerar definitionerna.
|
||||
firmware_tool-build-BUILDING = Bygger mjukvaran.
|
||||
firmware_tool-build-SAVING = Sparar bygget.
|
||||
firmware_tool-build-DONE = Byggning färdig
|
||||
|
||||
@@ -113,7 +113,7 @@ skeleton_bone-NONE = ไม่มี
|
||||
skeleton_bone-HEAD = การเลื่อนศีรษะ
|
||||
skeleton_bone-HEAD-desc =
|
||||
นี่เป็นระยะห่างจากแว่น VR ของคุณถึงบริเวณกลางศีรษะ
|
||||
ปรับด้วยการส่ายหัวจากซ้ายไปขวาเหมือนคุณกำลังส่ายหน้าปฎิเสธ
|
||||
ปรับด้วยการส่ายหัวจากซ้ายไปขวาเหมือนคุณกำลังส่ายหน้าปฎิเสธ
|
||||
และปรับค่าจนกว่าการเคลื่อนไหวในแทร็กเกอร์อื่นๆ จะน้อยจนไม่สังเกตเห็น
|
||||
skeleton_bone-NECK = ความยาวขอ
|
||||
skeleton_bone-NECK-desc =
|
||||
@@ -150,7 +150,7 @@ skeleton_bone-HIP-desc =
|
||||
(นั่งลง ก้มตัว นอนราบ เป็นต้น) จนกว่ากระดูกหลังเสมือนจะตรงกับกระดูกสันหลังจริงของคุณ
|
||||
skeleton_bone-HIP_OFFSET = การชดเชยตำแหน่งสะโพก
|
||||
skeleton_bone-HIP_OFFSET-desc =
|
||||
ปรับค่านี้เพื่อขยับแทร็กเกอร์เสมือนของสะโพกขึ้นหรือลง
|
||||
ปรับค่านี้เพื่อขยับแทร็กเกอร์เสมือนของสะโพกขึ้นหรือลง
|
||||
เพื่อช่วยในการปรับเทียบสำหรับบางเกมหรือแอพพลิเคชั่นที่กำหนดตำแหน่งแทร็กเกอร์ให้อยู่ที่สะโพก
|
||||
skeleton_bone-HIPS_WIDTH = ความกว้างสะโพก
|
||||
skeleton_bone-HIPS_WIDTH-desc =
|
||||
@@ -404,7 +404,6 @@ tracker-settings-name_section-label = ชื่อแทร็กเกอร์
|
||||
tracker-settings-forget = ลืมแทร็กเกอร์นี้
|
||||
tracker-settings-forget-description = ลบตัวแทร็กเกอร์ออกจากเซิร์ฟเวอร์ SlimeVR และป้องกันไม่ให้เชื่อมต่อกับเซิร์ฟเวอร์จนกว่าจะรีสตาร์ทเซิร์ฟเวอร์ การตั้งค่าของแทร็กเกอร์เองนั้นจะไม่สูญหาย
|
||||
tracker-settings-forget-label = ลืมแทร็กเกอร์นี้
|
||||
tracker-settings-update-unavailable = ไม่สามารถอัพเดทได้ (DIY)
|
||||
tracker-settings-update-low-battery = ไม่สามารถอัพเดทได้ แบตเตอรรี่ต่ำกว่า 50%
|
||||
tracker-settings-update-up_to_date = อัพเดทล่าสุดแล้ว
|
||||
tracker-settings-update-blocked = ไม่สามารถอัพเดทได้ ไม่มีเวอร์ชั่นอื่นที่พร้อมอัพเดท
|
||||
@@ -501,7 +500,7 @@ settings-general-steamvr-subtitle = แทร็กเกอร์ SteamVR
|
||||
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
|
||||
# This one is one of this cases that cares about multilines
|
||||
settings-general-steamvr-description =
|
||||
เปิดหรือปิดใช้งานแทร็คเกอร์บางตัวของ SteamVR
|
||||
เปิดหรือปิดใช้งานแทร็คเกอร์บางตัวของ SteamVR
|
||||
มีประโยชน์กับเกมหรือแอพที่รองรับเฉพาะแทร็กเกอร์บางตำแหน่ง
|
||||
settings-general-steamvr-trackers-waist = เอว
|
||||
settings-general-steamvr-trackers-chest = หน้าอก
|
||||
@@ -719,9 +718,6 @@ settings-general-interface-connected_trackers_warning-label = แจ้งเต
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = พฤติกรรม
|
||||
settings-general-interface-dev_mode = โหมดนักพัฒนา
|
||||
settings-general-interface-dev_mode-description = โหมดนี้มีประโยชน์เมื่อคุณต้องการข้อมูลเชิงลึกกับแทร็กเกอร์ หรือปรัปแต่งในขั้นสูง
|
||||
settings-general-interface-dev_mode-label = โหมดนักพัฒนา
|
||||
settings-general-interface-use_tray = พับไปยัง System tray
|
||||
settings-general-interface-use_tray-description = ให้คุณปิดหน้าต่าง SlimeVR Server โดยไม่ปิดโปรแกรม ให้คุณสามารถใช่งานต่อโดยไม่มีหน้าต่างโปรแกรมให้กวนใจ
|
||||
settings-general-interface-use_tray-label = ย่อไปที่ System Tray
|
||||
@@ -762,7 +758,6 @@ settings-serial-factory_reset-warning =
|
||||
หมายความว่าการตั้งค่า Wi-Fi และการปรับเทียบของแทร็กเกอร์ <b>จะหายไปทั้งหมด!</b>
|
||||
settings-serial-factory_reset-warning-ok = ฉันเข้าใจในสิ่งที่จะทำ
|
||||
settings-serial-factory_reset-warning-cancel = ยกเลิก
|
||||
settings-serial-get_infos = ขอข้อมูลอุปกรณ์
|
||||
settings-serial-serial_select = เลือก Serial port
|
||||
settings-serial-auto_dropdown_item = เลือกอัตโนมัติ
|
||||
settings-serial-get_wifi_scan = สแกนเครื่อข่าย WiFi
|
||||
@@ -863,6 +858,9 @@ settings-osc-vmc-mirror_tracking = สะท้อนตำแหน่งกา
|
||||
settings-osc-vmc-mirror_tracking-description = สะท้อนการติดตามในแนวนอน
|
||||
settings-osc-vmc-mirror_tracking-label = สะท้อนตำแหน่งการติดตาม
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = ขั้นสูง
|
||||
@@ -925,7 +923,7 @@ onboarding-wifi_creds-password =
|
||||
onboarding-reset_tutorial-back = กลับไปยังการปรับเทียบตำแหน่งแทร็กเกอร์
|
||||
onboarding-reset_tutorial = แนะนำการรีเซ็ต
|
||||
onboarding-reset_tutorial-explanation =
|
||||
ขณะที่คุณใช้แทรคเกอร์ อาจเกิดการคลาดเคลื่อนเนื่องจากการดริฟท์ของ IMU หรือแทร็กเกอร์ของคุณนขยับออกจากตำแหน่ง
|
||||
ขณะที่คุณใช้แทรคเกอร์ อาจเกิดการคลาดเคลื่อนเนื่องจากการดริฟท์ของ IMU หรือแทร็กเกอร์ของคุณนขยับออกจากตำแหน่ง
|
||||
คุณสามารถแก้ไขปัญหานี้ได้ดังนี้
|
||||
onboarding-reset_tutorial-skip = ข้ามขั้นตอนนี้
|
||||
# Cares about multiline
|
||||
@@ -1173,6 +1171,7 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. ค้างท่า
|
||||
onboarding-automatic_mounting-put_trackers_on-title = ใส่แทร็กเกอร์ของคุณ
|
||||
onboarding-automatic_mounting-put_trackers_on-description = เพื่อที่จะปรับเทียบตำแหน่งของแทร็คเกอร์ เราจะใช้แทร็กเกอร์ที่คุณได้ระบุไว้ สวมใส่แทร็กเกอร์ของคุณเลย คุณสามารถดูได้ว่าตัวไหนเป็นตัวไหนในภาพด้านขวา
|
||||
onboarding-automatic_mounting-put_trackers_on-next = ฉันใส่แทร็กเกอร์ทั้งหมดแล้ว
|
||||
onboarding-automatic_mounting-return-home = เสร็จแล้ว
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
@@ -1368,68 +1367,8 @@ firmware_tool = เครื่องมือเฟิร์มแวร์ DIY
|
||||
firmware_tool-description = ให้คุณตั้งค่าและแฟลชเฟิร์มแวร์แทร็กเกอร์ DIY ของคุณ
|
||||
firmware_tool-not_available = ไอ่หย๊า เครื่องมือเฟิร์มแวร์ยังไม่พร้อมใช้งานในขณะนี้ โปรดกลับมาใหม่ทีหลัง!
|
||||
firmware_tool-not_compatible = Firmware นี้เข้ากันไม่ได้กับเซิร์ฟเวอร์เวอร์ชั่นนี้ โปรดอัปเดตเซิร์ฟเวอร์ของคุณ!
|
||||
firmware_tool-board_step = เลือกบอร์ดของคุณ
|
||||
firmware_tool-board_step-description = เลือกบอร์ดหนึ่งตัวที่แสดงอยู่ด้านล่าง
|
||||
firmware_tool-board_pins_step = ตรวจสอบ Pin ของคุณ
|
||||
firmware_tool-board_pins_step-description =
|
||||
โปรดตรวจสอบว่า Pin ที่คุณเลือกนั้นถูกต้อง
|
||||
ค่าเริ่มต้นมักจะถูกแล้วหากคุณทำตามเอกสารประกอบของ SlimeVR
|
||||
firmware_tool-board_pins_step-enable_led = เปิดใช้งาน LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = พิน LED
|
||||
.placeholder = ใส่ที่อยู่พิน LED
|
||||
firmware_tool-board_pins_step-battery_type = เลือกประเภทแบตเตอรี่
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = แบตเตอรี่ภายนอก
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = แบตเตอรี่ภายใน
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = MCP3021 แบบภายใน
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = MCP3021
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = พินเซ็นเซอร์แบตเตอรี่
|
||||
.placeholder = ใส่ที่อยู่พินเซ็นเซอร์แบตเตอรี่
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = ตัวต้านทานของแบตเตอรี่ (โอห์ม)
|
||||
.placeholder = ใส่ค่าต้านทานของตัวต้านทานแบตเตอรี่
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = ค่าความต้านทาน R1 ของ Battery Shield (โอห์ม)
|
||||
.placeholder = กรุณากรอกค่าความต้านทาน R1 ของ Battery Shield
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = ค่าความต้านทาน R1 ของ Battery Shield (โอห์ม)
|
||||
.placeholder = กรุณากรอกค่าความต้านทาน R1 ของ Battery Shield
|
||||
firmware_tool-add_imus_step = เลือก IMU ที่คุณใช้
|
||||
firmware_tool-add_imus_step-description =
|
||||
กรุณาใส่ชนิดและจำนวนของ IMU ที่แทร็กเกอร์ของคุณใช้
|
||||
ค่าเริ่มต้นมักจะถูกแล้วหากคุณทำตามเอกสารประกอบของ SlimeVR
|
||||
firmware_tool-add_imus_step-imu_type-label = ประเภท IMU
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = เลือกประเภทของ IMU
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = องศา IMU (องศา)
|
||||
.placeholder = องศาของตัว IMU
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL Pin
|
||||
.placeholder = Pin address ของ SCL
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA Pin
|
||||
.placeholder = Pin address ของ SCL
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT Pin
|
||||
.placeholder = Pin address ของ INT
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = เป็นแทร็กเกอร์เสริม
|
||||
firmware_tool-add_imus_step-show_less = แสดงน้อยลง
|
||||
firmware_tool-add_imus_step-show_more = แสดงมากขึ้น
|
||||
firmware_tool-add_imus_step-add_more = เพิ่มจำนวน IMU
|
||||
firmware_tool-select_firmware_step = เลือกเวอร์ชั่น Firmware ของคุณ
|
||||
firmware_tool-select_firmware_step-description = กรุณาเลือกเวอร์ชั่นของ Firmware ที่คุณต้องการจะใช้
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = แสดง Firmware จาก บุคคลที่สาม
|
||||
firmware_tool-flash_method_step = วิธีการลง Firmware
|
||||
firmware_tool-flash_method_step-description = กรุณาเลือกวิธีการลง Firmware ที่คุณต้องการ
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = ใช้วิธีการลงผ่าน Wi-Fi (Over-The-Air) เพื่ออัพเดท Firmware จะใช้ได้กับแทร็กเกอร์ที่เคยตั้งค่าไปแล้วเท่านั้น
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = Serial
|
||||
.description = ใช้สาย USB เพื่ออัพเดทแทร็กเกอร์
|
||||
firmware_tool-flashbtn_step = กรุณากดปุ่ม Boot
|
||||
firmware_tool-flashbtn_step-description = มีสิ่งที่คุณควรจะรับทราบก่อนจะไปยังขั้นตอนถัดไป
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = ปิดแทร็กเกอร์ของคุณ ถอดอุปกรณ์ออกจากเคสพลาสติก(ถ้ามี) แล้วต่อสาย USB จากแทร็กเกอร์เข้าสู่คอมพิวเตอร์ จากนั้นทำตามขั้นตอนตามชนิตบอร์ดของ SlimeVR ของคุณ
|
||||
@@ -1458,9 +1397,6 @@ firmware_tool-flashing_step-exit = ออก
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = กำลังสร้าง Build folder
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = กำลังโหลด Firmware
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = กำลังแตกไฟล์เฟิร์มแวร์
|
||||
firmware_tool-build-SETTING_UP_DEFINES = กำลังกำหนดค่า defines
|
||||
firmware_tool-build-BUILDING = กำลังสร้างตัว Firmware
|
||||
firmware_tool-build-SAVING = บันทึกค่าที่สร้างไว้
|
||||
firmware_tool-build-DONE = การสร้างเสร็จสมบูรณ์
|
||||
|
||||
@@ -45,6 +45,9 @@ body_part-LEFT_UPPER_LEG = Sol uyluk
|
||||
body_part-LEFT_LOWER_LEG = Sol ayak bileği
|
||||
body_part-LEFT_FOOT = Sol ayak
|
||||
|
||||
## BoardType
|
||||
|
||||
|
||||
## Proportions
|
||||
|
||||
skeleton_bone-NONE = Yok
|
||||
@@ -108,6 +111,9 @@ tracking-unpaused = Takibi duraklat
|
||||
## Widget: Drift compensation
|
||||
|
||||
|
||||
## Widget: Clear Reset Mounting
|
||||
|
||||
|
||||
## Widget: Developer settings
|
||||
|
||||
widget-developer_mode = Geliştirici Modu
|
||||
@@ -120,7 +126,9 @@ widget-developer_mode-more_info = Daha fazla bilgi
|
||||
|
||||
widget-imu_visualizer = Rotasyon
|
||||
widget-imu_visualizer-rotation_preview = Önizle
|
||||
widget-imu_visualizer-rotation_hide = Gizle
|
||||
|
||||
## Widget: Skeleton Visualizer
|
||||
|
||||
|
||||
## Tracker status
|
||||
|
||||
@@ -222,10 +230,6 @@ settings-general-steamvr = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR takipçileri
|
||||
settings-general-steamvr-trackers-waist = Bel
|
||||
settings-general-steamvr-trackers-chest = Göğüs
|
||||
settings-general-steamvr-trackers-feet = Ayaklar
|
||||
settings-general-steamvr-trackers-knees = Dizler
|
||||
settings-general-steamvr-trackers-elbows = Dirsekler
|
||||
settings-general-steamvr-trackers-hands = Eller
|
||||
|
||||
## Tracker mechanics
|
||||
|
||||
@@ -235,18 +239,18 @@ settings-general-tracker_mechanics-filtering-amount = Miktar
|
||||
|
||||
settings-general-fk_settings-leg_fk = Bacak takibi
|
||||
settings-general-fk_settings-arm_fk = Kol takibi
|
||||
settings-general-fk_settings-skeleton_settings = İskelet ayarları
|
||||
settings-general-fk_settings-skeleton_settings-description = İskelet ayarlarını açın veya kapatın. Bunları açık bırakmanız önerilir.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine = Uzatılmış omurga
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Uzatılmış pelvis
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Uzatılmış diz
|
||||
settings-general-fk_settings-vive_emulation-title = Vive emülasyonu
|
||||
settings-general-fk_settings-vive_emulation-label = Vive emülasyonunu etkinleştir
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
|
||||
|
||||
## Interface settings
|
||||
## Appearance settings
|
||||
|
||||
|
||||
## Notification settings
|
||||
|
||||
|
||||
## Behavior settings
|
||||
|
||||
|
||||
## Serial settings
|
||||
@@ -271,6 +275,12 @@ settings-osc-vrchat-network-address = Ağ adresi
|
||||
## VMC OSC settings
|
||||
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
## Setup/onboarding menu
|
||||
|
||||
|
||||
@@ -313,17 +323,53 @@ settings-osc-vrchat-network-address = Ağ adresi
|
||||
## Tracker automatic mounting setup
|
||||
|
||||
|
||||
## Tracker proportions method choose
|
||||
|
||||
|
||||
## Tracker manual proportions 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
|
||||
|
||||
|
||||
@@ -380,8 +380,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Прив'язк
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Корекція пальців ноги намагається вгадати обертання ваших ступень, якщо трекери для них не використовуються
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Корекція ступні повертає ваші ступні так, щоб вони були паралельні землі при контакті
|
||||
settings-general-fk_settings-leg_fk = Трекінг ноги
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Активуйте скидання положення стопи, піднявшись навшпиньки.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Скинути положення стопи
|
||||
settings-general-fk_settings-arm_fk = Трекінг руки
|
||||
settings-general-fk_settings-arm_fk-description = Намагатися відстежувати руки за допомогою шолома, навіть якщо є інформація о позиції руки
|
||||
settings-general-fk_settings-arm_fk-force_arms = Відстеження рук з шолома
|
||||
@@ -476,9 +474,6 @@ settings-general-interface-connected_trackers_warning-label = Попередже
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-dev_mode = Режим розробника
|
||||
settings-general-interface-dev_mode-description = Цей режим може бути корисним, якщо вам потрібні поглиблені дані або для взаємодії з підключеними трекерами на більш просунутому рівні.
|
||||
settings-general-interface-dev_mode-label = Режим розробника
|
||||
settings-general-interface-use_tray = Згорнути в системний трей
|
||||
settings-general-interface-use_tray-description = Дозволяє закрити вікно, не закриваючи сервер SlimeVR, так що ви можете продовжувати використати його, не турбуючись про інтерфейс.
|
||||
settings-general-interface-use_tray-label = Згорнути в системний трей
|
||||
@@ -503,7 +498,6 @@ settings-serial-factory_reset-warning =
|
||||
Це означає, що Wi-Fi та налаштування калібрування <b>будуть втрачені!</b>
|
||||
settings-serial-factory_reset-warning-ok = Я знаю, що роблю
|
||||
settings-serial-factory_reset-warning-cancel = Скасувати
|
||||
settings-serial-get_infos = Отримати інформацію
|
||||
settings-serial-serial_select = Вибір послідовного порту
|
||||
settings-serial-auto_dropdown_item = Автоматично
|
||||
settings-serial-get_wifi_scan = Сканувати мережу Wi-Fi
|
||||
@@ -591,6 +585,9 @@ settings-osc-vmc-mirror_tracking = Дзеркальний трекінг
|
||||
settings-osc-vmc-mirror_tracking-description = Віддзеркалити трекери горизонтально.
|
||||
settings-osc-vmc-mirror_tracking-label = Дзеркальний трекінг
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
|
||||
@@ -701,7 +698,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 = Калібрування
|
||||
|
||||
@@ -398,8 +398,6 @@ settings-general-fk_settings-leg_tweak-floor_clip-description = Ngăn xuyên sà
|
||||
settings-general-fk_settings-leg_tweak-toe_snap-description = Đoán hướng xoay chân sẽ đoán hướng xoay của chân đồng thời khóa ngón chân của bạn vào mặt sàn bạn nếu bạn không sử dụng tracker cho chân.
|
||||
settings-general-fk_settings-leg_tweak-foot_plant-description = Cân bằng chân sẽ xoay chân song song với mặt đất khi lại gần.
|
||||
settings-general-fk_settings-leg_fk = Track chân
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description = Đặt lại hướng gắn tracker bàn chân bằng cách nhón chân.
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet = Đặt lại hướng gắn tracker bàn chân
|
||||
settings-general-fk_settings-arm_fk = Track cánh tay
|
||||
settings-general-fk_settings-arm_fk-description = Thay đổi cách cánh tay được track
|
||||
settings-general-fk_settings-arm_fk-force_arms = Lấy dữ liệu cánh tay từ kính
|
||||
@@ -495,9 +493,6 @@ settings-general-interface-connected_trackers_warning-label = Cảnh báo thiế
|
||||
|
||||
## Behavior settings
|
||||
|
||||
settings-general-interface-dev_mode = Chế độ nhà phát triển
|
||||
settings-general-interface-dev_mode-description = Hữu dụng nếu cần thêm thông tin chi tiết của tracker hay can thiệp sâu hơn vào tracker
|
||||
settings-general-interface-dev_mode-label = Chế độ nhà phát triển
|
||||
settings-general-interface-use_tray = Thu nhỏ vào khay hệ thống
|
||||
settings-general-interface-use_tray-description = Cho phép bạn đóng cửa sổ mà không cần đóng máy chủ SlimeVR để bạn có thể tiếp tục sử dụng nó mà không bị GUI làm phiền.
|
||||
settings-general-interface-use_tray-label = Thu nhỏ vào khay hệ thống
|
||||
@@ -527,7 +522,6 @@ settings-serial-factory_reset-warning =
|
||||
Đặt lại bao gồm tất cả các cài đặt Wi-Fi và hiệu chuẩn (Calibrate) <b>sẽ bị mất!</b>
|
||||
settings-serial-factory_reset-warning-ok = Tôi biết mình đang làm gì
|
||||
settings-serial-factory_reset-warning-cancel = Hủy
|
||||
settings-serial-get_infos = Lấy thông tin
|
||||
settings-serial-serial_select = Chọn cổng Serial
|
||||
settings-serial-auto_dropdown_item = Tự động
|
||||
settings-serial-get_wifi_scan = Quét WiFi
|
||||
@@ -622,6 +616,9 @@ settings-osc-vmc-mirror_tracking = Phản chiếu ngược theo dõi cơ thể
|
||||
settings-osc-vmc-mirror_tracking-description = Phản chiếu theo dõi theo chiều ngang.
|
||||
settings-osc-vmc-mirror_tracking-label = Phản chiếu ngược theo dõi cơ thể
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = Cài đặt mở rộng
|
||||
@@ -726,10 +723,10 @@ onboarding-connect_tracker-connection_status-done = Đã kết nối đến máy
|
||||
# if $amount is 0 then we say "No trackers connected"
|
||||
onboarding-connect_tracker-connected_trackers =
|
||||
{ $amount ->
|
||||
[0] Không có tracker
|
||||
[one] 1 tracker
|
||||
*[other] { $amount } tracker
|
||||
} đã giao
|
||||
[0] Không có tracker đã giao
|
||||
[one] 1 tracker đã giao
|
||||
*[other] { $amount } tracker đã giao
|
||||
}
|
||||
onboarding-connect_tracker-next = Đã kết nối với tất cả tracker
|
||||
|
||||
## Tracker calibration tutorial
|
||||
@@ -762,10 +759,10 @@ onboarding-assign_trackers-description = Chọn vị trí bạn muốn gán trac
|
||||
# $assigned (Number) - Trackers that have been assigned a body part
|
||||
# $trackers (Number) - Trackers connected to the server
|
||||
onboarding-assign_trackers-assigned =
|
||||
{ $assigned } trên { $trackers ->
|
||||
[one] 1 tracker
|
||||
*[other] { $trackers } tracker
|
||||
} đã giao
|
||||
{ $trackers ->
|
||||
[one] { $assigned } trên 1 tracker đã giao
|
||||
*[other] { $assigned } trên { $trackers } tracker đã giao
|
||||
}
|
||||
onboarding-assign_trackers-advanced = Xem thêm vị trí đặt
|
||||
onboarding-assign_trackers-next = Hoàn thành
|
||||
onboarding-assign_trackers-mirror_view = Xem hình phản chiếu
|
||||
@@ -870,7 +867,7 @@ onboarding-choose_mounting-manual_mounting-label-v2 = Có thể không đủ ch
|
||||
onboarding-choose_mounting-manual_mounting-description = Điều này sẽ cho phép bạn chọn hướng lắp theo cách thủ công cho từng thiết bị
|
||||
# Multiline text
|
||||
onboarding-choose_mounting-manual_modal-title =
|
||||
Bạn có chắc chắn muốn
|
||||
Bạn có chắc chắn muốn
|
||||
đo hướng quay tự động?
|
||||
onboarding-choose_mounting-manual_modal-description = <b>Hiệu chuẩn lắp thủ công được khuyến nghị cho người dùng mới</b>, vì các tư thế của hiệu chuẩn lắp tự động có thể khó thực hiện ngay trước và có thể cần một số thực hành.
|
||||
onboarding-choose_mounting-manual_modal-confirm = Tôi chắc chắn về những gì tôi đang làm
|
||||
|
||||
@@ -95,6 +95,8 @@ board_type-WEMOSD1MINI = Wemos D1 Mini
|
||||
board_type-TTGO_TBASE = TTGO T-Base
|
||||
board_type-ESP01 = ESP-01
|
||||
board_type-SLIMEVR = SlimeVR
|
||||
board_type-SLIMEVR_DEV = SlimeVR 开发板
|
||||
board_type-SLIMEVR_V1_2 = SlimeVR v1.2
|
||||
board_type-LOLIN_C3_MINI = Lolin C3 Mini
|
||||
board_type-BEETLE32C3 = Beetle ESP32-C3
|
||||
board_type-ESP32C3DEVKITM1 = Espressif ESP32-C3 DevKitM-1
|
||||
@@ -395,7 +397,8 @@ tracker-settings-name_section-label = 追踪器名称
|
||||
tracker-settings-forget = 忘记追踪器
|
||||
tracker-settings-forget-description = 从 SlimeVR 服务器中移除该追踪器,并在服务器重启前不再连接这一追踪器。追踪器的配置信息不会被清除。
|
||||
tracker-settings-forget-label = 忘记追踪器
|
||||
tracker-settings-update-unavailable = 无法升级(DIY)
|
||||
tracker-settings-update-unavailable-v2 = 未找到可用版本
|
||||
tracker-settings-update-incompatible = 电路板不兼容,无法升级。
|
||||
tracker-settings-update-low-battery = 无法更新。当前电池电量低于 50%
|
||||
tracker-settings-update-up_to_date = 已是最新
|
||||
tracker-settings-update-blocked = 更新不可用。没有其他可用版本
|
||||
@@ -543,7 +546,7 @@ 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> 仅在需要经常重置偏航角
|
||||
<b>警告:</b> 仅在需要经常重置偏航角
|
||||
(大概5~10分钟左右需要重置一次) 时使用漂移补偿。
|
||||
|
||||
一些可能需要此补偿的 IMU 包括:
|
||||
@@ -609,6 +612,9 @@ 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-ik = 位置数据
|
||||
settings-general-fk_settings-ik-use_position = 使用位置数据
|
||||
settings-general-fk_settings-ik-use_position-description = 若追踪器支持,使用来自追踪器的位置数据。启用后,请再次进行完全重置并在游戏中重新校准追踪器。
|
||||
settings-general-fk_settings-arm_fk = 手臂追踪
|
||||
settings-general-fk_settings-arm_fk-description = 即使有手臂位置数据可用,也强制使用头显的数据追踪手臂。
|
||||
settings-general-fk_settings-arm_fk-force_arms = 强制使用头显数据追踪手臂
|
||||
@@ -710,9 +716,6 @@ settings-general-interface-connected_trackers_warning-label = 退出时,有追
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = 行为
|
||||
settings-general-interface-dev_mode = 开发者模式
|
||||
settings-general-interface-dev_mode-description = 如果你需要深入的资料或对连接的追踪器进行进阶调整,开启此模式将会非常有用。
|
||||
settings-general-interface-dev_mode-label = 开发者模式
|
||||
settings-general-interface-use_tray = 最小化至任务栏
|
||||
settings-general-interface-use_tray-description = 关闭 SlimeVR 窗口时,SlimeVR 服务器将会隐藏至任务栏图标而不会直接退出,可以继续使用。
|
||||
settings-general-interface-use_tray-label = 最小化至任务栏
|
||||
@@ -753,12 +756,16 @@ settings-serial-factory_reset-warning =
|
||||
这意味着 Wi-Fi 凭据和校准数据 <b>都将丢失!</b>
|
||||
settings-serial-factory_reset-warning-ok = 我已知晓
|
||||
settings-serial-factory_reset-warning-cancel = 取消
|
||||
settings-serial-get_infos = 获取信息
|
||||
settings-serial-serial_select = 选择串行端口
|
||||
settings-serial-auto_dropdown_item = 自动
|
||||
settings-serial-get_wifi_scan = 扫描可用WiFi
|
||||
settings-serial-file_type = 纯文本
|
||||
settings-serial-save_logs = 保存到文件
|
||||
settings-serial-send_command = 发送
|
||||
settings-serial-send_command-placeholder = 输入指令...
|
||||
settings-serial-send_command-warning = <b>警告:</b>运行串口命令可能导致数据丢失或使追踪器无法正常工作。
|
||||
settings-serial-send_command-warning-ok = 我已知晓
|
||||
settings-serial-send_command-warning-cancel = 取消
|
||||
|
||||
## OSC router settings
|
||||
|
||||
@@ -855,6 +862,11 @@ settings-osc-vmc-mirror_tracking = 镜像追踪
|
||||
settings-osc-vmc-mirror_tracking-description = 水平镜像追踪结果
|
||||
settings-osc-vmc-mirror_tracking-label = 镜像追踪
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
settings-osc-common-network-ports_match_error = OSC路由的输入和输出端口不能相同!
|
||||
settings-osc-common-network-port_banned_error = 无法使用端口{ $port } !
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = 高级选项
|
||||
@@ -1169,6 +1181,7 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. 保持姿势,直到 3
|
||||
onboarding-automatic_mounting-put_trackers_on-title = 穿戴好追踪器
|
||||
onboarding-automatic_mounting-put_trackers_on-description = 为了校准佩戴方向,我们将使用你刚才分配的追踪器。戴上你所有的追踪器,你可以在右边的图中看到哪个追踪器对应哪个。
|
||||
onboarding-automatic_mounting-put_trackers_on-next = 所有的追踪器都已开启!
|
||||
onboarding-automatic_mounting-return-home = 完成
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
@@ -1364,68 +1377,30 @@ firmware_tool = DIY固件工具
|
||||
firmware_tool-description = 允许您配置和烧录 DIY 追踪器固件
|
||||
firmware_tool-not_available = 哦不,固件工具目前不可用。稍后再来!
|
||||
firmware_tool-not_compatible = 固件工具与此版本的服务端不兼容。请更新您的服务端!
|
||||
firmware_tool-board_step = 选择您的开发板
|
||||
firmware_tool-board_step-description = 选择下列开发板之一
|
||||
firmware_tool-board_pins_step = 检查引脚
|
||||
firmware_tool-board_pins_step-description =
|
||||
请验证所选引脚是否正确。
|
||||
如果您遵循了 SlimeVR 文档,则默认值应该是正确的
|
||||
firmware_tool-board_pins_step-enable_led = 启用 LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED 引脚
|
||||
.placeholder = 输入LED引脚的编号
|
||||
firmware_tool-board_pins_step-battery_type = 选择电池测量电路类型
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = 使用外接电阻与片内ADC测量(默认)
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = 使用片内低电量告警电路
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = 使用片内低电量告警电路与外接MCP3021测量
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = 使用外接MCP3021测量
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = 电池检测引脚
|
||||
.placeholder = 输入电池检测引脚的编号
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = 电池外接串联电阻(欧姆)
|
||||
.placeholder = 输入电池串联电阻的阻值
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = 开发板载对地分压电阻R1(欧姆)
|
||||
.placeholder = 请输入开发板载对地分压电阻 R1 的值。
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = 开发板载对输入分压电阻 R2(欧姆)
|
||||
.placeholder = 请输入开发板载对输入分压电阻 R2 的值。
|
||||
firmware_tool-add_imus_step = 添加您的 IMU
|
||||
firmware_tool-add_imus_step-description =
|
||||
请添加您的追踪器所配备的 IMU 传感器。
|
||||
如果您遵循了 SlimeVR 文档,默认值应该是正确的。
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU 类型
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = 选择 IMU 类型
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = 追踪器旋转(度)
|
||||
.placeholder = 追踪器旋转角度
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL 引脚
|
||||
.placeholder = SCL 引脚编号
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA 引脚
|
||||
.placeholder = SDA 引脚编号
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT 引脚
|
||||
.placeholder = INT 引脚编号
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = 此 IMU 为可选扩展
|
||||
firmware_tool-add_imus_step-show_less = 显示更少
|
||||
firmware_tool-add_imus_step-show_more = 显示更多
|
||||
firmware_tool-add_imus_step-add_more = 添加更多 IMU
|
||||
firmware_tool-select_firmware_step = 选择固件版本
|
||||
firmware_tool-select_firmware_step-description = 请选择您要使用的固件版本
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = 显示第三方固件
|
||||
firmware_tool-select_source = 选择要刷写的固件
|
||||
firmware_tool-select_source-description = 选择要在电路板上刷写的固件
|
||||
firmware_tool-select_source-error = 无法加载固件来源
|
||||
firmware_tool-select_source-board_type = 电路板类型
|
||||
firmware_tool-select_source-firmware = 固件来源
|
||||
firmware_tool-select_source-version = 固件版本
|
||||
firmware_tool-select_source-official = 官方
|
||||
firmware_tool-select_source-dev = 开发版
|
||||
firmware_tool-board_defaults = 配置电路板
|
||||
firmware_tool-board_defaults-description = 设置引脚与其他和硬件相关的配置
|
||||
firmware_tool-board_defaults-add = 新增
|
||||
firmware_tool-board_defaults-reset = 恢复默认设置
|
||||
firmware_tool-board_defaults-error-required = 必填字段
|
||||
firmware_tool-board_defaults-error-format = 格式无效
|
||||
firmware_tool-board_defaults-error-format-number = 不是数字
|
||||
firmware_tool-flash_method_step = 固件烧录方式
|
||||
firmware_tool-flash_method_step-description = 请选择您要使用的固件烧录方式
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = 使用无线方式。您的追踪器将通过 Wi-Fi 更新固件。仅适用于已设置好的追踪器。
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = 串口
|
||||
.description = 使用 USB 数据线更新您的追踪器。
|
||||
firmware_tool-flash_method_step-ota-v2 =
|
||||
.label = Wi-Fi
|
||||
.description = 选择无线OTA更新方式。你的追踪器将会使用Wi-Fi来更新固件。只在已设置完成的追踪器上生效。
|
||||
firmware_tool-flash_method_step-ota-info = 将会使用你的Wi-Fi凭证来刷写追踪器的固件并确保一切正常。<b>我们不会存储你的Wi-Fi凭证!</b>
|
||||
firmware_tool-flash_method_step-serial-v2 =
|
||||
.label = USB
|
||||
.description = 使用USB线连接来更新你的追踪器。
|
||||
firmware_tool-flashbtn_step = 按下启动/Boot按钮
|
||||
firmware_tool-flashbtn_step-description = 在进入下一步之前,您需要做几件事情。
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = 关闭追踪器,拆下外壳(如果有的话),使用 USB 数据线连接到计算机,然后根据您的 SlimeVR 电路板版本执行以下步骤之一:
|
||||
@@ -1433,12 +1408,14 @@ firmware_tool-flashbtn_step-board_SLIMEVR-r11 = 在短接电路板正面边缘
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r12 = 在短接电路板正面圆形 FLASH 焊盘和单片机模块的金属屏蔽罩的时候,打开追踪器电源。
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR-r14 = 在按住电路板正面的 FLASH 按钮的时候,打开追踪器的电源。
|
||||
firmware_tool-flashbtn_step-board_OTHER =
|
||||
在烧录固件之前,您可能需要将追踪器置于bootloader模式。
|
||||
通常这意味着在开始固件烧录过程之前,按下板上的引导/boot按钮。
|
||||
如果固件烧录过程在开始时超时,这通常表示追踪器没有处于bootloader模式。
|
||||
在烧录固件之前,您可能需要将追踪器置于bootloader模式。
|
||||
通常这意味着在开始固件烧录过程之前,按下板上的引导/boot按钮。
|
||||
如果固件烧录过程在开始时超时,这通常表示追踪器没有处于bootloader模式。
|
||||
请参考您的追踪器电路板的固件烧录说明,了解如何进入bootloader模式。
|
||||
firmware_tool-flash_method_ota-title = 通过Wi-Fi刷写
|
||||
firmware_tool-flash_method_ota-devices = 检测到的 OTA 设备:
|
||||
firmware_tool-flash_method_ota-no_devices = 没有可以使用 OTA 更新的电路板,请确保选择了正确的电路板类型
|
||||
firmware_tool-flash_method_serial-title = 通过USB刷写
|
||||
firmware_tool-flash_method_serial-wifi = Wi-Fi 凭证:
|
||||
firmware_tool-flash_method_serial-devices-label = 检测到的串口设备:
|
||||
firmware_tool-flash_method_serial-devices-placeholder = 选择串口设备
|
||||
@@ -1453,10 +1430,10 @@ firmware_tool-flashing_step-exit = 退出
|
||||
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-QUEUED = 等待构建中....
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = 正在创建 build 文件夹
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = 正在下载固件源文件
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = 正在解压固件
|
||||
firmware_tool-build-SETTING_UP_DEFINES = 正在配置固件 define 参数
|
||||
firmware_tool-build-DOWNLOADING_SOURCE = 正在下载源代码
|
||||
firmware_tool-build-EXTRACTING_SOURCE = 正在解压源代码
|
||||
firmware_tool-build-BUILDING = 正在构建固件
|
||||
firmware_tool-build-SAVING = 正在保存构建结果
|
||||
firmware_tool-build-DONE = 构建完成
|
||||
|
||||
@@ -401,7 +401,6 @@ tracker-settings-name_section-label = 追蹤器名稱
|
||||
tracker-settings-forget = 忘記追蹤器
|
||||
tracker-settings-forget-description = 從 SlimeVR 伺服器程式中移除該追蹤器,且直到重新啟動伺服器前不會再次連接。該追蹤器的設定不會遺失。
|
||||
tracker-settings-forget-label = 忘記追蹤器
|
||||
tracker-settings-update-unavailable = 無法更新 (DIY)
|
||||
tracker-settings-update-low-battery = 無法更新,電池電量低於 50%
|
||||
tracker-settings-update-up_to_date = 已為最新版本
|
||||
tracker-settings-update-blocked = 無法更新,沒有其他可用版本。
|
||||
@@ -608,7 +607,7 @@ 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-v1 = 使用普通的重置配戴時,一併重置腳部配戴。
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-description-v1 = 使用普通的配戴重置時,強制重置腳部配戴。
|
||||
settings-general-fk_settings-leg_fk-reset_mounting_feet-v1 = 強制重置腳部配戴
|
||||
settings-general-fk_settings-enforce_joint_constraints = 骨架限制
|
||||
settings-general-fk_settings-enforce_joint_constraints-enforce_constraints = 約束關節旋轉
|
||||
@@ -716,9 +715,6 @@ settings-general-interface-connected_trackers_warning-label = 當退出程式時
|
||||
## Behavior settings
|
||||
|
||||
settings-interface-behavior = 行為
|
||||
settings-general-interface-dev_mode = 開發者模式
|
||||
settings-general-interface-dev_mode-description = 本功能會提供更深入的資料,也能與已連線的追蹤器進行更進一步的控制。
|
||||
settings-general-interface-dev_mode-label = 開發者模式
|
||||
settings-general-interface-use_tray = 最小化到系統列
|
||||
settings-general-interface-use_tray-description = 本選項可以讓你在關閉視窗時不會關閉 SlimeVR 的伺服器程式,讓你在不受圖形介面的打擾下繼續使用追蹤器。
|
||||
settings-general-interface-use_tray-label = 最小化到系統列
|
||||
@@ -757,7 +753,6 @@ settings-serial-factory_reset-warning =
|
||||
亦即其 Wi-Fi 與追蹤器校正的設定<b>將會全部刪除</b>。
|
||||
settings-serial-factory_reset-warning-ok = 我確實要執行出廠設定
|
||||
settings-serial-factory_reset-warning-cancel = 取消
|
||||
settings-serial-get_infos = 取得資訊
|
||||
settings-serial-serial_select = 選擇串列埠
|
||||
settings-serial-auto_dropdown_item = 自動
|
||||
settings-serial-get_wifi_scan = 取得 Wi-Fi 掃描
|
||||
@@ -857,6 +852,9 @@ settings-osc-vmc-mirror_tracking = 鏡像追蹤
|
||||
settings-osc-vmc-mirror_tracking-description = 將追蹤的結果水平鏡像。
|
||||
settings-osc-vmc-mirror_tracking-label = 鏡像追蹤
|
||||
|
||||
## Common OSC settings
|
||||
|
||||
|
||||
## Advanced settings
|
||||
|
||||
settings-utils-advanced = 進階
|
||||
@@ -1171,6 +1169,7 @@ onboarding-automatic_mounting-preparation-v2-step-2 = 3. 保持姿勢直到 3
|
||||
onboarding-automatic_mounting-put_trackers_on-title = 請戴好追蹤器
|
||||
onboarding-automatic_mounting-put_trackers_on-description = 為了校準配戴方向,我們將使用剛才分配的追蹤器。戴上你所有的追蹤器,你可以在右邊的圖中看到追蹤器的對應部位。
|
||||
onboarding-automatic_mounting-put_trackers_on-next = 我所有的追蹤器都戴好了!
|
||||
onboarding-automatic_mounting-return-home = 完成
|
||||
|
||||
## Tracker manual proportions setupa
|
||||
|
||||
@@ -1366,68 +1365,8 @@ firmware_tool = DIY 韌體工具
|
||||
firmware_tool-description = 本工具可以配置與燒錄 DIY 追蹤器
|
||||
firmware_tool-not_available = 唉呀,現在韌體工具無法使用。請稍後再來!
|
||||
firmware_tool-not_compatible = 韌體工具與這個版本的伺服器不相容。請更新伺服器!
|
||||
firmware_tool-board_step = 選擇主板
|
||||
firmware_tool-board_step-description = 請從以下列出的主板選擇一個。
|
||||
firmware_tool-board_pins_step = 檢查腳位
|
||||
firmware_tool-board_pins_step-description =
|
||||
請檢查以下選擇的腳位是正確的。
|
||||
若是照著 SlimeVR 的教學來製作追蹤器,預設值應該是正確的
|
||||
firmware_tool-board_pins_step-enable_led = 設定 LED
|
||||
firmware_tool-board_pins_step-led_pin =
|
||||
.label = LED 腳位
|
||||
.placeholder = 輸入 LED 腳位位址
|
||||
firmware_tool-board_pins_step-battery_type = 選擇電池測量電路類型
|
||||
firmware_tool-board_pins_step-battery_type-BAT_EXTERNAL = 使用外接電阻與板內 ADC 測量(預設)
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL = 使用板內低電量警示電路
|
||||
firmware_tool-board_pins_step-battery_type-BAT_INTERNAL_MCP3021 = 板內電路 + MCP3021
|
||||
firmware_tool-board_pins_step-battery_type-BAT_MCP3021 = 使用外接 MCP3021 測量
|
||||
firmware_tool-board_pins_step-battery_sensor_pin =
|
||||
.label = 電量偵測腳位
|
||||
.placeholder = 輸入電量偵測腳位位址
|
||||
firmware_tool-board_pins_step-battery_resistor =
|
||||
.label = 電池外接串連電阻(歐姆)
|
||||
.placeholder = 輸入用於偵測電量的電阻阻值
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-0 =
|
||||
.label = ADC 對地分壓 R1(歐姆)
|
||||
.placeholder = 輸入開發板上 ADC 對地的分壓電阻阻值
|
||||
firmware_tool-board_pins_step-battery_shield_resistor-1 =
|
||||
.label = ADC 對輸入分壓 R2(歐姆)
|
||||
.placeholder = 輸入開發板上 ADC 對輸入的分壓電阻阻值
|
||||
firmware_tool-add_imus_step = 設定慣性測量單元 (IMU)
|
||||
firmware_tool-add_imus_step-description =
|
||||
請加入追蹤器所使用的 IMU
|
||||
若是照著 SlimeVR 的教學來製作追蹤器,預設值應該是正確的
|
||||
firmware_tool-add_imus_step-imu_type-label = IMU 類型
|
||||
firmware_tool-add_imus_step-imu_type-placeholder = 選擇 IMU 的類型
|
||||
firmware_tool-add_imus_step-imu_rotation =
|
||||
.label = IMU 角度(度)
|
||||
.placeholder = IMU 旋轉的角度
|
||||
firmware_tool-add_imus_step-scl_pin =
|
||||
.label = SCL 腳位
|
||||
.placeholder = SCL 的腳位位址
|
||||
firmware_tool-add_imus_step-sda_pin =
|
||||
.label = SDA 腳位
|
||||
.placeholder = SDA 腳位位址
|
||||
firmware_tool-add_imus_step-int_pin =
|
||||
.label = INT 腳位
|
||||
.placeholder = INT 腳位位址
|
||||
firmware_tool-add_imus_step-optional_tracker =
|
||||
.label = 選配追蹤器
|
||||
firmware_tool-add_imus_step-show_less = 顯示更少
|
||||
firmware_tool-add_imus_step-show_more = 顯示更多
|
||||
firmware_tool-add_imus_step-add_more = 新增更多 IMU
|
||||
firmware_tool-select_firmware_step = 選擇韌體版本
|
||||
firmware_tool-select_firmware_step-description = 請選擇要使用的韌體版本
|
||||
firmware_tool-select_firmware_step-show-third-party =
|
||||
.label = 顯示第三方韌體
|
||||
firmware_tool-flash_method_step = 燒錄方法
|
||||
firmware_tool-flash_method_step-description = 選擇要使用的燒錄方法
|
||||
firmware_tool-flash_method_step-ota =
|
||||
.label = OTA
|
||||
.description = 透過 OTA(無線更新),追蹤器會透過 Wi-Fi 來更新韌體。僅適用於已燒錄的追蹤器。
|
||||
firmware_tool-flash_method_step-serial =
|
||||
.label = 串列埠
|
||||
.description = 透過 USB 傳輸線更新追蹤器。
|
||||
firmware_tool-flashbtn_step = 進入燒錄模式
|
||||
firmware_tool-flashbtn_step-description = 在進入下一步前,請先進行以下操作
|
||||
firmware_tool-flashbtn_step-board_SLIMEVR = 關閉追蹤器電源,移除外殼(若有的話),並用 USB 線連接到這台電腦上,然後根據你持有的 SlimeVR 追蹤器主板的版本,進行下述操作:
|
||||
@@ -1456,9 +1395,6 @@ firmware_tool-flashing_step-exit = 離開
|
||||
## firmware tool build status
|
||||
|
||||
firmware_tool-build-CREATING_BUILD_FOLDER = 正在建立建置資料夾
|
||||
firmware_tool-build-DOWNLOADING_FIRMWARE = 正在下載韌體
|
||||
firmware_tool-build-EXTRACTING_FIRMWARE = 正在解壓縮韌體
|
||||
firmware_tool-build-SETTING_UP_DEFINES = 正在設定韌體參數
|
||||
firmware_tool-build-BUILDING = 正在建置韌體
|
||||
firmware_tool-build-SAVING = 正在儲存建置
|
||||
firmware_tool-build-DONE = 建置完成
|
||||
|
||||
@@ -28,14 +28,15 @@ shadow-rs = "0.35"
|
||||
[dependencies]
|
||||
serde_json = "1"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
tauri = { version = "2.0", features = ["devtools", "tray-icon", "image-png", "rustls-tls"] }
|
||||
tauri-runtime = "2.0"
|
||||
tauri-plugin-dialog = "2.0"
|
||||
tauri-plugin-fs = "2.4.1"
|
||||
tauri-plugin-os = "2.0"
|
||||
tauri-plugin-shell = "2.0"
|
||||
tauri-plugin-store = "2.0"
|
||||
flexi_logger = "0.29"
|
||||
tauri = { version = "2", features = ["devtools", "tray-icon", "image-png", "rustls-tls"] }
|
||||
tauri-runtime = "2"
|
||||
tauri-plugin-dialog = "2"
|
||||
tauri-plugin-fs = "2"
|
||||
tauri-plugin-http = "2"
|
||||
tauri-plugin-opener = "2"
|
||||
tauri-plugin-os = "2"
|
||||
tauri-plugin-shell = "2"
|
||||
tauri-plugin-store = "2"
|
||||
log-panics = { version = "2", features = ["with-backtrace"] }
|
||||
log = "0.4"
|
||||
clap = { version = "4.0.29", features = ["derive"] }
|
||||
@@ -54,7 +55,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"
|
||||
tauri-plugin-log = "2"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
win32job = "1"
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
"identifier": "migrated",
|
||||
"description": "permissions that were migrated from v1",
|
||||
"local": true,
|
||||
"windows": ["main"],
|
||||
"windows": [
|
||||
"main"
|
||||
],
|
||||
"permissions": [
|
||||
"core:default",
|
||||
"core:window:allow-close",
|
||||
@@ -30,7 +32,14 @@
|
||||
"fs:allow-exists",
|
||||
{
|
||||
"identifier": "fs:scope",
|
||||
"allow": [{ "path": "$APPDATA" }, { "path": "$APPDATA/**" }]
|
||||
"allow": [
|
||||
{
|
||||
"path": "$APPDATA"
|
||||
},
|
||||
{
|
||||
"path": "$APPDATA/**"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "http:default",
|
||||
@@ -39,6 +48,8 @@
|
||||
"url": "https://github.com/SlimeVR/SlimeVR-Tracker-ESP/releases/download/*"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"opener:default",
|
||||
"log:default"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -53,6 +53,7 @@ work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
</description>
|
||||
|
||||
<launchable type="desktop-id">dev.slimevr.SlimeVR.desktop</launchable>
|
||||
<launchable type="desktop-id">safe-mode.dev.slimevr.SlimeVR.desktop</launchable>
|
||||
<screenshots>
|
||||
<screenshot type="default" xml:lang="en">
|
||||
<caption>The onboarding for the GUI</caption>
|
||||
|
||||
13
gui/src-tauri/safe-mode.dev.slimevr.SlimeVR.desktop
Normal file
13
gui/src-tauri/safe-mode.dev.slimevr.SlimeVR.desktop
Normal file
@@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Version=1.5
|
||||
Categories=Game;GTK;
|
||||
Exec=bash -c "WEBKIT_DISABLE_DMABUF_RENDERER=1 WAYLAND_DISPLAY=0 slimevr"
|
||||
Icon=slimevr
|
||||
|
||||
Name=SlimeVR (safe mode)
|
||||
GenericName=Full-body tracking
|
||||
Comment=An app for facilitating full-body tracking in virtual reality
|
||||
Keywords=FBT;VR;Steam;VRChat;IMU
|
||||
|
||||
Terminal=false
|
||||
Type=Application
|
||||
@@ -17,6 +17,7 @@ use tauri::Emitter;
|
||||
use tauri::WindowEvent;
|
||||
use tauri::{Manager, RunEvent};
|
||||
use tauri_plugin_shell::process::CommandChild;
|
||||
use util::get_log_dir;
|
||||
|
||||
use crate::util::{
|
||||
get_launch_path, show_error, valid_java_paths, Cli, JAVA_BIN, MINIMUM_JAVA_VERSION,
|
||||
@@ -43,21 +44,6 @@ fn update_window_state(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
fn logging(msg: String) {
|
||||
log::info!(target: "webview", "{}", msg)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
fn erroring(msg: String) {
|
||||
log::error!(target: "webview", "{}", msg)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
fn warning(msg: String) {
|
||||
log::warn!(target: "webview", "{}", msg)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
fn open_config_folder(app_handle: tauri::AppHandle) {
|
||||
let path = app_handle
|
||||
@@ -66,7 +52,7 @@ fn open_config_folder(app_handle: tauri::AppHandle) {
|
||||
.unwrap_or_else(|_| Path::new(".").to_path_buf());
|
||||
|
||||
if let Err(err) = open::that(path) {
|
||||
eprintln!("Failed to open config folder: {}", err);
|
||||
log::error!("Failed to open config folder: {}", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +67,7 @@ fn open_logs_folder(app_handle: tauri::AppHandle) {
|
||||
if let Err(err) =
|
||||
open::that(path.unwrap_or_else(|_| Path::new("./logs/").to_path_buf()))
|
||||
{
|
||||
eprintln!("Failed to open logs folder: {}", err);
|
||||
log::error!("Failed to open logs folder: {}", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,9 +83,6 @@ fn main() -> Result<()> {
|
||||
let cli = Cli::parse();
|
||||
let tauri_context = tauri::generate_context!();
|
||||
|
||||
// Set up loggers and global handlers
|
||||
let _logger = setup_logger(&tauri_context);
|
||||
|
||||
// Ensure child processes die when spawned on windows
|
||||
// and then check for WebView2's existence
|
||||
#[cfg(windows)]
|
||||
@@ -125,37 +108,6 @@ fn main() -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn setup_logger(context: &tauri::Context) -> Result<flexi_logger::LoggerHandle> {
|
||||
use flexi_logger::{
|
||||
Age, Cleanup, Criterion, Duplicate, FileSpec, Logger, Naming, WriteMode,
|
||||
};
|
||||
use tauri::Error;
|
||||
|
||||
// Based on https://docs.rs/tauri/2.0.0-alpha.10/src/tauri/path/desktop.rs.html#238-256
|
||||
#[cfg(target_os = "macos")]
|
||||
let path = dirs_next::home_dir()
|
||||
.ok_or(Error::UnknownPath)
|
||||
.map(|dir| dir.join("Library/Logs").join(&context.config().identifier));
|
||||
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
let path = dirs_next::data_dir()
|
||||
.ok_or(Error::UnknownPath)
|
||||
.map(|dir| dir.join(&context.config().identifier).join("logs"));
|
||||
|
||||
Ok(Logger::try_with_env_or_str("info")?
|
||||
.log_to_file(FileSpec::default().directory(path.expect("We need a log dir")))
|
||||
.format_for_files(|w, now, record| util::logger_format(w, now, record, false))
|
||||
.format_for_stderr(|w, now, record| util::logger_format(w, now, record, true))
|
||||
.rotate(
|
||||
Criterion::Age(Age::Day),
|
||||
Naming::Timestamps,
|
||||
Cleanup::KeepLogFiles(2),
|
||||
)
|
||||
.duplicate_to_stderr(Duplicate::All)
|
||||
.write_mode(WriteMode::BufferAndFlush)
|
||||
.start()?)
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
fn setup_webview2() -> Result<()> {
|
||||
use crate::util::webview2_exists;
|
||||
@@ -249,6 +201,19 @@ fn setup_tauri(
|
||||
) -> Result<tauri::App, tauri::Error> {
|
||||
let exit_flag_terminated = exit_flag.clone();
|
||||
tauri::Builder::default()
|
||||
.plugin(
|
||||
tauri_plugin_log::Builder::new()
|
||||
.target(tauri_plugin_log::Target::new(
|
||||
tauri_plugin_log::TargetKind::Folder {
|
||||
path: get_log_dir(&context)?,
|
||||
file_name: Some("slimevr".to_string()),
|
||||
},
|
||||
))
|
||||
.max_file_size(30_000 /* bytes */)
|
||||
.rotation_strategy(tauri_plugin_log::RotationStrategy::KeepSome(3))
|
||||
.build(),
|
||||
)
|
||||
.plugin(tauri_plugin_opener::init())
|
||||
.plugin(tauri_plugin_dialog::init())
|
||||
.plugin(tauri_plugin_fs::init())
|
||||
.plugin(tauri_plugin_os::init())
|
||||
@@ -257,9 +222,6 @@ fn setup_tauri(
|
||||
.plugin(tauri_plugin_http::init())
|
||||
.invoke_handler(tauri::generate_handler![
|
||||
update_window_state,
|
||||
logging,
|
||||
erroring,
|
||||
warning,
|
||||
open_config_folder,
|
||||
open_logs_folder,
|
||||
tray::update_translations,
|
||||
@@ -271,6 +233,7 @@ fn setup_tauri(
|
||||
presence::create_discord_client,
|
||||
])
|
||||
.setup(move |app| {
|
||||
log::info!("SlimeVR started!");
|
||||
let window_state =
|
||||
WindowState::open_state(app.path().app_config_dir().unwrap())
|
||||
.unwrap_or_default();
|
||||
|
||||
@@ -10,8 +10,6 @@ use std::{
|
||||
|
||||
use clap::Parser;
|
||||
use const_format::concatcp;
|
||||
use flexi_logger::{style, DeferredNow};
|
||||
use log::Record;
|
||||
use shadow_rs::shadow;
|
||||
use tempfile::Builder;
|
||||
|
||||
@@ -111,6 +109,21 @@ pub fn show_error(text: &str) -> bool {
|
||||
== MessageDialogResult::Ok
|
||||
}
|
||||
|
||||
pub fn get_log_dir(context: &tauri::Context) -> tauri::Result<PathBuf> {
|
||||
use tauri::Error;
|
||||
#[cfg(target_os = "macos")]
|
||||
let path = dirs_next::home_dir()
|
||||
.ok_or(Error::UnknownPath)
|
||||
.map(|dir| dir.join("Library/Logs").join(&context.config().identifier))?;
|
||||
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
let path = dirs_next::data_dir()
|
||||
.ok_or(Error::UnknownPath)
|
||||
.map(|dir| dir.join(&context.config().identifier).join("logs"))?;
|
||||
|
||||
Ok(path)
|
||||
}
|
||||
|
||||
#[cfg(mobile)]
|
||||
pub fn show_error(text: &str) -> bool {
|
||||
// needs to do native stuff on mobile
|
||||
@@ -218,31 +231,3 @@ pub fn valid_java_paths() -> Vec<(OsString, i32)> {
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn logger_format(
|
||||
w: &mut dyn std::io::Write,
|
||||
_now: &mut DeferredNow,
|
||||
record: &Record,
|
||||
ansi: bool,
|
||||
) -> Result<(), std::io::Error> {
|
||||
let level = record.level();
|
||||
let module_path = record.module_path().unwrap_or("<unnamed>");
|
||||
// Optionally print target
|
||||
let target = if module_path.starts_with(record.target()) {
|
||||
"".to_string()
|
||||
} else {
|
||||
format!(", {}", record.target())
|
||||
};
|
||||
// A toggle for ansi formatting, mainly disabled for file logs, but enabled for terminal logs.
|
||||
if ansi {
|
||||
write!(
|
||||
w,
|
||||
"{} [{}{target}] {}",
|
||||
style(level).paint(level.to_string()),
|
||||
module_path,
|
||||
style(level).paint(record.args().to_string())
|
||||
)
|
||||
} else {
|
||||
write!(w, "{} [{}{target}] {}", level, module_path, record.args())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
],
|
||||
"files": {
|
||||
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar",
|
||||
"/lib/udev/rules.d/69-slimevr.rules": "./69-slimevr-devices.rules"
|
||||
"/lib/udev/rules.d/69-slimevr.rules": "./69-slimevr-devices.rules",
|
||||
"/usr/share/applications/safe-mode.dev.slimevr.SlimeVR.desktop": "./safe-mode.dev.slimevr.SlimeVR.desktop"
|
||||
},
|
||||
"desktopTemplate": "./dev.slimevr.SlimeVR.desktop",
|
||||
"section": "contrib/games"
|
||||
@@ -33,7 +34,8 @@
|
||||
],
|
||||
"files": {
|
||||
"/usr/share/slimevr/slimevr.jar": "../../server/desktop/build/libs/slimevr.jar",
|
||||
"/usr/lib/udev/rules.d/69-slimevr.rules": "./69-slimevr-devices.rules"
|
||||
"/usr/lib/udev/rules.d/69-slimevr.rules": "./69-slimevr-devices.rules",
|
||||
"/usr/share/applications/safe-mode.dev.slimevr.SlimeVR.desktop": "./safe-mode.dev.slimevr.SlimeVR.desktop"
|
||||
},
|
||||
"desktopTemplate": "./dev.slimevr.SlimeVR.desktop"
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ import { StatusProvider } from './components/providers/StatusSystemContext';
|
||||
import { VersionUpdateModal } from './components/VersionUpdateModal';
|
||||
import { CalibrationTutorialPage } from './components/onboarding/pages/CalibrationTutorial';
|
||||
import { AssignmentTutorialPage } from './components/onboarding/pages/assignment-preparation/AssignmentTutorial';
|
||||
import { open } from '@tauri-apps/plugin-shell';
|
||||
import { openUrl } from '@tauri-apps/plugin-opener';
|
||||
import semver from 'semver';
|
||||
import { useBreakpoint, useIsTauri } from './hooks/breakpoint';
|
||||
import { VRModePage } from './components/vr-mode/VRModePage';
|
||||
@@ -75,9 +75,9 @@ function Layout() {
|
||||
|
||||
return (
|
||||
<>
|
||||
<SerialDetectionModal></SerialDetectionModal>
|
||||
<VersionUpdateModal></VersionUpdateModal>
|
||||
<UnknownDeviceModal></UnknownDeviceModal>
|
||||
<SerialDetectionModal />
|
||||
<VersionUpdateModal />
|
||||
<UnknownDeviceModal />
|
||||
<SentryRoutes>
|
||||
<Route element={<AppLayout />}>
|
||||
<Route
|
||||
@@ -158,7 +158,7 @@ function Layout() {
|
||||
/>
|
||||
<Route path="trackers-assign" element={<TrackersAssignPage />} />
|
||||
<Route path="enter-vr" element={<EnterVRPage />} />
|
||||
<Route path="mounting/choose" element={<MountingChoose />}></Route>
|
||||
<Route path="mounting/choose" element={<MountingChoose />} />
|
||||
<Route path="mounting/auto" element={<AutomaticMountingPage />} />
|
||||
<Route path="mounting/manual" element={<ManualMountingPage />} />
|
||||
<Route path="reset-tutorial" element={<ResetTutorialPage />} />
|
||||
@@ -177,7 +177,7 @@ function Layout() {
|
||||
<Route path="stay-aligned" element={<StayAlignedSetup />} />
|
||||
<Route path="done" element={<DonePage />} />
|
||||
</Route>
|
||||
<Route path="*" element={<TopBar></TopBar>}></Route>
|
||||
<Route path="*" element={<TopBar />} />
|
||||
</Route>
|
||||
</SentryRoutes>
|
||||
</>
|
||||
@@ -283,7 +283,7 @@ export default function App() {
|
||||
useEffect(() => {
|
||||
function onKeyboard(ev: KeyboardEvent) {
|
||||
if (ev.key === 'F1') {
|
||||
return open(DOCS_SITE).catch(() => window.open(DOCS_SITE, '_blank'));
|
||||
return openUrl(DOCS_SITE).catch(() => window.open(DOCS_SITE, '_blank'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,10 +301,8 @@ export default function App() {
|
||||
<VersionContext.Provider value={updateFound}>
|
||||
<div className="h-full w-full text-standard bg-background-80 text-background-10">
|
||||
<Preload />
|
||||
{!websocketAPI.isConnected && (
|
||||
<ConnectionLost></ConnectionLost>
|
||||
)}
|
||||
{websocketAPI.isConnected && <Layout></Layout>}
|
||||
{!websocketAPI.isConnected && <ConnectionLost />}
|
||||
{websocketAPI.isConnected && <Layout />}
|
||||
</div>
|
||||
</VersionContext.Provider>
|
||||
</StatusProvider>
|
||||
|
||||
@@ -64,7 +64,7 @@ export function BVHButton(props: React.HTMLAttributes<HTMLButtonElement>) {
|
||||
'border',
|
||||
recording ? 'border-status-critical' : 'border-transparent'
|
||||
)}
|
||||
></BigButton>
|
||||
/>
|
||||
</Localized>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ export function EmptyLayout({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<div className="empty-layout h-full">
|
||||
<div style={{ gridArea: 't' }}>
|
||||
<TopBar></TopBar>
|
||||
<TopBar />
|
||||
</div>
|
||||
<div style={{ gridArea: 'c' }} className="mt-2 relative">
|
||||
{children}
|
||||
|
||||
@@ -35,8 +35,8 @@ export function ErrorConsentModal({
|
||||
<Localized
|
||||
id={'error_collection_modal-description_v2'}
|
||||
elems={{
|
||||
b: <b></b>,
|
||||
h1: <span className="text-lg font-bold"></span>,
|
||||
b: <b />,
|
||||
h1: <span className="text-lg font-bold" />,
|
||||
}}
|
||||
>
|
||||
<Typography
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
grid-template:
|
||||
't t t' var(--topbar-h)
|
||||
's c w' calc(100% - var(--topbar-h))
|
||||
/ var(--navbar-w) calc(100% - var(--navbar-w) - var(--widget-w)) var(--widget-w);
|
||||
/ var(--navbar-w) calc(100% - var(--navbar-w) - var(--widget-w)) var(
|
||||
--widget-w
|
||||
);
|
||||
}
|
||||
|
||||
@screen mobile {
|
||||
|
||||
@@ -61,10 +61,10 @@ export function MainLayout({
|
||||
<div className="">
|
||||
<div className="main-layout w-full h-screen">
|
||||
<div style={{ gridArea: 't' }}>
|
||||
<TopBar></TopBar>
|
||||
<TopBar />
|
||||
</div>
|
||||
<div style={{ gridArea: 's' }} className="overflow-y-auto">
|
||||
<Navbar></Navbar>
|
||||
<Navbar />
|
||||
</div>
|
||||
<div
|
||||
style={{ gridArea: 'c' }}
|
||||
@@ -81,7 +81,7 @@ export function MainLayout({
|
||||
style={{ gridArea: 'w' }}
|
||||
className="overflow-y-auto mr-2 my-2 rounded-xl bg-background-70 flex flex-col gap-2 p-2 widgets"
|
||||
>
|
||||
<WidgetsComponent></WidgetsComponent>
|
||||
<WidgetsComponent />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -70,13 +70,13 @@ export function MainLinks() {
|
||||
|
||||
return (
|
||||
<>
|
||||
<NavButton to="/" icon={<CubeIcon></CubeIcon>}>
|
||||
<NavButton to="/" icon={<CubeIcon />}>
|
||||
{l10n.getString('navbar-home')}
|
||||
</NavButton>
|
||||
<NavButton
|
||||
to="/onboarding/trackers-assign"
|
||||
state={{ alonePage: true }}
|
||||
icon={<HumanIcon></HumanIcon>}
|
||||
icon={<HumanIcon />}
|
||||
>
|
||||
{l10n.getString('navbar-trackers_assign')}
|
||||
</NavButton>
|
||||
@@ -84,7 +84,7 @@ export function MainLinks() {
|
||||
to="/onboarding/mounting/choose"
|
||||
match="/onboarding/mounting/*"
|
||||
state={{ alonePage: true }}
|
||||
icon={<WrenchIcon></WrenchIcon>}
|
||||
icon={<WrenchIcon />}
|
||||
>
|
||||
{l10n.getString('navbar-mounting')}
|
||||
</NavButton>
|
||||
@@ -92,12 +92,12 @@ export function MainLinks() {
|
||||
to="/onboarding/body-proportions/scaled"
|
||||
match="/onboarding/body-proportions/*"
|
||||
state={{ alonePage: true }}
|
||||
icon={<RulerIcon></RulerIcon>}
|
||||
icon={<RulerIcon />}
|
||||
>
|
||||
{l10n.getString('navbar-body_proportions')}
|
||||
</NavButton>
|
||||
{config?.showNavbarOnboarding && (
|
||||
<NavButton to="/onboarding/home" icon={<SparkleIcon></SparkleIcon>}>
|
||||
<NavButton to="/onboarding/home" icon={<SparkleIcon />}>
|
||||
{l10n.getString('navbar-onboarding')}
|
||||
</NavButton>
|
||||
)}
|
||||
@@ -111,18 +111,18 @@ export function Navbar() {
|
||||
|
||||
return isMobile ? (
|
||||
<div className="flex flex-row justify-around px-2 pt-2 bg-background-80 gap-2">
|
||||
<MainLinks></MainLinks>
|
||||
<MainLinks />
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex flex-col h-full p-2 gap-2">
|
||||
<div className="flex flex-col flex-grow gap-2">
|
||||
<MainLinks></MainLinks>
|
||||
<MainLinks />
|
||||
</div>
|
||||
<NavButton
|
||||
to="/settings/trackers"
|
||||
match="/settings/*"
|
||||
state={{ scrollTo: 'steamvr' }}
|
||||
icon={<GearIcon></GearIcon>}
|
||||
icon={<GearIcon />}
|
||||
>
|
||||
{l10n.getString('navbar-settings')}
|
||||
</NavButton>
|
||||
|
||||
@@ -69,7 +69,7 @@ export function SerialDetectionModal() {
|
||||
{!showWifiForm && (
|
||||
<>
|
||||
<div className="flex flex-col items-center gap-3 fill-accent-background-20">
|
||||
<USBIcon></USBIcon>
|
||||
<USBIcon />
|
||||
<div className="flex flex-col items-center gap-2">
|
||||
<Typography variant="main-title">
|
||||
{l10n.getString('serial_detection-new_device-p0')}
|
||||
@@ -101,7 +101,7 @@ export function SerialDetectionModal() {
|
||||
>
|
||||
<div className="flex flex-col items-center gap-3">
|
||||
<div className="fill-background-10">
|
||||
<BulbIcon></BulbIcon>
|
||||
<BulbIcon />
|
||||
</div>
|
||||
<Typography variant="main-title">
|
||||
{l10n.getString('serial_detection-new_device-p0')}
|
||||
|
||||
@@ -14,7 +14,7 @@ import { SlimeVRIcon } from './commons/icon/SimevrIcon';
|
||||
import { ProgressBar } from './commons/ProgressBar';
|
||||
import { Typography } from './commons/Typography';
|
||||
import { DownloadIcon } from './commons/icon/DownloadIcon';
|
||||
import { open } from '@tauri-apps/plugin-shell';
|
||||
import { openUrl } from '@tauri-apps/plugin-opener';
|
||||
import { DOCS_SITE, GH_REPO, VersionContext } from '@/App';
|
||||
import classNames from 'classnames';
|
||||
import { QuestionIcon } from './commons/icon/QuestionIcon';
|
||||
@@ -47,7 +47,7 @@ export function VersionTag() {
|
||||
)}
|
||||
onClick={() => {
|
||||
const url = `https://github.com/${GH_REPO}/releases`;
|
||||
open(url).catch(() => window.open(url, '_blank'));
|
||||
openUrl(url).catch(() => window.open(url, '_blank'));
|
||||
}}
|
||||
>
|
||||
{(__VERSION_TAG__ || __COMMIT_HASH__) + (__GIT_CLEAN__ ? '' : '-dirty')}
|
||||
@@ -155,7 +155,7 @@ export function TopBar({
|
||||
return (
|
||||
<>
|
||||
<div className="flex gap-0 flex-col">
|
||||
<div className="h-[3px]"></div>
|
||||
<div className="h-[3px]" />
|
||||
<div data-tauri-drag-region className="flex gap-2 h-[38px] z-50">
|
||||
<div
|
||||
className="flex px-2 py-2 justify-around z-50"
|
||||
@@ -168,7 +168,7 @@ export function TopBar({
|
||||
className="flex justify-around flex-col select-all"
|
||||
data-tauri-drag-region
|
||||
>
|
||||
<SlimeVRIcon></SlimeVRIcon>
|
||||
<SlimeVRIcon />
|
||||
</NavLink>
|
||||
)}
|
||||
{(isTauri || !isMobile) && !config?.decorations && (
|
||||
@@ -181,7 +181,7 @@ export function TopBar({
|
||||
)}
|
||||
{(!(isMobile && !config?.decorations) || showVersionMobile) && (
|
||||
<>
|
||||
<VersionTag></VersionTag>
|
||||
<VersionTag />
|
||||
{doesMatchSettings && (
|
||||
<div
|
||||
className={classNames(
|
||||
@@ -203,10 +203,10 @@ export function TopBar({
|
||||
const url = document.body.classList.contains('windows')
|
||||
? 'https://slimevr.dev/download'
|
||||
: `https://github.com/${GH_REPO}/releases/latest`;
|
||||
open(url).catch(() => window.open(url, '_blank'));
|
||||
openUrl(url).catch(() => window.open(url, '_blank'));
|
||||
}}
|
||||
>
|
||||
<DownloadIcon></DownloadIcon>
|
||||
<DownloadIcon />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
@@ -222,11 +222,7 @@ export function TopBar({
|
||||
data-tauri-drag-region
|
||||
>
|
||||
{progress !== undefined && (
|
||||
<ProgressBar
|
||||
progress={progress}
|
||||
height={3}
|
||||
parts={3}
|
||||
></ProgressBar>
|
||||
<ProgressBar progress={progress} height={3} parts={3} />
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
@@ -256,7 +252,7 @@ export function TopBar({
|
||||
data-tauri-drag-region
|
||||
state={{ scrollTo: 'steamvr' }}
|
||||
>
|
||||
<GearIcon></GearIcon>
|
||||
<GearIcon />
|
||||
</NavLink>
|
||||
|
||||
{!isMobile && (
|
||||
@@ -266,10 +262,12 @@ export function TopBar({
|
||||
'hover:bg-background-60 rounded-full w-7 h-7 cursor-pointer'
|
||||
)}
|
||||
onClick={() =>
|
||||
open(DOCS_SITE).catch(() => window.open(DOCS_SITE, '_blank'))
|
||||
openUrl(DOCS_SITE).catch(() =>
|
||||
window.open(DOCS_SITE, '_blank')
|
||||
)
|
||||
}
|
||||
>
|
||||
<QuestionIcon></QuestionIcon>
|
||||
<QuestionIcon />
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -279,19 +277,19 @@ export function TopBar({
|
||||
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
|
||||
onClick={() => getCurrentWindow().minimize()}
|
||||
>
|
||||
<MinimiseIcon></MinimiseIcon>
|
||||
<MinimiseIcon />
|
||||
</div>
|
||||
<div
|
||||
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
|
||||
onClick={() => getCurrentWindow().toggleMaximize()}
|
||||
>
|
||||
<MaximiseIcon></MaximiseIcon>
|
||||
<MaximiseIcon />
|
||||
</div>
|
||||
<div
|
||||
className="flex items-center justify-center hover:bg-background-60 rounded-full w-7 h-7"
|
||||
onClick={() => tryCloseApp()}
|
||||
>
|
||||
<CloseIcon></CloseIcon>
|
||||
<CloseIcon />
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
@@ -299,7 +297,7 @@ export function TopBar({
|
||||
</div>
|
||||
{isMobile && progress !== undefined && (
|
||||
<div className="flex gap-2 px-2 h-6 mb-2 justify-center flex-col border-b border-accent-background-30">
|
||||
<ProgressBar progress={progress} height={3} parts={3}></ProgressBar>
|
||||
<ProgressBar progress={progress} height={3} parts={3} />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
@@ -333,7 +331,7 @@ export function TopBar({
|
||||
setConnectedTrackerWarning(false);
|
||||
getCurrentWindow().requestUserAttention(null);
|
||||
}}
|
||||
></TrackersStillOnModal>
|
||||
/>
|
||||
<ErrorConsentModal
|
||||
isOpen={config?.errorTracking === null}
|
||||
accept={() => setConfig({ errorTracking: true })}
|
||||
|
||||
@@ -45,7 +45,7 @@ export function TrackingPauseButton(
|
||||
}
|
||||
onClick={toggleTracking}
|
||||
className={classNames(props.className, 'min-h-24')}
|
||||
></BigButton>
|
||||
/>
|
||||
</Localized>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -57,13 +57,13 @@ export function TrayOrExitModal({
|
||||
name="exitType"
|
||||
label={l10n.getString('tray_or_exit_modal-radio-exit')}
|
||||
value="0"
|
||||
></Radio>
|
||||
/>
|
||||
<Radio
|
||||
control={control}
|
||||
name="exitType"
|
||||
label={l10n.getString('tray_or_exit_modal-radio-tray')}
|
||||
value="1"
|
||||
></Radio>
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Button type="submit" variant="primary">
|
||||
|
||||
@@ -63,7 +63,7 @@ export function UnknownDeviceModal() {
|
||||
</Typography>
|
||||
<Localized
|
||||
id="unknown_device-modal-description"
|
||||
elems={{ b: <b></b> }}
|
||||
elems={{ b: <b /> }}
|
||||
vars={{ deviceId: currentTracker ?? 'ERROR' }}
|
||||
>
|
||||
<Typography
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useContext, useState } from 'react';
|
||||
import { BaseModal } from './commons/BaseModal';
|
||||
import { Button } from './commons/Button';
|
||||
import { Typography } from './commons/Typography';
|
||||
import { open } from '@tauri-apps/plugin-shell';
|
||||
import { openUrl } from '@tauri-apps/plugin-opener';
|
||||
import semver from 'semver';
|
||||
import { GH_REPO, VersionContext } from '@/App';
|
||||
import { error } from '@/utils/logging';
|
||||
@@ -54,7 +54,7 @@ export function VersionUpdateModal() {
|
||||
const url = document.body.classList.contains('windows')
|
||||
? 'https://slimevr.dev/download'
|
||||
: `https://github.com/${GH_REPO}/releases/latest`;
|
||||
await open(url).catch(() => window.open(url, '_blank'));
|
||||
await openUrl(url).catch(() => window.open(url, '_blank'));
|
||||
closeModal();
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -33,7 +33,7 @@ function UnprioritizedStatuses() {
|
||||
key={status.id}
|
||||
elems={{
|
||||
PublicFixLink: (
|
||||
<A href="https://docs.slimevr.dev/common-issues.html#network-profile-is-currently-set-to-public"></A>
|
||||
<A href="https://docs.slimevr.dev/common-issues.html#network-profile-is-currently-set-to-public" />
|
||||
),
|
||||
}}
|
||||
>
|
||||
@@ -52,33 +52,33 @@ export function WidgetsComponent() {
|
||||
return (
|
||||
<>
|
||||
<div className="grid grid-cols-2 gap-2 w-full [&>*:nth-child(odd):last-of-type]:col-span-full">
|
||||
<ResetButton type={ResetType.Yaw} size="big"></ResetButton>
|
||||
<ResetButton type={ResetType.Full} size="big"></ResetButton>
|
||||
<ResetButton type={ResetType.Mounting} size="big"></ResetButton>
|
||||
<ResetButton type={ResetType.Yaw} size="big" />
|
||||
<ResetButton type={ResetType.Full} size="big" />
|
||||
<ResetButton type={ResetType.Mounting} size="big" />
|
||||
<ResetButton
|
||||
type={ResetType.Mounting}
|
||||
size="big"
|
||||
bodyPartsToReset="feet"
|
||||
></ResetButton>
|
||||
/>
|
||||
<ResetButton
|
||||
type={ResetType.Mounting}
|
||||
size="big"
|
||||
bodyPartsToReset="fingers"
|
||||
></ResetButton>
|
||||
<ClearMountingButton></ClearMountingButton>
|
||||
{!window.__ANDROID__?.isThere() && <BVHButton></BVHButton>}
|
||||
<TrackingPauseButton></TrackingPauseButton>
|
||||
/>
|
||||
<ClearMountingButton />
|
||||
{!window.__ANDROID__?.isThere() && <BVHButton />}
|
||||
<TrackingPauseButton />
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<OverlayWidget></OverlayWidget>
|
||||
<OverlayWidget />
|
||||
</div>
|
||||
<div className="mb-2">
|
||||
<ToggleableSkeletonVisualizerWidget height={400} />
|
||||
</div>
|
||||
<UnprioritizedStatuses></UnprioritizedStatuses>
|
||||
<UnprioritizedStatuses />
|
||||
{config?.debug && (
|
||||
<div className="w-full">
|
||||
<DeveloperModeWidget></DeveloperModeWidget>
|
||||
<DeveloperModeWidget />
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { open } from '@tauri-apps/plugin-shell';
|
||||
import { openUrl } from '@tauri-apps/plugin-opener';
|
||||
import { ReactNode } from 'react';
|
||||
|
||||
export function A({ href, children }: { href?: string; children?: ReactNode }) {
|
||||
@@ -6,7 +6,7 @@ export function A({ href, children }: { href?: string; children?: ReactNode }) {
|
||||
<a
|
||||
href="javascript:void(0)"
|
||||
onClick={() =>
|
||||
href && open(href).catch(() => window.open(href, '_blank'))
|
||||
href && openUrl(href).catch(() => window.open(href, '_blank'))
|
||||
}
|
||||
className="underline"
|
||||
>
|
||||
|
||||
@@ -36,13 +36,13 @@ export function ArrowLink({
|
||||
<NavLink to={to} state={state} className={classes}>
|
||||
{direction === 'left' && (
|
||||
<div className="flex flex-col justify-center">
|
||||
<ArrowLeftIcon></ArrowLeftIcon>
|
||||
<ArrowLeftIcon />
|
||||
</div>
|
||||
)}
|
||||
{children}
|
||||
{direction === 'right' && (
|
||||
<div className="flex flex-col justify-center">
|
||||
<ArrowRightIcon></ArrowRightIcon>
|
||||
<ArrowRightIcon />
|
||||
</div>
|
||||
)}
|
||||
</NavLink>
|
||||
|
||||
@@ -94,7 +94,7 @@ function Dot({
|
||||
height: dotSize,
|
||||
outlineWidth: globalVelocity * 2 + 2,
|
||||
}}
|
||||
></div>
|
||||
/>
|
||||
{trackers?.map(({ tracker }, index) => (
|
||||
<Tracker
|
||||
tracker={tracker}
|
||||
@@ -187,7 +187,7 @@ export function BodyDisplay({
|
||||
variant === 'tracker-select' && 'mx-10'
|
||||
)}
|
||||
>
|
||||
<PersonFrontIcon width={width}></PersonFrontIcon>
|
||||
<PersonFrontIcon width={width} />
|
||||
{slotsButtonsPos.map((dotData) => (
|
||||
<Dot
|
||||
{...dotData}
|
||||
|
||||
@@ -198,7 +198,7 @@ export function BodyInteractions({
|
||||
className="absolute w-full h-full top-0 z-10"
|
||||
width="100%"
|
||||
height="100%"
|
||||
></canvas>
|
||||
/>
|
||||
<div className="flex">
|
||||
<div ref={leftContainerRef} className="z-10">
|
||||
{leftControls}
|
||||
@@ -210,7 +210,7 @@ export function BodyInteractions({
|
||||
variant === 'tracker-select' && 'mobile:mx-0 xs:mx-10'
|
||||
)}
|
||||
>
|
||||
<PersonFrontIcon width={width} mirror={mirror}></PersonFrontIcon>
|
||||
<PersonFrontIcon width={width} mirror={mirror} />
|
||||
{slotsButtonsPos.map(
|
||||
({ top, left, height, width, id, hidden, buttonOffset }) => (
|
||||
<div
|
||||
@@ -234,7 +234,7 @@ export function BodyInteractions({
|
||||
height: dotsSize,
|
||||
animationDuration: '1.5s',
|
||||
}}
|
||||
></div>
|
||||
/>
|
||||
)}
|
||||
<div
|
||||
className={classNames(
|
||||
@@ -249,7 +249,7 @@ export function BodyInteractions({
|
||||
width: dotsSize,
|
||||
height: dotsSize,
|
||||
}}
|
||||
></div>
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -28,155 +28,103 @@ export const mapPart: Record<
|
||||
currentLocales: string[];
|
||||
}) => JSX.Element
|
||||
> = {
|
||||
[BodyPart.UPPER_CHEST]: ({ width }) => (
|
||||
<UpperChestIcon width={width}></UpperChestIcon>
|
||||
),
|
||||
[BodyPart.CHEST]: ({ width }) => <ChestIcon width={width}></ChestIcon>,
|
||||
[BodyPart.HEAD]: ({ width }) => <HeadsetIcon width={width}></HeadsetIcon>,
|
||||
[BodyPart.HIP]: ({ width }) => <HipIcon width={width}></HipIcon>,
|
||||
[BodyPart.LEFT_HIP]: ({ width }) => <HipIcon width={width}></HipIcon>, // Unused
|
||||
[BodyPart.RIGHT_HIP]: ({ width }) => <HipIcon width={width}></HipIcon>, // Unused
|
||||
[BodyPart.UPPER_CHEST]: ({ width }) => <UpperChestIcon width={width} />,
|
||||
[BodyPart.CHEST]: ({ width }) => <ChestIcon width={width} />,
|
||||
[BodyPart.HEAD]: ({ width }) => <HeadsetIcon width={width} />,
|
||||
[BodyPart.HIP]: ({ width }) => <HipIcon width={width} />,
|
||||
[BodyPart.LEFT_HIP]: ({ width }) => <HipIcon width={width} />, // Unused
|
||||
[BodyPart.RIGHT_HIP]: ({ width }) => <HipIcon width={width} />, // Unused
|
||||
[BodyPart.LEFT_FOOT]: ({ width, currentLocales }) =>
|
||||
currentLocales.includes('en-x-owo') ? (
|
||||
<PawIcon></PawIcon>
|
||||
<PawIcon />
|
||||
) : (
|
||||
<FootIcon width={width}></FootIcon>
|
||||
<FootIcon width={width} />
|
||||
),
|
||||
[BodyPart.LEFT_HAND]: ({ width }) => (
|
||||
<ControllerIcon width={width}></ControllerIcon>
|
||||
),
|
||||
[BodyPart.LEFT_LOWER_ARM]: ({ width }) => (
|
||||
<LowerArmIcon width={width}></LowerArmIcon>
|
||||
),
|
||||
[BodyPart.LEFT_LOWER_LEG]: ({ width }) => (
|
||||
<AnkleIcon width={width}></AnkleIcon>
|
||||
),
|
||||
[BodyPart.LEFT_SHOULDER]: ({ width }) => (
|
||||
<ShoulderIcon width={width}></ShoulderIcon>
|
||||
),
|
||||
[BodyPart.LEFT_UPPER_ARM]: ({ width }) => (
|
||||
<UpperArmIcon width={width}></UpperArmIcon>
|
||||
),
|
||||
[BodyPart.LEFT_UPPER_LEG]: ({ width }) => (
|
||||
<UpperLegIcon width={width}></UpperLegIcon>
|
||||
),
|
||||
[BodyPart.NECK]: ({ width }) => <NeckIcon width={width}></NeckIcon>,
|
||||
[BodyPart.NONE]: ({ width }) => <SlimeVRIcon width={width}></SlimeVRIcon>,
|
||||
[BodyPart.LEFT_HAND]: ({ width }) => <ControllerIcon width={width} />,
|
||||
[BodyPart.LEFT_LOWER_ARM]: ({ width }) => <LowerArmIcon width={width} />,
|
||||
[BodyPart.LEFT_LOWER_LEG]: ({ width }) => <AnkleIcon width={width} />,
|
||||
[BodyPart.LEFT_SHOULDER]: ({ width }) => <ShoulderIcon width={width} />,
|
||||
[BodyPart.LEFT_UPPER_ARM]: ({ width }) => <UpperArmIcon width={width} />,
|
||||
[BodyPart.LEFT_UPPER_LEG]: ({ width }) => <UpperLegIcon width={width} />,
|
||||
[BodyPart.NECK]: ({ width }) => <NeckIcon width={width} />,
|
||||
[BodyPart.NONE]: ({ width }) => <SlimeVRIcon width={width} />,
|
||||
[BodyPart.RIGHT_FOOT]: ({ width, currentLocales }) =>
|
||||
currentLocales.includes('en-x-owo') ? (
|
||||
<PawIcon></PawIcon>
|
||||
<PawIcon />
|
||||
) : (
|
||||
<FootIcon width={width} flipped></FootIcon>
|
||||
<FootIcon width={width} flipped />
|
||||
),
|
||||
[BodyPart.RIGHT_HAND]: ({ width }) => (
|
||||
<ControllerIcon width={width} flipped></ControllerIcon>
|
||||
<ControllerIcon width={width} flipped />
|
||||
),
|
||||
[BodyPart.RIGHT_LOWER_ARM]: ({ width }) => (
|
||||
<LowerArmIcon width={width} flipped></LowerArmIcon>
|
||||
<LowerArmIcon width={width} flipped />
|
||||
),
|
||||
[BodyPart.RIGHT_LOWER_LEG]: ({ width }) => (
|
||||
<AnkleIcon width={width} flipped></AnkleIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_SHOULDER]: ({ width }) => (
|
||||
<ShoulderIcon width={width}></ShoulderIcon>
|
||||
<AnkleIcon width={width} flipped />
|
||||
),
|
||||
[BodyPart.RIGHT_SHOULDER]: ({ width }) => <ShoulderIcon width={width} />,
|
||||
[BodyPart.RIGHT_UPPER_ARM]: ({ width }) => (
|
||||
<UpperArmIcon width={width} flipped></UpperArmIcon>
|
||||
<UpperArmIcon width={width} flipped />
|
||||
),
|
||||
[BodyPart.RIGHT_UPPER_LEG]: ({ width }) => (
|
||||
<UpperLegIcon width={width} flipped></UpperLegIcon>
|
||||
<UpperLegIcon width={width} flipped />
|
||||
),
|
||||
[BodyPart.WAIST]: ({ width }) => <WaistIcon width={width}></WaistIcon>,
|
||||
[BodyPart.WAIST]: ({ width }) => <WaistIcon width={width} />,
|
||||
[BodyPart.LEFT_THUMB_METACARPAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_THUMB_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_THUMB_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_INDEX_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.LEFT_THUMB_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_THUMB_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_INDEX_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_INDEX_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_INDEX_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_MIDDLE_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.LEFT_INDEX_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_MIDDLE_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_MIDDLE_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_MIDDLE_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_RING_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.LEFT_MIDDLE_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_RING_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_RING_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_RING_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_LITTLE_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.LEFT_RING_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_LITTLE_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.LEFT_LITTLE_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.LEFT_LITTLE_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.LEFT_LITTLE_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_THUMB_METACARPAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_THUMB_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_THUMB_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_INDEX_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_THUMB_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_THUMB_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_INDEX_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_INDEX_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_INDEX_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_INDEX_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_MIDDLE_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_MIDDLE_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_MIDDLE_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_RING_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_MIDDLE_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_RING_PROXIMAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_RING_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_RING_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_RING_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
[BodyPart.RIGHT_LITTLE_PROXIMAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_LITTLE_INTERMEDIATE]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
),
|
||||
[BodyPart.RIGHT_LITTLE_DISTAL]: ({ width }) => (
|
||||
<FingersIcon width={width}></FingersIcon>
|
||||
<FingersIcon width={width} />
|
||||
),
|
||||
[BodyPart.RIGHT_LITTLE_DISTAL]: ({ width }) => <FingersIcon width={width} />,
|
||||
};
|
||||
|
||||
export function BodyPartIcon({
|
||||
|
||||
@@ -29,7 +29,7 @@ function ButtonContent({
|
||||
</div>
|
||||
{loading && (
|
||||
<div className="absolute top-0 left-0 w-full h-full flex justify-center items-center fill-background-10">
|
||||
<LoaderIcon slimeState={SlimeState.JUMPY}></LoaderIcon>
|
||||
<LoaderIcon slimeState={SlimeState.JUMPY} />
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
|
||||
@@ -1,31 +1,36 @@
|
||||
import classNames from 'classnames';
|
||||
import { useMemo } from 'react';
|
||||
import { forwardRef, useMemo } from 'react';
|
||||
import { Control, Controller } from 'react-hook-form';
|
||||
|
||||
export const CHECKBOX_CLASSES = classNames(
|
||||
'bg-background-50 border-background-50 rounded-md w-5 h-5 text-accent-background-30 focus:border-accent-background-40 focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent'
|
||||
);
|
||||
|
||||
export function CheckBox({
|
||||
label,
|
||||
variant = 'checkbox',
|
||||
color = 'primary',
|
||||
control,
|
||||
outlined,
|
||||
name,
|
||||
loading,
|
||||
// input props
|
||||
disabled,
|
||||
...props
|
||||
}: {
|
||||
label: string;
|
||||
control: Control<any>;
|
||||
name: string;
|
||||
variant?: 'checkbox' | 'toggle';
|
||||
color?: 'primary' | 'secondary' | 'tertiary';
|
||||
outlined?: boolean;
|
||||
loading?: boolean;
|
||||
} & React.HTMLProps<HTMLInputElement>) {
|
||||
export const CheckboxInternal = forwardRef<
|
||||
HTMLInputElement,
|
||||
{
|
||||
disabled?: boolean;
|
||||
variant?: 'checkbox' | 'toggle';
|
||||
color?: 'primary' | 'secondary' | 'tertiary';
|
||||
label?: string;
|
||||
outlined?: boolean;
|
||||
loading?: boolean;
|
||||
name: string;
|
||||
} & Partial<React.HTMLProps<HTMLInputElement>>
|
||||
>(function AppCheckbox(
|
||||
{
|
||||
variant = 'checkbox',
|
||||
color = 'primary',
|
||||
outlined = false,
|
||||
loading = false,
|
||||
disabled = false,
|
||||
label,
|
||||
onChange,
|
||||
checked,
|
||||
name,
|
||||
},
|
||||
ref
|
||||
) {
|
||||
const classes = useMemo(() => {
|
||||
const vriantsMap = {
|
||||
checkbox: {
|
||||
@@ -44,68 +49,102 @@ export function CheckBox({
|
||||
return vriantsMap[variant];
|
||||
}, [variant]);
|
||||
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
{
|
||||
'rounded-md': outlined,
|
||||
'text-background-40': disabled,
|
||||
'text-background-10': !disabled,
|
||||
'bg-background-60': outlined && color === 'primary',
|
||||
'bg-background-70': outlined && color === 'secondary',
|
||||
'bg-background-50': outlined && color === 'tertiary',
|
||||
},
|
||||
'flex items-center gap-2 w-full'
|
||||
)}
|
||||
>
|
||||
<label
|
||||
className={classNames(
|
||||
'w-full h-[42px] flex gap-2 items-center text-standard-bold',
|
||||
{
|
||||
'px-3': outlined,
|
||||
'cursor-pointer': !disabled || !loading,
|
||||
'cursor-default': disabled || loading,
|
||||
}
|
||||
)}
|
||||
>
|
||||
<input
|
||||
ref={ref}
|
||||
onChange={onChange}
|
||||
checked={checked}
|
||||
name={name}
|
||||
className={classes.checkbox}
|
||||
type="checkbox"
|
||||
disabled={disabled || loading}
|
||||
/>
|
||||
{variant === 'toggle' && (
|
||||
<div
|
||||
className={classNames(classes.toggle, {
|
||||
'bg-accent-background-30': checked && !disabled && !loading,
|
||||
'bg-accent-background-50': checked && disabled,
|
||||
'bg-accent-background-30 animate-pulse': loading && !disabled,
|
||||
'bg-background-50':
|
||||
((!checked && color == 'primary') || color == 'secondary') &&
|
||||
!loading,
|
||||
'bg-background-40': !checked && color == 'tertiary' && !loading,
|
||||
})}
|
||||
>
|
||||
<div
|
||||
className={classNames(classes.pin, {
|
||||
'left-0': !checked && !loading,
|
||||
'opacity-0': loading,
|
||||
'right-0': checked && !loading,
|
||||
'bg-background-30': disabled,
|
||||
})}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{label}
|
||||
</label>
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
export function CheckBox({
|
||||
label,
|
||||
variant = 'checkbox',
|
||||
color = 'primary',
|
||||
control,
|
||||
outlined,
|
||||
name,
|
||||
loading,
|
||||
disabled,
|
||||
}: {
|
||||
label: string;
|
||||
control: Control<any>;
|
||||
name: string;
|
||||
variant?: 'checkbox' | 'toggle';
|
||||
color?: 'primary' | 'secondary' | 'tertiary';
|
||||
outlined?: boolean;
|
||||
loading?: boolean;
|
||||
} & React.HTMLProps<HTMLInputElement>) {
|
||||
return (
|
||||
<Controller
|
||||
control={control}
|
||||
name={name}
|
||||
render={({ field: { onChange, value, ref, name } }) => (
|
||||
<div
|
||||
className={classNames(
|
||||
{
|
||||
'rounded-lg': outlined,
|
||||
'text-background-10': !outlined || disabled,
|
||||
'bg-background-60': outlined && color === 'primary',
|
||||
'bg-background-70': outlined && color === 'secondary',
|
||||
'bg-background-50': outlined && color === 'tertiary',
|
||||
},
|
||||
'flex items-center gap-2 w-full'
|
||||
)}
|
||||
>
|
||||
<label
|
||||
className={classNames(
|
||||
'w-full py-3 flex gap-2 items-center text-standard-bold',
|
||||
{
|
||||
'px-3': outlined,
|
||||
'cursor-pointer': !disabled || !loading,
|
||||
'cursor-default': disabled || loading,
|
||||
}
|
||||
)}
|
||||
>
|
||||
<input
|
||||
ref={ref}
|
||||
onChange={onChange}
|
||||
checked={value || false}
|
||||
name={name}
|
||||
className={classes.checkbox}
|
||||
type="checkbox"
|
||||
disabled={disabled || loading}
|
||||
{...props}
|
||||
/>
|
||||
{variant === 'toggle' && (
|
||||
<div
|
||||
className={classNames(classes.toggle, {
|
||||
'bg-accent-background-30': value && !disabled && !loading,
|
||||
'bg-accent-background-50': value && disabled,
|
||||
'bg-accent-background-30 animate-pulse': loading && !disabled,
|
||||
'bg-background-50':
|
||||
((!value && color == 'primary') || color == 'secondary') &&
|
||||
!loading,
|
||||
'bg-background-40': !value && color == 'tertiary' && !loading,
|
||||
})}
|
||||
>
|
||||
<div
|
||||
className={classNames(classes.pin, {
|
||||
'left-0': !value && !loading,
|
||||
'opacity-0': loading,
|
||||
'right-0': value && !loading,
|
||||
'bg-background-30': disabled,
|
||||
})}
|
||||
></div>
|
||||
</div>
|
||||
)}
|
||||
{label}
|
||||
</label>
|
||||
</div>
|
||||
<CheckboxInternal
|
||||
label={label}
|
||||
variant={variant}
|
||||
color={color}
|
||||
outlined={outlined}
|
||||
name={name}
|
||||
loading={loading}
|
||||
disabled={disabled}
|
||||
checked={value}
|
||||
onChange={onChange}
|
||||
ref={ref}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -1,240 +1,434 @@
|
||||
import classNames from 'classnames';
|
||||
import { ReactNode, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
||||
import { Control, Controller, UseControllerProps } from 'react-hook-form';
|
||||
import {
|
||||
forwardRef,
|
||||
ReactNode,
|
||||
useEffect,
|
||||
useLayoutEffect,
|
||||
useRef,
|
||||
useState,
|
||||
} from 'react';
|
||||
import {
|
||||
Control,
|
||||
FieldError,
|
||||
useController,
|
||||
UseControllerProps,
|
||||
} from 'react-hook-form';
|
||||
import { ArrowDownIcon, ArrowUpIcon } from './icon/ArrowIcons';
|
||||
import { a11yClick } from '@/utils/a11y';
|
||||
import { createPortal } from 'react-dom';
|
||||
import { ArrowDownIcon } from './icon/ArrowIcons';
|
||||
|
||||
interface DropdownProps {
|
||||
direction?: DropdownDirection;
|
||||
variant?: 'primary' | 'secondary' | 'tertiary';
|
||||
alignment?: 'right' | 'left';
|
||||
display?: 'fit' | 'block';
|
||||
placeholder: string;
|
||||
control: Control<any>;
|
||||
name: string;
|
||||
items: DropdownItem[];
|
||||
maxHeight?: string | number;
|
||||
rules?: UseControllerProps<any>['rules'];
|
||||
}
|
||||
|
||||
type DropdownItemsProps = Pick<
|
||||
DropdownProps,
|
||||
'direction' | 'variant' | 'alignment' | 'display' | 'items' | 'maxHeight'
|
||||
> & {
|
||||
onSelectItem: (item: DropdownItem) => void;
|
||||
onBackdropClick: () => void;
|
||||
type DropdownItem = {
|
||||
value: string;
|
||||
dropdownBounds: DOMRect;
|
||||
label: ReactNode;
|
||||
};
|
||||
|
||||
export interface DropdownItem {
|
||||
label?: string;
|
||||
component?: ReactNode;
|
||||
value: string;
|
||||
fontName?: string;
|
||||
}
|
||||
|
||||
export type DropdownDirection = 'up' | 'down';
|
||||
|
||||
export function DropdownItems({
|
||||
display,
|
||||
direction,
|
||||
variant,
|
||||
alignment,
|
||||
items,
|
||||
maxHeight,
|
||||
value,
|
||||
dropdownBounds,
|
||||
onSelectItem,
|
||||
onBackdropClick,
|
||||
}: DropdownItemsProps) {
|
||||
const ref = useRef<HTMLDivElement | null>(null);
|
||||
const [itemBounds, setItemBounds] = useState<DOMRect>();
|
||||
type DropdownProps = {
|
||||
direction?: DropdownDirection;
|
||||
variant?: 'primary' | 'secondary' | 'tertiary';
|
||||
alignment?: 'left' | 'right';
|
||||
display?: 'fit' | 'block';
|
||||
placeholder: string;
|
||||
name: string;
|
||||
items: DropdownItem[];
|
||||
maxHeight?: string | number;
|
||||
error?: FieldError;
|
||||
};
|
||||
|
||||
const updateBounds = () => {
|
||||
if (!ref.current) return;
|
||||
setItemBounds(ref.current?.getBoundingClientRect());
|
||||
function DropdownItem({
|
||||
item,
|
||||
variant,
|
||||
onSelected,
|
||||
isOpen,
|
||||
value,
|
||||
innerFocusValue,
|
||||
name,
|
||||
}: {
|
||||
item: DropdownItem;
|
||||
variant: Required<DropdownProps>['variant'];
|
||||
onSelected: () => void;
|
||||
isOpen: boolean;
|
||||
value: any;
|
||||
innerFocusValue: string | null;
|
||||
name: string;
|
||||
}) {
|
||||
const variantStyles = {
|
||||
primary:
|
||||
'text-background-20 checked-hover:text-background-10 checked-hover:bg-background-50 focus:text-background-10 focus:bg-background-50',
|
||||
secondary:
|
||||
'text-background-20 checked-hover:text-background-10 checked-hover:bg-background-60 focus:text-background-10 focus:bg-background-60',
|
||||
tertiary:
|
||||
'bg-accent-background-30 checked-hover:bg-accent-background-20 focus:bg-accent-background-20',
|
||||
};
|
||||
|
||||
useLayoutEffect(() => {
|
||||
updateBounds();
|
||||
}, []);
|
||||
const ref = useRef<HTMLDivElement>(null);
|
||||
|
||||
const GAP = 8;
|
||||
useLayoutEffect(() => {
|
||||
if (!innerFocusValue) {
|
||||
return;
|
||||
}
|
||||
if (innerFocusValue === item.value) {
|
||||
ref.current?.scrollIntoView({ block: 'nearest' });
|
||||
}
|
||||
}, [innerFocusValue]);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
if (!isOpen) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
innerFocusValue === item.value ||
|
||||
(!innerFocusValue && item.value === value)
|
||||
) {
|
||||
ref.current?.scrollIntoView({ block: 'nearest' });
|
||||
}
|
||||
}, [isOpen]);
|
||||
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
'py-2 px-4 min-w-max cursor-pointer',
|
||||
variantStyles[variant],
|
||||
innerFocusValue === item.value && 'ring-inset ring-4'
|
||||
)}
|
||||
onClick={onSelected}
|
||||
onKeyDown={(e) => a11yClick(e) && onSelected()}
|
||||
tabIndex={-1}
|
||||
aria-hidden={!isOpen}
|
||||
data-checked={item.value === value}
|
||||
ref={ref}
|
||||
id={`__dropdownList-${name}-item-${item.value}`}
|
||||
>
|
||||
{item.label}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
type DropdownListProps = {
|
||||
isOpen: boolean;
|
||||
onSelect: (item: DropdownItem) => void;
|
||||
value: any;
|
||||
innerFocusValue: string | null;
|
||||
} & Pick<
|
||||
Required<DropdownProps>,
|
||||
| 'display'
|
||||
| 'alignment'
|
||||
| 'direction'
|
||||
| 'items'
|
||||
| 'variant'
|
||||
| 'maxHeight'
|
||||
| 'name'
|
||||
>;
|
||||
|
||||
const DropdownList = forwardRef<HTMLDivElement, DropdownListProps>(function (
|
||||
{
|
||||
isOpen,
|
||||
onSelect,
|
||||
value,
|
||||
innerFocusValue,
|
||||
display,
|
||||
alignment,
|
||||
direction,
|
||||
items,
|
||||
variant,
|
||||
maxHeight,
|
||||
name,
|
||||
},
|
||||
ref
|
||||
) {
|
||||
const variantStyles = {
|
||||
primary: 'bg-background-60',
|
||||
secondary: 'bg-background-70',
|
||||
tertiary: 'bg-accent-background-30',
|
||||
};
|
||||
|
||||
const getDisplayStyle = () => {
|
||||
if (display === 'block') {
|
||||
return {
|
||||
left: 'var(--dropdown-field-left)',
|
||||
right: 'var(--dropdown-field-right)',
|
||||
};
|
||||
}
|
||||
return alignment === 'left'
|
||||
? { left: 'var(--dropdown-field-left)' }
|
||||
: { right: 'var(--dropdown-field-right)' };
|
||||
};
|
||||
|
||||
const directionStyles = {
|
||||
up: {
|
||||
bottom: 'calc(var(--dropdown-field-top) + 0.75rem)',
|
||||
},
|
||||
down: {
|
||||
top: 'calc(var(--dropdown-field-bottom) + 0.75rem)',
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
'grid fixed z-50 overflow-hidden transition-[grid-template-rows] rounded',
|
||||
isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',
|
||||
variantStyles[variant]
|
||||
)}
|
||||
style={{
|
||||
...getDisplayStyle(),
|
||||
...directionStyles[direction],
|
||||
}}
|
||||
onTransitionEnd={(e) => {
|
||||
if (!isOpen) {
|
||||
(e.target as HTMLDivElement).scrollTo({ top: 0 });
|
||||
}
|
||||
}}
|
||||
ref={ref}
|
||||
id={`__dropdownList-${name}`}
|
||||
>
|
||||
<ul
|
||||
className="flex flex-col min-h-0 text-sm overflow-y-scroll dropdown-scroll overscroll-contain"
|
||||
style={{ maxHeight }}
|
||||
>
|
||||
{items.map((item) => (
|
||||
<DropdownItem
|
||||
item={item}
|
||||
variant={variant}
|
||||
onSelected={() => onSelect(item)}
|
||||
isOpen={isOpen}
|
||||
key={item.value}
|
||||
value={value}
|
||||
innerFocusValue={innerFocusValue}
|
||||
name={name}
|
||||
/>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
export function DropdownInside({
|
||||
direction = 'up',
|
||||
variant = 'primary',
|
||||
alignment = 'right',
|
||||
display = 'fit',
|
||||
placeholder,
|
||||
name,
|
||||
items,
|
||||
maxHeight = '50vh',
|
||||
value,
|
||||
onChange,
|
||||
error,
|
||||
}: DropdownProps & { value: string; onChange: (value: string) => void }) {
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
ref.current?.focus();
|
||||
}, [value]);
|
||||
|
||||
const variantStyles = {
|
||||
primary: 'bg-background-60 hover:bg-background-50',
|
||||
secondary: 'bg-background-70 hover:bg-background-60',
|
||||
tertiary: 'bg-accent-background-30 hover:bg-accent-background-20',
|
||||
};
|
||||
|
||||
const displayStyles = {
|
||||
fit: 'w-fit',
|
||||
block: 'w-full',
|
||||
};
|
||||
|
||||
const getShownValue = (value: any) =>
|
||||
value
|
||||
? (items.find((item) => item.value === value)?.label ?? placeholder)
|
||||
: placeholder;
|
||||
|
||||
const ref = useRef<HTMLDivElement>(null);
|
||||
const listRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
const [innerFocusIndex, setInnerFocusIndex] = useState<number | null>(null);
|
||||
const getCurrentActiveIndex = () => {
|
||||
return items.findIndex((item) => item.value === value);
|
||||
};
|
||||
const innerFocusPrev = () => {
|
||||
const current = innerFocusIndex ?? getCurrentActiveIndex();
|
||||
|
||||
setInnerFocusIndex(current > 0 ? current - 1 : current);
|
||||
};
|
||||
const innerFocusNext = () => {
|
||||
const current = innerFocusIndex ?? getCurrentActiveIndex();
|
||||
|
||||
setInnerFocusIndex(current < items.length - 1 ? current + 1 : current);
|
||||
};
|
||||
|
||||
const updateFieldBoundingRect = () => {
|
||||
if (!ref.current || !listRef.current) {
|
||||
return;
|
||||
}
|
||||
const boundingRect = ref.current.getBoundingClientRect();
|
||||
|
||||
const left = boundingRect.left;
|
||||
const right = window.innerWidth - boundingRect.right;
|
||||
const top = window.innerHeight - boundingRect.top;
|
||||
const bottom = boundingRect.bottom;
|
||||
listRef.current?.style.setProperty('--dropdown-field-left', `${left}px`);
|
||||
listRef.current?.style.setProperty('--dropdown-field-right', `${right}px`);
|
||||
listRef.current?.style.setProperty('--dropdown-field-top', `${top}px`);
|
||||
listRef.current?.style.setProperty(
|
||||
'--dropdown-field-bottom',
|
||||
`${bottom}px`
|
||||
);
|
||||
};
|
||||
useLayoutEffect(updateFieldBoundingRect, [ref.current]);
|
||||
window.addEventListener('scroll', updateFieldBoundingRect, true);
|
||||
window.addEventListener('resize', updateFieldBoundingRect, true);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isOpen) {
|
||||
setInnerFocusIndex(null);
|
||||
}
|
||||
}, [isOpen]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
className="z-[999] fixed top-0 w-full h-full"
|
||||
onClick={onBackdropClick}
|
||||
></div>
|
||||
<div
|
||||
ref={ref}
|
||||
className={classNames(
|
||||
'z-[1000] fixed rounded shadow',
|
||||
'overflow-y-auto dropdown-scroll overflow-x-hidden text-background-10',
|
||||
variant == 'primary' && 'bg-background-60',
|
||||
variant == 'secondary' && 'bg-background-70',
|
||||
variant == 'tertiary' && 'bg-accent-background-30',
|
||||
itemBounds?.height == 0 && 'opacity-0' // Avoid flicker while the component find its position
|
||||
'min-h-[42px] text-background-10 text-left dropdown',
|
||||
displayStyles[display]
|
||||
)}
|
||||
style={{
|
||||
maxHeight: maxHeight,
|
||||
left:
|
||||
alignment === 'left'
|
||||
? dropdownBounds.left
|
||||
: dropdownBounds.left +
|
||||
dropdownBounds.width -
|
||||
(itemBounds?.width ?? 0),
|
||||
top:
|
||||
direction == 'down'
|
||||
? dropdownBounds.bottom + GAP
|
||||
: dropdownBounds.top - (itemBounds?.height ?? 0) - GAP,
|
||||
minWidth: display === 'block' ? dropdownBounds.width : 'inherit',
|
||||
onClick={() => setIsOpen(!isOpen)}
|
||||
onKeyDown={(e) => {
|
||||
if (!isOpen) {
|
||||
if (a11yClick(e)) {
|
||||
setInnerFocusIndex(
|
||||
items.findIndex((item) => item.value === value)
|
||||
);
|
||||
setIsOpen(!isOpen);
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.key === 'ArrowDown') {
|
||||
setInnerFocusIndex(0);
|
||||
setIsOpen(true);
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.key === 'ArrowUp') {
|
||||
setInnerFocusIndex(items.length - 1);
|
||||
setIsOpen(true);
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (a11yClick(e)) {
|
||||
e.preventDefault();
|
||||
if (innerFocusIndex === null) {
|
||||
setIsOpen(false);
|
||||
return;
|
||||
}
|
||||
|
||||
onChange(items[innerFocusIndex].value);
|
||||
setIsOpen(false);
|
||||
}
|
||||
switch (e.key) {
|
||||
case 'ArrowUp':
|
||||
innerFocusPrev();
|
||||
e.preventDefault();
|
||||
return;
|
||||
case 'ArrowDown':
|
||||
innerFocusNext();
|
||||
e.preventDefault();
|
||||
return;
|
||||
case 'Escape':
|
||||
setIsOpen(false);
|
||||
return;
|
||||
case 'Home':
|
||||
setInnerFocusIndex(0);
|
||||
return;
|
||||
case 'End':
|
||||
setInnerFocusIndex(items.length - 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}}
|
||||
onBlur={(e) => {
|
||||
if (
|
||||
e.currentTarget.contains(e.relatedTarget) ||
|
||||
listRef?.current?.contains(e.relatedTarget)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
setIsOpen(false);
|
||||
}}
|
||||
>
|
||||
<ul className="py-1 text-sm flex flex-col">
|
||||
{items.map((item) => (
|
||||
<li
|
||||
style={item.fontName ? { fontFamily: item.fontName } : {}}
|
||||
className={classNames(
|
||||
'py-2 px-4 min-w-max cursor-pointer first-of-type:*:pointer-events-none',
|
||||
variant == 'primary' &&
|
||||
'checked-hover:bg-background-50 text-background-20 ' +
|
||||
'checked-hover:text-background-10',
|
||||
variant == 'secondary' &&
|
||||
'checked-hover:bg-background-60 text-background-20 ' +
|
||||
'checked-hover:text-background-10',
|
||||
variant == 'tertiary' &&
|
||||
'bg-accent-background-30 checked-hover:bg-accent-background-20'
|
||||
)}
|
||||
onClick={() => {
|
||||
onSelectItem(item);
|
||||
}}
|
||||
onKeyDown={(ev) => {
|
||||
if (!a11yClick(ev)) return;
|
||||
onSelectItem(item);
|
||||
}}
|
||||
key={item.value}
|
||||
tabIndex={0}
|
||||
data-checked={item.value === value}
|
||||
>
|
||||
{item.component || item.label}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
<div
|
||||
className={classNames(
|
||||
'flex flex-row justify-between items-center gap-2 pl-3 pr-5 py-3 rounded-md cursor-pointer focus:ring-4 relative',
|
||||
variantStyles[variant]
|
||||
)}
|
||||
tabIndex={0}
|
||||
ref={ref}
|
||||
aria-controls={`__dropdownList-${name}`}
|
||||
aria-activedescendant={
|
||||
innerFocusIndex === null
|
||||
? ''
|
||||
: `__dropdownList-${name}-item-${items[innerFocusIndex].value}`
|
||||
}
|
||||
role="combobox"
|
||||
>
|
||||
{getShownValue(value)}
|
||||
<div className="fill-background-10">
|
||||
{direction === 'up' ? (
|
||||
<ArrowUpIcon size={16} />
|
||||
) : (
|
||||
<ArrowDownIcon size={16} />
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
{error?.message && (
|
||||
<div className="text-status-critical">{error.message}</div>
|
||||
)}
|
||||
{createPortal(
|
||||
<DropdownList
|
||||
alignment={alignment}
|
||||
direction={direction}
|
||||
display={display}
|
||||
isOpen={isOpen}
|
||||
items={items}
|
||||
onSelect={(item: DropdownItem) => {
|
||||
ref.current?.focus();
|
||||
onChange(item.value);
|
||||
}}
|
||||
variant={variant}
|
||||
maxHeight={maxHeight}
|
||||
value={value}
|
||||
ref={listRef}
|
||||
innerFocusValue={
|
||||
innerFocusIndex === null ? null : items[innerFocusIndex].value
|
||||
}
|
||||
name={name}
|
||||
/>,
|
||||
document.body
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export function Dropdown({
|
||||
direction = 'up',
|
||||
variant = 'primary',
|
||||
alignment = 'right',
|
||||
display = 'fit',
|
||||
maxHeight = '50vh',
|
||||
placeholder,
|
||||
control,
|
||||
rules,
|
||||
name,
|
||||
items = [],
|
||||
}: DropdownProps) {
|
||||
const ref = useRef<HTMLDivElement | null>(null);
|
||||
const [isOpen, setOpenState] = useState(false);
|
||||
const [dropdownBounds, setDropdownBounds] = useState<DOMRect>();
|
||||
|
||||
const updateBounds = () => {
|
||||
if (!ref.current) return;
|
||||
setDropdownBounds(ref.current?.getBoundingClientRect());
|
||||
};
|
||||
|
||||
const onResize = () => {
|
||||
// We could have two behaviours here:
|
||||
// 1 - We update the bounds of the dropdown so the size and position match.
|
||||
// Works but have a slight delay when resizing, kinda looks laggy
|
||||
// 2 - We close the dropdown on resize.
|
||||
// We could consider this as the same as clicking outside of the dropdown
|
||||
// This is the approach choosen RN
|
||||
setOpen(false);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
window.addEventListener('resize', onResize);
|
||||
return () => {
|
||||
window.removeEventListener('resize', onResize);
|
||||
};
|
||||
}, []);
|
||||
|
||||
const setOpen = (open: boolean | ((prevState: boolean) => boolean)) => {
|
||||
updateBounds();
|
||||
setOpenState(open);
|
||||
};
|
||||
rules,
|
||||
...props
|
||||
}: DropdownProps & {
|
||||
control: Control<any>;
|
||||
rules?: UseControllerProps<any>['rules'];
|
||||
}) {
|
||||
const {
|
||||
field: { value, onChange },
|
||||
} = useController({ name, control, rules });
|
||||
|
||||
return (
|
||||
<Controller
|
||||
control={control}
|
||||
name={name}
|
||||
rules={rules}
|
||||
render={({ field: { onChange, value } }) => (
|
||||
<>
|
||||
<div
|
||||
ref={ref}
|
||||
className={classNames(
|
||||
'min-h-[42px] text-background-10 px-5 py-3 rounded-md focus:ring-4 text-center dropdown',
|
||||
'flex cursor-pointer',
|
||||
variant == 'primary' && 'bg-background-60 hover:bg-background-50',
|
||||
variant == 'secondary' &&
|
||||
'bg-background-70 hover:bg-background-60',
|
||||
variant == 'tertiary' &&
|
||||
'bg-accent-background-30 hover:bg-accent-background-20',
|
||||
display === 'fit' && 'w-fit',
|
||||
display === 'block' && 'w-full'
|
||||
)}
|
||||
onClick={() => setOpen((open) => !open)}
|
||||
onKeyDown={(ev) => a11yClick(ev) && setOpen((open) => !open)}
|
||||
tabIndex={0}
|
||||
>
|
||||
<div className="flex-grow text-standard first:pointer-events-none">
|
||||
{items.find((i) => i.value == value)?.component ||
|
||||
items.find((i) => i.value == value)?.label ||
|
||||
placeholder}
|
||||
</div>
|
||||
<div
|
||||
className={classNames(
|
||||
'ml-2 fill-background-10 flex items-center',
|
||||
direction == 'up' && 'rotate-180',
|
||||
direction == 'down' && 'rotate-0'
|
||||
)}
|
||||
>
|
||||
<ArrowDownIcon size={16}></ArrowDownIcon>
|
||||
</div>
|
||||
</div>
|
||||
{isOpen &&
|
||||
dropdownBounds &&
|
||||
createPortal(
|
||||
<DropdownItems
|
||||
items={items}
|
||||
dropdownBounds={dropdownBounds}
|
||||
direction={direction}
|
||||
display={display}
|
||||
alignment={alignment}
|
||||
maxHeight={maxHeight}
|
||||
variant={variant}
|
||||
value={value}
|
||||
onSelectItem={(item) => {
|
||||
setOpen(false);
|
||||
onChange(item.value);
|
||||
}}
|
||||
onBackdropClick={() => {
|
||||
setOpen(false);
|
||||
}}
|
||||
></DropdownItems>,
|
||||
document.body
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
/>
|
||||
<DropdownInside value={value} name={name} {...props} onChange={onChange} />
|
||||
);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ export const FileInputContentBlank = ({
|
||||
<Localized
|
||||
id={label}
|
||||
elems={{
|
||||
u: <span className="underline text-background-20"></span>,
|
||||
u: <span className="underline text-background-20" />,
|
||||
}}
|
||||
>
|
||||
<Typography>
|
||||
@@ -85,7 +85,7 @@ export const FileInputContentFile = ({
|
||||
{directory ? <FolderIcon /> : <FileIcon />}
|
||||
<span>{importedFileName}</span>
|
||||
</div>
|
||||
<span className="flex-grow"></span>
|
||||
<span className="flex-grow" />
|
||||
<a
|
||||
href="#"
|
||||
className="h-12 w-12 hover:bg-accent-background-20 cursor-pointer"
|
||||
@@ -188,7 +188,7 @@ export const FileInputInside = forwardRef<
|
||||
accept={accept}
|
||||
multiple={multiple}
|
||||
capture={capture}
|
||||
></input>
|
||||
/>
|
||||
</label>
|
||||
);
|
||||
});
|
||||
@@ -233,7 +233,7 @@ export const FileInput = ({
|
||||
capture={capture}
|
||||
multiple={multiple}
|
||||
importedFileName={importedFileName}
|
||||
></FileInputInside>
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
UseControllerProps,
|
||||
} from 'react-hook-form';
|
||||
import { EyeIcon } from './icon/EyeIcon';
|
||||
import { Typography } from './Typography';
|
||||
|
||||
interface InputProps {
|
||||
variant?: 'primary' | 'secondary' | 'tertiary';
|
||||
@@ -20,8 +21,8 @@ export const InputInside = forwardRef<
|
||||
variant?: 'primary' | 'secondary' | 'tertiary';
|
||||
label?: string;
|
||||
error?: FieldError;
|
||||
onChange: () => void;
|
||||
} & Partial<HTMLInputElement>
|
||||
autocomplete?: boolean | string;
|
||||
} & Partial<React.HTMLProps<HTMLInputElement>>
|
||||
>(function AppInput(
|
||||
{
|
||||
type,
|
||||
@@ -70,7 +71,7 @@ export const InputInside = forwardRef<
|
||||
variantsMap[variant],
|
||||
'w-full focus:ring-transparent focus:ring-offset-transparent min-h-[42px] z-10',
|
||||
'focus:outline-transparent rounded-md focus:border-accent-background-40',
|
||||
'text-standard relative transition-colors',
|
||||
'text-standard text-background-10 relative transition-colors',
|
||||
error && 'border-status-critical border-1'
|
||||
);
|
||||
}, [variant, disabled, error]);
|
||||
@@ -83,7 +84,7 @@ export const InputInside = forwardRef<
|
||||
|
||||
return (
|
||||
<label className="flex flex-col gap-1">
|
||||
{label}
|
||||
{label && <Typography>{label}</Typography>}
|
||||
<div className="relative w-full">
|
||||
<input
|
||||
type={forceText ? 'text' : type}
|
||||
@@ -97,13 +98,13 @@ export const InputInside = forwardRef<
|
||||
value={computedValue} // Do we want that behaviour ?
|
||||
disabled={disabled}
|
||||
ref={ref}
|
||||
></input>
|
||||
/>
|
||||
{type === 'password' && (
|
||||
<div
|
||||
className="fill-background-10 absolute inset-y-0 right-0 pr-6 z-10 my-auto w-[16px] h-[16px] cursor-pointer"
|
||||
onClick={togglePassword}
|
||||
>
|
||||
<EyeIcon width={16} closed={forceText}></EyeIcon>
|
||||
<EyeIcon width={16} closed={forceText} />
|
||||
</div>
|
||||
)}
|
||||
{error?.message && (
|
||||
@@ -122,15 +123,16 @@ export const Input = ({
|
||||
name,
|
||||
placeholder,
|
||||
label,
|
||||
autocomplete,
|
||||
autocomplete = false,
|
||||
disabled,
|
||||
variant = 'primary',
|
||||
rules,
|
||||
}: {
|
||||
rules?: UseControllerProps<any>['rules'];
|
||||
control: Control<any>;
|
||||
autocomplete?: boolean | string;
|
||||
} & InputProps &
|
||||
Partial<HTMLInputElement>) => {
|
||||
Partial<React.HTMLProps<HTMLInputElement>>) => {
|
||||
return (
|
||||
<Controller
|
||||
control={control}
|
||||
@@ -152,7 +154,7 @@ export const Input = ({
|
||||
onChange={onChange}
|
||||
ref={ref}
|
||||
name={name}
|
||||
></InputInside>
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -23,7 +23,7 @@ export function LangSelector({
|
||||
const languagesItems = useMemo(
|
||||
() =>
|
||||
langs.map(({ key, name, emoji }) => ({
|
||||
component: (
|
||||
label: (
|
||||
<div>
|
||||
<img
|
||||
draggable="false"
|
||||
@@ -33,7 +33,6 @@ export function LangSelector({
|
||||
{' ' + name}
|
||||
</div>
|
||||
),
|
||||
label: name,
|
||||
value: key,
|
||||
})),
|
||||
[]
|
||||
@@ -59,6 +58,6 @@ export function LangSelector({
|
||||
items={languagesItems}
|
||||
direction={direction}
|
||||
alignment={alignment}
|
||||
></Dropdown>
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -38,11 +38,7 @@ export function PersonFrontIcon({
|
||||
viewBox="0 0 165 392"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<image
|
||||
height={'105%'}
|
||||
x="8.5%"
|
||||
href="/images/front-standing-pose.webp"
|
||||
></image>
|
||||
<image height={'105%'} x="8.5%" href="/images/front-standing-pose.webp" />
|
||||
{/* <path d="M84.53 224.074C83.953 230.874 88.569 266.874 90.951 280.984C92.085 287.671 95.195 298.565 94.076 304.349C92.476 312.411 92.017 322.843 92.896 328.918C93.451 332.607 95.196 349.618 92.696 355.845C91.389 359.108 88.996 375.832 88.996 375.832C82.756 391.587 86.278 390.812 86.278 390.812C88.21 393.183 91.519 390.998 91.519 390.998C92.1549 391.464 92.9388 391.682 93.7241 391.612C94.5094 391.542 95.2421 391.188 95.785 390.616C97.949 392.407 100.471 390.396 100.471 390.396C103.189 391.807 105.71 389.205 105.71 389.205C107.271 389.991 107.653 388.998 107.653 388.998C112.337 388.698 105.039 373.706 105.039 373.706C103.291 360.242 106.773 352.748 106.773 352.748C118.178 318.926 118.758 309.948 114.199 297.204C112.915 293.524 112.59 292.067 113.181 290.47C114.547 286.783 113.551 271.953 115.217 266.064C118.431 254.706 121.602 225.903 123.254 212.464C125.475 194.364 115.388 170.088 115.388 170.088C113.179 160.21 116.418 125.016 116.418 125.016C120.941 132.054 120.768 144.477 120.768 144.477C120.05 157.506 131.294 177.42 131.294 177.42C136.694 185.649 138.742 193.456 138.742 194.036C138.742 196.407 138.223 202.145 138.223 202.145L138.43 207.145C138.803 209.721 139.034 212.316 139.123 214.918C138.28 227.953 140.35 225.501 140.35 225.501C142.098 225.501 144.018 215.011 144.018 215.011C144.018 217.711 143.357 225.811 144.818 228.869C146.564 232.512 147.848 228.244 147.871 227.387C148.333 210.787 149.33 215.138 149.33 215.138C150.301 228.602 151.494 231.644 153.63 230.591C155.25 229.818 153.769 214.433 153.769 214.433C156.544 223.572 158.649 225.027 158.649 225.027C163.229 228.243 160.397 219.361 159.76 217.602C156.371 208.256 156.267 205.017 156.267 205.017C160.501 213.417 163.692 213.104 163.692 213.104C167.822 211.786 160.083 199.894 155.548 194.197C153.234 191.297 150.248 187.408 149.384 185.097C147.973 181.188 146.907 168.62 146.907 168.62C146.48 153.79 142.813 147.348 142.813 147.348C136.544 137.314 135.365 118.598 135.365 118.598L135.09 87C132.89 65.445 117.01 65.29 117.01 65.29C100.957 62.9 98.723 57.714 98.723 57.714C95.323 52.821 97.266 43.44 97.266 43.44C100.087 41.145 101.175 35.053 101.175 35.053C105.859 31.461 105.63 26.205 103.466 26.262C101.73 26.308 102.123 24.87 102.123 24.87C105.052 1.208 84.046 0 84.046 0H80.836C80.836 0 59.821 1.208 62.746 24.864C62.746 24.864 63.139 26.304 61.388 26.256C59.23 26.199 59.029 31.456 63.696 35.047C63.696 35.047 64.783 41.137 67.605 43.434C67.605 43.434 69.548 52.814 66.148 57.708C66.148 57.708 63.922 62.894 47.861 65.284C47.861 65.284 31.952 65.44 29.788 86.994L29.488 118.594C29.488 118.594 28.331 137.311 22.038 147.344C22.038 147.344 18.389 153.787 17.967 168.616C17.967 168.616 16.898 181.184 15.492 185.093C14.635 187.393 11.653 191.276 9.32001 194.193C4.74601 199.878 -2.94199 211.745 1.17101 213.1C1.17101 213.1 4.37901 213.412 8.59601 205.013C8.59601 205.013 8.50901 208.229 5.12501 217.598C4.46001 219.334 1.63201 228.217 6.21301 225.024C6.21301 225.024 8.33501 223.567 11.093 214.43C11.093 214.43 9.61301 229.815 11.26 230.588C13.412 231.642 14.586 228.599 15.56 215.135C15.56 215.135 16.56 210.787 17.017 227.384C17.04 228.241 18.295 232.509 20.049 228.866C21.529 225.811 20.864 217.727 20.864 215.008C20.864 215.008 22.764 225.498 24.536 225.498C24.536 225.498 26.624 227.95 25.767 214.915C25.628 212.786 26.375 208.415 26.467 207.142L26.667 202.142C26.667 202.142 26.146 196.417 26.146 194.033C26.146 193.442 28.194 185.646 33.594 177.417C33.594 177.417 44.826 157.494 44.103 144.474C44.103 144.474 43.947 132.051 48.47 125.013C48.47 125.013 51.68 160.205 49.505 170.085C49.505 170.085 39.405 194.358 41.629 212.461C43.27 225.937 46.435 254.702 49.657 266.061C51.34 271.938 50.345 286.761 51.693 290.467C52.301 292.076 51.982 293.558 50.675 297.201C46.141 309.947 46.718 318.925 58.123 352.745C58.123 352.745 61.633 360.239 59.859 373.703C59.859 373.703 52.572 388.695 57.239 388.995C57.239 388.995 57.604 389.988 59.182 389.202C59.182 389.202 61.703 391.802 64.427 390.393C64.427 390.393 66.95 392.407 69.106 390.613C69.6451 391.185 70.3751 391.54 71.158 391.61C71.9409 391.681 72.7225 391.462 73.355 390.995C73.355 390.995 76.664 393.227 78.63 390.809C78.63 390.809 82.123 391.584 75.904 375.829C75.904 375.829 73.522 359.129 72.209 355.842C69.709 349.621 71.474 332.57 72.009 328.915C72.87 322.806 72.409 312.398 70.835 304.346C69.684 298.575 72.801 287.679 73.952 280.981C76.317 266.881 80.952 230.881 80.373 224.071L82.288 224.743C83.0863 224.756 83.8692 224.522 84.53 224.074Z" /> */}
|
||||
<circle
|
||||
className="body-part-circle"
|
||||
|
||||
@@ -28,7 +28,7 @@ export function ProgressBar({
|
||||
animated={animated}
|
||||
parts={parts}
|
||||
bottom={bottom}
|
||||
></Bar>
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
@@ -74,7 +74,7 @@ export function Bar({
|
||||
width: `${value * 100}%`,
|
||||
height: `${height}px`,
|
||||
}}
|
||||
></div>
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ export function TipBox({
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
'flex flex-row gap-4 bg-accent-background-50 p-4 rounded-md',
|
||||
'flex flex-row gap-4 bg-accent-background-50 p-2 rounded-md',
|
||||
className
|
||||
)}
|
||||
>
|
||||
@@ -28,7 +28,7 @@ export function TipBox({
|
||||
hideIcon && 'hidden'
|
||||
)}
|
||||
>
|
||||
<BulbIcon></BulbIcon>
|
||||
<BulbIcon />
|
||||
</div>
|
||||
<div className="flex flex-col">
|
||||
<Typography
|
||||
@@ -55,14 +55,14 @@ export function WarningBox({
|
||||
hideIcon?: boolean;
|
||||
}) {
|
||||
return (
|
||||
<div className="flex flex-row gap-4 bg-status-warning p-4 rounded-md">
|
||||
<div className="flex flex-row gap-4 bg-status-warning p-2 rounded-md">
|
||||
<div
|
||||
className={classNames(
|
||||
'text-background-60 flex flex-col justify-center',
|
||||
hideIcon && 'hidden'
|
||||
)}
|
||||
>
|
||||
<WarningIcon></WarningIcon>
|
||||
<WarningIcon />
|
||||
</div>
|
||||
<div className="flex flex-col justify-center w-full">
|
||||
<Typography
|
||||
|
||||
@@ -333,7 +333,7 @@ export function DrawerTooltip({
|
||||
elem.classList.add(classNames('duration-500'));
|
||||
touchTimeout.current = setTimeout(() => {
|
||||
open();
|
||||
}, TOOLTIP_DELAY);
|
||||
}, TOOLTIP_DELAY) as unknown as number;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -406,7 +406,7 @@ export function DrawerTooltip({
|
||||
opacity: drawerStyle ? 0.5 : 0,
|
||||
pointerEvents: drawerStyle ? 'all' : 'none',
|
||||
}}
|
||||
></div>
|
||||
/>
|
||||
<div
|
||||
className={classNames(
|
||||
'fixed z-50 w-full text-background-10 max-h-full -bottom-full transition-all overflow-clip'
|
||||
@@ -425,7 +425,7 @@ export function DrawerTooltip({
|
||||
className="absolute right-4 top-3 h-6 w-6 bg-background-70 rounded-full flex justify-center items-center"
|
||||
onClick={() => close()}
|
||||
>
|
||||
<CloseIcon size={20} className="stroke-white"></CloseIcon>
|
||||
<CloseIcon size={20} className="stroke-white" />
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
|
||||
@@ -66,7 +66,7 @@ export function VerticalStep({
|
||||
)}
|
||||
>
|
||||
{isPrevious ? (
|
||||
<CheckIcon></CheckIcon>
|
||||
<CheckIcon />
|
||||
) : (
|
||||
<Typography variant="section-title">{index + 1}</Typography>
|
||||
)}
|
||||
@@ -141,7 +141,7 @@ export default function VerticalStepper({
|
||||
prevStep={prevStep}
|
||||
goTo={goTo}
|
||||
isActive={currStep === index}
|
||||
></StepComponent>
|
||||
/>
|
||||
</VerticalStep>
|
||||
))}
|
||||
</ol>
|
||||
|
||||
@@ -7,7 +7,7 @@ export function ChestIcon({ width = 24 }: { width?: number }) {
|
||||
width={width}
|
||||
viewBox="0 0 50 50"
|
||||
>
|
||||
<path d="M 20 2 C 18.156 2 16.700141 3.1345312 15.619141 4.0195312 C 12.698141 4.2755313 4 7.245 4 15 C 4 17.305 4.551 19.068203 4.875 19.908203 C 4.262 20.969203 3 23.679 3 28 C 3 28.352 3.184375 28.677422 3.484375 28.857422 L 8.484375 31.857422 C 8.835375 32.068422 9.2804219 32.044922 9.6074219 31.794922 C 10.290422 31.270922 10.833578 30.512578 11.267578 29.642578 C 11.118578 28.880578 11 28.05 11 27 L 11 21 C 11 20.448 11.448 20 12 20 C 12.43 20 12.790641 20.27425 12.931641 20.65625 C 12.944641 20.68425 12.982 20.797656 13 20.847656 C 13.197 21.404656 14.365 24 19 24 C 23.133 24 23.984531 19.976687 24.019531 19.804688 C 24.113531 19.329687 24.535 19.018531 25 19.019531 C 25.465 19.019531 25.886469 19.330687 25.980469 19.804688 C 26.015469 19.976687 26.867 24 31 24 C 35.635 24 36.803 21.405656 37 20.847656 C 37.018 20.797656 37.055359 20.68425 37.068359 20.65625 C 37.209359 20.27525 37.57 20 38 20 C 38.552 20 39 20.448 39 21 L 39 27 C 39 28.05 38.881422 28.881578 38.732422 29.642578 C 39.166422 30.513578 39.709578 31.269969 40.392578 31.792969 C 40.719578 32.042969 41.164625 32.066469 41.515625 31.855469 L 46.515625 28.855469 C 46.815625 28.676469 47 28.352 47 28 C 47 23.679 45.738 20.969203 45.125 19.908203 C 45.449 19.068203 46 17.305 46 15 C 46 7.245 37.301859 4.2755312 34.380859 4.0195312 C 33.299859 3.1345312 31.844 2 30 2 L 25 2 L 20 2 z M 25 22.609375 C 23.953 24.323375 22.059 26 19 26 C 16.075 26 14.195 25.130766 13 24.134766 L 13 27 C 13 28.281 13.194875 29.155016 13.421875 30.166016 C 13.692875 31.375016 14 32.746 14 35 C 14 35.027 13.987375 35.049172 13.984375 35.076172 C 13.994375 35.366172 14 35.669 14 36 L 14 42 C 14 44.997 18.628641 47.438484 19.556641 47.896484 C 19.693641 47.965484 19.847 48 20 48 L 25 48 L 30 48 C 30.153 48 30.306359 47.965484 30.443359 47.896484 C 31.371359 47.438484 36 44.997 36 42 L 36 36 C 36 35.669 36.005625 35.366172 36.015625 35.076172 C 36.012625 35.049172 36 35.027 36 35 C 36 32.746 36.307125 31.375016 36.578125 30.166016 C 36.805125 29.155016 37 28.281 37 27 L 37 24.134766 C 35.805 25.130766 33.925 26 31 26 C 27.941 26 26.047 24.323375 25 22.609375 z"></path>
|
||||
<path d="M 20 2 C 18.156 2 16.700141 3.1345312 15.619141 4.0195312 C 12.698141 4.2755313 4 7.245 4 15 C 4 17.305 4.551 19.068203 4.875 19.908203 C 4.262 20.969203 3 23.679 3 28 C 3 28.352 3.184375 28.677422 3.484375 28.857422 L 8.484375 31.857422 C 8.835375 32.068422 9.2804219 32.044922 9.6074219 31.794922 C 10.290422 31.270922 10.833578 30.512578 11.267578 29.642578 C 11.118578 28.880578 11 28.05 11 27 L 11 21 C 11 20.448 11.448 20 12 20 C 12.43 20 12.790641 20.27425 12.931641 20.65625 C 12.944641 20.68425 12.982 20.797656 13 20.847656 C 13.197 21.404656 14.365 24 19 24 C 23.133 24 23.984531 19.976687 24.019531 19.804688 C 24.113531 19.329687 24.535 19.018531 25 19.019531 C 25.465 19.019531 25.886469 19.330687 25.980469 19.804688 C 26.015469 19.976687 26.867 24 31 24 C 35.635 24 36.803 21.405656 37 20.847656 C 37.018 20.797656 37.055359 20.68425 37.068359 20.65625 C 37.209359 20.27525 37.57 20 38 20 C 38.552 20 39 20.448 39 21 L 39 27 C 39 28.05 38.881422 28.881578 38.732422 29.642578 C 39.166422 30.513578 39.709578 31.269969 40.392578 31.792969 C 40.719578 32.042969 41.164625 32.066469 41.515625 31.855469 L 46.515625 28.855469 C 46.815625 28.676469 47 28.352 47 28 C 47 23.679 45.738 20.969203 45.125 19.908203 C 45.449 19.068203 46 17.305 46 15 C 46 7.245 37.301859 4.2755312 34.380859 4.0195312 C 33.299859 3.1345312 31.844 2 30 2 L 25 2 L 20 2 z M 25 22.609375 C 23.953 24.323375 22.059 26 19 26 C 16.075 26 14.195 25.130766 13 24.134766 L 13 27 C 13 28.281 13.194875 29.155016 13.421875 30.166016 C 13.692875 31.375016 14 32.746 14 35 C 14 35.027 13.987375 35.049172 13.984375 35.076172 C 13.994375 35.366172 14 35.669 14 36 L 14 42 C 14 44.997 18.628641 47.438484 19.556641 47.896484 C 19.693641 47.965484 19.847 48 20 48 L 25 48 L 30 48 C 30.153 48 30.306359 47.965484 30.443359 47.896484 C 31.371359 47.438484 36 44.997 36 42 L 36 36 C 36 35.669 36.005625 35.366172 36.015625 35.076172 C 36.012625 35.049172 36 35.027 36 35 C 36 32.746 36.307125 31.375016 36.578125 30.166016 C 36.805125 29.155016 37 28.281 37 27 L 37 24.134766 C 35.805 25.130766 33.925 26 31 26 C 27.941 26 26.047 24.323375 25 22.609375 z" />
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -23,23 +23,23 @@ export function ControllerIcon({
|
||||
<path
|
||||
d="M118.822 208.203c-2.618-.617-4.697-3.542-5.882-8.273-.291-1.162-.298-1.318-.28-6.087.025-6.892.614-23.54.873-24.712.407-1.836.45-2.166.39-2.962-.101-1.363-.496-2.192-1.523-3.2-1.327-1.302-3.303-2.24-6.48-3.078-1.73-.456-3.586-1.518-6.604-3.78-3.429-2.571-4.412-3.847-7.412-9.617-.584-1.123-1.155-2.09-1.27-2.152-.259-.138-1.272-.289-5.165-.769-3.5-.43-6.014-.807-6.642-.992-.827-.245-1.493-1.177-2.218-3.103-.921-2.446-2.059-8.04-2.059-10.122 0-2.587 1.23-6.419 2.836-8.832.83-1.247 1.148-1.489 2.265-1.723 7.263-1.526 53.58-5.18 66.688-5.262 3.11-.019 3.213-.012 3.65.26 1.497.931 3.276 3.686 4.198 6.502.86 2.622 1.011 4.66.57 7.652-.873 5.938-2.877 9.425-6.303 10.969-.767.345-1.928.65-3.119.822-.955.137-1.121.36-1.443 1.948-.523 2.573-1.864 5.5-4.178 9.114-1.084 1.694-1.407 2.78-2.776 9.339-1.166 5.587-1.297 6.347-1.893 11.008-.914 7.15-2.987 22.105-3.276 23.631-.85 4.5-4.377 9.213-9.243 12.352-1.778 1.146-2.492 1.352-3.704 1.067zm-1.16-48.81c4.208-.596 8.777-2.031 12.644-3.97 5.698-2.858 9.94-7.053 11.599-11.471.494-1.315.643-2.34.42-2.88-.147-.354-.203-.38-.802-.38-.78 0-5.773.591-14.198 1.683-6.609.855-9.629 1.2-13.24 1.511-4.913.423-10.917.694-15.438.696-1.622 0-3.59.038-4.373.083-1.345.078-1.431.099-1.561.385-.206.452.06 1.523.715 2.881 1.05 2.177 2.932 4.619 4.83 6.27 5.185 4.512 11.77 6.274 19.405 5.192z"
|
||||
transform="scale(.26458)"
|
||||
></path>
|
||||
/>
|
||||
<path
|
||||
d="M111.38 158.518c-4.784-.43-8.953-2.192-12.419-5.25-1.997-1.763-4.05-4.546-4.817-6.531l-.371-.963 5.355-.078c5.019-.074 10.45-.275 11.662-.432.514-.067.533-.057.533.272 0 .498.536 1.333 1.111 1.732 1.473 1.02 3.312 1.046 5.07.434 1.981-.69 2.783-1.579 2.79-2.727l.002-.577 2.26-.276c1.242-.151 4.913-.616 8.157-1.033 7.376-.947 10.484-1.306 10.568-1.222.135.135-.508 1.937-1.101 3.092-2.017 3.922-6.233 7.574-11.529 9.985-5.871 2.674-12.356 4.016-17.272 3.574zm20.458-8.081c.958-.439 1.503-.858 1.904-1.464 1.196-1.808-.01-3.98-2.721-4.896-.637-.216-1.009-.263-1.75-.22-1.096.064-1.542.264-2.423 1.084-1.089 1.013-1.487 2.354-1.026 3.457.397.949 1.521 1.89 2.731 2.285.858.28 2.388.165 3.285-.246z"
|
||||
transform="scale(.26458)"
|
||||
></path>
|
||||
/>
|
||||
<path
|
||||
d="M109.855 171.583c-.839-.29-1.655-.856-1.744-1.21-.04-.163.093-.688.324-1.268.588-1.483.61-2.105.143-3.918-.463-1.793-.495-2.343-.15-2.528 1.115-.596 3.07 1.299 3.795 3.679.243.797.25.956.114 2.196-.193 1.752-.4 2.931-.548 3.126-.173.226-1.173.186-1.934-.077z"
|
||||
transform="scale(.26458)"
|
||||
></path>
|
||||
/>
|
||||
<path
|
||||
d="M128.454 149.37c-.797-.376-1.472-1.276-1.603-1.798-.207-.822.52-1.842 1.577-2.38 1.397-.714 3.825.066 4.176 1.128.35 1.062.33 2.041-.436 2.602-1.214.889-2.465 1.04-3.714.449z"
|
||||
transform="scale(.26458)"
|
||||
></path>
|
||||
/>
|
||||
<path
|
||||
d="M113.895 146.8c-.662-.31-1.51-1.648-1.238-1.67l6.153-.485c.284-.023-.434 1.493-1.413 1.947-1.272.591-2.557.65-3.502.207z"
|
||||
transform="scale(.26458)"
|
||||
></path>
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
@@ -17,7 +17,7 @@ export function CrossIcon({
|
||||
fillRule="evenodd"
|
||||
d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
|
||||
clipRule="evenodd"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ export function FootIcon({
|
||||
<path
|
||||
transform={flipped ? undefined : 'scale(-1,1) translate(-28,0)'}
|
||||
d="M11.5 3A1.5 2 0 0 0 10 5a1.5 2 0 0 0 1.5 2A1.5 2 0 0 0 13 5a1.5 2 0 0 0-1.5-2zm3.244.678a1 1.333 0 0 0-1 1.334 1 1.333 0 0 0 1 1.332 1 1.333 0 0 0 1-1.332 1 1.333 0 0 0-1-1.334zm2.33 1.039a.863 1.151 0 0 0-.861 1.15.863 1.151 0 0 0 .861 1.15.863 1.151 0 0 0 .863-1.15.863 1.151 0 0 0-.863-1.15zm1.582 1.863a.611.815 0 0 0-.61.815.611.815 0 0 0 .61.816.611.815 0 0 0 .612-.816.611.815 0 0 0-.612-.815zM13.918 8C11.629 8 10 9.731 10 12c0 2.887 3 2.82 3 5 0 1.604-1.272 2.766-1.781 4.295a3.5 3.5 0 0 0-.096.305c-.014.054-.031.108-.043.164a3.5 3.5 0 0 0-.08.736 3.5 3.5 0 0 0 3.5 3.5 3.5 3.5 0 0 0 3.5-3.5c0-3.91 1.998-5.5 1.998-8.5 0-3.612-3.317-6-6.08-6zm5.582.666a.5.667 0 0 0-.5.666.5.667 0 0 0 .5.668.5.667 0 0 0 .5-.668.5.667 0 0 0-.5-.666z"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ export function HeadsetIcon({ width = 24 }: { width?: number }) {
|
||||
<path
|
||||
transform="scale(0.75, 0.75) translate(120, 96)"
|
||||
d="M576 64H64C28.7 64 0 92.7 0 128v256c0 35.3 28.7 64 64 64h120.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM96 240a64 64 0 11128 0 64 64 0 11-128 0zm384-64a64 64 0 110 128 64 64 0 110-128z"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
export function HumanIcon({ width = 20 }: { width?: number }) {
|
||||
return (
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width={width} viewBox="0 0 512 512">
|
||||
<path d="M256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z"></path>
|
||||
<path d="M432 112.8l-.45.12-.42.13c-1 .28-2 .58-3 .89-18.61 5.46-108.93 30.92-172.56 30.92-59.13 0-141.28-22-167.56-29.47a73.79 73.79 0 00-8-2.58c-19-5-32 14.3-32 31.94 0 17.47 15.7 25.79 31.55 31.76v.28l95.22 29.74c9.73 3.73 12.33 7.54 13.6 10.84 4.13 10.59.83 31.56-.34 38.88l-5.8 45-32.19 176.19q-.15.72-.27 1.47l-.23 1.27c-2.32 16.15 9.54 31.82 32 31.82 19.6 0 28.25-13.53 32-31.94s28-157.57 42-157.57 42.84 157.57 42.84 157.57c3.75 18.41 12.4 31.94 32 31.94 22.52 0 34.38-15.74 32-31.94a57.17 57.17 0 00-.76-4.06L329 301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09 1.09 0 00.08-.15c1.08-2 6-6.48 17.48-10.79l89.28-31.21a16.9 16.9 0 001.62-.52c16-6 32-14.3 32-31.93S451 107.81 432 112.8z"></path>
|
||||
<path d="M256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z" />
|
||||
<path d="M432 112.8l-.45.12-.42.13c-1 .28-2 .58-3 .89-18.61 5.46-108.93 30.92-172.56 30.92-59.13 0-141.28-22-167.56-29.47a73.79 73.79 0 00-8-2.58c-19-5-32 14.3-32 31.94 0 17.47 15.7 25.79 31.55 31.76v.28l95.22 29.74c9.73 3.73 12.33 7.54 13.6 10.84 4.13 10.59.83 31.56-.34 38.88l-5.8 45-32.19 176.19q-.15.72-.27 1.47l-.23 1.27c-2.32 16.15 9.54 31.82 32 31.82 19.6 0 28.25-13.53 32-31.94s28-157.57 42-157.57 42.84 157.57 42.84 157.57c3.75 18.41 12.4 31.94 32 31.94 22.52 0 34.38-15.74 32-31.94a57.17 57.17 0 00-.76-4.06L329 301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09 1.09 0 00.08-.15c1.08-2 6-6.48 17.48-10.79l89.28-31.21a16.9 16.9 0 001.62-.52c16-6 32-14.3 32-31.93S451 107.81 432 112.8z" />
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,28 +20,28 @@ export function LoaderIcon({
|
||||
alt="Slime jumping"
|
||||
width={size}
|
||||
// className="crisp-edges"
|
||||
></img>
|
||||
/>
|
||||
<img
|
||||
hidden={slimeState !== SlimeState.HAPPY}
|
||||
src="/images/happy-slime.gif"
|
||||
alt="Happy slime"
|
||||
width={size}
|
||||
// className="crisp-edges"
|
||||
></img>
|
||||
/>
|
||||
<img
|
||||
hidden={slimeState !== SlimeState.SAD}
|
||||
src="/images/sad-slime.gif"
|
||||
alt="Sad slime"
|
||||
width={size}
|
||||
// className="crisp-edges"
|
||||
></img>
|
||||
/>
|
||||
<img
|
||||
hidden={slimeState !== SlimeState.CURIOUS}
|
||||
src="/images/curious-slime.gif"
|
||||
alt="Slime looking for something"
|
||||
width={size}
|
||||
// className="crisp-edges"
|
||||
></img>
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ export function LowerArmIcon({
|
||||
<path
|
||||
transform={flipped ? 'scale(-1,1) translate(-50,0)' : undefined}
|
||||
d="M27.203 1.98c-1.019 0-1.954.56-2.437 1.458L17.26 15.858c-.157.291-.24.619-.24.95v16.22l-4.74 5.49a1.001 1.001 0 0 0 .156 1.407l9.386 7.818a.998.998 0 0 0 1.416-.17l8.354-10.443a13.001 13.001 0 0 0 2.668-7.072L35 20.83A2.83 2.83 0 0 0 32.17 18h-.008a2.83 2.83 0 0 0-2.73 2.086l-2.41 5.935-2.026-3.019L25 16l4.734-10.09c.847-1.836-.491-3.93-2.513-3.93h-.018z"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ export function PawIcon({
|
||||
<path
|
||||
transform={`${transform} scale(0.75, 0.75) translate(96, 96)`}
|
||||
d="M490.39 182.75c-5.55-13.19-14.77-22.7-26.67-27.49l-.16-.06a46.46 46.46 0 00-17-3.2h-.64c-27.24.41-55.05 23.56-69.19 57.61-10.37 24.9-11.56 51.68-3.18 71.64 5.54 13.2 14.78 22.71 26.73 27.5l.13.05a46.53 46.53 0 0017 3.2c27.5 0 55.6-23.15 70-57.65 10.24-24.87 11.37-51.63 2.98-71.6zM381.55 329.61c-15.71-9.44-30.56-18.37-40.26-34.41C314.53 250.8 298.37 224 256 224s-58.57 26.8-85.39 71.2c-9.72 16.06-24.6 25-40.36 34.48-18.07 10.86-36.74 22.08-44.8 44.16a66.93 66.93 0 00-4.65 25c0 35.95 28 65.2 62.4 65.2 17.75 0 36.64-6.15 56.63-12.66 19.22-6.26 39.09-12.73 56.27-12.73s37 6.47 56.15 12.73C332.2 457.85 351 464 368.8 464c34.35 0 62.3-29.25 62.3-65.2a67 67 0 00-4.75-25c-8.06-22.1-26.74-33.33-44.8-44.19zM150 188.85c11.9 14.93 27 23.15 42.52 23.15a42.88 42.88 0 006.33-.47c32.37-4.76 52.54-44.26 45.92-90C242 102.3 234.6 84.39 224 71.11 212.12 56.21 197 48 181.49 48a42.88 42.88 0 00-6.33.47c-32.37 4.76-52.54 44.26-45.92 90 2.76 19.2 10.16 37.09 20.76 50.38zm163.16 22.68a42.88 42.88 0 006.33.47c15.53 0 30.62-8.22 42.52-23.15 10.59-13.29 17.95-31.18 20.75-50.4 6.62-45.72-13.55-85.22-45.92-90a42.88 42.88 0 00-6.33-.47C315 48 299.88 56.21 288 71.11c-10.6 13.28-18 31.19-20.76 50.44-6.62 45.72 13.55 85.22 45.92 89.98zM111.59 308.8l.14-.05c11.93-4.79 21.16-14.29 26.69-27.48 8.38-20 7.2-46.75-3.15-71.65C120.94 175.16 92.85 152 65.38 152a46.4 46.4 0 00-17 3.2l-.14.05c-11.9 4.75-21.13 14.29-26.66 27.48-8.38 20-7.2 46.75 3.15 71.65C39.06 288.84 67.15 312 94.62 312a46.4 46.4 0 0016.97-3.2z"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@ export function SlimeUpIcon({ width = 60 }: { width?: number }) {
|
||||
strokeWidth="0.265"
|
||||
rx="6.963"
|
||||
ry="3.423"
|
||||
></rect>
|
||||
/>
|
||||
<path
|
||||
strokeWidth="0.195"
|
||||
d="M59.587 23.923c.514 0 .978.382 1.313 1.001.336.62.402 1.512.543 2.425l1.376 8.937v40.902l-1.38 8.95c-.14.917-.206 1.805-.542 2.425-.335.619-.8 1.001-1.314 1.001-1.028 0-2.14-1.59-1.856-3.427l1.38-8.949V36.286l-1.377-8.937c-.281-1.826.828-3.426 1.857-3.426z"
|
||||
></path>
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
);
|
||||
|
||||
@@ -9,13 +9,13 @@ export function SlimeVRIcon({ width = 28 }: { width?: number }) {
|
||||
viewBox="0 0 380 380"
|
||||
>
|
||||
<g fill="none" stroke="#fff">
|
||||
<path strokeWidth="13.62" d="M72.867 191.74l37-39 39 36"></path>
|
||||
<path strokeWidth="13.62" d="M208.87 187.74l38-35 36 38"></path>
|
||||
<path strokeWidth="13.62" d="M72.867 191.74l37-39 39 36" />
|
||||
<path strokeWidth="13.62" d="M208.87 187.74l38-35 36 38" />
|
||||
<path
|
||||
strokeLinecap="square"
|
||||
strokeWidth="17"
|
||||
d="M56.867 253.74s130.61-31.182 248 5c13.45 4.146 20.244 2.975 20-8s1.909-126.06-46-131"
|
||||
></path>
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -16,7 +16,7 @@ export function UpperArmIcon({
|
||||
<path
|
||||
transform={flipped ? undefined : 'scale(-1,1) translate(-50,0)'}
|
||||
d="M47.625 12.219c-.171-.137-8.614-8.622-8.918-8.926a.999.999 0 0 0-1.414 0c-1.996 1.996-4.216 8.745-4.291 15.364-2.309 3.104-2.842 7.479-2.965 9.393-3.187.334-5.254 2.287-6.943 3.884-.81.765-1.573 1.486-2.359 1.96-1.967 1.183-4.493 2.413-5.596 2.937a14.019 14.019 0 0 0-1.657-1.082c-.947-.52-2.496-.683-3.151-.73l-3.092-1.816A1.478 1.478 0 0 0 6.5 33 1.5 1.5 0 0 0 5 34.5c0 .35.082.689.629 1.236.597.597 1.101 1.14 2.976 3.014l-2.907 2.258H2a.998.998 0 0 0-.97 1.242l1 2.992a1 1 0 0 0 .651.706l2.973 1a1.015 1.015 0 0 0 .483.038l6.027-1a.988.988 0 0 0 .436-.187l3.946-2.959c.428-.233 3.692-1.952 8.755-2.856 5.89-1.052 9.31-2.796 10.608-3.565.058-.018.116-.033.176-.051.684-.192 1.716-.483 2.495-2.046.334-.669.54-1.318.74-1.947.325-1.022.605-1.906 1.378-2.659C46.089 24.46 48 20.085 48 13a.997.997 0 0 0-.375-.781z"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export function UpperChestIcon({ width = 24 }: { width?: number }) {
|
||||
width={width}
|
||||
viewBox="0 0 50 50"
|
||||
>
|
||||
<path d="M 20 2 C 18.156 2 16.700141 3.1345312 15.619141 4.0195312 C 12.698141 4.2755313 4 7.245 4 15 C 4 17.305 4.551 19.068203 4.875 19.908203 C 4.262 20.969203 3 23.679 3 28 C 3 28.352 3.184375 28.677422 3.484375 28.857422 L 8.484375 31.857422 C 8.835375 32.068422 9.2804219 32.044922 9.6074219 31.794922 C 10.290422 31.270922 10.833578 30.512578 11.267578 29.642578 C 11.118578 28.880578 11 28.05 11 27 L 11 21 C 11 20.448 11.448 20 12 20 C 12.43 20 12.790641 20.27425 12.931641 20.65625 C 12.944641 20.68425 12.982 20.797656 13 20.847656 C 13.197 21.404656 14.365 24 19 24 C 23.133 24 23.984531 19.976687 24.019531 19.804688 C 24.113531 19.329687 24.535 19.018531 25 19.019531 C 25.465 19.019531 25.886469 19.330687 25.980469 19.804688 C 26.015469 19.976687 26.867 24 31 24 C 35.635 24 36.803 21.405656 37 20.847656 C 37.018 20.797656 37.055359 20.68425 37.068359 20.65625 C 37.209359 20.27525 37.57 20 38 20 C 38.552 20 39 20.448 39 21 L 39 27 C 39 28.05 38.881422 28.881578 38.732422 29.642578 C 39.166422 30.513578 39.709578 31.269969 40.392578 31.792969 C 40.719578 32.042969 41.164625 32.066469 41.515625 31.855469 L 46.515625 28.855469 C 46.815625 28.676469 47 28.352 47 28 C 47 23.679 45.738 20.969203 45.125 19.908203 C 45.449 19.068203 46 17.305 46 15 C 46 7.245 37.301859 4.2755312 34.380859 4.0195312 C 33.299859 3.1345312 31.844 2 30 2 L 25 2 L 20 2 z M 25 22.609375 C 23.953 24.323375 22.059 26 19 26 C 16.075 26 14.195 25.130766 13 24.134766 L 13 27 C 13 28.281 13.194875 29.155016 13.421875 30.166016 C 13.692875 31.375016 14 32.746 14 35 C 14 35.027 13.987375 35.049172 13.984375 35.076172 C 13.994375 35.366172 14 35.669 14 36 L 14 42 C 14 44.997 18.628641 47.438484 19.556641 47.896484 C 19.693641 47.965484 19.847 48 20 48 L 25 48 L 30 48 C 30.153 48 30.306359 47.965484 30.443359 47.896484 C 31.371359 47.438484 36 44.997 36 42 L 36 36 C 36 35.669 36.005625 35.366172 36.015625 35.076172 C 36.012625 35.049172 36 35.027 36 35 C 36 32.746 36.307125 31.375016 36.578125 30.166016 C 36.805125 29.155016 37 28.281 37 27 L 37 24.134766 C 35.805 25.130766 33.925 26 31 26 C 27.941 26 26.047 24.323375 25 22.609375 z"></path>
|
||||
<path d="M 20 2 C 18.156 2 16.700141 3.1345312 15.619141 4.0195312 C 12.698141 4.2755313 4 7.245 4 15 C 4 17.305 4.551 19.068203 4.875 19.908203 C 4.262 20.969203 3 23.679 3 28 C 3 28.352 3.184375 28.677422 3.484375 28.857422 L 8.484375 31.857422 C 8.835375 32.068422 9.2804219 32.044922 9.6074219 31.794922 C 10.290422 31.270922 10.833578 30.512578 11.267578 29.642578 C 11.118578 28.880578 11 28.05 11 27 L 11 21 C 11 20.448 11.448 20 12 20 C 12.43 20 12.790641 20.27425 12.931641 20.65625 C 12.944641 20.68425 12.982 20.797656 13 20.847656 C 13.197 21.404656 14.365 24 19 24 C 23.133 24 23.984531 19.976687 24.019531 19.804688 C 24.113531 19.329687 24.535 19.018531 25 19.019531 C 25.465 19.019531 25.886469 19.330687 25.980469 19.804688 C 26.015469 19.976687 26.867 24 31 24 C 35.635 24 36.803 21.405656 37 20.847656 C 37.018 20.797656 37.055359 20.68425 37.068359 20.65625 C 37.209359 20.27525 37.57 20 38 20 C 38.552 20 39 20.448 39 21 L 39 27 C 39 28.05 38.881422 28.881578 38.732422 29.642578 C 39.166422 30.513578 39.709578 31.269969 40.392578 31.792969 C 40.719578 32.042969 41.164625 32.066469 41.515625 31.855469 L 46.515625 28.855469 C 46.815625 28.676469 47 28.352 47 28 C 47 23.679 45.738 20.969203 45.125 19.908203 C 45.449 19.068203 46 17.305 46 15 C 46 7.245 37.301859 4.2755312 34.380859 4.0195312 C 33.299859 3.1345312 31.844 2 30 2 L 25 2 L 20 2 z M 25 22.609375 C 23.953 24.323375 22.059 26 19 26 C 16.075 26 14.195 25.130766 13 24.134766 L 13 27 C 13 28.281 13.194875 29.155016 13.421875 30.166016 C 13.692875 31.375016 14 32.746 14 35 C 14 35.027 13.987375 35.049172 13.984375 35.076172 C 13.994375 35.366172 14 35.669 14 36 L 14 42 C 14 44.997 18.628641 47.438484 19.556641 47.896484 C 19.693641 47.965484 19.847 48 20 48 L 25 48 L 30 48 C 30.153 48 30.306359 47.965484 30.443359 47.896484 C 31.371359 47.438484 36 44.997 36 42 L 36 36 C 36 35.669 36.005625 35.366172 36.015625 35.076172 C 36.012625 35.049172 36 35.027 36 35 C 36 32.746 36.307125 31.375016 36.578125 30.166016 C 36.805125 29.155016 37 28.281 37 27 L 37 24.134766 C 35.805 25.130766 33.925 26 31 26 C 27.941 26 26.047 24.323375 25 22.609375 z" />
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ export function UpperLegIcon({
|
||||
<path
|
||||
transform={flipped ? 'scale(-1,1) translate(-50,0)' : undefined}
|
||||
d="M42.727.059a.998.998 0 0 0-.774.043A1.042 1.042 0 0 0 41.516 0H24.313c-.04 0-.079.016-.118.02a.972.972 0 0 0-.8.238c-2.407 2.172-5.836 7.715-6.793 11.773-2.012 2.281-2.11 4.774-.313 7.828.617 1.043.746 2.262.895 3.676.086.8.171 1.625.355 2.492.29 1.325.883 2.637 1.453 3.907.32.707.621 1.37.863 2.02.29.78.618 1.605.95 2.437.797 2.004 1.789 4.5 2.144 6.28.082 1.087-.012 2-.367 2.638-1.227 2.18-2.941 1.793-4.988 2.664-2.153.922-3.508 1.32-4.32 1.472-2.07.387-1.864.57-1.864.934 0 .113.016.219.035.324.168.766.922 1.3 1.77 1.3.156 0 .32-.015.48-.038a3.2 3.2 0 0 0 1.086-.352c.09.063.188.102.285.149.493.234 1.028.27 1.618.27 2.011 0 3.293-.063 4.207-.15 1.511-.14 2.02-.331 3.074-.378.152-.008.316-.012.504-.012.898 0 2.734.54 4.84.54.562 0 1.02-.114 1.394-.298 1.024-.496 1.399-1.543 1.399-2.48 0-1.566-1.063-2.547-2.04-5.121-.44-1.328-.91-3.035-1.253-5.418-.047-.344-.075-.668-.106-.996l-.047-.602c-.164-2.992.45-5.394.965-7.37.43-1.653.8-3.083.594-4.4-.473-3.015-1.781-4.863-2.563-5.964-.148-.207-.32-.453-.414-.61.223-.484 1.043-1.53 2.39-2.168 2.15-1.015 11.349-6.57 13.712-13.27A1.007 1.007 0 0 0 42.727.06Z"
|
||||
></path>
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export function WaistIcon({ width = 24 }: { width?: number }) {
|
||||
width={width}
|
||||
viewBox="0 0 72 72"
|
||||
>
|
||||
<path d="M17 2c-.3 0-.6.2-.8.4-.2.3-.3.7-.2 1 2.9 7.1 3.1 15.3.6 22.4-.6 2-1.5 3.9-2.4 5.7-.1.2-.2.5-.3.7 13.2 4.2 26.7 4.1 40.2-.1-.6-1.4-1.9-3.9-2.7-6.3-2.5-7.1-2.3-15.3.6-22.4.1-.3.1-.7-.1-.9-.2-.3-.5-.5-.9-.5H17zM9.863 14.75a.944.944 0 0 0-.664.35c-.4.4-.298 1.1.102 1.4l2.1 1.8H3.9c-.5.1-1 .6-1 1.1 0 .6.4 1 1 1h7.5l-2.1 1.8c-.4.4-.502 1-.102 1.4.4.4 1 .5 1.4.1 1.6-1.3 4.002-3.4 4.202-3.6.4-.4.5-1 0-1.5-.2-.2-3.201-2.7-4.201-3.6a.908.908 0 0 0-.737-.25zm48.237.1a.846.846 0 0 0-.7.25c-1 .9-3.9 3.3-4.2 3.6-.4.4-.4 1.1 0 1.5.2.2 3.2 2.7 4.2 3.6.4.4 1 .3 1.4-.1.4-.4.3-1.1-.1-1.4l-2.1-1.8h7.5c.6 0 1-.4 1-1s-.4-1-1-1h-7.5l2.1-1.8c.4-.4.4-1.1.1-1.5-.2-.2-.45-.325-.7-.35zm-3 19.45c-14.2 4.6-28.4 4.6-42.2.1-.5 1.1-1 2.3-1.4 3.5-.1.4-.3.8-.4 1.2 8.4 1.7 15.9 7 22.1 15.8 6.4-9.3 14.5-14.8 23.6-16.1l-.3-.9c-.4-1.2-.9-2.4-1.4-3.6zm2.3 6.8c-8.9 1.2-16.8 6.8-23 16.3V66h17.5c.3 0 .6-.2.8-.4 4.8-7.1 6.5-16.2 4.7-24.5zm-46.8.2c-1.7 8.3 0 17.3 4.7 24.3.2.3.5.4.8.4h16.2v-8.4s0-.1-.1-.1c-6-9.2-13.3-14.6-21.6-16.2z"></path>
|
||||
<path d="M17 2c-.3 0-.6.2-.8.4-.2.3-.3.7-.2 1 2.9 7.1 3.1 15.3.6 22.4-.6 2-1.5 3.9-2.4 5.7-.1.2-.2.5-.3.7 13.2 4.2 26.7 4.1 40.2-.1-.6-1.4-1.9-3.9-2.7-6.3-2.5-7.1-2.3-15.3.6-22.4.1-.3.1-.7-.1-.9-.2-.3-.5-.5-.9-.5H17zM9.863 14.75a.944.944 0 0 0-.664.35c-.4.4-.298 1.1.102 1.4l2.1 1.8H3.9c-.5.1-1 .6-1 1.1 0 .6.4 1 1 1h7.5l-2.1 1.8c-.4.4-.502 1-.102 1.4.4.4 1 .5 1.4.1 1.6-1.3 4.002-3.4 4.202-3.6.4-.4.5-1 0-1.5-.2-.2-3.201-2.7-4.201-3.6a.908.908 0 0 0-.737-.25zm48.237.1a.846.846 0 0 0-.7.25c-1 .9-3.9 3.3-4.2 3.6-.4.4-.4 1.1 0 1.5.2.2 3.2 2.7 4.2 3.6.4.4 1 .3 1.4-.1.4-.4.3-1.1-.1-1.4l-2.1-1.8h7.5c.6 0 1-.4 1-1s-.4-1-1-1h-7.5l2.1-1.8c.4-.4.4-1.1.1-1.5-.2-.2-.45-.325-.7-.35zm-3 19.45c-14.2 4.6-28.4 4.6-42.2.1-.5 1.1-1 2.3-1.4 3.5-.1.4-.3.8-.4 1.2 8.4 1.7 15.9 7 22.1 15.8 6.4-9.3 14.5-14.8 23.6-16.1l-.3-.9c-.4-1.2-.9-2.4-1.4-3.6zm2.3 6.8c-8.9 1.2-16.8 6.8-23 16.3V66h17.5c.3 0 .6-.2.8-.4 4.8-7.1 6.5-16.2 4.7-24.5zm-46.8.2c-1.7 8.3 0 17.3 4.7 24.3.2.3.5.4.8.4h16.2v-8.4s0-.1-.1-.1c-6-9.2-13.3-14.6-21.6-16.2z" />
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,308 +0,0 @@
|
||||
import { Localized, useLocalization } from '@fluent/react';
|
||||
import { Typography } from '@/components/commons/Typography';
|
||||
import { LoaderIcon, SlimeState } from '@/components/commons/icon/LoaderIcon';
|
||||
import { useFirmwareTool } from '@/hooks/firmware-tool';
|
||||
import { Button } from '@/components/commons/Button';
|
||||
import { Control, useForm } from 'react-hook-form';
|
||||
import {
|
||||
CreateImuConfigDTO,
|
||||
Imudto,
|
||||
} from '@/firmware-tool-api/firmwareToolSchemas';
|
||||
import { Dropdown } from '@/components/commons/Dropdown';
|
||||
import { TrashIcon } from '@/components/commons/icon/TrashIcon';
|
||||
import { Input } from '@/components/commons/Input';
|
||||
import {
|
||||
ArrowDownIcon,
|
||||
ArrowUpIcon,
|
||||
} from '@/components/commons/icon/ArrowIcons';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import { useElemSize } from '@/hooks/layout';
|
||||
import { useGetFirmwaresImus } from '@/firmware-tool-api/firmwareToolComponents';
|
||||
import { CheckBox } from '@/components/commons/Checkbox';
|
||||
|
||||
function IMUCard({
|
||||
control,
|
||||
imuTypes,
|
||||
hasIntPin,
|
||||
index,
|
||||
onDelete,
|
||||
}: {
|
||||
imuTypes: Imudto[];
|
||||
hasIntPin: boolean;
|
||||
control: Control<{ imus: CreateImuConfigDTO[] }, any>;
|
||||
index: number;
|
||||
onDelete: () => void;
|
||||
}) {
|
||||
const { l10n } = useLocalization();
|
||||
const [open, setOpen] = useState(false);
|
||||
const ref = useRef<HTMLDivElement | null>(null);
|
||||
const { height } = useElemSize(ref);
|
||||
|
||||
return (
|
||||
<div className="rounded-lg flex flex-col text-background-10">
|
||||
<div className="flex gap-3 p-4 shadow-md bg-background-50 rounded-md">
|
||||
<div className="bg-accent-background-40 rounded-full h-8 w-9 mt-[28px] flex flex-col items-center justify-center">
|
||||
<Typography variant="section-title" bold>
|
||||
{index + 1}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className={'w-full flex flex-col gap-2'}>
|
||||
<div className="grid xs-settings:grid-cols-2 mobile-settings:grid-cols-1 gap-3 fill-background-10">
|
||||
<label className="flex flex-col justify-end gap-1">
|
||||
<Localized id="firmware_tool-add_imus_step-imu_type-label"></Localized>
|
||||
<Dropdown
|
||||
control={control}
|
||||
name={`imus[${index}].type`}
|
||||
items={imuTypes.map(({ type }) => ({
|
||||
label: type.split('_').slice(1).join(' '),
|
||||
value: type,
|
||||
}))}
|
||||
variant="secondary"
|
||||
maxHeight="25vh"
|
||||
placeholder={l10n.getString(
|
||||
'firmware_tool-add_imus_step-imu_type-placeholder'
|
||||
)}
|
||||
direction="down"
|
||||
display="block"
|
||||
></Dropdown>
|
||||
</label>
|
||||
<Localized
|
||||
id="firmware_tool-add_imus_step-imu_rotation"
|
||||
attrs={{ label: true, placeholder: true }}
|
||||
>
|
||||
<Input
|
||||
control={control}
|
||||
rules={{
|
||||
required: true,
|
||||
}}
|
||||
type="number"
|
||||
name={`imus[${index}].rotation`}
|
||||
variant="primary"
|
||||
label="Rotation Degree"
|
||||
placeholder="Rotation Degree"
|
||||
autocomplete="off"
|
||||
></Input>
|
||||
</Localized>
|
||||
</div>
|
||||
<div
|
||||
className="duration-500 transition-[height] overflow-hidden"
|
||||
style={{ height: open ? height : 0 }}
|
||||
>
|
||||
<div
|
||||
ref={ref}
|
||||
className="grid xs-settings:grid-cols-2 mobile-settings:grid-cols-1 gap-2"
|
||||
>
|
||||
<Localized
|
||||
id="firmware_tool-add_imus_step-scl_pin"
|
||||
attrs={{ label: true, placeholder: true }}
|
||||
>
|
||||
<Input
|
||||
control={control}
|
||||
rules={{ required: true }}
|
||||
type="text"
|
||||
name={`imus[${index}].sclPin`}
|
||||
variant="primary"
|
||||
autocomplete="off"
|
||||
></Input>
|
||||
</Localized>
|
||||
<Localized
|
||||
id="firmware_tool-add_imus_step-sda_pin"
|
||||
attrs={{ label: true, placeholder: true }}
|
||||
>
|
||||
<Input
|
||||
control={control}
|
||||
rules={{ required: true }}
|
||||
type="text"
|
||||
name={`imus[${index}].sdaPin`}
|
||||
variant="primary"
|
||||
label="SDA Pin"
|
||||
placeholder="SDA Pin"
|
||||
autocomplete="off"
|
||||
></Input>
|
||||
</Localized>
|
||||
|
||||
{hasIntPin && (
|
||||
<Localized
|
||||
id="firmware_tool-add_imus_step-int_pin"
|
||||
attrs={{ label: true, placeholder: true }}
|
||||
>
|
||||
<Input
|
||||
control={control}
|
||||
rules={{ required: true }}
|
||||
type="text"
|
||||
name={`imus[${index}].intPin`}
|
||||
variant="primary"
|
||||
autocomplete="off"
|
||||
></Input>
|
||||
</Localized>
|
||||
)}
|
||||
<label className="flex flex-col justify-end gap-1 md:pt-3 sm:pt-3">
|
||||
<Localized
|
||||
id="firmware_tool-add_imus_step-optional_tracker"
|
||||
attrs={{ label: true }}
|
||||
>
|
||||
<CheckBox
|
||||
control={control}
|
||||
name={`imus[${index}].optional`}
|
||||
variant="toggle"
|
||||
color="tertiary"
|
||||
label=""
|
||||
></CheckBox>
|
||||
</Localized>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-col items-center mt-[25px] fill-background-10">
|
||||
<Button variant="quaternary" rounded onClick={onDelete}>
|
||||
<TrashIcon size={15}></TrashIcon>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="items-center flex justify-center hover:bg-background-60 bg-background-80 -mt-0.5 transition-colors duration-300 fill-background-10 rounded-b-lg pt-1 pb-0.5"
|
||||
onClick={() => setOpen(!open)}
|
||||
>
|
||||
<Typography>
|
||||
{l10n.getString(
|
||||
open
|
||||
? 'firmware_tool-add_imus_step-show_less'
|
||||
: 'firmware_tool-add_imus_step-show_more'
|
||||
)}
|
||||
</Typography>
|
||||
{!open && <ArrowDownIcon></ArrowDownIcon>}
|
||||
{open && <ArrowUpIcon></ArrowUpIcon>}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export function AddImusStep({
|
||||
nextStep,
|
||||
prevStep,
|
||||
isActive,
|
||||
}: {
|
||||
nextStep: () => void;
|
||||
prevStep: () => void;
|
||||
goTo: (id: string) => void;
|
||||
isActive: boolean;
|
||||
}) {
|
||||
const { l10n } = useLocalization();
|
||||
const {
|
||||
isStepLoading: isLoading,
|
||||
newConfig,
|
||||
defaultConfig,
|
||||
updateImus,
|
||||
} = useFirmwareTool();
|
||||
|
||||
const {
|
||||
control,
|
||||
formState: { isValid: isValidState },
|
||||
reset,
|
||||
watch,
|
||||
} = useForm<{ imus: CreateImuConfigDTO[] }>({
|
||||
defaultValues: {
|
||||
imus: [],
|
||||
},
|
||||
reValidateMode: 'onChange',
|
||||
mode: 'onChange',
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
reset({
|
||||
imus: newConfig?.imusConfig || [],
|
||||
});
|
||||
}, [isActive]);
|
||||
|
||||
const { isFetching, data: imuTypes } = useGetFirmwaresImus({});
|
||||
|
||||
const isAckchuallyLoading = isFetching || isLoading;
|
||||
const form = watch();
|
||||
|
||||
const addImu = () => {
|
||||
if (!newConfig || !defaultConfig) throw new Error('unreachable');
|
||||
|
||||
const imuPinToAdd =
|
||||
defaultConfig.imuDefaults[form.imus.length ?? 0] ??
|
||||
defaultConfig.imuDefaults[0];
|
||||
const imuTypeToAdd: CreateImuConfigDTO['type'] =
|
||||
form.imus[0]?.type ?? 'IMU_BNO085';
|
||||
reset({
|
||||
imus: [...form.imus, { ...imuPinToAdd, type: imuTypeToAdd }],
|
||||
});
|
||||
};
|
||||
const deleteImu = (index: number) => {
|
||||
reset({ imus: form.imus.filter((_, i) => i !== index) });
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="flex flex-col w-full">
|
||||
<div className="flex flex-col gap-4">
|
||||
<Typography>
|
||||
{l10n.getString('firmware_tool-add_imus_step-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="my-4 flex flex-col gap-4">
|
||||
{!isAckchuallyLoading && imuTypes && newConfig && (
|
||||
<>
|
||||
<div className="flex flex-col gap-3">
|
||||
<div
|
||||
className={classNames(
|
||||
'grid gap-2 px-2',
|
||||
form.imus.length > 1
|
||||
? 'md:grid-cols-2 mobile-settings:grid-cols-1'
|
||||
: 'grid-cols-1'
|
||||
)}
|
||||
>
|
||||
{form.imus.map((imu, index) => (
|
||||
<IMUCard
|
||||
control={control}
|
||||
imuTypes={imuTypes}
|
||||
key={`${index}:${imu.type}`}
|
||||
hasIntPin={
|
||||
imuTypes?.find(({ type: t }) => t == imu.type)
|
||||
?.hasIntPin ?? false
|
||||
}
|
||||
index={index}
|
||||
onDelete={() => deleteImu(index)}
|
||||
></IMUCard>
|
||||
))}
|
||||
</div>
|
||||
<div className="flex justify-center">
|
||||
<Localized id="firmware_tool-add_imus_step-add_more">
|
||||
<Button variant="primary" onClick={addImu}></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex justify-between">
|
||||
<Localized id="firmware_tool-previous_step">
|
||||
<Button variant="tertiary" onClick={prevStep}></Button>
|
||||
</Localized>
|
||||
<Localized id="firmware_tool-next_step">
|
||||
<Button
|
||||
variant="primary"
|
||||
disabled={!isValidState || form.imus.length === 0}
|
||||
onClick={() => {
|
||||
updateImus(form.imus);
|
||||
nextStep();
|
||||
}}
|
||||
></Button>
|
||||
</Localized>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
{isAckchuallyLoading && (
|
||||
<div className="flex justify-center flex-col items-center gap-3 h-44">
|
||||
<LoaderIcon slimeState={SlimeState.JUMPY}></LoaderIcon>
|
||||
<Localized id="firmware_tool-loading">
|
||||
<Typography></Typography>
|
||||
</Localized>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user