<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  ~ Copyright (C) 2015 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-array name="display_mode_labels">
    <item msgid="2259828487212953611">"Normal"</item>
    <item msgid="2533030282864800794">"Fuld"</item>
    <item msgid="8568284598210500589">"Zoom"</item>
  </string-array>
  <string-array name="genre_labels">
    <item msgid="3241959001790384341">"Alle kanaler"</item>
    <item msgid="928298872841713530">"Familie/børn"</item>
    <item msgid="2751606947569857164">"Sport"</item>
    <item msgid="7345749789651321496">"Shopping"</item>
    <item msgid="167201149441442173">"Film"</item>
    <item msgid="525966731464264290">"Komedie"</item>
    <item msgid="6096710741527327836">"Rejser"</item>
    <item msgid="2851882187117833883">"Drama"</item>
    <item msgid="78492781188719038">"Uddannelse"</item>
    <item msgid="7221999662426308394">"Dyr/naturens verden"</item>
    <item msgid="375300513250925001">"Nyheder"</item>
    <item msgid="7746320336582330410">"Spil"</item>
    <item msgid="1255741860568329178">"Kunst"</item>
    <item msgid="7603949681065702867">"Underholdning"</item>
    <item msgid="4453821994746804366">"Livsstil"</item>
    <item msgid="3488534597567932843">"Musik"</item>
    <item msgid="7452153120614274095">"Premiere"</item>
    <item msgid="8215762047341133299">"Teknik/videnskab"</item>
  </string-array>
  <string-array name="welcome_page_titles">
    <item msgid="8322900543391231769">"Tv-kanaler"</item>
    <item msgid="7307688057853449735">"En enkel måde at finde indhold på"</item>
    <item msgid="7566838222783641942">"Download apps, og få flere kanaler"</item>
    <item msgid="8646630833216197238">"Tilpas dit udvalg af kanaler"</item>
  </string-array>
  <string-array name="welcome_page_descriptions">
    <item msgid="8445334820787831823">"Se indhold fra dine apps, ligesom du ser kanaler på fjernsynet."</item>
    <item msgid="1855708984677953238">"Gennemse indhold fra dine apps ved hjælp af en velkendt oversigt og en indbydende grænseflade, \npræcis ligesom kanaler på fjernsynet."</item>
    <item msgid="3420760668363283731">"Tilføj flere kanaler ved at installere apps, der viser tv-kanaler. \nFind kompatible apps i Google Play Butik via linket i TV-menuen."</item>
    <item msgid="8974157841656828507">"Konfigurer dine nyinstallerede kanalkilder for at tilpasse din kanalliste. \nVælg kanalkilderne i menuen Indstillinger for at komme godt i gang."</item>
  </string-array>
</resources>
