Skip to content

Commit

Permalink
[Core][i18n] Improved error message when unexpected key in properties
Browse files Browse the repository at this point in the history
file

And skip empty keys (it happens sometimes but not sure why)
  • Loading branch information
skerdudou committed May 23, 2024
1 parent d44c317 commit b1d350f
Showing 1 changed file with 7 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import io.vertigo.core.locale.LocaleManager;
import io.vertigo.core.locale.LocaleMessageKey;
import io.vertigo.core.param.ParamValue;
import io.vertigo.core.util.StringUtil;

/**
* @author pchretien
Expand Down Expand Up @@ -82,12 +83,12 @@ public final class LocaleManagerImpl implements LocaleManager {
* Les exceptions sont toujours externalisées.
* Les libellés de champs ne le sont pas.
* La première Locale est celle utilisée si il n'y a aucun utilisateur déclaré (cas des batchs).
*
* On précise la liste des locales sous la forme d'une chaine de caractères
* exemples :
* Locale.french : 'fr'
* Locale.FRANCE + Locale.us : 'fr_FR,us'
* Une locale est définie par une langue{_Pays{_Variante}}
*
* @param locales Liste des locales gérées par l'application.
* @param defaultZoneId ZoneId par défaut utilisée par l'application.
*/
Expand Down Expand Up @@ -206,8 +207,9 @@ private void check(final ResourceBundle resourceBundle, final LocaleMessageKey[]

//1- Toutes les clés du fichier properties sont dans l'enum des resources
for (final String key : Collections.list(resourceBundle.getKeys())) {
if (!resourcesKeys.contains(key)) {
throw new IllegalStateException("Une clé du fichier properties est inconnue : " + key);
if (!StringUtil.isBlank(key) && !resourcesKeys.contains(key)) {
throw new IllegalStateException(
"Une clé du fichier properties (bundle '" + resourceBundle.getBaseBundleName() + "', locale '" + resourceBundle.getLocale() + "') est inconnue : '" + key + "'");
}
}

Expand Down Expand Up @@ -280,7 +282,8 @@ private void onResourceNotFound(final String key) {

/**
* Evènement remonté lorsqu'une ressource externalisée n'est pas trouvée.
* @param resource Nom de la ressource externalisée non trouvée
*
* @param resource Nom de la ressource externalisée non trouvée
* @param isMultiLocales Si appli multilingue
*/
private static void logResourceNotFound(final String resource, final boolean isMultiLocales) {
Expand Down

0 comments on commit b1d350f

Please sign in to comment.