<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
     Copyright (C) 2013-2016 The CyanogenMod Project
               (C) 2017 The LineageOS 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
  <!-- Label for feature switch [CHAR LIMIT=30] -->
  <!-- Label for feature switch [CHAR LIMIT=30] -->
  <!-- Device specific settings -->
  <string name="device_settings_app_name">Täpsemad seaded</string>
  <!-- Device gestures panel -->
  <string name="screen_gestures_panel_title">Žestid</string>
  <!-- Touchscreen gesture haptic feedback -->
  <string name="touchscreen_gesture_extras">Lisad</string>
  <string name="touchscreen_gesture_haptic_feedback">Haptiline tagasiside</string>
  <string name="touchscreen_gesture_haptic_feedback_summary">Vibreeri kui žest avastati</string>
  <!-- Touchscreen gestures -->
  <string name="gesture_display_title">Väljalülitatud ekraani žestid</string>
  <string name="touchscreen_c_gesture_title">Kaamera</string>
  <string name="touchscreen_c_gesture_summary">Joonista \"C\" täht, et aktiveerida kaamera</string>
  <string name="touchscreen_e_gesture_title">E-mail</string>
  <string name="touchscreen_e_gesture_summary">Joonista \"E\" täht, et aktiveerida e-maili rakendus</string>
  <string name="touchscreen_s_gesture_title">Sõnumid</string>
  <string name="touchscreen_s_gesture_summary">Joonista \"S\" täht, et avada sõnumite rakendus</string>
  <string name="touchscreen_v_gesture_title">Numbrivalija</string>
  <string name="touchscreen_v_gesture_summary">Joonista \"V\" täht, et avada numbrivalija rakendus</string>
  <string name="touchscreen_w_gesture_title">Veebilehitseja</string>
  <string name="touchscreen_w_gesture_summary">Joonista \"W\" täht, et avada veebilehitseja rakendus</string>
  <string name="touchscreen_z_gesture_title">Taskulamp</string>
  <string name="touchscreen_z_gesture_summary">Joonista \"Z\" täht, et aktiveerida taskulamp</string>
  <!-- User-aware display -->
  <string name="user_aware_display_title">Kasutaja teadlik ekraan</string>
  <string name="user_aware_display_summary">Hoia ekraan sees, kui kasutaja on ekraani ees</string>
  <!-- Ambient Display -->
  <string name="ambient_display_title">Ambient ekraan</string>
  <string name="ambient_display_enable_title">Ambient kuva</string>
  <string name="ambient_display_enable_summary">Ärata ekraan teavituste saabumisel</string>
  <!-- Tilt sensor -->
  <!-- Proximity sensor -->
  <!-- Hand wave gesture -->
  <string name="hand_wave_gesture_title">Käe viibutus</string>
  <string name="hand_wave_gesture_summary">Näita teavitust käe viibutusele</string>
  <!-- Pick-up gesture -->
  <string name="pick_up_gesture_title">Tõsta üles</string>
  <string name="pick_up_gesture_summary">Kuva teavitusi seadme tõstmisel</string>
  <!-- Pocket gesture -->
  <string name="pocket_gesture_title">Tasku</string>
  <string name="pocket_gesture_summary">Näita teavitusi taskust välja võtmisel</string>
  <!-- Proximity wake -->
  <string name="proximity_wake_title">Läheduse äratus</string>
  <string name="proximity_wake_enable_title">Läheduse äratus</string>
  <string name="proximity_wake_enable_summary">Ärata seade käe viibutusele</string>
  <!-- Device actions -->
  <!-- Camera gesture -->
  <!-- Chop-chop gesture -->
  <!-- Hand wave silencer gesture -->
  <!-- Flip to mute gesture -->
  <!-- Do Not Disturb access -->
  <!-- Lift to silence gesture -->
  <!-- Action toggles -->
  <string name="action_none">Keela</string>
  <string name="action_launch_camera">Käivita kaamera</string>
  <string name="action_torch">Lülita taskulamp</string>
  <!-- Feedback intensity -->
  <string name="feedback_intensity_title">Puutetagasiside intensiivsus</string>
  <string name="feedback_intensity_summary">Topelt-vääne ja ruttu-tuttu toimingute puutetagasiside tugevus</string>
  <string name="feedback_intensity_none">Keelatud</string>
  <string name="feedback_intensity_low">Madal</string>
  <string name="feedback_intensity_medium">Keskmine</string>
  <string name="feedback_intensity_high">Kõrge</string>
  <!-- Dialog texts -->
  <!-- Help texts -->
  <!-- Button settings -->
  <!-- Fingerprint -->
</resources>
