尚未检测到更新。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)