Book Translation Skill
This skill guides translation of book content for The Interactive Book of Prompting at prompts.chat.
Overview
The book has 25 chapters across 7 parts. Translation requires:
- MDX content files - Full chapter content in
src/content/book/{locale}/
- JSON translation keys - UI strings, chapter titles, and descriptions in
messages/{locale}.json
Prerequisites
Before starting, identify:
- Target locale code (e.g.,
de, fr, es, ja, ko, zh)
- Check if locale exists in
messages/ directory
- Check if
src/content/book/{locale}/ folder exists
Step 1: Copy Turkish Folder as Base
The Turkish (tr) translation is complete and well-tested. Copy it as your starting point instead of translating from English:
bash
1mkdir -p src/content/book/{locale}
2cp -r src/content/book/*.mdx src/content/book/{locale}/
3cp src/components/book/elements/locales/en.ts src/components/book/elements/locales/{locale}.ts
⚠️ IMPORTANT: After copying, you MUST register the new locale in src/components/book/elements/locales/index.ts:
- Add import:
import {locale} from "./{locale}";
- Add to
locales object: {locale},
- Add to named exports:
export { en, tr, az, {locale} };
This is faster because:
- Turkish and many languages share similar sentence structures
- All JSX/React components are already preserved correctly
- File structure is already set up
- You only need to translate the prose, not recreate the structure
Step 2: Translate MDX Content Files
Edit each copied file in src/content/book/{locale}/ to translate from Turkish to your target language.
Process files one by one:
Chapter List (in order)
| Slug | English Title |
|---|
00a-preface | Preface |
00b-history | History |
00c-introduction | Introduction |
01-understanding-ai-models | Understanding AI Models |
02-anatomy-of-effective-prompt | Anatomy of an Effective Prompt |
03-core-prompting-principles | Core Prompting Principles |
04-role-based-prompting | Role-Based Prompting |
05-structured-output | Structured Output |
06-chain-of-thought | Chain of Thought |
07-few-shot-learning | Few-Shot Learning |
08-iterative-refinement | Iterative Refinement |
09-json-yaml-prompting | JSON & YAML Prompting |
10-system-prompts-personas | System Prompts & Personas |
11-prompt-chaining | Prompt Chaining |
12-handling-edge-cases | Handling Edge Cases |
13-multimodal-prompting | Multimodal Prompting |
14-context-engineering | Context Engineering |
15-common-pitfalls | Common Pitfalls |
16-ethics-responsible-use | Ethics & Responsible Use |
17-prompt-optimization | Prompt Optimization |
18-writing-content | Writing & Content |
19-programming-development | Programming & Development |
20-education-learning | Education & Learning |
21-business-productivity | Business & Productivity |
22-creative-arts | Creative Arts |
23-research-analysis | Research & Analysis |
24-future-of-prompting | The Future of Prompting |
25-agents-and-skills | Agents & Skills |
MDX Translation Guidelines
- Preserve all JSX/React components - Keep
<div>, <img>, className, etc. unchanged
- Preserve code blocks - Code examples should remain in English (variable names, keywords)
- Translate prose content - Headings, paragraphs, lists
- Keep Markdown syntax -
##, **bold**, *italic*, [links](url)
- Preserve component imports - Any
import statements at the top
Step 3: Translate JSON Keys
In messages/{locale}.json, translate the "book" section. Key areas:
json
1"book": {
2 "title": "The Interactive Book of Prompting",
3 "subtitle": "An Interactive Guide to Crafting Clear and Effective Prompts",
4 "metaTitle": "...",
5 "metaDescription": "...",
6 ...
7}
Chapter Titles (book.chapters)
json
1"chapters": {
2 "00a-preface": "Preface",
3 "00b-history": "History",
4 "00c-introduction": "Introduction",
5 ...
6}
Chapter Descriptions (book.chapterDescriptions)
json
1"chapterDescriptions": {
2 "00a-preface": "A personal note from the author",
3 "00b-history": "The story of Awesome ChatGPT Prompts",
4 ...
5}
Part Names (book.parts)
json
1"parts": {
2 "introduction": "Introduction",
3 "foundations": "Foundations",
4 "techniques": "Techniques",
5 "advanced": "Advanced Strategies",
6 "bestPractices": "Best Practices",
7 "useCases": "Use Cases",
8 "conclusion": "Conclusion"
9}
Interactive Demo Examples (book.interactive.demoExamples)
Localize example text for demos (tokenizer samples, temperature examples, etc.):
json
1"demoExamples": {
2 "tokenPrediction": {
3 "tokens": ["The", " capital", " of", " France", " is", " Paris", "."],
4 "fullText": "The capital of France is Paris."
5 },
6 "temperature": {
7 "prompt": "What is the capital of France?",
8 ...
9 }
10}
Book Elements Locales (REQUIRED)
⚠️ DO NOT SKIP THIS STEP - The interactive demos will not work in the new language without this.
Translate the locale data file at src/components/book/elements/locales/{locale}.ts:
- Temperature examples, token predictions, embedding words
- Capabilities list, sample conversations, strategies
- Tokenizer samples, builder fields, chain types
- Frameworks (CRISPE, BREAK, RTF), exercises
- Image/video prompt options, validation demos
Then register it in src/components/book/elements/locales/index.ts:
typescript
1import {locale} from "./{locale}";
2
3const locales: Record<string, LocaleData> = {
4 en,
5 tr,
6 az,
7 {locale}, // Add your new locale here
8};
9
10export { en, tr, az, {locale} }; // Add to exports
UI Strings (book.interactive.*, book.chapter.*, book.search.*)
Translate all interactive component labels and navigation strings.
Step 4: Verify Translation
-
Run the check script:
bash
1node scripts/check-translations.js
-
Start dev server and test:
-
Navigate to /book with the target locale to verify content loads
Reference: English Translation
The English (en) translation is complete and serves as the base template for all new translations:
- MDX files:
src/content/book/*.mdx — copy this files to src/content/book/{locale}/*.mdx
- JSON keys:
messages/en.json → book section — use as reference for structure
Recommended Workflow
- Copy
src/content/book/*.mdx to src/content/book/{locale}/*.mdx
- Copy the
"book" section from messages/en.json to messages/{locale}.json. Translate these in multiple agentic session instead of single time (token limit may exceed at once)
- Edit each file, translating English → target language
- Keep all JSX components, code blocks, and Markdown syntax intact
Quality Guidelines
- Consistency: Use consistent terminology throughout (e.g., always translate "prompt" the same way)
- Technical terms: Some terms like "AI", "ChatGPT", "API" may stay in English
- Cultural adaptation: Adapt examples to be relevant for the target audience where appropriate
- Natural language: Prioritize natural-sounding translations over literal ones