#
# Copyright (C) 2023 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
wear.whs.panel.title=Wear Health Services
wear.whs.panel.capabilities.standard=Standard capabilities
wear.whs.panel.capabilities.all=All capabilities
wear.whs.panel.capabilities.syncing=Syncing
wear.whs.panel.exercise.inactive=Exercise not active
wear.whs.panel.exercise.active=Exercise active
wear.whs.panel.exercise.inactive.tooltip=Start an exercise by using an app on your device
wear.whs.panel.sensor=Capability
wear.whs.panel.override=Override
wear.whs.panel.reset=Reset
wear.whs.panel.reset.tooltip=Reset the state to the currently selected capability preset
wear.whs.panel.reset.success=Reset was successful
wear.whs.panel.reset.failure=Failed to reset
wear.whs.panel.apply=Apply
wear.whs.panel.apply.capabilities.success=Capabilities editing was successful
wear.whs.panel.apply.capabilities.failure=Failed to edit capabilities
wear.whs.panel.apply.sensor.values.success=Sensor values editing was successful
wear.whs.panel.apply.sensor.values.failure=Failed to edit sensor values
wear.whs.panel.apply.tooltip.no.exercise=<html>Update the set of sensors that will be enabled during exercises.<br>Enabled sensors will simulate data.</html>
wear.whs.panel.apply.tooltip.during.exercise=<html>Override sensor values for the current exercise.<br>Once a new exercise is started, the overridden values will have to be reapplied.</html>
wear.whs.panel.disabled.during.exercise=Capabilities cannot be enabled or disabled during an ongoing exercise
wear.whs.panel.stale.data=The data shown on the panel might be stale
wear.whs.panel.load.preset.tooltip=Enable sensors based on a capability preset
wear.whs.capability.heart.rate.label=Heart rate
wear.whs.capability.heart.rate.unit=bpm
wear.whs.capability.location.label=Location
wear.whs.capability.steps.label=Steps
wear.whs.capability.steps.unit=steps
wear.whs.capability.distance.label=Distance
wear.whs.capability.distance.unit=m
wear.whs.capability.speed.label=Speed
wear.whs.capability.speed.unit=m/s
wear.whs.capability.elevation.gain.label=Elevation gain
wear.whs.capability.elevation.gain.unit=m
wear.whs.capability.elevation.loss.label=Elevation loss
wear.whs.capability.elevation.loss.unit=m
wear.whs.capability.total.calories.label=Calories
wear.whs.capability.total.calories.unit=kcal
wear.whs.capability.absolute.elevation.label=Absolute elevation
wear.whs.capability.absolute.elevation.unit=m
wear.whs.capability.pace.label=Pace
wear.whs.capability.pace.unit=ms/km
wear.whs.capability.floors.label=Floors
wear.whs.capability.floors.unit=floors
wear.whs.capability.steps.per.minute.label=Steps per min
wear.whs.capability.steps.per.minute.unit=steps/min
wear.whs.capability.unit.none=
wear.whs.capability.override.not.supported=It is currently not possible to override the value of this sensor
wear.whs.panel.trigger.events.tooltip=Trigger events
wear.whs.event.trigger.auto.pause.resume.group=Trigger auto pause/resume
wear.whs.event.trigger.auto.pause=Trigger auto-pause
wear.whs.event.trigger.auto.resume=Trigger auto-resume
wear.whs.event.trigger.sleep.group=Trigger sleep events
wear.whs.event.trigger.asleep=Trigger user asleep
wear.whs.event.trigger.awake=Trigger user awake
wear.whs.event.trigger.golf.shots.group=Trigger golf shots
wear.whs.event.trigger.golf.shot.putt=Trigger golf shot with putt swing
wear.whs.event.trigger.golf.shot.partial=Trigger golf shot with partial swing
wear.whs.event.trigger.golf.shot.full=Trigger golf shot with full swing
wear.whs.event.trigger.success=Event triggered
wear.whs.event.trigger.failure=Event trigger failed
wear.whs.panel.learn.more=Learn more