from zope.interface import Interface


class ITranslationServiceTool(Interface):
    """ Utility methods to access the translation machinery
    """

    def translate(*args, **kw):
        """Translate method to access the translation service
           from resticted code like skins.
        """

    def encode(m, input_encoding=None, output_encoding=None, errors='strict'):
        """Encode a give unicode type or string type to string type in encoding
           output_encoding
        """

    def asunicodetype(m, input_encoding=None, errors='strict'):
        """Create type unicode from type string"""

    def ulocalized_time(time, long_format=None, time_only=None, context=None, domain='plonelocales'):
        """Returns localized time."""

    def day_msgid(number, format=''):
        """Returns the msgid which can be passed to the translation service for
           l10n of weekday names. Format is either '', 'a' or 's'.
        """

    def month_msgid(number, format=''):
        """Returns the msgid which can be passed to the translation service for
           l10n of month names. Format is either '' or 'a' (long or abbreviation).
        """

    def month_english(number, format=''):
        """Returns the english name of month by number. Format is either '' or
           'a' (long or abbreviation).
        """

    def weekday_english(number, format=''):
        """Returns the english name of a week by number. Format is either '',
           'a' or 'p'.
        """
