Ho un software che registra vari eventi in un database (SQLite). Attualmente i dati memorizzati sono:
- Messaggio
- Data
- Categoria
- Criticità
I log sono scritti nella lingua corrente del software. Il che significa che il messaggio:
User "admin" logged in
può diventare
L'utilisateur "admin" est connecté
se il software è in francese.
Questo è perfetto per l'utente, ma a volte gli utenti ci inviano il loro file di log per l'analisi e questo diventa improvvisamente molto complicato se è una lingua che nessuno nel team può capire.
Che portano alla mia domanda, quale strategia dovremmo utilizzare per poter visualizzare i log in qualsiasi lingua supportata dal nostro software indipendentemente dalla lingua originale ? sapendo che:
- L'utilizzo di un database è obbligatorio
- Il numero di parametri in un messaggio di log può passare da 0 a un lotto
- Il messaggio dei log dovrebbe essere comprensibile nel codice
- L'esportazione o la visualizzazione dei log dovrebbero essere veloci
Attualmente per scrivere un messaggio di log stiamo facendo qualcosa di simile (C ++)
std::string message = translate("User %s logged in"); // using Gettext
message = String::Format(message,userName);
LogsManager::Info(message);
Grazie
Modifica Il problema non è sapere se dobbiamo o non tradurre il messaggio dei registri, ma come renderli indipendenti dalla lingua. Significa che se l'utente cambia lingua durante l'uso del software, i messaggi dovrebbero essere visualizzati / esportati nella lingua corrente e non nella precedente.