<?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="5700567801191430606">"Нисък разход"</string>
    <string name="energy_mode_low_subtitle" msgid="7660632849388740009">"Режим на готовност"</string>
    <string name="energy_mode_low_info" msgid="3931173640626998821">"Режим на готовност – връзката с мрежата е изключена, когато телевизорът не се използва"</string>
  <string-array name="energy_mode_low_features">
    <item msgid="4002284890471636101">"[Insert feature 1]"</item>
    <item msgid="7072772341455731040">"[Insert feature 2]"</item>
  </string-array>
    <string name="energy_mode_low_eco_hint" msgid="2421460758847643655"></string>
    <string name="energy_mode_moderate_title" msgid="8612259261851051150">"Оптимизиран разход"</string>
    <string name="energy_mode_moderate_subtitle" msgid="5565533500130453270">"Мрежови режим на готовност"</string>
    <string name="energy_mode_moderate_info" msgid="3188005033276283994">"Мрежови режим на готовност – включва функции за активиране на телевизора през мрежата"</string>
  <string-array name="energy_mode_moderate_features">
    <item msgid="2654586107956150296">"[Insert feature 1]"</item>
    <item msgid="8724721267222341891">"[Insert feature 2]"</item>
  </string-array>
    <string name="energy_mode_moderate_eco_hint" msgid="252189162446856286"></string>
    <string name="energy_mode_high_title" msgid="7596672058005896920">"Увеличен разход"</string>
    <string name="energy_mode_high_subtitle" msgid="5994284096495805422">"Постоянна връзка"</string>
    <string name="energy_mode_high_info" msgid="8805447042714350186">"Постоянна връзка – мрежовите функции работят, когато телевизорът не се използва"</string>
  <string-array name="energy_mode_high_features">
    <item msgid="3018897868803319747">"[Insert feature 1]"</item>
    <item msgid="170760143032597722">"[Insert feature 2]"</item>
  </string-array>
    <!-- no translation found for energy_mode_high_eco_hint (3266580507783627848) -->
    <skip />
</resources>
