Не могу отрендерить outputText в зависимости от моей системной локальной переменной - PullRequest
0 голосов
/ 23 января 2019

У меня есть шаблон страницы в портале веб-центра с нижним колонтитулом с 2 выходными текстами, которые будут отображаться в зависимости от выбранного языка из потока языковых задач.

У меня есть пользовательский шаблон, который я создал с помощью jdeveloper и поставил следующую метку вывода:

 <af:outputFormatted id ="copyright" rendered="#    {facesContext.externalContext.requestLocale} eq 'en'" value="the english text"   />


 <af:outputFormatted id ="copyright" rendered="#{facesContext.externalContext.requestLocale} eq 'ar'" value="the arabic text"   />

И это выражение Эль всегда возвращает ложь Так как же визуализировать эти компоненты в зависимости от выбранного языка?

1 Ответ

0 голосов
/ 23 января 2019

Проблема в том, что вы закрываете выражение el слишком рано ("requestLocale } "). Чтобы это исправить, замените:

<af:outputFormatted id="copyright" rendered="#{facesContext.externalContext.requestLocale} eq 'en'" value="the english text"   />

по

<af:outputFormatted id="copyright" rendered="#{facesContext.externalContext.requestLocale eq 'en'}" value="the english text"   />

Или, в качестве альтернативного решения, вы можете иметь только один выходной форматированный со всеми значениями, подобными этому:

<af:outputFormatted id="copyright"  value="#{facesContext.externalContext.requestLocale eq 'en' ? 'the english text':(facesContext.externalContext.requestLocale eq 'ar' ? 'the arabic text' : 'Default text')}"   />

Однако, если вы ищете функциональность перевода в ADF, вам следует обратиться к файлу пакета перевода, как описано в документации здесь: https://docs.oracle.com/cd/E15051_01/web.1111/b31973/af_global.htm#ADFUI425

Интернационализация - это процесс проектирования и разработки продуктов для легкой адаптации к конкретным местным языкам и культурам. Локализация - это процесс адаптации продукта к конкретному местному языку или культуре путем перевода текста и добавления компонентов, зависящих от локали. Похоже, что успешно локализованное приложение было разработано в рамках местной культуры. JDeveloper поддерживает простую локализацию компонентов ADF Faces, используя абстрактный класс java.util.ResourceBundle для предоставления ресурсов, специфичных для локали.

Когда ваше приложение будет просматриваться пользователями более чем в одном страну, вы можете настроить свою страницу JSF или приложение для использования различные локали, так что он отображает правильный язык для настройка языка браузера пользователя. Например, если вы знаете свой страница будет просматриваться в Италии, вы можете локализовать свою страницу так, чтобы при браузер пользователя настроен на использование итальянского языка, текстовые строки в страница браузера появится на итальянском языке.

Компоненты ADF Faces могут содержать текст, который является частью компонента, например, компонент af: table использует строку ресурса af_table.LABEL_FETCHING для текста сообщения, отображаемого в браузер, пока таблица выбирает данные во время начальной загрузки данные или во время прокрутки таблицы. JDeveloper предоставляет автоматический перевод этих текстовых ресурсов на 28 языков. Эти на текстовые ресурсы ссылаются в комплекте ресурсов. Если вы установите браузер для использования языка в Италии, любой текст, содержащийся в Компоненты будут автоматически отображаться на итальянском языке. Для большего информацию о скинах и ресурсах, см. главу 20, «Настройка внешнего вида с помощью стилей и скинов».

Для любого текста, добавляемого к компоненту, например, если вы определяете метка компонента af: commandButton путем установки атрибута text, Вы должны предоставить пакет ресурсов, который содержит фактический текст, создать версия пакета ресурсов для каждой локали и добавьте элемент для определения локали по умолчанию и поддержки локалей в файл приложения face-config.xml. Вы также должны добавить элемент в файл Face-config.xml вашего приложения для того, чтобы пакеты ресурсов были доступны для всех страниц в ваше приложение. После того, как вы настроили и зарегистрировали ресурс В пакете редактор Expression Language (EL) отобразит ключ пакет, облегчая ссылку на пакет в приложении стр.

Чтобы упростить процесс создания текстовых ресурсов для текста, который вы добавляете в Компоненты ADF, JDeveloper поддерживает автоматическую комплектацию ресурсов синхронизация для любой переводимой строки в визуальном редакторе. когда Вы редактируете компоненты непосредственно в визуальном редакторе или в свойстве Инспектор, текстовые ресурсы автоматически создаются в базе комплект ресурсов.

...