Files
sigrhapf/Documents/sigfip/sigefp/sigefp-frontend/LOCALIZACAO_GUINE_BISSAU.md
T

175 lines
4.3 KiB
Markdown
Raw Normal View History

# 🇬🇼 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 FCFA` ou `1,0K FCFA` (compacto)
### Função de Formatação
```typescript
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
```typescript
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
```typescript
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
```typescript
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
- [x] Moeda: XOF (Franco CFA) em todo o sistema
- [x] Datas: DD/MM/YYYY (formato Guiné-Bissau)
- [x] Timezone: Africa/Bissau
- [x] Locale: pt-GW
- [x] Telefone: +245
- [x] Números: Formato pt-GW (espaço para milhares, vírgula para decimais)
- [x] Dashboard: Usa formatCurrency() com XOF
- [x] AgentsPage: Usa formatNumber() e formatCurrency()
- [x] Mocks: Bancos da Guiné-Bissau
- [x] Backend: Compatível (application.yml configurado)
## 🔧 Arquivos Modificados
1. **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
2. **src/pages/Dashboard.tsx**
- Removido formatação hardcoded (pt-AO, AOA)
- Usa formatCurrency() e formatNumber() de locale.ts
3. **src/modules/rh/pages/AgentsPage.tsx**
- Usa formatNumber() para estatísticas
- Usa formatCurrency() para valores monetários
4. **src/mocks/data.ts**
- Bancos atualizados para Guiné-Bissau
## 🎯 Uso Recomendado
**SEMPRE use as funções de `@/utils/locale`:**
```typescript
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
1. **XOF não tem subunidades**: O Franco CFA não tem centavos, então `decimals: 0` é o padrão
2. **Formato de número**: pt-GW usa espaço para milhares e vírgula para decimais
3. **Timezone**: Sempre use `Africa/Bissau` para datas
4. **Backend**: Envia datas como `YYYY-MM-DD` (LocalDate), frontend exibe como `DD/MM/YYYY`
---
**Status**: ✅ 100% Configurado para Guiné-Bissau
**Moeda**: ✅ XOF (Franco CFA)
**Última atualização**: Dezembro 2024