def extract_angular(fileobj, keywords, comment_tags, options):
if keywords:<EOL><INDENT>logging.debug('<STR_LIT>')<EOL><DEDENT>if comment_tags:<EOL><INDENT>logging.debug('<STR_LIT>')<EOL><DEDENT>if options:<EOL><INDENT>logging.debug('<STR_LIT>')<EOL><DEDENT>parser = AngularGettextHTMLParser()<EOL>for line in fileobj:<EOL><INDENT>if not isinstance(line, str):<EOL><INDENT>line = line.decode(locale.getpreferredencoding())<EOL><DEDENT>parser.feed(line)<EOL><DEDENT>for string in parser.strings:<EOL><INDENT>yield(string)<EOL><DEDENT>
Extract messages from angular template (HTML) files that use the
    angular-gettext translate directive as per
    https://angular-gettext.rocketeer.be/ .

    :param fileobj: the file-like object the messages should be extracted
                    from
    :param keywords: This is a standard parameter so it is accepted but ignored.

    :param comment_tags: This is a standard parameter so it is accepted but
                        ignored.
    :param options: Another standard parameter that is accepted but ignored.
    :return: an iterator over ``(lineno, funcname, message, comments)``
             tuples
    :rtype: ``iterator``

    This particular extractor is quite simple because it is intended to only
    deal with angular templates which do not need comments, or the more
    complicated forms of translations.

    A later version will address pluralization.