<?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">"Fotoateljee"</string>
    <string name="loading_failure" msgid="7890360277163832130">"Kon nie die foto laai nie"</string>
    <string name="saving_failure" msgid="8229491575433743974">"Kon nie geredigeerde foto stoor nie"</string>
    <string name="photo_saved" msgid="6163006724627682202">"Geredigeerde foto gestoor in <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
    <string name="discard_unsaved_photo" msgid="2353274490633681946">"Raak ontslae van ongestoorde veranderinge?"</string>
    <string name="yes" msgid="5402582493291792293">"Ja"</string>
    <string name="save" msgid="5516670392524294967">"Stoor"</string>
    <string name="autofix" msgid="1663414996270538748">"Outokorrigeer"</string>
    <string name="crop" msgid="7598378507763334041">"Snoei"</string>
    <string name="crossprocess" msgid="4173724489001742342">"Kruisproses"</string>
    <string name="documentary" msgid="50396326708699797">"Dokumentêr"</string>
    <string name="doodle" msgid="1686409894518940990">"Krabbel"</string>
    <string name="duotone" msgid="8145893940788467106">"Twee kleure"</string>
    <string name="facelift" msgid="6205748523156172637">"Face Glow"</string>
    <string name="facetan" msgid="4412831806626044111">"Gesigsverbruining"</string>
    <string name="filllight" msgid="2644989991700022526">"Vullig"</string>
    <string name="fisheye" msgid="6037488646928998921">"Visoog"</string>
    <string name="flip" msgid="2357692401826287480">"Keer om"</string>
    <string name="grain" msgid="7487585304579789098">"Filmgrein"</string>
    <string name="grayscale" msgid="7641563843060945228">"S &amp; W"</string>
    <string name="accessibility_black_and_white" msgid="1156382046161392389">"Swart en wit"</string>
    <string name="highlight" msgid="3902653944386623972">"Helder lig"</string>
    <string name="lomoish" msgid="1270032154357186736">"Lomo"</string>
    <string name="negative" msgid="1985508917342811252">"Negatief"</string>
    <string name="posterize" msgid="4139212359561383385">"Plakkateer"</string>
    <string name="redeye" msgid="4958448806369928239">"Rooi oog"</string>
    <string name="rotate" msgid="6607597269792373083">"Draai"</string>
    <string name="saturation" msgid="8621322012271169931">"Kleurdiepte"</string>
    <string name="sepia" msgid="7978093531824705601">"Sepia"</string>
    <string name="shadow" msgid="8235188588101973090">"Skadu\'s"</string>
    <string name="sharpen" msgid="8449662378104403230">"Maak skerper"</string>
    <string name="straighten" msgid="5217801513491493491">"Maak reguit"</string>
    <string name="temperature" msgid="1607987938521534517">"Warmte"</string>
    <string name="tint" msgid="154435943863418434">"Tint"</string>
    <string name="vignette" msgid="7648125924662648282">"Vinjet"</string>
    <string name="crop_tooltip" msgid="8794037869706891710">"Trek merkers om foto te sny"</string>
    <string name="doodle_tooltip" msgid="2902117272374362915">"Teken op foto om te krabbel"</string>
    <string name="flip_tooltip" msgid="2700943256714731737">"Trek foto om dit om te keer"</string>
    <string name="redeye_tooltip" msgid="4183695928490874014">"Tik op rooi oë om hulle te verwyder"</string>
    <string name="rotate_tooltip" msgid="7008602969130734229">"Trek foto om dit te draai"</string>
    <string name="straighten_tooltip" msgid="4846317027139212339">"Trek foto om dit reguit te trek"</string>
    <string name="photoeditor_exposure" msgid="560535856805042987">"Beligtingeffekte"</string>
    <string name="photoeditor_color" msgid="834210916165605468">"Kleureffekte"</string>
    <string name="photoeditor_artistic" msgid="2810641816416597464">"Artistieke effekte"</string>
    <string name="photoeditor_fix" msgid="6441595584425037477">"Maak reg"</string>
    <string name="photoeditor_undo" msgid="4831462549862253564">"Ontdoen"</string>
    <string name="photoeditor_redo" msgid="5999984591376273768">"Herdoen"</string>
</resources>
