Гобелен: стартовая страница использует английский язык вместо стандартного языкового стандарта
Мы создали веб-сайт с Tapestry 5.1.0.5, и иногда мы сталкиваемся с отсутствующей ключевой проблемой при попадании на начальную страницу.
Эта проблема появилась только 4 раза, это случайная проблема.
Фактическая конфигурация:
-
configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr");
= > , поэтому локальная по умолчанию fr
, а не en
-
configuration.add("tapestry.start-page-name", "Accueil");
= > поэтому, когда мы нажимаем /
гобелен, перенаправляет нас на /accueil
Вот проблема, которую мы иногда видим:
При нажатии /
гобелен ищет ключи в *_en.properties
вместо *_fr.properties
, но если мы нажмем /accueil
, гобелены будут искать ключи в *_fr.properties
.
Журнал трассировки:
Caused by: java.lang.NumberFormatException: For input string: **"[[missing key: prehome.store.opening.delay]]"**
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at XXXXXXX.tapestry.components.overlayer.StoreOverlayer.initStoresAndRegions(StoreOverlayer.java:652)
at XXXXXXX.tapestry.components.overlayer.StoreOverlayer.setupRender(StoreOverlayer.java)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
... 94 more
01-02-2012 11:55:52:979 23120252 ERROR org.apache.tapestry5.internal.services.InternalModule.PagePool - Page Page[Accueil en] is dirty, and will be discarded (rather than returned to the page pool).
У кого-нибудь была эта проблема?
Знаете ли вы, почему, когда мы попадаем на начальную страницу, гобелен использует en
locale вместо нашего стандартного языкового стандарта fr
?
Ответы
Ответ 1
Я бы сказал, что если вы хотите, чтобы языковой стандарт по умолчанию был французский, просто переименуйте все message_fr.properties в message.properties.
Также обратите внимание на настройки браузера. Если ваш браузер запрашивает английскую версию сайта, то Гобелен подчиняется. Вы можете переопределить это поведение, но я бы предложил обработать это как функцию (поскольку пользователь получает сайт, связанный с его предпочтением), а не ошибку.
И последний намек, если вы поддерживаете более одного языка, затем перечислите их все в поддерживаемых локальных константах.
- = Edit = -
вероятно, стоит проверить, есть ли у вас глобальный файл messages.properties на английском или французском языках