1<?php
2/**
3 * Zend Framework (http://framework.zend.com/)
4 *
5 * @link      http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license   http://framework.zend.com/license/new-bsd New BSD License
8 */
9
10namespace Zend\I18n\Translator;
11
12interface TranslatorAwareInterface
13{
14    /**
15     * Sets translator to use in helper
16     *
17     * @param  TranslatorInterface $translator  [optional] translator.
18     *                                           Default is null, which sets no translator.
19     * @param  string              $textDomain  [optional] text domain
20     *                                           Default is null, which skips setTranslatorTextDomain
21     * @return TranslatorAwareInterface
22     */
23    public function setTranslator(TranslatorInterface $translator = null, $textDomain = null);
24
25    /**
26     * Returns translator used in object
27     *
28     * @return TranslatorInterface|null
29     */
30    public function getTranslator();
31
32    /**
33     * Checks if the object has a translator
34     *
35     * @return bool
36     */
37    public function hasTranslator();
38
39    /**
40     * Sets whether translator is enabled and should be used
41     *
42     * @param  bool $enabled [optional] whether translator should be used.
43     *                       Default is true.
44     * @return TranslatorAwareInterface
45     */
46    public function setTranslatorEnabled($enabled = true);
47
48    /**
49     * Returns whether translator is enabled and should be used
50     *
51     * @return bool
52     */
53    public function isTranslatorEnabled();
54
55    /**
56     * Set translation text domain
57     *
58     * @param  string $textDomain
59     * @return TranslatorAwareInterface
60     */
61    public function setTranslatorTextDomain($textDomain = 'default');
62
63    /**
64     * Return the translation text domain
65     *
66     * @return string
67     */
68    public function getTranslatorTextDomain();
69}
70