<?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">"Arquivo <xliff:g id="EXTENSION">%1$s</xliff:g>"</string>
    <string name="generic_file_type" msgid="1415477154743494280">"Arquivo"</string>
    <string name="image_file_type" msgid="3011633523704887793">"Imagem"</string>
    <string name="image_extension_file_type" msgid="992617216367594851">"Imagem <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="audio_file_type" msgid="3790525543519624632">"Áudio"</string>
    <string name="audio_extension_file_type" msgid="6334293531796491314">"Áudio <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="video_file_type" msgid="7290473366042482095">"Vídeo"</string>
    <string name="video_extension_file_type" msgid="6352763029831291433">"Vídeo <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="archive_file_type" msgid="1463432996680398798">"Arquivo <xliff:g id="FILETYPE">%1$s</xliff:g>"</string>
    <string name="apk_file_type" msgid="6004275470389462277">"Aplicativo Android"</string>
    <string name="txt_file_type" msgid="4677767777860724696">"Texto simples"</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 do Word"</string>
    <string name="ppt_file_type" msgid="2570841599899893925">"Apresentação PowerPoint"</string>
    <string name="excel_file_type" msgid="8363932635044575463">"Planilha do Excel"</string>
    <string name="gdoc_file_type" msgid="242328101061228382">"Documento do Google"</string>
    <string name="gsheet_file_type" msgid="8055591929133067952">"Planilha do Google"</string>
    <string name="gslides_file_type" msgid="8359750985956690177">"Apresentação do Google"</string>
    <string name="gdraw_file_type" msgid="655688091676820371">"Desenho do Google"</string>
    <string name="gtable_file_type" msgid="7332773878374650335">"Tabela do Google"</string>
    <string name="gform_file_type" msgid="4803176103746107611">"Formulário do Google"</string>
    <string name="gmap_file_type" msgid="6684180781808007016">"Mapa do Google"</string>
    <string name="gsite_file_type" msgid="3742812051249149526">"Site do Google"</string>
    <string name="directory_type" msgid="2702987727566226354">"Pasta"</string>
</resources>
