<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2010 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="photoeditor_name" msgid="4738587346771969697">"Фото-студио"</string>
    <string name="loading_failure" msgid="7890360277163832130">"Није могуће учитати слику"</string>
    <string name="saving_failure" msgid="8229491575433743974">"Није могуће сачувати измењену слику"</string>
    <string name="photo_saved" msgid="6163006724627682202">"Измењена слика је сачувана у <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
    <string name="discard_unsaved_photo" msgid="2353274490633681946">"Желите да одбаците несачуване промене?"</string>
    <string name="yes" msgid="5402582493291792293">"Да"</string>
    <string name="save" msgid="5516670392524294967">"САЧУВАЈ"</string>
    <string name="autofix" msgid="1663414996270538748">"Аутоподешавање"</string>
    <string name="crop" msgid="7598378507763334041">"Опсецање"</string>
    <string name="crossprocess" msgid="4173724489001742342">"Унакрсна обрада"</string>
    <string name="documentary" msgid="50396326708699797">"Документарно"</string>
    <string name="doodle" msgid="1686409894518940990">"Дудл логотип"</string>
    <string name="duotone" msgid="8145893940788467106">"Дуо-тон"</string>
    <string name="facelift" msgid="6205748523156172637">"Сјај лица"</string>
    <string name="facetan" msgid="4412831806626044111">"Преплануло лице"</string>
    <string name="filllight" msgid="2644989991700022526">"Светлина"</string>
    <string name="fisheye" msgid="6037488646928998921">"Рибље око"</string>
    <string name="flip" msgid="2357692401826287480">"Обрни"</string>
    <string name="grain" msgid="7487585304579789098">"Зрнастост филма"</string>
    <string name="grayscale" msgid="7641563843060945228">"црно-бело"</string>
    <string name="highlight" msgid="3902653944386623972">"Истицање"</string>
    <string name="lomoish" msgid="1270032154357186736">"Ломографски"</string>
    <string name="negative" msgid="1985508917342811252">"Негатив"</string>
    <string name="posterize" msgid="4139212359561383385">"Постеризуј"</string>
    <string name="redeye" msgid="4958448806369928239">"Црвене очи"</string>
    <string name="rotate" msgid="6607597269792373083">"Ротирај"</string>
    <string name="saturation" msgid="8621322012271169931">"Засићење"</string>
    <string name="sepia" msgid="7978093531824705601">"Сепија"</string>
    <string name="shadow" msgid="8235188588101973090">"Сенке"</string>
    <string name="sharpen" msgid="8449662378104403230">"Изоштри"</string>
    <string name="straighten" msgid="5217801513491493491">"Исправи"</string>
    <string name="temperature" msgid="1607987938521534517">"Топлота"</string>
    <string name="tint" msgid="154435943863418434">"Сенка"</string>
    <string name="vignette" msgid="7648125924662648282">"Вињета"</string>
    <string name="crop_tooltip" msgid="8794037869706891710">"Превуците означиваче да бисте опсекли фотографију"</string>
    <string name="doodle_tooltip" msgid="2902117272374362915">"Превуците слику на дудл логотип"</string>
    <string name="flip_tooltip" msgid="2700943256714731737">"Превуците фотографију да бисте је окренули"</string>
    <string name="redeye_tooltip" msgid="4183695928490874014">"Додирните црвене очи да бисте их поправили"</string>
    <string name="rotate_tooltip" msgid="7008602969130734229">"Превуците фотографију да бисте је ротирали"</string>
    <string name="straighten_tooltip" msgid="4846317027139212339">"Превуците фотографију да бисте је исправили"</string>
</resources>
