Initial toolkit: scripts, references, skills, and term database

This commit is contained in:
iacore
2026-07-10 21:01:02 +08:00
commit ac9e6e3d1f
51 changed files with 5192 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env python3
"""Generate a bilingual .dj file from source (Chinese) and target (English) .dj files.
Usage:
gen-bilingual.py source.dj target.dj > bilingual.dj
Output format: source line, target line, blank line, repeated. Paragraph breaks
are preserved: blank lines in the input produce blank lines in the output.
"""
import sys
from pathlib import Path
def main():
if len(sys.argv) != 3:
print(__doc__, file=sys.stderr)
sys.exit(1)
src_path = Path(sys.argv[1])
tgt_path = Path(sys.argv[2])
if not src_path.exists():
print(f"Source file not found: {src_path}", file=sys.stderr)
sys.exit(1)
if not tgt_path.exists():
print(f"Target file not found: {tgt_path}", file=sys.stderr)
sys.exit(1)
src_lines = src_path.read_text(encoding="utf-8").splitlines()
tgt_lines = tgt_path.read_text(encoding="utf-8").splitlines()
if len(src_lines) != len(tgt_lines):
print(
f"Line count mismatch: source={len(src_lines)} target={len(tgt_lines)}",
file=sys.stderr,
)
sys.exit(1)
out = []
for s, t in zip(src_lines, tgt_lines):
if s == "":
out.append("")
else:
out.append(s)
out.append(t)
out.append("")
# Ensure the output always ends with a single trailing blank line to match
# the project convention: source, target, blank, source, target, blank...
if out and out[-1] != "":
out.append("")
sys.stdout.write("\n".join(out))
if out:
sys.stdout.write("\n")
if __name__ == "__main__":
main()