fix(build): add ScrollTrigger component, fix JSX syntax, dedup i18n

- Add missing ScrollTrigger component for infinite scroll
- Fix JSX placement inside ternary expression
- Remove 290 duplicate i18n keys across 13 translation files
- Fix it.ts duplicate memories.saveError
This commit is contained in:
Maurice
2026-04-13 21:55:59 +02:00
parent 87de60d8de
commit 88e1d075e0
14 changed files with 20 additions and 302 deletions
-16
View File
@@ -1066,7 +1066,6 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'budget.settlement': 'Acerto',
'budget.settlementInfo': 'Clique no avatar de um membro em um item do orçamento para marcá-lo em verde — significa que ele pagou. O acerto mostra quem deve quanto a quem.',
'budget.netBalances': 'Saldos líquidos',
'budget.linkedToReservation': 'Vinculado a uma reserva — edite o nome lá',
// Files
'files.title': 'Arquivos',
@@ -1163,9 +1162,6 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'packing.template': 'Modelo',
'packing.templateApplied': '{count} itens adicionados do modelo',
'packing.templateError': 'Falha ao aplicar modelo',
'packing.saveAsTemplate': 'Salvar como modelo',
'packing.templateName': 'Nome do modelo',
'packing.templateSaved': 'Lista de bagagem salva como modelo',
'packing.bags': 'Malas',
'packing.noBag': 'Sem mala',
'packing.totalWeight': 'Peso total',
@@ -1804,21 +1800,9 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'common.justNow': 'agora mesmo',
'common.hoursAgo': 'há {count}h',
'common.daysAgo': 'há {count}d',
'budget.linkedToReservation': 'Vinculado a uma reserva — edite o nome lá',
'packing.saveAsTemplate': 'Salvar como modelo',
'packing.templateName': 'Nome do modelo',
'packing.templateSaved': 'Lista de bagagem salva como modelo',
'memories.notConnectedMultipleHint': 'Conecte qualquer um destes provedores de fotos: {provider_names} em Configurações para poder adicionar fotos a esta viagem.',
'memories.providerUrl': 'URL do servidor',
'memories.providerApiKey': 'Chave da API',
'memories.providerUsername': 'Nome de usuário',
'memories.providerPassword': 'Senha',
'memories.saveError': 'Não foi possível salvar as configurações de {provider_name}',
'memories.saveRouteNotConfigured': 'A rota de salvamento não está configurada para este provedor',
'memories.testRouteNotConfigured': 'A rota de teste não está configurada para este provedor',
'memories.fillRequiredFields': 'Por favor preencha todos os campos obrigatórios',
'memories.selectAlbumMultiple': 'Selecionar álbum',
'memories.selectPhotosMultiple': 'Selecionar fotos',
'journey.title': 'Jornada',
'journey.subtitle': 'Registre suas viagens em tempo real',
'journey.new': 'Nova jornada',