Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b73e147d17 | ||
|
|
4dae31a138 | ||
|
|
32d0674aad |
@@ -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.*
|
||||
|
||||
10
.github/CODEOWNERS
vendored
@@ -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
|
||||
|
||||
26
.github/workflows/build-gui.yml
vendored
@@ -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:
|
||||
|
||||
51
.github/workflows/gradle.yaml
vendored
@@ -93,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
|
||||
@@ -130,52 +130,3 @@ jobs:
|
||||
with:
|
||||
name: SlimeVR-GUI-AppImage
|
||||
path: target/release/bundle/appimage/slimevr*.AppImage
|
||||
|
||||
bundle-mac:
|
||||
runs-on: macos-latest
|
||||
needs: build
|
||||
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
|
||||
|
||||
24
.github/workflows/pontoon-pr.yml
vendored
@@ -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 }}
|
||||
37
.github/workflows/rebase.yml
vendored
@@ -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
@@ -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/
|
||||
|
||||
3
.vscode/extensions.json
vendored
@@ -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": []
|
||||
|
||||
@@ -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
@@ -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",
|
||||
]
|
||||
|
||||
10
README.md
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 823 KiB |
@@ -1,72 +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.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
@@ -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
|
||||
}
|
||||
83
flake.nix
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -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": {
|
||||
|
||||
@@ -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",
|
||||
|
||||
BIN
gui/public/fonts/TwemojiCountryFlags.woff2
Normal 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 = لم يتم الكشف أو تعيين عن أي جهاز تعقب
|
||||
@@ -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
|
||||
@@ -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 geht’s!
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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é
|
||||
|
||||
@@ -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 = לא זוהו או הוקצו חיישנים
|
||||
@@ -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
|
||||
|
||||
@@ -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 = トラッカーを検出できません。もしくは割り当てられていません。
|
||||
|
||||
@@ -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 = 감지되거나 할당된 트래커가 없어요.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = Трекеры не обнаружены и не привязаны
|
||||
@@ -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
|
||||
|
||||
@@ -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 gắn
|
||||
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
|
||||
|
||||
@@ -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 = 未检测到或未分配追踪器
|
||||
|
||||
@@ -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 = 未偵測到或未分配追蹤器
|
||||
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 51 KiB |
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env node
|
||||
#!/bin/node
|
||||
/*
|
||||
Process exit codes:
|
||||
First bit: Fluent syntax error in english 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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 |
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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>}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useRef,
|
||||
useState,
|
||||
useState
|
||||
} from 'react';
|
||||
import { BodyPart, TrackerDataT } from 'solarxr-protocol';
|
||||
import { FlatDeviceTracker } from '../../hooks/app';
|
||||
|
||||
@@ -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>
|
||||
)
|
||||
)}
|
||||
|
||||
@@ -62,7 +62,7 @@ export function CheckBox({
|
||||
<input
|
||||
ref={ref}
|
||||
onChange={onChange}
|
||||
checked={value || false}
|
||||
checked={value}
|
||||
name={name}
|
||||
className={classes.checkbox}
|
||||
type="checkbox"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
)}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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]}
|
||||
/>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export function CheckIcon(_props: any) {
|
||||
export function CheckIcon(props: any) {
|
||||
return (
|
||||
<svg
|
||||
width="9"
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ReactNode } from 'react';
|
||||
import {
|
||||
OnboardingContextC,
|
||||
useProvideOnboarding,
|
||||
useProvideOnboarding
|
||||
} from '../../hooks/onboarding';
|
||||
|
||||
export function OnboardingContextProvider({
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 && (
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'
|
||||
)}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
)}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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`,
|
||||
}
|
||||
: {}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
)}
|
||||
|
||||
@@ -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,9 +132,7 @@ 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(
|
||||
'min-h-[50px] flex flex-col justify-center px-3',
|
||||
@@ -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
|
||||
|
||||
@@ -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 === ' ';
|
||||
}
|
||||
}
|
||||