尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Transliterate coptic text phonetically into english
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Paste Bohairic Coptic and get it back in Latin or Arabic letters, spelled the way it's said in church.
Three readings, one text. Each transliteration runs three Gemini calls in parallel: one at temperature 0 and two sampled at 0.7. lib/merge-readings.ts aligns them word by word and marks only the words they disagree on. The reader taps a mark to choose the version that sounds right.
The jinkim, handled in code. In Latin, the model kept dropping the e that a jinkim stands for, so lib/jinkim.ts writes it into the Coptic before the request is sent (ⲛ̀ⲧⲉ becomes ⲉⲛⲧⲉ, read ente). Arabic skips this step: the marks reach the model untouched, and its instruction writes a jinkim as إ starting a new word.
Measured, not guessed. data/reference.json holds example pairs, which go into the prompt, and held-out pairs, which never do. npm run eval scores every prompt or model change against the held-out set. For Latin, the current setup gets 63% of the held-out lines exactly right and 98.4% of characters. In that run, 4 of its 5 marks landed where the first reading was wrong. Arabic has its own held-out set, 30 pairs taken from the Coptish datastore, and the merged text scores about 90% of characters. That is below the 95% the spec aimed for, and Arabic ships at that level.
Long hymns, bite by bite. A paste of up to 16,000 characters is split into parts of at most 4,000, at a stanza break first, then a line break, then punctuation (lib/split-parts.ts). The reader settles one part and moves on to the next.
Latin or Arabic letters. A switch on the output brings the same Coptic back in Arabic letters, spelled the way Egyptian service books print them.
Free and private. Next.js on Vercel's free tier, gemini-3.5-flash-lite on Gemini's free tier, and no database. The API key stays on the server, and nothing a reader types is stored or logged.
Greco-Bohairic pronunciation, the one used in Coptic Orthodox liturgy, written with plain Latin letters and no accents. The full rules are in lib/prompt.ts. The Arabic spelling follows the Egyptian service books, with its rules in lib/prompt-arabic.ts.
| Coptic | Latin | Example |
|---|---|---|
| ⲏ | ee | ϣⲏⲣⲓ → sheeri |
| ⲱ | o | ⲑⲱⲕ → thok |
| ϧ | kh | ⲉⲧϧⲉⲛ → etkhen |
| ϭ | ch | Ⲡ̀ϭⲟⲓⲥ → Epchois |
| ϫ | j before ⲉ, ⲓ or ⲏ, otherwise g | ϩⲓϫⲉⲛ → hijen, ϯϫⲟⲙ → tigom |
| ⲃ | v, but b at the end of a word | ⲉ̀ⲃⲟⲗ → evol, ⲉⲑⲟⲩⲁⲃ → ethouab |
| ⲭ | k in Coptic words, kh in Greek ones | ⲭⲁ → ka, Ⲡⲓⲭ̀ⲣⲓⲥⲧⲟⲥ → Pikhristos |
| a jinkim on a consonant | an e before it | ⲛ̀ⲧⲉ → ente |
| an overlined name | spelled out in full | Ⲡⲭ̅ⲥ̅ → Pikhristos |
You need Node 20.9 or later and a free Gemini API key from Google AI Studio.
npm install
echo "GEMINI_API_KEY=your-key" > .env.local
npm run dev # http://localhost:3000
npm test # unit tests
npm run eval # scores the held-out pairs with real Gemini calls, so it uses quota
npm run eval -- arabic # the same for the Arabic held-out pairs, also real calls
npm run eval -- three arabic # three Arabic readings, merged, also real calls
npm run extract:arabic # rebuilds data/reference-arabic.json; needs coptish-datastore checked out beside this repo
Found a word spelled wrong? Open an issue with the Coptic, what came back and what you expected.
You can also add it to data/reference.json as a pair: { "coptic": "…", "latin": "…", "split": "heldout" }. Held-out pairs are only used to score changes, so they never leak into the prompt. Mark a pair "example" only when it should teach the model a pattern. Arabic pairs are different: data/reference-arabic.json is generated by npm run extract:arabic, so a hand edit is lost on the next extraction. Put corrections in EXAMPLE_OVERRIDES or EXCLUDED_IDS in scripts/extract-arabic-pairs.ts instead.
Our Coptic heritage, made accessible. Coptish is a project to make Coptic more accessible, so anyone in church can read along, pray along and learn. This transliterator is one part of it.
The code is under the MIT licence. Two things in this repository are not covered by it:
app/fonts/, used with permission, with all rights remaining with its authorspublic/coptish-logo.png and docs/readme/coptish-logo-*.png)