fcf.module({
  name: "fcfManagement:templates/pages/translations/settings-tab.hooks.js",
  dependencies: [],
  module: function(){
    return {
      //
      // void hookBeforeBuild(a_taskInfo)
      // The hook is executed before assembling the template arguments
      //
      // hookBeforeBuild: function(a_taskInfo) {
      // },

      //
      // void hookAfterBuild(a_taskInfo)
      // The hook is executed after assembling the template arguments
      //
      // hookAfterBuild: function(a_taskInfo) {
      // },

      //
      // void hookAfterBuild(a_taskInfo)
      // The hook is executed after building the template's system arguments
      //
      // hookAfterSystemBuild: function(a_taskInfo) {
      // },

      //
      // Object of hooks for programmatically populated arguments
      //
      hooksProgramableArgument: {
        //
        // @result Returns the value of an argument or a Promise object
        //
        defaultLanguage: (a_taskInfo)=>{
          return fcf.application.getSystemVariable('fcf:defaultLanguage');
        },
        byPrefix:        (a_taskInfo)=>{
          return fcf.application.getSystemVariable('fcf:languageIdentification').byPrefix;
        },
        byCookie:        (a_taskInfo)=>{
          return fcf.application.getSystemVariable('fcf:languageIdentification').byCookie;
        },
        byParameter:     (a_taskInfo)=>{
          return fcf.application.getSystemVariable('fcf:languageIdentification').byParameter;
        },
        parameter:       (a_taskInfo)=>{
          return fcf.application.getSystemVariable('fcf:languageIdentification').parameter;
        },
        byHTTP:          (a_taskInfo)=>{
          return fcf.application.getSystemVariable('fcf:languageIdentification').byHTTP;
        },
        languages:        (a_taskInfo)=>{
          return fcf.NTools.languages.getLanguages();
        }
      },

      //
      // Object of the hooks preprocessing of the template arguments
      //
      // hooksBeforeArgument: {
      //   // 
      //   // @result Can return the value of an argument or Promise or undefined
      //   //
      //   "ARG_NAME": function(a_taskInfo) {
      //   }
      // },

      //
      // Object of the hooks postprocessing of the template arguments
      // hooksAfterArgument: {
      //   //
      //   // @result Can return the value of an argument or Promise or undefined
      //   //
      //   "ARG_NAME": function(a_taskInfo) {
      //   }
      // },
    };
  }
});
