in src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java [77:115]
private String get(final Bindings bindings, String text, String locale, String basename, String hint) {
final SlingScriptHelper slingScriptHelper = BindingsUtils.getHelper(bindings);
final SlingHttpServletRequest request = BindingsUtils.getRequest(bindings);
final Object resourceBundleProvider = getResourceBundleProvider(slingScriptHelper);
if (resourceBundleProvider != null) {
String key = text;
if (StringUtils.isNotEmpty(hint)) {
key += " ((" + hint + "))";
}
if (StringUtils.isEmpty(locale)) {
Enumeration<Locale> requestLocales = request.getLocales();
while (requestLocales.hasMoreElements()) {
Locale l = requestLocales.nextElement();
String translation = getTranslation(resourceBundleProvider, basename, key, l);
if (translation != null) {
return translation;
}
}
} else {
try {
Locale l = LocaleUtils.toLocale(locale);
String translation = getTranslation(resourceBundleProvider, basename, key, l);
if (translation != null) {
return translation;
}
} catch (IllegalArgumentException e) {
LOG.warn("Invalid locale detected: {}.", locale);
return text;
}
}
}
LOG.warn(
"No translation found for string '{}' using expression provided locale '{}' or default locale '{}'",
text,
locale,
request.getLocale().getLanguage());
return text;
}