SOURCE CODE: Uize.Services.Loc

VIEW REFERENCE

/*______________
|       ______  |   U I Z E    J A V A S C R I P T    F R A M E W O R K
|     /      /  |   ---------------------------------------------------
|    /    O /   |    MODULE : Uize.Services.Loc Class
|   /    / /    |
|  /    / /  /| |    ONLINE : http://uize.com
| /____/ /__/_| | COPYRIGHT : (c)2013-2014 UIZE
|          /___ |   LICENSE : Available under MIT License or GNU General Public License
|_______________|             http://uize.com/license.html
*/

/* Module Meta Data
  type: Class
  importance: 2
  codeCompleteness: 100
  docCompleteness: 2
*/

/*?
  Introduction
    The =Uize.Services.Loc= module defines a class for a project localization service.

    *DEVELOPERS:* `Chris van Rensburg`
*/

Uize.module ({
  name:'Uize.Services.Loc',
  superclass:'Uize.Service',
  builder:function (_superclass) {
    'use strict';

    var
      /*** Variables for Scruncher Optimization ***/
        _false = false,
        _true = true
    ;

    return _superclass.subclass ({
      serviceMethods:{
        'import':{
          async:_true
          /*?
            Instance Methods
              import
                Imports language specific resource strings into the project, creating language specific resource files in the appropriate places, as needed.

                NOTES
                - see the companion =export= service method
                - this service method is asynchronous
          */
        },

        importJobs:{
          async:_true
          /*?
            Instance Methods
              importJobs
                Imports a completed `translation job` into the `centralized resources` of a project.

                NOTES
                - see the companion =exportJobs= service method
                - this service method is asynchronous
          */
        },

        'export':{
          async:_true
          /*?
            Instance Methods
              export
                Exports resource strings from the project, gathering resource strings from resource files located through the project's codebase.

                This method also performs pseudo-localization for all of a project's resource strings, generating strings for a pseudo-locale that can then be imported into the project using the =import= method.

                NOTES
                - see the companion =import= service method
                - this service method is asynchronous
          */
        },

        exportJobs:{
          async:_true
          /*?
            Instance Methods
              exportJobs
                Exports a `translation job` from the `centralized resources` of a project.

                NOTES
                - see the companion =importJobs= service method
                - this service method is asynchronous
          */
        },

        extract:{
          async:_true
          /*?
            Instance Methods
              extract
                Extracts resource strings from a project's source code files so that they can be organized into resource files for the project.

                Depending on the type of project, this service method may have no implementation and may, therefore, not perform any action. It may not be feasible for all types of projects to support scripted extraction of strings from the source code and it may, therefore, be the developers' responsibility to manually enter resource strings into resource files for the project.

                NOTES
                - this service method is asynchronous
          */
        },

        metrics:{
          async:_true
          /*?
            Instance Methods
              metrics
                Produces a report containing key metrics about a project's resource strings, such as number of individual resource files, estimated word count, estimated character count.

                NOTES
                - this service method is asynchronous
          */
        },

        usage:{
          async:_true
          /*?
            Instance Methods
              usage
                Produces a usage report for a project's resource strings, containing detailed information on where each resource string is referenced in the project's code, along with a summary of the unreferenced resource strings.

                NOTES
                - this service method is asynchronous
          */
        },

        pseudoLocalize:{
          async:_true
          /*?
            Instance Methods
              pseudoLocalize
                Performs pseudo-localization on the primary language resource files of the project, modifying the resource files for the primary language.

                NOTES
                - this service method is asynchronous
          */
        },

        init:{
          async:_true
          /*?
            Instance Methods
              init
                Initializes the localization service.

                NOTES
                - this service method is asynchronous
          */
        }
      }
    });
  }
});