Crear una lista desplegable de selección de idioma

Esta sección trata sobre la creación de una lista desplegable de selección de idioma:

Por qué y cuándo se efectúa esta tarea

Para crear una lista desplegable de selección de idioma:

Procedimiento

  1. Incluya una declaración de bean en StoreLanguageBean. Para ello, añada la siguiente sentencia al StoreLanguageSelection.jsp archivo disponible en workspace_dir/WC/SiteAdministration/tools/common
  2. Haga una llamada al StoreLanguageBean.getStoreJS(storeName,out):
    
    <% storeLang.getStoresJS("stores", out); %>
    

    El método getStoresJS crea una matriz de JavaScript con toda la información a la que tiene acceso el usuario según la política de control de acceso. La información incluye las tiendas a las que el usuario tiene acceso, los centros de despacho de pedido de estas tiendas y los idiomas que soporta cada una de las tiendas. El siguiente es un ejemplo de una matriz de JavaScript que se ha creado llamando al método getStoresJS:

    
    stores[0] = new Object();
    stores[0].storeId = '10001'
    stores[0].languages = new Array();
    stores[0].languages[0] = new Object();
    stores[0].languages[0].langId = '-1';
    stores[0].languages[0].langDesc = 'United States English';
    stores[0].languages[1] = new Object();
    stores[0].languages[1].langId = '-3';
    stores[0].languages[1].langDesc = 'German';
    stores[0].languages[2] = new Object();
    stores[0].languages[2].langId = '-5';
    stores[0].languages[2].langDesc = 'Spanish';
    stores[0].languages[3] = new Object();
    stores[0].languages[3].langId = '-2';
    stores[0].languages[3].langDesc = 'French';
    stores[0].languages[4] = new Object();
    stores[0].languages[4].langId = '-4';
    stores[0].languages[4].langDesc = 'Italian';
    stores[0].languages[5] = new Object();
    stores[0].languages[5].langId = '-10';
    stores[0].languages[5].langDesc = 'Japanese';
    stores[0].languages[6] = new Object();
    stores[0].languages[6].langId = '-9';
    stores[0].languages[6].langDesc = 'Korean';
    stores[0].languages[7] = new Object();
    stores[0].languages[7].langId = '-6';
    stores[0].languages[7].langDesc = 'Brazilian Portuguese';
    stores[0].languages[8] = new Object();
    stores[0].languages[8].langId = '-7';
    stores[0].languages[8].langDesc = 'Simplified Chinese';
    stores[0].languages[9] = new Object();
    stores[0].languages[9].langId = '-8';
    stores[0].languages[9].langDesc = 'Traditional Chinese';
    
  3. Utilice los datos de idioma contenidos en la matriz de JavaScript que recupera StoreLanguageBean.getStoreJS(storeName,out) para crear la lista desplegable:
    
    function getLanguageList() {
            var langSelection = document.getElementById("langlb");
            var newOption;
            var selectedLangId = null;
    
    langSelection.options.length = 0;
    if (stores.length > 0 && selectedStore != null) { 
            for (var x=0; x<stores[selectedStore].languages.length;
    x++) {
                    newOption = new
    Option(stores[selectedStore].languages[x].langDesc, stores
    [selectedStore].languages[x].langId);
                    langSelection.options[langSelection.options.length]
    = newOption;
    
                    if (stores[selectedStore].languages[x].langId ==
    currentLangId) {
                            selectedLangId =
    stores[selectedStore].languages[x].langId;
                            langSelection.options[x].selected = true;
                    }
                    else if (selectedLangId != currentLangId &&
    (x == 0 || stores
    [selectedStore].languages[x].langId == defaultLangId)) {
                            selectedLangId =
    stores[selectedStore].languages[x].langId;
                            langSelection.options[x].selected = true;
                    }
            }
    }
    else {
            newOption = new Option("<%= UIUtil.toJavaScript(none)
    %>", "");
            langSelection.options[langSelection.options.length] =
    newOption;
            }
    }
    

Resultados

Para obtener un ejemplo de implementación, consulte el archivo StoreLanguageSelection.jsp que está disponible en workspace_dir/WC/SiteAdministration/tools/common: