Name

global.AutoResolutionLanguageChoiceListBuilder

Description

IAR Choice list builder for supported languages

Script

var AutoResolutionLanguageChoiceListBuilder = Class.create();
AutoResolutionLanguageChoiceListBuilder.prototype = {

  //Tier-1 languages
  ENGLISH: {
      name: 'English',
      id: 'en'
  },
  FRENCH: {
      name: 'French',
      id: 'fr',
      plugin: 'com.snc.i18n.french'
  },
  GERMAN: {
      name: 'German',
      id: 'de',
      plugin: 'com.snc.i18n.german'
  },
  JAPANESE: {
      name: 'Japanese',
      id: 'ja',
      plugin: 'com.snc.i18n.japanese'
  },
  SPANISH: {
      name: 'Spanish',
      id: 'es',
      plugin: 'com.snc.i18n.spanish'
  },
  PORTUGUESE: { 
      name: 'Portuguese',
      id: 'pt',
      plugin: 'com.snc.i18n.portuguese'		
  },
  DUTCH: {
      name: 'Dutch',
      id: 'nl',
      plugin: 'com.snc.i18n.dutch'		
  },
  ITALIAN: {
      name: 'Italian',
      id: 'it',
      plugin: 'com.snc.i18n.italian'
  },

  initialize: function() {
      this.supportedNonEnglishLanguages = [this.FRENCH, this.GERMAN, this.JAPANESE, this.SPANISH, this.PORTUGUESE, this.DUTCH, this.ITALIAN];
  },

  getSupportedLanguages: function() {
      var activeLanguages = this._getActiveLanguageList();
      var list = new GlideChoiceList();
      for (i = 0; i < activeLanguages.length; i++)
          list.add(new GlideChoice(activeLanguages[i].id, activeLanguages[i].name));
      return list;
  },
  getSupportedLanguagesForUIB: function() {
      try {
          var activeLanguages = this._getActiveLanguageList();
          var uibList = [];
          activeLanguages.forEach(function(language) {
              uibList.push({
                  'id': language.id,
                  'label': language.name
              });
          });
          return uibList;
      } catch (e) {
          return [];
      }
  },

  _getActiveLanguageList: function() {
      var activeLanguages = [];
      // By default, we add the english language to the list of active languages
      activeLanguages.push(this.ENGLISH);

      var multiLanguageSupportEnabled = gs.getProperty(
          AutoResolutionConstants.AUTO_RESOLUTION_ENABLE_MULTI_LANGUAGE_SUPPORT_PROPERTY, 'false') === 'true';
      if (!multiLanguageSupportEnabled)
          return activeLanguages;

      for (var i = 0; i < this.supportedNonEnglishLanguages.length; i++) {
          if (this._isLanguagePackActive(this.supportedNonEnglishLanguages[i].plugin))
              activeLanguages.push(this.supportedNonEnglishLanguages[i]);
      }

      return activeLanguages;
  },

  _isLanguagePackActive: function(pluginId) {
      return GlidePluginManager.isActive(pluginId);
  },

  type: 'AutoResolutionLanguageChoiceListBuilder'
};

Sys ID

6aa89d5573722010f14a063f34f6a752

Offical Documentation

Official Docs: