<?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">"Editor ng Larawan"</string>
    <string name="cannot_load_image" msgid="5023634941212959976">"Hindi ma-load ang larawan!"</string>
    <!-- no translation found for original_picture_text (3076213290079909698) -->
    <skip />
    <string name="setting_wallpaper" msgid="4679087092300036632">"Itinatakda ang wallpaper"</string>
    <string name="download_failure" msgid="5923323939788582895">"Hindi ma-download ang larawan. Hindi available ang network."</string>
    <string name="original" msgid="3524493791230430897">"Orihinal"</string>
    <string name="borders" msgid="2067345080568684614">"Mga Border"</string>
    <string name="filtershow_undo" msgid="6781743189243585101">"I-undo"</string>
    <string name="filtershow_redo" msgid="4219489910543059747">"I-redo"</string>
    <string name="show_imagestate_panel" msgid="281932769701043015">"Ipakita Mga Inilapat na Effect"</string>
    <string name="hide_imagestate_panel" msgid="7207643485811695257">"Itago Mga Inilapat na Effect"</string>
    <string name="menu_settings" msgid="6428291655769260831">"Mga Setting"</string>
    <string name="unsaved" msgid="8704442449002374375">"May mga hindi naka-save na pagbabago sa larawang ito."</string>
    <string name="save_before_exit" msgid="2680660633675916712">"Gusto mo bang mag-save bago lumabas?"</string>
    <string name="save_and_exit" msgid="3628425023766687419">"I-save at Lumabas"</string>
    <string name="exit" msgid="242642957038770113">"Lumabas"</string>
    <string name="history" msgid="455767361472692409">"Kasaysayan"</string>
    <string name="reset" msgid="9013181350779592937">"I-reset"</string>
    <!-- no translation found for history_original (150973253194312841) -->
    <skip />
    <string name="imageState" msgid="8632586742752891968">"Mga Nakalapat na Effect"</string>
    <string name="compare_original" msgid="8140838959007796977">"Ihambing"</string>
    <string name="apply_effect" msgid="1218288221200568947">"Ilapat"</string>
    <string name="reset_effect" msgid="7712605581024929564">"I-reset"</string>
    <string name="aspect" msgid="4025244950820813059">"Aspeto"</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">"Wala"</string>
    <!-- no translation found for aspectOriginal_effect (5678516555493036594) -->
    <skip />
    <string name="Fixed" msgid="8017376448916924565">"Nakapirmi"</string>
    <string name="tinyplanet" msgid="2783694326474415761">"Tiny Planet"</string>
    <string name="exposure" msgid="6526397045949374905">"Exposure"</string>
    <string name="sharpness" msgid="6463103068318055412">"Sharpness"</string>
    <string name="contrast" msgid="2310908487756769019">"Contrast"</string>
    <string name="vibrance" msgid="3326744578577835915">"Vibrance"</string>
    <string name="saturation" msgid="7026791551032438585">"Saturation"</string>
    <string name="bwfilter" msgid="8927492494576933793">"BW na Filter"</string>
    <string name="wbalance" msgid="6346581563387083613">"Autocolor"</string>
    <string name="hue" msgid="6231252147971086030">"Hue"</string>
    <string name="shadow_recovery" msgid="3928572915300287152">"Mga Shadow"</string>
    <string name="highlight_recovery" msgid="8262208470735204243">"Mga Highlight"</string>
    <string name="curvesRGB" msgid="915010781090477550">"Mga Kurba"</string>
    <string name="vignette" msgid="934721068851885390">"Vignette"</string>
    <string name="redeye" msgid="4508883127049472069">"Red Eye"</string>
    <string name="imageDraw" msgid="6918552177844486656">"Gumuhit"</string>
    <string name="straighten" msgid="26025591664983528">"Ituwid"</string>
    <string name="crop" msgid="5781263790107850771">"I-crop"</string>
    <string name="rotate" msgid="2796802553793795371">"I-rotate"</string>
    <string name="mirror" msgid="5482518108154883096">"Mirror"</string>
    <string name="negative" msgid="6998313764388022201">"Negative"</string>
    <string name="none" msgid="6633966646410296520">"Wala"</string>
    <string name="edge" msgid="7036064886242147551">"Mga Gilid"</string>
    <string name="kmeans" msgid="1630263230946107457">"Warhol"</string>
    <string name="downsample" msgid="3552938534146980104">"Downsample"</string>
    <string name="curves_channel_rgb" msgid="7909209509638333690">"RGB"</string>
    <string name="curves_channel_red" msgid="4199710104162111357">"Pula"</string>
    <string name="curves_channel_green" msgid="3733003466905031016">"Berde"</string>
    <string name="curves_channel_blue" msgid="9129211507395079371">"Asul"</string>
    <string name="draw_style" msgid="2036125061987325389">"Estilo"</string>
    <string name="draw_size" msgid="4360005386104151209">"Laki"</string>
    <string name="draw_color" msgid="2119030386987211193">"Kulay"</string>
    <string name="draw_style_line" msgid="9216476853904429628">"Mga Linya"</string>
    <string name="draw_style_brush_spatter" msgid="7612691122932981554">"Marker"</string>
    <string name="draw_style_brush_marker" msgid="8468302322165644292">"Spatter"</string>
    <string name="draw_clear" msgid="6728155515454921052">"I-clear"</string>
    <string name="color_pick_select" msgid="734312818059057394">"Pumili ng custom na kulay"</string>
    <string name="color_pick_title" msgid="6195567431995308876">"Pumili ng Kulay"</string>
    <string name="draw_size_title" msgid="3121649039610273977">"Pumili ng Laki"</string>
    <string name="draw_size_accept" msgid="6781529716526190028">"OK"</string>
    <string name="state_panel_original" msgid="9069584409934164419">"Orihinal"</string>
    <string name="state_panel_result" msgid="318640531123298676">"Resulta"</string>
</resources>
