Compare commits

..

3 Commits

Author SHA1 Message Date
Louka
b73e147d17 Merge branch 'main' into tpose 2023-01-26 20:43:24 -05:00
Louka
4dae31a138 math wip 2023-01-26 20:42:55 -05:00
Louka
32d0674aad add tpose and ipose toggle 2023-01-23 21:33:01 -05:00
263 changed files with 4813 additions and 15892 deletions

View File

@@ -21,4 +21,3 @@ max_line_length = 88
indent_size = 4
indent_style = tab
max_line_length = 88
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlin.math.*

1
.envrc
View File

@@ -1 +0,0 @@
use flake

10
.github/CODEOWNERS vendored
View File

@@ -3,18 +3,14 @@
# Make Loucas the owner of all GUI stuff
/gui/ @loucass003
/package-lock.json @loucass003
# Uriel and Erimel responsible for i18n
/gui/public/i18n/ @ImUrX @Louka3000
/gui/src/i18n/ @ImUrX @Louka3000
/l10n.toml @ImUrX @Louka3000
/gui/src/i18n/ @ImUrX @Louka3000 @loucass003
/gui/src/components/settings/ @Louka3000 @loucass003
# Rust part of the GUI
/gui/src-tauri/ @ImUrX @TheButlah
/Cargo.lock @ImUrX @TheButlah
/gui/src-tauri/ @ImUrX @TheButlah
# Some server code~
/server/ @ButterscotchV @Eirenliel @Louka3000
@@ -24,7 +20,7 @@
/server/src/main/java/dev/slimevr/posestreamer/ @ButterscotchV
/server/src/main/java/dev/slimevr/osc/ @Louka3000
/server/src/main/java/dev/slimevr/tracking/processor/ @Louka3000
/server/src/main/java/dev/slimevr/vr/processor/ @Louka3000
/server/src/main/java/dev/slimevr/filtering/ @Louka3000
server/src/main/java/dev/slimevr/config/ @loucass003

View File

@@ -17,31 +17,11 @@ on:
create:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
cd gui
npm run lint
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-latest]
runs-on: ${{ matrix.os }}
@@ -69,7 +49,7 @@ jobs:
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "${{ matrix.os }}"
shared-key: "tauri"
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
@@ -91,7 +71,7 @@ jobs:
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr.exe
- if: matrix.os != 'windows-latest'
- if: matrix.os == 'ubuntu-20.04'
name: Upload a Build Artifact
uses: actions/upload-artifact@v3.1.0
with:

View File

@@ -38,7 +38,6 @@ jobs:
- name: Test with Gradle
run: ./gradlew test
build:
runs-on: ubuntu-latest
@@ -67,20 +66,9 @@ jobs:
# A file, directory or wildcard pattern that describes what to upload
path: server/build/libs/*
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
server/build/libs/*
bundle-linux:
bundle:
runs-on: ubuntu-20.04
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
needs: build
steps:
- uses: actions/checkout@v3
with:
@@ -105,7 +93,7 @@ jobs:
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "ubuntu-20.04"
shared-key: "tauri"
- name: Use Node.js
uses: actions/setup-node@v3
@@ -142,143 +130,3 @@ jobs:
with:
name: SlimeVR-GUI-AppImage
path: target/release/bundle/appimage/slimevr*.AppImage
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/appimage/slimevr*.AppImage ./SlimeVR-amd64.appimage
cp target/release/bundle/deb/slimevr*.deb ./SlimeVR-amd64.deb
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-amd64.appimage
./SlimeVR-amd64.deb
bundle-mac:
runs-on: macos-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "macos-latest"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run tauri build -- "--target universal-apple-darwin"
- name: Modify Application
run: |
cd target/release/bundle/macos/slimevr.app/Contents/MacOS
cp $( git rev-parse --show-toplevel )/server/build/libs/slimevr.jar ./
cd ../../../../dmg/
./bundle_dmg.sh --volname slimevr --icon slimevr 180 170 --app-drop-link 480 170 \
--window-size 660 400 --hide-extension ../macos/slimevr.app \
--volicon ../macos/slimevr.app/Contents/Resources/slimevr.icns --skip-jenkins \
--eula ../../../../LICENSE-MIT slimevr.dmg ../macos/slimevr.app
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-MacApp
path: target/release/bundle/macos/slimevr*.app
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-MacDmg
path: target/release/bundle/dmg/slimevr.dmg
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/dmg/slimevr.dmg ./SlimeVR-mac.dmg
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-mac.dmg
bundle-windows:
runs-on: windows-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "windows-latest"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run skipbundler
- name: Bundle to zips
shell: bash
run: |
mkdir SlimeVR
cp gui/src-tauri/icons/icon.ico ./SlimeVR/run.ico
cp server/build/libs/slimevr.jar ./SlimeVR/slimevr.jar
cp server/resources/* ./SlimeVR/
cp target/release/slimevr.exe ./SlimeVR/
7z a -tzip SlimeVR-win64.zip ./SlimeVR/
mv ./SlimeVR/slimevr.exe ./SlimeVR/slimevr-ui.exe
7z a -tzip SlimeVR.zip ./SlimeVR/
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-Windows
path: ./SlimeVR*.zip
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-win64.zip
./SlimeVR.zip

View File

@@ -1,24 +0,0 @@
name: Update translations in main
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@v3
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 }}

View File

@@ -1,37 +0,0 @@
# This workflow will rebase `pontoon` with `main` changes, it's for making the
# Pontoon bot not try making commits to main
name: Rebase pontoon branch to main
on:
push:
branches:
- main
jobs:
rebase:
if: ${{ github.repository == 'SlimeVR/SlimeVR-Server' }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
ref: pontoon
submodules: recursive
# Get all the git history for rebasing
fetch-depth: 0
- name: Rebase
run: |
git config --local user.name "slimevr-bot"
git config --local user.email pantoon@slimevr.dev
git fetch origin main
git rebase origin/main
- name: Push rebase
uses: github-actions-x/commit@v2.9
with:
github-token: ${{ secrets.PONTOON_BOT_KEY }}
push-branch: "pontoon"
commit-message: "update"
force-push: "true"
name: "slimevr-bot"

5
.gitignore vendored
View File

@@ -7,8 +7,6 @@
# Ignore .idea
.idea
# Ignore .fleet
.fleet
# Ignore eclipse stuff
.project
@@ -33,6 +31,3 @@ build/
# Rust build artifacts
/target
# direnv has been claimed for Nix usage
.direnv/

View File

@@ -9,8 +9,7 @@
"esbenp.prettier-vscode",
"rust-lang.rust-analyzer",
"bradlc.vscode-tailwindcss",
"EditorConfig.EditorConfig",
"macabeus.vscode-fluent",
"EditorConfig.EditorConfig"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": []

View File

@@ -17,15 +17,6 @@ cd SlimeVR-Server
Now you can open the codebase in your favorite IDE or text editor.
### Installing Java
The codebase is required to build with Java version 17 or higher.
```bash
# Check java version
java --version
```
### Building the code
The code is built with `gradle`, a cli tool that manages java projects and their
dependencies. You can build the code with `./gradlew build` and run it with
@@ -74,7 +65,6 @@ Eclipse will only do a subset of the checks in `spotless`, so you may still want
`./gradlew spotlessApply` if you ever see an error from spotless.
### Version bumping
* Add new release inside ``<releases>`` in the ``dev.slimevr.SlimeVR.metainfo.xml`` file. (Example: ``<release version="a.b.c" date="YYYY-MM-DD"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/va.b.c</url></release>``)
* Create the git tag instead of making it from releases, you can do it by just ``git tag VERSION``,
example ``git tag v0.5.0``
* You need to push this change with ``git push origin VERSION`` or ``git push origin --tags``

18
Cargo.lock generated
View File

@@ -1831,17 +1831,6 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "os_info"
version = "3.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f"
dependencies = [
"log",
"serde",
"winapi",
]
[[package]]
name = "os_pipe"
version = "1.1.2"
@@ -2636,7 +2625,6 @@ dependencies = [
"tauri",
"tauri-build",
"tauri-plugin-window-state",
"tauri-runtime",
"tempfile",
"which",
"win32job",
@@ -2839,7 +2827,6 @@ dependencies = [
"ignore",
"objc",
"once_cell",
"os_info",
"os_pipe",
"percent-encoding",
"rand 0.8.5",
@@ -2927,13 +2914,10 @@ dependencies = [
[[package]]
name = "tauri-plugin-window-state"
version = "0.1.0"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#bf1106a0a5e178ce38ecde56751ba037307a7ae8"
source = "git+https://github.com/tauri-apps/tauri-plugin-window-state?rev=refs/pull/52/head#53288bde5968f16cd876c23255ffeeaecbf4466f"
dependencies = [
"bincode",
"bitflags",
"log",
"serde",
"serde_json",
"tauri",
"thiserror",
]

View File

@@ -5,20 +5,18 @@ Server orchestrates communication between multiple sensors and integrations, lik
Sensors implementations:
* [SlimeVR Tracker for ESP](https://github.com/SlimeVR/SlimeVR-Tracker-ESP) - ESP microcontrollers and multiple IMUs are supported
* [owoTrack Mobile App](https://github.com/abb128/owoTrackVRSyncMobile) - use phones as trackers (limited functionality and compatibility)
* [SlimeVR Wrangler](https://github.com/carl-anders/slimevr-wrangler) - use Nintendo Switch Joycon controllers as trackers
* [owoTrack Mobile App](https://github.com/abb128/owoTrackVRSyncMobile) - use phone as a tracker (limited functionality and compatibility)
Integrations:
* Use [SlimeVR OpenVR Driver](https://github.com/SlimeVR/SlimeVR-OpenVR-Driver) as a driver for SteamVR
* Use built-in OSC support for integration with other apps, such as VRChat, using OSC
* Integrations with other systems will be added later
## How to use
It's highly recommended to install using the installer downloadable here: https://github.com/SlimeVR/SlimeVR-Installer/releases/latest/download/slimevr_web_installer.exe
It's recommended to download installer from here: https://github.com/SlimeVR/SlimeVR-Installer/releases/latest/download/slimevr_web_installer.exe
Latest setup instructions are [on our site](https://docs.slimevr.dev/server/index.html).
Latest instructions are [on our site](https://docs.slimevr.dev/server-setup/slimevr-setup.html).
## License clarification
## License Clarification
**SlimeVR software** (including server, firmware, drivers, installer, documents, and others - see
licence for each case specifically) **is distributed under a dual MIT/Apache 2.0 License
([LICENSE-MIT] and [LICENSE-APACHE]). The software is the copyright of the SlimeVR

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 KiB

View File

@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
dev.slimevr.SlimeVR.metainfo.xml by SlimeVR contributors
To the extent possible under law, the person who associated CC0 with
dev.slimevr.SlimeVR.metainfo.xml has waived all copyright and related or neighboring rights
to dev.slimevr.SlimeVR.metainfo.xml.
You should have received a copy of the CC0 legalcode along with this
work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-->
<component type="desktop-application">
<id>dev.slimevr.SlimeVR</id>
<name>SlimeVR</name>
<summary>An app for facilitating full-body tracking in virtual reality</summary>
<developer_name>SlimeVR Team</developer_name>
<!-- CC0 so attribution is not required -->
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT OR Apache-2.0</project_license>
<content_rating type="oars-1.1" />
<url type="homepage">https://slimevr.dev/</url>
<url type="bugtracker">https://github.com/SlimeVR/SlimeVR-Server/issues</url>
<url type="faq">https://docs.slimevr.dev/slimevr101.html</url>
<url type="vcs-browser">https://github.com/SlimeVR/SlimeVR-Server</url>
<url type="translate">https://i18n.slimevr.dev</url>
<url type="help">https://docs.slimevr.dev/server-setup/slimevr-setup.html</url>
<url type="contribute">https://github.com/SlimeVR/SlimeVR-Server/blob/main/CONTRIBUTING.md</url>
<url type="contact">https://discord.gg/SlimeVR</url>
<recommends>
<display_length compare="ge">880</display_length>
</recommends>
<supports>
<control>pointing</control>
<control>keyboard</control>
<control>touch</control>
</supports>
<branding>
<color type="primary">#663499</color>
</branding>
<description>
<p>
<code>SlimeVR</code>
is a set of open hardware sensors and open source software that facilitates full-body
tracking (FBT) in virtual reality. With no base station required, SlimeVR makes wireless
VR FBT affordable and comfortable.
</p>
</description>
<launchable type="desktop-id">dev.slimevr.SlimeVR.desktop</launchable>
<screenshots>
<screenshot type="default">
<caption>The onboarding for the GUI</caption>
<image>https://raw.githubusercontent.com/SlimeVR/SlimeVR-Server/main/assets/img/onboarding.png</image>
</screenshot>
</screenshots>
<releases>
<release version="0.6.2" date="2023-02-17"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.2</url></release>
<release version="0.6.1" date="2023-02-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.1</url></release>
<release version="0.6.0" date="2023-01-05"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.0</url></release>
<release version="0.5.1" date="2022-12-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.5.1</url></release>
<release version="0.5.0" date="2022-12-07"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.5.0</url></release>
<release version="0.4.0" date="2022-11-24"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.4.0</url></release>
<release version="0.3.1" date="2022-11-22"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.3.1</url></release>
<release version="0.3.0" date="2022-11-16"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.3.0</url></release>
<release version="0.2.1" date="2022-08-24"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.2.1</url></release>
<release version="0.2.0" date="2022-06-28"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.2.0</url></release>
</releases>
</component>

93
flake.lock generated
View File

@@ -1,93 +0,0 @@
{
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1675410244,
"narHash": "sha256-ODj6egMoH/HgAF/0wIy0EfRBeUx5FMuLl6uAdUW3kCI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f7543a7539a007e9562e4d8d24e17a4bcf369b68",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-22.11",
"type": "indirect"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1665296151,
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1675391458,
"narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -1,83 +0,0 @@
{
description = "Server app for SlimeVR ecosystem";
inputs.nixpkgs.url = "nixpkgs/nixos-22.11";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
outputs = {
self,
nixpkgs,
flake-utils,
rust-overlay,
}:
flake-utils.lib.eachDefaultSystem
(
system: let
overlays = [(import rust-overlay)];
pkgs = import nixpkgs {
inherit system overlays;
};
rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
nativeBuildInputs = with pkgs; [
curl
gcc
openssl
pkgconfig
which
zlib
freetype
expat
];
buildInputs = with pkgs; [
appimagekit
atk
cairo
dbus
dbus.lib
dprint
gdk-pixbuf
glib.out
gobject-introspection
gtk3
harfbuzz
libayatana-appindicator-gtk3
libffi
libsoup
openssl.out
pango
pkg-config
treefmt
webkitgtk
zlib
# Some nice things to have
exa
fd
jdk # JDK17
nodejs
gradle
];
in {
devShells.default = pkgs.mkShell {
nativeBuildInputs =
nativeBuildInputs
++ [
];
buildInputs =
buildInputs
++ [
rustTarget
];
shellHook = ''
alias ls=exa
alias find=fd
'';
};
}
);
}

View File

@@ -27,15 +27,7 @@
"no-inline-styles": "off",
"@typescript-eslint/no-explicit-any": "off",
"react/no-unescaped-entities": "off",
"prettier/prettier": "warn",
"camelcase": "error",
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
]
"prettier/prettier": "warn"
},
"settings": {
"import/resolver": {

View File

@@ -11,9 +11,14 @@
"@tauri-apps/api": "^1.2.0",
"@vitejs/plugin-react": "^3.0.0",
"browserslist": "^4.18.1",
"camelcase": "^6.2.1",
"classnames": "^2.3.1",
"dotenv": "^10.0.0",
"dotenv-expand": "^5.1.0",
"eslint-config-react-app": "^7.0.0",
"file-loader": "^6.2.0",
"flatbuffers": "^22.10.26",
"fs-extra": "^10.0.0",
"identity-obj-proxy": "^3.0.0",
"intl-pluralrules": "^1.3.1",
"ip-num": "^1.4.1",
@@ -27,6 +32,7 @@
"react-hook-form": "^7.29.0",
"react-modal": "3.15.1",
"react-router-dom": "^6.2.2",
"semver": "^7.3.5",
"solarxr-protocol": "file:../solarxr-protocol",
"three": "^0.148.0",
"typescript": "^4.6.3"
@@ -37,9 +43,9 @@
"dev": "tauri dev",
"skipbundler": "tauri build -b none",
"tauri": "tauri",
"lint": "eslint \"src/**/*.{js,jsx,ts,tsx,json}\"",
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx,json}\"",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,md,json}\"",
"lint": "eslint src/**/*.{js,jsx,ts,tsx,json}",
"lint:fix": "eslint --fix src/**/*.{js,jsx,ts,tsx,json}",
"format": "prettier --write src/**/*.{js,jsx,ts,tsx,css,md,json} --config ./.prettierrc",
"preview-vite": "vite preview",
"javaversion-build": "cd src-tauri/src/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class"
},
@@ -62,7 +68,7 @@
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.0",
"@tauri-apps/cli": "^1.2.3",
"@tauri-apps/cli": "^1.2.2",
"@types/react": "18.0.25",
"@types/react-dom": "^18.0.5",
"@types/react-modal": "3.13.1",

Binary file not shown.

Binary file not shown.

View File

@@ -1,692 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = جاري التوصيل بالسيرفر
websocket-connection_lost = انقطع الاتصال بالسيرفر. يتم إعادة التوصيل...
## Tips
tips-find_tracker = لست متأكد من أجهزة التعقب؟ قم بتحريك الجهاز لتحديد العنصر المناسب.
tips-do_not_move_heels = يرجى عدم تحريك كاحليك أثناء التسجيل!
## Body parts
body_part-NONE = غير محدد
body_part-HEAD = الرأس
body_part-NECK = العنق
body_part-RIGHT_SHOULDER = الكتف الأيمن
body_part-RIGHT_UPPER_ARM = العضد الأيمن
body_part-RIGHT_LOWER_ARM = الساعد الأيمن
body_part-RIGHT_HAND = اليد اليمنى
body_part-RIGHT_UPPER_LEG = الفخذ الأيمن
body_part-RIGHT_LOWER_LEG = الكاحل الأيمن
body_part-RIGHT_FOOT = القدم اليمنى
body_part-RIGHT_CONTROLLER = جهاز التحكم اليمنى
body_part-CHEST = الصدر
body_part-WAIST = الخصر
body_part-HIP = الورك
body_part-LEFT_SHOULDER = الكتف الأيسر
body_part-LEFT_UPPER_ARM = العضد الأيسر
body_part-LEFT_LOWER_ARM = الساعد الأيسر
body_part-LEFT_HAND = اليد اليسرى
body_part-LEFT_UPPER_LEG = الفخذ الأيسر
body_part-LEFT_LOWER_LEG = الكاحل الأيسر
body_part-LEFT_FOOT = القدم اليسرى
body_part-LEFT_CONTROLLER = جهاز التحكم الايسر
## Proportions
skeleton_bone-NONE = غير محدد
skeleton_bone-HEAD = إمالة الرأس
skeleton_bone-NECK = طول العنق
skeleton_bone-CHEST = طول الصدر
skeleton_bone-CHEST_OFFSET = درجة تشريد الصدر
skeleton_bone-WAIST = طول الخصر
skeleton_bone-HIP = طول الورك
skeleton_bone-HIP_OFFSET = درجة تشريد الورك
skeleton_bone-HIPS_WIDTH = عرض الورك
skeleton_bone-UPPER_LEG = طول الفخذ
skeleton_bone-LOWER_LEG = طول الساق السفلي
skeleton_bone-FOOT_LENGTH = طول القدم
skeleton_bone-FOOT_SHIFT = إمالة القدم
skeleton_bone-SKELETON_OFFSET = درجة تشريد الهيكل العظمي
skeleton_bone-SHOULDERS_DISTANCE = مسافة الكتفين
skeleton_bone-SHOULDERS_WIDTH = عرض الكتفين
skeleton_bone-UPPER_ARM = طول العضد
skeleton_bone-LOWER_ARM = طول الساعد
skeleton_bone-CONTROLLER_Y = مسافة وحدة التحكم Y
skeleton_bone-CONTROLLER_Z = مسافة وحدة التحكم Z
skeleton_bone-ELBOW_OFFSET = درجة تشريد الكوع
## Tracker reset buttons
reset-reset_all = إعادة تعيين جميع النسب
reset-full = اعاده تعيين
reset-mounting = إعادة تعيين التركيب
reset-quick = إعادة تعيين سريعة
## Serial detection stuff
serial_detection-new_device-p0 = تم اكتشاف جهاز تسلسلي جديد!
serial_detection-new_device-p1 = أدخل بيانات اعتماد الواي فاي الخاصة بك!
serial_detection-new_device-p2 = يرجى تحديد ما تريد القيام به
serial_detection-open_wifi = اتصل بشبكة الواي فاي
serial_detection-open_serial = افتح وحدة التحكم التسلسلية
serial_detection-submit = إرسال!
serial_detection-close = أغلق
## Navigation bar
navbar-home = الصفحة الرئيسية
navbar-body_proportions = نسب الجسم
navbar-trackers_assign = تعيين جهاز التعقب
navbar-mounting = معايرة التركيب
navbar-onboarding = معالج الإعداد
navbar-settings = الإعدادات
## Bounding volume hierarchy recording
bvh-start_recording = سجل بي في ايتش
bvh-recording = تسجيل...
## Widget: Overlay settings
widget-overlay = التراكب
widget-overlay-is_visible_label = إظهار التراكب في ستيم في ار
widget-overlay-is_mirrored_label = عكس تراكب الشاشة
## Widget: Drift compensation
widget-drift_compensation-clear = حذف تعويض الانجراف
## Widget: Developer settings
widget-developer_mode = وضع المطوّر
widget-developer_mode-high_contrast = تباين عالي
widget-developer_mode-precise_rotation = دوران دقيق
widget-developer_mode-fast_data_feed = تغذية البيانات السريعة
widget-developer_mode-filter_slimes_and_hmd = تصفية السليمس و ايتش أم دي
widget-developer_mode-sort_by_name = فرز بالاسم
widget-developer_mode-raw_slime_rotation = الدوران الصافي
widget-developer_mode-more_info = المزيد
## Widget: IMU Visualizer
widget-imu_visualizer = دوران
widget-imu_visualizer-rotation_raw = صافي
widget-imu_visualizer-rotation_preview = عرض مسبق
## Tracker status
tracker-status-none = لا توجد حالة
tracker-status-busy = مشغول
tracker-status-error = خطأ
tracker-status-disconnected = فقد الاتصال
tracker-status-occluded = محجوب
tracker-status-ok = حسنًا
## Tracker status columns
tracker-table-column-name = الاسم
tracker-table-column-type = النوع
tracker-table-column-battery = البطارية
tracker-table-column-ping = بينج
tracker-table-column-tps = تي بي أس
tracker-table-column-temperature = درجة الحرارة درجة مئوية
tracker-table-column-linear-acceleration = تسارع X/Y/Z
tracker-table-column-rotation = دوران X / Y / Z
tracker-table-column-position = موضع X/Y/Z
tracker-table-column-url = عنوان URL
## Tracker rotation
tracker-rotation-front = المقدمة
tracker-rotation-left = اليسار
tracker-rotation-right = اليمين
tracker-rotation-back = الخلف
## Tracker information
tracker-infos-manufacturer = المصنّع
tracker-infos-display_name = اسم العرض
tracker-infos-custom_name = اسم مخصص
tracker-infos-url = عنوان URL لجهاز التعقب
## Tracker settings
tracker-settings-back = ارجع إلى قائمة أجهزة التعقب
tracker-settings-title = إعدادات جهاز التعقب
tracker-settings-assignment_section = التكليف
tracker-settings-assignment_section-description = أي جزء من الجسم تم تعيين جهاز التعقب له.
tracker-settings-assignment_section-edit = تعديل التكليف
tracker-settings-mounting_section = مكان التركيب
tracker-settings-mounting_section-description = أين تم تركيب جهاز التعقب؟
tracker-settings-mounting_section-edit = تعديل التركيب
tracker-settings-drift_compensation_section = السماح بتعويض الانجراف
tracker-settings-drift_compensation_section-description = هل يجب أن يعوض جهاز التعقب عن انحرافه عند تمكين تعويض الانجراف؟
tracker-settings-drift_compensation_section-edit = السماح بتعويض الانجراف
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = اسم جهاز التعقب
tracker-settings-name_section-description = أعطها لقب لطيف :)
tracker-settings-name_section-placeholder = ساق نايتي بيست اليسرى
## Tracker part card info
tracker-part_card-no_name = لا يوجد اسم
tracker-part_card-unassigned = غير محدد
## Body assignment menu
body_assignment_menu = أين تريد أن يكون هذا الجهاز التعقب؟
body_assignment_menu-description = اختر الموقع الذي تريد تعيين هذا جهاز التعقب. بدلاً من ذلك، يمكنك اختيار إدارة جميع أجهزة التعقب مرة واحدة بدلاً من إدارة كل جهاز تلو الآخر.
body_assignment_menu-show_advanced_locations = إظهار مواقع التعيين المتقدمة
body_assignment_menu-manage_trackers = إدارة جميع أجهزة التعقب
body_assignment_menu-unassign_tracker = إلغاء تعيين جهاز التعقب
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = أي جهاز تعقب لتعيينه إلى
tracker_selection_menu-NONE = ما هو جهاز تعقب تريد أن يكون غير معين؟
tracker_selection_menu-HEAD = { -tracker_selection-part } الرأس؟
tracker_selection_menu-NECK = { -tracker_selection-part } العنق؟
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } الكتف الأيمن؟
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } العضد الأيمن؟
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } الساعد الأيمن؟
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } اليد اليمنى؟
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } الفخذ الأيمن؟
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } الكاحل الأيمن؟
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } القدم اليمنى؟
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } وحدة التحكم اليمنى؟
tracker_selection_menu-CHEST = { -tracker_selection-part } الصدر؟
tracker_selection_menu-WAIST = { -tracker_selection-part } الخصر؟
tracker_selection_menu-HIP = { -tracker_selection-part } الورك؟
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } الكتف الأيسر؟
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } العضد الأيسر؟
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } الساعد الأيسر؟
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } اليد اليسرى؟
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } الفخذ الأيسر؟
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } الكاحل الأيسر؟
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } القدم اليسرى؟
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } وحدة تحكم اليسار؟
tracker_selection_menu-unassigned = أجهزة تعقب غير معينة
tracker_selection_menu-assigned = أجهزة تعقب معينة
tracker_selection_menu-dont_assign = لا تعين
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>تحذير:</b> يمكن أن يكون جهاز تعقب الرقبة مميتا إذا تم شدها كثيراً،
يمكن للحزام أن يقطع الدورة الدموية إلى رأسك!
tracker_selection_menu-neck_warning-done = أفهم المخاطر
tracker_selection_menu-neck_warning-cancel = إلغاء
## Mounting menu
mounting_selection_menu = أين تريد أن يكون جهاز التعقب؟
mounting_selection_menu-close = أغلق
## Sidebar settings
settings-sidebar-title = الإعدادات
settings-sidebar-general = الاعدادات العامة
settings-sidebar-tracker_mechanics = ميكانيكا جهاز التعقب
settings-sidebar-fk_settings = إعدادات التعقب
settings-sidebar-gesture_control = التحكم بالإيماءات
settings-sidebar-interface = واجهة المستخدم
settings-sidebar-osc_router = راوتر أوه أس سي
settings-sidebar-utils = الأدوات المساعدة
settings-sidebar-serial = وحدة التحكم التسلسلية
## SteamVR settings
settings-general-steamvr = ستيم في ار
settings-general-steamvr-subtitle = أجهزة تعقب ستيم في ار
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
تمكين أو تعطيل أجهزة التعقب المحددة لستيم في ار.
مفيد فقط للألعاب أو التطبيقات التي تدعم أجهزة تعقب معينة.
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
settings-general-tracker_mechanics = ميكانيكا جهاز التعقب
settings-general-tracker_mechanics-filtering = تصفية
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
اختر نوع التصفية لأجهزة التعقب الخاصة بك.
يتنبأ التنبؤ بالحركة بينما يعمل على تنعيم الحركة.
settings-general-tracker_mechanics-filtering-type = نوع التصفية
settings-general-tracker_mechanics-filtering-type-none = بدون تصفية
settings-general-tracker_mechanics-filtering-type-none-description = استخدم التدوير كما هو. لن تفعل أي تصفية
settings-general-tracker_mechanics-filtering-type-smoothing = التنعيم
settings-general-tracker_mechanics-filtering-type-smoothing-description = ينعم الحركات لكنه يزيد من وقت الاستجابة.
settings-general-tracker_mechanics-filtering-type-prediction = التنبؤ
settings-general-tracker_mechanics-filtering-type-prediction-description = يقلل من وقت الإستجابة ويجعل الحركات أكثر سرعة ، ولكنه قد يزيد من التوتر.
settings-general-tracker_mechanics-filtering-amount = المبلغ
settings-general-tracker_mechanics-drift_compensation = تعويض الانجراف
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
يعوض عن انجراف انعراج وحدة IMU بتطبيق دوران عكسي.
قم بتغيير كمية التعويض وعدد عمليات إعادة التعيين التي يتم أخذها في الاعتبار.
settings-general-tracker_mechanics-drift_compensation-enabled-label = تعويض الانجراف
settings-general-tracker_mechanics-drift_compensation-amount-label = مبلغ التعويض
settings-general-tracker_mechanics-drift_compensation-max_resets-label = استخدام ما يصل إلى x عمليات إعادة التعيين الأخيرة
## FK/Tracking settings
settings-general-fk_settings = إعدادات التعقب
settings-general-fk_settings-leg_tweak = تعديلات الساق
settings-general-fk_settings-leg_tweak-description = يمكن أن يقلل أدت التقليم الأرضية من تقليم الأرض أو حتى يزيله ، ولكنه قد يسبب مشاكل عند الركوع على ركبتيك. تصحيح التزحلق على الجليد يصحح التزحلق على الجليد ، لكن يمكنه أن يقلل الدقة في أنماط حركة معينة
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = فلور كليب
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = تصحيح التزحلق
settings-general-fk_settings-leg_tweak-skating_correction-amount = قوة تصحيح التزحلق
settings-general-fk_settings-arm_fk = تعقب الذراع
settings-general-fk_settings-arm_fk-description = تغيير طريقة تعقب الذراعين.
settings-general-fk_settings-arm_fk-force_arms = إجبار الذراعين من ايتش أم دي
settings-general-fk_settings-skeleton_settings = إعدادات الهيكل العظمي
settings-general-fk_settings-skeleton_settings-description = تبديل إعدادات الهيكل العظمي أو إيقافه. يوصى بتركها شغالة.
settings-general-fk_settings-skeleton_settings-extended_spine = العمود الفقري الممتد
settings-general-fk_settings-skeleton_settings-extended_pelvis = الحوض الممتد
settings-general-fk_settings-skeleton_settings-extended_knees = الركبة الممتدة
settings-general-fk_settings-vive_emulation-title = محاكاة فايف
settings-general-fk_settings-vive_emulation-description = محاكاة مشاكل تعقب الخصر التي تعاني منها أجهزة تعقب فايف. هذه مزحة وتجعل التتبع أسوأ.
settings-general-fk_settings-vive_emulation-label = تمكين محاكاة فايف
## Gesture control settings (tracker tapping)
settings-general-gesture_control = التحكم بالإيماءات
settings-general-gesture_control-subtitle = عمليات إعادة التعيين المستندة على النقر
settings-general-gesture_control-description = يسمح بتشغيل عملية إعادة التعيين من خلال النقر على جهاز التعقب. يتم استخدام جهاز التعقب الأعلى على جذعك لإعادة ضبط سريع ، ويتم استخدام جهاز التعقب الأعلى على ساقك اليسرى لإعادة ضبط ، ويتم استخدام جهاز التعقب الأعلى على ساقك اليمنى إعادة ضبط التركيب . تجدر الإشارة إلى أن النقرات يجب أن تتم خلال 0.6 ثانية لكي يتم تسجيلها.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[zero] { $amount } نقرات
[one] نقرة واحدة
[two] نقرتان
[few] { $amount } نقرات
[many] { $amount } نقرات
*[other] { $amount } نقرات
}
settings-general-gesture_control-quickResetEnabled = تمكين النقر لإعادة الضبط السريع
settings-general-gesture_control-quickResetDelay = تأخير إعادة الضبط السريع
settings-general-gesture_control-quickResetTaps = نقرات لإعادة الضبط السريع
settings-general-gesture_control-resetEnabled = تمكين النقر لإعادة التعيين
settings-general-gesture_control-resetDelay = إعادة تعيين التأخير
settings-general-gesture_control-resetTaps = نقرات لإعادة الضبط
settings-general-gesture_control-mountingResetEnabled = تمكين النقر لإعادة تعيين التركيب
settings-general-gesture_control-mountingResetDelay = تأخير إعادة تعيين التركيب
settings-general-gesture_control-mountingResetTaps = نقرات لإعادة تعيين التركيب
## Interface settings
settings-general-interface = واجهة المستخدم
settings-general-interface-dev_mode = وضع المطوّر
settings-general-interface-dev_mode-description = يمكن أن يكون هذا الوضع مفيدًا إذا كنت بحاجة إلى بيانات متعمقة أو للتفاعل مع أجهزة التعقب المتصلة على مستوى أكثر تقدمًا.
settings-general-interface-dev_mode-label = وضع المطوّر
settings-general-interface-serial_detection = الكشف عن جهاز تسلسلي
settings-general-interface-serial_detection-description = سيعرض هذا الخيار نافذة منبثقة في كل مرة تقوم فيها بتوصيل جهاز تسلسلي جديد يمكن أن يكون جهاز تعقب. يساعد في تحسين عملية إعداد جهاز التعقب.
settings-general-interface-serial_detection-label = الكشف عن جهاز تسلسلي
settings-general-interface-lang = اختر اللغة
settings-general-interface-lang-description = قم بتغيير اللغة الافتراضية التي تريد استخدامها.
settings-general-interface-lang-placeholder = اختر اللغة التي تريد استخدامها
## Serial settings
settings-serial = وحدة التحكم التسلسلية
# This cares about multilines
settings-serial-description =
هذا هو موجز معلومات مباشر للاتصال التسلسلي.
قد يكون مفيدًا إذا كنت بحاجة إلى معرفة إن كان البرنامج الثابت به خلل.
settings-serial-connection_lost = تم فقد الاتصال بالمسلسل ، جاري إعادة الاتصال...
settings-serial-reboot = إعادة التشغيل
settings-serial-factory_reset = إعادة التعيين إلى إعدادات المصنع
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>تحذير:</b> سيؤدي هذا إلى إعادة تعيين المتعقب إلى إعدادات المصنع.
مما يعني أن إعدادات واي فاي والمعايرة <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 = تلقائي
## OSC router settings
settings-osc-router = راوتر أوه أس سي
# This cares about multilines
settings-osc-router-description =
إعادة توجيه رسائل أوه أس سي من برنامج آخر.
مفيد لاستخدام برنامج أوه أس سي آخر مع في ار تشات على سبيل المثال.
settings-osc-router-enable = تمكين
settings-osc-router-enable-description = تبديل إعادة توجيه الرسائل.
settings-osc-router-enable-label = تمكين
settings-osc-router-network = منافذ الشبكة
# This cares about multilines
settings-osc-router-network-description =
اضبط المنافذ للاستماع وإرسال البيانات.
يمكن أن تكون هذه هي نفس المنافذ الأخرى المستخدمة في خادم سلايم في ار.
settings-osc-router-network-port_in =
.label = منفذ الدخول
.placeholder = منفذ الدخول (الإفتراضي: 9002)
settings-osc-router-network-port_out =
.label = منفذ الخروج
.placeholder = منفذ الخروج (الإفتراضي: 9000)
settings-osc-router-network-address = عنوان الشبكة
settings-osc-router-network-address-description = قم بتعيين العنوان لإرسال البيانات إليه.
settings-osc-router-network-address-placeholder = عنوان آي بي في 4
## OSC VRChat settings
settings-osc-vrchat = أجهزة تعقب "في ار تشات أوه أس سي"
# This cares about multilines
settings-osc-vrchat-description =
قم بتغيير الإعدادات الخاصة ب في ار تشات لتلقي بيانات ايتش أم دي وإرسالها
بيانات أجهزة تعقب لتعقب الجسم (يعمل على كوست مستقل).
settings-osc-vrchat-enable = تمكين
settings-osc-vrchat-enable-description = بتبديل إرسال واستقبال البيانات.
settings-osc-vrchat-enable-label = تمكين
settings-osc-vrchat-network = منافذ الشبكة
settings-osc-vrchat-network-description = قم بتعيين المنافذ للاستماع وإرسال البيانات إلى في ار تشات
settings-osc-vrchat-network-port_in =
.label = منفذ الدخول
.placeholder = منفذ الدخول (الإفتراضي: 9001)
settings-osc-vrchat-network-port_out =
.label = منفذ الخروج
.placeholder = منفذ الخروج (الإفتراضي: 9000)
settings-osc-vrchat-network-address = عنوان الشبكة
settings-osc-vrchat-network-address-description = اختر العنوان الذي تريد إرسال البيانات إلى في ار تشات (تحقق من إعدادات واي فاي على جهازك)
settings-osc-vrchat-network-address-placeholder = عنوان آي بي الخاص بفي ار تشات
settings-osc-vrchat-network-trackers = أجهزة التعقب
settings-osc-vrchat-network-trackers-description = تبديل إرسال أجهزة تتبع محددة عبر أوه أس سي.
settings-osc-vrchat-network-trackers-chest = الصدر
settings-osc-vrchat-network-trackers-waist = الخصر
settings-osc-vrchat-network-trackers-knees = الركبتين
settings-osc-vrchat-network-trackers-feet = القدمين
settings-osc-vrchat-network-trackers-elbows = الكوعين
## Setup/onboarding menu
onboarding-skip = تخطى الإعداد
onboarding-continue = ‏‏متابعة
onboarding-wip = جاري العمل
## Wi-Fi setup
onboarding-wifi_creds-back = العودة إلى المقدمة
onboarding-wifi_creds = إدخل بيانات اعتماد واي فاي
# This cares about multilines
onboarding-wifi_creds-description =
ستستخدم أجهزة التعقب بيانات الاعتماد هذه للاتصال لاسلكيًا.
الرجاء استخدام بيانات الاعتماد التي تتصل بها حاليًا.
onboarding-wifi_creds-skip = تخطى إعدادات واي فاي
onboarding-wifi_creds-submit = إرسال!
onboarding-wifi_creds-ssid =
.label = اسم الواي فاي
.placeholder = أدخل اسم الواي فاي
onboarding-wifi_creds-password =
.label = كلمة السر
.placeholder = أدخل كلمة السر
## Mounting setup
onboarding-reset_tutorial-back = العودة إلى معايرة التركيب
onboarding-reset_tutorial = إعادة البرنامج التعليمي
onboarding-reset_tutorial-description = هذه الميزة لم تنته بعد، فقط اضغط على متابعة
## Setup start
onboarding-home = مرحبا بكم في سلايم في ار
# This cares about multilines and it's centered!!
onboarding-home-description =
جلب التعقب كامل الجسم
للجميع
onboarding-home-start = هيا نتجهز!
## Enter VR part of setup
onboarding-enter_vr-back = العودة إلى تعيين أجهزة التعقب
onboarding-enter_vr-title = حان وقت دخول في ار!
onboarding-enter_vr-description = ضع كل أجهزة التعقب ثم أدخل في ار!
onboarding-enter_vr-ready = أنا جاهز
## Setup done
onboarding-done-title = أنت جاهز تمامًا!
onboarding-done-description = استمتع بتجربة تتبع الجسم بالكامل!
onboarding-done-close = إغلاق الدليل
## Tracker connection setup
onboarding-connect_tracker-back = العودة إلى بيانات اعتماد الواي فاي
onboarding-connect_tracker-title = ربط أجهزة التعقب
onboarding-connect_tracker-description-p0 = ننتقل الآن إلى الجزء الممتع ، ربط جميع أجهزة التعقب!
onboarding-connect_tracker-description-p1 = ما عليك سوى توصيل كل ما لم يتم توصيله بعد من خلال منفذ يو أس بي.
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-provisioning = نرسل بيانات اعتماد واي فاي
onboarding-connect_tracker-connection_status-connecting = جارٍ إرسال بيانات اعتماد الواي فاي
onboarding-connect_tracker-connection_status-looking_for_server = نبحث عن السرفر
onboarding-connect_tracker-connection_status-connection_error = غير قادر على الاتصال بشبكة الواي فاي
onboarding-connect_tracker-connection_status-could_not_find_server = تعذر العثور على السرفر
onboarding-connect_tracker-connection_status-done = متصل بالسيرفر
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] لا يوجد جهاز تعقب متصل
[zero] لا يوجد جهاز تعقب متصل
[one] جهاز تعقب واحد متصل
[two] جهازا تعقب متصلان
[few] { $amount } أجهزة تعقب متصلة
[many] { $amount } أجهزة تعقب متصلة
*[other] { $amount } أجهزة تعقب متصلة
}
onboarding-connect_tracker-next = لقد قمت بتوصيل جميع أجهزة التعقب
## Tracker assignment setup
onboarding-assign_trackers-back = العودة إلى بيانات اعتماد الواي فاي
onboarding-assign_trackers-title = تعيين أجهزة التعقب
onboarding-assign_trackers-description = دعنا نختار موقع أجهزة التعقب. انقر فوق المكان الذي تريد وضع جهاز تعقب فيه
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[zero] { $assigned } من { $trackers } أجهزة تعقب عينت
[one] جهاز واحد من { $trackers } أجهزة تعقب عينت
[two] جهازان من { $trackers } أجهزة تعقب عينت
[few] { $assigned } من { $trackers } أجهزة تعقب عينت
[many] { $assigned } من { $trackers } أجهزة تعقب عينت
*[other] { $assigned } من { $trackers } أجهزة تعقب عينت
}
onboarding-assign_trackers-advanced = إظهار مواقع التعيين المتقدمة
onboarding-assign_trackers-next = لقد عينت جميع أجهزة التعقب
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر والفخذ الأيسر وإما الصدر أو الورك أو الخصر!
[1] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر وإما الصدر أو الورك أو الخصر!
[2] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر وإما الصدر أو الورك أو الخصر!
[3] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[4] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر والفخذ الأيسر!
[5] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر!
[6] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيسر !
*[unknown] تم تحديد القدم اليسرى، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص !
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن والفخذ الأيمن وإما الصدر أو الورك أو الخصر!
[1] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن وإما الصدر أو الورك أو الخصر!
[2] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن وإما الصدر أو الورك أو الخصر!
[3] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[4] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن والفخذ الأيمن!
[5] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن!
[6] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد الكاحل الأيمن!
*[unknown] تم تحديد القدم اليمنى، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر وإما الصدر أو الورك أو الخصر!
[1] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[2] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيسر!
*[unknown] تم تحديد الكاحل الأيسر، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن وتحديد إما الصدر أو الورك أو الخصر!
[1] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد إما الصدر أو الورك أو الخصر!
[2] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد الفخذ الأيمن!
*[unknown] تم تحديد الكاحل الأيمن، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] تم تحديد الفخذ الأيسر، ولكنك تحتاج أيضًا إلى تحديد الصدر أو الورك أو الخصر!
*[unknown] تم تحديد الفخذ الأيسر، ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص !
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] تم تحديد الفخذ الأيمن ولكنك تحتاج أيضًا إلى تحديد الصدر أو الورك أو الخصر!
*[unknown] تم تحديد الفخذ الأيمن ولكنك تحتاج أيضًا إلى تحديد جزء جسم غير معروف غير مخصص !
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] تم تحديد الورك، ولكنك تحتاج إلى تحديد الصدر أيضًا!
*[unknown] تم تحديد الورك، ولكنك تحتاج إلى تحديد جزء جسم غير معروف غير مخصص أيضًا!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] تم تحديد الخصر، ولكنك تحتاج إلى تحديد الصدر أيضًا!
*[unknown] تم تحديد الخصر، ولكنك تحتاج إلى تحديد جزء جسم غير معروف غير مخصص أيضًا!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = العودة إلى دخول في ار
onboarding-manual_mounting = التركيب اليدوي
onboarding-manual_mounting-description = انقر فوق كل جهاز تعقب وحدد طريقة تركيبها
onboarding-manual_mounting-auto_mounting = التركيب التلقائي
onboarding-manual_mounting-next = الخطوة التالية
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = العودة إلى دخول في ار
onboarding-automatic_mounting-title = معايرة التركيب
onboarding-automatic_mounting-description = لكي تعمل أجهزة تعقب سلايم في ار، نحتاج إلى تعيين دوران تركيب أجهزة التعقب لمواءمتها مع تركيب جهاز التعقب المادي.
onboarding-automatic_mounting-manual_mounting = ضبط التركيب يدويًا
onboarding-automatic_mounting-next = الخطوة التالية
onboarding-automatic_mounting-prev_step = الخطوة السابقة
onboarding-automatic_mounting-done-title = تم معايرة دوران التركيب
onboarding-automatic_mounting-done-description = اكتملت معايرة التركيب!
onboarding-automatic_mounting-done-restart = العودة إلى البداية
onboarding-automatic_mounting-mounting_reset-title = إعادة تعيين التركيب
onboarding-automatic_mounting-mounting_reset-step-0 = 1. قرفص في وضع "التزلج" مع ثني ساقيك ، وإمالة الجزء العلوي من جسمك إلى الأمام ، وثني ذراعيك.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. اضغط على زر "إعادة تعيين التركيب" وانتظر لمدة 3 ثوان قبل إعادة تعيين دوران تركيب أجهزة التعقب.
onboarding-automatic_mounting-preparation-title = التحضير
onboarding-automatic_mounting-preparation-step-0 = 1. قف بشكل مستقيم مع ذراعيك على جانبيك.
onboarding-automatic_mounting-preparation-step-1 = اضغط على زر "إعادة ضبط" و انتظر لمدة 3 ثوانٍ قبل إعادة تعيين أجهزة التعقب.
onboarding-automatic_mounting-put_trackers_on-title = ارتدي أجهزة التعقب
onboarding-automatic_mounting-put_trackers_on-description = لمعايرة دوران التركيب، سنستخدم أجهزة التعقب التي قمت بتعيينها. ارتدي جميع أجهزة التعقب، يمكنك معرفة أي منها في المستند على اليمين.
onboarding-automatic_mounting-put_trackers_on-next = ارتديت جميع أجهزة التعقب.
## Tracker manual proportions setup
onboarding-manual_proportions-back = العودة إلى برنامج تعليم إعادة التعيين
onboarding-manual_proportions-title = نسب الجسم اليدوية
onboarding-manual_proportions-precision = ضبط الدقة
onboarding-manual_proportions-auto = المعايرة التلقائية
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = العودة إلى برنامج تعليم إعادة التعيين
onboarding-automatic_proportions-title = قياس جسمك
onboarding-automatic_proportions-description = لكي تعمل أجهزة تعقب سلايم في ار, نحتاج إلى معرفة طول عظامك. هذه المعايرة القصيرة ستقيسها لك.
onboarding-automatic_proportions-manual = معايرة يدوية
onboarding-automatic_proportions-prev_step = الخطوة السابقة
onboarding-automatic_proportions-put_trackers_on-title = ارتدي أجهزة التعقب
onboarding-automatic_proportions-put_trackers_on-description = لمعايرة نسب جسمك ، سنستخدم أجهزة التعقب التي قمت بتعيينها. ضع جميع أجهزة التعقب، يمكنك معرفة أين تم تعيينه في المستند على اليمين.
onboarding-automatic_proportions-put_trackers_on-next = ارتديت جميع أجهزة التعقب.
onboarding-automatic_proportions-preparation-title = التحضير
onboarding-automatic_proportions-preparation-description = ضع كرسيًا خلفك مباشرةً داخل مساحة اللعب الخاصة بك. كن مستعد للجلوس أثناء الإعداد.
onboarding-automatic_proportions-preparation-next = أنا أمام كرسي
onboarding-automatic_proportions-start_recording-title = استعد للتحرك
onboarding-automatic_proportions-start_recording-description = سنقوم الآن بتسجيل بعض الوضعيات والحركات المحددة. ستتم مطالبتك بذلك في الشاشة التالية. كن مستعدا للبدء عند الضغط على الزر!
onboarding-automatic_proportions-start_recording-next = بدء التسجيل
onboarding-automatic_proportions-recording-title = تسجيل
onboarding-automatic_proportions-recording-description-p0 = جاري التسجيل...
onboarding-automatic_proportions-recording-description-p1 = قم بالحركات الموضحة أدناه:
onboarding-automatic_proportions-recording-steps-0 = اثني الركبتين عدة مرات.
onboarding-automatic_proportions-recording-steps-1 = اجلس على كرسي ثم قف.
onboarding-automatic_proportions-recording-steps-2 = قم بتدوير الجزء العلوي من الجسم إلى اليسار ، ثم انحني إلى اليمين.
onboarding-automatic_proportions-recording-steps-3 = قم بتدوير الجزء العلوي من الجسم إلى اليمين ، ثم انحني إلى اليسار.
onboarding-automatic_proportions-recording-steps-4 = تهزهز حتى ينتهي الموقت.
onboarding-automatic_proportions-recording-processing = معالجة النتيجة
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[zero] { $time } ثانية متبقية
[one] { $time } ثانية متبقية
[two] ثانيتين متبقية
[few] { $time } ثوان متبقية
[many] { $time } ثوان متبقية
*[other] { $time } ثوان متبقية
}
onboarding-automatic_proportions-verify_results-title = تحقق من النتائج
onboarding-automatic_proportions-verify_results-description = تحقق من النتائج أدناه ، هل تبدو صحيحة؟
onboarding-automatic_proportions-verify_results-results = تسجيل النتائج
onboarding-automatic_proportions-verify_results-processing = معالجة النتيجة
onboarding-automatic_proportions-verify_results-redo = إعادة التسجيل
onboarding-automatic_proportions-verify_results-confirm = تبدو صحيحة
onboarding-automatic_proportions-done-title = تم قياس الجسم و حفظه.
onboarding-automatic_proportions-done-description = اكتملت معايرة نسب جسمك!
## Home
home-no_trackers = لم يتم الكشف أو تعيين عن أي جهاز تعقب

View File

@@ -1,609 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Připojování k serveru
websocket-connection_lost = Ztráta spojení se serverem. Pokus o obnovení připojení...
## Tips
tips-find_tracker = Nejste si jisti, který tracker je který? Zatřeste tracker a zvýrazní se odpovídající položka.
tips-do_not_move_heels = Ujistěte se, že se vaše paty během nahrávání nepohybují!
## Body parts
body_part-NONE = Nepřiřazeno
body_part-HEAD = Hlava
body_part-NECK = Krk
body_part-RIGHT_SHOULDER = Pravé rameno
body_part-RIGHT_UPPER_ARM = Pravé nadloktí
body_part-RIGHT_LOWER_ARM = Pravé podloktí
body_part-RIGHT_HAND = Pravá ruka
body_part-RIGHT_UPPER_LEG = Pravé stehno
body_part-RIGHT_LOWER_LEG = Pravý kotník
body_part-RIGHT_FOOT = Pravá noha
body_part-RIGHT_CONTROLLER = Pravý ovladač
body_part-CHEST = Hrudník
body_part-WAIST = Pás
body_part-HIP = Kyčel
body_part-LEFT_SHOULDER = Levé rameno
body_part-LEFT_UPPER_ARM = Levé nadloktí
body_part-LEFT_LOWER_ARM = Levé podloktí
body_part-LEFT_HAND = Levá ruka
body_part-LEFT_UPPER_LEG = Levé stehno
body_part-LEFT_LOWER_LEG = Levý kotník
body_part-LEFT_FOOT = Levá noha
body_part-LEFT_CONTROLLER = Levý ovladač
## Proportions
skeleton_bone-NONE = Žádný
skeleton_bone-HEAD = Posun hlavy
skeleton_bone-NECK = Délka krku
skeleton_bone-CHEST = Délka hrudníku
skeleton_bone-CHEST_OFFSET = Odsazení hrudníku
skeleton_bone-WAIST = Délka pasu
skeleton_bone-HIP = Délka kyčlí
skeleton_bone-HIP_OFFSET = Odsazení hrudníku
skeleton_bone-HIPS_WIDTH = Šířka kyčlí
skeleton_bone-UPPER_LEG = Délka horní části nohy
skeleton_bone-LOWER_LEG = Délka dolní části nohy
skeleton_bone-FOOT_LENGTH = Délka chodidla
skeleton_bone-FOOT_SHIFT = Odsazení chodidla
skeleton_bone-SKELETON_OFFSET = Odsazení kostry
skeleton_bone-SHOULDERS_DISTANCE = Vzdálenost ramen
skeleton_bone-SHOULDERS_WIDTH = Šířka ramen
skeleton_bone-UPPER_ARM = Délka nadloktí
skeleton_bone-LOWER_ARM = Délka podloktí
skeleton_bone-CONTROLLER_Y = Vzdálenost ovladače Y
skeleton_bone-CONTROLLER_Z = Vzdálenost ovladače Z
skeleton_bone-ELBOW_OFFSET = Odsazení loktů
## Tracker reset buttons
reset-reset_all = Obnovení všech proporcí
reset-full = Resetovat
reset-mounting = Obnovit montáž
reset-quick = Rychlý reset
## Serial detection stuff
serial_detection-new_device-p0 = Nové sériové zařízení detekováno!
serial_detection-new_device-p1 = Zadejte přihlašovací údaje Wi-Fi!
serial_detection-new_device-p2 = Vyberte prosím, co s tím chcete udělat
serial_detection-open_wifi = Připojit se k Wi-Fi
serial_detection-open_serial = Otevřít sériovou konzolu
serial_detection-submit = Odeslat!
serial_detection-close = Zavřít
## Navigation bar
navbar-home = Domů
navbar-body_proportions = Tělesné proporce
navbar-trackers_assign = Přiřazení trackerů
navbar-mounting = Montážní kalibrace
navbar-onboarding = Průvodce nastavením
navbar-settings = Nastavení
## Bounding volume hierarchy recording
bvh-start_recording = Nahrávat BVH
bvh-recording = Nahrávání...
## Widget: Overlay settings
widget-overlay = Překrytí
widget-overlay-is_visible_label = Zobrazit překrytí v SteamVR
widget-overlay-is_mirrored_label = Zobrazit překrytí jako zrcadlo
## Widget: Drift compensation
widget-drift_compensation-clear = Vymazat kompenzaci driftu
## Widget: Developer settings
widget-developer_mode = Vývojářský režim
widget-developer_mode-high_contrast = Vysoký kontrast
widget-developer_mode-precise_rotation = Přesná rotace
widget-developer_mode-fast_data_feed = Rychlý přenos dat
widget-developer_mode-filter_slimes_and_hmd = Filtrovat slimy a HMD
widget-developer_mode-sort_by_name = Seřadit podle názvu
widget-developer_mode-raw_slime_rotation = Nezpracovaná rotace
widget-developer_mode-more_info = Více informací
## Widget: IMU Visualizer
widget-imu_visualizer = Rotace
widget-imu_visualizer-rotation_raw = Nezpracované
widget-imu_visualizer-rotation_preview = Náhled
## Tracker status
tracker-status-none = Žádný stav
tracker-status-busy = Zaneprázdněný
tracker-status-error = Chyba
tracker-status-disconnected = Odpojeno
tracker-status-occluded = Zakrytý
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Název
tracker-table-column-type = Typ
tracker-table-column-battery = Baterie
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Teplota °C
tracker-table-column-linear-acceleration = Akcel. X/Y/Z
tracker-table-column-rotation = Rotace X/Y/Z
tracker-table-column-position = Pozice X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Přední
tracker-rotation-left = Levá
tracker-rotation-right = Pravá
tracker-rotation-back = Zadní
## Tracker information
tracker-infos-manufacturer = Výrobce
tracker-infos-display_name = Zobrazovaný název
tracker-infos-custom_name = Vlastní název
tracker-infos-url = URL Trackeru
## Tracker settings
tracker-settings-back = Zpět na seznam trackerů
tracker-settings-title = Nastavení trackeru
tracker-settings-assignment_section = Přiřazení
tracker-settings-assignment_section-description = K jaké části těla je tracker přiřazen.
tracker-settings-assignment_section-edit = Upravit přiřazení
tracker-settings-mounting_section = Montážní poloha
tracker-settings-mounting_section-description = Kde je tracker namontován?
tracker-settings-mounting_section-edit = Upravit montáž
tracker-settings-drift_compensation_section = Povolit kompenzaci driftu
tracker-settings-drift_compensation_section-description = Měl by tento tracker kompenzovat svůj drift, když je zapnuta kompenzace driftu?
tracker-settings-drift_compensation_section-edit = Povolit kompenzaci driftu
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Název trackeru
tracker-settings-name_section-description = Dejte tomu nějakou roztomilou přezdívku :)
tracker-settings-name_section-placeholder = Levá noha NightyBeast
## Tracker part card info
tracker-part_card-no_name = Bez jména
tracker-part_card-unassigned = Nepřiřazeno
## Body assignment menu
body_assignment_menu = Kde chcete, aby tento tracker byl?
body_assignment_menu-description = Zvolte umístění, kam má být tento tracker přiřazen. Případně můžete spravovat všechny trackery najednou, místo jednoho po druhém.
body_assignment_menu-show_advanced_locations = Zobrazit pokročilá místa přiřazení
body_assignment_menu-manage_trackers = Spravovat všechny trackery
body_assignment_menu-unassign_tracker = Zrušit přiřazení trackeru
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = { "Který tracker přiřadit k" }
tracker_selection_menu-NONE = Který tracker chcete aby byl nezařazený?
tracker_selection_menu-HEAD = { -tracker_selection-part } hlavě?
tracker_selection_menu-NECK = Který tracker přiřadit ke krku?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } pravému rameni?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } pravýmu nadloktí?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } pravýmu podloktí?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } pravé ruce?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } pravému stehnu?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } pravému kotníku?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } pravému chodidlu?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } pravému ovladači?
tracker_selection_menu-CHEST = { -tracker_selection-part } hrudníku?
tracker_selection_menu-WAIST = { -tracker_selection-part } pasu?
tracker_selection_menu-HIP = Který tracker přiřadit ke kyčli?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } levému rameni?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } levýmu nadloktí?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } levýmu podloktí?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } levé ruce?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } levému stehnu?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } levému kotníku?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } levému chodidlu?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } levému ovladači?
tracker_selection_menu-unassigned = Nepřiřazené Trackery
tracker_selection_menu-assigned = Přiřazené Trackery
tracker_selection_menu-dont_assign = Nepřiřazovat
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Varování:</b> Příliš pevně nastavený tracker krku může být smrtelně nebezpečný,
popruh může přerušit krevní oběh v hlavě!
tracker_selection_menu-neck_warning-done = Chápu rizika
tracker_selection_menu-neck_warning-cancel = Zrušit
## Mounting menu
mounting_selection_menu = Kde chcete, aby byl tento tracker umístěn?
mounting_selection_menu-close = Zavřít
## Sidebar settings
settings-sidebar-title = Nastavení
settings-sidebar-general = Obecné
settings-sidebar-tracker_mechanics = Mechanika trackerů
settings-sidebar-fk_settings = Nastavení trackování
settings-sidebar-gesture_control = Ovládání gesty
settings-sidebar-interface = Rozhraní
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Nástroje
settings-sidebar-serial = Sériová konzole
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Trackery SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Povolit nebo zakázat určité trackery SteamVR.
Užitečné pro hry nebo aplikace, které podporují pouze určité trackery.
settings-general-steamvr-trackers-waist = Pás
settings-general-steamvr-trackers-chest = Hrudník
settings-general-steamvr-trackers-feet = Chodidla
settings-general-steamvr-trackers-knees = Kolena
settings-general-steamvr-trackers-elbows = Lokty
settings-general-steamvr-trackers-hands = Ruce
## Tracker mechanics
settings-general-tracker_mechanics = Mechanika trackerů
settings-general-tracker_mechanics-filtering = Filtrování
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Vyberte typ filtrování pro své trackery.
Predikce předpovídá pohyb, zatímco vyhlazování pohyb vyhlazuje.
settings-general-tracker_mechanics-filtering-type = Typ filtrování
settings-general-tracker_mechanics-filtering-type-none = Žádné filtrování
settings-general-tracker_mechanics-filtering-type-none-description = Použít rotaci tak, jak e. Nebude se provádět žádné filtrování.
settings-general-tracker_mechanics-filtering-type-smoothing = Vyhlazování
settings-general-tracker_mechanics-filtering-type-smoothing-description = Vyhlazuje pohyby, ale přidává určité zpoždění.
settings-general-tracker_mechanics-filtering-type-prediction = Predikce
settings-general-tracker_mechanics-filtering-type-prediction-description = Snižuje zpoždění a zrychluje pohyby, ale může zvýšit jitter.
settings-general-tracker_mechanics-filtering-amount = Množství
settings-general-tracker_mechanics-drift_compensation = Kompenzace driftu
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompenzuje vychýlení IMU použitím inverzní rotace.
Změňte velikost kompenzace a počet resetů, které jsou brány v úvahu.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Kompenzace driftu
settings-general-tracker_mechanics-drift_compensation-amount-label = Množství kompenzace
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Použít až x posledních obnovení
## FK/Tracking settings
settings-general-fk_settings = Nastavení trackování
settings-general-fk_settings-leg_tweak = Vyladění nohou
settings-general-fk_settings-leg_tweak-description = Podlahovej-clip může snížit nebo dokonce eliminovat klipování s podlahou, ale může způsobit problémy, když klečíte na kolenou. Korekce-bruslení opravuje bruslení na ledě, avšak může snížit přesnost některých pohybových vzorců.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Podlahovej clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Korekce bruslení
settings-general-fk_settings-leg_tweak-skating_correction-amount = Síla korekce bruslení
settings-general-fk_settings-arm_fk = Trackování ramen
settings-general-fk_settings-arm_fk-description = Změna způsobu sledování ramen.
settings-general-fk_settings-arm_fk-force_arms = Vynucení ramen z HMD
settings-general-fk_settings-skeleton_settings = Nastavení kostry
settings-general-fk_settings-skeleton_settings-description = Zapnutí nebo vypnutí nastavení kostry. Je doporučeno je ponechat zapnuté.
settings-general-fk_settings-skeleton_settings-extended_spine = Prodloužená páteř
settings-general-fk_settings-skeleton_settings-extended_pelvis = Prodloužená pánev
settings-general-fk_settings-skeleton_settings-extended_knees = Prodloužené koleno
settings-general-fk_settings-vive_emulation-title = Vive emulace
settings-general-fk_settings-vive_emulation-description = Napodobit problémy se sledováním pasu, které mají trackery Vive. Tohle je vtip a zhoršuje sledování.
settings-general-fk_settings-vive_emulation-label = Povolení emulace Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Ovládání gesty
settings-general-gesture_control-subtitle = Resetování na základě klepnutí
settings-general-gesture_control-description = Umožňuje spouštět resetování klepnutím na tracker. Sledovací zařízení umístěné nejvýše na vašem hrudníku slouží k Rychlému-Resetování, tracker umístěný nejvýše na levé noze se používá pro Resetování, a tracker umístěný nejvýše na pravé noze se používá pro Resetování Montáže. Je třeba zmínit, že aby bylo klepnutí zaregistrováno, klepnutí musí být provedena do 0.6 vteřin.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] { $amount } klepnutí
[few] { $amount } klepnutí
*[other] { $amount } klepnutí
}
settings-general-gesture_control-quickResetEnabled = Povolit klepnutí pro rychlý resetování
settings-general-gesture_control-quickResetDelay = Zpoždění rychlého resetu
settings-general-gesture_control-quickResetTaps = Klepnutí pro rychlý reset
settings-general-gesture_control-resetEnabled = Povolit klepnutí pro resetování
settings-general-gesture_control-resetDelay = Zpoždění resetování
settings-general-gesture_control-resetTaps = Klepnutí pro resetování
settings-general-gesture_control-mountingResetEnabled = Povolit klepnutí pro resetování montáže
settings-general-gesture_control-mountingResetDelay = Zpoždění resetování montáže
settings-general-gesture_control-mountingResetTaps = Klepnutí pro resetování montáže
## Interface settings
settings-general-interface = Rozhraní
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-serial_detection = Detekce sériových zařízení
settings-general-interface-serial_detection-description = Tato možnost zobrazí pop-up pokaždé, když připojíte nové sériové zařízení, které by mohlo být trackerem. Pomáhá zlepšit proces nastavení trackeru.
settings-general-interface-serial_detection-label = Detekce sériových zařízení
settings-general-interface-lang = Zvolte jazyk
settings-general-interface-lang-description = Změňte výchozí jazyk, který chcete používat.
settings-general-interface-lang-placeholder = Zvolte jazyk, který chcete používat.
## Serial settings
settings-serial = Sériová Konzole
# This cares about multilines
settings-serial-description =
Jedná se o přímý informační kanál pro sériovou komunikaci.
Může být užitečné, pokud potřebujete zjistit, zda se firmware chová špatně.
settings-serial-connection_lost = Ztráta připojení k seriálu, Připojení se obnovuje...
settings-serial-reboot = Restartovat
settings-serial-factory_reset = Obnovení továrního nastavení
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Varování</b> Toto obnoví tovární nastavení trackeru.
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
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
Přeposlat zprávy OSC z jiného programu.
Užitečné například pro použití jiného OSC programu s VRChat.
settings-osc-router-enable = Zapnout
settings-osc-router-enable-description = Vypnutí nebo zapnutí přeposílání zpráv.
settings-osc-router-enable-label = Zapnout
settings-osc-router-network = Síťové porty
# This cares about multilines
settings-osc-router-network-description =
Nastavení portů pro naslouchání a odesílání dat.
Tyto porty mohou být stejné jako ostatní porty používané v serveru SlimeVR.
settings-osc-router-network-port_in =
.label = Vstup portu
.placeholder = Vstup portu (výchozí: 9002)
settings-osc-router-network-port_out =
.label = Výstup z portu
.placeholder = Výstup z portu (výchozí: 9000)
settings-osc-router-network-address = Síťová adresa
settings-osc-router-network-address-description = Nastavte adresu pro odesílání dat.
settings-osc-router-network-address-placeholder = Adresa IPV4
## OSC VRChat settings
settings-osc-vrchat = Trackery VRChat OSC
# This cares about multilines
settings-osc-vrchat-description =
Úprava nastavení specifických pro VRChat pro příjem dat HMD a odesílání
data trackerů pro FBT (funguje na samostatném Questu).
settings-osc-vrchat-enable = Zapnout
settings-osc-vrchat-enable-description = Vypnutí a zapnutí odesílání a přijímání dat.
settings-osc-vrchat-enable-label = Zapnout
settings-osc-vrchat-network = Síťové porty
settings-osc-vrchat-network-description = Nastavení portů pro naslouchání a odesílání dat do VRChat.
settings-osc-vrchat-network-port_in =
.label = Vstup portu
.placeholder = Vstup portu (výchozí: 9001)
settings-osc-vrchat-network-port_out =
.label = Výstup portu
.placeholder = Výstup portu (výchozí: 9000)
settings-osc-vrchat-network-address = Síťová adresa
settings-osc-vrchat-network-address-description = Zvolte adresu, ze které se mají odesílat data na VRChat (zkontrolujte nastavení Wi-Fi v zařízení).
settings-osc-vrchat-network-address-placeholder = VRChat ip adresa
settings-osc-vrchat-network-trackers = Trackery
settings-osc-vrchat-network-trackers-description = Vypnuti a zapnutí odesílání konkrétních trackerů přes OSC.
settings-osc-vrchat-network-trackers-chest = Hrudník
settings-osc-vrchat-network-trackers-waist = Pás
settings-osc-vrchat-network-trackers-knees = Kolena
settings-osc-vrchat-network-trackers-feet = Chodidla
settings-osc-vrchat-network-trackers-elbows = Lokty
## Setup/onboarding menu
onboarding-skip = Přeskočit nastavení
onboarding-continue = Pokračovat
onboarding-wip = Probíhající práce
## Wi-Fi setup
onboarding-wifi_creds-back = Zpět na úvod
onboarding-wifi_creds = Zadání přihlašovacích údajů k Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Sledovací zařízení budou tato přihlašovací údaje používat k připojení.
Použijte prosím přihlašovací údaje, ke kterým jste aktuálně připojeni.
onboarding-wifi_creds-skip = Přeskočit nastavení Wi-Fi
onboarding-wifi_creds-submit = Odeslat!
onboarding-wifi_creds-ssid =
.label = Název Wi-Fi
.placeholder = Zadejte název Wi-Fi
onboarding-wifi_creds-password =
.label = Heslo
.placeholder = Zadejte heslo
## Mounting setup
onboarding-reset_tutorial-back = Zpět na kalibraci montáže
onboarding-reset_tutorial = Obnovit tutoriál
onboarding-reset_tutorial-description = Tato funkce není dokončena, stačí stisknout tlačítko pokračovat
## Setup start
onboarding-home = Vítejte k SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Přinášíme full-body tracking
pro každého
onboarding-home-start = Pusťme se do toho!
## Enter VR part of setup
onboarding-enter_vr-back = Zpět na přiřazení trackerů
onboarding-enter_vr-title = Čas vstoupit do VR!
onboarding-enter_vr-description = Nasaďte si všechny trackery a pak vstupte do VR!
onboarding-enter_vr-ready = Jsem připraven
## Setup done
onboarding-done-title = Vše je připraveno!
onboarding-done-description = Užijte si zážitek s full body tracking
onboarding-done-close = Zavřít průvodce
## Tracker connection setup
onboarding-connect_tracker-back = Zpět na přihlašovací údaje Wi-Fi
onboarding-connect_tracker-title = Připojení trackerů
onboarding-connect_tracker-description-p0 = A teď ta zábavná část, propojení všech trackerů!
onboarding-connect_tracker-description-p1 = Všechny zatím nepřipojené jednoduše připojte přes USB.
onboarding-connect_tracker-issue-serial = Mám potíže s připojením!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-connecting = Odesílání přihlašovacích údajů Wi-Fi
onboarding-connect_tracker-connection_status-connected = Připojeno k Wi-Fi
onboarding-connect_tracker-connection_status-error = Nelze se připojit k Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Hledání trackerů
onboarding-connect_tracker-connection_status-handshake = Připojeno k Serveru
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Žádné připojené trackery
[one] 1 připojený tracker
[few] { $amount } připojený trackery
*[other] { $amount } připojených trackerů
}
onboarding-connect_tracker-next = Připojil jsem všechny své trackery
## Tracker assignment setup
onboarding-assign_trackers-back = Zpět na přihlašovací údaje Wi-Fi
onboarding-assign_trackers-title = Přiřazení trackerů
onboarding-assign_trackers-description = Pojďme si vybrat, kam každý tracker patří. Klikněte na místo, kam chcete umístit tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[one] { $assigned } z { $trackers } trackerů přiřazených
[few] { $assigned } z { $trackers } trackerů přiřazených
*[other] { $assigned } z { $trackers } trackerů přiřazených
}
onboarding-assign_trackers-advanced = Zobrazit pokročilá místa přiřazení
onboarding-assign_trackers-next = Přiřadil jsem všechny trackery
## Tracker manual mounting setup
onboarding-manual_mounting-back = Zpět na Enter VR
onboarding-manual_mounting = Manuální montáž
onboarding-manual_mounting-description = Klikněte na každý tracker a vyberte, jakým způsobem jsou namontovány
onboarding-manual_mounting-auto_mounting = Automatická montáž
onboarding-manual_mounting-next = Další krok
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Zpět na Enter VR
onboarding-automatic_mounting-title = Montážní kalibrace
onboarding-automatic_mounting-description = Aby trackery SlimeVR fungovaly, je třeba jim přiřadit montážní rotaci, aby se vyrovnaly s fyzickou montáží trackeru.
onboarding-automatic_mounting-manual_mounting = Manuální nastavení montáže
onboarding-automatic_mounting-next = Další krok
onboarding-automatic_mounting-prev_step = Předchozí krok
onboarding-automatic_mounting-done-title = Otáčení montáže je kalibrováno.
onboarding-automatic_mounting-done-description = Kalibrace montáže je dokončena!
onboarding-automatic_mounting-done-restart = Návrat na začátek
onboarding-automatic_mounting-mounting_reset-title = Reset montáže
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Dřepněte si do pozice jak na lyžích s pokrčenýma nohama, horní částí těla nakloněnou dopředu a s pokrčenýma rameny.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Stiskněte tlačítko "Resetování montáže" a počkejte 3 sekundy, než se rotace montáže trackerů resetují.
onboarding-automatic_mounting-preparation-title = Příprava
onboarding-automatic_mounting-preparation-step-0 = 1. Postavte se vzpřímeně s rukama na bocích.
onboarding-automatic_mounting-preparation-step-1 = 2. Stiskněte tlačítko "Reset" a počkejte 3 sekundy, než se trackery resetují.
onboarding-automatic_mounting-put_trackers_on-title = Nasaďte si trackery
onboarding-automatic_mounting-put_trackers_on-description = Pro kalibraci rotace montáže použijeme právě přiřazené trackery. Nasaďte všechny trackery, na obrázku vpravo vidíte, které jsou které.
onboarding-automatic_mounting-put_trackers_on-next = Mám nasazené všechny trackery
## Tracker manual proportions setup
onboarding-manual_proportions-back = Zpět na Reset tutoriál
onboarding-manual_proportions-title = Manuální proporce těla
onboarding-manual_proportions-precision = Přesná úprava
onboarding-manual_proportions-auto = Automatická kalibrace
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Zpět na Reset tutoriál
onboarding-automatic_proportions-title = Změřte své tělo
onboarding-automatic_proportions-description = Aby trackery SlimeVR fungovaly, potřebujeme znát délku vašich kostí. Tato krátká kalibrace vám to změří.
onboarding-automatic_proportions-manual = Manuální kalibrace
onboarding-automatic_proportions-prev_step = Předchozí krok
onboarding-automatic_proportions-put_trackers_on-title = Nasaďte si trackery
onboarding-automatic_proportions-put_trackers_on-description = Pro kalibraci proporcí použijeme trackery, které jste právě přiřadili. Nasaďte si trackery, na obrázku vpravo vidíte, která jsou která.
onboarding-automatic_proportions-put_trackers_on-next = Mám nasazené všechny trackery
onboarding-automatic_proportions-preparation-title = Příprava
onboarding-automatic_proportions-preparation-description = Umístěte židli přímo za sebe do herního prostoru. Buďte připraveni se během nastavení autobonu posadit.
onboarding-automatic_proportions-preparation-next = Jsem před židlí
onboarding-automatic_proportions-start_recording-title = Připravte se hýbat
onboarding-automatic_proportions-start_recording-description = Nyní budeme nahrávat některé konkrétní pózy a pohyby. Tyto se zobrazí na další obrazovce. Po stisknutí tlačítka buďte připraveni začít!
onboarding-automatic_proportions-start_recording-next = Spustit nahrávání
onboarding-automatic_proportions-recording-title = ZÁZN
onboarding-automatic_proportions-recording-description-p0 = Probíhá nahrávání...
onboarding-automatic_proportions-recording-description-p1 = Proveďte níže uvedené pohyby:
onboarding-automatic_proportions-recording-steps-0 = Párkrát ohněte kolena.
onboarding-automatic_proportions-recording-steps-1 = Posaďte se na židli a pak se postavte.
onboarding-automatic_proportions-recording-steps-2 = Natočte horní část těla doleva a pak se ohněte doprava.
onboarding-automatic_proportions-recording-steps-3 = Natočte horní část těla doprava a pak se ohněte doleva.
onboarding-automatic_proportions-recording-steps-4 = Hýbejte se, dokud časovač neskončí.
onboarding-automatic_proportions-recording-processing = Zpracování výsledku
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] Zbývá 1 sekunda
[few] Zbývají { $time } sekundy
*[other] Zbývá { $time } sekund
}
onboarding-automatic_proportions-verify_results-title = Ověření výsledků
onboarding-automatic_proportions-verify_results-description = Zkontrolujte výsledky níže, vypadají správně?
onboarding-automatic_proportions-verify_results-results = Zaznamenávání výsledků
onboarding-automatic_proportions-verify_results-processing = Zpracování výsledku
onboarding-automatic_proportions-verify_results-redo = Znovu provést záznam
onboarding-automatic_proportions-verify_results-confirm = Jsou správné
onboarding-automatic_proportions-done-title = Tělo změřeno a uloženo.
onboarding-automatic_proportions-done-description = Kalibrace proporcí vašeho těla je dokončena!
## Home
home-no_trackers = Nebyly zjištěny ani přiřazeny žádné trackery

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Verbindung zum Server wird hergestellt...
websocket-connection_lost = Verbindung zum Server verloren. Versuche Verbindung wiederherzustellen ...
## Tips
tips-find_tracker = Sie sind sich nicht sicher, welcher Tracker welcher ist? Schütteln Sie einen Tracker, um den zugehörigen Eintrag hervorzuheben.
tips-do_not_move_heels = Stellen Sie sicher, dass Sie Ihre Fersen während der Aufnahme nicht bewegen!
## Body parts
body_part-NONE = Nicht zugewiesen
body_part-HEAD = Kopf
body_part-NECK = Hals
@@ -43,8 +37,7 @@ body_part-LEFT_LOWER_LEG = Linker Unterschenkel
body_part-LEFT_FOOT = Linker Fuß
body_part-LEFT_CONTROLLER = Linker Controller
## Proportions
## Skeleton stuff
skeleton_bone-NONE = Keine
skeleton_bone-HEAD = Kopfverschiebung
skeleton_bone-NECK = Halslänge
@@ -65,17 +58,14 @@ skeleton_bone-UPPER_ARM = Oberarmlänge
skeleton_bone-LOWER_ARM = Unterarmlänge
skeleton_bone-CONTROLLER_Y = Controller Abstand Y
skeleton_bone-CONTROLLER_Z = Controller Abstand Z
skeleton_bone-ELBOW_OFFSET = Ellbogenversatz
## Tracker reset buttons
reset-reset_all = Alle Proportionen zurücksetzen
reset-full = Reset
reset-mounting = Befestigungs-Reset
reset-quick = Schneller Reset
## Serial detection stuff
serial_detection-new_device-p0 = Neues serielles Gerät erkannt!
serial_detection-new_device-p1 = Geben Sie Ihre WLAN-Zugangsdaten ein!
serial_detection-new_device-p2 = Bitte wählen Sie, was Sie damit machen möchten
@@ -85,7 +75,6 @@ serial_detection-submit = Absenden!
serial_detection-close = Schließen
## Navigation bar
navbar-home = Start
navbar-body_proportions = Körpermaße
navbar-trackers_assign = Tracker-Zuordnung
@@ -94,39 +83,14 @@ navbar-onboarding = Einrichtungs-Assistent
navbar-settings = Einstellungen
## Bounding volume hierarchy recording
bvh-start_recording = BVH aufnehmen
bvh-recording = Aufnahme läuft...
## Widget: Overlay settings
widget-overlay = Visualisierung
widget-overlay-is_visible_label = Visualisierung in SteamVR anzeigen
widget-overlay-is_mirrored_label = Visualisierung spiegeln
## Widget: Drift compensation
widget-drift_compensation-clear = Driftkompensation zurücksetzen
## Widget: Developer settings
widget-developer_mode = Entwicklermodus
widget-developer_mode-high_contrast = Hoher Kontrast
widget-developer_mode-precise_rotation = Präzise Drehung
widget-developer_mode-fast_data_feed = Schnelleres Update-Intervall
widget-developer_mode-filter_slimes_and_hmd = Slime-Tracker und HMD filtern
widget-developer_mode-sort_by_name = Nach Namen sortieren
widget-developer_mode-raw_slime_rotation = Rohe Drehung
widget-developer_mode-more_info = Mehr Infos
## Widget: IMU Visualizer
widget-imu_visualizer = Drehung
widget-imu_visualizer-rotation_raw = Rohe Drehung
widget-imu_visualizer-rotation_preview = Vorschau
## Overlay settings
overlay-is_visible_label = Visualisierungs-Overlay in SteamVR anzeigen
overlay-is_mirrored_label = Visualisierung spiegeln
## Tracker status
tracker-status-none = Kein Status
tracker-status-busy = Beschäftigt
tracker-status-error = Fehler
@@ -135,34 +99,27 @@ tracker-status-occluded = Verdeckt
tracker-status-ok = Verbunden
## Tracker status columns
tracker-table-column-name = Name
tracker-table-column-type = Typ
tracker-table-column-battery = Batterie
tracker-table-column-ping = Latenz
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Beschleunigung X/Y/Z
tracker-table-column-rotation = Rotation X/Y/Z
tracker-table-column-position = Position X/Y/Z
tracker-table-column-url = Adresse
## Tracker rotation
tracker-rotation-front = Vorne
tracker-rotation-left = Links
tracker-rotation-right = Rechts
tracker-rotation-back = Hinten
## Tracker information
tracker-infos-manufacturer = Hersteller
tracker-infos-display_name = Anzeigename
tracker-infos-custom_name = Benutzerdefinierter Name
tracker-infos-url = Tracker-Adresse
## Tracker settings
tracker-settings-back = Zurück zur Tracker-Liste
tracker-settings-title = Tracker-Einstellungen
tracker-settings-assignment_section = Zuweisung
@@ -181,12 +138,10 @@ tracker-settings-name_section-description = Geben Sie ihm einen süßen Spitznam
tracker-settings-name_section-placeholder = NightyBeast's linkes Bein
## Tracker part card info
tracker-part_card-no_name = Kein Name
tracker-part_card-unassigned = Nicht zugewiesen
## Body assignment menu
body_assignment_menu = Wo tragen Sie diesen Tracker?
body_assignment_menu-description = Wählen Sie die Position aus, an dem Sie diesen Tracker befestigt haben. Alternativ können Sie auch alle Tracker auf einmal verwalten statt einzeln.
body_assignment_menu-show_advanced_locations = Zeige erweiterte Tracker-Positionen
@@ -194,7 +149,6 @@ body_assignment_menu-manage_trackers = Verwalte alle Tracker
body_assignment_menu-unassign_tracker = Zuweisung des Trackers aufheben
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -223,24 +177,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } dem linken O
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } dem linken Unterschenkel zugewiesen werden?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } dem Linken Fuß zugewiesen zugewiesen werden?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } dem linken Controller zugewiesen werden?
tracker_selection_menu-unassigned = Nicht zugewiesene Tracker
tracker_selection_menu-assigned = Zugewiesene Tracker
tracker_selection_menu-dont_assign = Nicht zuweisen
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Warnung:</b> Ein Hals-Tracker kann tödlich sein, wenn dieser zu fest angezogen ist.
Der Riemen kann die Blutzirkulation zu Ihrem Kopf unterbrechen!
tracker_selection_menu-neck_warning-done = Ich verstehe die Risiken
tracker_selection_menu-neck_warning-cancel = Abbruch
## Mounting menu
mounting_selection_menu = Wo möchten Sie diesen Tracker platzieren?
mounting_selection_menu-close = Schließen
## Sidebar settings
settings-sidebar-title = Einstellungen
settings-sidebar-general = Allgemein
settings-sidebar-tracker_mechanics = Tracker-Mechanik
@@ -252,7 +198,6 @@ settings-sidebar-utils = Werkzeuge
settings-sidebar-serial = Serielle Konsole
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR-Tracker
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -270,7 +215,6 @@ settings-general-steamvr-trackers-elbows = Ellbogen
settings-general-steamvr-trackers-hands = Hände
## Tracker mechanics
settings-general-tracker_mechanics = Tracker-Verhalten
settings-general-tracker_mechanics-filtering = Filtern
# This also cares about multilines
@@ -295,7 +239,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensieru
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Nutze die letzten x Resets
## FK/Tracking settings
settings-general-fk_settings = FK-Einstellungen
settings-general-fk_settings-leg_tweak = Beinoptimierungen
settings-general-fk_settings-leg_tweak-description = Bodenclip kann das einsinken in den Boden reduzieren oder sogar beseitigen, kann aber beim Knien Probleme verursachen. Die Rutsch-Korrektur verringert das Rutschen auf dem Boden, kann aber bei bestimmten Bewegungsmustern die Genauigkeit verringern.
@@ -322,17 +265,15 @@ settings-general-fk_settings-vive_emulation-description = Simuliere die Tracking
settings-general-fk_settings-vive_emulation-label = Vive-Simulierung
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Gestensteuerung
settings-general-gesture_control-subtitle = Reset durch Antippen
settings-general-gesture_control-description = Erlaubt Reset durch das Antippen eines Trackers auszulösen. Der höchste Tracker auf dem Oberkörper wird für schnelle Resets genutzt, der höchste Tracker auf dem linken Bein wird für Reset genutzt und der höchste Tracker auf dem rechten Bein wird für Befestigungs-Reset genutzt. Das Antippen muss innerhalb von 0.5 Sekunden erfolgen, um erkannt zu werden.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1-mal antippen
*[other] { $amount }-mal antippen
}
settings-general-gesture_control-taps = { $amount ->
[one] 1-mal antippen
*[other] { $amount }-mal antippen
}
settings-general-gesture_control-quickResetEnabled = Antippen für schnellen Reset
settings-general-gesture_control-quickResetDelay = Verzögerung für schnellen Reset
settings-general-gesture_control-quickResetTaps = Anzahl für schnellen Reset
@@ -344,7 +285,6 @@ settings-general-gesture_control-mountingResetDelay = Befestigungs-Reset-Verzüg
settings-general-gesture_control-mountingResetTaps = Anzahl für Befestigungs-Reset
## Interface settings
settings-general-interface = Bedienoberfläche
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.
@@ -357,7 +297,6 @@ settings-general-interface-lang-description = Ändern Sie die Standard-Sprache,
settings-general-interface-lang-placeholder = Wählen Sie die zu verwendende Sprache aus
## Serial settings
settings-serial = Serielle Konsole
# This cares about multilines
settings-serial-description =
@@ -366,19 +305,11 @@ settings-serial-description =
settings-serial-connection_lost = Verbindung zur seriellen Schnittstelle verloren, Verbindung wird wiederhergestellt...
settings-serial-reboot = Neustart
settings-serial-factory_reset = Werkseinstellungen zurücksetzen
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Warnung:</b> Dadurch wird der Tracker auf die Werkseinstellungen zurückgesetzt.
Das bedeutet, dass Wi-Fi- und Kalibrierungseinstellungen <b>verloren gehen!</b>
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
## OSC router settings
settings-osc-router = OSC Router
# This cares about multilines
settings-osc-router-description =
@@ -403,10 +334,10 @@ settings-osc-router-network-address-description = Setze die Adresse, welche zum
settings-osc-router-network-address-placeholder = IPv4 Adresse
## OSC VRChat settings
settings-osc-vrchat = VRChat-OSC-Trackers
# This cares about multilines
settings-osc-vrchat-description = Ändern Sie VRChat-spezifische Einstellungen, um Headset- und Tracker-Daten für FBT zu empfangen und zu senden (funktioniert auch im Standalone-Modus auf der Meta Quest).
settings-osc-vrchat-description =
Ändern Sie VRChat-spezifische Einstellungen, um Headset- und Tracker-Daten für FBT zu empfangen und zu senden (funktioniert auch im Standalone-Modus auf der Meta Quest).
settings-osc-vrchat-enable = Aktivieren
settings-osc-vrchat-enable-description = Ein- und Ausschalten des Sendens und Empfangen von Daten
settings-osc-vrchat-enable-label = Aktivieren
@@ -430,13 +361,11 @@ settings-osc-vrchat-network-trackers-feet = Füße
settings-osc-vrchat-network-trackers-elbows = Ellbogen
## Setup/onboarding menu
onboarding-skip = Einrichtung überspringen
onboarding-continue = Fortsetzen
onboarding-wip = Noch in Bearbeitung
## Wi-Fi setup
## WiFi setup
onboarding-wifi_creds-back = Zurück zur Einführung
onboarding-wifi_creds = WLAN-Zugangsdaten eingeben
# This cares about multilines
@@ -447,20 +376,18 @@ onboarding-wifi_creds-description =
onboarding-wifi_creds-skip = WLAN-Zugangsdaten überspringen
onboarding-wifi_creds-submit = Weiter!
onboarding-wifi_creds-ssid =
.label = WLAN-Name
.placeholder = WLAN-Name eingeben
.label = SSID
.placeholder = SSID eingeben
onboarding-wifi_creds-password =
.label = Passwort
.placeholder = Passwort eingeben
## Mounting setup
onboarding-reset_tutorial-back = Zurück zur Trackerausrichtung
onboarding-reset_tutorial = Tutorial neustarten
onboarding-reset_tutorial-description = Diese Funktion ist noch nicht fertig, drücken Sie einfach auf Fortsetzen
## Setup start
onboarding-home = Willkommen zu SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -469,74 +396,55 @@ onboarding-home-description =
onboarding-home-start = Los gehts!
## Enter VR part of setup
onboarding-enter_vr-back = Zurück zur Trackerzuweisung
onboarding-enter_vr-title = Zeit für VR!
onboarding-enter_vr-description = Ziehen Sie alle Tracker an und betreten Sie dann VR!
onboarding-enter_vr-ready = Ich bin bereit!
## Setup done
onboarding-done-title = Alles eingerichtet!
onboarding-done-description = Genießen Sie die Fullbody-Erfahrung
onboarding-done-close = Einrichtung schließen
## Tracker connection setup
onboarding-connect_tracker-back = Zurück zu WLAN-Zugangsdaten
onboarding-connect_tracker-title = Verbinde Tracker
onboarding-connect_tracker-description-p0 = Nun zum unterhaltsamen Teil, verbinde alle Tracker!
onboarding-connect_tracker-description-p1 = Verbinden Sie einfach alle Tracker, die noch nicht verbunden sind, über einen USB-Anschluss.
onboarding-connect_tracker-issue-serial = Ich habe Schwierigkeiten die Tracker zu verbinden!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Suche nach Trackern
onboarding-connect_tracker-connection_status-serial_init = Verbindung zum seriellen Gerät wird hergestellt
onboarding-connect_tracker-connection_status-provisioning = Sende WLAN-Zugangsdaten
onboarding-connect_tracker-connection_status-connecting = Sende WLAN-Zugangsdaten
onboarding-connect_tracker-connection_status-looking_for_server = Suche nach Server
onboarding-connect_tracker-connection_status-connection_error = Es kann keine WLAN-Verbindung hergestellt werden
onboarding-connect_tracker-connection_status-could_not_find_server = Server konnte nicht gefunden werden
onboarding-connect_tracker-connection_status-done = Verbindung zum Server hergestellt.
onboarding-connect_tracker-connection_status-connected = Mit WLAN verbunden
onboarding-connect_tracker-connection_status-error = Kann nicht mit WLAN verbinden
onboarding-connect_tracker-connection_status-start_connecting = Suche nach Trackern
onboarding-connect_tracker-connection_status-handshake = Mit dem Server verbunden
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Kein Tracker
[one] 1 Tracker
*[other] { $amount } Tracker
} verbunden
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] Kein Tracker
[one] 1 Tracker
*[other] { $amount } Tracker
} verbunden
onboarding-connect_tracker-next = Ich habe alle meine Tracker verbunden.
## Tracker assignment setup
onboarding-assign_trackers-back = Zurück zu den WLAN-Zugangsdaten
onboarding-assign_trackers-title = Tracker zuweisen
onboarding-assign_trackers-description = Wählen Sie nun aus, welcher Tracker wo befestigt ist. Klicken Sie auf einen Ort, an dem der Tracker platziert ist.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } von { $trackers ->
[one] 1 Tracker
*[other] { $trackers } Tracker
} zugewiesen
onboarding-assign_trackers-assigned = { $assigned } von { $trackers ->
[one] 1 Tracker
*[other] { $trackers } Tracker
} zugewiesen
onboarding-assign_trackers-advanced = Erweiterte Zuweisungspositionen anzeigen
onboarding-assign_trackers-next = Ich habe alle Tracker zugewiesen
## Tracker assignment warnings
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Taille ist zugewiesen, aber die Brust muss ebenfalls zugewiesen werden!
*[unknown] Taille ist zugewiesen, aber "Unbekanntes nicht zugewiesenes Körperteil" muss ebenfalls zugewiesen werden!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Zurück zum Eintritt in VR
onboarding-manual_mounting = Manuelle Definition der Befestigungsposition
onboarding-manual_mounting-description = Klicken Sie auf jeden Tracker und wählen Sie aus, in welche Richtung diese montiert sind
@@ -544,7 +452,6 @@ onboarding-manual_mounting-auto_mounting = Drehung automatisch ermitteln
onboarding-manual_mounting-next = Nächster Schritt
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Zurück zum Eintritt in VR
onboarding-automatic_mounting-title = Kalibrierung der Tracker-Befestigung/Rotation
onboarding-automatic_mounting-description = Damit die SlimeVR-Tracker korrekt funktionieren, müssen wir ihnen eine Drehung zuweisen, welche der Drehung entspricht wie diese befestigt sind.
@@ -565,14 +472,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Um die Drehung der T
onboarding-automatic_mounting-put_trackers_on-next = Ich habe alle meine Tracker angelegt
## Tracker manual proportions setup
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
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Gehen Sie zurück zum Reset-Tutorial
onboarding-automatic_proportions-title = Messen Sie Ihre Proportionen
onboarding-automatic_proportions-description = Damit die SlimeVR-Tracker funktionieren, müssen wir Ihre Proportionen kennen. Diese kurze Kalibrierung wird sie für Sie messen.
@@ -582,35 +487,34 @@ onboarding-automatic_proportions-put_trackers_on-title = Legen Sie Ihre Tracker
onboarding-automatic_proportions-put_trackers_on-description = Um Ihre Proportionen zu kalibrieren, werden wir die Tracker verwenden, die Sie gerade zugewiesen haben. Legen Sie alle Ihre Tracker an. Sie können rechts in der Abbildung sehen, welche welche sind.
onboarding-automatic_proportions-put_trackers_on-next = Ich habe alle meine Tracker angelegt
onboarding-automatic_proportions-preparation-title = Vorbereitung
onboarding-automatic_proportions-preparation-description = Stellen Sie ein Stuhl hinter sich in Ihrem Spielbereich auf. Seien Sie bereit, sich während der Autobone-Einrichtung hinzusetzen.
onboarding-automatic_proportions-preparation-next = Ich stehe vor dem Stuhl
onboarding-automatic_proportions-preparation-description = Stellen Sie einen Stuhl direkt hinter Ihnen in Ihrem Spielbereich. Seien Sie bereit, während der Autobone-Einrichtung zu sitzen.
onboarding-automatic_proportions-preparation-next = Ich stehe vor einem Stuhl
onboarding-automatic_proportions-start_recording-title = Bereiten Sie sich auf ein paar Bewegungen vor
onboarding-automatic_proportions-start_recording-description = Wir werden nun einige bestimmte Posen und Bewegungen aufnehmen. Diese werden im nächsten Bildschirm angezeigt. Bereiten Sie sicht darauf vor, wenn Sie den Knopf drücken!
onboarding-automatic_proportions-start_recording-next = Aufnahme starten
onboarding-automatic_proportions-recording-title = Aufnahme
onboarding-automatic_proportions-recording-description-p0 = Aufnahme läuft...
onboarding-automatic_proportions-recording-description-p1 = Machen Sie die unten beschriebenen Bewegungen:
onboarding-automatic_proportions-recording-steps-0 = Gehen Sie ein paarmal in die Knie, ohne Ihre Füße zu bewegen.
onboarding-automatic_proportions-recording-steps-0 = Beuge ein paar Mal die Knie.
onboarding-automatic_proportions-recording-steps-1 = Bitte setzen Sie sich auf den Stuhl und stehen Sie wieder auf.
onboarding-automatic_proportions-recording-steps-2 = Drehen Sie den Oberkörper nach links, dann beugen Sie sich nach rechts.
onboarding-automatic_proportions-recording-steps-3 = Drehen Sie den Oberkörper nach rechts, dann beugen Sie sich nach links.
onboarding-automatic_proportions-recording-steps-4 = Bewegen Sie sich, bis die Zeit abgelaufen ist.
onboarding-automatic_proportions-recording-steps-2 = Drehe den oberen Körper nach links, dann beuge dich nach rechts.
onboarding-automatic_proportions-recording-steps-3 = Drehe den oberen Körper nach rechts, dann beuge dich nach links.
onboarding-automatic_proportions-recording-steps-4 = Bewege dich, bis die Zeit abgelaufen ist.
onboarding-automatic_proportions-recording-processing = Aufnahme wird verarbeitet...
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 Sekunde verbleibend
*[other] { $time } Sekunden verbleibend
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 Sekunde verbleibend
*[other] { $time } Sekunden verbleibend
}
onboarding-automatic_proportions-verify_results-title = Ergebnisse überprüfen
onboarding-automatic_proportions-verify_results-description = Sehen die untenstehenden Ergebnisse korrekt aus?
onboarding-automatic_proportions-verify_results-description = Überprüfe die Ergebnisse unten, sehen sie korrekt aus?
onboarding-automatic_proportions-verify_results-results = Aufnahme-Ergebnisse
onboarding-automatic_proportions-verify_results-processing = Ergebnis wird bearbeitet
onboarding-automatic_proportions-verify_results-redo = Aufnahme wiederholen
onboarding-automatic_proportions-verify_results-confirm = Ergebnisse sind korrekt
onboarding-automatic_proportions-done-title = Körper gemessen und gespeichert.
onboarding-automatic_proportions-done-description = Ihre Körperproportionen-Kalibrierung ist abgeschlossen!
onboarding-automatic_proportions-done-description = Deine Körperproportionen-Kalibrierung ist abgeschlossen!
## Home
home-no_trackers = Keine Tracker erkannt oder zugewiesen

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = connyecting to teh sewvew
websocket-connecting = weconnyecting to teh sewvew
websocket-connection_lost = oopsie woopsie~ connyection wost to teh sewvew ;m;... uwu am twying to weconnyect owo!
## Tips
tips-find_tracker = nawt suwe whicsh twayckyaw is whicsh? shayke a twackaw and it will hyighwight the cowowesponding iytem.
tips-do_not_move_heels = ensuwe yoowr pawsies do nawt mowve duwing wecowding! ^w^
## Body parts
body_part-NONE = unassyigned
body_part-HEAD = hed
body_part-NECK = nyecky wecky
@@ -30,6 +24,7 @@ body_part-RIGHT_HAND = wight pawb
body_part-RIGHT_UPPER_LEG = wight uppew weg
body_part-RIGHT_LOWER_LEG = wight wowwe weg
body_part-RIGHT_FOOT = wight pawb
body_part-RIGHT_CONTROLLER = wight wontwolew
body_part-CHEST = chwest
body_part-WAIST = wyayst
body_part-HIP = hyip
@@ -40,9 +35,9 @@ body_part-LEFT_HAND = weft pawb
body_part-LEFT_UPPER_LEG = weft uppew weg
body_part-LEFT_LOWER_LEG = weft wowwe weg
body_part-LEFT_FOOT = weft pawb
body_part-LEFT_CONTROLLER = weft wontwolew
## Proportions
skeleton_bone-NONE = none
skeleton_bone-HEAD = hed shyft
skeleton_bone-NECK = nyeck wength
@@ -52,8 +47,8 @@ skeleton_bone-WAIST = weyst wength
skeleton_bone-HIP = hip wength
skeleton_bone-HIP_OFFSET = hyip awfset
skeleton_bone-HIPS_WIDTH = hyips wiwdth
skeleton_bone-UPPER_LEG = uppew weg wength
skeleton_bone-LOWER_LEG = wowwe weg wength
skeleton_bone-UPPER_LEG = uppor weg wength
skeleton_bone-LOWER_LEG = lowur weg wength
skeleton_bone-FOOT_LENGTH = pawsies wength
skeleton_bone-FOOT_SHIFT = pawsies shyft
skeleton_bone-SKELETON_OFFSET = skeweton awfset
@@ -61,19 +56,17 @@ skeleton_bone-SHOULDERS_DISTANCE = shouwdews disyance
skeleton_bone-SHOULDERS_WIDTH = shouwdews wiwdth
skeleton_bone-UPPER_ARM = uppew awm wength
skeleton_bone-LOWER_ARM = fowewawm disyance
skeleton_bone-HAND_Y = hawnd disance y
skeleton_bone-HAND_Z = hawnd disance z
skeleton_bone-CONTROLLER_Y = cyontwowla disance y
skeleton_bone-CONTROLLER_Z = cyontwowla disance z
skeleton_bone-ELBOW_OFFSET = ewbow awfsewt
## Tracker reset buttons
reset-reset_all = weset aww pwopowtions~
reset-full = weset~
reset-mounting = weset meownting
reset-quick = quick weset
## Serial detection stuff
serial_detection-new_device-p0 = nyu sewiaw device detected~!
serial_detection-new_device-p1 = entaw youw wi-fi cwedentiaws~!
serial_detection-new_device-p2 = pwease sewect what youw want to do wit it
@@ -83,7 +76,6 @@ serial_detection-submit = suwbmyt~!
serial_detection-close = cwose
## Navigation bar
navbar-home = howme
navbar-body_proportions = body pwopowshons
navbar-trackers_assign = twackaws assigwment
@@ -92,22 +84,15 @@ navbar-onboarding = suwep wisawd
navbar-settings = sewtings
## Bounding volume hierarchy recording
bvh-start_recording = wecowd bvh
bvh-recording = wecowding...
## Widget: Overlay settings
widget-overlay = owovelay
widget-overlay-is_visible_label = show owovelay in steawmvr
widget-overlay-is_mirrored_label = dispway owovelay as miwwow
## Widget: Drift compensation
widget-drift_compensation-clear = cwear dwift compensation
## Widget: Developer settings
widget-developer_mode = devwowwewow mode
widget-developer_mode-high_contrast = high contwast
widget-developer_mode-precise_rotation = pwecise wotation
@@ -118,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = waw wotation
widget-developer_mode-more_info = mowe info
## Widget: IMU Visualizer
widget-imu_visualizer = wotation
widget-imu_visualizer-rotation_raw = waw
widget-imu_visualizer-rotation_preview = pwewiew
## Tracker status
tracker-status-none = no stawtus
tracker-status-busy = busy
tracker-status-error = ewwow
@@ -133,7 +116,6 @@ tracker-status-occluded = occwuded
tracker-status-ok = oki
## Tracker status columns
tracker-table-column-name = nayme
tracker-table-column-type = type
tracker-table-column-battery = battewy
@@ -146,21 +128,18 @@ tracker-table-column-position = pawsytion x/y/z
tracker-table-column-url = uawl
## Tracker rotation
tracker-rotation-front = fwowt
tracker-rotation-left = lewft
tracker-rotation-right = wight
tracker-rotation-back = bak
## Tracker information
tracker-infos-manufacturer = mawufactuwer
tracker-infos-display_name = dispway name
tracker-infos-custom_name = custowm name
tracker-infos-url = twackaw uawl
## Tracker settings
tracker-settings-back = go bak to twackaws liwst
tracker-settings-title = twackaw sewtings
tracker-settings-assignment_section = assiwnment
@@ -179,12 +158,10 @@ tracker-settings-name_section-description = owo whats dis?
tracker-settings-name_section-placeholder = ewimewl's weft pawb
## Tracker part card info
tracker-part_card-no_name = no name
tracker-part_card-unassigned = unassigwed
## Body assignment menu
body_assignment_menu = whewe doo yew want dis twayckaw to be?? >~>
body_assignment_menu-description = chooce a wocation whewe yew want dis twayckaw to be assyigned. awtwernativewy, yew can chooce to manage awl twackaws at ownce instawd of won by won.
body_assignment_menu-show_advanced_locations = show advawnced assyign wocations
@@ -192,7 +169,6 @@ body_assignment_menu-manage_trackers = manage awl twackaws
body_assignment_menu-unassign_tracker = unassyign twayckaw
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -221,36 +197,27 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = unassyigned twackaws
tracker_selection_menu-assigned = assyigned twackaws
tracker_selection_menu-dont_assign = do nawt assyign
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>wawning:</b> a neck twackew can be deadwy if adjusted too tightwy,
the stwap (collar) couwd cut the ciwcuwation to youw head!
tracker_selection_menu-neck_warning-done = i undewstand the wisks~
tracker_selection_menu-neck_warning-cancel = cancew :o
## Mounting menu
mounting_selection_menu = whewe doo yew want dis twayckaw to be?
mounting_selection_menu-close = cwose
## Sidebar settings
settings-sidebar-title = settyings~
settings-sidebar-general = genyawaw
settings-sidebar-tracker_mechanics = twayckaw mechanics~
settings-sidebar-fk_settings = fk settyings
settings-sidebar-gesture_control = gestauw cantwol
settings-sidebar-gesture_control = Gesture control
settings-sidebar-interface = intyawface~
settings-sidebar-osc_router = OSC wouwter
settings-sidebar-utils = utiwities
settings-sidebar-serial = sewiaw cownsaw
## SteamVR settings
settings-general-steamvr = steamvr~
settings-general-steamvr-subtitle = steamvr twayckaws~
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -268,9 +235,8 @@ settings-general-steamvr-trackers-elbows = ewbows~
settings-general-steamvr-trackers-hands = pawbsies~
## Tracker mechanics
settings-general-tracker_mechanics = twayckaw mechanics~
settings-general-tracker_mechanics-filtering = fiwtewing~
settings-general-tracker_mechanics-filtering = fiwtering~
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
chooce teh fiwwtewing type fow youw twackaws.
@@ -293,10 +259,9 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = compensatio
settings-general-tracker_mechanics-drift_compensation-max_resets-label = nuwmbew of wesets uwsed
## FK/Tracking settings
settings-general-fk_settings = fk sewttings
settings-general-fk_settings-leg_tweak = leg tweeks
settings-general-fk_settings-leg_tweak-description = floo-cwip can wowduce owow even ewiminates cwipping with teh fwoow but may cause pwobweems when on yowuw neeys. skayting-cowwection cowwects fow wowce skating, but can wowcyancy accuwowacy in cewtain wowvement wowttewns.
settings-general-fk_settings-leg_tweak-description = floo-cwip can wowduce owow even ewiminates cwipping with teh fwoor but may cause pwobweems when on yowur neeys. skayting-cowwection cowwects fow wowce skating, but can wowcyancy accuwowacy in cewtain wowvement wowttewns.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
@@ -310,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = skawting coww
settings-general-fk_settings-arm_fk = awm fk
settings-general-fk_settings-arm_fk-description = chawnge teh way teh awms awe twacked.
settings-general-fk_settings-arm_fk-force_arms = fowce awms fwom hmd
settings-general-fk_settings-arm_fk-i_pose = uwse i powse insted of t powse
settings-general-fk_settings-skeleton_settings = skeweton sewttings
settings-general-fk_settings-skeleton_settings-description = toggwe skeweton sewttings on owow off. is wowcommended to weawve these on~
settings-general-fk_settings-skeleton_settings-extended_spine = ewtended spine
@@ -320,29 +286,26 @@ settings-general-fk_settings-vive_emulation-description = emuwate the waist twac
settings-general-fk_settings-vive_emulation-label = enabwe vive emuwation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = gestauw cantwol
settings-general-gesture_control-subtitle = bap bwased wesets
settings-general-gesture_control-description = allaws oww wesets wo be twiggewed by wapping a twackaw. The twackaw hyighest wup on youwuw twuwsuu is uwued fow qwick weset, wa twackaw hyighest up on youwuw weft weg is uwused fow weset, and teh twackaw hyighest up on youwuw wight weg is used fow mmountwing weset. It showold we wentioned what waps muwst happen within 0.6 seconds wo be wegistewed
settings-general-gesture_control-description = allaws owr wesets wo be twiggered by wapping a twackaw. The twackaw hyighest wup on youwur twursuu is uwued for qwick weset, wa twackaw hyighest up on youwur weft weg is uwused for weset, and teh twackaw hyighest up on youwur wight weg is used for mmountwing weset. It showold we wentioned what waps muwst happen within 0.6 seconds wo be wegistered
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 bap
*[other] { $amount } baps
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 bap
*[other] { $amount } baps
}
settings-general-gesture_control-quickResetEnabled = enable wap to quwuick weset
settings-general-gesture_control-quickResetDelay = quwuick weset deway
settings-general-gesture_control-quickResetTaps = baps fow quwuick weset
settings-general-gesture_control-quickResetTaps = baps for quwuick weset
settings-general-gesture_control-resetEnabled = enable wap to weset
settings-general-gesture_control-resetDelay = weset deway
settings-general-gesture_control-resetTaps = baps fow weset
settings-general-gesture_control-resetTaps = baps for weset
settings-general-gesture_control-mountingResetEnabled = enable wap to weset mountwing
settings-general-gesture_control-mountingResetDelay = mountwing weset deway
settings-general-gesture_control-mountingResetTaps = baps for mountwing weset
## Interface settings
settings-general-interface = intewface
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
@@ -355,7 +318,6 @@ settings-general-interface-lang-description = change the defawwt wanguage yuw wa
settings-general-interface-lang-placeholder = sewect teh wanguage to use
## Serial settings
settings-serial = shewyaw console
# This cares about multilines
settings-serial-description =
@@ -364,20 +326,12 @@ settings-serial-description =
settings-serial-connection_lost = connyection to shewyaw wost, weconnyecting... >~<
settings-serial-reboot = weboot
settings-serial-factory_reset = fawctowy reset
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>wawning:</b> this wiww weset the twackew to factowy settings.
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
## OSC router settings
settings-osc-router = OSC wouwtew
settings-osc-router = OSC wouwter
# This cares about multilines
settings-osc-router-description =
fowwawd osc messages fwom anothew pwogwam
@@ -401,8 +355,7 @@ settings-osc-router-network-address-description = choose which addwess to send o
settings-osc-router-network-address-placeholder = IPV4 addwess
## OSC VRChat settings
settings-osc-vrchat = VRChawt OSC Twayckaws
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
change vwchat-specific settwings to wweceive hmd data awnd send
@@ -410,7 +363,7 @@ settings-osc-vrchat-description =
settings-osc-vrchat-enable = enaybwe
settings-osc-vrchat-enable-description = toggle teh sending awnd wweceiving of data
settings-osc-vrchat-enable-label = enaybwe
settings-osc-vrchat-network = newtwowk pawts
settings-osc-vrchat-network = network pawts
settings-osc-vrchat-network-description = set the pawts fow wistening awnd sending data to vwchawt
settings-osc-vrchat-network-port_in =
.label = pawt in
@@ -430,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = pweets~
settings-osc-vrchat-network-trackers-elbows = ewbows~
## Setup/onboarding menu
onboarding-skip = skipy setup
onboarding-continue = continyue
onboarding-wip = wowwk in pwowgress
## Wi-Fi setup
onboarding-wifi_creds-back = gaww bawwk to intwoduction
onboarding-wifi_creds = input wi-fi cwedentials
# This cares about multilines
@@ -453,148 +404,68 @@ onboarding-wifi_creds-password =
.placeholder = entew passwowod
## Mounting setup
onboarding-reset_tutorial-back = gaww bawwk to meownting cawwibwation
onboarding-reset_tutorial = weset wtutowial
onboarding-reset_tutorial = weset tutowial
onboarding-reset_tutorial-description = dis featuwe isn't done, just pwess continyue
## Setup start
onboarding-home = wewcome to swimevr
# This cares about multilines and it's centered!!
onboarding-home-description =
bwinging fuww-bawdy twacking
to evewyone
to everyone
onboarding-home-start = wets get set up!
## Enter VR part of setup
onboarding-enter_vr-back = gaww bawwk to twacker assignyment
onboarding-enter_vr-title = time to entew vr!
onboarding-enter_vr-description = put on awe yoaww twackaws and then entew vr!
onboarding-enter_vr-ready = iym weady
onboarding-enter_vr-ready = iym ready
## Setup done
onboarding-done-title = yaww awe awe set!
onboarding-done-description = enjoy yoaww fuww body expewwience
onboarding-done-close = cwose the guide
## Tracker connection setup
onboarding-connect_tracker-back = gaww bawwk to wi-fi cwedentials
onboarding-connect_tracker-title = connect twackaws
onboarding-connect_tracker-description-p0 = now onto teh fun pawwt, connecting awe teh twackaws!
onboarding-connect_tracker-description-p1 = simply connect awe that awe nawt cownyected yet, through a usb powwt.
onboarding-connect_tracker-issue-serial = i'm having twouble connecting!
onboarding-connect_tracker-usb = usb twackew
onboarding-connect_tracker-connection_status-none = wooking fow twackaws
onboarding-connect_tracker-connection_status-serial_init = conectin too da sewiaw dewise
onboarding-connect_tracker-connection_status-provisioning = sending wi-fi cwedentials
onboarding-connect_tracker-usb = usb twacker
onboarding-connect_tracker-connection_status-connecting = sending wi-fi cwedentials
onboarding-connect_tracker-connection_status-looking_for_server = wookin fow da sewvew
onboarding-connect_tracker-connection_status-connection_error = unabwe to cownyect to wi-fi
onboarding-connect_tracker-connection_status-could_not_find_server = i cannt find da sewvew ;w;
onboarding-connect_tracker-connection_status-done = cownyected to teh sewvew
onboarding-connect_tracker-connection_status-connected = cownyected to wi-fi
onboarding-connect_tracker-connection_status-error = unabwe to cownyect to wi-fi
onboarding-connect_tracker-connection_status-start_connecting = wooking for twackaws
onboarding-connect_tracker-connection_status-handshake = cownyected to teh sewvew
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] no twackers
[one] 1 twackers
*[other] { $amount } twackers
} cownyected
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] no twackers
[one] 1 twackers
*[other] { $amount } twackers
} cownyected
onboarding-connect_tracker-next = i cownyected awe my twackaws
## Tracker assignment setup
onboarding-assign_trackers-back = go bak to wi-fi credyentials
onboarding-assign_trackers-title = assign twackaws
onboarding-assign_trackers-description = wets choyse which twackaw goes whewe. cwick on a wocation whewe yowo want to payce a twackaw
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 twackaws
*[other] { $trackers } twackaws
} assigned
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 twackaws
*[other] { $trackers } twackaws
} assigned
onboarding-assign_trackers-advanced = show advanced assign wocations
onboarding-assign_trackers-next = i assigned awe the twackaws
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] weft foot ish assignyed but c-chu nyeed the weft ankwe, weft thigh and eithew da chest, hip o-ow waist to awso be assignyed!
[1] weft foot ish assignyed but chu nyeed da weft thigh a-and eithew da chest, hip ow waist to a-awso be assignyed!
[2] weft foot ish assignyed but chu nyeed da weft ankwe and eithew da chest, hip ow waist t-to awso be a-assignyed!
[3] weft foot ish assignyed but chu nyeed eithew da chest, hip ow waist to awso be assignyed!
[4] weft foot i-ish assignyed but chu nyeed da weft a-ankwe a-and weft thigh to awso be assignyed!
[5] weft foot ish assignyed but chu nyeed da weft thigh to a-awso be assignyed!
[6] wefwft foot ish assignyed but chu nyeed da weft ankwe to awso be assignyed!
*[unknown] weft foot is assignyed b-but chu n-nyeed unknyown unyassignyed body pawt to a-awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] w-wight foot ish assignyed but yuu nyeed da wight ankwe, wight thigh and eithew da chest, h-h-hip ow waist to awso be assignyed!
[1] wight foot ish assignyed b-but chu nyeed da wight thigh and eithew da c-chest, hip ow w-waist to awso be assignyed!
[2] wight foot ish assignyed but chu nyeed da w-wight a-ankwe and eithew da chest, hip ow waist to awso be assignyed!
[3] wight foot ish assignyed but chu nyeed eithew da chest, hip ow waist to awso be assignyed!
[4] wight foot ish assignyed but chu nyeed da wight ankwe and wight thigh to awso be assignyed!
[5] wight foot i-i-ish assignyed but chu nyeed da wight thigh to awso be assignyed!
[6] wight foot ish assignyed but chu nyeed da wight ankwe to awso be a-assignyed!
*[unknown] wight foot ish assignyed but chu nyeed unknyown u-unyassignyed body pawt t-to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] wight ankwe i-ish assignyed but chu nyeed da wight thigh and eithew da chest, h-hip ow waist to awso be assignyed!
[1] wight a-a-ankwe ish assignyed but chu nyeed eithew da chest, hip ow w-waist to awso be assignyed!
[2] wight ankwe ish assignyed but chu nyeed da wight thigh to awso be assignyed!
*[unknown] wight ankwe i-ish assignyed but chu n-nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] wight ankwe ish a-assignyed but chu nyeed da w-wight thigh and eithew da chest, hip ow waist to awso b-be assignyed!
[1] wight ankwe ish assignyed but chu nyeed eithew da c-chest, hip ow waist to awso be assignyed!
[2] wight ankwe i-ish assignyed but chu nyeed da wight thigh to awso be assignyed!
*[unknown] wight ankwe ish assignyed but chu nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] weft thigh is assignyed b-but chu nyeed eithew da chest, hip o-ow waist to awso b-be assignyed!
*[unknown] weft t-thigh is assignyed but chu nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] wight thigh ish assignyed but chu nyeed eithew da chest, hip ow waist to awso be assignyed!
*[unknown] wight thigh ish assignyed but chu nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] hip is assignyed but yuw nyeed the chest to awso b-be assignyed!
*[unknown] hip is assignyed but yuw nyeed unknyown unyassignyed body pawt to awso be assignyed!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] waiwst is assignyed b-but you nyeed teh chest to awso b-be assignyed!
*[unknown] waiwst is assignyed but you nyeed unknyoun unyassignyed body pawt to awso be assignyed!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = go bak to entaw vawe
onboarding-manual_mounting = manual meownting
onboarding-manual_mounting-description = cwick on evewy twackaw and sewect which way they awe mownted
@@ -602,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = awtomawic meownting
onboarding-manual_mounting-next = newt stewp
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = go bak to entaw vawe
onboarding-automatic_mounting-title = meownting cawibwation
onboarding-automatic_mounting-description = fow SlimeVR twackaws to wowk, we need to assign a meownting wowation to yowo twackaws to awign them with yowo pwysical twackaw mounting.
@@ -611,26 +481,24 @@ onboarding-automatic_mounting-next = next step
onboarding-automatic_mounting-prev_step = pwevious step
onboarding-automatic_mounting-done-title = mounting wowations cawibwated.
onboarding-automatic_mounting-done-description = yowo meownting cawibwation is compwete!
onboarding-automatic_mounting-done-restart = wetuwn to stawt
onboarding-automatic_mounting-done-restart = weturn to start
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-title = pwepairation
onboarding-automatic_mounting-preparation-step-0 = 1. stand upwight with yowo awems to yowo sides.
onboarding-automatic_mounting-preparation-step-1 = 2. pwess the "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-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 figure to the wowight.
onboarding-automatic_mounting-put_trackers_on-next = i haff awe my twackaws on
## Tracker manual proportions setup
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
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = go bawck to weweset tutowiaw
onboarding-automatic_proportions-title = measuwe yowuw bodee
onboarding-automatic_proportions-description = fow swimevw twackaws to wowk, we need to know teh wowkty of yowuw bones. dis showt cawybwation will measuwe it fow yowu
@@ -646,7 +514,7 @@ onboarding-automatic_proportions-start_recording-title = get wowdy to move
onboarding-automatic_proportions-start_recording-description = we'we now going to wowcawd some specific poses and moves. these will be pwompted in teh wowst screen. be wowdy to stawt when teh buttawn is pwessed!
onboarding-automatic_proportions-start_recording-next = stawt wowcawding
onboarding-automatic_proportions-recording-title = wowcawd
onboarding-automatic_proportions-recording-description-p0 = wowcawding in pwowgwess...
onboarding-automatic_proportions-recording-description-p0 = wowcawding in pwowgress...
onboarding-automatic_proportions-recording-description-p1 = make teh moves shown bowow:
onboarding-automatic_proportions-recording-steps-0 = bend knees a few times.
onboarding-automatic_proportions-recording-steps-1 = sit on a chayaw then stawnd up.
@@ -655,11 +523,10 @@ onboarding-automatic_proportions-recording-steps-3 = twist upwe wowdy wowight, t
onboarding-automatic_proportions-recording-steps-4 = wiggy aweound until tymey ends.
onboarding-automatic_proportions-recording-processing = pwowcessing teh wowesult
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second wowft
*[other] { $time } secondsy wowft
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second wowft
*[other] { $time } secondsy wowft
}
onboarding-automatic_proportions-verify_results-title = vewify wowesults
onboarding-automatic_proportions-verify_results-description = check teh wewesults below, do tehy weok coowect?
onboarding-automatic_proportions-verify_results-results = wecowding wewesults
@@ -670,5 +537,4 @@ onboarding-automatic_proportions-done-title = bawdy meowsured anwd sayved uwu
onboarding-automatic_proportions-done-description = yoww body pwopowwtions cawybowwation is cowowplete! ^w^
## Home
home-no_trackers = no twackaws detecyted owo wowigned

View File

@@ -24,6 +24,7 @@ body_part-RIGHT_HAND = Right hand
body_part-RIGHT_UPPER_LEG = Right thigh
body_part-RIGHT_LOWER_LEG = Right ankle
body_part-RIGHT_FOOT = Right foot
body_part-RIGHT_CONTROLLER = Right controller
body_part-CHEST = Chest
body_part-WAIST = Waist
body_part-HIP = Hip
@@ -34,6 +35,7 @@ body_part-LEFT_HAND = Left hand
body_part-LEFT_UPPER_LEG = Left thigh
body_part-LEFT_LOWER_LEG = Left ankle
body_part-LEFT_FOOT = Left foot
body_part-LEFT_CONTROLLER = Left controller
## Proportions
skeleton_bone-NONE = None
@@ -54,8 +56,8 @@ skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
skeleton_bone-SHOULDERS_WIDTH = Shoulders Width
skeleton_bone-UPPER_ARM = Upper Arm Length
skeleton_bone-LOWER_ARM = Lower Arm Length
skeleton_bone-HAND_Y = Hand Distance Y
skeleton_bone-HAND_Z = Hand Distance Z
skeleton_bone-CONTROLLER_Y = Controller Distance Y
skeleton_bone-CONTROLLER_Z = Controller Distance Z
skeleton_bone-ELBOW_OFFSET = Elbow Offset
## Tracker reset buttons
@@ -90,9 +92,6 @@ widget-overlay = Overlay
widget-overlay-is_visible_label = Show Overlay in SteamVR
widget-overlay-is_mirrored_label = Display Overlay as Mirror
## Widget: Drift compensation
widget-drift_compensation-clear = Clear drift compensation
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = High contrast
@@ -139,8 +138,6 @@ tracker-infos-manufacturer = Manufacturer
tracker-infos-display_name = Display Name
tracker-infos-custom_name = Custom Name
tracker-infos-url = Tracker URL
tracker-infos-version = Firmware Version
tracker-infos-hardware_rev = Hardware Revision
## Tracker settings
tracker-settings-back = Go back to trackers list
@@ -205,14 +202,6 @@ tracker_selection_menu-unassigned = Unassigned Trackers
tracker_selection_menu-assigned = Assigned Trackers
tracker_selection_menu-dont_assign = Do not assign
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Warning:</b> A neck tracker can be deadly if adjusted too tightly,
the strap could cut the circulation to your head!
tracker_selection_menu-neck_warning-done = I understand the risks
tracker_selection_menu-neck_warning-cancel = Cancel
## Mounting menu
mounting_selection_menu = Where do you want this tracker to be?
mounting_selection_menu-close = Close
@@ -286,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating corre
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Change the way the arms are tracked.
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Skeleton settings
settings-general-fk_settings-skeleton_settings-description = Toggle skeleton settings on or off. It is recommended to leave these on.
settings-general-fk_settings-skeleton_settings-extended_spine = Extended spine
@@ -336,13 +326,6 @@ settings-serial-description =
settings-serial-connection_lost = Connection to serial lost, Reconnecting...
settings-serial-reboot = Reboot
settings-serial-factory_reset = Factory Reset
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Warning:</b> This will reset the tracker to factory settings.
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
@@ -451,14 +434,11 @@ onboarding-connect_tracker-description-p0 = Now onto the fun part, connecting al
onboarding-connect_tracker-description-p1 = Simply connect all that aren't connected yet, through a USB port.
onboarding-connect_tracker-issue-serial = I'm having trouble connecting!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Looking for trackers
onboarding-connect_tracker-connection_status-serial_init = Connecting to serial device
onboarding-connect_tracker-connection_status-provisioning = Sending Wi-Fi credentials
onboarding-connect_tracker-connection_status-connecting = Trying to connect to Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Looking for server
onboarding-connect_tracker-connection_status-connection_error = Unable to connect to Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Could not find the server
onboarding-connect_tracker-connection_status-done = Connected to the Server
onboarding-connect_tracker-connection_status-connecting = Sending Wi-Fi credentials
onboarding-connect_tracker-connection_status-connected = Connected to Wi-Fi
onboarding-connect_tracker-connection_status-error = Unable to connect to Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Looking for trackers
onboarding-connect_tracker-connection_status-handshake = Connected to the Server
# $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",
@@ -485,65 +465,6 @@ onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
onboarding-assign_trackers-advanced = Show advanced assign locations
onboarding-assign_trackers-next = I assigned all the trackers
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT = Left foot is assigned but you need { $unassigned ->
[0] the left ankle, left thigh and either the chest, hip or waist
[1] the left thigh and either the chest, hip or waist
[2] the left ankle and either the chest, hip or waist
[3] either the chest, hip or waist
[4] the left ankle and left thigh
[5] the left thigh
[6] the left ankle
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT = Right foot is assigned but you need { $unassigned ->
[0] the right ankle, right thigh and either the chest, hip or waist
[1] the right thigh and either the chest, hip or waist
[2] the right ankle and either the chest, hip or waist
[3] either the chest, hip or waist
[4] the right ankle and right thigh
[5] the right thigh
[6] the right ankle
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG = Left ankle is assigned but you need { $unassigned ->
[0] the left thigh and either the chest, hip or waist
[1] either the chest, hip or waist
[2] the left thigh
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG = Right ankle is assigned but you need { $unassigned ->
[0] the right thigh and either the chest, hip or waist
[1] either the chest, hip or waist
[2] the right thigh
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG = Left thigh is assigned but you need { $unassigned ->
[0] either the chest, hip or waist
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG = Right thigh is assigned but you need { $unassigned ->
[0] either the chest, hip or waist
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP = Hip is assigned but you need { $unassigned ->
[0] the chest
*[unknown] Unknown unassigned body part
} to also be assigned!
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST = Waist is assigned but you need { $unassigned ->
[0] the chest
*[unknown] Unknown unassigned body part
} to also be assigned!
## Tracker manual mounting setup
onboarding-manual_mounting-back = Go Back to Enter VR
onboarding-manual_mounting = Manual Mounting

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Conectando al servidor
websocket-connection_lost = Conexión al servidor perdida. Intentando reconectar...
## Tips
tips-find_tracker = ¿No estás seguro de cuál sensor es cuál? Agita un sensor y se resaltará donde está asignado.
tips-do_not_move_heels = ¡Asegúrate de no mover los talones en la grabación!
## Body parts
body_part-NONE = Sin asignar
body_part-HEAD = Cabeza
body_part-NECK = Cuello
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = Pie izquierdo
body_part-LEFT_CONTROLLER = Control izquierdo
## Proportions
skeleton_bone-NONE = Nada
skeleton_bone-HEAD = Inclinación de cabeza
skeleton_bone-NECK = Largo del cuello
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = Distancia Z del mando
skeleton_bone-ELBOW_OFFSET = Desplazamiento del codo
## Tracker reset buttons
reset-reset_all = Reiniciar todas las proporciones
reset-full = Reiniciar
reset-mounting = Reiniciar montura
reset-quick = Reinicio rápido
## Serial detection stuff
serial_detection-new_device-p0 = ¡Nuevo dispositivo serial detectado!
serial_detection-new_device-p1 = ¡Ingresa tus credenciales del Wi-Fi!
serial_detection-new_device-p2 = Por favor selecciona que quieres hacer con el
@@ -85,7 +76,6 @@ serial_detection-submit = ¡Enviar!
serial_detection-close = Cerrar
## Navigation bar
navbar-home = Inicio
navbar-body_proportions = Proporciones corporales
navbar-trackers_assign = Asignación de sensores
@@ -94,22 +84,15 @@ navbar-onboarding = Asistente de configuración
navbar-settings = Ajustes
## Bounding volume hierarchy recording
bvh-start_recording = Grabar BVH
bvh-recording = Grabando...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostrar interfaz en SteamVR
widget-overlay-is_mirrored_label = Mostrar interfaz reflejada
## Widget: Drift compensation
widget-drift_compensation-clear = Limpiar compensación de desviación
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
@@ -120,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Sin estado
tracker-status-busy = Ocupado
tracker-status-error = Error
@@ -135,7 +116,6 @@ tracker-status-occluded = Ocluido
tracker-status-ok = Conectado
## Tracker status columns
tracker-table-column-name = Nombre
tracker-table-column-type = Tipo
tracker-table-column-battery = Batería
@@ -148,21 +128,18 @@ tracker-table-column-position = Posición X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Frente
tracker-rotation-left = Izquierda
tracker-rotation-right = Derecha
tracker-rotation-back = Atrás
## Tracker information
tracker-infos-manufacturer = Fabricante
tracker-infos-display_name = Nombre
tracker-infos-custom_name = Nombre personalizado
tracker-infos-url = URL del sensor
## Tracker settings
tracker-settings-back = Volver a la lista de sensores
tracker-settings-title = Ajustes de los sensores
tracker-settings-assignment_section = Asignación
@@ -178,15 +155,13 @@ tracker-settings-drift_compensation_section-edit = Permitir compensación de des
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nombre del sensor
tracker-settings-name_section-description = Dale un apodo bonito :)
tracker-settings-name_section-placeholder = Pata izquierda de Manteca
tracker-settings-name_section-placeholder = Pierna izquierda de NightyBeast
## Tracker part card info
tracker-part_card-no_name = Sin nombre
tracker-part_card-unassigned = Sin asignar
## Body assignment menu
body_assignment_menu = ¿Dónde quieres que esté este sensor?
body_assignment_menu-description = Selecciona la posición donde quieres asignar este sensor. También puedes escoger administrar todos los sensores al mismo tiempo en vez de uno por uno.
body_assignment_menu-show_advanced_locations = Mostrar posiciones de asignación avanzadas
@@ -194,7 +169,6 @@ body_assignment_menu-manage_trackers = Administrar todos los sensores
body_assignment_menu-unassign_tracker = Desasignar sensor
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -223,24 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } muslo izquie
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } tobillo izquiero?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } pie izquierdo?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } mando izquierdo?
tracker_selection_menu-unassigned = Sensores sin asignar
tracker_selection_menu-assigned = Sensores asignados
tracker_selection_menu-dont_assign = No asignar
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Advertencia:</b> Un sensor de cuello puede ser mortal si se ajusta demasiado,
¡La correa podría cortar la circulación a tu cabeza!
tracker_selection_menu-neck_warning-done = Entiendo los riesgos
tracker_selection_menu-neck_warning-cancel = Cancelar
## Mounting menu
mounting_selection_menu = ¿Dónde quieres colocar el sensor?
mounting_selection_menu-close = Cerrar
## Sidebar settings
settings-sidebar-title = Ajustes
settings-sidebar-general = General
settings-sidebar-tracker_mechanics = Mecánicas del sensor
@@ -252,7 +218,6 @@ settings-sidebar-utils = Utilidades
settings-sidebar-serial = Consola serial
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Sensores en SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -270,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Codos
settings-general-steamvr-trackers-hands = Manos
## Tracker mechanics
settings-general-tracker_mechanics = Mecánicas del sensor
settings-general-tracker_mechanics-filtering = Filtrado
# This also cares about multilines
@@ -295,7 +259,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Fuerza de l
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Utilizar hasta los últimos x reinicios
## FK/Tracking settings
settings-general-fk_settings = Ajustes de sensores
settings-general-fk_settings-leg_tweak = Corrección de piernas
settings-general-fk_settings-leg_tweak-description = El clip del suelo puede reducir o incluso eliminar el traspaso del piso pero puede causar problemas cuando te arrodilles. Corrección del patinaje corrige el patinaje, pero puede disminuir la precisión de ciertos movimientos.
@@ -312,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Agresividad d
settings-general-fk_settings-arm_fk = Trackeo de brazos
settings-general-fk_settings-arm_fk-description = Cambia cómo el movimiento de los brazos es detectado.
settings-general-fk_settings-arm_fk-force_arms = Forzar brazos desde el HMD
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Ajustes de esqueleto
settings-general-fk_settings-skeleton_settings-description = Habilita o deshabilita los ajustes de esqueleto. Es recomendado dejar estos ajustes habilitados.
settings-general-fk_settings-skeleton_settings-extended_spine = Extención de columna
@@ -322,17 +286,15 @@ settings-general-fk_settings-vive_emulation-description = Emulate the waist trac
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Control de gestos
settings-general-gesture_control-subtitle = Reinicio basado en toques
settings-general-gesture_control-description = Permite la ejecución de un reinicio al tocar un sensor. El sensor más alto en el torso es utilizado para el reinicio rápido, el sensor más alto en tu pierna izquierda es utilizado para el reinicio, y el sensor más alto en tu pierna derecha es utilizado para reiniciar la montura. Cabe destacar que los toques deben suceder dentro de 0.6 segundos para ser registrados.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 toque
*[other] { $amount } toques
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 toque
*[other] { $amount } toques
}
settings-general-gesture_control-quickResetEnabled = Activar toques para reinicio rápido
settings-general-gesture_control-quickResetDelay = Retraso de reinicio rápido
settings-general-gesture_control-quickResetTaps = Toques para reinicio rápido
@@ -344,7 +306,6 @@ settings-general-gesture_control-mountingResetDelay = Retraso de reinicio de mon
settings-general-gesture_control-mountingResetTaps = Toques para reinicio de montura
## Interface settings
settings-general-interface = Interfaz
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.
@@ -357,7 +318,6 @@ settings-general-interface-lang-description = Cambia el idioma que quieras usar.
settings-general-interface-lang-placeholder = Selecciona el idioma a utilizar
## Serial settings
settings-serial = Consola serial
# This cares about multilines
settings-serial-description =
@@ -366,19 +326,11 @@ settings-serial-description =
settings-serial-connection_lost = Conexión serial perdida, reconectando...
settings-serial-reboot = Reinciar
settings-serial-factory_reset = Restauración de fábrica
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Advertencia:</b> Esto reiniciará el sensor a sus ajustes de fábrica.
¡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
## OSC router settings
settings-osc-router = Router OSC
# This cares about multilines
settings-osc-router-description =
@@ -403,7 +355,6 @@ settings-osc-router-network-address-description = Establece la direción a la cu
settings-osc-router-network-address-placeholder = Dirección IPv4
## OSC VRChat settings
settings-osc-vrchat = Sensores OSC de VRChat
# This cares about multilines
settings-osc-vrchat-description =
@@ -432,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = Pies
settings-osc-vrchat-network-trackers-elbows = Codos
## Setup/onboarding menu
onboarding-skip = Saltar configuración
onboarding-continue = Continuar
onboarding-wip = Trabajo en progreso
## Wi-Fi setup
onboarding-wifi_creds-back = Volver a la introducción
onboarding-wifi_creds = Ingresar credenciales del Wi-Fi
# This cares about multilines
@@ -455,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Ingresa la contraseña
## Mounting setup
onboarding-reset_tutorial-back = Volver a la calibración de montura
onboarding-reset_tutorial = Reiniciar tutorial
onboarding-reset_tutorial-description = Esta aún parte no está finalizada, por favor presione continuar
## Setup start
onboarding-home = Bienvenido a SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -470,133 +417,55 @@ onboarding-home-description =
onboarding-home-start = ¡Comencemos!
## Enter VR part of setup
onboarding-enter_vr-back = Volver a la asignación de sensores
onboarding-enter_vr-title = ¡Es hora de entrar a la RV!
onboarding-enter_vr-description = ¡Ponte todos tus sensores y luego entra a la RV!
onboarding-enter_vr-ready = Estoy listo
## Setup done
onboarding-done-title = ¡Estás listo!
onboarding-done-description = Disfruta moverte en la realidad virtual
onboarding-done-close = Cerrar la guía
## Tracker connection setup
onboarding-connect_tracker-back = Volver a las credenciales Wi-Fi
onboarding-connect_tracker-title = Conecta tus sensores
onboarding-connect_tracker-description-p0 = Ahora la parte divertida, ¡Conectar todos tus sensores!
onboarding-connect_tracker-description-p1 = Simplemente conecta todos los sensores que aún no están conectados, por medio de un puerto USB.
onboarding-connect_tracker-issue-serial = ¡Tengo problemas conectándolos!
onboarding-connect_tracker-usb = Sensor USB
onboarding-connect_tracker-connection_status-none = Buscando sensores
onboarding-connect_tracker-connection_status-serial_init = Conectando al dispositivo serial
onboarding-connect_tracker-connection_status-provisioning = Enviando credenciales Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Enviando credenciales Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Buscando servidor
onboarding-connect_tracker-connection_status-connection_error = Incapaz de conectar al Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = No se pudo encontrar el servidor
onboarding-connect_tracker-connection_status-done = Conectado con el servidor
onboarding-connect_tracker-connection_status-connected = Conectado al Wi-Fi
onboarding-connect_tracker-connection_status-error = Incapaz de conectar al Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Buscando sensores
onboarding-connect_tracker-connection_status-handshake = Conectado con el servidor
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No hay sensores conectados
[one] 1 sensor conectado
*[other] { $amount } sensores conectados
}
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No hay sensores conectados
[one] 1 sensor conectado
*[other] { $amount } sensores conectados
}
onboarding-connect_tracker-next = He conectado todos mis sensores
## Tracker assignment setup
onboarding-assign_trackers-back = Volver a las credenciales Wi-Fi
onboarding-assign_trackers-title = Asignación de sensores
onboarding-assign_trackers-description = Debes escoger dónde van los sensores. Has clic en la ubicación donde quieras colocar un sensor
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } de { $trackers ->
[one] 1 sensor asignado
*[other] { $trackers } sensores asignados
}
onboarding-assign_trackers-assigned = { $assigned } de { $trackers ->
[one] 1 sensor asignado
*[other] { $trackers } sensores asignados
}
onboarding-assign_trackers-advanced = Mostrar ubicación de asignaciones avanzados.
onboarding-assign_trackers-next = He asignado todos los sensores
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] El pie izquierdo está asignado, pero necesitas el tobillo izquierdo, el muslo izquierdo y que el pecho, la cadera o la cintura estén asignados.
[1] El pie izquierdo está asignado, pero necesitas que el muslo izquierdo y el pecho, la cadera o la cintura estén asignados.
[2] El pie izquierdo está asignado, pero necesitas que el tobillo izquierdo y el pecho, la cadera o la cintura estén asignados.
[3] El pie izquierdo está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[4] El pie izquierdo está asignado, pero necesitas que el tobillo izquierdo y el muslo izquierdo estén asignados.
[5] El pie izquierdo está asignado, pero necesitas que el muslo izquierdo igual esté asignado.
[6] El pie izquierdo está asignado, pero necesitas que el tobillo izquierdo igual esté asignado.
*[unknown] El pie izquierdo está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] El pie derecho está asignado, pero necesitas el tobillo derecho, el muslo derecho y que el pecho, la cadera o la cintura estén asignados.
[1] El pie derecho está asignado, pero necesitas el muslo derecho y el pecho, la cadera o la cintura estén asignados.
[2] El pie derecho está asignado, pero necesitas el tobillo derecho y el pecho, la cadera o la cintura estén asignados.
[3] El pie derecho está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[4] El pie derecho está asignado, pero necesitas que el tobillo derecho y el muslo derecho estén asignados.
[5] El pie derecho está asignado, pero necesitas que el muslo derecho igual esté asignado.
[6] El pie derecho está asignado, pero necesitas que el tobillo derecho igual esté asignado.
*[unknown] El pie derecho está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] El tobillo izquierdo está asignado, pero necesitas el muslo izquierdo y que el pecho, la cadera o la cintura estén asignados.
[1] El tobillo izquierdo está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[2] El tobillo izquierdo está asignado, pero necesitas que el muslo izquierdo igual esté asignado.
*[unknown] El tobillo izquierdo está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] El tobillo derecho está asignado, pero necesitas el muslo derecho y que el pecho, la cadera o la cintura estén asignados.
[1] El tobillo derecho está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
[2] El tobillo derecho está asignado, pero necesitas que el muslo derecho igual esté asignado.
*[unknown] El tobillo derecho está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] El muslo izquierdo está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
*[unknown] El muslo izquierdo está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] El muslo derecho está asignado, pero necesitas que el pecho, la cadera o la cintura estén asignados.
*[unknown] El muslo derecho está asignado, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] La cadera está asignada, pero necesitas que el pecho igual esté asignado.
*[unknown] La cadera está asignada, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] La cintura está asignada, pero necesitas que el pecho igual esté asignado.
*[unknown] La cintura está asignada, pero necesitas asignar la parte del cuerpo desconocida sin asignar.
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Volver para entrar a la RV
onboarding-manual_mounting = Montura manual
onboarding-manual_mounting-description = Has clic en todos los sensores y selecciona en que dirección están montados
@@ -604,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = Montura automática
onboarding-manual_mounting-next = Siguiente paso
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Volver para entrar a la RV
onboarding-automatic_mounting-title = Calibración de montura
onboarding-automatic_mounting-description = Para que los sensores SlimeVR funcionen, necesitamos asignar una posición de montura a tus sensores para que se alinien con la montura física de tu sensor.
@@ -625,14 +493,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Para calibrar la ubi
onboarding-automatic_mounting-put_trackers_on-next = Tengo puestos todos mis sensores
## Tracker manual proportions setup
onboarding-manual_proportions-back = Volver al tutorial de reinicio
onboarding-manual_proportions-title = Proporciones de cuerpo manuales
onboarding-manual_proportions-precision = Ajuste con precisión
onboarding-manual_proportions-auto = Calibración automática
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Volver al tutorial de reinicio
onboarding-automatic_proportions-title = Mide tu cuerpo
onboarding-automatic_proportions-description = Para que los sensores de SlimeVR funcionen, necesitamos saber el largo de tus huesos. Esta breve calibración los medirá por ti.
@@ -657,11 +523,10 @@ onboarding-automatic_proportions-recording-steps-3 = Gira tu torso hacia la dere
onboarding-automatic_proportions-recording-steps-4 = Menea tu cuerpo hasta que el tiempo se acabe.
onboarding-automatic_proportions-recording-processing = Procesando el resultado
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] falta 1 segundo
*[other] faltan { $time } segundos
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] falta 1 segundo
*[other] faltan { $time } segundos
}
onboarding-automatic_proportions-verify_results-title = Verificando resultados
onboarding-automatic_proportions-verify_results-description = Comprueba abajo los resultados, ¿Parecen correctos?
onboarding-automatic_proportions-verify_results-results = Grabando resultados
@@ -672,5 +537,4 @@ onboarding-automatic_proportions-done-title = Cuerpo medido y guardado.
onboarding-automatic_proportions-done-description = ¡La calibración de tus proporciones corporales fue completada!
## Home
home-no_trackers = No hay sensores detectados o asignados

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Serveriga ühendamine
websocket-connection_lost = Ühendus serveriga on kaotatud. Ühenduse taastamine...
## Tips
tips-find_tracker = Ei ole kindel milline jälgija on mis? Raputage jälgijat ja vaadake milline jälgija tõstetakse esile.
tips-do_not_move_heels = Veenduge, et teie kannad ei liigu salvestamise ajal!
## Body parts
body_part-NONE = Määramata
body_part-HEAD = Pea
body_part-NECK = Kael
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = Vasak jalg
body_part-LEFT_CONTROLLER = Vasak kontroller
## Proportions
skeleton_bone-NONE = Mitte midagi
skeleton_bone-HEAD = Pea Nihe
skeleton_bone-NECK = Kaela Pikkus
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = Kontrolleri Kaugus Z
skeleton_bone-ELBOW_OFFSET = Küünarnuki Nihe
## Tracker reset buttons
reset-reset_all = Lähtesta kõik proportsioonid
reset-full = Lähtesta
reset-mounting = Lähtesta Paigaldusasend
reset-quick = Kiir Lähtestamine
## Serial detection stuff
serial_detection-new_device-p0 = Uus jadaseade tuvastatud!
serial_detection-new_device-p1 = Sisestage enda Wi-Fi andmed!
serial_detection-new_device-p2 = Palun valige, mida te soovite sellega teha
@@ -85,7 +76,6 @@ serial_detection-submit = Jätka!
serial_detection-close = Sulge
## Navigation bar
navbar-home = Kodu
navbar-body_proportions = Keha Proportsioonid
navbar-trackers_assign = Jälgija Määramine
@@ -94,35 +84,14 @@ navbar-onboarding = Häälestusviisard
navbar-settings = Seaded
## Bounding volume hierarchy recording
bvh-start_recording = Salvesta BVH
bvh-recording = Salvestamine...
## Widget: Overlay settings
widget-overlay = Ülekate
## Overlay settings
widget-overlay-is_visible_label = Näita Ülekatet SteamVR-is
widget-overlay-is_mirrored_label = Näita Ülekatet Peeglina
## Widget: Developer settings
widget-developer_mode = Arendaja režiim
widget-developer_mode-high_contrast = Kõrge kontrastsus
widget-developer_mode-precise_rotation = Täpne pööre
widget-developer_mode-fast_data_feed = Kiire andmevoog
widget-developer_mode-filter_slimes_and_hmd = Filtreerige slimid ja HMD-d
widget-developer_mode-sort_by_name = Sorteeri nime järgi
widget-developer_mode-raw_slime_rotation = Toores pööre
widget-developer_mode-more_info = Rohkem infot
## Widget: IMU Visualizer
widget-imu_visualizer = Rotatsiooni
widget-imu_visualizer-rotation_raw = Toores
widget-imu_visualizer-rotation_preview = Eelvaade
## Tracker status
tracker-status-none = Staatuseta
tracker-status-busy = Hõivatud
tracker-status-error = Viga
@@ -131,34 +100,27 @@ tracker-status-occluded = Jälgija kadunud
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Nimi
tracker-table-column-type = Tüüp
tracker-table-column-battery = Patarei
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Pööre X/Y/Z
tracker-table-column-position = Positsioon X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Ees
tracker-rotation-left = Vasak
tracker-rotation-right = Parem
tracker-rotation-back = Taga
## Tracker information
tracker-infos-manufacturer = Tootja
tracker-infos-display_name = Kuvatav Nimi
tracker-infos-custom_name = Kohandatud Nimi
tracker-infos-url = Jälgija URL
## Tracker settings
tracker-settings-back = Minge tagasi jälgija loendise
tracker-settings-title = Jälgija Seaded
tracker-settings-assignment_section = Jälgija asukoha määramine
@@ -173,16 +135,14 @@ tracker-settings-drift_compensation_section-edit = Allow drift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Jälgija Nimi
tracker-settings-name_section-description = Anna talle armas hüüdnimi :)
tracker-settings-name_section-placeholder = NightyBeast-i vasak käsi
tracker-settings-name_section-description = Anna talle armas hüüdnimi :)
## Tracker part card info
tracker-part_card-no_name = Nimi puudub
tracker-part_card-unassigned = Määramata
## Body assignment menu
body_assignment_menu = Kus te soovite, et jälgija oleks?
body_assignment_menu-description = Vali asukoht kuhu te soovite, et jälgija määratakse. Alternatiivina saate te hallata kõiki jälgijaid korraga mitte ükshaaval.
body_assignment_menu-show_advanced_locations = Kuva täpsem määramise asukoht
@@ -190,7 +150,6 @@ body_assignment_menu-manage_trackers = Halda kõiki jälgijaid
body_assignment_menu-unassign_tracker = Tühista jälgija määramine
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -219,17 +178,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } vasakule rei
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } vasakule säärele?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } vasakule jalale?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } vasakule kontrollerile?
tracker_selection_menu-unassigned = Määramata Jälgijad
tracker_selection_menu-assigned = Määratud Jälgijad
tracker_selection_menu-dont_assign = Ära määra jälgijat
## Mounting menu
mounting_selection_menu = Kus te soovite, et see jälgija paikneks?
mounting_selection_menu-close = Sulge
## Sidebar settings
settings-sidebar-title = Seaded
settings-sidebar-general = Tavaline
settings-sidebar-tracker_mechanics = Jälgija mehaanika
@@ -241,7 +199,6 @@ settings-sidebar-utils = Olemus / Lisad
settings-sidebar-serial = Jadakonsool
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR jälgijad
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -259,7 +216,6 @@ settings-general-steamvr-trackers-elbows = Küünarnukid
settings-general-steamvr-trackers-hands = Käed
## Tracker mechanics
settings-general-tracker_mechanics = Jälgija mehaanika
settings-general-tracker_mechanics-filtering = Filtreerimine
# This also cares about multilines
@@ -284,7 +240,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Compensatio
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
## FK/Tracking settings
settings-general-fk_settings = Jälgija seaded
settings-general-fk_settings-leg_tweak = Jälgija näpunäiteid
settings-general-fk_settings-leg_tweak-description = Põranda läbimine saab vähendada või isegi elimineerida jalgade positsiooni läbimist põrandaga, võib põhjustada probleeme põlvedega. Libisemise korrigeerimine korregeerib jalgade libisemist liikudes, aga võib vähendada täpsust teatud liikumiste puhul.
@@ -301,6 +256,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Libisemise ko
settings-general-fk_settings-arm_fk = Käe jälgimine
settings-general-fk_settings-arm_fk-description = Muuda viisi kuidas käsi jälgitakse.
settings-general-fk_settings-arm_fk-force_arms = Sunni käed HMD-st
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Skeletti seaded
settings-general-fk_settings-skeleton_settings-description = Lülita skeletti seaded sisse või välja. Soovitatud on see sisse jätta.
settings-general-fk_settings-skeleton_settings-extended_spine = Selgroo laiendamine
@@ -311,17 +267,15 @@ settings-general-fk_settings-vive_emulation-description = Emuleeri vöökoha jä
settings-general-fk_settings-vive_emulation-label = Luba Vive-i emulatsioon
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Žesti juhtimine
settings-general-gesture_control-subtitle = Puudutusepõhised lähtestused
settings-general-gesture_control-description = Lubab lähtestada jälgija puudutades jälgijat. Jälgija kere kõige kõrgemal osal kasutatakse kiireks lähtestamiseks, jälgija vasaku jala kõige kõrgemal osal kasutatakse lähtestamiseks ja jälgija parema jala kõige kõrgemal osal kasutatakse paigalduse lähtestamiseks. Vajutused peavad toimuma 0.6 sekundi jooksul, et need registreeritaks.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Luba, et vajutus kiir lähtestab
settings-general-gesture_control-quickResetDelay = Kiir lähtestamise viivitus
settings-general-gesture_control-quickResetTaps = Kiir lähtestamis vajutus
@@ -333,7 +287,6 @@ settings-general-gesture_control-mountingResetDelay = Paigaldusasendi lähtestam
settings-general-gesture_control-mountingResetTaps = Paigaldusasendi lähtestamise vajutus
## Interface settings
settings-general-interface = Liides
settings-general-interface-dev_mode = Arendaja režiim
settings-general-interface-dev_mode-description = See režiim on kasulik, kui on vaja põhjalike andmeid või või suhelda ühendatud jälgijatega kõrgemal tasemel.
@@ -346,7 +299,6 @@ settings-general-interface-lang-description = Muutke vaikekeelt, mida soovite ka
settings-general-interface-lang-placeholder = Vali keel, mida kasutada
## Serial settings
settings-serial = Jadakonsool
# This cares about multilines
settings-serial-description =
@@ -360,7 +312,6 @@ settings-serial-serial_select = Valige jadaport
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC ruuter
# This cares about multilines
settings-osc-router-description =
@@ -385,7 +336,6 @@ settings-osc-router-network-address-description = Lisage võrgu aadress kuhu saa
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 =
@@ -414,13 +364,11 @@ settings-osc-vrchat-network-trackers-feet = Jalad
settings-osc-vrchat-network-trackers-elbows = Küünarnukid
## Setup/onboarding menu
onboarding-skip = Jäta seadistamine vahele
onboarding-continue = Jätka
onboarding-wip = Töö käib
## Wi-Fi setup
onboarding-wifi_creds-back = Mine tagasi juhistele
onboarding-wifi_creds = Sisestage enda Wi-Fi andmed!
# This cares about multilines
@@ -437,13 +385,11 @@ onboarding-wifi_creds-password =
.placeholder = Sisesta parool
## Mounting setup
onboarding-reset_tutorial-back = Minge tagasi paigaldus kalibreerimisse
onboarding-reset_tutorial = Lähtesta õpetus
onboarding-reset_tutorial-description = See funktsioon pole valmis, vajutage lihtsalt nuppu Jätka
## Setup start
onboarding-home = Tere tulemast SlimeVR-i
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -452,20 +398,17 @@ onboarding-home-description =
onboarding-home-start = Hakkame sättima!
## Enter VR part of setup
onboarding-enter_vr-back = Minge tagasi jälgijate määramisse
onboarding-enter_vr-title = Aeg minna VR-i!
onboarding-enter_vr-description = Pange selga kõik jälgijad ja VR prillid.
onboarding-enter_vr-ready = Olen valmis
## Setup done
onboarding-done-title = Kõik on valmis!
onboarding-done-description = Nautige enda kogu keha jälgimis kogemust
onboarding-done-close = Sulgege juhend
## Tracker connection setup
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-
@@ -482,32 +425,28 @@ onboarding-connect_tracker-connection_status-handshake = Ühendatud serveriga
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Mitte ühtegi jälgijat ühendatud
[one] 1 jälgija
*[other] { $amount } jälgijat
} connected
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] Mitte ühtegi jälgijat ühendatud
[one] 1 jälgija
*[other] { $amount } jälgijat
} connected
onboarding-connect_tracker-next = Olen ühendanud kõik oma jälgijad
## Tracker assignment setup
onboarding-assign_trackers-back = Minge tagasi Wi-Fi andmetesse
onboarding-assign_trackers-title = Määrake jälgijad asukoht
onboarding-assign_trackers-description = Valime mis jälgijad lähevad kuhu. Vajutage asukohale kuhu te tahate, et jälgija läheks.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 jälgija
*[other] { $trackers } jälgijat
} assigned
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 jälgija
*[other] { $trackers } jälgijat
} assigned
onboarding-assign_trackers-advanced = Kuva täpsemad määramiskohad
onboarding-assign_trackers-next = Määrasin kõikide jälgijate asukohad
## Tracker manual mounting setup
onboarding-manual_mounting-back = Minge tagasi, et siseneda VR-i
onboarding-manual_mounting = Käsitsi paigaldamine
onboarding-manual_mounting-description = Vajutage iga jälgija peale ja valige, kuidas see on paigaldatud
@@ -515,7 +454,6 @@ onboarding-manual_mounting-auto_mounting = Automaatne paigaldamine
onboarding-manual_mounting-next = Järgmine Samm
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Minge tagasi, et siseneda VR-i
onboarding-automatic_mounting-title = Paigaldamis kalibreerimine
onboarding-automatic_mounting-description = Et SlimeVR jälgijad töötaksid peame me nendele seadistama paigaldamise pöörde, et need joondada teie füüsilise jälgijate paigaldusega.
@@ -536,14 +474,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Et kalibreerida jäl
onboarding-automatic_mounting-put_trackers_on-next = Mul on kõik jälgijad küljes
## Tracker manual proportions setup
onboarding-manual_proportions-back = Mine tagasi lähtestamise õppetusse
onboarding-manual_proportions-title = Käsitsi keha proportsioonid
onboarding-manual_proportions-precision = Täpne reguleerimine
onboarding-manual_proportions-auto = Automaatne kalibreerimine
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Mine tagasi lähtestamise õppetusse
onboarding-automatic_proportions-title = Mõõtke oma keha
onboarding-automatic_proportions-description = Et SlimeVR jälgijad töötaks peame me teadma teie kontide pikkust. See lühike kalibreerimine mõõdab selle teie jaoks.
@@ -568,11 +504,10 @@ onboarding-automatic_proportions-recording-steps-3 = Keerake ülakeha paremale,
onboarding-automatic_proportions-recording-steps-4 = Liigutage ringi, kuni taimer lõpeb.
onboarding-automatic_proportions-recording-processing = Tulemuse töötlemine
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 sekund
*[other] { $time } sekundit
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 sekund
*[other] { $time } sekundit
}
onboarding-automatic_proportions-verify_results-title = Kontrollige tulemust
onboarding-automatic_proportions-verify_results-description = Kontrollige tulemust all, kas kõik näeb välja korrektne?
onboarding-automatic_proportions-verify_results-results = Salvestame tulemused
@@ -583,5 +518,4 @@ onboarding-automatic_proportions-done-title = Kere mõõdetud ja salvestatud.
onboarding-automatic_proportions-done-description = Teie keha proportsioonid kalibreerimine on valmis!
## Home
home-no_trackers = Jälgijaid ei tuvastatud ega määratud

View File

@@ -1,487 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Yhdistetään palvelimeen
websocket-connection_lost = Yhteys epäonnistui. Yritetään uudelleen...
## Tips
tips-find_tracker = Epävarma, mikä jäljitin on mikä? Ravista jäljitintä ja se korostaa vastaavan kohdan.
tips-do_not_move_heels = Varmista, että kantapääsi ei liiku tallennuksen aikana!
## Body parts
body_part-NONE = Ei määritetty
body_part-HEAD = Pää
body_part-NECK = Kaula
body_part-RIGHT_SHOULDER = Oikea olkapää
body_part-RIGHT_UPPER_ARM = Oikea olkavarsi
body_part-RIGHT_LOWER_ARM = Oikea kyynärvarsi
body_part-RIGHT_HAND = Oikea käsi
body_part-RIGHT_UPPER_LEG = Oikea reisi
body_part-RIGHT_LOWER_LEG = Oikea nilkka
body_part-RIGHT_FOOT = Oikea jalkaterä
body_part-RIGHT_CONTROLLER = Oikea ohjain
body_part-CHEST = Rinta
body_part-WAIST = Vyötärö
body_part-HIP = Lonkka
body_part-LEFT_SHOULDER = Vasen olkapää
body_part-LEFT_UPPER_ARM = Vasen olkavarsi
body_part-LEFT_LOWER_ARM = Vasen kyynärvarsi
body_part-LEFT_HAND = Vasen käsi
body_part-LEFT_UPPER_LEG = Vasen reisi
body_part-LEFT_LOWER_LEG = Vasen nilkka
body_part-LEFT_FOOT = Vasen jalkaterä
body_part-LEFT_CONTROLLER = Vasen ohjain
## Proportions
skeleton_bone-NONE = Ei mikään
skeleton_bone-HEAD = Pään säätö
skeleton_bone-NECK = Kaulan pituus
skeleton_bone-CHEST = Rinnan pituus
skeleton_bone-CHEST_OFFSET = Rinnan keskitys
skeleton_bone-WAIST = Vyötärön pituus
skeleton_bone-HIP = Lonkan pituus
skeleton_bone-HIP_OFFSET = Lonkan keskitys
skeleton_bone-HIPS_WIDTH = Lonkan leveys
skeleton_bone-UPPER_LEG = Yläjalan pituus
skeleton_bone-LOWER_LEG = Säären pituus
skeleton_bone-FOOT_LENGTH = Jalkaterän pituus
skeleton_bone-FOOT_SHIFT = Jalkaterän säätö
skeleton_bone-SKELETON_OFFSET = Luurangon keskitys
skeleton_bone-SHOULDERS_DISTANCE = Olkapäiden etäisyys
skeleton_bone-SHOULDERS_WIDTH = Olkapäiden leveys
skeleton_bone-UPPER_ARM = Olkavarren pituus
skeleton_bone-LOWER_ARM = Kyynärvarren pituus
skeleton_bone-CONTROLLER_Y = Ohjaimen Etäisyys Y
skeleton_bone-CONTROLLER_Z = Ohjaimen Etäisyys Z
skeleton_bone-ELBOW_OFFSET = Kyynärpään keskitys
## Tracker reset buttons
reset-reset_all = Nollaa kaikki mittasuhteet
reset-full = Nollaa
reset-mounting = Nollaa Asennus
reset-quick = Pikanollaus
## Serial detection stuff
serial_detection-new_device-p0 = Uusi sarjalaite havaittu!
serial_detection-new_device-p1 = Anna Wi-Fi-kirjautumistietosi!
serial_detection-new_device-p2 = Valitse, mitä haluat tehdä sillä
serial_detection-open_wifi = Yhdistä Wi-Fi-verkkoon
serial_detection-open_serial = Avaa sarjakonsoli
serial_detection-submit = Lähetä!
serial_detection-close = Sulje
## Navigation bar
navbar-home = Aloitus
navbar-body_proportions = Kehon Mittasuhteet
navbar-trackers_assign = Jäljittimien Määritys
navbar-mounting = Asennuksen Kalibrointi
navbar-onboarding = Asennustoiminto
navbar-settings = Asetukset
## Bounding volume hierarchy recording
bvh-start_recording = Tallenna BVH
bvh-recording = Tallennetaan...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Näytä Overlay SteamVR:ssä
widget-overlay-is_mirrored_label = Näytä Overlay Peilinä
## Widget: Drift compensation
widget-drift_compensation-clear = Tyhjennä ajautumakompensaatio
## Widget: Developer settings
widget-developer_mode = Kehittäjätila
widget-developer_mode-high_contrast = Suuri kontrasti
widget-developer_mode-precise_rotation = Tarkka kierto
widget-developer_mode-fast_data_feed = Nopea tietosyöte
widget-developer_mode-filter_slimes_and_hmd = Suodata slimesit ja HMD
widget-developer_mode-sort_by_name = Lajittele nimen mukaan
widget-developer_mode-raw_slime_rotation = Käsittelemätön kierto
widget-developer_mode-more_info = Lisätietoja
## Widget: IMU Visualizer
widget-imu_visualizer = Kierto
widget-imu_visualizer-rotation_raw = Käsittelemätön
widget-imu_visualizer-rotation_preview = Esikatselu
## Tracker status
tracker-status-none = Ei tilaa
tracker-status-busy = Varattu
tracker-status-error = Virhe
tracker-status-disconnected = Katkaistu
tracker-status-occluded = Peittynyt
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Nimi
tracker-table-column-type = Tyyppi
tracker-table-column-battery = Akkuvirta
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Lämpötila °C
tracker-table-column-linear-acceleration = Kiihtyvyys X/Y/Z
tracker-table-column-rotation = Kierto X/Y/Z
tracker-table-column-position = Sijainti X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Etu
tracker-rotation-left = Vasen
tracker-rotation-right = Oikea
tracker-rotation-back = Taka
## Tracker information
tracker-infos-manufacturer = Valmistaja
tracker-infos-display_name = Näyttönimi
tracker-infos-custom_name = Mukautettu Nimi
tracker-infos-url = Jäljittimen URL
## Tracker settings
tracker-settings-back = Palaa jäljittimien luetteloon
tracker-settings-title = Jäljittimien asetukset
tracker-settings-assignment_section = Määritys
tracker-settings-assignment_section-description = Mihin kehon osaan jäljitin on määritetty.
tracker-settings-assignment_section-edit = Muokkaa määritystä
tracker-settings-mounting_section = Asennusasento
tracker-settings-mounting_section-description = Mihin jäljitin on asennettu?
tracker-settings-mounting_section-edit = Muokkaa asennusta
tracker-settings-drift_compensation_section = Salli ajautumakompensaatio
tracker-settings-drift_compensation_section-description = Pitäisikö tämän jäljittimen kompensoida ajautumaa, jos ajautumakompensaatio on päällä?
tracker-settings-drift_compensation_section-edit = Salli ajautumakompensaatio
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Jäljittimen nimi
tracker-settings-name_section-description = Anna sille söpö lempinimi :)
tracker-settings-name_section-placeholder = NightyBeast vasen jalka
## Tracker part card info
tracker-part_card-no_name = Ei nimeä
tracker-part_card-unassigned = Ei määritetty
## Body assignment menu
body_assignment_menu = Missä haluat tämän jäljittimen olevan?
body_assignment_menu-description = Valitse sijainti, johon haluat määrittää tämän jäljittimen. Vaihtoehtoisesti voit valita, haluatko hallita kaikkia jäljittimiä kerralla yhden sijaan.
body_assignment_menu-show_advanced_locations = Näytä tarkempia määrityssijainteja
body_assignment_menu-manage_trackers = Hallitse kaikkia jäljittimiä
body_assignment_menu-unassign_tracker = Poista jäljittimen määritys
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Minkä jäljittimen valitset
tracker_selection_menu-NONE = Minkä jäljittimen määrityksen haluat poistaa?
tracker_selection_menu-unassigned = Määrittämättömät jäljittimet
tracker_selection_menu-assigned = Määritetyt jäljittimet
tracker_selection_menu-dont_assign = Älä määritä
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Varoitus:</b> Kaulan jäljitin voi olla tappava jos säädetty liian tiukasti,
hihna voi katkaista verenkierron päähän!
tracker_selection_menu-neck_warning-done = Ymmärrän riskit
tracker_selection_menu-neck_warning-cancel = Peruuta
## Mounting menu
mounting_selection_menu = Missä haluat tämän jäljittimen olevan?
mounting_selection_menu-close = Sulje
## Sidebar settings
settings-sidebar-title = Asetukset
settings-sidebar-general = Yleistä
settings-sidebar-tracker_mechanics = Jäljittimen mekaniikat
settings-sidebar-fk_settings = Jäljityksen asetukset
settings-sidebar-gesture_control = Eleohjaus
settings-sidebar-interface = Käyttöliittymä
settings-sidebar-osc_router = OSC-reititin
settings-sidebar-utils = Lisäohjelmat
settings-sidebar-serial = Sarjakonsoli
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR jäljittimet
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Ota tai poista käytöstä tietyt SteamVR jäljittimet.
Hyödyllinen peleille tai sovelluksille, jotka tukevat vain tiettyjä jäljittimiä.
settings-general-steamvr-trackers-waist = Vyötärö
settings-general-steamvr-trackers-chest = Rinta
settings-general-steamvr-trackers-feet = Jalat
settings-general-steamvr-trackers-knees = Polvet
settings-general-steamvr-trackers-elbows = Kyynärpäät
settings-general-steamvr-trackers-hands = Kädet
## Tracker mechanics
settings-general-tracker_mechanics = Jäljittimen mekaniikat
settings-general-tracker_mechanics-filtering = Suodatus
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Valitse suodatustyyppi jäljittimillesi.
Ennustus ennustaa liikettä, kun taas tasoitus tasoittaa liikettä.
settings-general-tracker_mechanics-filtering-type = Suodatustyyppi
settings-general-tracker_mechanics-filtering-type-none = Ei suodatusta
settings-general-tracker_mechanics-filtering-type-none-description = Käytä kiertoja sellaisenaan. Ei tee mitään suodatusta.
settings-general-tracker_mechanics-filtering-type-smoothing = Tasoitus
settings-general-tracker_mechanics-filtering-type-smoothing-description = Tasoittaa liikettä, mutta lisää hieman viivettä.
settings-general-tracker_mechanics-filtering-type-prediction = Ennustus
settings-general-tracker_mechanics-filtering-type-prediction-description = Vähentää viivettä ja tekee liikeistä näppärämpiä, mutta voi lisätä värinää.
settings-general-tracker_mechanics-filtering-amount = Määrä
settings-general-tracker_mechanics-drift_compensation = Ajautumakompensaatio
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompensoi IMU-kääntymistä käyttämällä käänteistä kiertoa.
Muuta kompensaation määrää ja kuinka monta nollausta otetaan huomioon.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Ajautumakompensaatio
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompensaation määrä
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Käytä enintään x viimeistä nollausta
## FK/Tracking settings
settings-general-fk_settings = Jäljityksen asetukset
settings-general-fk_settings-leg_tweak = Jalkojen säätöjä
settings-general-fk_settings-leg_tweak-description = Floor-clip voi vähentää tai jopa täysin estää jalan läpikulkua lattiasta, mutta voi aiheuttaa ongelmia kun olet polvillasi. Skating-correction ehkäisee luistelumaista liikettä, mutta voi heikentää tiettyjen liikekuvioiden tarkkuutta.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Floor clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating correction vahvuus
settings-general-fk_settings-arm_fk = Käsivarsien jäljitys
settings-general-fk_settings-arm_fk-description = Muuta tapaa, jolla käsivarsia jäljitetään.
settings-general-fk_settings-arm_fk-force_arms = Pakota kädet HMD:ltä
settings-general-fk_settings-skeleton_settings = Luurangon asetukset
settings-general-fk_settings-skeleton_settings-description = Ota tai poista käytöstä luurankoasetukset. On suositeltavaa jättää nämä päälle.
settings-general-fk_settings-skeleton_settings-extended_spine = Laajennettu selkäranka
settings-general-fk_settings-skeleton_settings-extended_pelvis = Laajennettu lantioluu
settings-general-fk_settings-skeleton_settings-extended_knees = Laajennettu polvi
settings-general-fk_settings-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)
settings-general-gesture_control = Eleohjaus
settings-general-gesture_control-subtitle = Napautuspohjaiset nollaukset
settings-general-gesture_control-description = Mahdollistaa nollauksen napauttamalla jäljitintä. Ylävartalon korkeinta jäljitintä käytetään Pikanollaukseen. Vasemman jalan korkeinta jäljitintä käytetään Nollaukseen, vastaavaisesti oikean jalan korkeinta jäljitintä käytetään Asennusnollaukseen. On syytä mainita, että napautusten on tapahduttava 0.6 sekunnin sisällä, jotta ne rekisteröityvät.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 napautus
*[other] { $amount } napautusta
}
settings-general-gesture_control-quickResetEnabled = Ota käyttöön pikanollaus napautus
settings-general-gesture_control-quickResetDelay = Pikanollaus viive
settings-general-gesture_control-quickResetTaps = Napautuksia pikanollaukseen
settings-general-gesture_control-resetEnabled = Ota käyttöön nollaus napautus
settings-general-gesture_control-resetDelay = Nollaus viive
settings-general-gesture_control-resetTaps = Napautuksia nollaukseen
settings-general-gesture_control-mountingResetEnabled = Ota käyttöön asennusnollaus napautus
settings-general-gesture_control-mountingResetDelay = Asennusnollaus viive
settings-general-gesture_control-mountingResetTaps = Napautuksia asennusnollaukseen
## Interface settings
settings-general-interface = Käyttöliittymä
settings-general-interface-dev_mode = Kehittäjätila
settings-general-interface-dev_mode-description = Tämä tila voi olla hyödyllinen, jos tarvitset perusteellisia tietoja tai haluat olla tekemisissä yhdistettyjen jäljittimien kanssa edistyneemmällä tasolla.
settings-general-interface-dev_mode-label = Kehittäjätila
settings-general-interface-serial_detection = Sarjalaitteen tunnistus
settings-general-interface-serial_detection-description = Tämä vaihtoehto näyttää ponnahdusikkunan aina, kun liität uuden sarjalaitteen, joka voi olla jäljitin. Se auttaa parantamaan jäljittimen asennusprosessia.
settings-general-interface-serial_detection-label = Sarjalaitteen tunnistus
settings-general-interface-lang = Valitse kieli
settings-general-interface-lang-description = Vaihda oletuskieli, jota haluat käyttää.
settings-general-interface-lang-placeholder = Valitse käytettävä kieli
## Serial settings
settings-serial = Sarjakonsoli
# This cares about multilines
settings-serial-description =
Tämä on reaaliaikainen tietosyöte sarjaviestintää varten.
Voi olla hyödyllistä, jos sinun on tiedettävä, että laiteohjelmisto toimii.
settings-serial-connection_lost = Yhteys sarjaan kadonnut, yhdistetään uudelleen...
settings-serial-reboot = Käynnistä uudelleen
settings-serial-factory_reset = Tehdasasetusten palautus
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Varoitus:</b> Tämä palauttaa jäljittimen tehdasasetuksille.
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.
## OSC router settings
settings-osc-router = OSC-reititin
# This cares about multilines
settings-osc-router-description =
Välitä OSC-viestit toisesta ohjelmasta.
Hyödyllinen toisen OSC-ohjelman käyttämiseen esimerkiksi VRChatin kanssa.
settings-osc-router-enable = Käytä
settings-osc-router-enable-description = Vaihda viestien edelleenlähetystä.
settings-osc-router-enable-label = Käytä
settings-osc-router-network = Verkkoportit
# This cares about multilines
settings-osc-router-network-description =
Aseta portit tietojen kuuntelua ja lähettämistä varten.
Nämä voivat olla samat kuin muut SlimeVR-palvelimessa käytetyt portit.
settings-osc-router-network-port_in =
.label = Portti sisään
.placeholder = Portti sisään (oletus: 9002)
settings-osc-router-network-port_out =
.label = Portti ulos
.placeholder = Portti ulos (oletus: 9000)
settings-osc-router-network-address = Verkon osoite
settings-osc-router-network-address-description = Määritä osoite, johon tiedot lähetetään.
settings-osc-router-network-address-placeholder = IPV4-osoite
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC -jäljittimet
# This cares about multilines
settings-osc-vrchat-description =
Muuta VRChat-kohtaisia asetuksia vastaanottamaan HMD-dataa ja
lähettämään jäljitindataa FBT:tä varten (toimii Quest-standalone:ssa).
settings-osc-vrchat-enable = Käytä
settings-osc-vrchat-enable-description = Vaihda tietojen lähettäminen ja vastaanottaminen.
settings-osc-vrchat-enable-label = Käytä
settings-osc-vrchat-network = Verkkoportit
settings-osc-vrchat-network-description = Aseta portit kuuntelua ja tietojen lähettämistä varten VRChatiin.
settings-osc-vrchat-network-port_in =
.label = Portti sisään
.placeholder = Portti sisään (oletus: 9001)
settings-osc-vrchat-network-port_out =
.label = Portti ulos
.placeholder = Portti ulos (oletus: 9000)
settings-osc-vrchat-network-address = Verkon osoite
settings-osc-vrchat-network-address-description = Valitse, mikä osoite lähettää tietoja VRChatiin (tarkista laitteesi Wi-Fi-asetukset).
settings-osc-vrchat-network-address-placeholder = VRChat IP-osoite
settings-osc-vrchat-network-trackers = Jäljittimet
settings-osc-vrchat-network-trackers-description = Vaihda tiettyjen jäljittimien lähettäminen OSC:n kautta.
settings-osc-vrchat-network-trackers-chest = Rinta
settings-osc-vrchat-network-trackers-waist = Vyötärö
settings-osc-vrchat-network-trackers-knees = Polvet
settings-osc-vrchat-network-trackers-feet = Jalat
settings-osc-vrchat-network-trackers-elbows = Kyynärpäät
## Setup/onboarding menu
onboarding-skip = Ohita asennus
onboarding-continue = Jatka
onboarding-wip = Keskeneräinen
## Wi-Fi setup
onboarding-wifi_creds-back = Palaa esittelyyn
onboarding-wifi_creds = Syötä Wi-Fi-tunnistetiedot
# This cares about multilines
onboarding-wifi_creds-description =
Jäljittimet käyttävät näitä tunnistetietoja langattomaan yhteyden muodostamiseen.
Käytä tunnistetietoja, joihin olet tällä hetkellä yhteydessä.
onboarding-wifi_creds-skip = Ohita Wi-Fi-asetukset
onboarding-wifi_creds-submit = Lähetä!
onboarding-wifi_creds-ssid =
.label = Wi-Fi nimi
.placeholder = Syötä Wi-Fi nimi
onboarding-wifi_creds-password =
.label = Salasana
.placeholder = Syötä salasana
## Mounting setup
onboarding-reset_tutorial-back = Palaa asennuksen kalibrointiin
onboarding-reset_tutorial = Nollaa tutoriaali
onboarding-reset_tutorial-description = Tämä ominaisuus ei ole valmis, paina vain Jatka
## Setup start
onboarding-home = Tervetuloa SlimeVR:ään
# This cares about multilines and it's centered!!
onboarding-home-description =
Tuomme kaikille
täysikehojäljityksen
onboarding-home-start = Mennään asentamaan!
## Enter VR part of setup
onboarding-enter_vr-back = Palaa jäljittimien määritykseen
onboarding-enter_vr-title = Aika astua VR:ään!
onboarding-enter_vr-description = Laita kaikki jäljittimet päälle ja astu VR:ään!
onboarding-enter_vr-ready = Olen valmis
## Setup done
onboarding-done-title = Olet valmis!
onboarding-done-description = Nauti täysikehojäljityksestäsi
onboarding-done-close = Sulje opas
## Tracker connection setup
onboarding-connect_tracker-back = Palaa Wi-Fi-tunnistetietoihin
onboarding-connect_tracker-title = Yhdistä jäljittimet
onboarding-connect_tracker-description-p0 = Nyt hauskaan osaan, kaikkien jäljittimien yhdistämiseen!
onboarding-connect_tracker-description-p1 = Yhdistä vain kaikki, joita ei ole vielä yhdistetty, USB-portin kautta.
## Tracker assignment setup
## Tracker manual mounting setup
## Tracker automatic mounting setup
## Tracker manual proportions setup
## Tracker automatic proportions setup
## Home

View File

@@ -1,26 +1,20 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Connexion au serveur..
websocket-connection_lost = Connexion avec le serveur perdue. Reconnexion...
## Tips
tips-find_tracker = Impossible de différencier vos capteurs? Secouez-en un pour qu'il soit mis en évidence.
tips-do_not_move_heels = Assurez-vous de ne pas bouger vos pieds pendant la calibration!
## Body parts
body_part-NONE = Non-attribué
body_part-NONE = Non-assigné
body_part-HEAD = Tête
body_part-NECK = Cou
body_part-RIGHT_SHOULDER = Épaule droite
@@ -30,6 +24,7 @@ body_part-RIGHT_HAND = Main droite
body_part-RIGHT_UPPER_LEG = Cuisse droite
body_part-RIGHT_LOWER_LEG = Cheville droite
body_part-RIGHT_FOOT = Pied droit
body_part-RIGHT_CONTROLLER = Right controller
body_part-CHEST = Poitrine
body_part-WAIST = Taille
body_part-HIP = Hanche
@@ -40,9 +35,9 @@ body_part-LEFT_HAND = Main gauche
body_part-LEFT_UPPER_LEG = Cuisse gauche
body_part-LEFT_LOWER_LEG = Cheville gauche
body_part-LEFT_FOOT = Pied gauche
body_part-LEFT_CONTROLLER = Left controller
## Proportions
skeleton_bone-NONE = Aucun
skeleton_bone-HEAD = Décalage de la tête
skeleton_bone-NECK = Longueur du cou
@@ -61,19 +56,17 @@ skeleton_bone-SHOULDERS_DISTANCE = Distance des épaules
skeleton_bone-SHOULDERS_WIDTH = Largeur des épaules
skeleton_bone-UPPER_ARM = Longueur des bras supérieurs
skeleton_bone-LOWER_ARM = Longueur des avant-bras
skeleton_bone-HAND_Y = Distance Y des mains
skeleton_bone-HAND_Z = Distance Z des mains
skeleton_bone-CONTROLLER_Y = Distance Y des contrôleurs
skeleton_bone-CONTROLLER_Z = Distance Z des contrôleurs
skeleton_bone-ELBOW_OFFSET = Écart des coudes
## Tracker reset buttons
reset-reset_all = Réinitialiser toutes les proportions
reset-full = Réinitialiser
reset-mounting = Réinitialiser l'alignement
reset-quick = Réinitialisation rapide
## Serial detection stuff
serial_detection-new_device-p0 = Nouveau périphérique détecté!
serial_detection-new_device-p1 = Entrez vos identifiants Wi-Fi!
serial_detection-new_device-p2 = Veuillez sélectionner quoi en faire
@@ -83,31 +76,23 @@ serial_detection-submit = Soumettre!
serial_detection-close = Fermer
## Navigation bar
navbar-home = Accueil
navbar-body_proportions = Proportions du corps
navbar-trackers_assign = Attribution des capteurs
navbar-trackers_assign = Asignement des capteurs
navbar-mounting = Alignement des capteurs
navbar-onboarding = Assistant de configuration
navbar-settings = Réglages
## Bounding volume hierarchy recording
bvh-start_recording = Enregistrer BVH
bvh-recording = Enregistrement...
## Widget: Overlay settings
widget-overlay = Squelette
widget-overlay-is_visible_label = Superposer le squelette dans SteamVR
widget-overlay-is_mirrored_label = Afficher le squelette en tant que miroir
## Widget: Drift compensation
widget-drift_compensation-clear = Remise à zéro de la compensation de la dérive
## Widget: Developer settings
widget-developer_mode = Mode développeur
widget-developer_mode-high_contrast = Contraste élevé
widget-developer_mode-precise_rotation = Rotation précise
@@ -118,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = Rotation brute
widget-developer_mode-more_info = Plus d'informations
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Brute
widget-imu_visualizer-rotation_preview = Aperçu
## Tracker status
tracker-status-none = Pas de statut
tracker-status-busy = Occupé
tracker-status-error = Erreur
@@ -133,7 +116,6 @@ tracker-status-occluded = Obstrué
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Nom
tracker-table-column-type = Type
tracker-table-column-battery = Batterie
@@ -146,26 +128,23 @@ tracker-table-column-position = Position X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Avant
tracker-rotation-left = Gauche
tracker-rotation-right = Droite
tracker-rotation-back = Arrière
## Tracker information
tracker-infos-manufacturer = Fabricant
tracker-infos-display_name = Nom
tracker-infos-custom_name = Nom personnalisé
tracker-infos-url = URL
## Tracker settings
tracker-settings-back = Retour à la liste des capteurs
tracker-settings-title = Paramètres du capteur
tracker-settings-assignment_section = Attribution du capteur
tracker-settings-assignment_section-description = À quelle partie du corps le capteur est attribué.
tracker-settings-assignment_section-edit = Ré-attribuer
tracker-settings-assignment_section = Assignement du capteur
tracker-settings-assignment_section-description = À quelle partie du corps le capteur est assigné.
tracker-settings-assignment_section-edit = Ré-assigner
tracker-settings-mounting_section = Orientation du capteur
tracker-settings-mounting_section-description = Dans quelle direction pointe le capteur?
tracker-settings-mounting_section-edit = Changer l'orientation
@@ -179,66 +158,55 @@ tracker-settings-name_section-description = Donnez-lui un joli surnom :3
tracker-settings-name_section-placeholder = Patte gauche d'Erimel
## Tracker part card info
tracker-part_card-no_name = Sans nom
tracker-part_card-unassigned = Non-attribué
tracker-part_card-unassigned = Non attribué
## Body assignment menu
body_assignment_menu = Où attribuer ce capteur?
body_assignment_menu-description = Choisissez où attribuer ce capteur. Vous pouvez également gérer tous les capteurs à la fois au lieu d'un à la fois.
body_assignment_menu = Où assigner ce capteur?
body_assignment_menu-description = Choisissez l'endroit où assigner ce capteur. Vous pouvez également gérer tous les capteurs à la fois.
body_assignment_menu-show_advanced_locations = Afficher les emplacements d'attribution avancés
body_assignment_menu-manage_trackers = Gérer tous les capteurs
body_assignment_menu-unassign_tracker = Désattribuer
body_assignment_menu-unassign_tracker = Désassigner
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Quel capteur à attribuer à votre
tracker_selection_menu-NONE = Quel capteur voulez-vous désattribuer?
tracker_selection_menu-HEAD = { -tracker_selection-part } tête?
tracker_selection_menu-NECK = { -tracker_selection-part } cou?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } épaule droite?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } bras droit?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } avant-bras droit?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } main droite?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } cuisse droite?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } cheville droite?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } pied droit?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } manette droite?
tracker_selection_menu-CHEST = { -tracker_selection-part } poitrine?
tracker_selection_menu-WAIST = { -tracker_selection-part } taille?
tracker_selection_menu-HIP = { -tracker_selection-part } hanche?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } épaule gauche?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } bras gauche?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } avant-bras gauche?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } main gauche?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } cuisse gauche?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } cheville gauche?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } pied gauche?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } manette gauche?
tracker_selection_menu-unassigned = Capteurs non-attribués
tracker_selection_menu-assigned = Capteurs attribués
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Which tracker do you want to be unassigned?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } neck?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } right shoulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } right hand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } right thigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } right ankle?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } right foot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } right controller?
tracker_selection_menu-CHEST = { -tracker_selection-part } chest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waist?
tracker_selection_menu-HIP = { -tracker_selection-part } hip?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } left shoulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } left hand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = Capteurs non assignés
tracker_selection_menu-assigned = Capteurs assignés
tracker_selection_menu-dont_assign = Ne pas attribuer
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Attention:</b> Un capteur au cou peut être mortel s'il est trop serré,
la sangle pourrait couper la circulation à la tête!
tracker_selection_menu-neck_warning-done = Je suis conscient des risques
tracker_selection_menu-neck_warning-cancel = Annuler
## Mounting menu
mounting_selection_menu = Dans quelle direction pointe ce capteur?
mounting_selection_menu-close = Fermer
## Sidebar settings
settings-sidebar-title = Réglages
settings-sidebar-general = Général
settings-sidebar-tracker_mechanics = Paramètres des capteurs
@@ -250,7 +218,6 @@ settings-sidebar-utils = Utilitaires
settings-sidebar-serial = Console série
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Capteurs SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -268,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Coudes
settings-general-steamvr-trackers-hands = Mains
## Tracker mechanics
settings-general-tracker_mechanics = Paramètres des capteurs
settings-general-tracker_mechanics-filtering = Filtrage
# This also cares about multilines
@@ -293,7 +259,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Force de la
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Nombre de réinitialisations prises en compte
## FK/Tracking settings
settings-general-fk_settings = Paramètres de la capture
settings-general-fk_settings-leg_tweak = Ajustement des jambes
settings-general-fk_settings-leg_tweak-description = Le limitage au sol empêche vos pieds de traverser le sol, mais peut causer des problèmes lorsque vous êtes à genoux. La correction du glissement réduit le glissement, mais peut réduire la précision de certains mouvements.
@@ -310,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Force de la c
settings-general-fk_settings-arm_fk = Capture des bras
settings-general-fk_settings-arm_fk-description = Changez la façon dont les bras sont captés.
settings-general-fk_settings-arm_fk-force_arms = Forcer les bras en provenance du casque VR
settings-general-fk_settings-arm_fk-i_pose = Utiliser la i-pose au lieu de la t-pose
settings-general-fk_settings-skeleton_settings = Paramètres du squelette
settings-general-fk_settings-skeleton_settings-description = Activez ou désactivez des paramètres avancés de capture.
settings-general-fk_settings-skeleton_settings-extended_spine = Colone vertébrale avancée
@@ -320,17 +286,15 @@ settings-general-fk_settings-vive_emulation-description = Emulate the waist trac
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Contrôle gestuel
settings-general-gesture_control-subtitle = Double tape pour réinitialisation rapide
settings-general-gesture_control-description = Permet de déclencher des réinitialisations en tapant un capteur. Le capteur le plus haut sur votre torse est utilisé pour la réinitialisation rapide, le capteur le plus haut sur votre jambe gauche est utilisé pour la réinitialisation, et le capteur le plus haut sur votre jambe droite est utilisé pour la réinitialisation de l'alignement. Les tapes doivent être enchainées en moins de 0,6 seconde pour être pris en compte.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Taper pour réinitialisation rapide
settings-general-gesture_control-quickResetDelay = Délai de réinitialisation rapide
settings-general-gesture_control-quickResetTaps = Tapes pour réinitialisation rapide
@@ -342,7 +306,6 @@ settings-general-gesture_control-mountingResetDelay = Délai de réinitialisatio
settings-general-gesture_control-mountingResetTaps = Tapes pour la réinitialisation de l'alignement
## Interface settings
settings-general-interface = Interface
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é.
@@ -355,7 +318,6 @@ settings-general-interface-lang-description = Choisir la langue par défaut.
settings-general-interface-lang-placeholder = Choisissez la langue
## Serial settings
settings-serial = Console série
# This cares about multilines
settings-serial-description =
@@ -364,19 +326,11 @@ settings-serial-description =
settings-serial-connection_lost = Connexion à l'appareil perdue, reconnexion...
settings-serial-reboot = Redémarrer
settings-serial-factory_reset = Remise à zéro
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Attention:</b> Cela réinitialisera les paramètres du capteur à zéro.
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
## OSC router settings
settings-osc-router = Routeur OSC
# This cares about multilines
settings-osc-router-description =
@@ -401,7 +355,6 @@ settings-osc-router-network-address-description = Choisissez l'adresse vers laqu
settings-osc-router-network-address-placeholder = Adresse IPv4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -430,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = Pieds
settings-osc-vrchat-network-trackers-elbows = Coudes
## Setup/onboarding menu
onboarding-skip = Passer
onboarding-continue = Continuer
onboarding-wip = Pas encore implémenté
## Wi-Fi setup
onboarding-wifi_creds-back = Retour à l'introduction
onboarding-wifi_creds = Saisir les identifiants Wi-Fi
# This cares about multilines
@@ -453,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Mot de passe
## Mounting setup
onboarding-reset_tutorial-back = Retourner à l'alignement des capteurs
onboarding-reset_tutorial = Didacticiel de réinitialisation
onboarding-reset_tutorial-description = Cette fonctionnalité n'est pas encore terminée, appuyez simplement sur continuer
## Setup start
onboarding-home = Bienvenue sur SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -468,133 +417,55 @@ onboarding-home-description =
onboarding-home-start = Commencer!
## Enter VR part of setup
onboarding-enter_vr-back = Revenir à l'attribution des capteurs
onboarding-enter_vr-title = Il est temps d'entrer en réalité virtuelle!
onboarding-enter_vr-description = Enfilez tous vos capteurs puis entrez en réalité virtuelle!
onboarding-enter_vr-ready = je suis prêt!
## Setup done
onboarding-done-title = Vous êtes prêt!
onboarding-done-description = Amusez-vous bien :)
onboarding-done-close = Fermer le guide
## Tracker connection setup
onboarding-connect_tracker-back = Revenir aux informations d'identification Wi-Fi
onboarding-connect_tracker-title = Connecter les capteurs
onboarding-connect_tracker-description-p0 = Passons maintenant à la partie amusante, en connectant tous les capteurs!
onboarding-connect_tracker-description-p1 = Connectez chaque capteur qui n'est pas encore connecté via un port USB.
onboarding-connect_tracker-issue-serial = J'ai du mal à me connecter!
onboarding-connect_tracker-usb = Capteur USB
onboarding-connect_tracker-connection_status-none = Recherche de capteurs
onboarding-connect_tracker-connection_status-serial_init = Connexion au périphérique en série
onboarding-connect_tracker-connection_status-provisioning = Envoi des identifiants Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Envoi d'identifiants Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Recherche du serveur
onboarding-connect_tracker-connection_status-connection_error = Impossible de se connecter au réseau
onboarding-connect_tracker-connection_status-could_not_find_server = Impossible de trouver le serveur
onboarding-connect_tracker-connection_status-done = Connecté au serveur
onboarding-connect_tracker-connection_status-connected = Connecté au Wi-Fi
onboarding-connect_tracker-connection_status-error = Impossible de se connecter au réseau
onboarding-connect_tracker-connection_status-start_connecting = Recherche de capteurs
onboarding-connect_tracker-connection_status-handshake = Connecté au serveur
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = J'ai connecté tous mes capteurs
## Tracker assignment setup
onboarding-assign_trackers-back = Revenir aux identifiants Wi-Fi
onboarding-assign_trackers-title = Attribuer des capteurs
onboarding-assign_trackers-description = Choisissons où mettre chaque capteur.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[one] { $assigned } sur 1 capteur attribué
*[other] { $assigned } sur { $trackers } capteurs attribués
}
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Afficher les emplacements d'attribution avancés
onboarding-assign_trackers-next = J'ai attribué tous mes capteurs
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Le pied gauche est attribué mais il faut que la cheville gauche, la cuisse gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] Le pied gauche est attribué mais il faut que la cuisse gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[2] Le pied gauche est attribué mais il faut que la cheville gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[3] Le pied gauche est attribué mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[4] Le pied gauche est attribué mais il faut que la cheville gauche et la cuisse gauche soient également attribuées!
[5] Le pied gauche est attribué mais il faut que la cuisse gauche le soit également!
[6] Le pied gauche est attribué mais il faut que la cheville gauche le soit également!
*[unknown] Le pied gauche est attribué mais il faut qu'une autre partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Le pied droit est attribué mais il faut que la cheville droite, la cuisse droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] Le pied droit est assigné mais il faut que la cuisse droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[2] Le pied droit est assigné mais il faut que la cheville droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[3] Le pied droit est attribué mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[4] Le pied droit est attribué mais il faut que la cheville droite et la cuisse droite soient également attribuées!
[5] Le pied droit est attribué mais il faut que la cuisse droite le soit également!
[6] Le pied droit est attribué mais il faut que la cheville droite le soit également!
*[unknown] Le pied droit est assigné mais il faut qu'une autre partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] La cheville gauche est attribuée mais il faut que la cuisse gauche et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] La cheville gauche est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[2] La cheville gauche est attribuée mais il faut que la cuisse gauche soit également attribuée!
*[unknown] La cheville gauche est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] La cheville droite est attribuée mais il faut que la cuisse droite et soit la poitrine, la hanche ou la taille soient également attribuées!
[1] La cheville droite est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
[2] La cheville droite est attribuée mais il faut que la cuisse droite soit également attribuée !
*[unknown] La cheville droite est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] La cuisse gauche est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
*[unknown] La cuisse gauche est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] La cuisse droite est attribuée mais il faut que la poitrine, la hanche ou la taille soient également attribuées!
*[unknown] La cuisse droite est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] La hanche est attribuée mais il faut que la poitrine le soit aussi!
*[unknown] La hanche est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] La taille est attribuée mais il faut que la poitrine le soit aussi!
*[unknown] La taille est attribuée mais il faut qu'une partie du corps inconnue non assignée soit également attribuée!
}
onboarding-assign_trackers-next = J'ai assigné tous mes capteurs
## Tracker manual mounting setup
onboarding-manual_mounting-back = Retournez à entrer dans la réalité virtuelle
onboarding-manual_mounting = Alignement manuel
onboarding-manual_mounting-description = Cliquez sur chaque capteur et sélectionnez la manière dont ils sont orientés
@@ -602,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = Détection automatique
onboarding-manual_mounting-next = Prochaine étape
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Retournez à entrer dans la réalité virtuelle
onboarding-automatic_mounting-title = Calibration de l'alignement des capteurs
onboarding-automatic_mounting-description = Pour que vos capteurs SlimeVR fonctionnent, nous devons attribuer une rotation à vos capteurs pour les aligner avec la rotation réelle de ces derniers.
@@ -619,25 +489,23 @@ onboarding-automatic_mounting-preparation-title = Préparation
onboarding-automatic_mounting-preparation-step-0 = 1. Tenez-vous debout avec vos bras à vos côtés.
onboarding-automatic_mounting-preparation-step-1 = 2. Appuyez sur le bouton "Réinitialiser" et attendez 3 secondes avant que les capteurs ne se réinitialisent.
onboarding-automatic_mounting-put_trackers_on-title = Enfilez vos capteurs
onboarding-automatic_mounting-put_trackers_on-description = Pour calibrer l'alignement, nous allons utiliser les capteurs que vous venez d'attribuer.
onboarding-automatic_mounting-put_trackers_on-description = Pour calibrer l'alignement, nous allons utiliser les capteurs que vous venez d'affecter.
onboarding-automatic_mounting-put_trackers_on-next = J'ai tous mes capteurs
## Tracker manual proportions setup
onboarding-manual_proportions-back = Revenir au didacticiel de réinitialisation
onboarding-manual_proportions-title = Proportions manuelles du corps
onboarding-manual_proportions-precision = Ajustement de précision
onboarding-manual_proportions-auto = Calibration automatique
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Revenir au didacticiel de réinitialisation
onboarding-automatic_proportions-title = Calibration des proportions du corps
onboarding-automatic_proportions-description = Pour que les capteurs SlimeVR fonctionnent, nous devons connaître la longueur de vos os.
onboarding-automatic_proportions-manual = Calibration manuelle
onboarding-automatic_proportions-prev_step = Étape précédente
onboarding-automatic_proportions-put_trackers_on-title = Enfilez vos capteurs
onboarding-automatic_proportions-put_trackers_on-description = Pour calibrer vos proportions, nous allons utiliser les capteurs que vous venez d'attribuer.
onboarding-automatic_proportions-put_trackers_on-description = Pour calibrer vos proportions, nous allons utiliser les capteurs que vous venez d'assigner.
onboarding-automatic_proportions-put_trackers_on-next = J'ai tous mes capteurs
onboarding-automatic_proportions-preparation-title = Préparation
onboarding-automatic_proportions-preparation-description = Placez une chaise directement derrière vous dans votre espace de jeu.
@@ -650,25 +518,23 @@ onboarding-automatic_proportions-recording-description-p0 = Enregistrement en co
onboarding-automatic_proportions-recording-description-p1 = Effectuez les mouvements indiqués ci-dessous:
onboarding-automatic_proportions-recording-steps-0 = Pliez les genoux plusieurs fois.
onboarding-automatic_proportions-recording-steps-1 = Asseyez-vous sur une chaise puis levez-vous.
onboarding-automatic_proportions-recording-steps-2 = Tournez le haut du corps vers la gauche, puis penchez vous vers la droite.
onboarding-automatic_proportions-recording-steps-3 = Tournez le haut du corps vers la droite, puis penchez vous vers la gauche.
onboarding-automatic_proportions-recording-steps-2 = Tournez le haut du corps vers la gauche, puis panchez vers la droite.
onboarding-automatic_proportions-recording-steps-3 = Tournez le haut du corps vers la droite, puis panchez vers la gauche.
onboarding-automatic_proportions-recording-steps-4 = Remuez jusqu'à ce que la minuterie se termine.
onboarding-automatic_proportions-recording-processing = Traitement du résultat
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 secondes restantes
*[other] { $time } secondes restantes
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Vérifier les résultats
onboarding-automatic_proportions-verify_results-description = Les résultats ci-dessous vous semblent-ils corrects?
onboarding-automatic_proportions-verify_results-results = Enregistrement des résultats
onboarding-automatic_proportions-verify_results-processing = Traitement du résultat
onboarding-automatic_proportions-verify_results-redo = Refaire l'enregistrement
onboarding-automatic_proportions-verify_results-confirm = Les résultats sont corrects
onboarding-automatic_proportions-verify_results-confirm = Les resultats sont corrects
onboarding-automatic_proportions-done-title = Calibration terminée
onboarding-automatic_proportions-done-description = Votre calibration est terminée!
## Home
home-no_trackers = Aucun capteur détecté ou attribué

View File

@@ -1,311 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = מתחבר לשרת
websocket-connection_lost = החיבור לשרת אבד. מנסה להתחבר מחדש
## Tips
tips-find_tracker = לא בטוח איזה חיישן אתה מחזיק? נער את החיישן והתוכנה תסמן לך אותו.
tips-do_not_move_heels = אנא וודא שהעקבים שלך לא זזות בזמן הקלטה
## Body parts
body_part-NONE = לא שויך
body_part-HEAD = ראש
body_part-NECK = צוואר
body_part-RIGHT_SHOULDER = כתף ימין
body_part-RIGHT_UPPER_ARM = זרוע עליונה ימנית
body_part-RIGHT_LOWER_ARM = זרוע תחתונה ימנית
body_part-RIGHT_HAND = יד ימין
body_part-RIGHT_UPPER_LEG = ירך ימין
body_part-RIGHT_LOWER_LEG = קרסול ימין
body_part-RIGHT_FOOT = רגל ימין
body_part-RIGHT_CONTROLLER = בקר ימני
body_part-CHEST = חזה
body_part-WAIST = מותניים
body_part-HIP = ירך
body_part-LEFT_SHOULDER = כתף שמאל
body_part-LEFT_UPPER_ARM = זרוע עליונה שמאלית
body_part-LEFT_LOWER_ARM = זרוע תחתונה שמאלית
body_part-LEFT_HAND = יד שמאל
body_part-LEFT_UPPER_LEG = ירך שמאל
body_part-LEFT_LOWER_LEG = קרסול שמאל
body_part-LEFT_FOOT = רגל שמאל
body_part-LEFT_CONTROLLER = בקר שמאלי
## Proportions
skeleton_bone-NONE = לא נבחר
skeleton_bone-NECK = אורך צוואר
skeleton_bone-CHEST = אורך החזה
skeleton_bone-WAIST = אורך המותניים
skeleton_bone-HIP = אורך הירך
skeleton_bone-HIPS_WIDTH = רוחב הירכיים
skeleton_bone-UPPER_LEG = אורך הרגל העליונה
skeleton_bone-LOWER_LEG = אורך רגל תחתון
skeleton_bone-FOOT_LENGTH = אורך כף הרגל
skeleton_bone-SHOULDERS_DISTANCE = מרחק כתפיים
skeleton_bone-SHOULDERS_WIDTH = רוחב כתפיים
skeleton_bone-UPPER_ARM = אורך זרוע עליונה
skeleton_bone-LOWER_ARM = אורך זרוע תחתונה
skeleton_bone-CONTROLLER_Y = מרחק בקר ציר Y
skeleton_bone-CONTROLLER_Z = מרחק בקר ציר Z
## Tracker reset buttons
reset-reset_all = איפוס כל הפרופורציות
reset-full = איפוס
reset-mounting = איפוס הרכבה
reset-quick = איפוס מהיר
## Serial detection stuff
serial_detection-new_device-p0 = זוהה מכשיר סידורי חדש!
serial_detection-new_device-p1 = הכנס את פרטי הWi-Fi שלך!
serial_detection-new_device-p2 = בחר בבקשה מה אתה רוצה לעשות עם זה
serial_detection-open_wifi = מתחבר לWi-Fi
serial_detection-open_serial = פתח טרמינל סידרתי
serial_detection-submit = שלח!
serial_detection-close = סגור
## Navigation bar
navbar-home = בית
navbar-body_proportions = פרופורציות גוף
navbar-trackers_assign = שיוך חיישנים
navbar-mounting = כיול ההרכבה
navbar-onboarding = אשף ההגדרה
navbar-settings = הגדרות
## Bounding volume hierarchy recording
bvh-start_recording = הקלטת BVH
bvh-recording = מקליט...
## Widget: Overlay settings
widget-overlay = ממשק Overlay
widget-overlay-is_visible_label = הצג Overlay ב-SteamVR
widget-overlay-is_mirrored_label = הצג Overlay כהעתק
## Widget: Drift compensation
## Widget: Developer settings
widget-developer_mode = מצב מפתח
widget-developer_mode-high_contrast = ניגודיות גבוהה
widget-developer_mode-fast_data_feed = פיד נתונים מהיר
widget-developer_mode-filter_slimes_and_hmd = סנן slimes וHMD
widget-developer_mode-sort_by_name = מיון לפי שם
widget-developer_mode-more_info = הצג עוד מידע
## Widget: IMU Visualizer
widget-imu_visualizer = סיבוב
widget-imu_visualizer-rotation_preview = תצוגה מקדימה
## Tracker status
tracker-status-none = אין סטטוס
tracker-status-busy = עסוק
tracker-status-error = שגיאה
tracker-status-disconnected = מנותק
tracker-status-occluded = מוסתר
tracker-status-ok = אוקיי
## Tracker status columns
tracker-table-column-name = שם
tracker-table-column-type = סוג
tracker-table-column-battery = סוללה
tracker-table-column-ping = פינג
tracker-table-column-tps = TPS
tracker-table-column-temperature = טמפ' °C
tracker-table-column-linear-acceleration = תאוצה X/Y/Z
tracker-table-column-rotation = סיבוב X/Y/Z
tracker-table-column-position = מיקום X/Y/Z
tracker-table-column-url = כתובת URL
## Tracker rotation
tracker-rotation-front = קדימה
tracker-rotation-left = שמאל
tracker-rotation-right = ימין
tracker-rotation-back = אחורה
## Tracker information
tracker-infos-manufacturer = יצרן
tracker-infos-display_name = שם תצוגה
tracker-infos-custom_name = שם מותאם אישית
## Tracker settings
tracker-settings-assignment_section = שיוך
tracker-settings-assignment_section-description = לאיזה חלק בגוף החיישן משויך.
tracker-settings-assignment_section-edit = ערוך שיוך
tracker-settings-mounting_section = מיקום הרכבה
tracker-settings-mounting_section-edit = עריכת הרכבה
tracker-settings-name_section-description = תן לו כינוי חמוד :)
tracker-settings-name_section-placeholder = רגל שמאלית של NightyBeast
## Tracker part card info
tracker-part_card-no_name = אין שם
tracker-part_card-unassigned = לא הוקצה
## Body assignment menu
body_assignment_menu-show_advanced_locations = הצג מיקומים להקצאה מתקדמים
## Tracker assignment menu
tracker_selection_menu-HEAD = { -tracker_selection-part } ראש?
tracker_selection_menu-NECK = { -tracker_selection-part } צוואר?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } כתף ימין?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } זרוע עליונה ימנית?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } זרוע תחתונה ימנית?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } יד ימין?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } ירך ימין?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } קרסול ימין?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } רגל ימין?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } בקר ימין?
tracker_selection_menu-CHEST = { -tracker_selection-part } חזה?
tracker_selection_menu-WAIST = { -tracker_selection-part } מותניים?
tracker_selection_menu-HIP = { -tracker_selection-part } ירכיים?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } כתף שמאל?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } זרוע עליונה שמאלית?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } זרוע תחתונה שמאלית?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } יד שמאל?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } ירך שמאל?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } קרסול שמאל?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } רגל שמאל?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } בקר שמאלי?
tracker_selection_menu-dont_assign = אל תקצה
tracker_selection_menu-neck_warning-done = אני מבין את הסיכונים
tracker_selection_menu-neck_warning-cancel = ביטול
## Mounting menu
mounting_selection_menu-close = סגור
## Sidebar settings
settings-sidebar-title = הגדרות
settings-sidebar-general = כללי
settings-sidebar-interface = ממשק
settings-sidebar-osc_router = נתב OSC
settings-sidebar-utils = כלי שירות
settings-sidebar-serial = טרמינל סידרתי
## SteamVR settings
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
settings-general-tracker_mechanics-filtering = סינון
settings-general-tracker_mechanics-filtering-type = סוג סינון
settings-general-tracker_mechanics-filtering-type-none = ללא סינון
settings-general-tracker_mechanics-filtering-type-none-description = השתמש בערכי סיבוב כפי שהם. לא יעשה שום סינון.
settings-general-tracker_mechanics-filtering-type-smoothing = החלקה
settings-general-tracker_mechanics-filtering-type-smoothing-description = מחליק את התנועות אך מוסיף השהיה מסויימת.
settings-general-tracker_mechanics-filtering-type-prediction = חיזוי
settings-general-tracker_mechanics-filtering-type-prediction-description = מפחית את ההשהיה ומפיק תנועות הדוקות , אך עלול להגביר את הריצוד.
settings-general-tracker_mechanics-filtering-amount = כמות
settings-general-tracker_mechanics-drift_compensation = פיצוי סחף
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
מפצה על סחף ציר הYaw בIMU על ידי החלת סיבוב הפוך.
שנה את כמות הפיצוי ועד כמה איפוסים ילקחו בחשבון.
settings-general-tracker_mechanics-drift_compensation-enabled-label = פיצוי סחף
settings-general-tracker_mechanics-drift_compensation-amount-label = כמות הפיצוי
settings-general-tracker_mechanics-drift_compensation-max_resets-label = שימוש בעד x איפוסים אחרונים
## FK/Tracking settings
## Gesture control settings (tracker tapping)
## Interface settings
## Serial settings
## OSC router settings
## OSC VRChat settings
## Setup/onboarding menu
## Wi-Fi setup
## Mounting setup
## Setup start
## Enter VR part of setup
## Setup done
## Tracker connection setup
## Tracker assignment setup
## Tracker assignment warnings
## Tracker manual mounting setup
## Tracker automatic mounting setup
## Tracker manual proportions setup
## Tracker automatic proportions setup
onboarding-automatic_proportions-recording-steps-4 = זוז במקום עד שהספירה תסתיים
onboarding-automatic_proportions-recording-processing = מעבד את התוצאה
onboarding-automatic_proportions-verify_results-title = אמת את התוצאות
onboarding-automatic_proportions-verify_results-description = אנא בדוק את התוצאות, האם התוצאות נראות נכון?
onboarding-automatic_proportions-verify_results-results = תוצאות הקלטה
onboarding-automatic_proportions-verify_results-processing = מעבד את התוצאה
onboarding-automatic_proportions-verify_results-redo = הקלט מחדש
onboarding-automatic_proportions-verify_results-confirm = הם נכונים
onboarding-automatic_proportions-done-title = הגוף שלך נמדד ונשמר
onboarding-automatic_proportions-done-description = תהליך כיול פרופורציות הגוף שלך הושלם!
## Home
home-no_trackers = לא זוהו או הוקצו חיישנים

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Connessione al server in corso
websocket-connection_lost = Connessione con il server persa. Tentativo di riconnessione in corso...
## Tips
tips-find_tracker = Non sei sicurə quale tracker è quale? Agitalo e l'oggetto corrispondente sarà evidenziato.
tips-do_not_move_heels = Assicurati di non muovere i tuoi talloni durante la registrazione!
## Body parts
body_part-NONE = Non assegnato
body_part-HEAD = Testa
body_part-NECK = Collo
@@ -30,10 +24,10 @@ body_part-RIGHT_HAND = Mano destra
body_part-RIGHT_UPPER_LEG = Coscia destra
body_part-RIGHT_LOWER_LEG = Caviglia destra
body_part-RIGHT_FOOT = Piede destro
body_part-RIGHT_CONTROLLER = Controller destro
body_part-RIGHT_CONTROLLER = Right controller
body_part-CHEST = Petto
body_part-WAIST = Girovita
body_part-HIP = Bacino
body_part-HIP = Fianchi
body_part-LEFT_SHOULDER = Spalla sinistra
body_part-LEFT_UPPER_ARM = Braccio sinistro
body_part-LEFT_LOWER_ARM = Avambraccio sinistro
@@ -41,21 +35,20 @@ body_part-LEFT_HAND = Mano sinistra
body_part-LEFT_UPPER_LEG = Coscia sinistra
body_part-LEFT_LOWER_LEG = Caviglia sinistra
body_part-LEFT_FOOT = Piede sinistro
body_part-LEFT_CONTROLLER = Controller sinistro
body_part-LEFT_CONTROLLER = Left controller
## Proportions
skeleton_bone-NONE = Non assegnato
skeleton_bone-HEAD = Correzione Testa
skeleton_bone-NECK = Lunghezza Collo
skeleton_bone-CHEST = Lunghezza del torace
skeleton_bone-CHEST_OFFSET = Correzione Petto
skeleton_bone-WAIST = Giro vita
skeleton_bone-HIP = Lunghezza bacino
skeleton_bone-HIP_OFFSET = Correzione bacino
skeleton_bone-HIPS_WIDTH = Larghezza bacino
skeleton_bone-UPPER_LEG = Lunghezza della parte superiore della gamba
skeleton_bone-LOWER_LEG = Lunghezza della parte inferiore della gamba
skeleton_bone-CHEST = Chest Length
skeleton_bone-CHEST_OFFSET = Chest Offset
skeleton_bone-WAIST = Waist Length
skeleton_bone-HIP = Hip Length
skeleton_bone-HIP_OFFSET = Correzione Fianchi
skeleton_bone-HIPS_WIDTH = Larghezza Fianchi
skeleton_bone-UPPER_LEG = Upper Leg Length
skeleton_bone-LOWER_LEG = Lower Leg Length
skeleton_bone-FOOT_LENGTH = Lunghezza Piedi
skeleton_bone-FOOT_SHIFT = Correzione Piedi
skeleton_bone-SKELETON_OFFSET = Compensazione scheletro
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = Distanza Z Controller
skeleton_bone-ELBOW_OFFSET = Correzione Gomito
## Tracker reset buttons
reset-reset_all = Ripristina tutte le proporzioni
reset-full = Ripristina
reset-mounting = Ripristina posizionamento
reset-quick = Reset veloce
## Serial detection stuff
serial_detection-new_device-p0 = Nuovo dispositivo seriale rilevato!
serial_detection-new_device-p1 = Inserisci le tue credenziali Wi-Fi!
serial_detection-new_device-p2 = Seleziona come utilizzare il tracker, per piacere
@@ -85,7 +76,6 @@ serial_detection-submit = Conferma!
serial_detection-close = Chiudi
## Navigation bar
navbar-home = Home
navbar-body_proportions = Proporzioni del corpo
navbar-trackers_assign = Assegnazione dei tracker
@@ -94,39 +84,30 @@ navbar-onboarding = Installazione guidata
navbar-settings = Impostazioni
## Bounding volume hierarchy recording
bvh-start_recording = Registra BVH
bvh-recording = Registrazione in corso...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostra Overlay in SteamVR
widget-overlay-is_mirrored_label = Includi uno specchio nel Overlay
## Widget: Drift compensation
widget-drift_compensation-clear = Rimuovi compensazione del drift
## Widget: Developer settings
widget-developer_mode = Modalità sviluppatore
widget-developer_mode-high_contrast = Alto contrasto
widget-developer_mode-precise_rotation = Rotazione precisa
widget-developer_mode-fast_data_feed = Alimentazione veloce dei dati
widget-developer_mode-filter_slimes_and_hmd = Filtra slimes e HMD
widget-developer_mode-sort_by_name = Ordina per nome
widget-developer_mode-raw_slime_rotation = Rotazione non processata
widget-developer_mode-more_info = Ulteriori informazioni
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
widget-developer_mode-fast_data_feed = Fast data feed
widget-developer_mode-filter_slimes_and_hmd = Filter slimes and HMD
widget-developer_mode-sort_by_name = Sort by name
widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotazione
widget-imu_visualizer-rotation_raw = Non processato
widget-imu_visualizer-rotation_preview = Anteprima
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Nessuno Stato
tracker-status-busy = Occupato
tracker-status-error = Errore
@@ -135,45 +116,41 @@ tracker-status-occluded = Ostruito
tracker-status-ok = Connesso
## Tracker status columns
tracker-table-column-name = Nome
tracker-table-column-type = Tipologia
tracker-table-column-battery = Batteria
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temperatura °C
tracker-table-column-linear-acceleration = Accellerazione X/Y/Z
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Accel. X/Y/Z
tracker-table-column-rotation = Rotazione X/Y/Z
tracker-table-column-position = Rotazione X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Davanti
tracker-rotation-left = Sinistra
tracker-rotation-right = Destra
tracker-rotation-back = Dietro
## Tracker information
tracker-infos-manufacturer = Produttore
tracker-infos-display_name = Nome da visualizzare
tracker-infos-custom_name = Nome Personalizzato
tracker-infos-url = URL del tracker
## Tracker settings
tracker-settings-back = Torna alla lista dei tracker
tracker-settings-title = Impostazioni del tracker
tracker-settings-assignment_section = Assegnazione
tracker-settings-assignment_section-description = Definisce a che parte del corpo è assegnato il tracker.
tracker-settings-assignment_section-description = Definisce a che paste del corpo è assegnato il tracker.
tracker-settings-assignment_section-edit = Cambia assegnazione
tracker-settings-mounting_section = posizionamento di montaggio
tracker-settings-mounting_section-description = Come è posizionato il tracker?
tracker-settings-mounting_section-description = Come è posizionato il tracker?
tracker-settings-mounting_section-edit = Cambia posizionamento
tracker-settings-drift_compensation_section = Consenti compensazione deriva
tracker-settings-drift_compensation_section-description = Questo tracker dovrebbe compensare per il drift quando la compensazione del drift è abilitata?
tracker-settings-drift_compensation_section-edit = Consenti compensazione del drift
tracker-settings-drift_compensation_section = Allow drift compensation
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Allow drift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nome del tracker
@@ -181,12 +158,10 @@ tracker-settings-name_section-description = Scegli un nomignolo carino :)
tracker-settings-name_section-placeholder = Gamba destra di NightyQueer
## Tracker part card info
tracker-part_card-no_name = Nessun nome
tracker-part_card-unassigned = Non assegnato
## Body assignment menu
body_assignment_menu = Con che parte del corpo vuoi utilizzare il tracker?
body_assignment_menu-description = Scegli una parte del corpo a cui assegnare questo tracker. Alternativamente puoi scegliere di gestire tutti i tracker in una schermata unica invece che singolarmente.
body_assignment_menu-show_advanced_locations = Mostra impostazioni avanzate di Assegnazione
@@ -194,65 +169,55 @@ body_assignment_menu-manage_trackers = Gestisci tutti i tracker
body_assignment_menu-unassign_tracker = Rimuovi assegnazione del tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Quale tracker vuoi che non sia assegnato?
tracker_selection_menu-HEAD = { -tracker_selection-part } testa?
tracker_selection_menu-NECK = { -tracker_selection-part } collo?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } spalla destra?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } braccio superiore destro?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } braccio inferiore destro?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } mano destra?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } coscia destra?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } caviglia destra?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } piede destro?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } controller destro?
tracker_selection_menu-CHEST = { -tracker_selection-part } petto?
tracker_selection_menu-WAIST = { -tracker_selection-part } vita?
tracker_selection_menu-HIP = { -tracker_selection-part } bacino?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } spalla sinistra?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } braccio superiore sinistro?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } braccio inferiore sinistro?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } mano sinistra?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } coscia sinistra?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } caviglia sinistra?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } piede sinistro?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } controller sinistro?
tracker_selection_menu-NONE = Which tracker do you want to be unassigned?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } neck?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } right shoulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } right hand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } right thigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } right ankle?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } right foot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } right controller?
tracker_selection_menu-CHEST = { -tracker_selection-part } chest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waist?
tracker_selection_menu-HIP = { -tracker_selection-part } hip?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } left shoulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } left hand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = Tracker non assegnato
tracker_selection_menu-assigned = Dispositivo assegnato
tracker_selection_menu-dont_assign = Non assegnare
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Avvertimento:</b> Un tracker per il collo può essere mortale se indossato troppo stretto,
Il cinturino potrebbe bloccare la circolazione alla tua testa!
tracker_selection_menu-neck_warning-done = Comprendo il rischo
tracker_selection_menu-neck_warning-cancel = Annulla
## Mounting menu
mounting_selection_menu = Come è posizionato il tracker?
mounting_selection_menu-close = Chiudi
## Sidebar settings
settings-sidebar-title = Impostazioni
settings-sidebar-general = Generali
settings-sidebar-tracker_mechanics = Comportamento del tracker
settings-sidebar-fk_settings = Impostazioni Traking
settings-sidebar-fk_settings = Impostazioni FK
settings-sidebar-gesture_control = Controllo dei gesti
settings-sidebar-interface = Interfaccia
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Strumenti
settings-sidebar-serial = Console seriale
settings-sidebar-serial = Serial console
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Tracker di SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -270,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Gomiti
settings-general-steamvr-trackers-hands = Mani
## Tracker mechanics
settings-general-tracker_mechanics = Comportamento del tracker
settings-general-tracker_mechanics-filtering = Filtro movimenti
# This also cares about multilines
@@ -285,18 +249,17 @@ settings-general-tracker_mechanics-filtering-type-smoothing-description = Attenu
settings-general-tracker_mechanics-filtering-type-prediction = Predizione
settings-general-tracker_mechanics-filtering-type-prediction-description = Riduce ritardo e rende movimenti più istantanei, ma può introdurre tremolio.
settings-general-tracker_mechanics-filtering-amount = Quantità
settings-general-tracker_mechanics-drift_compensation = Compensazione del drift
settings-general-tracker_mechanics-drift_compensation = Drift compensation
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensates IMU yaw drift by applying an inverse rotation.
Change amount of compensation and up to how many resets are taken into account.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensazione del drift
settings-general-tracker_mechanics-drift_compensation-amount-label = Grado di compensazione
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Utilizza fino a x ultimi ripristini
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensation
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
## FK/Tracking settings
settings-general-fk_settings = Impostazioni Tracking
settings-general-fk_settings = Impostazioni FK
settings-general-fk_settings-leg_tweak = Impostazioni Gambe
settings-general-fk_settings-leg_tweak-description = "Compenetrazione pavimento" può ridurre o anche eliminare completamente la compenetrazione con il pavimento, ma può causare problemi quando in ginocchio. "Correzione pattinaggio" corregge l'effetto che fa sembrare che pattini sul ghiaccio, ma può peggiorare la precisione di certi movimenti.
# Floor clip:
@@ -309,42 +272,40 @@ settings-general-fk_settings-leg_tweak-floor_clip = Compenetrazione pavimento
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Correzione pattinaggio
settings-general-fk_settings-leg_tweak-skating_correction-amount = Forza fattore di correzione pattinaggio
settings-general-fk_settings-arm_fk = Tracking Braccia
settings-general-fk_settings-arm_fk = FK Braccia
settings-general-fk_settings-arm_fk-description = Cambia la modalità di tracciamento delle braccia.
settings-general-fk_settings-arm_fk-force_arms = Forza il calcolo della posizione delle braccia a utilizzare il HMD
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Impostazioni scheletro
settings-general-fk_settings-skeleton_settings-description = Abilita o disabilita le impostazioni dello scheletro. É raccomandato lasciare queste impostazioni attive.
settings-general-fk_settings-skeleton_settings-extended_spine = Estensione colonna vertebrale
settings-general-fk_settings-skeleton_settings-extended_pelvis = Estensione bacino
settings-general-fk_settings-skeleton_settings-extended_knees = Estensione ginocchia
settings-general-fk_settings-vive_emulation-title = Imitazione Vive
settings-general-fk_settings-vive_emulation-description = Imita i problemi che hanno i Vive tracker utilizzati sul girovita. Questo è uno scherzo e peggiora il tracciamento.
settings-general-fk_settings-vive_emulation-label = Abilita l'imitazione Vive
settings-general-fk_settings-vive_emulation-title = Vive emulation
settings-general-fk_settings-vive_emulation-description = Emulate the waist tracker problems that Vive trackers have. This is a joke and makes tracking worse.
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Controllo dei gesti
settings-general-gesture_control-subtitle = Reset veloce con il doppio tocco
settings-general-gesture_control-description = Abilita o disabilita il reset veloce con il doppio tocco. Quando attivato, un doppio tocco su una qualsiasi parte del tracker posizionato più in altro lungo il torso abiliterà il reset veloce. "Ritardo" è il ritardo dal momento in cui il gesto è eseguito e il Reset.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tocco
*[other] { $amount } tocchi
}
settings-general-gesture_control-quickResetEnabled = Abilita il tocco per il ripristino rapido
settings-general-gesture_control-quickResetDelay = Ritardo reset rapido
settings-general-gesture_control-quickResetTaps = Tocchi per ripristino rapido
settings-general-gesture_control-resetEnabled = Abilita tocca per ripristinare
settings-general-gesture_control-resetDelay = Ritardo reset
settings-general-gesture_control-resetTaps = Tocchi per resettare
settings-general-gesture_control-mountingResetEnabled = Abilita tocco per ripristinare il montaggio
settings-general-gesture_control-mountingResetDelay = Ritardo ripristino montaggio
settings-general-gesture_control-mountingResetTaps = Tocchi per il ripristino rapido
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Enable tap to quick reset
settings-general-gesture_control-quickResetDelay = Quick reset delay
settings-general-gesture_control-quickResetTaps = Taps for quick reset
settings-general-gesture_control-resetEnabled = Enable tap to reset
settings-general-gesture_control-resetDelay = Reset delay
settings-general-gesture_control-resetTaps = Taps for reset
settings-general-gesture_control-mountingResetEnabled = Enable tap to reset mounting
settings-general-gesture_control-mountingResetDelay = Mounting reset delay
settings-general-gesture_control-mountingResetTaps = Taps for mounting reset
## Interface settings
settings-general-interface = Interfaccia
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.
@@ -357,7 +318,6 @@ settings-general-interface-lang-description = Seleziona la lingua che vuoi utili
settings-general-interface-lang-placeholder = Seleziona la lingua da utilizzare
## Serial settings
settings-serial = Serial Console
# This cares about multilines
settings-serial-description =
@@ -366,19 +326,11 @@ settings-serial-description =
settings-serial-connection_lost = Connessione seriale persa. Riconnessione in corso...
settings-serial-reboot = Riavvia
settings-serial-factory_reset = Ripristino delle impostazioni di fabbrica
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Avvertimento:</b> Questa azione ripristinerà il tracker alle impostazioni di fabbrica.
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
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
@@ -403,7 +355,6 @@ settings-osc-router-network-address-description = Impostare l'indirizzo di rete
settings-osc-router-network-address-placeholder = Indirizzo IPV4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -432,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = Piedi
settings-osc-vrchat-network-trackers-elbows = Gomiti
## Setup/onboarding menu
onboarding-skip = Salta la configurazione
onboarding-continue = Continua
onboarding-wip = Lavori in corso
## Wi-Fi setup
onboarding-wifi_creds-back = Torna all'introduzione
onboarding-wifi_creds = Inserisci credenziali Wi-Fi
# This cares about multilines
@@ -455,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Torna alla calibrazione posizionamento
onboarding-reset_tutorial = Tutorial di ripristino
onboarding-reset_tutorial-description = Questa funzionalità non è completa, premi continua
## Setup start
onboarding-home = Benvenuti a SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -470,133 +417,55 @@ onboarding-home-description =
onboarding-home-start = Prepariamoci!
## Enter VR part of setup
onboarding-enter_vr-back = Torna all'assegnazione dei tracker
onboarding-enter_vr-title = È ora di entrare in VR!
onboarding-enter_vr-description = Indossa tutti i tuoi tracker e entra in VR!
onboarding-enter_vr-ready = Sono prontə!
## Setup done
onboarding-done-title = È tutto pronto!
onboarding-done-description = Goditi la tua esperienza di full-body tracking
onboarding-done-close = Chiudi la guida
## Tracker connection setup
onboarding-connect_tracker-back = Torna alle credenziali Wi-Fi
onboarding-connect_tracker-title = Connetti i tracker
onboarding-connect_tracker-description-p0 = Ora passiamo alla parte divertente, colleghiamo tutti i tracker!
onboarding-connect_tracker-description-p1 = Collega semplicemente tutti i tracker che non sono ancora collegati tramite una porta USB.
onboarding-connect_tracker-issue-serial = Ho problemi con la connessione!
onboarding-connect_tracker-usb = Tracker USB
onboarding-connect_tracker-connection_status-none = Ricerca dei tracker in corso
onboarding-connect_tracker-connection_status-serial_init = Connessione al dispositivo seriale in corso
onboarding-connect_tracker-connection_status-provisioning = Invio credenziali Wi-Fi in corso
onboarding-connect_tracker-connection_status-connecting = Invio credenziali Wi-Fi in corso.
onboarding-connect_tracker-connection_status-looking_for_server = Ricerca del server in corso
onboarding-connect_tracker-connection_status-connection_error = Impossibile connettersi al Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Impossibile trovare il server
onboarding-connect_tracker-connection_status-done = Connesso al Server
onboarding-connect_tracker-connection_status-connected = Connesso al Wi-Fi
onboarding-connect_tracker-connection_status-error = Impossibile connettersi al Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Ricerca dei tracker in corso
onboarding-connect_tracker-connection_status-handshake = Connesso al Server
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = Ho collegato tutti i miei tracker
## Tracker assignment setup
onboarding-assign_trackers-back = Torna alle credenziali Wi-Fi
onboarding-assign_trackers-title = Assegna i tracker
onboarding-assign_trackers-description = Scegliamo quale tracker va dove. Fare clic su una parte del corpo in cui si desidera assegnare un tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Mostra impostazioni avanzate di assegnazione
onboarding-assign_trackers-next = Ho assegnato tutti i miei tracker
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Il piede sinistro è assegnato, ma anche la coscia sinistra e la caviglia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] Il piede sinistro è assegnato, ma anche la coscia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] Il piede sinistro è assegnato, ma anche la caviglia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[3] Il piede sinistro è assegnato, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[4] Il piede sinistro è assegnato, ma anche la coscia sinistra e la caviglia destra devono avere un tracker assegnato!
[5] Il piede sinistro è assegnato, ma anche la coscia sinistra deve avere un tracker assegnato!
[6] Il piede sinistro è assegnato, ma anche la caviglia sinistra deve avere un tracker assegnato!
*[unknown] Il piede sinistro è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Il piede destro è assegnato, ma anche la coscia destra e la caviglia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] Il piede destro è assegnato, ma anche la coscia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] Il piede destro è assegnato, ma anche la caviglia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[3] Il piede destro è assegnato, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[4] Il piede destro è assegnato, ma anche la coscia destra e la caviglia destra devono avere un tracker assegnato!
[5] Il piede destro è assegnato, ma anche la coscia destra deve avere un tracker assegnato!
[6] Il piede destro è assegnato, ma anche la caviglia destra deve avere un tracker assegnato!
*[unknown] Il piede destro è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] La caviglia sinistra è assegnata, ma anche la coscia sinistra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] La caviglia sinistra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] La caviglia sinistra è assegnata, ma anche la coscia sinistra deve avere un tracker assegnato!
*[unknown] La caviglia sinistra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] La caviglia destra è assegnata, ma anche la coscia destra e almeno uno tra il petto o il bacino o il girovita devono avere un tracker assegnato!
[1] La caviglia destra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
[2] La caviglia destra è assegnata, ma anche la coscia destra deve avere un tracker assegnato!
*[unknown] La caviglia destra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] La coscia sinistra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
*[unknown] La coscia sinistra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] La coscia destra è assegnata, ma anche il petto o il bacino o il girovita devono avere un tracker assegnato!
*[unknown] La coscia destra è assegnata, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Il bacino è assegnato, ma anche il petto deve avere un tracker assegnato!
*[unknown] Il bacino è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Il girovita è assegnato, ma anche il petto deve avere un tracker assegnato!
*[unknown] Il girovita è assegnato, ma una parte del corpo sconosciuta non ha un tracker assegnato!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Torna indietro per entrare in VR
onboarding-manual_mounting = Posizionamento manuale
onboarding-manual_mounting-description = Fare clic su ogni tracker e selezionare in che direzione sono montati
@@ -604,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = Posizionamento automatico
onboarding-manual_mounting-next = Passo successivo
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Torna indietro per entrare in VR
onboarding-automatic_mounting-title = Calibrazione posizionamento
onboarding-automatic_mounting-description = Affinché i tracker di SlimeVR funzionino, dobbiamo configurare una rotazione di posizione di montaggio ai tuoi tracker per allinearli con la posizione di montaggio del tuo tracker fisico.
@@ -625,14 +493,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Per calibrare le rot
onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei tracker
## Tracker manual proportions setup
onboarding-manual_proportions-back = Torna al tutorial di reset
onboarding-manual_proportions-title = Impostazione manuale delle proporzioni del corpo
onboarding-manual_proportions-precision = Regolazione di precisione
onboarding-manual_proportions-auto = Calibrazione automatica
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Torna al tutorial di reset
onboarding-automatic_proportions-title = Misura il tuo corpo
onboarding-automatic_proportions-description = Affinché i tracker di SlimeVR funzionino dobbiamo conoscere la lunghezza dei tuoi arti. Questa breve calibrazione le misurerà per te.
@@ -657,11 +523,10 @@ onboarding-automatic_proportions-recording-steps-3 = Ruota la parte superiore de
onboarding-automatic_proportions-recording-steps-4 = Muoviti un poco fino allo scadere del timer.
onboarding-automatic_proportions-recording-processing = Elaborazione del risultato
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Verifica i risultati
onboarding-automatic_proportions-verify_results-description = Controlla i risultati qui sotto, sembrano corretti?
onboarding-automatic_proportions-verify_results-results = Salvataggio dei risultati
@@ -672,5 +537,4 @@ onboarding-automatic_proportions-done-title = Corpo misurato e salvato.
onboarding-automatic_proportions-done-description = La calibrazione delle proporzioni del tuo corpo è completa!
## Home
home-no_trackers = Nessun tracker rilevato o assegnato

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = サーバー接続中
websocket-connection_lost = サーバーへの接続が失われました。再接続を試みています...
## Tips
tips-find_tracker = どのトラッカーがどれだかわからない?トラッカーを振ると、該当する項目がハイライトされます。
tips-do_not_move_heels = レコーディング中にかかとが動かないように注意しましょう!
## Body parts
body_part-NONE = 未設定
body_part-HEAD = 頭
body_part-NECK = 首
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = 左足先
body_part-LEFT_CONTROLLER = 左コントローラ
## Proportions
skeleton_bone-NONE = 無し
skeleton_bone-HEAD = ヘッドシフト
skeleton_bone-NECK = 首長さ
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = コントローラ距離 Z
skeleton_bone-ELBOW_OFFSET = 肘オフセット
## Tracker reset buttons
reset-reset_all = すべてのプロポーションをリセット
reset-full = リセット
reset-mounting = リセットマウンティング
reset-quick = クイックリセット
## Serial detection stuff
serial_detection-new_device-p0 = 新しいシリアルデバイスを検出しました!
serial_detection-new_device-p1 = Wi-Fiの認証情報を入力してください
serial_detection-new_device-p2 = 何をするか選択してください
@@ -85,7 +76,6 @@ serial_detection-submit = 実行!
serial_detection-close = 閉じる
## Navigation bar
navbar-home = ホーム
navbar-body_proportions = ボディプロポーション
navbar-trackers_assign = トラッカー割り当て
@@ -94,18 +84,15 @@ navbar-onboarding = セットアップ ウィザード
navbar-settings = 設定
## Bounding volume hierarchy recording
bvh-start_recording = BVHレコーディング
bvh-recording = レコーディング中...
## Widget: Overlay settings
widget-overlay = オーバーレイ設定
widget-overlay-is_visible_label = SteamVRでオーバーレイを表示する
widget-overlay-is_mirrored_label = オーバーレイをミラーとして表示する
## Widget: Developer settings
widget-developer_mode = 開発者モード
widget-developer_mode-high_contrast = ハイ コントラスト
widget-developer_mode-precise_rotation = 正確な回転角度を表示
@@ -116,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = 元の回転角度
widget-developer_mode-more_info = 他情報
## Widget: IMU Visualizer
widget-imu_visualizer = 回転
widget-imu_visualizer-rotation_raw = 生
widget-imu_visualizer-rotation_preview = 生
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = プレビュー
## Tracker status
tracker-status-none = ステータスなし
tracker-status-busy = Busy
tracker-status-error = エラー
@@ -131,7 +116,6 @@ tracker-status-occluded = Occluded
tracker-status-ok = 接続中
## Tracker status columns
tracker-table-column-name = Name
tracker-table-column-type = Type
tracker-table-column-battery = バッテリー
@@ -144,21 +128,18 @@ tracker-table-column-position = 位置 X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 後
## Tracker information
tracker-infos-manufacturer = メーカ-
tracker-infos-display_name = 表示名
tracker-infos-custom_name = カスタム名称
tracker-infos-url = トラッカーURL
## Tracker settings
tracker-settings-back = トラッカーリストへ戻る
tracker-settings-title = トラッカー設定
tracker-settings-assignment_section = 割り当て
@@ -177,12 +158,10 @@ tracker-settings-name_section-description = 自由に名称をつけてくださ
tracker-settings-name_section-placeholder = NightyBeast's left leg
## Tracker part card info
tracker-part_card-no_name = 名称無し
tracker-part_card-unassigned = 未割り当て
## Body assignment menu
body_assignment_menu = このトラッカーをどこに配置しますか?
body_assignment_menu-description = このトラッカーを割り当てる場所を選択します。また、トラッカーを一つずつ管理するのではなく、すべてのトラッカーを一括して管理することもできます。
body_assignment_menu-show_advanced_locations = 高度な割り当て場所の表示
@@ -190,7 +169,6 @@ body_assignment_menu-manage_trackers = すべてのトラッカーの管理
body_assignment_menu-unassign_tracker = トラッカーの割り当て解除
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -219,19 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part(body-part: "
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part(body-part: "左足首") }
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part(body-part: "左足先") }
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part(body-part: "左コントローラ") }
tracker_selection_menu-unassigned = 未割り当てのトラッカー
tracker_selection_menu-assigned = 割り当て済みのトラッカー
tracker_selection_menu-dont_assign = 割り当てない
tracker_selection_menu-neck_warning-done = リスクを理解しています
tracker_selection_menu-neck_warning-cancel = キャンセル
## Mounting menu
mounting_selection_menu = このトラッカーをどこに配置しますか?
mounting_selection_menu-close = 閉じる
## Sidebar settings
settings-sidebar-title = 設定
settings-sidebar-general = 一般
settings-sidebar-tracker_mechanics = トラッカーメカニズム
@@ -243,7 +218,6 @@ settings-sidebar-utils = ユーティリティ
settings-sidebar-serial = シリアルコンソール
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVRのトラッカー
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -261,7 +235,6 @@ settings-general-steamvr-trackers-elbows = 肘
settings-general-steamvr-trackers-hands = 手
## Tracker mechanics
settings-general-tracker_mechanics = トラッカーメカニズム
settings-general-tracker_mechanics-filtering = フィルター機能
# This also cares about multilines
@@ -285,8 +258,7 @@ settings-general-tracker_mechanics-drift_compensation-enabled-label = ドリフ
settings-general-tracker_mechanics-drift_compensation-amount-label = 補正量
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 最大リセット回数
## FK/Tracking settings
## FK settings
settings-general-fk_settings = FK設定
settings-general-fk_settings-leg_tweak = 脚の微調整
settings-general-fk_settings-leg_tweak-description = フロアクリップは、床とのクリッピングを減らす、あるいはなくすことができますが、膝をついたときに問題が発生する可能性があります。スケーティング補正は足の滑りを補正できますが、特定の動作パターンでは精度が落ちることがあります。
@@ -303,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = スケーテ
settings-general-fk_settings-arm_fk = アームトラッキング
settings-general-fk_settings-arm_fk-description = 腕の追従方法を変更する。
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = スケルトン設定
settings-general-fk_settings-skeleton_settings-description = スケルトン設定のオン/オフを切り替えます。これらはオンのままにしておくことをお勧めします。
settings-general-fk_settings-skeleton_settings-extended_spine = Extended spine
@@ -313,17 +286,15 @@ settings-general-fk_settings-vive_emulation-description = Viveトラッカーが
settings-general-fk_settings-vive_emulation-label = Viveエミュレーションの有効化
## Gesture control settings (tracker tapping)
settings-general-gesture_control = ジェスチャーコントロール
settings-general-gesture_control-subtitle = ダブルタップクイックリセット
settings-general-gesture_control-description = ダブルタップクイックリセットの有効・無効を設定します。有効にすると、最も高い胴体トラッカー上の任意の場所をダブルタップすると、クイックリセットが起動します。ディレイは、タップされてからリセットされるまでの時間です。
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } タップ
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } タップ
}
settings-general-gesture_control-quickResetEnabled = タップによるクイックリセットを有効にする
settings-general-gesture_control-quickResetDelay = クイックリセットディレイ
settings-general-gesture_control-quickResetTaps = タップによるクイックリセット
@@ -335,7 +306,6 @@ settings-general-gesture_control-mountingResetDelay = マウントリセット
settings-general-gesture_control-mountingResetTaps = タップによるマウントリセット
## Interface settings
settings-general-interface = インターフェース
settings-general-interface-dev_mode = 開発者モード
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
@@ -348,7 +318,6 @@ settings-general-interface-lang-description = 使用したいデフォルトの
settings-general-interface-lang-placeholder = 使用する言語を選択する
## Serial settings
settings-serial = シリアルコンソール
# This cares about multilines
settings-serial-description =
@@ -357,14 +326,11 @@ settings-serial-description =
settings-serial-connection_lost = シリアルへの接続が失われました、再接続中...
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 = 自動
## OSC router settings
settings-osc-router = OSCルーター
# This cares about multilines
settings-osc-router-description =
@@ -389,7 +355,6 @@ settings-osc-router-network-address-description = データを送り出すアド
settings-osc-router-network-address-placeholder = IPV4アドレス
## OSC VRChat settings
settings-osc-vrchat = VRChat OSCトラッカー
# This cares about multilines
settings-osc-vrchat-description =
@@ -418,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = 足
settings-osc-vrchat-network-trackers-elbows = 肘
## Setup/onboarding menu
onboarding-skip = 設定をスキップする
onboarding-continue = 続ける
onboarding-wip = 実行中
## Wi-Fi setup
onboarding-wifi_creds-back = 戻る
onboarding-wifi_creds = Wi-Fi
# This cares about multilines
@@ -441,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = マウントキャリブレーションに戻る
onboarding-reset_tutorial = リセットチュートリアル
onboarding-reset_tutorial-description = この機能は終了していません。続けるを押してください。
## Setup start
onboarding-home = SlimeVRへようこそ
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -456,20 +417,17 @@ onboarding-home-description =
onboarding-home-start = セットアップ開始!
## Enter VR part of setup
onboarding-enter_vr-back = トラッカー割り当てに戻る
onboarding-enter_vr-title = VRに入る時間だ
onboarding-enter_vr-description = トラッカーを全部つけて、VRに突入せよ
onboarding-enter_vr-ready = 準備完了
## Setup done
onboarding-done-title = 準備完了です!
onboarding-done-description = フルトラをお楽しみください
onboarding-done-close = ガイドを閉じる
## Tracker connection setup
onboarding-connect_tracker-back = Wi-Fi認証に戻る
onboarding-connect_tracker-title = 接続中のトラッカー
onboarding-connect_tracker-description-p0 = さあ、楽しい部分に移りましょう。すべてのトラッカーを接続します!
@@ -486,32 +444,28 @@ onboarding-connect_tracker-connection_status-handshake = サーバーに接続
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = すべてのトラッカーを接続しました
## Tracker assignment setup
onboarding-assign_trackers-back = Wi-Fi認証に戻る
onboarding-assign_trackers-title = トラッカーを割り当てる
onboarding-assign_trackers-description = どのトラッカーをどこに置くか選んでみましょう。トラッカーを配置したい場所をクリックしてください。
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = 高度な割り当て場所の表示
onboarding-assign_trackers-next = すべてのトラッカーを割り当てました
## Tracker manual mounting setup
onboarding-manual_mounting-back = VRの入力に戻る
onboarding-manual_mounting = マニュアルマウント
onboarding-manual_mounting-description = すべてのトラッカーをクリックし、どの方向にマウントするかを選択
@@ -519,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = 自動マウント
onboarding-manual_mounting-next = 次のステップ
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = VRの入力に戻る
onboarding-automatic_mounting-title = マウントキャリブレーション
onboarding-automatic_mounting-description = SlimeVRのトラッカーを動作させるためには、物理的なトラッカーの取り付け位置と合わせるために、トラッカーの取り付け方向を合わせる必要があります。
@@ -540,14 +493,12 @@ onboarding-automatic_mounting-put_trackers_on-description = マウントの方
onboarding-automatic_mounting-put_trackers_on-next = すべてのトラッカーを装着しました
## Tracker manual proportions setup
onboarding-manual_proportions-back = チュートリアルをリセットする
onboarding-manual_proportions-title = マニュアルボディプロポーション
onboarding-manual_proportions-precision = 精度を調整する
onboarding-manual_proportions-auto = 自動キャリブレーション
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = チュートリアルをリセットする
onboarding-automatic_proportions-title = 自分の体の測定
onboarding-automatic_proportions-description = SlimeVRのトラッカーが動作するためには、あなたの骨の長さを知る必要があります。この短いキャリブレーションでそれを測定します。
@@ -572,11 +523,10 @@ onboarding-automatic_proportions-recording-steps-3 = 上半身を右にひねり
onboarding-automatic_proportions-recording-steps-4 = タイマーが終わるまで体をくねらせる
onboarding-automatic_proportions-recording-processing = 結果を処理中
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = 結果を確認
onboarding-automatic_proportions-verify_results-description = 以下の結果を確認してください。正しく表示されていますか?
onboarding-automatic_proportions-verify_results-results = 記録結果
@@ -587,5 +537,4 @@ onboarding-automatic_proportions-done-title = 体を測定して保存
onboarding-automatic_proportions-done-description = ボディプロポーションのキャリブレーションが完了しました!
## Home
home-no_trackers = トラッカーを検出できません。もしくは割り当てられていません。

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = 서버에 연결하는 중...
websocket-connection_lost = 서버와의 연결이 끊어졌어요. 다시 연결하는 중...
## Tips
tips-find_tracker = 내 트래커가 어떤 트래커인지 모르시겠다구요? 트래커를 흔들면 해당 항목이 빛날 거에요.
tips-do_not_move_heels = 기록하는 동안 발뒤꿈치가 움직이지 않도록 조심하세요!
## Body parts
body_part-NONE = 할당되지 않음
body_part-HEAD = 머리
body_part-NECK = 목
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = 왼발
body_part-LEFT_CONTROLLER = 왼쪽 컨트롤러
## Proportions
skeleton_bone-NONE = 없음
skeleton_bone-HEAD = 머리 밀림
skeleton_bone-NECK = 목 길이
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = 컨트롤러 Z축 거리
skeleton_bone-ELBOW_OFFSET = 팔꿈치 오프셋
## Tracker reset buttons
reset-reset_all = 모든 신체 비율 리셋
reset-full = 리셋
reset-mounting = 착용 방향 리셋
reset-quick = 퀵 리셋
## Serial detection stuff
serial_detection-new_device-p0 = 새로운 시리얼 디바이스를 찾았어요!
serial_detection-new_device-p1 = Wi-Fi 자격 증명을 입력해주세요!
serial_detection-new_device-p2 = 원하는 작업을 선택하세요
@@ -85,7 +76,6 @@ serial_detection-submit = 저장!
serial_detection-close = 닫기
## Navigation bar
navbar-home = 홈
navbar-body_proportions = 신체 비율
navbar-trackers_assign = 트래커 위치
@@ -94,22 +84,15 @@ navbar-onboarding = 설정 마법사
navbar-settings = 설정
## Bounding volume hierarchy recording
bvh-start_recording = BVH 기록
bvh-recording = 기록중...
## Widget: Overlay settings
widget-overlay = 오버레이
widget-overlay-is_visible_label = SteamVR에서 오버레이 표시
widget-overlay-is_mirrored_label = 오버레이 반전
## Widget: Drift compensation
widget-drift_compensation-clear = 틀어짐 보정 초기화
## Widget: Developer settings
widget-developer_mode = 개발자 모드
widget-developer_mode-high_contrast = 고대비
widget-developer_mode-precise_rotation = 회전 자세히 보기
@@ -120,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = 원시 회전값 보기
widget-developer_mode-more_info = 더 많은 정보 보기
## Widget: IMU Visualizer
widget-imu_visualizer = 회전
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = 미리보기
## Tracker status
tracker-status-none = 알 수 없음
tracker-status-busy = 바쁨
tracker-status-error = 오류
@@ -135,7 +116,6 @@ tracker-status-occluded = 사용할 수 없음
tracker-status-ok = 연결됨
## Tracker status columns
tracker-table-column-name = 이름
tracker-table-column-type = 타입
tracker-table-column-battery = 배터리
@@ -148,21 +128,18 @@ tracker-table-column-position = X/Y/Z 위치
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 앞쪽
tracker-rotation-left = 왼쪽
tracker-rotation-right = 오른쪽
tracker-rotation-back = 뒤쪽
## Tracker information
tracker-infos-manufacturer = 제조사
tracker-infos-display_name = 표시되는 이름
tracker-infos-custom_name = 사용자 정의 이름
tracker-infos-url = 트래커 URL
## Tracker settings
tracker-settings-back = 트래커 목록으로 돌아가기
tracker-settings-title = 트래커 설정
tracker-settings-assignment_section = 트래커 위치 지정
@@ -181,12 +158,10 @@ tracker-settings-name_section-description = 귀여운 이름을 지어주세요!
tracker-settings-name_section-placeholder = NightyBeast's left leg
## Tracker part card info
tracker-part_card-no_name = 이름 없음
tracker-part_card-unassigned = 할당되지 않음
## Body assignment menu
body_assignment_menu = 트래커가 어디에 있나요?
body_assignment_menu-description = 이 트래커를 할당할 위치를 선택하세요. 또는, 모든 트래커를 한 번에 설정할 수도 있어요.
body_assignment_menu-show_advanced_locations = 고급 할당 위치 표시
@@ -194,7 +169,6 @@ body_assignment_menu-manage_trackers = 모든 트래커 설정
body_assignment_menu-unassign_tracker = 할당하지 않기
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -223,23 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = 왼쪽 다리 위{ -tracker_selection-pa
tracker_selection_menu-LEFT_LOWER_LEG = 왼쪽 다리 아래{ -tracker_selection-part }
tracker_selection_menu-LEFT_FOOT = 왼쪽 발{ -tracker_selection-part }
tracker_selection_menu-LEFT_CONTROLLER = 왼쪽 컨트롤러{ -tracker_selection-part }
tracker_selection_menu-unassigned = 할당되지 않은 트래커
tracker_selection_menu-assigned = 할당된 트래커
tracker_selection_menu-dont_assign = 할당하지 않기
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>경고:</b> 목 트래커는 너무 세게 조정하면 위험해요.
스트랩이 머리의 혈액 순환을 방해할 수 있어요!
tracker_selection_menu-neck_warning-cancel = 취소
## Mounting menu
mounting_selection_menu = 트래커가 어디에 있나요?
mounting_selection_menu-close = 닫기
## Sidebar settings
settings-sidebar-title = 설정
settings-sidebar-general = 일반
settings-sidebar-tracker_mechanics = 트래커 역학
@@ -251,7 +218,6 @@ settings-sidebar-utils = 유틸리티
settings-sidebar-serial = 시리얼 콘솔
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR 트래커
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -269,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Elbows
settings-general-steamvr-trackers-hands = Hands
## Tracker mechanics
settings-general-tracker_mechanics = 트래커 역학
settings-general-tracker_mechanics-filtering = 필터링
# This also cares about multilines
@@ -294,7 +259,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = 보정 강
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 보정에 사용할 최근 리셋 횟수
## FK/Tracking settings
settings-general-fk_settings = FK 설정
settings-general-fk_settings-leg_tweak = 다리 보정
settings-general-fk_settings-leg_tweak-description = 플로어 클립은 바닥과의 클리핑을 줄이거나 제거할 수 있지만 무릎을 꿇을 때 문제를 일으킬 수 있어요. 스케이팅 보정은 아이스 스케이팅을 보정하지만, 특정 움직임 패턴에서 정확도를 저하시킬 수 있어요.
@@ -311,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = 스케이팅
settings-general-fk_settings-arm_fk = 팔 운동학
settings-general-fk_settings-arm_fk-description = 팔이 추적되는 방식을 변경할 수 있어요.
settings-general-fk_settings-arm_fk-force_arms = 팔을 HMD에서만 받아오기
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = 골격 설정
settings-general-fk_settings-skeleton_settings-description = 골격 설정을 설정하거나 해제해요. 이것들은 켜두는 게 좋아요.
settings-general-fk_settings-skeleton_settings-extended_spine = 척추 확장
@@ -321,16 +286,14 @@ settings-general-fk_settings-vive_emulation-description = 바이브 트래커가
settings-general-fk_settings-vive_emulation-label = VIVE 에뮬레이션 활성화
## Gesture control settings (tracker tapping)
settings-general-gesture_control = 제스처 제어
settings-general-gesture_control-subtitle = 두 번 탭해서 퀵 리셋하기
settings-general-gesture_control-description = 활성화하면 가장 높이 있는 트래커의 아무 곳이나 두 번 탭해서 퀵 리셋을 활성화할 수 있어요. 두번 탭하는 간격은 딜레이로 조절할 수 있어요.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount } 탭
}
settings-general-gesture_control-taps = { $amount ->
*[other] { $amount } 탭
}
settings-general-gesture_control-quickResetEnabled = 탭해서 퀵 리셋 활성화
settings-general-gesture_control-quickResetDelay = 퀵 리셋 딜레이
settings-general-gesture_control-quickResetTaps = 탭해서 퀵 리셋
@@ -342,7 +305,6 @@ settings-general-gesture_control-mountingResetDelay = 착용 방향 정렬 딜
settings-general-gesture_control-mountingResetTaps = 탭해서 착용 방향 정렬
## Interface settings
settings-general-interface = 인터페이스
settings-general-interface-dev_mode = 개발자 모드
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
@@ -355,7 +317,6 @@ settings-general-interface-lang-description = 사용하고 싶은 기본 언어
settings-general-interface-lang-placeholder = 사용할 언어를 선택하세요
## Serial settings
settings-serial = 시리얼 콘솔
# This cares about multilines
settings-serial-description =
@@ -364,19 +325,11 @@ settings-serial-description =
settings-serial-connection_lost = 시리얼 연결 끊김, 다시 연결 중...
settings-serial-reboot = 재부팅
settings-serial-factory_reset = 공장 초기화
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>주의:</b> 트래커의 모든 설정이 초기화돼요.
계속하면 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 = 자동
## OSC router settings
settings-osc-router = OSC 라우터
# This cares about multilines
settings-osc-router-description =
@@ -401,7 +354,6 @@ settings-osc-router-network-address-description = 데이터를 보낼 주소를
settings-osc-router-network-address-placeholder = IPV4 주소
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -430,13 +382,11 @@ settings-osc-vrchat-network-trackers-feet = Feet
settings-osc-vrchat-network-trackers-elbows = Elbows
## Setup/onboarding menu
onboarding-skip = 설정 건너뛰기
onboarding-continue = 계속하기
onboarding-wip = 아직 공사 중이에요
## Wi-Fi setup
onboarding-wifi_creds-back = 처음으로 돌아가기
onboarding-wifi_creds = Wi-Fi 자격 증명을 입력하세요
# This cares about multilines
@@ -453,13 +403,11 @@ onboarding-wifi_creds-password =
.placeholder = 암호를 입력하세요
## Mounting setup
onboarding-reset_tutorial-back = 착용 방향 정렬로 돌아가기
onboarding-reset_tutorial = 리셋 튜토리얼
onboarding-reset_tutorial-description = 이 기능은 아직 완성되지 않았어요, 지금은 일단 계속하기를 눌러주세요!
## Setup start
onboarding-home = SlimeVR에 어서오세요!
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -468,43 +416,40 @@ onboarding-home-description =
onboarding-home-start = 설정하러 가보죠!
## Enter VR part of setup
onboarding-enter_vr-back = 트래커 위치 지정으로 돌아가기
onboarding-enter_vr-title = VR에 들어갈 시간이에요!
onboarding-enter_vr-description = 모든 트래커를 착용하고 VR에 입장하세요!
onboarding-enter_vr-ready = 준비됐어요!
## Setup done
onboarding-done-title = 모든 설정을 마쳤어요!
onboarding-done-description = 풀바디 트래킹을 즐기세요!
onboarding-done-close = 마법사 닫기
## Tracker connection setup
onboarding-connect_tracker-back = Wi-Fi 자격 증명으로 돌아가기
onboarding-connect_tracker-title = 트래커 연결
onboarding-connect_tracker-description-p0 = 이제 모든 트래커를 연결하는 재미있는 부분으로 가봐요!
onboarding-connect_tracker-description-p1 = 그냥 모든 트래커를 USB 포트에 연결하기만 하면 돼요
onboarding-connect_tracker-issue-serial = 연결하는 데 문제가 생겼어요!
onboarding-connect_tracker-usb = USB 트래커
onboarding-connect_tracker-connection_status-none = 트래커 찾는 중
onboarding-connect_tracker-connection_status-connecting = Wi-Fi 자격증명 전송 중
onboarding-connect_tracker-connection_status-looking_for_server = 서버 찾는 중
onboarding-connect_tracker-connection_status-connected = Wi-Fi 연결됨
onboarding-connect_tracker-connection_status-error = Wi-Fi에 연결할 수 없음
onboarding-connect_tracker-connection_status-start_connecting = 트래커 찾는 중
onboarding-connect_tracker-connection_status-handshake = 서버에 연결됨
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] 연결된 트래커가 없어요.
*[other] 트래커 { $amount }개가 연결되었어요.
}
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] 연결된 트래커가 없어요.
*[other] 트래커 { $amount }개가 연결되었어요.
}
onboarding-connect_tracker-next = 모든 트래커를 잘 연결했어요
## Tracker assignment setup
onboarding-assign_trackers-back = Wi-Fi 자격 증명으로 돌아가기
onboarding-assign_trackers-title = 트래커 위치 지정
onboarding-assign_trackers-description = 이제, 어떤 트래커가 어디에 있는지 선택할 시간이에요. 트래커를 배치할 위치를 클릭해보세요
@@ -515,11 +460,7 @@ onboarding-assign_trackers-assigned = 트래커 { $trackers }개 중 { $assigned
onboarding-assign_trackers-advanced = 고급 할당 위치 보기
onboarding-assign_trackers-next = 모든 트래커를 배치했어요
## Tracker assignment warnings
## Tracker manual mounting setup
onboarding-manual_mounting-back = VR 입장 페이지로 돌아가기
onboarding-manual_mounting = 수동으로 착용 방향 설정
onboarding-manual_mounting-description = 트래커를 클릭한 다음, 트래커가 바라보는 방향을 선택해주세요
@@ -527,7 +468,6 @@ onboarding-manual_mounting-auto_mounting = 자동으로 착용 방향 설정
onboarding-manual_mounting-next = 다음 단계
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = VR 입장 페이지로 돌아가기
onboarding-automatic_mounting-title = 착용 방향 정렬
onboarding-automatic_mounting-description = SlimeVR 트래커가 작동하려면, 착용 방향을 정해야 해요. 이 단계에서는 실제 트래커의 회전과 맞게 착용 방향을 정렬할 거에요.
@@ -548,14 +488,12 @@ onboarding-automatic_mounting-put_trackers_on-description = 트래커의 착용
onboarding-automatic_mounting-put_trackers_on-next = 모든 트래커를 착용했어요
## Tracker manual proportions setup
onboarding-manual_proportions-back = 리셋 튜토리얼로 돌아가기
onboarding-manual_proportions-title = 수동 신체 비율 설정
onboarding-manual_proportions-precision = 자세히 조절하기
onboarding-manual_proportions-auto = 자동 신체 비율 설정
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = 리셋 튜토리얼로 돌아가기
onboarding-automatic_proportions-title = 신체 비율을 측정해보세요
onboarding-automatic_proportions-description = SlimeVR 트래커가 작동하려면 뼈의 길이를 알아야 하는데, 이 짧은 보정을 통해 측정할 수 있어요.
@@ -580,10 +518,9 @@ onboarding-automatic_proportions-recording-steps-3 = 상체를 오른쪽으로
onboarding-automatic_proportions-recording-steps-4 = 타이머가 종료될 때까지 이리저리 움직여 보세요.
onboarding-automatic_proportions-recording-processing = 결과 처리 중
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
*[other] { $time } 초 남음
}
onboarding-automatic_proportions-recording-timer = { $time ->
*[other] { $time } 초 남음
}
onboarding-automatic_proportions-verify_results-title = 결과를 확인하세요
onboarding-automatic_proportions-verify_results-description = 아래 결과를 한번 보세요, 어때요?
onboarding-automatic_proportions-verify_results-results = 기록 결과
@@ -594,5 +531,4 @@ onboarding-automatic_proportions-done-title = 몸을 측정하고 저장했어
onboarding-automatic_proportions-done-description = 신체 비율 보정이 완료되었어요!
## Home
home-no_trackers = 감지되거나 할당된 트래커가 없어요.

View File

@@ -1,601 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Kobler til serveren
websocket-connection_lost = Mistet server-tilkobling. Vennligst vent mens koblingen gjenopprettes...
## Tips
tips-find_tracker = Vanskeligheter med å skille mellom dine trackere? Rist én for å finne fram riktig gjenstand.
tips-do_not_move_heels = Vær obs på at helene dine står stille under innspillingen!
## Body parts
body_part-NONE = Ikke tildelt
body_part-HEAD = Hode
body_part-NECK = Hals
body_part-RIGHT_SHOULDER = Høyre skulder
body_part-RIGHT_UPPER_ARM = Høyre overarm
body_part-RIGHT_LOWER_ARM = Høyre nedre arm
body_part-RIGHT_HAND = Høyre hånd
body_part-RIGHT_UPPER_LEG = Høyre lår
body_part-RIGHT_LOWER_LEG = Høyre ankel
body_part-RIGHT_FOOT = Høyre fot
body_part-RIGHT_CONTROLLER = Høyre kontroller
body_part-CHEST = Bryst
body_part-WAIST = Midje
body_part-HIP = Hofte
body_part-LEFT_SHOULDER = Venstre skulder
body_part-LEFT_UPPER_ARM = Venstre overarm
body_part-LEFT_LOWER_ARM = Venstre nedre arm
body_part-LEFT_HAND = Venstre hånd
body_part-LEFT_UPPER_LEG = Venstre lår
body_part-LEFT_LOWER_LEG = Venstre ankel
body_part-LEFT_FOOT = Venstre fot
body_part-LEFT_CONTROLLER = Venstre kontroller
## Proportions
skeleton_bone-NONE = Ingen
skeleton_bone-HEAD = Hode bytte
skeleton_bone-NECK = Halslengde
skeleton_bone-CHEST = Bryst-lengde
skeleton_bone-CHEST_OFFSET = Bryst-forskyvning
skeleton_bone-WAIST = Midje-lengde
skeleton_bone-HIP = Hofte-lengde
skeleton_bone-HIP_OFFSET = Hofte-forskyvning
skeleton_bone-HIPS_WIDTH = Hofte-bredde
skeleton_bone-UPPER_LEG = Lår-lengde
skeleton_bone-LOWER_LEG = Leg-lengde
skeleton_bone-FOOT_LENGTH = Fot-lengde
skeleton_bone-FOOT_SHIFT = Fot-bytte
skeleton_bone-SKELETON_OFFSET = Skjellet-forskyvning
skeleton_bone-SHOULDERS_DISTANCE = Skulder-distanse
skeleton_bone-SHOULDERS_WIDTH = Skulder-bredde
skeleton_bone-UPPER_ARM = Overarms-lengde
skeleton_bone-LOWER_ARM = Nedre arm-lengde
skeleton_bone-CONTROLLER_Y = Kontroller distanse Y
skeleton_bone-CONTROLLER_Z = Kontroller distanse Z
skeleton_bone-ELBOW_OFFSET = Albue-forskyvning
## Tracker reset buttons
reset-reset_all = Nullstill alle proporsjoner
reset-full = Nullstill
reset-mounting = Nullstill montering
reset-quick = Rask nullstilling
## Serial detection stuff
serial_detection-new_device-p0 = Ny seriell enhet oppdaget!
serial_detection-new_device-p1 = Tast inn din WiFi legitimasjon!
serial_detection-new_device-p2 = Vennligst velg hva du vil gjøre med den
serial_detection-open_wifi = Koble til Wi-Fi
serial_detection-open_serial = Åpne seriell konsoll
serial_detection-submit = Send inn!
serial_detection-close = Lukk
## Navigation bar
navbar-home = Hjem
navbar-body_proportions = Kropps proporsjoner
navbar-trackers_assign = Tracker tildeling
navbar-mounting = Monterings kalibrering
navbar-onboarding = Oppsetts veiviser
navbar-settings = Innstillinger
## Bounding volume hierarchy recording
bvh-start_recording = BVH-innspilling
bvh-recording = Spiller inn...
## Widget: Overlay settings
widget-overlay = Overlegg
widget-overlay-is_visible_label = Vis overlegg i SteamVR
widget-overlay-is_mirrored_label = Vis overlegg som speil
## Widget: Developer settings
widget-developer_mode = Utvikler modus
widget-developer_mode-high_contrast = Høy kontrast
widget-developer_mode-precise_rotation = Nøyaktig rotering
widget-developer_mode-fast_data_feed = Rask data-feed
widget-developer_mode-filter_slimes_and_hmd = Filtrer slimes og HMD
widget-developer_mode-sort_by_name = Sorter etter navn
widget-developer_mode-raw_slime_rotation = Rå rotering
widget-developer_mode-more_info = Mer info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotasjon
widget-imu_visualizer-rotation_raw = Rå
widget-imu_visualizer-rotation_preview = Forhåndsvisning
## Tracker status
tracker-status-none = Ingen status
tracker-status-busy = Opptatt
tracker-status-error = Feilmelding
tracker-status-disconnected = Frakoblet
tracker-status-occluded = Okkludert
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Navn
tracker-table-column-type = Type
tracker-table-column-battery = Batteri
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = Temp. °C
tracker-table-column-linear-acceleration = Aksel. X/Y/Z
tracker-table-column-rotation = Rotasjon X/Y/Z
tracker-table-column-position = Posisjon X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Front
tracker-rotation-left = Venstre
tracker-rotation-right = Høyre
tracker-rotation-back = Bak
## Tracker information
tracker-infos-manufacturer = Produsent
tracker-infos-display_name = Vis navn
tracker-infos-custom_name = Tilpasset navn
tracker-infos-url = Tracker URL
## Tracker settings
tracker-settings-back = Gå tilbake til tracker-liste
tracker-settings-title = Tracker innstillinger
tracker-settings-assignment_section = Tildeling
tracker-settings-assignment_section-description = Kroppsdelen trackeren er blitt tildelt.
tracker-settings-assignment_section-edit = Endre tildeling
tracker-settings-mounting_section = Monterings posisjon
tracker-settings-mounting_section-description = Hvor er trackeren montert?
tracker-settings-mounting_section-edit = Endre montering
tracker-settings-drift_compensation_section = Tillat avdrifts-kompensasjon
tracker-settings-drift_compensation_section-description = Skal denne trackeren kompensere for egen avdrift når avsdrifts-kompansasjon er aktivert?
tracker-settings-drift_compensation_section-edit = Tillat avdrifts-kompensasjon
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Tracker navn
tracker-settings-name_section-description = Gi den et søtt kallenavn-navn :)
tracker-settings-name_section-placeholder = ~Thͭiͪaͥsͣˢ~ venstre ben
## Tracker part card info
tracker-part_card-no_name = Ingen navn
tracker-part_card-unassigned = Utilordnet
## Body assignment menu
body_assignment_menu = Hvor vil du plassere denne trackeren?
body_assignment_menu-description = Velg den plasseringen du vil tildele denne trackeren. Alternativt kan du velge å ordne alle trackere samtidig istedenfor å ordne dem én etter én.
body_assignment_menu-show_advanced_locations = Vis avanserte tildelings-plasseringer
body_assignment_menu-manage_trackers = Ordne alle trackere
body_assignment_menu-unassign_tracker = Fjern tracker-tildeling
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = { "Hvilken tracker skal tildeles til " }
tracker_selection_menu-NONE = Hvilken tracker vil du fjerne tildelingen på?
tracker_selection_menu-HEAD = { -tracker_selection-part }hodet?
tracker_selection_menu-NECK = { -tracker_selection-part }halsen?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part }høyre skulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part }høyre overarm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part }høyre nedre arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part }høyre hånd?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part }høyre lår?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part }høre ankel?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part }høyre fot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part }høyre kontroller?
tracker_selection_menu-CHEST = { -tracker_selection-part }brystet?
tracker_selection_menu-WAIST = { -tracker_selection-part }midjen?
tracker_selection_menu-HIP = { -tracker_selection-part }hoften?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part }venstre skulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part }venstre overarm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part }venstre nedre arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part }venstre hånd?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part }venstre lår?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part }venstre ankel?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part }venstre fot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part }venstre kontroller?
tracker_selection_menu-unassigned = Utilordnede trackere
tracker_selection_menu-assigned = Tildelte trackere
tracker_selection_menu-dont_assign = Ikke tildel
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>NB:</b> Hals-trackeren kan være helseskadelig dersom den sitter for stramt,
festet kan blokkere blodtilførselen til hodet ditt!
tracker_selection_menu-neck_warning-done = Jeg forstår risikoene
tracker_selection_menu-neck_warning-cancel = Avbryt
## Mounting menu
mounting_selection_menu = Hvor vil du at denne trackeren skal være?
mounting_selection_menu-close = Lukk
## Sidebar settings
settings-sidebar-title = Innstillinger
settings-sidebar-general = Generelle
settings-sidebar-tracker_mechanics = Tracker-mekanisme
settings-sidebar-fk_settings = Tracker-innstillinger
settings-sidebar-gesture_control = Bevegelses-kontroll
settings-sidebar-interface = Grensesnitt
settings-sidebar-osc_router = OSC ruter
settings-sidebar-utils = Verktøy
settings-sidebar-serial = Seriell konsoll
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackere
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Skru av/på spesifikke SteamVR trackere.
Nyttig for spill eller programmer som bare støtter visse trackere.
settings-general-steamvr-trackers-waist = Midje
settings-general-steamvr-trackers-chest = Bryst
settings-general-steamvr-trackers-feet = Føtter
settings-general-steamvr-trackers-knees = Knær
settings-general-steamvr-trackers-elbows = Albuer
settings-general-steamvr-trackers-hands = Hender
## Tracker mechanics
settings-general-tracker_mechanics = Tracker-mekanismer
settings-general-tracker_mechanics-filtering = Filtrering
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Velg filtrerings-type for dine trackere.
Prediksjon forutser bevegelser mens Utjevning jevner ut bevegelser.
settings-general-tracker_mechanics-filtering-type = Filtrerings type
settings-general-tracker_mechanics-filtering-type-none = Ingen filtrering
settings-general-tracker_mechanics-filtering-type-none-description = Bruk rotasjoner som før. Altså ingen filtrering.
settings-general-tracker_mechanics-filtering-type-smoothing = Utjevning
settings-general-tracker_mechanics-filtering-type-smoothing-description = Jevner ut bevegelser men øker forsinkelsen litt.
settings-general-tracker_mechanics-filtering-type-prediction = Forutsigelse
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduserer forsinkelsen og gjør bevegelser skarpere, men kan påvirke stabiliteten.
settings-general-tracker_mechanics-filtering-amount = Mengde
settings-general-tracker_mechanics-drift_compensation = Avdrifts-kompansering
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompenserer for IMU yaw avdrift ved å legge til en rotasjon av omvendt verdi.
Endre mengde kompensasjon og opp til hvor mange nullstillinger som skal bli gjort rede for.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Avdrifts kompansering
settings-general-tracker_mechanics-drift_compensation-amount-label = Kompanserings mengde
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Bruk opp til x siste nullstillinger
## FK/Tracking settings
settings-general-fk_settings = Sporings innstillinger
settings-general-fk_settings-leg_tweak = Bein-justeringer
settings-general-fk_settings-leg_tweak-description = Gulv-clip kan redusere, om ikke eliminere det at lemmer går gjennom gulvet, men kan skape problemer når du er på knærne. Skating-korreksjon jobber mot "ice-skating", men kan forverre presisjonen i visse bevegelsesmønster.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Gulv-clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating korreksjon
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating-korreksjon styrke
settings-general-fk_settings-arm_fk = Arm sporing
settings-general-fk_settings-arm_fk-description = Endre metoden armene spores på.
settings-general-fk_settings-arm_fk-force_arms = Tving armer fra HMD
settings-general-fk_settings-skeleton_settings = Skjellet innstillinger
settings-general-fk_settings-skeleton_settings-description = Skru skjellet innstillinger av eller på. Det anbefales å la disse stå på.
settings-general-fk_settings-skeleton_settings-extended_spine = Forlenget ryggrad
settings-general-fk_settings-skeleton_settings-extended_pelvis = Forlenget pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Forlenget kne
settings-general-fk_settings-vive_emulation-title = Vive emulasjon
settings-general-fk_settings-vive_emulation-description = Emuler midjesporings problemene som Vive sporerene har. Dette er en vits og gjør sporingen verre.
settings-general-fk_settings-vive_emulation-label = Aktiver Vive emulasjon
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Bevegelses-kontroll
settings-general-gesture_control-subtitle = Trykk baserte nullstillinger
settings-general-gesture_control-description = Tillat at nullstillinger aktiveres ved å trykke på en sporer. Den høyeste sporeren på overkroppen blir da brukt til Rask Nullstilling, den høyeste sporeren på det venstre beinet blir brukt til Nullstilling og den høyeste sporeren på det høyre beinet blir brukt til Monterings Nullstilling. Vær obs på at trykking bør skje to ganger innen 0.6 sekunder for å bli registrert.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 trykk
*[other] { $amount } trykk
}
settings-general-gesture_control-quickResetEnabled = Aktiver rask nullstilling ved trykk
settings-general-gesture_control-quickResetDelay = Rask nullstillings utsettelse
settings-general-gesture_control-quickResetTaps = Trykking for rask nullstilling
settings-general-gesture_control-resetEnabled = Aktiver nullstilling ved trykking
settings-general-gesture_control-resetDelay = Nullstillings utsettelse
settings-general-gesture_control-resetTaps = Trykking for nullstilling
settings-general-gesture_control-mountingResetEnabled = Aktiver monterings-nullstilling ved trykking
settings-general-gesture_control-mountingResetDelay = Monterings-nullstilling utsettelse
settings-general-gesture_control-mountingResetTaps = Trykking for monterings-nullstilling
## Interface settings
settings-general-interface = Grensesnitt
settings-general-interface-dev_mode = Utvikler modus
settings-general-interface-dev_mode-description = Denne modusen kan være hjelpsom dersom du trenger data som gir mer innsyn eller for å samhandle med tilkoblede sporere på et mer avansert nivå.
settings-general-interface-dev_mode-label = Utvikler modus
settings-general-interface-serial_detection = Seriell enhets gjenkjenning
settings-general-interface-serial_detection-description = Dette valget viser en pop-up for hver gang du kobler til en ny seriell-enhet som kunne vært en sporer. Dette forbedrer sporerens konfigureringsprosess.
settings-general-interface-serial_detection-label = Seriell enhets gjenkjenning
settings-general-interface-lang = Velg språk
settings-general-interface-lang-description = Endre hovedspråket du vil bruke.
settings-general-interface-lang-placeholder = Velg språket du vil bruke
## Serial settings
settings-serial = Seriell konsoll
# This cares about multilines
settings-serial-description =
Dette er en live informasjons-feed for seriell kommunikasjon.
Kan være hjelpsomt hvis du lurer på om det er problemer med fastvaren.
settings-serial-connection_lost = Tilkobling til serie tapt, gjenopptar tilkobling...
settings-serial-reboot = Omstart
settings-serial-factory_reset = Fabrikktilbakestilling
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>NB:</b> Dette nullstiller trackeren tilbake til fabrikkinstillinger.
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
## OSC router settings
settings-osc-router = OSC ruter
# This cares about multilines
settings-osc-router-description =
Videresend OSC beskjeder fra andre programmer.
Nyttig når du bruker andre OSC programmer med VRChat for eksempel.
settings-osc-router-enable = Aktiver
settings-osc-router-enable-description = Skru av/på videresending av beskjeder.
settings-osc-router-enable-label = Aktiver
settings-osc-router-network = Nettverks-porter
# This cares about multilines
settings-osc-router-network-description =
Still inn portene som skal motta eller sende data.
Disse kan være lik som andre porter brukt i SlimeVR serveren.
settings-osc-router-network-port_in =
.label = Port inn
.placeholder = Port inn (normalverdi:9002)
settings-osc-router-network-port_out =
.label = Port Ut
.placeholder = Port ut (normalverdi: 9000)
settings-osc-router-network-address = Nettverksadresse
settings-osc-router-network-address-description = Tast inn adressen som skal motta data.
settings-osc-router-network-address-placeholder = IPV4 adresse
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackere
# This cares about multilines
settings-osc-vrchat-description =
Juster på innstillinger spesifikt for VRChat for å motta HMD-data og sende
sporer-data for FBT (funker for Quest standalone).
settings-osc-vrchat-enable = Aktiver
settings-osc-vrchat-enable-description = Skru av/på utsending og mottakelse av data.
settings-osc-vrchat-enable-label = Aktiver
settings-osc-vrchat-network = Nettverks-porter
settings-osc-vrchat-network-description = Still inn portene som skal motta og sende data til VRChat.
settings-osc-vrchat-network-port_in =
.label = Port Inn
.placeholder = Port inn (normalverdi: 9001)
settings-osc-vrchat-network-port_out =
.label = Port Ut
.placeholder = Port ut (standardisering: 9000)
settings-osc-vrchat-network-address = Nettverksadresse
settings-osc-vrchat-network-address-description = Velg hvilken adresse som skal sende ut data til VRChat (sjekk Wi-Fi innstillingene på din enhet).
settings-osc-vrchat-network-address-placeholder = VRChat ip adresse
settings-osc-vrchat-network-trackers = Trackere
settings-osc-vrchat-network-trackers-description = Skru av/på sendingen av spesifikke sporere via OSC.
settings-osc-vrchat-network-trackers-chest = Bryst
settings-osc-vrchat-network-trackers-waist = Midje
settings-osc-vrchat-network-trackers-knees = Knær
settings-osc-vrchat-network-trackers-feet = Føtter
settings-osc-vrchat-network-trackers-elbows = Albuer
## Setup/onboarding menu
onboarding-skip = Hopp over oppsett
onboarding-continue = Fortsett
onboarding-wip = Arbeid pågår
## Wi-Fi setup
onboarding-wifi_creds-back = Gå tilbake til introduksjonen
onboarding-wifi_creds = Tast inn Wi-Fi legitimasjon
# This cares about multilines
onboarding-wifi_creds-description =
Trackerne bruker denne legitimasjonen for å koble til trådløst.
Vennligst bruk legitimasjonen til nettet du er koblet til nå.
onboarding-wifi_creds-skip = Hopp over Wi-Fi innstillinger
onboarding-wifi_creds-submit = Send inn!
onboarding-wifi_creds-ssid =
.label = Wi-Fi navn
.placeholder = Tast inn navnet på ditt Wi-Fi nettverk
onboarding-wifi_creds-password =
.label = Passord
.placeholder = Tast inn passord
## Mounting setup
onboarding-reset_tutorial-back = Gå tilbake til monterings kalibrering
onboarding-reset_tutorial = Nullstill opplæringen
onboarding-reset_tutorial-description = Denne funksjonen er ikke klar, bare trykk fortsett
## Setup start
onboarding-home = Velkommen til SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
Muliggjør hel-kropps sporing
for alle
onboarding-home-start = La oss sette i gang!
## Enter VR part of setup
onboarding-enter_vr-back = Gå tilbake til Tracker tilordning
onboarding-enter_vr-title = På tide å tre inn i VR!
onboarding-enter_vr-description = Putt på alle trackerne dine og tre inn i VR!
onboarding-enter_vr-ready = Jeg er klar!
## Setup done
onboarding-done-title = Nå er alt klart!
onboarding-done-description = Nyt din hel-kropps opplevelse
onboarding-done-close = Lukk guiden
## Tracker connection setup
onboarding-connect_tracker-back = Gå tilbake til Wi-Fi legitimasjon
onboarding-connect_tracker-title = Koble til trackere
onboarding-connect_tracker-description-p0 = Nå begynner den morsomme delen, å koble til alle trackerne!
onboarding-connect_tracker-description-p1 = Ta og koble til alt som ikke er tilkoblet enda, via en USB port.
onboarding-connect_tracker-issue-serial = Jeg sliter med å koble til!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-connecting = Sender Wi-Fi legitimasjon
onboarding-connect_tracker-connection_status-connected = Koblet til Wi-Fi
onboarding-connect_tracker-connection_status-error = Kunne ikke koble til Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Ser etter trackere
onboarding-connect_tracker-connection_status-handshake = Koblet til Serveren
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Ingen trackere tilkoblet
[one] 1 tracker tilkoblet
*[other] { $amount } trackere tilkoblet
}
onboarding-connect_tracker-next = Jeg har tilkoblet alle mine trackere
## Tracker assignment setup
onboarding-assign_trackers-back = Gå tilbake til Wi-Fi legitimasjon
onboarding-assign_trackers-title = Tildel trackerne
onboarding-assign_trackers-description = La oss velge hvilke trackere som skal hvor. Trykk på stedet der du vil plassere en tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $trackers ->
[one] { $assigned } av 1 tracker tildelt
*[other] { $assigned } av { $trackers } trackere tildelt
}
onboarding-assign_trackers-advanced = Vis avanserte tildelings-plasseringer
onboarding-assign_trackers-next = Jeg har tildelt alle trackerne
## Tracker manual mounting setup
onboarding-manual_mounting-back = Gå tilbake for å tre inn i VR
onboarding-manual_mounting = Manuell montering
onboarding-manual_mounting-description = Trykk på en hver tracker og velg hvilken vei de er montert
onboarding-manual_mounting-auto_mounting = Automatisk montering
onboarding-manual_mounting-next = Neste steg
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Gå tilbake for å tre inn i VR
onboarding-automatic_mounting-title = Monterings Kalibrering
onboarding-automatic_mounting-description = For at SlimeVR trackere skal funke, må vi tildele en monterings-rotasjon til dine trackere for at de skal samstemme med din fysiske tracker-montering.
onboarding-automatic_mounting-manual_mounting = Sett opp montering manuelt
onboarding-automatic_mounting-next = Neste steg
onboarding-automatic_mounting-prev_step = Forrige steg
onboarding-automatic_mounting-done-title = Monterings-rotasjoner kalibrert.
onboarding-automatic_mounting-done-description = Din monterings-kalibrasjon er fullført!
onboarding-automatic_mounting-done-restart = Tilbake til start
onboarding-automatic_mounting-mounting_reset-title = Monterings nullstilling
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Gjør knebøy som om du står på ski, bøyde knær, overkroppen rettet forover og armer bøyd.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Trykk på "Nullstill montering" knappen og vent 3 sekunder før trackernes monterings-rotasjon nullstilles.
onboarding-automatic_mounting-preparation-title = Forberedning
onboarding-automatic_mounting-preparation-step-0 = 1. Stå rett med armene til siden.
onboarding-automatic_mounting-preparation-step-1 = 2. Trykk på "Nullstill" knappen og vent 3 sekunder før trackerne nullstilles.
onboarding-automatic_mounting-put_trackers_on-title = Ta på deg dine trackere
onboarding-automatic_mounting-put_trackers_on-description = For å kalibrere monterings-rotasjonene, må vi bruke trackerne du akkurat tildelte. Ta på deg alle dine trackere, du kan se hvem som er hvem i figuren til høyre.
onboarding-automatic_mounting-put_trackers_on-next = Jeg har alle mine trackere på
## Tracker manual proportions setup
onboarding-manual_proportions-back = Gå tilbake til Nullstillings opplæring
onboarding-manual_proportions-title = Manuelle kropps-proporsjoner
onboarding-manual_proportions-precision = Presisjons justering
onboarding-manual_proportions-auto = Automatisk kalibrering
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Gå tilbake til Nullstillings opplæring
onboarding-automatic_proportions-title = Mål opp kroppen din
onboarding-automatic_proportions-description = For at SlimeVR trackere skal funke, må vi vite lengden på beinene dine. Denne korte kalibreringen kan måle det opp for deg.
onboarding-automatic_proportions-manual = Manuell kalibrering
onboarding-automatic_proportions-prev_step = Forrige steg
onboarding-automatic_proportions-put_trackers_on-title = Ta på deg alle dine trackere
onboarding-automatic_proportions-put_trackers_on-description = For å kalibrere dine proporsjoner, bruker vi trackerne du akkurat har tildelt. Ta på deg alle dine trackere, du kan se hvem som går hvor i figuren til høyre.
onboarding-automatic_proportions-put_trackers_on-next = Jeg har alle mine trackere på
onboarding-automatic_proportions-preparation-title = Forberedning
onboarding-automatic_proportions-preparation-description = Plasser en stol rett bak deg innenfor ditt play space. Vær forberedt på å sette deg ned i løpet av autobein oppsettet.
onboarding-automatic_proportions-preparation-next = Jeg er foran en stol
onboarding-automatic_proportions-start_recording-title = Gjør deg klar til å bevege deg
onboarding-automatic_proportions-start_recording-description = Vi kommer nå til å spille inn noen spesifikke poseringer og bevegelser. Disse vil bli vist i den neste skjermen. Gjør deg klar til å starte når du trykker på knappen!
onboarding-automatic_proportions-start_recording-next = Start Innspilling
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = Innspilling pågår...
onboarding-automatic_proportions-recording-description-p1 = Utfør bevegelsene vist nedenfor:
onboarding-automatic_proportions-recording-steps-0 = Bøy knærne noen få ganger.
onboarding-automatic_proportions-recording-steps-1 = Sett deg i stolen, reis deg så opp.
onboarding-automatic_proportions-recording-steps-2 = Vri overkroppen til venstre, så bøy til høyre.
onboarding-automatic_proportions-recording-steps-3 = Vri overkroppen til høyre, så bøy til venstre.
onboarding-automatic_proportions-recording-steps-4 = Rist på kroppen til tiden går ut.
onboarding-automatic_proportions-recording-processing = Jobber med resultatet
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 sekund igjen
*[other] { $time } sekunder igjen
}
onboarding-automatic_proportions-verify_results-title = Bekreft resultatene
onboarding-automatic_proportions-verify_results-description = Sjekk resultatene under, ser de riktige ut?
onboarding-automatic_proportions-verify_results-results = Spiller inn resultater
onboarding-automatic_proportions-verify_results-processing = Jobber med resultatet
onboarding-automatic_proportions-verify_results-redo = Gjør om innspillingen
onboarding-automatic_proportions-verify_results-confirm = De er riktige
onboarding-automatic_proportions-done-title = Kropp målt og lagret.
onboarding-automatic_proportions-done-description = Din kropps-proposisjons kalibrering er fullført!
## Home
home-no_trackers = Ingen trackere oppdaget eller tildelt

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# or concat text with a translation string in the code, use the appropiate
# features like variables and selectors in each appropiate case!
# And also comment the string if it's something not easy to translate so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Verbinding maken met de server
websocket-connecting = Verbinden met de server
websocket-connection_lost = Verbinding met de server verbroken. Opniew verbinding maken...
## Tips
tips-find_tracker = Weet je niet welke tracker welke is? Schud een tracker en het corresponderende item zal worden gemarkeerd.
tips-do_not_move_heels = Zorg ervoor dat je hielen niet bewegen tijdens de opname!
tips-do_not_move_heels = Zorg ervoor dat je hielen tijdens het opnemen niet bewegen!
## Body parts
body_part-NONE = Niet toegewezen
body_part-HEAD = Hoofd
body_part-NECK = Neck
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = Linkervoet
body_part-LEFT_CONTROLLER = Linkercontroller
## Proportions
skeleton_bone-NONE = Geen
skeleton_bone-HEAD = Hoofdverschuiving
skeleton_bone-NECK = Necklengte
@@ -68,24 +61,21 @@ skeleton_bone-CONTROLLER_Z = Controllerafstand Z
skeleton_bone-ELBOW_OFFSET = Elleboogoffset
## Tracker reset buttons
reset-reset_all = Alle afmetingen resetten
reset-full = Resetten
reset-mounting = Bevestiging resetten
reset-quick = Snel resetten
## Serial detection stuff
serial_detection-new_device-p0 = Nieuw serieel apparaat gedetecteerd!
serial_detection-new_device-p1 = Voer je WiFi-inloggegevens in!
serial_detection-new_device-p2 = Selecteer wat je wil doen
serial_detection-open_wifi = Verbinding maken met WiFi
serial_detection-open_serial = Seriële console openen
serial_detection-open_wifi = Verbinden met WiFi
serial_detection-open_serial = Open serieel console
serial_detection-submit = Verzenden!
serial_detection-close = Sluiten
## Navigation bar
navbar-home = Startpagina
navbar-body_proportions = Lichaams- verhoudingen
navbar-trackers_assign = Tracker- toewijzing
@@ -94,22 +84,15 @@ navbar-onboarding = Setupgids
navbar-settings = Instellingen
## Bounding volume hierarchy recording
bvh-start_recording = BVH opnemen
bvh-recording = Opname bezig...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Overlay in SteamVR weergeven
widget-overlay-is_mirrored_label = Overlay weergeven als spiegel
## Widget: Drift compensation
widget-drift_compensation-clear = Reset huidige drift compensatie waarden
## Widget: Developer settings
widget-developer_mode = Developer Mode
widget-developer_mode-high_contrast = Hoog contrast
widget-developer_mode-precise_rotation = Precieze rotatie
@@ -120,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = Ruwe rotatie
widget-developer_mode-more_info = Meer informatie
## Widget: IMU Visualizer
widget-imu_visualizer = Rotatie
widget-imu_visualizer-rotation_raw = Rauw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Geen status
tracker-status-busy = Bezig
tracker-status-error = Fout
@@ -135,7 +116,6 @@ tracker-status-occluded = Verborgen
tracker-status-ok = OK
## Tracker status columns
tracker-table-column-name = Naam
tracker-table-column-type = Type
tracker-table-column-battery = Batterij
@@ -148,21 +128,18 @@ tracker-table-column-position = Positie X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Voorzijde
tracker-rotation-left = Links
tracker-rotation-right = Rechts
tracker-rotation-back = Achterzijde
## Tracker information
tracker-infos-manufacturer = Fabrikant
tracker-infos-display_name = Weergavenaam
tracker-infos-custom_name = Aangepaste naam
tracker-infos-url = Tracker URL
## Tracker settings
tracker-settings-back = Terug naar trackerslijst
tracker-settings-title = Trackersinstellingen
tracker-settings-assignment_section = Toewijzing
@@ -177,24 +154,21 @@ tracker-settings-drift_compensation_section-edit = Laat drift compensatie toe
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Trackernaam
tracker-settings-name_section-description = Geef een schattige bijnaam :)
tracker-settings-name_section-placeholder = NightyBeast's linkerbeen
tracker-settings-name_section-description = Geef een schattige bijnaam :)
## Tracker part card info
tracker-part_card-no_name = Geen naam
tracker-part_card-unassigned = Niet toegewezen
## Body assignment menu
body_assignment_menu = Waar wil je deze tracker bevestigen?
body_assignment_menu-description = Kies een locatie waar je deze tracker wilt toewijzen. Als alternatief kun je kiezen om alle trackers tegelijk te beheren in plaats van één voor één.
body_assignment_menu-description = Kies een locatie waar je deze tracker wilt toewijzen. Alternatief kun je kiezen om alle trackers tegelijk te beheren in plaats van één voor één.
body_assignment_menu-show_advanced_locations = Geavanceerde bevestigingslocaties weergeven
body_assignment_menu-manage_trackers = Beheer alle trackers
body_assignment_menu-unassign_tracker = Tracker niet toewijzen
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -223,24 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } linkerdij?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } linkerenkel?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } linkervoet?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } linkercontroller?
tracker_selection_menu-unassigned = Niet toegewezen trackers
tracker_selection_menu-assigned = Toegewezen trackers
tracker_selection_menu-dont_assign = Niet toewijzen
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Waarschuwing:</b> Een nektracker kan dodelijk zijn indien deze te strak wordt afgesteld,
de band kan de bloedsomloop naar je hoofd afsnijden!
tracker_selection_menu-neck_warning-done = Ik begrijp de risico's
tracker_selection_menu-neck_warning-cancel = Annuleren
## Mounting menu
mounting_selection_menu = Waar wil je deze tracker hebben bevestigd?
mounting_selection_menu-close = Sluiten
## Sidebar settings
settings-sidebar-title = Instellingen
settings-sidebar-general = Algemeen
settings-sidebar-tracker_mechanics = Trackersinstellingen
@@ -252,7 +218,6 @@ settings-sidebar-utils = Hulpmiddelen
settings-sidebar-serial = Serieel console
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackers
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -270,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Ellebogen
settings-general-steamvr-trackers-hands = Handen
## Tracker mechanics
settings-general-tracker_mechanics = Tracker aanpassingen
settings-general-tracker_mechanics-filtering = Filtering
# This also cares about multilines
@@ -295,7 +259,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Compensatie
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Gebruik de laatste x resets
## FK/Tracking settings
settings-general-fk_settings = Tracking instellingen
settings-general-fk_settings-leg_tweak = Aanpassingen van tracking gedrag voor benen
settings-general-fk_settings-leg_tweak-description = Floor-clip verminderd de kans dat je voeten door de grond gaan, maar kan problemen veroorzaken als je op je knieën bent. Skating-correctie corrigeert ongewenst glijden van je voeten, maar kan de nauwkeurigheid in bepaalde bewegingspatronen verminderen.
@@ -312,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating-corre
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Verander de manier waarop de armen worden getrackt.
settings-general-fk_settings-arm_fk-force_arms = Dwing armen vanuit HMD
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Skeleton instellingen
settings-general-fk_settings-skeleton_settings-description = Schakel skeleton instellingen in of uit. Het is aanbevolen om deze aan te laten.
settings-general-fk_settings-skeleton_settings-extended_spine = Uitgebreide rug
@@ -322,17 +286,15 @@ settings-general-fk_settings-vive_emulation-description = Emuleer de problemen m
settings-general-fk_settings-vive_emulation-label = Vive-emulatie inschakelen
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Gesture control
settings-general-gesture_control-subtitle = Op tik gebaseerde resets
settings-general-gesture_control-description = Maakt het mogelijk om resets te activeren door op een tracker te tikken. De tracker het hoogst op je bovenlichaam wordt gebruikt voor Quick Reset, de tracker het hoogst op je linkerbeen voor Reset en de tracker het hoogst op je rechterbeen voor Mounting Reset. Het moet worden vermeld dat tikken binnen 0,6 seconden moeten gebeuren om geregistreerd te worden.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tik
*[other] { $amount } tikken
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 tik
*[other] { $amount } tikken
}
settings-general-gesture_control-quickResetEnabled = Activeer tikken voor snelle reset
settings-general-gesture_control-quickResetDelay = Vertraging snelle reset
settings-general-gesture_control-quickResetTaps = Hoeveelheid tikken voor snelle reset
@@ -344,7 +306,6 @@ settings-general-gesture_control-mountingResetDelay = Vertraging bevestigingskal
settings-general-gesture_control-mountingResetTaps = Hoeveelheid tikken voor bevestigingskalibratie
## Interface settings
settings-general-interface = Interface
settings-general-interface-dev_mode = Ontwikkelaarsmodus
settings-general-interface-dev_mode-description = Deze modus kan nuttig zijn als u diepgaande gegevens nodig hebt of op een geavanceerd niveau wilt communiceren met aangesloten trackers.
@@ -357,28 +318,19 @@ settings-general-interface-lang-description = Verander de standaardtaal die u wi
settings-general-interface-lang-placeholder = Selecteer de te gebruiken taal
## Serial settings
settings-serial = Seriele console
# This cares about multilines
settings-serial-description =
Dit is een live informatiefeed voor seriële communicatie.
Kan handig zijn als u wilt weten dat de firmware werkt.
Dit is een live-informatiefeed voor seriële communicatie.
Kan nuttig zijn voor het debuggen van trackers.
settings-serial-connection_lost = Verbinding met seriële poort verloren, opnieuw verbinden...
settings-serial-reboot = Opnieuw opstarten
settings-serial-factory_reset = Fabrieksinstellingen herstellen
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Waarschuwing:</b> Hiermee wordt de tracker teruggezet naar de fabrieksinstellingen.
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
## OSC router settings
settings-osc-router = OSC-router
# This cares about multilines
settings-osc-router-description =
@@ -403,7 +355,6 @@ settings-osc-router-network-address-description = Stel het adres in waarnaar geg
settings-osc-router-network-address-placeholder = IPV4-adres
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -432,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = Voeten
settings-osc-vrchat-network-trackers-elbows = Ellebogen
## Setup/onboarding menu
onboarding-skip = Setupgids overslaan
onboarding-continue = Doorgaan
onboarding-wip = WIP
## Wi-Fi setup
## WiFi setup
onboarding-wifi_creds-back = Ga terug naar de introductie
onboarding-wifi_creds = Voer de WiFi-inloggegevens in
# This cares about multilines
@@ -455,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Vul paswoord in
## Mounting setup
onboarding-reset_tutorial-back = Ga terug naar de bevestigingskalibratie
onboarding-reset_tutorial = Reset tutorial
onboarding-reset_tutorial-description = Deze stap is nog niet afgewerkt, druk gewoon op doorgaan.
## Setup start
onboarding-home = Welkom bij SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -470,68 +417,55 @@ onboarding-home-description =
onboarding-home-start = Laten we beginnen!
## Enter VR part of setup
onboarding-enter_vr-back = Ga terug naar de sectie voor toewijzing van trackers
onboarding-enter_vr-title = Tijd om VR in te gaan!
onboarding-enter_vr-description = Doe al je trackers aan en ga dan in VR!
onboarding-enter_vr-ready = Gereed!
## Setup done
onboarding-done-title = Je bent klaar!
onboarding-done-description = Geniet van je full-body ervaring
onboarding-done-close = Sluit de gids
## Tracker connection setup
onboarding-connect_tracker-back = Ga terug naar de instellingen voor WiFi-configuratie
onboarding-connect_tracker-title = Trackers verbinden
onboarding-connect_tracker-description-p0 = Nu het leuke gedeelte, verbind al je trackers!
onboarding-connect_tracker-description-p1 = Gebruik een USB-kabel om alle trackers te verbinden die nog niet verbonden zijn.
onboarding-connect_tracker-issue-serial = Ik heb problemen met verbinden!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Op zoek naar trackers
onboarding-connect_tracker-connection_status-serial_init = Verbinding maken met een serieel apparaat
onboarding-connect_tracker-connection_status-provisioning = Wifi-inloggegevens verzenden
onboarding-connect_tracker-connection_status-connecting = Wifi-inloggegevens verzenden
onboarding-connect_tracker-connection_status-looking_for_server = Op zoek naar server
onboarding-connect_tracker-connection_status-connection_error = Kan geen verbinding maken met Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Kan de server niet vinden
onboarding-connect_tracker-connection_status-done = Verbonden met de server
onboarding-connect_tracker-connection_status-connected = Verbonden via WiFi
onboarding-connect_tracker-connection_status-error = Kan geen verbinding maken via WiFi
onboarding-connect_tracker-connection_status-start_connecting = Zoeken naar trackers
onboarding-connect_tracker-connection_status-handshake = Verbonden met de server
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Geen trackers
[one] 1 tracker
*[other] { $amount } trackers
} verbonden
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] Geen trackers
[one] 1 tracker
*[other] { $amount } trackers
} verbonden
onboarding-connect_tracker-next = Ik heb al mijn trackers verbonden
## Tracker assignment setup
onboarding-assign_trackers-back = Ga terug naar de instellingen voor WiFi-configuratie
onboarding-assign_trackers-title = Trackers toewijzen
onboarding-assign_trackers-description = Laten we de bevesteging van je trackers bepalen. Klik op de lichaamslocatie waar je een tracker wilt toewijzen.
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } van { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} toegewezen
onboarding-assign_trackers-assigned = { $assigned } van { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} toegewezen
onboarding-assign_trackers-advanced = Geavanceerde toewijzingslocaties weergeven
onboarding-assign_trackers-next = Ik heb alle trackers toegewezen
## Tracker assignment warnings
## Tracker manual mounting setup
onboarding-manual_mounting-back = Ga terug naar de VR sectie
onboarding-manual_mounting = Handmatige bevestiging
onboarding-manual_mounting-description = Klik op elke tracker en selecteer op welke manier ze zijn bevestigd
@@ -539,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = Automatische bevestiging
onboarding-manual_mounting-next = Volgende stap
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Ga terug naar de VR sectie
onboarding-automatic_mounting-title = Bevestigingskalibratie
onboarding-automatic_mounting-description = Om je trackers te laten werken, moet de rotatie worden ingesteld hoe deze zijn bevestigd op je lichaam.
@@ -560,14 +493,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Om bevestigingsrotat
onboarding-automatic_mounting-put_trackers_on-next = Ik heb al mijn trackers aan
## Tracker manual proportions setup
onboarding-manual_proportions-back = Ga terug naar de reset tutorial
onboarding-manual_proportions-title = Handmatige lichaamsverhoudingen
onboarding-manual_proportions-precision = Precisie-aanpassing
onboarding-manual_proportions-auto = Automatische kalibratie
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Ga terug naar de reset tutorial
onboarding-automatic_proportions-title = Meet je lichaam
onboarding-automatic_proportions-description = Om SlimeVR-trackers te laten werken, moeten we de lengte van je botten weten. Deze korte kalibratie meet het voor je.
@@ -592,11 +523,10 @@ onboarding-automatic_proportions-recording-steps-3 = Draai je bovenlichaam naar
onboarding-automatic_proportions-recording-steps-4 = Wiebel rond tot de timer is afgelopen.
onboarding-automatic_proportions-recording-processing = Resultaat verwerken
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 seconde resterend
*[other] { $time } seconden resterend
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 seconde resterend
*[other] { $time } seconden resterend
}
onboarding-automatic_proportions-verify_results-title = Resultaten controleren
onboarding-automatic_proportions-verify_results-description = Controleer de resultaten hieronder, zien ze er correct uit?
onboarding-automatic_proportions-verify_results-results = Opnameresultaten
@@ -607,5 +537,4 @@ onboarding-automatic_proportions-done-title = Lichaam gemeten en opgeslagen.
onboarding-automatic_proportions-done-description = Je kalibratie voor lichaamsverhoudingen is voltooid!
## Home
home-no_trackers = Geen trackers gedetecteerd of toegewezen

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Łączenie z serwerem
websocket-connection_lost = Połączenie z serwerem zostało utracone. Próba ponownego połączenia...
## Tips
tips-find_tracker = Nie wiesz który tracker to który? Obracaj Trackerem , podczas obracania będzie sie on podświetlał w serwerze.
tips-do_not_move_heels = Upewnij się aby pięty pozostały w bezruchu podczas nagrywania.
## Body parts
body_part-NONE = Nie Przypisano
body_part-HEAD = Głowa
body_part-NECK = Szyja
@@ -30,9 +24,9 @@ body_part-RIGHT_HAND = Prawa Dłoń
body_part-RIGHT_UPPER_LEG = Prawe Udo
body_part-RIGHT_LOWER_LEG = Prawy Podudzie
body_part-RIGHT_FOOT = Prawa Stopa
body_part-RIGHT_CONTROLLER = Prawy kontroler
body_part-RIGHT_CONTROLLER = Right controller
body_part-CHEST = Klatka Piersiowa
body_part-WAIST = Talia
body_part-WAIST = Pas
body_part-HIP = Biodra
body_part-LEFT_SHOULDER = Lewe Ramie
body_part-LEFT_UPPER_ARM = Lewy Biceps
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = Lewa Stopa
body_part-LEFT_CONTROLLER = Left controller
## Proportions
skeleton_bone-NONE = Brak
skeleton_bone-HEAD = Head Shift
skeleton_bone-NECK = Długość Szyi
@@ -63,19 +56,17 @@ skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
skeleton_bone-SHOULDERS_WIDTH = Szerokość Ramion
skeleton_bone-UPPER_ARM = Długość Bicepsa
skeleton_bone-LOWER_ARM = Długość PrzedRamienia
skeleton_bone-CONTROLLER_Y = Controller Distance Y
skeleton_bone-CONTROLLER_Z = Controller Distance Z
skeleton_bone-CONTROLLER_Y = Controller Distance Y
skeleton_bone-ELBOW_OFFSET = Offset Łokcia
## Tracker reset buttons
reset-reset_all = Zresetuj wszystkie wymiary
reset-full = Reset
reset-mounting = Zresetuj Położenie
reset-quick = Szybki Reset
## Serial detection stuff
serial_detection-new_device-p0 = Wykryto Nowe Urządzenie.
serial_detection-new_device-p1 = Wprowadź dane Wi-Fi!
serial_detection-new_device-p2 = Wybierz co chcesz z nim zrobić.
@@ -85,7 +76,6 @@ serial_detection-submit = Potwierdź!
serial_detection-close = Zamknij
## Navigation bar
navbar-home = Strona Główna
navbar-body_proportions = Proporcje Ciała
navbar-trackers_assign = Przydzielenie Trackerów
@@ -94,22 +84,15 @@ navbar-onboarding = Wstępna Konfiguracja
navbar-settings = Ustawienia
## Bounding volume hierarchy recording
bvh-start_recording = Nagraj BVH
bvh-recording = Nagrywam...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Pokaż Overlay w SteamVR
widget-overlay-is_mirrored_label = Pokaż Overlay jako Lustro
## Widget: Drift compensation
widget-drift_compensation-clear = Wyczyść kompensację dryfu
## Widget: Developer settings
widget-developer_mode = Tryb Dewelopera
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
@@ -120,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Brak Statusu
tracker-status-busy = Zajęty
tracker-status-error = Error
@@ -135,7 +116,6 @@ tracker-status-occluded = Zablokowany
tracker-status-ok = Połączono
## Tracker status columns
tracker-table-column-name = Nazwa
tracker-table-column-type = Typ
tracker-table-column-battery = Bateria
@@ -148,21 +128,18 @@ tracker-table-column-position = Pozycja X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Przód
tracker-rotation-left = Lewa
tracker-rotation-right = Prawa
tracker-rotation-back = Tył
## Tracker information
tracker-infos-manufacturer = Producent
tracker-infos-display_name = Wyświetlana Nazwa
tracker-infos-custom_name = Niestandardowa Nazwa
tracker-infos-url = Tracker URL
## Tracker settings
tracker-settings-back = Wróć do listy trackerów
tracker-settings-title = Ustawienia Trackerów
tracker-settings-assignment_section = Przydzielanie
@@ -181,12 +158,10 @@ tracker-settings-name_section-description = Daj mu słodką nazwę :)
tracker-settings-name_section-placeholder = Lewa noga Yexo
## Tracker part card info
tracker-part_card-no_name = Brak Nazwy
tracker-part_card-unassigned = Nieprzydzielony
## Body assignment menu
body_assignment_menu = Gdzie chcesz żeby ten tracker był?
body_assignment_menu-description = Wybierz miejsce gdzie tracker będzie przydzielony. Alternatywnie możesz ustawić wszystkie na raz.
body_assignment_menu-show_advanced_locations = Pokaż zaawansowane położenia
@@ -194,65 +169,55 @@ body_assignment_menu-manage_trackers = Zarządzaj wszystkimi trackerami
body_assignment_menu-unassign_tracker = Usuń przydzielenie
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Which tracker to assign to your
tracker_selection_menu-NONE = Któremu trackerowi chcesz cofnąć przypisanie?
tracker_selection_menu-NONE = Which tracker do you want to be unassigned?
tracker_selection_menu-HEAD = { -tracker_selection-part } head?
tracker_selection_menu-NECK = { -tracker_selection-part } szyja?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } prawe ramię?
tracker_selection_menu-NECK = { -tracker_selection-part } neck?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } right shoulder?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } right upper arm?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } right lower arm?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } prawa ręka?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } prawe udo?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } prawa kostka?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } prawa stopa?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } prawy kontroler?
tracker_selection_menu-CHEST = { -tracker_selection-part } klatka piersiowa?
tracker_selection_menu-WAIST = { -tracker_selection-part } talia?
tracker_selection_menu-HIP = { -tracker_selection-part } biodro?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } lewe ramię?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } right hand?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } right thigh?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } right ankle?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } right foot?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } right controller?
tracker_selection_menu-CHEST = { -tracker_selection-part } chest?
tracker_selection_menu-WAIST = { -tracker_selection-part } waist?
tracker_selection_menu-HIP = { -tracker_selection-part } hip?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } left shoulder?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } left upper arm?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } left lower arm?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } lewa ręka?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } lewe udo?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } lewa kostka?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } lewa stopa?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } lewy kontroler?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } left hand?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = Nieprzydzielone trackery
tracker_selection_menu-assigned = Przydzielone trackery
tracker_selection_menu-dont_assign = Nie przydzielaj
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Ostrzeżenie:</b> Opaska na szyję może być śmiertelna, jeśli zostanie dopasowana zbyt ciasno,
pasek może odciąć krążenie do głowy!
tracker_selection_menu-neck_warning-done = Rozumiem ryzyko
tracker_selection_menu-neck_warning-cancel = Anuluj
## Mounting menu
mounting_selection_menu = Gdzie chciałbyś ten tracker?
mounting_selection_menu-close = Zamknij
## Sidebar settings
settings-sidebar-title = Ustawienia
settings-sidebar-general = Ogólne
settings-sidebar-tracker_mechanics = Tracker mechanics
settings-sidebar-fk_settings = FK settings
settings-sidebar-gesture_control = Sterowanie gestami
settings-sidebar-gesture_control = Gesture control
settings-sidebar-interface = Interfejs
settings-sidebar-osc_router = OSC router
settings-sidebar-utils = Narzędzia
settings-sidebar-serial = Konsola Seryjna
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR trackers
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -262,7 +227,7 @@ settings-general-steamvr-subtitle = SteamVR trackers
settings-general-steamvr-description =
Włącz lub Wyłącz specyficzne pozycje trackowania.
Przydatne jeżeli chcesz więcej kontroli nad SlimeVR.
settings-general-steamvr-trackers-waist = Talia
settings-general-steamvr-trackers-waist = Bruch
settings-general-steamvr-trackers-chest = Klatka Piersiowa
settings-general-steamvr-trackers-feet = Stopy
settings-general-steamvr-trackers-knees = Kolana
@@ -270,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Łokcie
settings-general-steamvr-trackers-hands = Ręce
## Tracker mechanics
settings-general-tracker_mechanics = Tracker mechanics
settings-general-tracker_mechanics-filtering = Filtrowanie
# This also cares about multilines
@@ -285,59 +249,63 @@ settings-general-tracker_mechanics-filtering-type-smoothing-description = Wygła
settings-general-tracker_mechanics-filtering-type-prediction = Przewidywanie
settings-general-tracker_mechanics-filtering-type-prediction-description = Zmniejsza opóźnienie i robi ruchy trochę ostrzejszymi, ale może dodać trochę drgań.
settings-general-tracker_mechanics-filtering-amount = Ilość
settings-general-tracker_mechanics-drift_compensation = Kompensacja dryfu
settings-general-tracker_mechanics-drift_compensation = Drift compensation
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Kompensuje dryf odchylenia IMU poprzez zastosowanie odwrotnej rotacji.
Zmień wysokość kompensacji i do ilu resetów jest branych pod uwagę.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Kompensacja dryfu
Compensates IMU yaw drift by applying an inverse rotation.
Change amount of compensation and up to how many resets are taken into account.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensation
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Użyj maksymalnie x ostatnich resetów
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
## FK/Tracking settings
settings-general-fk_settings = Ustawienia śledzenia
settings-general-fk_settings-leg_tweak = Ulepszenia nóg
settings-general-fk_settings-leg_tweak-description = Klips do podłogi może zmniejszyć lub nawet wyeliminować przywieranie do podłogi, ale może powodować problemy podczas klęczenia. Korekta jazdy na łyżwach koryguje jazdę na łyżwach, ale może zmniejszyć dokładność niektórych wzorców ruchu.
## FK settings
settings-general-fk_settings = Tracking settings
settings-general-fk_settings-leg_tweak = Leg tweaks
settings-general-fk_settings-leg_tweak-description = Floor-clip can Reduce or even eliminates clipping with the floor but may cause problems when on your knees. Skating-correction corrects for ice skating, but can decrease accuracy in certain movement patterns.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Klip podłogowy
settings-general-fk_settings-leg_tweak-floor_clip = Floor clip
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
settings-general-fk_settings-leg_tweak-skating_correction-amount = Skating correction strength
settings-general-fk_settings-arm_fk = Śledzenie ramienia
settings-general-fk_settings-arm_fk-description = Zmień sposób śledzenia ramion.
settings-general-fk_settings-arm_fk = Arm tracking
settings-general-fk_settings-arm_fk-description = Change the way the arms are tracked.
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
settings-general-fk_settings-skeleton_settings = Ustawienia szkieletu
settings-general-fk_settings-skeleton_settings-description = Włącz lub wyłącz ustawienia szkieletu. Zaleca się pozostawienie ich włączonych.
settings-general-fk_settings-skeleton_settings-extended_spine = Wydłużony kręgosłup
settings-general-fk_settings-skeleton_settings-extended_pelvis = Rozszerzona miednica
settings-general-fk_settings-skeleton_settings-extended_knees = Wydłużone kolano
settings-general-fk_settings-vive_emulation-title = Emulacja Vive
settings-general-fk_settings-vive_emulation-description = Naśladuj problemy z trackerem talii, które mają trackery Vive. To żart i pogarsza śledzenie.
settings-general-fk_settings-vive_emulation-label = Włącz emulację Vive
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Skeleton settings
settings-general-fk_settings-skeleton_settings-description = Toggle skeleton settings on or off. It is recommended to leave these on.
settings-general-fk_settings-skeleton_settings-extended_spine = Extended spine
settings-general-fk_settings-skeleton_settings-extended_pelvis = Extended pelvis
settings-general-fk_settings-skeleton_settings-extended_knees = Extended knee
settings-general-fk_settings-vive_emulation-title = Vive emulation
settings-general-fk_settings-vive_emulation-description = Emulate the waist tracker problems that Vive trackers have. This is a joke and makes tracking worse.
settings-general-fk_settings-vive_emulation-label = Enable Vive emulation
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Kontrola Gestami
settings-general-gesture_control-subtitle = Dotknij 2 razy by wykonać szybki reset
settings-general-gesture_control-description = Włącz lub wyłącz opcje szybkiego resetowanie podwójnym dotknięciem. Stuknij 2 razy w jakąkolwiek część trackera na klatce piersiowej aby wykonać szybki reset. Opóźnienie jest czasem pomiędzy stuknięciem a wykonaniem szybkiego resetu.
settings-general-gesture_control-quickResetEnabled = Włącz stuknięcie, aby szybko zresetować
settings-general-gesture_control-quickResetDelay = Opóźnienie szybkiego resetowania
settings-general-gesture_control-quickResetTaps = Dotknięcia do szybkiego resetowania
settings-general-gesture_control-resetEnabled = Włącz stuknij, by zresetować
settings-general-gesture_control-resetDelay = Zresetuj opóźnienie
settings-general-gesture_control-resetTaps = Stuknięcie w celu zresetowania
settings-general-gesture_control-mountingResetEnabled = Włącz stuknięcie, aby zresetować położenie
settings-general-gesture_control-mountingResetDelay = Opóźnienie resetowania położenia
settings-general-gesture_control-mountingResetTaps = Zaczepy do resetowania położenia
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Enable tap to quick reset
settings-general-gesture_control-quickResetDelay = Quick reset delay
settings-general-gesture_control-quickResetTaps = Taps for quick reset
settings-general-gesture_control-resetEnabled = Enable tap to reset
settings-general-gesture_control-resetDelay = Reset delay
settings-general-gesture_control-resetTaps = Taps for reset
settings-general-gesture_control-mountingResetEnabled = Enable tap to reset mounting
settings-general-gesture_control-mountingResetDelay = Mounting reset delay
settings-general-gesture_control-mountingResetTaps = Taps for mounting reset
## Interface settings
settings-general-interface = Interfejs
settings-general-interface-dev_mode = Tryb Dewelopera
settings-general-interface-dev_mode-description = Ten tryb przydaje się do sprawdzania większej ilości danych.
@@ -350,88 +318,76 @@ settings-general-interface-lang-description = Zmień podstawowy język jaki chce
settings-general-interface-lang-placeholder = Wybierz Język który będziesz używać
## Serial settings
settings-serial = Serial Console
# This cares about multilines
settings-serial-description =
To jest źródło informacji na żywo dla komunikacji szeregowej.
Może być przydatny, jeśli chcesz wiedzieć, czy oprogramowanie układowe działa.
settings-serial-connection_lost = Utracono połączenie z portem szeregowym, ponowne łączenie...
settings-serial-reboot = Ponowne uruchomienie
settings-serial-factory_reset = Przywrócenie ustawień fabrycznych
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Ostrzeżenie:</b> Spowoduje to zresetowanie trackera do ustawień fabrycznych.
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
This is a live information feed for serial communication.
May be useful if you need to know the firmware is acting up.
settings-serial-connection_lost = Connection to serial lost, Reconnecting...
settings-serial-reboot = Reboot
settings-serial-factory_reset = Factory Reset
settings-serial-get_infos = Get Infos
settings-serial-serial_select = Select a serial port
settings-serial-auto_dropdown_item = Auto
## OSC router settings
settings-osc-router = OSC router
# This cares about multilines
settings-osc-router-description =
Przekaż wiadomości OSC z innego programu.
Przydatne na przykład do używania innego programu OSC z VRChat.
Forward OSC messages from another program.
Useful for using another OSC program with VRChat for example.
settings-osc-router-enable = Enable
settings-osc-router-enable-description = Przełącz przekazywanie wiadomości.
settings-osc-router-enable-description = Toggle the forwarding of messages.
settings-osc-router-enable-label = Enable
settings-osc-router-network = Porty sieciowe
settings-osc-router-network = Network ports
# This cares about multilines
settings-osc-router-network-description =
Ustaw porty do odbierania i wysyłania danych.
Mogą to być takie same porty, jak inne porty używane na serwerze SlimeVR.
Set the ports for listening and sending data.
These can be the same as other ports used in the SlimeVR server.
settings-osc-router-network-port_in =
.label = Port In
.placeholder = Port in (default: 9002)
settings-osc-router-network-port_out =
.label = Port Out
.placeholder = Port out (default: 9000)
settings-osc-router-network-address = Adres sieciowy
settings-osc-router-network-address-description = Ustaw adres, na który mają być wysyłane dane.
settings-osc-router-network-address = Network address
settings-osc-router-network-address-description = Set the address to send out data at.
settings-osc-router-network-address-placeholder = IPV4 address
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
Zmień ustawienia specyficzne dla VRChat, aby odbierać i wysyłać dane HMD
dane trackerów dla FBT (działa na samodzielnym Quest).
Change VRChat-specific settings to receive HMD data and send
trackers data for FBT (works on Quest standalone).
settings-osc-vrchat-enable = Enable
settings-osc-vrchat-enable-description = Przełącz wysyłanie i odbieranie danych.
settings-osc-vrchat-enable-description = Toggle the sending and receiving of data.
settings-osc-vrchat-enable-label = Enable
settings-osc-vrchat-network = Porty sieciowe
settings-osc-vrchat-network-description = Ustaw porty do odbierania i wysyłania danych do VRChat.
settings-osc-vrchat-network = Network ports
settings-osc-vrchat-network-description = Set the ports for listening and sending data to VRChat.
settings-osc-vrchat-network-port_in =
.label = Port In
.placeholder = Port in (default: 9001)
settings-osc-vrchat-network-port_out =
.label = Port Out
.placeholder = Port out (default: 9000)
settings-osc-vrchat-network-address = Adres sieciowy
settings-osc-vrchat-network-address-description = Wybierz adres, na który chcesz wysłać dane do VRChat (sprawdź ustawienia Wi-Fi na swoim urządzeniu).
settings-osc-vrchat-network-address = Network address
settings-osc-vrchat-network-address-description = Choose which address to send out data to VRChat (check your Wi-Fi settings on your device).
settings-osc-vrchat-network-address-placeholder = VRChat ip address
settings-osc-vrchat-network-trackers = Trackers
settings-osc-vrchat-network-trackers-description = Przełącz wysyłanie określonych trackerów przez OSC.
settings-osc-vrchat-network-trackers-chest = Klatka piersiowa
settings-osc-vrchat-network-trackers-waist = Talia
settings-osc-vrchat-network-trackers-knees = Kolana
settings-osc-vrchat-network-trackers-feet = Stopy
settings-osc-vrchat-network-trackers-elbows = Łokcie
settings-osc-vrchat-network-trackers-description = Toggle the sending of specific trackers via OSC.
settings-osc-vrchat-network-trackers-chest = Chest
settings-osc-vrchat-network-trackers-waist = Waist
settings-osc-vrchat-network-trackers-knees = Knees
settings-osc-vrchat-network-trackers-feet = Feet
settings-osc-vrchat-network-trackers-elbows = Elbows
## Setup/onboarding menu
onboarding-skip = Pomiń wstępną konfiguracje
onboarding-continue = Kontynuuj
onboarding-wip = W trakcie prac
## Wi-Fi setup
onboarding-wifi_creds-back = Cofnij się do początku
onboarding-wifi_creds = Wpisz dane Wi-Fi
# This cares about multilines
@@ -448,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Powrót do Konfiguracji Położenia trackerów
onboarding-reset_tutorial = Zresetuj poradnik
onboarding-reset_tutorial-description = Ta funkcja jeszcze nie jest skończona.
## Setup start
onboarding-home = Witamy w SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -463,122 +417,62 @@ onboarding-home-description =
onboarding-home-start = Zaczynajmny!
## Enter VR part of setup
onboarding-enter_vr-back = Cofnij do Przydzielania Trackerów
onboarding-enter_vr-title = Czas na wejście do VR!
onboarding-enter_vr-description = Załóż wszystkie trackery a potem wejdź do VR!
onboarding-enter_vr-ready = Jestem gotów
## Setup done
onboarding-done-title = Wszystko ustawione!
onboarding-done-description = Ciesz się Full-Body
onboarding-done-close = Zamknij Poradnik
## Tracker connection setup
onboarding-connect_tracker-back = Cofnij się do ustawień Wi-Fi
onboarding-connect_tracker-title = Połącz trackery
onboarding-connect_tracker-description-p0 = Teraz czas na zabawę, połączenie wszystkich trackerów!
onboarding-connect_tracker-description-p0 = Teraz czas na zabawe, połączenie wszystkich trackerów!
onboarding-connect_tracker-description-p1 = Po prostu połącz wszystkie dotychczas nie połączone trackery za pomocą USB
onboarding-connect_tracker-issue-serial = Mam problemy z połączeniem!
onboarding-connect_tracker-usb = USB Tracker
onboarding-connect_tracker-connection_status-none = Szukanie Trackerów
onboarding-connect_tracker-connection_status-serial_init = Łączenie z urządzeniem szeregowym
onboarding-connect_tracker-connection_status-provisioning = Wysyłanie danych Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Wysyłanie danych Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Szukanie serwera
onboarding-connect_tracker-connection_status-connection_error = Nie można połączyć się z Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Nie można znaleźć serwera
onboarding-connect_tracker-connection_status-done = Połączono z serwerem
onboarding-connect_tracker-connection_status-connected = Połączono z Wi-Fi
onboarding-connect_tracker-connection_status-error = Nie można połączyć z Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Szukanie Trackerów
onboarding-connect_tracker-connection_status-handshake = Połączono z serwerem
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = Połączyłem już wszystkie trackery
## Tracker assignment setup
onboarding-assign_trackers-back = Cofnij się do ustawień Wi-Fi
onboarding-assign_trackers-title = Przydziel Trackery
onboarding-assign_trackers-description = Wybierzmy gdzie idzie jaki tracker. Naciśnij gdzie chcesz go przydzielić
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Pokaż zaawansowane ustawienia pozycji
onboarding-assign_trackers-next = Przydzieliłem już wszystkie trackery
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę, lewe udo i klatkę piersiową, biodro lub talię!
[1] Lewa stopa jest przypisana, ale musisz przypisać również lewe udo i klatkę piersiową, biodro lub talię!
[2] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę i klatkę piersiową, biodro lub talię!
[3] Lewa stopa jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[4] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę i lewe udo!
[5] Lewa stopa jest przypisana, ale musisz przypisać również lewe udo!
[6] Lewa stopa jest przypisana, ale musisz przypisać również lewą kostkę!
*[unknown] Lewa stopa jest przypisana, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę, prawe udo i klatkę piersiową, biodro lub talię!
[1] Prawa stopa jest przypisana, ale musisz przypisać również prawe udo i klatkę piersiową, biodro lub talię!
[2] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę i klatkę piersiową, biodro lub talię!
[3] Prawa stopa jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[4] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę i prawe udo!
[5] Prawa stopa jest przypisana, ale potrzebne jest również przypisanie prawego uda!
[6] Prawa stopa jest przypisana, ale potrzebujesz również przypisać prawą kostkę!
*[unknown] Prawa stopa jest przypisana, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] Lewa kostka jest przypisana, ale musisz przypisać również lewe udo i klatkę piersiową, biodro lub talię!
[1] Lewa kostka jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[2] Lewa kostka jest przypisana, ale musisz przypisać również lewe udo!
*[unknown] Lewa kostka jest przypisana, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] Prawa kostka jest przypisana, ale musisz przypisać również prawe udo i klatkę piersiową, biodro lub talię!
[1] Prawa kostka jest przypisana, ale musisz też przypisać klatkę piersiową, biodro lub talię!
[2] Prawa kostka jest przypisana, ale potrzebne jest również przypisanie prawego uda!
*[unknown] Prawa kostka jest przypisana, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Lewe udo jest przypisane, ale musisz też przypisać klatkę piersiową, biodro lub talię!
*[unknown] Lewe udo jest przypisane, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Prawe udo jest przypisane, ale musisz też przypisać klatkę piersiową, biodro lub talię!
*[unknown] Prawe udo jest przypisane, ale potrzebujesz również przypisać nieznaną nieprzypisaną część ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Biodro jest przypisane, ale musisz też przypisać klatkę piersiową!
*[unknown] Biodro jest przypisane, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Talia jest przypisana, ale klatka piersiowa również musi być przypisana!
*[unknown] Talia jest przypisana, ale potrzebujesz również nieznanej nieprzypisanej części ciała!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Cofnij się żeby wejść do VR
onboarding-manual_mounting = Pozycjonowanie Manualne
onboarding-manual_mounting-description = Kliknij na każdy tracker i wybierz w jaki sposób są zamontowane
onboarding-manual_mounting-auto_mounting = Automatyczne połączenie
onboarding-manual_mounting-auto_mounting = Automatic mounting
onboarding-manual_mounting-next = Następny krok
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Cofnij się żeby wejść do VR
onboarding-automatic_mounting-title = Kalibracja Pozycji
onboarding-automatic_mounting-description = Aby SlimeVR działało prawidłowo, musimy przypisać rotacje trackera aby zgadzała się ona z tą w prawdziwym życiu.
@@ -599,15 +493,13 @@ onboarding-automatic_mounting-put_trackers_on-description = Aby skalibrować rot
onboarding-automatic_mounting-put_trackers_on-next = Mam wszystkie trackery założone
## Tracker manual proportions setup
onboarding-manual_proportions-back = Wróć do samouczka resetowania
onboarding-manual_proportions-back = Go Back to Reset tutorial
onboarding-manual_proportions-title = Manualne Proporcje Ciała
onboarding-manual_proportions-precision = Precyzyjna Regulacja
onboarding-manual_proportions-auto = Automatyczna Kalibracja
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Wróć do samouczka resetowania
onboarding-automatic_proportions-back = Go Back to Reset tutorial
onboarding-automatic_proportions-title = Zmierz swoje ciało
onboarding-automatic_proportions-description = Aby SlimeVR działało poprawnie, musimy znać długość twoich kości. Ta kalibracja zrobi to za ciebie.
onboarding-automatic_proportions-manual = Kalibracja Manualna
@@ -630,6 +522,11 @@ onboarding-automatic_proportions-recording-steps-2 = Przekręć ciało w lewo ,p
onboarding-automatic_proportions-recording-steps-3 = Przekręć ciało w prawo ,po czym przechyl się w lewo.
onboarding-automatic_proportions-recording-steps-4 = Poruszaj się dopuki czas się nie skończy
onboarding-automatic_proportions-recording-processing = Przetwarzanie wyników
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Zweryfikuj Wyniki
onboarding-automatic_proportions-verify_results-description = Sprawdź wyniki poniżej, czy są prawidłowe?
onboarding-automatic_proportions-verify_results-results = Wyniki Nagrywania
@@ -640,5 +537,4 @@ onboarding-automatic_proportions-done-title = Zmierzono oraz Zapisano.
onboarding-automatic_proportions-done-description = Twoja kalibracja ciała została zakończona!
## Home
home-no_trackers = Nie wykryto trackerów

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Conectando ao servidor
websocket-connection_lost = Conexão perdida com o servidor. Reconectando...
## Tips
tips-find_tracker = Não tem certeza qual tracker é qual? Balance o tracker e ele destacará o item correspondente.
tips-do_not_move_heels = Tenha certeza de não mexer seus calcanhares durante a gravação!
## Body parts
body_part-NONE = Não atribuído
body_part-HEAD = Cabeça
body_part-NECK = Pescoço
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = Pé esquerdo
body_part-LEFT_CONTROLLER = Controle esquerdo
## Proportions
skeleton_bone-NONE = Nada
skeleton_bone-HEAD = Deslocamento da Cabeça
skeleton_bone-NECK = Tamanho do Pescoço
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = Distância do Controle Z
skeleton_bone-ELBOW_OFFSET = Compensação do Cotovelo
## Tracker reset buttons
reset-reset_all = Redefinir todas as proporções
reset-full = Reset
reset-mounting = Reset de Posição
reset-quick = Reset Rápido
## Serial detection stuff
serial_detection-new_device-p0 = Novo dispositivo de serial detectado!
serial_detection-new_device-p1 = Insira suas credenciais de Wi-Fi!
serial_detection-new_device-p2 = Selecione o que quer fazer com ele
@@ -85,7 +76,6 @@ serial_detection-submit = Enviar!
serial_detection-close = Fechar
## Navigation bar
navbar-home = Início
navbar-body_proportions = Proporções do corpo
navbar-trackers_assign = Atribuição de Tracker
@@ -94,22 +84,15 @@ navbar-onboarding = Assistente de Configuração
navbar-settings = Opções
## Bounding volume hierarchy recording
bvh-start_recording = Gravar BVH
bvh-recording = Gravando...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Mostrar Overlay na SteamVR
widget-overlay-is_mirrored_label = Mostrar Overlay como espelho
## Widget: Drift compensation
widget-drift_compensation-clear = Refazer compensação de drift
## Widget: Developer settings
widget-developer_mode = Modo de desenvolvedor
widget-developer_mode-high_contrast = High contrast
widget-developer_mode-precise_rotation = Precise rotation
@@ -120,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = Raw rotation
widget-developer_mode-more_info = More info
## Widget: IMU Visualizer
widget-imu_visualizer = Rotation
widget-imu_visualizer-rotation_raw = Raw
widget-imu_visualizer-rotation_preview = Preview
## Tracker status
tracker-status-none = Sem Status
tracker-status-busy = Ocupado
tracker-status-error = Erro
@@ -135,7 +116,6 @@ tracker-status-occluded = Ocluso
tracker-status-ok = Conectado
## Tracker status columns
tracker-table-column-name = Nome
tracker-table-column-type = Tipo
tracker-table-column-battery = Bateria
@@ -148,21 +128,18 @@ tracker-table-column-position = Posição X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Frente
tracker-rotation-left = Esquerda
tracker-rotation-right = Direita
tracker-rotation-back = Atrás
## Tracker information
tracker-infos-manufacturer = Fabricante
tracker-infos-display_name = Nome de exibição
tracker-infos-custom_name = Nome personalizado
tracker-infos-url = URL do Tracker
## Tracker settings
tracker-settings-back = Voltar para lista de trackers
tracker-settings-title = Opções dos trackers
tracker-settings-assignment_section = Atribuição
@@ -171,9 +148,9 @@ tracker-settings-assignment_section-edit = Editar atribuição
tracker-settings-mounting_section = Posicionamento
tracker-settings-mounting_section-description = Aonde o tracker está posicionado?
tracker-settings-mounting_section-edit = Editar posição
tracker-settings-drift_compensation_section = Ligar a compensação de drift
tracker-settings-drift_compensation_section-description = Esse tracker deverá compensar pelo drift quando a compensação de drift estiver ligado?
tracker-settings-drift_compensation_section-edit = Ligar a compensação de drift
tracker-settings-drift_compensation_section = Allow drift compensation
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Allow drift compensation
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Nome do tracker
@@ -181,12 +158,10 @@ tracker-settings-name_section-description = Dê um apelido fofo :)
tracker-settings-name_section-placeholder = Coxa esquerda de NightyBeast
## Tracker part card info
tracker-part_card-no_name = Sem nome
tracker-part_card-unassigned = Não atribuído
## Body assignment menu
body_assignment_menu = Aonde você quer que esse tracker fique?
body_assignment_menu-description = Escolha um local onde você quer que esse tracker seja atribuído. Alternativamente você pode escolher arrumar todos os tracker de uma vez, ao invés de um por um.
body_assignment_menu-show_advanced_locations = Mostrar locais de atribuição avançados
@@ -194,7 +169,6 @@ body_assignment_menu-manage_trackers = Arrumar todos os trackers
body_assignment_menu-unassign_tracker = Desatribuir tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -223,24 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } left thigh?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } left ankle?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } left foot?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } left controller?
tracker_selection_menu-unassigned = Trackers não atribuídos
tracker_selection_menu-assigned = Trackers atribuídos
tracker_selection_menu-dont_assign = Não atribuir
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Atenção:</b> O tracker de pescoço pode ser mortal se ajustado muito apertado,
o strap pode cortar a circulação para sua cabeça!
tracker_selection_menu-neck_warning-done = Eu entendo os riscos
tracker_selection_menu-neck_warning-cancel = Cancelar
## Mounting menu
mounting_selection_menu = Aonde você quer que esse tracker fique?
mounting_selection_menu-close = Fechar
## Sidebar settings
settings-sidebar-title = Opções
settings-sidebar-general = Geral
settings-sidebar-tracker_mechanics = Mecânicas do Tracker
@@ -252,7 +218,6 @@ settings-sidebar-utils = Utilidades
settings-sidebar-serial = Console Serial
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Trackers do SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -270,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Cotovelos
settings-general-steamvr-trackers-hands = Mãos
## Tracker mechanics
settings-general-tracker_mechanics = Mecânicas do Tracker
settings-general-tracker_mechanics-filtering = Filtros
# This also cares about multilines
@@ -285,17 +249,16 @@ settings-general-tracker_mechanics-filtering-type-smoothing-description = Suaviz
settings-general-tracker_mechanics-filtering-type-prediction = Predição
settings-general-tracker_mechanics-filtering-type-prediction-description = Reduz latência e torna os movimentos mais responsivos, porém aumenta tremulação (Jitter).
settings-general-tracker_mechanics-filtering-amount = Quantidade
settings-general-tracker_mechanics-drift_compensation = Compensação de drift
settings-general-tracker_mechanics-drift_compensation = Drift compensation
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Compensa o drift de guinada (yaw) aplicando uma rotação inversa.
Mudar a quantidade de compensação e até quantos resets vão ser levados em conta.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Compensação de drift
settings-general-tracker_mechanics-drift_compensation-amount-label = Quantidade de compensação
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use até x últimos resets
Compensates IMU yaw drift by applying an inverse rotation.
Change amount of compensation and up to how many resets are taken into account.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Drift compensation
settings-general-tracker_mechanics-drift_compensation-amount-label = Compensation amount
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Use up to x last resets
## FK/Tracking settings
settings-general-fk_settings = Opções de Tracker
settings-general-fk_settings-leg_tweak = Ajustes de perna
settings-general-fk_settings-leg_tweak-description = Atravessar o chão pode reduzir ou até eliminar o clipping(atravessar) com o chão porém pode causar problemas quando ajoelhado. Correção de Deslize corrige o ice skating(deslize dos trackers no chão), porém pode diminuir a precisão de certos padrões de movimento.
@@ -312,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Força da cor
settings-general-fk_settings-arm_fk = Opções do Braço
settings-general-fk_settings-arm_fk-description = Muda o jeito que os braços são rastreados.
settings-general-fk_settings-arm_fk-force_arms = Forçar braços do HMD
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Opções do esqueleto
settings-general-fk_settings-skeleton_settings-description = Ligar ou desligar opções do esqueleto. É recomendado deixar eles ligados.
settings-general-fk_settings-skeleton_settings-extended_spine = Estender coluna
@@ -322,17 +286,15 @@ settings-general-fk_settings-vive_emulation-description = Emule o problema de tr
settings-general-fk_settings-vive_emulation-label = Ativar emulação de Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Controle de gestos
settings-general-gesture_control-subtitle = Resets baseados em toques
settings-general-gesture_control-description = Faz com oque os resets sejam ativados tocando um tracker. O Tracker mais alto no seu torso é usado para o Reset Rápido, o tracker mais alto na sua perna esquerda é usado para o Reset, e o tracker mais alto na sua perna direita é usado para o Reset de Posição. Os toques devem ocorrer dentro de 0.6 segundos para serem registrados.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } taps
}
settings-general-gesture_control-quickResetEnabled = Ativar toque para reset rápido
settings-general-gesture_control-quickResetDelay = Delay do reset rápido
settings-general-gesture_control-quickResetTaps = Toques para o reset rápido
@@ -344,7 +306,6 @@ settings-general-gesture_control-mountingResetDelay = Delay do reset de posiçã
settings-general-gesture_control-mountingResetTaps = Toques para o reset de posição
## Interface settings
settings-general-interface = Interface
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
@@ -357,7 +318,6 @@ settings-general-interface-lang-description = Alterar o idioma padrão que prete
settings-general-interface-lang-placeholder = Selecione o idioma que vai usar
## Serial settings
settings-serial = Console Serial
# This cares about multilines
settings-serial-description =
@@ -366,19 +326,11 @@ settings-serial-description =
settings-serial-connection_lost = Conexão com o serial perdida, Reconectando...
settings-serial-reboot = Reiniciar
settings-serial-factory_reset = Restaurar para o padrão de fábrica
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>Atenção:</b> Isso vai restaurar o tracker para o padrão de fábrica.
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
## OSC router settings
settings-osc-router = Roteador OSC
# This cares about multilines
settings-osc-router-description =
@@ -403,7 +355,6 @@ settings-osc-router-network-address-description = Defina o endereço para mandar
settings-osc-router-network-address-placeholder = Endereço IPV4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -432,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = Pés
settings-osc-vrchat-network-trackers-elbows = Cotovelos
## Setup/onboarding menu
onboarding-skip = Pular configurações
onboarding-continue = Continuar
onboarding-wip = Trabalho em progresso
## Wi-Fi setup
onboarding-wifi_creds-back = Voltar para introdução
onboarding-wifi_creds = Insira as credenciais de Wi-Fi
# This cares about multilines
@@ -455,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = Enter password
## Mounting setup
onboarding-reset_tutorial-back = Voltar para a Calibragem de Posição
onboarding-reset_tutorial = Resetar Tutorial
onboarding-reset_tutorial-description = Esse recurso não está concluído, apenas aperte continue
## Setup start
onboarding-home = Bem vindo ao SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -470,92 +417,55 @@ onboarding-home-description =
onboarding-home-start = Vamos configurar!
## Enter VR part of setup
onboarding-enter_vr-back = Voltar para atribuição de Trackers
onboarding-enter_vr-title = Hora de entrar no VR!
onboarding-enter_vr-description = Coloque todos os seus trackers e entre no VR!
onboarding-enter_vr-ready = Estou pronto
## Setup done
onboarding-done-title = Está tudo pronto!
onboarding-done-description = Aproveite sua experiência com full body
onboarding-done-close = Fechar o guia
## Tracker connection setup
onboarding-connect_tracker-back = Voltar para as credenciais de Wi-Fi
onboarding-connect_tracker-title = Conectar os trackers
onboarding-connect_tracker-description-p0 = Agora para a parte divertida, conectando todos os seus trackers!
onboarding-connect_tracker-description-p1 = Simplesmente conecte todos que ainda não estão conectados, via porta USB.
onboarding-connect_tracker-issue-serial = Estou tendo problemas para conectar!
onboarding-connect_tracker-usb = Tracker USB
onboarding-connect_tracker-connection_status-none = Procurando por trackers
onboarding-connect_tracker-connection_status-serial_init = Conectando ao dispositivo serial
onboarding-connect_tracker-connection_status-provisioning = Enviando credenciais de Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Enviando credenciais de Wi-Fi
onboarding-connect_tracker-connection_status-looking_for_server = Procurando servidor
onboarding-connect_tracker-connection_status-connection_error = Não é possível conectar ao Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Não foi possível conectar ao servidor
onboarding-connect_tracker-connection_status-done = Conectado ao servidor
onboarding-connect_tracker-connection_status-connected = Conectado ao Wi-Fi
onboarding-connect_tracker-connection_status-error = Não é possível conectar ao Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = Procurando por trackers
onboarding-connect_tracker-connection_status-handshake = Conectado ao servidor
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] No trackers
[one] 1 tracker
*[other] { $amount } trackers
} connected
onboarding-connect_tracker-next = Eu conectei todos os meus trackers
## Tracker assignment setup
onboarding-assign_trackers-back = Voltar para as credenciais de Wi-Fi
onboarding-assign_trackers-title = Atribuir trackers
onboarding-assign_trackers-description = Vamos escolher onde cada tracker vai. Clique no local onde você quer colocar o tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-assigned = { $assigned } of { $trackers ->
[one] 1 tracker
*[other] { $trackers } trackers
} assigned
onboarding-assign_trackers-advanced = Mostrar locais de atribuição avançados
onboarding-assign_trackers-next = Atribui todos os trackers
## Tracker assignment warnings
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Coxa esquerda está atribuída, porém peito, quadril ou peito também precisam ser atribuídos!
*[unknown] Coxa esquerda está atribuída, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Coxa direita está atribuída, porém peito, quadril ou peito também precisam ser atribuídos!
*[unknown] Coxa direita está atribuída, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Quadril está atribuído, porém o peito também precisa ser atribuído!
*[unknown] Quadril está atribuído, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Cintura está atribuído, porém o peito também precisa ser atribuído!
*[unknown] Cintura está atribuído, porém a parte do corpo desconhecida não atribuída também precisa ser atribuída!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Voltar para entrar no VR
onboarding-manual_mounting = Posicionamento Manual
onboarding-manual_mounting-description = Clique em cada tracker e selecione de que maneira estão posicionados
@@ -563,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = Posicionamento automática
onboarding-manual_mounting-next = Próximo passo
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Voltar para entrar no VR
onboarding-automatic_mounting-title = Calibragem de Posicionamento
onboarding-automatic_mounting-description = Para os trackers do SlimeVR funcionar, nós precisamos atribuir a rotação de posicionamento dos seus trackers para alinhar com a posição física de seus trackers.
@@ -584,14 +493,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Para calibrar as rot
onboarding-automatic_mounting-put_trackers_on-next = Coloquei todos os meus trackers
## Tracker manual proportions setup
onboarding-manual_proportions-back = Voltar para o tutorial de reset
onboarding-manual_proportions-title = Proporções de corpo manuais
onboarding-manual_proportions-precision = Ajuste de precisão
onboarding-manual_proportions-auto = Calibragem Automática
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Voltar para o tutorial de reset
onboarding-automatic_proportions-title = Meça seu corpo
onboarding-automatic_proportions-description = Para os trackers SlimeVR funcionarem, precisamos saber o tamanho dos seus ossos. Essa curta calibragem vai medir isso para você.
@@ -616,11 +523,10 @@ onboarding-automatic_proportions-recording-steps-3 = Gire seu tronco para direit
onboarding-automatic_proportions-recording-steps-4 = Mexa-se até o tempo terminar.
onboarding-automatic_proportions-recording-processing = Processando o resultado
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second left
*[other] { $time } seconds left
}
onboarding-automatic_proportions-verify_results-title = Verificar os resultados
onboarding-automatic_proportions-verify_results-description = Verifique os resultados abaixo, parecem corretos?
onboarding-automatic_proportions-verify_results-results = Gravando os resultados
@@ -631,5 +537,4 @@ onboarding-automatic_proportions-done-title = Corpo medido e salvo.
onboarding-automatic_proportions-done-description = Sua calibragem de proporção de corpo está completa!
## Home
home-no_trackers = Nenhum tracker detectado ou atribuído

View File

@@ -1,668 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Подключение к серверу
websocket-connection_lost = Потеряно соединение с сервером. Переподключение...
## Tips
tips-find_tracker = Не уверены, какой это трекер? Встряхните его, и трекер выделится в списке.
tips-do_not_move_heels = Убедитесь, что ваши пятки не двигаются во время записи!
## Body parts
body_part-NONE = Не привязано
body_part-HEAD = Голова
body_part-NECK = Шея
body_part-RIGHT_SHOULDER = Правое плечо
body_part-RIGHT_UPPER_ARM = Правое предплечье
body_part-RIGHT_LOWER_ARM = Правое нижнее предплечье
body_part-RIGHT_HAND = Правая рука
body_part-RIGHT_UPPER_LEG = Правое бедро
body_part-RIGHT_LOWER_LEG = Правая голень
body_part-RIGHT_FOOT = Правая ступня
body_part-RIGHT_CONTROLLER = Правый контроллер
body_part-CHEST = Грудь
body_part-WAIST = Талия
body_part-HIP = Таз
body_part-LEFT_SHOULDER = Левое плечо
body_part-LEFT_UPPER_ARM = Левое предплечье
body_part-LEFT_LOWER_ARM = Левое нижнее предплечье
body_part-LEFT_HAND = Левая рука
body_part-LEFT_UPPER_LEG = Левое бедро
body_part-LEFT_LOWER_LEG = Левая голень
body_part-LEFT_FOOT = Левая ступня
body_part-LEFT_CONTROLLER = Левый контроллер
## Proportions
skeleton_bone-NONE = Пусто
skeleton_bone-HEAD = Голова
skeleton_bone-NECK = Длина шеи
skeleton_bone-CHEST = Длина груди
skeleton_bone-CHEST_OFFSET = Смещение груди
skeleton_bone-WAIST = Длина талии
skeleton_bone-HIP = Длина таза
skeleton_bone-HIP_OFFSET = Смещение таза
skeleton_bone-HIPS_WIDTH = Ширина бедер
skeleton_bone-UPPER_LEG = Длина бедра
skeleton_bone-LOWER_LEG = Длина голени
skeleton_bone-FOOT_LENGTH = Длинна стопы
skeleton_bone-FOOT_SHIFT = Смещение стопы
skeleton_bone-SKELETON_OFFSET = Смещение скелета
skeleton_bone-SHOULDERS_DISTANCE = Дистанция плеч
skeleton_bone-SHOULDERS_WIDTH = Ширина плеч
skeleton_bone-UPPER_ARM = Длинна предплечья
skeleton_bone-LOWER_ARM = Длинна нижнего предплечья
skeleton_bone-CONTROLLER_Y = Дистанция контроллера Y
skeleton_bone-CONTROLLER_Z = Дистанция контроллера Z
skeleton_bone-ELBOW_OFFSET = Смещение локтя
## Tracker reset buttons
reset-reset_all = Сбросить все пропорции
reset-full = Сброс
reset-mounting = Сбросить крепление
reset-quick = Быстрый сброс
## Serial detection stuff
serial_detection-new_device-p0 = Обнаружено новое устройство!
serial_detection-new_device-p1 = Заполните данные вашего Wi-Fi!
serial_detection-new_device-p2 = Пожалуйста, выберите, что вы хотите с ним сделать
serial_detection-open_wifi = Подключиться к Wi-Fi
serial_detection-open_serial = Открыть консоль
serial_detection-submit = Отправить!
serial_detection-close = Закрыть
## Navigation bar
navbar-home = Дом
navbar-body_proportions = Пропорции тела
navbar-trackers_assign = Назначение трекера
navbar-mounting = Калибровка крепления
navbar-onboarding = Мастер настройки
navbar-settings = Настройки
## Bounding volume hierarchy recording
bvh-start_recording = Запись BVH
bvh-recording = Запись...
## Widget: Overlay settings
widget-overlay = Оверлей
widget-overlay-is_visible_label = Показывать оверлей в SteamVR
widget-overlay-is_mirrored_label = Показывать оверлей как зеркало
## Widget: Drift compensation
widget-drift_compensation-clear = Очистить компенсацию дрифта
## Widget: Developer settings
widget-developer_mode = Режим разработчика
widget-developer_mode-high_contrast = Высокая контрастность
widget-developer_mode-precise_rotation = Точное вращение
widget-developer_mode-fast_data_feed = Быстрый поток данных
widget-developer_mode-filter_slimes_and_hmd = Фильтровать SlimeVR и HMD
widget-developer_mode-sort_by_name = Сортировка по имени
widget-developer_mode-raw_slime_rotation = Вращение без обработки
widget-developer_mode-more_info = Дополнительная информация
## Widget: IMU Visualizer
widget-imu_visualizer = Вращение
widget-imu_visualizer-rotation_raw = RAW
widget-imu_visualizer-rotation_preview = Предпросмотр
## Tracker status
tracker-status-none = Без Статуса
tracker-status-busy = Занят
tracker-status-error = Ошибка
tracker-status-disconnected = Отключен
tracker-status-occluded = Закрыт
tracker-status-ok = ОК
## Tracker status columns
tracker-table-column-name = Имя
tracker-table-column-type = Тип
tracker-table-column-battery = Батарея
tracker-table-column-ping = Пинг
tracker-table-column-tps = TPS
tracker-table-column-temperature = Темп. °C
tracker-table-column-linear-acceleration = Ускорение. X/Y/Z
tracker-table-column-rotation = Поворот X/Y/Z
tracker-table-column-position = Положение X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = Спереди
tracker-rotation-left = Слева
tracker-rotation-right = Справа
tracker-rotation-back = Сзади
## Tracker information
tracker-infos-manufacturer = Производитель
tracker-infos-display_name = Отображаемое имя
tracker-infos-custom_name = Свое имя
tracker-infos-url = URL трекера
## Tracker settings
tracker-settings-back = Вернуться к списку трекеров
tracker-settings-title = Настройки трекера
tracker-settings-assignment_section = Привязка
tracker-settings-assignment_section-description = К какой части тела привязан трекер.
tracker-settings-assignment_section-edit = Изменить привязку
tracker-settings-mounting_section = Положение крепления
tracker-settings-mounting_section-description = Где прикреплен трекер?
tracker-settings-mounting_section-edit = Изменить прикрепление
tracker-settings-drift_compensation_section = Разрешить компенсацию дрифта
tracker-settings-drift_compensation_section-description = Should this tracker compensate for its drift when drift compensation is enabled?
tracker-settings-drift_compensation_section-edit = Разрешить компенсацию дрифта
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = Имя трекера
tracker-settings-name_section-description = Дай ему милое имя :)
tracker-settings-name_section-placeholder = Левая нога NightyBeast'а
## Tracker part card info
tracker-part_card-no_name = Нет имени
tracker-part_card-unassigned = Не привязан
## Body assignment menu
body_assignment_menu = Где вы хотите, чтобы был этот трекер?
body_assignment_menu-description = Выберите местоположение, куда вы хотите назначить этот трекер. В качестве альтернативы вы можете выбрать управление всеми трекерами сразу, а не по одному.
body_assignment_menu-show_advanced_locations = Показать дополнительные места привязки
body_assignment_menu-manage_trackers = Настроить все трекеры
body_assignment_menu-unassign_tracker = Отвязать трекер
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = Какой трекер ты хочешь привязать к
tracker_selection_menu-NONE = Какой трекер вы хотите оставить неназначенным?
tracker_selection_menu-HEAD = { -tracker_selection-part } голове?
tracker_selection_menu-NECK = { -tracker_selection-part } шее?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part } правому плечу?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part } правому предплечью?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part } правому нижнему предплечью?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part } провой руке?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part } правому бедру?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part } правой лодышке?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part } правой ступне?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part } правому контроллеру?
tracker_selection_menu-CHEST = { -tracker_selection-part } груди?
tracker_selection_menu-WAIST = { -tracker_selection-part } талии?
tracker_selection_menu-HIP = { -tracker_selection-part } тазу?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part } левому плечу?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part } левому предплечью?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part } левому нижнему предплечью?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part } левой руке?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } левому бедру?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } левой лодышке?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } левой ступне?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } левому контроллеру?
tracker_selection_menu-unassigned = Не привязанные трекеры
tracker_selection_menu-assigned = Привязанные трекеры
tracker_selection_menu-dont_assign = Не привязывать
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>Внимание:</b> Трекер шеи может быть смертельно опасен, если его отрегулировать слишком туго,
ремешок может нарушить кровообращение в вашей голове!
tracker_selection_menu-neck_warning-done = Я понимаю риски
tracker_selection_menu-neck_warning-cancel = Отмена
## Mounting menu
mounting_selection_menu = Где ты хочешь чтобы этот трекер был?
mounting_selection_menu-close = Закрыть
## Sidebar settings
settings-sidebar-title = Настройки
settings-sidebar-general = Общие
settings-sidebar-tracker_mechanics = Механики трекеров
settings-sidebar-fk_settings = Настройки трекеров
settings-sidebar-gesture_control = Настройки жестов
settings-sidebar-interface = Интерфейс
settings-sidebar-osc_router = OSC роутер
settings-sidebar-utils = Утилиты
settings-sidebar-serial = Консоль
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR трекеры
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
Включите или отключите определенные трекеры 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
settings-general-tracker_mechanics = Механики трекеров
settings-general-tracker_mechanics-filtering = Фильтр
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
Выберите тип фильтрации для ваших трекеров.
Прогнозирование предсказывает движение, в то время как сглаживание сглаживает движение.
settings-general-tracker_mechanics-filtering-type = Тип фильтра
settings-general-tracker_mechanics-filtering-type-none = Нет фильтра
settings-general-tracker_mechanics-filtering-type-none-description = Используется вращение как есть. Нет никакой фильтрации.
settings-general-tracker_mechanics-filtering-type-smoothing = Сглаживание
settings-general-tracker_mechanics-filtering-type-smoothing-description = Сглаживает движения, но добавляет некоторую задержку.
settings-general-tracker_mechanics-filtering-type-prediction = Предсказывание
settings-general-tracker_mechanics-filtering-type-prediction-description = Уменьшает задержку и делает движения более быстрыми, но может увеличить дрожание.
settings-general-tracker_mechanics-filtering-amount = Количество
settings-general-tracker_mechanics-drift_compensation = Компенсация дрифта
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
Компенсирует дрифт по рысканию IMU путем применения обратного вращения.
Измените размер компенсации и до скольких сбросов учитывается.
settings-general-tracker_mechanics-drift_compensation-enabled-label = Компенсация дрифта
settings-general-tracker_mechanics-drift_compensation-amount-label = Кол-во компенсации
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Используйте до x последних сбросов
## FK/Tracking settings
settings-general-fk_settings = Настройки трекеров
settings-general-fk_settings-leg_tweak = Починка ног
settings-general-fk_settings-leg_tweak-description = Привязка к полу может уменьшить или даже вовсе исключить сцепление с полом, но может вызвать проблемы, когда вы стоите на коленях. Катание на коньках-коррекция корректирует катание на коньках, но может снизить точность в определенных моделях движений.
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = Привязка к полу
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = Коррекция скольжения
settings-general-fk_settings-leg_tweak-skating_correction-amount = Сила коррекции скольжения
settings-general-fk_settings-arm_fk = Трекинг руки
settings-general-fk_settings-arm_fk-description = Измените способ отслеживания рук.
settings-general-fk_settings-arm_fk-force_arms = Руки от HMD
settings-general-fk_settings-skeleton_settings = Настройки скелета
settings-general-fk_settings-skeleton_settings-description = Включите или выключите настройки скелета. Рекомендуется оставить их включенными.
settings-general-fk_settings-skeleton_settings-extended_spine = Удлиненный позвоночник
settings-general-fk_settings-skeleton_settings-extended_pelvis = Расширенный таз
settings-general-fk_settings-skeleton_settings-extended_knees = Вытянутое колено
settings-general-fk_settings-vive_emulation-title = Эмуляция Vive
settings-general-fk_settings-vive_emulation-description = Имитируйте проблемы с отслеживанием талии, которые возникают у трекеров Vive. Это шутка, и она ухудшает отслеживание.
settings-general-fk_settings-vive_emulation-label = Включить эмуляцию Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Контроль жестами
settings-general-gesture_control-subtitle = Сброс после нажатия
settings-general-gesture_control-description = Позволяет запускать сброс настроек нажатием на трекер. Трекер, расположенный выше всего на вашем торсе, используется для быстрого сброса, трекер, расположенный выше всего на вашей левой ноге, используется для сброса, а трекер, расположенный выше всего на вашей правой ноге, используется для сброса установок. Следует отметить, что для регистрации нажатия должны происходить в течение 0,6 секунды.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] { $amount } нажатие
[few] { $amount } нажатия
[many] { $amount } нажатий
*[other] { $amount } нажатий
}
settings-general-gesture_control-quickResetEnabled = Включить нажатие для быстрого сброса
settings-general-gesture_control-quickResetDelay = Задержка быстрого сброса
settings-general-gesture_control-quickResetTaps = Нажатия для быстрого сброса
settings-general-gesture_control-resetEnabled = Включить нажатие для сброса
settings-general-gesture_control-resetDelay = Сбросить задержку
settings-general-gesture_control-resetTaps = Нажатия для сброса
settings-general-gesture_control-mountingResetEnabled = Включить нажатия для сброса крепления
settings-general-gesture_control-mountingResetDelay = Задержка сброса крепления
settings-general-gesture_control-mountingResetTaps = Нажатия для сброса крепления
## Interface settings
settings-general-interface = Интерфейс
settings-general-interface-dev_mode = Режим разработчика
settings-general-interface-dev_mode-description = Этот режим может быть полезен, если вам нужны подробные данные или для взаимодействия с подключенными трекерами на более продвинутом уровне.
settings-general-interface-dev_mode-label = Режим разработчика
settings-general-interface-serial_detection = Обнаружение серийного устройства
settings-general-interface-serial_detection-description = Эта опция будет показывать всплывающее окно каждый раз, когда вы подключаете новое серийное устройство, которое может быть трекером. Это помогает улучшить процесс настройки трекера.
settings-general-interface-serial_detection-label = Обнаружение серийного устройства
settings-general-interface-lang = Выбрать язык
settings-general-interface-lang-description = Измените язык по умолчанию, который вы хотите использовать.
settings-general-interface-lang-placeholder = Выберите язык для использования
## Serial settings
settings-serial = Серийная консоль
# This cares about multilines
settings-serial-description =
Это оперативный информационный канал для серийной связи.
Может быть полезно, если вам нужно знать, что прошивка работает неправильно.
settings-serial-connection_lost = Соединение с серийным портом потеряно, повторное подключение...
settings-serial-reboot = Перезагрузить
settings-serial-factory_reset = Полный сброс
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
</b>Предупреждение:</b> Это приведет к полному сбросу настроек трекера.
Это означает, что 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 = Авто
## OSC router settings
settings-osc-router = OSC роутер
# This cares about multilines
settings-osc-router-description =
Пересылать OSC-сообщения из другой программы.
Полезно для использования другой программы OSC, например, с VRChat.
settings-osc-router-enable = Включить
settings-osc-router-enable-description = Включить/отключить переадресацию сообщений.
settings-osc-router-enable-label = Включить
settings-osc-router-network = Порты сети
# This cares about multilines
settings-osc-router-network-description =
Установите порты для прослушивания и отправки данных.
Они могут быть такими же, как и другие порты, используемые на сервере SlimeVR.
settings-osc-router-network-port_in =
.label = Порт Вход
.placeholder = Порт Вход (default: 9002)
settings-osc-router-network-port_out =
.label = Порт выход
.placeholder = Порт выход (default: 9000)
settings-osc-router-network-address = Адрес сети
settings-osc-router-network-address-description = Задайте адрес для отправки данных.
settings-osc-router-network-address-placeholder = IPV4 адрес
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Трекеры
# This cares about multilines
settings-osc-vrchat-description =
Измените настройки, специфичные для VRChat, чтобы получать данные HMD и отправлять
данные трекеров для FBT (работает с Quest).
settings-osc-vrchat-enable = Включить
settings-osc-vrchat-enable-description = Переключайте отправку и получение данных.
settings-osc-vrchat-enable-label = Включить
settings-osc-vrchat-network = Порты сети
settings-osc-vrchat-network-description = Установите порты для прослушивания и отправки данных в VRChat.
settings-osc-vrchat-network-port_in =
.label = Порт вход
.placeholder = Порт вход (default: 9001)
settings-osc-vrchat-network-port_out =
.label = Порт выход
.placeholder = Порт выход (default: 9000)
settings-osc-vrchat-network-address = Адрес сети
settings-osc-vrchat-network-address-description = Выберите, на какой адрес отправлять данные в VRChat (проверьте настройки Wi-Fi на вашем устройстве).
settings-osc-vrchat-network-address-placeholder = VRChat ip адрес
settings-osc-vrchat-network-trackers = Трекеры
settings-osc-vrchat-network-trackers-description = Переключите отправку определенных трекеров через OSC.
settings-osc-vrchat-network-trackers-chest = Грудь
settings-osc-vrchat-network-trackers-waist = Талия
settings-osc-vrchat-network-trackers-knees = Колени
settings-osc-vrchat-network-trackers-feet = Ступни
settings-osc-vrchat-network-trackers-elbows = Локти
## Setup/onboarding menu
onboarding-skip = Пропустить установку
onboarding-continue = Продолжить
onboarding-wip = В разработке
## Wi-Fi setup
onboarding-wifi_creds-back = Вернуться к введению
onboarding-wifi_creds = Вставьте данные Wi-Fi
# This cares about multilines
onboarding-wifi_creds-description =
Трекеры будут использовать эти учетные данные для беспроводного подключения.
Пожалуйста, используйте данные Wi_Fi, к которому вы в данный момент подключены.
onboarding-wifi_creds-skip = Пропустить настройки Wi-Fi
onboarding-wifi_creds-submit = Отправить!
onboarding-wifi_creds-ssid =
.label = Имя Wi-Fi
.placeholder = Введите имя Wi-Fi
onboarding-wifi_creds-password =
.label = Пароль
.placeholder = Введите пароль Wi-Fi
## Mounting setup
onboarding-reset_tutorial-back = Вернуться к калибровке крепления
onboarding-reset_tutorial = Сбросить туториал
onboarding-reset_tutorial-description = Эта функция не завершена, просто нажмите продолжить
## Setup start
onboarding-home = Добро пожаловать в SlimeVR!
# This cares about multilines and it's centered!!
onboarding-home-description =
Обеспечение полного отслеживания тела
для всех
onboarding-home-start = Давайте все настроим!
## Enter VR part of setup
onboarding-enter_vr-back = Вернуться к привязке трекеров
onboarding-enter_vr-title = Время зайти в VR!
onboarding-enter_vr-description = Наденьте все ваши трекеры и зайдите в VR!
onboarding-enter_vr-ready = Я готов
## Setup done
onboarding-done-title = Вы готовы!
onboarding-done-description = Наслаждайтесь игре!
onboarding-done-close = Закрыть гид
## Tracker connection setup
onboarding-connect_tracker-back = Вернуться к учетным данным Wi-Fi
onboarding-connect_tracker-title = Подключить трекеры
onboarding-connect_tracker-description-p0 = Теперь самое интересное - подключение всех трекеров!
onboarding-connect_tracker-description-p1 = Просто подключите все, что еще не подключены, через USB-порт.
onboarding-connect_tracker-issue-serial = У меня проблемы с подключением!
onboarding-connect_tracker-usb = USB Трекер
onboarding-connect_tracker-connection_status-none = Поиск трекеров
onboarding-connect_tracker-connection_status-serial_init = Подключение к устройству
onboarding-connect_tracker-connection_status-provisioning = Отправка данных Wi-Fi
onboarding-connect_tracker-connection_status-connecting = Отправить данные Wi_Fi
onboarding-connect_tracker-connection_status-looking_for_server = Поиск сервера
onboarding-connect_tracker-connection_status-connection_error = Не удается подключиться к Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = Не удалось найти сервер
onboarding-connect_tracker-connection_status-done = Подключен к серверу
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Нет подключенных трекеров
[one] { $amount } подключенный трекер
[many] { $amount } подключённых трекеров
[few] { $amount } подключённых трекеров
*[other] { $amount } подключённых трекеров
}
onboarding-connect_tracker-next = Я подключил все трекеры!
## Tracker assignment setup
onboarding-assign_trackers-back = Вернуться к вводу данных Wi-Fi
onboarding-assign_trackers-title = Привязать трекеры
onboarding-assign_trackers-description = Давайте выберем, расположение ваших трекеров. Нажмите на место, где вы хотите разместить трекер
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } из { $trackers ->
[one] 1 трекер
[few] { $amount } трекера
[many] { $amount } трекеров
*[other] { $amount } трекеров
} привязано
onboarding-assign_trackers-advanced = Показать дополнительные места привязки
onboarding-assign_trackers-next = Я привязал все трекеры
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] Назначена левая ступня, также вам нужно назначить левую голень и левое бедро, и либо грудь, либо талию!
[1] Назначена левая ступня, но вам также нужно назначить левое бедро и грудь, а также либо таз, либо талию!
[2] Назначена левая ступня, но вам также нужно назначить левую голень и грудь, а также либо таз, либо талию!
[3] Назначена левая ступня, но вам нужно, назначить грудь, таз или талия также должны быть назначены!
[4] Назначена левая ступня, но вам нужно, назначить левую голень и левое бедро!
[5] Назначена левая ступня, но вам нужно, назначить левое бедро!
[6] Назначена левая ступня, но вам нужно, назначить левую голень!
*[unknown] Назначена левая ступня, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] Назначена правая ступня, также вам нужно назначить правую голень и правое бедро, и либо грудь, либо талию!
[1] Назначена правая ступня, но вам также нужно назначить правое бедро и грудь, а также либо таз, либо талию!
[2] Назначена правая ступня, но вам также нужно назначить правую голень и грудь, а также либо таз, либо талию!
[3] Назначена правая ступня, но вам нужно, назначить грудь, таз или талия также должны быть назначены!
[4] Назначена правая ступня, но вам нужно, назначить правую голень и правое бедро!
[5] Назначена правая ступня, но вам нужно, назначить правое бедро!
[6] Назначена правая ступня, но вам нужно, назначить правую голень!
*[unknown] Назначена правая ступня, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] Назначено левое бедро, вам также нужно назначить грудь, таз или талию!
*[unknown] Назначено левое бедро, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] Назначено правое бедро, вам также нужно назначить грудь, таз или талию!
*[unknown] Назначено правое бедро, но вам также нужно назначить неизвестную неназначенную часть тела!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] Таз назначен, но вам нужно, чтобы грудь также была назначена!
*[unknown] Таз назначен, но вам нужно, чтобы неизвестная неназначенная часть тела также была назначена!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] Талия назначена, но вам нужно, чтобы грудь также была назначена!
*[unknown] Талия назначена, но вам нужно, чтобы неизвестная неназначенная часть тела также была назначена!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = Вернуться чтобы войти в VR
onboarding-manual_mounting = Ручная привязка
onboarding-manual_mounting-description = Нажмите на каждый трекер и выберите, каким способом они будут привязаны
onboarding-manual_mounting-auto_mounting = Автоматическая привязка
onboarding-manual_mounting-next = Следующий шаг
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Вернуться чтобы войти в VR
onboarding-automatic_mounting-title = Калибровка привязки
onboarding-automatic_mounting-description = Чтобы трекеры SlimeVR работали, нам необходимо назначить поворот крепления для ваших трекеров, чтобы выровнять их с вашим физическим креплением трекера.
onboarding-automatic_mounting-manual_mounting = Установка вручную
onboarding-automatic_mounting-next = Следующий шаг
onboarding-automatic_mounting-prev_step = Предыдущий щаг
onboarding-automatic_mounting-done-title = Привязка поворотов калибрована.
onboarding-automatic_mounting-done-description = Калибровка вашей привязки завершена!
onboarding-automatic_mounting-done-restart = Вернуться к началу
onboarding-automatic_mounting-mounting_reset-title = Сброс крепления
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Присядьте в позу "лыжника", согнув ноги, наклонив верхнюю часть тела вперед и согнув руки.
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Нажмите кнопку "Сброс крепления" и подождите 3 секунды, прежде чем установочные повороты трекеров будут сброшены.
onboarding-automatic_mounting-preparation-title = Подготовка
onboarding-automatic_mounting-preparation-step-0 = 1. Встаньте прямо, руки по бокам.
onboarding-automatic_mounting-preparation-step-1 = 2. Нажмите кнопку "Сброс" и подождите 3 секунды, прежде чем трекеры сбросятся.
onboarding-automatic_mounting-put_trackers_on-title = Наденьте ваши трекеры
onboarding-automatic_mounting-put_trackers_on-description = Чтобы откалибровать повороты крепления, мы будем использовать трекеры, которые вы только что назначили. Включите все свои трекеры, вы можете увидеть, какие из них какие на рисунке справа.
onboarding-automatic_mounting-put_trackers_on-next = Я включил и надел все свои трекеры
## Tracker manual proportions setup
onboarding-manual_proportions-back = Вернутся к началу обучения
onboarding-manual_proportions-title = Ручные пропорции тела
onboarding-manual_proportions-precision = Регулировка предсказывания
onboarding-manual_proportions-auto = Автоматическая калибровка
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Вернутся к началу обучения
onboarding-automatic_proportions-title = Измерьте свое тело
onboarding-automatic_proportions-description = Чтобы трекеры SlimeVR работали, нам нужно знать длину ваших костей. Эта короткая калибровка измерит его для вас.
onboarding-automatic_proportions-manual = Ручная калибровка
onboarding-automatic_proportions-prev_step = Предыдущий шаг
onboarding-automatic_proportions-put_trackers_on-title = Наденьте ваши трекеры
onboarding-automatic_proportions-put_trackers_on-description = Чтобы откалибровать ваши пропорции, мы собираемся использовать трекеры, которые вы только что назначили. Включите все свои трекеры, вы можете увидеть, какие из них какие на рисунке справа.
onboarding-automatic_proportions-put_trackers_on-next = Я надел все свои трекеры
onboarding-automatic_proportions-preparation-title = Подготовка
onboarding-automatic_proportions-preparation-description = Поставьте стул прямо позади себя в вашем игровом пространстве. Будьте готовы сесть во время автоматической настройки костей.
onboarding-automatic_proportions-preparation-next = Я перед стулом
onboarding-automatic_proportions-start_recording-title = Будьте готовы к движению
onboarding-automatic_proportions-start_recording-description = Теперь мы собираемся записать некоторые конкретные позы и движения. Они будут запрошены на следующем экране. Будьте готовы начать, когда кнопка будет нажата!
onboarding-automatic_proportions-start_recording-next = Начать запись
onboarding-automatic_proportions-recording-title = Запись
onboarding-automatic_proportions-recording-description-p0 = Запись в процессе...
onboarding-automatic_proportions-recording-description-p1 = Сделайте эти движения:
onboarding-automatic_proportions-recording-steps-0 = Согните колени несколько раз.
onboarding-automatic_proportions-recording-steps-1 = Сядьте на стул, затем встаньте.
onboarding-automatic_proportions-recording-steps-2 = Поверните верхнюю часть туловища влево, затем наклонитесь вправо.
onboarding-automatic_proportions-recording-steps-3 = Поверните верхнюю часть туловища вправо, затем наклонитесь влево.
onboarding-automatic_proportions-recording-steps-4 = Покачайтесь, пока таймер не закончится.
onboarding-automatic_proportions-recording-processing = Обработка результата...
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] { $time } секунда
[few] { $time } секунды
[many] { $time } секунд
*[other] { $time } секунд
}
onboarding-automatic_proportions-verify_results-title = Подтвердить результаты
onboarding-automatic_proportions-verify_results-description = Проверьте результаты ниже, правильно ли они выглядят?
onboarding-automatic_proportions-verify_results-results = Запись результатов
onboarding-automatic_proportions-verify_results-processing = Обработка результатов
onboarding-automatic_proportions-verify_results-redo = Перезаписать
onboarding-automatic_proportions-verify_results-confirm = Они правильные
onboarding-automatic_proportions-done-title = Тело измерено и сохранено.
onboarding-automatic_proportions-done-description = Калибровка пропорций вашего тела завершена!
## Home
home-no_trackers = Трекеры не обнаружены и не привязаны

View File

@@ -1,212 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Sunucuya bağlanılıyor
websocket-connection_lost = Sunucuyla bağlantı kesildi. Tekrar bağlanılmaya çalışılıyor...
## Tips
tips-find_tracker = Hangi takipçi hangisi emin değil misin? Takipçilerden birini hareket ettirerek belirleyebilirsin.
tips-do_not_move_heels = Kayıt sırasında ayaklarınızın hareket etmediğinden emin olun!
## Body parts
body_part-NONE = Atanmamış
body_part-HEAD = Kafa
body_part-NECK = Boyun
body_part-RIGHT_SHOULDER = Sağ omuz
body_part-RIGHT_UPPER_ARM = Sağ üst kol
body_part-RIGHT_LOWER_ARM = Sağ alt kol
body_part-RIGHT_HAND = Sağ el
body_part-RIGHT_UPPER_LEG = Sağ uyluk
body_part-RIGHT_LOWER_LEG = Sağ ayak bileği
body_part-RIGHT_FOOT = Sağ ayak
body_part-RIGHT_CONTROLLER = Sağ oyun kolu
body_part-CHEST = Göğüs
body_part-WAIST = Bel
body_part-HIP = Kalça
body_part-LEFT_SHOULDER = Sol omuz
body_part-LEFT_UPPER_ARM = Sol üst kol
body_part-LEFT_LOWER_ARM = Sol alt kol
body_part-LEFT_HAND = Sol el
body_part-LEFT_UPPER_LEG = Sol uyluk
body_part-LEFT_LOWER_LEG = Sol ayak bileği
body_part-LEFT_FOOT = Sol ayak
body_part-LEFT_CONTROLLER = Sol oyun kolu
## Proportions
skeleton_bone-NONE = Yok
skeleton_bone-HEAD = Kafa hizası
skeleton_bone-NECK = Boyun Uzunluğu
skeleton_bone-CHEST = Göğüs Uzunluğu
skeleton_bone-CHEST_OFFSET = Göğüs hizası
skeleton_bone-WAIST = Bel Uzunluğu
skeleton_bone-HIP = Kalça Uzunluğu
skeleton_bone-HIP_OFFSET = Kalça hizası
skeleton_bone-HIPS_WIDTH = Kalça Genişliği
skeleton_bone-UPPER_LEG = Üst Bacak Uzunluğu
skeleton_bone-LOWER_LEG = Alt Bacak Uzunluğu
skeleton_bone-FOOT_LENGTH = Ayak Uzunluğu
skeleton_bone-FOOT_SHIFT = Ayak hizası
skeleton_bone-SKELETON_OFFSET = İskelet hizası
skeleton_bone-SHOULDERS_DISTANCE = Omuz Mesafesi
skeleton_bone-SHOULDERS_WIDTH = Omuz Genişliği
skeleton_bone-UPPER_ARM = Üst Kol Uzunluğu
skeleton_bone-LOWER_ARM = Alt Kol Uzunluğu
skeleton_bone-CONTROLLER_Y = Oyun kolu uzaklığı Y
skeleton_bone-CONTROLLER_Z = Oyun kolu uzaklığı Z
skeleton_bone-ELBOW_OFFSET = Dirsek hizası
## Tracker reset buttons
reset-reset_all = Tüm oranları sıfırla
reset-full = Sıfırlama
reset-quick = Hızlı Sıfırlama
## Serial detection stuff
serial_detection-new_device-p1 = Wi-Fi bilgilerinizi girin!
serial_detection-new_device-p2 = Lütfen onunla ne yapmak istediğinizi seçin
serial_detection-open_wifi = Wi-Fi'ye bağlan
serial_detection-submit = Gönder!
serial_detection-close = Kapat
## Navigation bar
navbar-settings = Ayarlar
## Bounding volume hierarchy recording
## Widget: Overlay settings
## Widget: Drift compensation
## Widget: Developer settings
## Widget: IMU Visualizer
## Tracker status
## Tracker status columns
## Tracker rotation
tracker-rotation-front = Ön
tracker-rotation-left = Sol
tracker-rotation-right = Sağ
tracker-rotation-back = Arka
## Tracker information
tracker-infos-manufacturer = Üretici
tracker-infos-display_name = Görünen Ad
tracker-infos-custom_name = Özel Ad
## Tracker settings
tracker-settings-assignment_section-description = Tracker'in vücudun hangi kısmına atandığı.
## Tracker part card info
## Body assignment menu
## Tracker assignment menu
## Mounting menu
## Sidebar settings
## SteamVR settings
## Tracker mechanics
## FK/Tracking settings
## Gesture control settings (tracker tapping)
## Interface settings
## Serial settings
settings-serial-reboot = Yeniden Başlat
settings-serial-factory_reset-warning-ok = Ben ne yaptığımı biliyorum
settings-serial-factory_reset-warning-cancel = İptal et
settings-serial-auto_dropdown_item = Otomatik
## OSC router settings
settings-osc-router-enable = Etkinleştir
settings-osc-router-enable-label = Etkinleştir
settings-osc-router-network-address = Ağ adresi
## OSC VRChat settings
settings-osc-vrchat-enable = Etkinleştir
settings-osc-vrchat-enable-label = Etkinleştir
settings-osc-vrchat-network-address = Ağ adresi
## Setup/onboarding menu
## Wi-Fi setup
## Mounting setup
## Setup start
## Enter VR part of setup
## Setup done
## Tracker connection setup
## Tracker assignment setup
## Tracker manual mounting setup
## Tracker automatic mounting setup
## Tracker manual proportions setup
## Tracker automatic proportions setup
## Home

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = Đang kết nối với máy chủ
websocket-connection_lost = Kết nối với máy chủ đã mất. Đang kết nối lại...
## Tips
tips-find_tracker = Không rõ tracker nào đang được chọn? Di chuyển nó và trong menu sẽ sáng lên tracker đó
tips-do_not_move_heels = Không di chuyển gót chân trong khi đo
## Body parts
body_part-NONE = Chưa được gán
body_part-HEAD = Đầu
body_part-NECK = Cổ
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = Bàn chân trái
body_part-LEFT_CONTROLLER = Tay cầm bên trái
## Proportions
skeleton_bone-NONE = Chưa được gán
skeleton_bone-HEAD = Sai số đầu
skeleton_bone-NECK = Chiều dài cổ
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = Khoảng cách tay cầm theo trục Z
skeleton_bone-ELBOW_OFFSET = Sai số khuỷu tay
## Tracker reset buttons
reset-reset_all = Đặt lại tất cả bộ phận
reset-full = Đặt lại
reset-mounting = Đặt lại hướng gắn tracker
reset-quick = Đặt lại nhanh
## Serial detection stuff
serial_detection-new_device-p0 = Tìm thấy thiết bị mới!
serial_detection-new_device-p1 = Nhập thông tin Wi-Fi
serial_detection-new_device-p2 = Chọn hành động cần thực hiện
@@ -85,7 +76,6 @@ serial_detection-submit = Gửi
serial_detection-close = Đóng
## Navigation bar
navbar-home = Trang chủ
navbar-body_proportions = Tỉ lệ cơ thể
navbar-trackers_assign = Phân bố tracker
@@ -94,18 +84,15 @@ navbar-onboarding = Trình thiết lập
navbar-settings = Cài đặt
## Bounding volume hierarchy recording
bvh-start_recording = Ghi BVH
bvh-recording = Đang ghi...
## Widget: Overlay settings
widget-overlay = Overlay
widget-overlay-is_visible_label = Xem overlay trên SteamVR
widget-overlay-is_mirrored_label = Xem overlay trong gương
## Widget: Developer settings
widget-developer_mode = Chế độ nhà phát triển
widget-developer_mode-high_contrast = Chế độ tương phản cao
widget-developer_mode-precise_rotation = Hiển thị góc quay chính xác
@@ -116,13 +103,11 @@ widget-developer_mode-raw_slime_rotation = Sử dụng giá trị góc quay th
widget-developer_mode-more_info = Thêm thông tin
## Widget: IMU Visualizer
widget-imu_visualizer = Góc quay
widget-imu_visualizer-rotation_raw = Gốc
widget-imu_visualizer-rotation_preview = Qua xử lí
## Tracker status
tracker-status-none = Không có trạng thái
tracker-status-busy = Bận
tracker-status-error = Lỗi
@@ -131,7 +116,6 @@ tracker-status-occluded = Nghẽn
tracker-status-ok = Đã kết nối
## Tracker status columns
tracker-table-column-name = Tên
tracker-table-column-type = Loại
tracker-table-column-battery = Pin
@@ -144,21 +128,18 @@ tracker-table-column-position = Tọa độ X/Y/Z
tracker-table-column-url = Đường dẫn
## Tracker rotation
tracker-rotation-front = Trước
tracker-rotation-left = Trái
tracker-rotation-right = Phải
tracker-rotation-back = Sau
## Tracker information
tracker-infos-manufacturer = Nhà sản xuất
tracker-infos-display_name = Tên hiển thị
tracker-infos-custom_name = Tên gọi
tracker-infos-url = Đường dẫn
## Tracker settings
tracker-settings-back = Quay lại danh sách tracker
tracker-settings-title = Cài đặt
tracker-settings-assignment_section = Vị trí
@@ -177,12 +158,10 @@ tracker-settings-name_section-description = Đặt cho nó một cái tên đẹ
tracker-settings-name_section-placeholder = Chân trái của JINODK
## Tracker part card info
tracker-part_card-no_name = Không tên
tracker-part_card-unassigned = Chưa gán vị trí
## Body assignment menu
body_assignment_menu = Bạn muốn gán tracker này cho bộ phận nào?
body_assignment_menu-description = Chọn vị trí bạn muốn gán tracker, ngoài ra bạn cũng có thể quản lí vị trí tất cả các tracker cùng một lúc
body_assignment_menu-show_advanced_locations = Xem thêm vị trí đặt
@@ -190,7 +169,6 @@ body_assignment_menu-manage_trackers = Quản lí tất cả tracker
body_assignment_menu-unassign_tracker = Bỏ gán tracker
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -219,17 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part } bắp chân
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part } cẳng chân trái?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part } bàn chân trái?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part } tay cầm bên trái?
tracker_selection_menu-unassigned = Chưa gắn vị trí
tracker_selection_menu-unassigned = Chưa gán vị trí
tracker_selection_menu-assigned = Đã gán vị trí
tracker_selection_menu-dont_assign = Không gn
tracker_selection_menu-dont_assign = Không gán
## Mounting menu
mounting_selection_menu = Bạn muốn gắn tracker này cho bộ phận nào?
mounting_selection_menu = Bạn muốn gán tracker này cho bộ phận nào?
mounting_selection_menu-close = Đóng
## Sidebar settings
settings-sidebar-title = Cài đặt
settings-sidebar-general = Cài đặt chung
settings-sidebar-tracker_mechanics = Cơ chế tracker
@@ -241,7 +218,6 @@ settings-sidebar-utils = Công cụ
settings-sidebar-serial = Cổng Serial
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = Tracker SteamVR
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -259,7 +235,6 @@ settings-general-steamvr-trackers-elbows = Khuỷu tay
settings-general-steamvr-trackers-hands = Tay
## Tracker mechanics
settings-general-tracker_mechanics = Cơ chế tracker
settings-general-tracker_mechanics-filtering = Lọc nhiễu
# This also cares about multilines
@@ -284,7 +259,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = Mức độ
settings-general-tracker_mechanics-drift_compensation-max_resets-label = Số lần đặt lại được áp dụng bù trừ
## FK/Tracking settings
settings-general-fk_settings = Cài đặt nâng cao
settings-general-fk_settings-leg_tweak = Chân
settings-general-fk_settings-leg_tweak-description = "Ngăn xuyên sàn" có thể giảm thiểu khả năng chân xuống thấp hơn sàn sau khi đặt lại vị trí tracker, có thể gây vấn đề nếu đang đứng bằng đầu gối. "Sửa trượt" giúp giảm thiểu tình trạng chân có chuyển động nhỏ so với sàn khi đứng yên, có thể làm giảm độ chính xác với một số chuyển động cụ thể
@@ -301,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = Mức độ s
settings-general-fk_settings-arm_fk = Track cánh tay
settings-general-fk_settings-arm_fk-description = Thay đổi cách cánh tay được track
settings-general-fk_settings-arm_fk-force_arms = Lấy dữ liệu cánh tay từ kính
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = Cài đặt khung cơ thể
settings-general-fk_settings-skeleton_settings-description = Bật hoặc tắt các cài đặt về khung cơ thể. Các lựa chọn này nên được giữ bật
settings-general-fk_settings-skeleton_settings-extended_spine = Xương sống kéo dài
@@ -311,17 +286,15 @@ settings-general-fk_settings-vive_emulation-description = Giả lập cách trac
settings-general-fk_settings-vive_emulation-label = Giả lập tracker Vive
## Gesture control settings (tracker tapping)
settings-general-gesture_control = Cử chỉ điều khiển
settings-general-gesture_control-subtitle = Chạm để đặt lại
settings-general-gesture_control-description = Cho phép chạm vào tracker để đặt lại vị trí, chạm hai lần vào tracker cao nhất ở thân để đặt lại nhanh, chạm hai lần vào tracker cao nhất ở chân trái để đặt lại, chạm hai lần vào tracker cao nhất ở chân phải để đặt lại vị trí gắn tracker. Cử chỉ chỉ được tiếp nhận khi thời gian giữa hai lần chạm ngắn hơn 0.6 giây.
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
[one] 1 tap
*[other] { $amount } lần
}
settings-general-gesture_control-taps = { $amount ->
[one] 1 tap
*[other] { $amount } lần
}
settings-general-gesture_control-quickResetEnabled = Chạm để đặt lại nhanh
settings-general-gesture_control-quickResetDelay = Thời gian delay trước khi đặt lại nhanh
settings-general-gesture_control-quickResetTaps = Số lần chạm cho đặt lại nhanh
@@ -333,7 +306,6 @@ settings-general-gesture_control-mountingResetDelay = Thời gian delay trước
settings-general-gesture_control-mountingResetTaps = Số lần chạm cho đặt lại hướng gắn tracker
## Interface settings
settings-general-interface = Giao diện
settings-general-interface-dev_mode = Chế độ nhà phát triển
settings-general-interface-dev_mode-description = Hữu dụng nếu cần thêm thông tin chi tiết của tracker hay can thiệp sâu hơn vào tracker
@@ -346,7 +318,6 @@ settings-general-interface-lang-description = Đổi ngôn ngữ hiển thị (C
settings-general-interface-lang-placeholder = Chọn ngôn ngữ để sử dụng (Select the language to use)
## Serial settings
settings-serial = Cổng Serial
# This cares about multilines
settings-serial-description =
@@ -360,7 +331,6 @@ settings-serial-serial_select = Chọn cổng Serial
settings-serial-auto_dropdown_item = Tự động
## OSC router settings
settings-osc-router = Router OSC
# This cares about multilines
settings-osc-router-description =
@@ -385,7 +355,6 @@ settings-osc-router-network-address-description = Địa chỉ mạng mà SlimeV
settings-osc-router-network-address-placeholder = Địa chỉ IPv4
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -414,13 +383,11 @@ settings-osc-vrchat-network-trackers-feet = Bàn chân
settings-osc-vrchat-network-trackers-elbows = Khuỷu tay
## Setup/onboarding menu
onboarding-skip = Bỏ qua cài đặt
onboarding-continue = Tiếp tục
onboarding-wip = Chưa hoàn thiện
## Wi-Fi setup
## WiFi setup
onboarding-wifi_creds-back = Quay lại giới thiệu
onboarding-wifi_creds = Nhập thông tin Wi-Fi
# This cares about multilines
@@ -437,13 +404,11 @@ onboarding-wifi_creds-password =
.placeholder = và mật khẩu
## Mounting setup
onboarding-reset_tutorial-back = Quay lại cân chỉnh vị trí gắn tracker
onboarding-reset_tutorial = Làm lại
onboarding-reset_tutorial-description = Tính năng này chưa hoàn thiện, vui lòng bấm tiếp tục và quay lại sau
## Setup start
onboarding-home = Chào mừng bạn đến với SlimeVR!
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -452,20 +417,17 @@ onboarding-home-description =
onboarding-home-start = Bắt đầu thiết lập!
## Enter VR part of setup
onboarding-enter_vr-back = Quay lại gán tracker
onboarding-enter_vr-title = Chuẩn bị cho việc cân chỉnh trong VR
onboarding-enter_vr-description = Đeo tất cả tracker và vào VR trước khi tiếp tục
onboarding-enter_vr-ready = Sẵn sàng
## Setup done
onboarding-done-title = Hoàn thành!
onboarding-done-description = Bạn đã hoàn tất quá trình thiết lập cơ bản
onboarding-done-close = Đóng hướng dẫn
## Tracker connection setup
onboarding-connect_tracker-back = Quay lại cài đặt Wi-Fi
onboarding-connect_tracker-title = Kết nối tracker
onboarding-connect_tracker-description-p0 = Cập nhật thông tin Wi-Fi cho tracker
@@ -482,32 +444,28 @@ onboarding-connect_tracker-connection_status-handshake = Đã kết nối đến
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] Không có tracker
[one] 1 tracker
*[other] { $amount } tracker
} đã giao
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] Không có tracker
[one] 1 tracker
*[other] { $amount } tracker
} đã giao
onboarding-connect_tracker-next = Đã kết nối với tất cả tracker
## Tracker assignment setup
onboarding-assign_trackers-back = Quay lại cài đặt Wi-Fi
onboarding-assign_trackers-title = Gán tracker
onboarding-assign_trackers-description = Chọn vị trí bạn muốn gán tracker bằng cách nhấn vào tên bộ phận muốn gán và chọn tracker
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned =
{ $assigned } trên { $trackers ->
[one] 1 tracker
*[other] { $trackers } tracker
} đã giao
onboarding-assign_trackers-assigned = { $assigned } trên { $trackers ->
[one] 1 tracker
*[other] { $trackers } tracker
} đã giao
onboarding-assign_trackers-advanced = Xem thêm vị trí đặt
onboarding-assign_trackers-next = Hoàn thành
## Tracker manual mounting setup
onboarding-manual_mounting-back = Quay lại chuẩn bị cân chỉnh
onboarding-manual_mounting = Cân chỉnh thủ công
onboarding-manual_mounting-description = Chọn từng tracker và chọn hướng nó được gắn
@@ -515,7 +473,6 @@ onboarding-manual_mounting-auto_mounting = Cân chỉnh tự động
onboarding-manual_mounting-next = Tiếp tục
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = Quay lại chuẩn bị cân chỉnh
onboarding-automatic_mounting-title = Cân chỉnh hướng gắn
onboarding-automatic_mounting-description = SlimeVR cần biết hướng gắn thực của tracker để hoạt động đúng, làm theo hướng dẫn để cân chỉnh hướng gắn tự động
@@ -536,14 +493,12 @@ onboarding-automatic_mounting-put_trackers_on-description = Để cân chỉnh h
onboarding-automatic_mounting-put_trackers_on-next = Tiếp tục
## Tracker manual proportions setup
onboarding-manual_proportions-back = Quay lại cân chỉnh hướng gắn
onboarding-manual_proportions-title = Đo kích thước cơ thể thủ công
onboarding-manual_proportions-precision = Cân chỉnh cụ thể (giảm hệ số chỉnh)
onboarding-manual_proportions-auto = Đo kích thước cơ thể tự động
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = Quay lại cân chỉnh hướng gắn
onboarding-automatic_proportions-title = Đo kích thước cơ thể
onboarding-automatic_proportions-description = Để tracker có vị trí chính xác, SlimeVR cần biết các chỉ số kích thước cơ thể, làm theo hướng dẫn để đo kích thước cơ thể tự động
@@ -568,20 +523,18 @@ onboarding-automatic_proportions-recording-steps-3 = Vặn thân sang phải và
onboarding-automatic_proportions-recording-steps-4 = Làm thêm các chuyển động khác đến khi hết thời gian
onboarding-automatic_proportions-recording-processing = Đang xử lí kết quả...
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer =
{ $time ->
[one] 1 second
*[other] còn lại { $time } giây
}
onboarding-automatic_proportions-recording-timer = { $time ->
[one] 1 second
*[other] còn lại { $time } giây
}
onboarding-automatic_proportions-verify_results-title = Kiểm tra kết quả
onboarding-automatic_proportions-verify_results-description = So sánh kết quả với chỉ số thực, Lưu ý: kết quả chỉ mang tính tương đối
onboarding-automatic_proportions-verify_results-results = Kết quả đo
onboarding-automatic_proportions-verify_results-processing = Đang xử lí kết quả...
onboarding-automatic_proportions-verify_results-processing = Đang chờ kết quả...
onboarding-automatic_proportions-verify_results-redo = Thử lại
onboarding-automatic_proportions-verify_results-confirm = Kết quả tương đối chính xác
onboarding-automatic_proportions-done-title = Đã lưu chỉ số đo
onboarding-automatic_proportions-done-description = Quá trình đo đã hoàn tất
## Home
home-no_trackers = Không tìm thấy tracker / Tracker chưa được gán

View File

@@ -1,25 +1,19 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = 正在连接到服务器
websocket-connection_lost = 与服务器的连接丢失,正在尝试重新连接...
## Tips
tips-find_tracker = 不确定哪个追踪器是哪个?在现实中摇动一个追踪器,对应的那个将在屏幕上高亮显示。
tips-do_not_move_heels = 确保你的脚跟在录制的时候不会发生移动!
## Body parts
body_part-NONE = 未分配
body_part-HEAD = 头部
body_part-NECK = 颈部
@@ -44,7 +38,6 @@ body_part-LEFT_FOOT = 左脚
body_part-LEFT_CONTROLLER = 左控制器
## Proportions
skeleton_bone-NONE = 无
skeleton_bone-HEAD = 头部偏移
skeleton_bone-NECK = 颈部长度
@@ -68,14 +61,12 @@ skeleton_bone-CONTROLLER_Z = 控制器距离 Z
skeleton_bone-ELBOW_OFFSET = 肘部偏移
## Tracker reset buttons
reset-reset_all = 重置身体比例
reset-full = 重置
reset-mounting = 重置佩戴
reset-quick = 快速重置
## Serial detection stuff
serial_detection-new_device-p0 = 检测到了新的串口设备!
serial_detection-new_device-p1 = 输入你的 Wi-Fi 凭据!
serial_detection-new_device-p2 = 请选择你想对它做什么
@@ -85,7 +76,6 @@ serial_detection-submit = 提交!
serial_detection-close = 关闭
## Navigation bar
navbar-home = 主页
navbar-body_proportions = 身体比例
navbar-trackers_assign = 追踪器分配
@@ -94,39 +84,30 @@ navbar-onboarding = 向导
navbar-settings = 设置
## Bounding volume hierarchy recording
bvh-start_recording = 录制 BVH 文件
bvh-recording = 录制中...
## Widget: Overlay settings
widget-overlay = 覆盖层
widget-overlay-is_visible_label = 在 SteamVR 中显示覆盖层
widget-overlay-is_mirrored_label = 镜像显示覆盖层
## Widget: Drift compensation
widget-drift_compensation-clear = 清除漂移补偿数据
## Widget: Developer settings
widget-developer_mode = 开发者选项
widget-developer_mode-high_contrast = 高对比度
widget-developer_mode-precise_rotation = 显示精确旋转
widget-developer_mode-fast_data_feed = 快速数据更新
widget-developer_mode-filter_slimes_and_hmd = 只显示 Slime 追踪器HMD
widget-developer_mode-filter_slimes_and_hmd = 追踪器HMD应用滤波
widget-developer_mode-sort_by_name = 根据名称排序
widget-developer_mode-raw_slime_rotation = 显示原始旋转
widget-developer_mode-more_info = 显示更多信息
## Widget: IMU Visualizer
widget-imu_visualizer = 旋转
widget-imu_visualizer-rotation_raw = 原始旋转
widget-imu_visualizer-rotation_preview = 预览
## Tracker status
tracker-status-none = 无状态
tracker-status-busy = 繁忙
tracker-status-error = 错误
@@ -135,7 +116,6 @@ tracker-status-occluded = 被遮挡
tracker-status-ok = 已连接
## Tracker status columns
tracker-table-column-name = 名字
tracker-table-column-type = 类型
tracker-table-column-battery = 电量
@@ -148,21 +128,18 @@ tracker-table-column-position = 位置 X/Y/Z
tracker-table-column-url = 地址
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 后
## Tracker information
tracker-infos-manufacturer = 制造商
tracker-infos-display_name = 显示名称
tracker-infos-custom_name = 自定义名称
tracker-infos-url = 追踪器地址
## Tracker settings
tracker-settings-back = 返回追踪器列表
tracker-settings-title = 追踪器设置
tracker-settings-assignment_section = 分配追踪器
@@ -181,12 +158,10 @@ tracker-settings-name_section-description = 给它起一个可爱的名字吧=w=
tracker-settings-name_section-placeholder = CC 封印着漆黑之力的漆黑左臂
## Tracker part card info
tracker-part_card-no_name = 未命名
tracker-part_card-unassigned = 未分配
## Body assignment menu
body_assignment_menu = 你想将此追踪器戴在哪里?
body_assignment_menu-description = 选择要将此追踪器分配到的位置,或者你也可以选择一次管理所有追踪器,而不是逐个管理。
body_assignment_menu-show_advanced_locations = 显示高级分配位置
@@ -194,7 +169,6 @@ body_assignment_menu-manage_trackers = 管理所有追踪器
body_assignment_menu-unassign_tracker = 取消分配追踪器
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
@@ -223,24 +197,16 @@ tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part }左大腿?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part }左小腿?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part }左脚?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part }左控制器?
tracker_selection_menu-unassigned = 未分配的追踪器
tracker_selection_menu-assigned = 已分配的追踪器
tracker_selection_menu-dont_assign = 不分配
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>警告:</b> 颈部追踪器在调整得过紧时有致命风险
绑带可能会阻断你头部的血液循环!
tracker_selection_menu-neck_warning-done = 我已知晓风险
tracker_selection_menu-neck_warning-cancel = 取消
## Mounting menu
mounting_selection_menu = 你想将此追踪器戴在哪里?
mounting_selection_menu-close = 关闭
## Sidebar settings
settings-sidebar-title = 设置
settings-sidebar-general = 通用设置
settings-sidebar-tracker_mechanics = 追踪器设置
@@ -252,7 +218,6 @@ settings-sidebar-utils = 工具
settings-sidebar-serial = 串口控制台
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR 追踪器
# Not all translation keys support multiline, only the ones that specify it will actually
@@ -270,7 +235,6 @@ settings-general-steamvr-trackers-elbows = 肘部
settings-general-steamvr-trackers-hands = 手部
## Tracker mechanics
settings-general-tracker_mechanics = 追踪器设置
settings-general-tracker_mechanics-filtering = 滤波
# This also cares about multilines
@@ -295,7 +259,6 @@ settings-general-tracker_mechanics-drift_compensation-amount-label = 补偿量
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 使用几次的重置结果?
## FK/Tracking settings
settings-general-fk_settings = FK 设置
settings-general-fk_settings-leg_tweak = 腿部调整
settings-general-fk_settings-leg_tweak-description = 本设置可以减少甚至消除脚部穿入地板的情况,但是当你跪在地上的时候可能产生一些问题. 脚滑矫正可以矫正一些脚滑溜冰的问题, 但是可能会降低某些动作的准确性。
@@ -312,6 +275,7 @@ settings-general-fk_settings-leg_tweak-skating_correction-amount = 脚滑矫正
settings-general-fk_settings-arm_fk = 手臂 FK
settings-general-fk_settings-arm_fk-description = 更改手臂的追踪方式。
settings-general-fk_settings-arm_fk-force_arms = 强制从头显获得数据
settings-general-fk_settings-arm_fk-i_pose = Use i-pose instead of t-pose
settings-general-fk_settings-skeleton_settings = 骨架设置
settings-general-fk_settings-skeleton_settings-description = 打开或关闭骨架设置。建议保持这些设置不变。
settings-general-fk_settings-skeleton_settings-extended_spine = 脊柱延伸
@@ -322,16 +286,14 @@ settings-general-fk_settings-vive_emulation-description = 模拟Vive追踪器的
settings-general-fk_settings-vive_emulation-label = 开启 Vive 模拟
## Gesture control settings (tracker tapping)
settings-general-gesture_control = 手势控制
settings-general-gesture_control-subtitle = 敲击重置
settings-general-gesture_control-description = 启用或禁用敲击重置。启用时,敲击身上佩戴的最高的追踪器上的任何位置将激活快速重置。延迟是指记录到敲击和重置之间的时间。
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount }次敲击
}
settings-general-gesture_control-taps = { $amount ->
*[other] { $amount }次敲击
}
settings-general-gesture_control-quickResetEnabled = 开启敲击快速重置
settings-general-gesture_control-quickResetDelay = 敲击快速重置延迟
settings-general-gesture_control-quickResetTaps = 快速重置敲击次数
@@ -343,7 +305,6 @@ settings-general-gesture_control-mountingResetDelay = 敲击重置佩戴延迟
settings-general-gesture_control-mountingResetTaps = 重置佩戴敲击次数
## Interface settings
settings-general-interface = 交互界面
settings-general-interface-dev_mode = 开发者模式
settings-general-interface-dev_mode-description = 如果你需要深入的数据或更深入地与连接的追踪器进行交互,打开此模式将会非常有用。
@@ -356,7 +317,6 @@ settings-general-interface-lang-description = 更改要使用的默认语言
settings-general-interface-lang-placeholder = 选择要使用的语言
## Serial settings
settings-serial = 串口控制台
# This cares about multilines
settings-serial-description =
@@ -365,19 +325,11 @@ settings-serial-description =
settings-serial-connection_lost = 串口连接丢失,正在重新连接..
settings-serial-reboot = 重新启动
settings-serial-factory_reset = 恢复出厂设置
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>警告:</b> 这会将跟踪器重置为出厂设置。
这意味着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 = 自动
## OSC router settings
settings-osc-router = OSC 路由
# This cares about multilines
settings-osc-router-description =
@@ -402,7 +354,6 @@ settings-osc-router-network-address-description = 设置用来发送数据的地
settings-osc-router-network-address-placeholder = IPV4 地址
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC Trackers
# This cares about multilines
settings-osc-vrchat-description =
@@ -431,13 +382,11 @@ settings-osc-vrchat-network-trackers-feet = 脚部
settings-osc-vrchat-network-trackers-elbows = 肘部
## Setup/onboarding menu
onboarding-skip = 跳过设置
onboarding-continue = 继续
onboarding-wip = 仍在开发中
## Wi-Fi setup
onboarding-wifi_creds-back = 返回简介
onboarding-wifi_creds = 输入 Wi-Fi 凭据
# This cares about multilines
@@ -454,13 +403,11 @@ onboarding-wifi_creds-password =
.placeholder = 输入密码
## Mounting setup
onboarding-reset_tutorial-back = 返回到佩戴校准
onboarding-reset_tutorial = 重置教程
onboarding-reset_tutorial-description = 此功能尚未开发完成,请继续就好
## Setup start
onboarding-home = 欢迎来到 SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
@@ -469,48 +416,40 @@ onboarding-home-description =
onboarding-home-start = 我准备好了!
## Enter VR part of setup
onboarding-enter_vr-back = 返回到追踪器分配
onboarding-enter_vr-title = VR 时间到!
onboarding-enter_vr-description = 穿戴好所有的追踪器,开始快乐 VR 吧!
onboarding-enter_vr-ready = 我准备好了
## Setup done
onboarding-done-title = 都搞定啦!
onboarding-done-description = 享受你的全身追踪体验吧
onboarding-done-close = 关闭向导
## Tracker connection setup
onboarding-connect_tracker-back = 返回到 Wi-Fi 凭据设置
onboarding-connect_tracker-title = 连接追踪器
onboarding-connect_tracker-description-p0 = 来到了我第二喜欢的环节,连接所有的追踪器!
onboarding-connect_tracker-description-p1 = 只需通过 USB 连接所有尚未连接的设备即可。
onboarding-connect_tracker-issue-serial = QAQ 我在连接时遇到问题!
onboarding-connect_tracker-usb = USB 追踪器
onboarding-connect_tracker-connection_status-none = 正在寻找追踪器
onboarding-connect_tracker-connection_status-serial_init = 正在连接到串口设备
onboarding-connect_tracker-connection_status-provisioning = 正在发送 Wi-Fi 凭据
onboarding-connect_tracker-connection_status-connecting = 正在发送 Wi-Fi 凭据
onboarding-connect_tracker-connection_status-looking_for_server = 正在寻找服务器
onboarding-connect_tracker-connection_status-connection_error = 无法连接到 Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = 未找到到服务
onboarding-connect_tracker-connection_status-done = 已连接到服务器
onboarding-connect_tracker-connection_status-connected = Wi-Fi 已连接
onboarding-connect_tracker-connection_status-error = 无法连接到 Wi-Fi
onboarding-connect_tracker-connection_status-start_connecting = 寻找追踪
onboarding-connect_tracker-connection_status-handshake = 已连接到服务器
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] 没有已连接的追踪器
*[other] { $amount } 个追踪器已连接
}
onboarding-connect_tracker-connected_trackers = { $amount ->
[0] 没有已连接的追踪器
*[other] { $amount } 个追踪器已连接
}
onboarding-connect_tracker-next = 所有的追踪器都连接好了
## Tracker assignment setup
onboarding-assign_trackers-back = 返回 Wi-Fi 凭据设置
onboarding-assign_trackers-title = 分配追踪器
onboarding-assign_trackers-description = 让我们选择哪个追踪器在哪里。单击要放置追踪器的部位
@@ -521,84 +460,14 @@ onboarding-assign_trackers-assigned = { $assigned }/{ $trackers } 个追踪器
onboarding-assign_trackers-advanced = 显示高级分配部位
onboarding-assign_trackers-next = 所有的追踪器都分配好了
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] 左脚 已分配,但您还需要分配 左小腿 左大腿 胸部 髋部/腰部!
[1] 左脚 已分配,但您还需要分配 左大腿 胸部 髋部/腰部!
[2] 左脚 已分配,但您还需要分配 左小腿 胸部 髋部/腰部!
[3] 左脚 已分配,但您还需要分配 胸部 髋部/腰部!
[4] 左脚 已分配,但您还需要分配 左小腿 左大腿
[5] 左脚 已分配,但您还需要分配 左大腿!
[6] 左脚 已分配,但您还需要分配 左小腿!
*[unknown] 左脚 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] 右脚 已分配,但您还需要分配 右小腿 右大腿 胸部 髋部/腰部!
[1] 右脚 已分配,但您还需要分配 右大腿 胸部 髋部/腰部!
[2] 右脚 已分配,但您还需要分配 右小腿 胸部 髋部/腰部!
[3] 右脚 已分配,但您还需要分配 胸部 髋部/腰部!
[4] 右脚 已分配,但您还需要分配 右小腿 右大腿
[5] 右脚 已分配,但您还需要分配 右大腿!
[6] 右脚 已分配,但您还需要分配 右小腿!
*[unknown] 右脚 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] 左小腿 已分配,但您还需要分配 左大腿 胸部 髋部/腰部!
[1] 左小腿 已分配,但您还需要分配 胸部 髋部/腰部!
[2] 左小腿 已分配,但您还需要分配 左大腿!
*[unknown] 左小腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] 右小腿 已分配,但您还需要分配 右大腿 胸部 髋部/腰部!
[1] 右小腿 已分配,但您还需要分配 胸部 髋部/腰部!
[2] 右小腿 已分配,但您还需要分配 右大腿!
*[unknown] 右小腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] 左大腿 已分配,但您还需要分配 胸部 髋部/腰部!
*[unknown] 左大腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] 右大腿 已分配,但您还需要分配 胸部 髋部/腰部!
*[unknown] 右大腿 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] 髋部 已分配,但您还需要分配 胸部!
*[unknown] 髋部 已分配,但您还需要分配 未知未分配身体部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] 腰部 已分配,但您还需要分配 胸部!
*[unknown] 腰部 已分配,但您还需要分配 未知未分配身体部位!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = 返回到进入 VR
onboarding-manual_mounting = 手动佩戴
onboarding-manual_mounting-description = 单击每个追踪器并选择它们的佩戴方式
onboarding-manual_mounting-description = 单击每个追踪器并选择它们的配电方式
onboarding-manual_mounting-auto_mounting = 自动佩戴
onboarding-manual_mounting-next = 下一步
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = 返回到进入 VR
onboarding-automatic_mounting-title = 佩戴校准
onboarding-automatic_mounting-description = 为了让 SlimeVR 追踪器正常工作,我们需要为你的追踪器分配一个佩戴方向,以使其与你的物理追踪器佩戴方式对齐。
@@ -619,14 +488,12 @@ onboarding-automatic_mounting-put_trackers_on-description = 为了校准佩戴
onboarding-automatic_mounting-put_trackers_on-next = 所有的追踪器都已开启!
## Tracker manual proportions setup
onboarding-manual_proportions-back = 返回重置教程
onboarding-manual_proportions-title = 手动调整身体比例
onboarding-manual_proportions-precision = 精确调整
onboarding-manual_proportions-auto = 自动校准
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = 返回重置教程
onboarding-automatic_proportions-title = 测量你的身体比例
onboarding-automatic_proportions-description = 为了让 SlimeVR 追踪器正常使用,我们需要知道你的骨头的长度。这个简短的校准将为你测量它们。
@@ -651,7 +518,7 @@ onboarding-automatic_proportions-recording-steps-3 = 向右扭转上身,然后
onboarding-automatic_proportions-recording-steps-4 = 持续摆动身体,直到计时器结束。
onboarding-automatic_proportions-recording-processing = 正在处理结果
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer = 剩余{ $time }秒
onboarding-automatic_proportions-recording-timer = 剩余{ $time }秒
onboarding-automatic_proportions-verify_results-title = 校验结果
onboarding-automatic_proportions-verify_results-description = 检查下面的结果,它们看起来是正确的吗?
onboarding-automatic_proportions-verify_results-results = 录制结果
@@ -662,5 +529,4 @@ onboarding-automatic_proportions-done-title = 身体数据已测量并保存。
onboarding-automatic_proportions-done-description = 你的身体比例校准已完成!
## Home
home-no_trackers = 未检测到或未分配追踪器

View File

@@ -1,664 +0,0 @@
### 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!
# And also comment the string if it's something not easy to translate, so you help
# translators on what it means
## Websocket (server) status
websocket-connecting = 正在連接伺服器
websocket-connection_lost = 與伺服器的連線已中斷,正在嘗試重新連線……
## Tips
tips-find_tracker = 若你不確定手上的追蹤器是哪一個,搖一搖它,對應的項目就會顯示出來
tips-do_not_move_heels = 確保你的腳跟在測量過程時不會發生移動!
## Body parts
body_part-NONE = 未分配
body_part-HEAD = 頭部
body_part-NECK = 頸部
body_part-RIGHT_SHOULDER = 右肩
body_part-RIGHT_UPPER_ARM = 右上臂
body_part-RIGHT_LOWER_ARM = 右前臂
body_part-RIGHT_HAND = 右手
body_part-RIGHT_UPPER_LEG = 右大腿
body_part-RIGHT_LOWER_LEG = 右小腿
body_part-RIGHT_FOOT = 右腳
body_part-RIGHT_CONTROLLER = 右控制器
body_part-CHEST = 胸部
body_part-WAIST = 腰部
body_part-HIP = 髖部
body_part-LEFT_SHOULDER = 左肩
body_part-LEFT_UPPER_ARM = 左上臂
body_part-LEFT_LOWER_ARM = 左前臂
body_part-LEFT_HAND = 左手
body_part-LEFT_UPPER_LEG = 左大腿
body_part-LEFT_LOWER_LEG = 左小腿
body_part-LEFT_FOOT = 左腳
body_part-LEFT_CONTROLLER = 左控制器
## Proportions
skeleton_bone-NONE = 無
skeleton_bone-HEAD = 頭部偏移
skeleton_bone-NECK = 頸部長度
skeleton_bone-CHEST = 胸部長度
skeleton_bone-CHEST_OFFSET = 胸部偏移
skeleton_bone-WAIST = 腰部長度
skeleton_bone-HIP = 髖部長度
skeleton_bone-HIP_OFFSET = 髖部偏移
skeleton_bone-HIPS_WIDTH = 髖部寬度
skeleton_bone-UPPER_LEG = 大腿長度
skeleton_bone-LOWER_LEG = 小腿長度
skeleton_bone-FOOT_LENGTH = 腳部長度
skeleton_bone-FOOT_SHIFT = 腳部偏移
skeleton_bone-SKELETON_OFFSET = 骨骼偏移
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距離
skeleton_bone-SHOULDERS_WIDTH = 肩膀寬度
skeleton_bone-UPPER_ARM = 上臂長度
skeleton_bone-LOWER_ARM = 前臂長度
skeleton_bone-CONTROLLER_Y = 控制器距離 Y
skeleton_bone-CONTROLLER_Z = 控制器距離 Z
skeleton_bone-ELBOW_OFFSET = 肘部偏移
## Tracker reset buttons
reset-reset_all = 重置軀幹比例
reset-full = 重置
reset-mounting = 配戴重置
reset-quick = 快速重置
## Serial detection stuff
serial_detection-new_device-p0 = 偵測到了新的串列埠裝置!
serial_detection-new_device-p1 = 輸入你的 Wi-Fi 網路名稱與密碼!
serial_detection-new_device-p2 = 請選擇你想對它做什麼
serial_detection-open_wifi = 連線到 Wi-Fi
serial_detection-open_serial = 開啟串列埠終端
serial_detection-submit = 送出!
serial_detection-close = 關閉
## Navigation bar
navbar-home = 首頁
navbar-body_proportions = 軀幹比例
navbar-trackers_assign = 追蹤器分配
navbar-mounting = 配戴校正
navbar-onboarding = 快速設定
navbar-settings = 詳細設定
## Bounding volume hierarchy recording
bvh-start_recording = 錄製 BVH 檔案
bvh-recording = 錄製中…
## Widget: Overlay settings
widget-overlay = 內嵌介面
widget-overlay-is_visible_label = 在 SteamVR 中顯示內嵌介面
widget-overlay-is_mirrored_label = 鏡像顯示內嵌介面
## Widget: Drift compensation
widget-drift_compensation-clear = 清除偏移補償數據
## Widget: Developer settings
widget-developer_mode = 開發者選項
widget-developer_mode-high_contrast = 高對比 UI
widget-developer_mode-precise_rotation = 顯示精確旋轉
widget-developer_mode-fast_data_feed = 快速資料更新
widget-developer_mode-filter_slimes_and_hmd = 只顯示 Slime 追蹤器與頭戴顯示器
widget-developer_mode-sort_by_name = 依名稱排序
widget-developer_mode-raw_slime_rotation = 顯示原始旋轉
widget-developer_mode-more_info = 更多資訊
## Widget: IMU Visualizer
widget-imu_visualizer = 旋轉
widget-imu_visualizer-rotation_raw = 原始旋轉
widget-imu_visualizer-rotation_preview = 預覽
## Tracker status
tracker-status-none = 無
tracker-status-busy = 忙碌
tracker-status-error = 錯誤
tracker-status-disconnected = 連線中斷
tracker-status-occluded = 被遮擋
tracker-status-ok = 已連線
## Tracker status columns
tracker-table-column-name = 名稱
tracker-table-column-type = 類型
tracker-table-column-battery = 電量
tracker-table-column-ping = Ping
tracker-table-column-tps = TPS
tracker-table-column-temperature = 溫度 ℃
tracker-table-column-linear-acceleration = 加速度 X/Y/Z
tracker-table-column-rotation = 旋轉 X/Y/Z
tracker-table-column-position = 位置 X/Y/Z
tracker-table-column-url = URL
## Tracker rotation
tracker-rotation-front = 前
tracker-rotation-left = 左
tracker-rotation-right = 右
tracker-rotation-back = 後
## Tracker information
tracker-infos-manufacturer = 製造商
tracker-infos-display_name = 顯示名稱
tracker-infos-custom_name = 自訂名稱
tracker-infos-url = 追蹤器 URL
## Tracker settings
tracker-settings-back = 返回追蹤器列表
tracker-settings-title = 追蹤器設定
tracker-settings-assignment_section = 分配追蹤器
tracker-settings-assignment_section-description = 這個追蹤器分配到的身體部位
tracker-settings-assignment_section-edit = 編輯分配
tracker-settings-mounting_section = 配戴方式
tracker-settings-mounting_section-description = 這個追蹤器要配戴在哪裡?
tracker-settings-mounting_section-edit = 編輯配戴方式
tracker-settings-drift_compensation_section = 偏移補償
tracker-settings-drift_compensation_section-description = 是否在此追蹤器上套用偏移補償?
tracker-settings-drift_compensation_section-edit = 允許偏移補償
# The .<name> means it's an attribute and it's related to the top key.
# In this case that is the settings for the assignment section.
tracker-settings-name_section = 追蹤器名稱
tracker-settings-name_section-description = 給它起一個可愛的名字吧 ^^
tracker-settings-name_section-placeholder = ↖★煞氣a黑貓☆↘的美味右腿
## Tracker part card info
tracker-part_card-no_name = 未命名
tracker-part_card-unassigned = 未分配
## Body assignment menu
body_assignment_menu = 將這個追蹤器配戴在哪裡?
body_assignment_menu-description = 選擇要將此追蹤器分配到的身體部位。除了逐個設定外,你也可以一次設定所有追蹤器。
body_assignment_menu-show_advanced_locations = 顯示進階分配部位
body_assignment_menu-manage_trackers = 管理所有追蹤器
body_assignment_menu-unassign_tracker = 解除分配
## Tracker assignment menu
# A -translation_key (with a dash in the front) means that it's a label.
# It can only be used in the translation file, it's nice for reusing names and that kind of stuff.
#
# We are using it here because english doesn't require changing the text in each case but
# maybe your language does.
-tracker_selection-part = 哪個追蹤器要分配到你的
tracker_selection_menu-NONE = 你想將哪個追蹤器解除分配?
tracker_selection_menu-HEAD = { -tracker_selection-part }頭部?
tracker_selection_menu-NECK = { -tracker_selection-part }頸部?
tracker_selection_menu-RIGHT_SHOULDER = { -tracker_selection-part }右肩?
tracker_selection_menu-RIGHT_UPPER_ARM = { -tracker_selection-part }右上臂?
tracker_selection_menu-RIGHT_LOWER_ARM = { -tracker_selection-part }右前臂?
tracker_selection_menu-RIGHT_HAND = { -tracker_selection-part }右手?
tracker_selection_menu-RIGHT_UPPER_LEG = { -tracker_selection-part }右大腿?
tracker_selection_menu-RIGHT_LOWER_LEG = { -tracker_selection-part }右小腿?
tracker_selection_menu-RIGHT_FOOT = { -tracker_selection-part }右腳?
tracker_selection_menu-RIGHT_CONTROLLER = { -tracker_selection-part }右控制器?
tracker_selection_menu-CHEST = { -tracker_selection-part }胸部?
tracker_selection_menu-WAIST = { -tracker_selection-part }腰部?
tracker_selection_menu-HIP = { -tracker_selection-part }髖部?
tracker_selection_menu-LEFT_SHOULDER = { -tracker_selection-part }左肩?
tracker_selection_menu-LEFT_UPPER_ARM = { -tracker_selection-part }左上臂?
tracker_selection_menu-LEFT_LOWER_ARM = { -tracker_selection-part }左前臂?
tracker_selection_menu-LEFT_HAND = { -tracker_selection-part }左手?
tracker_selection_menu-LEFT_UPPER_LEG = { -tracker_selection-part }左大腿?
tracker_selection_menu-LEFT_LOWER_LEG = { -tracker_selection-part }左小腿?
tracker_selection_menu-LEFT_FOOT = { -tracker_selection-part }左腳?
tracker_selection_menu-LEFT_CONTROLLER = { -tracker_selection-part }左控制器?
tracker_selection_menu-unassigned = 尚未分配的追蹤器
tracker_selection_menu-assigned = 已分配的追蹤器
tracker_selection_menu-dont_assign = 不要分配
# This line cares about multilines.
# <b>text</b> means that the text should be bold.
tracker_selection_menu-neck_warning =
<b>警告:</b>將追蹤器戴在頸部有致命危險,綁太緊可能會阻礙頭部
血液循環,進而導致窒息。
tracker_selection_menu-neck_warning-done = 我已瞭解其風險
tracker_selection_menu-neck_warning-cancel = 取消
## Mounting menu
mounting_selection_menu = 你想將此追蹤器戴在哪裡?
mounting_selection_menu-close = 關閉
## Sidebar settings
settings-sidebar-title = 設定
settings-sidebar-general = 一般設定
settings-sidebar-tracker_mechanics = 追蹤機制
settings-sidebar-fk_settings = 追蹤設定
settings-sidebar-gesture_control = 手勢控制
settings-sidebar-interface = 使用者介面
settings-sidebar-osc_router = OSC 路由
settings-sidebar-utils = 工具
settings-sidebar-serial = 串列埠終端
## SteamVR settings
settings-general-steamvr = SteamVR
settings-general-steamvr-subtitle = SteamVR 追蹤器
# Not all translation keys support multiline, only the ones that specify it will actually
# split it in lines (that also means you can split in lines however you want in those).
# The first spaces (not tabs) for indentation will be ignored, just to make the file look nice when writing.
# This one is one of this cases that cares about multilines
settings-general-steamvr-description =
開啟或關閉特定的 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
settings-general-tracker_mechanics = 追蹤機制
settings-general-tracker_mechanics-filtering = 濾波
# This also cares about multilines
settings-general-tracker_mechanics-filtering-description =
選擇追蹤器的濾波類型。
預測型將會對你的運動加以預測,而平滑型將會讓你的運動更加平滑。
settings-general-tracker_mechanics-filtering-type = 濾波類型
settings-general-tracker_mechanics-filtering-type-none = 不進行濾波
settings-general-tracker_mechanics-filtering-type-none-description = 使用原始資料,不進行濾波。
settings-general-tracker_mechanics-filtering-type-smoothing = 平滑型
settings-general-tracker_mechanics-filtering-type-smoothing-description = 讓運動更加平滑,但會增加一些延遲。
settings-general-tracker_mechanics-filtering-type-prediction = 預測型
settings-general-tracker_mechanics-filtering-type-prediction-description = 減少延遲並使移動更敏捷,但可能會增加一些抖動。
settings-general-tracker_mechanics-filtering-amount = 濾波強度
settings-general-tracker_mechanics-drift_compensation = 偏移補償
# This cares about multilines
settings-general-tracker_mechanics-drift_compensation-description =
套用逆向旋轉以補償IMU的偏航角位移。
更改補償量和使用多少次的重置結果用於計算補償量。
settings-general-tracker_mechanics-drift_compensation-enabled-label = 偏移補償
settings-general-tracker_mechanics-drift_compensation-amount-label = 補償量
settings-general-tracker_mechanics-drift_compensation-max_resets-label = 使用幾次的重置結果?
## FK/Tracking settings
settings-general-fk_settings = 追蹤設定
settings-general-fk_settings-leg_tweak = 腿部調整
settings-general-fk_settings-leg_tweak-description = 地板限制可以減輕甚至解決腳部穿入地板的情況,但是當跪在地上的時候可能會造成問題。腳滑修正可以矯正一些腳滑溜冰的問題,但是可能會降低某些動作的準確度。
# Floor clip:
# why the name - came from the idea of noclip in video games, but is the opposite where clipping to the floor is a desired feature
# definition - Prevents the foot trackers from going lower than they where when a reset was performed
settings-general-fk_settings-leg_tweak-floor_clip = 地板限制
# Skating correction:
# why the name - without this enabled the feet will often slide across the ground as if your skating across the ground,
# since this largely prevents this it corrects for it hence skating correction (note this may be renamed to sliding correction)
# definition - Guesses when each foot is in contact with the ground and uses that information to improve tracking
settings-general-fk_settings-leg_tweak-skating_correction = 腳滑修正
settings-general-fk_settings-leg_tweak-skating_correction-amount = 腳滑修正量
settings-general-fk_settings-arm_fk = 手臂追蹤
settings-general-fk_settings-arm_fk-description = 更改手臂的追蹤方式。
settings-general-fk_settings-arm_fk-force_arms = 強制從頭戴顯示器取得資料
settings-general-fk_settings-skeleton_settings = 骨架設定
settings-general-fk_settings-skeleton_settings-description = 開啟或關閉骨架設定。建議保持這些設定開啟。
settings-general-fk_settings-skeleton_settings-extended_spine = 脊椎延伸
settings-general-fk_settings-skeleton_settings-extended_pelvis = 骨盆延伸
settings-general-fk_settings-skeleton_settings-extended_knees = 膝蓋延伸
settings-general-fk_settings-vive_emulation-title = Vive 模擬
settings-general-fk_settings-vive_emulation-description = 模擬 Vive 追蹤器的腰部追蹤失效問題。( 註:這是一個玩笑功能,會降低追蹤品質。)
settings-general-fk_settings-vive_emulation-label = 開啟 Vive 模擬
## Gesture control settings (tracker tapping)
settings-general-gesture_control = 手勢控制
settings-general-gesture_control-subtitle = 敲擊重置
settings-general-gesture_control-description = 使用敲擊追蹤器的方法觸發重置。敲擊軀幹所配戴的最高的追蹤器會啟用快速重置,敲擊左腳配戴最高的追蹤器會觸發重置,敲擊右腳配戴最高的追蹤器會觸發配戴重置。請注意,需要在 0.6 秒內滿足敲擊次數才會觸發。
# This is a unit: 3 taps, 2 taps, 1 tap
# $amount (Number) - Amount of taps (touches to the tracker's case)
settings-general-gesture_control-taps =
{ $amount ->
*[other] { $amount } 次敲擊
}
settings-general-gesture_control-quickResetEnabled = 敲擊以快速重置
settings-general-gesture_control-quickResetDelay = 快速重置延遲
settings-general-gesture_control-quickResetTaps = 快速重置敲擊次數
settings-general-gesture_control-resetEnabled = 敲擊以重置
settings-general-gesture_control-resetDelay = 重置延遲
settings-general-gesture_control-resetTaps = 重置敲擊次數
settings-general-gesture_control-mountingResetEnabled = 敲擊以重置佩戴
settings-general-gesture_control-mountingResetDelay = 重置佩戴延遲
settings-general-gesture_control-mountingResetTaps = 重置佩戴敲擊次數
## Interface settings
settings-general-interface = 使用者介面
settings-general-interface-dev_mode = 開發者模式
settings-general-interface-dev_mode-description = 如果你需要深入的資料或與連線的追蹤器進行進階互動,開啟此模式將會非常有用。
settings-general-interface-dev_mode-label = 開發者模式
settings-general-interface-serial_detection = 串列埠裝置檢測
settings-general-interface-serial_detection-description = 每次插入新串列埠的裝置(可能是追蹤器)時,此選項會顯示一個彈出視窗。這有助於改進追蹤器的設定流程。
settings-general-interface-serial_detection-label = 串列埠裝置檢測
settings-general-interface-lang = 選擇語言
settings-general-interface-lang-description = 更改要使用的預設語言
settings-general-interface-lang-placeholder = 選擇要使用的語言
## Serial settings
settings-serial = 串列埠終端
# This cares about multilines
settings-serial-description = 這裡用於顯示串列埠的即時資訊,有助於瞭解韌體是否發生問題。
settings-serial-connection_lost = 串列埠連線中斷,正在重新連線……
settings-serial-reboot = 重新啟動
settings-serial-factory_reset = 恢復出廠設定
# This cares about multilines
# <b>text</b> means that the text should be bold
settings-serial-factory_reset-warning =
<b>警告:</b>本選項會將該追蹤器恢復出廠設定,
亦即其 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 = 自動
## OSC router settings
settings-osc-router = OSC 路由
# This cares about multilines
settings-osc-router-description =
從另一個程式轉發 OSC 訊息。
例如在 VRChat 同時使用另一個 OSC 程式時,此功能會有幫助。
settings-osc-router-enable = 啟用
settings-osc-router-enable-description = 切換轉發 OSC 訊息。
settings-osc-router-enable-label = 啟用
settings-osc-router-network = 連接埠
# This cares about multilines
settings-osc-router-network-description =
設定用於監聽和傳送資料的連接埠,
可以與 SlimeVR 伺服器中使用的其他埠號相同。
settings-osc-router-network-port_in =
.label = 輸入埠
.placeholder = 輸入埠
settings-osc-router-network-port_out =
.label = 輸出埠
.placeholder = 輸出埠
settings-osc-router-network-address = 網路地址
settings-osc-router-network-address-description = 設置用來發送資料的位址。
settings-osc-router-network-address-placeholder = IPV4 地址
## OSC VRChat settings
settings-osc-vrchat = VRChat OSC 追蹤器
# This cares about multilines
settings-osc-vrchat-description =
此處可更改 VRChat 專用的設定以取得頭戴顯示器的資料,並傳送
追蹤器資料以進行全身追蹤。(也適用於 Quest 單機版本)
settings-osc-vrchat-enable = 啟用
settings-osc-vrchat-enable-description = 切換資料的傳送和接收。
settings-osc-vrchat-enable-label = 啟用
settings-osc-vrchat-network = 連接埠
settings-osc-vrchat-network-description = 設定用於監聽和向 VRChat 傳送資料的連接埠。
settings-osc-vrchat-network-port_in =
.label = 輸入埠
.placeholder = 輸入埠(預設 9001
settings-osc-vrchat-network-port_out =
.label = 輸出埠
.placeholder = 輸出埠(預設 9000
settings-osc-vrchat-network-address = 網路位址
settings-osc-vrchat-network-address-description = 設定用來發送資料到 VRChat 的位址(請檢察裝置的 Wi-Fi 設定)。
settings-osc-vrchat-network-address-placeholder = VRChat IP 位址
settings-osc-vrchat-network-trackers = 追蹤器
settings-osc-vrchat-network-trackers-description = 切換傳送指定追蹤器的資料。
settings-osc-vrchat-network-trackers-chest = 胸部
settings-osc-vrchat-network-trackers-waist = 腰部
settings-osc-vrchat-network-trackers-knees = 膝蓋
settings-osc-vrchat-network-trackers-feet = 腳部
settings-osc-vrchat-network-trackers-elbows = 肘部
## Setup/onboarding menu
onboarding-skip = 跳過設定
onboarding-continue = 繼續
onboarding-wip = 施工中
## Wi-Fi setup
onboarding-wifi_creds-back = 返回簡介
onboarding-wifi_creds = 輸入 Wi-Fi 網路名稱與密碼
# This cares about multilines
onboarding-wifi_creds-description =
追蹤器將使用這些資訊連線到 Wi-Fi
請使用目前連線到 Wi-Fi 的網路名稱與密碼
onboarding-wifi_creds-skip = 跳過 Wi-Fi 設定
onboarding-wifi_creds-submit = 送出!
onboarding-wifi_creds-ssid =
.label = Wi-Fi 名稱
.placeholder = 請輸入 Wi-Fi 名稱
onboarding-wifi_creds-password =
.label = 密碼
.placeholder = 輸入密碼
## Mounting setup
onboarding-reset_tutorial-back = 返回到配戴校正
onboarding-reset_tutorial = 重置教學
onboarding-reset_tutorial-description = 此功能尚未開發完成,請點選繼續即可。
## Setup start
onboarding-home = 歡迎來到 SlimeVR
# This cares about multilines and it's centered!!
onboarding-home-description =
將全身追蹤
帶給每一個人
onboarding-home-start = 我準備好了!
## Enter VR part of setup
onboarding-enter_vr-back = 返回到追蹤器分配
onboarding-enter_vr-title = 該是進入 VR 的時候了!
onboarding-enter_vr-description = 穿戴好所有的追蹤器,開始快樂 VR 吧!
onboarding-enter_vr-ready = 我準備好了
## Setup done
onboarding-done-title = 都搞定啦!
onboarding-done-description = 享受你的全身追蹤體驗吧
onboarding-done-close = 關閉導引
## Tracker connection setup
onboarding-connect_tracker-back = 返回到 Wi-Fi 帳號密碼設定
onboarding-connect_tracker-title = 連接追蹤器
onboarding-connect_tracker-description-p0 = 來到了我第二喜歡的環節,連線所有的追蹤器!
onboarding-connect_tracker-description-p1 = 只需透過 USB 連線所有尚未連線的裝置即可。
onboarding-connect_tracker-issue-serial = 我在連接時碰到問題了!
onboarding-connect_tracker-usb = USB 追蹤器
onboarding-connect_tracker-connection_status-none = 正在尋找追蹤器
onboarding-connect_tracker-connection_status-serial_init = 正在連線到序列裝置
onboarding-connect_tracker-connection_status-provisioning = 正在傳送 Wi-Fi 認證
onboarding-connect_tracker-connection_status-connecting = 正在傳送 Wi-Fi 資訊
onboarding-connect_tracker-connection_status-looking_for_server = 正在尋找伺服器
onboarding-connect_tracker-connection_status-connection_error = 無法連線到 Wi-Fi
onboarding-connect_tracker-connection_status-could_not_find_server = 未尋找到可用的伺服器
onboarding-connect_tracker-connection_status-done = 已連線到伺服器
# $amount (Number) - Amount of trackers connected (this is a number, but you can use CLDR plural rules for your language)
# More info on https://www.unicode.org/cldr/cldr-aux/charts/22/supplemental/language_plural_rules.html
# English in this case only has 2 plural rules, which are "one" and "other",
# we use 0 in an explicit way because there is no plural rule in english for 0, so we directly say
# if $amount is 0 then we say "No trackers connected"
onboarding-connect_tracker-connected_trackers =
{ $amount ->
[0] 沒有已連線的追蹤器
*[other] { $amount } 個追蹤器已連線
}
onboarding-connect_tracker-next = 所有的追蹤器都連接好了
## Tracker assignment setup
onboarding-assign_trackers-back = 返回到 Wi-Fi 帳號密碼設定
onboarding-assign_trackers-title = 分配追蹤器
onboarding-assign_trackers-description = 這些追蹤器要放在身上的哪個部位呢?請點選要放置追蹤器的部位
# Look at translation of onboarding-connect_tracker-connected_trackers on how to use plurals
# $assigned (Number) - Trackers that have been assigned a body part
# $trackers (Number) - Trackers connected to the server
onboarding-assign_trackers-assigned = { $assigned }/{ $trackers } 個追蹤器已分配
onboarding-assign_trackers-advanced = 顯示進階分配部位
onboarding-assign_trackers-next = 所有的追蹤器都分配好了
## Tracker assignment warnings
# Note for devs, number is used for representing boolean states per bit.
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_FOOT =
{ $unassigned ->
[0] 左腳已分配,但您還需要分配左腳踝、左大腿和胸部、臀部或腰部!
[1] 左腳已分配,但您還需要分配左大腿和胸部、臀部或腰部!
[2] 左腳已分配,但您還需要分配左腳踝和胸部、臀部或腰部!
[3] 左腳已分配,但您還需要分配胸部、臀部或腰部!
[4] 左腳已分配,但您還需要分配左腳踝和左大腿!
[5] 左腳已分配,但您還需要分配左大腿!
[6] 左腳已分配,但您還需要分配左腳踝!
*[unknown] 左腳已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_FOOT =
{ $unassigned ->
[0] 右腳已分配,但您還需要分配右腳踝、右大腿以及胸部、臀部或腰部!
[1] 右腳已分配,但您還需要分配右大腿和胸部、臀部或腰部!
[2] 右腳已分配,但您還需要分配右腳踝和胸部、臀部或腰部!
[3] 右腳已分配,但您還需要分配胸部、臀部或腰部!
[4] 右腳已分配,但您還需要分配右腳踝和右大腿!
[5] 右腳已分配,但您還需要分配右大腿!
[6] 右腳已分配,但您還需要分配右腳踝!
*[unknown] 右腳已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_LOWER_LEG =
{ $unassigned ->
[0] 左腳踝已分配,但您還需要分配左大腿和胸部、臀部或腰部!
[1] 左腳踝已分配,但您還需要分配胸部、臀部或腰部!
[2] 左腳踝已分配,但您還需要分配左大腿!
*[unknown] 左腳踝已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_LOWER_LEG =
{ $unassigned ->
[0] 右腳踝已分配,但您還需要分配右大腿和胸部、臀部或腰部!
[1] 右腳踝已分配,但您還需要分配胸部、臀部或腰部!
[2] 右腳踝已分配,但您還需要分配右大腿!
*[unknown] 右腳踝已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-LEFT_UPPER_LEG =
{ $unassigned ->
[0] 左大腿已分配,但您還需要分配胸部、臀部或腰部!
*[unknown] 左大腿已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-RIGHT_UPPER_LEG =
{ $unassigned ->
[0] 右大腿已分配,但您還需要分配胸部、臀部或腰部!
*[unknown] 右大腿已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-HIP =
{ $unassigned ->
[0] 臀部已分配,但您還需要分配胸部!
*[unknown] 臀部已分配,但您還需要分配其它未分配的身體部位!
}
# $unassigned (Number) - Bits are based on BodyAssignment.ASSIGNMENT_RULES order
onboarding-assign_trackers-warning-WAIST =
{ $unassigned ->
[0] 腰部已分配,但您還需要分配胸部!
*[unknown] 腰部已分配,但您還需要分配其它未分配的身體部位!
}
## Tracker manual mounting setup
onboarding-manual_mounting-back = 返回到進入 VR
onboarding-manual_mounting = 手動配戴
onboarding-manual_mounting-description = 點選每個追蹤器並選擇它們的配戴方式
onboarding-manual_mounting-auto_mounting = 自動配戴
onboarding-manual_mounting-next = 下一步
## Tracker automatic mounting setup
onboarding-automatic_mounting-back = 返回到進入 VR
onboarding-automatic_mounting-title = 配戴校正
onboarding-automatic_mounting-description = 為了讓 SlimeVR 追蹤器正常運作,我們需要為你的追蹤器設定一個配戴方向,以使其與你的物理追蹤器配戴方式對齊。
onboarding-automatic_mounting-manual_mounting = 手動設定配戴方向
onboarding-automatic_mounting-next = 下一步
onboarding-automatic_mounting-prev_step = 上一步
onboarding-automatic_mounting-done-title = 配戴方向已校正。
onboarding-automatic_mounting-done-description = 你的配戴方向校準完成!
onboarding-automatic_mounting-done-restart = 返回以開始
onboarding-automatic_mounting-mounting_reset-title = 重置配戴
onboarding-automatic_mounting-mounting_reset-step-0 = 1. 雙腿彎曲以滑雪的姿勢蹲下,上身向前傾斜,手臂彎曲。
onboarding-automatic_mounting-mounting_reset-step-1 = 按下重置配戴按鈕並等待 3 秒鐘,然後追蹤器的佩戴方向將被重置。
onboarding-automatic_mounting-preparation-title = 準備
onboarding-automatic_mounting-preparation-step-0 = 1. 身體直立,雙臂放在身體兩側。
onboarding-automatic_mounting-preparation-step-1 = 按下「重置」按鈕,等待 3 秒鐘,追蹤器將會重置。
onboarding-automatic_mounting-put_trackers_on-title = 請戴好追蹤器
onboarding-automatic_mounting-put_trackers_on-description = 為了校準配戴方向,我們將使用剛才分配的追蹤器。戴上你所有的追蹤器,你可以在右邊的圖中看到追蹤器的對應部位。
onboarding-automatic_mounting-put_trackers_on-next = 我所有的追蹤器都戴好了!
## Tracker manual proportions setup
onboarding-manual_proportions-back = 返回重置教學
onboarding-manual_proportions-title = 手動調整軀幹比例
onboarding-manual_proportions-precision = 精確調整
onboarding-manual_proportions-auto = 自動校準
## Tracker automatic proportions setup
onboarding-automatic_proportions-back = 返回重置教學
onboarding-automatic_proportions-title = 測量你的身體比例
onboarding-automatic_proportions-description = 為了讓 SlimeVR 追蹤器正常使用,我們需要知道你的骨頭長度。這個簡短的流程將會進行這方面的測量。
onboarding-automatic_proportions-manual = 手動校正
onboarding-automatic_proportions-prev_step = 上一步
onboarding-automatic_proportions-put_trackers_on-title = 請戴好追蹤器
onboarding-automatic_proportions-put_trackers_on-description = 為了校準你的軀幹比例,我們將使用你剛才分配的追蹤器。戴上你所有的追蹤器,你可以在右邊的圖中看到追蹤器的對應部位。
onboarding-automatic_proportions-put_trackers_on-next = 我所有的追蹤器都戴好了!
onboarding-automatic_proportions-preparation-title = 準備
onboarding-automatic_proportions-preparation-description = 在你的正後方放一把椅子,並準備好在接下來的設定過程中坐下。
onboarding-automatic_proportions-preparation-next = 我在椅子前面了
onboarding-automatic_proportions-start_recording-title = 準備擺動作囉
onboarding-automatic_proportions-start_recording-description = 我們現在要記錄一些特定的姿勢和動作,將會在下一個畫面中提示。當按鈕被按下時,準備好開始!
onboarding-automatic_proportions-start_recording-next = 開始錄製
onboarding-automatic_proportions-recording-title = REC
onboarding-automatic_proportions-recording-description-p0 = 正在錄製中……
onboarding-automatic_proportions-recording-description-p1 = 請做出以下動作:
onboarding-automatic_proportions-recording-steps-0 = 彎曲幾次膝蓋。
onboarding-automatic_proportions-recording-steps-1 = 坐在椅子上再站起來。
onboarding-automatic_proportions-recording-steps-2 = 向左扭轉上身,然後向右彎。
onboarding-automatic_proportions-recording-steps-3 = 向右扭轉上身,然後向左彎。
onboarding-automatic_proportions-recording-steps-4 = 持續擺動身體,直到計時結束。
onboarding-automatic_proportions-recording-processing = 正在處理結果
# $time (Number) - Seconds left for the automatic calibration recording to finish (max 15)
onboarding-automatic_proportions-recording-timer = 剩餘{ $time }秒
onboarding-automatic_proportions-verify_results-title = 檢查結果
onboarding-automatic_proportions-verify_results-description = 檢查下面的結果,它們看起來是正確的嗎?
onboarding-automatic_proportions-verify_results-results = 錄製結果
onboarding-automatic_proportions-verify_results-processing = 正在處理結果
onboarding-automatic_proportions-verify_results-redo = 重新錄製
onboarding-automatic_proportions-verify_results-confirm = 他們是正確的!
onboarding-automatic_proportions-done-title = 身體資料已測量並儲存。
onboarding-automatic_proportions-done-description = 你的身體比例校正已完成!
## Home
home-no_trackers = 未偵測到或未分配追蹤器

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env node
#!/bin/node
/*
Process exit codes:
First bit: Fluent syntax error in english file

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env node
#!/bin/node
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// eslint-disable-next-line @typescript-eslint/no-var-requires

View File

@@ -28,13 +28,12 @@ shadow-rs = "0.20"
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tauri = { version = "1.2", features = ["devtools", "dialog", "fs-all", "os-all", "path-all", "shell-execute", "window-close", "window-maximize", "window-minimize", "window-set-resizable", "window-set-title", "window-start-dragging", "window-unmaximize", "window-unminimize"] }
tauri-runtime = "0.12.1"
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" }
tauri = { version = "1.2", features = ["devtools", "dialog", "fs-all", "path-all", "shell-execute", "window-close", "window-maximize", "window-minimize", "window-set-resizable", "window-set-title", "window-start-dragging", "window-unmaximize", "window-unminimize"] }
pretty_env_logger = "0.4"
log = "0.4"
clap = { version = "4.0.29", features = ["derive"] }
clap-verbosity-flag = "2"
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/tauri-plugin-window-state", rev = "refs/pull/52/head" }
rand = "0.8.5"
tempfile = "3"
which = "4.3"

View File

@@ -1,13 +0,0 @@
[Desktop Entry]
Version=1.5
Categories=Game;Development;GTK;
Exec=slimevr
Icon=dev.slimevr.SlimeVR
Name=SlimeVR
GenericName=Full-body tracking
Comment=An app for facilitating full-body tracking in virtual reality
Keywords=FBT
Terminal=false
Type=Application

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-miterlimit="10" version="1.1" viewBox="0 0 380 380" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<rect id="bg" width="380" height="380" fill="#663499" stroke-width="1px"/><g id="logo" fill="none" stroke="#fff"><path id="left" d="m72.867 191.74 37-39 39 36" stroke-width="13.62px"/><path id="right" d="m208.87 187.74 38-35 36 38" stroke-width="13.62px"/><path id="outer" d="m56.867 253.74s130.61-31.182 248 5c13.45 4.146 20.244 2.975 20-8s1.909-126.06-46-131" stroke-linecap="square" stroke-width="17px"/></g>
</svg>

Before

Width:  |  Height:  |  Size: 623 B

View File

@@ -62,19 +62,11 @@ fn get_launch_path(cli: Cli) -> Option<PathBuf> {
// AppImage passes the fakeroot in `APPDIR` env var.
env::var_os("APPDIR").map(|x| PathBuf::from(x)),
env::current_dir().ok(),
// getcwd in Mac can't be trusted, so let's get the executable's path
env::current_exe()
.map(|mut f| {
f.pop();
f
})
.ok(),
Some(PathBuf::from(env!("CARGO_MANIFEST_DIR"))),
// For flatpak container
Some(PathBuf::from("/app/share/slimevr/")),
Some(PathBuf::from("/usr/share/slimevr/")),
];
paths
.into_iter()
.filter_map(|x| x)
@@ -199,8 +191,10 @@ fn main() {
None
};
let builder = tauri::Builder::default()
.plugin(tauri_plugin_window_state::Builder::default().build())
let builder = tauri::Builder::default();
#[cfg(not(target_os = "macos"))]
let builder = builder.plugin(tauri_plugin_window_state::Builder::default().build());
builder
.setup(|app| {
if let Some(mut recv) = stdout_recv {
let app_handle = app.app_handle();
@@ -230,29 +224,8 @@ fn main() {
Ok(())
})
//
.run(tauri::generate_context!());
match builder {
#[cfg(windows)]
// Often triggered when the user doesn't have webview2 installed
Err(tauri::Error::Runtime(tauri_runtime::Error::CreateWebview(error))) => {
// I should log this anyways, don't want to dig a grave by not logging the error.
log::error!("CreateWebview error {}", error);
use tauri::api::dialog::{
blocking::MessageDialogBuilder, MessageDialogButtons, MessageDialogKind,
};
let confirm = MessageDialogBuilder::new("SlimeVR", "You seem to have a faulty installation of WebView2. You can check a guide on how to fix that in the docs!")
.buttons(MessageDialogButtons::OkCancel)
.kind(MessageDialogKind::Error)
.show();
if confirm {
open::that("https://docs.slimevr.dev/common-issues.html#webview2-is-missing--slimevr-gui-crashes-immediately--panicked-at--webview2error").unwrap();
}
return;
}
_ => builder.expect("error while running tauri application"),
}
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
#[cfg(windows)]
@@ -318,12 +291,8 @@ fn valid_java_paths() -> Vec<(OsString, i32)> {
let mut childs = vec![];
cfg_if::cfg_if! {
if #[cfg(target_os = "macos")] {
// macOS JVMs are saved on multiple possible places,
// /Library/Java/JavaVirtualMachines are the ones installed by an admin
// /Users/$USER/Library/Java/JavaVirtualMachines are the ones installed locally by the user
let libs = glob::glob(concatcp!("/Library/Java/JavaVirtualMachines/*/Contents/Home/bin/", JAVA_BIN))
.unwrap()
.filter_map(|res| res.ok());
// TODO: Actually use macOS paths
let libs = which::which_all(JAVA_BIN).unwrap();
} else if #[cfg(unix)] {
// Linux JVMs are saved on /usr/lib/jvm from what I found out,
// there is usually a default dir and a default-runtime dir also which are linked

View File

@@ -13,7 +13,7 @@
"bundle": {
"active": true,
"targets": "all",
"identifier": "dev.slimevr.SlimeVR",
"identifier": "slimevr.dev",
"icon": ["icons/icon.ico", "icons/icon.png"],
"resources": [],
"externalBin": [],
@@ -56,9 +56,6 @@
"path": {
"all": true
},
"os": {
"all": true
},
"window": {
"setResizable": true,
"setTitle": true,

View File

@@ -38,7 +38,6 @@ import { TrackerSettingsPage } from './components/tracker/TrackerSettings';
import { useConfig } from './hooks/config';
import { OSCRouterSettings } from './components/settings/pages/OSCRouterSettings';
import { useLocalization } from '@fluent/react';
import { os } from '@tauri-apps/api';
function Layout() {
const { loading } = useConfig();
@@ -113,28 +112,12 @@ export default function App() {
const websocketAPI = useProvideWebsocketApi();
const { l10n } = useLocalization();
useEffect(() => {
os.type()
.then((type) => {
document.body.classList.add(type.toLowerCase());
})
.catch(console.error);
return () => {
os.type()
.then((type) => {
document.body.classList.remove(type.toLowerCase());
})
.catch(console.error);
};
}, []);
useEffect(() => {
const unlisten = listen(
'server-status',
(event: Event<[string, string]>) => {
const [eventType, s] = event.payload;
if ('stderr' === eventType) {
const [event_type, s] = event.payload;
if ('stderr' === event_type) {
// This strange invocation is what lets us lose the line information in the console
// See more here: https://stackoverflow.com/a/48994308
setTimeout(
@@ -145,7 +128,7 @@ export default function App() {
'color:red'
)
);
} else if (eventType === 'stdout') {
} else if (event_type === 'stdout') {
setTimeout(
console.log.bind(
console,
@@ -154,11 +137,11 @@ export default function App() {
'color:green'
)
);
} else if (eventType === 'error') {
} else if (event_type === 'error') {
console.error('Error: %s', s);
} else if (eventType === 'terminated') {
} else if (event_type === 'terminated') {
console.error('Server Process Terminated: %s', s);
} else if (eventType === 'other') {
} else if (event_type === 'other') {
console.log('Other process event: %s', s);
}
}

View File

@@ -9,7 +9,7 @@ import { useWebsocketAPI } from '../hooks/websocket-api';
import { BigButton } from './commons/BigButton';
import { RecordIcon } from './commons/icon/RecordIcon';
export function BVHButton(props: React.HTMLAttributes<HTMLButtonElement>) {
export function BVHButton() {
const { l10n } = useLocalization();
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [recording, setRecording] = useState(false);
@@ -29,7 +29,6 @@ export function BVHButton(props: React.HTMLAttributes<HTMLButtonElement>) {
text={l10n.getString(recording ? 'bvh-recording' : 'bvh-start_recording')}
icon={<RecordIcon width={20} />}
onClick={toggleBVH}
className={props.className}
></BigButton>
);
}

View File

@@ -1,20 +0,0 @@
import { useLocalization } from '@fluent/react';
import { ClearDriftCompensationRequestT, RpcMessage } from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { Button } from './commons/Button';
export function ClearDriftCompensationButton() {
const { l10n } = useLocalization();
const { sendRPCPacket } = useWebsocketAPI();
const clearDriftCompensation = () => {
const record = new ClearDriftCompensationRequestT();
sendRPCPacket(RpcMessage.ClearDriftCompensationRequest, record);
};
return (
<Button variant="secondary" onClick={clearDriftCompensation}>
{l10n.getString('widget-drift_compensation-clear')}
</Button>
);
}

View File

@@ -1,11 +1,6 @@
import classNames from 'classnames';
import { ReactNode, useEffect, useState } from 'react';
import {
ResetType,
RpcMessage,
SettingsRequestT,
SettingsResponseT,
} from 'solarxr-protocol';
import { ReactNode } from 'react';
import { ResetType } from 'solarxr-protocol';
import { useConfig } from '../hooks/config';
import { useLayout } from '../hooks/layout';
import { BVHButton } from './BVHButton';
@@ -14,8 +9,6 @@ import { Navbar } from './Navbar';
import { TopBar } from './TopBar';
import { DeveloperModeWidget } from './widgets/DeveloperModeWidget';
import { OverlayWidget } from './widgets/OverlayWidget';
import { ClearDriftCompensationButton } from './ClearDriftCompensationButton';
import { useWebsocketAPI } from '../hooks/websocket-api';
export function MainLayoutRoute({
children,
@@ -29,18 +22,6 @@ export function MainLayoutRoute({
const { layoutHeight, ref } = useLayout<HTMLDivElement>();
const { layoutWidth, ref: refw } = useLayout<HTMLDivElement>();
const { config } = useConfig();
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [driftCompensationEnabled, setDriftCompensationEnabled] =
useState(false);
useEffect(() => {
sendRPCPacket(RpcMessage.SettingsRequest, new SettingsRequestT());
}, []);
useRPCPacket(RpcMessage.SettingsResponse, (settings: SettingsResponseT) => {
if (settings.driftCompensation != null)
setDriftCompensationEnabled(settings.driftCompensation.enabled);
});
return (
<>
@@ -72,19 +53,12 @@ export function MainLayoutRoute({
type={ResetType.Full}
variant="big"
></ResetButton>
{config?.debug && (
<ResetButton
type={ResetType.Mounting}
variant="big"
></ResetButton>
)}
<BVHButton
className={config?.debug ? 'col-span-1' : 'col-span-2'}
></BVHButton>
<ResetButton
type={ResetType.Mounting}
variant="big"
></ResetButton>
<BVHButton></BVHButton>
</div>
{driftCompensationEnabled && (
<ClearDriftCompensationButton></ClearDriftCompensationButton>
)}
<div className="w-full">
<OverlayWidget></OverlayWidget>
</div>

View File

@@ -2,7 +2,6 @@ import { useLocalization } from '@fluent/react';
import classnames from 'classnames';
import { ReactNode } from 'react';
import { NavLink, useMatch } from 'react-router-dom';
import { useBodyProportions } from '../hooks/body-proportions';
import { CubeIcon } from './commons/icon/CubeIcon';
import { GearIcon } from './commons/icon/GearIcon';
@@ -59,7 +58,6 @@ export function NavButton({
export function Navbar() {
const { l10n } = useLocalization();
const { lastUsedPage } = useBodyProportions();
return (
<div className="flex flex-col px-2 pt-2">
@@ -68,7 +66,7 @@ export function Navbar() {
{l10n.getString('navbar-home')}
</NavButton>
<NavButton
to={lastUsedPage}
to="/onboarding/body-proportions/auto"
match="/onboarding/body-proportions/*"
state={{ alonePage: true }}
icon={<GearIcon></GearIcon>}

View File

@@ -1,33 +1,112 @@
import { Localized, useLocalization } from '@fluent/react';
import { useState } from 'react';
import { useLocalization } from '@fluent/react';
import { useEffect, useState } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import {
NewSerialDeviceResponseT,
RpcMessage,
SerialDevicesRequestT,
SerialDevicesResponseT,
SerialDeviceT,
} from 'solarxr-protocol';
import { useConfig } from '../hooks/config';
import { usePrevious } from '../hooks/previous';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { useWifiForm, WifiFormData } from '../hooks/wifi-form';
import { BaseModal } from './commons/BaseModal';
import { Button } from './commons/Button';
import { BulbIcon } from './commons/icon/BulbIcon';
import { USBIcon } from './commons/icon/UsbIcon';
import { Input } from './commons/Input';
import { Typography } from './commons/Typography';
const mapItems = <T,>(items: T[], getKey: (item: T) => string) => {
const map: any = {};
for (const item of items) {
const key = getKey(item);
map[key] = item;
}
return map;
};
const detectChanges = <T,>(
prevItems: T[],
nextItems: T[],
getKey: (item: T) => string,
compareItems: (a: T, b: T) => boolean
) => {
const mappedItems = mapItems(prevItems, getKey);
const addedItems = [];
const updatedItems = [];
const removedItems = [];
const unchangedItems = [];
for (const nextItem of nextItems) {
const itemKey = getKey(nextItem);
if (itemKey in mappedItems) {
const prevItem = mappedItems[itemKey];
if (delete mappedItems[itemKey] && compareItems(prevItem, nextItem)) {
unchangedItems.push(nextItem);
} else {
updatedItems.push(nextItem);
}
} else {
addedItems.push(nextItem);
}
}
for (const itemKey in mappedItems) {
if (itemKey in mappedItems) {
removedItems.push(mappedItems[itemKey]);
}
}
return { addedItems, updatedItems, removedItems, unchangedItems };
};
export function SerialDetectionModal() {
const { l10n } = useLocalization();
const { config } = useConfig();
const nav = useNavigate();
const { pathname } = useLocation();
const { useRPCPacket } = useWebsocketAPI();
const { sendRPCPacket, useRPCPacket } = useWebsocketAPI();
const [currentDevices, setCurrentDevices] = useState<SerialDeviceT[] | null>(
null
);
const prevDevices = usePrevious<SerialDeviceT[] | null>(currentDevices);
const [isOpen, setOpen] = useState<SerialDeviceT | null>(null);
const [showWifiForm, setShowWifiForm] = useState(false);
const { handleSubmit, submitWifiCreds, formState, hasWifiCreds, control } =
const { WifiForm, handleSubmit, submitWifiCreds, formState, hasWifiCreds } =
useWifiForm();
useEffect(() => {
if (prevDevices == null) return;
const changes = detectChanges(
prevDevices || [],
currentDevices || [],
(item) => item.port?.toString() || 'error',
(a, b) => a.port == b.port && a.name == b.name
);
if (changes.addedItems.length === 1) {
setOpen(changes.addedItems[0]);
}
}, [prevDevices, currentDevices]);
useEffect(() => {
let timerId: NodeJS.Timer;
if (
config?.watchNewDevices &&
!['/settings/serial', '/onboarding/connect-trackers'].includes(pathname)
) {
timerId = setInterval(() => {
sendRPCPacket(
RpcMessage.SerialDevicesRequest,
new SerialDevicesRequestT()
);
}, 3000);
}
return () => {
clearInterval(timerId);
};
}, [config, sendRPCPacket, pathname]);
const closeModal = () => {
setOpen(null);
setShowWifiForm(false);
@@ -54,14 +133,9 @@ export function SerialDetectionModal() {
};
useRPCPacket(
RpcMessage.NewSerialDeviceResponse,
({ device }: NewSerialDeviceResponseT) => {
if (
config?.watchNewDevices &&
!['/settings/serial', '/onboarding/connect-trackers'].includes(pathname)
) {
setOpen(device);
}
RpcMessage.SerialDevicesResponse,
(val: SerialDevicesResponseT) => {
setCurrentDevices(val.devices);
}
);
@@ -111,33 +185,7 @@ export function SerialDetectionModal() {
</Typography>
</div>
<div className="flex flex-col gap-3 rounded-xl max-w-sm">
<Localized
id="onboarding-wifi_creds-ssid"
attrs={{ placeholder: true, label: true }}
>
<Input
control={control}
rules={{ required: true }}
name="ssid"
type="text"
label="SSID"
placeholder="ssid"
variant="secondary"
/>
</Localized>
<Localized
id="onboarding-wifi_creds-password"
attrs={{ placeholder: true, label: true }}
>
<Input
control={control}
name="password"
type="password"
label="Password"
placeholder="password"
variant="secondary"
/>
</Localized>
<WifiForm></WifiForm>
</div>
<Button

View File

@@ -1,12 +1,6 @@
import { appWindow } from '@tauri-apps/api/window';
import { ReactNode, useEffect, useState } from 'react';
import { NavLink, useMatch } from 'react-router-dom';
import {
RpcMessage,
ServerInfosRequestT,
ServerInfosResponseT,
} from 'solarxr-protocol';
import { useWebsocketAPI } from '../hooks/websocket-api';
import { ReactNode } from 'react';
import { NavLink } from 'react-router-dom';
import { CloseIcon } from './commons/icon/CloseIcon';
import { MaximiseIcon } from './commons/icon/MaximiseIcon';
import { MinimiseIcon } from './commons/icon/MinimiseIcon';
@@ -20,30 +14,13 @@ export function TopBar({
children?: ReactNode;
progress?: number;
}) {
const { useRPCPacket, sendRPCPacket } = useWebsocketAPI();
const [localIp, setLocalIp] = useState<string | null>(null);
const doesMatchSettings = useMatch({
path: '/settings/*',
});
useEffect(() => {
sendRPCPacket(RpcMessage.ServerInfosRequest, new ServerInfosRequestT());
}, []);
useRPCPacket(
RpcMessage.ServerInfosResponse,
({ localIp }: ServerInfosResponseT) => {
if (localIp) setLocalIp(localIp.toString());
}
);
return (
<div data-tauri-drag-region className="flex gap-2 h-[38px] z-50">
<div
className="flex px-2 pb-1 mt-3 justify-around z-50"
data-tauri-drag-region
>
<div className="flex gap-2" data-tauri-drag-region>
<div className="flex gap-1" data-tauri-drag-region>
<NavLink
to="/"
className="flex justify-around flex-col select-all"
@@ -54,15 +31,13 @@ export function TopBar({
<div className="flex justify-around flex-col" data-tauri-drag-region>
<Typography>SlimeVR</Typography>
</div>
<div className="flex justify-around flex-col text-standard-bold text-status-success bg-status-success bg-opacity-20 rounded-lg px-3 select-text">
<div
className="mx-2 flex justify-around flex-col text-standard-bold text-status-success bg-status-success bg-opacity-20 rounded-lg px-3"
data-tauri-drag-region
>
{(__VERSION_TAG__ || __COMMIT_HASH__) +
(__GIT_CLEAN__ ? '' : '-dirty')}
</div>
{doesMatchSettings && (
<div className="flex justify-around flex-col text-standard-bold text-status-special bg-status-special bg-opacity-20 rounded-lg px-3 select-text">
{localIp || 'unknown local ip'}
</div>
)}
</div>
</div>
<div

View File

@@ -14,19 +14,13 @@ export function BaseModal({
{...props}
shouldCloseOnOverlayClick
shouldCloseOnEsc
overlayClassName={
props.overlayClassName ||
classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col justify-center items-center w-full h-full bg-background-90 bg-opacity-60 z-20'
)
}
className={
props.className ||
classNames(
props.className as string,
'items-center focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent outline-none bg-background-60 p-6 rounded-lg text-white'
)
}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col justify-center items-center w-full h-full bg-background-90 bg-opacity-60 z-20'
)}
className={classNames(
props.className as string,
'items-center focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent outline-none bg-background-60 p-6 rounded-lg text-white'
)}
>
{children}
</ReactModal>

View File

@@ -5,7 +5,7 @@ import {
useLayoutEffect,
useMemo,
useRef,
useState,
useState
} from 'react';
import { BodyPart, TrackerDataT } from 'solarxr-protocol';
import { FlatDeviceTracker } from '../../hooks/app';

View File

@@ -6,12 +6,10 @@ import { PersonFrontIcon } from './PersonFrontIcon';
export function BodyInteractions({
leftControls,
rightControls,
highlightedRoles,
assignedRoles,
width = 228,
dotsSize = 15,
dotsSize = 20,
variant = 'tracker-select',
onSelectRole,
}: {
leftControls?: ReactNode;
rightControls?: ReactNode;
@@ -19,8 +17,6 @@ export function BodyInteractions({
dotsSize?: number;
variant?: 'dots' | 'tracker-select';
assignedRoles: BodyPart[];
onSelectRole: (role: BodyPart) => void;
highlightedRoles: BodyPart[];
}) {
const personRef = useRef<HTMLDivElement | null>(null);
const leftContainerRef = useRef<HTMLDivElement | null>(null);
@@ -169,41 +165,21 @@ export function BodyInteractions({
<div
key={id}
className="absolute z-10"
onClick={() => onSelectRole((BodyPart as any)[id])}
style={{
top: top + height / 2 - dotsSize / 2 + buttonOffset.top,
left: left + width / 2 - dotsSize / 2 + buttonOffset.left,
}}
>
<div className="relative">
{highlightedRoles.includes((BodyPart as any)[id]) && (
<div
className={classNames(
'absolute rounded-full outline outline-2 outline-status-warning transition-opacity',
(hidden && 'opacity-0') || 'opacity-100 animate-ping'
)}
style={{
width: dotsSize,
height: dotsSize,
animationDuration: '1.5s',
}}
></div>
<div
className={classNames(
'rounded-full outline outline-2 outline-background-20 transition-opacity',
(assignedRoles.includes((BodyPart as any)[id]) &&
'bg-background-70') ||
'bg-background-10',
(hidden && 'opacity-0') || 'opacity-100'
)}
<div
className={classNames(
'absolute rounded-full outline outline-2 outline-background-20 transition-opacity',
'hover:bg-accent-background-40',
(assignedRoles.includes((BodyPart as any)[id]) &&
'bg-background-70') ||
'bg-background-10',
(hidden && 'opacity-0') || 'opacity-100'
)}
style={{
width: dotsSize,
height: dotsSize,
}}
></div>
</div>
style={{ width: dotsSize, height: dotsSize }}
></div>
</div>
)
)}

View File

@@ -62,7 +62,7 @@ export function CheckBox({
<input
ref={ref}
onChange={onChange}
checked={value || false}
checked={value}
name={name}
className={classes.checkbox}
type="checkbox"

View File

@@ -1,7 +1,6 @@
import classNames from 'classnames';
import { useEffect, useState } from 'react';
import { useState } from 'react';
import { Control, Controller } from 'react-hook-form';
import { a11yClick } from '../utils/a11y';
export interface DropdownItem {
label: string;
@@ -13,7 +12,6 @@ export type DropdownDirection = 'up' | 'down';
export function Dropdown({
direction = 'up',
variant = 'primary',
alignment = 'right',
placeholder,
control,
name,
@@ -21,27 +19,12 @@ export function Dropdown({
}: {
direction?: DropdownDirection;
variant?: 'primary' | 'secondary';
alignment?: 'right' | 'left';
placeholder: string;
control: Control<any>;
name: string;
items: DropdownItem[];
}) {
const [isOpen, setOpen] = useState(false);
useEffect(() => {
if (!isOpen) return;
function onWheelEvent() {
if (isOpen && !document.querySelector('div.dropdown-scroll:hover')) {
setOpen(false);
}
}
document.addEventListener('wheel', onWheelEvent, { passive: true });
// TS doesn't let me specify { passive: true }, but I believe it will work anyways
return () => document.removeEventListener('wheel', onWheelEvent);
}, [isOpen]);
return (
<Controller
@@ -58,16 +41,13 @@ export function Dropdown({
<div className="relative w-fit">
<div
className={classNames(
'min-h-[35px] text-white px-5 py-2.5 rounded-md focus:ring-4 text-center',
'flex cursor-pointer',
'min-h-[35px] text-white px-5 py-2.5 rounded-md focus:ring-4 text-center flex',
variant == 'primary' &&
'bg-background-60 hover:bg-background-50',
variant == 'secondary' &&
'bg-background-70 hover:bg-background-60'
)}
onClick={() => setOpen((open) => !open)}
onKeyDown={(ev) => a11yClick(ev) && setOpen((open) => !open)}
tabIndex={0}
>
<div className="flex-grow">
{items.find((i) => i.value == value)?.label || placeholder}
@@ -99,21 +79,18 @@ export function Dropdown({
{isOpen && (
<div
className={classNames(
'absolute z-10 rounded shadow min-w-max max-h-[50vh]',
'overflow-y-auto dropdown-scroll',
'absolute z-10 rounded shadow right-0 min-w-max',
direction === 'up' && 'bottom-[45px]',
direction === 'down' && 'top-[45px]',
variant == 'primary' && 'bg-background-60',
variant == 'secondary' && 'bg-background-70',
alignment === 'right' && 'right-0',
alignment === 'left' && 'left-0'
variant == 'secondary' && 'bg-background-70'
)}
>
<ul className="py-1 text-sm text-gray-200 flex flex-col pr-2">
<ul className="py-1 text-sm text-gray-200 flex flex-col ">
{items.map((item) => (
<li
className={classNames(
'py-2 px-4 hover:text-white min-w-max cursor-pointer',
'py-2 px-4 hover:text-white min-w-max',
variant == 'primary' && 'hover:bg-background-50',
variant == 'secondary' && 'hover:bg-background-60'
)}
@@ -121,13 +98,7 @@ export function Dropdown({
onChange(item.value);
setOpen(false);
}}
onKeyDown={(ev) => {
if (!a11yClick(ev)) return;
onChange(item.value);
setOpen(false);
}}
key={item.value}
tabIndex={0}
>
{item.label}
</li>

View File

@@ -1,32 +1,23 @@
import classNames from 'classnames';
import { forwardRef, MouseEvent, useMemo, useState } from 'react';
import { Control, Controller, UseControllerProps } from 'react-hook-form';
import {
forwardRef,
HTMLInputTypeAttribute,
MouseEvent,
useMemo,
useState
} from 'react';
import { EyeIcon } from './icon/EyeIcon';
interface InputProps {
export interface InputProps {
type: HTMLInputTypeAttribute;
placeholder?: string | null;
label?: string | null;
autocomplete?: boolean;
variant?: 'primary' | 'secondary';
label?: string;
name: string;
}
export const InputInside = forwardRef<
HTMLInputElement,
{
variant?: 'primary' | 'secondary';
label?: string;
onChange: () => void;
} & Partial<HTMLInputElement>
>(function AppInput(
{
type,
placeholder,
label,
autocomplete,
name,
onChange,
value,
variant = 'primary',
},
export const Input = forwardRef<HTMLInputElement, InputProps>(function AppInput(
{ type, placeholder, label, autocomplete, variant = 'primary', ...props },
ref
) {
const [forceText, setForceText] = useState(false);
@@ -54,13 +45,11 @@ export const InputInside = forwardRef<
<div className="relative w-full">
<input
type={forceText ? 'text' : type}
ref={ref}
className={classNames(classes, { 'pr-10': type === 'password' })}
placeholder={placeholder || undefined}
autoComplete={autocomplete ? 'off' : 'on'}
onChange={onChange}
name={name}
value={value || ''}
ref={ref}
{...props}
></input>
{type === 'password' && (
<div
@@ -74,39 +63,3 @@ export const InputInside = forwardRef<
</label>
);
});
export const Input = ({
type,
control,
name,
placeholder,
label,
autocomplete,
variant = 'primary',
rules,
}: {
rules?: UseControllerProps<any>['rules'];
control: Control<any>;
} & InputProps &
Partial<HTMLInputElement>) => {
return (
<Controller
control={control}
name={name}
rules={rules}
render={({ field: { onChange, value, ref, name } }) => (
<InputInside
type={type}
autocomplete={autocomplete}
label={label}
placeholder={placeholder}
variant={variant}
value={value}
onChange={onChange}
ref={ref}
name={name}
></InputInside>
)}
/>
);
};

View File

@@ -7,10 +7,8 @@ import { Dropdown, DropdownDirection } from './Dropdown';
export function LangSelector({
direction = 'up',
alignment = 'right',
}: {
direction?: DropdownDirection;
alignment?: 'right' | 'left';
}) {
const { changeLocales } = useContext(LangContext);
const { l10n } = useLocalization();
@@ -43,7 +41,6 @@ export function LangSelector({
)}
items={languagesItems}
direction={direction}
alignment={alignment}
></Dropdown>
);
}

View File

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

View File

@@ -1,6 +1,5 @@
import { ReactNode } from 'react';
import { BulbIcon } from './icon/BulbIcon';
import { WarningIcon } from './icon/WarningIcon';
import { Typography } from './Typography';
export function TipBox({ children }: { children: ReactNode }) {
@@ -15,21 +14,3 @@ export function TipBox({ children }: { children: ReactNode }) {
</div>
);
}
/**
* Will respect new lines and spacing given in text
*/
export function WarningBox({ children }: { children: ReactNode }) {
return (
<div className="flex flex-row gap-4 bg-status-warning p-4 rounded-md">
<div className="text-background-60 flex flex-col justify-center">
<WarningIcon></WarningIcon>
</div>
<div className="flex flex-col">
<Typography color="text-background-60" whitespace="whitespace-pre">
{children}
</Typography>
</div>
</div>
);
}

View File

@@ -5,19 +5,12 @@ export function Typography({
variant = 'standard',
bold = false,
color = 'primary',
whitespace = 'whitespace-normal',
children,
}: {
variant?: 'main-title' | 'section-title' | 'standard' | 'vr-accessible';
bold?: boolean;
block?: boolean;
color?: 'primary' | 'secondary' | string;
whitespace?:
| 'whitespace-normal'
| 'whitespace-nowrap'
| 'whitespace-pre'
| 'whitespace-pre-line'
| 'whitespace-pre-wrap';
children: ReactNode;
}) {
const tag = useMemo(() => {
@@ -43,7 +36,6 @@ export function Typography({
color === 'primary' && 'text-background-10',
color === 'secondary' && 'text-background-30',
typeof color === 'string' && color,
whitespace,
]),
},
children

View File

@@ -4,11 +4,9 @@ import { useMemo } from 'react';
export function BatteryIcon({
value,
disabled = false,
charging,
}: {
value: number;
disabled?: boolean;
charging: boolean;
}) {
const col = useMemo(() => {
const colorsMap: { [key: number]: string } = {
@@ -28,7 +26,7 @@ export function BatteryIcon({
return (
<svg
width="19"
height="11"
height="9"
viewBox="0 0 19 9"
xmlns="http://www.w3.org/2000/svg"
>
@@ -61,13 +59,6 @@ export function BatteryIcon({
<g mask="url(#mask0_4_39)" className={classNames(col, 'opacity-100')}>
<rect width={value * 18} height="9" />
</g>
{charging && (
<path
d="M 0.93561138,11.744353 2.4349252,6.1488377 H 0.0312815 L 3.5761014,0.00903018 2.2061799,5.1216451 h 2.4534885 z"
fill="#081e30"
transform="translate(5,-1)"
/>
)}
</svg>
);
}

View File

@@ -1,4 +1,4 @@
export function CheckIcon(_props: any) {
export function CheckIcon(props: any) {
return (
<svg
width="9"

View File

@@ -44,7 +44,7 @@ export function Home() {
</div>
)}
{config?.debug && trackers.length > 0 && (
<div className="px-2 pt-5 overflow-y-scroll overflow-x-auto">
<div className="flex px-2 pt-5 justify-center overflow-x-auto">
<TrackersTable
flatTrackers={trackers}
clickedTracker={(tracker) => sendToSettings(tracker)}

View File

@@ -1,46 +1,21 @@
import { useLocalization } from '@fluent/react';
import { useMemo } from 'react';
import { BodyPart } from 'solarxr-protocol';
import { FlatDeviceTracker } from '../../hooks/app';
import { useTrackers } from '../../hooks/tracker';
import { BodyInteractions } from '../commons/BodyInteractions';
import { TrackerPartCard } from '../tracker/TrackerPartCard';
import { BodyPartError } from './pages/trackers-assign/TrackerAssignment';
export const SPINE_PARTS = [BodyPart.HIP, BodyPart.CHEST, BodyPart.WAIST];
export const ASSIGNMENT_RULES: Partial<
Record<BodyPart, (BodyPart | BodyPart[])[]>
> = {
[BodyPart.LEFT_FOOT]: [
BodyPart.LEFT_LOWER_LEG,
BodyPart.LEFT_UPPER_LEG,
SPINE_PARTS,
],
[BodyPart.RIGHT_FOOT]: [
BodyPart.RIGHT_LOWER_LEG,
BodyPart.RIGHT_UPPER_LEG,
SPINE_PARTS,
],
[BodyPart.LEFT_LOWER_LEG]: [BodyPart.LEFT_UPPER_LEG, SPINE_PARTS],
[BodyPart.RIGHT_LOWER_LEG]: [BodyPart.RIGHT_UPPER_LEG, SPINE_PARTS],
[BodyPart.LEFT_UPPER_LEG]: [SPINE_PARTS],
[BodyPart.RIGHT_UPPER_LEG]: [SPINE_PARTS],
[BodyPart.HIP]: [BodyPart.CHEST],
[BodyPart.WAIST]: [BodyPart.CHEST],
};
export function BodyAssignment({
advanced,
onRoleSelected,
rolesWithErrors = {},
highlightedRoles = [],
onlyAssigned = false,
}: {
advanced: boolean;
onlyAssigned: boolean;
rolesWithErrors?: Partial<Record<BodyPart, BodyPartError>>;
highlightedRoles?: BodyPart[];
onRoleSelected: (role: BodyPart) => void;
}) {
const { l10n } = useLocalization();
const { useAssignedTrackers } = useTrackers();
const assignedTrackers = useAssignedTrackers();
@@ -75,15 +50,12 @@ export function BodyAssignment({
<>
<BodyInteractions
assignedRoles={assignedRoles}
highlightedRoles={highlightedRoles}
onSelectRole={onRoleSelected}
leftControls={
<div className="flex flex-col justify-between h-full text-right">
<div className="flex flex-col gap-2">
{advanced && (
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.HEAD]?.label}
td={trackerPartGrouped[BodyPart.HEAD]}
role={BodyPart.HEAD}
onClick={() => onRoleSelected(BodyPart.HEAD)}
@@ -93,7 +65,6 @@ export function BodyAssignment({
{advanced && (
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.NECK]?.label}
td={trackerPartGrouped[BodyPart.NECK]}
role={BodyPart.NECK}
onClick={() => onRoleSelected(BodyPart.NECK)}
@@ -106,7 +77,6 @@ export function BodyAssignment({
{advanced && (
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_SHOULDER]?.label}
td={trackerPartGrouped[BodyPart.LEFT_SHOULDER]}
role={BodyPart.LEFT_SHOULDER}
onClick={() => onRoleSelected(BodyPart.LEFT_SHOULDER)}
@@ -115,7 +85,6 @@ export function BodyAssignment({
)}
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_UPPER_ARM]?.label}
td={trackerPartGrouped[BodyPart.LEFT_UPPER_ARM]}
role={BodyPart.LEFT_UPPER_ARM}
onClick={() => onRoleSelected(BodyPart.LEFT_UPPER_ARM)}
@@ -125,7 +94,6 @@ export function BodyAssignment({
<div className="flex flex-col gap-2">
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_LOWER_ARM]?.label}
td={trackerPartGrouped[BodyPart.LEFT_LOWER_ARM]}
role={BodyPart.LEFT_LOWER_ARM}
onClick={() => onRoleSelected(BodyPart.LEFT_LOWER_ARM)}
@@ -135,7 +103,6 @@ export function BodyAssignment({
{advanced && (
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_HAND]?.label}
td={trackerPartGrouped[BodyPart.LEFT_HAND]}
role={BodyPart.LEFT_HAND}
onClick={() => onRoleSelected(BodyPart.LEFT_HAND)}
@@ -146,7 +113,6 @@ export function BodyAssignment({
<div className="flex flex-col gap-2">
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_UPPER_LEG]?.label}
td={trackerPartGrouped[BodyPart.LEFT_UPPER_LEG]}
role={BodyPart.LEFT_UPPER_LEG}
onClick={() => onRoleSelected(BodyPart.LEFT_UPPER_LEG)}
@@ -155,7 +121,6 @@ export function BodyAssignment({
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_LOWER_LEG]?.label}
td={trackerPartGrouped[BodyPart.LEFT_LOWER_LEG]}
role={BodyPart.LEFT_LOWER_LEG}
onClick={() => onRoleSelected(BodyPart.LEFT_LOWER_LEG)}
@@ -163,7 +128,6 @@ export function BodyAssignment({
/>
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.LEFT_FOOT]?.label}
td={trackerPartGrouped[BodyPart.LEFT_FOOT]}
role={BodyPart.LEFT_FOOT}
onClick={() => onRoleSelected(BodyPart.LEFT_FOOT)}
@@ -176,7 +140,6 @@ export function BodyAssignment({
<div className="flex flex-col justify-between h-full">
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.CHEST]?.label}
td={trackerPartGrouped[BodyPart.CHEST]}
role={BodyPart.CHEST}
onClick={() => onRoleSelected(BodyPart.CHEST)}
@@ -187,7 +150,6 @@ export function BodyAssignment({
{advanced && (
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_SHOULDER]?.label}
td={trackerPartGrouped[BodyPart.RIGHT_SHOULDER]}
role={BodyPart.RIGHT_SHOULDER}
onClick={() => onRoleSelected(BodyPart.RIGHT_SHOULDER)}
@@ -197,7 +159,6 @@ export function BodyAssignment({
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_UPPER_ARM]?.label}
td={trackerPartGrouped[BodyPart.RIGHT_UPPER_ARM]}
role={BodyPart.RIGHT_UPPER_ARM}
onClick={() => onRoleSelected(BodyPart.RIGHT_UPPER_ARM)}
@@ -208,26 +169,6 @@ export function BodyAssignment({
<div className="flex flex-col gap-2">
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.WAIST]?.label}
td={trackerPartGrouped[BodyPart.WAIST]}
onClick={() => onRoleSelected(BodyPart.WAIST)}
role={BodyPart.WAIST}
direction="left"
/>
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.HIP]?.label}
td={trackerPartGrouped[BodyPart.HIP]}
onClick={() => onRoleSelected(BodyPart.HIP)}
role={BodyPart.HIP}
direction="left"
/>
</div>
<div className="flex flex-col gap-2">
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_LOWER_ARM]?.label}
td={trackerPartGrouped[BodyPart.RIGHT_LOWER_ARM]}
role={BodyPart.RIGHT_LOWER_ARM}
onClick={() => onRoleSelected(BodyPart.RIGHT_LOWER_ARM)}
@@ -236,7 +177,6 @@ export function BodyAssignment({
{advanced && (
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_HAND]?.label}
td={trackerPartGrouped[BodyPart.RIGHT_HAND]}
onClick={() => onRoleSelected(BodyPart.RIGHT_HAND)}
role={BodyPart.RIGHT_HAND}
@@ -248,7 +188,22 @@ export function BodyAssignment({
<div className="flex flex-col gap-2">
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_UPPER_LEG]?.label}
td={trackerPartGrouped[BodyPart.WAIST]}
onClick={() => onRoleSelected(BodyPart.WAIST)}
role={BodyPart.WAIST}
direction="left"
/>
<TrackerPartCard
onlyAssigned={onlyAssigned}
td={trackerPartGrouped[BodyPart.HIP]}
onClick={() => onRoleSelected(BodyPart.HIP)}
role={BodyPart.HIP}
direction="left"
/>
</div>
<div className="flex flex-col gap-2">
<TrackerPartCard
onlyAssigned={onlyAssigned}
td={trackerPartGrouped[BodyPart.RIGHT_UPPER_LEG]}
role={BodyPart.RIGHT_UPPER_LEG}
onClick={() => onRoleSelected(BodyPart.RIGHT_UPPER_LEG)}
@@ -257,7 +212,6 @@ export function BodyAssignment({
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_LOWER_LEG]?.label}
td={trackerPartGrouped[BodyPart.RIGHT_LOWER_LEG]}
role={BodyPart.RIGHT_LOWER_LEG}
onClick={() => onRoleSelected(BodyPart.RIGHT_LOWER_LEG)}
@@ -265,7 +219,6 @@ export function BodyAssignment({
/>
<TrackerPartCard
onlyAssigned={onlyAssigned}
roleError={rolesWithErrors[BodyPart.RIGHT_FOOT]?.label}
td={trackerPartGrouped[BodyPart.RIGHT_FOOT]}
role={BodyPart.RIGHT_FOOT}
onClick={() => onRoleSelected(BodyPart.RIGHT_FOOT)}

View File

@@ -1,69 +0,0 @@
import { Button } from '../commons/Button';
import { WarningBox } from '../commons/TipBox';
import { Localized, useLocalization } from '@fluent/react';
import { BaseModal } from '../commons/BaseModal';
import ReactModal from 'react-modal';
export function NeckWarningModal({
isOpen = true,
onClose,
accept,
...props
}: {
/**
* Is the parent/sibling component opened?
*/
isOpen: boolean;
/**
* Function to trigger when the neck warning hasn't been accepted
*/
onClose: () => void;
/**
* Function when you press `i understand`
*/
accept: () => void;
} & ReactModal.Props) {
const { l10n } = useLocalization();
// isOpen is checked by checking if the parent modal is opened + our bodyPart is the
// neck and we havent showed this warning yet
return (
<BaseModal
isOpen={isOpen}
shouldCloseOnOverlayClick
shouldCloseOnEsc
onRequestClose={onClose}
className={props.className}
overlayClassName={props.overlayClassName}
>
<div className="flex w-full h-full flex-col ">
<div className="flex w-full flex-col flex-grow items-center gap-3">
<Localized
id="tracker_selection_menu-neck_warning"
elems={{ b: <b></b> }}
>
<WarningBox>
<b>Warning:</b> A neck tracker can be deadly if adjusted too
tightly, the strap could cut the circulation to your head!
</WarningBox>
</Localized>
<div className="flex flex-row gap-3 pt-5 place-content-center">
<Button variant="secondary" onClick={onClose}>
{l10n.getString('tracker_selection_menu-neck_warning-cancel')}
</Button>
<Button
variant="primary"
onClick={() => {
accept();
sessionStorage.setItem('neckWarning', 'true');
}}
>
{l10n.getString('tracker_selection_menu-neck_warning-done')}
</Button>
</div>
</div>
</div>
</BaseModal>
);
}

View File

@@ -1,7 +1,7 @@
import { ReactNode } from 'react';
import {
OnboardingContextC,
useProvideOnboarding,
useProvideOnboarding
} from '../../hooks/onboarding';
export function OnboardingContextProvider({

View File

@@ -5,7 +5,7 @@ import {
ReactNode,
useEffect,
useRef,
useState,
useState
} from 'react';
import { useElemSize } from '../../hooks/layout';
import { CheckIcon } from '../commons/icon/CheckIcon';
@@ -133,7 +133,7 @@ export function StepperSlider({
type={type}
width={width}
active={index === step}
step={index}
step={step}
>
<StepComponent
variant={variant}

View File

@@ -3,11 +3,11 @@ import classNames from 'classnames';
import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import {
CloseSerialRequestT,
OpenSerialRequestT,
RpcMessage,
StartWifiProvisioningRequestT,
StopWifiProvisioningRequestT,
WifiProvisioningStatus,
WifiProvisioningStatusResponseT
SerialUpdateResponseT,
SetWifiRequestT,
} from 'solarxr-protocol';
import { useLayout } from '../../../hooks/layout';
import { useOnboarding } from '../../../hooks/onboarding';
@@ -21,24 +21,20 @@ import { Typography } from '../../commons/Typography';
import { TrackerCard } from '../../tracker/TrackerCard';
const BOTTOM_HEIGHT = 80;
type ConnectionStatus =
| 'CONNECTING'
| 'CONNECTED'
| 'HANDSHAKE'
| 'ERROR'
| 'START-CONNECTING';
const statusLabelMap = {
[WifiProvisioningStatus.NONE]:
'onboarding-connect_tracker-connection_status-none',
[WifiProvisioningStatus.SERIAL_INIT]:
'onboarding-connect_tracker-connection_status-serial_init',
[WifiProvisioningStatus.PROVISIONING]:
'onboarding-connect_tracker-connection_status-provisioning',
[WifiProvisioningStatus.CONNECTING]:
'onboarding-connect_tracker-connection_status-connecting',
[WifiProvisioningStatus.LOOKING_FOR_SERVER]:
'onboarding-connect_tracker-connection_status-looking_for_server',
[WifiProvisioningStatus.DONE]:
'onboarding-connect_tracker-connection_status-done',
[WifiProvisioningStatus.CONNECTION_ERROR]:
'onboarding-connect_tracker-connection_status-connection_error',
[WifiProvisioningStatus.COULD_NOT_FIND_SERVER]:
'onboarding-connect_tracker-connection_status-could_not_find_server',
['CONNECTING']: 'onboarding-connect_tracker-connection_status-connecting',
['CONNECTED']: 'onboarding-connect_tracker-connection_status-connected',
['ERROR']: 'onboarding-connect_tracker-connection_status-error',
['START-CONNECTING']:
'onboarding-connect_tracker-connection_status-start_connecting',
['HANDSHAKE']: 'onboarding-connect_tracker-connection_status-handshake',
};
export function ConnectTrackersPage() {
@@ -48,41 +44,90 @@ export function ConnectTrackersPage() {
const { applyProgress, state, skipSetup } = useOnboarding();
const navigate = useNavigate();
const { sendRPCPacket, useRPCPacket } = useWebsocketAPI();
const [provisioningStatus, setProvisioningStatus] =
useState<WifiProvisioningStatus>(WifiProvisioningStatus.NONE);
const [isSerialOpen, setSerialOpen] = useState(false);
const [connectionStatus, setConnectionStatus] =
useState<ConnectionStatus>('START-CONNECTING');
applyProgress(0.4);
const connectedTrackers = useConnectedTrackers();
const openSerial = () => {
const req = new OpenSerialRequestT();
req.auto = true;
sendRPCPacket(RpcMessage.OpenSerialRequest, req);
};
useEffect(() => {
if (!state.wifi) {
navigate('/onboarding/wifi-creds');
}
const req = new StartWifiProvisioningRequestT();
req.ssid = state.wifi?.ssid as string;
req.password = state.wifi?.password as string;
sendRPCPacket(RpcMessage.StartWifiProvisioningRequest, req);
openSerial();
return () => {
sendRPCPacket(
RpcMessage.StopWifiProvisioningRequest,
new StopWifiProvisioningRequestT()
);
sendRPCPacket(RpcMessage.CloseSerialRequest, new CloseSerialRequestT());
};
}, []);
useRPCPacket(
RpcMessage.WifiProvisioningStatusResponse,
({ status }: WifiProvisioningStatusResponseT) => {
setProvisioningStatus(status);
RpcMessage.SerialUpdateResponse,
(data: SerialUpdateResponseT) => {
if (data.closed) {
setSerialOpen(false);
setConnectionStatus('START-CONNECTING');
setTimeout(() => {
openSerial();
}, 1000);
}
if (!data.closed && !isSerialOpen) {
setSerialOpen(true);
setConnectionStatus('START-CONNECTING');
}
if (data.log) {
const log = data.log as string;
if (connectionStatus === 'START-CONNECTING' && state.wifi) {
setConnectionStatus('CONNECTING');
if (!state.wifi) return;
const wifi = new SetWifiRequestT();
wifi.ssid = state.wifi.ssid;
wifi.password = state.wifi.password;
sendRPCPacket(RpcMessage.SetWifiRequest, wifi);
}
if (log.includes('Connected successfully to SSID')) {
setConnectionStatus('CONNECTED');
}
if (log.includes('Handshake successful')) {
setConnectionStatus('HANDSHAKE');
setTimeout(() => {
setConnectionStatus('START-CONNECTING');
}, 3000);
}
if (
// eslint-disable-next-line quotes
log.includes("Can't connect from any credentials")
) {
setConnectionStatus('ERROR');
}
}
}
);
const isError =
provisioningStatus === WifiProvisioningStatus.CONNECTION_ERROR ||
provisioningStatus === WifiProvisioningStatus.COULD_NOT_FIND_SERVER;
useEffect(() => {
const id = setInterval(() => {
if (!isSerialOpen) openSerial();
else clearInterval(id);
}, 1000);
return () => {
clearInterval(id);
};
}, [isSerialOpen, sendRPCPacket]);
return (
<div className="flex flex-col items-center">
@@ -125,12 +170,12 @@ export function ConnectTrackersPage() {
className={classNames(
'rounded-xl h-16 flex gap-2 p-3 lg:w-full mt-4',
state.alonePage ? 'bg-background-60' : 'bg-background-70',
isError && 'border-2 border-status-critical'
connectionStatus === 'ERROR' && 'border-2 border-status-critical'
)}
>
<div className="flex flex-col justify-center fill-background-10">
<LoaderIcon
youSpinMeRightRoundBabyRightRound={!isError}
youSpinMeRightRoundBabyRightRound={connectionStatus !== 'ERROR'}
></LoaderIcon>
</div>
<div className="flex flex-col">
@@ -138,7 +183,7 @@ export function ConnectTrackersPage() {
{l10n.getString('onboarding-connect_tracker-usb')}
</Typography>
<Typography color="secondary">
{l10n.getString(statusLabelMap[provisioningStatus])}
{l10n.getString(statusLabelMap[connectionStatus])}
</Typography>
</div>
</div>

View File

@@ -1,15 +1,14 @@
import { Localized, useLocalization } from '@fluent/react';
import { useLocalization } from '@fluent/react';
import { useOnboarding } from '../../../hooks/onboarding';
import { useWifiForm } from '../../../hooks/wifi-form';
import { ArrowLink } from '../../commons/ArrowLink';
import { Button } from '../../commons/Button';
import { Input } from '../../commons/Input';
import { Typography } from '../../commons/Typography';
export function WifiCredsPage() {
const { l10n } = useLocalization();
const { applyProgress, skipSetup } = useOnboarding();
const { control, handleSubmit, submitWifiCreds, formState } = useWifiForm();
const { WifiForm, handleSubmit, submitWifiCreds, formState } = useWifiForm();
applyProgress(0.2);
return (
@@ -38,33 +37,7 @@ export function WifiCredsPage() {
</>
</div>
<div className="flex flex-col bg-background-70 gap-3 p-10 rounded-xl max-w-sm">
<Localized
id="onboarding-wifi_creds-ssid"
attrs={{ placeholder: true, label: true }}
>
<Input
control={control}
rules={{ required: true }}
name="ssid"
type="text"
label="SSID"
placeholder="ssid"
variant="secondary"
/>
</Localized>
<Localized
id="onboarding-wifi_creds-password"
attrs={{ placeholder: true, label: true }}
>
<Input
control={control}
name="password"
type="password"
label="Password"
placeholder="password"
variant="secondary"
/>
</Localized>
<WifiForm></WifiForm>
</div>
</div>
</div>

View File

@@ -1,11 +1,10 @@
import { useLocalization } from '@fluent/react';
import { useEffect, useState } from 'react';
import { useState } from 'react';
import { RpcMessage, SkeletonResetAllRequestT } from 'solarxr-protocol';
import {
AutoboneContextC,
useProvideAutobone,
} from '../../../../hooks/autobone';
import { useBodyProportions } from '../../../../hooks/body-proportions';
import { useOnboarding } from '../../../../hooks/onboarding';
import { useWebsocketAPI } from '../../../../hooks/websocket-api';
import { ArrowLink } from '../../../commons/ArrowLink';
@@ -25,7 +24,6 @@ export function AutomaticProportionsPage() {
const { sendRPCPacket } = useWebsocketAPI();
const context = useProvideAutobone();
const [resetDisabled, setResetDisabled] = useState(false);
const { onPageOpened } = useBodyProportions();
applyProgress(0.9);
@@ -41,10 +39,6 @@ export function AutomaticProportionsPage() {
}, 3000);
};
useEffect(() => {
onPageOpened();
}, []);
return (
<AutoboneContextC.Provider value={context}>
<div className="flex flex-col gap-5 h-full items-center w-full justify-center">

View File

@@ -124,8 +124,8 @@ export function BodyProportions({
)}
>
{!precise && (
<IncrementButton onClick={() => decrement(value, 5)}>
-5
<IncrementButton onClick={() => decrement(value, 10)}>
-10
</IncrementButton>
)}
<IncrementButton onClick={() => decrement(value, 1)}>
@@ -174,8 +174,8 @@ export function BodyProportions({
+1
</IncrementButton>
{!precise && (
<IncrementButton onClick={() => increment(value, 5)}>
+5
<IncrementButton onClick={() => increment(value, 10)}>
+10
</IncrementButton>
)}
</div>

View File

@@ -9,14 +9,11 @@ import { PersonFrontIcon } from '../../../commons/PersonFrontIcon';
import { Typography } from '../../../commons/Typography';
import { BodyProportions } from './BodyProportions';
import { useLocalization } from '@fluent/react';
import { useEffect } from 'react';
import { useBodyProportions } from '../../../../hooks/body-proportions';
export function ManualProportionsPage() {
const { l10n } = useLocalization();
const { applyProgress, skipSetup, state } = useOnboarding();
const { sendRPCPacket } = useWebsocketAPI();
const { onPageOpened } = useBodyProportions();
applyProgress(0.9);
@@ -32,10 +29,6 @@ export function ManualProportionsPage() {
);
};
useEffect(() => {
onPageOpened();
}, []);
return (
<>
<div className="flex flex-col gap-5 h-full items-center w-full justify-center">

View File

@@ -17,7 +17,7 @@ export function AutomaticMountingPage() {
return (
<>
<div className="flex flex-col gap-2 h-full items-center w-full justify-center">
<div className="flex flex-col gap-5 h-full items-center w-full justify-center">
<div className="flex flex-col w-full h-full justify-center max-w-3xl gap-5">
<div className="flex flex-col max-w-lg gap-3">
{!state.alonePage && (

View File

@@ -53,11 +53,7 @@ export function MountingResetStep({
</div>
</div>
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-12">
<img
src="/images/mounting-reset-pose.png"
width={125}
alt="mounting reset ski pose"
/>
<img src="/images/mounting-reset-pose.png" width={105} />
</div>
</>
);

View File

@@ -52,7 +52,7 @@ export function PreparationStep({
</div>
</div>
<div className="flex flex-col pt-1 items-center fill-background-50 justify-center px-12">
<img src="/images/reset-pose.png" width={90} alt="Reset position" />
<img src="/images/reset-pose.png" width={60} />
</div>
</>
);

View File

@@ -1,5 +1,3 @@
import { useLocalization } from '@fluent/react';
import classNames from 'classnames';
import { useMemo, useState } from 'react';
import { useForm } from 'react-hook-form';
import {
@@ -10,7 +8,6 @@ import {
TrackerIdT,
} from 'solarxr-protocol';
import { FlatDeviceTracker } from '../../../../hooks/app';
import { useChokerWarning } from '../../../../hooks/choker-warning';
import { useOnboarding } from '../../../../hooks/onboarding';
import { useTrackers } from '../../../../hooks/tracker';
import { useWebsocketAPI } from '../../../../hooks/websocket-api';
@@ -19,14 +16,9 @@ import { Button } from '../../../commons/Button';
import { CheckBox } from '../../../commons/Checkbox';
import { TipBox } from '../../../commons/TipBox';
import { Typography } from '../../../commons/Typography';
import { ASSIGNMENT_RULES, BodyAssignment } from '../../BodyAssignment';
import { NeckWarningModal } from '../../NeckWarningModal';
import { BodyAssignment } from '../../BodyAssignment';
import { TrackerSelectionMenu } from './TrackerSelectionMenu';
export type BodyPartError = {
label: string | undefined;
affectedRoles: BodyPart[];
};
import { useLocalization } from '@fluent/react';
export function TrackersAssignPage() {
const { l10n } = useLocalization();
@@ -56,51 +48,6 @@ export function TrackersAssignPage() {
[assignedTrackers]
);
const rolesWithErrors = useMemo(() => {
const trackerRoles = trackers.map(
({ tracker }) => tracker.info?.bodyPart || BodyPart.NONE
);
const message = (assignedRole: BodyPart) => {
const unassignedRoles: [BodyPart | BodyPart[], boolean][] = (
ASSIGNMENT_RULES[assignedRole] || []
).map((part) => [
part,
Array.isArray(part)
? trackerRoles.some((tr) => part.includes(tr))
: trackerRoles.includes(part),
]);
if (unassignedRoles.every(([, state]) => state)) return;
return {
affectedRoles: unassignedRoles
.filter(([, state]) => !state)
.flatMap(([part]) => part),
label: l10n.getString(
`onboarding-assign_trackers-warning-${BodyPart[assignedRole]}`,
{
unassigned: unassignedRoles
.map(([, state]) => state)
.reduce((acc, cur, i) => acc + (Number(cur) << i), 0),
}
),
};
};
return Object.keys(BodyPart)
.map<BodyPart>((key) => +key)
.filter((key) => typeof key === 'number' && !Number.isNaN(key))
.reduce<Record<BodyPart, BodyPartError>>((curr, role) => {
return {
...curr,
[role]: trackerRoles.find((tr) => tr === role)
? message(role)
: undefined,
};
}, {} as any);
}, [trackers]);
const onTrackerSelected = (tracker: FlatDeviceTracker | null) => {
const assign = (
role: BodyPart,
@@ -138,13 +85,6 @@ export function TrackersAssignPage() {
applyProgress(0.5);
const { closeChokerWarning, tryOpenChokerWarning, shouldShowChokerWarn } =
useChokerWarning({
next: setSelectRole,
});
const firstError = Object.values(rolesWithErrors).find((r) => !!r);
return (
<>
<TrackerSelectionMenu
@@ -153,14 +93,6 @@ export function TrackersAssignPage() {
onClose={() => setSelectRole(BodyPart.NONE)}
onTrackerSelected={onTrackerSelected}
></TrackerSelectionMenu>
<NeckWarningModal
isOpen={shouldShowChokerWarn}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col items-center w-full h-full justify-center bg-black bg-opacity-90 z-20'
)}
onClose={() => closeChokerWarning(true)}
accept={() => closeChokerWarning(false)}
></NeckWarningModal>
<div className="flex flex-col gap-5 h-full items-center w-full justify-center">
<div className="flex flex-col w-full h-full justify-center items-center">
<div className="flex md:gap-8">
@@ -191,21 +123,12 @@ export function TrackersAssignPage() {
name="advanced"
variant="toggle"
></CheckBox>
{!!firstError && (
<div className="bg-status-warning text-background-60 px-3 py-2 text-justify rounded-md">
<div className="flex flex-col gap-1 whitespace-normal">
<span>{firstError.label}</span>
</div>
</div>
)}
</div>
<div className="flex flex-col flex-grow gap-3 rounded-xl fill-background-50">
<BodyAssignment
onlyAssigned={false}
highlightedRoles={firstError?.affectedRoles || []}
rolesWithErrors={rolesWithErrors}
advanced={advanced}
onRoleSelected={tryOpenChokerWarning}
onRoleSelected={setSelectRole}
></BodyAssignment>
</div>
</div>

View File

@@ -26,104 +26,101 @@ export function TrackerSelectionMenu({
useLayout<HTMLDivElement>();
const { ref: refOptions, height: optionsHeight } =
useElemSize<HTMLDivElement>();
// This is true when the neck warning has been accepted
// It is used for showing or not showing the actual modal
const { useAssignedTrackers, useUnassignedTrackers } = useTrackers();
const unassignedTrackers = useUnassignedTrackers();
const assignedTrackers = useAssignedTrackers();
return (
<>
<ReactModal
isOpen={isOpen}
shouldCloseOnOverlayClick
shouldCloseOnEsc
onRequestClose={onClose}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col items-center w-full h-full bg-black bg-opacity-90 z-20'
)}
className={classNames(
'focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent outline-none mt-20 z-10'
)}
>
<div className="flex w-full h-full flex-col ">
<div className="flex w-full flex-col flex-grow items-center gap-3">
<Typography variant="main-title" bold>
{l10n.getString('tracker_selection_menu-' + BodyPart[bodyPart])}
</Typography>
<div className="relative">
<div
className="w-full h-full min-w-[700px] overflow-y-auto p-2 flex flex-col gap-6"
ref={refTrackers}
style={{ height: trackersHeight - optionsHeight }}
>
<div className="flex flex-col gap-3">
{unassignedTrackers.length && (
<div className="flex flex-col gap-3">
<Typography>
{l10n.getString('tracker_selection_menu-unassigned')}
</Typography>
<div className="grid grid-cols-2 gap-3">
{unassignedTrackers.map((fd, index) => (
<TrackerCard
key={index}
tracker={fd.tracker}
device={fd.device}
onClick={() => onTrackerSelected(fd)}
smol
interactable
outlined={
bodyPart ===
(fd.tracker.info?.bodyPart || BodyPart.NONE)
}
></TrackerCard>
))}
</div>
<ReactModal
isOpen={isOpen}
shouldCloseOnOverlayClick
shouldCloseOnEsc
onRequestClose={onClose}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col items-center w-full h-full bg-black bg-opacity-90 z-20'
)}
className={classNames(
'focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent outline-none mt-20 z-10'
)}
>
<div className="flex w-full h-full flex-col ">
<div className="flex w-full flex-col flex-grow items-center gap-3">
<Typography variant="main-title" bold>
{l10n.getString('tracker_selection_menu-' + BodyPart[bodyPart])}
</Typography>
<div className="relative">
<div
className="w-full h-full min-w-[700px] overflow-y-auto p-2 flex flex-col gap-6"
ref={refTrackers}
style={{ height: trackersHeight - optionsHeight }}
>
<div className="flex flex-col gap-3">
{unassignedTrackers.length && (
<div className="flex flex-col gap-3">
<Typography>
{l10n.getString('tracker_selection_menu-unassigned')}
</Typography>
<div className="grid grid-cols-2 gap-3">
{unassignedTrackers.map((fd, index) => (
<TrackerCard
key={index}
tracker={fd.tracker}
device={fd.device}
onClick={() => onTrackerSelected(fd)}
smol
interactable
outlined={
bodyPart ===
(fd.tracker.info?.bodyPart || BodyPart.NONE)
}
></TrackerCard>
))}
</div>
)}
<Typography>
{l10n.getString('tracker_selection_menu-assigned')}
</Typography>
<div className=" grid grid-cols-2 gap-3">
{assignedTrackers.map((fd, index) => (
<TrackerCard
key={index}
tracker={fd.tracker}
device={fd.device}
onClick={() => onTrackerSelected(fd)}
smol
interactable
outlined={
bodyPart ===
(fd.tracker.info?.bodyPart || BodyPart.NONE)
}
></TrackerCard>
))}
</div>
)}
<Typography>
{l10n.getString('tracker_selection_menu-assigned')}
</Typography>
<div className=" grid grid-cols-2 gap-3">
{assignedTrackers.map((fd, index) => (
<TrackerCard
key={index}
tracker={fd.tracker}
device={fd.device}
onClick={() => onTrackerSelected(fd)}
smol
interactable
outlined={
bodyPart ===
(fd.tracker.info?.bodyPart || BodyPart.NONE)
}
></TrackerCard>
))}
</div>
</div>
<div className="absolute px-2 pr-4 bottom-0 h-10 w-full border-b-[1px] border-background-40">
<div className="w-full h-full bg-gradient-to-b from-transparent to-black opacity-50"></div>
</div>
</div>
<div className="absolute px-2 pr-4 bottom-0 h-10 w-full border-b-[1px] border-background-40">
<div className="w-full h-full bg-gradient-to-b from-transparent to-black opacity-50"></div>
</div>
</div>
</div>
<div
className="flex w-full justify-between absolute bottom-0 left-0 p-10 z-0"
onClick={onClose}
ref={refOptions}
>
<div className="w-full max-w-sm">
<TipBox>{l10n.getString('tips-find_tracker')}</TipBox>
</div>
<div className="flex flex-col justify-end pointer-events-auto">
<Button variant="primary" onClick={() => onTrackerSelected(null)}>
{l10n.getString('tracker_selection_menu-dont_assign')}
</Button>
</div>
</div>
<div
className="flex w-full justify-between absolute bottom-0 left-0 p-10 z-0"
onClick={onClose}
ref={refOptions}
>
<div className="w-full max-w-sm">
<TipBox>{l10n.getString('tips-find_tracker')}</TipBox>
</div>
</ReactModal>
</>
<div className="flex flex-col justify-end pointer-events-auto">
<Button variant="primary" onClick={() => onTrackerSelected(null)}>
{l10n.getString('tracker_selection_menu-dont_assign')}
</Button>
</div>
</div>
</ReactModal>
);
}

View File

@@ -1,10 +1,8 @@
import { useLocalization } from '@fluent/react';
import { useEffect, useRef } from 'react';
import { DefaultValues, useForm } from 'react-hook-form';
import { useLocation } from 'react-router-dom';
import {
ChangeSettingsRequestT,
DriftCompensationSettingsT,
FilteringSettingsT,
FilteringType,
LegTweaksSettingsT,
@@ -15,6 +13,7 @@ import {
SettingsResponseT,
SteamVRTrackersSettingT,
TapDetectionSettingsT,
DriftCompensationSettingsT,
} from 'solarxr-protocol';
import { useConfig } from '../../../hooks/config';
import { useWebsocketAPI } from '../../../hooks/websocket-api';
@@ -27,6 +26,7 @@ import { NumberSelector } from '../../commons/NumberSelector';
import { Radio } from '../../commons/Radio';
import { Typography } from '../../commons/Typography';
import { SettingsPageLayout } from '../SettingsPageLayout';
import { useLocalization } from '@fluent/react';
interface SettingsForm {
trackers: {
@@ -54,6 +54,7 @@ interface SettingsForm {
floorClip: boolean;
skatingCorrection: boolean;
viveEmulation: boolean;
iPose: boolean;
};
tapDetection: {
tapMountingResetEnabled: boolean;
@@ -92,6 +93,7 @@ const defaultValues = {
floorClip: false,
skatingCorrection: false,
viveEmulation: false,
iPose: false,
},
filtering: { amount: 0.1, type: FilteringType.NONE },
driftCompensation: {
@@ -149,6 +151,7 @@ export function GeneralSettings() {
toggles.extendedSpine = values.toggles.extendedSpine;
toggles.forceArmsFromHmd = values.toggles.forceArmsFromHmd;
toggles.viveEmulation = values.toggles.viveEmulation;
toggles.iPose = values.toggles.iPose;
legTweaks.correctionStrength = values.legTweaks.correctionStrength;
modelSettings.toggles = toggles;
@@ -298,14 +301,16 @@ export function GeneralSettings() {
{l10n.getString('settings-general-steamvr-subtitle')}
</Typography>
<div className="flex flex-col py-2">
{l10n
.getString('settings-general-steamvr-description')
.split('\n')
.map((line, i) => (
<Typography color="secondary" key={i}>
{line}
</Typography>
))}
<>
{l10n
.getString('settings-general-steamvr-description')
.split('\n')
.map((line, i) => (
<Typography color="secondary" key={i}>
{line}
</Typography>
))}
</>
</div>
<div className="grid grid-cols-2 gap-3 pt-3">
<CheckBox
@@ -362,16 +367,18 @@ export function GeneralSettings() {
{l10n.getString('settings-general-tracker_mechanics-filtering')}
</Typography>
<div className="flex flex-col pt-2 pb-4">
{l10n
.getString(
'settings-general-tracker_mechanics-filtering-description'
)
.split('\n')
.map((line, i) => (
<Typography color="secondary" key={i}>
{line}
</Typography>
))}
<>
{l10n
.getString(
'settings-general-tracker_mechanics-filtering-description'
)
.split('\n')
.map((line, i) => (
<Typography color="secondary" key={i}>
{line}
</Typography>
))}
</>
</div>
<Typography>
{l10n.getString(
@@ -549,6 +556,17 @@ export function GeneralSettings() {
)}
/>
</div>
<div className="grid sm:grid-cols-2 pb-5">
<CheckBox
variant="toggle"
outlined
control={control}
name="toggles.iPose"
label={l10n.getString(
'settings-general-fk_settings-arm_fk-i_pose'
)}
/>
</div>
{config?.debug && (
<>
<Typography bold>
@@ -806,7 +824,7 @@ export function GeneralSettings() {
</Typography>
</div>
<div className="grid sm:grid-cols-2 pb-4">
<LangSelector alignment="left" />
<LangSelector />
</div>
</>
</SettingsPageLayout>

View File

@@ -1,14 +1,13 @@
import { Localized, useLocalization } from '@fluent/react';
import { useEffect, useRef } from 'react';
import { useForm } from 'react-hook-form';
import { useLocation } from 'react-router-dom';
import {
ChangeSettingsRequestT,
OSCRouterSettingsT,
OSCSettingsT,
RpcMessage,
SettingsRequestT,
SettingsResponseT,
OSCRouterSettingsT,
OSCSettingsT,
} from 'solarxr-protocol';
import { useWebsocketAPI } from '../../../hooks/websocket-api';
import { CheckBox } from '../../commons/Checkbox';
@@ -16,6 +15,7 @@ import { RouterIcon } from '../../commons/icon/RouterIcon';
import { Input } from '../../commons/Input';
import { Typography } from '../../commons/Typography';
import { SettingsPageLayout } from '../SettingsPageLayout';
import { Localized, useLocalization } from '@fluent/react';
interface OSCRouterSettingsForm {
router: {
@@ -45,7 +45,7 @@ export function OSCRouterSettings() {
const { state } = useLocation();
const pageRef = useRef<HTMLFormElement | null>(null);
const { reset, control, watch, handleSubmit } =
const { reset, control, watch, handleSubmit, register } =
useForm<OSCRouterSettingsForm>({
defaultValues: defaultValues,
});
@@ -166,9 +166,7 @@ export function OSCRouterSettings() {
>
<Input
type="number"
control={control}
rules={{ required: true }}
name="router.oscSettings.portIn"
{...register('router.oscSettings.portIn', { required: true })}
placeholder="9002"
label="Port In"
></Input>
@@ -179,9 +177,9 @@ export function OSCRouterSettings() {
>
<Input
type="number"
control={control}
rules={{ required: true }}
name="router.oscSettings.portOut"
{...register('router.oscSettings.portOut', {
required: true,
})}
placeholder="9000"
label="Port Out"
></Input>
@@ -200,13 +198,11 @@ export function OSCRouterSettings() {
<div className="grid gap-3 pb-5">
<Input
type="text"
control={control}
rules={{
{...register('router.oscSettings.address', {
required: true,
pattern:
/^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/i,
}}
name="router.oscSettings.address"
})}
placeholder={l10n.getString(
'settings-osc-router-network-address-placeholder'
)}

View File

@@ -18,9 +18,7 @@ import { useWebsocketAPI } from '../../../hooks/websocket-api';
import { Button } from '../../commons/Button';
import { Dropdown } from '../../commons/Dropdown';
import { Typography } from '../../commons/Typography';
import { Localized, useLocalization } from '@fluent/react';
import { BaseModal } from '../../commons/BaseModal';
import { WarningBox } from '../../commons/TipBox';
import { useLocalization } from '@fluent/react';
export interface SerialForm {
port: string;
@@ -48,8 +46,6 @@ export function Serial() {
Omit<SerialDeviceT, 'pack'>[]
>([]);
const [tryFactoryReset, setTryFactoryReset] = useState(false);
const { control, watch, handleSubmit, reset } = useForm<SerialForm>({
defaultValues: { port: 'Auto' },
});
@@ -147,8 +143,6 @@ export function Serial() {
RpcMessage.SerialTrackerFactoryResetRequest,
new SerialTrackerFactoryResetRequestT()
);
setTryFactoryReset(false);
};
const getInfos = () => {
sendRPCPacket(
@@ -158,94 +152,67 @@ export function Serial() {
};
return (
<>
<BaseModal
isOpen={tryFactoryReset}
onRequestClose={() => setTryFactoryReset(false)}
>
<Localized
id="settings-serial-factory_reset-warning"
elems={{ b: <b></b> }}
<div className="flex flex-col bg-background-70 h-full p-5 rounded-md">
<div className="flex flex-col pb-2">
<Typography variant="main-title">
{l10n.getString('settings-serial')}
</Typography>
<>
{l10n
.getString('settings-serial-description')
.split('\n')
.map((line, i) => (
<Typography color="secondary" key={i}>
{line}
</Typography>
))}
</>
</div>
<div className="bg-background-80 rounded-lg flex flex-col p-2">
<div
ref={consoleRef}
className="overflow-x-auto overflow-y-auto"
style={{
height: layoutHeight - height - 30,
width: layoutWidth - 24,
}}
>
<WarningBox>
<b>Warning:</b> This will reset the tracker to factory settings.
Which means Wi-Fi and calibration settings <b>will all be lost!</b>
</WarningBox>
</Localized>
<div className="flex flex-row gap-3 pt-5 place-content-center">
<Button variant="secondary" onClick={() => setTryFactoryReset(false)}>
{l10n.getString('settings-serial-factory_reset-warning-cancel')}
</Button>
<Button variant="primary" onClick={factoryReset}>
{l10n.getString('settings-serial-factory_reset-warning-ok')}
</Button>
</div>
</BaseModal>
<div className="flex flex-col bg-background-70 h-full p-5 rounded-md">
<div className="flex flex-col pb-2">
<Typography variant="main-title">
{l10n.getString('settings-serial')}
</Typography>
<>
{l10n
.getString('settings-serial-description')
.split('\n')
.map((line, i) => (
<Typography color="secondary" key={i}>
{line}
</Typography>
))}
</>
</div>
<div className="bg-background-80 rounded-lg flex flex-col p-2">
<div
ref={consoleRef}
className="overflow-x-auto overflow-y-auto"
style={{
height: layoutHeight - height - 30,
width: layoutWidth - 24,
}}
>
<div className="flex select-text px-3">
<pre>
{isSerialOpen
? consoleContent
: l10n.getString('settings-serial-connection_lost')}
</pre>
</div>
<div className="flex select-text px-3">
<pre>
{isSerialOpen
? consoleContent
: l10n.getString('settings-serial-connection_lost')}
</pre>
</div>
<div className="" ref={toolbarRef}>
<div className="border-t-2 pt-2 border-background-60 border-solid m-2 gap-2 flex flex-row">
<div className="flex flex-grow gap-2">
<Button variant="quaternary" onClick={reboot}>
{l10n.getString('settings-serial-reboot')}
</Button>
<Button
variant="quaternary"
onClick={() => setTryFactoryReset(true)}
>
{l10n.getString('settings-serial-factory_reset')}
</Button>
<Button variant="quaternary" onClick={getInfos}>
{l10n.getString('settings-serial-get_infos')}
</Button>
</div>
</div>
<div className="" ref={toolbarRef}>
<div className="border-t-2 pt-2 border-background-60 border-solid m-2 gap-2 flex flex-row">
<div className="flex flex-grow gap-2">
<Button variant="quaternary" onClick={reboot}>
{l10n.getString('settings-serial-reboot')}
</Button>
<Button variant="quaternary" onClick={factoryReset}>
{l10n.getString('settings-serial-factory_reset')}
</Button>
<Button variant="quaternary" onClick={getInfos}>
{l10n.getString('settings-serial-get_infos')}
</Button>
</div>
<div className="flex justify-end">
<Dropdown
control={control}
name="port"
placeholder={l10n.getString('settings-serial-serial_select')}
items={serialDevices.map((device) => ({
label: device.name?.toString() || 'error',
value: device.port?.toString() || 'error',
}))}
></Dropdown>
</div>
<div className="flex justify-end">
<Dropdown
control={control}
name="port"
placeholder={l10n.getString('settings-serial-serial_select')}
items={serialDevices.map((device) => ({
label: device.name?.toString() || 'error',
value: device.port?.toString() || 'error',
}))}
></Dropdown>
</div>
</div>
</div>
</div>
</>
</div>
);
}

View File

@@ -1,4 +1,3 @@
import { Localized, useLocalization } from '@fluent/react';
import { useEffect, useRef } from 'react';
import { useForm } from 'react-hook-form';
import { useLocation } from 'react-router-dom';
@@ -17,6 +16,7 @@ import { VRCIcon } from '../../commons/icon/VRCIcon';
import { Input } from '../../commons/Input';
import { Typography } from '../../commons/Typography';
import { SettingsPageLayout } from '../SettingsPageLayout';
import { Localized, useLocalization } from '@fluent/react';
interface VRCOSCSettingsForm {
vrchat: {
@@ -64,9 +64,10 @@ export function VRCOSCSettings() {
const { state } = useLocation();
const pageRef = useRef<HTMLFormElement | null>(null);
const { reset, control, watch, handleSubmit } = useForm<VRCOSCSettingsForm>({
defaultValues: defaultValues,
});
const { reset, control, watch, handleSubmit, register } =
useForm<VRCOSCSettingsForm>({
defaultValues: defaultValues,
});
const onSubmit = (values: VRCOSCSettingsForm) => {
const settings = new ChangeSettingsRequestT();
@@ -183,9 +184,7 @@ export function VRCOSCSettings() {
>
<Input
type="number"
control={control}
name="vrchat.oscSettings.portIn"
rules={{ required: true }}
{...register('vrchat.oscSettings.portIn', { required: true })}
placeholder="9001"
label="Port In"
></Input>
@@ -196,9 +195,9 @@ export function VRCOSCSettings() {
>
<Input
type="number"
control={control}
name="vrchat.oscSettings.portOut"
rules={{ required: true }}
{...register('vrchat.oscSettings.portOut', {
required: true,
})}
placeholder="9000"
label="Port Out"
></Input>
@@ -217,13 +216,11 @@ export function VRCOSCSettings() {
<div className="grid gap-3 pb-5">
<Input
type="text"
control={control}
name="vrchat.oscSettings.address"
rules={{
{...register('vrchat.oscSettings.address', {
required: true,
pattern:
/^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/i,
}}
})}
placeholder={l10n.getString(
'settings-osc-vrchat-network-address-placeholder'
)}

View File

@@ -7,11 +7,9 @@ import { CheckBox } from '../commons/Checkbox';
import { Typography } from '../commons/Typography';
import { BodyAssignment } from '../onboarding/BodyAssignment';
import { useLocalization } from '@fluent/react';
import { NeckWarningModal } from '../onboarding/NeckWarningModal';
import { useChokerWarning } from '../../hooks/choker-warning';
export function SingleTrackerBodyAssignmentMenu({
isOpen,
isOpen = true,
onClose,
onRoleSelected,
}: {
@@ -25,81 +23,65 @@ export function SingleTrackerBodyAssignmentMenu({
});
const { advanced } = watch();
const { closeChokerWarning, tryOpenChokerWarning, shouldShowChokerWarn } =
useChokerWarning({
next: onRoleSelected,
});
return (
<>
<ReactModal
isOpen={isOpen}
shouldCloseOnOverlayClick
shouldCloseOnEsc
onRequestClose={onClose}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col items-center w-full h-full justify-center bg-black bg-opacity-90 z-20'
)}
className={classNames(
'focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent outline-none mt-20 z-10'
)}
>
<div className="flex w-full h-full flex-col gap-10 px-3">
<div className="flex flex-col w-full h-full justify-center items-center">
<div className="flex gap-8">
<div className="flex flex-col max-w-sm gap-3">
<Typography variant="main-title" bold>
{l10n.getString('body_assignment_menu')}
</Typography>
<Typography color="secondary">
{l10n.getString('body_assignment_menu-description')}
</Typography>
<CheckBox
control={control}
label={l10n.getString(
'body_assignment_menu-show_advanced_locations'
)}
name="advanced"
variant="toggle"
></CheckBox>
<div className="flex">
<Button
variant="secondary"
to="/onboarding/trackers-assign"
state={{ alonePage: true }}
>
{l10n.getString('body_assignment_menu-manage_trackers')}
</Button>
</div>
<ReactModal
isOpen={isOpen}
shouldCloseOnOverlayClick
shouldCloseOnEsc
onRequestClose={onClose}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col items-center w-full h-full justify-center bg-black bg-opacity-90 z-20'
)}
className={classNames(
'focus:ring-transparent focus:ring-offset-transparent focus:outline-transparent outline-none mt-20 z-10'
)}
>
<div className="flex w-full h-full flex-col gap-10 px-3">
<div className="flex flex-col w-full h-full justify-center items-center">
<div className="flex gap-8">
<div className="flex flex-col max-w-sm gap-3">
<Typography variant="main-title" bold>
{l10n.getString('body_assignment_menu')}
</Typography>
<Typography color="secondary">
{l10n.getString('body_assignment_menu-description')}
</Typography>
<CheckBox
control={control}
label={l10n.getString(
'body_assignment_menu-show_advanced_locations'
)}
name="advanced"
variant="toggle"
></CheckBox>
<div className="flex">
<Button
variant="secondary"
to="/onboarding/trackers-assign"
state={{ alonePage: true }}
>
{l10n.getString('body_assignment_menu-manage_trackers')}
</Button>
</div>
<div className="flex flex-col flex-grow gap-3 rounded-xl fill-background-50">
<BodyAssignment
onlyAssigned={false}
advanced={advanced}
onRoleSelected={tryOpenChokerWarning}
></BodyAssignment>
<div className="flex justify-center">
<Button
variant="secondary"
onClick={() => onRoleSelected(BodyPart.NONE)}
>
{l10n.getString('body_assignment_menu-unassign_tracker')}
</Button>
</div>
</div>
<div className="flex flex-col flex-grow gap-3 rounded-xl fill-background-50">
<BodyAssignment
onlyAssigned={false}
advanced={advanced}
onRoleSelected={onRoleSelected}
></BodyAssignment>
<div className="flex justify-center">
<Button
variant="secondary"
onClick={() => onRoleSelected(BodyPart.NONE)}
>
{l10n.getString('body_assignment_menu-unassign_tracker')}
</Button>
</div>
</div>
</div>
</div>
</ReactModal>
<NeckWarningModal
isOpen={shouldShowChokerWarn}
overlayClassName={classNames(
'fixed top-0 right-0 left-0 bottom-0 flex flex-col items-center w-full h-full justify-center bg-black bg-opacity-90 z-20'
)}
onClose={() => closeChokerWarning(true)}
accept={() => closeChokerWarning(false)}
></NeckWarningModal>
</>
</div>
</ReactModal>
);
}

View File

@@ -1,5 +1,3 @@
import { useConfig } from '../../hooks/config';
import { useLocaleConfig } from '../../i18n/config';
import { BatteryIcon } from '../commons/icon/BatteryIcon';
import { Typography } from '../commons/Typography';
@@ -9,42 +7,31 @@ export function TrackerBattery({
disabled,
textColor = 'secondary',
}: {
/**
* a [0, 1] value range is expected
*/
value: number;
voltage?: number | null;
disabled?: boolean;
textColor?: string;
}) {
const { currentLocales } = useLocaleConfig();
const { config } = useConfig();
const percentFormatter = new Intl.NumberFormat(currentLocales, {
style: 'percent',
});
const voltageFormatter = new Intl.NumberFormat(currentLocales, {
maximumFractionDigits: 2,
});
const percent = value * 100;
return (
<div className="flex gap-2">
<div className="flex flex-col justify-around">
<BatteryIcon
value={value}
disabled={disabled}
charging={(voltage || 0) > 4.3}
/>
</div>
<div className="w-10">
<Typography color={textColor}>
{percentFormatter.format(value)}
</Typography>
{voltage && config?.debug && (
<Typography color={textColor}>
{voltageFormatter.format(voltage)} V
</Typography>
)}
<BatteryIcon value={value} disabled={disabled} />
</div>
{!disabled && (
<div className="w-10">
<Typography color={textColor}>{percent.toFixed(0)} %</Typography>
{voltage && (
<Typography color={textColor}>{voltage.toFixed(2)} V</Typography>
)}
</div>
)}
{disabled && (
<div className="flex flex-col justify-center w-10">
<div className="w-7 h-1 bg-background-30 rounded-full"></div>
</div>
)}
</div>
);
}

View File

@@ -133,7 +133,7 @@ export function TrackerCard({
<div
onClick={onClick}
className={classNames(
'rounded-lg overflow-hidden',
'rounded-lg',
interactable && 'hover:bg-background-50 cursor-pointer',
outlined && 'outline outline-2 outline-accent-background-40',
bg
@@ -141,9 +141,7 @@ export function TrackerCard({
style={
shakeHighlight
? {
boxShadow: `0px 0px ${Math.floor(velocity * 8)}px ${Math.floor(
velocity * 8
)}px #BB8AE5`,
boxShadow: `0px 0px ${velocity * 8}px ${velocity * 8}px #183951`,
}
: {}
}

View File

@@ -5,7 +5,6 @@ import { FlatDeviceTracker } from '../../hooks/app';
import { useTracker } from '../../hooks/tracker';
import { Typography } from '../commons/Typography';
import { useLocalization } from '@fluent/react';
import { WarningIcon } from '../commons/icon/WarningIcon';
function Tracker({
tracker,
@@ -35,13 +34,11 @@ export function TrackerPartCard({
td,
role,
direction,
roleError,
onlyAssigned,
onClick,
}: {
td: FlatDeviceTracker[];
role: BodyPart;
roleError: string | undefined;
onlyAssigned: boolean;
direction: 'left' | 'right';
onClick?: MouseEventHandler<HTMLDivElement>;
@@ -58,10 +55,7 @@ export function TrackerPartCard({
};
const globalVelocity = useMemo(
() =>
Math.floor(
velocities.reduce((curr, v) => curr + v, 0) / (td?.length || 1)
),
() => velocities.reduce((curr, v) => curr + v, 0) / (td?.length || 1),
[velocities, td]
);
@@ -74,7 +68,7 @@ export function TrackerPartCard({
(showCard && (
<div
className={classNames(
'flex flex-col gap-1 control w-32 hover:bg-background-50 px-2 py-1 rounded-md relative',
'flex flex-col gap-1 control w-32 hover:bg-background-50 px-2 py-1 rounded-md',
direction === 'left' ? 'items-start' : 'items-end'
)}
id={BodyPart[role]}
@@ -82,19 +76,9 @@ export function TrackerPartCard({
style={{
boxShadow: `0px 0px ${globalVelocity * 3}px ${
globalVelocity * 3
}px #BB8AE5`,
}px #183951`,
}}
>
{roleError && (
<div
className={classNames(
'absolute text-status-warning scale-75 -top-1',
direction === 'right' ? '-right-6' : '-left-6'
)}
>
<WarningIcon></WarningIcon>
</div>
)}
<Typography color="secondary">
{l10n.getString('body_part-' + BodyPart[role])}
</Typography>

View File

@@ -1,11 +1,8 @@
import { useLocalization } from '@fluent/react';
import classNames from 'classnames';
import { IPv4 } from 'ip-num/IPNumber';
import { useEffect, useMemo, useState } from 'react';
import { useForm } from 'react-hook-form';
import { useParams } from 'react-router-dom';
import { AssignTrackerRequestT, BodyPart, RpcMessage } from 'solarxr-protocol';
import { useConfig } from '../../hooks/config';
import { useDebouncedEffect } from '../../hooks/timeout';
import { useTrackerFromId } from '../../hooks/tracker';
import { useWebsocketAPI } from '../../hooks/websocket-api';
@@ -15,15 +12,18 @@ import {
} from '../../maths/quaternion';
import { ArrowLink } from '../commons/ArrowLink';
import { Button } from '../commons/Button';
import { CheckBox } from '../commons/Checkbox';
import { FootIcon } from '../commons/icon/FootIcon';
import { WarningIcon } from '../commons/icon/WarningIcon';
import { Input } from '../commons/Input';
import { Typography } from '../commons/Typography';
import { MountingSelectionMenu } from '../onboarding/pages/mounting/MountingSelectionMenu';
import { IMUVisualizerWidget } from '../widgets/IMUVisualizerWidget';
import { SingleTrackerBodyAssignmentMenu } from './SingleTrackerBodyAssignmentMenu';
import { TrackerCard } from './TrackerCard';
import { CheckBox } from '../commons/Checkbox';
import { useLocalization } from '@fluent/react';
import { IMUVisualizerWidget } from '../widgets/IMUVisualizerWidget';
import { useConfig } from '../../hooks/config';
import { WarningIcon } from '../commons/icon/WarningIcon';
import classNames from 'classnames';
export const rotationToQuatMap = {
FRONT: 180,
@@ -51,7 +51,7 @@ export function TrackerSettingsPage() {
trackernum: string;
deviceid: string;
}>();
const { control, watch, reset, handleSubmit } = useForm<{
const { control, register, watch, reset, handleSubmit } = useForm<{
trackerName: string | null;
allowDriftCompensation: boolean | null;
}>({
@@ -221,22 +221,6 @@ export function TrackerSettingsPage() {
).toString()}
</Typography>
</div>
<div className="flex justify-between">
<Typography color="secondary">
{l10n.getString('tracker-infos-version')}
</Typography>
<Typography>
{tracker?.device?.hardwareInfo?.firmwareVersion || '--'}
</Typography>
</div>
<div className="flex justify-between">
<Typography color="secondary">
{l10n.getString('tracker-infos-hardware_rev')}
</Typography>
<Typography>
{tracker?.device?.hardwareInfo?.hardwareRevision || '--'}
</Typography>
</div>
</div>
{tracker?.tracker && config?.debug && (
<IMUVisualizerWidget
@@ -349,10 +333,8 @@ export function TrackerSettingsPage() {
'tracker-settings-name_section-placeholder'
)}
type="text"
name="trackerName"
control={control}
autocomplete="false"
rules={undefined}
autocomplete={false}
{...register('trackerName')}
></Input>
</div>
</div>

View File

@@ -33,9 +33,7 @@ export function TrackerStatus({ status }: { status: number }) {
<div className="flex flex-col justify-center">
<div className={classNames('w-2 h-2 rounded-full', statusClass)}></div>
</div>
<Typography color="secondary" whitespace="whitespace-nowrap">
{l10n.getString(statusLabel)}
</Typography>
<Typography color="secondary">{l10n.getString(statusLabel)}</Typography>
</div>
);
}

View File

@@ -15,19 +15,15 @@ export function TrackerWifi({
textColor?: string;
}) {
return (
<div className="flex gap-2">
<div className="flex gap-2 whitespace-nowrap">
<div className="flex flex-col justify-around">
<WifiIcon value={rssi} disabled={disabled} />
</div>
{!disabled && (
<div className="w-12">
<Typography color={textColor} whitespace="whitespace-nowrap">
{ping} ms
</Typography>
<Typography color={textColor}>{ping} ms</Typography>
{rssiShowNumeric && (
<Typography color={textColor} whitespace="whitespace-nowrap">
{rssi} dBm
</Typography>
<Typography color={textColor}>{rssi} dBm</Typography>
)}
</div>
)}

View File

@@ -1,21 +1,21 @@
import { useLocalization } from '@fluent/react';
import classNames from 'classnames';
import { IPv4 } from 'ip-num/IPNumber';
import { MouseEventHandler, ReactNode, useMemo, useState } from 'react';
import { MouseEventHandler, ReactNode, useState, useMemo } from 'react';
import {
TrackerDataT,
TrackerIdT,
TrackerStatus as TrackerStatusEnum
TrackerStatus as TrackerStatusEnum,
} from 'solarxr-protocol';
import { FlatDeviceTracker } from '../../hooks/app';
import { useConfig } from '../../hooks/config';
import { useTracker } from '../../hooks/tracker';
import { FootIcon } from '../commons/icon/FootIcon';
import { Typography } from '../commons/Typography';
import { formatVector3 } from '../utils/formatting';
import { TrackerBattery } from './TrackerBattery';
import { TrackerStatus } from './TrackerStatus';
import { TrackerWifi } from './TrackerWifi';
import { useLocalization } from '@fluent/react';
import { formatVector3 } from '../utils/formatting';
import { useConfig } from '../../hooks/config';
enum DisplayColumn {
NAME,
@@ -62,10 +62,8 @@ export function TrackerNameCell({ tracker }: { tracker: TrackerDataT }) {
<div className="flex flex-col justify-center items-center fill-background-10">
<FootIcon></FootIcon>
</div>
<div className="flex flex-col flex-grow">
<Typography bold whitespace="whitespace-nowrap">
{name}
</Typography>
<div className="flex flex-col flex-grow whitespace-nowrap">
<Typography bold>{name}</Typography>
<TrackerStatus status={tracker.status}></TrackerStatus>
</div>
</div>
@@ -86,13 +84,15 @@ export function TrackerRotCell({
const { useRawRotationEulerDegrees, useRefAdjRotationEulerDegrees } =
useTracker(tracker);
const rotationRaw = useRawRotationEulerDegrees();
const rotationRef = useRefAdjRotationEulerDegrees() || rotationRaw;
const rot = referenceAdjusted ? rotationRef : rotationRaw;
const rot = referenceAdjusted
? useRefAdjRotationEulerDegrees()
: useRawRotationEulerDegrees();
return (
<Typography color={color} whitespace="whitespace-nowrap">
{formatVector3(rot, precise ? 2 : 0)}
<Typography color={color}>
<span className="whitespace-nowrap">
{formatVector3(rot, precise ? 2 : 0)}
</span>
</Typography>
);
}
@@ -132,12 +132,10 @@ export function RowContainer({
onMouseEnter={onMouseOver}
onMouseLeave={onMouseOut}
style={{
boxShadow: `0px 0px ${Math.floor(velocity * 8)}px ${Math.floor(
velocity * 8
)}px #BB8AE5`,
boxShadow: `0px 0px ${velocity * 8}px ${velocity * 8}px #183951`,
}}
className={classNames(
'h-[50px] flex flex-col justify-center px-3',
'min-h-[50px] flex flex-col justify-center px-3',
rounded === 'left' && 'rounded-l-lg',
rounded === 'right' && 'rounded-r-lg',
hover ? 'bg-background-50 cursor-pointer' : 'bg-background-60'
@@ -183,7 +181,7 @@ export function TrackersTable({
const moreInfo = config?.devSettings?.moreInfo;
const hasTemperature = !!filteredSortedTrackers.find(
({ tracker }) => tracker?.temp && tracker?.temp?.temp != 0
({ tracker }) => Number(tracker?.temp?.temp) != 0
);
displayColumns[DisplayColumn.TEMPERATURE] = hasTemperature || false;
displayColumns[DisplayColumn.POSITION] = moreInfo || false;
@@ -321,10 +319,11 @@ export function TrackersTable({
id: DisplayColumn.TEMPERATURE,
label: l10n.getString('tracker-table-column-temperature'),
row: ({ tracker }) =>
tracker?.temp &&
tracker?.temp?.temp != 0 && (
<Typography color={fontColor} whitespace="whitespace-nowrap">
{`${tracker.temp.temp.toFixed(2)}`}
tracker.temp?.temp != 0 && (
<Typography color={fontColor}>
<span className="whitespace-nowrap">
{`${tracker.temp?.temp.toFixed(2)}`}
</span>
</Typography>
),
})}
@@ -335,8 +334,10 @@ export function TrackersTable({
labelClassName: 'w-36',
row: ({ tracker }) =>
tracker.linearAcceleration && (
<Typography color={fontColor} whitespace="whitespace-nowrap">
{formatVector3(tracker.linearAcceleration, 1)}
<Typography color={fontColor}>
<span className="whitespace-nowrap">
{formatVector3(tracker.linearAcceleration, 1)}
</span>
</Typography>
),
})}
@@ -347,8 +348,10 @@ export function TrackersTable({
labelClassName: 'w-36',
row: ({ tracker }) =>
tracker.position && (
<Typography color={fontColor} whitespace="whitespace-nowrap">
{formatVector3(tracker.position, 2)}
<Typography color={fontColor}>
<span className="whitespace-nowrap">
{formatVector3(tracker.position, 1)}
</span>
</Typography>
),
})}
@@ -357,7 +360,7 @@ export function TrackersTable({
id: DisplayColumn.URL,
label: l10n.getString('tracker-table-column-url'),
row: ({ device }) => (
<Typography color={fontColor} whitespace="whitespace-nowrap">
<Typography color={fontColor}>
udp://
{IPv4.fromNumber(
device?.hardwareInfo?.ipAddress?.addr || 0

View File

@@ -1,8 +0,0 @@
export function a11yClick(event: React.KeyboardEvent | React.MouseEvent) {
if (event.type === 'click') {
return true;
} else if (event.type === 'keydown') {
const keyboard = event as React.KeyboardEvent;
return keyboard.key === 'Enter' || keyboard.key === ' ';
}
}

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