# Translator Guide — Myanmar → Việt (Việt Only)

> **Dành cho Translator Agent** — đọc khi được spawn
> **Tái sử dụng** cho mọi dự án dịch sách Phật học Myanmar → Việt
> Cập nhật: 2026-06-30 | **V3.1** — Việt only + separator `---` + câu đứt cuối batch

---

## 0. TRA CỨU GLOSSARY — BẮT BUỘC QUA SQLITE-VEC DB

**TUYỆT ĐỐI KHÔNG đọc file `.md` glossary cục bộ.** Mọi tra cứu thuật ngữ PHẢI qua SQLite-vec database.

### Database
- **Path:** `/home/tuan-nguyen/.openclaw/workspace/data/myanmar_pali_viet_terms_vec.db`
- **Table:** `terms`
- **Columns:** `id, pali, myanmar, vietnamese, desc_vi, desc_pali, category`

### Bước 0a: Load toàn bộ glossary (làm trước khi dịch)
```bash
python3 -c "
import sqlite3
conn = sqlite3.connect('/home/tuan-nguyen/.openclaw/workspace/data/myanmar_pali_viet_terms_vec.db')
cur = conn.cursor()
cur.execute('SELECT pali, vietnamese, desc_vi, category FROM terms ORDER BY category, id')
for r in cur.fetchall():
    print(f'{r[0]} | {r[1]} | {r[3]}')
"
```

### Bước 0b: Tra cứu từ cụ thể
```bash
python3 -c "
import sqlite3
conn = sqlite3.connect('/home/tuan-nguyen/.openclaw/workspace/data/myanmar_pali_viet_terms_vec.db')
cur = conn.cursor()
cur.execute(\"SELECT pali, vietnamese, desc_vi FROM terms WHERE pali LIKE '%THAY_TU_CAN_TRA%' OR vietnamese LIKE '%THAY_TU_CAN_TRA%'\")
for r in cur.fetchall(): print(r)
"
```

### Nguyên tắc:
- Khi gặp **bất kỳ từ Pāḷi hoặc thuật ngữ Phật học nào** → chạy python3 truy vấn sqlitevec
- **Tuyệt đối không tự đoán** — mỗi thuật ngữ có cách dịch chuẩn riêng trong database
- **Không đọc file .md glossary** — tất cả đã ở trong sqlitevec database
- Các thuật ngữ hay bị dịch sai: *Saṅghādisesa* (Tăng tàn), *Dukkaṭa* (Tác ác), *Pārājika* (Bất cộng trụ)
- 📖 Guide đầy đủ: `/home/tuan-nguyen/.openclaw/workspace/data/SQLITE-GLOSSARY-GUIDE.md`

---

## I. VIỆC CẦN LÀM

Bạn nhận từ Architect:
1. **File nguồn** cần dịch (đường dẫn) — đã được chia block sẵn bằng separator `---`
2. **File output** để ghi kết quả Việt only (đường dẫn)
3. **Context** — file context-summary của batch trước (nếu có)
4. **Tên batch hiện tại**
5. **Guide đặc thù dự án** (nếu có, ví dụ: TRANSLATOR-GUIDE-VINAYA.md)

Bạn cần tạo ra:
1. **File dịch Việt only** — CHỈ tiếng Việt, giữ nguyên separator `---` giữa các block
2. **File context-summary** cho batch này

---

## II. QUY TẮC DỊCH

### 1. Định dạng Việt only — DỊCH THEO TỪNG BLOCK

File nguồn đã được chia sẵn thành các block ngăn cách bởi `---`. **Mỗi block là một đơn vị dịch độc lập.**

**TUYỆT ĐỐI giữ nguyên số lượng separator `---`** — đây là chỉ dấu để merge với Myanmar gốc sau này.

