<?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">"Fotoattēlu redaktors"</string>
    <string name="cannot_load_image" msgid="5023634941212959976">"Nevar ielādēt attēlu."</string>
    <!-- no translation found for original_picture_text (3076213290079909698) -->
    <skip />
    <string name="setting_wallpaper" msgid="4679087092300036632">"Notiek fona tapetes iestatīšana"</string>
    <string name="original" msgid="3524493791230430897">"Oriģināls"</string>
    <string name="borders" msgid="2067345080568684614">"Robežas"</string>
    <string name="filtershow_undo" msgid="6781743189243585101">"Atsaukt"</string>
    <string name="filtershow_redo" msgid="4219489910543059747">"Atcelt atsaukšanu"</string>
    <string name="show_history_panel" msgid="7785810372502120090">"Rādīt vēsturi"</string>
    <string name="hide_history_panel" msgid="2082672248771133871">"Slēpt vēsturi"</string>
    <string name="show_imagestate_panel" msgid="7132294085840948243">"Rādīt attēla statusu"</string>
    <string name="hide_imagestate_panel" msgid="1135313661068111161">"Slēpt attēla statusu"</string>
    <string name="menu_settings" msgid="6428291655769260831">"Iestatījumi"</string>
    <string name="unsaved" msgid="8704442449002374375">"Šajā attēlā ir veiktas izmaiņas, kas nav saglabātas."</string>
    <string name="save_before_exit" msgid="2680660633675916712">"Vai vēlaties saglabāt pirms iziešanas?"</string>
    <string name="save_and_exit" msgid="3628425023766687419">"Saglabāt un iziet"</string>
    <string name="exit" msgid="242642957038770113">"Iziet"</string>
    <string name="history" msgid="455767361472692409">"Vēsture"</string>
    <string name="reset" msgid="9013181350779592937">"Atiestatīt"</string>
    <!-- no translation found for history_original (150973253194312841) -->
    <skip />
    <string name="imageState" msgid="8632586742752891968">"Izmantotie efekti"</string>
    <string name="compare_original" msgid="8140838959007796977">"Salīdzināt"</string>
    <string name="apply_effect" msgid="1218288221200568947">"Lietot"</string>
    <string name="reset_effect" msgid="7712605581024929564">"Atiestatīt"</string>
    <string name="aspect" msgid="4025244950820813059">"Malu attiecība"</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">"Nav"</string>
    <!-- no translation found for aspectOriginal_effect (5678516555493036594) -->
    <skip />
    <string name="Fixed" msgid="8017376448916924565">"Fiksēts"</string>
    <string name="tinyplanet" msgid="2783694326474415761">"Tiny Planet"</string>
    <string name="exposure" msgid="6526397045949374905">"Ekspozīcija"</string>
    <string name="sharpness" msgid="6463103068318055412">"Asums"</string>
    <string name="contrast" msgid="2310908487756769019">"Kontrasts"</string>
    <string name="vibrance" msgid="3326744578577835915">"Dzīvīgums"</string>
    <string name="saturation" msgid="7026791551032438585">"Piesātinājums"</string>
    <string name="bwfilter" msgid="8927492494576933793">"M/B filtrs"</string>
    <string name="wbalance" msgid="6346581563387083613">"Aut. krāsu pal."</string>
    <string name="hue" msgid="6231252147971086030">"Nokrāsa"</string>
    <string name="shadow_recovery" msgid="3928572915300287152">"Ēnas"</string>
    <string name="highlight_recovery" msgid="8262208470735204243">"Gaišās vietas"</string>
    <string name="curvesRGB" msgid="915010781090477550">"Līknes"</string>
    <string name="vignette" msgid="934721068851885390">"Vinjete"</string>
    <string name="redeye" msgid="4508883127049472069">"Sarkano acu ef."</string>
    <string name="imageDraw" msgid="6918552177844486656">"Zīmējumi"</string>
    <string name="straighten" msgid="26025591664983528">"Iztaisnošana"</string>
    <string name="crop" msgid="5781263790107850771">"Izgriešana"</string>
    <string name="rotate" msgid="2796802553793795371">"Pagriezt"</string>
    <string name="mirror" msgid="5482518108154883096">"Spogulis"</string>
    <string name="negative" msgid="6998313764388022201">"Negatīvs"</string>
    <string name="none" msgid="6633966646410296520">"Nav"</string>
    <string name="edge" msgid="7036064886242147551">"Malas"</string>
    <string name="kmeans" msgid="1630263230946107457">"Vorhols"</string>
    <string name="downsample" msgid="3552938534146980104">"Sam. liel."</string>
    <string name="curves_channel_rgb" msgid="7909209509638333690">"RGB"</string>
    <string name="curves_channel_red" msgid="4199710104162111357">"Sarkans"</string>
    <string name="curves_channel_green" msgid="3733003466905031016">"Zaļš"</string>
    <string name="curves_channel_blue" msgid="9129211507395079371">"Zils"</string>
    <string name="draw_style" msgid="2036125061987325389">"Stils"</string>
    <string name="draw_size" msgid="4360005386104151209">"Izmēri"</string>
    <string name="draw_color" msgid="2119030386987211193">"Krāsa"</string>
    <string name="draw_style_line" msgid="9216476853904429628">"Līnijas"</string>
    <string name="draw_style_brush_spatter" msgid="7612691122932981554">"Marķieris"</string>
    <string name="draw_style_brush_marker" msgid="8468302322165644292">"Šļakatas"</string>
    <string name="draw_clear" msgid="6728155515454921052">"Notīrīt"</string>
    <string name="color_pick_select" msgid="734312818059057394">"Izvēlēties pielāgotu krāsu"</string>
    <string name="color_pick_title" msgid="6195567431995308876">"Krāsas atlase"</string>
    <string name="draw_size_title" msgid="3121649039610273977">"Izmēru atlase"</string>
    <string name="draw_size_accept" msgid="6781529716526190028">"Labi"</string>
</resources>
