<?xml version="1.0" encoding="UTF-8"?>
<!--  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.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="energy_mode_low_title" msgid="1975446673545235501">"Režim nízké energie"</string>
    <string name="energy_mode_low_subtitle" msgid="2138250509057251435">"se základními funkcemi sítě"</string>
    <string name="energy_mode_low_info" msgid="8586799718140263220">"Vypnout připojení k síti, když televizi nikdo nepoužívá (pohotovostní režim)."</string>
  <string-array name="energy_mode_low_features">
    <item msgid="4976202876230149030">"Důležité aktualizace a funkce"</item>
  </string-array>
    <string name="energy_mode_low_eco_hint" msgid="2421460758847643655"></string>
    <string name="energy_mode_moderate_title" msgid="8306916492188176732">"Režim optimalizované energie"</string>
    <string name="energy_mode_moderate_subtitle" msgid="7478438819421632774">"s doporučenými funkcemi sítě"</string>
    <string name="energy_mode_moderate_info" msgid="7254958508156484301">"Nabízí funkce, které televizi probudí přes síť (pohotovostní režim při připojení)."</string>
    <string name="energy_mode_moderate_all_low_features" msgid="2417504172139004649">"Všechny nezbytné funkce"</string>
  <string-array name="energy_mode_moderate_features">
    <item msgid="2654586107956150296">"[Vložit funkci 1]"</item>
    <item msgid="8724721267222341891">"[Vložit funkci 2]"</item>
  </string-array>
    <string name="energy_mode_moderate_eco_hint" msgid="252189162446856286"></string>
    <string name="energy_mode_high_title" msgid="6636328986387241066">"Režim zvýšené energie"</string>
    <string name="energy_mode_high_subtitle" msgid="8710109098343358567">"s dalšími síťovými funkcemi"</string>
    <string name="energy_mode_high_info" msgid="7089288229870320944">"Nabízí další funkce, když se televize nepoužívá."</string>
    <string name="energy_mode_moderate_all_moderate_features" msgid="1518972636963419872">"Všechny doporučené funkce"</string>
  <string-array name="energy_mode_high_features">
    <item msgid="3018897868803319747">"[Vložit funkci 1]"</item>
    <item msgid="170760143032597722">"[Vložit funkci 2]"</item>
  </string-array>
    <!-- no translation found for energy_mode_high_eco_hint (3266580507783627848) -->
    <skip />
</resources>
