4.3 KiB
4.3 KiB
🇬🇼 Localização para Guiné-Bissau
✅ Configuração Completa
O frontend está totalmente configurado para Guiné-Bissau, compatível com o backend.
💰 Moeda: XOF (Franco CFA)
Configuração
- Código ISO: XOF
- Símbolo: FCFA
- Locale: pt-GW
- Formato:
1 000 FCFAou1,0K FCFA(compacto)
Função de Formatação
import { formatCurrency } from '@/utils/locale';
// Formato padrão
formatCurrency(1000000); // "1 000 000 FCFA"
// Formato compacto
formatCurrency(1000000, { compact: true }); // "1,0M FCFA"
// Com decimais
formatCurrency(1000.50, { decimals: 2 }); // "1 000,50 FCFA"
Locais Corrigidos
✅ Dashboard.tsx
- Antes:
currency: 'AOA'(Angola) - Agora: Usa
formatCurrency()com XOF
✅ AgentsPage.tsx
- Usa
formatNumber()para estatísticas - Usa
formatCurrency()para valores monetários
✅ Todos os componentes
- Usam funções de
@/utils/locale
📅 Datas: DD/MM/YYYY
Configuração
- Formato: DD/MM/YYYY
- Timezone: Africa/Bissau
- Locale: pt-GW
Funções
import { formatDate, formatDateTime, formatLocalDate } from '@/utils/locale';
// Formata Date object
formatDate(new Date()); // "28/12/2024"
// Formata data e hora
formatDateTime(new Date()); // "28/12/2024 14:30"
// Converte LocalDate do backend (YYYY-MM-DD) para exibição
formatLocalDate('2024-12-28'); // "28/12/2024"
📞 Telefone: +245
Formato
- Código do país: +245
- Formato: +245 XXX XXX XXX
Função
import { formatPhone } from '@/utils/locale';
formatPhone('955123456'); // "+245 955 123 456"
formatPhone('245955123456'); // "+245 955 123 456"
🔢 Números
Formatação
- Separador de milhares: Espaço (ex:
1 000) - Separador decimal: Vírgula (ex:
1 000,50) - Locale: pt-GW
Função
import { formatNumber } from '@/utils/locale';
formatNumber(1000); // "1 000"
formatNumber(1000.50, 2); // "1 000,50"
🏦 Bancos (Mocks Atualizados)
Os mocks foram atualizados com bancos da Guiné-Bissau:
- Banco Central da Guiné-Bissau (BCGB)
- Banco da África Ocidental (BAO)
- Ecobank Guiné-Bissau
- Banco Atlântico Guiné-Bissau
- Banco Internacional da Guiné-Bissau
📋 Checklist de Compatibilidade
- Moeda: XOF (Franco CFA) em todo o sistema
- Datas: DD/MM/YYYY (formato Guiné-Bissau)
- Timezone: Africa/Bissau
- Locale: pt-GW
- Telefone: +245
- Números: Formato pt-GW (espaço para milhares, vírgula para decimais)
- Dashboard: Usa formatCurrency() com XOF
- AgentsPage: Usa formatNumber() e formatCurrency()
- Mocks: Bancos da Guiné-Bissau
- Backend: Compatível (application.yml configurado)
🔧 Arquivos Modificados
-
src/utils/locale.ts
- Funções de formatação para Guiné-Bissau
- formatCurrency() com suporte a XOF
- formatNumber() com locale pt-GW
- formatDate() e formatDateTime()
- formatPhone() com código +245
-
src/pages/Dashboard.tsx
- Removido formatação hardcoded (pt-AO, AOA)
- Usa formatCurrency() e formatNumber() de locale.ts
-
src/modules/rh/pages/AgentsPage.tsx
- Usa formatNumber() para estatísticas
- Usa formatCurrency() para valores monetários
-
src/mocks/data.ts
- Bancos atualizados para Guiné-Bissau
🎯 Uso Recomendado
SEMPRE use as funções de @/utils/locale:
import {
formatCurrency,
formatNumber,
formatDate,
formatDateTime,
formatLocalDate,
formatPhone
} from '@/utils/locale';
// ✅ CORRETO
const price = formatCurrency(1000); // "1 000 FCFA"
const date = formatLocalDate('2024-12-28'); // "28/12/2024"
// ❌ ERRADO - Não use
const price = new Intl.NumberFormat('pt-AO', { currency: 'AOA' }); // Angola!
const price = value.toLocaleString(); // Locale padrão do navegador
📝 Notas Importantes
- XOF não tem subunidades: O Franco CFA não tem centavos, então
decimals: 0é o padrão - Formato de número: pt-GW usa espaço para milhares e vírgula para decimais
- Timezone: Sempre use
Africa/Bissaupara datas - Backend: Envia datas como
YYYY-MM-DD(LocalDate), frontend exibe comoDD/MM/YYYY
Status: ✅ 100% Configurado para Guiné-Bissau
Moeda: ✅ XOF (Franco CFA)
Última atualização: Dezembro 2024