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
- 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
-
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';
- 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: