Гобелен: стартовая страница использует английский язык вместо стандартного языкового стандарта

Мы создали веб-сайт с 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 на английском или французском языках