################################################################################
##
##  Licensed to the Apache Software Foundation (ASF) under one or more
##  contributor license agreements.  See the NOTICE file distributed with
##  this work for additional information regarding copyright ownership.
##  The ASF licenses this file to You 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.
##
################################################################################

computer=Computador

fileSystemList_measuredText=XXXXXXXXXXXXXXXXXXXXXXXXX

fileSystemDataGrid_nameColumnHeader=Nome
fileSystemDataGrid_nameColumnMeasuredText=XXXXXXXXXXXXXXX

fileSystemDataGrid_typeColumnHeader=Tipo
fileSystemDataGrid_typeColumnMeasuredText=Ficheiro XXXX
fileSystemDataGrid_typeFolder=Pasta
fileSystemDataGrid_typeFileWithExtension=Ficheiro [[0]]
fileSystemDataGrid_typeFileWithoutExtension=Ficheiro

fileSystemDataGrid_sizeColumnHeader=Tamanho
fileSystemDataGrid_sizeColumnMeasuredText=0000000000
fileSystemDataGrid_sizeFolder=-
fileSystemDataGrid_sizeBytes=[[0]]
fileSystemDataGrid_sizeKilobytes=[[0]] KB

fileSystemDataGrid_creationDateColumnHeader=Criação
fileSystemDataGrid_creationDateColumnMeasuredText=00/00/0000 00:00 XX

fileSystemDataGrid_modificationDateColumnHeader=Modificação
fileSystemDataGrid_modificationDateColumnMeasuredText=00/00/0000 00:00 XX

fileSystemDataGrid_dateFormatString=DD/MM/AAAA LL:NN A

fileSystemTree_measuredText=XXXXXXXXXXXXXXXXXXXXXXXXX
