mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
31f99f0e4e
* fix(auth): autofocus the 2FA code input when the MFA step appears (#767) * fix(notifications): show notification and admin times in the viewer timezone (#1149) SQLite CURRENT_TIMESTAMP is UTC but the string has no Z, so the client parsed it as local time. Normalize in-app notification created_at to ISO-UTC, and stop forcing the admin user table to render in the server timezone. * fix(places): warn before adding a duplicate place (#1152) Manually adding a place did not check the existing pool, so the same POI could land in Unplanned twice. Flag a likely duplicate by Google Place ID, name or near-identical coordinates and require a confirming second click to add anyway.
95 lines
4.7 KiB
TypeScript
95 lines
4.7 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const places: TranslationStrings = {
|
|
'places.addPlace': 'Adicionar lugar/atividade',
|
|
'places.importFile': 'Importar arquivo',
|
|
'places.sidebarDrop': 'Solte para importar',
|
|
'places.importFileHint':
|
|
'Importe arquivos .gpx, .kml ou .kmz de ferramentas como Google My Maps, Google Earth ou um rastreador GPS.',
|
|
'places.importFileDropHere':
|
|
'Clique para selecionar um arquivo ou arraste e solte aqui',
|
|
'places.importFileDropActive': 'Solte o arquivo para selecionar',
|
|
'places.importFileUnsupported':
|
|
'Tipo de arquivo não suportado. Use .gpx, .kml ou .kmz.',
|
|
'places.importFileTooLarge':
|
|
'O arquivo é muito grande. O tamanho máximo de upload é {maxMb} MB.',
|
|
'places.importFileError': 'Importação falhou',
|
|
'places.importAllSkipped': 'Todos os lugares já estavam na viagem.',
|
|
'places.gpxImported': '{count} lugares importados do GPX',
|
|
'places.gpxImportTypes': 'O que deseja importar?',
|
|
'places.gpxImportWaypoints': 'Pontos de caminho',
|
|
'places.gpxImportRoutes': 'Rotas',
|
|
'places.gpxImportTracks': 'Trilhas (com geometria de percurso)',
|
|
'places.gpxImportNoneSelected': 'Selecione pelo menos um tipo para importar.',
|
|
'places.kmlImportTypes': 'O que deseja importar?',
|
|
'places.kmlImportPoints': 'Pontos (Placemarks)',
|
|
'places.kmlImportPaths': 'Caminhos (LineStrings)',
|
|
'places.kmlImportNoneSelected': 'Selecione pelo menos um tipo.',
|
|
'places.selectionCount': '{count} selecionado(s)',
|
|
'places.deleteSelected': 'Excluir seleção',
|
|
'places.kmlKmzImported': '{count} lugares importados de KMZ/KML',
|
|
'places.urlResolved': 'Lugar importado da URL',
|
|
'places.importList': 'Importar lista',
|
|
'places.kmlKmzSummaryValues':
|
|
'Placemarks: {total} • Importados: {created} • Ignorados: {skipped}',
|
|
'places.importGoogleList': 'Lista Google',
|
|
'places.importNaverList': 'Lista Naver',
|
|
'places.googleListHint':
|
|
'Cole um link compartilhado de uma lista do Google Maps para importar todos os lugares.',
|
|
'places.googleListImported': '{count} lugares importados de "{list}"',
|
|
'places.googleListError': 'Falha ao importar lista do Google Maps',
|
|
'places.naverListHint':
|
|
'Cole um link compartilhado de uma lista do Naver Maps para importar todos os lugares.',
|
|
'places.naverListImported': '{count} lugares importados de "{list}"',
|
|
'places.naverListError': 'Falha ao importar lista do Naver Maps',
|
|
'places.viewDetails': 'Ver detalhes',
|
|
'places.assignToDay': 'Adicionar a qual dia?',
|
|
'places.all': 'Todos',
|
|
'places.unplanned': 'Não planejados',
|
|
'places.filterTracks': 'Trilhas',
|
|
'places.search': 'Buscar lugares...',
|
|
'places.allCategories': 'Todas as categorias',
|
|
'places.categoriesSelected': 'categorias',
|
|
'places.clearFilter': 'Limpar filtro',
|
|
'places.count': '{count} lugares',
|
|
'places.countSingular': '1 lugar',
|
|
'places.allPlanned': 'Todos os lugares estão planejados',
|
|
'places.noneFound': 'Nenhum lugar encontrado',
|
|
'places.editPlace': 'Editar lugar',
|
|
'places.formName': 'Nome',
|
|
'places.formNamePlaceholder': 'ex.: Torre Eiffel',
|
|
'places.formDescription': 'Descrição',
|
|
'places.formDescriptionPlaceholder': 'Breve descrição...',
|
|
'places.formAddress': 'Endereço',
|
|
'places.formAddressPlaceholder': 'Rua, cidade, país',
|
|
'places.formLat': 'Latitude (ex.: -23.5505)',
|
|
'places.formLng': 'Longitude (ex.: -46.6333)',
|
|
'places.formCategory': 'Categoria',
|
|
'places.noCategory': 'Sem categoria',
|
|
'places.categoryNamePlaceholder': 'Nome da categoria',
|
|
'places.formTime': 'Horário',
|
|
'places.startTime': 'Início',
|
|
'places.endTime': 'Fim',
|
|
'places.endTimeBeforeStart': 'O horário de fim é antes do início',
|
|
'places.timeCollision': 'Sobreposição de horário com:',
|
|
'places.formWebsite': 'Site',
|
|
'places.formNotes': 'Notas',
|
|
'places.formNotesPlaceholder': 'Notas pessoais...',
|
|
'places.formReservation': 'Reserva',
|
|
'places.reservationNotesPlaceholder':
|
|
'Notas da reserva, código de confirmação...',
|
|
'places.mapsSearchPlaceholder': 'Buscar lugares...',
|
|
'places.mapsSearchError': 'Falha na busca de lugares.',
|
|
'places.loadingDetails': 'Carregando detalhes do lugar…',
|
|
'places.osmHint':
|
|
'Busca via OpenStreetMap (sem fotos, horários ou avaliações). Adicione uma chave Google nas configurações para detalhes completos.',
|
|
'places.osmActive':
|
|
'Busca via OpenStreetMap (sem fotos, avaliações ou horário de funcionamento). Adicione uma chave Google em Configurações para mais dados.',
|
|
'places.categoryCreateError': 'Falha ao criar categoria',
|
|
'places.nameRequired': 'Digite um nome',
|
|
'places.saveError': 'Falha ao salvar',
|
|
'places.duplicateExists': "'{name}' já está nesta viagem.",
|
|
'places.addAnyway': 'Adicionar mesmo assim',
|
|
};
|
|
export default places;
|