На данный момент я использую это:
<c:set var="localeCode" value="${pageContext.response.locale}" />
Позже к этому можно получить доступ с помощью ${localeCode}
- Режим Scriplet , не рекомендуется! См. Почему бы не использовать Scriptlets , чтобы не использовать скриптлет.
Переменная localeCode
может запрашиваться внутри скриптлета с помощью:
<%
Object ob_localeCode = pageContext.getAttribute("localeCode");
if (ob_localeCode != null) {
String currentLanguageCode = (String) ob_localeCode;
}
//more code
%>
- Режим без скриптов правильный путь. См. Как избежать использования Java-кода в JSP-файлах? Здесь, на SO.
Я сейчас использую конфигурацию Spring 2.5.
Итак, возвращаясь к исходному вопросу, вы можете реализовать что-то вроде:
<c:set var="localeCode" value="${pageContext.response.locale}" />
<c:choose>
<c:when test="$localecode == 'de' }">
<script src="../themes/administration/js/languages/i18nDE.js" type="text/javascript"> </script>
</c:when>
<c:otherwise>
<script src="../themes/administration/js/languages/i18nEN.js" type="text/javascript"> </script>
</c:otherwise>
</c:choose>
или если вы действительно хотите использовать какой-то короткий код, чтобы произвести впечатление на ваших коллег, вы можете сделать:
<c:set var="localeCode" value="${fn:toUpperCase(pageContext.response.locale)}" />
<c:set var="availLanguages" value="EN,DE" />
<c:if test="${!fn:contains(availLanguages,localeCode)}">
<c:set var="localeCode" value="EN" />
</c:if>
<script src="../themes/administration/js/languages/i18n{$localeCode}.js" type="text/javascript"> </script>