OPEN SOURCE
software/scripts/translate_direct.py
このサイトで読み、必要なファイルを保存できます。
日常訳はAIを用いて作成された翻訳です。人間の聖書学・原語の専門家による全訳の検証は確認されていません。既存の翻訳や原語資料と照らし合わせてお読みください。
1"""Direct translation script - outputs verses for Claude to translate."""23import json4from pathlib import Path56from src.data.loader import DataLoader7from src.context.builder import ContextBuilder8from src.context.glossary import GlossaryManager9from src.pipeline.prompt import PromptBuilder10from src.models.verse import VerseReference111213def build_translation_request(book: str, chapter: int, verse: int) -> dict:14"""Build a translation request with full context."""15data_dir = Path("data")16loader = DataLoader(data_dir)17glossary = GlossaryManager(loader.load_glossary())18context_builder = ContextBuilder(loader, glossary)19prompt_builder = PromptBuilder(glossary)2021ref = VerseReference(book=book, chapter=chapter, verse=verse)22context = context_builder.build_context(ref)2324return {25"reference": f"{book}:{chapter}:{verse}",26"greek": context.target_verse.greek_text,27"kjv": context.target_verse.english_kjv,28"japanese_ref": context.target_verse.japanese_taisho,29"glossary_terms": [30{"original": t.original, "japanese": t.japanese}31for t in context.glossary_terms32],33"chapter_summary": context.chapter_summary.summary if context.chapter_summary else None,34"preceding": [35{"verse": v.reference.verse, "text": v.english_kjv}36for v in context.preceding_verses37],38"following": [39{"verse": v.reference.verse, "text": v.english_kjv}40for v in context.following_verses41],42}434445def get_chapter_verses(book: str, chapter: int) -> list[dict]:46"""Get all verses in a chapter with context."""47data_dir = Path("data")48loader = DataLoader(data_dir)49verses = loader.load_chapter_verses(book, chapter)5051requests = []52for verse in verses:53req = build_translation_request(book, chapter, verse.reference.verse)54requests.append(req)5556return requests575859if __name__ == "__main__":60import sys6162book = sys.argv[1] if len(sys.argv) > 1 else "john"63chapter = int(sys.argv[2]) if len(sys.argv) > 2 else 16465verses = get_chapter_verses(book, chapter)66print(json.dumps(verses, ensure_ascii=False, indent=2))67