2012-02-09 16 views
11

Abbiamo creato un sito Web con Tapestry 5.1.0.5 e riscontriamo, a volte, un problema chiave mancante quando raggiungiamo la pagina iniziale.Tapestry: la pagina iniziale utilizza le impostazioni internazionali inglese anziché le impostazioni locali predefinite

Questo problema è apparso solo 4 volte, si tratta di un problema casuale.

Attuale configurazione:

  • configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr"); => in modo che il valore predefinito locale è fr e non en

  • configuration.add("tapestry.start-page-name", "Accueil"); => in modo che quando ci ha colpito / arazzo ci reindirizza su /accueil

Qui è il problema a volte vediamo:

Quando esce / chiavi Ricerche arazzo in *_en.properties invece di *_fr.properties ma se ci ha colpito /accueil chiavi Ricerche arazzo in *_fr.properties.

registro di traccia:

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). 

Chiunque ha avuto questo problema?

Sapete perché quando premiamo la pagina iniziale, gli arazzi utilizzano le impostazioni internazionali en anziché le nostre impostazioni internazionali predefinite fr?

risposta

5

Direi che se si desidera garantire che le impostazioni internazionali predefinite siano francesi, è sufficiente rinominare tutte le proprietà message_fr.properties in message.properties.

Controllare inoltre le impostazioni del browser. Se il tuo browser richiede la versione inglese del sito, allora Tapestry obbedisce. Potresti ignorare questo comportamento, ma ti suggerirei di trattarlo come una funzionalità (dato che l'utente ottiene il sito correlato alle sue preferenze) piuttosto che un bug.

E l'ultimo suggerimento, se si supporta più di una lingua, elencarli tutti in costante locale supportato.

- = Edit = - è anche probabilmente la pena di verificare avete il file messages.properties globale in inglese o in francese

+0

Abbiamo pensato a questa soluzione, ma non ci ha aiutato a capire il motivo per cui Tapestry ricerca della "en" locale. Inoltre usiamo "fr" per le impostazioni locali del browser. – Fabien

Problemi correlati