mirror of
https://github.com/SlimeVR/SlimeVR-Server.git
synced 2026-04-06 02:01:58 +02:00
Use fluent format for translations (#414)
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
"flatbuffers": "^22.10.26",
|
||||
"fs-extra": "^10.0.0",
|
||||
"i18next": "^22.0.6",
|
||||
"i18next-browser-languagedetector": "^7.0.1",
|
||||
"i18next-fluent": "^2.0.0",
|
||||
"i18next-fluent-backend": "^0.0.3",
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
"ip-num": "^1.4.1",
|
||||
"postcss-flexbugs-fixes": "^5.0.2",
|
||||
|
||||
405
gui/public/i18n/en/translation.ftl
Normal file
405
gui/public/i18n/en/translation.ftl
Normal file
@@ -0,0 +1,405 @@
|
||||
## Websocket status
|
||||
websocket-connecting = Connecting to the server
|
||||
websocket-connection_lost = Connection lost to the server. Trying to reconnect...
|
||||
|
||||
## Tips
|
||||
tips-find_tracker = Not sure which tracker is which? Shake a tracker and it will highlight the corresponding item.
|
||||
tips-do_not_move_heels = Ensure your heels do not move during recording!
|
||||
|
||||
## Body parts
|
||||
body_part-NONE = Unassigned
|
||||
body_part-HEAD = Head
|
||||
body_part-NECK = Neck
|
||||
body_part-RIGHT_SHOULDER = Right shoulder
|
||||
body_part-RIGHT_UPPER_ARM = Right upper arm
|
||||
body_part-RIGHT_LOWER_ARM = Right lower arm
|
||||
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-CHEST = Chest
|
||||
body_part-WAIST = Waist
|
||||
body_part-HIP = Hip
|
||||
body_part-LEFT_SHOULDER = Left shoulder
|
||||
body_part-LEFT_UPPER_ARM = Left upper arm
|
||||
body_part-LEFT_LOWER_ARM = Left lower arm
|
||||
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
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = None
|
||||
skeleton_bone-HEAD = Head Shift
|
||||
skeleton_bone-NECK = Neck Length
|
||||
skeleton_bone-TORSO = Torso Length
|
||||
skeleton_bone-CHEST = Chest Distance
|
||||
skeleton_bone-WAIST = Waist Distance
|
||||
skeleton_bone-HIP_OFFSET = Hip Offset
|
||||
skeleton_bone-HIPS_WIDTH = Hips Width
|
||||
skeleton_bone-LEGS_LENGTH = Legs Length
|
||||
skeleton_bone-KNEE_HEIGHT = Knee Height
|
||||
skeleton_bone-FOOT_LENGTH = Foot Length
|
||||
skeleton_bone-FOOT_SHIFT = Foot Shift
|
||||
skeleton_bone-SKELETON_OFFSET = Skeleton Offset
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = Controller Distance Z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = Controller Distance Y
|
||||
skeleton_bone-FOREARM_LENGTH = Forearm Distance
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
|
||||
skeleton_bone-SHOULDERS_WIDTH = Shoulders Width
|
||||
skeleton_bone-UPPER_ARM_LENGTH = Upper Arm Length
|
||||
skeleton_bone-ELBOW_OFFSET = Elbow Offset
|
||||
|
||||
## Tracker reset buttons
|
||||
reset-reset_all = Reset all proportions
|
||||
reset-full = Reset
|
||||
reset-mounting = Reset Mounting
|
||||
reset-quick = Quick Reset
|
||||
|
||||
## Serial detection stuff
|
||||
serial_detection-new_device-p0 = New serial device detected!
|
||||
serial_detection-new_device-p1 = Enter your WiFi credentials!
|
||||
serial_detection-new_device-p2 = Please select what you want to do with it
|
||||
serial_detection-open_wifi = Connect to WiFi
|
||||
serial_detection-open_serial = Open Serial Console
|
||||
serial_detection-submit = Submit!
|
||||
serial_detection-close = Close
|
||||
|
||||
## Navigation bar
|
||||
navbar-home = Home
|
||||
navbar-body_proportions = Body Proportions
|
||||
navbar-trackers_assign = Tracker Assignment
|
||||
navbar-mounting = Mounting Calibration
|
||||
navbar-onboarding = Setup Wizard
|
||||
navbar-settings = Settings
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
bvh-start_recording = Record BVH
|
||||
bvh-recording = Recording...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = Show Overlay in SteamVR
|
||||
overlay-is_mirrored_label = Display Overlay as Mirror
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = No Status
|
||||
tracker-status-busy = Busy
|
||||
tracker-status-error = Error
|
||||
tracker-status-disconnected = Disconnected
|
||||
tracker-status-occluded = Occluded
|
||||
tracker-status-ok = OK
|
||||
|
||||
## Tracker status columns
|
||||
tracker-table-column-name = Name
|
||||
tracker-table-column-type = Type
|
||||
tracker-table-column-battery = Battery
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-rotation = Rotation X/Y/Z
|
||||
tracker-table-column-position = Position X/Y/Z
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
tracker-rotation-front = Front
|
||||
tracker-rotation-left = Left
|
||||
tracker-rotation-right = Right
|
||||
tracker-rotation-back = Back
|
||||
|
||||
## Tracker information
|
||||
tracker-infos-manufacturer = Manufacturer
|
||||
tracker-infos-display_name = Display Name
|
||||
tracker-infos-custom_name = Custom Name
|
||||
tracker-infos-url = Tracker URL
|
||||
|
||||
## Tracker settings
|
||||
tracker-settings-back = Go back to trackers list
|
||||
tracker-settings-title = Tracker settings
|
||||
tracker-settings-assignment_section-title = Assignment
|
||||
tracker-settings-assignment_section-description = What part of the body the tracker is assigned to.
|
||||
tracker-settings-assignment_section-edit = Edit assignment
|
||||
tracker-settings-mounting_section-title = Mounting position
|
||||
tracker-settings-mounting_section-description = Where is the tracker mounted?
|
||||
tracker-settings-mounting_section-edit = Edit mounting
|
||||
tracker-settings-name_section-title = Tracker name
|
||||
tracker-settings-name_section-description = Give it a cute nickname :)
|
||||
tracker-settings-name_section-input_placeholder = NightyBeast's left leg
|
||||
|
||||
## Tracker part card info
|
||||
tracker-part_card-no_name = No name
|
||||
tracker-part_card-unassigned = Unassigned
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu-title = Where do you want this tracker to be?
|
||||
body_assignment_menu-description = Choose a location where you want this tracker to be assigned. Alternatively you can choose to manage all trackers at once instead of one by one.
|
||||
body_assignment_menu-show_advanced_locations = Show advanced assign locations
|
||||
body_assignment_menu-manage_trackers = Manage all trackers
|
||||
body_assignment_menu-unassign_tracker = Unassign tracker
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = Which tracker to assign to the { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = Unassigned Trackers
|
||||
tracker_selection_menu-assigned = Assigned Trackers
|
||||
tracker_selection_menu-dont_assign = Do not assign
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = Where do you want this tracker to be?
|
||||
mounting_selection_menu-close = Close
|
||||
|
||||
## Sidebar settings
|
||||
settings-sidebar-title = Settings
|
||||
settings-sidebar-general = General
|
||||
settings-sidebar-tracker_mechanics = Tracker mechanics
|
||||
settings-sidebar-fk_settings = FK settings
|
||||
settings-sidebar-gesture_control = Gesture control
|
||||
settings-sidebar-interface = Interface
|
||||
settings-sidebar-osc_router = OSC router
|
||||
settings-sidebar-utils = Utilities
|
||||
settings-sidebar-serial = Serial console
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR trackers
|
||||
settings-general-steamvr-description-p0 = Enable or disable specific SteamVR trackers.
|
||||
settings-general-steamvr-description-p1 = Useful for games or apps that only support certain trackers.
|
||||
settings-general-steamvr-trackers-waist = Waist
|
||||
settings-general-steamvr-trackers-chest = Chest
|
||||
settings-general-steamvr-trackers-feet = Feet
|
||||
settings-general-steamvr-trackers-knees = Knees
|
||||
settings-general-steamvr-trackers-elbows = Elbows
|
||||
settings-general-steamvr-trackers-hands = Hands
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = Tracker mechanics
|
||||
settings-general-tracker_mechanics-subtitle = Filtering
|
||||
settings-general-tracker_mechanics-description-p0 = Choose the filtering type for your trackers.
|
||||
settings-general-tracker_mechanics-description-p1 = Prediction predicts movement while smoothing smoothens movement.
|
||||
settings-general-tracker_mechanics-filtering_type-title = Filtering type
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = No filtering
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = Use rotations as is. Will not do any filtering.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Smoothing
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = Smooths movements but adds some latency.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = Prediction
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = Reduces latency and makes movements more snappy, but may increase jitter.
|
||||
settings-general-tracker_mechanics-amount-label = Amount
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = Tracking settings
|
||||
settings-general-fk_settings-leg_tweak-title = 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.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Floor clip
|
||||
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-title = 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-title = 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
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = Gesture control
|
||||
settings-general-gesture_control-subtitle = Tap based resets
|
||||
settings-general-gesture_control-description = Allows for resets to be triggered by tapping a tracker. The tracker highest up on your torso is used for Quick Reset, the tracker highest up on your left leg is used for Reset, and the tracker highest up on your right leg is used for Mounting Reset. It should be mentioned that taps must happen within 0.6 seconds to be registered.
|
||||
settings-general-gesture_control-taps = 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-title = Interface
|
||||
settings-general-interface-dev_mode-title = Developer Mode
|
||||
settings-general-interface-dev_mode-description = This mode can be useful if you need in-depth data or to interact with connected trackers on a more advanced level.
|
||||
settings-general-interface-dev_mode-label = Developer Mode
|
||||
settings-general-interface-serial_detection-title = Serial device detection
|
||||
settings-general-interface-serial_detection-description = This option will show a pop-up every time you plug a new serial device that could be a tracker. It helps improving the setup process of a tracker.
|
||||
settings-general-interface-serial_detection-label = Serial device detection
|
||||
settings-general-interface-lang-title = Select language
|
||||
settings-general-interface-lang-description = Change the default language you want to use.
|
||||
settings-general-interface-lang-placeholder = Select the language to use
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = Serial Console
|
||||
settings-serial-description-p0 = This is a live information feed for serial communication.
|
||||
settings-serial-description-p1 = 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-title = OSC router
|
||||
settings-osc-router-description-p0 = Forward OSC messages from another program.
|
||||
settings-osc-router-description-p1 = Useful for using another OSC program with VRChat for example.
|
||||
settings-osc-router-enable-title = Enable
|
||||
settings-osc-router-enable-description = Toggle the forwarding of messages.
|
||||
settings-osc-router-enable-label = Enable
|
||||
settings-osc-router-network-title = Network ports
|
||||
settings-osc-router-network-description-p0 = Set the ports for listening and sending data.
|
||||
settings-osc-router-network-description-p1 = These can be the same as other ports used in the SlimeVR server.
|
||||
settings-osc-router-network-port_in-label = Port In
|
||||
settings-osc-router-network-port_in-placeholder = Port in (default: 9002)
|
||||
settings-osc-router-network-port_out-label = Port Out
|
||||
settings-osc-router-network-port_out-placeholder = Port out (default: 9000)
|
||||
settings-osc-router-network-address-title = 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-description-p0 = Change VRChat-specific settings to receive HMD data and send
|
||||
settings-osc-vrchat-description-p1 = trackers data for FBT (works on Quest standalone).
|
||||
settings-osc-vrchat-enable-title = Enable
|
||||
settings-osc-vrchat-enable-description = Toggle the sending and receiving of data.
|
||||
settings-osc-vrchat-enable-label = Enable
|
||||
settings-osc-vrchat-network-title = 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
|
||||
settings-osc-vrchat-network-port_in-placeholder = Port in (default: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = Port Out
|
||||
settings-osc-vrchat-network-port_out-placeholder = Port out (default: 9000)
|
||||
settings-osc-vrchat-network-address-title = Network address
|
||||
settings-osc-vrchat-network-address-description = Choose which address to send out data to VRChat (check your wifi settings on your device).
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat ip address
|
||||
settings-osc-vrchat-network-trackers-title = Trackers
|
||||
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 = Skip setup
|
||||
onboarding-continue = Continue
|
||||
onboarding-wip = Work in progress
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = Go Back to introduction
|
||||
onboarding-wifi_creds-title = Input WiFi credentials
|
||||
onboarding-wifi_creds-description-p0 = The Trackers will use these credentials to connect wirelessly
|
||||
onboarding-wifi_creds-description-p1 = please use the credentials that you are currently connected to
|
||||
onboarding-wifi_creds-skip = Skip wifi settings
|
||||
onboarding-wifi_creds-submit = Submit!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Go Back to Mounting calibration
|
||||
onboarding-reset_tutorial-title = Reset tutorial
|
||||
onboarding-reset_tutorial-description = This feature isn't done, just press continue
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Welcome to SlimeVR
|
||||
onboarding-home-description-p0 = Bringing full-body tracking
|
||||
onboarding-home-description-p1 = to everyone
|
||||
onboarding-home-start = Lets get set up!
|
||||
|
||||
## Enter VR part of setup
|
||||
onboarding-enter_vr-back = Go Back to Tracker assignent
|
||||
onboarding-enter_vr-title = Time to enter VR!
|
||||
onboarding-enter_vr-description = Put on all your trackers and then enter VR!
|
||||
onboarding-enter_vr-ready = I'm ready
|
||||
|
||||
## Setup done
|
||||
onboarding-done-title = You're all set!
|
||||
onboarding-done-description = Enjoy your full body experience
|
||||
onboarding-done-close = Close the guide
|
||||
|
||||
## Tracker connection setup
|
||||
onboarding-connect_tracker-back = Go Back to WiFi credentials
|
||||
onboarding-connect_tracker-title = Connect trackers
|
||||
onboarding-connect_tracker-description-p0 = Now onto the fun part, connecting all the trackers!
|
||||
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-connecting = Sending wifi credentials
|
||||
onboarding-connect_tracker-connection_status-connected = Connected to WiFi
|
||||
onboarding-connect_tracker-connection_status-error = Unable to connect to Wifi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = Looking for trackers
|
||||
onboarding-connect_tracker-connection_status-handshake = Connected to the Server
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } trackers connected
|
||||
onboarding-connect_tracker-next = I connected all my trackers
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = Go Back to Wifi Credentials
|
||||
onboarding-assign_trackers-title = Assign trackers
|
||||
onboarding-assign_trackers-description = Let's choose which tracker goes where. Click on a location where you want to place a tracker
|
||||
onboarding-assign_trackers-assigned = { $assigned } of { $trackers } trackers assigned
|
||||
onboarding-assign_trackers-advanced = Show advanced assign locations
|
||||
onboarding-assign_trackers-next = I assigned all the trackers
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = Go Back to Enter VR
|
||||
onboarding-manual_mounting-title = Manual Mounting
|
||||
onboarding-manual_mounting-description = Click on every tracker and select which way they are mounted
|
||||
onboarding-manual_mounting-auto_mounting = Automatic mounting
|
||||
onboarding-manual_mounting-next = Next step
|
||||
|
||||
## Tracker automatic mounting setup
|
||||
onboarding-automatic_mounting-back = Go Back to Enter VR
|
||||
onboarding-automatic_mounting-title = Mounting Calibration
|
||||
onboarding-automatic_mounting-description = For SlimeVR trackers to work, we need to assign a mounting rotation to your trackers to align them with your physical tracker mounting.
|
||||
onboarding-automatic_mounting-manual_mounting = Manually set mounting
|
||||
onboarding-automatic_mounting-next = Next step
|
||||
onboarding-automatic_mounting-prev_step = Previous step
|
||||
onboarding-automatic_mounting-done-title = Mounting rotations calibrated.
|
||||
onboarding-automatic_mounting-done-description = Your mounting calibration is complete!
|
||||
onboarding-automatic_mounting-done-restart = Return to start
|
||||
onboarding-automatic_mounting-mounting_reset-title = Mounting Reset
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Squat in a "skiing" pose with your legs bent, your upper body tilted forwards, and your arms bent.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Press the "Reset Mounting" button and wait for 3 seconds before the trackers' mounting rotations will reset.
|
||||
onboarding-automatic_mounting-preparation-title = Preparation
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stand upright with your arms to your sides.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Press the "Reset" button and wait for 3 seconds before the trackers will reset.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Put on your trackers
|
||||
onboarding-automatic_mounting-put_trackers_on-description = To calibrate mounting rotations, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = I have all my trackers on
|
||||
|
||||
## Tracker manual proportions setup
|
||||
onboarding-manual_proportions-back = Go Back to Reset tutorial
|
||||
onboarding-manual_proportions-title = Manual Body Proportions
|
||||
onboarding-manual_proportions-precision = Precision adjust
|
||||
onboarding-manual_proportions-auto = Automatic calibration
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
onboarding-automatic_proportions-back = Go Back to Reset tutorial
|
||||
onboarding-automatic_proportions-title = Measure your body
|
||||
onboarding-automatic_proportions-description = For SlimeVR trackers to work, we need to know the length of your bones. This short calibration will measure it for you.
|
||||
onboarding-automatic_proportions-manual = Manual calibration
|
||||
onboarding-automatic_proportions-prev_step = Previous step
|
||||
onboarding-automatic_proportions-put_trackers_on-title = Put on your trackers
|
||||
onboarding-automatic_proportions-put_trackers_on-description = To calibrate your proportions, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = I have all my trackers on
|
||||
onboarding-automatic_proportions-preparation-title = Preparation
|
||||
onboarding-automatic_proportions-preparation-description = Place a chair directly behind you inside your play space. Be prepared to sit down during the autobone setup.
|
||||
onboarding-automatic_proportions-preparation-next = I am in front of a chair
|
||||
onboarding-automatic_proportions-start_recording-title = Get ready to move
|
||||
onboarding-automatic_proportions-start_recording-description = We're now going to record some specific poses and moves. These will be prompted in the next screen. Be ready to start when the button is pressed!
|
||||
onboarding-automatic_proportions-start_recording-next = Start Recording
|
||||
onboarding-automatic_proportions-recording-title = REC
|
||||
onboarding-automatic_proportions-recording-description-p0 = Recording in progress...
|
||||
onboarding-automatic_proportions-recording-description-p1 = Make the moves shown below:
|
||||
onboarding-automatic_proportions-recording-steps-0 = Bend knees a few times.
|
||||
onboarding-automatic_proportions-recording-steps-1 = Sit on a chair then stand up.
|
||||
onboarding-automatic_proportions-recording-steps-2 = Twist upper body left, then bend right.
|
||||
onboarding-automatic_proportions-recording-steps-3 = Twist upper body right, then bend left.
|
||||
onboarding-automatic_proportions-recording-steps-4 = Wiggle around until timer ends.
|
||||
onboarding-automatic_proportions-recording-processing = Processing the result
|
||||
onboarding-automatic_proportions-recording-timer = { $time } seconds left
|
||||
onboarding-automatic_proportions-verify_results-title = Verify results
|
||||
onboarding-automatic_proportions-verify_results-description = Check the results below, do they look correct?
|
||||
onboarding-automatic_proportions-verify_results-results = Recording results
|
||||
onboarding-automatic_proportions-verify_results-processing = Processing the result
|
||||
onboarding-automatic_proportions-verify_results-redo = Redo recording
|
||||
onboarding-automatic_proportions-verify_results-confirm = They're correct
|
||||
onboarding-automatic_proportions-done-title = Body measured and saved.
|
||||
onboarding-automatic_proportions-done-description = Your body proportions calibration is complete!
|
||||
|
||||
## Home
|
||||
home-no_trackers = No trackers detected or assigned
|
||||
405
gui/public/i18n/fr/translation.ftl
Normal file
405
gui/public/i18n/fr/translation.ftl
Normal file
@@ -0,0 +1,405 @@
|
||||
## Websocket 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-assigné
|
||||
body_part-HEAD = Tête
|
||||
body_part-NECK = Cou
|
||||
body_part-RIGHT_SHOULDER = Épaule droite
|
||||
body_part-RIGHT_UPPER_ARM = Bras droit
|
||||
body_part-RIGHT_LOWER_ARM = Avant-bras droit
|
||||
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-CHEST = Poitrine
|
||||
body_part-WAIST = Taille
|
||||
body_part-HIP = Hanche
|
||||
body_part-LEFT_SHOULDER = Épaule gauche
|
||||
body_part-LEFT_UPPER_ARM = Bras gauche
|
||||
body_part-LEFT_LOWER_ARM = Avant-bras gauche
|
||||
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
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = Aucun
|
||||
skeleton_bone-HEAD = Décalage de la tête
|
||||
skeleton_bone-NECK = Longueur du cou
|
||||
skeleton_bone-TORSO = Longueur du torse
|
||||
skeleton_bone-CHEST = Distance de la poitrine
|
||||
skeleton_bone-WAIST = Distance de la taille
|
||||
skeleton_bone-HIP_OFFSET = Écart de la hanche
|
||||
skeleton_bone-HIPS_WIDTH = Largeur des hanches
|
||||
skeleton_bone-LEGS_LENGTH = Longueur des jambes
|
||||
skeleton_bone-KNEE_HEIGHT = Hauteur des genoux
|
||||
skeleton_bone-FOOT_LENGTH = Longueur des pieds
|
||||
skeleton_bone-FOOT_SHIFT = Décalage des pieds
|
||||
skeleton_bone-SKELETON_OFFSET = Écart du squelette
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = Distance Z des contrôleurs
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = Distance Y des contrôleurs
|
||||
skeleton_bone-FOREARM_LENGTH = Longueur des avant-bras
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distance des épaules
|
||||
skeleton_bone-SHOULDERS_WIDTH = Largeur des épaules
|
||||
skeleton_bone-UPPER_ARM_LENGTH = Longueur des bras supérieurs
|
||||
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
|
||||
serial_detection-open_wifi = Connecter au Wi-Fi
|
||||
serial_detection-open_serial = Ouvrir la console série
|
||||
serial_detection-submit = Soumettre!
|
||||
serial_detection-close = Fermer
|
||||
|
||||
## Navigation bar
|
||||
navbar-home = Accueil
|
||||
navbar-body_proportions = Proportions du corps
|
||||
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...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = Superposer le squelette dans SteamVR
|
||||
overlay-is_mirrored_label = Afficher le squelette en tant que miroir
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = Pas de statut
|
||||
tracker-status-busy = Occupé
|
||||
tracker-status-error = Erreur
|
||||
tracker-status-disconnected = Déconnecté
|
||||
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
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-rotation = Rotation X/Y/Z
|
||||
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-title = 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-title = Orientation du capteur
|
||||
tracker-settings-mounting_section-description = Dans quelle direction pointe le capteur?
|
||||
tracker-settings-mounting_section-edit = Changer l'orientation
|
||||
tracker-settings-name_section-title = Nom personalisé
|
||||
tracker-settings-name_section-description = Donnez-lui un joli surnom :3
|
||||
tracker-settings-name_section-input_placeholder = Patte gauche d'Erimel
|
||||
|
||||
## Tracker part card info
|
||||
tracker-part_card-no_name = Sans nom
|
||||
tracker-part_card-unassigned = Non attribué
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu-title = 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ésassigner
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = Quel capteur attribuer à { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = Capteurs non assignés
|
||||
tracker_selection_menu-assigned = Capteurs assignés
|
||||
tracker_selection_menu-dont_assign = Ne pas attribuer
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 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
|
||||
settings-sidebar-fk_settings = Paramètres de la capture
|
||||
settings-sidebar-gesture_control = Contrôle gestuel
|
||||
settings-sidebar-interface = Interface
|
||||
settings-sidebar-osc_router = Routeur OSC
|
||||
settings-sidebar-utils = Utilitaires
|
||||
settings-sidebar-serial = Console série
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = Capteurs SteamVR
|
||||
settings-general-steamvr-description-p0 = Activez ou désactivez des capteurs SteamVR.
|
||||
settings-general-steamvr-description-p1 = Utile pour les jeux ou applications qui ne supportent que certains capteurs.
|
||||
settings-general-steamvr-trackers-waist = Taille
|
||||
settings-general-steamvr-trackers-chest = Poitrine
|
||||
settings-general-steamvr-trackers-feet = Pieds
|
||||
settings-general-steamvr-trackers-knees = Genoux
|
||||
settings-general-steamvr-trackers-elbows = Coudes
|
||||
settings-general-steamvr-trackers-hands = Mains
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = Paramètres des capteurs
|
||||
settings-general-tracker_mechanics-subtitle = Filtrage
|
||||
settings-general-tracker_mechanics-description-p0 = Choisissez le type de filtrage pour vos capteurs.
|
||||
settings-general-tracker_mechanics-description-p1 = La prédiction prédit les mouvements tandis que la fluidification rend les mouvements plus fluides.
|
||||
settings-general-tracker_mechanics-filtering_type-title = Type de filtrage
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = Pas de filtrage
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = Utilisez les rotations telles quelles.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Fluidification
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = Fluidifie les mouvements mais ajoute un peu de latence.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = Prédiction
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = Réduit la latence et rend les mouvements plus vifs, mais moins fluides.
|
||||
settings-general-tracker_mechanics-amount-label = Intensité du filtrage
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = Paramètres de la capture
|
||||
settings-general-fk_settings-leg_tweak-title = 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.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Limitage au sol
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = Correction du glissement
|
||||
settings-general-fk_settings-leg_tweak-skating_correction_amount = Force de la correction du glissement
|
||||
settings-general-fk_settings-arm_fk-title = 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-skeleton_settings-title = 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
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Bassin avancé
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Genoux avancés
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = 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.
|
||||
settings-general-gesture_control-taps = tapes
|
||||
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
|
||||
settings-general-gesture_control-resetEnabled = Taper pour réinitialisation
|
||||
settings-general-gesture_control-resetDelay = Délai de réinitialisation
|
||||
settings-general-gesture_control-resetTaps = Tapes pour réinitialisation
|
||||
settings-general-gesture_control-mountingResetEnabled = Taper pour réinitialisation de l'alignement
|
||||
settings-general-gesture_control-mountingResetDelay = Délai de réinitialisation de l'alignement
|
||||
settings-general-gesture_control-mountingResetTaps = Tapes pour la réinitialisation de l'alignement
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = Interface
|
||||
settings-general-interface-dev_mode-title = Mode développeur
|
||||
settings-general-interface-dev_mode-description = Ce mode peut être utile pour avoir des données approfondies ou pour interagir avec des capteurs connectés à un niveau plus avancé.
|
||||
settings-general-interface-dev_mode-label = Mode développeur
|
||||
settings-general-interface-serial_detection-title = Détection de périphérique série
|
||||
settings-general-interface-serial_detection-description = Cette option affichera une fenêtre chaque fois qu'un nouveau périphérique série qui pourrait être un capteur est connecté.
|
||||
settings-general-interface-serial_detection-label = Détection de périphérique série
|
||||
settings-general-interface-lang-title = Sélectionner la langue
|
||||
settings-general-interface-lang-description = Choisir la langue par défaut.
|
||||
settings-general-interface-lang-placeholder = Choisissez la langue
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = Console série
|
||||
settings-serial-description-p0 = Il s'agit d'un flux d'informations en direct pour la communication en série.
|
||||
settings-serial-description-p1 = Peut être utile pour savoir si un capteur fonctionne correctement.
|
||||
settings-serial-connection_lost = Connexion à l'appareil perdue, reconnexion...
|
||||
settings-serial-reboot = Redémarrer
|
||||
settings-serial-factory_reset = Remise à zéro
|
||||
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-title = Routeur OSC
|
||||
settings-osc-router-description-p0 = Transférez les messages OSC provenant d'un autre programme
|
||||
settings-osc-router-description-p1 = Utile pour utiliser un autre programme OSC avec VRChat par exemple.
|
||||
settings-osc-router-enable-title = Activer
|
||||
settings-osc-router-enable-description = Activer/désactiver le transfert de messages.
|
||||
settings-osc-router-enable-label = Activer
|
||||
settings-osc-router-network-title = Ports réseau
|
||||
settings-osc-router-network-description-p0 = Définissez les ports pour écouter et envoyer des données.
|
||||
settings-osc-router-network-description-p1 = Ces ports peuvent être les mêmes que les autres utilisés dans le serveur SlimeVR.
|
||||
settings-osc-router-network-port_in-label = Port de réception
|
||||
settings-osc-router-network-port_in-placeholder = Port de réception (par défaut: 9002)
|
||||
settings-osc-router-network-port_out-label = Port d'envoi
|
||||
settings-osc-router-network-port_out-placeholder = Port d'envoi (par défaut: 9000)
|
||||
settings-osc-router-network-address-title = Adresse réseau
|
||||
settings-osc-router-network-address-description = Choisissez l'adresse vers laquelle envoyer les données.
|
||||
settings-osc-router-network-address-placeholder = Adresse IPv4
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = Modifiez les paramètres spécifiques à VRChat pour recevoir et envoyer
|
||||
settings-osc-vrchat-description-p1 = des capteurs par OSC (fonctionne sur Quest sans PC).
|
||||
settings-osc-vrchat-enable-title = Activer
|
||||
settings-osc-vrchat-enable-description = Activer/désactiver l'envoi et la réception de données.
|
||||
settings-osc-vrchat-enable-label = Activer
|
||||
settings-osc-vrchat-network-title = Connexions réseau
|
||||
settings-osc-vrchat-network-description = Définissez les ports pour écouter et envoyer des données à VRChat.
|
||||
settings-osc-vrchat-network-port_in-label = Port d'entrée
|
||||
settings-osc-vrchat-network-port_in-placeholder = Port de réception (par défaut : 9001)
|
||||
settings-osc-vrchat-network-port_out-label = Port de sortie
|
||||
settings-osc-vrchat-network-port_out-placeholder = Port d'envoi (par défaut : 9000)
|
||||
settings-osc-vrchat-network-address-title = Adresse réseau
|
||||
settings-osc-vrchat-network-address-description = Choisissez l'adresse à laquelle envoyer les données à VRChat (vérifiez les réseaux Wi-Fi de votre appareil).
|
||||
settings-osc-vrchat-network-address-placeholder = Adresse IP VRChat
|
||||
settings-osc-vrchat-network-trackers-title = capteurs
|
||||
settings-osc-vrchat-network-trackers-description = Sélectionner quels capteurs envoyer via OSC.
|
||||
settings-osc-vrchat-network-trackers-chest = Poitrine
|
||||
settings-osc-vrchat-network-trackers-waist = Taille
|
||||
settings-osc-vrchat-network-trackers-knees = Genoux
|
||||
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é
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = Retour à l'introduction
|
||||
onboarding-wifi_creds-title = Saisir les identifiants Wi-Fi
|
||||
onboarding-wifi_creds-description-p0 = Les capteurs utiliseront ces informations d'identification pour se connecter au réseau.
|
||||
onboarding-wifi_creds-description-p1 = Veuillez utiliser les identifiants avec lesquels vous êtes actuellement connecté.
|
||||
onboarding-wifi_creds-skip = Passer la configuration Wi-Fi
|
||||
onboarding-wifi_creds-submit = Valider
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Retourner à l'alignement des capteurs
|
||||
onboarding-reset_tutorial-title = Didacticiel de réinitialisation
|
||||
onboarding-reset_tutorial-description = Cette fonctionnalité n'est pas encore terminée, appuyez simplement sur continuer
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Bienvenue sur SlimeVR
|
||||
onboarding-home-description-p0 = Rendre la capture des mouvements
|
||||
onboarding-home-description-p1 = accessible à toutes et tous!
|
||||
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-connecting = Envoi d'identifiants Wi-Fi
|
||||
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
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } capteurs connectés
|
||||
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.
|
||||
onboarding-assign_trackers-assigned = { $assigned } capteur(s) sur { $trackers } attribué(s)
|
||||
onboarding-assign_trackers-advanced = Afficher les emplacements d'attribution avancés
|
||||
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-title = Alignement manuel
|
||||
onboarding-manual_mounting-description = Cliquez sur chaque capteur et sélectionnez la manière dont ils sont orientés
|
||||
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.
|
||||
onboarding-automatic_mounting-manual_mounting = Alignement manuel
|
||||
onboarding-automatic_mounting-next = Prochaine étape
|
||||
onboarding-automatic_mounting-prev_step = Étape précédente
|
||||
onboarding-automatic_mounting-done-title = C'est terminé!
|
||||
onboarding-automatic_mounting-done-description = L'alignement des capteurs est calibré!
|
||||
onboarding-automatic_mounting-done-restart = Retourner au début
|
||||
onboarding-automatic_mounting-mounting_reset-title = Réinitialisation de l'alignement
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Accroupissez-vous dans une pose de "ski" avec les jambes pliées, le haut du corps incliné vers l'avant et les bras pliés.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Appuyez sur le bouton "Réinitialiser l'alignement" et attendez 3 secondes avant que l'alignement des capteurs se calibre.
|
||||
onboarding-automatic_mounting-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'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'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.
|
||||
onboarding-automatic_proportions-preparation-next = je suis devant une chaise
|
||||
onboarding-automatic_proportions-start_recording-title = Préparez-vous à bouger
|
||||
onboarding-automatic_proportions-start_recording-description = Nous allons maintenant enregistrer des poses et des mouvements spécifiques.
|
||||
onboarding-automatic_proportions-start_recording-next = Commencer l'enregistrement
|
||||
onboarding-automatic_proportions-recording-title = Enregistrement
|
||||
onboarding-automatic_proportions-recording-description-p0 = Enregistrement en cours...
|
||||
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 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
|
||||
onboarding-automatic_proportions-recording-timer = { $time } secondes restantes
|
||||
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 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é
|
||||
397
gui/public/i18n/it/translation.ftl
Normal file
397
gui/public/i18n/it/translation.ftl
Normal file
@@ -0,0 +1,397 @@
|
||||
## Websocket 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
|
||||
body_part-RIGHT_SHOULDER = Spalla destra
|
||||
body_part-RIGHT_UPPER_ARM = Braccio destro
|
||||
body_part-RIGHT_LOWER_ARM = Avambraccio destro
|
||||
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-CHEST = Petto
|
||||
body_part-WAIST = Girovita
|
||||
body_part-HIP = Fianchi
|
||||
body_part-LEFT_SHOULDER = Spalla sinistra
|
||||
body_part-LEFT_UPPER_ARM = Braccio sinistro
|
||||
body_part-LEFT_LOWER_ARM = Avambraccio sinistro
|
||||
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
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = Non assegnato
|
||||
skeleton_bone-HEAD = Correzione Testa
|
||||
skeleton_bone-NECK = Lunghezza Collo
|
||||
skeleton_bone-TORSO = Torso Lunghezza
|
||||
skeleton_bone-CHEST = Distanza Petto
|
||||
skeleton_bone-WAIST = Distanza Girovita
|
||||
skeleton_bone-HIP_OFFSET = Correzione Fianchi
|
||||
skeleton_bone-HIPS_WIDTH = Larghezza Fianchi
|
||||
skeleton_bone-LEGS_LENGTH = Lunghezza Gambe
|
||||
skeleton_bone-KNEE_HEIGHT = Altezza Ginocchia
|
||||
skeleton_bone-FOOT_LENGTH = Lunghezza Piedi
|
||||
skeleton_bone-FOOT_SHIFT = Correzione Piedi
|
||||
skeleton_bone-SKELETON_OFFSET = Compensazione scheletro
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = Distanza Z Controller
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = Distanza Y Controller
|
||||
skeleton_bone-FOREARM_LENGTH = Distanza Avambracci
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distanza Spalle
|
||||
skeleton_bone-SHOULDERS_WIDTH = Larghezza Spalle
|
||||
skeleton_bone-UPPER_ARM_LENGTH = Lunghezza Braccia
|
||||
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 WiFi!
|
||||
serial_detection-new_device-p2 = Seleziona come utilizzare il tracker, per piacere
|
||||
serial_detection-open_wifi = Connetti al WiFi
|
||||
serial_detection-open_serial = Apri la Serial Console
|
||||
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
|
||||
navbar-mounting = Calibrazione della posizionamento
|
||||
navbar-onboarding = Installazione guidata
|
||||
navbar-settings = Impostazioni
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
bvh-start_recording = Registra BVH
|
||||
bvh-recording = Registrazione in corso...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = Mostra Overlay in SteamVR
|
||||
overlay-is_mirrored_label = Includi uno specchio nel Overlay
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = Nessuno Stato
|
||||
tracker-status-busy = Occupato
|
||||
tracker-status-error = Errore
|
||||
tracker-status-disconnected = Disconnesso
|
||||
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-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-title = Assegnazione
|
||||
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-title = posizionamento di montaggio
|
||||
tracker-settings-mounting_section-description = Come è posizionato il tracker?
|
||||
tracker-settings-mounting_section-edit = Cambia posizionamento
|
||||
tracker-settings-name_section-title = Nome del tracker
|
||||
tracker-settings-name_section-description = Scegli un nomignolo carino :)
|
||||
tracker-settings-name_section-input_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-title = 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
|
||||
body_assignment_menu-manage_trackers = Gestisci tutti i tracker
|
||||
body_assignment_menu-unassign_tracker = Rimuovi assegnazione del tracker
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = Quale tracker vuoi assegnare a: { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = Tracker non assegnato
|
||||
tracker_selection_menu-assigned = Dispositivo assegnato
|
||||
tracker_selection_menu-dont_assign = Non assegnare
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 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 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 = Serial console
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = Tracker di SteamVR
|
||||
settings-general-steamvr-description-p0 = Abilita o disabilita specifici tracker di SteamVR.
|
||||
settings-general-steamvr-description-p1 = Utile per alcuni giochi che utilizzano solo alcuni tracker di SteamVR.
|
||||
settings-general-steamvr-trackers-waist = Girovita
|
||||
settings-general-steamvr-trackers-chest = Petto
|
||||
settings-general-steamvr-trackers-feet = Piedi
|
||||
settings-general-steamvr-trackers-knees = Ginocchia
|
||||
settings-general-steamvr-trackers-elbows = Gomiti
|
||||
settings-general-steamvr-trackers-hands = Mani
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = Comportamento del tracker
|
||||
settings-general-tracker_mechanics-subtitle = Filtro movimenti
|
||||
settings-general-tracker_mechanics-description-p0 = Scegli la tipologia di filtraggio movimenti per il tuo tracker.
|
||||
settings-general-tracker_mechanics-description-p1 = Predizione anticipa i movimenti, mentre Attenuazione attenua movimenti eccessivi.
|
||||
settings-general-tracker_mechanics-filtering_type-title = Tipologia di filtraggio
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = Non usare alcun filtraggio
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = Usa le rotazioni così come sono. Non eseguirà alcun filtro.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Attenuazione
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = Attenua movimenti eccessivi ma aggiunge ritardo.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = Predizione
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = Riduce ritardo e rende movimenti più istantanei, ma può introdurre tremolio.
|
||||
settings-general-tracker_mechanics-amount-label = Quantità
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = Impostazioni FK
|
||||
settings-general-fk_settings-leg_tweak-title = 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.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Compenetrazione pavimento
|
||||
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-title = 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-skeleton_settings-title = 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
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = 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.
|
||||
settings-general-gesture_control-enable = Reset veloce con il doppio tocco
|
||||
settings-general-gesture_control-delay = Ritardo
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = Interfaccia
|
||||
settings-general-interface-dev_mode-title = Modalità sviluppatore
|
||||
settings-general-interface-dev_mode-description = Questa modalità è utile se hai bisogno di dati approfonditi o devi interagire in maniera più avanzata con i tracker connessi.
|
||||
settings-general-interface-dev_mode-label = Modalità sviluppatore
|
||||
settings-general-interface-serial_detection-title = Rilevazione nuovi dispositivi seriali
|
||||
settings-general-interface-serial_detection-description = Questa opzione mostrerà un pop-up ogni volta che colleghi un nuovo dispositivo seriale che potrebbe essere un tracker. Aiuta a facilitare la configurazione iniziale di un tracker
|
||||
settings-general-interface-serial_detection-label = Rilevazione nuovi dispositivi seriali
|
||||
settings-general-interface-lang-title = Seleziona la lingua
|
||||
settings-general-interface-lang-description = Seleziona la lingua che vuoi utilizzare
|
||||
settings-general-interface-lang-placeholder = Seleziona la lingua da utilizzare
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = Serial Console
|
||||
settings-serial-description-p0 = Questo è un feed di informazioni in tempo reale per la comunicazione seriale.
|
||||
settings-serial-description-p1 = Può essere utile se ti serve capire se il firmware sta avendo problemi.
|
||||
settings-serial-connection_lost = Connessione seriale persa. Riconnessione in corso...
|
||||
settings-serial-reboot = Riavvia
|
||||
settings-serial-factory_reset = Ripristino delle impostazioni di fabbrica
|
||||
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-title = OSC router
|
||||
settings-osc-router-description-p0 = Inoltra messaggi OSC da un altro programma.
|
||||
settings-osc-router-description-p1 = Utile per utilizzare un altro programma OSC con VRChat, per esempio.
|
||||
settings-osc-router-enable-title = Attiva
|
||||
settings-osc-router-enable-description = Attiva o disattiva l'inoltro dei messaggi
|
||||
settings-osc-router-enable-label = Attiva
|
||||
settings-osc-router-network-title = Porte di rete
|
||||
settings-osc-router-network-description-p0 = Impostare le porte di rete per l'ascolto e l'invio dei dati
|
||||
settings-osc-router-network-description-p1 = Queste possono essere le stesse porte di rete di altre porte utilizzate nel server di SlimeVR
|
||||
settings-osc-router-network-port_in-label = Porta in ingresso
|
||||
settings-osc-router-network-port_in-placeholder = Porta in ingresso (predefinito: 9002)
|
||||
settings-osc-router-network-port_out-label = Porta in uscita
|
||||
settings-osc-router-network-port_out-placeholder = Porta in uscita (predefinito: 9000)
|
||||
settings-osc-router-network-address-title = Indirizzo di rete
|
||||
settings-osc-router-network-address-description = Impostare l'indirizzo di rete a cui inviare i dati
|
||||
settings-osc-router-network-address-placeholder = Indirizzo IPV4
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = Modifica le impostazioni specifiche a VRChat per ricevere e inviare dati del HMD
|
||||
settings-osc-vrchat-description-p1 = Dati dei tracker per FBT (funziona su Quest standalone).
|
||||
settings-osc-vrchat-enable-title = Attiva
|
||||
settings-osc-vrchat-enable-description = Attiva o disattiva l'invio e la ricezione dei dati
|
||||
settings-osc-vrchat-enable-label = Attiva
|
||||
settings-osc-vrchat-network-title = Porte di rete
|
||||
settings-osc-vrchat-network-description = Impostare le porte di rete per ascoltare e inviare dati a VRChat
|
||||
settings-osc-vrchat-network-port_in-label = Porta in ingresso
|
||||
settings-osc-vrchat-network-port_in-placeholder = Porta in ingresso (predefinito: 9002)
|
||||
settings-osc-vrchat-network-port_out-label = Porta in uscita
|
||||
settings-osc-vrchat-network-port_out-placeholder = Porta in uscita (predefinito: 9000)
|
||||
settings-osc-vrchat-network-address-title = Indirizzo di rete
|
||||
settings-osc-vrchat-network-address-description = Scegli a quale indirizzo di rete inviare i dati di VRChat (controlla le impostazioni WiFi sul tuo dispositivo)
|
||||
settings-osc-vrchat-network-address-placeholder = Indirizzo IP di VRChat
|
||||
settings-osc-vrchat-network-trackers-title = Tracker
|
||||
settings-osc-vrchat-network-trackers-description = Attiva o disattiva l'invio e la ricezione dei dati
|
||||
settings-osc-vrchat-network-trackers-chest = Petto
|
||||
settings-osc-vrchat-network-trackers-waist = Girovita
|
||||
settings-osc-vrchat-network-trackers-knees = Ginocchia
|
||||
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
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = Torna all'introduzione
|
||||
onboarding-wifi_creds-title = Inserisci credenziali WiFi
|
||||
onboarding-wifi_creds-description-p0 = I tracker utilizzeranno queste credenziali per connettersi in modalità wireless
|
||||
onboarding-wifi_creds-description-p1 = Si prega di utilizzare le stesse credenziali con cui si è attualmente connessi
|
||||
onboarding-wifi_creds-skip = Salta impostazioni WiFi
|
||||
onboarding-wifi_creds-submit = Conferma!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Torna alla calibrazione posizionamento
|
||||
onboarding-reset_tutorial-title = Tutorial di ripristino
|
||||
onboarding-reset_tutorial-description = Questa funzionalità non è completa, premi continua
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Benvenuti a SlimeVR
|
||||
onboarding-home-description-p0 = Portiamo full-body tracking
|
||||
onboarding-home-description-p1 = a tuttə
|
||||
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 WiFi
|
||||
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-connecting = Invio credenziali WiFi in corso.
|
||||
onboarding-connect_tracker-connection_status-connected = Connesso al WiFi
|
||||
onboarding-connect_tracker-connection_status-error = Impossibile connettersi al WiFi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = Ricerca dei tracker in corso
|
||||
onboarding-connect_tracker-connection_status-handshake = Connesso al Server
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } di tracker connessi
|
||||
onboarding-connect_tracker-next = Ho collegato tutti i miei tracker
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = Torna alle credenziali WiFi
|
||||
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
|
||||
onboarding-assign_trackers-assigned = { $assigned } di { $trackers } tracker assegnati
|
||||
onboarding-assign_trackers-advanced = Mostra impostazioni avanzate di assegnazione
|
||||
onboarding-assign_trackers-next = Ho assegnato tutti i miei tracker
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = Torna indietro per entrare in VR
|
||||
onboarding-manual_mounting-title = Posizionamento manuale
|
||||
onboarding-manual_mounting-description = Fare clic su ogni tracker e selezionare in che direzione sono montati
|
||||
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.
|
||||
onboarding-automatic_mounting-manual_mounting = Imposta posizione manualmente
|
||||
onboarding-automatic_mounting-next = Passo successivo
|
||||
onboarding-automatic_mounting-prev_step = Passaggio precedente
|
||||
onboarding-automatic_mounting-done-title = Rotazione delle posizioni di montaggio calibrate.
|
||||
onboarding-automatic_mounting-done-description = La calibrazione della posizione é completa!
|
||||
onboarding-automatic_mounting-done-restart = Torna all'inizio
|
||||
onboarding-automatic_mounting-mounting_reset-title = Ripristina posizionamento
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Piegati come per sciare: con le gambe leggermente piegate e unite, la parte superiore del corpo inclinata in avanti e le braccia piegate.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Premere il pulsante "Ripristina posizionamento" e attendere 3 secondi prima che le rotazioni delle posizioni di montaggio dei tracker vengano ripristinate.
|
||||
onboarding-automatic_mounting-preparation-title = Preparazione
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stai in piedi drittə con le braccia lungo i fianchi.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Premi il pulsante "Reset" e attendi 3 secondi prima che i tracker vengano ripristinati.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Indossa i tuoi tracker
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Per calibrare le rotazioni delle posizioni montaggio useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Sto indossando tutti i miei tracker
|
||||
|
||||
## 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.
|
||||
onboarding-automatic_proportions-manual = Calibrazione manuale
|
||||
onboarding-automatic_proportions-prev_step = Passaggio precedente
|
||||
onboarding-automatic_proportions-put_trackers_on-title = Indossa i tuoi tracker
|
||||
onboarding-automatic_proportions-put_trackers_on-description = Per calibrare le tue proporzioni useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Sto indossando tutti i miei tracker
|
||||
onboarding-automatic_proportions-preparation-title = Preparazione
|
||||
onboarding-automatic_proportions-preparation-description = Posiziona una sedia direttamente dietro di te all'interno della tua area di gioco. Ti verrà richiesto di sederti durante certi passaggi della calibrazione delle proporzioni.
|
||||
onboarding-automatic_proportions-preparation-next = Sono davanti a una sedia
|
||||
onboarding-automatic_proportions-start_recording-title = Preparati a muoverti
|
||||
onboarding-automatic_proportions-start_recording-description = Ora registreremo alcune pose e movimenti specifici. Questi verranno descritte nelle schermate successive. Preparati a iniziare quando premi il pulsante!
|
||||
onboarding-automatic_proportions-start_recording-next = Inizia registrazione
|
||||
onboarding-automatic_proportions-recording-title = REC
|
||||
onboarding-automatic_proportions-recording-description-p0 = Registrazione in corso...
|
||||
onboarding-automatic_proportions-recording-description-p1 = Fai i movimenti mostrati di seguito:
|
||||
onboarding-automatic_proportions-recording-steps-0 = Piega le ginocchia un paio di volte.
|
||||
onboarding-automatic_proportions-recording-steps-1 = Siediti su una sedia e poi alzati.
|
||||
onboarding-automatic_proportions-recording-steps-2 = Ruota la parte superiore del corpo a sinistra, poi piegati a destra.
|
||||
onboarding-automatic_proportions-recording-steps-3 = Ruota la parte superiore del corpo a destra, poi piegati a sinistra.
|
||||
onboarding-automatic_proportions-recording-steps-4 = Muoviti un poco fino allo scadere del timer.
|
||||
onboarding-automatic_proportions-recording-processing = Elaborazione del risultato
|
||||
onboarding-automatic_proportions-recording-timer = { $time } secondi rimanenti
|
||||
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
|
||||
onboarding-automatic_proportions-verify_results-processing = Elaborazione del risultato
|
||||
onboarding-automatic_proportions-verify_results-redo = Rifai registrazione
|
||||
onboarding-automatic_proportions-verify_results-confirm = Sono corretti
|
||||
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
|
||||
375
gui/public/i18n/ja/translation.ftl
Normal file
375
gui/public/i18n/ja/translation.ftl
Normal file
@@ -0,0 +1,375 @@
|
||||
## Websocket 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-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 = 左足先
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = 無し
|
||||
skeleton_bone-HEAD = ヘッドシフト
|
||||
skeleton_bone-NECK = 首長さ
|
||||
skeleton_bone-TORSO = 胴長さ
|
||||
skeleton_bone-CHEST = 胸部の距離
|
||||
skeleton_bone-WAIST = 腰部の距離
|
||||
skeleton_bone-HIP_OFFSET = ヒップオフセット
|
||||
skeleton_bone-HIPS_WIDTH = ヒップ幅
|
||||
skeleton_bone-LEGS_LENGTH = 脚長さ
|
||||
skeleton_bone-KNEE_HEIGHT = 膝高さ
|
||||
skeleton_bone-FOOT_LENGTH = 足先長さ
|
||||
skeleton_bone-FOOT_SHIFT = 足先シフト
|
||||
skeleton_bone-SKELETON_OFFSET = スケルトンオフセット
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = コントローラ距離 Z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = コントローラ距離 Y
|
||||
skeleton_bone-FOREARM_LENGTH = 前腕長さ
|
||||
skeleton_bone-SHOULDERS_DISTANCE = 肩の距離
|
||||
skeleton_bone-SHOULDERS_WIDTH = 肩幅
|
||||
skeleton_bone-UPPER_ARM_LENGTH = 上腕長さ
|
||||
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 = wifiの認証情報を入力してください!
|
||||
serial_detection-new_device-p2 = 何をするか選択してください
|
||||
serial_detection-open_wifi = 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レコーディング
|
||||
bvh-recording = レコーディング中...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = SteamVRでオーバーレイを表示する
|
||||
overlay-is_mirrored_label = オーバーレイをミラーとして表示する
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = ステータスなし
|
||||
tracker-status-busy = Busy
|
||||
tracker-status-error = エラー
|
||||
tracker-status-disconnected = 切断
|
||||
tracker-status-occluded = Occluded
|
||||
tracker-status-ok = 接続中
|
||||
|
||||
## Tracker status columns
|
||||
tracker-table-column-name = Name
|
||||
tracker-table-column-type = Type
|
||||
tracker-table-column-battery = Battery
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-rotation = Rotation X/Y/Z
|
||||
tracker-table-column-position = 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-title = 割り当て
|
||||
tracker-settings-assignment_section-description = トラッカーが体のどの部位に装着されているか
|
||||
tracker-settings-assignment_section-edit = 割り当ての編集
|
||||
tracker-settings-mounting_section-title = 装着方向
|
||||
tracker-settings-mounting_section-description = トラッカーをどの方向に装着していますか?
|
||||
tracker-settings-mounting_section-edit = 装着向きの編集
|
||||
tracker-settings-name_section-title = トラッカー名称
|
||||
tracker-settings-name_section-description = 自由に名称をつけてください
|
||||
tracker-settings-name_section-input_placeholder = NightyBeast's left leg
|
||||
|
||||
## Tracker part card info
|
||||
tracker-part_card-no_name = 名称無し
|
||||
tracker-part_card-unassigned = 未割り当て
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu-title = このトラッカーをどこに配置しますか?
|
||||
body_assignment_menu-description = このトラッカーを割り当てる場所を選択します。また、トラッカーを一つずつ管理するのではなく、すべてのトラッカーを一括して管理することもできます。
|
||||
body_assignment_menu-show_advanced_locations = 高度な割り当て場所の表示
|
||||
body_assignment_menu-manage_trackers = すべてのトラッカーの管理
|
||||
body_assignment_menu-unassign_tracker = トラッカーの割り当て解除
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = { $bodyPart }どのトラッカーを割り当てますか?
|
||||
tracker_selection_menu-unassigned = 未割り当てのトラッカー
|
||||
tracker_selection_menu-assigned = 割り当て済みのトラッカー
|
||||
tracker_selection_menu-dont_assign = 割り当てない
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = このトラッカーをどこに配置しますか?
|
||||
mounting_selection_menu-close = 閉じる
|
||||
|
||||
## Sidebar settings
|
||||
settings-sidebar-title = 設定
|
||||
settings-sidebar-general = 一般
|
||||
settings-sidebar-tracker_mechanics = トラッカーメカニズム
|
||||
settings-sidebar-fk_settings = FK設定
|
||||
settings-sidebar-interface = インターフェース
|
||||
settings-sidebar-utils = ユーティリティ
|
||||
settings-sidebar-serial = シリアルコンソール
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVRのトラッカー
|
||||
settings-general-steamvr-description-p0 = 有効化したい部位にチャックを入れてください。
|
||||
settings-general-steamvr-description-p1 = SlimeVRが行うことをよりコントロールしたい場合に便利です。
|
||||
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 = 肘
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = トラッカーメカニズム
|
||||
settings-general-tracker_mechanics-subtitle = フィルター機能
|
||||
settings-general-tracker_mechanics-description-p0 = トラッカーのフィルタリングの種類を選択します。
|
||||
settings-general-tracker_mechanics-description-p1 = Predictionは動きを予測し、Smoothingは動きを滑らかにする。
|
||||
settings-general-tracker_mechanics-filtering_type-title = フィルタータイプ
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = No filtering
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = トラッカーの値をそのまま使用します。フィルタリングは行いません。
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Smoothing
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = 動きを滑らかにしますが、若干の遅れが発生します
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = Prediction
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = レイテンシーを減らし、動きをよりキビキビさせますが、ジッターが増加する場合があります。
|
||||
settings-general-tracker_mechanics-amount-label = 数値
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = FK設定
|
||||
settings-general-fk_settings-leg_tweak-title = 脚の微調整
|
||||
settings-general-fk_settings-leg_tweak-description = フロアクリップは、床とのクリッピングを減らす、あるいはなくすことができますが、膝をついたときに問題が発生する可能性があります。スケーティング補正は足の滑りを補正できますが、特定の動作パターンでは精度が落ちることがあります。
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = フロアクリップ
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = スケーティング補正
|
||||
settings-general-fk_settings-arm_fk-title = アームFK
|
||||
settings-general-fk_settings-arm_fk-description = 腕の追従方法を変更する。
|
||||
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD
|
||||
settings-general-fk_settings-skeleton_settings-title = スケルトン設定
|
||||
settings-general-fk_settings-skeleton_settings-description = スケルトン設定のオン/オフを切り替えます。これらはオンのままにしておくことをお勧めします。
|
||||
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
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = ジェスチャーコントロール
|
||||
settings-general-gesture_control-subtitle = ダブルタップクイックリセット
|
||||
settings-general-gesture_control-description = ダブルタップクイックリセットの有効・無効を設定します。有効にすると、最も高い胴体トラッカー上の任意の場所をダブルタップすると、クイックリセットが起動します。ディレイは、タップされてからリセットされるまでの時間です。
|
||||
settings-general-gesture_control-enable = ダブルタップクイックリセット
|
||||
settings-general-gesture_control-delay = ディレイ
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = インターフェース
|
||||
settings-general-interface-dev_mode-title = 開発者モード
|
||||
settings-general-interface-dev_mode-description = このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。
|
||||
settings-general-interface-dev_mode-label = 開発者モード
|
||||
settings-general-interface-serial_detection-title = シリアルデバイスの検出
|
||||
settings-general-interface-serial_detection-description = このオプションは、トラッカーとなり得る新しいシリアルデバイスを接続するたびにポップアップを表示します。これはトラッカーの設定プロセスを改善するのに役立ちます。
|
||||
settings-general-interface-serial_detection-label = シリアルデバイスの検出
|
||||
settings-general-interface-lang-title = 言語を選択
|
||||
settings-general-interface-lang-description = 使用したいデフォルトの言語を変更する
|
||||
settings-general-interface-lang-placeholder = 使用する言語を選択する
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = シリアルコンソール
|
||||
settings-serial-description-p0 = シリアル通信のライブ情報フィードです。
|
||||
settings-serial-description-p1 = ファームウェアの動作を知る必要がある場合に有用かもしれません。
|
||||
settings-serial-connection_lost = シリアルへの接続が失われました、再接続中...
|
||||
settings-serial-reboot = リブート
|
||||
settings-serial-factory_reset = ファクトリーリセット
|
||||
settings-serial-get_infos = 情報取得
|
||||
settings-serial-serial_select = シリアルポートを選択
|
||||
settings-serial-auto_dropdown_item = 自動
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = HMDのデータを受信して送信するためにVRChat固有の設定を変更する。
|
||||
settings-osc-vrchat-description-p1 = FBT用のトラッカーデータ(Questスタンドアロンで動作します)
|
||||
settings-osc-vrchat-enable-title = 有効
|
||||
settings-osc-vrchat-enable-description = データの送受信を切り替える。
|
||||
settings-osc-vrchat-enable-label = 有効
|
||||
settings-osc-vrchat-network-title = ネットワークポート
|
||||
settings-osc-vrchat-network-description = VRChatへのデータを送受信するためのポートを設定します。
|
||||
settings-osc-vrchat-network-port_in-label = ポートイン
|
||||
settings-osc-vrchat-network-port_in-placeholder = ポートイン (デフォルト: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = ポートアウト
|
||||
settings-osc-vrchat-network-port_out-placeholder = ポートアウト (デフォルト: 9000)
|
||||
settings-osc-vrchat-network-address-title = ネットワークアドレス
|
||||
settings-osc-vrchat-network-address-description = VRChatにデータを送信するアドレスを選択してください(デバイスのwifi設定を確認してください)
|
||||
settings-osc-vrchat-network-address-placeholder = VRChatのIPアドレス
|
||||
settings-osc-vrchat-network-trackers-title = トラッカー
|
||||
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 = 実行中
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = 戻る
|
||||
onboarding-wifi_creds-title = WiFiの認証情報の入力
|
||||
onboarding-wifi_creds-description-p0 = トラッカーはこれらの認証情報を使ってwifiに接続します。
|
||||
onboarding-wifi_creds-description-p1 = 現在接続している認証情報を使用してください。
|
||||
onboarding-wifi_creds-skip = wifi設定をスキップする
|
||||
onboarding-wifi_creds-submit = 実行!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = マウントキャリブレーションに戻る
|
||||
onboarding-reset_tutorial-title = リセットチュートリアル
|
||||
onboarding-reset_tutorial-description = この機能は終了していません。続けるを押してください。
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Welcome to SlimeVR
|
||||
onboarding-home-description-p0 = Bringing full-body tracking
|
||||
onboarding-home-description-p1 = to everyone
|
||||
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 = WiFi認証に戻る
|
||||
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-connecting = wifiの認証情報を送信中
|
||||
onboarding-connect_tracker-connection_status-connected = WiFiに接続されました
|
||||
onboarding-connect_tracker-connection_status-error = Wifiに接続できません
|
||||
onboarding-connect_tracker-connection_status-start_connecting = トラッカーを探しています
|
||||
onboarding-connect_tracker-connection_status-handshake = サーバーに接続されました
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } トラッカーが接続されました
|
||||
onboarding-connect_tracker-next = すべてのトラッカーを接続しました
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = Wifi認証に戻る
|
||||
onboarding-assign_trackers-title = トラッカーを割り当てる
|
||||
onboarding-assign_trackers-description = どのトラッカーをどこに置くか選んでみましょう。トラッカーを配置したい場所をクリックしてください。
|
||||
onboarding-assign_trackers-assigned = { $assigned } of { $trackers } trackers assigned
|
||||
onboarding-assign_trackers-advanced = 高度な割り当て場所の表示
|
||||
onboarding-assign_trackers-next = すべてのトラッカーを割り当てました
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = VRの入力に戻る
|
||||
onboarding-manual_mounting-title = マニュアルマウント
|
||||
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 = 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 = 結果を処理中
|
||||
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 = トラッカーを検出できません。もしくは割り当てられていません。
|
||||
396
gui/public/i18n/ko/translation.ftl
Normal file
396
gui/public/i18n/ko/translation.ftl
Normal file
@@ -0,0 +1,396 @@
|
||||
## Websocket 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-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 = 왼발
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = None
|
||||
skeleton_bone-HEAD = 머리 밀림
|
||||
skeleton_bone-NECK = 목 길이
|
||||
skeleton_bone-TORSO = 몸통 길이
|
||||
skeleton_bone-CHEST = 가슴 거리
|
||||
skeleton_bone-WAIST = 허리 거리
|
||||
skeleton_bone-HIP_OFFSET = 골반 오프셋
|
||||
skeleton_bone-HIPS_WIDTH = 골반 너비
|
||||
skeleton_bone-LEGS_LENGTH = 다리 길이
|
||||
skeleton_bone-KNEE_HEIGHT = 무릎 높이
|
||||
skeleton_bone-FOOT_LENGTH = 발 크기
|
||||
skeleton_bone-FOOT_SHIFT = 발 밀림
|
||||
skeleton_bone-SKELETON_OFFSET = 골격 오프셋
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = 컨트롤러 Z축 거리
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = 컨트롤러 Y축 거리
|
||||
skeleton_bone-FOREARM_LENGTH = 전완 길이
|
||||
skeleton_bone-SHOULDERS_DISTANCE = 어깨 거리
|
||||
skeleton_bone-SHOULDERS_WIDTH = 어깨 너비
|
||||
skeleton_bone-UPPER_ARM_LENGTH = 위팔 거리
|
||||
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 = WiFi 자격 증명을 입력해주세요!
|
||||
serial_detection-new_device-p2 = 원하는 작업을 선택하세요
|
||||
serial_detection-open_wifi = 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 기록
|
||||
bvh-recording = 기록중...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = SteamVR에서 오버레이 표시
|
||||
overlay-is_mirrored_label = 오버레이 반전
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = No Status
|
||||
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-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-title = 트래커 위치 지정
|
||||
tracker-settings-assignment_section-description = 트래커가 위치한 신체 부위
|
||||
tracker-settings-assignment_section-edit = 위치 수정
|
||||
tracker-settings-mounting_section-title = 착용 방향
|
||||
tracker-settings-mounting_section-description = 트래커는 어디에 착용하나요?
|
||||
tracker-settings-mounting_section-edit = 방향 수정
|
||||
tracker-settings-name_section-title = 트래커 이름
|
||||
tracker-settings-name_section-description = 귀여운 이름을 지어주세요! >_<
|
||||
tracker-settings-name_section-input_placeholder = NightyBeast's left leg
|
||||
|
||||
## Tracker part card info
|
||||
tracker-part_card-no_name = 이름 없음
|
||||
tracker-part_card-unassigned = 할당되지 않음
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu-title = 트래커가 어디에 있나요?
|
||||
body_assignment_menu-description = 이 트래커를 할당할 위치를 선택하세요. 또는, 모든 트래커를 한 번에 설정할 수도 있어요.
|
||||
body_assignment_menu-show_advanced_locations = 고급 할당 위치 표시
|
||||
body_assignment_menu-manage_trackers = 모든 트래커 설정
|
||||
body_assignment_menu-unassign_tracker = 할당하지 않기
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = { $bodyPart }에 어떤 트래커를 할당할까요?
|
||||
tracker_selection_menu-unassigned = 할당되지 않은 트래커
|
||||
tracker_selection_menu-assigned = 할당된 트래커
|
||||
tracker_selection_menu-dont_assign = 할당하지 않기
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 트래커가 어디에 있나요?
|
||||
mounting_selection_menu-close = 닫기
|
||||
|
||||
## Sidebar settings
|
||||
settings-sidebar-title = 설정
|
||||
settings-sidebar-general = 일반
|
||||
settings-sidebar-tracker_mechanics = 트래커 역학
|
||||
settings-sidebar-fk_settings = FK 설정
|
||||
settings-sidebar-gesture_control = 제스처 제어
|
||||
settings-sidebar-interface = 인터페이스
|
||||
settings-sidebar-osc_router = OSC 라우터
|
||||
settings-sidebar-utils = 유틸리티
|
||||
settings-sidebar-serial = 시리얼 콘솔
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR 트래커
|
||||
settings-general-steamvr-description-p0 = SteamVR 트래커를 켜거나 끄세요
|
||||
settings-general-steamvr-description-p1 = 특정 트래커 구성만 허용하는 게임 또는 앱에서 유용해요.
|
||||
settings-general-steamvr-trackers-waist = Waist
|
||||
settings-general-steamvr-trackers-chest = Chest
|
||||
settings-general-steamvr-trackers-feet = Feet
|
||||
settings-general-steamvr-trackers-knees = Knees
|
||||
settings-general-steamvr-trackers-elbows = Elbows
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = 트래커 역학
|
||||
settings-general-tracker_mechanics-subtitle = 필터링
|
||||
settings-general-tracker_mechanics-description-p0 = 트래커의 필터링 유형을 선택하세요.
|
||||
settings-general-tracker_mechanics-description-p1 = Prediction은 움직임을 예측하고 Smoothing은 움직임을 부드럽게 해요.
|
||||
settings-general-tracker_mechanics-filtering_type-title = 필터링 타입
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = 필터링 없음
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = 어떠한 필터링도 사용하지 않아요. 있는 그대로의 회전 값을 사용해요.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Smoothing
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = 움직임을 부드럽게 하지만 약간의 대기 시간이 추가돼요.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = Prediction
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = 대기 시간이 줄어들고 움직임이 더 빨라지지만 지터가 증가할 수 있어요.
|
||||
settings-general-tracker_mechanics-amount-label = 강도
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = FK 설정
|
||||
settings-general-fk_settings-leg_tweak-title = 다리 보정
|
||||
settings-general-fk_settings-leg_tweak-description = 플로어 클립은 바닥과의 클리핑을 줄이거나 제거할 수 있지만 무릎을 꿇을 때 문제를 일으킬 수 있어요. 스케이팅 보정은 아이스 스케이팅을 보정하지만, 특정 움직임 패턴에서 정확도를 저하시킬 수 있어요.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = 플로어 클립
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = 스케이팅 보정
|
||||
settings-general-fk_settings-leg_tweak-skating_correction_amount = 스케이팅 보정 강도
|
||||
settings-general-fk_settings-arm_fk-title = 팔 운동학
|
||||
settings-general-fk_settings-arm_fk-description = 팔이 추적되는 방식을 변경할 수 있어요.
|
||||
settings-general-fk_settings-arm_fk-force_arms = 팔을 HMD에서만 받아오기
|
||||
settings-general-fk_settings-skeleton_settings-title = 골격 설정
|
||||
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 = 무릎 확장
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = 제스처 제어
|
||||
settings-general-gesture_control-subtitle = 두 번 탭해서 퀵 리셋하기
|
||||
settings-general-gesture_control-description = 활성화하면 가장 높이 있는 트래커의 아무 곳이나 두 번 탭해서 퀵 리셋을 활성화할 수 있어요. 두번 탭하는 간격은 딜레이로 조절할 수 있어요.
|
||||
settings-general-gesture_control-enable = 두번 탭해서 퀵 리셋
|
||||
settings-general-gesture_control-delay = 딜레이
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = 인터페이스
|
||||
settings-general-interface-dev_mode-title = 개발자 모드
|
||||
settings-general-interface-dev_mode-description = 이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.
|
||||
settings-general-interface-dev_mode-label = 개발자 모드
|
||||
settings-general-interface-serial_detection-title = 시리얼 디바이스 감지
|
||||
settings-general-interface-serial_detection-description = 이 옵션은 트래커일 수도 있는 새로운 시리얼 디바이스를 연결할 때마다 팝업을 표시해요. 트래커 설정 프로세스를 개선하는 데 도움이 될 거에요.
|
||||
settings-general-interface-serial_detection-label = 시리얼 디바이스 감지
|
||||
settings-general-interface-lang-title = 언어 선택
|
||||
settings-general-interface-lang-description = 사용하고 싶은 기본 언어를 선택하세요.
|
||||
settings-general-interface-lang-placeholder = 사용할 언어를 선택하세요
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = 시리얼 콘솔
|
||||
settings-serial-description-p0 = 이 라이브 피드에서 시리얼 디바이스와 통신할 수 있어요.
|
||||
settings-serial-description-p1 = 펌웨어가 제대로 작동하는지 알아야 할 때 유용할 거에요.
|
||||
settings-serial-connection_lost = 시리얼 연결 끊김, 다시 연결 중...
|
||||
settings-serial-reboot = 재부팅
|
||||
settings-serial-factory_reset = 공장 초기화
|
||||
settings-serial-get_infos = 정보 가져오기
|
||||
settings-serial-serial_select = 시리얼 포트 선택
|
||||
settings-serial-auto_dropdown_item = 자동
|
||||
|
||||
## OSC router settings
|
||||
settings-osc-router-title = OSC 라우터
|
||||
settings-osc-router-description-p0 = 다른 프로그램에서 오는 OSC 메시지를 전달해요.
|
||||
settings-osc-router-description-p1 = 예를 들어 VRChat과 함께 다른 OSC 프로그램을 사용하는 데 유용할 거에요.
|
||||
settings-osc-router-enable-title = 활성화
|
||||
settings-osc-router-enable-description = 활성화해서 메세지 전달 켜기
|
||||
settings-osc-router-enable-label = 활성화
|
||||
settings-osc-router-network-title = 네트워크 포트
|
||||
settings-osc-router-network-description-p0 = 데이터 수신 및 전송을 위한 포트 설정
|
||||
settings-osc-router-network-description-p1 = 이들은 SlimeVR 서버에서 사용되는 다른 포트와 동일할 수 있어요.
|
||||
settings-osc-router-network-port_in-label = 들어오는 포트
|
||||
settings-osc-router-network-port_in-placeholder = Port in (기본값: 9002)
|
||||
settings-osc-router-network-port_out-label = 나가는 포트
|
||||
settings-osc-router-network-port_out-placeholder = Port out (기본값: 9000)
|
||||
settings-osc-router-network-address-title = 네트워크 주소
|
||||
settings-osc-router-network-address-description = 데이터를 보낼 주소를 설정하세요.
|
||||
settings-osc-router-network-address-placeholder = IPV4 주소
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = HMD 데이터 수신 및 전송을 위한 VRChat 관련 설정 변경
|
||||
settings-osc-vrchat-description-p1 = FBT용 트래커 데이터(Quest 단독에서 작동)
|
||||
settings-osc-vrchat-enable-title = 활성화
|
||||
settings-osc-vrchat-enable-description = 활성화해서 데이터 송수신 전환
|
||||
settings-osc-vrchat-enable-label = 활성화
|
||||
settings-osc-vrchat-network-title = 네트워크 포트
|
||||
settings-osc-vrchat-network-description = VRChat과 데이터를 주고받는 포트 설정
|
||||
settings-osc-vrchat-network-port_in-label = 들어오는 포트
|
||||
settings-osc-vrchat-network-port_in-placeholder = Port in (기본값: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = 나가는 포트
|
||||
settings-osc-vrchat-network-port_out-placeholder = Port out (기본값: 9000)
|
||||
settings-osc-vrchat-network-address-title = 네트워크 주소
|
||||
settings-osc-vrchat-network-address-description = VRChat으로 데이터를 보낼 주소를 선택하세요(장치의 Wi-Fi 설정 확인).
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat IP 주소
|
||||
settings-osc-vrchat-network-trackers-title = 트래커
|
||||
settings-osc-vrchat-network-trackers-description = 활성화해서 데이터 송수신 전환
|
||||
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 = 설정 건너뛰기
|
||||
onboarding-continue = 계속하기
|
||||
onboarding-wip = 아직 공사 중이에요
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = 처음으로 돌아가기
|
||||
onboarding-wifi_creds-title = WiFi 자격 증명을 입력하세요
|
||||
onboarding-wifi_creds-description-p0 = 트래커는 이 자격 증명을 사용하여 무선으로 연결해요
|
||||
onboarding-wifi_creds-description-p1 = 지금 연결되어 있는 자격 증명을 사용해주세요
|
||||
onboarding-wifi_creds-skip = WiFi 설정 건너뛰기
|
||||
onboarding-wifi_creds-submit = 저장!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = 착용 방향 정렬로 돌아가기
|
||||
onboarding-reset_tutorial-title = 리셋 튜토리얼
|
||||
onboarding-reset_tutorial-description = 이 기능은 아직 완성되지 않았어요, 지금은 일단 계속하기를 눌러주세요!
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = SlimeVR에 어서오세요!
|
||||
onboarding-home-description-p0 = Bringing full-body tracking
|
||||
onboarding-home-description-p1 = to everyone
|
||||
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 = WiFi 자격 증명으로 돌아가기
|
||||
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-connecting = WiFi 자격증명 전송 중
|
||||
onboarding-connect_tracker-connection_status-connected = WiFi 연결됨
|
||||
onboarding-connect_tracker-connection_status-error = Wifi에 연결할 수 없음
|
||||
onboarding-connect_tracker-connection_status-start_connecting = 트래커 찾는 중
|
||||
onboarding-connect_tracker-connection_status-handshake = 서버에 연결됨
|
||||
onboarding-connect_tracker-connected_trackers = 트래커 { $amount }개 연결됨
|
||||
onboarding-connect_tracker-next = 모든 트래커를 잘 연결했어요
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = WiFi 자격 증명으로 돌아가기
|
||||
onboarding-assign_trackers-title = 트래커 위치 지정
|
||||
onboarding-assign_trackers-description = 이제, 어떤 트래커가 어디에 있는지 선택할 시간이에요. 트래커를 배치할 위치를 클릭해보세요
|
||||
onboarding-assign_trackers-assigned = { $assigned }/{ $trackers } 트래커 할당됨
|
||||
onboarding-assign_trackers-advanced = 고급 할당 위치 보기
|
||||
onboarding-assign_trackers-next = 모든 트래커를 배치했어요
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = VR 입장 페이지로 돌아가기
|
||||
onboarding-manual_mounting-title = 수동으로 착용 방향 설정
|
||||
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 = 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 = 결과 처리 중
|
||||
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 = 감지되거나 할당된 트래커가 없어요.
|
||||
402
gui/public/i18n/owo/translation.ftl
Normal file
402
gui/public/i18n/owo/translation.ftl
Normal file
@@ -0,0 +1,402 @@
|
||||
## Websocket status
|
||||
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
|
||||
body_part-RIGHT_SHOULDER = wight shouwder~
|
||||
body_part-RIGHT_UPPER_ARM = wight uppew awm
|
||||
body_part-RIGHT_LOWER_ARM = wight wowwe awm
|
||||
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-CHEST = chwest
|
||||
body_part-WAIST = wyayst
|
||||
body_part-HIP = hyip
|
||||
body_part-LEFT_SHOULDER = weft shouwder~
|
||||
body_part-LEFT_UPPER_ARM = weft uppew awm
|
||||
body_part-LEFT_LOWER_ARM = weft wowwe awm
|
||||
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
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = none
|
||||
skeleton_bone-HEAD = hed shyft
|
||||
skeleton_bone-NECK = nyeck wength
|
||||
skeleton_bone-TORSO = towso wength
|
||||
skeleton_bone-CHEST = chwest disyance
|
||||
skeleton_bone-WAIST = weyst disyance
|
||||
skeleton_bone-HIP_OFFSET = hyip awfset
|
||||
skeleton_bone-HIPS_WIDTH = hyips wiwdth
|
||||
skeleton_bone-LEGS_LENGTH = wegs wength
|
||||
skeleton_bone-KNEE_HEIGHT = knyee heiyt
|
||||
skeleton_bone-FOOT_LENGTH = pawsies wength
|
||||
skeleton_bone-FOOT_SHIFT = pawsies shyft
|
||||
skeleton_bone-SKELETON_OFFSET = skeweton awfset
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = cyontwowla disance z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = cyontwowla disance y
|
||||
skeleton_bone-FOREARM_LENGTH = fowewawm disyance
|
||||
skeleton_bone-SHOULDERS_DISTANCE = shouwdews disyance
|
||||
skeleton_bone-SHOULDERS_WIDTH = shouwdews wiwdth
|
||||
skeleton_bone-UPPER_ARM_LENGTH = uppew awm wength
|
||||
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 wifi cwedentiaws~!
|
||||
serial_detection-new_device-p2 = pwease sewect what youw want to do wit it
|
||||
serial_detection-open_wifi = cownnyect to wyfy~
|
||||
serial_detection-open_serial = awpen sewiaw console >w<
|
||||
serial_detection-submit = suwbmyt~!
|
||||
serial_detection-close = cwose
|
||||
|
||||
## Navigation bar
|
||||
navbar-home = howme
|
||||
navbar-body_proportions = body pwopowshons
|
||||
navbar-trackers_assign = twackaws assigwment
|
||||
navbar-mounting = meownting calibwation
|
||||
navbar-onboarding = suwep wisawd
|
||||
navbar-settings = sewtings
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
bvh-start_recording = wecowd bvh
|
||||
bvh-recording = wecowding...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = show owovelay in steawmvr
|
||||
overlay-is_mirrored_label = dispway owovelay as miwwow
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = no stawtus
|
||||
tracker-status-busy = busy
|
||||
tracker-status-error = ewwow
|
||||
tracker-status-disconnected = disconnyected
|
||||
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
|
||||
tracker-table-column-ping = pyng
|
||||
tracker-table-column-rotation = wotaytion x/y/z
|
||||
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-title = assiwnment
|
||||
tracker-settings-assignment_section-description = what pawt of the bawdy the twackaw is assiwned to uwu
|
||||
tracker-settings-assignment_section-edit = ewdit assiwnment
|
||||
tracker-settings-mounting_section-title = meownting pawsition
|
||||
tracker-settings-mounting_section-description = whewe is the twackaw mownted?
|
||||
tracker-settings-mounting_section-edit = edit meownting
|
||||
tracker-settings-name_section-title = twackaw name
|
||||
tracker-settings-name_section-description = owo whats dis?
|
||||
tracker-settings-name_section-input_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-title = 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
|
||||
body_assignment_menu-manage_trackers = manage awl twackaws
|
||||
body_assignment_menu-unassign_tracker = unassyign twayckaw
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = which twayckaw to assyign to the { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = unassyigned twackaws
|
||||
tracker_selection_menu-assigned = assyigned twackaws
|
||||
tracker_selection_menu-dont_assign = do nawt assyign
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 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-interface = intyawface~
|
||||
settings-sidebar-osc_router = OSC wouwter
|
||||
settings-sidebar-utils = utiwities
|
||||
settings-sidebar-serial = sewiaw cownsaw
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = steamvr~
|
||||
settings-general-steamvr-subtitle = steamvr twayckaws~
|
||||
settings-general-steamvr-description-p0 = enyable or dysabywe specific twacking pawts.
|
||||
settings-general-steamvr-description-p1 = usefuw if yew want mowwe contwoww owew what swimevr does.
|
||||
settings-general-steamvr-trackers-waist = wyayst
|
||||
settings-general-steamvr-trackers-chest = chwest
|
||||
settings-general-steamvr-trackers-feet = pawbsies~
|
||||
settings-general-steamvr-trackers-knees = knyees~
|
||||
settings-general-steamvr-trackers-elbows = ewbows~
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = twayckaw mechanics~
|
||||
settings-general-tracker_mechanics-subtitle = fiwtering~
|
||||
settings-general-tracker_mechanics-description-p0 = chooce teh fiwwtewing type fow youw twackaws.
|
||||
settings-general-tracker_mechanics-description-p1 = pwediction pwedicts movment while smowthing smowthens movment.
|
||||
settings-general-tracker_mechanics-filtering_type-title = fiwtewing type~
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = no fiwwtewing~
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = use wowtations as is. wiw nawt do any fiwwtewing.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = smowthing
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = smowthes movements but adds some watency~
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = pwediction~
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = wowduces wowcyancy and makes wowvements mowe wowappy, but may incwease jiwitty
|
||||
settings-general-tracker_mechanics-amount-label = amownt
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = fk sewttings
|
||||
settings-general-fk_settings-leg_tweak-title = leg tweeks
|
||||
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.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = fwoow cwip
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = skayting wowcowwection
|
||||
settings-general-fk_settings-arm_fk-title = 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-skeleton_settings-title = 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
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = ewtended pelvis
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = ewtended neey
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = gestauw cantwol
|
||||
settings-general-gesture_control-subtitle = bap bwased wesets
|
||||
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
|
||||
settings-general-gesture_control-taps = 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 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 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-title = intewface
|
||||
settings-general-interface-dev_mode-title = devwowwewow mode
|
||||
settings-general-interface-dev_mode-description = this mode can be wowseffuw if you need in-dipth data owow to intewact with cownnected twackaws on a wowowe wowadvanced wowwevew
|
||||
settings-general-interface-dev_mode-label = devwowwewow mode
|
||||
settings-general-interface-serial_detection-title = shewyaw device deteccion
|
||||
settings-general-interface-serial_detection-description = this option will shaww a pawp-up evewy time yuw pwug a new shewyaw device that cawwld be a twayckaw. it helps iympwooving teh setup pwocess of a twayckaw
|
||||
settings-general-interface-serial_detection-label = shewyaw device deteccion
|
||||
settings-general-interface-lang-title = sewect wanguage
|
||||
settings-general-interface-lang-description = change the defawwt wanguage yuw want to use
|
||||
settings-general-interface-lang-placeholder = sewect teh wanguage to use
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = shewyaw console
|
||||
settings-serial-description-p0 = this is a wiwve infowmation feed fow shewyaw comyunicaytion
|
||||
settings-serial-description-p1 = may be usefuw if yuw need to know teh fiwmwawe is acting up
|
||||
settings-serial-connection_lost = connyection to shewyaw wost, weconnyecting... >~<
|
||||
settings-serial-reboot = weboot
|
||||
settings-serial-factory_reset = fawctowy reset
|
||||
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-title = OSC wouwter
|
||||
settings-osc-router-description-p0 = fowwawd osc messages fwom anothew pwogwam
|
||||
settings-osc-router-description-p1 = usefuww fow uwsing anothew osc pwogwam with VRChat fow exampwe
|
||||
settings-osc-router-enable-title = enaybwe
|
||||
settings-osc-router-enable-description = toggle teh fowwawding of data
|
||||
settings-osc-router-enable-label = enaybwe
|
||||
settings-osc-router-network-title = network pawts
|
||||
settings-osc-router-network-description-p0 = set the pawts fow wistening awnd sending data
|
||||
settings-osc-router-network-description-p1 = these can be the same as othew powts uwsed in the swimevr sewvew
|
||||
settings-osc-router-network-port_in-label = pawt in
|
||||
settings-osc-router-network-port_in-placeholder = pawt in (defawwt: 9002)
|
||||
settings-osc-router-network-port_out-label = pawt out
|
||||
settings-osc-router-network-port_out-placeholder = pawt out (defawwt: 9000)
|
||||
settings-osc-router-network-address-title = network addwess
|
||||
settings-osc-router-network-address-description = choose which addwess to send out data at
|
||||
settings-osc-router-network-address-placeholder = IPV4 addwess
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = change vwchat-specific settwings to wweceive hmd data awnd send
|
||||
settings-osc-vrchat-description-p1 = twayckaws data fow fbt (wawwks on quest standalone).
|
||||
settings-osc-vrchat-enable-title = enaybwe
|
||||
settings-osc-vrchat-enable-description = toggle teh sending awnd wweceiving of data
|
||||
settings-osc-vrchat-enable-label = enaybwe
|
||||
settings-osc-vrchat-network-title = 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
|
||||
settings-osc-vrchat-network-port_in-placeholder = pawt in (defawwt: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = pawt out
|
||||
settings-osc-vrchat-network-port_out-placeholder = pawt out (defawwt: 9000)
|
||||
settings-osc-vrchat-network-address-title = network addwess
|
||||
settings-osc-vrchat-network-address-description = choose which addwess to send out data to vwchat (check yuw wifi settwings on yuw device)
|
||||
settings-osc-vrchat-network-address-placeholder = vwchat ip addwess
|
||||
settings-osc-vrchat-network-trackers-title = trayckawws
|
||||
settings-osc-vrchat-network-trackers-description = toggle teh sending of spweciwic twackers viwa OSC
|
||||
settings-osc-vrchat-network-trackers-chest = chest
|
||||
settings-osc-vrchat-network-trackers-waist = wayst
|
||||
settings-osc-vrchat-network-trackers-knees = knees
|
||||
settings-osc-vrchat-network-trackers-feet = pawbs
|
||||
settings-osc-vrchat-network-trackers-elbows = elbows
|
||||
|
||||
## Setup/onboarding menu
|
||||
onboarding-skip = skipy setup
|
||||
onboarding-continue = continyue
|
||||
onboarding-wip = wowwk in pwowgress
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = gaww bawwk to intwoduction
|
||||
onboarding-wifi_creds-title = input wifi cwedentials
|
||||
onboarding-wifi_creds-description-p0 = teh twawckaws will use these cwedentials to connect wirelessly
|
||||
onboarding-wifi_creds-description-p1 = pwease use teh cwedentials that yaww awe cwowently cownyected to
|
||||
onboarding-wifi_creds-skip = skipy wifi settiwyngs
|
||||
onboarding-wifi_creds-submit = suwbmyt!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = gaww bawwk to meownting cawwibwation
|
||||
onboarding-reset_tutorial-title = weset tutowial
|
||||
onboarding-reset_tutorial-description = dis featuwe isn't done, just pwess continyue
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = wewcome to swimevr
|
||||
onboarding-home-description-p0 = bwinging fuww-bawdy twacking
|
||||
onboarding-home-description-p1 = 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 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 wifi 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 twacker
|
||||
onboarding-connect_tracker-connection_status-connecting = sending wifi cwedentials
|
||||
onboarding-connect_tracker-connection_status-connected = cownyected to wifi
|
||||
onboarding-connect_tracker-connection_status-error = unabwe to cownyect to wifi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = wooking for twackaws
|
||||
onboarding-connect_tracker-connection_status-handshake = cownyected to teh sewvew
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } twackers cownyected
|
||||
onboarding-connect_tracker-next = i cownyected awe my twackaws
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = go bak to wifi 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
|
||||
onboarding-assign_trackers-assigned = { $assigned } of { $trackers } twackaws assigned
|
||||
onboarding-assign_trackers-advanced = show advanced assign wocations
|
||||
onboarding-assign_trackers-next = i assigned awe the twackaws
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = go bak to entaw vawe
|
||||
onboarding-manual_mounting-title = manual meownting
|
||||
onboarding-manual_mounting-description = cwick on evewy twackaw and sewect which way they awe mownted
|
||||
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.
|
||||
onboarding-automatic_mounting-manual_mounting = manually set meownting
|
||||
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 = 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 = 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 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
|
||||
onboarding-automatic_proportions-manual = manyuaw cawybwation
|
||||
onboarding-automatic_proportions-prev_step = pwevious stwep
|
||||
onboarding-automatic_proportions-put_trackers_on-title = put on yowuw twackaws
|
||||
onboarding-automatic_proportions-put_trackers_on-description = to cawybwate yowuw pwopowtiesions, we'we gonna use teh twackaws yowu just assigned. put on awl yowuw twackaws, yowu can see which awe which in teh figuwe to teh wowight.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = i have awl my twackaws on
|
||||
onboarding-automatic_proportions-preparation-title = pwepawation
|
||||
onboarding-automatic_proportions-preparation-description = pwace a chayaw diwectly behind yowu inside yowuw pway spawce. be pwepawed to sit down duwing teh owtobone setyup.
|
||||
onboarding-automatic_proportions-preparation-next = i am in fwont of a chayaw
|
||||
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 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.
|
||||
onboarding-automatic_proportions-recording-steps-2 = twist upwe wowdy wowft, then bend wowft.
|
||||
onboarding-automatic_proportions-recording-steps-3 = twist upwe wowdy wowight, then bend wowight.
|
||||
onboarding-automatic_proportions-recording-steps-4 = wiggy aweound until tymey ends.
|
||||
onboarding-automatic_proportions-recording-processing = pwowcessing teh wowesult
|
||||
onboarding-automatic_proportions-recording-timer = { $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
|
||||
onboarding-automatic_proportions-verify_results-processing = pwocessing teh wewesult
|
||||
onboarding-automatic_proportions-verify_results-redo = wedo wecowding
|
||||
onboarding-automatic_proportions-verify_results-confirm = tehywee coowect
|
||||
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
|
||||
376
gui/public/i18n/pl/translation.ftl
Normal file
376
gui/public/i18n/pl/translation.ftl
Normal file
@@ -0,0 +1,376 @@
|
||||
## Websocket 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
|
||||
body_part-RIGHT_SHOULDER = Prawe Ramie
|
||||
body_part-RIGHT_UPPER_ARM = Prawy Biceps
|
||||
body_part-RIGHT_LOWER_ARM = Prawe PrzedRamie
|
||||
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-CHEST = Klatka Piersiowa
|
||||
body_part-WAIST = Pas
|
||||
body_part-HIP = Biodra
|
||||
body_part-LEFT_SHOULDER = Lewe Ramie
|
||||
body_part-LEFT_UPPER_ARM = Lewy Biceps
|
||||
body_part-LEFT_LOWER_ARM = Lewe PrzedRamie
|
||||
body_part-LEFT_HAND = Lewa Dłoń
|
||||
body_part-LEFT_UPPER_LEG = Lewe Udo
|
||||
body_part-LEFT_LOWER_LEG = Lewe Podudzie
|
||||
body_part-LEFT_FOOT = Lewa Stopa
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = Brak
|
||||
skeleton_bone-HEAD = Head Shift
|
||||
skeleton_bone-NECK = Długość Szyi
|
||||
skeleton_bone-TORSO = Długość Tułowia
|
||||
skeleton_bone-CHEST = Długość Klatki Piersiowej
|
||||
skeleton_bone-WAIST = Waist Distance
|
||||
skeleton_bone-HIP_OFFSET = Offset Bioder
|
||||
skeleton_bone-HIPS_WIDTH = Szerokość Bioder
|
||||
skeleton_bone-LEGS_LENGTH = Długość Nóg
|
||||
skeleton_bone-KNEE_HEIGHT = Wysokość Kolana
|
||||
skeleton_bone-FOOT_LENGTH = Długość Stopy
|
||||
skeleton_bone-FOOT_SHIFT = Foot Shift
|
||||
skeleton_bone-SKELETON_OFFSET = Skeleton Offset
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = Controller Distance Z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = Controller Distance Y
|
||||
skeleton_bone-FOREARM_LENGTH = Długość PrzedRamienia
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Shoulders Distance
|
||||
skeleton_bone-SHOULDERS_WIDTH = Szerokość Ramion
|
||||
skeleton_bone-UPPER_ARM_LENGTH = Długość Bicepsa
|
||||
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 WiFi!
|
||||
serial_detection-new_device-p2 = Wybierz co chcesz z nim zrobić.
|
||||
serial_detection-open_wifi = Połącz z WiFi
|
||||
serial_detection-open_serial = Otwórz Konsole
|
||||
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
|
||||
navbar-mounting = Kalibracja Pozycji
|
||||
navbar-onboarding = Wstępna Konfiguracja
|
||||
navbar-settings = Ustawienia
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
bvh-start_recording = Nagraj BVH
|
||||
bvh-recording = Nagrywam...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = Pokaż Overlay w SteamVR
|
||||
overlay-is_mirrored_label = Pokaż Overlay jako Lustro
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = Brak Statusu
|
||||
tracker-status-busy = Zajęty
|
||||
tracker-status-error = Error
|
||||
tracker-status-disconnected = Rozłączono
|
||||
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
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-rotation = Rotacja X/Y/Z
|
||||
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-title = Przydzielanie
|
||||
tracker-settings-assignment_section-description = Do jakiej części ciała jest przydzielony tracker.
|
||||
tracker-settings-assignment_section-edit = Edytuj
|
||||
tracker-settings-mounting_section-title = Położenie Trackera
|
||||
tracker-settings-mounting_section-description = Gdzie jest Tracker zamontowany?
|
||||
tracker-settings-mounting_section-edit = Edytuj
|
||||
tracker-settings-name_section-title = Nazwa Trackera
|
||||
tracker-settings-name_section-description = Daj mu słodką nazwę :)
|
||||
tracker-settings-name_section-input_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-title = 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
|
||||
body_assignment_menu-manage_trackers = Zarządzaj wszystkimi trackerami
|
||||
body_assignment_menu-unassign_tracker = Usuń przydzielenie
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = Który tracker ustawić na { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = Nieprzydzielone trackery
|
||||
tracker_selection_menu-assigned = Przydzielone trackery
|
||||
tracker_selection_menu-dont_assign = Nie przydzielaj
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 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-interface = Interfejs
|
||||
settings-sidebar-utils = Narzędzia
|
||||
settings-sidebar-serial = Konsola Seryjna
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR trackers
|
||||
settings-general-steamvr-description-p0 = Włącz lub Wyłącz specyficzne pozycje trackowania.
|
||||
settings-general-steamvr-description-p1 = Przydatne jeżeli chcesz więcej kontroli nad SlimeVR.
|
||||
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
|
||||
settings-general-steamvr-trackers-elbows = Łokcie
|
||||
settings-general-steamvr-trackers-hands = Ręce
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = Tracker mechanics
|
||||
settings-general-tracker_mechanics-subtitle = Filtrowanie
|
||||
settings-general-tracker_mechanics-description-p0 = Wybierz Filtry dla twoich trackerów.
|
||||
settings-general-tracker_mechanics-description-p1 = Przewidywanie przewiduje ruchy a Wygładzanie stara się wygładzić ruchy.
|
||||
settings-general-tracker_mechanics-filtering_type-title = Filtry
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = Brak Filtrów
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = Używa rotacji takimi jakimi są.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Wygładzanie
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = Wygładza ruchy lecz dodaje trochę opóźnienia.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = 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-amount-label = Ilość
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = FK settings
|
||||
settings-general-fk_settings-leg_tweak-title = 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.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Floor clip
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = Skating correction
|
||||
settings-general-fk_settings-arm_fk-title = Arm FK
|
||||
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-title = 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
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = 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-enable = Dotknij 2 razy by wykonać szybki reset
|
||||
settings-general-gesture_control-delay = Opóźnienie
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = Interfejs
|
||||
settings-general-interface-dev_mode-title = Tryb Dewelopera
|
||||
settings-general-interface-dev_mode-description = Ten tryb przydaje się do sprawdzania większej ilości danych.
|
||||
settings-general-interface-dev_mode-label = Tryb Dewelopera
|
||||
settings-general-interface-serial_detection-title = Wykrywanie urządzeń
|
||||
settings-general-interface-serial_detection-description = Ta opcja daje powiadomienia jeżeli serwer wykryje urządzenie które może być trackerem
|
||||
settings-general-interface-serial_detection-label = Wykrywanie urządzeń
|
||||
settings-general-interface-lang-title = Wybierz Język
|
||||
settings-general-interface-lang-description = Zmień podstawowy język jaki chcesz używać
|
||||
settings-general-interface-lang-placeholder = Wybierz Język który będziesz używać
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = Serial Console
|
||||
settings-serial-description-p0 = This is a live information feed for serial communication.
|
||||
settings-serial-description-p1 = 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 VRChat settings
|
||||
settings-osc-vrchat-description-p0 = Change VRChat-specific settings to receive HMD data and send
|
||||
settings-osc-vrchat-description-p1 = trackers data for FBT (works on Quest standalone).
|
||||
settings-osc-vrchat-enable-title = Enable
|
||||
settings-osc-vrchat-enable-description = Toggle the sending and receiving of data
|
||||
settings-osc-vrchat-enable-label = Enable
|
||||
settings-osc-vrchat-network-title = 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
|
||||
settings-osc-vrchat-network-port_in-placeholder = Port in (default: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = Port Out
|
||||
settings-osc-vrchat-network-port_out-placeholder = Port out (default: 9000)
|
||||
settings-osc-vrchat-network-address-title = Network address
|
||||
settings-osc-vrchat-network-address-description = Choose which address to send out data to VRChat (check your wifi settings on your device)
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat ip address
|
||||
settings-osc-vrchat-network-trackers-title = Trackers
|
||||
settings-osc-vrchat-network-trackers-description = Toggle the sending and receiving of data
|
||||
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
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = Cofnij się do początku
|
||||
onboarding-wifi_creds-title = Wpisz dane WiFi
|
||||
onboarding-wifi_creds-description-p0 = Trackery będą używać tej sieci do łączenia się z serwerem
|
||||
onboarding-wifi_creds-description-p1 = proszę używać sieci do której jest się połączonym
|
||||
onboarding-wifi_creds-skip = Pomiń ustawienia WiFi
|
||||
onboarding-wifi_creds-submit = Potwierdź!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Powrót do Konfiguracji Położenia trackerów
|
||||
onboarding-reset_tutorial-title = Zresetuj poradnik
|
||||
onboarding-reset_tutorial-description = Ta funkcja jeszcze nie jest skończona.
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Witamy w SlimeVR
|
||||
onboarding-home-description-p0 = Full-body tracking
|
||||
onboarding-home-description-p1 = dla każdego
|
||||
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ń WiFi
|
||||
onboarding-connect_tracker-title = Połącz trackery
|
||||
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-connecting = Wysyłanie danych WiFi
|
||||
onboarding-connect_tracker-connection_status-connected = Połączono z WiFi
|
||||
onboarding-connect_tracker-connection_status-error = Nie można połączyć z Wifi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = Szukanie Trackerów
|
||||
onboarding-connect_tracker-connection_status-handshake = Połączono z serwerem
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } połączonych trackerów
|
||||
onboarding-connect_tracker-next = Połączyłem już wszystkie trackery
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = Cofnij się do ustawień WiFi
|
||||
onboarding-assign_trackers-title = Przydziel Trackery
|
||||
onboarding-assign_trackers-description = Wybierzmy gdzie idzie jaki tracker. Naciśnij gdzie chcesz go przydzielić
|
||||
onboarding-assign_trackers-assigned = { $assigned } przydzielonych trackerów z { $trackers }
|
||||
onboarding-assign_trackers-advanced = Pokaż zaawansowane ustawienia pozycji
|
||||
onboarding-assign_trackers-next = Przydzieliłem już wszystkie trackery
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = Cofnij się żeby wejść do VR
|
||||
onboarding-manual_mounting-title = Pozycjonowanie Manualne
|
||||
onboarding-manual_mounting-description = Kliknij na każdy tracker i wybierz w jaki sposób są zamontowane
|
||||
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.
|
||||
onboarding-automatic_mounting-manual_mounting = Pozycjonowanie Manualne
|
||||
onboarding-automatic_mounting-next = Następny krok
|
||||
onboarding-automatic_mounting-prev_step = Poprzedni krok
|
||||
onboarding-automatic_mounting-done-title = Rotacja trackerów została skalibrowana.
|
||||
onboarding-automatic_mounting-done-description = Kalibracja skończona!
|
||||
onboarding-automatic_mounting-done-restart = Cofnij się na początek
|
||||
onboarding-automatic_mounting-mounting_reset-title = Kalibracja Pozycji
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Zrób pozycje "na Małysza" z wygiętymi nogami, tułów pochylony do przodu z wygiętymi rękami.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Naciśnij "Zresetuj Położenie" i poczekaj 3 sekundy zanim trackery się zresetują.
|
||||
onboarding-automatic_mounting-preparation-title = Przygotowania
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Stań prosto z rękami wyciągniętymi na bok.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Naciśnij "Reset" i poczekaj 3 sekundy zanim trackery się zresetują.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Załóż trackery
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Aby skalibrować rotacje, użyjemy trackerów które przed chwilą przypisałeś. Załóż wszystkie trackery, będziesz widział który to który na postaci po prawej.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Mam wszystkie trackery założone
|
||||
|
||||
## Tracker manual proportions setup
|
||||
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 = 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
|
||||
onboarding-automatic_proportions-prev_step = Poprzedni krok
|
||||
onboarding-automatic_proportions-put_trackers_on-title = Załóż trackery
|
||||
onboarding-automatic_proportions-put_trackers_on-description = Aby skalibrować proporcje, użyjemy trackerów które przed chwilą przypisałeś. Załóż wszystkie trackery, będziesz widział który to który na postaci po prawej.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Mam wszystkie trackery założone
|
||||
onboarding-automatic_proportions-preparation-title = Przygotowania
|
||||
onboarding-automatic_proportions-preparation-description = Połóż krzesło za sobą w twojej przeszczeni grania. Bądź gotowy do siadania podczas automatycznej kalibracji kości.
|
||||
onboarding-automatic_proportions-preparation-next = Jestem przed krzesłem
|
||||
onboarding-automatic_proportions-start_recording-title = Bądź gotowy żeby się ruszać
|
||||
onboarding-automatic_proportions-start_recording-description = Będziemy teraz nagrywać specyficzne pozycje i ruchy. Będą one pokazane w następnym okienku. Bądź gotowy po naciśnięciu przycisku!
|
||||
onboarding-automatic_proportions-start_recording-next = Uruchom nagrywanie
|
||||
onboarding-automatic_proportions-recording-title = REC
|
||||
onboarding-automatic_proportions-recording-description-p0 = Nagrywanie w toku...
|
||||
onboarding-automatic_proportions-recording-description-p1 = Wykonuj ruchy pokazane niżej:
|
||||
onboarding-automatic_proportions-recording-steps-0 = Zegnij kolana kilka razy.
|
||||
onboarding-automatic_proportions-recording-steps-1 = Usiądź na krześle ,po czym wstań.
|
||||
onboarding-automatic_proportions-recording-steps-2 = Przekręć ciało w lewo ,po czym przechyl się w prawo.
|
||||
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
|
||||
onboarding-automatic_proportions-recording-timer = Pozostały czas { $time } sekundy
|
||||
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
|
||||
onboarding-automatic_proportions-verify_results-processing = Przetwarzanie wyniku
|
||||
onboarding-automatic_proportions-verify_results-redo = Powtórz Nagrywanie
|
||||
onboarding-automatic_proportions-verify_results-confirm = Są Prawidłowe
|
||||
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
|
||||
397
gui/public/i18n/pt-BR/translation.ftl
Normal file
397
gui/public/i18n/pt-BR/translation.ftl
Normal file
@@ -0,0 +1,397 @@
|
||||
## Websocket 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
|
||||
body_part-RIGHT_SHOULDER = Ombro direito
|
||||
body_part-RIGHT_UPPER_ARM = Braço superior direito
|
||||
body_part-RIGHT_LOWER_ARM = Antebraço direito
|
||||
body_part-RIGHT_HAND = Mão Direita
|
||||
body_part-RIGHT_UPPER_LEG = Coxa direita
|
||||
body_part-RIGHT_LOWER_LEG = Canela direita
|
||||
body_part-RIGHT_FOOT = Pé direito
|
||||
body_part-CHEST = Peito
|
||||
body_part-WAIST = Cintura
|
||||
body_part-HIP = Quadril
|
||||
body_part-LEFT_SHOULDER = Ombro esquerdo
|
||||
body_part-LEFT_UPPER_ARM = Braço superior esquerdo
|
||||
body_part-LEFT_LOWER_ARM = Antebraço esquerdo
|
||||
body_part-LEFT_HAND = Mão esquerda
|
||||
body_part-LEFT_UPPER_LEG = Coxa esquerda
|
||||
body_part-LEFT_LOWER_LEG = Canela esquerda
|
||||
body_part-LEFT_FOOT = Pé esquerdo
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = Nada
|
||||
skeleton_bone-HEAD = Deslocamento da Cabeça
|
||||
skeleton_bone-NECK = Tamanho do Pescoço
|
||||
skeleton_bone-TORSO = Tamanho do Torso
|
||||
skeleton_bone-CHEST = Distância do Peito
|
||||
skeleton_bone-WAIST = Distância da Cintura
|
||||
skeleton_bone-HIP_OFFSET = Compensação do Quadril
|
||||
skeleton_bone-HIPS_WIDTH = Largura do Quadril
|
||||
skeleton_bone-LEGS_LENGTH = Tamanho das Perna
|
||||
skeleton_bone-KNEE_HEIGHT = Altura dos Joelhos
|
||||
skeleton_bone-FOOT_LENGTH = Tamanho do Pé
|
||||
skeleton_bone-FOOT_SHIFT = Compensação do Pé
|
||||
skeleton_bone-SKELETON_OFFSET = Compensação do Esqueleto
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = Distância do Controle Z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = Distância do Controle Y
|
||||
skeleton_bone-FOREARM_LENGTH = Distância do Antebraço
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Distância dos Ombros
|
||||
skeleton_bone-SHOULDERS_WIDTH = Largura dos Ombros
|
||||
skeleton_bone-UPPER_ARM_LENGTH = Tamanho do Braço Superior
|
||||
skeleton_bone-ELBOW_OFFSET = Compensação do Cotovelo
|
||||
|
||||
## Tracker reset buttons
|
||||
reset-reset_all = Redefinir todas as proporções
|
||||
reset-full = Reset
|
||||
reset-mounting = Redefinir Mounting
|
||||
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 wifi!
|
||||
serial_detection-new_device-p2 = Selecione o que quer fazer com ele
|
||||
serial_detection-open_wifi = Conectar ao WiFi
|
||||
serial_detection-open_serial = Abrir o Console Serial
|
||||
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
|
||||
navbar-mounting = Calibração de Montagem
|
||||
navbar-onboarding = Assistente de Configuração
|
||||
navbar-settings = Opções
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
bvh-start_recording = Gravar BVH
|
||||
bvh-recording = Gravando...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = Mostrar Overlay na SteamVR
|
||||
overlay-is_mirrored_label = Mostrar Overlay como espelho
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = Sem Status
|
||||
tracker-status-busy = Ocupado
|
||||
tracker-status-error = Erro
|
||||
tracker-status-disconnected = Desconectado
|
||||
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
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-rotation = Rotação X/Y/Z
|
||||
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-title = Atribuição
|
||||
tracker-settings-assignment_section-description = Qual parte do seu corpo o tracker está atribuído para.
|
||||
tracker-settings-assignment_section-edit = Editar atribuição
|
||||
tracker-settings-mounting_section-title = Posição de montagem
|
||||
tracker-settings-mounting_section-description = Aonde o tracker está montado?
|
||||
tracker-settings-mounting_section-edit = Editar montagem
|
||||
tracker-settings-name_section-title = Nome do tracker
|
||||
tracker-settings-name_section-description = Dê um apelido fofo :)
|
||||
tracker-settings-name_section-input_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-title = 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
|
||||
body_assignment_menu-manage_trackers = Arrumar todos os trackers
|
||||
body_assignment_menu-unassign_tracker = Desatribuir tracker
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = Qual tracker atribuir a { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = Trackers não atribuídos
|
||||
tracker_selection_menu-assigned = Trackers atribuídos
|
||||
tracker_selection_menu-dont_assign = Não atribuir
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 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
|
||||
settings-sidebar-fk_settings = Opções de FK
|
||||
settings-sidebar-gesture_control = Controle de Gestos
|
||||
settings-sidebar-interface = Interface
|
||||
settings-sidebar-osc_router = Roteador OSC
|
||||
settings-sidebar-utils = Utilidades
|
||||
settings-sidebar-serial = Console Serial
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = Trackers do SteamVR
|
||||
settings-general-steamvr-description-p0 = Ativar ou desativar partes específicas do tracking.
|
||||
settings-general-steamvr-description-p1 = Útil se você quer mais controle do que o SlimeVR faz.
|
||||
settings-general-steamvr-trackers-waist = Cintura
|
||||
settings-general-steamvr-trackers-chest = Peito
|
||||
settings-general-steamvr-trackers-feet = Pés
|
||||
settings-general-steamvr-trackers-knees = Joelhos
|
||||
settings-general-steamvr-trackers-elbows = Cotovelos
|
||||
settings-general-steamvr-trackers-hands = Mãos
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = Mecânicas do Tracker
|
||||
settings-general-tracker_mechanics-subtitle = Filtros
|
||||
settings-general-tracker_mechanics-description-p0 = Escolha o tipo de filtro para seus trackers.
|
||||
settings-general-tracker_mechanics-description-p1 = Predição prediz movimentação enquanto suavização suaviza o movimento.
|
||||
settings-general-tracker_mechanics-filtering_type-title = Tipo de filtro
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = Sem filtro
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = Utiliza as rotações como registradas. Sem qualquer tipo de filtro.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Suavização
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = Suaviza o movimento porém introduz um pouco de latência.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = 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-amount-label = Quantidade
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = Opções de FK
|
||||
settings-general-fk_settings-leg_tweak-title = 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.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Atravessar o chão
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = Correção de deslize
|
||||
settings-general-fk_settings-leg_tweak-skating_correction_amount = Força da correção de deslize
|
||||
settings-general-fk_settings-arm_fk-title = FK 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-skeleton_settings-title = 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
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Estender pélvis
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Estender joelho
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = Controle de gestos
|
||||
settings-general-gesture_control-subtitle = Dois toques para o reset rápido
|
||||
settings-general-gesture_control-description = Ativa ou desativa os dois toques para o reset rápido. Quando ativado dois toques em qualquer lugar no tracker mais alto do torso irá ativar o reset rápido. Delay é o tempo entre o registro o toque e reset.
|
||||
settings-general-gesture_control-enable = Dois toques para o reset rápido
|
||||
settings-general-gesture_control-delay = Delay
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = Interface
|
||||
settings-general-interface-dev_mode-title = Modo de desenvolvedor
|
||||
settings-general-interface-dev_mode-description = Este modo pode ser útil se precisar de dados específicos ou para interagir com trackers conectados a um nível mais avançado
|
||||
settings-general-interface-dev_mode-label = Modo de desenvolvedor
|
||||
settings-general-interface-serial_detection-title = Detecção de dispositivo serial
|
||||
settings-general-interface-serial_detection-description = Esta opção mostrará um pop-up toda vez que você conectar um novo dispositivo serial que pode ser um tracker. Ajuda a melhorar o processo de configuração de um tracker
|
||||
settings-general-interface-serial_detection-label = Detecção de dispositivo serial
|
||||
settings-general-interface-lang-title = Selecione o idioma
|
||||
settings-general-interface-lang-description = Alterar o idioma padrão que pretende utilizar
|
||||
settings-general-interface-lang-placeholder = Selecione o idioma que vai usar
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = Console Serial
|
||||
settings-serial-description-p0 = Este é um feed de informações ao vivo para comunicação serial.
|
||||
settings-serial-description-p1 = Pode ser útil se você precisar saber se o firmware está tendo problemas.
|
||||
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
|
||||
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-title = Roteador OSC
|
||||
settings-osc-router-description-p0 = Encaminhar mensagens OSC de outro programa.
|
||||
settings-osc-router-description-p1 = Útil para usar outro programa OSC com VRChat, por exemplo.
|
||||
settings-osc-router-enable-title = Ativar
|
||||
settings-osc-router-enable-description = Ligar ou desligar o encaminhamento de mensagens
|
||||
settings-osc-router-enable-label = Ativar
|
||||
settings-osc-router-network-title = Portas de rede
|
||||
settings-osc-router-network-description-p0 = Defina as portas para receber e enviar dados
|
||||
settings-osc-router-network-description-p1 = Esses podem ser as mesmas portas usadas no servidor do SlimeVR
|
||||
settings-osc-router-network-port_in-label = Porta de entrada
|
||||
settings-osc-router-network-port_in-placeholder = Porta de entrada (padrão: 9002)
|
||||
settings-osc-router-network-port_out-label = Porta de saída
|
||||
settings-osc-router-network-port_out-placeholder = Porta de saída (padrão: 9000)
|
||||
settings-osc-router-network-address-title = Endereço de rede
|
||||
settings-osc-router-network-address-description = Defina o endereço para mandar dados
|
||||
settings-osc-router-network-address-placeholder = Endereço IPV4
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = Mudar opções específicas do VRChat para receber e mandar dados do HMD
|
||||
settings-osc-vrchat-description-p1 = dados de trackers para FBT (funciona no Quest standalone).
|
||||
settings-osc-vrchat-enable-title = Ativar
|
||||
settings-osc-vrchat-enable-description = Ligar ou desligar o envio e recebimento de dados
|
||||
settings-osc-vrchat-enable-label = Ativar
|
||||
settings-osc-vrchat-network-title = Portas de rede
|
||||
settings-osc-vrchat-network-description = Defina as portas para receber e enviar dados para o VRChat
|
||||
settings-osc-vrchat-network-port_in-label = Porta de entrada
|
||||
settings-osc-vrchat-network-port_in-placeholder = Porta de entrada (padrão: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = Porta de saída
|
||||
settings-osc-vrchat-network-port_out-placeholder = Porta de saída (padrão: 9000)
|
||||
settings-osc-vrchat-network-address-title = Endereço de rede
|
||||
settings-osc-vrchat-network-address-description = Escolha qual o endereço para enviar dados para o VRChat (verifique as suas opções de wifi no seu dispositivo)
|
||||
settings-osc-vrchat-network-address-placeholder = Endereço de ip do VRChat
|
||||
settings-osc-vrchat-network-trackers-title = Trackers
|
||||
settings-osc-vrchat-network-trackers-description = Ligar ou desligar o envio e recepção de dados.
|
||||
settings-osc-vrchat-network-trackers-chest = Peito
|
||||
settings-osc-vrchat-network-trackers-waist = Cintura
|
||||
settings-osc-vrchat-network-trackers-knees = Joelhos
|
||||
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
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = Voltar para introdução
|
||||
onboarding-wifi_creds-title = Insira as credenciais de WiFi
|
||||
onboarding-wifi_creds-description-p0 = Os Trackers vão usar essas credenciais para conectar à rede sem fio
|
||||
onboarding-wifi_creds-description-p1 = Use as credenciais da rede em que você está atualmente conectado
|
||||
onboarding-wifi_creds-skip = Pular as configurações de WiFi
|
||||
onboarding-wifi_creds-submit = Enviar!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Voltar para a Calibração de Montagem
|
||||
onboarding-reset_tutorial-title = Resetar Tutorial
|
||||
onboarding-reset_tutorial-description = Esse recurso não está concluído, apenas aperte continue
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Bem vindo ao SlimeVR
|
||||
onboarding-home-description-p0 = Trazendo full-body tracking
|
||||
onboarding-home-description-p1 = para todos
|
||||
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 WiFi
|
||||
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-connecting = Enviando credenciais de wifi
|
||||
onboarding-connect_tracker-connection_status-connected = Conectado ao WiFi
|
||||
onboarding-connect_tracker-connection_status-error = Não é possível conectar ao WiFi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = Procurando por trackers
|
||||
onboarding-connect_tracker-connection_status-handshake = Conectado ao servidor
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } tracker(s) conectado(s)
|
||||
onboarding-connect_tracker-next = Eu conectei todos os meus trackers
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = Voltar para as credenciais de WiFi
|
||||
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
|
||||
onboarding-assign_trackers-assigned = { $assigned } de { $trackers } trackers atribuídos
|
||||
onboarding-assign_trackers-advanced = Mostrar locais de atribuição avançados
|
||||
onboarding-assign_trackers-next = Atribui todos os trackers
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = Voltar para entrar no VR
|
||||
onboarding-manual_mounting-title = Montagem Manual
|
||||
onboarding-manual_mounting-description = Clique em cada tracker e selecione de que maneira estão montados
|
||||
onboarding-manual_mounting-auto_mounting = Montagem 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 = Calibração de Montagem
|
||||
onboarding-automatic_mounting-description = Para os trackers do SlimeVR funcionar, nós precisamos atribuir a rotação de montagem dos seus trackers para alinhar com a montagem física de seus trackers.
|
||||
onboarding-automatic_mounting-manual_mounting = Definir manualmente a montagem
|
||||
onboarding-automatic_mounting-next = Próximo passo
|
||||
onboarding-automatic_mounting-prev_step = Passo anterior
|
||||
onboarding-automatic_mounting-done-title = Rotações de montagens calibradas.
|
||||
onboarding-automatic_mounting-done-description = Sua calibração de montagem está completa!
|
||||
onboarding-automatic_mounting-done-restart = Voltar ao início
|
||||
onboarding-automatic_mounting-mounting_reset-title = Reset de Montagem
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Agache-se em uma pose de "esqui" com as pernas dobradas, a parte superior do corpo inclinada para a frente e os braços dobrados.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Pressione o botão "Resetar Montagem" e aguarde 3 segundos antes que as rotações de montagem dos rastreadores sejam redefinidas.
|
||||
onboarding-automatic_mounting-preparation-title = Preparação
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Fique de pé com os braços ao lado do corpo.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Pressione o botão "Reset" e aguarde 3 segundos antes que os rastreadores sejam reiniciados.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Coloque seus trackers
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Para calibrar as rotações de montagem, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver qual é qual na figura na direita.
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Coloquei todos os meus trackers
|
||||
|
||||
## 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 = Calibração 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 calibração vai medir isso para você.
|
||||
onboarding-automatic_proportions-manual = Calibração manual
|
||||
onboarding-automatic_proportions-prev_step = Passo anterior
|
||||
onboarding-automatic_proportions-put_trackers_on-title = Coloque seus trackers
|
||||
onboarding-automatic_proportions-put_trackers_on-description = Para calibrar suas proporções, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver quais são quais na figura à direita.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Coloquei todos os meus trackers
|
||||
onboarding-automatic_proportions-preparation-title = Preparação
|
||||
onboarding-automatic_proportions-preparation-description = Coloque uma cadeira diretamente atrás de você dentro da sua área de jogo(Play space). Esteja preparado para sentar durante a configuração de autobone.
|
||||
onboarding-automatic_proportions-preparation-next = Estou em frente a uma cadeira
|
||||
onboarding-automatic_proportions-start_recording-title = Esteja preparado para se mexer
|
||||
onboarding-automatic_proportions-start_recording-description = Começaremos a gravar algumas poses e movimentos específicos. Estes serão solicitados na próxima tela. Esteja preparado para começar quando o botão for pressionado!
|
||||
onboarding-automatic_proportions-start_recording-next = Começar Gravação
|
||||
onboarding-automatic_proportions-recording-title = GRAVAR
|
||||
onboarding-automatic_proportions-recording-description-p0 = Gravação em progresso...
|
||||
onboarding-automatic_proportions-recording-description-p1 = Faça os movimentos apresentados abaixo:
|
||||
onboarding-automatic_proportions-recording-steps-0 = Dobre os joelhos algumas vezes.
|
||||
onboarding-automatic_proportions-recording-steps-1 = Sente-se na cadeira e se levante.
|
||||
onboarding-automatic_proportions-recording-steps-2 = Gire seu tronco para esquerda, e incline para direita.
|
||||
onboarding-automatic_proportions-recording-steps-3 = Gire seu tronco para direita, e incline para esquerda.
|
||||
onboarding-automatic_proportions-recording-steps-4 = Mexa-se até o tempo terminar.
|
||||
onboarding-automatic_proportions-recording-processing = Processando o resultado
|
||||
onboarding-automatic_proportions-recording-timer = { $time } segundo(s) restante(s)
|
||||
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
|
||||
onboarding-automatic_proportions-verify_results-processing = Processando o resultado
|
||||
onboarding-automatic_proportions-verify_results-redo = Refazer a gravação
|
||||
onboarding-automatic_proportions-verify_results-confirm = Eles estão corretos
|
||||
onboarding-automatic_proportions-done-title = Corpo medido e salvo.
|
||||
onboarding-automatic_proportions-done-description = Sua calibração de proporção de corpo está completa!
|
||||
|
||||
## Home
|
||||
home-no_trackers = Nenhum tracker detectado ou atribuído
|
||||
375
gui/public/i18n/vi/translation.ftl
Normal file
375
gui/public/i18n/vi/translation.ftl
Normal file
@@ -0,0 +1,375 @@
|
||||
## Websocket 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? Lắc tracker và trong menu sẽ sáng lên.
|
||||
tips-do_not_move_heels = Hãy đảm bảo gót chân không cử động trong khi đo ghi!
|
||||
|
||||
## Body parts
|
||||
body_part-NONE = Chưa liên kết
|
||||
body_part-HEAD = Đầu
|
||||
body_part-NECK = Cổ
|
||||
body_part-RIGHT_SHOULDER = Vai phải
|
||||
body_part-RIGHT_UPPER_ARM = Tay phải trên
|
||||
body_part-RIGHT_LOWER_ARM = Tay phải dưới
|
||||
body_part-RIGHT_HAND = Tay phải
|
||||
body_part-RIGHT_UPPER_LEG = Chân phải trên
|
||||
body_part-RIGHT_LOWER_LEG = chân phải dưới
|
||||
body_part-RIGHT_FOOT = Bàn chân phải
|
||||
body_part-CHEST = Ngực
|
||||
body_part-WAIST = Eo
|
||||
body_part-HIP = Hông
|
||||
body_part-LEFT_SHOULDER = Vai trái
|
||||
body_part-LEFT_UPPER_ARM = Tay trái trên
|
||||
body_part-LEFT_LOWER_ARM = tay trái dưới
|
||||
body_part-LEFT_HAND = Tay trái
|
||||
body_part-LEFT_UPPER_LEG = Chân trái trên
|
||||
body_part-LEFT_LOWER_LEG = Chân trái dưới
|
||||
body_part-LEFT_FOOT = Bàn chân trái
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = Chưa liên kết
|
||||
skeleton_bone-HEAD = Đầu ca
|
||||
skeleton_bone-NECK = Cổ dài
|
||||
skeleton_bone-TORSO = Chiều dài thân
|
||||
skeleton_bone-CHEST = Khoảng cách ngực
|
||||
skeleton_bone-WAIST = Khoảng cách eo
|
||||
skeleton_bone-HIP_OFFSET = Lệc đo hông
|
||||
skeleton_bone-HIPS_WIDTH = Chiều rộng hông
|
||||
skeleton_bone-LEGS_LENGTH = Chiều dài chân
|
||||
skeleton_bone-KNEE_HEIGHT = Chiều cao đầu gối
|
||||
skeleton_bone-FOOT_LENGTH = CHiều dài bàn chân
|
||||
skeleton_bone-FOOT_SHIFT = Lệch đo bàn chân
|
||||
skeleton_bone-SKELETON_OFFSET = Lệch đo thân
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = Khoảng cách tay cầm Z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = Khoảng cách tay cầm Y
|
||||
skeleton_bone-FOREARM_LENGTH = khoảng cách cánh tay
|
||||
skeleton_bone-SHOULDERS_DISTANCE = Khoảng cách vai
|
||||
skeleton_bone-SHOULDERS_WIDTH = Chiều rộng vai
|
||||
skeleton_bone-UPPER_ARM_LENGTH = Chiều dài tay trên
|
||||
skeleton_bone-ELBOW_OFFSET = Lệch đo khuỷu tay
|
||||
|
||||
## Tracker reset buttons
|
||||
reset-reset_all = Reset tất cả bộ phận
|
||||
reset-full = Reset
|
||||
reset-mounting = Reset vị trí cài
|
||||
reset-quick = Reset nhanh
|
||||
|
||||
## Serial detection stuff
|
||||
serial_detection-new_device-p0 = New serial device detected!
|
||||
serial_detection-new_device-p1 = Vui lòng nhập thông tin Wi-Fi!
|
||||
serial_detection-new_device-p2 = Vui lòng chọn những gì làm với nó
|
||||
serial_detection-open_wifi = Kết nối Wi-Fi
|
||||
serial_detection-open_serial = Mở Serial Console
|
||||
serial_detection-submit = Đăng lên!
|
||||
serial_detection-close = Đóng
|
||||
|
||||
## Navigation bar
|
||||
navbar-home = Giao diện chính
|
||||
navbar-body_proportions = Bộ phận cơ thể
|
||||
navbar-trackers_assign = Giao bộ phận tracker
|
||||
navbar-mounting = Đo vị trí đặt
|
||||
navbar-onboarding = Trình hướng dẫn cài đặt
|
||||
navbar-settings = Cài đặt
|
||||
|
||||
## Bounding volume hierarchy recording
|
||||
bvh-start_recording = Ghi BVH
|
||||
bvh-recording = Đang ghi...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = Xem overlay trên SteamVR
|
||||
overlay-is_mirrored_label = Xem overlay trong gương
|
||||
|
||||
## Tracker status
|
||||
tracker-status-none = Không có tình trạng
|
||||
tracker-status-busy = Bận
|
||||
tracker-status-error = Lỗi
|
||||
tracker-status-disconnected = Đã ngắt kết nối
|
||||
tracker-status-occluded = Bị tắc
|
||||
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
|
||||
tracker-table-column-ping = Ping
|
||||
tracker-table-column-rotation = Chiều chuyển X/Y/Z
|
||||
tracker-table-column-position = Vị trí X/Y/Z
|
||||
tracker-table-column-url = URL
|
||||
|
||||
## Tracker rotation
|
||||
tracker-rotation-front = Đằng trước
|
||||
tracker-rotation-left = Bên trái
|
||||
tracker-rotation-right = Bên phải
|
||||
tracker-rotation-back = Đằng sau
|
||||
|
||||
## Tracker information
|
||||
tracker-infos-manufacturer = Nhà sản xuất
|
||||
tracker-infos-display_name = Tên gọi
|
||||
tracker-infos-custom_name = Tên tự chọn
|
||||
tracker-infos-url = URL
|
||||
|
||||
## Tracker settings
|
||||
tracker-settings-back = Quay lại danh sách tracker
|
||||
tracker-settings-title = Cài đặt tracker
|
||||
tracker-settings-assignment_section-title = Giao bộ phận
|
||||
tracker-settings-assignment_section-description = Thiết bị này được giao cho bộ phận nào.
|
||||
tracker-settings-assignment_section-edit = Chỉnh lại giao bộ phận
|
||||
tracker-settings-mounting_section-title = Vị trí đặt bộ phận
|
||||
tracker-settings-mounting_section-description = Tracker đặt ở đâu?
|
||||
tracker-settings-mounting_section-edit = Chỉnh lại chỗ đặt
|
||||
tracker-settings-name_section-title = Tên tracker
|
||||
tracker-settings-name_section-description = Hãy cho một tên đẹp :)
|
||||
tracker-settings-name_section-input_placeholder = Menaced's left leg
|
||||
|
||||
## Tracker part card info
|
||||
tracker-part_card-no_name = Không tên
|
||||
tracker-part_card-unassigned = Chưa giao vị trí
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu-title = Bạn muốn giao tracker này cho bộ phận nào?
|
||||
body_assignment_menu-description = Chọn vị trí bạn muốn giao tracker cho. Ngoài ra, bạn có thể quản lí tất cả tracker cùng một lúc thay vì từng cái một.
|
||||
body_assignment_menu-show_advanced_locations = Xem thêm vị trí đặt
|
||||
body_assignment_menu-manage_trackers = Quản lí tất cả tracker
|
||||
body_assignment_menu-unassign_tracker = Tracker chưa giao vị trí
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = Tracker nào để giao cho { $bodyPart }?
|
||||
tracker_selection_menu-unassigned = Chưa giao vị trí
|
||||
tracker_selection_menu-assigned = Đã giao vị trí
|
||||
tracker_selection_menu-dont_assign = Thoát và không giao
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = Bạn muốn giao tracker này ở đâu?
|
||||
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ơ khí tracker
|
||||
settings-sidebar-fk_settings = Cài đặt FK
|
||||
settings-sidebar-interface = Giao diện
|
||||
settings-sidebar-utils = Hữu dụng
|
||||
settings-sidebar-serial = Bảng điều khiển Serial
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR trackers
|
||||
settings-general-steamvr-description-p0 = Bặt hoặc tắt tracker SteamVR.
|
||||
settings-general-steamvr-description-p1 = Hữu dụng nếu bạn muốn điều khiển cách SlimeVR hoạt động.
|
||||
settings-general-steamvr-trackers-waist = Eo
|
||||
settings-general-steamvr-trackers-chest = Ngực
|
||||
settings-general-steamvr-trackers-feet = Bàn chân
|
||||
settings-general-steamvr-trackers-knees = Đầu gối (Chân)
|
||||
settings-general-steamvr-trackers-elbows = Khuỷu tay
|
||||
|
||||
## Tracker mechanics
|
||||
settings-general-tracker_mechanics-title = Cơ khí tracker
|
||||
settings-general-tracker_mechanics-subtitle = Lọc rung
|
||||
settings-general-tracker_mechanics-description-p0 = Chọn kiểu lọc rung cho tracker.
|
||||
settings-general-tracker_mechanics-description-p1 = Dự đoán đoán cử động trong khi lọc rung cử động.
|
||||
settings-general-tracker_mechanics-filtering_type-title = Kiểu lọc
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = Không lọc
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = Để đo chiều chuyển y nguyên. Không sử dụlọclọc.
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = Làm mượt
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = Lọc cử động mượt nhưng tạo ít chậm rễ.
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = Dự đoán
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = Giảm chậm trê và để cử động gọn hơn, nhưng có thể tăng độ rung.
|
||||
settings-general-tracker_mechanics-amount-label = Số luọng
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = Cài đặt FK
|
||||
settings-general-fk_settings-leg_tweak-title = Chỉnh chân
|
||||
settings-general-fk_settings-leg_tweak-description = Chỉnh chân có thể giảm hoặc loại bỏ chân đi xuyên sàn nhà nhưng có thể ảnh hưởng đầu gối. Sửa trượt sửa khi lướt, nhưng giảm độ chính xác ở một số cử động.
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = Xuyên sàn
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = Sửa trượt
|
||||
settings-general-fk_settings-arm_fk-title = Tay FK
|
||||
settings-general-fk_settings-arm_fk-description = Chỉnh cách tay được đo.
|
||||
settings-general-fk_settings-arm_fk-force_arms = Bắt tay từ kính thực tế ảo
|
||||
settings-general-fk_settings-skeleton_settings-title = Cài đặt cơ thể
|
||||
settings-general-fk_settings-skeleton_settings-description = Bật hoặc tắt hình cơ thể. Khuyên nên luôn để bật lựa chọn này.
|
||||
settings-general-fk_settings-skeleton_settings-extended_spine = Xương sống mở rộng
|
||||
settings-general-fk_settings-skeleton_settings-extended_pelvis = Xuong chậu mở rộng
|
||||
settings-general-fk_settings-skeleton_settings-extended_knees = Đầu gối mở rộng
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = Điều khiển cử chỉ
|
||||
settings-general-gesture_control-subtitle = Bấm hai lần để reset nhanh
|
||||
settings-general-gesture_control-description = Bật hoặc tắt reset nhanh. Khi bật bấm hai lần bất cứ đâu trên điểm cao nhất ở thân sẽ kích hoạt reset nhanh. Delay is the time between registering a tap and resetting.
|
||||
settings-general-gesture_control-enable = Bấm hai lần để reset nhanh
|
||||
settings-general-gesture_control-delay = Chậm trễ
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = Giao diện
|
||||
settings-general-interface-dev_mode-title = Chế độ nhà phát triển
|
||||
settings-general-interface-dev_mode-description = Chế độ này có thể hữu dụng nếu như bạn cần thông tin sâu hơn hoặc giao tiếp với tracker nâng cao
|
||||
settings-general-interface-dev_mode-label = Chế độ nhà phát triển
|
||||
settings-general-interface-serial_detection-title = Phát hiện thiết bị Serial
|
||||
settings-general-interface-serial_detection-description = Lựa chọn này sẽ hiển thị thông báo mỗi lần thiết bị Serial mà có thể là tracker.Lựa chọn này có thể giúp quá trình cài đạt tracker
|
||||
settings-general-interface-serial_detection-label = Phát hiện thiết bị Serial
|
||||
settings-general-interface-lang-title = Chọn ngôn ngữ (Change language)
|
||||
settings-general-interface-lang-description = Đổi ngôn ngữ cố định (Change the default language you want to use)
|
||||
settings-general-interface-lang-placeholder = Chọn ngôn ngữ để sử dụng (Select the language to use)
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = Bảng điều khiển serial
|
||||
settings-serial-description-p0 = Đâu là thông tin trực tiếp về giao tiếp với Serial.
|
||||
settings-serial-description-p1 = Hữu dụng nếu muốn biết phần mềm firmware có vấn đề không.
|
||||
settings-serial-connection_lost = Kết nối đến Serial đã mất, đang kết nối lại...
|
||||
settings-serial-reboot = Khởi động lại
|
||||
settings-serial-factory_reset = Khôi phục cài đặt gối
|
||||
settings-serial-get_infos = Lấy thông tin
|
||||
settings-serial-serial_select = Chọn cổng Serial
|
||||
settings-serial-auto_dropdown_item = Tự động
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = Đổi cài đặt dành riêng cho VRChat để nhận thông tin từ kính thực tế ảo và gửi
|
||||
settings-osc-vrchat-description-p1 = thông tin tracker để track toàn thân (Hoạt động trên Quest một mình standalone).
|
||||
settings-osc-vrchat-enable-title = Bật
|
||||
settings-osc-vrchat-enable-description = Chình gửi và nhận thông tin
|
||||
settings-osc-vrchat-enable-label = Bật
|
||||
settings-osc-vrchat-network-title = Cổng mạng
|
||||
settings-osc-vrchat-network-description = Chọn cổng mạng để nghe và gửi thông tin lên VRChat
|
||||
settings-osc-vrchat-network-port_in-label = Cổng vào
|
||||
settings-osc-vrchat-network-port_in-placeholder = Cổng vào (Cố định: 9001)
|
||||
settings-osc-vrchat-network-port_out-label = Cổng ra
|
||||
settings-osc-vrchat-network-port_out-placeholder = Cổng ra (Cố định: 9000)
|
||||
settings-osc-vrchat-network-address-title = Địa chỉ mạng
|
||||
settings-osc-vrchat-network-address-description = Chọn địa chỉ mạng nào để gứi lên VRChat (Hãy kiểm tra cài đặt Wi-Fi trên thiết bị để tìm cái này)
|
||||
settings-osc-vrchat-network-address-placeholder = Địa chỉ IP cho VRChat
|
||||
settings-osc-vrchat-network-trackers-title = Trackers
|
||||
settings-osc-vrchat-network-trackers-description = Chỉnh gửi và nhận thông tin
|
||||
settings-osc-vrchat-network-trackers-chest = Ngực
|
||||
settings-osc-vrchat-network-trackers-waist = Eo
|
||||
settings-osc-vrchat-network-trackers-knees = Đầu gối
|
||||
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 = Đang làm dở (vui lòng quay lại sau update)
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = Quay lại đoạn giới thiệuthiệu
|
||||
onboarding-wifi_creds-title = Bỏ thông tin Wi-Fi ở đây
|
||||
onboarding-wifi_creds-description-p0 = Tracker sẽ sử dụng thông tin sau để kết nối không dây
|
||||
onboarding-wifi_creds-description-p1 = vui lòng bỏ thông tin bạn muốn kết nối
|
||||
onboarding-wifi_creds-skip = Bỏ qua cài đặt Wi-Fi
|
||||
onboarding-wifi_creds-submit = Thiết lập!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = Quay lại đo đạt vị trí
|
||||
onboarding-reset_tutorial-title = Làm lại hướng dẫn
|
||||
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 update
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = Chào mừng đến với SlimeVR!
|
||||
onboarding-home-description-p0 = Đem đến đo toàn thân
|
||||
onboarding-home-description-p1 = tới tất cả
|
||||
onboarding-home-start = Hãy bắt đầu cài đặt!
|
||||
|
||||
## Enter VR part of setup
|
||||
onboarding-enter_vr-back = Quay lại giao bộ phận tracker
|
||||
onboarding-enter_vr-title = Đến giờ lên VR!
|
||||
onboarding-enter_vr-description = Đeo tất cả tracker và lên VR!
|
||||
onboarding-enter_vr-ready = Sẵn sàng!
|
||||
|
||||
## Setup done
|
||||
onboarding-done-title = Bạn đã hoàn thành cài đặt!
|
||||
onboarding-done-description = Hãy tận hưởng đo toàn thân
|
||||
onboarding-done-close = Đóng hướng dẫn
|
||||
|
||||
## Tracker connection setup
|
||||
onboarding-connect_tracker-back = Quay lại tra thông tin Wi-Fi
|
||||
onboarding-connect_tracker-title = Kết nối tracker
|
||||
onboarding-connect_tracker-description-p0 = Đến giờ đoạn hay nhất, kết nối tất cả tracker!
|
||||
onboarding-connect_tracker-description-p1 = Đơn thuần kết nối tất cả tracker chưa kết nối, qua cổng USB
|
||||
onboarding-connect_tracker-issue-serial = Mình có vấn đề kết nối!
|
||||
onboarding-connect_tracker-usb = USB Tracker
|
||||
onboarding-connect_tracker-connection_status-connecting = Đang gửi thông tin Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-connected = Đã kết nối Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-error = Không thể kết nối Wi-Fi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = Đang tìm tracker
|
||||
onboarding-connect_tracker-connection_status-handshake = Đã kết nối với máy chủ
|
||||
onboarding-connect_tracker-connected_trackers = { $amount } tracker đã kết nối
|
||||
onboarding-connect_tracker-next = Tôi đã kết nối tất cả tracker
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = Quay lại tra thông tin Wi-Fi
|
||||
onboarding-assign_trackers-title = Giao tracker
|
||||
onboarding-assign_trackers-description = Hãy chọn tracker nào nằm ở đâu. Chọn vị trí bạn muốn giao tracker cho
|
||||
onboarding-assign_trackers-assigned = { $assigned } trong { $trackers } tracker đã được giao
|
||||
onboarding-assign_trackers-advanced = Xem vị trí mở rộng
|
||||
onboarding-assign_trackers-next = Hoàn thành
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = Quay lại đến vào VR
|
||||
onboarding-manual_mounting-title = Đặt thủ công
|
||||
onboarding-manual_mounting-description = Bấm từng tracker một và chọn xem nó được gắn theo chiều nào
|
||||
onboarding-manual_mounting-auto_mounting = Gắn tự động
|
||||
onboarding-manual_mounting-next = Bước tiếp theo
|
||||
|
||||
## Tracker automatic mounting setup
|
||||
onboarding-automatic_mounting-back = Quay lại đến vào VR
|
||||
onboarding-automatic_mounting-title = Đo vị trí đặt
|
||||
onboarding-automatic_mounting-description = Để SlimeVR hoạt động, bạn cần đạt chiều hướng quay của tracker để khớp với điểm đặt tracker trên cơ thể
|
||||
onboarding-automatic_mounting-manual_mounting = Đặt vị trí thủ công
|
||||
onboarding-automatic_mounting-next = Bước tiếp theo
|
||||
onboarding-automatic_mounting-prev_step = Bước trước
|
||||
onboarding-automatic_mounting-done-title = Hướng quay đã được đo.
|
||||
onboarding-automatic_mounting-done-description = Cài đặt vị trí đã hoàn thành!
|
||||
onboarding-automatic_mounting-done-restart = Quay lại bắt đầu
|
||||
onboarding-automatic_mounting-mounting_reset-title = Reset vị trí
|
||||
onboarding-automatic_mounting-mounting_reset-step-0 = 1. Ngồi xổm trong tư thế "skiing" với hai chân cong, thân trên nghiêng về phía trước và hai cánh tay cong.
|
||||
onboarding-automatic_mounting-mounting_reset-step-1 = 2. Nhấn nút "Reset Mounting" và đợi trong 3 giây trước khi các vòng quay giá đỡ của thiết bị theo dõi sẽ được đặt lại.
|
||||
onboarding-automatic_mounting-preparation-title = Chuẩn bị
|
||||
onboarding-automatic_mounting-preparation-step-0 = 1. Đứng thẳng với hai cánh tay sang hai bên.
|
||||
onboarding-automatic_mounting-preparation-step-1 = 2. Nhấn nút "Reset" và đợi trong 3 giây trước khi trình theo dõi sẽ đặt lại.
|
||||
onboarding-automatic_mounting-put_trackers_on-title = Hãy đeo tracker lên người
|
||||
onboarding-automatic_mounting-put_trackers_on-description = Để đo chiều quay của tracker, phần mềm sẽ sử dụng tracker mà bạn đã giao cho. Hãy đeo lên tất cả tracker, và xem cái nào là cái nào trên hình bên phải
|
||||
onboarding-automatic_mounting-put_trackers_on-next = Hoàn thành (Gắn xong)
|
||||
|
||||
## Tracker manual proportions setup
|
||||
onboarding-manual_proportions-back = Quay lại hướng dẫn reset
|
||||
onboarding-manual_proportions-title = Cài bộ phận cơ thể thủ công
|
||||
onboarding-manual_proportions-precision = Chỉnh độ chính xác
|
||||
onboarding-manual_proportions-auto = Đo cơ thể tự động
|
||||
|
||||
## Tracker automatic proportions setup
|
||||
onboarding-automatic_proportions-back = Quay lại hướng dẫn reset
|
||||
onboarding-automatic_proportions-title = Đo cơ thể
|
||||
onboarding-automatic_proportions-description = Để SlimeVR hoạt động, phần mềm cần biết chiều dài của thân. Bước đo tự động này sẽ giúp bạn.
|
||||
onboarding-automatic_proportions-manual = Đo thủ công
|
||||
onboarding-automatic_proportions-prev_step = Bước trước
|
||||
onboarding-automatic_proportions-put_trackers_on-title = Đeo tất cả
|
||||
onboarding-automatic_proportions-put_trackers_on-description = Để đo bộ phận, phần mềm sẽ sử dụng tracker mà bạn đã giao cho. Hãy đeo lên tất cả tracker, và xem cái nào là cái nào trên hình bên phải.
|
||||
onboarding-automatic_proportions-put_trackers_on-next = Hoàn thành (Gắn xong)
|
||||
onboarding-automatic_proportions-preparation-title = Chuẩn bị
|
||||
onboarding-automatic_proportions-preparation-description = Đặt ghế đằng sau bạn thẳng trong khu vực chơi VR. Hãy chuẩn bị ngồi trong khi cài đặt đo thân tự động.
|
||||
onboarding-automatic_proportions-preparation-next = Tôi đang đứng trước ghế ngồi
|
||||
onboarding-automatic_proportions-start_recording-title = Chuẩn bị cử động
|
||||
onboarding-automatic_proportions-start_recording-description = Phần mềm sẽ ghi một số củ động cử chỉ. Bước này sẽ bắt đầu ở màn hình tiếp theo. Hãy chuẩn bị khi bấm bắt đầu
|
||||
onboarding-automatic_proportions-start_recording-next = Bắt đầu quay
|
||||
onboarding-automatic_proportions-recording-title = Quay
|
||||
onboarding-automatic_proportions-recording-description-p0 = Đang quay...
|
||||
onboarding-automatic_proportions-recording-description-p1 = Hãy cử động theo hướng dẫn sau:
|
||||
onboarding-automatic_proportions-recording-steps-0 = Cong đầu gối vài lần.
|
||||
onboarding-automatic_proportions-recording-steps-1 = Ngồi lên ghế rồi đứng lên.
|
||||
onboarding-automatic_proportions-recording-steps-2 = Vặn thân trên sang trái, sau đó uốn cong sang phải.
|
||||
onboarding-automatic_proportions-recording-steps-3 = Vặn thân trên sang phải, sau đó uốn cong sang trái.
|
||||
onboarding-automatic_proportions-recording-steps-4 = Đảo xung quanh cho đến khi bộ đếm thời gian kết thúc.
|
||||
onboarding-automatic_proportions-recording-processing = Đang xử lí kết quả
|
||||
onboarding-automatic_proportions-recording-timer = Còn { $time } giây
|
||||
onboarding-automatic_proportions-verify_results-title = Xác nhận kết quả
|
||||
onboarding-automatic_proportions-verify_results-description = Kiểm tra kết quả dưới đây, nó có chính xác không?
|
||||
onboarding-automatic_proportions-verify_results-results = Đang ghi kết quả
|
||||
onboarding-automatic_proportions-verify_results-processing = Đang xử lí kết quả
|
||||
onboarding-automatic_proportions-verify_results-redo = Ghi lại
|
||||
onboarding-automatic_proportions-verify_results-confirm = Kết quả này chính xác!
|
||||
onboarding-automatic_proportions-done-title = Thân đã được đo và lưu.
|
||||
onboarding-automatic_proportions-done-description = Quá trình đo thân đã hoàn thành!
|
||||
|
||||
## Home
|
||||
home-no_trackers = Không tracker nào được phát hiện hoặc giao vị trí
|
||||
397
gui/public/i18n/zh/translation.ftl
Normal file
397
gui/public/i18n/zh/translation.ftl
Normal file
@@ -0,0 +1,397 @@
|
||||
## Websocket 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-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 = 左脚
|
||||
|
||||
## Skeleton stuff
|
||||
skeleton_bone-NONE = 无
|
||||
skeleton_bone-HEAD = 头部偏移
|
||||
skeleton_bone-NECK = 颈部长度
|
||||
skeleton_bone-TORSO = 躯干长度
|
||||
skeleton_bone-CHEST = 胸部距离
|
||||
skeleton_bone-WAIST = 腰部距离
|
||||
skeleton_bone-HIP_OFFSET = 髋部偏移
|
||||
skeleton_bone-HIPS_WIDTH = 髋部宽度
|
||||
skeleton_bone-LEGS_LENGTH = 腿部长度
|
||||
skeleton_bone-KNEE_HEIGHT = 膝盖高度
|
||||
skeleton_bone-FOOT_LENGTH = 脚部长度
|
||||
skeleton_bone-FOOT_SHIFT = 脚部偏移
|
||||
skeleton_bone-SKELETON_OFFSET = 骨骼偏移
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Z = 控制器距离 Z
|
||||
skeleton_bone-CONTROLLER_DISTANCE_Y = 控制器距离 Y
|
||||
skeleton_bone-FOREARM_LENGTH = 前臂距离
|
||||
skeleton_bone-SHOULDERS_DISTANCE = 肩膀距离
|
||||
skeleton_bone-SHOULDERS_WIDTH = 肩膀宽度
|
||||
skeleton_bone-UPPER_ARM_LENGTH = 上臂长度
|
||||
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 = 输入你的 WiFi 凭据!
|
||||
serial_detection-new_device-p2 = 请选择你想对它做什么
|
||||
serial_detection-open_wifi = 连接到 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 文件
|
||||
bvh-recording = 录制中...
|
||||
|
||||
## Overlay settings
|
||||
overlay-is_visible_label = 在 SteamVR 中显示覆盖层
|
||||
overlay-is_mirrored_label = 镜像显示覆盖层
|
||||
|
||||
## 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-rotation = 旋转 X/Y/Z
|
||||
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-title = 分配追踪器
|
||||
tracker-settings-assignment_section-description = 该追踪器要被分配到身体的哪个部位?
|
||||
tracker-settings-assignment_section-edit = 编辑分配
|
||||
tracker-settings-mounting_section-title = 佩戴位置
|
||||
tracker-settings-mounting_section-description = 该追踪器被佩戴在哪里?
|
||||
tracker-settings-mounting_section-edit = 编辑佩戴
|
||||
tracker-settings-name_section-title = 追踪器名称
|
||||
tracker-settings-name_section-description = 给它起一个可爱的名字吧=w=~
|
||||
tracker-settings-name_section-input_placeholder = CC 封印着漆黑之力的漆黑左臂
|
||||
|
||||
## Tracker part card info
|
||||
tracker-part_card-no_name = 未命名
|
||||
tracker-part_card-unassigned = 未分配
|
||||
|
||||
## Body assignment menu
|
||||
body_assignment_menu-title = 你想把追踪器放在哪里?
|
||||
body_assignment_menu-description = 选择要将此追踪器分配到的位置,或者你也可以选择一次管理所有追踪器,而不是逐个管理。
|
||||
body_assignment_menu-show_advanced_locations = 显示高级分配位置
|
||||
body_assignment_menu-manage_trackers = 管理所有追踪器
|
||||
body_assignment_menu-unassign_tracker = 取消分配追踪器
|
||||
|
||||
## Tracker assignment menu
|
||||
tracker_selection_menu-title = 要将哪个追踪器分配给 { $bodypart }?
|
||||
tracker_selection_menu-unassigned = 未分配的追踪器
|
||||
tracker_selection_menu-assigned = 已分配的追踪器
|
||||
tracker_selection_menu-dont_assign = 不分配
|
||||
|
||||
## Mounting menu
|
||||
mounting_selection_menu-title = 你想把追踪器放在哪里?
|
||||
mounting_selection_menu-close = 关闭
|
||||
|
||||
## Sidebar settings
|
||||
settings-sidebar-title = 设置
|
||||
settings-sidebar-general = 通用设置
|
||||
settings-sidebar-tracker_mechanics = 追踪器设置
|
||||
settings-sidebar-fk_settings = FK 设置
|
||||
settings-sidebar-gesture_control = 手势控制
|
||||
settings-sidebar-interface = 交互界面
|
||||
settings-sidebar-osc_router = OSC 路由
|
||||
settings-sidebar-utils = 工具
|
||||
settings-sidebar-serial = 串行控制器
|
||||
|
||||
## SteamVR settings
|
||||
settings-general-steamvr-title = SteamVR
|
||||
settings-general-steamvr-subtitle = SteamVR 追踪器
|
||||
settings-general-steamvr-description-p0 = 启用或禁用特定的追踪器
|
||||
settings-general-steamvr-description-p1 = 对于只支持特定追踪器的应用会很有用。
|
||||
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-title = 追踪器设置
|
||||
settings-general-tracker_mechanics-subtitle = 滤波
|
||||
settings-general-tracker_mechanics-description-p0 = 选择追踪器的滤波类型。
|
||||
settings-general-tracker_mechanics-description-p1 = 预测型将会对你的运动加以预测,而平滑型将会让你的运动更加平滑。
|
||||
settings-general-tracker_mechanics-filtering_type-title = 滤波类型
|
||||
settings-general-tracker_mechanics-filtering_type-none-label = 无滤波
|
||||
settings-general-tracker_mechanics-filtering_type-none-description = 使用原始数据,不会进行任何过滤。
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-label = 平滑型
|
||||
settings-general-tracker_mechanics-filtering_type-smoothing-description = 让运动更加平滑,但会增加一些延迟。
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-label = 预测型
|
||||
settings-general-tracker_mechanics-filtering_type-prediction-description = 减少延迟并使移动更敏捷,但可能会增加一些抖动。
|
||||
settings-general-tracker_mechanics-amount-label = 滤波强度
|
||||
|
||||
## FK settings
|
||||
settings-general-fk_settings-title = FK 设置
|
||||
settings-general-fk_settings-leg_tweak-title = 腿部调整
|
||||
settings-general-fk_settings-leg_tweak-description = 本设置可以减少甚至消除脚部穿入地板的情况,但是当你跪在地上的时候可能产生一些问题. 脚滑矫正可以矫正一些脚滑溜冰的问题, 但是可能会降低某些动作的准确性。
|
||||
settings-general-fk_settings-leg_tweak-floor_clip = 地板限制
|
||||
settings-general-fk_settings-leg_tweak-skating_correction = 脚滑矫正
|
||||
settings-general-fk_settings-leg_tweak-skating_correction_amount = 脚滑矫正数值
|
||||
settings-general-fk_settings-arm_fk-title = 手臂 FK
|
||||
settings-general-fk_settings-arm_fk-description = 更改手臂的追踪方式。
|
||||
settings-general-fk_settings-arm_fk-force_arms = 强制从头显获得数据
|
||||
settings-general-fk_settings-skeleton_settings-title = 骨架设置
|
||||
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 = 膝盖延伸
|
||||
|
||||
## Gesture control settings (tracker tapping)
|
||||
settings-general-gesture_control-title = 手势控制
|
||||
settings-general-gesture_control-subtitle = 双击快速重置
|
||||
settings-general-gesture_control-description = 启用或禁用双击快速重置。启用时,双击身上佩戴的最高的追踪器上的任何位置将激活快速重置。延迟是指记录到敲击和重置之间的时间。
|
||||
settings-general-gesture_control-enable = 双击快速重置
|
||||
settings-general-gesture_control-delay = 延迟
|
||||
|
||||
## Interface settings
|
||||
settings-general-interface-title = 交互界面
|
||||
settings-general-interface-dev_mode-title = 开发者模式
|
||||
settings-general-interface-dev_mode-description = 如果你需要深入的数据或更深入地与连接的追踪器进行交互,打开此模式将会非常有用。
|
||||
settings-general-interface-dev_mode-label = 开发者模式
|
||||
settings-general-interface-serial_detection-title = 串口设备检测
|
||||
settings-general-interface-serial_detection-description = 每次插入可能是追踪器的新串口设备时,此选项都会显示一个弹出窗口。这有助于改进追踪器的设置过程。
|
||||
settings-general-interface-serial_detection-label = 串口设备检测
|
||||
settings-general-interface-lang-title = 选择语言
|
||||
settings-general-interface-lang-description = 更改要使用的默认语言
|
||||
settings-general-interface-lang-placeholder = 选择要使用的语言
|
||||
|
||||
## Serial settings
|
||||
settings-serial-title = 串口控制台
|
||||
settings-serial-description-p0 = 这是用于串口通信的实时信息馈送。
|
||||
settings-serial-description-p1 = 如果你需要了解固件是否出现问题,这将会很有用。
|
||||
settings-serial-connection_lost = 串口连接丢失,正在重新连接..
|
||||
settings-serial-reboot = 重新启动
|
||||
settings-serial-factory_reset = 恢复出厂设置
|
||||
settings-serial-get_infos = 获取信息
|
||||
settings-serial-serial_select = 选择串行端口
|
||||
settings-serial-auto_dropdown_item = 自动
|
||||
|
||||
## OSC router settings
|
||||
settings-osc-router-title = OSC 路由
|
||||
settings-osc-router-description-p0 = 从另一个程序转发 OSC 信息。
|
||||
settings-osc-router-description-p1 = 在使用另一个 VRChat 的 OSC 程序时会很有用。
|
||||
settings-osc-router-enable-title = 启用
|
||||
settings-osc-router-enable-description = 控制信息转发功能的开关。
|
||||
settings-osc-router-enable-label = 启用
|
||||
settings-osc-router-network-title = 网络端口
|
||||
settings-osc-router-network-description-p0 = 设置用于监听和向 VRChat 发送数据的端口
|
||||
settings-osc-router-network-description-p1 = 这些端口可以与 SlimeVR 服务器中使用的其他端口相同。
|
||||
settings-osc-router-network-port_in-label = 输入端口
|
||||
settings-osc-router-network-port_in-placeholder = 输入端口(默认 9002)
|
||||
settings-osc-router-network-port_out-label = 输出端口
|
||||
settings-osc-router-network-port_out-placeholder = 输出端口(默认 9000)
|
||||
settings-osc-router-network-address-title = 网络地址
|
||||
settings-osc-router-network-address-description = 设置用来发送数据的地址。
|
||||
settings-osc-router-network-address-placeholder = IPV4 地址
|
||||
|
||||
## OSC VRChat settings
|
||||
settings-osc-vrchat-description-p0 = 改变 VRChat 的特定设置以接收和发送头显数据。
|
||||
settings-osc-vrchat-description-p1 = 用于全身追踪的追踪器数据(在 Quest 端生效)。
|
||||
settings-osc-vrchat-enable-title = 启用
|
||||
settings-osc-vrchat-enable-description = 切换数据的发送和接收
|
||||
settings-osc-vrchat-enable-label = 启用
|
||||
settings-osc-vrchat-network-title = 网络端口
|
||||
settings-osc-vrchat-network-description = 设置用于监听和向 VRChat 发送数据的端口
|
||||
settings-osc-vrchat-network-port_in-label = 输入端口
|
||||
settings-osc-vrchat-network-port_in-placeholder = 输入端口(默认 9001)
|
||||
settings-osc-vrchat-network-port_out-label = 输出端口
|
||||
settings-osc-vrchat-network-port_out-placeholder = 输出端口(默认 9000)
|
||||
settings-osc-vrchat-network-address-title = 网络地址
|
||||
settings-osc-vrchat-network-address-description = 选择将数据发送到 VRChat 的地址(检查设备上的 WiFi 设置)
|
||||
settings-osc-vrchat-network-address-placeholder = VRChat IP 地址
|
||||
settings-osc-vrchat-network-trackers-title = 追踪器
|
||||
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 = 仍在开发中
|
||||
|
||||
## WiFi setup
|
||||
onboarding-wifi_creds-back = 返回简介
|
||||
onboarding-wifi_creds-title = 输入 WiFi 凭据
|
||||
onboarding-wifi_creds-description-p0 = 追踪器将使用这些凭据连接到 WiFi
|
||||
onboarding-wifi_creds-description-p1 = 请使用当前连接到 WiFi 的凭据
|
||||
onboarding-wifi_creds-skip = 跳过 WiFi 设置
|
||||
onboarding-wifi_creds-submit = 提交!
|
||||
|
||||
## Mounting setup
|
||||
onboarding-reset_tutorial-back = 返回到佩戴校准
|
||||
onboarding-reset_tutorial-title = 重置教程
|
||||
onboarding-reset_tutorial-description = 此功能尚未开发完成,请继续就好
|
||||
|
||||
## Setup start
|
||||
onboarding-home-title = 欢迎来到 SlimeVR
|
||||
onboarding-home-description-p0 = 将全身追踪
|
||||
onboarding-home-description-p1 = 带给每一个人
|
||||
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 = 返回到 WiFi 凭据设置
|
||||
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-connecting = 正在发送 WiFi 凭据
|
||||
onboarding-connect_tracker-connection_status-connected = WiFi 已连接
|
||||
onboarding-connect_tracker-connection_status-error = 无法连接到 WiFi
|
||||
onboarding-connect_tracker-connection_status-start_connecting = 寻找追踪器
|
||||
onboarding-connect_tracker-connection_status-handshake = 已连接到服务器
|
||||
onboarding-connect_tracker-connected_trackers = { $Amount } 个追踪器已连接
|
||||
onboarding-connect_tracker-next = 所有的追踪器都连接好了
|
||||
|
||||
## Tracker assignment setup
|
||||
onboarding-assign_trackers-back = 返回 WiFi 凭据设置
|
||||
onboarding-assign_trackers-title = 分配追踪器
|
||||
onboarding-assign_trackers-description = 让我们选择哪个追踪器在哪里。单击要放置追踪器的部位
|
||||
onboarding-assign_trackers-assigned = { $assigned } / { $trackers } 个已分配的追踪器
|
||||
onboarding-assign_trackers-advanced = 显示高级分配部位
|
||||
onboarding-assign_trackers-next = 所有的追踪器都分配好了
|
||||
|
||||
## Tracker manual mounting setup
|
||||
onboarding-manual_mounting-back = 返回到进入 VR
|
||||
onboarding-manual_mounting-title = 手动佩戴
|
||||
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 = 正在处理结果
|
||||
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 = 未检测到或未分配追踪器
|
||||
108
gui/scripts/convert-fluent.js
Executable file
108
gui/scripts/convert-fluent.js
Executable file
@@ -0,0 +1,108 @@
|
||||
#!/bin/node
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const fs = require('fs');
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const translation = require('./translation.json');
|
||||
|
||||
const sections = {
|
||||
websocket: 'Websocket status',
|
||||
tips: 'Tips',
|
||||
'body-part': 'Body parts',
|
||||
'skeleton-bone': 'Skeleton stuff',
|
||||
reset: 'Tracker reset buttons',
|
||||
'serial-detection': 'Serial detection stuff',
|
||||
navbar: 'Navigation bar',
|
||||
bvh: 'Bounding volume hierarchy recording',
|
||||
overlay: 'Overlay settings',
|
||||
tracker: {
|
||||
status: 'Tracker status',
|
||||
table: {
|
||||
column: 'Tracker status columns',
|
||||
},
|
||||
rotation: 'Tracker rotation',
|
||||
infos: 'Tracker information',
|
||||
settings: 'Tracker settings',
|
||||
'part-card': 'Tracker part card info',
|
||||
},
|
||||
'body-assignment-menu': 'Body assignment menu',
|
||||
'tracker-selection-menu': 'Tracker assignment menu',
|
||||
'mounting-selection-menu': 'Mounting menu',
|
||||
settings: {
|
||||
sidebar: 'Sidebar settings',
|
||||
general: {
|
||||
steamvr: 'SteamVR settings',
|
||||
'tracker-mechanics': 'Tracker mechanics',
|
||||
'fk-settings': 'FK settings',
|
||||
'gesture-control': 'Gesture control settings (tracker tapping)',
|
||||
interface: 'Interface settings',
|
||||
},
|
||||
serial: 'Serial settings',
|
||||
osc: {
|
||||
router: 'OSC router settings',
|
||||
vrchat: 'OSC VRChat settings',
|
||||
},
|
||||
},
|
||||
onboarding: {
|
||||
default: 'Setup/onboarding menu',
|
||||
'wifi-creds': 'WiFi setup',
|
||||
'reset-tutorial': 'Mounting setup',
|
||||
home: 'Setup start',
|
||||
'enter-vr': 'Enter VR part of setup',
|
||||
done: 'Setup done',
|
||||
'connect-tracker': 'Tracker connection setup',
|
||||
'assign-trackers': 'Tracker assignment setup',
|
||||
'manual-mounting': 'Tracker manual mounting setup',
|
||||
'automatic-mounting': 'Tracker automatic mounting setup',
|
||||
'manual-proportions': 'Tracker manual proportions setup',
|
||||
'automatic-proportions': 'Tracker automatic proportions setup',
|
||||
},
|
||||
home: 'Home',
|
||||
};
|
||||
|
||||
function goTo(obj, property) {
|
||||
const props = property.split('.');
|
||||
if (props.length === 1) {
|
||||
const prop = props.shift();
|
||||
if (typeof obj[prop] === 'string') {
|
||||
return obj[prop];
|
||||
} else if (obj[prop] && obj[prop].default) {
|
||||
return obj[prop].default;
|
||||
}
|
||||
} else {
|
||||
const prop = props.shift();
|
||||
if (obj[prop]) return goTo(obj[prop], props.join('.'));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function recurseObject(obj, prefix = '') {
|
||||
const array = [];
|
||||
let first = false;
|
||||
for (const prop in obj) {
|
||||
if (typeof obj[prop] === 'string') {
|
||||
if (!first) {
|
||||
first = true;
|
||||
const section = goTo(sections, prefix.slice(0, -1).replace(/\0/g, '.'));
|
||||
if (section) {
|
||||
array.push(`\n## ${section}`);
|
||||
}
|
||||
}
|
||||
|
||||
array.push(
|
||||
`${prefix.replace(/-/g, '_').replace(/\0/g, '-')}${prop
|
||||
.replace(/-/g, '_')
|
||||
.replace(/\./g, '-')} = ${obj[prop]
|
||||
.replace(/{{/g, '{ $')
|
||||
.replace(/}}/g, ' }')}`
|
||||
);
|
||||
} else {
|
||||
array.push(...recurseObject(obj[prop], `${prefix}${prop}\0`));
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
fs.writeFileSync(
|
||||
'./translation.ftl',
|
||||
recurseObject(translation).join('\n').trim()
|
||||
);
|
||||
@@ -165,8 +165,8 @@ function App() {
|
||||
<TopBar></TopBar>
|
||||
<div className="flex w-full h-full justify-center items-center p-2">
|
||||
{websocketAPI.isFirstConnection
|
||||
? t('websocket.connecting')
|
||||
: t('websocket.connection-lost')}
|
||||
? t('websocket-connecting')
|
||||
: t('websocket-connection_lost')}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
@@ -26,7 +26,7 @@ export function BVHButton() {
|
||||
|
||||
return (
|
||||
<BigButton
|
||||
text={t(recording ? 'bvh.recording' : 'bvh.start-recording')}
|
||||
text={t(recording ? 'bvh-recording' : 'bvh-start_recording')}
|
||||
icon={<RecordIcon width={20} />}
|
||||
onClick={toggleBVH}
|
||||
></BigButton>
|
||||
|
||||
@@ -63,7 +63,7 @@ export function Navbar() {
|
||||
<div className="flex flex-col px-2 pt-2">
|
||||
<div className="flex flex-col flex-grow gap-2">
|
||||
<NavButton to="/" icon={<CubeIcon></CubeIcon>}>
|
||||
{t('navbar.home')}
|
||||
{t('navbar-home')}
|
||||
</NavButton>
|
||||
<NavButton
|
||||
to="/onboarding/body-proportions/auto"
|
||||
@@ -71,14 +71,14 @@ export function Navbar() {
|
||||
state={{ alonePage: true }}
|
||||
icon={<GearIcon></GearIcon>}
|
||||
>
|
||||
{t('navbar.body-proportions')}
|
||||
{t('navbar-body_proportions')}
|
||||
</NavButton>
|
||||
<NavButton
|
||||
to="/onboarding/trackers-assign"
|
||||
state={{ alonePage: true }}
|
||||
icon={<GearIcon></GearIcon>}
|
||||
>
|
||||
{t('navbar.trackers-assign')}
|
||||
{t('navbar-trackers_assign')}
|
||||
</NavButton>
|
||||
<NavButton
|
||||
to="/onboarding/mounting/auto"
|
||||
@@ -86,10 +86,10 @@ export function Navbar() {
|
||||
state={{ alonePage: true }}
|
||||
icon={<GearIcon></GearIcon>}
|
||||
>
|
||||
{t('navbar.mounting')}
|
||||
{t('navbar-mounting')}
|
||||
</NavButton>
|
||||
<NavButton to="/onboarding/home" icon={<GearIcon></GearIcon>}>
|
||||
{t('navbar.onboarding')}
|
||||
{t('navbar-onboarding')}
|
||||
</NavButton>
|
||||
</div>
|
||||
<NavButton
|
||||
@@ -98,7 +98,7 @@ export function Navbar() {
|
||||
state={{ scrollTo: 'steamvr' }}
|
||||
icon={<GearIcon></GearIcon>}
|
||||
>
|
||||
{t('navbar.settings')}
|
||||
{t('navbar-settings')}
|
||||
</NavButton>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -148,25 +148,25 @@ export function SerialDetectionModal() {
|
||||
<USBIcon></USBIcon>
|
||||
<div className="flex flex-col items-center gap-2">
|
||||
<Typography variant="main-title">
|
||||
{t('serial-detection.new-device.p0')}
|
||||
{t('serial_detection-new_device-p0')}
|
||||
</Typography>
|
||||
<Typography variant="section-title">
|
||||
{isOpen?.name || 'unknown'}
|
||||
</Typography>
|
||||
<Typography variant="standard">
|
||||
{t('serial-detection.new-device.p2')}
|
||||
{t('serial_detection-new_device-p2')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Button variant="primary" onClick={openWifi}>
|
||||
{t('serial-detection.open-wifi')}
|
||||
{t('serial_detection-open_wifi')}
|
||||
</Button>
|
||||
<Button variant="tiertiary" onClick={openSerial}>
|
||||
{t('serial-detection.open-serial')}
|
||||
{t('serial_detection-open_serial')}
|
||||
</Button>
|
||||
<Button variant="secondary" onClick={closeModal}>
|
||||
{t('serial-detection.close')}
|
||||
{t('serial_detection-close')}
|
||||
</Button>
|
||||
</>
|
||||
)}
|
||||
@@ -178,10 +178,10 @@ export function SerialDetectionModal() {
|
||||
<div className="flex flex-col items-center gap-3">
|
||||
<BulbIcon></BulbIcon>
|
||||
<Typography variant="main-title">
|
||||
{t('serial-detection.new-device.p0')}
|
||||
{t('serial_detection-new_device-p0')}
|
||||
</Typography>
|
||||
<Typography variant="standard">
|
||||
{t('serial-detection.new-device.p1')}
|
||||
{t('serial_detection-new_device-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex flex-col gap-3 rounded-xl max-w-sm">
|
||||
@@ -193,10 +193,10 @@ export function SerialDetectionModal() {
|
||||
variant="primary"
|
||||
disabled={!formState.isValid}
|
||||
>
|
||||
{t('serial-detection.submit')}
|
||||
{t('serial_detection-submit')}
|
||||
</Button>
|
||||
<Button variant="secondary" onClick={closeModal}>
|
||||
{t('serial-detection.close')}
|
||||
{t('serial_detection-close')}
|
||||
</Button>
|
||||
</form>
|
||||
)}
|
||||
|
||||
@@ -35,7 +35,7 @@ export function LangSelector({
|
||||
<Dropdown
|
||||
control={control}
|
||||
name="lang"
|
||||
placeholder={t('settings.interface.lang.placeholder')}
|
||||
placeholder={t('settings-interface-lang-placeholder')}
|
||||
items={languagesItems}
|
||||
direction={direction}
|
||||
></Dropdown>
|
||||
|
||||
@@ -22,7 +22,7 @@ export function Home() {
|
||||
<div className="overflow-y-auto flex flex-col gap-2">
|
||||
{trackers.length === 0 && (
|
||||
<div className="flex px-5 pt-5 justify-center">
|
||||
<Typography variant="standard">{t('home.no-trackers')}</Typography>
|
||||
<Typography variant="standard">{t('home-no_trackers')}</Typography>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
@@ -39,13 +39,13 @@ export function ResetButton({
|
||||
const text = useMemo(() => {
|
||||
switch (type) {
|
||||
case ResetType.Quick:
|
||||
return t('reset.quick');
|
||||
return t('reset-quick');
|
||||
case ResetType.Mounting:
|
||||
return t('reset.mounting');
|
||||
return t('reset-mounting');
|
||||
case ResetType.Full:
|
||||
return t('reset.full');
|
||||
return t('reset-full');
|
||||
}
|
||||
return t('reset.full');
|
||||
return t('reset-full');
|
||||
}, [type]);
|
||||
|
||||
const getIcon = () => {
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
OpenSerialRequestT,
|
||||
RpcMessage,
|
||||
SerialUpdateResponseT,
|
||||
SetWifiRequestT
|
||||
SetWifiRequestT,
|
||||
} from 'solarxr-protocol';
|
||||
import { useLayout } from '../../../hooks/layout';
|
||||
import { useOnboarding } from '../../../hooks/onboarding';
|
||||
@@ -29,12 +29,12 @@ type ConnectionStatus =
|
||||
| 'START-CONNECTING';
|
||||
|
||||
const statusLabelMap = {
|
||||
['CONNECTING']: 'onboarding.connect-tracker.connection-status.connecting',
|
||||
['CONNECTED']: 'onboarding.connect-tracker.connection-status.connected',
|
||||
['ERROR']: 'onboarding.connect-tracker.connection-status.error',
|
||||
['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.start-handshake',
|
||||
'onboarding-connect_tracker-connection_status-start_connecting',
|
||||
['HANDSHAKE']: 'onboarding-connect_tracker-connection_status-start_handshake',
|
||||
};
|
||||
|
||||
export function ConnectTrackersPage() {
|
||||
@@ -135,17 +135,17 @@ export function ConnectTrackersPage() {
|
||||
<div className="flex flex-col w-full max-w-sm">
|
||||
{!state.alonePage && (
|
||||
<ArrowLink to="/onboarding/wifi-creds">
|
||||
{t('onboarding.connect-tracker.back')}
|
||||
{t('onboarding-connect_tracker-back')}
|
||||
</ArrowLink>
|
||||
)}
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.connect-tracker.title')}
|
||||
{t('onboarding-connect_tracker-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.connect-tracker.description.p0')}
|
||||
{t('onboarding-connect_tracker-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.connect-tracker.description.p1')}
|
||||
{t('onboarding-connect_tracker-description-p1')}
|
||||
</Typography>
|
||||
<div className="flex flex-col gap-2 py-5">
|
||||
{/* <ArrowLink
|
||||
@@ -161,10 +161,10 @@ export function ConnectTrackersPage() {
|
||||
direction="right"
|
||||
variant={state.alonePage ? 'boxed-2' : 'boxed'}
|
||||
>
|
||||
{t('onboarding.connect-tracker.issue.serial')}
|
||||
{t('onboarding-connect_tracker-issue-serial')}
|
||||
</ArrowLink>
|
||||
</div>
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
|
||||
<div
|
||||
className={classNames(
|
||||
@@ -180,7 +180,7 @@ export function ConnectTrackersPage() {
|
||||
</div>
|
||||
<div className="flex flex-col">
|
||||
<Typography bold>
|
||||
{t('onboarding.connect-tracker.usb')}
|
||||
{t('onboarding-connect_tracker-usb')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t(statusLabelMap[connectionStatus])}
|
||||
@@ -190,7 +190,7 @@ export function ConnectTrackersPage() {
|
||||
</div>
|
||||
<div className="flex flex-col flex-grow">
|
||||
<Typography color="secondary" bold>
|
||||
{t('onboarding.connect-tracker.connected-trackers', {
|
||||
{t('onboarding-connect_tracker-connected_trackers', {
|
||||
amount: connectedTrackers.length,
|
||||
})}
|
||||
</Typography>
|
||||
@@ -237,19 +237,19 @@ export function ConnectTrackersPage() {
|
||||
<div className="flex flex-grow">
|
||||
{!state.alonePage && (
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
{!state.alonePage && (
|
||||
<Button variant="primary" to="/onboarding/trackers-assign">
|
||||
{t('onboarding.connect-tracker.next')}
|
||||
{t('onboarding-connect_tracker-next')}
|
||||
</Button>
|
||||
)}
|
||||
{state.alonePage && (
|
||||
<Button variant="primary" to="/">
|
||||
{t('onboarding.connect-tracker.next')}
|
||||
{t('onboarding-connect_tracker-next')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -15,15 +15,15 @@ export function DonePage() {
|
||||
<div className="flex flex-col gap-5 items-center z-10">
|
||||
<SlimeVRIcon></SlimeVRIcon>
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.done.title')}
|
||||
{t('onboarding-done-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col items-center">
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.done.description')}
|
||||
{t('onboarding-done-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<Button variant="primary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.done.close')}
|
||||
{t('onboarding-done-close')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -17,13 +17,13 @@ export function EnterVRPage() {
|
||||
<div className="flex gap-8">
|
||||
<div className="flex flex-col max-w-md gap-3">
|
||||
<ArrowLink to="/onboarding/trackers-assign" direction="left">
|
||||
{t('onboarding.enter-vr.back')}
|
||||
{t('onboarding-enter_vr-back')}
|
||||
</ArrowLink>
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.enter-vr.title')}
|
||||
{t('onboarding-enter_vr-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.enter-vr.description')}
|
||||
{t('onboarding-enter_vr-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
{/* <div className="flex flex-col flex-grow gap-3 rounded-xl fill-background-50">
|
||||
@@ -34,12 +34,12 @@ export function EnterVRPage() {
|
||||
<div className="w-full py-4 flex flex-row">
|
||||
<div className="flex flex-grow">
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
<Button variant="primary" to="/onboarding/mounting/auto">
|
||||
{t('onboarding.enter-vr.ready')}
|
||||
{t('onboarding-enter_vr-ready')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -17,21 +17,21 @@ export function HomePage() {
|
||||
<div className="flex flex-col gap-5 items-center z-10">
|
||||
<SlimeVRIcon></SlimeVRIcon>
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.home.title')}
|
||||
{t('onboarding-home-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col items-center">
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.home.description.p0')}
|
||||
{t('onboarding-home-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.home.description.p1')}
|
||||
{t('onboarding-home-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<Button variant="primary" to="/onboarding/wifi-creds">
|
||||
{t('onboarding.home.start')}
|
||||
{t('onboarding-home-start')}
|
||||
</Button>
|
||||
<NavLink to="/" onClick={skipSetup}>
|
||||
<Typography color="secondary">{t('onboarding.skip')}</Typography>
|
||||
<Typography color="secondary">{t('onboarding-skip')}</Typography>
|
||||
</NavLink>
|
||||
</div>
|
||||
<div className="absolute right-4 bottom-4 z-50">
|
||||
|
||||
@@ -17,16 +17,16 @@ export function ResetTutorialPage() {
|
||||
<div className="flex gap-8">
|
||||
<div className="flex flex-col max-w-md gap-3">
|
||||
<ArrowLink to="/onboarding/mounting/auto" direction="left">
|
||||
{t('onboarding.reset-tutorial.back')}
|
||||
{t('onboarding-reset_tutorial-back')}
|
||||
</ArrowLink>
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.reset-tutorial.title')}
|
||||
{t('onboarding-reset_tutorial-title')}
|
||||
<span className="mx-2 p-1 bg-accent-background-30 text-standard rounded-md">
|
||||
{t('onboarding.wip')}
|
||||
{t('onboarding-wip')}
|
||||
</span>
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.reset-tutorial.description')}
|
||||
{t('onboarding-reset_tutorial-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,12 +34,12 @@ export function ResetTutorialPage() {
|
||||
<div className="w-full py-4 flex flex-row">
|
||||
<div className="flex flex-grow">
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
<Button variant="primary" to="/onboarding/body-proportions/auto">
|
||||
{t('onboarding.continue')}
|
||||
{t('onboarding-continue')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,16 +20,16 @@ export function WifiCredsPage() {
|
||||
<div className="flex gap-10">
|
||||
<div className="flex flex-col max-w-sm">
|
||||
<ArrowLink to="/onboarding/home" direction="left">
|
||||
{t('onboarding.wifi-creds.back')}
|
||||
{t('onboarding-wifi_creds-back')}
|
||||
</ArrowLink>
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.wifi-creds.title')}
|
||||
{t('onboarding-wifi_creds-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.wifi-creds.description.p0')}
|
||||
{t('onboarding-wifi_creds-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.wifi-creds.description.p1')}
|
||||
{t('onboarding-wifi_creds-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex flex-col bg-background-70 gap-3 p-10 rounded-xl max-w-sm">
|
||||
@@ -40,15 +40,15 @@ export function WifiCredsPage() {
|
||||
<div className="w-full py-4 flex flex-row">
|
||||
<div className="flex flex-grow">
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
<Button variant="secondary" to="/onboarding/trackers-assign">
|
||||
{t('onboarding.wifi-creds.skip')}
|
||||
{t('onboarding-wifi_creds-skip')}
|
||||
</Button>
|
||||
<Button type="submit" variant="primary" disabled={!formState.isValid}>
|
||||
{t('onboarding.wifi-creds.submit')}
|
||||
{t('onboarding-wifi_creds-submit')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { RpcMessage, SkeletonResetAllRequestT } from 'solarxr-protocol';
|
||||
import {
|
||||
AutoboneContextC,
|
||||
useProvideAutobone
|
||||
useProvideAutobone,
|
||||
} from '../../../../hooks/autobone';
|
||||
import { useOnboarding } from '../../../../hooks/onboarding';
|
||||
import { useWebsocketAPI } from '../../../../hooks/websocket-api';
|
||||
@@ -46,15 +46,15 @@ export function AutomaticProportionsPage() {
|
||||
<div className="flex flex-col max-w-lg gap-3">
|
||||
{!state.alonePage && (
|
||||
<ArrowLink to="/onboarding/reset-tutorial" direction="left">
|
||||
{t('onboarding.automatic-proportions.back')}
|
||||
{t('onboarding-automatic_proportions-back')}
|
||||
</ArrowLink>
|
||||
)}
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.automatic-proportions.title')}
|
||||
{t('onboarding-automatic_proportions-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.description')}
|
||||
{t('onboarding-automatic_proportions-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
@@ -76,7 +76,7 @@ export function AutomaticProportionsPage() {
|
||||
<div className="flex flex-grow gap-3">
|
||||
{!state.alonePage && (
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
@@ -84,7 +84,7 @@ export function AutomaticProportionsPage() {
|
||||
onClick={resetAll}
|
||||
disabled={resetDisabled}
|
||||
>
|
||||
{t('reset.reset-all')}
|
||||
{t('reset-reset_all')}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
@@ -93,11 +93,11 @@ export function AutomaticProportionsPage() {
|
||||
state={{ alonePage: state.alonePage }}
|
||||
to="/onboarding/body-proportions/manual"
|
||||
>
|
||||
{t('onboarding.automatic-proportions.manual')}
|
||||
{t('onboarding-automatic_proportions-manual')}
|
||||
</Button>
|
||||
{!state.alonePage && (
|
||||
<Button variant="primary" to="/onboarding/done">
|
||||
{t('onboarding.continue')}
|
||||
{t('onboarding-continue')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
ReactNode,
|
||||
useEffect,
|
||||
useMemo,
|
||||
useState
|
||||
useState,
|
||||
} from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
RpcMessage,
|
||||
SkeletonBone,
|
||||
SkeletonConfigRequestT,
|
||||
SkeletonConfigResponseT
|
||||
SkeletonConfigResponseT,
|
||||
} from 'solarxr-protocol';
|
||||
import { useWebsocketAPI } from '../../../../hooks/websocket-api';
|
||||
import { Typography } from '../../../commons/Typography';
|
||||
@@ -56,7 +56,7 @@ export function BodyProportions({
|
||||
return (
|
||||
config?.skeletonParts.map(({ bone, value }) => ({
|
||||
bone,
|
||||
label: t('skeleton-bone.' + SkeletonBone[bone]),
|
||||
label: t('skeleton_bone-' + SkeletonBone[bone]),
|
||||
value,
|
||||
})) || []
|
||||
);
|
||||
|
||||
@@ -38,15 +38,15 @@ export function ManualProportionsPage() {
|
||||
<div className="flex flex-col">
|
||||
{!state.alonePage && (
|
||||
<ArrowLink to="/onboarding/reset-tutorial" direction="left">
|
||||
{t('onboarding.manual-proportions.back')}
|
||||
{t('onboarding-manual_proportions-back')}
|
||||
</ArrowLink>
|
||||
)}
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.manual-proportions.title')}
|
||||
{t('onboarding-manual_proportions-title')}
|
||||
</Typography>
|
||||
<CheckBox
|
||||
control={control}
|
||||
label={t('onboarding.manual-proportions.precision')}
|
||||
label={t('onboarding-manual_proportions-precision')}
|
||||
name="precise"
|
||||
variant="toggle"
|
||||
></CheckBox>
|
||||
@@ -65,11 +65,11 @@ export function ManualProportionsPage() {
|
||||
<div className="flex flex-grow gap-3">
|
||||
{!state.alonePage && (
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
)}
|
||||
<Button variant="secondary" onClick={resetAll}>
|
||||
{t('reset.reset-all')}
|
||||
{t('reset-reset_all')}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
@@ -78,11 +78,11 @@ export function ManualProportionsPage() {
|
||||
state={{ alonePage: state.alonePage }}
|
||||
to="/onboarding/body-proportions/auto"
|
||||
>
|
||||
{t('onboarding.manual-proportions.auto')}
|
||||
{t('onboarding-manual_proportions-auto')}
|
||||
</Button>
|
||||
{!state.alonePage && (
|
||||
<Button variant="primary" to="/onboarding/done">
|
||||
{t('onboarding.continue')}
|
||||
{t('onboarding-continue')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -6,10 +6,10 @@ export function DoneStep() {
|
||||
<div className="flex flex-col items-center w-full justify-center gap-5">
|
||||
<div className="flex gap-1 flex-col justify-center items-center">
|
||||
<Typography variant="section-title">
|
||||
{t('onboarding.automatic-proportions.done.title')}
|
||||
{t('onboarding-automatic_proportions-done-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.done.description')}
|
||||
{t('onboarding-automatic_proportions-done-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,11 +19,11 @@ export function PreparationStep({
|
||||
<div className="flex flex-col flex-grow">
|
||||
<div className="flex flex-grow flex-col gap-4 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-proportions.preparation.title')}
|
||||
{t('onboarding-automatic_proportions-preparation-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.preparation.description')}
|
||||
{t('onboarding-automatic_proportions-preparation-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,10 +33,10 @@ export function PreparationStep({
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tiertiary'}
|
||||
onClick={prevStep}
|
||||
>
|
||||
{t('onboarding.automatic-proportions.prev-step')}
|
||||
{t('onboarding-automatic_proportions-prev_step')}
|
||||
</Button>
|
||||
<Button variant="primary" onClick={nextStep}>
|
||||
{t('onboarding.automatic-proportions.preparation.next')}
|
||||
{t('onboarding-automatic_proportions-preparation-next')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -14,23 +14,23 @@ export function PutTrackersOnStep({ nextStep }: { nextStep: () => void }) {
|
||||
<div className="flex flex-col flex-grow">
|
||||
<div className="flex flex-grow flex-col gap-4 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-proportions.put-trackers-on.title')}
|
||||
{t('onboarding-automatic_proportions-put_trackers_on-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t(
|
||||
'onboarding.automatic-proportions.put-trackers-on.description'
|
||||
'onboarding-automatic_proportions-put_trackers_on-description'
|
||||
)}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex">
|
||||
<Button variant="primary" onClick={nextStep}>
|
||||
{t('onboarding.automatic-proportions.put-trackers-on.next')}
|
||||
{t('onboarding-automatic_proportions-put_trackers_on-next')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@ export function Recording({ nextStep }: { nextStep: () => void }) {
|
||||
}
|
||||
}, [progress, hasCalibration]);
|
||||
|
||||
console.log(t('onboarding.automatic-proportions.recording.steps'));
|
||||
console.log(t('onboarding-automatic_proportions-recording-steps'));
|
||||
|
||||
return (
|
||||
<div className="flex flex-col items-center w-full justify-between">
|
||||
@@ -23,42 +23,42 @@ export function Recording({ nextStep }: { nextStep: () => void }) {
|
||||
<div className="flex text-status-critical justify-center items-center gap-1">
|
||||
<div className="w-2 h-2 rounded-lg bg-status-critical"></div>
|
||||
<Typography color="text-status-critical">
|
||||
{t('onboarding.automatic-proportions.recording.title')}
|
||||
{t('onboarding-automatic_proportions-recording-title')}
|
||||
</Typography>
|
||||
</div>
|
||||
<Typography variant="section-title">
|
||||
{t('onboarding.automatic-proportions.recording.description.p0')}
|
||||
{t('onboarding-automatic_proportions-recording-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.recording.description.p1')}
|
||||
{t('onboarding-automatic_proportions-recording-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.recording.steps.0')}
|
||||
{t('onboarding-automatic_proportions-recording-steps-0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.recording.steps.1')}
|
||||
{t('onboarding-automatic_proportions-recording-steps-1')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.recording.steps.2')}
|
||||
{t('onboarding-automatic_proportions-recording-steps-2')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.recording.steps.3')}
|
||||
{t('onboarding-automatic_proportions-recording-steps-3')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.recording.steps.4')}
|
||||
{t('onboarding-automatic_proportions-recording-steps-4')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<TipBox>{t('tips.do-not-move-heels')}</TipBox>
|
||||
<TipBox>{t('tips-do_not_move_heels')}</TipBox>
|
||||
</div>
|
||||
<div className="flex flex-col gap-2 items-center w-full max-w-[150px]">
|
||||
<ProgressBar progress={progress} height={2}></ProgressBar>
|
||||
<Typography color="secondary">
|
||||
{!hasCalibration && hasRecording
|
||||
? t('onboarding.automatic-proportions.recording.processing')
|
||||
: t('onboarding.automatic-proportions.recording.timer', {
|
||||
? t('onboarding-automatic_proportions-recording-processing')
|
||||
: t('onboarding-automatic_proportions-recording-timer', {
|
||||
time: 15,
|
||||
})}
|
||||
</Typography>
|
||||
|
||||
@@ -26,17 +26,17 @@ export function StartRecording({
|
||||
<div className="flex flex-col flex-grow">
|
||||
<div className="flex flex-grow flex-col gap-4 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-proportions.start-recording.title')}
|
||||
{t('onboarding-automatic_proportions-start_recording-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t(
|
||||
'onboarding.automatic-proportions.start-recording.description'
|
||||
'onboarding-automatic_proportions-start_recording-description'
|
||||
)}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -45,10 +45,10 @@ export function StartRecording({
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tiertiary'}
|
||||
onClick={prevStep}
|
||||
>
|
||||
{t('onboarding.automatic-proportions.prev-step')}
|
||||
{t('onboarding-automatic_proportions-prev_step')}
|
||||
</Button>
|
||||
<Button variant="primary" onClick={start}>
|
||||
{t('onboarding.automatic-proportions.start-recording.next')}
|
||||
{t('onboarding-automatic_proportions-start_recording-next')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -37,18 +37,18 @@ export function VerifyResultsStep({
|
||||
<div className="flex flex-col flex-grow justify-between gap-1">
|
||||
<div className="flex flex-col gap-1 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-proportions.verify-results.title')}
|
||||
{t('onboarding-automatic_proportions-verify_results-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-proportions.verify-results.description')}
|
||||
{t('onboarding-automatic_proportions-verify_results-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex w-full items-center flex-col">
|
||||
<div className="flex flex-col pt-1 gap-2 justify-center w-full max-w-xs">
|
||||
<Typography bold>
|
||||
{t('onboarding.automatic-proportions.verify-results.results')}
|
||||
{t('onboarding-automatic_proportions-verify_results-results')}
|
||||
</Typography>
|
||||
<div
|
||||
className={classNames(
|
||||
@@ -66,7 +66,7 @@ export function VerifyResultsStep({
|
||||
{!hasCalibration && hasRecording && (
|
||||
<Typography>
|
||||
{t(
|
||||
'onboarding.automatic-proportions.verify-results.processing'
|
||||
'onboarding-automatic-proportions-verify-results-processing'
|
||||
)}
|
||||
</Typography>
|
||||
)}
|
||||
@@ -78,10 +78,10 @@ export function VerifyResultsStep({
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tiertiary'}
|
||||
onClick={redo}
|
||||
>
|
||||
{t('onboarding.automatic-proportions.verify-results.redo')}
|
||||
{t('onboarding-automatic_proportions-verify_results-redo')}
|
||||
</Button>
|
||||
<Button variant="primary" onClick={apply}>
|
||||
{t('onboarding.automatic-proportions.verify-results.confirm')}
|
||||
{t('onboarding-automatic_proportions-verify_results-confirm')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -22,14 +22,14 @@ export function AutomaticMountingPage() {
|
||||
<div className="flex flex-col max-w-lg gap-3">
|
||||
{!state.alonePage && (
|
||||
<ArrowLink to="/onboarding/enter-vr" direction="left">
|
||||
{t('onboarding.automatic-mounting.back')}
|
||||
{t('onboarding-automatic_mounting-back')}
|
||||
</ArrowLink>
|
||||
)}
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.automatic-mounting.title')}
|
||||
{t('onboarding-automatic_mounting-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.description')}
|
||||
{t('onboarding-automatic_mounting-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex">
|
||||
@@ -48,7 +48,7 @@ export function AutomaticMountingPage() {
|
||||
<div className="flex flex-grow gap-3">
|
||||
{!state.alonePage && (
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
@@ -58,11 +58,11 @@ export function AutomaticMountingPage() {
|
||||
state={{ alonePage: state.alonePage }}
|
||||
to="/onboarding/mounting/manual"
|
||||
>
|
||||
{t('onboarding.automatic-mounting.manual-mounting')}
|
||||
{t('onboarding-automatic_mounting-manual_mounting')}
|
||||
</Button>
|
||||
{!state.alonePage && (
|
||||
<Button variant="primary" to="/onboarding/reset-tutorial">
|
||||
{t('onboarding.automatic-mounting.next')}
|
||||
{t('onboarding-automatic_mounting-next')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -68,16 +68,16 @@ export function ManualMountingPage() {
|
||||
<div className="flex flex-col w-full max-w-md gap-3">
|
||||
{!state.alonePage && (
|
||||
<ArrowLink to="/onboarding/enter-vr" direction="left">
|
||||
{t('onboarding.manual-mounting.back')}
|
||||
{t('onboarding-manual_mounting-back')}
|
||||
</ArrowLink>
|
||||
)}
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.manual-mounting.title')}
|
||||
{t('onboarding-manual_mounting-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.manual-mounting.description')}
|
||||
{t('onboarding-manual_mounting-description')}
|
||||
</Typography>
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
</div>
|
||||
<div className="flex flex-col flex-grow gap-3 rounded-xl fill-background-50">
|
||||
<BodyAssignment
|
||||
@@ -92,7 +92,7 @@ export function ManualMountingPage() {
|
||||
<div className="flex flex-grow">
|
||||
{!state.alonePage && (
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
@@ -102,11 +102,11 @@ export function ManualMountingPage() {
|
||||
state={{ alonePage: state.alonePage }}
|
||||
to="/onboarding/mounting/auto"
|
||||
>
|
||||
{t('onboarding.manual-mounting.auto-mounting')}
|
||||
{t('onboarding-manual_mounting-auto_mounting')}
|
||||
</Button>
|
||||
{!state.alonePage && (
|
||||
<Button variant="primary" to="/onboarding/reset-tutorial">
|
||||
{t('onboarding.manual-mounting.next')}
|
||||
{t('onboarding-manual_mounting-next')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -60,7 +60,7 @@ export function MountingSelectionMenu({
|
||||
>
|
||||
<div className="flex w-full h-full flex-col ">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('mounting-selection-menu.title')}
|
||||
{t('mounting_selection_menu-title')}
|
||||
</Typography>
|
||||
<div
|
||||
className="flex w-full flex-col flex-grow items-center gap-3 justify-center"
|
||||
@@ -69,19 +69,19 @@ export function MountingSelectionMenu({
|
||||
>
|
||||
<div className="grid grid-cols-2 grid-rows-2 gap-6 w-full">
|
||||
<MoutingOrientationCard
|
||||
orientation={t('tracker.rotation.left')}
|
||||
orientation={t('tracker-rotation-left')}
|
||||
onClick={() => onDirectionSelected(rotationToQuatMap.LEFT)}
|
||||
/>
|
||||
<MoutingOrientationCard
|
||||
orientation={t('tracker.rotation.right')}
|
||||
orientation={t('tracker-rotation-right')}
|
||||
onClick={() => onDirectionSelected(rotationToQuatMap.RIGHT)}
|
||||
/>
|
||||
<MoutingOrientationCard
|
||||
orientation={t('tracker.rotation.front')}
|
||||
orientation={t('tracker-rotation-front')}
|
||||
onClick={() => onDirectionSelected(rotationToQuatMap.FRONT)}
|
||||
/>
|
||||
<MoutingOrientationCard
|
||||
orientation={t('tracker.rotation.back')}
|
||||
orientation={t('tracker-rotation-back')}
|
||||
onClick={() => onDirectionSelected(rotationToQuatMap.BACK)}
|
||||
/>
|
||||
</div>
|
||||
@@ -94,7 +94,7 @@ export function MountingSelectionMenu({
|
||||
>
|
||||
<div className="flex flex-col justify-end pointer-events-auto">
|
||||
<Button variant="primary" onClick={onClose}>
|
||||
{t('mounting-selection-menu.close')}
|
||||
{t('mounting_selection_menu-close')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -17,10 +17,10 @@ export function DoneStep({
|
||||
<div className="flex flex-col items-center w-full justify-center gap-5">
|
||||
<div className="flex gap-1 flex-col justify-center items-center">
|
||||
<Typography variant="section-title">
|
||||
{t('onboarding.automatic-mounting.done.title')}
|
||||
{t('onboarding-automatic_mounting-done-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.done.description')}
|
||||
{t('onboarding-automatic_mounting-done-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
{/* <Button variant="primary">Continue to next step</Button> */}
|
||||
@@ -30,7 +30,7 @@ export function DoneStep({
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tiertiary'}
|
||||
onClick={resetSteps}
|
||||
>
|
||||
{t('onboarding.automatic-mounting.done.restart')}
|
||||
{t('onboarding-automatic_mounting-done-restart')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,14 +20,14 @@ export function MountingResetStep({
|
||||
<div className="flex flex-col flex-grow">
|
||||
<div className="flex flex-grow flex-col gap-4 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-mounting.mounting-reset.title')}
|
||||
{t('onboarding-automatic_mounting-mounting_reset-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col gap-2">
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.mounting-reset.step.0')}
|
||||
{t('onboarding-automatic_mounting-mounting_reset-step-0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.mounting-reset.step.1')}
|
||||
{t('onboarding-automatic_mounting-mounting_reset-step-1')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
@@ -37,7 +37,7 @@ export function MountingResetStep({
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tiertiary'}
|
||||
onClick={prevStep}
|
||||
>
|
||||
{t('onboarding.automatic-mounting.prev-step')}
|
||||
{t('onboarding-automatic_mounting-prev_step')}
|
||||
</Button>
|
||||
<ResetButton
|
||||
variant="small"
|
||||
|
||||
@@ -20,14 +20,14 @@ export function PreparationStep({
|
||||
<div className="flex flex-col flex-grow">
|
||||
<div className="flex flex-col gap-4 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-mounting.preparation.title')}
|
||||
{t('onboarding-automatic_mounting-preparation-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.preparation.step.0')}
|
||||
{t('onboarding-automatic_mounting-preparation-step-0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.preparation.step.1')}
|
||||
{t('onboarding-automatic_mounting-preparation-step-1')}
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
@@ -38,7 +38,7 @@ export function PreparationStep({
|
||||
variant={variant === 'onboarding' ? 'secondary' : 'tiertiary'}
|
||||
onClick={prevStep}
|
||||
>
|
||||
{t('onboarding.automatic-mounting.prev-step')}
|
||||
{t('onboarding-automatic_mounting-prev_step')}
|
||||
</Button>
|
||||
<ResetButton
|
||||
variant="small"
|
||||
|
||||
@@ -14,21 +14,21 @@ export function PutTrackersOnStep({ nextStep }: { nextStep: () => void }) {
|
||||
<div className="flex flex-col flex-grow">
|
||||
<div className="flex flex-grow flex-col gap-4 max-w-sm">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('onboarding.automatic-mounting.put-trackers-on.title')}
|
||||
{t('onboarding-automatic_mounting-put_trackers_on-title')}
|
||||
</Typography>
|
||||
<div>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.automatic-mounting.put-trackers-on.description')}
|
||||
{t('onboarding-automatic_mounting-put_trackers_on-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex">
|
||||
<Button variant="primary" onClick={nextStep}>
|
||||
{t('onboarding.automatic-mounting.put-trackers-on.next')}
|
||||
{t('onboarding-automatic_mounting-put_trackers_on-next')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
BodyPart,
|
||||
QuatT,
|
||||
RpcMessage,
|
||||
TrackerIdT
|
||||
TrackerIdT,
|
||||
} from 'solarxr-protocol';
|
||||
import { FlatDeviceTracker } from '../../../../hooks/app';
|
||||
import { useOnboarding } from '../../../../hooks/onboarding';
|
||||
@@ -99,27 +99,27 @@ export function TrackersAssignPage() {
|
||||
<div className="flex flex-col max-w-sm gap-3">
|
||||
{!state.alonePage && (
|
||||
<ArrowLink to="/onboarding/wifi-creds" direction="left">
|
||||
{t('onboarding.assign-trackers.back')}
|
||||
{t('onboarding-assign_trackers-back')}
|
||||
</ArrowLink>
|
||||
)}
|
||||
<Typography variant="main-title">
|
||||
{t('onboarding.assign-trackers.title')}
|
||||
{t('onboarding-assign_trackers-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.assign-trackers.description')}
|
||||
{t('onboarding-assign_trackers-description')}
|
||||
</Typography>
|
||||
<div className="flex gap-1">
|
||||
<Typography color="secondary">
|
||||
{t('onboarding.assign-trackers.assigned', {
|
||||
{t('onboarding-assign_trackers-assigned', {
|
||||
assigned: assignedTrackers.length,
|
||||
trackers: trackers.length,
|
||||
})}
|
||||
</Typography>
|
||||
</div>
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
<CheckBox
|
||||
control={control}
|
||||
label={t('onboarding.assign-trackers.advanced')}
|
||||
label={t('onboarding-assign_trackers-advanced')}
|
||||
name="advanced"
|
||||
variant="toggle"
|
||||
></CheckBox>
|
||||
@@ -137,14 +137,14 @@ export function TrackersAssignPage() {
|
||||
<div className="flex flex-grow">
|
||||
{!state.alonePage && (
|
||||
<Button variant="secondary" to="/" onClick={skipSetup}>
|
||||
{t('onboarding.skip')}
|
||||
{t('onboarding-skip')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex gap-3">
|
||||
{!state.alonePage && (
|
||||
<Button variant="primary" to="/onboarding/enter-vr">
|
||||
{t('onboarding.assign-trackers.next')}
|
||||
{t('onboarding-assign_trackers-next')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -48,8 +48,8 @@ export function TrackerSelectionMenu({
|
||||
<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>
|
||||
{t('tracker-selection-menu.title', {
|
||||
bodyPart: t('body-part.' + BodyPart[bodyPart]),
|
||||
{t('tracker_selection_menu-title', {
|
||||
bodyPart: t('body_part-' + BodyPart[bodyPart]),
|
||||
})}
|
||||
</Typography>
|
||||
<div className="relative">
|
||||
@@ -62,7 +62,7 @@ export function TrackerSelectionMenu({
|
||||
{unassignedTrackers.length && (
|
||||
<div className="flex flex-col gap-3">
|
||||
<Typography>
|
||||
{t('tracker-selection-menu.unassigned')}
|
||||
{t('tracker_selection_menu-unassigned')}
|
||||
</Typography>
|
||||
<div className="grid grid-cols-2 gap-3">
|
||||
{unassignedTrackers.map((fd, index) => (
|
||||
@@ -82,7 +82,7 @@ export function TrackerSelectionMenu({
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<Typography>{t('tracker-selection-menu.assigned')}</Typography>
|
||||
<Typography>{t('tracker_selection_menu-assigned')}</Typography>
|
||||
<div className=" grid grid-cols-2 gap-3">
|
||||
{assignedTrackers.map((fd, index) => (
|
||||
<TrackerCard
|
||||
@@ -113,11 +113,11 @@ export function TrackerSelectionMenu({
|
||||
ref={refOptions}
|
||||
>
|
||||
<div className="w-full max-w-sm">
|
||||
<TipBox>{t('tips.find-tracker')}</TipBox>
|
||||
<TipBox>{t('tips-find_tracker')}</TipBox>
|
||||
</div>
|
||||
<div className="flex flex-col justify-end pointer-events-auto">
|
||||
<Button variant="primary" onClick={() => onTrackerSelected(null)}>
|
||||
{t('tracker-selection-menu.dont-assign')}
|
||||
{t('tracker_selection_menu-dont_assign')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -44,27 +44,27 @@ export function SettingsSidebar() {
|
||||
return (
|
||||
<div className="flex flex-col px-5 w-[280px] min-w-[280px] py-5 gap-3 overflow-y-auto bg-background-70 rounded-lg">
|
||||
<Typography variant="main-title">
|
||||
{t('settings.sidebar.title')}
|
||||
{t('settings-sidebar-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col gap-3">
|
||||
<Typography variant="section-title">
|
||||
{t('settings.sidebar.general')}
|
||||
{t('settings-sidebar-general')}
|
||||
</Typography>
|
||||
<div className="flex flex-col gap-2">
|
||||
<SettingsLink to="/settings/trackers" scrollTo="steamvr">
|
||||
SteamVR
|
||||
</SettingsLink>
|
||||
<SettingsLink to="/settings/trackers" scrollTo="mechanics">
|
||||
{t('settings.sidebar.tracker-mechanics')}
|
||||
{t('settings-sidebar-tracker_mechanics')}
|
||||
</SettingsLink>
|
||||
<SettingsLink to="/settings/trackers" scrollTo="fksettings">
|
||||
{t('settings.sidebar.fk-settings')}
|
||||
{t('settings-sidebar-fk_settings')}
|
||||
</SettingsLink>
|
||||
<SettingsLink to="/settings/trackers" scrollTo="gestureControl">
|
||||
{t('settings.sidebar.gesture-control')}
|
||||
{t('settings-sidebar-gesture_control')}
|
||||
</SettingsLink>
|
||||
<SettingsLink to="/settings/trackers" scrollTo="interface">
|
||||
{t('settings.sidebar.interface')}
|
||||
{t('settings-sidebar-interface')}
|
||||
</SettingsLink>
|
||||
</div>
|
||||
</div>
|
||||
@@ -72,7 +72,7 @@ export function SettingsSidebar() {
|
||||
<Typography variant="section-title">OSC</Typography>
|
||||
<div className="flex flex-col gap-2">
|
||||
<SettingsLink to="/settings/osc/router" scrollTo="router">
|
||||
{t('settings.sidebar.osc-router')}
|
||||
{t('settings-sidebar-osc_router')}
|
||||
</SettingsLink>
|
||||
</div>
|
||||
<div className="flex flex-col gap-2">
|
||||
@@ -83,11 +83,11 @@ export function SettingsSidebar() {
|
||||
</div>
|
||||
<div className="flex flex-col gap-3">
|
||||
<Typography variant="section-title">
|
||||
{t('settings.sidebar.utils')}
|
||||
{t('settings-sidebar-utils')}
|
||||
</Typography>
|
||||
<div className="flex flex-col gap-2">
|
||||
<SettingsLink to="/settings/serial">
|
||||
{t('settings.sidebar.serial')}
|
||||
{t('settings-sidebar-serial')}
|
||||
</SettingsLink>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -146,11 +146,15 @@ export function GeneralSettings() {
|
||||
tapDetection.tapResetEnabled = values.tapDetection.tapResetEnabled;
|
||||
tapDetection.tapResetTaps = values.tapDetection.tapResetTaps;
|
||||
tapDetection.tapQuickResetDelay = values.tapDetection.tapQuickResetDelay;
|
||||
tapDetection.tapQuickResetEnabled = values.tapDetection.tapQuickResetEnabled;
|
||||
tapDetection.tapQuickResetEnabled =
|
||||
values.tapDetection.tapQuickResetEnabled;
|
||||
tapDetection.tapQuickResetTaps = values.tapDetection.tapQuickResetTaps;
|
||||
tapDetection.tapMountingResetEnabled = values.tapDetection.tapMountingResetEnabled;
|
||||
tapDetection.tapMountingResetDelay = values.tapDetection.tapMountingResetDelay;
|
||||
tapDetection.tapMountingResetTaps = values.tapDetection.tapMountingResetTaps;
|
||||
tapDetection.tapMountingResetEnabled =
|
||||
values.tapDetection.tapMountingResetEnabled;
|
||||
tapDetection.tapMountingResetDelay =
|
||||
values.tapDetection.tapMountingResetDelay;
|
||||
tapDetection.tapMountingResetTaps =
|
||||
values.tapDetection.tapMountingResetTaps;
|
||||
settings.tapDetectionSettings = tapDetection;
|
||||
|
||||
const filtering = new FilteringSettingsT();
|
||||
@@ -264,15 +268,15 @@ export function GeneralSettings() {
|
||||
<SettingsPageLayout icon={<SteamIcon></SteamIcon>} id="steamvr">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
{t('settings.general.steamvr.title')}
|
||||
{t('settings-general-steamvr-title')}
|
||||
</Typography>
|
||||
<Typography bold>{t('settings.general.steamvr.subtitle')}</Typography>
|
||||
<Typography bold>{t('settings-general-steamvr-subtitle')}</Typography>
|
||||
<div className="flex flex-col py-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.steamvr.description.p0')}
|
||||
{t('settings-general-steamvr-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.steamvr.description.p1')}
|
||||
{t('settings-general-steamvr-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3 pt-3">
|
||||
@@ -281,42 +285,42 @@ export function GeneralSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="trackers.chest"
|
||||
label={t('settings.general.steamvr.trackers.chest')}
|
||||
label={t('settings-general-steamvr-trackers-chest')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="trackers.waist"
|
||||
label={t('settings.general.steamvr.trackers.waist')}
|
||||
label={t('settings-general-steamvr-trackers-waist')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="trackers.knees"
|
||||
label={t('settings.general.steamvr.trackers.knees')}
|
||||
label={t('settings-general-steamvr-trackers-knees')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="trackers.feet"
|
||||
label={t('settings.general.steamvr.trackers.feet')}
|
||||
label={t('settings-general-steamvr-trackers-feet')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="trackers.elbows"
|
||||
label={t('settings.general.steamvr.trackers.elbows')}
|
||||
label={t('settings-general-steamvr-trackers-elbows')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="trackers.hands"
|
||||
label={t('settings.general.steamvr.trackers.hands')}
|
||||
label={t('settings-general-steamvr-trackers-hands')}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
@@ -324,31 +328,31 @@ export function GeneralSettings() {
|
||||
<SettingsPageLayout icon={<WrenchIcon></WrenchIcon>} id="mechanics">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
{t('settings.general.tracker-mechanics.title')}
|
||||
{t('settings-general-tracker_mechanics-title')}
|
||||
</Typography>
|
||||
<Typography bold>
|
||||
{t('settings.general.tracker-mechanics.subtitle')}
|
||||
{t('settings-general-tracker_mechanics-subtitle')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.tracker-mechanics.description.p0')}
|
||||
{t('settings-general-tracker_mechanics-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.tracker-mechanics.description.p1')}
|
||||
{t('settings-general-tracker_mechanics-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<Typography>
|
||||
{t('settings.general.tracker-mechanics.filtering-type.title')}
|
||||
{t('settings-general-tracker_mechanics-filtering_type-title')}
|
||||
</Typography>
|
||||
<div className="flex md:flex-row flex-col gap-3 pt-2">
|
||||
<Radio
|
||||
control={control}
|
||||
name="filtering.type"
|
||||
label={t(
|
||||
'settings.general.tracker-mechanics.filtering-type.none.label'
|
||||
'settings-general-tracker_mechanics-filtering_type-none-label'
|
||||
)}
|
||||
desciption={t(
|
||||
'settings.general.tracker-mechanics.filtering-type.none.description'
|
||||
'settings-general-tracker_mechanics-filtering_type-none-description'
|
||||
)}
|
||||
value={FilteringType.NONE}
|
||||
></Radio>
|
||||
@@ -356,10 +360,10 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="filtering.type"
|
||||
label={t(
|
||||
'settings.general.tracker-mechanics.filtering-type.smoothing.label'
|
||||
'settings-general-tracker_mechanics-filtering_type-smoothing-label'
|
||||
)}
|
||||
desciption={t(
|
||||
'settings.general.tracker-mechanics.filtering-type.smoothing.description'
|
||||
'settings-general-tracker_mechanics-filtering_type-smoothing-description'
|
||||
)}
|
||||
value={FilteringType.SMOOTHING}
|
||||
></Radio>
|
||||
@@ -367,10 +371,10 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="filtering.type"
|
||||
label={t(
|
||||
'settings.general.tracker-mechanics.filtering-type.prediction.label'
|
||||
'settings-general-tracker_mechanics-filtering_type-prediction-label'
|
||||
)}
|
||||
desciption={t(
|
||||
'settings.general.tracker-mechanics.filtering-type.prediction.description'
|
||||
'settings-general-tracker_mechanics-filtering_type-prediction-description'
|
||||
)}
|
||||
value={FilteringType.PREDICTION}
|
||||
></Radio>
|
||||
@@ -379,7 +383,7 @@ export function GeneralSettings() {
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="filtering.amount"
|
||||
label={t('settings.general.tracker-mechanics.amount.label')}
|
||||
label={t('settings-general-tracker_mechanics-amount-label')}
|
||||
valueLabelFormat={(value) => `${Math.round(value * 100)} %`}
|
||||
min={0.1}
|
||||
max={1.0}
|
||||
@@ -391,14 +395,14 @@ export function GeneralSettings() {
|
||||
<SettingsPageLayout icon={<WrenchIcon></WrenchIcon>} id="fksettings">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
{t('settings.general.fk-settings.title')}
|
||||
{t('settings-general-fk_settings-title')}
|
||||
</Typography>
|
||||
<Typography bold>
|
||||
{t('settings.general.fk-settings.leg-tweak.title')}
|
||||
{t('settings-general-fk_settings-leg_tweak-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.fk-settings.leg-tweak.description')}
|
||||
{t('settings-general-fk_settings-leg_tweak-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid sm:grid-cols-2 gap-3 pb-5">
|
||||
@@ -407,7 +411,7 @@ export function GeneralSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="toggles.floorClip"
|
||||
label={t('settings.general.fk-settings.leg-tweak.floor-clip')}
|
||||
label={t('settings-general-fk_settings-leg_tweak-floor_clip')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
@@ -415,7 +419,7 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="toggles.skatingCorrection"
|
||||
label={t(
|
||||
'settings.general.fk-settings.leg-tweak.skating-correction'
|
||||
'settings-general-fk_settings-leg_tweak-skating_correction'
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
@@ -424,7 +428,7 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="legTweaks.correctionStrength"
|
||||
label={t(
|
||||
'settings.general.fk-settings.leg-tweak.skating-correction-amount'
|
||||
'settings-general-fk_settings-leg_tweak-skating_correction_amount'
|
||||
)}
|
||||
valueLabelFormat={(value) => `${Math.round(value * 100)} %`}
|
||||
min={0.1}
|
||||
@@ -434,11 +438,11 @@ export function GeneralSettings() {
|
||||
</div>
|
||||
|
||||
<Typography bold>
|
||||
{t('settings.general.fk-settings.arm-fk.title')}
|
||||
{t('settings-general-fk_settings-arm_fk-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.fk-settings.arm-fk.description')}
|
||||
{t('settings-general-fk_settings-arm_fk-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid sm:grid-cols-2 pb-5">
|
||||
@@ -447,18 +451,18 @@ export function GeneralSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="toggles.forceArmsFromHmd"
|
||||
label={t('settings.general.fk-settings.arm-fk.force-arms')}
|
||||
label={t('settings-general-fk_settings-arm_fk-force_arms')}
|
||||
/>
|
||||
</div>
|
||||
{config?.debug && (
|
||||
<>
|
||||
<Typography bold>
|
||||
{t('settings.general.fk-settings.skeleton-settings.title')}
|
||||
{t('settings-general-fk_settings-skeleton_settings-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t(
|
||||
'settings.general.fk-settings.skeleton-settings.description'
|
||||
'settings-general-fk_settings-skeleton_settings-description'
|
||||
)}
|
||||
</Typography>
|
||||
</div>
|
||||
@@ -469,7 +473,7 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="toggles.extendedSpine"
|
||||
label={t(
|
||||
'settings.general.fk-settings.skeleton-settings.extended-spine'
|
||||
'settings-general-fk_settings-skeleton_settings-extended_spine'
|
||||
)}
|
||||
/>
|
||||
<CheckBox
|
||||
@@ -478,7 +482,7 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="toggles.extendedPelvis"
|
||||
label={t(
|
||||
'settings.general.fk-settings.skeleton-settings.extended-pelvis'
|
||||
'settings-general-fk_settings-skeleton_settings-extended_pelvis'
|
||||
)}
|
||||
/>
|
||||
<CheckBox
|
||||
@@ -487,7 +491,7 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
name="toggles.extendedKnee"
|
||||
label={t(
|
||||
'settings.general.fk-settings.skeleton-settings.extended-knees'
|
||||
'settings-general-fk_settings-skeleton_settings-extended_knees'
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
@@ -499,14 +503,14 @@ export function GeneralSettings() {
|
||||
<SettingsPageLayout icon={<WrenchIcon></WrenchIcon>} id="gestureControl">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
{t('settings.general.gesture-control.title')}
|
||||
{t('settings-general-gesture_control-title')}
|
||||
</Typography>
|
||||
<Typography bold>
|
||||
{t('settings.general.gesture-control.subtitle')}
|
||||
{t('settings-general-gesture_control-subtitle')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.gesture-control.description')}
|
||||
{t('settings-general-gesture_control-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid sm:grid-cols-3 gap-5 pb-2">
|
||||
@@ -515,28 +519,28 @@ export function GeneralSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="tapDetection.tapQuickResetEnabled"
|
||||
label={t('settings.general.gesture-control.quickResetEnabled')}
|
||||
label={t('settings-general-gesture_control-quickResetEnabled')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="tapDetection.tapResetEnabled"
|
||||
label={t('settings.general.gesture-control.resetEnabled')}
|
||||
label={t('settings-general-gesture_control-resetEnabled')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
outlined
|
||||
control={control}
|
||||
name="tapDetection.tapMountingResetEnabled"
|
||||
label={t('settings.general.gesture-control.mountingResetEnabled')}
|
||||
label={t('settings-general-gesture_control-mountingResetEnabled')}
|
||||
/>
|
||||
</div>
|
||||
<div className="grid sm:grid-cols-3 gap-5 pb-2">
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="tapDetection.tapQuickResetDelay"
|
||||
label={t('settings.general.gesture-control.quickResetDelay')}
|
||||
label={t('settings-general-gesture_control-quickResetDelay')}
|
||||
valueLabelFormat={(value) => `${Math.round(value * 10) / 10} s`}
|
||||
min={0.2}
|
||||
max={3.0}
|
||||
@@ -545,7 +549,7 @@ export function GeneralSettings() {
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="tapDetection.tapResetDelay"
|
||||
label={t('settings.general.gesture-control.resetDelay')}
|
||||
label={t('settings-general-gesture_control-resetDelay')}
|
||||
valueLabelFormat={(value) => `${Math.round(value * 10) / 10} s`}
|
||||
min={0.2}
|
||||
max={3.0}
|
||||
@@ -554,7 +558,7 @@ export function GeneralSettings() {
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="tapDetection.tapMountingResetDelay"
|
||||
label={t('settings.general.gesture-control.mountingResetDelay')}
|
||||
label={t('settings-general-gesture_control-mountingResetDelay')}
|
||||
valueLabelFormat={(value) => `${Math.round(value * 10) / 10} s`}
|
||||
min={0.2}
|
||||
max={3.0}
|
||||
@@ -565,10 +569,10 @@ export function GeneralSettings() {
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="tapDetection.tapQuickResetTaps"
|
||||
label={t('settings.general.gesture-control.quickResetTaps')}
|
||||
label={t('settings-general-gesture_control-quickResetTaps')}
|
||||
valueLabelFormat={(value) =>
|
||||
`${Math.round(value)} ${t(
|
||||
'settings.general.gesture-control.taps'
|
||||
'settings-general-gesture_control-taps'
|
||||
)}`
|
||||
}
|
||||
min={2}
|
||||
@@ -578,10 +582,10 @@ export function GeneralSettings() {
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="tapDetection.tapResetTaps"
|
||||
label={t('settings.general.gesture-control.resetTaps')}
|
||||
label={t('settings-general-gesture_control-resetTaps')}
|
||||
valueLabelFormat={(value) =>
|
||||
`${Math.round(value)} ${t(
|
||||
'settings.general.gesture-control.taps'
|
||||
'settings-general-gesture_control-taps'
|
||||
)}`
|
||||
}
|
||||
min={2}
|
||||
@@ -591,10 +595,10 @@ export function GeneralSettings() {
|
||||
<NumberSelector
|
||||
control={control}
|
||||
name="tapDetection.tapMountingResetTaps"
|
||||
label={t('settings.general.gesture-control.mountingResetTaps')}
|
||||
label={t('settings-general-gesture_control-mountingResetTaps')}
|
||||
valueLabelFormat={(value) =>
|
||||
`${Math.round(value)} ${t(
|
||||
'settings.general.gesture-control.taps'
|
||||
'settings-general-gesture_control-taps'
|
||||
)}`
|
||||
}
|
||||
min={2}
|
||||
@@ -608,17 +612,17 @@ export function GeneralSettings() {
|
||||
<SettingsPageLayout icon={<SquaresIcon></SquaresIcon>} id="interface">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
{t('settings.general.interface.title')}
|
||||
{t('settings-general-interface-title')}
|
||||
</Typography>
|
||||
<div className="gap-4 grid">
|
||||
<div className="grid sm:grid-cols-2">
|
||||
<div>
|
||||
<Typography bold>
|
||||
{t('settings.general.interface.dev-mode.title')}
|
||||
{t('settings-general-interface-dev_mode-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.interface.dev-mode.description')}
|
||||
{t('settings-general-interface-dev_mode-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="pt-2">
|
||||
@@ -627,7 +631,7 @@ export function GeneralSettings() {
|
||||
control={control}
|
||||
outlined
|
||||
name="interface.devmode"
|
||||
label={t('settings.general.interface.dev-mode.label')}
|
||||
label={t('settings-general-interface-dev_mode-label')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -635,12 +639,12 @@ export function GeneralSettings() {
|
||||
<div className="grid sm:grid-cols-2">
|
||||
<div>
|
||||
<Typography bold>
|
||||
{t('settings.general.interface.serial-detection.title')}
|
||||
{t('settings-general-interface-serial_detection-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col">
|
||||
<Typography color="secondary">
|
||||
{t(
|
||||
'settings.general.interface.serial-detection.description'
|
||||
'settings-general-interface-serial_detection-description'
|
||||
)}
|
||||
</Typography>
|
||||
</div>
|
||||
@@ -651,7 +655,7 @@ export function GeneralSettings() {
|
||||
outlined
|
||||
name="interface.watchNewDevices"
|
||||
label={t(
|
||||
'settings.general.interface.serial-detection.label'
|
||||
'settings-general-interface-serial_detection-label'
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
@@ -660,11 +664,11 @@ export function GeneralSettings() {
|
||||
<div className="grid sm:grid-cols-2">
|
||||
<div>
|
||||
<Typography bold>
|
||||
{t('settings.general.interface.lang.title')}
|
||||
{t('settings-general-interface-lang-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col">
|
||||
<Typography color="secondary">
|
||||
{t('settings.general.interface.lang.description')}
|
||||
{t('settings-general-interface-lang-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="pt-2">
|
||||
|
||||
@@ -113,20 +113,20 @@ export function OSCRouterSettings() {
|
||||
<SettingsPageLayout icon={<RouterIcon></RouterIcon>} id="router">
|
||||
<>
|
||||
<Typography variant="main-title">
|
||||
{t('settings.osc.router.title')}
|
||||
{t('settings-osc-router-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.router.description.p0')}
|
||||
{t('settings-osc-router-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.router.description.p1')}
|
||||
{t('settings-osc-router-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<Typography bold>{t('settings.osc.router.enable.title')}</Typography>
|
||||
<Typography bold>{t('settings-osc-router-enable-title')}</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.router.enable.description')}
|
||||
{t('settings-osc-router-enable-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3 pb-5">
|
||||
@@ -135,24 +135,24 @@ export function OSCRouterSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="router.oscSettings.enabled"
|
||||
label={t('settings.osc.router.enable.label')}
|
||||
label={t('settings-osc-router-enable-label')}
|
||||
/>
|
||||
</div>
|
||||
<Typography bold>{t('settings.osc.router.network.title')}</Typography>
|
||||
<Typography bold>{t('settings-osc-router-network-title')}</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.router.network.description.p0')}
|
||||
{t('settings-osc-router-network-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.router.network.description.p1')}
|
||||
{t('settings-osc-router-network-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3 pb-5">
|
||||
<Input
|
||||
type="number"
|
||||
{...register('router.oscSettings.portIn', { required: true })}
|
||||
placeholder={t('settings.osc.router.network.port-in.placeholder')}
|
||||
label={t('settings.osc.router.network.port-in.label')}
|
||||
placeholder={t('settings-osc-router-network-port_in-placeholder')}
|
||||
label={t('settings-osc-router-network-port_in-label')}
|
||||
></Input>
|
||||
<Input
|
||||
type="number"
|
||||
@@ -160,17 +160,17 @@ export function OSCRouterSettings() {
|
||||
required: true,
|
||||
})}
|
||||
placeholder={t(
|
||||
'settings.osc.router.network.port-out.placeholder'
|
||||
'settings-osc-router-network-port-out-placeholder'
|
||||
)}
|
||||
label={t('settings.osc.router.network.port-out.label')}
|
||||
label={t('settings-osc-router-network-port_out-label')}
|
||||
></Input>
|
||||
</div>
|
||||
<Typography bold>
|
||||
{t('settings.osc.router.network.address.title')}
|
||||
{t('settings-osc-router-network-address-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.router.network.address.description')}
|
||||
{t('settings-osc-router-network-address-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid gap-3 pb-5">
|
||||
@@ -181,7 +181,7 @@ export function OSCRouterSettings() {
|
||||
pattern:
|
||||
/^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/i,
|
||||
})}
|
||||
placeholder={t('settings.osc.router.network.address.placeholder')}
|
||||
placeholder={t('settings-osc-router-network-address-placeholder')}
|
||||
></Input>
|
||||
</div>
|
||||
</>
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
SerialTrackerFactoryResetRequestT,
|
||||
SerialTrackerGetInfoRequestT,
|
||||
SerialTrackerRebootRequestT,
|
||||
SerialUpdateResponseT
|
||||
SerialUpdateResponseT,
|
||||
} from 'solarxr-protocol';
|
||||
import { useElemSize, useLayout } from '../../../hooks/layout';
|
||||
import { useWebsocketAPI } from '../../../hooks/websocket-api';
|
||||
@@ -105,7 +105,7 @@ export function Serial() {
|
||||
RpcMessage.SerialDevicesResponse,
|
||||
(res: SerialDevicesResponseT) => {
|
||||
setSerialDevices([
|
||||
{ name: t('settings.serial.auto-dropdown-item'), port: 'Auto' },
|
||||
{ name: t('settings-serial-auto_dropdown_item'), port: 'Auto' },
|
||||
...(res.devices || []),
|
||||
]);
|
||||
}
|
||||
@@ -152,13 +152,13 @@ export function Serial() {
|
||||
<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">
|
||||
{t('settings.serial.title')}
|
||||
{t('settings-serial-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.serial.description.p0')}
|
||||
{t('settings-serial-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.serial.description.p1')}
|
||||
{t('settings-serial-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="bg-background-80 rounded-lg flex flex-col p-2">
|
||||
@@ -174,7 +174,7 @@ export function Serial() {
|
||||
<pre>
|
||||
{isSerialOpen
|
||||
? consoleContent
|
||||
: t('settings.serial.connection-lost')}
|
||||
: t('settings-serial-connection_lost')}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@@ -182,13 +182,13 @@ export function Serial() {
|
||||
<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}>
|
||||
{t('settings.serial.reboot')}
|
||||
{t('settings-serial-reboot')}
|
||||
</Button>
|
||||
<Button variant="quaternary" onClick={factoryReset}>
|
||||
{t('settings.serial.factory-reset')}
|
||||
{t('settings-serial-factory_reset')}
|
||||
</Button>
|
||||
<Button variant="quaternary" onClick={getInfos}>
|
||||
{t('settings.serial.get-infos')}
|
||||
{t('settings-serial-get_infos')}
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
@@ -196,7 +196,7 @@ export function Serial() {
|
||||
<Dropdown
|
||||
control={control}
|
||||
name="port"
|
||||
placeholder={t('settings.serial.serial-select')}
|
||||
placeholder={t('settings-serial-serial_select')}
|
||||
items={serialDevices.map((device) => ({
|
||||
label: device.name?.toString() || 'error',
|
||||
value: device.port?.toString() || 'error',
|
||||
|
||||
@@ -140,16 +140,16 @@ export function VRCOSCSettings() {
|
||||
<Typography variant="main-title">VRChat OSC Trackers</Typography>
|
||||
<div className="flex flex-col pt-2 pb-4">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.vrchat.description.p0')}
|
||||
{t('settings-osc-vrchat-description-p0')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.vrchat.description.p1')}
|
||||
{t('settings-osc-vrchat-description-p1')}
|
||||
</Typography>
|
||||
</div>
|
||||
<Typography bold>{t('settings.osc.vrchat.enable.title')}</Typography>
|
||||
<Typography bold>{t('settings-osc-vrchat-enable-title')}</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.vrchat.enable.description')}
|
||||
{t('settings-osc-vrchat-enable-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3 pb-5">
|
||||
@@ -158,21 +158,21 @@ export function VRCOSCSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="vrchat.oscSettings.enabled"
|
||||
label={t('settings.osc.vrchat.enable.label')}
|
||||
label={t('settings-osc-vrchat-enable-label')}
|
||||
/>
|
||||
</div>
|
||||
<Typography bold>{t('settings.osc.vrchat.network.title')}</Typography>
|
||||
<Typography bold>{t('settings-osc-vrchat-network-title')}</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.vrchat.network.description')}
|
||||
{t('settings-osc-vrchat-network-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3 pb-5">
|
||||
<Input
|
||||
type="number"
|
||||
{...register('vrchat.oscSettings.portIn', { required: true })}
|
||||
placeholder={t('settings.osc.vrchat.network.port-in.placeholder')}
|
||||
label={t('settings.osc.vrchat.network.port-in.label')}
|
||||
placeholder={t('settings-osc-vrchat-network-port_in-placeholder')}
|
||||
label={t('settings-osc-vrchat-network-port_in-label')}
|
||||
></Input>
|
||||
<Input
|
||||
type="number"
|
||||
@@ -180,17 +180,17 @@ export function VRCOSCSettings() {
|
||||
required: true,
|
||||
})}
|
||||
placeholder={t(
|
||||
'settings.osc.vrchat.network.port-out.placeholder'
|
||||
'settings-osc-vrchat-network-port-out-placeholder'
|
||||
)}
|
||||
label={t('settings.osc.vrchat.network.port-out.label')}
|
||||
label={t('settings-osc-vrchat-network-port_out-label')}
|
||||
></Input>
|
||||
</div>
|
||||
<Typography bold>
|
||||
{t('settings.osc.vrchat.network.address.title')}
|
||||
{t('settings-osc-vrchat-network-address-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.vrchat.network.address.description')}
|
||||
{t('settings-osc-vrchat-network-address-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid gap-3 pb-5">
|
||||
@@ -201,15 +201,15 @@ export function VRCOSCSettings() {
|
||||
pattern:
|
||||
/^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/i,
|
||||
})}
|
||||
placeholder={t('settings.osc.vrchat.network.address.placeholder')}
|
||||
placeholder={t('settings-osc-vrchat-network-address-placeholder')}
|
||||
></Input>
|
||||
</div>
|
||||
<Typography bold>
|
||||
{t('settings.osc.vrchat.network.trackers.title')}
|
||||
{t('settings-osc-vrchat-network-trackers-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col pb-2">
|
||||
<Typography color="secondary">
|
||||
{t('settings.osc.vrchat.network.trackers.description')}
|
||||
{t('settings-osc-vrchat-network-trackers-description')}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3 pb-5">
|
||||
@@ -218,35 +218,35 @@ export function VRCOSCSettings() {
|
||||
outlined
|
||||
control={control}
|
||||
name="vrchat.trackers.chest"
|
||||
label={t('settings.osc.vrchat.network.trackers.chest')}
|
||||
label={t('settings-osc-vrchat-network-trackers-chest')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="vrchat.trackers.waist"
|
||||
label={t('settings.osc.vrchat.network.trackers.waist')}
|
||||
label={t('settings-osc-vrchat-network-trackers-waist')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="vrchat.trackers.knees"
|
||||
label={t('settings.osc.vrchat.network.trackers.knees')}
|
||||
label={t('settings-osc-vrchat-network-trackers-knees')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="vrchat.trackers.feet"
|
||||
label={t('settings.osc.vrchat.network.trackers.feet')}
|
||||
label={t('settings-osc-vrchat-network-trackers-feet')}
|
||||
/>
|
||||
<CheckBox
|
||||
variant="toggle"
|
||||
outlined
|
||||
control={control}
|
||||
name="vrchat.trackers.elbows"
|
||||
label={t('settings.osc.vrchat.network.trackers.elbows')}
|
||||
label={t('settings-osc-vrchat-network-trackers-elbows')}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
|
||||
@@ -41,14 +41,14 @@ export function SingleTrackerBodyAssignmentMenu({
|
||||
<div className="flex gap-8">
|
||||
<div className="flex flex-col max-w-sm gap-3">
|
||||
<Typography variant="main-title" bold>
|
||||
{t('body-assignment-menu.title')}
|
||||
{t('body_assignment_menu-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('body-assignment-menu.description')}
|
||||
{t('body_assignment_menu-description')}
|
||||
</Typography>
|
||||
<CheckBox
|
||||
control={control}
|
||||
label={t('body-assignment-menu.show-advanced-locations')}
|
||||
label={t('body_assignment_menu-show_advanced_locations')}
|
||||
name="advanced"
|
||||
variant="toggle"
|
||||
></CheckBox>
|
||||
@@ -58,7 +58,7 @@ export function SingleTrackerBodyAssignmentMenu({
|
||||
to="/onboarding/trackers-assign"
|
||||
state={{ alonePage: true }}
|
||||
>
|
||||
{t('body-assignment-menu.manage-trackers')}
|
||||
{t('body_assignment_menu-manage_trackers')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -73,7 +73,7 @@ export function SingleTrackerBodyAssignmentMenu({
|
||||
variant="secondary"
|
||||
onClick={() => onRoleSelected(BodyPart.NONE)}
|
||||
>
|
||||
{t('body-assignment-menu.unassign-tracker')}
|
||||
{t('body_assignment_menu-unassign_tracker')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -25,7 +25,7 @@ function Tracker({
|
||||
return (
|
||||
<Typography>
|
||||
{`${tracker.info?.customName || tracker.info?.displayName}` ||
|
||||
t('tracker.part-card.unassigned')}
|
||||
t('tracker-part_card-unassigned')}
|
||||
</Typography>
|
||||
);
|
||||
}
|
||||
@@ -80,7 +80,7 @@ export function TrackerPartCard({
|
||||
}}
|
||||
>
|
||||
<Typography color="secondary">
|
||||
{t('body-part.' + BodyPart[role])}
|
||||
{t('body_part-' + BodyPart[role])}
|
||||
</Typography>
|
||||
{td?.map(({ tracker }, index) => (
|
||||
<Tracker
|
||||
@@ -89,7 +89,7 @@ export function TrackerPartCard({
|
||||
updateVelocity={(vel) => updateVelocity(vel)}
|
||||
/>
|
||||
))}
|
||||
{!td && <Typography>{t('tracker.part-card.unassigned')}</Typography>}
|
||||
{!td && <Typography>{t('tracker-part_card-unassigned')}</Typography>}
|
||||
</div>
|
||||
)) || <></>
|
||||
);
|
||||
|
||||
@@ -27,10 +27,10 @@ export const rotationToQuatMap = {
|
||||
};
|
||||
|
||||
const rotationsLabels = {
|
||||
[rotationToQuatMap.BACK]: 'tracker.rotation.back',
|
||||
[rotationToQuatMap.FRONT]: 'tracker.rotation.front',
|
||||
[rotationToQuatMap.LEFT]: 'tracker.rotation.left',
|
||||
[rotationToQuatMap.RIGHT]: 'tracker.rotation.right',
|
||||
[rotationToQuatMap.BACK]: 'tracker-rotation-back',
|
||||
[rotationToQuatMap.FRONT]: 'tracker-rotation-front',
|
||||
[rotationToQuatMap.LEFT]: 'tracker-rotation-left',
|
||||
[rotationToQuatMap.RIGHT]: 'tracker-rotation-right',
|
||||
};
|
||||
|
||||
export function TrackerSettingsPage() {
|
||||
@@ -166,7 +166,7 @@ export function TrackerSettingsPage() {
|
||||
<div className="flex flex-col bg-background-70 p-3 rounded-lg gap-2">
|
||||
<div className="flex justify-between">
|
||||
<Typography color="secondary">
|
||||
{t('tracker.infos.manufacturer')}
|
||||
{t('tracker-infos-manufacturer')}
|
||||
</Typography>
|
||||
<Typography>
|
||||
{tracker?.device?.hardwareInfo?.manufacturer}
|
||||
@@ -174,13 +174,13 @@ export function TrackerSettingsPage() {
|
||||
</div>
|
||||
<div className="flex justify-between">
|
||||
<Typography color="secondary">
|
||||
{t('tracker.infos.display-name')}
|
||||
{t('tracker-infos-display_name')}
|
||||
</Typography>
|
||||
<Typography>{tracker?.tracker.info?.displayName}</Typography>
|
||||
</div>
|
||||
<div className="flex justify-between">
|
||||
<Typography color="secondary">
|
||||
{t('tracker.infos.custom-name')}
|
||||
{t('tracker-infos-custom_name')}
|
||||
</Typography>
|
||||
<Typography>
|
||||
{tracker?.tracker.info?.customName || '--'}
|
||||
@@ -188,7 +188,7 @@ export function TrackerSettingsPage() {
|
||||
</div>
|
||||
<div className="flex justify-between">
|
||||
<Typography color="secondary">
|
||||
{t('tracker.infos.url')}
|
||||
{t('tracker-infos-url')}
|
||||
</Typography>
|
||||
<Typography>
|
||||
udp://
|
||||
@@ -200,23 +200,23 @@ export function TrackerSettingsPage() {
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-col flex-grow bg-background-70 rounded-lg p-5 gap-3">
|
||||
<ArrowLink to="/">{t('tracker.settings.back')}</ArrowLink>
|
||||
<ArrowLink to="/">{t('tracker-settings-back')}</ArrowLink>
|
||||
<Typography variant="main-title">
|
||||
{t('tracker.settings.title')}
|
||||
{t('tracker-settings-title')}
|
||||
</Typography>
|
||||
<div className="flex flex-col gap-2 w-full mt-3">
|
||||
<Typography variant="section-title">
|
||||
{t('tracker.settings.assignment-section.title')}
|
||||
{t('tracker-settings-assignment_section-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('tracker.settings.assignment-section.description')}
|
||||
{t('tracker-settings-assignment_section-description')}
|
||||
</Typography>
|
||||
<div className="flex justify-between bg-background-80 w-full p-3 rounded-lg">
|
||||
<div className="flex gap-3 items-center">
|
||||
<FootIcon></FootIcon>
|
||||
<Typography>
|
||||
{t(
|
||||
'body-part.' +
|
||||
'body-part-' +
|
||||
BodyPart[tracker?.tracker.info?.bodyPart || BodyPart.NONE]
|
||||
)}
|
||||
</Typography>
|
||||
@@ -226,17 +226,17 @@ export function TrackerSettingsPage() {
|
||||
variant="secondary"
|
||||
onClick={() => setSelectBodypart(true)}
|
||||
>
|
||||
{t('tracker.settings.assignment-section.edit')}
|
||||
{t('tracker-settings-assignment_section-edit')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-col gap-2 w-full mt-3">
|
||||
<Typography variant="section-title">
|
||||
{t('tracker.settings.mounting-section.title')}
|
||||
{t('tracker-settings-mounting_section-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('tracker.settings.mounting-section.description')}
|
||||
{t('tracker-settings-mounting_section-description')}
|
||||
</Typography>
|
||||
<div className="flex justify-between bg-background-80 w-full p-3 rounded-lg">
|
||||
<div className="flex gap-3 items-center">
|
||||
@@ -248,20 +248,20 @@ export function TrackerSettingsPage() {
|
||||
variant="secondary"
|
||||
onClick={() => setSelectRotation(true)}
|
||||
>
|
||||
{t('tracker.settings.mounting-section.edit')}
|
||||
{t('tracker-settings-mounting_section-edit')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-col gap-2 w-full mt-3">
|
||||
<Typography variant="section-title">
|
||||
{t('tracker.settings.name-section.title')}
|
||||
{t('tracker-settings-name_section-title')}
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t('tracker.settings.name-section.description')}
|
||||
{t('tracker-settings-name_section-description')}
|
||||
</Typography>
|
||||
<Input
|
||||
placeholder={t('tracker.settings.name-section.input-placeholder')}
|
||||
placeholder={t('tracker-settings-name_section-input_placeholder')}
|
||||
type="text"
|
||||
autocomplete={false}
|
||||
{...register('trackerName')}
|
||||
|
||||
@@ -5,12 +5,12 @@ import { TrackerStatus as TrackerStatusEnum } from 'solarxr-protocol';
|
||||
import { Typography } from '../commons/Typography';
|
||||
|
||||
const statusLabelMap: { [key: number]: string } = {
|
||||
[TrackerStatusEnum.NONE]: 'tracker.status.none',
|
||||
[TrackerStatusEnum.BUSY]: 'tracker.status.busy',
|
||||
[TrackerStatusEnum.ERROR]: 'tracker.status.error',
|
||||
[TrackerStatusEnum.DISCONNECTED]: 'tracker.status.disconnected',
|
||||
[TrackerStatusEnum.OCCLUDED]: 'tracker.status.occluded',
|
||||
[TrackerStatusEnum.OK]: 'tracker.status.ok',
|
||||
[TrackerStatusEnum.NONE]: 'tracker-status-none',
|
||||
[TrackerStatusEnum.BUSY]: 'tracker-status-busy',
|
||||
[TrackerStatusEnum.ERROR]: 'tracker-status-error',
|
||||
[TrackerStatusEnum.DISCONNECTED]: 'tracker-status-disconnected',
|
||||
[TrackerStatusEnum.OCCLUDED]: 'tracker-status-occluded',
|
||||
[TrackerStatusEnum.OK]: 'tracker-status-ok',
|
||||
};
|
||||
|
||||
const statusClassMap: { [key: number]: string } = {
|
||||
|
||||
@@ -116,7 +116,7 @@ export function TrackersTable({
|
||||
return (
|
||||
<div className="flex w-full overflow-x-auto py-2">
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex px-3">{t('tracker.table.column.name')}</div>
|
||||
<div className="flex px-3">{t('tracker-table-column-name')}</div>
|
||||
{flatTrackers.map(({ tracker }, index) => (
|
||||
<RowContainer
|
||||
key={index}
|
||||
@@ -132,7 +132,7 @@ export function TrackersTable({
|
||||
))}
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex px-3">{t('tracker.table.column.type')}</div>
|
||||
<div className="flex px-3">{t('tracker-table-column-type')}</div>
|
||||
{flatTrackers.map(({ device, tracker }, index) => (
|
||||
<RowContainer
|
||||
key={index}
|
||||
@@ -149,7 +149,7 @@ export function TrackersTable({
|
||||
))}
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex px-3">{t('tracker.table.column.battery')}</div>
|
||||
<div className="flex px-3">{t('tracker-table-column-battery')}</div>
|
||||
{flatTrackers.map(({ device, tracker }, index) => (
|
||||
<RowContainer
|
||||
key={index}
|
||||
@@ -171,7 +171,7 @@ export function TrackersTable({
|
||||
))}
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex px-3">{t('tracker.table.column.ping')}</div>
|
||||
<div className="flex px-3">{t('tracker-table-column-ping')}</div>
|
||||
{flatTrackers.map(({ device, tracker }, index) => (
|
||||
<RowContainer
|
||||
key={index}
|
||||
@@ -196,7 +196,7 @@ export function TrackersTable({
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex px-3 whitespace-nowrap">
|
||||
{t('tracker.table.column.rotation')}
|
||||
{t('tracker-table-column-rotation')}
|
||||
</div>
|
||||
{flatTrackers.map(({ tracker }, index) => (
|
||||
<RowContainer
|
||||
@@ -213,7 +213,7 @@ export function TrackersTable({
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex px-3 whitespace-nowrap">
|
||||
{t('tracker.table.column.position')}
|
||||
{t('tracker-table-column-position')}
|
||||
</div>
|
||||
{flatTrackers.map(({ tracker }, index) => (
|
||||
<RowContainer
|
||||
@@ -239,7 +239,7 @@ export function TrackersTable({
|
||||
))}
|
||||
</div>
|
||||
<div className="flex flex-col gap-1 flex-grow">
|
||||
<div className="flex px-3">{t('tracker.table.column.url')}</div>
|
||||
<div className="flex px-3">{t('tracker-table-column-url')}</div>
|
||||
|
||||
{flatTrackers.map(({ device, tracker }, index) => (
|
||||
<RowContainer
|
||||
|
||||
@@ -68,13 +68,13 @@ export function OverlayWidget() {
|
||||
control={control}
|
||||
name="isVisible"
|
||||
variant="toggle"
|
||||
label={t('overlay.is-visible-label')}
|
||||
label={t('overlay-is_visible_label')}
|
||||
></CheckBox>
|
||||
<CheckBox
|
||||
control={control}
|
||||
name="isMirrored"
|
||||
variant="toggle"
|
||||
label={t('overlay.is-mirrored-label')}
|
||||
label={t('overlay-is_mirrored_label')}
|
||||
></CheckBox>
|
||||
</form>
|
||||
);
|
||||
|
||||
@@ -36,7 +36,7 @@ export function useProvideAutobone(): AutoboneContext {
|
||||
return (
|
||||
skeletonParts?.map(({ bone, value }) => ({
|
||||
bone,
|
||||
label: t('skeleton-bone.' + SkeletonBone[bone]),
|
||||
label: t('skeleton_bone-' + SkeletonBone[bone]),
|
||||
value,
|
||||
})) || []
|
||||
);
|
||||
|
||||
@@ -52,7 +52,7 @@ export function useTracker(tracker: TrackerDataT) {
|
||||
useMemo(() => {
|
||||
if (tracker.info?.customName) return tracker.info?.customName;
|
||||
if (tracker.info?.bodyPart)
|
||||
return t('body-part.' + BodyPart[tracker.info?.bodyPart]);
|
||||
return t('body_part-' + BodyPart[tracker.info?.bodyPart]);
|
||||
return tracker.info?.displayName || 'NONE';
|
||||
}, [tracker.info]),
|
||||
useRotation: () =>
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
import i18next from 'i18next';
|
||||
import Fluent from 'i18next-fluent';
|
||||
// @ts-expect-error - this package doesn't contain typings but we dont need it
|
||||
import Backend from 'i18next-fluent-backend';
|
||||
import LanguageDetector from 'i18next-browser-languagedetector';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
import en from './en/translation.json';
|
||||
import fr from './fr/translation.json';
|
||||
import it from './it/translation.json';
|
||||
import ja from './ja/translation.json';
|
||||
import ko from './ko/translation.json';
|
||||
import pl from './pl/translation.json';
|
||||
import ptBR from './pt-BR/translation.json';
|
||||
import vi from './vi/translation.json';
|
||||
import zh from './zh/translation.json';
|
||||
import owo from './owo/translation.json';
|
||||
|
||||
export const defaultNS = 'translation';
|
||||
|
||||
@@ -40,7 +34,7 @@ export const langs = [
|
||||
},
|
||||
{
|
||||
name: '🇧🇷 Português Brasileiro',
|
||||
key: 'ptBR',
|
||||
key: 'pt-BR',
|
||||
},
|
||||
{
|
||||
name: '🇻🇳 Tiếng Việt',
|
||||
@@ -56,44 +50,17 @@ export const langs = [
|
||||
},
|
||||
];
|
||||
|
||||
export const resources = {
|
||||
en: {
|
||||
translation: en,
|
||||
},
|
||||
fr: {
|
||||
translation: fr,
|
||||
},
|
||||
it: {
|
||||
translation: it,
|
||||
},
|
||||
ja: {
|
||||
translations: ja,
|
||||
},
|
||||
ko: {
|
||||
translation: ko,
|
||||
},
|
||||
pl: {
|
||||
translation: pl,
|
||||
},
|
||||
ptBR: {
|
||||
translation: ptBR,
|
||||
},
|
||||
vi: {
|
||||
translation: vi,
|
||||
},
|
||||
zh: {
|
||||
translation: zh,
|
||||
},
|
||||
owo: {
|
||||
translation: owo,
|
||||
},
|
||||
};
|
||||
|
||||
i18next.use(initReactI18next).init({
|
||||
lng: 'en', // if you're using a language detector, do not define the lng option
|
||||
resources,
|
||||
fallbackLng: 'en',
|
||||
defaultNS,
|
||||
});
|
||||
i18next
|
||||
.use(Fluent)
|
||||
.use(Backend)
|
||||
.use(LanguageDetector)
|
||||
.use(initReactI18next)
|
||||
.init({
|
||||
fallbackLng: 'en',
|
||||
defaultNS,
|
||||
backend: {
|
||||
loadPath: '/i18n/{{lng}}/{{ns}}.ftl',
|
||||
},
|
||||
});
|
||||
|
||||
export default i18next;
|
||||
|
||||
@@ -1,500 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "Connecting to the server",
|
||||
"connection-lost": "Connection lost to the server. Trying to reconnect..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "Not sure which tracker is which? Shake a tracker and it will highlight the corresponding item.",
|
||||
"do-not-move-heels": "Ensure your heels do not move during recording!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "Unassigned",
|
||||
"HEAD": "Head",
|
||||
"NECK": "Neck",
|
||||
"RIGHT_SHOULDER": "Right shoulder",
|
||||
"RIGHT_UPPER_ARM": "Right upper arm",
|
||||
"RIGHT_LOWER_ARM": "Right lower arm",
|
||||
"RIGHT_HAND": "Right hand",
|
||||
"RIGHT_UPPER_LEG": "Right thigh",
|
||||
"RIGHT_LOWER_LEG": "Right ankle",
|
||||
"RIGHT_FOOT": "Right foot",
|
||||
"CHEST": "Chest",
|
||||
"WAIST": "Waist",
|
||||
"HIP": "Hip",
|
||||
"LEFT_SHOULDER": "Left shoulder",
|
||||
"LEFT_UPPER_ARM": "Left upper arm",
|
||||
"LEFT_LOWER_ARM": "Left lower arm",
|
||||
"LEFT_HAND": "Left hand",
|
||||
"LEFT_UPPER_LEG": "Left thigh",
|
||||
"LEFT_LOWER_LEG": "Left ankle",
|
||||
"LEFT_FOOT": "Left foot"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "None",
|
||||
"HEAD": "Head Shift",
|
||||
"NECK": "Neck Length",
|
||||
"TORSO": "Torso Length",
|
||||
"CHEST": "Chest Distance",
|
||||
"WAIST": "Waist Distance",
|
||||
"HIP_OFFSET": "Hip Offset",
|
||||
"HIPS_WIDTH": "Hips Width",
|
||||
"LEGS_LENGTH": "Legs Length",
|
||||
"KNEE_HEIGHT": "Knee Height",
|
||||
"FOOT_LENGTH": "Foot Length",
|
||||
"FOOT_SHIFT": "Foot Shift",
|
||||
"SKELETON_OFFSET": "Skeleton Offset",
|
||||
"CONTROLLER_DISTANCE_Z": "Controller Distance Z",
|
||||
"CONTROLLER_DISTANCE_Y": "Controller Distance Y",
|
||||
"FOREARM_LENGTH": "Forearm Distance",
|
||||
"SHOULDERS_DISTANCE": "Shoulders Distance",
|
||||
"SHOULDERS_WIDTH": "Shoulders Width",
|
||||
"UPPER_ARM_LENGTH": "Upper Arm Length",
|
||||
"ELBOW_OFFSET": "Elbow Offset"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "Reset all proportions",
|
||||
"full": "Reset",
|
||||
"mounting": "Reset Mounting",
|
||||
"quick": "Quick Reset"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "New serial device detected!" ,
|
||||
"new-device.p1": "Enter your WiFi credentials!",
|
||||
"new-device.p2": "Please select what you want to do with it",
|
||||
"open-wifi": "Connect to WiFi",
|
||||
"open-serial": "Open Serial Console",
|
||||
"submit": "Submit!",
|
||||
"close": "Close"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "Home",
|
||||
"body-proportions": "Body Proportions",
|
||||
"trackers-assign": "Tracker Assignment",
|
||||
"mounting": "Mounting Calibration",
|
||||
"onboarding": "Setup Wizard",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "Record BVH",
|
||||
"recording": "Recording..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "Show Overlay in SteamVR",
|
||||
"is-mirrored-label": "Display Overlay as Mirror"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "No Status",
|
||||
"busy": "Busy",
|
||||
"error": "Error",
|
||||
"disconnected": "Disconnected",
|
||||
"occluded": "Occluded",
|
||||
"ok": "OK"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Name",
|
||||
"type": "Type",
|
||||
"battery": "Battery",
|
||||
"ping": "Ping",
|
||||
"rotation": "Rotation X/Y/Z",
|
||||
"position": "Position X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "Front",
|
||||
"left": "Left",
|
||||
"right": "Right",
|
||||
"back": "Back"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "Manufacturer",
|
||||
"display-name": "Display Name",
|
||||
"custom-name": "Custom Name",
|
||||
"url": "Tracker URL"
|
||||
},
|
||||
"settings": {
|
||||
"back": "Go back to trackers list",
|
||||
"title": "Tracker settings",
|
||||
"assignment-section": {
|
||||
"title": "Assignment",
|
||||
"description": "What part of the body the tracker is assigned to.",
|
||||
"edit": "Edit assignment"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "Mounting position",
|
||||
"description": "Where is the tracker mounted?",
|
||||
"edit": "Edit mounting"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "Tracker name",
|
||||
"description": "Give it a cute nickname :)",
|
||||
"input-placeholder": "NightyBeast's left leg"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "No name",
|
||||
"unassigned": "Unassigned"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "Where do you want this tracker to be?",
|
||||
"description": "Choose a location where you want this tracker to be assigned. Alternatively you can choose to manage all trackers at once instead of one by one.",
|
||||
"show-advanced-locations": "Show advanced assign locations",
|
||||
"manage-trackers": "Manage all trackers",
|
||||
"unassign-tracker": "Unassign tracker"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "Which tracker to assign to the {{bodyPart}}?",
|
||||
"unassigned": "Unassigned Trackers",
|
||||
"assigned": "Assigned Trackers",
|
||||
"dont-assign": "Do not assign"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "Where do you want this tracker to be?",
|
||||
"close": "Close"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "Settings",
|
||||
"general": "General",
|
||||
"tracker-mechanics": "Tracker mechanics",
|
||||
"fk-settings": "FK settings",
|
||||
"gesture-control": "Gesture control",
|
||||
"interface": "Interface",
|
||||
"osc-router": "OSC router",
|
||||
"utils": "Utilities",
|
||||
"serial": "Serial console"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "SteamVR trackers",
|
||||
"description.p0": "Enable or disable specific SteamVR trackers.",
|
||||
"description.p1": "Useful for games or apps that only support certain trackers.",
|
||||
"trackers": {
|
||||
"waist": "Waist",
|
||||
"chest": "Chest",
|
||||
"feet": "Feet",
|
||||
"knees": "Knees",
|
||||
"elbows": "Elbows",
|
||||
"hands": "Hands"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "Tracker mechanics",
|
||||
"subtitle": "Filtering",
|
||||
"description.p0": "Choose the filtering type for your trackers.",
|
||||
"description.p1": "Prediction predicts movement while smoothing smoothens movement.",
|
||||
"filtering-type": {
|
||||
"title": "Filtering type",
|
||||
"none": {
|
||||
"label": "No filtering",
|
||||
"description":"Use rotations as is. Will not do any filtering."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Smoothing",
|
||||
"description":"Smooths movements but adds some latency."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Prediction",
|
||||
"description":"Reduces latency and makes movements more snappy, but may increase jitter."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "Amount"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "Tracking settings",
|
||||
"leg-tweak": {
|
||||
"title": "Leg tweaks",
|
||||
"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": "Floor clip",
|
||||
"skating-correction": "Skating correction",
|
||||
"skating-correction-amount": "Skating correction strength"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "Arm tracking",
|
||||
"description": "Change the way the arms are tracked.",
|
||||
"force-arms": "Force arms from HMD"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "Skeleton settings",
|
||||
"description": "Toggle skeleton settings on or off. It is recommended to leave these on.",
|
||||
"extended-spine": "Extended spine",
|
||||
"extended-pelvis": "Extended pelvis",
|
||||
"extended-knees": "Extended knee"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "Gesture control",
|
||||
"subtitle": "Tap based resets",
|
||||
"description": "Allows for resets to be triggered by tapping a tracker. The tracker highest up on your torso is used for Quick Reset, the tracker highest up on your left leg is used for Reset, and the tracker highest up on your right leg is used for Mounting Reset. It should be mentioned that taps must happen within 0.6 seconds to be registered.",
|
||||
"taps": "taps",
|
||||
"quickResetEnabled": "Enable tap to quick reset",
|
||||
"quickResetDelay": "Quick reset delay",
|
||||
"quickResetTaps": "Taps for quick reset",
|
||||
"resetEnabled": "Enable tap to reset",
|
||||
"resetDelay": "Reset delay",
|
||||
"resetTaps": "Taps for reset",
|
||||
"mountingResetEnabled": "Enable tap to reset mounting",
|
||||
"mountingResetDelay": "Mounting reset delay",
|
||||
"mountingResetTaps": "Taps for mounting reset"
|
||||
},
|
||||
"interface": {
|
||||
"title": "Interface",
|
||||
"dev-mode": {
|
||||
"title": "Developer Mode",
|
||||
"description": "This mode can be useful if you need in-depth data or to interact with connected trackers on a more advanced level.",
|
||||
"label": "Developer Mode"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "Serial device detection",
|
||||
"description": "This option will show a pop-up every time you plug a new serial device that could be a tracker. It helps improving the setup process of a tracker.",
|
||||
"label": "Serial device detection"
|
||||
},
|
||||
"lang": {
|
||||
"title": "Select language",
|
||||
"description": "Change the default language you want to use.",
|
||||
"placeholder": "Select the language to use"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Serial Console",
|
||||
"description.p0": "This is a live information feed for serial communication.",
|
||||
"description.p1": "May be useful if you need to know the firmware is acting up.",
|
||||
"connection-lost": "Connection to serial lost, Reconnecting...",
|
||||
"reboot": "Reboot",
|
||||
"factory-reset": "Factory Reset",
|
||||
"get-infos": "Get Infos",
|
||||
"serial-select": "Select a serial port",
|
||||
"auto-dropdown-item": "Auto"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "OSC router",
|
||||
"description.p0": "Forward OSC messages from another program.",
|
||||
"description.p1": "Useful for using another OSC program with VRChat for example.",
|
||||
"enable": {
|
||||
"title": "Enable",
|
||||
"description": "Toggle the forwarding of messages.",
|
||||
"label": "Enable"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network ports",
|
||||
"description.p0": "Set the ports for listening and sending data.",
|
||||
"description.p1": "These can be the same as other ports used in the SlimeVR server.",
|
||||
"port-in": {
|
||||
"label": "Port In",
|
||||
"placeholder": "Port in (default: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Port Out",
|
||||
"placeholder": "Port out (default: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Network address",
|
||||
"description": "Set the address to send out data at.",
|
||||
"placeholder": "IPV4 address"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "Change VRChat-specific settings to receive HMD data and send",
|
||||
"description.p1": "trackers data for FBT (works on Quest standalone).",
|
||||
"enable": {
|
||||
"title": "Enable",
|
||||
"description": "Toggle the sending and receiving of data.",
|
||||
"label": "Enable"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network ports",
|
||||
"description": "Set the ports for listening and sending data to VRChat.",
|
||||
"port-in": {
|
||||
"label": "Port In",
|
||||
"placeholder": "Port in (default: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Port Out",
|
||||
"placeholder": "Port out (default: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Network address",
|
||||
"description": "Choose which address to send out data to VRChat (check your wifi settings on your device).",
|
||||
"placeholder": "VRChat ip address"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Trackers",
|
||||
"description": "Toggle the sending of specific trackers via OSC.",
|
||||
"chest": "Chest",
|
||||
"waist": "Waist",
|
||||
"knees": "Knees",
|
||||
"feet": "Feet",
|
||||
"elbows": "Elbows"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "Skip setup",
|
||||
"continue": "Continue",
|
||||
"wip": "Work in progress",
|
||||
"wifi-creds": {
|
||||
"back": "Go Back to introduction",
|
||||
"title": "Input WiFi credentials",
|
||||
"description.p0": "The Trackers will use these credentials to connect wirelessly",
|
||||
"description.p1": "please use the credentials that you are currently connected to",
|
||||
"skip": "Skip wifi settings",
|
||||
"submit": "Submit!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "Go Back to Mounting calibration",
|
||||
"title": "Reset tutorial",
|
||||
"description": "This feature isn't done, just press continue"
|
||||
},
|
||||
"home": {
|
||||
"title": "Welcome to SlimeVR",
|
||||
"description.p0": "Bringing full-body tracking",
|
||||
"description.p1": "to everyone",
|
||||
"start": "Lets get set up!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "Go Back to Tracker assignent",
|
||||
"title": "Time to enter VR!",
|
||||
"description": "Put on all your trackers and then enter VR!",
|
||||
"ready": "I'm ready"
|
||||
},
|
||||
"done": {
|
||||
"title": "You're all set!",
|
||||
"description": "Enjoy your full body experience",
|
||||
"close": "Close the guide"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "Go Back to WiFi credentials",
|
||||
"title": "Connect trackers",
|
||||
"description.p0": "Now onto the fun part, connecting all the trackers!",
|
||||
"description.p1": "Simply connect all that aren't connected yet, through a USB port.",
|
||||
"issue": {
|
||||
"serial": "I'm having trouble connecting!"
|
||||
},
|
||||
"usb": "USB Tracker",
|
||||
"connection-status": {
|
||||
"connecting": "Sending wifi credentials",
|
||||
"connected": "Connected to WiFi",
|
||||
"error": "Unable to connect to Wifi",
|
||||
"start-connecting": "Looking for trackers",
|
||||
"handshake": "Connected to the Server"
|
||||
},
|
||||
"connected-trackers": "{{amount}} trackers connected",
|
||||
"next": "I connected all my trackers"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Go Back to Wifi Credentials",
|
||||
"title": "Assign trackers",
|
||||
"description": "Let's choose which tracker goes where. Click on a location where you want to place a tracker",
|
||||
"assigned": "{{assigned}} of {{trackers}} trackers assigned",
|
||||
"advanced": "Show advanced assign locations",
|
||||
"next": "I assigned all the trackers"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "Go Back to Enter VR",
|
||||
"title": "Manual Mounting",
|
||||
"description": "Click on every tracker and select which way they are mounted",
|
||||
"auto-mounting": "Automatic mounting",
|
||||
"next": "Next step"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "Go Back to Enter VR",
|
||||
"title": "Mounting Calibration",
|
||||
"description": "For SlimeVR trackers to work, we need to assign a mounting rotation to your trackers to align them with your physical tracker mounting.",
|
||||
"manual-mounting": "Manually set mounting",
|
||||
"next": "Next step",
|
||||
"prev-step": "Previous step",
|
||||
"done": {
|
||||
"title": "Mounting rotations calibrated.",
|
||||
"description": "Your mounting calibration is complete!",
|
||||
"restart": "Return to start"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "Mounting Reset",
|
||||
"step": {
|
||||
"0": "1. Squat in a \"skiing\" pose with your legs bent, your upper body tilted forwards, and your arms bent.",
|
||||
"1": "2. Press the \"Reset Mounting\" button and wait for 3 seconds before the trackers' mounting rotations will reset."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Preparation",
|
||||
"step": {
|
||||
"0": "1. Stand upright with your arms to your sides.",
|
||||
"1": "2. Press the \"Reset\" button and wait for 3 seconds before the trackers will reset."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "Put on your trackers",
|
||||
"description": "To calibrate mounting rotations, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.",
|
||||
"next": "I have all my trackers on"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "Go Back to Reset tutorial",
|
||||
"title": "Manual Body Proportions",
|
||||
"precision": "Precision adjust",
|
||||
"auto": "Automatic calibration"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "Go Back to Reset tutorial",
|
||||
"title": "Measure your body",
|
||||
"description": "For SlimeVR trackers to work, we need to know the length of your bones. This short calibration will measure it for you.",
|
||||
"manual": "Manual calibration",
|
||||
"prev-step": "Previous step",
|
||||
"put-trackers-on": {
|
||||
"title": "Put on your trackers",
|
||||
"description": "To calibrate your proportions, we're gonna use the trackers you just assigned. Put on all your trackers, you can see which are which in the figure to the right.",
|
||||
"next": "I have all my trackers on"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Preparation",
|
||||
"description": "Place a chair directly behind you inside your play space. Be prepared to sit down during the autobone setup.",
|
||||
"next": "I am in front of a chair"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "Get ready to move",
|
||||
"description": "We're now going to record some specific poses and moves. These will be prompted in the next screen. Be ready to start when the button is pressed!",
|
||||
"next": "Start Recording"
|
||||
},
|
||||
"recording": {
|
||||
"title": "REC",
|
||||
"description.p0": "Recording in progress...",
|
||||
"description.p1": "Make the moves shown below:",
|
||||
"steps": {
|
||||
"0": "Bend knees a few times.",
|
||||
"1": "Sit on a chair then stand up.",
|
||||
"2": "Twist upper body left, then bend right.",
|
||||
"3": "Twist upper body right, then bend left.",
|
||||
"4": "Wiggle around until timer ends."
|
||||
},
|
||||
"processing": "Processing the result",
|
||||
"timer": "{{time}} seconds left"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "Verify results",
|
||||
"description": "Check the results below, do they look correct?",
|
||||
"results": "Recording results",
|
||||
"processing": "Processing the result",
|
||||
"redo": "Redo recording",
|
||||
"confirm": "They're correct"
|
||||
},
|
||||
"done": {
|
||||
"title": "Body measured and saved.",
|
||||
"description": "Your body proportions calibration is complete!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "No trackers detected or assigned"
|
||||
}
|
||||
}
|
||||
@@ -1,500 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "Connexion au serveur..",
|
||||
"connection-lost": "Connexion avec le serveur perdue. Reconnexion..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "Impossible de différencier vos capteurs? Secouez-en un pour qu'il soit mis en évidence.",
|
||||
"do-not-move-heels": "Assurez-vous de ne pas bouger vos pieds pendant la calibration!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "Non-assigné",
|
||||
"HEAD": "Tête",
|
||||
"NECK": "Cou",
|
||||
"RIGHT_SHOULDER": "Épaule droite",
|
||||
"RIGHT_UPPER_ARM": "Bras droit",
|
||||
"RIGHT_LOWER_ARM": "Avant-bras droit",
|
||||
"RIGHT_HAND": "Main droite",
|
||||
"RIGHT_UPPER_LEG": "Cuisse droite",
|
||||
"RIGHT_LOWER_LEG": "Cheville droite",
|
||||
"RIGHT_FOOT": "Pied droit",
|
||||
"CHEST": "Poitrine",
|
||||
"WAIST": "Taille",
|
||||
"HIP": "Hanche",
|
||||
"LEFT_SHOULDER": "Épaule gauche",
|
||||
"LEFT_UPPER_ARM": "Bras gauche",
|
||||
"LEFT_LOWER_ARM": "Avant-bras gauche",
|
||||
"LEFT_HAND": "Main gauche",
|
||||
"LEFT_UPPER_LEG": "Cuisse gauche",
|
||||
"LEFT_LOWER_LEG": "Cheville gauche",
|
||||
"LEFT_FOOT": "Pied gauche"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "Aucun",
|
||||
"HEAD": "Décalage de la tête",
|
||||
"NECK": "Longueur du cou",
|
||||
"TORSO": "Longueur du torse",
|
||||
"CHEST": "Distance de la poitrine",
|
||||
"WAIST": "Distance de la taille",
|
||||
"HIP_OFFSET": "Écart de la hanche",
|
||||
"HIPS_WIDTH": "Largeur des hanches",
|
||||
"LEGS_LENGTH": "Longueur des jambes",
|
||||
"KNEE_HEIGHT": "Hauteur des genoux",
|
||||
"FOOT_LENGTH": "Longueur des pieds",
|
||||
"FOOT_SHIFT": "Décalage des pieds",
|
||||
"SKELETON_OFFSET": "Écart du squelette",
|
||||
"CONTROLLER_DISTANCE_Z": "Distance Z des contrôleurs",
|
||||
"CONTROLLER_DISTANCE_Y": "Distance Y des contrôleurs",
|
||||
"FOREARM_LENGTH": "Longueur des avant-bras",
|
||||
"SHOULDERS_DISTANCE": "Distance des épaules",
|
||||
"SHOULDERS_WIDTH": "Largeur des épaules",
|
||||
"UPPER_ARM_LENGTH": "Longueur des bras supérieurs",
|
||||
"ELBOW_OFFSET": "Écart des coudes"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "Réinitialiser toutes les proportions",
|
||||
"full": "Réinitialiser",
|
||||
"mounting": "Réinitialiser l'alignement",
|
||||
"quick": "Réinitialisation rapide"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "Nouveau périphérique détecté!",
|
||||
"new-device.p1": "Entrez vos identifiants Wi-Fi!",
|
||||
"new-device.p2": "Veuillez sélectionner quoi en faire",
|
||||
"open-wifi": "Connecter au Wi-Fi",
|
||||
"open-serial": "Ouvrir la console série",
|
||||
"submit": "Soumettre!",
|
||||
"close": "Fermer"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "Accueil",
|
||||
"body-proportions": "Proportions du corps",
|
||||
"trackers-assign": "Asignement des capteurs",
|
||||
"mounting": "Alignement des capteurs",
|
||||
"onboarding": "Assistant de configuration",
|
||||
"settings": "Réglages"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "Enregistrer BVH",
|
||||
"recording": "Enregistrement..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "Superposer le squelette dans SteamVR",
|
||||
"is-mirrored-label": "Afficher le squelette en tant que miroir"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "Pas de statut",
|
||||
"busy": "Occupé",
|
||||
"error": "Erreur",
|
||||
"disconnected": "Déconnecté",
|
||||
"occluded": "Obstrué",
|
||||
"ok": "OK"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Nom",
|
||||
"type": "Type",
|
||||
"battery": "Batterie",
|
||||
"ping": "Ping",
|
||||
"rotation": "Rotation X/Y/Z",
|
||||
"position": "Position X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "Avant",
|
||||
"left": "Gauche",
|
||||
"right": "Droite",
|
||||
"back": "Arrière"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "Fabricant",
|
||||
"display-name": "Nom",
|
||||
"custom-name": "Nom personnalisé",
|
||||
"url": "URL"
|
||||
},
|
||||
"settings": {
|
||||
"back": "Retour à la liste des capteurs",
|
||||
"title": "Paramètres du capteur",
|
||||
"assignment-section": {
|
||||
"title": "Assignement du capteur",
|
||||
"description": "À quelle partie du corps le capteur est assigné.",
|
||||
"edit": "Ré-assigner"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "Orientation du capteur",
|
||||
"description": "Dans quelle direction pointe le capteur?",
|
||||
"edit": "Changer l'orientation"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "Nom personalisé",
|
||||
"description": "Donnez-lui un joli surnom :3",
|
||||
"input-placeholder": "Patte gauche d'Erimel"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "Sans nom",
|
||||
"unassigned": "Non attribué"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "Où assigner ce capteur?",
|
||||
"description": "Choisissez l'endroit où assigner ce capteur. Vous pouvez également gérer tous les capteurs à la fois.",
|
||||
"show-advanced-locations": "Afficher les emplacements d'attribution avancés",
|
||||
"manage-trackers": "Gérer tous les capteurs",
|
||||
"unassign-tracker": "Désassigner"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "Quel capteur attribuer à {{bodyPart}}?",
|
||||
"unassigned": "Capteurs non assignés",
|
||||
"assigned": "Capteurs assignés",
|
||||
"dont-assign": "Ne pas attribuer"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "Dans quelle direction pointe ce capteur?",
|
||||
"close": "Fermer"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "Réglages",
|
||||
"general": "Général",
|
||||
"tracker-mechanics": "Paramètres des capteurs",
|
||||
"fk-settings": "Paramètres de la capture",
|
||||
"gesture-control": "Contrôle gestuel",
|
||||
"interface": "Interface",
|
||||
"osc-router": "Routeur OSC",
|
||||
"utils": "Utilitaires",
|
||||
"serial": "Console série"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "Capteurs SteamVR",
|
||||
"description.p0": "Activez ou désactivez des capteurs SteamVR.",
|
||||
"description.p1": "Utile pour les jeux ou applications qui ne supportent que certains capteurs.",
|
||||
"trackers": {
|
||||
"waist": "Taille",
|
||||
"chest": "Poitrine",
|
||||
"feet": "Pieds",
|
||||
"knees": "Genoux",
|
||||
"elbows": "Coudes",
|
||||
"hands": "Mains"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "Paramètres des capteurs",
|
||||
"subtitle": "Filtrage",
|
||||
"description.p0": "Choisissez le type de filtrage pour vos capteurs.",
|
||||
"description.p1": "La prédiction prédit les mouvements tandis que la fluidification rend les mouvements plus fluides.",
|
||||
"filtering-type": {
|
||||
"title": "Type de filtrage",
|
||||
"none": {
|
||||
"label": "Pas de filtrage",
|
||||
"description": "Utilisez les rotations telles quelles."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Fluidification",
|
||||
"description": "Fluidifie les mouvements mais ajoute un peu de latence."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Prédiction",
|
||||
"description": "Réduit la latence et rend les mouvements plus vifs, mais moins fluides."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "Intensité du filtrage"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "Paramètres de la capture",
|
||||
"leg-tweak": {
|
||||
"title": "Ajustement des jambes",
|
||||
"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.",
|
||||
"floor-clip": "Limitage au sol",
|
||||
"skating-correction": "Correction du glissement",
|
||||
"skating-correction-amount": "Force de la correction du glissement"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "Capture des bras",
|
||||
"description": "Changez la façon dont les bras sont captés.",
|
||||
"force-arms": "Forcer les bras en provenance du casque VR"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "Paramètres du squelette",
|
||||
"description": "Activez ou désactivez des paramètres avancés de capture.",
|
||||
"extended-spine": "Colone vertébrale avancée",
|
||||
"extended-pelvis": "Bassin avancé",
|
||||
"extended-knees": "Genoux avancés"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "Contrôle gestuel",
|
||||
"subtitle": "Double tape pour réinitialisation rapide",
|
||||
"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.",
|
||||
"taps": "tapes",
|
||||
"quickResetEnabled": "Taper pour réinitialisation rapide",
|
||||
"quickResetDelay": "Délai de réinitialisation rapide",
|
||||
"quickResetTaps": "Tapes pour réinitialisation rapide",
|
||||
"resetEnabled": "Taper pour réinitialisation",
|
||||
"resetDelay": "Délai de réinitialisation",
|
||||
"resetTaps": "Tapes pour réinitialisation",
|
||||
"mountingResetEnabled": "Taper pour réinitialisation de l'alignement",
|
||||
"mountingResetDelay": "Délai de réinitialisation de l'alignement",
|
||||
"mountingResetTaps": "Tapes pour la réinitialisation de l'alignement"
|
||||
},
|
||||
"interface": {
|
||||
"title": "Interface",
|
||||
"dev-mode": {
|
||||
"title": "Mode développeur",
|
||||
"description": "Ce mode peut être utile pour avoir des données approfondies ou pour interagir avec des capteurs connectés à un niveau plus avancé.",
|
||||
"label": "Mode développeur"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "Détection de périphérique série",
|
||||
"description": "Cette option affichera une fenêtre chaque fois qu'un nouveau périphérique série qui pourrait être un capteur est connecté.",
|
||||
"label": "Détection de périphérique série"
|
||||
},
|
||||
"lang": {
|
||||
"title": "Sélectionner la langue",
|
||||
"description": "Choisir la langue par défaut.",
|
||||
"placeholder": "Choisissez la langue"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Console série",
|
||||
"description.p0": "Il s'agit d'un flux d'informations en direct pour la communication en série.",
|
||||
"description.p1": "Peut être utile pour savoir si un capteur fonctionne correctement.",
|
||||
"connection-lost": "Connexion à l'appareil perdue, reconnexion...",
|
||||
"reboot": "Redémarrer",
|
||||
"factory-reset": "Remise à zéro",
|
||||
"get-infos": "Obtenir des informations",
|
||||
"serial-select": "Sélectionnez un port série",
|
||||
"auto-dropdown-item": "Automatique"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "Routeur OSC",
|
||||
"description.p0": "Transférez les messages OSC provenant d'un autre programme",
|
||||
"description.p1": "Utile pour utiliser un autre programme OSC avec VRChat par exemple.",
|
||||
"enable": {
|
||||
"title": "Activer",
|
||||
"description": "Activer/désactiver le transfert de messages.",
|
||||
"label": "Activer"
|
||||
},
|
||||
"network": {
|
||||
"title": "Ports réseau",
|
||||
"description.p0": "Définissez les ports pour écouter et envoyer des données.",
|
||||
"description.p1": "Ces ports peuvent être les mêmes que les autres utilisés dans le serveur SlimeVR.",
|
||||
"port-in": {
|
||||
"label": "Port de réception",
|
||||
"placeholder": "Port de réception (par défaut: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Port d'envoi",
|
||||
"placeholder": "Port d'envoi (par défaut: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Adresse réseau",
|
||||
"description": "Choisissez l'adresse vers laquelle envoyer les données.",
|
||||
"placeholder": "Adresse IPv4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "Modifiez les paramètres spécifiques à VRChat pour recevoir et envoyer",
|
||||
"description.p1": "des capteurs par OSC (fonctionne sur Quest sans PC).",
|
||||
"enable": {
|
||||
"title": "Activer",
|
||||
"description": "Activer/désactiver l'envoi et la réception de données.",
|
||||
"label": "Activer"
|
||||
},
|
||||
"network": {
|
||||
"title": "Connexions réseau",
|
||||
"description": "Définissez les ports pour écouter et envoyer des données à VRChat.",
|
||||
"port-in": {
|
||||
"label": "Port d'entrée",
|
||||
"placeholder": "Port de réception (par défaut : 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Port de sortie",
|
||||
"placeholder": "Port d'envoi (par défaut : 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Adresse réseau",
|
||||
"description": "Choisissez l'adresse à laquelle envoyer les données à VRChat (vérifiez les réseaux Wi-Fi de votre appareil).",
|
||||
"placeholder": "Adresse IP VRChat"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "capteurs",
|
||||
"description": "Sélectionner quels capteurs envoyer via OSC.",
|
||||
"chest": "Poitrine",
|
||||
"waist": "Taille",
|
||||
"knees": "Genoux",
|
||||
"feet": "Pieds",
|
||||
"elbows": "Coudes"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "Passer",
|
||||
"continue": "Continuer",
|
||||
"wip": "Pas encore implémenté",
|
||||
"wifi-creds": {
|
||||
"back": "Retour à l'introduction",
|
||||
"title": "Saisir les identifiants Wi-Fi",
|
||||
"description.p0": "Les capteurs utiliseront ces informations d'identification pour se connecter au réseau.",
|
||||
"description.p1": "Veuillez utiliser les identifiants avec lesquels vous êtes actuellement connecté.",
|
||||
"skip": "Passer la configuration Wi-Fi",
|
||||
"submit": "Valider"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "Retourner à l'alignement des capteurs",
|
||||
"title": "Didacticiel de réinitialisation",
|
||||
"description": "Cette fonctionnalité n'est pas encore terminée, appuyez simplement sur continuer"
|
||||
},
|
||||
"home": {
|
||||
"title": "Bienvenue sur SlimeVR",
|
||||
"description.p0": "Rendre la capture des mouvements",
|
||||
"description.p1": "accessible à toutes et tous!",
|
||||
"start": "Commencer!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "Revenir à l'attribution des capteurs",
|
||||
"title": "Il est temps d'entrer en réalité virtuelle!",
|
||||
"description": "Enfilez tous vos capteurs puis entrez en réalité virtuelle!",
|
||||
"ready": "je suis prêt!"
|
||||
},
|
||||
"done": {
|
||||
"title": "Vous êtes prêt!",
|
||||
"description": "Amusez-vous bien :)",
|
||||
"close": "Fermer le guide"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "Revenir aux informations d'identification Wi-Fi",
|
||||
"title": "Connecter les capteurs",
|
||||
"description.p0": "Passons maintenant à la partie amusante, en connectant tous les capteurs!",
|
||||
"description.p1": "Connectez chaque capteur qui n'est pas encore connecté via un port USB.",
|
||||
"issue": {
|
||||
"serial": "J'ai du mal à me connecter!"
|
||||
},
|
||||
"usb": "Capteur USB",
|
||||
"connection-status": {
|
||||
"connecting": "Envoi d'identifiants Wi-Fi",
|
||||
"connected": "Connecté au Wi-Fi",
|
||||
"error": "Impossible de se connecter au réseau",
|
||||
"start-connecting": "Recherche de capteurs",
|
||||
"handshake": "Connecté au serveur"
|
||||
},
|
||||
"connected-trackers": "{{amount}} capteurs connectés",
|
||||
"next": "J'ai connecté tous mes capteurs"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Revenir aux identifiants Wi-Fi",
|
||||
"title": "Attribuer des capteurs",
|
||||
"description": "Choisissons où mettre chaque capteur.",
|
||||
"assigned": "{{assigned}} capteur(s) sur {{trackers}} attribué(s)",
|
||||
"advanced": "Afficher les emplacements d'attribution avancés",
|
||||
"next": "J'ai assigné tous mes capteurs"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "Retournez à entrer dans la réalité virtuelle",
|
||||
"title": "Alignement manuel",
|
||||
"description": "Cliquez sur chaque capteur et sélectionnez la manière dont ils sont orientés",
|
||||
"auto-mounting": "Détection automatique",
|
||||
"next": "Prochaine étape"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "Retournez à entrer dans la réalité virtuelle",
|
||||
"title": "Calibration de l'alignement des capteurs",
|
||||
"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.",
|
||||
"manual-mounting": "Alignement manuel",
|
||||
"next": "Prochaine étape",
|
||||
"prev-step": "Étape précédente",
|
||||
"done": {
|
||||
"title": "C'est terminé!",
|
||||
"description": "L'alignement des capteurs est calibré!",
|
||||
"restart": "Retourner au début"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "Réinitialisation de l'alignement",
|
||||
"step": {
|
||||
"0": "1. Accroupissez-vous dans une pose de \"ski\" avec les jambes pliées, le haut du corps incliné vers l'avant et les bras pliés.",
|
||||
"1": "2. Appuyez sur le bouton \"Réinitialiser l'alignement\" et attendez 3 secondes avant que l'alignement des capteurs se calibre."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Préparation",
|
||||
"step": {
|
||||
"0": "1. Tenez-vous debout avec vos bras à vos côtés.",
|
||||
"1": "2. Appuyez sur le bouton \"Réinitialiser\" et attendez 3 secondes avant que les capteurs ne se réinitialisent."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "Enfilez vos capteurs",
|
||||
"description": "Pour calibrer l'alignement, nous allons utiliser les capteurs que vous venez d'affecter.",
|
||||
"next": "J'ai tous mes capteurs"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "Revenir au didacticiel de réinitialisation",
|
||||
"title": "Proportions manuelles du corps",
|
||||
"precision": "Ajustement de précision",
|
||||
"auto": "Calibration automatique"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "Revenir au didacticiel de réinitialisation",
|
||||
"title": "Calibration des proportions du corps",
|
||||
"description": "Pour que les capteurs SlimeVR fonctionnent, nous devons connaître la longueur de vos os.",
|
||||
"manual": "Calibration manuelle",
|
||||
"prev-step": "Étape précédente",
|
||||
"put-trackers-on": {
|
||||
"title": "Enfilez vos capteurs",
|
||||
"description": "Pour calibrer vos proportions, nous allons utiliser les capteurs que vous venez d'assigner.",
|
||||
"next": "J'ai tous mes capteurs"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Préparation",
|
||||
"description": "Placez une chaise directement derrière vous dans votre espace de jeu.",
|
||||
"next": "je suis devant une chaise"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "Préparez-vous à bouger",
|
||||
"description": "Nous allons maintenant enregistrer des poses et des mouvements spécifiques. ",
|
||||
"next": "Commencer l'enregistrement"
|
||||
},
|
||||
"recording": {
|
||||
"title": "Enregistrement",
|
||||
"description.p0": "Enregistrement en cours...",
|
||||
"description.p1": "Effectuez les mouvements indiqués ci-dessous:",
|
||||
"steps": {
|
||||
"0": "Pliez les genoux plusieurs fois.",
|
||||
"1": "Asseyez-vous sur une chaise puis levez-vous.",
|
||||
"2": "Tournez le haut du corps vers la gauche, puis panchez vers la droite.",
|
||||
"3": "Tournez le haut du corps vers la droite, puis panchez vers la gauche.",
|
||||
"4": "Remuez jusqu'à ce que la minuterie se termine."
|
||||
},
|
||||
"processing": "Traitement du résultat",
|
||||
"timer": "{{time}} secondes restantes"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "Vérifier les résultats",
|
||||
"description": "Les résultats ci-dessous vous semblent-ils corrects?",
|
||||
"results": "Enregistrement des résultats",
|
||||
"processing": "Traitement du résultat",
|
||||
"redo": "Refaire l'enregistrement",
|
||||
"confirm": "Les resultats sont corrects"
|
||||
},
|
||||
"done": {
|
||||
"title": "Calibration terminée",
|
||||
"description": "Votre calibration est terminée!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "Aucun capteur détecté ou attribué"
|
||||
}
|
||||
}
|
||||
@@ -1,492 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "Connessione al server in corso",
|
||||
"connection-lost": "Connessione con il server persa. Tentativo di riconnessione in corso..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "Non sei sicurə quale tracker è quale? Agitalo e l'oggetto corrispondente sarà evidenziato.",
|
||||
"do-not-move-heels": "Assicurati di non muovere i tuoi talloni durante la registrazione!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "Non assegnato",
|
||||
"HEAD": "Testa",
|
||||
"NECK": "Collo",
|
||||
"RIGHT_SHOULDER": "Spalla destra",
|
||||
"RIGHT_UPPER_ARM": "Braccio destro",
|
||||
"RIGHT_LOWER_ARM": "Avambraccio destro",
|
||||
"RIGHT_HAND": "Mano destra",
|
||||
"RIGHT_UPPER_LEG": "Coscia destra",
|
||||
"RIGHT_LOWER_LEG": "Caviglia destra",
|
||||
"RIGHT_FOOT": "Piede destro",
|
||||
"CHEST": "Petto",
|
||||
"WAIST": "Girovita",
|
||||
"HIP": "Fianchi",
|
||||
"LEFT_SHOULDER": "Spalla sinistra",
|
||||
"LEFT_UPPER_ARM": "Braccio sinistro",
|
||||
"LEFT_LOWER_ARM": "Avambraccio sinistro",
|
||||
"LEFT_HAND": "Mano sinistra",
|
||||
"LEFT_UPPER_LEG": "Coscia sinistra",
|
||||
"LEFT_LOWER_LEG": "Caviglia sinistra",
|
||||
"LEFT_FOOT": "Piede sinistro"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "Non assegnato",
|
||||
"HEAD": "Correzione Testa",
|
||||
"NECK": "Lunghezza Collo",
|
||||
"TORSO": "Torso Lunghezza",
|
||||
"CHEST": "Distanza Petto",
|
||||
"WAIST": "Distanza Girovita",
|
||||
"HIP_OFFSET": "Correzione Fianchi",
|
||||
"HIPS_WIDTH": "Larghezza Fianchi",
|
||||
"LEGS_LENGTH": "Lunghezza Gambe",
|
||||
"KNEE_HEIGHT": "Altezza Ginocchia",
|
||||
"FOOT_LENGTH": "Lunghezza Piedi",
|
||||
"FOOT_SHIFT": "Correzione Piedi",
|
||||
"SKELETON_OFFSET": "Compensazione scheletro",
|
||||
"CONTROLLER_DISTANCE_Z": "Distanza Z Controller",
|
||||
"CONTROLLER_DISTANCE_Y": "Distanza Y Controller",
|
||||
"FOREARM_LENGTH": "Distanza Avambracci",
|
||||
"SHOULDERS_DISTANCE": "Distanza Spalle",
|
||||
"SHOULDERS_WIDTH": "Larghezza Spalle",
|
||||
"UPPER_ARM_LENGTH": "Lunghezza Braccia",
|
||||
"ELBOW_OFFSET": "Correzione Gomito"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "Ripristina tutte le proporzioni",
|
||||
"full": "Ripristina",
|
||||
"mounting": "Ripristina posizionamento",
|
||||
"quick": "Reset veloce"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "Nuovo dispositivo seriale rilevato!" ,
|
||||
"new-device.p1": "Inserisci le tue credenziali WiFi!",
|
||||
"new-device.p2": "Seleziona come utilizzare il tracker, per piacere",
|
||||
"open-wifi": "Connetti al WiFi",
|
||||
"open-serial": "Apri la Serial Console",
|
||||
"submit": "Conferma!",
|
||||
"close": "Chiudi"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "Home",
|
||||
"body-proportions": "Proporzioni del corpo",
|
||||
"trackers-assign": "Assegnazione dei tracker",
|
||||
"mounting": "Calibrazione della posizionamento",
|
||||
"onboarding": "Installazione guidata",
|
||||
"settings": "Impostazioni"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "Registra BVH",
|
||||
"recording": "Registrazione in corso..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "Mostra Overlay in SteamVR",
|
||||
"is-mirrored-label": "Includi uno specchio nel Overlay"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "Nessuno Stato",
|
||||
"busy": "Occupato",
|
||||
"error": "Errore",
|
||||
"disconnected": "Disconnesso",
|
||||
"occluded": "Ostruito",
|
||||
"ok": "Connesso"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Nome",
|
||||
"type": "Tipologia",
|
||||
"battery": "Batteria",
|
||||
"ping": "Ping",
|
||||
"rotation": "Rotazione X/Y/Z",
|
||||
"position": "Rotazione X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "Davanti",
|
||||
"left": "Sinistra",
|
||||
"right": "Destra",
|
||||
"back": "Dietro"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "Produttore",
|
||||
"display-name": "Nome da visualizzare",
|
||||
"custom-name": "Nome Personalizzato",
|
||||
"url": "URL del tracker"
|
||||
},
|
||||
"settings": {
|
||||
"back": "Torna alla lista dei tracker",
|
||||
"title": "Impostazioni del tracker",
|
||||
"assignment-section": {
|
||||
"title": "Assegnazione",
|
||||
"description": "Definisce a che paste del corpo è assegnato il tracker.",
|
||||
"edit": "Cambia assegnazione"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "posizionamento di montaggio",
|
||||
"description": " Come è posizionato il tracker?",
|
||||
"edit": "Cambia posizionamento"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "Nome del tracker",
|
||||
"description": "Scegli un nomignolo carino :)",
|
||||
"input-placeholder": "Gamba destra di NightyQueer"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "Nessun nome",
|
||||
"unassigned": "Non assegnato"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "Con che parte del corpo vuoi utilizzare il tracker?",
|
||||
"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.",
|
||||
"show-advanced-locations": "Mostra impostazioni avanzate di Assegnazione",
|
||||
"manage-trackers": "Gestisci tutti i tracker",
|
||||
"unassign-tracker": "Rimuovi assegnazione del tracker"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "Quale tracker vuoi assegnare a: {{bodyPart}}?",
|
||||
"unassigned": "Tracker non assegnato",
|
||||
"assigned": "Dispositivo assegnato",
|
||||
"dont-assign": "Non assegnare"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "Come è posizionato il tracker?",
|
||||
"close": "Chiudi"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "Impostazioni",
|
||||
"general": "Generali",
|
||||
"tracker-mechanics": "Comportamento del tracker",
|
||||
"fk-settings": "Impostazioni FK",
|
||||
"gesture-control": "Controllo dei gesti",
|
||||
"interface": "Interfaccia",
|
||||
"osc-router": "OSC router",
|
||||
"utils": "Strumenti",
|
||||
"serial": "Serial console"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "Tracker di SteamVR",
|
||||
"description.p0": "Abilita o disabilita specifici tracker di SteamVR.",
|
||||
"description.p1": "Utile per alcuni giochi che utilizzano solo alcuni tracker di SteamVR.",
|
||||
"trackers": {
|
||||
"waist": "Girovita",
|
||||
"chest": "Petto",
|
||||
"feet": "Piedi",
|
||||
"knees": "Ginocchia",
|
||||
"elbows": "Gomiti",
|
||||
"hands": "Mani"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "Comportamento del tracker",
|
||||
"subtitle": "Filtro movimenti",
|
||||
"description.p0": "Scegli la tipologia di filtraggio movimenti per il tuo tracker.",
|
||||
"description.p1": "Predizione anticipa i movimenti, mentre Attenuazione attenua movimenti eccessivi.",
|
||||
"filtering-type": {
|
||||
"title": "Tipologia di filtraggio",
|
||||
"none": {
|
||||
"label": "Non usare alcun filtraggio",
|
||||
"description": "Usa le rotazioni così come sono. Non eseguirà alcun filtro."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Attenuazione",
|
||||
"description":"Attenua movimenti eccessivi ma aggiunge ritardo."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Predizione",
|
||||
"description":"Riduce ritardo e rende movimenti più istantanei, ma può introdurre tremolio."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "Quantità"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "Impostazioni FK",
|
||||
"leg-tweak": {
|
||||
"title": "Impostazioni Gambe",
|
||||
"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": "Compenetrazione pavimento",
|
||||
"skating-correction": "Correzione pattinaggio",
|
||||
"skating-correction-amount": "Forza fattore di correzione pattinaggio"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "FK Braccia",
|
||||
"description": "Cambia la modalità di tracciamento delle braccia.",
|
||||
"force-arms": "Forza il calcolo della posizione delle braccia a utilizzare il HMD"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "Impostazioni scheletro",
|
||||
"description": "Abilita o disabilita le impostazioni dello scheletro. É raccomandato lasciare queste impostazioni attive.",
|
||||
"extended-spine": "Estensione colonna vertebrale",
|
||||
"extended-pelvis": "Estensione bacino",
|
||||
"extended-knees": "Estensione ginocchia"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "Controllo dei gesti",
|
||||
"subtitle": "Reset veloce con il doppio tocco",
|
||||
"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.",
|
||||
"enable": "Reset veloce con il doppio tocco",
|
||||
"delay": "Ritardo"
|
||||
},
|
||||
"interface": {
|
||||
"title": "Interfaccia",
|
||||
"dev-mode": {
|
||||
"title": "Modalità sviluppatore",
|
||||
"description": "Questa modalità è utile se hai bisogno di dati approfonditi o devi interagire in maniera più avanzata con i tracker connessi.",
|
||||
"label": "Modalità sviluppatore"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "Rilevazione nuovi dispositivi seriali",
|
||||
"description": "Questa opzione mostrerà un pop-up ogni volta che colleghi un nuovo dispositivo seriale che potrebbe essere un tracker. Aiuta a facilitare la configurazione iniziale di un tracker",
|
||||
"label": "Rilevazione nuovi dispositivi seriali"
|
||||
},
|
||||
"lang": {
|
||||
"title": "Seleziona la lingua",
|
||||
"description": "Seleziona la lingua che vuoi utilizzare",
|
||||
"placeholder": "Seleziona la lingua da utilizzare"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Serial Console",
|
||||
"description.p0": "Questo è un feed di informazioni in tempo reale per la comunicazione seriale.",
|
||||
"description.p1": "Può essere utile se ti serve capire se il firmware sta avendo problemi.",
|
||||
"connection-lost": "Connessione seriale persa. Riconnessione in corso...",
|
||||
"reboot": "Riavvia",
|
||||
"factory-reset": "Ripristino delle impostazioni di fabbrica",
|
||||
"get-infos": "Ottieni informazioni",
|
||||
"serial-select": "Seleziona una porta seriale",
|
||||
"auto-dropdown-item": "Automatico"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "OSC router",
|
||||
"description.p0": "Inoltra messaggi OSC da un altro programma.",
|
||||
"description.p1": "Utile per utilizzare un altro programma OSC con VRChat, per esempio.",
|
||||
"enable": {
|
||||
"title": "Attiva",
|
||||
"description": "Attiva o disattiva l'inoltro dei messaggi",
|
||||
"label": "Attiva"
|
||||
},
|
||||
"network": {
|
||||
"title": "Porte di rete",
|
||||
"description.p0": "Impostare le porte di rete per l'ascolto e l'invio dei dati",
|
||||
"description.p1": "Queste possono essere le stesse porte di rete di altre porte utilizzate nel server di SlimeVR",
|
||||
"port-in": {
|
||||
"label": "Porta in ingresso",
|
||||
"placeholder": "Porta in ingresso (predefinito: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Porta in uscita",
|
||||
"placeholder": "Porta in uscita (predefinito: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Indirizzo di rete",
|
||||
"description": "Impostare l'indirizzo di rete a cui inviare i dati",
|
||||
"placeholder": "Indirizzo IPV4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "Modifica le impostazioni specifiche a VRChat per ricevere e inviare dati del HMD",
|
||||
"description.p1": "Dati dei tracker per FBT (funziona su Quest standalone).",
|
||||
"enable": {
|
||||
"title": "Attiva",
|
||||
"description": "Attiva o disattiva l'invio e la ricezione dei dati",
|
||||
"label": "Attiva"
|
||||
},
|
||||
"network": {
|
||||
"title": "Porte di rete",
|
||||
"description": "Impostare le porte di rete per ascoltare e inviare dati a VRChat",
|
||||
"port-in": {
|
||||
"label": "Porta in ingresso",
|
||||
"placeholder": "Porta in ingresso (predefinito: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Porta in uscita",
|
||||
"placeholder": "Porta in uscita (predefinito: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Indirizzo di rete",
|
||||
"description": "Scegli a quale indirizzo di rete inviare i dati di VRChat (controlla le impostazioni WiFi sul tuo dispositivo)",
|
||||
"placeholder": "Indirizzo IP di VRChat"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Tracker",
|
||||
"description": "Attiva o disattiva l'invio e la ricezione dei dati",
|
||||
"chest": "Petto",
|
||||
"waist": "Girovita",
|
||||
"knees": "Ginocchia",
|
||||
"feet": "Piedi",
|
||||
"elbows": "Gomiti"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "Salta la configurazione",
|
||||
"continue": "Continua",
|
||||
"wip": "Lavori in corso",
|
||||
"wifi-creds": {
|
||||
"back": "Torna all'introduzione",
|
||||
"title": "Inserisci credenziali WiFi",
|
||||
"description.p0": "I tracker utilizzeranno queste credenziali per connettersi in modalità wireless",
|
||||
"description.p1": "Si prega di utilizzare le stesse credenziali con cui si è attualmente connessi",
|
||||
"skip": "Salta impostazioni WiFi",
|
||||
"submit": "Conferma!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "Torna alla calibrazione posizionamento",
|
||||
"title": "Tutorial di ripristino",
|
||||
"description": "Questa funzionalità non è completa, premi continua"
|
||||
},
|
||||
"home": {
|
||||
"title": "Benvenuti a SlimeVR",
|
||||
"description.p0": "Portiamo full-body tracking",
|
||||
"description.p1": "a tuttə",
|
||||
"start": "Prepariamoci!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "Torna all'assegnazione dei tracker",
|
||||
"title": "È ora di entrare in VR!",
|
||||
"description": "Indossa tutti i tuoi tracker e entra in VR!",
|
||||
"ready": "Sono prontə!"
|
||||
},
|
||||
"done": {
|
||||
"title": "È tutto pronto!",
|
||||
"description": "Goditi la tua esperienza di full-body tracking",
|
||||
"close": "Chiudi la guida"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "Torna alle credenziali WiFi",
|
||||
"title": "Connetti i tracker",
|
||||
"description.p0": "Ora passiamo alla parte divertente, colleghiamo tutti i tracker!",
|
||||
"description.p1": "Collega semplicemente tutti i tracker che non sono ancora collegati tramite una porta USB.",
|
||||
"issue": {
|
||||
"serial": "Ho problemi con la connessione!"
|
||||
},
|
||||
"usb": "Tracker USB",
|
||||
"connection-status": {
|
||||
"connecting": "Invio credenziali WiFi in corso.",
|
||||
"connected": "Connesso al WiFi",
|
||||
"error": "Impossibile connettersi al WiFi",
|
||||
"start-connecting": "Ricerca dei tracker in corso",
|
||||
"handshake": "Connesso al Server"
|
||||
},
|
||||
"connected-trackers": "{{amount}} di tracker connessi",
|
||||
"next": "Ho collegato tutti i miei tracker"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Torna alle credenziali WiFi",
|
||||
"title": "Assegna i tracker",
|
||||
"description": "Scegliamo quale tracker va dove. Fare clic su una parte del corpo in cui si desidera assegnare un tracker",
|
||||
"assigned": "{{assigned}} di {{trackers}} tracker assegnati",
|
||||
"advanced": "Mostra impostazioni avanzate di assegnazione",
|
||||
"next": "Ho assegnato tutti i miei tracker"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "Torna indietro per entrare in VR",
|
||||
"title": "Posizionamento manuale",
|
||||
"description": "Fare clic su ogni tracker e selezionare in che direzione sono montati",
|
||||
"auto-mounting": "Posizionamento automatico",
|
||||
"next": "Passo successivo"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "Torna indietro per entrare in VR",
|
||||
"title": "Calibrazione posizionamento",
|
||||
"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.",
|
||||
"manual-mounting": "Imposta posizione manualmente",
|
||||
"next": "Passo successivo",
|
||||
"prev-step": "Passaggio precedente",
|
||||
"done": {
|
||||
"title": "Rotazione delle posizioni di montaggio calibrate.",
|
||||
"description": "La calibrazione della posizione é completa!",
|
||||
"restart": "Torna all'inizio"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "Ripristina posizionamento",
|
||||
"step": {
|
||||
"0": "1. Piegati come per sciare: con le gambe leggermente piegate e unite, la parte superiore del corpo inclinata in avanti e le braccia piegate.",
|
||||
"1": "2. Premere il pulsante \"Ripristina posizionamento\" e attendere 3 secondi prima che le rotazioni delle posizioni di montaggio dei tracker vengano ripristinate."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Preparazione",
|
||||
"step": {
|
||||
"0": "1. Stai in piedi drittə con le braccia lungo i fianchi.",
|
||||
"1": "2. Premi il pulsante \"Reset\" e attendi 3 secondi prima che i tracker vengano ripristinati."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "Indossa i tuoi tracker",
|
||||
"description": "Per calibrare le rotazioni delle posizioni montaggio useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.",
|
||||
"next": "Sto indossando tutti i miei tracker"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "Torna al tutorial di reset",
|
||||
"title": "Impostazione manuale delle proporzioni del corpo",
|
||||
"precision": "Regolazione di precisione",
|
||||
"auto": "Calibrazione automatica"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "Torna al tutorial di reset",
|
||||
"title": "Misura il tuo corpo",
|
||||
"description": "Affinché i tracker di SlimeVR funzionino dobbiamo conoscere la lunghezza dei tuoi arti. Questa breve calibrazione le misurerà per te.",
|
||||
"manual": "Calibrazione manuale",
|
||||
"prev-step": "Passaggio precedente",
|
||||
"put-trackers-on": {
|
||||
"title": "Indossa i tuoi tracker",
|
||||
"description": "Per calibrare le tue proporzioni useremo i tracker che hai appena assegnato. Indossa tutti i tuoi tracker, puoi vedere quali sono quali nella figura a destra.",
|
||||
"next": "Sto indossando tutti i miei tracker"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Preparazione",
|
||||
"description": "Posiziona una sedia direttamente dietro di te all'interno della tua area di gioco. Ti verrà richiesto di sederti durante certi passaggi della calibrazione delle proporzioni.",
|
||||
"next": "Sono davanti a una sedia"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "Preparati a muoverti",
|
||||
"description": "Ora registreremo alcune pose e movimenti specifici. Questi verranno descritte nelle schermate successive. Preparati a iniziare quando premi il pulsante!",
|
||||
"next": "Inizia registrazione"
|
||||
},
|
||||
"recording": {
|
||||
"title": "REC",
|
||||
"description.p0": "Registrazione in corso...",
|
||||
"description.p1": "Fai i movimenti mostrati di seguito:",
|
||||
"steps": {
|
||||
"0": "Piega le ginocchia un paio di volte.",
|
||||
"1": "Siediti su una sedia e poi alzati.",
|
||||
"2": "Ruota la parte superiore del corpo a sinistra, poi piegati a destra.",
|
||||
"3": "Ruota la parte superiore del corpo a destra, poi piegati a sinistra.",
|
||||
"4": "Muoviti un poco fino allo scadere del timer."
|
||||
},
|
||||
"processing": "Elaborazione del risultato",
|
||||
"timer": "{{time}} secondi rimanenti"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "Verifica i risultati",
|
||||
"description": "Controlla i risultati qui sotto, sembrano corretti?",
|
||||
"results": "Salvataggio dei risultati",
|
||||
"processing": "Elaborazione del risultato",
|
||||
"redo": "Rifai registrazione",
|
||||
"confirm": "Sono corretti"
|
||||
},
|
||||
"done": {
|
||||
"title": "Corpo misurato e salvato.",
|
||||
"description": "La calibrazione delle proporzioni del tuo corpo è completa!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "Nessun tracker rilevato o assegnato"
|
||||
}
|
||||
}
|
||||
@@ -1,460 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "サーバー接続中",
|
||||
"connection-lost": "サーバーへの接続が失われました。再接続を試みています..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "どのトラッカーがどれだかわからない?トラッカーを振ると、該当する項目がハイライトされます。",
|
||||
"do-not-move-heels": "レコーディング中にかかとが動かないように注意しましょう!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "未設定",
|
||||
"HEAD": "頭",
|
||||
"NECK": "首",
|
||||
"RIGHT_SHOULDER": "右肩",
|
||||
"RIGHT_UPPER_ARM": "右上腕",
|
||||
"RIGHT_LOWER_ARM": "右前腕",
|
||||
"RIGHT_HAND": "右手",
|
||||
"RIGHT_UPPER_LEG": "右膝",
|
||||
"RIGHT_LOWER_LEG": "右足",
|
||||
"RIGHT_FOOT": "右足先",
|
||||
"CHEST": "胸",
|
||||
"WAIST": "腰",
|
||||
"HIP": "ヒップ",
|
||||
"LEFT_SHOULDER": "左肩",
|
||||
"LEFT_UPPER_ARM": "左上腕",
|
||||
"LEFT_LOWER_ARM": "左前腕",
|
||||
"LEFT_HAND": "左手",
|
||||
"LEFT_UPPER_LEG": "左膝",
|
||||
"LEFT_LOWER_LEG": "左足",
|
||||
"LEFT_FOOT": "左足先"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "無し",
|
||||
"HEAD": "ヘッドシフト",
|
||||
"NECK": "首長さ",
|
||||
"TORSO": "胴長さ",
|
||||
"CHEST": "胸部の距離",
|
||||
"WAIST": "腰部の距離",
|
||||
"HIP_OFFSET": "ヒップオフセット",
|
||||
"HIPS_WIDTH": "ヒップ幅",
|
||||
"LEGS_LENGTH": "脚長さ",
|
||||
"KNEE_HEIGHT": "膝高さ",
|
||||
"FOOT_LENGTH": "足先長さ",
|
||||
"FOOT_SHIFT": "足先シフト",
|
||||
"SKELETON_OFFSET": "スケルトンオフセット",
|
||||
"CONTROLLER_DISTANCE_Z": "コントローラ距離 Z",
|
||||
"CONTROLLER_DISTANCE_Y": "コントローラ距離 Y",
|
||||
"FOREARM_LENGTH": "前腕長さ",
|
||||
"SHOULDERS_DISTANCE": "肩の距離",
|
||||
"SHOULDERS_WIDTH": "肩幅",
|
||||
"UPPER_ARM_LENGTH": "上腕長さ",
|
||||
"ELBOW_OFFSET": "肘オフセット"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "すべてのプロポーションをリセット",
|
||||
"full": "リセット",
|
||||
"mounting": "リセットマウンティング",
|
||||
"quick": "クイックリセット"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "新しいシリアルデバイスを検出しました!" ,
|
||||
"new-device.p1": "wifiの認証情報を入力してください!",
|
||||
"new-device.p2": "何をするか選択してください",
|
||||
"open-wifi": "WiFiに接続",
|
||||
"open-serial": "シリアルコンソールを開く",
|
||||
"submit": "実行!",
|
||||
"close": "閉じる"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "ホーム",
|
||||
"body-proportions": "ボディプロポーション",
|
||||
"trackers-assign": "トラッカー割り当て",
|
||||
"mounting": "マウントキャリブレーション",
|
||||
"onboarding": "セットアップ ウィザード",
|
||||
"settings": "設定"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "BVHレコーディング",
|
||||
"recording": "レコーディング中..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "SteamVRでオーバーレイを表示する",
|
||||
"is-mirrored-label": "オーバーレイをミラーとして表示する"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "ステータスなし",
|
||||
"busy": "Busy",
|
||||
"error": "エラー",
|
||||
"disconnected": "切断",
|
||||
"occluded": "Occluded",
|
||||
"ok": "接続中"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Name",
|
||||
"type": "Type",
|
||||
"battery": "Battery",
|
||||
"ping": "Ping",
|
||||
"rotation": "Rotation X/Y/Z",
|
||||
"position": "Position X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "前",
|
||||
"left": "左",
|
||||
"right": "右",
|
||||
"back": "後"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "メーカ-",
|
||||
"display-name": "表示名",
|
||||
"custom-name": "カスタム名称",
|
||||
"url": "トラッカーURL"
|
||||
},
|
||||
"settings": {
|
||||
"back": "トラッカーリストへ戻る",
|
||||
"title": "トラッカー設定",
|
||||
"assignment-section": {
|
||||
"title": "割り当て",
|
||||
"description": "トラッカーが体のどの部位に装着されているか",
|
||||
"edit": "割り当ての編集"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "装着方向",
|
||||
"description": "トラッカーをどの方向に装着していますか?",
|
||||
"edit": "装着向きの編集"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "トラッカー名称",
|
||||
"description": "自由に名称をつけてください",
|
||||
"input-placeholder": "NightyBeast's left leg"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "名称無し",
|
||||
"unassigned": "未割り当て"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "このトラッカーをどこに配置しますか?",
|
||||
"description": "このトラッカーを割り当てる場所を選択します。また、トラッカーを一つずつ管理するのではなく、すべてのトラッカーを一括して管理することもできます。",
|
||||
"show-advanced-locations": "高度な割り当て場所の表示",
|
||||
"manage-trackers": "すべてのトラッカーの管理",
|
||||
"unassign-tracker": "トラッカーの割り当て解除"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "{{bodyPart}}どのトラッカーを割り当てますか?",
|
||||
"unassigned": "未割り当てのトラッカー",
|
||||
"assigned": "割り当て済みのトラッカー",
|
||||
"dont-assign": "割り当てない"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "このトラッカーをどこに配置しますか?",
|
||||
"close": "閉じる"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "設定",
|
||||
"general": "一般",
|
||||
"tracker-mechanics": "トラッカーメカニズム",
|
||||
"fk-settings": "FK設定",
|
||||
"interface": "インターフェース",
|
||||
"utils": "ユーティリティ",
|
||||
"serial": "シリアルコンソール"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "SteamVRのトラッカー",
|
||||
"description.p0": "有効化したい部位にチャックを入れてください。",
|
||||
"description.p1": "SlimeVRが行うことをよりコントロールしたい場合に便利です。",
|
||||
"trackers": {
|
||||
"waist": "腰",
|
||||
"chest": "胸",
|
||||
"feet": "足",
|
||||
"knees": "膝",
|
||||
"elbows": "肘"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "トラッカーメカニズム",
|
||||
"subtitle": "フィルター機能",
|
||||
"description.p0": "トラッカーのフィルタリングの種類を選択します。",
|
||||
"description.p1": "Predictionは動きを予測し、Smoothingは動きを滑らかにする。",
|
||||
"filtering-type": {
|
||||
"title": "フィルタータイプ",
|
||||
"none": {
|
||||
"label": "No filtering",
|
||||
"description":"トラッカーの値をそのまま使用します。フィルタリングは行いません。"
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Smoothing",
|
||||
"description":"動きを滑らかにしますが、若干の遅れが発生します"
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Prediction",
|
||||
"description":"レイテンシーを減らし、動きをよりキビキビさせますが、ジッターが増加する場合があります。"
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "数値"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "FK設定",
|
||||
"leg-tweak": {
|
||||
"title": "脚の微調整",
|
||||
"description": "フロアクリップは、床とのクリッピングを減らす、あるいはなくすことができますが、膝をついたときに問題が発生する可能性があります。スケーティング補正は足の滑りを補正できますが、特定の動作パターンでは精度が落ちることがあります。",
|
||||
"floor-clip": "フロアクリップ",
|
||||
"skating-correction": "スケーティング補正"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "アームFK",
|
||||
"description": "腕の追従方法を変更する。",
|
||||
"force-arms": "Force arms from HMD"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "スケルトン設定",
|
||||
"description": "スケルトン設定のオン/オフを切り替えます。これらはオンのままにしておくことをお勧めします。",
|
||||
"extended-spine": "Extended spine",
|
||||
"extended-pelvis": "Extended pelvis",
|
||||
"extended-knees": "Extended knee"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "ジェスチャーコントロール",
|
||||
"subtitle": "ダブルタップクイックリセット",
|
||||
"description": "ダブルタップクイックリセットの有効・無効を設定します。有効にすると、最も高い胴体トラッカー上の任意の場所をダブルタップすると、クイックリセットが起動します。ディレイは、タップされてからリセットされるまでの時間です。",
|
||||
"enable": "ダブルタップクイックリセット",
|
||||
"delay": "ディレイ"
|
||||
},
|
||||
"interface": {
|
||||
"title": "インターフェース",
|
||||
"dev-mode": {
|
||||
"title": "開発者モード",
|
||||
"description": "このモードは、詳細なデータが必要な場合や、接続されたトラッカーをより高度なレベルで操作する場合に役立ちます。",
|
||||
"label": "開発者モード"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "シリアルデバイスの検出",
|
||||
"description": "このオプションは、トラッカーとなり得る新しいシリアルデバイスを接続するたびにポップアップを表示します。これはトラッカーの設定プロセスを改善するのに役立ちます。",
|
||||
"label": "シリアルデバイスの検出"
|
||||
},
|
||||
"lang": {
|
||||
"title": "言語を選択",
|
||||
"description": "使用したいデフォルトの言語を変更する",
|
||||
"placeholder": "使用する言語を選択する"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "シリアルコンソール",
|
||||
"description.p0": "シリアル通信のライブ情報フィードです。",
|
||||
"description.p1": "ファームウェアの動作を知る必要がある場合に有用かもしれません。",
|
||||
"connection-lost": "シリアルへの接続が失われました、再接続中...",
|
||||
"reboot": "リブート",
|
||||
"factory-reset": "ファクトリーリセット",
|
||||
"get-infos": "情報取得",
|
||||
"serial-select": "シリアルポートを選択",
|
||||
"auto-dropdown-item": "自動"
|
||||
},
|
||||
"osc": {
|
||||
"vrchat": {
|
||||
"description.p0": "HMDのデータを受信して送信するためにVRChat固有の設定を変更する。",
|
||||
"description.p1": "FBT用のトラッカーデータ(Questスタンドアロンで動作します)",
|
||||
"enable": {
|
||||
"title": "有効",
|
||||
"description": "データの送受信を切り替える。",
|
||||
"label": "有効"
|
||||
},
|
||||
"network": {
|
||||
"title": "ネットワークポート",
|
||||
"description": "VRChatへのデータを送受信するためのポートを設定します。",
|
||||
"port-in": {
|
||||
"label": "ポートイン",
|
||||
"placeholder": "ポートイン (デフォルト: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "ポートアウト",
|
||||
"placeholder": "ポートアウト (デフォルト: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "ネットワークアドレス",
|
||||
"description": "VRChatにデータを送信するアドレスを選択してください(デバイスのwifi設定を確認してください)",
|
||||
"placeholder": "VRChatのIPアドレス"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "トラッカー",
|
||||
"description": "データの送受信を切り替える。",
|
||||
"chest": "胸",
|
||||
"waist": "腰",
|
||||
"knees": "膝",
|
||||
"feet": "足",
|
||||
"elbows": "肘"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "設定をスキップする",
|
||||
"continue": "続ける",
|
||||
"wip": "実行中",
|
||||
"wifi-creds": {
|
||||
"back": "戻る",
|
||||
"title": "WiFiの認証情報の入力",
|
||||
"description.p0": "トラッカーはこれらの認証情報を使ってwifiに接続します。",
|
||||
"description.p1": "現在接続している認証情報を使用してください。",
|
||||
"skip": "wifi設定をスキップする",
|
||||
"submit": "実行!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "マウントキャリブレーションに戻る",
|
||||
"title": "リセットチュートリアル",
|
||||
"description": "この機能は終了していません。続けるを押してください。"
|
||||
},
|
||||
"home": {
|
||||
"title": "Welcome to SlimeVR",
|
||||
"description.p0": "Bringing full-body tracking",
|
||||
"description.p1": "to everyone",
|
||||
"start": "セットアップ開始!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "トラッカー割り当てに戻る",
|
||||
"title": "VRに入る時間だ!",
|
||||
"description": "トラッカーを全部つけて、VRに突入せよ!",
|
||||
"ready": "準備完了"
|
||||
},
|
||||
"done": {
|
||||
"title": "準備完了です!",
|
||||
"description": "フルトラをお楽しみください",
|
||||
"close": "ガイドを閉じる"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "WiFi認証に戻る",
|
||||
"title": "接続中のトラッカー",
|
||||
"description.p0": "さあ、楽しい部分に移りましょう。すべてのトラッカーを接続します!",
|
||||
"description.p1": "まだ接続されていないトラッカーたちをUSBポートを通して接続するだけです。",
|
||||
"issue": {
|
||||
"serial": "接続に問題があります!"
|
||||
},
|
||||
"usb": "USBトラッカー",
|
||||
"connection-status": {
|
||||
"connecting": "wifiの認証情報を送信中",
|
||||
"connected": "WiFiに接続されました",
|
||||
"error": "Wifiに接続できません",
|
||||
"start-connecting": "トラッカーを探しています",
|
||||
"handshake": "サーバーに接続されました"
|
||||
},
|
||||
"connected-trackers": "{{amount}} トラッカーが接続されました",
|
||||
"next": "すべてのトラッカーを接続しました"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Wifi認証に戻る",
|
||||
"title": "トラッカーを割り当てる",
|
||||
"description": "どのトラッカーをどこに置くか選んでみましょう。トラッカーを配置したい場所をクリックしてください。",
|
||||
"assigned": "{{assigned}} of {{trackers}} trackers assigned",
|
||||
"advanced": "高度な割り当て場所の表示",
|
||||
"next": "すべてのトラッカーを割り当てました"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "VRの入力に戻る",
|
||||
"title": "マニュアルマウント",
|
||||
"description": "すべてのトラッカーをクリックし、どの方向にマウントするかを選択",
|
||||
"auto-mounting": "自動マウント",
|
||||
"next": "次のステップ"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "VRの入力に戻る",
|
||||
"title": "マウントキャリブレーション",
|
||||
"description": "SlimeVRのトラッカーを動作させるためには、物理的なトラッカーの取り付け位置と合わせるために、トラッカーの取り付け方向を合わせる必要があります。",
|
||||
"manual-mounting": "マニュアルマウント",
|
||||
"next": "次のステップ",
|
||||
"prev-step": "前のステップ",
|
||||
"done": {
|
||||
"title": "取り付け方向の較正を行いました。",
|
||||
"description": "マウントのキャリブレーションが完了しました!",
|
||||
"restart": "最初に戻る"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "マウントリセット",
|
||||
"step": {
|
||||
"0": "1. 足を曲げ、上体を前に倒し、腕を曲げた状態で、スキーのポーズでしゃがむ。",
|
||||
"1": "2. リセットマウンティングボタンを押し、3秒待つと装着方向がリセットされます。"
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "準備",
|
||||
"step": {
|
||||
"0": "1. 両手を横に広げて直立します。",
|
||||
"1": "2. リセットボタンを押し、3秒待つとリセットされます。"
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "トラッカーを装着する",
|
||||
"description": "マウントの方向を較正するために、先ほど割り当てたトラッカーを使用します。右の図でどれがどれだかわかると思います。",
|
||||
"next": "すべてのトラッカーを装着しました"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "チュートリアルをリセットする",
|
||||
"title": "マニュアルボディプロポーション",
|
||||
"precision": "精度を調整する",
|
||||
"auto": "自動キャリブレーション"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "チュートリアルをリセットする",
|
||||
"title": "自分の体の測定",
|
||||
"description": "SlimeVRのトラッカーが動作するためには、あなたの骨の長さを知る必要があります。この短いキャリブレーションでそれを測定します。",
|
||||
"manual": "手動調整",
|
||||
"prev-step": "前のステップ",
|
||||
"put-trackers-on": {
|
||||
"title": "トラッカーを装着する",
|
||||
"description": "プロポーションを調整するために、先ほど割り当てたトラッカーを使用します。右の図で、どれがどのトラッカーかわかると思います。",
|
||||
"next": "すべてのトラッカーを装着しました"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "準備",
|
||||
"description": "プレイスペース内のあなたの真後ろに椅子を置いてください。オートボーンセットアップの間、座れるように準備してください。",
|
||||
"next": "椅子の前にいます"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "測定の準備をする",
|
||||
"description": "これから具体的なポーズや動きを記録します。これらは次の画面に表示されます。ボタンが押されたらすぐに始められるように準備しておいてください!",
|
||||
"next": "レコーディングスタート"
|
||||
},
|
||||
"recording": {
|
||||
"title": "REC",
|
||||
"description.p0": "レコーディング中...",
|
||||
"description.p1": "以下に示すような動きをします。",
|
||||
"steps": {
|
||||
"0": "膝を数回曲げてください",
|
||||
"1": "椅子に座り、立ち上がる",
|
||||
"2": "上半身を左にひねり、右に曲げる",
|
||||
"3": "上半身を右にひねり、左に曲げる",
|
||||
"4": "タイマーが終わるまで体をくねらせる"
|
||||
},
|
||||
"processing": "結果を処理中",
|
||||
"timer": "あと {{time}} 秒"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "結果を確認",
|
||||
"description": "以下の結果を確認してください。正しく表示されていますか?",
|
||||
"results": "記録結果",
|
||||
"processing": "結果の処理",
|
||||
"redo": "レコーディングやり直し",
|
||||
"confirm": "正確です"
|
||||
},
|
||||
"done": {
|
||||
"title": "体を測定して保存",
|
||||
"description": "ボディプロポーションのキャリブレーションが完了しました!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "トラッカーを検出できません。もしくは割り当てられていません。"
|
||||
}
|
||||
}
|
||||
@@ -1,491 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "서버에 연결하는 중...",
|
||||
"connection-lost": "서버와의 연결이 끊어졌어요. 다시 연결하는 중..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "내 트래커가 어떤 트래커인지 모르시겠다구요? 트래커를 흔들면 해당 항목이 빛날 거에요.",
|
||||
"do-not-move-heels": "기록하는 동안 발뒤꿈치가 움직이지 않도록 조심하세요!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "할당되지 않음",
|
||||
"HEAD": "머리",
|
||||
"NECK": "목",
|
||||
"RIGHT_SHOULDER": "오른쪽 어깨",
|
||||
"RIGHT_UPPER_ARM": "오른쪽 팔 위",
|
||||
"RIGHT_LOWER_ARM": "오른쪽 팔 아래",
|
||||
"RIGHT_HAND": "오른손",
|
||||
"RIGHT_UPPER_LEG": "오른쪽 다리 위",
|
||||
"RIGHT_LOWER_LEG": "오른쪽 다리 아래",
|
||||
"RIGHT_FOOT": "오른발",
|
||||
"CHEST": "가슴",
|
||||
"WAIST": "허리",
|
||||
"HIP": "골반",
|
||||
"LEFT_SHOULDER": "오른쪽 어깨",
|
||||
"LEFT_UPPER_ARM": "왼쪽 팔 위",
|
||||
"LEFT_LOWER_ARM": "왼쪽 팔 아래",
|
||||
"LEFT_HAND": "왼손",
|
||||
"LEFT_UPPER_LEG": "왼쪽 다리 위",
|
||||
"LEFT_LOWER_LEG": "왼쪽 다리 아래",
|
||||
"LEFT_FOOT": "왼발"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "None",
|
||||
"HEAD": "머리 밀림",
|
||||
"NECK": "목 길이",
|
||||
"TORSO": "몸통 길이",
|
||||
"CHEST": "가슴 거리",
|
||||
"WAIST": "허리 거리",
|
||||
"HIP_OFFSET": "골반 오프셋",
|
||||
"HIPS_WIDTH": "골반 너비",
|
||||
"LEGS_LENGTH": "다리 길이",
|
||||
"KNEE_HEIGHT": "무릎 높이",
|
||||
"FOOT_LENGTH": "발 크기",
|
||||
"FOOT_SHIFT": "발 밀림",
|
||||
"SKELETON_OFFSET": "골격 오프셋",
|
||||
"CONTROLLER_DISTANCE_Z": "컨트롤러 Z축 거리",
|
||||
"CONTROLLER_DISTANCE_Y": "컨트롤러 Y축 거리",
|
||||
"FOREARM_LENGTH": "전완 길이",
|
||||
"SHOULDERS_DISTANCE": "어깨 거리",
|
||||
"SHOULDERS_WIDTH": "어깨 너비",
|
||||
"UPPER_ARM_LENGTH": "위팔 거리",
|
||||
"ELBOW_OFFSET": "팔꿈치 오프셋"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "모든 신체 비율 리셋",
|
||||
"full": "리셋",
|
||||
"mounting": "착용 방향 리셋",
|
||||
"quick": "퀵 리셋"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "새로운 시리얼 디바이스를 찾았어요!" ,
|
||||
"new-device.p1": "WiFi 자격 증명을 입력해주세요!",
|
||||
"new-device.p2": "원하는 작업을 선택하세요",
|
||||
"open-wifi": "WiFi 연결",
|
||||
"open-serial": "시리얼 콘솔 열기",
|
||||
"submit": "저장!",
|
||||
"close": "닫기"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "홈",
|
||||
"body-proportions": "신체 비율",
|
||||
"trackers-assign": "트래커 위치",
|
||||
"mounting": "착용 방향 정렬",
|
||||
"onboarding": "설정 마법사",
|
||||
"settings": "설정"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "BVH 기록",
|
||||
"recording": "기록중..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "SteamVR에서 오버레이 표시",
|
||||
"is-mirrored-label": "오버레이 반전"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "No Status",
|
||||
"busy": "바쁨",
|
||||
"error": "오류",
|
||||
"disconnected": "연결되지 않음",
|
||||
"occluded": "사용할 수 없음",
|
||||
"ok": "연결됨"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "이름",
|
||||
"type": "타입",
|
||||
"battery": "배터리",
|
||||
"ping": "Ping",
|
||||
"rotation": "X/Y/Z 회전",
|
||||
"position": "X/Y/Z 위치",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "앞쪽",
|
||||
"left": "왼쪽",
|
||||
"right": "오른쪽",
|
||||
"back": "뒤쪽"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "제조사",
|
||||
"display-name": "표시되는 이름",
|
||||
"custom-name": "사용자 정의 이름",
|
||||
"url": "트래커 URL"
|
||||
},
|
||||
"settings": {
|
||||
"back": "트래커 목록으로 돌아가기",
|
||||
"title": "트래커 설정",
|
||||
"assignment-section": {
|
||||
"title": "트래커 위치 지정",
|
||||
"description": "트래커가 위치한 신체 부위",
|
||||
"edit": "위치 수정"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "착용 방향",
|
||||
"description": "트래커는 어디에 착용하나요?",
|
||||
"edit": "방향 수정"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "트래커 이름",
|
||||
"description": "귀여운 이름을 지어주세요! >_<",
|
||||
"input-placeholder": "NightyBeast's left leg"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "이름 없음",
|
||||
"unassigned": "할당되지 않음"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "트래커가 어디에 있나요?",
|
||||
"description": "이 트래커를 할당할 위치를 선택하세요. 또는, 모든 트래커를 한 번에 설정할 수도 있어요.",
|
||||
"show-advanced-locations": "고급 할당 위치 표시",
|
||||
"manage-trackers": "모든 트래커 설정",
|
||||
"unassign-tracker": "할당하지 않기"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "{{bodyPart}}에 어떤 트래커를 할당할까요?",
|
||||
"unassigned": "할당되지 않은 트래커",
|
||||
"assigned": "할당된 트래커",
|
||||
"dont-assign": "할당하지 않기"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "트래커가 어디에 있나요?",
|
||||
"close": "닫기"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "설정",
|
||||
"general": "일반",
|
||||
"tracker-mechanics": "트래커 역학",
|
||||
"fk-settings": "FK 설정",
|
||||
"gesture-control": "제스처 제어",
|
||||
"interface": "인터페이스",
|
||||
"osc-router": "OSC 라우터",
|
||||
"utils": "유틸리티",
|
||||
"serial": "시리얼 콘솔"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "SteamVR 트래커",
|
||||
"description.p0": "SteamVR 트래커를 켜거나 끄세요",
|
||||
"description.p1": "특정 트래커 구성만 허용하는 게임 또는 앱에서 유용해요.",
|
||||
"trackers": {
|
||||
"waist": "Waist",
|
||||
"chest": "Chest",
|
||||
"feet": "Feet",
|
||||
"knees": "Knees",
|
||||
"elbows": "Elbows"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "트래커 역학",
|
||||
"subtitle": "필터링",
|
||||
"description.p0": "트래커의 필터링 유형을 선택하세요.",
|
||||
"description.p1": "Prediction은 움직임을 예측하고 Smoothing은 움직임을 부드럽게 해요.",
|
||||
"filtering-type": {
|
||||
"title": "필터링 타입",
|
||||
"none": {
|
||||
"label": "필터링 없음",
|
||||
"description":"어떠한 필터링도 사용하지 않아요. 있는 그대로의 회전 값을 사용해요."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Smoothing",
|
||||
"description":"움직임을 부드럽게 하지만 약간의 대기 시간이 추가돼요."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Prediction",
|
||||
"description":"대기 시간이 줄어들고 움직임이 더 빨라지지만 지터가 증가할 수 있어요."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "강도"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "FK 설정",
|
||||
"leg-tweak": {
|
||||
"title": "다리 보정",
|
||||
"description": "플로어 클립은 바닥과의 클리핑을 줄이거나 제거할 수 있지만 무릎을 꿇을 때 문제를 일으킬 수 있어요. 스케이팅 보정은 아이스 스케이팅을 보정하지만, 특정 움직임 패턴에서 정확도를 저하시킬 수 있어요.",
|
||||
"floor-clip": "플로어 클립",
|
||||
"skating-correction": "스케이팅 보정",
|
||||
"skating-correction-amount": "스케이팅 보정 강도"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "팔 운동학",
|
||||
"description": "팔이 추적되는 방식을 변경할 수 있어요.",
|
||||
"force-arms": "팔을 HMD에서만 받아오기"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "골격 설정",
|
||||
"description": "골격 설정을 설정하거나 해제해요. 이것들은 켜두는 게 좋아요.",
|
||||
"extended-spine": "척추 확장",
|
||||
"extended-pelvis": "골반 확장",
|
||||
"extended-knees": "무릎 확장"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "제스처 제어",
|
||||
"subtitle": "두 번 탭해서 퀵 리셋하기",
|
||||
"description": "활성화하면 가장 높이 있는 트래커의 아무 곳이나 두 번 탭해서 퀵 리셋을 활성화할 수 있어요. 두번 탭하는 간격은 딜레이로 조절할 수 있어요.",
|
||||
"enable": "두번 탭해서 퀵 리셋",
|
||||
"delay": "딜레이"
|
||||
},
|
||||
"interface": {
|
||||
"title": "인터페이스",
|
||||
"dev-mode": {
|
||||
"title": "개발자 모드",
|
||||
"description": "이 모드는 더 많은 데이터가 필요하거나 고급 수준에서 연결된 트래커와 상호 작용하는 경우에 유용할 수 있어요.",
|
||||
"label": "개발자 모드"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "시리얼 디바이스 감지",
|
||||
"description": "이 옵션은 트래커일 수도 있는 새로운 시리얼 디바이스를 연결할 때마다 팝업을 표시해요. 트래커 설정 프로세스를 개선하는 데 도움이 될 거에요.",
|
||||
"label": "시리얼 디바이스 감지"
|
||||
},
|
||||
"lang": {
|
||||
"title": "언어 선택",
|
||||
"description": "사용하고 싶은 기본 언어를 선택하세요.",
|
||||
"placeholder": "사용할 언어를 선택하세요"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "시리얼 콘솔",
|
||||
"description.p0": "이 라이브 피드에서 시리얼 디바이스와 통신할 수 있어요.",
|
||||
"description.p1": "펌웨어가 제대로 작동하는지 알아야 할 때 유용할 거에요.",
|
||||
"connection-lost": "시리얼 연결 끊김, 다시 연결 중...",
|
||||
"reboot": "재부팅",
|
||||
"factory-reset": "공장 초기화",
|
||||
"get-infos": "정보 가져오기",
|
||||
"serial-select": "시리얼 포트 선택",
|
||||
"auto-dropdown-item": "자동"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "OSC 라우터",
|
||||
"description.p0": "다른 프로그램에서 오는 OSC 메시지를 전달해요.",
|
||||
"description.p1": "예를 들어 VRChat과 함께 다른 OSC 프로그램을 사용하는 데 유용할 거에요.",
|
||||
"enable": {
|
||||
"title": "활성화",
|
||||
"description": "활성화해서 메세지 전달 켜기",
|
||||
"label": "활성화"
|
||||
},
|
||||
"network": {
|
||||
"title": "네트워크 포트",
|
||||
"description.p0": "데이터 수신 및 전송을 위한 포트 설정",
|
||||
"description.p1": "이들은 SlimeVR 서버에서 사용되는 다른 포트와 동일할 수 있어요.",
|
||||
"port-in": {
|
||||
"label": "들어오는 포트",
|
||||
"placeholder": "Port in (기본값: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "나가는 포트",
|
||||
"placeholder": "Port out (기본값: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "네트워크 주소",
|
||||
"description": "데이터를 보낼 주소를 설정하세요.",
|
||||
"placeholder": "IPV4 주소"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "HMD 데이터 수신 및 전송을 위한 VRChat 관련 설정 변경",
|
||||
"description.p1": "FBT용 트래커 데이터(Quest 단독에서 작동)",
|
||||
"enable": {
|
||||
"title": "활성화",
|
||||
"description": "활성화해서 데이터 송수신 전환",
|
||||
"label": "활성화"
|
||||
},
|
||||
"network": {
|
||||
"title": "네트워크 포트",
|
||||
"description": "VRChat과 데이터를 주고받는 포트 설정",
|
||||
"port-in": {
|
||||
"label": "들어오는 포트",
|
||||
"placeholder": "Port in (기본값: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "나가는 포트",
|
||||
"placeholder": "Port out (기본값: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "네트워크 주소",
|
||||
"description": "VRChat으로 데이터를 보낼 주소를 선택하세요(장치의 Wi-Fi 설정 확인).",
|
||||
"placeholder": "VRChat IP 주소"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "트래커",
|
||||
"description": "활성화해서 데이터 송수신 전환",
|
||||
"chest": "Chest",
|
||||
"waist": "Waist",
|
||||
"knees": "Knees",
|
||||
"feet": "Feet",
|
||||
"elbows": "Elbows"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "설정 건너뛰기",
|
||||
"continue": "계속하기",
|
||||
"wip": "아직 공사 중이에요",
|
||||
"wifi-creds": {
|
||||
"back": "처음으로 돌아가기",
|
||||
"title": "WiFi 자격 증명을 입력하세요",
|
||||
"description.p0": "트래커는 이 자격 증명을 사용하여 무선으로 연결해요",
|
||||
"description.p1": "지금 연결되어 있는 자격 증명을 사용해주세요",
|
||||
"skip": "WiFi 설정 건너뛰기",
|
||||
"submit": "저장!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "착용 방향 정렬로 돌아가기",
|
||||
"title": "리셋 튜토리얼",
|
||||
"description": "이 기능은 아직 완성되지 않았어요, 지금은 일단 계속하기를 눌러주세요!"
|
||||
},
|
||||
"home": {
|
||||
"title": "SlimeVR에 어서오세요!",
|
||||
"description.p0": "Bringing full-body tracking",
|
||||
"description.p1": "to everyone",
|
||||
"start": "설정하러 가보죠!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "트래커 위치 지정으로 돌아가기",
|
||||
"title": "VR에 들어갈 시간이에요!",
|
||||
"description": "모든 트래커를 착용하고 VR에 입장하세요!",
|
||||
"ready": "준비됐어요!"
|
||||
},
|
||||
"done": {
|
||||
"title": "모든 설정을 마쳤어요!",
|
||||
"description": "풀바디 트래킹을 즐기세요!",
|
||||
"close": "마법사 닫기"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "WiFi 자격 증명으로 돌아가기",
|
||||
"title": "트래커 연결",
|
||||
"description.p0": "이제 모든 트래커를 연결하는 재미있는 부분으로 가봐요!",
|
||||
"description.p1": "그냥 모든 트래커를 USB 포트에 연결하기만 하면 돼요",
|
||||
"issue": {
|
||||
"serial": "연결하는 데 문제가 생겼어요!"
|
||||
},
|
||||
"usb": "USB 트래커",
|
||||
"connection-status": {
|
||||
"connecting": "WiFi 자격증명 전송 중",
|
||||
"connected": "WiFi 연결됨",
|
||||
"error": "Wifi에 연결할 수 없음",
|
||||
"start-connecting": "트래커 찾는 중",
|
||||
"handshake": "서버에 연결됨"
|
||||
},
|
||||
"connected-trackers": "트래커 {{amount}}개 연결됨",
|
||||
"next": "모든 트래커를 잘 연결했어요"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "WiFi 자격 증명으로 돌아가기",
|
||||
"title": "트래커 위치 지정",
|
||||
"description": "이제, 어떤 트래커가 어디에 있는지 선택할 시간이에요. 트래커를 배치할 위치를 클릭해보세요",
|
||||
"assigned": "{{assigned}}/{{trackers}} 트래커 할당됨",
|
||||
"advanced": "고급 할당 위치 보기",
|
||||
"next": "모든 트래커를 배치했어요"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "VR 입장 페이지로 돌아가기",
|
||||
"title": "수동으로 착용 방향 설정",
|
||||
"description": "트래커를 클릭한 다음, 트래커가 바라보는 방향을 선택해주세요",
|
||||
"auto-mounting": "자동으로 착용 방향 설정",
|
||||
"next": "다음 단계"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "VR 입장 페이지로 돌아가기",
|
||||
"title": "착용 방향 정렬",
|
||||
"description": "SlimeVR 트래커가 작동하려면, 착용 방향을 정해야 해요. 이 단계에서는 실제 트래커의 회전과 맞게 착용 방향을 정렬할 거에요.",
|
||||
"manual-mounting": "수동으로 착용 방향 설정",
|
||||
"next": "다음 단계",
|
||||
"prev-step": "이전 단계",
|
||||
"done": {
|
||||
"title": "착용 방향이 정렬되었어요",
|
||||
"description": "트래커의 착용 방향이 잘 설정되었어요!",
|
||||
"restart": "다시 처음으로 돌아가기"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "착용 방향 정렬",
|
||||
"step": {
|
||||
"0": "1. 팔, 다리를 구부린 다음 상체를 앞으로 기울여서 마치 스키를 타는 것처럼 쪼그리고 앉으세요.",
|
||||
"1": "2. \"착용 방향 재설정\" 버튼을 누르고 착용 방향이 재설정될 때 까지 3초간 기다려주세요."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "준비",
|
||||
"step": {
|
||||
"0": "1. 팔을 몸에 붙이고 똑바로 서 주세요",
|
||||
"1": "2. \"리셋\" 버튼을 누르고 트래커가 리셋될 때까지 3초 동안 기다려주세요"
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "트래커를 착용해주세요",
|
||||
"description": "트래커의 착용 방향이 돌아가는 것을 보정하기 위해 방금 할당한 트래커를 사용할 거에요. 모든 트래커를 착용했다면 오른쪽 그림에서 어떤 트래커인지 확인할 수 있어요.",
|
||||
"next": "모든 트래커를 착용했어요"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "리셋 튜토리얼로 돌아가기",
|
||||
"title": "수동 신체 비율 설정",
|
||||
"precision": "자세히 조절하기",
|
||||
"auto": "자동 신체 비율 설정"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "리셋 튜토리얼로 돌아가기",
|
||||
"title": "신체 비율을 측정해보세요",
|
||||
"description": "SlimeVR 트래커가 작동하려면 뼈의 길이를 알아야 하는데, 이 짧은 보정을 통해 측정할 수 있어요.",
|
||||
"manual": "수동 신체 비율 설정",
|
||||
"prev-step": "뒤로",
|
||||
"put-trackers-on": {
|
||||
"title": "트래커를 착용하세요",
|
||||
"description": "비율을 조정하기 위해 방금 할당한 트래커를 사용할 거에요. 모든 트래커를 착용하면 오른쪽 그림에서 어떤 것이 있는지 알 수 있어요.",
|
||||
"next": "트래커를 다 착용했어요"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "준비하기",
|
||||
"description": "여러분의 놀이 공간 안에 여러분의 바로 뒤에 의자를 놓으세요. 오토본 설정 중에 앉을 수 있도록 준비해주세요.",
|
||||
"next": "의자 앞에 서 있어요"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "움직일 준비",
|
||||
"description": "이제 몇 가지 특정 포즈와 동작을 기록할 거에요. 다음 화면에서 메시지가 표시되면 버튼을 눌러서 시작하세요!",
|
||||
"next": "기록 시작하기"
|
||||
},
|
||||
"recording": {
|
||||
"title": "REC",
|
||||
"description.p0": "기록하는 중...",
|
||||
"description.p1": "아래에 표시된 동작을 따라 하세요",
|
||||
"steps": {
|
||||
"0": "무릎을 몇 번 구부리세요",
|
||||
"1": "의자에 앉았다가 일어서세요.",
|
||||
"2": "상체를 왼쪽으로 비틀고 오른쪽으로 구부리세요.",
|
||||
"3": "상체를 오른쪽으로 비틀고 왼쪽으로 구부리세요.",
|
||||
"4": "타이머가 종료될 때까지 이리저리 움직여 보세요."
|
||||
},
|
||||
"processing": "결과 처리 중",
|
||||
"timer": "{{time}} 초 남음"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "결과를 확인하세요",
|
||||
"description": "아래 결과를 한번 보세요, 어때요?",
|
||||
"results": "기록 결과",
|
||||
"processing": "결과 처리중",
|
||||
"redo": "다시 기록하기",
|
||||
"confirm": "정확해요!"
|
||||
},
|
||||
"done": {
|
||||
"title": "몸을 측정하고 저장했어요",
|
||||
"description": "신체 비율 보정이 완료되었어요!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "감지되거나 할당된 트래커가 없어요."
|
||||
}
|
||||
}
|
||||
@@ -1,497 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "weconnyecting to teh sewvew",
|
||||
"connection-lost": "oopsie woopsie~ connyection wost to teh sewvew ;m;... uwu am twying to weconnyect owo!"
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "nawt suwe whicsh twayckyaw is whicsh? shayke a twackaw and it will hyighwight the cowowesponding iytem.",
|
||||
"do-not-move-heels": "ensuwe yoowr pawsies do nawt mowve duwing wecowding! ^w^"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "unassyigned",
|
||||
"HEAD": "hed",
|
||||
"NECK": "nyecky wecky",
|
||||
"RIGHT_SHOULDER": "wight shouwder~",
|
||||
"RIGHT_UPPER_ARM": "wight uppew awm",
|
||||
"RIGHT_LOWER_ARM": "wight wowwe awm",
|
||||
"RIGHT_HAND": "wight pawb",
|
||||
"RIGHT_UPPER_LEG": "wight uppew weg",
|
||||
"RIGHT_LOWER_LEG": "wight wowwe weg",
|
||||
"RIGHT_FOOT": "wight pawb",
|
||||
"CHEST": "chwest",
|
||||
"WAIST": "wyayst",
|
||||
"HIP": "hyip",
|
||||
"LEFT_SHOULDER": "weft shouwder~",
|
||||
"LEFT_UPPER_ARM": "weft uppew awm",
|
||||
"LEFT_LOWER_ARM": "weft wowwe awm",
|
||||
"LEFT_HAND": "weft pawb",
|
||||
"LEFT_UPPER_LEG": "weft uppew weg",
|
||||
"LEFT_LOWER_LEG": "weft wowwe weg",
|
||||
"LEFT_FOOT": "weft pawb"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "none",
|
||||
"HEAD": "hed shyft",
|
||||
"NECK": "nyeck wength",
|
||||
"TORSO": "towso wength",
|
||||
"CHEST": "chwest disyance",
|
||||
"WAIST": "weyst disyance",
|
||||
"HIP_OFFSET": "hyip awfset",
|
||||
"HIPS_WIDTH": "hyips wiwdth",
|
||||
"LEGS_LENGTH": "wegs wength",
|
||||
"KNEE_HEIGHT": "knyee heiyt",
|
||||
"FOOT_LENGTH": "pawsies wength",
|
||||
"FOOT_SHIFT": "pawsies shyft",
|
||||
"SKELETON_OFFSET": "skeweton awfset",
|
||||
"CONTROLLER_DISTANCE_Z": "cyontwowla disance z",
|
||||
"CONTROLLER_DISTANCE_Y": "cyontwowla disance y",
|
||||
"FOREARM_LENGTH": "fowewawm disyance",
|
||||
"SHOULDERS_DISTANCE": "shouwdews disyance",
|
||||
"SHOULDERS_WIDTH": "shouwdews wiwdth",
|
||||
"UPPER_ARM_LENGTH": "uppew awm wength",
|
||||
"ELBOW_OFFSET": "ewbow awfsewt"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "weset aww pwopowtions~",
|
||||
"full": "weset~",
|
||||
"mounting": "weset meownting",
|
||||
"quick": "quick weset"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "nyu sewiaw device detected~!",
|
||||
"new-device.p1": "entaw youw wifi cwedentiaws~!",
|
||||
"new-device.p2": "pwease sewect what youw want to do wit it",
|
||||
"open-wifi": "cownnyect to wyfy~",
|
||||
"open-serial": "awpen sewiaw console >w<",
|
||||
"submit": "suwbmyt~!",
|
||||
"close": "cwose"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "howme",
|
||||
"body-proportions": "body pwopowshons",
|
||||
"trackers-assign": "twackaws assigwment",
|
||||
"mounting": "meownting calibwation",
|
||||
"onboarding": "suwep wisawd",
|
||||
"settings": "sewtings"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "wecowd bvh",
|
||||
"recording": "wecowding..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "show owovelay in steawmvr",
|
||||
"is-mirrored-label": "dispway owovelay as miwwow"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "no stawtus",
|
||||
"busy": "busy",
|
||||
"error": "ewwow",
|
||||
"disconnected": "disconnyected",
|
||||
"occluded": "occwuded",
|
||||
"ok": "oki"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "nayme",
|
||||
"type": "type",
|
||||
"battery": "battewy",
|
||||
"ping": "pyng",
|
||||
"rotation": "wotaytion x/y/z",
|
||||
"position": "pawsytion x/y/z",
|
||||
"url": "uawl"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "fwowt",
|
||||
"left": "lewft",
|
||||
"right": "wight",
|
||||
"back": "bak"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "mawufactuwer",
|
||||
"display-name": "dispway name",
|
||||
"custom-name": "custowm name",
|
||||
"url": "twackaw uawl"
|
||||
},
|
||||
"settings": {
|
||||
"back": "go bak to twackaws liwst",
|
||||
"title": "twackaw sewtings",
|
||||
"assignment-section": {
|
||||
"title": "assiwnment",
|
||||
"description": "what pawt of the bawdy the twackaw is assiwned to uwu",
|
||||
"edit": "ewdit assiwnment"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "meownting pawsition",
|
||||
"description": "whewe is the twackaw mownted?",
|
||||
"edit": "edit meownting"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "twackaw name",
|
||||
"description": "owo whats dis?",
|
||||
"input-placeholder": "ewimewl's weft pawb"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "no name",
|
||||
"unassigned": "unassigwed"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "whewe doo yew want dis twayckaw to be?? >~>",
|
||||
"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.",
|
||||
"show-advanced-locations": "show advawnced assyign wocations",
|
||||
"manage-trackers": "manage awl twackaws",
|
||||
"unassign-tracker": "unassyign twayckaw"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "which twayckaw to assyign to the {{bodyPart}}?",
|
||||
"unassigned": "unassyigned twackaws",
|
||||
"assigned": "assyigned twackaws",
|
||||
"dont-assign": "do nawt assyign"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "whewe doo yew want dis twayckaw to be?",
|
||||
"close": "cwose"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "settyings~",
|
||||
"general": "genyawaw",
|
||||
"tracker-mechanics": "twayckaw mechanics~",
|
||||
"fk-settings": "fk settyings",
|
||||
"interface": "intyawface~",
|
||||
"osc-router": "OSC wouwter",
|
||||
"utils": "utiwities",
|
||||
"serial": "sewiaw cownsaw"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "steamvr~",
|
||||
"subtitle": "steamvr twayckaws~",
|
||||
"description.p0": "enyable or dysabywe specific twacking pawts.",
|
||||
"description.p1": "usefuw if yew want mowwe contwoww owew what swimevr does.",
|
||||
"trackers": {
|
||||
"waist": "wyayst",
|
||||
"chest": "chwest",
|
||||
"feet": "pawbsies~",
|
||||
"knees": "knyees~",
|
||||
"elbows": "ewbows~"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "twayckaw mechanics~",
|
||||
"subtitle": "fiwtering~",
|
||||
"description.p0": "chooce teh fiwwtewing type fow youw twackaws.",
|
||||
"description.p1": "pwediction pwedicts movment while smowthing smowthens movment.",
|
||||
"filtering-type": {
|
||||
"title": "fiwtewing type~",
|
||||
"none": {
|
||||
"label": "no fiwwtewing~",
|
||||
"description": "use wowtations as is. wiw nawt do any fiwwtewing."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "smowthing",
|
||||
"description": "smowthes movements but adds some watency~"
|
||||
},
|
||||
"prediction": {
|
||||
"label": "pwediction~",
|
||||
"description": "wowduces wowcyancy and makes wowvements mowe wowappy, but may incwease jiwitty"
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "amownt"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "fk sewttings",
|
||||
"leg-tweak": {
|
||||
"title": "leg tweeks",
|
||||
"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": "fwoow cwip",
|
||||
"skating-correction": "skayting wowcowwection"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "awm fk",
|
||||
"description": "chawnge teh way teh awms awe twacked.",
|
||||
"force-arms": "fowce awms fwom hmd"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "skeweton sewttings",
|
||||
"description": "toggwe skeweton sewttings on owow off. is wowcommended to weawve these on~",
|
||||
"extended-spine": "ewtended spine",
|
||||
"extended-pelvis": "ewtended pelvis",
|
||||
"extended-knees": "ewtended neey"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "gestauw cantwol",
|
||||
"subtitle": "bap bwased wesets",
|
||||
"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",
|
||||
"taps": "baps",
|
||||
"quickResetEnabled": "enable wap to quwuick weset",
|
||||
"quickResetDelay": "quwuick weset deway",
|
||||
"quickResetTaps": "baps for quwuick weset",
|
||||
"resetEnabled": "enable wap to weset",
|
||||
"resetDelay": "weset deway",
|
||||
"resetTaps": "baps for weset",
|
||||
"mountingResetEnabled": "enable wap to weset mountwing",
|
||||
"mountingResetDelay": "mountwing weset deway",
|
||||
"mountingResetTaps": "baps for mountwing weset"
|
||||
},
|
||||
"interface": {
|
||||
"title": "intewface",
|
||||
"dev-mode": {
|
||||
"title": "devwowwewow mode",
|
||||
"description": "this mode can be wowseffuw if you need in-dipth data owow to intewact with cownnected twackaws on a wowowe wowadvanced wowwevew",
|
||||
"label": "devwowwewow mode"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "shewyaw device deteccion",
|
||||
"description": "this option will shaww a pawp-up evewy time yuw pwug a new shewyaw device that cawwld be a twayckaw. it helps iympwooving teh setup pwocess of a twayckaw",
|
||||
"label": "shewyaw device deteccion"
|
||||
},
|
||||
"lang": {
|
||||
"title": "sewect wanguage",
|
||||
"description": "change the defawwt wanguage yuw want to use",
|
||||
"placeholder": "sewect teh wanguage to use"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "shewyaw console",
|
||||
"description.p0": "this is a wiwve infowmation feed fow shewyaw comyunicaytion",
|
||||
"description.p1": "may be usefuw if yuw need to know teh fiwmwawe is acting up",
|
||||
"connection-lost": "connyection to shewyaw wost, weconnyecting... >~<",
|
||||
"reboot": "weboot",
|
||||
"factory-reset": "fawctowy reset",
|
||||
"get-infos": "get infows",
|
||||
"serial-select": "sewect a shewyaw pawt",
|
||||
"auto-dropdown-item": "awto"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "OSC wouwter",
|
||||
"description.p0": "fowwawd osc messages fwom anothew pwogwam",
|
||||
"description.p1": "usefuww fow uwsing anothew osc pwogwam with VRChat fow exampwe",
|
||||
"enable": {
|
||||
"title": "enaybwe",
|
||||
"description": "toggle teh fowwawding of data",
|
||||
"label": "enaybwe"
|
||||
},
|
||||
"network": {
|
||||
"title": "network pawts",
|
||||
"description.p0": "set the pawts fow wistening awnd sending data",
|
||||
"description.p1": "these can be the same as othew powts uwsed in the swimevr sewvew",
|
||||
"port-in": {
|
||||
"label": "pawt in",
|
||||
"placeholder": "pawt in (defawwt: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "pawt out",
|
||||
"placeholder": "pawt out (defawwt: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "network addwess",
|
||||
"description": "choose which addwess to send out data at",
|
||||
"placeholder": "IPV4 addwess"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "change vwchat-specific settwings to wweceive hmd data awnd send",
|
||||
"description.p1": "twayckaws data fow fbt (wawwks on quest standalone).",
|
||||
"enable": {
|
||||
"title": "enaybwe",
|
||||
"description": "toggle teh sending awnd wweceiving of data",
|
||||
"label": "enaybwe"
|
||||
},
|
||||
"network": {
|
||||
"title": "network pawts",
|
||||
"description": "set the pawts fow wistening awnd sending data to vwchawt",
|
||||
"port-in": {
|
||||
"label": "pawt in",
|
||||
"placeholder": "pawt in (defawwt: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "pawt out",
|
||||
"placeholder": "pawt out (defawwt: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "network addwess",
|
||||
"description": "choose which addwess to send out data to vwchat (check yuw wifi settwings on yuw device)",
|
||||
"placeholder": "vwchat ip addwess"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "trayckawws",
|
||||
"description": "toggle teh sending of spweciwic twackers viwa OSC",
|
||||
"chest": "chest",
|
||||
"waist": "wayst",
|
||||
"knees": "knees",
|
||||
"feet": "pawbs",
|
||||
"elbows": "elbows"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "skipy setup",
|
||||
"continue": "continyue",
|
||||
"wip": "wowwk in pwowgress",
|
||||
"wifi-creds": {
|
||||
"back": "gaww bawwk to intwoduction",
|
||||
"title": "input wifi cwedentials",
|
||||
"description.p0": "teh twawckaws will use these cwedentials to connect wirelessly",
|
||||
"description.p1": "pwease use teh cwedentials that yaww awe cwowently cownyected to",
|
||||
"skip": "skipy wifi settiwyngs",
|
||||
"submit": "suwbmyt!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "gaww bawwk to meownting cawwibwation",
|
||||
"title": "weset tutowial",
|
||||
"description": "dis featuwe isn't done, just pwess continyue"
|
||||
},
|
||||
"home": {
|
||||
"title": "wewcome to swimevr",
|
||||
"description.p0": "bwinging fuww-bawdy twacking",
|
||||
"description.p1": "to everyone",
|
||||
"start": "wets get set up!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "gaww bawwk to twacker assignyment",
|
||||
"title": "time to entew vr!",
|
||||
"description": "put on awe yoaww twackaws and then entew vr!",
|
||||
"ready": "iym ready"
|
||||
},
|
||||
"done": {
|
||||
"title": "yaww awe awe set!",
|
||||
"description": "enjoy yoaww fuww body expewwience",
|
||||
"close": "cwose the guide"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "gaww bawwk to wifi cwedentials",
|
||||
"title": "connect twackaws",
|
||||
"description.p0": "now onto teh fun pawwt, connecting awe teh twackaws!",
|
||||
"description.p1": "simply connect awe that awe nawt cownyected yet, through a usb powwt.",
|
||||
"issue": {
|
||||
"serial": "i'm having twouble connecting!"
|
||||
},
|
||||
"usb": "usb twacker",
|
||||
"connection-status": {
|
||||
"connecting": "sending wifi cwedentials",
|
||||
"connected": "cownyected to wifi",
|
||||
"error": "unabwe to cownyect to wifi",
|
||||
"start-connecting": "wooking for twackaws",
|
||||
"handshake": "cownyected to teh sewvew"
|
||||
},
|
||||
"connected-trackers": "{{amount}} twackers cownyected",
|
||||
"next": "i cownyected awe my twackaws"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "go bak to wifi credyentials",
|
||||
"title": "assign twackaws",
|
||||
"description": "wets choyse which twackaw goes whewe. cwick on a wocation whewe yowo want to payce a twackaw",
|
||||
"assigned": "{{assigned}} of {{trackers}} twackaws assigned",
|
||||
"advanced": "show advanced assign wocations",
|
||||
"next": "i assigned awe the twackaws"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "go bak to entaw vawe",
|
||||
"title": "manual meownting",
|
||||
"description": "cwick on evewy twackaw and sewect which way they awe mownted",
|
||||
"auto-mounting": "awtomawic meownting",
|
||||
"next": "newt stewp"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "go bak to entaw vawe",
|
||||
"title": "meownting cawibwation",
|
||||
"description": "fow SlimeVR twackaws to wowk, we need to assign a meownting wowation to yowo twackaws to awign them with yowo pwysical twackaw mounting.",
|
||||
"manual-mounting": "manually set meownting",
|
||||
"next": "next step",
|
||||
"prev-step": "pwevious step",
|
||||
"done": {
|
||||
"title": "mounting wowations cawibwated.",
|
||||
"description": "yowo meownting cawibwation is compwete!",
|
||||
"restart": "weturn to start"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "meownting weset",
|
||||
"step": {
|
||||
"0": "1. squawt in a \"skiing\" pose with yowo wegs bent, yowo upper body tilted fowwawds, and yowo awems bent.",
|
||||
"1": "2. pwess the \"weset meownting\" button and wait fow 3 seconds befowe the twackaws' meownting wowations will weset."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "pwepairation",
|
||||
"step": {
|
||||
"0": "1. stand upwight with yowo awems to yowo sides.",
|
||||
"1": "2. pwess the \"weset\" button and wait fow 3 seconds befowe the twackaws will weset."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "put on yowo twackaws",
|
||||
"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.",
|
||||
"next": "i haff awe my twackaws on"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "go bawck to weset tutowiaw",
|
||||
"title": "manyuaw bodee pwopowtiesions",
|
||||
"precision": "pwecision adjusty",
|
||||
"auto": "owtomatic cawybwation"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "go bawck to weweset tutowiaw",
|
||||
"title": "measuwe yowuw bodee",
|
||||
"description": "fow swimevw twackaws to wowk, we need to know teh wowkty of yowuw bones. dis showt cawybwation will measuwe it fow yowu",
|
||||
"manual": "manyuaw cawybwation",
|
||||
"prev-step": "pwevious stwep",
|
||||
"put-trackers-on": {
|
||||
"title": "put on yowuw twackaws",
|
||||
"description": "to cawybwate yowuw pwopowtiesions, we'we gonna use teh twackaws yowu just assigned. put on awl yowuw twackaws, yowu can see which awe which in teh figuwe to teh wowight.",
|
||||
"next": "i have awl my twackaws on"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "pwepawation",
|
||||
"description": "pwace a chayaw diwectly behind yowu inside yowuw pway spawce. be pwepawed to sit down duwing teh owtobone setyup.",
|
||||
"next": "i am in fwont of a chayaw"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "get wowdy to move",
|
||||
"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!",
|
||||
"next": "stawt wowcawding"
|
||||
},
|
||||
"recording": {
|
||||
"title": "wowcawd",
|
||||
"description.p0": "wowcawding in pwowgress...",
|
||||
"description.p1": "make teh moves shown bowow:",
|
||||
"steps": {
|
||||
"0": "bend knees a few times.",
|
||||
"1": "sit on a chayaw then stawnd up.",
|
||||
"2": "twist upwe wowdy wowft, then bend wowft.",
|
||||
"3": "twist upwe wowdy wowight, then bend wowight.",
|
||||
"4": "wiggy aweound until tymey ends."
|
||||
},
|
||||
"processing": "pwowcessing teh wowesult",
|
||||
"timer": "{{time}} secondsy wowft"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "vewify wowesults",
|
||||
"description": "check teh wewesults below, do tehy weok coowect?",
|
||||
"results": "wecowding wewesults",
|
||||
"processing": "pwocessing teh wewesult",
|
||||
"redo": "wedo wecowding",
|
||||
"confirm": "tehywee coowect"
|
||||
},
|
||||
"done": {
|
||||
"title": "bawdy meowsured anwd sayved uwu",
|
||||
"description": "yoww body pwopowwtions cawybowwation is cowowplete! ^w^"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "no twackaws detecyted owo wowigned"
|
||||
}
|
||||
}
|
||||
@@ -1,461 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "Łączenie z serwerem",
|
||||
"connection-lost": "Połączenie z serwerem zostało utracone. Próba ponownego połączenia..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "Nie wiesz który tracker to który? Obracaj Trackerem , podczas obracania będzie sie on podświetlał w serwerze.",
|
||||
"do-not-move-heels": "Upewnij się aby pięty pozostały w bezruchu podczas nagrywania."
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "Nie Przypisano",
|
||||
"HEAD": "Głowa",
|
||||
"NECK": "Szyja",
|
||||
"RIGHT_SHOULDER": "Prawe Ramie",
|
||||
"RIGHT_UPPER_ARM": "Prawy Biceps",
|
||||
"RIGHT_LOWER_ARM": "Prawe PrzedRamie",
|
||||
"RIGHT_HAND": "Prawa Dłoń",
|
||||
"RIGHT_UPPER_LEG": "Prawe Udo",
|
||||
"RIGHT_LOWER_LEG": "Prawy Podudzie",
|
||||
"RIGHT_FOOT": "Prawa Stopa",
|
||||
"CHEST": "Klatka Piersiowa",
|
||||
"WAIST": "Pas",
|
||||
"HIP": "Biodra",
|
||||
"LEFT_SHOULDER": "Lewe Ramie",
|
||||
"LEFT_UPPER_ARM": "Lewy Biceps",
|
||||
"LEFT_LOWER_ARM": "Lewe PrzedRamie",
|
||||
"LEFT_HAND": "Lewa Dłoń",
|
||||
"LEFT_UPPER_LEG": "Lewe Udo",
|
||||
"LEFT_LOWER_LEG": "Lewe Podudzie",
|
||||
"LEFT_FOOT": "Lewa Stopa"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "Brak",
|
||||
"HEAD": "Head Shift",
|
||||
"NECK": "Długość Szyi",
|
||||
"TORSO": "Długość Tułowia",
|
||||
"CHEST": "Długość Klatki Piersiowej",
|
||||
"WAIST": "Waist Distance",
|
||||
"HIP_OFFSET": "Offset Bioder",
|
||||
"HIPS_WIDTH": "Szerokość Bioder",
|
||||
"LEGS_LENGTH": "Długość Nóg",
|
||||
"KNEE_HEIGHT": "Wysokość Kolana",
|
||||
"FOOT_LENGTH": "Długość Stopy",
|
||||
"FOOT_SHIFT": "Foot Shift",
|
||||
"SKELETON_OFFSET": "Skeleton Offset",
|
||||
"CONTROLLER_DISTANCE_Z": "Controller Distance Z",
|
||||
"CONTROLLER_DISTANCE_Y": "Controller Distance Y",
|
||||
"FOREARM_LENGTH": "Długość PrzedRamienia",
|
||||
"SHOULDERS_DISTANCE": "Shoulders Distance",
|
||||
"SHOULDERS_WIDTH": "Szerokość Ramion",
|
||||
"UPPER_ARM_LENGTH": "Długość Bicepsa",
|
||||
"ELBOW_OFFSET": "Offset Łokcia"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "Zresetuj wszystkie wymiary",
|
||||
"full": "Reset",
|
||||
"mounting": "Zresetuj Położenie",
|
||||
"quick": "Szybki Reset"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "Wykryto Nowe Urządzenie." ,
|
||||
"new-device.p1": "Wprowadź dane WiFi!",
|
||||
"new-device.p2": "Wybierz co chcesz z nim zrobić.",
|
||||
"open-wifi": "Połącz z WiFi",
|
||||
"open-serial": "Otwórz Konsole",
|
||||
"submit": "Potwierdź!",
|
||||
"close": "Zamknij"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "Strona Główna",
|
||||
"body-proportions": "Proporcje Ciała",
|
||||
"trackers-assign": "Przydzielenie Trackerów",
|
||||
"mounting": "Kalibracja Pozycji",
|
||||
"onboarding": "Wstępna Konfiguracja",
|
||||
"settings": "Ustawienia"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "Nagraj BVH",
|
||||
"recording": "Nagrywam..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "Pokaż Overlay w SteamVR",
|
||||
"is-mirrored-label": "Pokaż Overlay jako Lustro"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "Brak Statusu",
|
||||
"busy": "Zajęty",
|
||||
"error": "Error",
|
||||
"disconnected": "Rozłączono",
|
||||
"occluded": "Zablokowany",
|
||||
"ok": "Połączono"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Nazwa",
|
||||
"type": "Typ",
|
||||
"battery": "Bateria",
|
||||
"ping": "Ping",
|
||||
"rotation": "Rotacja X/Y/Z",
|
||||
"position": "Pozycja X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "Przód",
|
||||
"left": "Lewa",
|
||||
"right": "Prawa",
|
||||
"back": "Tył"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "Producent",
|
||||
"display-name": "Wyświetlana Nazwa",
|
||||
"custom-name": "Niestandardowa Nazwa",
|
||||
"url": "Tracker URL"
|
||||
},
|
||||
"settings": {
|
||||
"back": "Wróć do listy trackerów",
|
||||
"title": "Ustawienia Trackerów",
|
||||
"assignment-section": {
|
||||
"title": "Przydzielanie",
|
||||
"description": "Do jakiej części ciała jest przydzielony tracker.",
|
||||
"edit": "Edytuj"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "Położenie Trackera",
|
||||
"description": "Gdzie jest Tracker zamontowany?",
|
||||
"edit": "Edytuj"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "Nazwa Trackera",
|
||||
"description": "Daj mu słodką nazwę :)",
|
||||
"input-placeholder": "Lewa noga Yexo"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "Brak Nazwy",
|
||||
"unassigned": "Nieprzydzielony"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "Gdzie chcesz żeby ten tracker był?",
|
||||
"description": "Wybierz miejsce gdzie tracker będzie przydzielony. Alternatywnie możesz ustawić wszystkie na raz.",
|
||||
"show-advanced-locations": "Pokaż zaawansowane położenia",
|
||||
"manage-trackers": "Zarządzaj wszystkimi trackerami",
|
||||
"unassign-tracker": "Usuń przydzielenie"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "Który tracker ustawić na {{bodyPart}}?",
|
||||
"unassigned": "Nieprzydzielone trackery",
|
||||
"assigned": "Przydzielone trackery",
|
||||
"dont-assign": "Nie przydzielaj"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "Gdzie chciałbyś ten tracker?",
|
||||
"close": "Zamknij"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "Ustawienia",
|
||||
"general": "Ogólne",
|
||||
"tracker-mechanics": "Tracker mechanics",
|
||||
"fk-settings": "FK settings",
|
||||
"interface": "Interfejs",
|
||||
"utils": "Narzędzia",
|
||||
"serial": "Konsola Seryjna"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "SteamVR trackers",
|
||||
"description.p0": "Włącz lub Wyłącz specyficzne pozycje trackowania.",
|
||||
"description.p1": "Przydatne jeżeli chcesz więcej kontroli nad SlimeVR.",
|
||||
"trackers": {
|
||||
"waist": "Bruch",
|
||||
"chest": "Klatka Piersiowa",
|
||||
"feet": "Stopy",
|
||||
"knees": "Kolana",
|
||||
"elbows": "Łokcie",
|
||||
"hands": "Ręce"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "Tracker mechanics",
|
||||
"subtitle": "Filtrowanie",
|
||||
"description.p0": "Wybierz Filtry dla twoich trackerów.",
|
||||
"description.p1": "Przewidywanie przewiduje ruchy a Wygładzanie stara się wygładzić ruchy.",
|
||||
"filtering-type": {
|
||||
"title": "Filtry",
|
||||
"none": {
|
||||
"label": "Brak Filtrów",
|
||||
"description":"Używa rotacji takimi jakimi są."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Wygładzanie",
|
||||
"description":"Wygładza ruchy lecz dodaje trochę opóźnienia."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Przewidywanie",
|
||||
"description":"Zmniejsza opóźnienie i robi ruchy trochę ostrzejszymi, ale może dodać trochę drgań."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "Ilość"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "FK settings",
|
||||
"leg-tweak": {
|
||||
"title": "Leg tweaks",
|
||||
"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": "Floor clip",
|
||||
"skating-correction": "Skating correction"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "Arm FK",
|
||||
"description": "Change the way the arms are tracked.",
|
||||
"force-arms": "Force arms from HMD"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "Skeleton settings",
|
||||
"description": "Toggle skeleton settings on or off. It is recommended to leave these on.",
|
||||
"extended-spine": "Extended spine",
|
||||
"extended-pelvis": "Extended pelvis",
|
||||
"extended-knees": "Extended knee"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "Kontrola Gestami",
|
||||
"subtitle": "Dotknij 2 razy by wykonać szybki reset",
|
||||
"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.",
|
||||
"enable": "Dotknij 2 razy by wykonać szybki reset",
|
||||
"delay": "Opóźnienie"
|
||||
},
|
||||
"interface": {
|
||||
"title": "Interfejs",
|
||||
"dev-mode": {
|
||||
"title": "Tryb Dewelopera",
|
||||
"description": "Ten tryb przydaje się do sprawdzania większej ilości danych.",
|
||||
"label": "Tryb Dewelopera"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "Wykrywanie urządzeń",
|
||||
"description": "Ta opcja daje powiadomienia jeżeli serwer wykryje urządzenie które może być trackerem",
|
||||
"label": "Wykrywanie urządzeń"
|
||||
},
|
||||
"lang": {
|
||||
"title": "Wybierz Język",
|
||||
"description": "Zmień podstawowy język jaki chcesz używać",
|
||||
"placeholder": "Wybierz Język który będziesz używać"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Serial Console",
|
||||
"description.p0": "This is a live information feed for serial communication.",
|
||||
"description.p1": "May be useful if you need to know the firmware is acting up.",
|
||||
"connection-lost": "Connection to serial lost, Reconnecting...",
|
||||
"reboot": "Reboot",
|
||||
"factory-reset": "Factory Reset",
|
||||
"get-infos": "Get Infos",
|
||||
"serial-select": "Select a serial port",
|
||||
"auto-dropdown-item": "Auto"
|
||||
},
|
||||
"osc": {
|
||||
"vrchat": {
|
||||
"description.p0": "Change VRChat-specific settings to receive HMD data and send",
|
||||
"description.p1": "trackers data for FBT (works on Quest standalone).",
|
||||
"enable": {
|
||||
"title": "Enable",
|
||||
"description": "Toggle the sending and receiving of data",
|
||||
"label": "Enable"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network ports",
|
||||
"description": "Set the ports for listening and sending data to VRChat",
|
||||
"port-in": {
|
||||
"label": "Port In",
|
||||
"placeholder": "Port in (default: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Port Out",
|
||||
"placeholder": "Port out (default: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Network address",
|
||||
"description": "Choose which address to send out data to VRChat (check your wifi settings on your device)",
|
||||
"placeholder": "VRChat ip address"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Trackers",
|
||||
"description": "Toggle the sending and receiving of data",
|
||||
"chest": "Chest",
|
||||
"waist": "Waist",
|
||||
"knees": "Knees",
|
||||
"feet": "Feet",
|
||||
"elbows": "Elbows"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "Pomiń wstępną konfiguracje",
|
||||
"continue": "Kontynuuj",
|
||||
"wip": "W trakcie prac",
|
||||
"wifi-creds": {
|
||||
"back": "Cofnij się do początku",
|
||||
"title": "Wpisz dane WiFi",
|
||||
"description.p0": "Trackery będą używać tej sieci do łączenia się z serwerem",
|
||||
"description.p1": "proszę używać sieci do której jest się połączonym",
|
||||
"skip": "Pomiń ustawienia WiFi",
|
||||
"submit": "Potwierdź!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "Powrót do Konfiguracji Położenia trackerów",
|
||||
"title": "Zresetuj poradnik",
|
||||
"description": "Ta funkcja jeszcze nie jest skończona."
|
||||
},
|
||||
"home": {
|
||||
"title": "Witamy w SlimeVR",
|
||||
"description.p0": "Full-body tracking",
|
||||
"description.p1": "dla każdego",
|
||||
"start": "Zaczynajmny!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "Cofnij do Przydzielania Trackerów",
|
||||
"title": "Czas na wejście do VR!",
|
||||
"description": "Załóż wszystkie trackery a potem wejdź do VR!",
|
||||
"ready": "Jestem gotów"
|
||||
},
|
||||
"done": {
|
||||
"title": "Wszystko ustawione!",
|
||||
"description": "Ciesz się Full-Body",
|
||||
"close": "Zamknij Poradnik"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "Cofnij się do ustawień WiFi",
|
||||
"title": "Połącz trackery",
|
||||
"description.p0": "Teraz czas na zabawe, połączenie wszystkich trackerów!",
|
||||
"description.p1": "Po prostu połącz wszystkie dotychczas nie połączone trackery za pomocą USB",
|
||||
"issue": {
|
||||
"serial": "Mam problemy z połączeniem!"
|
||||
},
|
||||
"usb": "USB Tracker",
|
||||
"connection-status": {
|
||||
"connecting": "Wysyłanie danych WiFi",
|
||||
"connected": "Połączono z WiFi",
|
||||
"error": "Nie można połączyć z Wifi",
|
||||
"start-connecting": "Szukanie Trackerów",
|
||||
"handshake": "Połączono z serwerem"
|
||||
},
|
||||
"connected-trackers": "{{amount}} połączonych trackerów",
|
||||
"next": "Połączyłem już wszystkie trackery"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Cofnij się do ustawień WiFi",
|
||||
"title": "Przydziel Trackery",
|
||||
"description": "Wybierzmy gdzie idzie jaki tracker. Naciśnij gdzie chcesz go przydzielić",
|
||||
"assigned": "{{assigned}} przydzielonych trackerów z {{trackers}}",
|
||||
"advanced": "Pokaż zaawansowane ustawienia pozycji",
|
||||
"next": "Przydzieliłem już wszystkie trackery"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "Cofnij się żeby wejść do VR",
|
||||
"title": "Pozycjonowanie Manualne",
|
||||
"description": "Kliknij na każdy tracker i wybierz w jaki sposób są zamontowane",
|
||||
"auto-mounting": "Automatic mounting",
|
||||
"next": "Następny krok"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "Cofnij się żeby wejść do VR",
|
||||
"title": "Kalibracja Pozycji",
|
||||
"description": "Aby SlimeVR działało prawidłowo, musimy przypisać rotacje trackera aby zgadzała się ona z tą w prawdziwym życiu.",
|
||||
"manual-mounting": "Pozycjonowanie Manualne",
|
||||
"next": "Następny krok",
|
||||
"prev-step": "Poprzedni krok",
|
||||
"done": {
|
||||
"title": "Rotacja trackerów została skalibrowana.",
|
||||
"description": "Kalibracja skończona!",
|
||||
"restart": "Cofnij się na początek"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "Kalibracja Pozycji",
|
||||
"step": {
|
||||
"0": "1. Zrób pozycje \"na Małysza\" z wygiętymi nogami, tułów pochylony do przodu z wygiętymi rękami.",
|
||||
"1": "2. Naciśnij \"Zresetuj Położenie\" i poczekaj 3 sekundy zanim trackery się zresetują."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Przygotowania",
|
||||
"step": {
|
||||
"0": "1. Stań prosto z rękami wyciągniętymi na bok.",
|
||||
"1": "2. Naciśnij \"Reset\" i poczekaj 3 sekundy zanim trackery się zresetują."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "Załóż trackery",
|
||||
"description": "Aby skalibrować rotacje, użyjemy trackerów które przed chwilą przypisałeś. Załóż wszystkie trackery, będziesz widział który to który na postaci po prawej.",
|
||||
"next": "Mam wszystkie trackery założone"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "Go Back to Reset tutorial",
|
||||
"title": "Manualne Proporcje Ciała",
|
||||
"precision": "Precyzyjna Regulacja",
|
||||
"auto": "Automatyczna Kalibracja"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "Go Back to Reset tutorial",
|
||||
"title": "Zmierz swoje ciało",
|
||||
"description": "Aby SlimeVR działało poprawnie, musimy znać długość twoich kości. Ta kalibracja zrobi to za ciebie.",
|
||||
"manual": "Kalibracja Manualna",
|
||||
"prev-step": "Poprzedni krok",
|
||||
"put-trackers-on": {
|
||||
"title": "Załóż trackery",
|
||||
"description": "Aby skalibrować proporcje, użyjemy trackerów które przed chwilą przypisałeś. Załóż wszystkie trackery, będziesz widział który to który na postaci po prawej.",
|
||||
"next": "Mam wszystkie trackery założone"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Przygotowania",
|
||||
"description": "Połóż krzesło za sobą w twojej przeszczeni grania. Bądź gotowy do siadania podczas automatycznej kalibracji kości.",
|
||||
"next": "Jestem przed krzesłem"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "Bądź gotowy żeby się ruszać",
|
||||
"description": "Będziemy teraz nagrywać specyficzne pozycje i ruchy. Będą one pokazane w następnym okienku. Bądź gotowy po naciśnięciu przycisku!",
|
||||
"next": "Uruchom nagrywanie"
|
||||
},
|
||||
"recording": {
|
||||
"title": "REC",
|
||||
"description.p0": "Nagrywanie w toku...",
|
||||
"description.p1": "Wykonuj ruchy pokazane niżej:",
|
||||
"steps": {
|
||||
"0": "Zegnij kolana kilka razy.",
|
||||
"1": "Usiądź na krześle ,po czym wstań.",
|
||||
"2": "Przekręć ciało w lewo ,po czym przechyl się w prawo.",
|
||||
"3": "Przekręć ciało w prawo ,po czym przechyl się w lewo.",
|
||||
"4": "Poruszaj się dopuki czas się nie skończy"
|
||||
},
|
||||
"processing": "Przetwarzanie wyników",
|
||||
"timer": "Pozostały czas {{time}} sekundy"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "Zweryfikuj Wyniki",
|
||||
"description": "Sprawdź wyniki poniżej, czy są prawidłowe?",
|
||||
"results": "Wyniki Nagrywania",
|
||||
"processing": "Przetwarzanie wyniku",
|
||||
"redo": "Powtórz Nagrywanie",
|
||||
"confirm": "Są Prawidłowe"
|
||||
},
|
||||
"done": {
|
||||
"title": "Zmierzono oraz Zapisano.",
|
||||
"description": "Twoja kalibracja ciała została zakończona!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "Nie wykryto trackerów"
|
||||
}
|
||||
}
|
||||
@@ -1,492 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "Conectando ao servidor",
|
||||
"connection-lost": "Conexão perdida com o servidor. Reconectando..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "Não tem certeza qual tracker é qual? Balance o tracker e ele destacará o item correspondente.",
|
||||
"do-not-move-heels": "Tenha certeza de não mexer seus calcanhares durante a gravação!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "Não atribuído",
|
||||
"HEAD": "Cabeça",
|
||||
"NECK": "Pescoço",
|
||||
"RIGHT_SHOULDER": "Ombro direito",
|
||||
"RIGHT_UPPER_ARM": "Braço superior direito",
|
||||
"RIGHT_LOWER_ARM": "Antebraço direito",
|
||||
"RIGHT_HAND": "Mão Direita",
|
||||
"RIGHT_UPPER_LEG": "Coxa direita",
|
||||
"RIGHT_LOWER_LEG": "Canela direita",
|
||||
"RIGHT_FOOT": "Pé direito",
|
||||
"CHEST": "Peito",
|
||||
"WAIST": "Cintura",
|
||||
"HIP": "Quadril",
|
||||
"LEFT_SHOULDER": "Ombro esquerdo",
|
||||
"LEFT_UPPER_ARM": "Braço superior esquerdo",
|
||||
"LEFT_LOWER_ARM": "Antebraço esquerdo",
|
||||
"LEFT_HAND": "Mão esquerda",
|
||||
"LEFT_UPPER_LEG": "Coxa esquerda",
|
||||
"LEFT_LOWER_LEG": "Canela esquerda",
|
||||
"LEFT_FOOT": "Pé esquerdo"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "Nada",
|
||||
"HEAD": "Deslocamento da Cabeça",
|
||||
"NECK": "Tamanho do Pescoço",
|
||||
"TORSO": "Tamanho do Torso",
|
||||
"CHEST": "Distância do Peito",
|
||||
"WAIST": "Distância da Cintura",
|
||||
"HIP_OFFSET": "Compensação do Quadril",
|
||||
"HIPS_WIDTH": "Largura do Quadril",
|
||||
"LEGS_LENGTH": "Tamanho das Perna",
|
||||
"KNEE_HEIGHT": "Altura dos Joelhos",
|
||||
"FOOT_LENGTH": "Tamanho do Pé",
|
||||
"FOOT_SHIFT": "Compensação do Pé",
|
||||
"SKELETON_OFFSET": "Compensação do Esqueleto",
|
||||
"CONTROLLER_DISTANCE_Z": "Distância do Controle Z",
|
||||
"CONTROLLER_DISTANCE_Y": "Distância do Controle Y",
|
||||
"FOREARM_LENGTH": "Distância do Antebraço",
|
||||
"SHOULDERS_DISTANCE": "Distância dos Ombros",
|
||||
"SHOULDERS_WIDTH": "Largura dos Ombros",
|
||||
"UPPER_ARM_LENGTH": "Tamanho do Braço Superior",
|
||||
"ELBOW_OFFSET": "Compensação do Cotovelo"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "Redefinir todas as proporções",
|
||||
"full": "Reset",
|
||||
"mounting": "Redefinir Mounting",
|
||||
"quick": "Reset Rápido"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "Novo dispositivo de serial detectado!" ,
|
||||
"new-device.p1": "Insira suas credenciais de wifi!",
|
||||
"new-device.p2": "Selecione o que quer fazer com ele",
|
||||
"open-wifi": "Conectar ao WiFi",
|
||||
"open-serial": "Abrir o Console Serial",
|
||||
"submit": "Enviar!",
|
||||
"close": "Fechar"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "Início",
|
||||
"body-proportions": "Proporções do corpo",
|
||||
"trackers-assign": "Atribuição de Tracker",
|
||||
"mounting": "Calibração de Montagem",
|
||||
"onboarding": "Assistente de Configuração",
|
||||
"settings": "Opções"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "Gravar BVH",
|
||||
"recording": "Gravando..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "Mostrar Overlay na SteamVR",
|
||||
"is-mirrored-label": "Mostrar Overlay como espelho"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "Sem Status",
|
||||
"busy": "Ocupado",
|
||||
"error": "Erro",
|
||||
"disconnected": "Desconectado",
|
||||
"occluded": "Ocluso",
|
||||
"ok": "Conectado"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Nome",
|
||||
"type": "Tipo",
|
||||
"battery": "Bateria",
|
||||
"ping": "Ping",
|
||||
"rotation": "Rotação X/Y/Z",
|
||||
"position": "Posição X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "Frente",
|
||||
"left": "Esquerda",
|
||||
"right": "Direita",
|
||||
"back": "Atrás"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "Fabricante",
|
||||
"display-name": "Nome de exibição",
|
||||
"custom-name": "Nome personalizado",
|
||||
"url": "URL do Tracker"
|
||||
},
|
||||
"settings": {
|
||||
"back": "Voltar para lista de trackers",
|
||||
"title": "Opções dos trackers",
|
||||
"assignment-section": {
|
||||
"title": "Atribuição",
|
||||
"description": "Qual parte do seu corpo o tracker está atribuído para.",
|
||||
"edit": "Editar atribuição"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "Posição de montagem",
|
||||
"description": "Aonde o tracker está montado?",
|
||||
"edit": "Editar montagem"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "Nome do tracker",
|
||||
"description": "Dê um apelido fofo :)",
|
||||
"input-placeholder": "Coxa esquerda de NightyBeast"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "Sem nome",
|
||||
"unassigned": "Não atribuído"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "Aonde você quer que esse tracker fique?",
|
||||
"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.",
|
||||
"show-advanced-locations": "Mostrar locais de atribuição avançados",
|
||||
"manage-trackers": "Arrumar todos os trackers",
|
||||
"unassign-tracker": "Desatribuir tracker"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "Qual tracker atribuir a {{bodyPart}}?",
|
||||
"unassigned": "Trackers não atribuídos",
|
||||
"assigned": "Trackers atribuídos",
|
||||
"dont-assign": "Não atribuir"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "Aonde você quer que esse tracker fique?",
|
||||
"close": "Fechar"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "Opções",
|
||||
"general": "Geral",
|
||||
"tracker-mechanics": "Mecânicas do Tracker",
|
||||
"fk-settings": "Opções de FK",
|
||||
"gesture-control": "Controle de Gestos",
|
||||
"interface": "Interface",
|
||||
"osc-router": "Roteador OSC",
|
||||
"utils": "Utilidades",
|
||||
"serial": "Console Serial"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "Trackers do SteamVR",
|
||||
"description.p0": "Ativar ou desativar partes específicas do tracking.",
|
||||
"description.p1": "Útil se você quer mais controle do que o SlimeVR faz.",
|
||||
"trackers": {
|
||||
"waist": "Cintura",
|
||||
"chest": "Peito",
|
||||
"feet": "Pés",
|
||||
"knees": "Joelhos",
|
||||
"elbows": "Cotovelos",
|
||||
"hands": "Mãos"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "Mecânicas do Tracker",
|
||||
"subtitle": "Filtros",
|
||||
"description.p0": "Escolha o tipo de filtro para seus trackers.",
|
||||
"description.p1": "Predição prediz movimentação enquanto suavização suaviza o movimento.",
|
||||
"filtering-type": {
|
||||
"title": "Tipo de filtro",
|
||||
"none": {
|
||||
"label": "Sem filtro",
|
||||
"description":"Utiliza as rotações como registradas. Sem qualquer tipo de filtro."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Suavização",
|
||||
"description":"Suaviza o movimento porém introduz um pouco de latência."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Predição",
|
||||
"description":"Reduz latência e torna os movimentos mais responsivos, porém aumenta tremulação (Jitter)."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "Quantidade"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "Opções de FK",
|
||||
"leg-tweak": {
|
||||
"title": "Ajustes de perna",
|
||||
"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.",
|
||||
"floor-clip": "Atravessar o chão",
|
||||
"skating-correction": "Correção de deslize",
|
||||
"skating-correction-amount": "Força da correção de deslize"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "FK do Braço",
|
||||
"description": "Muda o jeito que os braços são rastreados.",
|
||||
"force-arms": "Forçar braços do HMD"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "Opções do esqueleto",
|
||||
"description": "Ligar ou desligar opções do esqueleto. É recomendado deixar eles ligados.",
|
||||
"extended-spine": "Estender coluna",
|
||||
"extended-pelvis": "Estender pélvis",
|
||||
"extended-knees": "Estender joelho"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "Controle de gestos",
|
||||
"subtitle": "Dois toques para o reset rápido",
|
||||
"description": "Ativa ou desativa os dois toques para o reset rápido. Quando ativado dois toques em qualquer lugar no tracker mais alto do torso irá ativar o reset rápido. Delay é o tempo entre o registro o toque e reset.",
|
||||
"enable": "Dois toques para o reset rápido",
|
||||
"delay": "Delay"
|
||||
},
|
||||
"interface": {
|
||||
"title": "Interface",
|
||||
"dev-mode": {
|
||||
"title": "Modo de desenvolvedor",
|
||||
"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",
|
||||
"label": "Modo de desenvolvedor"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "Detecção de dispositivo serial",
|
||||
"description": "Esta opção mostrará um pop-up toda vez que você conectar um novo dispositivo serial que pode ser um tracker. Ajuda a melhorar o processo de configuração de um tracker",
|
||||
"label": "Detecção de dispositivo serial"
|
||||
},
|
||||
"lang": {
|
||||
"title": "Selecione o idioma",
|
||||
"description": "Alterar o idioma padrão que pretende utilizar",
|
||||
"placeholder": "Selecione o idioma que vai usar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Console Serial",
|
||||
"description.p0": "Este é um feed de informações ao vivo para comunicação serial.",
|
||||
"description.p1": "Pode ser útil se você precisar saber se o firmware está tendo problemas.",
|
||||
"connection-lost": "Conexão com o serial perdida, Reconectando...",
|
||||
"reboot": "Reiniciar",
|
||||
"factory-reset": "Restaurar para o padrão de fábrica",
|
||||
"get-infos": "Obter informações",
|
||||
"serial-select": "Selecione uma porta serial",
|
||||
"auto-dropdown-item": "Auto"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "Roteador OSC",
|
||||
"description.p0": "Encaminhar mensagens OSC de outro programa.",
|
||||
"description.p1": "Útil para usar outro programa OSC com VRChat, por exemplo.",
|
||||
"enable": {
|
||||
"title": "Ativar",
|
||||
"description": "Ligar ou desligar o encaminhamento de mensagens",
|
||||
"label": "Ativar"
|
||||
},
|
||||
"network": {
|
||||
"title": "Portas de rede",
|
||||
"description.p0": "Defina as portas para receber e enviar dados",
|
||||
"description.p1": "Esses podem ser as mesmas portas usadas no servidor do SlimeVR",
|
||||
"port-in": {
|
||||
"label": "Porta de entrada",
|
||||
"placeholder": "Porta de entrada (padrão: 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Porta de saída",
|
||||
"placeholder": "Porta de saída (padrão: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Endereço de rede",
|
||||
"description": "Defina o endereço para mandar dados",
|
||||
"placeholder": "Endereço IPV4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "Mudar opções específicas do VRChat para receber e mandar dados do HMD",
|
||||
"description.p1": "dados de trackers para FBT (funciona no Quest standalone).",
|
||||
"enable": {
|
||||
"title": "Ativar",
|
||||
"description": "Ligar ou desligar o envio e recebimento de dados",
|
||||
"label": "Ativar"
|
||||
},
|
||||
"network": {
|
||||
"title": "Portas de rede",
|
||||
"description": "Defina as portas para receber e enviar dados para o VRChat",
|
||||
"port-in": {
|
||||
"label": "Porta de entrada",
|
||||
"placeholder": "Porta de entrada (padrão: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Porta de saída",
|
||||
"placeholder": "Porta de saída (padrão: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Endereço de rede",
|
||||
"description": "Escolha qual o endereço para enviar dados para o VRChat (verifique as suas opções de wifi no seu dispositivo)",
|
||||
"placeholder": "Endereço de ip do VRChat"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Trackers",
|
||||
"description": "Ligar ou desligar o envio e recepção de dados.",
|
||||
"chest": "Peito",
|
||||
"waist": "Cintura",
|
||||
"knees": "Joelhos",
|
||||
"feet": "Pés",
|
||||
"elbows": "Cotovelos"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "Pular configurações",
|
||||
"continue": "Continuar",
|
||||
"wip": "Trabalho em progresso",
|
||||
"wifi-creds": {
|
||||
"back": "Voltar para introdução",
|
||||
"title": "Insira as credenciais de WiFi",
|
||||
"description.p0": "Os Trackers vão usar essas credenciais para conectar à rede sem fio",
|
||||
"description.p1": "Use as credenciais da rede em que você está atualmente conectado",
|
||||
"skip": "Pular as configurações de WiFi",
|
||||
"submit": "Enviar!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "Voltar para a Calibração de Montagem",
|
||||
"title": "Resetar Tutorial",
|
||||
"description": "Esse recurso não está concluído, apenas aperte continue"
|
||||
},
|
||||
"home": {
|
||||
"title": "Bem vindo ao SlimeVR",
|
||||
"description.p0": "Trazendo full-body tracking",
|
||||
"description.p1": "para todos",
|
||||
"start": "Vamos configurar!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "Voltar para atribuição de Trackers",
|
||||
"title": "Hora de entrar no VR!",
|
||||
"description": "Coloque todos os seus trackers e entre no VR!",
|
||||
"ready": "Estou pronto"
|
||||
},
|
||||
"done": {
|
||||
"title": "Está tudo pronto!",
|
||||
"description": "Aproveite sua experiência com full body",
|
||||
"close": "Fechar o guia"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "Voltar para as credenciais de WiFi",
|
||||
"title": "Conectar os trackers",
|
||||
"description.p0": "Agora para a parte divertida, conectando todos os seus trackers!",
|
||||
"description.p1": "Simplesmente conecte todos que ainda não estão conectados, via porta USB.",
|
||||
"issue": {
|
||||
"serial": "Estou tendo problemas para conectar!"
|
||||
},
|
||||
"usb": "Tracker USB",
|
||||
"connection-status": {
|
||||
"connecting": "Enviando credenciais de wifi",
|
||||
"connected": "Conectado ao WiFi",
|
||||
"error": "Não é possível conectar ao WiFi",
|
||||
"start-connecting": "Procurando por trackers",
|
||||
"handshake": "Conectado ao servidor"
|
||||
},
|
||||
"connected-trackers": "{{amount}} tracker(s) conectado(s)",
|
||||
"next": "Eu conectei todos os meus trackers"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Voltar para as credenciais de WiFi",
|
||||
"title": "Atribuir trackers",
|
||||
"description": "Vamos escolher onde cada tracker vai. Clique no local onde você quer colocar o tracker",
|
||||
"assigned": "{{assigned}} de {{trackers}} trackers atribuídos",
|
||||
"advanced": "Mostrar locais de atribuição avançados",
|
||||
"next": "Atribui todos os trackers"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "Voltar para entrar no VR",
|
||||
"title": "Montagem Manual",
|
||||
"description": "Clique em cada tracker e selecione de que maneira estão montados",
|
||||
"auto-mounting": "Montagem automática",
|
||||
"next": "Próximo passo"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "Voltar para entrar no VR",
|
||||
"title": "Calibração de Montagem",
|
||||
"description": "Para os trackers do SlimeVR funcionar, nós precisamos atribuir a rotação de montagem dos seus trackers para alinhar com a montagem física de seus trackers.",
|
||||
"manual-mounting": "Definir manualmente a montagem",
|
||||
"next": "Próximo passo",
|
||||
"prev-step": "Passo anterior",
|
||||
"done": {
|
||||
"title": "Rotações de montagens calibradas.",
|
||||
"description": "Sua calibração de montagem está completa!",
|
||||
"restart": "Voltar ao início"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "Reset de Montagem",
|
||||
"step": {
|
||||
"0": "1. Agache-se em uma pose de \"esqui\" com as pernas dobradas, a parte superior do corpo inclinada para a frente e os braços dobrados.",
|
||||
"1": "2. Pressione o botão \"Resetar Montagem\" e aguarde 3 segundos antes que as rotações de montagem dos rastreadores sejam redefinidas."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Preparação",
|
||||
"step": {
|
||||
"0": "1. Fique de pé com os braços ao lado do corpo.",
|
||||
"1": "2. Pressione o botão \"Reset\" e aguarde 3 segundos antes que os rastreadores sejam reiniciados."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "Coloque seus trackers",
|
||||
"description": "Para calibrar as rotações de montagem, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver qual é qual na figura na direita.",
|
||||
"next": "Coloquei todos os meus trackers"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "Voltar para o tutorial de reset",
|
||||
"title": "Proporções de corpo manuais",
|
||||
"precision": "Ajuste de precisão",
|
||||
"auto": "Calibração Automática"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "Voltar para o tutorial de reset",
|
||||
"title": "Meça seu corpo",
|
||||
"description": "Para os trackers SlimeVR funcionarem, precisamos saber o tamanho dos seus ossos. Essa curta calibração vai medir isso para você.",
|
||||
"manual": "Calibração manual",
|
||||
"prev-step": "Passo anterior",
|
||||
"put-trackers-on": {
|
||||
"title": "Coloque seus trackers",
|
||||
"description": "Para calibrar suas proporções, usaremos os trackers que você atribuiu. Coloque todos os seus trackers, você pode ver quais são quais na figura à direita.",
|
||||
"next": "Coloquei todos os meus trackers"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Preparação",
|
||||
"description": "Coloque uma cadeira diretamente atrás de você dentro da sua área de jogo(Play space). Esteja preparado para sentar durante a configuração de autobone.",
|
||||
"next": "Estou em frente a uma cadeira"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "Esteja preparado para se mexer",
|
||||
"description": "Começaremos a gravar algumas poses e movimentos específicos. Estes serão solicitados na próxima tela. Esteja preparado para começar quando o botão for pressionado!",
|
||||
"next": "Começar Gravação"
|
||||
},
|
||||
"recording": {
|
||||
"title": "GRAVAR",
|
||||
"description.p0": "Gravação em progresso...",
|
||||
"description.p1": "Faça os movimentos apresentados abaixo:",
|
||||
"steps": {
|
||||
"0": "Dobre os joelhos algumas vezes.",
|
||||
"1": "Sente-se na cadeira e se levante.",
|
||||
"2": "Gire seu tronco para esquerda, e incline para direita.",
|
||||
"3": "Gire seu tronco para direita, e incline para esquerda.",
|
||||
"4": "Mexa-se até o tempo terminar."
|
||||
},
|
||||
"processing": "Processando o resultado",
|
||||
"timer": "{{time}} segundo(s) restante(s)"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "Verificar os resultados",
|
||||
"description": "Verifique os resultados abaixo, parecem corretos?",
|
||||
"results": "Gravando os resultados",
|
||||
"processing": "Processando o resultado",
|
||||
"redo": "Refazer a gravação",
|
||||
"confirm": "Eles estão corretos"
|
||||
},
|
||||
"done": {
|
||||
"title": "Corpo medido e salvo.",
|
||||
"description": "Sua calibração de proporção de corpo está completa!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "Nenhum tracker detectado ou atribuído"
|
||||
}
|
||||
}
|
||||
@@ -1,460 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "Đang kết nối với máy chủ",
|
||||
"connection-lost": "Kết nối với máy chủ đã mất. Đang kết nối lại..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "Không rõ tracker nào? Lắc tracker và trong menu sẽ sáng lên.",
|
||||
"do-not-move-heels": "Hãy đảm bảo gót chân không cử động trong khi đo ghi!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "Chưa liên kết",
|
||||
"HEAD": "Đầu",
|
||||
"NECK": "Cổ",
|
||||
"RIGHT_SHOULDER": "Vai phải",
|
||||
"RIGHT_UPPER_ARM": "Tay phải trên",
|
||||
"RIGHT_LOWER_ARM": "Tay phải dưới",
|
||||
"RIGHT_HAND": "Tay phải",
|
||||
"RIGHT_UPPER_LEG": "Chân phải trên",
|
||||
"RIGHT_LOWER_LEG": "chân phải dưới",
|
||||
"RIGHT_FOOT": "Bàn chân phải",
|
||||
"CHEST": "Ngực",
|
||||
"WAIST": "Eo",
|
||||
"HIP": "Hông",
|
||||
"LEFT_SHOULDER": "Vai trái",
|
||||
"LEFT_UPPER_ARM": "Tay trái trên",
|
||||
"LEFT_LOWER_ARM": "tay trái dưới",
|
||||
"LEFT_HAND": "Tay trái",
|
||||
"LEFT_UPPER_LEG": "Chân trái trên",
|
||||
"LEFT_LOWER_LEG": "Chân trái dưới",
|
||||
"LEFT_FOOT": "Bàn chân trái"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "Chưa liên kết",
|
||||
"HEAD": "Đầu ca",
|
||||
"NECK": "Cổ dài",
|
||||
"TORSO": "Chiều dài thân",
|
||||
"CHEST": "Khoảng cách ngực",
|
||||
"WAIST": "Khoảng cách eo",
|
||||
"HIP_OFFSET": "Lệc đo hông",
|
||||
"HIPS_WIDTH": "Chiều rộng hông",
|
||||
"LEGS_LENGTH": "Chiều dài chân",
|
||||
"KNEE_HEIGHT": "Chiều cao đầu gối",
|
||||
"FOOT_LENGTH": "CHiều dài bàn chân",
|
||||
"FOOT_SHIFT": "Lệch đo bàn chân",
|
||||
"SKELETON_OFFSET": "Lệch đo thân",
|
||||
"CONTROLLER_DISTANCE_Z": "Khoảng cách tay cầm Z",
|
||||
"CONTROLLER_DISTANCE_Y": "Khoảng cách tay cầm Y",
|
||||
"FOREARM_LENGTH": "khoảng cách cánh tay",
|
||||
"SHOULDERS_DISTANCE": "Khoảng cách vai",
|
||||
"SHOULDERS_WIDTH": "Chiều rộng vai",
|
||||
"UPPER_ARM_LENGTH": "Chiều dài tay trên",
|
||||
"ELBOW_OFFSET": "Lệch đo khuỷu tay"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "Reset tất cả bộ phận",
|
||||
"full": "Reset",
|
||||
"mounting": "Reset vị trí cài",
|
||||
"quick": "Reset nhanh"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "New serial device detected!" ,
|
||||
"new-device.p1": "Vui lòng nhập thông tin Wi-Fi!",
|
||||
"new-device.p2": "Vui lòng chọn những gì làm với nó",
|
||||
"open-wifi": "Kết nối Wi-Fi",
|
||||
"open-serial": "Mở Serial Console",
|
||||
"submit": "Đăng lên!",
|
||||
"close": "Đóng"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "Giao diện chính",
|
||||
"body-proportions": "Bộ phận cơ thể",
|
||||
"trackers-assign": "Giao bộ phận tracker",
|
||||
"mounting": "Đo vị trí đặt",
|
||||
"onboarding": "Trình hướng dẫn cài đặt",
|
||||
"settings": "Cài đặt"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "Ghi BVH",
|
||||
"recording": "Đang ghi..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "Xem overlay trên SteamVR",
|
||||
"is-mirrored-label": "Xem overlay trong gương"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "Không có tình trạng",
|
||||
"busy": "Bận",
|
||||
"error": "Lỗi",
|
||||
"disconnected": "Đã ngắt kết nối",
|
||||
"occluded": "Bị tắc",
|
||||
"ok": "Đã kết nối"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "Tên",
|
||||
"type": "Loại",
|
||||
"battery": "Pin",
|
||||
"ping": "Ping",
|
||||
"rotation": "Chiều chuyển X/Y/Z",
|
||||
"position": "Vị trí X/Y/Z",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "Đằng trước",
|
||||
"left": "Bên trái",
|
||||
"right": "Bên phải",
|
||||
"back": "Đằng sau"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "Nhà sản xuất",
|
||||
"display-name": "Tên gọi",
|
||||
"custom-name": "Tên tự chọn",
|
||||
"url": " URL"
|
||||
},
|
||||
"settings": {
|
||||
"back": "Quay lại danh sách tracker",
|
||||
"title": "Cài đặt tracker",
|
||||
"assignment-section": {
|
||||
"title": "Giao bộ phận",
|
||||
"description": "Thiết bị này được giao cho bộ phận nào.",
|
||||
"edit": "Chỉnh lại giao bộ phận"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "Vị trí đặt bộ phận",
|
||||
"description": "Tracker đặt ở đâu?",
|
||||
"edit": "Chỉnh lại chỗ đặt"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "Tên tracker",
|
||||
"description": "Hãy cho một tên đẹp :)",
|
||||
"input-placeholder": "Menaced's left leg"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "Không tên",
|
||||
"unassigned": "Chưa giao vị trí"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "Bạn muốn giao tracker này cho bộ phận nào?",
|
||||
"description": "Chọn vị trí bạn muốn giao tracker cho. Ngoài ra, bạn có thể quản lí tất cả tracker cùng một lúc thay vì từng cái một.",
|
||||
"show-advanced-locations": "Xem thêm vị trí đặt",
|
||||
"manage-trackers": "Quản lí tất cả tracker",
|
||||
"unassign-tracker": "Tracker chưa giao vị trí"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "Tracker nào để giao cho {{bodyPart}}?",
|
||||
"unassigned": "Chưa giao vị trí",
|
||||
"assigned": "Đã giao vị trí",
|
||||
"dont-assign": "Thoát và không giao"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "Bạn muốn giao tracker này ở đâu?",
|
||||
"close": "Đóng"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "Cài đặt",
|
||||
"general": "Cài đặt chung",
|
||||
"tracker-mechanics": "Cơ khí tracker",
|
||||
"fk-settings": "Cài đặt FK",
|
||||
"interface": "Giao diện",
|
||||
"utils": "Hữu dụng",
|
||||
"serial": "Bảng điều khiển Serial"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "SteamVR trackers",
|
||||
"description.p0": "Bặt hoặc tắt tracker SteamVR.",
|
||||
"description.p1": "Hữu dụng nếu bạn muốn điều khiển cách SlimeVR hoạt động.",
|
||||
"trackers": {
|
||||
"waist": "Eo",
|
||||
"chest": "Ngực",
|
||||
"feet": "Bàn chân",
|
||||
"knees": "Đầu gối (Chân)",
|
||||
"elbows": "Khuỷu tay"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "Cơ khí tracker",
|
||||
"subtitle": "Lọc rung",
|
||||
"description.p0": "Chọn kiểu lọc rung cho tracker.",
|
||||
"description.p1": "Dự đoán đoán cử động trong khi lọc rung cử động.",
|
||||
"filtering-type": {
|
||||
"title": "Kiểu lọc",
|
||||
"none": {
|
||||
"label": "Không lọc",
|
||||
"description":"Để đo chiều chuyển y nguyên. Không sử dụlọclọc."
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "Làm mượt",
|
||||
"description":"Lọc cử động mượt nhưng tạo ít chậm rễ."
|
||||
},
|
||||
"prediction": {
|
||||
"label": "Dự đoán",
|
||||
"description":"Giảm chậm trê và để cử động gọn hơn, nhưng có thể tăng độ rung."
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "Số luọng"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "Cài đặt FK",
|
||||
"leg-tweak": {
|
||||
"title": "Chỉnh chân",
|
||||
"description": "Chỉnh chân có thể giảm hoặc loại bỏ chân đi xuyên sàn nhà nhưng có thể ảnh hưởng đầu gối. Sửa trượt sửa khi lướt, nhưng giảm độ chính xác ở một số cử động.",
|
||||
"floor-clip": "Xuyên sàn",
|
||||
"skating-correction": "Sửa trượt"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "Tay FK",
|
||||
"description": "Chỉnh cách tay được đo.",
|
||||
"force-arms": "Bắt tay từ kính thực tế ảo"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "Cài đặt cơ thể",
|
||||
"description": "Bật hoặc tắt hình cơ thể. Khuyên nên luôn để bật lựa chọn này.",
|
||||
"extended-spine": "Xương sống mở rộng",
|
||||
"extended-pelvis": "Xuong chậu mở rộng",
|
||||
"extended-knees": "Đầu gối mở rộng"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "Điều khiển cử chỉ",
|
||||
"subtitle": "Bấm hai lần để reset nhanh",
|
||||
"description": "Bật hoặc tắt reset nhanh. Khi bật bấm hai lần bất cứ đâu trên điểm cao nhất ở thân sẽ kích hoạt reset nhanh. Delay is the time between registering a tap and resetting.",
|
||||
"enable": "Bấm hai lần để reset nhanh",
|
||||
"delay": "Chậm trễ"
|
||||
},
|
||||
"interface": {
|
||||
"title": "Giao diện",
|
||||
"dev-mode": {
|
||||
"title": "Chế độ nhà phát triển",
|
||||
"description": "Chế độ này có thể hữu dụng nếu như bạn cần thông tin sâu hơn hoặc giao tiếp với tracker nâng cao",
|
||||
"label": "Chế độ nhà phát triển"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "Phát hiện thiết bị Serial",
|
||||
"description": "Lựa chọn này sẽ hiển thị thông báo mỗi lần thiết bị Serial mà có thể là tracker.Lựa chọn này có thể giúp quá trình cài đạt tracker",
|
||||
"label": "Phát hiện thiết bị Serial"
|
||||
},
|
||||
"lang": {
|
||||
"title": "Chọn ngôn ngữ (Change language)",
|
||||
"description": "Đổi ngôn ngữ cố định (Change the default language you want to use)",
|
||||
"placeholder": "Chọn ngôn ngữ để sử dụng (Select the language to use)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Bảng điều khiển serial",
|
||||
"description.p0": "Đâu là thông tin trực tiếp về giao tiếp với Serial.",
|
||||
"description.p1": "Hữu dụng nếu muốn biết phần mềm firmware có vấn đề không.",
|
||||
"connection-lost": "Kết nối đến Serial đã mất, đang kết nối lại...",
|
||||
"reboot": "Khởi động lại",
|
||||
"factory-reset": "Khôi phục cài đặt gối",
|
||||
"get-infos": "Lấy thông tin",
|
||||
"serial-select": "Chọn cổng Serial",
|
||||
"auto-dropdown-item": "Tự động"
|
||||
},
|
||||
"osc": {
|
||||
"vrchat": {
|
||||
"description.p0": "Đổi cài đặt dành riêng cho VRChat để nhận thông tin từ kính thực tế ảo và gửi",
|
||||
"description.p1": "thông tin tracker để track toàn thân (Hoạt động trên Quest một mình standalone).",
|
||||
"enable": {
|
||||
"title": "Bật",
|
||||
"description": "Chình gửi và nhận thông tin",
|
||||
"label": "Bật"
|
||||
},
|
||||
"network": {
|
||||
"title": "Cổng mạng",
|
||||
"description": "Chọn cổng mạng để nghe và gửi thông tin lên VRChat",
|
||||
"port-in": {
|
||||
"label": "Cổng vào",
|
||||
"placeholder": "Cổng vào (Cố định: 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "Cổng ra",
|
||||
"placeholder": "Cổng ra (Cố định: 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "Địa chỉ mạng",
|
||||
"description": "Chọn địa chỉ mạng nào để gứi lên VRChat (Hãy kiểm tra cài đặt Wi-Fi trên thiết bị để tìm cái này)",
|
||||
"placeholder": "Địa chỉ IP cho VRChat"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Trackers",
|
||||
"description": "Chỉnh gửi và nhận thông tin",
|
||||
"chest": "Ngực",
|
||||
"waist": "Eo",
|
||||
"knees": "Đầu gối",
|
||||
"feet": "Bàn chân",
|
||||
"elbows": "Khuỷu tay"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "Bỏ qua cài đặt",
|
||||
"continue": "Tiếp tục",
|
||||
"wip": "Đang làm dở (vui lòng quay lại sau update)",
|
||||
"wifi-creds": {
|
||||
"back": "Quay lại đoạn giới thiệuthiệu",
|
||||
"title": "Bỏ thông tin Wi-Fi ở đây",
|
||||
"description.p0": "Tracker sẽ sử dụng thông tin sau để kết nối không dây",
|
||||
"description.p1": "vui lòng bỏ thông tin bạn muốn kết nối",
|
||||
"skip": "Bỏ qua cài đặt Wi-Fi",
|
||||
"submit": "Thiết lập!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "Quay lại đo đạt vị trí",
|
||||
"title": "Làm lại hướng dẫn",
|
||||
"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 update"
|
||||
},
|
||||
"home": {
|
||||
"title": "Chào mừng đến với SlimeVR!",
|
||||
"description.p0": "Đem đến đo toàn thân",
|
||||
"description.p1": "tới tất cả",
|
||||
"start": "Hãy bắt đầu cài đặt!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "Quay lại giao bộ phận tracker",
|
||||
"title": "Đến giờ lên VR!",
|
||||
"description": "Đeo tất cả tracker và lên VR!",
|
||||
"ready": "Sẵn sàng!"
|
||||
},
|
||||
"done": {
|
||||
"title": "Bạn đã hoàn thành cài đặt!",
|
||||
"description": "Hãy tận hưởng đo toàn thân",
|
||||
"close": "Đóng hướng dẫn"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "Quay lại tra thông tin Wi-Fi",
|
||||
"title": "Kết nối tracker",
|
||||
"description.p0": "Đến giờ đoạn hay nhất, kết nối tất cả tracker!",
|
||||
"description.p1": "Đơn thuần kết nối tất cả tracker chưa kết nối, qua cổng USB",
|
||||
"issue": {
|
||||
"serial": "Mình có vấn đề kết nối!"
|
||||
},
|
||||
"usb": "USB Tracker",
|
||||
"connection-status": {
|
||||
"connecting": "Đang gửi thông tin Wi-Fi",
|
||||
"connected": "Đã kết nối Wi-Fi",
|
||||
"error": "Không thể kết nối Wi-Fi",
|
||||
"start-connecting": "Đang tìm tracker",
|
||||
"handshake": "Đã kết nối với máy chủ"
|
||||
},
|
||||
"connected-trackers": "{{amount}} tracker đã kết nối",
|
||||
"next": "Tôi đã kết nối tất cả tracker"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "Quay lại tra thông tin Wi-Fi",
|
||||
"title": "Giao tracker",
|
||||
"description": "Hãy chọn tracker nào nằm ở đâu. Chọn vị trí bạn muốn giao tracker cho",
|
||||
"assigned": "{{assigned}} trong {{trackers}} tracker đã được giao",
|
||||
"advanced": "Xem vị trí mở rộng",
|
||||
"next": "Hoàn thành"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "Quay lại đến vào VR",
|
||||
"title": "Đặt thủ công",
|
||||
"description": "Bấm từng tracker một và chọn xem nó được gắn theo chiều nào",
|
||||
"auto-mounting": "Gắn tự động",
|
||||
"next": "Bước tiếp theo"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "Quay lại đến vào VR",
|
||||
"title": "Đo vị trí đặt",
|
||||
"description": "Để SlimeVR hoạt động, bạn cần đạt chiều hướng quay của tracker để khớp với điểm đặt tracker trên cơ thể",
|
||||
"manual-mounting": "Đặt vị trí thủ công",
|
||||
"next": "Bước tiếp theo",
|
||||
"prev-step": "Bước trước",
|
||||
"done": {
|
||||
"title": "Hướng quay đã được đo.",
|
||||
"description": "Cài đặt vị trí đã hoàn thành!",
|
||||
"restart": "Quay lại bắt đầu"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "Reset vị trí",
|
||||
"step": {
|
||||
"0": "1. Ngồi xổm trong tư thế \"skiing\" với hai chân cong, thân trên nghiêng về phía trước và hai cánh tay cong.",
|
||||
"1": "2. Nhấn nút \"Reset Mounting\" và đợi trong 3 giây trước khi các vòng quay giá đỡ của thiết bị theo dõi sẽ được đặt lại."
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Chuẩn bị",
|
||||
"step": {
|
||||
"0": "1. Đứng thẳng với hai cánh tay sang hai bên.",
|
||||
"1": "2. Nhấn nút \"Reset\" và đợi trong 3 giây trước khi trình theo dõi sẽ đặt lại."
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "Hãy đeo tracker lên người",
|
||||
"description": "Để đo chiều quay của tracker, phần mềm sẽ sử dụng tracker mà bạn đã giao cho. Hãy đeo lên tất cả tracker, và xem cái nào là cái nào trên hình bên phải",
|
||||
"next": "Hoàn thành (Gắn xong)"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "Quay lại hướng dẫn reset",
|
||||
"title": "Cài bộ phận cơ thể thủ công",
|
||||
"precision": "Chỉnh độ chính xác",
|
||||
"auto": "Đo cơ thể tự động"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "Quay lại hướng dẫn reset",
|
||||
"title": "Đo cơ thể",
|
||||
"description": "Để SlimeVR hoạt động, phần mềm cần biết chiều dài của thân. Bước đo tự động này sẽ giúp bạn.",
|
||||
"manual": "Đo thủ công",
|
||||
"prev-step": "Bước trước",
|
||||
"put-trackers-on": {
|
||||
"title": "Đeo tất cả",
|
||||
"description": "Để đo bộ phận, phần mềm sẽ sử dụng tracker mà bạn đã giao cho. Hãy đeo lên tất cả tracker, và xem cái nào là cái nào trên hình bên phải.",
|
||||
"next": "Hoàn thành (Gắn xong)"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "Chuẩn bị",
|
||||
"description": "Đặt ghế đằng sau bạn thẳng trong khu vực chơi VR. Hãy chuẩn bị ngồi trong khi cài đặt đo thân tự động.",
|
||||
"next": "Tôi đang đứng trước ghế ngồi"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "Chuẩn bị cử động",
|
||||
"description": "Phần mềm sẽ ghi một số củ động cử chỉ. Bước này sẽ bắt đầu ở màn hình tiếp theo. Hãy chuẩn bị khi bấm bắt đầu",
|
||||
"next": "Bắt đầu quay"
|
||||
},
|
||||
"recording": {
|
||||
"title": "Quay",
|
||||
"description.p0": "Đang quay...",
|
||||
"description.p1": "Hãy cử động theo hướng dẫn sau:",
|
||||
"steps": {
|
||||
"0": "Cong đầu gối vài lần.",
|
||||
"1": "Ngồi lên ghế rồi đứng lên.",
|
||||
"2": "Vặn thân trên sang trái, sau đó uốn cong sang phải.",
|
||||
"3": "Vặn thân trên sang phải, sau đó uốn cong sang trái.",
|
||||
"4": "Đảo xung quanh cho đến khi bộ đếm thời gian kết thúc."
|
||||
},
|
||||
"processing": "Đang xử lí kết quả",
|
||||
"timer": "Còn {{time}} giây"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "Xác nhận kết quả",
|
||||
"description": "Kiểm tra kết quả dưới đây, nó có chính xác không?",
|
||||
"results": "Đang ghi kết quả",
|
||||
"processing": "Đang xử lí kết quả",
|
||||
"redo": "Ghi lại",
|
||||
"confirm": "Kết quả này chính xác!"
|
||||
},
|
||||
"done": {
|
||||
"title": "Thân đã được đo và lưu.",
|
||||
"description": "Quá trình đo thân đã hoàn thành!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "Không tracker nào được phát hiện hoặc giao vị trí"
|
||||
}
|
||||
}
|
||||
@@ -1,492 +0,0 @@
|
||||
{
|
||||
"websocket": {
|
||||
"connecting": "正在连接到服务器",
|
||||
"connection-lost": "与服务器的连接丢失,正在尝试重新连接..."
|
||||
},
|
||||
"tips": {
|
||||
"find-tracker": "不确定哪个追踪器是哪个?在现实中摇动一个追踪器,对应的那个将在屏幕上高亮显示。",
|
||||
"do-not-move-heels": "确保你的脚跟在录制的时候不会发生移动!"
|
||||
},
|
||||
"body-part": {
|
||||
"NONE": "未分配",
|
||||
"HEAD": "头部",
|
||||
"NECK": "颈部",
|
||||
"RIGHT_SHOULDER": "右肩",
|
||||
"RIGHT_UPPER_ARM": "右大臂",
|
||||
"RIGHT_LOWER_ARM": "右小臂",
|
||||
"RIGHT_HAND": "右手",
|
||||
"RIGHT_UPPER_LEG": "右大腿",
|
||||
"RIGHT_LOWER_LEG": "右小腿",
|
||||
"RIGHT_FOOT": "右脚",
|
||||
"CHEST": "胸部",
|
||||
"WAIST": "腰部",
|
||||
"HIP": "髋部",
|
||||
"LEFT_SHOULDER": "左肩",
|
||||
"LEFT_UPPER_ARM": "左大臂",
|
||||
"LEFT_LOWER_ARM": "左小臂",
|
||||
"LEFT_HAND": "左手",
|
||||
"LEFT_UPPER_LEG": "左大腿",
|
||||
"LEFT_LOWER_LEG": "左小腿",
|
||||
"LEFT_FOOT": "左脚"
|
||||
},
|
||||
"skeleton-bone": {
|
||||
"NONE": "无",
|
||||
"HEAD": "头部偏移",
|
||||
"NECK": "颈部长度",
|
||||
"TORSO": "躯干长度",
|
||||
"CHEST": "胸部距离",
|
||||
"WAIST": "腰部距离",
|
||||
"HIP_OFFSET": "髋部偏移",
|
||||
"HIPS_WIDTH": "髋部宽度",
|
||||
"LEGS_LENGTH": "腿部长度",
|
||||
"KNEE_HEIGHT": "膝盖高度",
|
||||
"FOOT_LENGTH": "脚部长度",
|
||||
"FOOT_SHIFT": "脚部偏移",
|
||||
"SKELETON_OFFSET": "骨骼偏移",
|
||||
"CONTROLLER_DISTANCE_Z": "控制器距离 Z",
|
||||
"CONTROLLER_DISTANCE_Y": "控制器距离 Y",
|
||||
"FOREARM_LENGTH": "前臂距离",
|
||||
"SHOULDERS_DISTANCE": "肩膀距离",
|
||||
"SHOULDERS_WIDTH": "肩膀宽度",
|
||||
"UPPER_ARM_LENGTH": "上臂长度",
|
||||
"ELBOW_OFFSET": "肘部偏移"
|
||||
},
|
||||
"reset": {
|
||||
"reset-all": "重置所有比例",
|
||||
"full": "重置",
|
||||
"mounting": "重置佩戴",
|
||||
"quick": "快速重置"
|
||||
},
|
||||
"serial-detection": {
|
||||
"new-device.p0": "检测到了新的串口设备!",
|
||||
"new-device.p1": "输入你的 WiFi 凭据!",
|
||||
"new-device.p2": "请选择你想对它做什么",
|
||||
"open-wifi": "连接到 WiFi",
|
||||
"open-serial": "打开串口控制器",
|
||||
"submit": "提交!",
|
||||
"close": "关闭"
|
||||
},
|
||||
"navbar": {
|
||||
"home": "主页",
|
||||
"body-proportions": "身体比例",
|
||||
"trackers-assign": "追踪器分配",
|
||||
"mounting": "佩戴校准",
|
||||
"onboarding": "向导",
|
||||
"settings": "设置"
|
||||
},
|
||||
"bvh": {
|
||||
"start-recording": "录制 BVH 文件",
|
||||
"recording": "录制中..."
|
||||
},
|
||||
"overlay": {
|
||||
"is-visible-label": "在 SteamVR 中显示覆盖层",
|
||||
"is-mirrored-label": "镜像显示覆盖层"
|
||||
},
|
||||
"tracker": {
|
||||
"status": {
|
||||
"none": "无状态",
|
||||
"busy": "繁忙",
|
||||
"error": "错误",
|
||||
"disconnected": "断开连接",
|
||||
"occluded": "被遮挡",
|
||||
"ok": "已连接"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"name": "名字",
|
||||
"type": "类型",
|
||||
"battery": "电量",
|
||||
"ping": "延迟",
|
||||
"rotation": "旋转 X/Y/Z",
|
||||
"position": "位置 X/Y/Z",
|
||||
"url": "地址"
|
||||
}
|
||||
},
|
||||
"rotation": {
|
||||
"front": "前",
|
||||
"left": "左",
|
||||
"right": "右",
|
||||
"back": "后"
|
||||
},
|
||||
"infos": {
|
||||
"manufacturer": "制造商",
|
||||
"display-name": "显示名称",
|
||||
"custom-name": "自定义名称",
|
||||
"url": "追踪器地址"
|
||||
},
|
||||
"settings": {
|
||||
"back": "返回追踪器列表",
|
||||
"title": "追踪器设置",
|
||||
"assignment-section": {
|
||||
"title": "分配追踪器",
|
||||
"description": "该追踪器要被分配到身体的哪个部位?",
|
||||
"edit": "编辑分配"
|
||||
},
|
||||
"mounting-section": {
|
||||
"title": "佩戴位置",
|
||||
"description": "该追踪器被佩戴在哪里?",
|
||||
"edit": "编辑佩戴"
|
||||
},
|
||||
"name-section": {
|
||||
"title": "追踪器名称",
|
||||
"description": "给它起一个可爱的名字吧=w=~",
|
||||
"input-placeholder": "CC 封印着漆黑之力的漆黑左臂"
|
||||
}
|
||||
},
|
||||
"part-card": {
|
||||
"no-name": "未命名",
|
||||
"unassigned": "未分配"
|
||||
}
|
||||
},
|
||||
"body-assignment-menu": {
|
||||
"title": "你想把追踪器放在哪里?",
|
||||
"description": "选择要将此追踪器分配到的位置,或者你也可以选择一次管理所有追踪器,而不是逐个管理。",
|
||||
"show-advanced-locations": "显示高级分配位置",
|
||||
"manage-trackers": "管理所有追踪器",
|
||||
"unassign-tracker": "取消分配追踪器"
|
||||
},
|
||||
"tracker-selection-menu": {
|
||||
"title": "要将哪个追踪器分配给 {{bodypart}}?",
|
||||
"unassigned": "未分配的追踪器",
|
||||
"assigned": "已分配的追踪器",
|
||||
"dont-assign": "不分配"
|
||||
},
|
||||
"mounting-selection-menu": {
|
||||
"title": "你想把追踪器放在哪里?",
|
||||
"close": "关闭"
|
||||
},
|
||||
"settings": {
|
||||
"sidebar": {
|
||||
"title": "设置",
|
||||
"general": "通用设置",
|
||||
"tracker-mechanics": "追踪器设置",
|
||||
"fk-settings": "FK 设置",
|
||||
"gesture-control": "手势控制",
|
||||
"interface": "交互界面",
|
||||
"osc-router": "OSC 路由",
|
||||
"utils": "工具",
|
||||
"serial": "串行控制器"
|
||||
},
|
||||
"general": {
|
||||
"steamvr": {
|
||||
"title": "SteamVR",
|
||||
"subtitle": "SteamVR 追踪器",
|
||||
"description.p0": "启用或禁用特定的追踪器",
|
||||
"description.p1": "对于只支持特定追踪器的应用会很有用。",
|
||||
"trackers": {
|
||||
"waist": "腰部",
|
||||
"chest": "胸部",
|
||||
"feet": "脚部",
|
||||
"knees": "膝盖",
|
||||
"elbows": "肘部",
|
||||
"hands": "手部"
|
||||
}
|
||||
},
|
||||
"tracker-mechanics": {
|
||||
"title": "追踪器设置",
|
||||
"subtitle": "滤波",
|
||||
"description.p0": "选择追踪器的滤波类型。",
|
||||
"description.p1": "预测型将会对你的运动加以预测,而平滑型将会让你的运动更加平滑。",
|
||||
"filtering-type": {
|
||||
"title": "滤波类型",
|
||||
"none": {
|
||||
"label": "无滤波",
|
||||
"description": "使用原始数据,不会进行任何过滤。"
|
||||
},
|
||||
"smoothing": {
|
||||
"label": "平滑型",
|
||||
"description": "让运动更加平滑,但会增加一些延迟。"
|
||||
},
|
||||
"prediction": {
|
||||
"label": "预测型",
|
||||
"description": "减少延迟并使移动更敏捷,但可能会增加一些抖动。"
|
||||
}
|
||||
},
|
||||
"amount": {
|
||||
"label": "滤波强度"
|
||||
}
|
||||
},
|
||||
"fk-settings": {
|
||||
"title": "FK 设置",
|
||||
"leg-tweak": {
|
||||
"title": "腿部调整",
|
||||
"description": "本设置可以减少甚至消除脚部穿入地板的情况,但是当你跪在地上的时候可能产生一些问题. 脚滑矫正可以矫正一些脚滑溜冰的问题, 但是可能会降低某些动作的准确性。",
|
||||
"floor-clip": "地板限制",
|
||||
"skating-correction": "脚滑矫正",
|
||||
"skating-correction-amount": "脚滑矫正数值"
|
||||
},
|
||||
"arm-fk": {
|
||||
"title": "手臂 FK",
|
||||
"description": "更改手臂的追踪方式。",
|
||||
"force-arms": "强制从头显获得数据"
|
||||
},
|
||||
"skeleton-settings": {
|
||||
"title": "骨架设置",
|
||||
"description": "打开或关闭骨架设置。建议保持这些设置不变。",
|
||||
"extended-spine": "脊柱延伸",
|
||||
"extended-pelvis": "骨盆延伸",
|
||||
"extended-knees": "膝盖延伸"
|
||||
}
|
||||
},
|
||||
"gesture-control": {
|
||||
"title": "手势控制",
|
||||
"subtitle": "双击快速重置",
|
||||
"description": "启用或禁用双击快速重置。启用时,双击身上佩戴的最高的追踪器上的任何位置将激活快速重置。延迟是指记录到敲击和重置之间的时间。",
|
||||
"enable": "双击快速重置",
|
||||
"delay": "延迟"
|
||||
},
|
||||
"interface": {
|
||||
"title": "交互界面",
|
||||
"dev-mode": {
|
||||
"title": "开发者模式",
|
||||
"description": "如果你需要深入的数据或更深入地与连接的追踪器进行交互,打开此模式将会非常有用。",
|
||||
"label": "开发者模式"
|
||||
},
|
||||
"serial-detection": {
|
||||
"title": "串口设备检测",
|
||||
"description": "每次插入可能是追踪器的新串口设备时,此选项都会显示一个弹出窗口。这有助于改进追踪器的设置过程。",
|
||||
"label": "串口设备检测"
|
||||
},
|
||||
"lang": {
|
||||
"title": "选择语言",
|
||||
"description": "更改要使用的默认语言",
|
||||
"placeholder": "选择要使用的语言"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "串口控制台",
|
||||
"description.p0": "这是用于串口通信的实时信息馈送。",
|
||||
"description.p1": "如果你需要了解固件是否出现问题,这将会很有用。",
|
||||
"connection-lost": "串口连接丢失,正在重新连接..",
|
||||
"reboot": "重新启动",
|
||||
"factory-reset": "恢复出厂设置",
|
||||
"get-infos": "获取信息",
|
||||
"serial-select": "选择串行端口",
|
||||
"auto-dropdown-item": "自动"
|
||||
},
|
||||
"osc": {
|
||||
"router": {
|
||||
"title": "OSC 路由",
|
||||
"description.p0": "从另一个程序转发 OSC 信息。",
|
||||
"description.p1": "在使用另一个 VRChat 的 OSC 程序时会很有用。",
|
||||
"enable": {
|
||||
"title": "启用",
|
||||
"description": "控制信息转发功能的开关。",
|
||||
"label": "启用"
|
||||
},
|
||||
"network": {
|
||||
"title": "网络端口",
|
||||
"description.p0": "设置用于监听和向 VRChat 发送数据的端口",
|
||||
"description.p1": "这些端口可以与 SlimeVR 服务器中使用的其他端口相同。",
|
||||
"port-in": {
|
||||
"label": "输入端口",
|
||||
"placeholder": "输入端口(默认 9002)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "输出端口",
|
||||
"placeholder": "输出端口(默认 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "网络地址",
|
||||
"description": "设置用来发送数据的地址。",
|
||||
"placeholder": "IPV4 地址"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vrchat": {
|
||||
"description.p0": "改变 VRChat 的特定设置以接收和发送头显数据。",
|
||||
"description.p1": "用于全身追踪的追踪器数据(在 Quest 端生效)。",
|
||||
"enable": {
|
||||
"title": "启用",
|
||||
"description": "切换数据的发送和接收",
|
||||
"label": "启用"
|
||||
},
|
||||
"network": {
|
||||
"title": "网络端口",
|
||||
"description": "设置用于监听和向 VRChat 发送数据的端口",
|
||||
"port-in": {
|
||||
"label": "输入端口",
|
||||
"placeholder": "输入端口(默认 9001)"
|
||||
},
|
||||
"port-out": {
|
||||
"label": "输出端口",
|
||||
"placeholder": "输出端口(默认 9000)"
|
||||
},
|
||||
"address": {
|
||||
"title": "网络地址",
|
||||
"description": "选择将数据发送到 VRChat 的地址(检查设备上的 WiFi 设置)",
|
||||
"placeholder": "VRChat IP 地址"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "追踪器",
|
||||
"description": "切换数据的发送和接收",
|
||||
"chest": "胸部",
|
||||
"waist": "腰部",
|
||||
"knees": "膝盖",
|
||||
"feet": "脚部",
|
||||
"elbows": "肘部"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"onboarding": {
|
||||
"skip": "跳过设置",
|
||||
"continue": "继续",
|
||||
"wip": "仍在开发中",
|
||||
"wifi-creds": {
|
||||
"back": "返回简介",
|
||||
"title": "输入 WiFi 凭据",
|
||||
"description.p0": "追踪器将使用这些凭据连接到 WiFi",
|
||||
"description.p1": "请使用当前连接到 WiFi 的凭据",
|
||||
"skip": "跳过 WiFi 设置",
|
||||
"submit": "提交!"
|
||||
},
|
||||
"reset-tutorial": {
|
||||
"back": "返回到佩戴校准",
|
||||
"title": "重置教程",
|
||||
"description": "此功能尚未开发完成,请继续就好"
|
||||
},
|
||||
"home": {
|
||||
"title": "欢迎来到 SlimeVR",
|
||||
"description.p0": "将全身追踪",
|
||||
"description.p1": "带给每一个人",
|
||||
"start": "我准备好了!"
|
||||
},
|
||||
"enter-vr": {
|
||||
"back": "返回到追踪器分配",
|
||||
"title": "VR 时间到!",
|
||||
"description": "穿戴好所有的追踪器,开始快乐 VR 吧!",
|
||||
"ready": "我准备好了"
|
||||
},
|
||||
"done": {
|
||||
"title": "都搞定啦!",
|
||||
"description": "享受你的全身追踪体验吧",
|
||||
"close": "关闭向导"
|
||||
},
|
||||
"connect-tracker": {
|
||||
"back": "返回到 WiFi 凭据设置",
|
||||
"title": "连接追踪器",
|
||||
"description.p0": "来到了我第二喜欢的环节,连接所有的追踪器!",
|
||||
"description.p1": "只需通过 USB 连接所有尚未连接的设备即可。",
|
||||
"issue": {
|
||||
"serial": "QAQ 我在连接时遇到问题!"
|
||||
},
|
||||
"usb": "USB 追踪器",
|
||||
"connection-status": {
|
||||
"connecting": "正在发送 WiFi 凭据",
|
||||
"connected": "WiFi 已连接",
|
||||
"error": "无法连接到 WiFi",
|
||||
"start-connecting": "寻找追踪器",
|
||||
"handshake": "已连接到服务器"
|
||||
},
|
||||
"connected-trackers": "{{Amount}} 个追踪器已连接",
|
||||
"next": "所有的追踪器都连接好了"
|
||||
},
|
||||
"assign-trackers": {
|
||||
"back": "返回 WiFi 凭据设置",
|
||||
"title": "分配追踪器",
|
||||
"description": "让我们选择哪个追踪器在哪里。单击要放置追踪器的部位",
|
||||
"assigned": "{{assigned}} / {{trackers}} 个已分配的追踪器",
|
||||
"advanced": "显示高级分配部位",
|
||||
"next": "所有的追踪器都分配好了"
|
||||
},
|
||||
"manual-mounting": {
|
||||
"back": "返回到进入 VR",
|
||||
"title": "手动佩戴",
|
||||
"description": "单击每个追踪器并选择它们的配电方式",
|
||||
"auto-mounting": "自动佩戴",
|
||||
"next": "下一步"
|
||||
},
|
||||
"automatic-mounting": {
|
||||
"back": "返回到进入 VR",
|
||||
"title": "佩戴校准",
|
||||
"description": "为了让 SlimeVR 追踪器正常工作,我们需要为你的追踪器分配一个佩戴方向,以使其与你的物理追踪器佩戴方式对齐。",
|
||||
"manual-mounting": "手动设置佩戴方向",
|
||||
"next": "下一步",
|
||||
"prev-step": "上一步",
|
||||
"done": {
|
||||
"title": "佩戴方向已校准。",
|
||||
"description": "你的佩戴方向校准完成!",
|
||||
"restart": "返回以开始"
|
||||
},
|
||||
"mounting-reset": {
|
||||
"title": "佩戴重置",
|
||||
"step": {
|
||||
"0": "1. 双腿弯曲以滑雪的姿势蹲下,上身向前倾斜,手臂弯曲。",
|
||||
"1": "按下佩戴重置按钮并等待 3 秒钟,然后追踪器的佩戴方向将被重置。"
|
||||
}
|
||||
},
|
||||
"preparation": {
|
||||
"title": "准备",
|
||||
"step": {
|
||||
"0": "1. 身体直立,双臂放在身体两侧。",
|
||||
"1": "按下“复位”按钮,等待 3 秒钟,追踪器将复位。"
|
||||
}
|
||||
},
|
||||
"put-trackers-on": {
|
||||
"title": "穿戴好追踪器",
|
||||
"description": "为了校准佩戴方向,我们将使用你刚才分配的追踪器。戴上你所有的追踪器,你可以在右边的图中看到哪个追踪器对应哪个。",
|
||||
"next": "所有的追踪器都已开启!"
|
||||
}
|
||||
},
|
||||
"manual-proportions": {
|
||||
"back": "返回重置教程",
|
||||
"title": "手动调整身体比例",
|
||||
"precision": "精确调整",
|
||||
"auto": "自动校准"
|
||||
},
|
||||
"automatic-proportions": {
|
||||
"back": "返回重置教程",
|
||||
"title": "测量你的身体比例",
|
||||
"description": "为了让 SlimeVR 追踪器正常使用,我们需要知道你的骨头的长度。这个简短的校准将为你测量它们。",
|
||||
"manual": "手动校准",
|
||||
"prev-step": "上一步",
|
||||
"put-trackers-on": {
|
||||
"title": "穿戴好追踪器",
|
||||
"description": "为了校准你的身体比例,我们将使用你刚才分配的追踪器。戴上你所有的追踪器,你可以在右边的图中看到哪个追踪器对应哪个。",
|
||||
"next": "所有的追踪器都已开启!"
|
||||
},
|
||||
"preparation": {
|
||||
"title": "准备",
|
||||
"description": "在你的正后方放一把椅子,并准备好在接下来的设置过程中坐下。",
|
||||
"next": "我在椅子前面啦"
|
||||
},
|
||||
"start-recording": {
|
||||
"title": "准备录制运动",
|
||||
"description": "我们现在要记录一些特定的姿势和动作。这些将在下一个屏幕中提示。当按钮被按下时,准备好开始!",
|
||||
"next": "开始录制"
|
||||
},
|
||||
"recording": {
|
||||
"title": "REC",
|
||||
"description.p0": "录制中...",
|
||||
"description.p1": "依次做出以下动作:",
|
||||
"steps": {
|
||||
"0": "弯曲几次膝盖。",
|
||||
"1": "坐在椅子上,然后站起来。",
|
||||
"2": "向左扭转上身,然后向右弯。",
|
||||
"3": "向右扭转上身,然后向左弯。",
|
||||
"4": "持续摆动身体,直到计时器结束。"
|
||||
},
|
||||
"processing": "正在处理结果",
|
||||
"timer": "剩余 {{time}} 秒"
|
||||
},
|
||||
"verify-results": {
|
||||
"title": "校验结果",
|
||||
"description": "检查下面的结果,它们看起来是正确的吗?",
|
||||
"results": "录制结果",
|
||||
"processing": "正在处理结果",
|
||||
"redo": "重新录制",
|
||||
"confirm": "他们是正确的!"
|
||||
},
|
||||
"done": {
|
||||
"title": "身体数据已测量并保存。",
|
||||
"description": "你的身体比例校准已完成!"
|
||||
}
|
||||
}
|
||||
},
|
||||
"home": {
|
||||
"no-trackers": "未检测到或未分配追踪器"
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,9 @@ const versionTag = execSync('git --no-pager tag --points-at HEAD')
|
||||
// If not empty then it's not clean
|
||||
const gitClean = execSync('git status --porcelain').toString() ? false : true;
|
||||
|
||||
console.log(`version is ${versionTag || commitHash}${gitClean ? "" : "-dirty"}`);
|
||||
console.log(
|
||||
`version is ${versionTag || commitHash}${gitClean ? '' : '-dirty'}`
|
||||
);
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
|
||||
636
package-lock.json
generated
636
package-lock.json
generated
@@ -14,6 +14,7 @@
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/parser": "^5.43.0",
|
||||
"husky": "^8.0.2",
|
||||
"patch-package": "^6.5.0",
|
||||
"typescript": "^4.9.3"
|
||||
}
|
||||
},
|
||||
@@ -34,6 +35,9 @@
|
||||
"flatbuffers": "^22.10.26",
|
||||
"fs-extra": "^10.0.0",
|
||||
"i18next": "^22.0.6",
|
||||
"i18next-browser-languagedetector": "^7.0.1",
|
||||
"i18next-fluent": "^2.0.0",
|
||||
"i18next-fluent-backend": "^0.0.3",
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
"ip-num": "^1.4.1",
|
||||
"postcss-flexbugs-fixes": "^5.0.2",
|
||||
@@ -2270,6 +2274,22 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluent/bundle": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluent/bundle/-/bundle-0.13.0.tgz",
|
||||
"integrity": "sha512-Q3XQSoeCvptsWXdu4H3pJZLp45FX8JnhQ7A9OV9w6dU+czKJnuKJkC5xLv19N0OG/NRnVFKqhcQBrx+IWAk09g==",
|
||||
"engines": {
|
||||
"node": ">=8.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluent/syntax": {
|
||||
"version": "0.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.15.0.tgz",
|
||||
"integrity": "sha512-NIObEPekXiaDDO10NQSOeylOETaI2Ns/ymKJNvgkM6FcBARS+t3NVGyLPPIl/pqHDUB9v7bWeEmuVMJQjnpNeg==",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@fontsource/poppins": {
|
||||
"version": "4.5.10",
|
||||
"resolved": "https://registry.npmjs.org/@fontsource/poppins/-/poppins-4.5.10.tgz",
|
||||
@@ -3161,6 +3181,12 @@
|
||||
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@yarnpkg/lockfile": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
|
||||
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
@@ -3722,6 +3748,12 @@
|
||||
"node": ">=6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ci-info": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
|
||||
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/classnames": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
|
||||
@@ -5510,6 +5542,15 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/find-yarn-workspace-root": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
|
||||
"integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"micromatch": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/flat-cache": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
|
||||
@@ -5532,6 +5573,14 @@
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
|
||||
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
|
||||
},
|
||||
"node_modules/fluent_conv": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fluent_conv/-/fluent_conv-3.1.0.tgz",
|
||||
"integrity": "sha512-fmS8RFxkEP7P/XTlVbf8b8I0RSLOKFqlrARmwsH1bNrKxmbEGNjZQXg0R6QZz/FdFrHcp7sFAjLp75bB4CSPsA==",
|
||||
"dependencies": {
|
||||
"@fluent/syntax": "0.15.0"
|
||||
}
|
||||
},
|
||||
"node_modules/for-each": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
||||
@@ -6112,6 +6161,31 @@
|
||||
"@babel/runtime": "^7.17.2"
|
||||
}
|
||||
},
|
||||
"node_modules/i18next-browser-languagedetector": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.1.tgz",
|
||||
"integrity": "sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.19.4"
|
||||
}
|
||||
},
|
||||
"node_modules/i18next-fluent": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/i18next-fluent/-/i18next-fluent-2.0.0.tgz",
|
||||
"integrity": "sha512-k69kvftj02YNMtls1oy5TkbsjEDUlkfXcApBIv3gCnQTTDPTNVekweIGC6V5m/yC2ce6SNqkzlPpdB24OgEEgg==",
|
||||
"dependencies": {
|
||||
"@fluent/bundle": "^0.13.0",
|
||||
"fluent_conv": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/i18next-fluent-backend": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/i18next-fluent-backend/-/i18next-fluent-backend-0.0.3.tgz",
|
||||
"integrity": "sha512-8iduPJrE/KOlpHR4iu+G5acmcgpj9bdQ3uYRxmR6N3U80q+BZnk4WZ/kx7Rs0jmZifVpU4qDODvD4eE9IukNig==",
|
||||
"dependencies": {
|
||||
"fluent_conv": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/identity-obj-proxy": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
|
||||
@@ -6277,6 +6351,18 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/is-ci": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
|
||||
"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ci-info": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"is-ci": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/is-core-module": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
|
||||
@@ -6667,6 +6753,15 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/klaw-sync": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
||||
"integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.11"
|
||||
}
|
||||
},
|
||||
"node_modules/kleur": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
||||
@@ -6944,6 +7039,12 @@
|
||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
|
||||
@@ -7155,6 +7256,15 @@
|
||||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/p-limit": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||
@@ -7219,6 +7329,241 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.0.tgz",
|
||||
"integrity": "sha512-tC3EqJmo74yKqfsMzELaFwxOAu6FH6t+FzFOsnWAuARm7/n2xB5AOeOueE221eM9gtMuIKMKpF9tBy/X2mNP0Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@yarnpkg/lockfile": "^1.1.0",
|
||||
"chalk": "^4.1.2",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"find-yarn-workspace-root": "^2.0.0",
|
||||
"fs-extra": "^7.0.1",
|
||||
"is-ci": "^2.0.0",
|
||||
"klaw-sync": "^6.0.0",
|
||||
"minimist": "^1.2.6",
|
||||
"open": "^7.4.2",
|
||||
"rimraf": "^2.6.3",
|
||||
"semver": "^5.6.0",
|
||||
"slash": "^2.0.0",
|
||||
"tmp": "^0.0.33",
|
||||
"yaml": "^1.10.2"
|
||||
},
|
||||
"bin": {
|
||||
"patch-package": "index.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10",
|
||||
"npm": ">5"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/patch-package/node_modules/cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/fs-extra": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
|
||||
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^4.0.0",
|
||||
"universalify": "^0.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6 <7 || >=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/jsonfile": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
|
||||
"dev": true,
|
||||
"optionalDependencies": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/open": {
|
||||
"version": "7.4.2",
|
||||
"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
|
||||
"integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"is-docker": "^2.0.0",
|
||||
"is-wsl": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/rimraf": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
"bin": {
|
||||
"rimraf": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/slash": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
|
||||
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/universalify": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"which": "bin/which"
|
||||
}
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
@@ -9193,6 +9538,18 @@
|
||||
"globrex": "^0.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"os-tmpdir": "~1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
@@ -11545,6 +11902,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"@fluent/bundle": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluent/bundle/-/bundle-0.13.0.tgz",
|
||||
"integrity": "sha512-Q3XQSoeCvptsWXdu4H3pJZLp45FX8JnhQ7A9OV9w6dU+czKJnuKJkC5xLv19N0OG/NRnVFKqhcQBrx+IWAk09g=="
|
||||
},
|
||||
"@fluent/syntax": {
|
||||
"version": "0.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.15.0.tgz",
|
||||
"integrity": "sha512-NIObEPekXiaDDO10NQSOeylOETaI2Ns/ymKJNvgkM6FcBARS+t3NVGyLPPIl/pqHDUB9v7bWeEmuVMJQjnpNeg=="
|
||||
},
|
||||
"@fontsource/poppins": {
|
||||
"version": "4.5.10",
|
||||
"resolved": "https://registry.npmjs.org/@fontsource/poppins/-/poppins-4.5.10.tgz",
|
||||
@@ -12188,6 +12555,12 @@
|
||||
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
|
||||
"peer": true
|
||||
},
|
||||
"@yarnpkg/lockfile": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
|
||||
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
|
||||
"dev": true
|
||||
},
|
||||
"acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
@@ -12574,6 +12947,12 @@
|
||||
"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
|
||||
"peer": true
|
||||
},
|
||||
"ci-info": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
|
||||
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
|
||||
"dev": true
|
||||
},
|
||||
"classnames": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
|
||||
@@ -13778,6 +14157,15 @@
|
||||
"path-exists": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"find-yarn-workspace-root": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
|
||||
"integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"micromatch": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"flat-cache": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
|
||||
@@ -13797,6 +14185,14 @@
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
|
||||
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
|
||||
},
|
||||
"fluent_conv": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fluent_conv/-/fluent_conv-3.1.0.tgz",
|
||||
"integrity": "sha512-fmS8RFxkEP7P/XTlVbf8b8I0RSLOKFqlrARmwsH1bNrKxmbEGNjZQXg0R6QZz/FdFrHcp7sFAjLp75bB4CSPsA==",
|
||||
"requires": {
|
||||
"@fluent/syntax": "0.15.0"
|
||||
}
|
||||
},
|
||||
"for-each": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
||||
@@ -14190,6 +14586,31 @@
|
||||
"@babel/runtime": "^7.17.2"
|
||||
}
|
||||
},
|
||||
"i18next-browser-languagedetector": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.1.tgz",
|
||||
"integrity": "sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.19.4"
|
||||
}
|
||||
},
|
||||
"i18next-fluent": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/i18next-fluent/-/i18next-fluent-2.0.0.tgz",
|
||||
"integrity": "sha512-k69kvftj02YNMtls1oy5TkbsjEDUlkfXcApBIv3gCnQTTDPTNVekweIGC6V5m/yC2ce6SNqkzlPpdB24OgEEgg==",
|
||||
"requires": {
|
||||
"@fluent/bundle": "^0.13.0",
|
||||
"fluent_conv": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"i18next-fluent-backend": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/i18next-fluent-backend/-/i18next-fluent-backend-0.0.3.tgz",
|
||||
"integrity": "sha512-8iduPJrE/KOlpHR4iu+G5acmcgpj9bdQ3uYRxmR6N3U80q+BZnk4WZ/kx7Rs0jmZifVpU4qDODvD4eE9IukNig==",
|
||||
"requires": {
|
||||
"fluent_conv": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"identity-obj-proxy": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
|
||||
@@ -14308,6 +14729,15 @@
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
|
||||
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
|
||||
},
|
||||
"is-ci": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
|
||||
"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ci-info": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"is-core-module": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
|
||||
@@ -14569,6 +14999,15 @@
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
|
||||
},
|
||||
"klaw-sync": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
||||
"integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.11"
|
||||
}
|
||||
},
|
||||
"kleur": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
||||
@@ -14780,6 +15219,12 @@
|
||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||
"peer": true
|
||||
},
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node-releases": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
|
||||
@@ -14925,6 +15370,12 @@
|
||||
"word-wrap": "^1.2.3"
|
||||
}
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
|
||||
"dev": true
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||
@@ -14965,6 +15416,179 @@
|
||||
"lines-and-columns": "^1.1.6"
|
||||
}
|
||||
},
|
||||
"patch-package": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.0.tgz",
|
||||
"integrity": "sha512-tC3EqJmo74yKqfsMzELaFwxOAu6FH6t+FzFOsnWAuARm7/n2xB5AOeOueE221eM9gtMuIKMKpF9tBy/X2mNP0Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@yarnpkg/lockfile": "^1.1.0",
|
||||
"chalk": "^4.1.2",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"find-yarn-workspace-root": "^2.0.0",
|
||||
"fs-extra": "^7.0.1",
|
||||
"is-ci": "^2.0.0",
|
||||
"klaw-sync": "^6.0.0",
|
||||
"minimist": "^1.2.6",
|
||||
"open": "^7.4.2",
|
||||
"rimraf": "^2.6.3",
|
||||
"semver": "^5.6.0",
|
||||
"slash": "^2.0.0",
|
||||
"tmp": "^0.0.33",
|
||||
"yaml": "^1.10.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
|
||||
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^4.0.0",
|
||||
"universalify": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"open": {
|
||||
"version": "7.4.2",
|
||||
"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
|
||||
"integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-docker": "^2.0.0",
|
||||
"is-wsl": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
|
||||
"dev": true
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "^7.1.3"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"slash": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
|
||||
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
|
||||
"dev": true
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
@@ -16039,6 +16663,9 @@
|
||||
"flatbuffers": "^22.10.26",
|
||||
"fs-extra": "^10.0.0",
|
||||
"i18next": "^22.0.6",
|
||||
"i18next-browser-languagedetector": "^7.0.1",
|
||||
"i18next-fluent": "^2.0.0",
|
||||
"i18next-fluent-backend": "^0.0.3",
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
"ip-num": "^1.4.1",
|
||||
"postcss": "^8.4.12",
|
||||
@@ -16298,6 +16925,15 @@
|
||||
"globrex": "^0.1.2"
|
||||
}
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-tmpdir": "~1.0.2"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
"tauri": "cd gui && npm run tauri",
|
||||
"build": "npm run tauri build",
|
||||
"update-solarxr": "cd solarxr-protocol && npm run build",
|
||||
"prepare": "husky install && npm run update-solarxr"
|
||||
"prepare": "husky install && npm run update-solarxr && patch-package"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/parser": "^5.43.0",
|
||||
"husky": "^8.0.2",
|
||||
"patch-package": "^6.5.0",
|
||||
"typescript": "^4.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
13
patches/i18next-fluent-backend+0.0.3.patch
Normal file
13
patches/i18next-fluent-backend+0.0.3.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/node_modules/i18next-fluent-backend/dist/es/index.js b/node_modules/i18next-fluent-backend/dist/es/index.js
|
||||
index 70a582a..477986a 100644
|
||||
--- a/node_modules/i18next-fluent-backend/dist/es/index.js
|
||||
+++ b/node_modules/i18next-fluent-backend/dist/es/index.js
|
||||
@@ -6,7 +6,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
||||
|
||||
import * as utils from './utils.js';
|
||||
import ajax from './ajax.js';
|
||||
-import ftl2js from 'fluent_conv/lib/ftl2js';
|
||||
+import ftl2js from 'fluent_conv/esm/ftl2js';
|
||||
|
||||
function getDefaults() {
|
||||
return {
|
||||
Submodule solarxr-protocol updated: 8466dbc6a4...da60e0db2a
Reference in New Issue
Block a user