def to_currency(self, val, currency='<STR_LIT>', cents=True, separator='<STR_LIT:U+002C>',<EOL>adjective=False):
left, right, is_negative = parse_currency_parts(val)<EOL>try:<EOL><INDENT>cr1, cr2 = self.CURRENCY_FORMS[currency]<EOL><DEDENT>except KeyError:<EOL><INDENT>raise NotImplementedError(<EOL>'<STR_LIT>' %<EOL>(currency, self.__class__.__name__))<EOL><DEDENT>if adjective and currency in self.CURRENCY_ADJECTIVES:<EOL><INDENT>cr1 = prefix_currency(<EOL>self.CURRENCY_ADJECTIVES[currency],<EOL>cr1<EOL>)<EOL><DEDENT>minus_str = "<STR_LIT>" % self.negword if is_negative else "<STR_LIT>"<EOL>cents_str = self._cents_verbose(right, currency)if cents else self._cents_terse(right, currency)<EOL>return u'<STR_LIT>' % (<EOL>minus_str,<EOL>self.to_cardinal(left, feminine=cr1[-<NUM_LIT:1>]),<EOL>self.pluralize(left, cr1),<EOL>separator,<EOL>cents_str,<EOL>self.pluralize(right, cr2)<EOL>)<EOL>
Args:
    val: Numeric value
    currency (str): Currency code
    cents (bool): Verbose cents
    separator (str): Cent separator
    adjective (bool): Prefix currency name with adjective
Returns:
    str: Formatted string