(
doc_lines: list[str],
en_doc_lines: list[str],
lang_code: str,
auto_fix: bool,
path: str,
)
| 674 | |
| 675 | |
| 676 | def check_translation( |
| 677 | doc_lines: list[str], |
| 678 | en_doc_lines: list[str], |
| 679 | lang_code: str, |
| 680 | auto_fix: bool, |
| 681 | path: str, |
| 682 | ) -> list[str]: |
| 683 | # Fix code includes |
| 684 | en_code_includes = extract_code_includes(en_doc_lines) |
| 685 | doc_lines_with_placeholders = replace_code_includes_with_placeholders(doc_lines) |
| 686 | fixed_doc_lines = replace_placeholders_with_code_includes( |
| 687 | doc_lines_with_placeholders, en_code_includes |
| 688 | ) |
| 689 | if auto_fix and (fixed_doc_lines != doc_lines): |
| 690 | print(f"Fixing code includes in: {path}") |
| 691 | doc_lines = fixed_doc_lines |
| 692 | |
| 693 | # Fix permalinks |
| 694 | en_permalinks = extract_header_permalinks(en_doc_lines) |
| 695 | doc_permalinks = extract_header_permalinks(doc_lines) |
| 696 | fixed_doc_lines = replace_header_permalinks( |
| 697 | doc_lines, doc_permalinks, en_permalinks |
| 698 | ) |
| 699 | if auto_fix and (fixed_doc_lines != doc_lines): |
| 700 | print(f"Fixing header permalinks in: {path}") |
| 701 | doc_lines = fixed_doc_lines |
| 702 | |
| 703 | # Fix markdown links |
| 704 | en_markdown_links = extract_markdown_links(en_doc_lines) |
| 705 | doc_markdown_links = extract_markdown_links(doc_lines) |
| 706 | fixed_doc_lines = replace_markdown_links( |
| 707 | doc_lines, doc_markdown_links, en_markdown_links, lang_code |
| 708 | ) |
| 709 | if auto_fix and (fixed_doc_lines != doc_lines): |
| 710 | print(f"Fixing markdown links in: {path}") |
| 711 | doc_lines = fixed_doc_lines |
| 712 | |
| 713 | # Fix HTML links |
| 714 | en_html_links = extract_html_links(en_doc_lines) |
| 715 | doc_html_links = extract_html_links(doc_lines) |
| 716 | fixed_doc_lines = replace_html_links( |
| 717 | doc_lines, doc_html_links, en_html_links, lang_code |
| 718 | ) |
| 719 | if auto_fix and (fixed_doc_lines != doc_lines): |
| 720 | print(f"Fixing HTML links in: {path}") |
| 721 | doc_lines = fixed_doc_lines |
| 722 | |
| 723 | # Fix multiline code blocks |
| 724 | en_code_blocks = extract_multiline_code_blocks(en_doc_lines) |
| 725 | doc_code_blocks = extract_multiline_code_blocks(doc_lines) |
| 726 | fixed_doc_lines = replace_multiline_code_blocks_in_text( |
| 727 | doc_lines, doc_code_blocks, en_code_blocks |
| 728 | ) |
| 729 | if auto_fix and (fixed_doc_lines != doc_lines): |
| 730 | print(f"Fixing multiline code blocks in: {path}") |
| 731 | doc_lines = fixed_doc_lines |
| 732 | |
| 733 | return doc_lines |
no test coverage detected