feat: adicionar traduções i18n faltantes e atualizar copilot-instructions
- Adicionar traduções para modal de keywords do centro de custo Geral - Corrigir toasts sem i18n em Accounts e LiabilityAccounts - Adicionar regra no copilot-instructions sobre verificação obrigatória de i18n - Garantir que todos os textos visíveis usem t() com traduções em pt-BR, es e en
This commit is contained in:
parent
c787077a39
commit
4ad7060323
26
.github/copilot-instructions.md
vendored
26
.github/copilot-instructions.md
vendored
@ -198,6 +198,32 @@ toast.success('Sucesso!');
|
||||
|
||||
---
|
||||
|
||||
## ✅ Regras de Qualidade de Código
|
||||
|
||||
### Frontend - Internacionalização (i18n)
|
||||
|
||||
**OBRIGATÓRIO:** Sempre que criar ou editar arquivos do frontend, verificar i18n.
|
||||
|
||||
#### Verificações necessárias:
|
||||
1. **Todos os textos visíveis** devem usar `t('chave.tradução')`
|
||||
2. **Toast/Alertas** devem ter traduções em:
|
||||
- `/frontend/src/i18n/locales/pt-BR.json`
|
||||
- `/frontend/src/i18n/locales/es.json`
|
||||
- `/frontend/src/i18n/locales/en.json`
|
||||
3. **Mensagens de erro** devem ter fallback: `t('key') || 'Texto padrão'`
|
||||
4. **Placeholders e títulos** de formulários devem ser traduzidos
|
||||
|
||||
#### Exemplo correto:
|
||||
```jsx
|
||||
// ❌ ERRADO
|
||||
toast.success('Salvo com sucesso');
|
||||
|
||||
// ✅ CORRETO
|
||||
toast.success(t('common.saveSuccess'));
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Quando Atualizar Documentação
|
||||
|
||||
### VERSION
|
||||
|
||||
@ -303,6 +303,7 @@
|
||||
"recalculate": "Recalculate",
|
||||
"recalculateBalances": "Recalculate all account balances",
|
||||
"recalculateSuccess": "{{count}} account(s) updated successfully",
|
||||
"loadAssetError": "Error loading asset details",
|
||||
"balancesUpToDate": "All balances are already up to date",
|
||||
"recalculateError": "Error recalculating balances",
|
||||
"adjustBalance": "Adjust Balance",
|
||||
@ -427,7 +428,11 @@
|
||||
"updateError": "Error updating cost center",
|
||||
"deleteError": "Error deleting cost center",
|
||||
"noCostCenters": "No cost centers registered",
|
||||
"systemCostCenter": "System cost center (cannot be edited or deleted)"
|
||||
"systemCostCenter": "System cost center (cannot be edited or deleted)",
|
||||
"editKeywords": "Edit Keywords",
|
||||
"keywordsHelp": "Keywords are used to automatically assign transactions to this cost center.",
|
||||
"keywordsUpdated": "Keywords updated successfully",
|
||||
"keywordsError": "Error updating keywords"
|
||||
},
|
||||
"liabilities": {
|
||||
"title": "Liability Accounts",
|
||||
@ -504,6 +509,8 @@
|
||||
"priceAnalysis": "Technical Analysis of PRICE System",
|
||||
"priceAnalysisTitle": "Technical Analysis - PRICE System (French Amortization)",
|
||||
"priceOverview": "Overview",
|
||||
"templateDownloaded": "Template downloaded successfully",
|
||||
"downloadTemplateError": "Error downloading template",
|
||||
"priceOverviewText": "The PRICE System (French Amortization System) is the most widely used method for personal loans and financing. It is characterized by fixed installments throughout the contract period.",
|
||||
"whatIsPrice": "What is the PRICE System?",
|
||||
"whatIsPriceText": "It is an amortization system where installments are constant. While the installment value remains the same, the internal composition changes over time:",
|
||||
|
||||
@ -306,6 +306,7 @@
|
||||
"recalculate": "Recalcular",
|
||||
"recalculateBalances": "Recalcular saldos de todas las cuentas",
|
||||
"recalculateSuccess": "{{count}} cuenta(s) actualizada(s) correctamente",
|
||||
"loadAssetError": "Error al cargar detalles del activo",
|
||||
"balancesUpToDate": "Todos los saldos ya están actualizados",
|
||||
"recalculateError": "Error al recalcular saldos",
|
||||
"adjustBalance": "Ajustar Saldo",
|
||||
@ -430,7 +431,11 @@
|
||||
"updateError": "Error al actualizar centro de costo",
|
||||
"deleteError": "Error al eliminar centro de costo",
|
||||
"noCostCenters": "No hay centros de costo registrados",
|
||||
"systemCostCenter": "Centro de costo del sistema (no se puede editar ni eliminar)"
|
||||
"systemCostCenter": "Centro de costo del sistema (no se puede editar ni eliminar)",
|
||||
"editKeywords": "Editar Palabras clave",
|
||||
"keywordsHelp": "Las palabras clave se utilizan para asignar automáticamente transacciones a este centro de costo.",
|
||||
"keywordsUpdated": "Palabras clave actualizadas con éxito",
|
||||
"keywordsError": "Error al actualizar palabras clave"
|
||||
},
|
||||
"liabilities": {
|
||||
"title": "Cuentas Pasivo",
|
||||
@ -512,6 +517,8 @@
|
||||
"priceAnalysis": "Análisis Técnico del Sistema PRICE",
|
||||
"priceAnalysisTitle": "Análisis Técnico - Sistema PRICE (Sistema Francés)",
|
||||
"priceOverview": "Visión General",
|
||||
"templateDownloaded": "Plantilla descargada con éxito",
|
||||
"downloadTemplateError": "Error al descargar plantilla",
|
||||
"priceOverviewText": "El Sistema PRICE (Sistema Francés de Amortización) es el método más utilizado en préstamos personales y financiamientos. Se caracteriza por cuotas fijas durante todo el período del contrato.",
|
||||
"whatIsPrice": "¿Qué es el Sistema PRICE?",
|
||||
"whatIsPriceText": "Es un sistema de amortización donde las cuotas son constantes. Mientras el valor de la cuota permanece igual, la composición interna cambia a lo largo del tiempo:",
|
||||
|
||||
@ -308,6 +308,7 @@
|
||||
"recalculate": "Recalcular",
|
||||
"recalculateBalances": "Recalcular saldos de todas as contas",
|
||||
"recalculateSuccess": "{{count}} conta(s) atualizada(s) com sucesso",
|
||||
"loadAssetError": "Erro ao carregar detalhes do ativo",
|
||||
"balancesUpToDate": "Todos os saldos já estão atualizados",
|
||||
"recalculateError": "Erro ao recalcular saldos",
|
||||
"adjustBalance": "Ajustar Saldo",
|
||||
@ -432,7 +433,11 @@
|
||||
"updateError": "Erro ao atualizar centro de custo",
|
||||
"deleteError": "Erro ao excluir centro de custo",
|
||||
"noCostCenters": "Nenhum centro de custo cadastrado",
|
||||
"systemCostCenter": "Centro de custo do sistema (não pode ser editado ou excluído)"
|
||||
"systemCostCenter": "Centro de custo do sistema (não pode ser editado ou excluído)",
|
||||
"editKeywords": "Editar Palavras-chave",
|
||||
"keywordsHelp": "Palavras-chave são usadas para atribuir automaticamente transações a este centro de custo.",
|
||||
"keywordsUpdated": "Palavras-chave atualizadas com sucesso",
|
||||
"keywordsError": "Erro ao atualizar palavras-chave"
|
||||
},
|
||||
"liabilities": {
|
||||
"title": "Contas Passivo",
|
||||
@ -514,6 +519,8 @@
|
||||
"priceAnalysis": "Análise Técnica do Sistema PRICE",
|
||||
"priceAnalysisTitle": "Análise Técnica - Sistema PRICE (Tabela Francesa)",
|
||||
"priceOverview": "Visão Geral",
|
||||
"templateDownloaded": "Modelo baixado com sucesso",
|
||||
"downloadTemplateError": "Erro ao baixar modelo",
|
||||
"priceOverviewText": "O Sistema PRICE (Sistema Francês de Amortização) é o método mais utilizado em empréstimos pessoais e financiamentos. Caracteriza-se por parcelas fixas durante todo o período do contrato.",
|
||||
"whatIsPrice": "O que é o Sistema PRICE?",
|
||||
"whatIsPriceText": "É um sistema de amortização onde as parcelas são constantes. Enquanto o valor da parcela permanece igual, a composição interna muda ao longo do tempo:",
|
||||
|
||||
@ -276,7 +276,7 @@ const Accounts = () => {
|
||||
setShowAssetDetail(true);
|
||||
}
|
||||
} catch (error) {
|
||||
toast.error('Erro ao carregar detalhes do ativo');
|
||||
toast.error(t('accounts.loadAssetError') || 'Erro ao carregar detalhes do ativo');
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -84,9 +84,9 @@ const LiabilityAccounts = () => {
|
||||
a.click();
|
||||
window.URL.revokeObjectURL(url);
|
||||
document.body.removeChild(a);
|
||||
toast.success('Plantilla descargada');
|
||||
toast.success(t('liabilities.templateDownloaded'));
|
||||
} catch (error) {
|
||||
toast.error('Error al descargar plantilla');
|
||||
toast.error(t('liabilities.downloadTemplateError'));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user