mdbook-transcheck 0.1.3

Checker for translated mdbook
mdbook-transcheck-0.1.3 is not a library.

mdbook-transcheck

Checker for translated mdbook

Actions Status Crates.io

Install

$ cargo install mdbook-transcheck

Usage

Check

The following command checks whether src and tgt are synchronized.

$ mdbook-transcheck src tgt

src is the source directory of original mdbook. tgt is the source directory of translated mdbook.

Fix

The following command applies the differences between src and tgt to tgt.

$ mdbook-transcheck --fix src tgt

Configuration

The configuration file is transcheck.toml, which is put at the repository root.

enable_code_comment_tweak = true
code_comment_header = "# "
Key Value Default Description
enable_code_comment_tweak true, false false Match code comment without code_comment_header
code_comment_header [String] "# "
similar_threshold [Float] 0.5 If the ratio which the original and translated lines are matched exceeds similar_threshold, the line is judged as modified.

Example

$ mdbook-transcheck ./testcase/original ./testcase/translated

Error: target path is not found
    source path: ./testcase/original/missing_file.md
    target path: ./testcase/translated/missing_file.md


Error: source line has been modified
 source --> ./testcase/original/mismatch_lines.md:5
  |
5 | This is an orange.
  |            ^^ ^^
  |

 target --> ./testcase/translated/mismatch_lines.md:11
   |
11 | This is an apple.
   |             ^^^
   |


Error: lines has been inserted to the source file
 source --> ./testcase/original/mismatch_lines.md:2
  |
2 | Orange
  |
  = hint: The lines should be inserted at ./testcase/translated/mismatch_lines.md:2


Error: lines has been removed from the source file
 target --> ./testcase/translated/mismatch_lines.md:4
  |
4 | Lemon
  |

Markdown rule

The translated markdown should follow some rules.

  • Keep original lines
  • Comment out original lines by <!-- and -->

Simple example

  • original
Apple
Orange
Peach
  • translated
<!--
Apple
Orange
Peach
-->
りんご
オレンジ
桃

The following is NG because <!-- Apple and Peach --> are not matched with original lines.

<!-- Apple
Orange
Peach -->
りんご
オレンジ
桃

Code block

  • original
```rust
// comment
let a = b; // comment
```
  • translated
```rust
// comment
// コメント
let a = b; // comment
           // コメント
```

You can use # to hide the original comment. enable_code_comment_tweak should be true, and code_comment_header should be # .

```rust
# // comment
// コメント
let a = b; // comment
           // コメント
```

You can use # // to hide the original code and comment. enable_code_comment_tweak should be true, and code_comment_header should be # // .

```rust
# // // comment
// コメント
# // let a = b; // comment
let a = b; // コメント
```