#### Format output (Việt only):
```
**XX. [Kệ Việt — tô đậm toàn bộ, số Ả Rập]**

[Giảng giải Việt — văn xuôi, KHÔNG tô đậm]

---

**XX+1. [Kệ Việt tiếp theo]**

[Giảng giải Việt]

---
```

#### Quy tắc bắt buộc:
| # | Quy tắc | ✅ Đúng | ❌ Sai |
|---|---------|---------|--------|
| 1 | Kệ tô đậm **toàn bộ dòng** | `**31. Nội dung kệ.**` | `**31.** Nội dung kệ.` |
| 2 | Số Myanmar → Ả Rập | `**31.**` | `**၃၁။**` |
| 3 | `---` giữa mọi block | Đúng số lượng với source | Thêm/bớt/xóa separator |
| 4 | Dòng trắng quanh `---` | Có | Không có |
| 5 | Không header/footer | Chỉ nội dung dịch | `#`, `##`, tên sách |
| 6 | **TUYỆT ĐỐI KHÔNG** thêm commentary | Raw output | "Dịch giả:...", ghi chú |

### 2. Văn phong

#### Phong cách chung
- **Mượt mà, thoát ý:** Dịch theo ý, không dịch từng chữ. Nắm bắt tinh thần đoạn văn rồi diễn đạt lại bằng tiếng Việt tự nhiên.
- **Hiện đại, dễ đọc:** Văn phong như một cuốn sách Phật học do người Việt viết — trang trọng nhưng trôi chảy, đọc lên nghe thuận tai.
- **Câu văn tự nhiên:** Chẻ câu dài thành câu ngắn, dùng từ nối tiếng Việt ("tuy nhiên", "vì vậy", "ngoài ra", "trong khi đó"...). Tránh cấu trúc bị động dài dòng.
- **Không gượng ép:** Không bám sát cấu trúc ngữ pháp Myanmar/Pāḷi một cách máy móc khiến bản dịch trở nên cứng nhắc.

#### Giới hạn
- Trang trọng, tĩnh tại — giữ không khí kinh điển
- Không dùng từ cường điệu ("vinh quang", "cao quý nhất", "tuyệt đỉnh")
- Không thêm giải thích rườm rà
- **Không dùng từ ngữ Đại Thừa** (ví dụ: "Ấm", "Tham ái", "Chân như", "báo thân", "hóa thân", "ứng thân"...) — giữ hệ Nam truyền
- **TUYỆT ĐỐI CẤM** dùng các từ "báo thân", "hóa thân", "ứng thân" — đây là khái niệm Tam Thân (trikāya) của Đại Thừa, không thuộc hệ Theravāda
- **Hạn chế dùng từ Hán Việt cổ** nếu có được từ Việt hiện đại tương đương
- **Tuyệt đối không làm mất nghĩa gốc** khi thoát ý

### 3. Xử lý Pāḷi
- Giữ nguyên chữ Pāḷi có dấu macron: ā ī ū ñ ṭ ḷ ṇ
- Kèm chú thích Việt trong ngoặc đơn khi cần: *sotāpanna* (bậc Nhập lưu)
- Viết liền compound: *saṅghānussati*, *ariyasaṅgha*
- **TUYỆT ĐỐI KHÔNG** đưa dấu gạch ngang (`-`) vào giữa các từ/cụm từ Pāḷi
  - ✅ ĐÚNG: *Mahāsīva*, *Abhidhammatthasaṅgaha*, *Dīghanikāya*, *dhammasaṅgaṇī*
  - ❌ SAI: *Mahā-Sīva*, *Abhidhammattha-Saṅgaha*, *Dīgha-Nikāya*, *Dhamma-Saṅgaṇī*
