2017-03-15 8 views
0

SuiteCommerceのAdvance Visionリリースでは、デフォルトでマルチ言語を設定する動作が、セットアップ - >設定 - >マルチドメインタブ - >ホストの下に複数のドメインを追加することです。NetSuiteのSuiteCommerce Advance:単一ドメイン(ホストなし)で複数言語をカスタマイズできますか?

これをセットアップすると、あなたのウェブストアにはそのドメインとドメインと言語の関連付けがあります。すでにこの機能を実装しています。

しかし、SCAはまた、自動的にそう

以下
We did this already-->(With multiple domain) 
https://www.en.scasite.com/ 
https://www.fr.scasite.com/ 


We want below setup--> 

https://www.scasite.com/?lang=en_US 
https://www.scasite.com/?lang=fr_FR 

のような単一のドメインをwithing言語を変更します「LANG」パラメータで設定多言語への機能を持っている、いずれかは私たちが言語のparamを渡すことができますどのようなアイデアを持つことができますURL?

答えて

1

はい、あなたはこの機能を持っていないので、すぐにSCAを使用できますが、はい、あなたはURLに 'lang'パラメータを送信して言語を変更することができます。

を使用すると、SCAビジョンのリリースをudingしている場合は、「LANG」のparamすなわちwww.domain.com/lang=it_ITなど

を渡すには、セットアップタブ

下の設定で任意の言語のホストを追加していない覚えておいてくださいこれを行うには、カスタムモジュール内のホストセレクタファイルを上書き

、あなたはグローバルな視点の下に2つのファイル

1.Modules/custom/[email protected]/JavaScript/GlobalViews.HostSelector.View.jsの下に作成する必要があります &の下にコードを貼り付けてくださいsetLanguage:関数(e)の{}のgetContext()内のコード以下

, setLanguage: function (e) 
    { 
       var language_code = jQuery(e.target).val() 
      , selected_language = _.find(SC.ENVIRONMENT.availableLanguages, function (language) 
       { 
        return language.locale === language_code; 

       }); 

     // We use the param **"cur"** to pass this to the ssp environment 
     var current_search = Utils.parseUrlOptions(window.location.search); 

     // if we are in a facet result we will remove all facets and navigate to the default search 
     // TODO REVIEW THIS 
     if (window.location.hash !== '' && _.values(SC._applications)[0].getLayout().currentView instanceof BrowseView) 
     { 
      window.location.hash = Configuration.defaultSearchUrl || ''; 
     } 
     current_search.lang = selected_language.locale; 

     window.location.search = _.reduce(current_search, function (memo, val, name) 
     { 
      return val ? memo + name + '=' + val + '&' : memo; 
     }, '?'); 

    } 

使用は、ビューにコードの下

var available_languages = _.map(SC.ENVIRONMENT.availableLanguages, function(language) 
     { 
      // @class GlobalViews.CurrencySelector.View.Context.Currency 
      return { 
       // @property {String} code 
       code: language.locale 
       // @property {String} internalId 
      , internalId: language.internalid 
       // @property {String} isDefault 
      , isDefault: language.isdefault 
       // @property {String} symbol 
      , symbol: language.languagename 
       // @property {String} displayName 
      , displayName: language.locale|| language.locale 

      , isSelected: SC.ENVIRONMENT.currentLanguage.locale === language.locale 

      }; 
     }); 

     // @class GlobalViews.CurrencySelector.View.Context 
     return { 
      // @property {Boolean} showCurrencySelector 
      showLanguageSelector: !!(SC.ENVIRONMENT.availableLanguages && SC.ENVIRONMENT.availableLanguages.length > 1) 
      // @property {Array<GlobalViews.CurrencySelector.View.Context.Currency>} availableCurrencies 
     , availableLanguages: available_languages || [] 
      // @property {String} currentCurrencyCode 
      // @property {String} currentCurrencySymbol 
     , currentLanguageSymbol: SC.getSessionInfo('language').languagename 
     }; 
    } 
  • コピー&貼り付けhandlbarするためにいくつかのデータを返します下記のファイルに Modules/custom/[email protected]/Templates/global_views_host_selector.tpl
  • {{#if showLanguageSelector}} 
     
        \t <div class="global-views-currency-selector"> 
     
        \t \t <span class="global-views-host-selector-addon"> 
     
        \t \t \t {{currentLanguageSymbol}} 
     
        \t \t </span> 
     
        \t \t <select data-toggle="currency-selector" class="global-views-currency-selector-select"> 
     
        \t \t \t {{#each availableLanguages}} 
     
        \t \t \t \t <option value="{{code}}" {{#if isSelected}}selected{{/if}}> 
     
        \t \t \t \t \t {{symbol}} 
     
        \t \t \t \t </option> 
     
        \t \t \t {{/each}} 
     
        \t \t </select> 
     
        \t </div> 
     
        {{/if}}

    1. 完了!今すぐ 'lang'パラメータがURLに追加されていることを確認できます

    これについてさらに助けが必要な場合はお知らせください。

    +0

    これはすごく助かります。1つのクエリは、構成からホストを削除する必要がありますか? – Danial

    +0

    はい、設定が完了している場合はドメインを削除する必要があります –

    関連する問題