<?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="inspector_title" msgid="1924760928091740238">"Informações"</string>
    <string name="inspector_load_error" msgid="7522190243413249291">"Não foi possível carregar as informações do ficheiro"</string>
    <string name="inspector_debug_section" msgid="2576052661505700421">"Informação de depuração (apenas programadores)"</string>
    <string name="inspector_debug_metadata_section" msgid="5875140675600744846">"Metadados não processados: <xliff:g id="METADATATYPE">%1$s</xliff:g>"</string>
    <string name="inspector_metadata_section" msgid="6077622515328240575">"Detalhes de multimédia"</string>
    <string name="handler_app_file_opens_with" msgid="5272329600389613550">"Este tipo de ficheiro abre com a aplicação"</string>
    <string name="handler_app_belongs_to" msgid="5444507329303253553">"Este ficheiro é fornecido por"</string>
    <string name="handler_app_not_selected" msgid="1294439257183908786">"Não selecionada"</string>
    <string name="handler_app_unknown" msgid="5911661530593229287">"Desconhecida"</string>
    <string name="metadata_dimensions" msgid="6112907724016659801">"Dimensões"</string>
    <string name="metadata_dimensions_format" msgid="6138765871412005962">"<xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g> – <xliff:g id="MEGAPIXELS">%3$,.1f</xliff:g> MP"</string>
    <string name="metadata_coordinates" msgid="6897383227370702734">"Coordenadas"</string>
    <string name="metadata_coordinates_format" msgid="1402724596764547761">"<xliff:g id="LATITUDE">%1$,.3f</xliff:g>, <xliff:g id="LONGITUDE">%2$,.3f</xliff:g>"</string>
    <string name="metadata_altitude" msgid="8063792127436794294">"Altitude"</string>
    <string name="metadata_camera" msgid="2363009732801281319">"Câmara"</string>
    <string name="metadata_camera_format" msgid="1494489751904311612">"<xliff:g id="MAKE">%1$s</xliff:g> <xliff:g id="MODEL">%2$s</xliff:g>"</string>
    <string name="metadata_aperture" msgid="6538741952698935357">"Abertura"</string>
    <string name="metadata_shutter_speed" msgid="8204739885103326131">"Velocidade do obturador"</string>
    <string name="metadata_duration" msgid="3115494422055472715">"Duração"</string>
    <string name="metadata_date_time" msgid="1090351199248114406">"Tirada em"</string>
    <string name="metadata_focal_length" msgid="3440735161407699893">"Distância focal"</string>
    <string name="metadata_focal_format" msgid="8542211707962355623">"<xliff:g id="LENGTH">%1$.2f </xliff:g> mm"</string>
    <string name="metadata_iso_speed_ratings" msgid="1699781252899759058">"Equivalente de ISO"</string>
    <string name="metadata_iso_format" msgid="4153285204012694861">"ISO <xliff:g id="ISO_SPEED">%1$d</xliff:g>"</string>
    <string name="metadata_artist" msgid="8972421485694988540">"Artista"</string>
    <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string>
    <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string>
    <string name="metadata_address" msgid="1849921023707744640">"Localização"</string>
</resources>
