Skip to content

Commit 28ec8c7

Browse files
authored
Merge pull request #67 from bnbong/dev
[DOCS] ko translation
2 parents 99e7206 + bd8dbd6 commit 28ec8c7

40 files changed

Lines changed: 15861 additions & 236 deletions

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ repos:
55
rev: v6.0.0
66
hooks:
77
- id: trailing-whitespace
8+
args: [--markdown-linebreak-ext=md]
89
- id: end-of-file-fixer
910
- id: check-yaml
1011
- id: check-toml

docs/en/contributing/development-setup.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Installing pre-commit hooks...
3131
</div>
3232

3333
This single command:
34+
3435
- Installs the package in editable mode with dev dependencies
3536
- Sets up pre-commit hooks
3637
- Configures development tools

docs/en/contributing/template-creation-guide.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ fastapi-{purpose}-{stack}
3030
```
3131

3232
Examples:
33+
3334
- `fastapi-microservice` (Microservice template)
3435
- `fastapi-graphql` (GraphQL integration template)
3536
- `fastapi-auth-jwt` (JWT authentication template)
@@ -380,9 +381,9 @@ The inspector automatically validates the following items:
380381
#### ✅ Dependencies Validation
381382

382383
- [ ] `fastapi` is declared in at least one of:
383-
- [ ] `pyproject.toml-tpl` under `[project].dependencies` (preferred)
384-
- [ ] `requirements.txt-tpl`
385-
- [ ] `setup.py-tpl` under `install_requires`
384+
- [ ] `pyproject.toml-tpl` under `[project].dependencies` (preferred)
385+
- [ ] `requirements.txt-tpl`
386+
- [ ] `setup.py-tpl` under `install_requires`
386387

387388
#### ✅ FastAPI Implementation Validation
388389

@@ -400,6 +401,7 @@ The inspector automatically validates the following items:
400401
FastAPI-fastkit includes **automated template testing** that runs comprehensive tests for all templates:
401402

402403
**Test Coverage:**
404+
403405
- ✅ Template creation process
404406
- ✅ Project metadata injection
405407
- ✅ Virtual environment setup
@@ -425,12 +427,14 @@ New templates are **automatically discovered** and tested without manual configu
425427
4.**Comprehensive Validation**: Structure, metadata, and functionality checks
426428

427429
**What This Means for You:**
430+
428431
- 🚀 **No Additional Test Files at `FastAPI-fastkit`'s main source testcases**: Your template is tested automatically
429432
-**Faster Development**: Focus on template content, not test setup
430433
- 🛡️ **Quality Assurance**: Consistent testing across all templates
431434
- 🔄 **CI/CD Integration**: Automatic testing in pull requests
432435

433436
**Manual Testing Still Required:**
437+
434438
- 🧪 **Template-specific functionality**: Business logic and custom features
435439
- 🔧 **Integration testing**: External services and complex workflows
436440
- 📱 **End-to-end scenarios**: Complete user workflows
@@ -541,8 +545,8 @@ Closes #issue-number
541545
### Review Process
542546

543547
1. **Automated Validation**: GitHub Actions automatically validates the template
544-
- **Template PR Inspection**: Runs `inspect-changed-templates.py` on PRs modifying templates
545-
- **Weekly Inspection**: Full template validation every Wednesday
548+
- **Template PR Inspection**: Runs `inspect-changed-templates.py` on PRs modifying templates
549+
- **Weekly Inspection**: Full template validation every Wednesday
546550
2. **Code Review**: Maintainers and community review the code
547551
3. **Testing**: Template is tested in various environments
548552
4. **Documentation Review**: Review documentation accuracy and completeness

docs/en/contributing/translation-guide.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ The user-facing companion to this policy is the
1818
lists each locale's actual completeness and how MkDocs renders pages
1919
that haven't been translated yet (TL;DR: they fall back to English).
2020

21+
The repository-root `CHANGELOG.md` also remains in English as the
22+
canonical release history. If a locale exposes a `changelog.md` page,
23+
that page should link to or include the canonical English changelog
24+
rather than maintain a separate translated changelog unless project
25+
policy changes later.
26+
2127
When you contribute a translation, also update the status page's table
2228
so users can tell what's available without guessing from the language
2329
switcher.
@@ -213,6 +219,14 @@ The script will create a Pull Request with the translations. Review the PR:
213219
3. Ensure code examples remain unchanged
214220
4. Check for language-specific issues
215221

222+
### Changelog policy
223+
224+
- Keep the repository-root `CHANGELOG.md` in English.
225+
- Do not open translation PRs whose goal is to rewrite release history
226+
into another language inside the root changelog.
227+
- If a locale needs a changelog page, treat `docs/<locale>/changelog.md`
228+
as a wrapper or entry point for the canonical English changelog.
229+
216230
### 4. Approve and Merge (for maintainers)
217231

218232
Once the translation is verified:

docs/en/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ Installing dependencies...
345345
</div>
346346

347347
The interactive mode provides:
348+
348349
- **Architecture preset selection** (`minimal` / `single-module` / `classic-layered` / `domain-starter`) that picks the right base template and project layout
349350
- **Guided selection** for databases, authentication, background tasks, caching, monitoring, and more
350351
- **Auto-generated code** for selected features — varies by preset (regenerated `main.py` for `minimal` / `single-module`; preserve template-shipped `main.py` and overlay config modules for `classic-layered` / `domain-starter`)
@@ -362,7 +363,7 @@ Add a new route endpoint to your FastAPI project with:
362363
<div class="termy">
363364

364365
```console
365-
$ fastkit addroute my-awesome-project user
366+
$ fastkit addroute user my-awesome-project
366367
Adding New Route
367368
┌──────────────────┬──────────────────────────────────────────┐
368369
│ Project │ my-awesome-project │
@@ -500,6 +501,7 @@ Learn FastAPI development through practical use cases with our pre-built templat
500501
- **[Integrating with MCP](tutorial/mcp-integration.md)** - Create an API server integrated with AI models using the `fastapi-mcp` template
501502

