<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2008 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- General -->
    <skip />
    <!-- Application name -->
    <string name="wallpapers">Android Live Wallpapers</string>

    <!-- Wallpapers: -->
    <skip />    

    <!-- Wallpaper showing the camera preview -->
    <string name="wallpaper_walkaround">See Through</string>
    <string name="wallpaper_walkaround_author">Google</string>
    <string name="wallpaper_walkaround_desc">
        See through your phone and walk around without risking accidents.
    </string>

    <!-- Wallpaper showing grass and the sky -->
    <string name="wallpaper_grass">Grass</string>
    <string name="wallpaper_grass_author">Google</string>
    <string name="wallpaper_grass_desc">
        Blades of grass wave gently in front of a day or night sky.
    </string>
    
    <!-- Wallpaper showing a galaxy -->
    <string name="wallpaper_galaxy">Galaxy</string>
    <string name="wallpaper_galaxy_author">Google</string>
    <string name="wallpaper_galaxy_desc">
        A galaxy made of slowly swirling stars.
    </string>

    <!-- Wallpaper showing leaves floating on water -->
    <string name="wallpaper_fall">Water</string>
    <string name="wallpaper_fall_author">Google</string>
    <string name="wallpaper_fall_desc">
        Autumn leaves tumble&lt;br&gt;
        To the rippling pond below:&lt;br&gt;
        Liquid background Zen
    </string>
    
    <!-- Wallpaper showing a clock -->
    <string name="wallpaper_clock">Polar clock</string>
    <string name="wallpaper_clock_author">Google</string>
    <string name="wallpaper_clock_desc">
        Presents the date and time as clockwise arcs: month,
        day, hour, minute, and second.
    </string>
    
	<!-- Wallpaper showing nexus -->
    <string name="wallpaper_nexus">Nexus</string>
    <string name="wallpaper_nexus_author">Google</string>
    <string name="wallpaper_nexus_desc">
        A peek inside the neural network.
    </string>
    
    <!-- Polar clock: title of settings activity -->
    <string name="clock_settings">Polar clock settings</string>
    <!-- Polar clock: label for "show seconds" pref -->
    <string name="show_seconds">Show seconds</string>
    <!-- Polar clock: label for "variable widths" pref -->
    <string name="variable_line_width">Vary ring widths</string>
    <!-- Polar clock: label for "palette" pref -->
    <string name="palette">Color palette</string>

	<!-- Polar clock: palette name -->
	<string name="palette_gray">Iron</string>
	<!-- Polar clock: palette name -->
	<string name="palette_violet">Midnight</string>
	<!-- Polar clock: palette name -->
	<string name="palette_matrix">Green Screen</string>
	<!-- Polar clock: palette name -->
	<string name="palette_white_c">Polar Bear (dynamic)</string>
	<!-- Polar clock: palette name -->
	<string name="palette_black_c">Black Hole (dynamic)</string>
	<!-- Polar clock: palette name -->
	<string name="palette_halloween">Pumpkin Pie</string>
	<!-- Polar clock: palette name -->
	<string name="palette_zenburn">Alien Fruit Salad</string>
	<!-- Polar clock: palette name -->
	<string name="palette_oceanic">Blue Laser</string>

</resources>
