<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  ~ Copyright (C) 2017 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="generic_extention_file_type" msgid="5947398320635880291">"Archivo <xliff:g id="EXTENSION">%1$s</xliff:g>"</string>
    <string name="generic_file_type" msgid="1415477154743494280">"Archivo"</string>
    <string name="image_file_type" msgid="3011633523704887793">"Imagen"</string>
    <string name="image_extension_file_type" msgid="992617216367594851">"Imagen <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="audio_file_type" msgid="3790525543519624632">"Audio"</string>
    <string name="audio_extension_file_type" msgid="6334293531796491314">"Audio <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="video_file_type" msgid="7290473366042482095">"Video"</string>
    <string name="video_extension_file_type" msgid="6352763029831291433">"Video <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="archive_file_type" msgid="1463432996680398798">"Archivo <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="apk_file_type" msgid="6004275470389462277">"Aplicación de Android"</string>
    <string name="txt_file_type" msgid="4677767777860724696">"Texto sin formato"</string>
    <string name="html_file_type" msgid="2034229603117527970">"Documento HTML"</string>
    <string name="pdf_file_type" msgid="3382260303795039988">"Documento PDF"</string>
    <string name="word_file_type" msgid="2366349268129894972">"Documento de Word"</string>
    <string name="ppt_file_type" msgid="2570841599899893925">"Presentación PowerPoint"</string>
    <string name="excel_file_type" msgid="8363932635044575463">"Hoja de cálculo de Excel"</string>
    <string name="gdoc_file_type" msgid="242328101061228382">"Documento de Google"</string>
    <string name="gsheet_file_type" msgid="8055591929133067952">"Hoja de cálculo Google"</string>
    <string name="gslides_file_type" msgid="8359750985956690177">"Presentación de Google"</string>
    <string name="gdraw_file_type" msgid="655688091676820371">"Dibujo de Google"</string>
    <string name="gtable_file_type" msgid="7332773878374650335">"Tabla de Google"</string>
    <string name="gform_file_type" msgid="4803176103746107611">"Formulario de Google"</string>
    <string name="gmap_file_type" msgid="6684180781808007016">"Mapa de Google"</string>
    <string name="gsite_file_type" msgid="3742812051249149526">"Sitio de Google"</string>
    <string name="directory_type" msgid="2702987727566226354">"Carpeta"</string>
</resources>
