struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Newton <davelnew...@gmail.com>
Subject Re: Problem with internationalisation of Struts2
Date Sun, 24 Aug 2014 17:58:16 GMT
Tell us how you really feel.
On Aug 24, 2014 1:04 PM, "Lukasz Lenart" <lukaszlenart@apache.org> wrote:

> 2014-08-24 13:42 GMT+02:00 Amine BADID <aminebadid@yahoo.fr>:
> > Hi Lukasz.
> > Thank you.
> > I've found the problem.
> > It was about an accentuated word. I've forget to add a number to the
> unicode word like '\u00e9'.
> > The class TextProviderHelper do not give the good message !
> > Because it lacks only a letter in the document global_fr.properties,
> TextProviderHelper do not see it !
>
> I rather suggest you should read how Resource bundles work in Java!!!!
> http://docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html
>
> > I hope in the futurthat Struts team will modify the message.
>
> Sure thing, we are going to release our own JVM version!!!!!
>
> >
> > Here is the source code of this class !!!! :
> > /* * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one
> * or more contributor license agreements.  See the NOTICE file *
> distributed with this work for additional information * regarding copyright
> ownership.  The ASF licenses this file * to you under the Apache License,
> Version 2.0 (the * "License"); you may not use this file except in
> compliance * with the License.  You may obtain a copy of the License at *
> *  http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by
> applicable law or agreed to in writing, * software distributed under the
> License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR
> CONDITIONS OF ANY * KIND, either express or implied.  See the License for
> the * specific language governing permissions and limitations * under the
> License. */ package org.apache.struts2.util; import
> com.opensymphony.xwork2.util.ValueStack;
> > import com.opensymphony.xwork2.util.logging.Logger;
> > import com.opensymphony.xwork2.util.logging.LoggerFactory;
> > import com.opensymphony.xwork2.TextProvider; import java.util.Iterator;
> > import java.util.List;
> > import java.util.LinkedList;
> > import java.util.Collections; /** * Helper methods to access text from
> TextProviders */
> > public class TextProviderHelper { private static final Logger LOG =
> LoggerFactory.getLogger(TextProviderHelper.class); /** * <p>Get a message
> from the first TextProvider encountered in the stack. * If the first
> TextProvider doesn't provide the message the default message is
> returned.</p> * The stack is searched if if no TextProvider is found, or
> the message is not found. * @param key             the message key in the
> resource bundle * @param defaultMessage  the message to return if not found
> (evaluated for OGNL) * @param args            an array args to be used in a
> {@link java.text.MessageFormat} message * @param stack           the value
> stack to use for finding the text * * @return the message if found,
> otherwise the defaultMessage */ public static String getText(String key,
> String defaultMessage, List<Object> args, ValueStack stack) { return
> getText(key, defaultMessage, args, stack, true); } /** * <p>Get a message
> from the first TextProvider
> >  encountered in the stack. * If the first TextProvider doesn't provide
> the message the default message is returned.</p> * <p>The search for a
> TextProvider is iterative from the root of the stack. * <p>This method was
> refactored from  {@link org.apache.struts2.components.Text} to use a *
> consistent implementation across UIBean components.</p> * @param key
>      the message key in the resource bundle * @param defaultMessage  the
> message to return if not found (evaluated for OGNL) * @param args
>   an array args to be used in a {@link java.text.MessageFormat} message *
> @param stack           the value stack to use for finding the text * @param
> searchStack     search stack for the key * * @return the message if found,
> otherwise the defaultMessage */ public static String getText(String key,
> String defaultMessage, List<Object> args, ValueStack stack, boolean
> searchStack) { String msg = null; TextProvider tp = null; for (Iterator
> iterator =
> >  stack.getRoot().iterator(); iterator.hasNext();) { Object o =
> iterator.next(); if (o instanceof TextProvider) { tp = (TextProvider) o;
> msg = tp.getText(key, null, args, stack); break; } } if (msg == null) { //
> evaluate the defaultMesage as an OGNL expression if (searchStack) msg =
> stack.findString(defaultMessage); if (msg == null) { // use the
> defaultMessage literal value msg = defaultMessage; } if
> (LOG.isWarnEnabled()) { if (tp != null) { LOG.warn("The first TextProvider
> in the ValueStack ("+tp.getClass().getName()+") could not locate the
> message resource with key '"+key+"'"); } else { LOG.warn("Could not locate
> the message resource '"+key+"' as there is no TextProvider in the
> ValueStack."); } if (msg.equals(defaultMessage)) { LOG.warn("The default
> value expression '"+defaultMessage+"' was evaluated and did not match a
> property.  The literal value '"+defaultMessage+"' will be used."); } else {
> LOG.warn("The default value expression '"+defaultMessage+"'
> >  evaluated to '"+msg+"'"); } } } return msg; } /** * <p>Get a message
> from the first TextProvider encountered in the stack. * If the first
> TextProvider doesn't provide the message the default message is
> returned.</p> * <p>The search for a TextProvider is iterative from the root
> of the stack. * <p>This method was refactored from  {@link
> org.apache.struts2.components.Text} to use a * consistent implementation
> across UIBean components.</p> * @param key             the message key in
> the resource bundle * @param defaultMessage  the message to return if not
> found * @param stack           the value stack to use for finding the text
> * * @return the message if found, otherwise the defaultMessage */ public
> static String getText(String key, String defaultMessage, ValueStack stack)
> { return getText(key, defaultMessage, Collections.emptyList(), stack); }
> > }
>
> Thanks a lot!!!!!!! Git is useless!!!!!!!!
>
>
> Kind regards
> --
> Ɓukasz
> + 48 606 323 122 http://www.lenart.org.pl/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message