<?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">"Energia-kontsumo baxuko modua"</string>
    <string name="energy_mode_low_subtitle" msgid="2138250509057251435">"sarearen funtsezko eginbideekin"</string>
    <string name="energy_mode_low_info" msgid="8586799718140263220">"Desaktibatu sareko konexioa telebista erabiltzen ari ez zarenean (egonean modua)."</string>
  <string-array name="energy_mode_low_features">
    <item msgid="4976202876230149030">"eguneratze eta funtzio garrantzitsuak"</item>
  </string-array>
    <string name="energy_mode_low_eco_hint" msgid="2421460758847643655"></string>
    <string name="energy_mode_moderate_title" msgid="8306916492188176732">"Energia-kontsumo optimizatuko modua"</string>
    <string name="energy_mode_moderate_subtitle" msgid="7478438819421632774">"sarearen eginbide gomendatuekin"</string>
    <string name="energy_mode_moderate_info" msgid="7254958508156484301">"Sarearen bidez (sare bidezko egonean modua) telebista aktibatzen duten eginbideak ahalbidetzen ditu."</string>
    <string name="energy_mode_moderate_all_low_features" msgid="2417504172139004649">"Ezinbesteko eginbide guztiak"</string>
  <string-array name="energy_mode_moderate_features">
    <item msgid="2654586107956150296">"[Gehitu lehenengo eginbidea]"</item>
    <item msgid="8724721267222341891">"[Gehitu bigarren eginbidea]"</item>
  </string-array>
    <string name="energy_mode_moderate_eco_hint" msgid="252189162446856286"></string>
    <string name="energy_mode_high_title" msgid="6636328986387241066">"Energia-kontsumo altuko modua"</string>
    <string name="energy_mode_high_subtitle" msgid="8710109098343358567">"sarearen eginbide gehigarriekin"</string>
    <string name="energy_mode_high_info" msgid="7089288229870320944">"Eginbide gehigarriak ahalbidetzen ditu, nahiz eta telebista erabiltzen ez ari."</string>
    <string name="energy_mode_moderate_all_moderate_features" msgid="1518972636963419872">"gomendatutako eginbide guztiak"</string>
  <string-array name="energy_mode_high_features">
    <item msgid="3018897868803319747">"[Gehitu lehenengo eginbidea]"</item>
    <item msgid="170760143032597722">"[Gehitu bigarren eginbidea]"</item>
  </string-array>
    <!-- no translation found for energy_mode_high_eco_hint (3266580507783627848) -->
    <skip />
</resources>
