惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
G
Google Developers Blog
人人都是产品经理
人人都是产品经理
U
Unit 42
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
B
Blog RSS Feed
The Cloudflare Blog
D
Docker
A
About on SuperTechFans
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
月光博客
月光博客
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
博客园_首页
Stack Overflow Blog
Stack Overflow Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
AI Translation Is Great — Until You Hit Tarot Terminology
Jakub · 2026-06-24 · via DEV Community

Jakub

We're building Tarotas, a tarot web app available in five languages: Czech, English, Polish, Slovak, and German. The app has 78 cards, each with its own reading text, and every piece of content needed to sound natural in each language.

AI translation tools handled 80% of the work beautifully. The other 20% nearly derailed us.

Here's what we learned about using AI to translate specialized, culturally loaded content — and the system we built to keep it under control.

The Problem With Direct Translation

Tarot card names aren't just words. They carry centuries of tradition, and each language has its own established vocabulary.

Take "The Hanged Man." In English, the name feels dramatic but familiar to anyone who's picked up a tarot deck. Now translate it directly:

  • Czech: "Oběšenec" (literally "the hanged one") — but the traditional Czech tarot community uses "Viselec"
  • Polish: "Wisielec" — correct, but the connotation shifts depending on context
  • German: "Der Gehängte" — works, but some decks use "Der Gehangene"

A straightforward AI translation picks the literal option every time. It doesn't know which variant the local tarot community actually uses. And when your reader is someone who's been doing tarot readings for years, using the "wrong" name breaks trust instantly.

This pattern repeated across dozens of terms. The suits (Cups, Wands, Swords, Pentacles) each have multiple valid translations. "Reversed" vs. "upright" card positions have established local terms that don't always match the dictionary translation.

Tone Is a Whole Separate Problem

Beyond terminology, each language has its own emotional register for tarot content.

English tarot writing tends to be warm and conversational: "This card invites you to consider..." Czech readers expect something more reflective, almost philosophical. German tarot text often leans precise and structured. Polish sits somewhere in between.

When we ran our English readings through AI translation, the Czech output sounded like a self-help podcast transcript. The German version felt too casual. The Polish was technically correct but emotionally flat.

The issue isn't that AI can't handle tone. It can — but only if you tell it what tone you want. And for niche domains like tarot, you need to actually know what the target tone is before you can prompt for it.

The Glossary-Locked Approach

We solved this with a two-layer system:

Layer 1: A locked glossary. We built a reference table of every tarot-specific term — card names, suit names, positional terms, common phrases — with the "correct" translation for each language. These translations came from existing tarot literature in each language, not from AI suggestions.

When translating content, these terms are non-negotiable. The AI uses the glossary version, no improvisation allowed.

Layer 2: Tone-calibrated prompts. For the flowing text around those locked terms, we wrote per-language style guides. Short descriptions of what the reading should feel like in each language, with a few example sentences showing the right register.

The prompt structure looks roughly like this:

Translate the following tarot reading into Czech.

Use these exact terms (do not paraphrase):
- The Hanged Man = Viselec
- Reversed = Převrácená
- Cups = Poháry
[... full glossary ...]

Tone: Reflective, calm, slightly poetic. 
Avoid self-help language. 
Think "quiet conversation," not "motivational speech."

Text to translate:
[content]

This gave us consistent, natural-sounding output. The locked terms prevented the AI from freelancing on established vocabulary, and the tone guide kept each language feeling like it was written by someone who actually speaks it.

What We'd Do Differently

Start with the glossary, not the content. We initially tried translating everything first and fixing terms after. This was backwards. Building the glossary first would have saved a full round of revisions.

Get native speakers for tone calibration, not translation. We didn't need native speakers to translate 78 card readings. We needed them for 30 minutes each to describe what good tarot writing sounds like in their language. That input shaped the prompts that did the actual work.

Don't trust AI confidence on niche terms. AI will translate "Pentacles" into Czech without hesitation, and it'll pick a valid word — just not necessarily the one Czech tarot readers expect. Domain-specific vocabulary needs human verification, even if it's just spot-checking a glossary.

The Takeaway

AI translation is excellent for volume. Five languages across 78 cards would have been wildly expensive and slow with traditional translation. But specialized content needs guardrails.

A glossary locks down the terms that matter. Tone prompts shape the emotional register. And a few hours of native-speaker input prevents the kind of subtle wrongness that no amount of prompt tweaking can fix.

The result is Tarotas — a tarot app where the Czech version sounds Czech, the Polish version sounds Polish, and none of them sound like they were run through Google Translate.


We're building a portfolio of small web products at Inithouse. Tarotas is one of them — a free tarot reading app in five languages. Check it out at tarotas.com.