Nueva clase Translator para reemplazar completamente al traductor de symfony. Esta clase estaría ubicada en la carpeta Core, al ser una clase de uso muy habitual.
Debe implementar tanto la cargar y recarga de traducciones, la traducción de cadenas y el almacenamiento de cadenas sin traducción, para la barra de debug.
Translator::setLang('es_ES'); // seleccionamos el idioma
Translator::get('save-ok'); // obtenemos la traducción para el idioma seleccionado
Translator::trans('fr_FR', 'save-ok'); // obtenemos la traducción para un idioma distinto al seleccionado
Translator::reload(); // recargamos las traducciones
Translator::notFound(); // devuelve un array con las traducciones no encontradas
Desde el archivo index.php cargaríamos el idioma predeterminado en el config o el que recibamos por cookie.
$lang = $_COOKIE['fsLang'] ?? FS_LANG ?? 'es_ES';
Translator::setLang($lang);
Tanto la función get() como trans() llamarían internamente a una función load($lang) de la clase para que esta cargue en una variable privada estática todas las traducciones de ese idioma. De esta forma no necesitamos un constructor ni ninguna otra función para cargar los archivos de traducciones. Se cargaría conforme se necesite.
Esta nueva clase debe tener su correspondiente test unitario comprobando todas las funciones que se puedan testear.
Esto es una sugerencia a debatir. Está abierta a comentarios, votación y debate en la reunión semanal. Si se aprueba pasará a estado pendiente.