502503
Each tutorial provides:
504+
503505
-**Practical Examples** - Code you can use directly in real projects
504506
-**Step-by-Step Guides** - Detailed explanations for beginners to follow easily
505507
-**Best Practices** - Industry-standard patterns and security considerations

docs/en/reference/template-quality-assurance.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,20 @@ The automated testing system runs in **CI/CD pipelines**:
101101
### Benefits for Contributors
102102

103103
**Zero Configuration Testing:**
104+
104105
- 🚀 Add new template → automatic testing
105106
- ⚡ No manual test file creation required
106107
- 🛡️ Consistent quality standards
107108

108109
**Comprehensive Coverage:**
110+
109111
- 🔍 End-to-end project creation testing
110112
- 📦 Multi package manager validation
111113
- 🏗️ Complete dependency resolution testing
112114
- ✅ Real-world usage simulation
113115

114116
**Developer Experience:**
117+
115118
- 🎯 **Focus on Template Content**: Testing is automatic
116119
- 🔄 **Immediate Feedback**: Fast test execution
117120
- 📊 **Clear Results**: Detailed test reporting
@@ -190,8 +193,8 @@ For a template to pass inspection, it must meet these requirements:
190193
- Python files must use `.py-tpl` extension
191194
- Must include a `tests/` directory and a `README.md-tpl` file
192195
- Must include **at least one** metadata file:
193-
- `pyproject.toml-tpl` (preferred, PEP 621), or
194-
- `setup.py-tpl` (legacy, still accepted)
196+
- `pyproject.toml-tpl` (preferred, PEP 621), or
197+
- `setup.py-tpl` (legacy, still accepted)
195198
- `requirements.txt-tpl` is optional when `pyproject.toml-tpl` declares
196199
`[project].dependencies`
197200

