-
15. Re: Seam International Module
kenfinni May 25, 2011 10:31 PM (in response to elfuhrer)I'll be looking into this in greater detail over the next couple of days.
To assist in resolving the problem, are you able to create an Arquillian test case that replicates it? That would make ensuring it's solved and is never broken again easier.
Also, should have asked earlier, but which server is your application running on?
Thanks
Ken -
16. Re: Seam International Module
elfuhrer May 26, 2011 6:35 AM (in response to elfuhrer)Hi Ken,
I'll create a test case for that shortly and provided to you guys. Thanks for the assistance.Cheers,
Fady -
17. Re: Seam International Module
kenfinni Jun 16, 2011 9:52 PM (in response to elfuhrer)Hi Fady,
I haven't had any luck in re-creating your problem yet.
Have you had an opportunity to create an Arquillian test case that replicates the problem?
Thanks
Ken -
18. Re: Seam International Module
ssachtleben.ssachtleben.gmail.com Jun 17, 2011 3:42 AM (in response to elfuhrer)I have added i18n today on my current project and it works fine.
My seam-beans.xml:
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="urn:java:ee" xmlns:rest="urn:java:org.jboss.seam.rest" xmlns:exceptions="urn:java:org.jboss.seam.rest.exceptions" xmlns:lc="urn:java:org.jboss.seam.international.locale" xmlns:security="urn:java:org.jboss.seam.security" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd"> <lc:LocaleConfiguration> <lc:supportedLocaleKeys> <s:value>en_US</s:value> <s:value>de_DE</s:value> </lc:supportedLocaleKeys> </lc:LocaleConfiguration> <lc:DefaultLocaleProducer> <lc:defaultLocaleKey>de_DE</lc:defaultLocaleKey> </lc:DefaultLocaleProducer> </beans>
My locale selector bean:
@Named("localeSelector") @RequestScoped public class LocaleSelectorImpl implements LocaleSelector, Serializable { @Inject @Client private Locale locale; @Inject @Alter @Client private Event<Locale> event; @Inject private List<Locale> supportedLocales; public List<Locale> getSupportedLocales() { return supportedLocales; } public Locale getLocale() { return locale; } public void setLocale(Locale locale) { this.locale = locale; event.fire(locale); } }
My facelet selection:
<ui:repeat var="locale" value="#{localeSelector.supportedLocales}"> <h:commandLink> <f:setPropertyActionListener target="#{localeSelector.locale}" value="#{locale}" /> #{locale}  </h:commandLink> </ui:repeat>
I these two files in in src/main/resources:
messages.properties (german texts) messages_en.properties (english texts)
In my facelets I use this for getting the texts:
#{bundles.messages['message.Key']}
When I start my application the language is german which is set by the given default locale key. When I click on a locale in facelet the page will be reloaded and shown the correct texts in given locale. It works fine. Tested with Seam 3.0.0-Final!
-
19. Re: Seam International Module
kenfinni Jun 17, 2011 8:04 AM (in response to elfuhrer)That's great news Sebastian, glad it's working well.
Fady, if you can try following Sebastian's example to switch locales that should solve your problem
-
20. Re: Seam International Module
elfuhrer Jun 17, 2011 1:23 PM (in response to elfuhrer)Indeed it works, I have resorted to another approach to fix my setup. After firing the locale event I have set the JSFContext to use the locale explicitly and that sorted things out.
FacesContext.getCurrentInstance().getViewRoot().setLocale(currentLocale);
But I'm not sure that is the correct approach, the fired event should handle that.
-
21. Re: Seam International Module
elfuhrer Jun 17, 2011 1:49 PM (in response to elfuhrer)That approach won't work, I got the following exception after trying it:
20:48:30,045 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=vfs:///D:/workspace/servers/jboss-6.0.0.Final/server/default/deploy/web.war_WeldBootstrapBean state=Create: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Locale] with qualifiers [@Client] at injection point [[field] @Client @Inject private org.webpatterns.vcs.web.locale.LocaleSelectorImpl.locale]
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:305) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:139) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:162) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:377) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:363) [:6.0.0.Final]
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:388) [:6.0.0.Final]
at org.jboss.weld.integration.deployer.env.helpers.BootstrapBean.boot(BootstrapBean.java:92) [:6.0.0.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_26]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_26]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_26]
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.0.GA]
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.0.GA]
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA]
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA]
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.GA]
at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0.Final]
at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]
at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.deploy(HDScanner.java:240) [:0.2.2]
at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.complete(HDScanner.java:192) [:0.2.2]
at org.jboss.profileservice.management.TwoPCActionWrapper.doComplete(TwoPCActionWrapper.java:57) [:0.2.2]
at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.complete(AbstractTwoPhaseModificationAction.java:74) [:0.2.2]
at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:95) [:0.2.2]
at org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87) [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234) [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213) [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150) [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:135) [:0.2.2]
at org.jboss.profileservice.deployment.hotdeploy.HDScanner.scan(HDScanner.java:146) [:0.2.2]
at org.jboss.profileservice.deployment.hotdeploy.HDScanner.run(HDScanner.java:90) [:0.2.2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [:1.6.0_26]
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [:1.6.0_26]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [:1.6.0_26]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [:1.6.0_26]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [:1.6.0_26]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_26] -
22. Re: Seam International Module
roliveira.ricardo.martinelli.oliveira.gmail.com Jun 26, 2011 11:48 PM (in response to elfuhrer)Many thanks for the suggestion Sebastian, that approach works in my project!