Création d'une liste déroulante de sélection de langue
Cette section fait référence à la création d'une liste déroulante de sélection de langue.
Pourquoi et quand exécuter cette tâche
Pour créer une liste déroulante de sélection de langue :
Procédure
- Inclure une déclaration de bean au StoreLanguageBean. Pour cela, ajoutez l'instruction suivante à votre fichier StoreLanguageSelection.jsp disponible dans workspace_dir/WC/SiteAdministration/tools/common
-
Appelez le
StoreLanguageBean.getStoreJS(storeName,out):<% storeLang.getStoresJS("stores", out); %>La méthode getStoresJS crée un tableau JavaScript avec toutes les informations octroyées à l'utilisateur selon la stratégie de contrôle d'accès. Les informations incluent les magasins auxquels l'utilisateur a le droit d'accéder, les centres de distribution de ces magasins et les langues prises en charge par chaque magasin. Voici un exemple de matrice JavaScript créée par un appel à la méthode 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'; - Utilisez les données linguistiques contenues dans la matrice JavaScript, que StoreLanguageBean.getStoreJS(storeName,out) récupère, pour construire la liste déroulante :
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; } }
Résultats
Pour un exemple d'implémentation, reportez-vous au fichier StoreLanguageSelection.jsp disponible dans workspace_dir/WC/SiteAdministration/tools/common.