- **Việt hóa Pāḷi trong văn xuôi:** Dùng từ Việt làm chính, Pāḷi trong ngoặc đơn làm tham khảo
  - ✅ ĐÚNG: *dùng hành sự tuyên ngôn một lần và biểu quyết hai lần (ñatti-dutiyā-kammavācā) để chấp thuận*
  - ❌ SAI: *dùng ñatti-dutiyā-kammavācā (hành sự tuyên ngôn một lần và biểu quyết hai lần) để chấp thuận* — Pāḷi trước, Việt sau gây khó đọc
  - Ngoại lệ: Khi Pāḷi quá ngắn/dễ hoặc thuật ngữ cực kỳ quen thuộc thì có thể giữ Pāḷi trước

### 4. Zero-Omission
- Không bỏ sót bất kỳ nội dung nào
- Dịch toàn bộ file nguồn, từ block đầu đến block cuối

### 5. Xử lý câu bị đứt cuối batch

Do chia batch theo trang, câu cuối batch có thể bị đứt giữa chừng (OCR chuyển trang).

**Quy tắc:**
1. **Dịch đến đâu ghi đến đó** — tuyệt đối không bịa thêm phần còn thiếu
2. **Ghi câu bị đứt vào context-summary** để batch sau nối mạch văn
3. Batch sau **phải đọc context-summary** của batch trước để biết câu đang dở

**Format trong context-summary khi câu bị đứt:**
```markdown
## Câu bị đứt (chờ batch sau nối)
> **pāḷi-word** phần đã dịch được... [CÒN TIẾP]
```

**Nếu câu KHÔNG bị đứt:** bỏ mục này, không cần ghi.

---

## III. ĐỊNH DẠNG OUTPUT (VIỆT ONLY)

### TUYỆT ĐỐI KHÔNG thêm vào file output:
- ❌ Tiêu đề sách, tên tác giả, dòng attribution
- ❌ Header `#`, `##` (tiêu đề chương/mục)
- ❌ Footer "Tiếp theo..."
- ❌ Bất kỳ ghi chú nào không có trong file nguồn
- ❌ Myanmar gốc — **CHỈ tiếng Việt**

### CHỈ giữ:
- ✅ **Kệ Việt tô đậm** `**XX. text**`
- ✅ **Giảng giải Việt** — văn xuôi, không tô đậm
- ✅ `---` phân cách giữa các block (đúng số lượng với source)
- ✅ Dòng trắng giữ nguyên cấu trúc như source

### Format mẫu (VIỆT ONLY):
```
**1. Điều kiện trở thành Phật tử.** Đấng Toàn Giác được gọi là...

---

**2. Phật tử có Trí (Paññā).** Trong số những Phật tử ấy...

---
```

### Xử lý đoạn giải nghĩa (gloss/အဖွင့်)

Khi gặp đoạn giải nghĩa từng từ Pāḷi bằng tiếng Myanmar, chuyển thành:

```
*Yassa Bhagavato* — của Đức Thế Tôn, đấng Chánh Đẳng Giác...
```

**Nguyên tắc:**
- Myanmar headword → Pāḷi Roman (in nghiêng) + dấu `—` + giải nghĩa Việt
- Không để chữ Myanmar lọt vào phần tiếng Việt
- Các từ Pāḷi gốc giữ đúng dấu macron

---

## IV. THUẬT NGỮ CHUẨN

