/* Copyright CloudLinux Zug GmbH 2010-2017 All Rights Reserved
 *
 * Licensed under CLOUD LINUX LICENSE AGREEMENT
 * http://cloudlinux.com/docs/LICENSE.TXT
 */

import { Pipe, PipeTransform } from '@angular/core';
import { TranslateLocaleParser } from '../TranslateLocaleParser';

declare var translateDict: any;

@Pipe({name: 't'})
export class TranslateClass implements PipeTransform {
    transform(word: any) {
        let TD = {};
        if (typeof translateDict !== 'undefined') {
            TD = translateDict;
        }
        if (typeof word === 'string') {
            if (TD.hasOwnProperty(word))
                return TD[word];
            else
                return word;
        } else if (typeof word === 'object') {
            let pattern = word[0];
            let translatedWord = pattern;
            if (TD.hasOwnProperty(pattern)) {
                translatedWord = TD[pattern];
                if (typeof translatedWord !== 'string') {
                    translatedWord = pattern;
                }
            }

            let params = word[1];

            let parser = new TranslateLocaleParser();
            return parser.interpolate(translatedWord, params);
        } else {
            return word;
        }
    }
}
