boxuk/angular-symfony-translation

View on GitHub
src/components/adapter-1x/adapter1x-service.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

goog.provide('boxuk.translation.adapter1x.Service');

/**
 * Adapter for using 2.x API with 1.x.
 *
 * @ngInject
 * @param {boxuk.translation.Translator} Translator
 * @constructor
 */
var TranslatorAdapter1x = function(Translator)
{
    /**
     * @type {boxuk.translation.Translator}
     * @private
     */
    this.Translator_ = Translator;

    /**
     * The default domain used if one is not specified.
     *
     * @private
     * @type {string}
     */
    this.defaultDomain_ = 'messages';

    /**
     * @type {?String}
     */
    this.locale = Translator.locale;
};

/**
 * See:
 * https://github.com/willdurand/BazingaJsTranslationBundle/blob/1.2/Resources/doc/index.md
 *
 * @param {String} key
 * @param {Object=} params
 * @param {String=} domain
 * @return {?String}
 */
TranslatorAdapter1x.prototype.trans = function(key, params, domain)
{
    params = params || {};
    domain = domain || this.defaultDomain_;

    return this.Translator_.get(domain + ':' + key, params);
};

/**
 *
 * @param {String} key
 * @param {Number} count
 * @param {Object=} params
 * @param {String=} domain
 * @return {?String}
 */
TranslatorAdapter1x.prototype.transChoice = function(key, count, params, domain)
{
    params = params || {};
    domain = domain || this.defaultDomain_;

    return this.Translator_.get(
        domain + ':' + key,
        params,
        count
    );
};

/**
 * @type {TranslatorAdapter1x}
 */
boxuk.translation.adapter1x.Service = TranslatorAdapter1x;