// $Header$
/*
 * Copyright 2002-2004 The Apache Software Foundation.
 *
 * Licensed 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.jmeter.gui.action;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;

import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;

/**
 * @version $Revision$
 */
public class ChangeLanguage implements Command
{
    private static final Set commands = new HashSet();
    public final static String CHANGE_LANGUAGE = "change_language";
    private Logger log = LoggingManager.getLoggerForClass();

    static
    {
        commands.add(CHANGE_LANGUAGE);
    }
    
    /**
     * @see org.apache.jmeter.gui.action.Command#doAction(ActionEvent)
     */
    public void doAction(ActionEvent e)
    {
        Locale loc = new Locale(((Component) e.getSource()).getName(), "");
        log.debug("Changing language to " + loc.getLanguage());
        JMeterUtils.setLocale(loc);
    }
    
    /**
     * @see org.apache.jmeter.gui.action.Command#getActionNames()
     */
    public Set getActionNames()
    {
        return commands;
    }
}

@@ -1402,32 +1402,24 @@
     
-Locale loc = new Locale(
+String locale = 
 ((Co
@@ -1455,14 +1455,238 @@
 me()
-, %22%22);
+;%0A        Locale loc;%0A%0A        int sep = locale.indexOf('_');%0A        if (sep%3E0) %7B%0A            loc = new Locale(locale.substring(0,sep),locale.substring(sep+1));%0A        %7D else %7B%0A            loc = new Locale(locale, %22%22);%0A        %7D
 %0A   
@@ -1711,22 +1711,20 @@
 anging l
-anguag
+ocal
 e to %22 +
@@ -1732,19 +1732,16 @@
 loc.
-getLanguage
+toString
 ());

Allow name to contain country as well as language