docs/en/reference/translation-status.md

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ The English files live under [`docs/en/`](https://github.com/bnbong/FastAPI-fast
1919
Every other locale (`docs/ko/`, `docs/ja/`, ...) is a translation
2020
target.
2121

22+
The repository-root `CHANGELOG.md` is part of that English source of
23+
truth. Locale-specific `changelog.md` pages may exist as wrappers or
24+
entry points, but they intentionally reuse the canonical English
25+
release history instead of maintaining translated copies.
26+
2227
## Per-locale completeness
2328

2429
The numbers below count Markdown pages in each locale's directory tree
@@ -29,14 +34,14 @@ next section explains).
2934
| Locale | Status | Markdown pages | Notes |
3035
|---|---|---:|---|
3136
| 🇬🇧 English (`en`) | ✅ Source of truth | 26 / 26 | Authoritative. |
32-
| 🇰🇷 Korean (`ko`) | 🟡 Partial | 2 / 26 | `index.md`, `changelog.md`. Other pages fall back to English. |
37+
| 🇰🇷 Korean (`ko`) | ✅ Complete | 26 / 26 | All locale pages are present. Phase 1: top-level + core user-guide; Phase 2: remaining user-guide + all tutorials; Phase 3: contributing + reference. `docs/ko/changelog.md` intentionally reuses the canonical English `CHANGELOG.md`. |
3338
| 🇯🇵 Japanese (`ja`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
3439
| 🇨🇳 Chinese (`zh`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
3540
| 🇪🇸 Spanish (`es`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
3641
| 🇫🇷 French (`fr`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
3742
| 🇩🇪 German (`de`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
3843

39-
*Snapshot verified 2026-05-06.* These counts are maintained by hand;
44+
*Snapshot verified 2026-05-07; ko row recounted for the current branch after Phase 3 (contributing + reference) landed. Korean now has all locale pages present, while `docs/ko/changelog.md` intentionally points to the canonical English changelog.* These counts are maintained by hand;
4045
to recount the current state from the repo root, run:
4146

4247
```console
@@ -88,19 +93,38 @@ underlying content actually is.
8893

8994
## How to help
9095

91-
If you'd like to translate a page or fix an existing translation:
96+
The current rollout is **one tracking issue per locale**, with the work
97+
broken into **phases** — for example `ko` is being landed across
98+
Phase 1 (top-level + core user-guide), Phase 2 (remaining user-guide +
99+
all tutorials), Phase 3 (contributing + reference). Each phase ships
100+
as its own PR so reviewers can sign off on a coherent slice without
101+
waiting for the entire locale to be finished.
102+
103+
If you'd like to contribute:
92104

93105
1. Read the [Translation Guide](../contributing/translation-guide.md)
94106
for the workflow, tooling, and style conventions.
95-
2. Translate one page at a time — partial translations are welcome and
96-
merged incrementally.
97-
3. Open a PR adding the new file(s) under `docs/<locale>/<same path>`.
98-
Keep filenames identical to the English source so MkDocs picks them
99-
up automatically.
100-
4. Update this page's table to reflect the new completeness count
107+
2. **Check or open the locale tracking issue first.** If a locale
108+
already has an open tracking issue, claim a phase (or a specific
109+
page within a phase) there so the work doesn't double up. If no
110+
tracking issue exists for the locale you want to work on, open one
111+
that lists which pages belong to which phase, then start with
112+
Phase 1.
113+
3. **One PR per phase is the preferred shape.** Smaller "fix this
114+
single page" PRs are still welcome — especially for correcting an
115+
out-of-sync translation — but for net-new locale work, batching by
116+
phase keeps glossary decisions and cross-link wording consistent
117+
across the slice.
118+
4. Open the PR adding files under `docs/<locale>/<same path>`. Keep
119+
filenames identical to the English source so MkDocs picks them up
120+
automatically.
121+
5. Treat localized changelog pages as wrappers around the canonical
122+
English `CHANGELOG.md` unless project policy explicitly changes.
123+
6. Update this page's table to reflect the new completeness count
101124
(use the recount snippet at the top of this page) and bump the
102125
"Snapshot verified" date so reviewers can see when it was last
103-
reconciled.
126+
reconciled. Note in the "Notes" column which phase has landed if
127+
the locale is still partial.
104128

105129
Bug reports about translated pages going out of sync with the English
106130
source are welcome — please link the English page and the translated

docs/en/tutorial/first-project.md

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ Let's add the main resources for our blog API:
114114
<div class="termy">
115115

116116
```console
117-
$ fastkit addroute blog-api users
117+
$ fastkit addroute users blog-api
118118
✨ Successfully added new route 'users' to project 'blog-api'
119119

120-
$ fastkit addroute blog-api posts
120+
$ fastkit addroute posts blog-api
121121
✨ Successfully added new route 'posts' to project 'blog-api'
122122

123-
$ fastkit addroute blog-api comments
123+
$ fastkit addroute comments blog-api
124124
✨ Successfully added new route 'comments' to project 'blog-api'
125125
```
126126

@@ -985,6 +985,7 @@ Visit [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) to see your compl
985985
- **Items**: Original example endpoints
986986

987987
The documentation shows:
988+
988989
- All available endpoints
989990
- Request/response schemas
990991
- Data validation rules
@@ -1172,68 +1173,68 @@ Congratulations! You've successfully built a complete blog API with:
11721173
### ✅ Features Implemented
11731174

11741175
- **User Management**
1175-
- User registration with validation
1176-
- User authentication (login)
1177-
- Profile management
1178-
- Duplicate prevention
1176+
- User registration with validation
1177+
- User authentication (login)
1178+
- Profile management
1179+
- Duplicate prevention
11791180

11801181
- **Blog Posts**
1181-
- Create, read, update, delete posts
1182-
- Author-based filtering
1183-
- Search functionality
1184-
- Publish/draft status
1182+
- Create, read, update, delete posts
1183+
- Author-based filtering
1184+
- Search functionality
1185+
- Publish/draft status
11851186

11861187
- **Comment System**
1187-
- Add comments to posts
1188-
- View comments by post or author
1189-
- Comment management
1188+
- Add comments to posts
1189+
- View comments by post or author
1190+
- Comment management
11901191

11911192
- **Data Validation**
1192-
- Email validation
1193-
- Password requirements
1194-
- Content length limits
1195-
- Required field validation
1193+
- Email validation
1194+
- Password requirements
1195+
- Content length limits
1196+
- Required field validation
11961197

11971198
- **Error Handling**
1198-
- Proper HTTP status codes
1199-
- Descriptive error messages
1200-
- Input validation errors
1199+
- Proper HTTP status codes
1200+
- Descriptive error messages
1201+
- Input validation errors
12011202

12021203
- **API Documentation**
1203-
- Automatic OpenAPI generation
1204-
- Interactive testing interface
1205-
- Request/response schemas
1204+
- Automatic OpenAPI generation
1205+
- Interactive testing interface
1206+
- Request/response schemas
12061207

12071208
- **Testing**
1208-
- Comprehensive test coverage
1209-
- Unit tests for all endpoints
1210-
- Edge case testing
1209+
- Comprehensive test coverage
1210+
- Unit tests for all endpoints
1211+
- Edge case testing
12111212

12121213
## Next Steps
12131214

12141215
### Potential Enhancements
12151216

12161217
1. **Real Authentication**
1217-
- Implement JWT tokens
1218-
- Add password hashing with bcrypt
1219-
- Role-based permissions
1218+
- Implement JWT tokens
1219+
- Add password hashing with bcrypt
1220+
- Role-based permissions
12201221

12211222
2. **Database Integration**
1222-
- Use PostgreSQL or MySQL
1223-
- Implement proper database models
1224-
- Add database migrations
1223+
- Use PostgreSQL or MySQL
1224+
- Implement proper database models
1225+
- Add database migrations
12251226

12261227
3. **Advanced Features**
1227-
- File uploads for images
1228-
- Email notifications
1229-
- Post categories/tags
1230-
- Like/dislike system
1228+
- File uploads for images
1229+
- Email notifications
1230+
- Post categories/tags
1231+
- Like/dislike system
12311232

12321233
4. **Production Readiness**
1233-
- Add logging
1234-
- Implement caching
1235-
- Add rate limiting
1236-
- Environment configuration
1234+
- Add logging
1235+
- Implement caching
1236+
- Add rate limiting
1237+
- Environment configuration
12371238

12381239
### Continue Learning
12391240

0 commit comments

Comments
 (0)