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

  1. 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
  2. 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';
    
  3. 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.