<?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">"Urejevalnik fotografij"</string>
    <string name="cannot_load_image" msgid="5023634941212959976">"Slike ni mogoče naložiti."</string>
    <!-- no translation found for original_picture_text (3076213290079909698) -->
    <skip />
    <string name="setting_wallpaper" msgid="4679087092300036632">"Nastavljanje ozadja"</string>
    <string name="download_failure" msgid="5923323939788582895">"Fotografije ni bilo mogoče prenesti. Omrežje ni na voljo."</string>
    <string name="original" msgid="3524493791230430897">"Izvirnik"</string>
    <string name="borders" msgid="2067345080568684614">"Obrobe"</string>
    <string name="filtershow_undo" msgid="6781743189243585101">"Razveljavi"</string>
    <string name="filtershow_redo" msgid="4219489910543059747">"Uveljavi"</string>
    <string name="show_imagestate_panel" msgid="281932769701043015">"Pokaži uporabljene učinke"</string>
    <string name="hide_imagestate_panel" msgid="7207643485811695257">"Skrij uporabljene učinke"</string>
    <string name="menu_settings" msgid="6428291655769260831">"Nastavitve"</string>
    <string name="unsaved" msgid="8704442449002374375">"Spremembe te slike niso shranjene."</string>
    <string name="save_before_exit" msgid="2680660633675916712">"Ali želite pred zapiranjem shraniti?"</string>
    <string name="save_and_exit" msgid="3628425023766687419">"Shrani in zapri"</string>
    <string name="exit" msgid="242642957038770113">"Izhod"</string>
    <string name="history" msgid="455767361472692409">"Zgodovina"</string>
    <string name="reset" msgid="9013181350779592937">"Ponastavi"</string>
    <!-- no translation found for history_original (150973253194312841) -->
    <skip />
    <string name="imageState" msgid="8632586742752891968">"Uporabljeni učinki"</string>
    <string name="compare_original" msgid="8140838959007796977">"Primerjaj"</string>
    <string name="apply_effect" msgid="1218288221200568947">"Uporabi"</string>
    <string name="reset_effect" msgid="7712605581024929564">"Ponastavi"</string>
    <string name="aspect" msgid="4025244950820813059">"Razmerje"</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">"Brez"</string>
    <!-- no translation found for aspectOriginal_effect (5678516555493036594) -->
    <skip />
    <string name="Fixed" msgid="8017376448916924565">"Nespremenljivo"</string>
    <string name="tinyplanet" msgid="2783694326474415761">"Planetek"</string>
    <string name="exposure" msgid="6526397045949374905">"Osvetlitev"</string>
    <string name="sharpness" msgid="6463103068318055412">"Ostrina"</string>
    <string name="contrast" msgid="2310908487756769019">"Kontrast"</string>
    <string name="vibrance" msgid="3326744578577835915">"Živahnost"</string>
    <string name="saturation" msgid="7026791551032438585">"Nasičenost"</string>
    <string name="bwfilter" msgid="8927492494576933793">"ČB-filter"</string>
    <string name="wbalance" msgid="6346581563387083613">"Samodej. barva"</string>
    <string name="hue" msgid="6231252147971086030">"Odtenek"</string>
    <string name="shadow_recovery" msgid="3928572915300287152">"Sence"</string>
    <string name="highlight_recovery" msgid="8262208470735204243">"Svetli deli"</string>
    <string name="curvesRGB" msgid="915010781090477550">"Krivulje"</string>
    <string name="vignette" msgid="934721068851885390">"Vinjeta"</string>
    <string name="redeye" msgid="4508883127049472069">"Rdeče oči"</string>
    <string name="imageDraw" msgid="6918552177844486656">"Risanje"</string>
    <string name="straighten" msgid="26025591664983528">"Poravnanje"</string>
    <string name="crop" msgid="5781263790107850771">"Obrezovanje"</string>
    <string name="rotate" msgid="2796802553793795371">"Zavrti"</string>
    <string name="mirror" msgid="5482518108154883096">"Zrcaljenje"</string>
    <string name="negative" msgid="6998313764388022201">"Negativ"</string>
    <string name="none" msgid="6633966646410296520">"Brez"</string>
    <string name="edge" msgid="7036064886242147551">"Robovi"</string>
    <string name="kmeans" msgid="1630263230946107457">"Warhol"</string>
    <string name="downsample" msgid="3552938534146980104">"Zmanjšanje velikosti"</string>
    <string name="curves_channel_rgb" msgid="7909209509638333690">"RGB"</string>
    <string name="curves_channel_red" msgid="4199710104162111357">"Rdeče"</string>
    <string name="curves_channel_green" msgid="3733003466905031016">"Zeleno"</string>
    <string name="curves_channel_blue" msgid="9129211507395079371">"Modro"</string>
    <string name="draw_style" msgid="2036125061987325389">"Slog"</string>
    <string name="draw_size" msgid="4360005386104151209">"Velikost"</string>
    <string name="draw_color" msgid="2119030386987211193">"Barva"</string>
    <string name="draw_style_line" msgid="9216476853904429628">"Črte"</string>
    <string name="draw_style_brush_spatter" msgid="7612691122932981554">"Flomaster"</string>
    <string name="draw_style_brush_marker" msgid="8468302322165644292">"Packe"</string>
    <string name="draw_clear" msgid="6728155515454921052">"Izbriši"</string>
    <string name="color_pick_select" msgid="734312818059057394">"Izberite barvo po meri"</string>
    <string name="color_pick_title" msgid="6195567431995308876">"Izberite barvo"</string>
    <string name="draw_size_title" msgid="3121649039610273977">"Izberite velikost"</string>
    <string name="draw_size_accept" msgid="6781529716526190028">"V redu"</string>
    <string name="state_panel_original" msgid="9069584409934164419">"Izvirnik"</string>
    <string name="state_panel_result" msgid="318640531123298676">"Rezultat"</string>
</resources>
