def METHOD_NAME(
    tr_doc: Document, i2: int, tr_ids: list[str], orig: Document, par_id: str
) -> None:
    """
    Insert paragraph to the Translation according to the original document.
    If the original contains citations, references are followed to the source,
    and translated source paragraph is used for translations if found.
    :param tr_doc: Current Translation that is to be updated (synchronized)
    :param i2: insert index for the new/modified paragraph
    :param tr_ids: list of reference paragraph ids
    :param orig: original document that the current Translation is based on
    :param par_id: paragraph id in the original
    :return: None
    """
    before_i = tr_doc.find_insert_index(i2, tr_ids)
    # Preserve citations if they exist. Follows cite references
    # to source, and uses translated versions according to tr_doc language.
    # TODO: Paragraph citations are now 'corrected' to always reference the corresponding
    #  language version if such translations exist for the source document. Should this
    #  behaviour be controllable to end user via a document setting? Current behaviour
    #  might not be desirable, eg. if a citation should actually be in the original
    #  source language (one _can_ avoid this by creating another document which has no translations).
    ref_par = orig.get_paragraph(par_id)
    rd = ref_par.get_attr("rd", None)
    rp = ref_par.get_attr("rp", None)
    ra = ref_par.get_attr("ra", None)
    matched_doc, rp = find_lang_matching_cite_source(tr_doc, rd, rp, ra)
    rd = matched_doc.id if matched_doc else None
    if matched_doc and ra:
        # Replace area citation with the translated one if it was
        # from the original and a corresponding translation exists.
        # FIXME: Currently only considers the last area matching the requested ra-attribute in the document!
        #  Breaking on first match is not sufficient, since area names are not guaranteed to be unique.
        area_par = None
        for p in tr_doc.get_paragraphs():
            area_par = p if p.get_attr("ra") == ra else None
        if area_par and (
            isinstance(matched_doc, Translation) and matched_doc.is_original_translation
        ):
            # the citation points to the original, delete it
            tr_doc.delete_paragraph(area_par.id)
        tr_par = DocParagraph.create_area_reference(
            tr_doc,
            area_name=ra,
            r="tr",
            rd=matched_doc.id,
        )
    else:
        tr_par = create_reference(
            tr_doc,
            doc_id=rd if rd else orig.doc_id,
            par_id=rp if rp else par_id,
            r="tr",
            add_rd=ref_par.is_citation_par(),
        )
        add_explicit_area_ids(ref_par, tr_par)
    if tr_par:
        if orig.get_paragraph(par_id).is_setting():
            tr_par.set_attr("settings", "")
        tr_doc.insert_paragraph_obj(
            tr_par,
            insert_before_id=tr_ids[before_i] if before_i < len(tr_ids) else None,
        )