<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2012 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="title_activity_filter_show" msgid="2036539130684382763">"Fotoeditor"</string>
    <string name="cannot_load_image" msgid="5023634941212959976">"Bild kann nicht geladen werden."</string>
    <!-- no translation found for original_picture_text (3076213290079909698) -->
    <skip />
    <string name="setting_wallpaper" msgid="4679087092300036632">"Hintergrund wird festgelegt..."</string>
    <string name="download_failure" msgid="5923323939788582895">"Foto konnte nicht heruntergeladen werden. Netzwerk ist nicht verfügbar."</string>
    <string name="original" msgid="3524493791230430897">"Original"</string>
    <string name="borders" msgid="2067345080568684614">"Rahmen"</string>
    <string name="filtershow_undo" msgid="6781743189243585101">"Rückgängig machen"</string>
    <string name="filtershow_redo" msgid="4219489910543059747">"Wiederholen"</string>
    <string name="show_imagestate_panel" msgid="281932769701043015">"Angewendete Effekte anzeigen"</string>
    <string name="hide_imagestate_panel" msgid="7207643485811695257">"Angewendete Effekte ausblenden"</string>
    <string name="menu_settings" msgid="6428291655769260831">"Einstellungen"</string>
    <string name="unsaved" msgid="8704442449002374375">"Dieses Bild weist nicht gespeicherte Änderungen auf."</string>
    <string name="save_before_exit" msgid="2680660633675916712">"Möchten Sie vor dem Schließen speichern?"</string>
    <string name="save_and_exit" msgid="3628425023766687419">"Speichern und schließen"</string>
    <string name="exit" msgid="242642957038770113">"Schließen"</string>
    <string name="history" msgid="455767361472692409">"Verlauf"</string>
    <string name="reset" msgid="9013181350779592937">"Zurücksetzen"</string>
    <!-- no translation found for history_original (150973253194312841) -->
    <skip />
    <string name="imageState" msgid="8632586742752891968">"Angewendete Effekte"</string>
    <string name="compare_original" msgid="8140838959007796977">"Vergleichen"</string>
    <string name="apply_effect" msgid="1218288221200568947">"Übernehmen"</string>
    <string name="reset_effect" msgid="7712605581024929564">"Zurücksetzen"</string>
    <string name="aspect" msgid="4025244950820813059">"Seitenverhältnis"</string>
    <string name="aspect1to1_effect" msgid="1159104543795779123">"1:1"</string>
    <string name="aspect4to3_effect" msgid="7968067847241223578">"4:3"</string>
    <string name="aspect3to4_effect" msgid="7078163990979248864">"3:4"</string>
    <string name="aspect4to6_effect" msgid="1410129351686165654">"4:6"</string>
    <string name="aspect5to7_effect" msgid="5122395569059384741">"5:7"</string>
    <string name="aspect7to5_effect" msgid="5780001758108328143">"7:5"</string>
    <string name="aspect9to16_effect" msgid="7740468012919660728">"16:9"</string>
    <string name="aspectNone_effect" msgid="6263330561046574134">"Kein Effekt"</string>
    <!-- no translation found for aspectOriginal_effect (5678516555493036594) -->
    <skip />
    <string name="Fixed" msgid="8017376448916924565">"Fest"</string>
    <string name="tinyplanet" msgid="2783694326474415761">"Tiny Planet"</string>
    <string name="exposure" msgid="6526397045949374905">"Belichtung"</string>
    <string name="sharpness" msgid="6463103068318055412">"Schärfe"</string>
    <string name="contrast" msgid="2310908487756769019">"Kontrast"</string>
    <string name="vibrance" msgid="3326744578577835915">"Farbsättigung"</string>
    <string name="saturation" msgid="7026791551032438585">"Sättigung"</string>
    <string name="bwfilter" msgid="8927492494576933793">"SW-Filter"</string>
    <string name="wbalance" msgid="6346581563387083613">"Autom. Farbe"</string>
    <string name="hue" msgid="6231252147971086030">"Farbton"</string>
    <string name="shadow_recovery" msgid="3928572915300287152">"Schatten"</string>
    <string name="highlight_recovery" msgid="8262208470735204243">"Highlights"</string>
    <string name="curvesRGB" msgid="915010781090477550">"Kurven"</string>
    <string name="vignette" msgid="934721068851885390">"Vignettierung"</string>
    <string name="redeye" msgid="4508883127049472069">"Rote Augen"</string>
    <string name="imageDraw" msgid="6918552177844486656">"Zeichnen"</string>
    <string name="straighten" msgid="26025591664983528">"Ausrichten"</string>
    <string name="crop" msgid="5781263790107850771">"Zuschneiden"</string>
    <string name="rotate" msgid="2796802553793795371">"Drehen"</string>
    <string name="mirror" msgid="5482518108154883096">"Spiegeln"</string>
    <string name="negative" msgid="6998313764388022201">"Negativ"</string>
    <string name="none" msgid="6633966646410296520">"Kein Filter"</string>
    <string name="edge" msgid="7036064886242147551">"Kanten"</string>
    <string name="kmeans" msgid="1630263230946107457">"Warhol"</string>
    <string name="downsample" msgid="3552938534146980104">"Verkleinern"</string>
    <string name="curves_channel_rgb" msgid="7909209509638333690">"RGB"</string>
    <string name="curves_channel_red" msgid="4199710104162111357">"Rot"</string>
    <string name="curves_channel_green" msgid="3733003466905031016">"Grün"</string>
    <string name="curves_channel_blue" msgid="9129211507395079371">"Blau"</string>
    <string name="draw_style" msgid="2036125061987325389">"Stil"</string>
    <string name="draw_size" msgid="4360005386104151209">"Größe"</string>
    <string name="draw_color" msgid="2119030386987211193">"Farbe"</string>
    <string name="draw_style_line" msgid="9216476853904429628">"Linien"</string>
    <string name="draw_style_brush_spatter" msgid="7612691122932981554">"Filzstift"</string>
    <string name="draw_style_brush_marker" msgid="8468302322165644292">"Spritzer"</string>
    <string name="draw_clear" msgid="6728155515454921052">"Löschen"</string>
    <string name="color_pick_select" msgid="734312818059057394">"Benutzerdefinierte Farbe wählen"</string>
    <string name="color_pick_title" msgid="6195567431995308876">"Farbe auswählen"</string>
    <string name="draw_size_title" msgid="3121649039610273977">"Größe auswählen"</string>
    <string name="draw_size_accept" msgid="6781529716526190028">"OK"</string>
    <string name="state_panel_original" msgid="9069584409934164419">"Original"</string>
    <string name="state_panel_result" msgid="318640531123298676">"Ergebnis"</string>
</resources>
