<?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">"Nuotraukų redagavimo priemonė"</string>
    <string name="cannot_load_image" msgid="5023634941212959976">"Nepavyksta įkelti vaizdo!"</string>
    <!-- no translation found for original_picture_text (3076213290079909698) -->
    <skip />
    <string name="original" msgid="3524493791230430897">"Originalas"</string>
    <string name="borders" msgid="2067345080568684614">"Kraštinės"</string>
    <string name="done" msgid="3112344807927554662">"Atlikta"</string>
    <string name="filtershow_undo" msgid="6781743189243585101">"Anuliuoti"</string>
    <string name="filtershow_redo" msgid="4219489910543059747">"Grąžinti"</string>
    <string name="show_history_panel" msgid="7785810372502120090">"Rodyti istoriją"</string>
    <string name="hide_history_panel" msgid="2082672248771133871">"Slėpti istoriją"</string>
    <string name="show_imagestate_panel" msgid="7132294085840948243">"Rodyti vaizdo būseną"</string>
    <string name="hide_imagestate_panel" msgid="1135313661068111161">"Slėpti vaizdo būseną"</string>
    <string name="menu_settings" msgid="6428291655769260831">"Nustatymai"</string>
    <string name="history" msgid="455767361472692409">"Istorija"</string>
    <string name="reset" msgid="9013181350779592937">"Nust. iš naujo"</string>
    <!-- no translation found for history_original (150973253194312841) -->
    <skip />
    <string name="imageState" msgid="3609930035023754855">"Dabartinė vaizdo būsena"</string>
    <string name="compare_original" msgid="8140838959007796977">"Palyginti"</string>
    <string name="apply_effect" msgid="1218288221200568947">"Taikyti"</string>
    <string name="reset_effect" msgid="7712605581024929564">"Nust. iš naujo"</string>
    <string name="aspect" msgid="4025244950820813059">"Vaizdo santykis"</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">"Nėra"</string>
    <!-- no translation found for aspectOriginal_effect (5678516555493036594) -->
    <skip />
    <string name="tinyplanet" msgid="2783694326474415761">"Maža plan."</string>
    <string name="exposure" msgid="6526397045949374905">"Išlaikymas"</string>
    <string name="sharpness" msgid="6463103068318055412">"Ryškumas"</string>
    <string name="contrast" msgid="2310908487756769019">"Kontrastas"</string>
    <string name="vibrance" msgid="3326744578577835915">"Gyvumas"</string>
    <string name="saturation" msgid="7026791551032438585">"Spalvų sodrumas"</string>
    <string name="bwfilter" msgid="8927492494576933793">"Nesp. filtras"</string>
    <string name="wbalance" msgid="6346581563387083613">"Autom. spalva"</string>
    <string name="hue" msgid="6231252147971086030">"Atspalvis"</string>
    <string name="shadow_recovery" msgid="3928572915300287152">"Šešėliai"</string>
    <string name="curvesRGB" msgid="915010781090477550">"Kreivės"</string>
    <string name="vignette" msgid="934721068851885390">"Vinjetė"</string>
    <string name="redeye" msgid="4508883127049472069">"Raudonos akys"</string>
    <string name="straighten" msgid="26025591664983528">"Ištiesinti"</string>
    <string name="crop" msgid="5781263790107850771">"Apkarpyti"</string>
    <string name="rotate" msgid="2796802553793795371">"Sukti"</string>
    <string name="mirror" msgid="5482518108154883096">"Veidrod. atsp."</string>
    <string name="none" msgid="6633966646410296520">"Nėra"</string>
    <string name="curves_channel_rgb" msgid="7909209509638333690">"RGB"</string>
    <string name="curves_channel_red" msgid="4199710104162111357">"Raudona"</string>
    <string name="curves_channel_green" msgid="3733003466905031016">"Žalia"</string>
    <string name="curves_channel_blue" msgid="9129211507395079371">"Mėlyna"</string>
</resources>