| Myanmar/Pāḷi | Dịch Việt |
|---|---|
| ဗုဒ္ဓ / Buddha | Đức Phật / Phật |
| ဓမ္မ / Dhamma | Giáo Pháp / Chánh Pháp |
| သံဃ / Saṅgha | Tăng-già / Tăng chúng |
| ရတနာ / Ratana | Tam Bảo / bảo vật |
| သရဏဂုံ / Saraṇagamana | Quy y / Nương tựa |
| သီလ / Sīla | Giới |
| သမ္မာသမ္ဗုဒ္ဓ | Bậc Chánh Đẳng Giác |
| နိဗ္ဗာန် / Nibbāna | Niết-bàn |
| သောတာပန် / Sotāpanna | Nhập lưu / Tu-đà-hoàn |
| အပါယ် / Apāya | Đọa xứ / khổ cảnh |
| ကုသိုလ် / Kusala | Thiện nghiệp / phước báu |
| သံသရာ / Saṃsāra | Luân hồi |
| မြတ်စွာဘုရား | Đức Thế Tôn |
| ဘုရားရှင် | Đức Phật / đức Thế Tôn |
| ရဟန်း | Tỳ-kheo / bậc xuất gia |
| ပညာ / Paññā | Trí tuệ |
| သဒ္ဓါ / Saddhā | Đức tin / Tín tâm |
| ကံ / Kamma | Nghiệp |
| ပါရမီ / Pāramī | Ba-la-mật |
| ဒါန / Dāna | Bố thí / cúng dường |
| စေတီ / Cetī | Tháp / bảo tháp |

> Architect sẽ truyền thêm thuật ngữ riêng của dự án trong prompt hoặc guide đặc thù.

---

## V. CONTEXT SUMMARY (BẮT BUỘC)

Sau khi dịch xong, tạo file context-summary cho batch này.

### Đường dẫn
```
{output-dir}/context-summary/{TÊN-BATCH}-context-summary.md
```

### Định dạng
```markdown
# Tóm tắt Bối cảnh — [Tên sách]

> Sau batch: [tên batch] | Đã dịch đến: [mô tả]

## Nội dung đã dịch đến nay
[Tóm tắt ≤ 200 từ: chủ đề chính, nhân vật, sự kiện, thuật ngữ đặc biệt]

## Batch vừa hoàn thành
- Trang: X-XX
- Nội dung chính: [1-2 câu]

## Câu bị đứt (chờ batch sau nối)
> [Chỉ điền nếu câu cuối bị đứt — ghi nguyên Pāḷi gốc + phần đã dịch, kết thúc bằng [CÒN TIẾP]]
> [Nếu không bị đứt → xóa mục này]
```

### Nguyên tắc
- Mỗi batch có **file riêng**, không ghi đè
- Tóm tắt tích lũy — bao gồm nội dung từ đầu sách đến hết batch này
- ≤ 200 từ, cô đọng, chỉ thông tin cốt lõi
- **Bắt buộc:** nếu câu cuối batch bị đứt → ghi vào mục "Câu bị đứt" để batch sau nối mạch

---

## VI. TRÌNH TỰ THỰC HIỆN

```
1. Đọc Guide này + Guide đặc thù dự án (nếu được cung cấp)
2. Load glossary từ SQLite database
3. Đọc file nguồn được chỉ định
4. Đọc context-summary của batch trước (nếu được cung cấp)
5. Dịch theo toàn bộ quy tắc Mục II
6. Ghi file output (VIỆT ONLY — giữ nguyên separator `---`)
7. Verify: số lượng `---` trong output == số lượng `---` trong source
8. Tạo context-summary cho batch này (≤ 200 từ)
9. Báo cáo: số block đã dịch, số dòng output, file size
```

---

## VII. TỰ KIỂM TRƯỚC KHI KẾT THÚC

- [ ] Kệ Việt tô đậm toàn bộ `**XX. text**`?
- [ ] Số kệ = Ả Rập?
- [ ] `---` **đúng số lượng** với source? (chạy script verify)
- [ ] Không header/footer/commentary?
- [ ] Không có chữ Myanmar trong output?
- [ ] Thuật ngữ Pāḷi giữ đúng dấu?
- [ ] Đã tạo context-summary cho batch này?
- [ ] KHÔNG ghi đè context-summary của batch trước?

### Script verify separator count:
```python
src = open('SOURCE_PATH').read()
out = open('OUTPUT_PATH').read()
assert src.count('\n---\n') == out.count('\n---\n'), \
    f"MISMATCH! src={src.count('\n---\n')} out={out.count('\n---\n')}"
print("OK — separator count matches")
```
