package fr.titionfire.ffsaf.domain.service; import jakarta.enterprise.context.RequestScoped; import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; import jakarta.ws.rs.container.ContainerRequestContext; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; @RequestScoped public class TradService { @Inject Instance requestContextInstance; public static final Locale fallbackLocale = Locale.FRANCE; public String t(String key) { return translate(key); } public String translate(String key) { ContainerRequestContext requestContext = requestContextInstance.get(); Locale userLocale = (Locale) requestContext.getProperty("userLocale"); try { ResourceBundle messages = ResourceBundle.getBundle("lang.messages", userLocale); return messages.getString(key); } catch (MissingResourceException e) { try { ResourceBundle fallbackMessages = ResourceBundle.getBundle("lang.messages", fallbackLocale); return fallbackMessages.getString(key); } catch (MissingResourceException ex) { return key; } } } }