24 lines
589 B
Python
24 lines
589 B
Python
import json
|
|
|
|
from .utils import extract_messages_from_docfield
|
|
|
|
|
|
def extract(fileobj, *args, **kwargs):
|
|
"""
|
|
Extract messages from Custom Field fixtures. To be used by babel extractor.
|
|
|
|
:param fileobj: the file-like object the messages should be extracted from
|
|
:rtype: `iterator`
|
|
"""
|
|
data = json.load(fileobj)
|
|
|
|
if not isinstance(data, list):
|
|
return
|
|
|
|
messages = []
|
|
|
|
for custom_field in data:
|
|
doctype = custom_field.get("dt")
|
|
messages.extend(extract_messages_from_docfield(doctype, custom_field))
|
|
|
|
yield from ((None, "_", message, [comment]) for message, comment in messages)
|