create-fuzionx 0.1.37 → 0.1.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,52 +1,250 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
2
|
+
"auth": {
|
|
3
|
+
"email_exists": "Email already registered.",
|
|
4
|
+
"has_account": "Already have an account?",
|
|
5
|
+
"login_failed": "Invalid email or password.",
|
|
6
|
+
"no_account": "Don't have an account?",
|
|
7
|
+
"password_mismatch": "Passwords do not match.",
|
|
8
|
+
"register_success": "Registration complete. Please log in."
|
|
9
|
+
},
|
|
10
|
+
"board": {
|
|
11
|
+
"attached_files": "Existing files",
|
|
12
|
+
"author": "Author",
|
|
13
|
+
"confirm_delete": "Are you sure you want to delete?",
|
|
14
|
+
"date": "Date",
|
|
15
|
+
"delete_success": "Post deleted successfully.",
|
|
16
|
+
"drop_files": "Click or drag files here",
|
|
17
|
+
"edit_title": "Edit Post",
|
|
18
|
+
"empty": "No posts yet.",
|
|
19
|
+
"file_hint": "Max 10MB, images and documents",
|
|
20
|
+
"new_title": "New Post",
|
|
21
|
+
"processing": "Processing",
|
|
22
|
+
"store_success": "Post saved successfully.",
|
|
23
|
+
"title": "Board",
|
|
24
|
+
"update_success": "Post updated successfully."
|
|
25
|
+
},
|
|
26
|
+
"btn": {
|
|
27
|
+
"back": "← Back",
|
|
28
|
+
"cancel": "Cancel",
|
|
29
|
+
"create": "Create",
|
|
30
|
+
"delete": "Delete",
|
|
31
|
+
"edit": "Edit",
|
|
32
|
+
"go_home": "Go Home",
|
|
33
|
+
"login": "Login",
|
|
34
|
+
"new_post": "New Post",
|
|
35
|
+
"register": "Register",
|
|
36
|
+
"save": "Save"
|
|
37
|
+
},
|
|
38
|
+
"chat": {
|
|
39
|
+
"btn_join": "Join Chat",
|
|
40
|
+
"btn_leave": "Leave Chat",
|
|
41
|
+
"btn_send": "Send",
|
|
42
|
+
"connecting": "connecting...",
|
|
43
|
+
"demo_sub": "Experience FuzionX real-time WebSocket in action.",
|
|
44
|
+
"demo_tech": "Built with",
|
|
45
|
+
"demo_title": "Chat Demo",
|
|
46
|
+
"footer": "Powered by WsHandler",
|
|
47
|
+
"footer_link": "WebSocket Features",
|
|
48
|
+
"meta_desc": "Live WebSocket chat demo powered by FuzionX WsHandler. Try the real-time messaging with user presence.",
|
|
49
|
+
"msg_placeholder": "Type a message...",
|
|
50
|
+
"nickname_placeholder": "Enter your nickname...",
|
|
51
|
+
"online": "Online",
|
|
52
|
+
"page_title": "Chat Demo",
|
|
53
|
+
"room_title": "Chat Room",
|
|
54
|
+
"typing": "is typing..."
|
|
55
|
+
},
|
|
56
|
+
"common": {
|
|
57
|
+
"forbidden": "Forbidden."
|
|
58
|
+
},
|
|
59
|
+
"dashboard": {
|
|
60
|
+
"about_title": "FuzionX Framework",
|
|
61
|
+
"edit_profile": "Edit",
|
|
62
|
+
"feat_auth": "Built-in Authentication",
|
|
63
|
+
"feat_auth_desc": "Session-based auth, bcrypt/argon2 hashing, and CSRF protection included out of the box.",
|
|
64
|
+
"feat_i18n": "Internationalization (i18n)",
|
|
65
|
+
"feat_i18n_desc": "JSON-based locale files with auto-detection of missing keys for seamless multi-language support.",
|
|
66
|
+
"feat_perf": "High-Performance Rust Bridge",
|
|
67
|
+
"feat_perf_desc": "Rust N-API based HTTP server, session management, encryption, and hashing at native speed.",
|
|
68
|
+
"feat_ssr": "SSR + SPA Support",
|
|
69
|
+
"feat_ssr_desc": "Run Tera template-based SSR and Vue.js SPA simultaneously in a single project.",
|
|
70
|
+
"go_board": "Go",
|
|
71
|
+
"qs_controller": "Write Controllers",
|
|
72
|
+
"qs_controller_desc": "Delegate business logic to services, handle rendering and redirects.",
|
|
73
|
+
"qs_route": "Define Routes",
|
|
74
|
+
"qs_route_desc": "Map URLs to controllers in routes.js.",
|
|
75
|
+
"quickstart_title": "Quick Start"
|
|
76
|
+
},
|
|
77
|
+
"feat": {
|
|
78
|
+
"badge": "Framework Features",
|
|
79
|
+
"bridge_code_title": "Native Performance — Zero JS Overhead",
|
|
80
|
+
"bridge_crypto": "Native Crypto",
|
|
81
|
+
"bridge_crypto_desc": "bcrypt, argon2id, AES-256-GCM, SHA-256, MD5, UUID v4 — all executed in Rust. No crypto module overhead, no C++ addon compilation issues.",
|
|
82
|
+
"bridge_media": "Media Processing",
|
|
83
|
+
"bridge_media_desc": "Image resizing (Lanczos3), WebP conversion, and video thumbnail extraction powered by Rust image crate and ffmpeg bindings.",
|
|
84
|
+
"bridge_rps": "The HTTP engine runs entirely in Rust through N-API, delivering throughput that JavaScript-based servers cannot match. Request parsing, routing, and response serialization happen at native speed.",
|
|
85
|
+
"bridge_sub": "Native performance for core operations — no JavaScript overhead.",
|
|
86
|
+
"bridge_title": "Rust N-API Bridge",
|
|
87
|
+
"bridge_zerocopy": "Zero-Copy File Uploads",
|
|
88
|
+
"bridge_zerocopy_desc": "Multipart parsing happens in Rust. Files are written directly to disk — the file buffer never enters JavaScript memory, making large file uploads safe and efficient.",
|
|
89
|
+
"btn_back": "Back to Home",
|
|
90
|
+
"btn_chat": "Try Chat Demo",
|
|
91
|
+
"btn_try_chat": "Try Live Chat Demo →",
|
|
92
|
+
"cta_sub": "One command to scaffold. Zero configuration to start.",
|
|
93
|
+
"cta_title_1": "Start Building",
|
|
94
|
+
"cta_title_2": "Today",
|
|
95
|
+
"dx_autoscan": "Auto-Scanning",
|
|
96
|
+
"dx_autoscan_desc": "Drop a file in controllers/, services/, ws/, or jobs/ — the framework discovers and registers it automatically. Zero manual wiring.",
|
|
97
|
+
"dx_cli": "CLI Code Generator",
|
|
98
|
+
"dx_cli_desc": "fx make:controller, fx make:model, fx make:service — scaffold any component instantly with proper boilerplate.",
|
|
99
|
+
"dx_openapi": "OpenAPI Auto-Generation",
|
|
100
|
+
"dx_openapi_desc": "Swagger UI at /docs with zero configuration. Route definitions are automatically converted to OpenAPI 3.0 spec.",
|
|
101
|
+
"dx_sub": "CLI scaffolding, auto-scanning, hot reload, OpenAPI docs — everything to keep you productive.",
|
|
102
|
+
"dx_test": "Testing Helpers",
|
|
103
|
+
"dx_test_desc": "In-process HTTP test client, database transaction rollbacks, isolated test contexts. vitest integration out of the box.",
|
|
104
|
+
"dx_title": "Developer Experience",
|
|
105
|
+
"header_sub": "Every feature designed for performance, developer experience, and enterprise readiness.",
|
|
106
|
+
"header_title_1": "Built for",
|
|
107
|
+
"header_title_2": "Production",
|
|
108
|
+
"meta_desc": "Explore FuzionX features: Rust N-API Bridge, Multi-DB ORM, WebSocket, Task Queue, and more.",
|
|
109
|
+
"orm_access": "3-Level Access",
|
|
110
|
+
"orm_access_desc": "Unified API for 99% of cases → Raw Query for DB-specific features → Native driver access when you need full control.",
|
|
111
|
+
"orm_relations": "Relationships",
|
|
112
|
+
"orm_relations_desc": "hasMany, hasOne, belongsTo, belongsToMany — define relations as methods. Eager loading with .with('posts.comments').",
|
|
113
|
+
"orm_schema": "Model-Based Schema Sync",
|
|
114
|
+
"orm_schema_desc": "Define columns in the model with static columns, then run fx db:sync. No more writing migration files — the model IS the schema.",
|
|
115
|
+
"orm_sub": "One API for MariaDB, PostgreSQL, and MongoDB. Model = Schema = Single source of truth.",
|
|
116
|
+
"orm_title": "Multi-Database ORM",
|
|
117
|
+
"orm_unified": "Unified Query API",
|
|
118
|
+
"orm_unified_desc": "Write User.where('active', true).paginate(1, 20) and it works across all databases. No database-specific code needed for CRUD operations.",
|
|
119
|
+
"page_title": "Features",
|
|
120
|
+
"queue_queued": "Queued Tasks",
|
|
121
|
+
"queue_queued_desc": "Async dispatch with retries: app.dispatch('SendEmail', data). Memory or Redis backend. Failed tasks call failed() hook.",
|
|
122
|
+
"queue_scheduled": "Scheduled Jobs",
|
|
123
|
+
"queue_scheduled_desc": "Cron-based recurring tasks. static schedule = 'daily:02:00'. Runs on master process with Redis distributed lock for multi-server.",
|
|
124
|
+
"queue_sub": "Three ways to handle background work — scheduled, queued, and CPU-isolated.",
|
|
125
|
+
"queue_title": "Task Queue + Workers",
|
|
126
|
+
"queue_worker_desc": "CPU-heavy work in worker_threads: app.worker.run('csv-parser', data). Prevents event loop blocking. Timeout + auto-cleanup.",
|
|
127
|
+
"sec_asp": "ASP Wire Encryption",
|
|
128
|
+
"sec_asp_desc": "FuzionX Stealth Protocol encrypts all HTTP request/response bodies on the wire. Transparent to application code, impenetrable to MITM attacks.",
|
|
129
|
+
"sec_hash": "Native Password Hashing",
|
|
130
|
+
"sec_hash_desc": "bcrypt (cost 12) and argon2id hashing in Rust — orders of magnitude faster than JavaScript implementations with the same security guarantees.",
|
|
131
|
+
"sec_rate": "Rate Limiting + CSRF",
|
|
132
|
+
"sec_rate_desc": "Per-IP rate limiting in the Rust bridge layer. CSRF token generation and validation. IP whitelist/blacklist. HSTS and CSP headers.",
|
|
133
|
+
"sec_session": "Session + JWT Auth",
|
|
134
|
+
"sec_session_desc": "File-based or Redis session store. JWT access/refresh token rotation. Built-in auth() middleware with route guards.",
|
|
135
|
+
"sec_sub": "Production-grade security built into every layer — from wire encryption to password hashing.",
|
|
136
|
+
"sec_title": "Enterprise Security",
|
|
137
|
+
"ssr_i18n": "Built-in i18n",
|
|
138
|
+
"ssr_i18n_desc": "JSON-based translations with auto-detection, fallback locales, and missing key auto-complete.",
|
|
139
|
+
"ssr_multiapp": "Multi-App Routing",
|
|
140
|
+
"ssr_multiapp_desc": "Route different domains to different apps: api.example.com → spa, www.example.com → ssr. One codebase, multiple frontends.",
|
|
141
|
+
"ssr_sub": "Server-rendered pages and single-page apps in one project with domain routing.",
|
|
142
|
+
"ssr_tera": "Tera Template Engine",
|
|
143
|
+
"ssr_tera_desc": "Jinja2-compatible template engine compiled in Rust. Layouts, blocks, inheritance, filters, and macros for fast SSR rendering.",
|
|
144
|
+
"ssr_theme": "Theme System",
|
|
145
|
+
"ssr_theme_desc": "Multiple view themes with views/{theme}/ structure. Switch themes via config without changing any controller code.",
|
|
146
|
+
"ssr_title": "SSR + SPA Hybrid",
|
|
147
|
+
"ws_dsl": "Event Routing DSL",
|
|
148
|
+
"ws_dsl_desc": "static events(e) declares event → handler mappings, just like controller routes. Clean, declarative, and auto-scanned from ws/ folder.",
|
|
149
|
+
"ws_hub": "Hub Broadcasting",
|
|
150
|
+
"ws_hub_desc": "Multi-server? Just add { hub: true } to broadcast. Messages route through Hub server to all connected instances.",
|
|
151
|
+
"ws_middleware": "Middleware Sharing",
|
|
152
|
+
"ws_middleware_desc": "Reuse the same HTTP middleware for WebSocket handshake. Auth middleware works for both HTTP and WS connections.",
|
|
153
|
+
"ws_rooms": "Rooms",
|
|
154
|
+
"ws_rooms_desc": "socket.join('room:123'), socket.to('room:123').send({...}) — built-in room management without external libraries.",
|
|
155
|
+
"ws_sub": "Namespace-based event routing with rooms, middleware sharing, and multi-server Hub.",
|
|
156
|
+
"ws_title": "Real-time WebSocket"
|
|
157
|
+
},
|
|
158
|
+
"home": {
|
|
159
|
+
"arch_bridge_desc": "Rust N-API binary — libuv Fusion HTTP, native crypto, media processing, file I/O. Zero-copy where possible.",
|
|
160
|
+
"arch_core_desc": "Express-level HTTP engine wrapping the Rust bridge. Routing, request/response lifecycle, WebSocket server.",
|
|
161
|
+
"arch_engine": "Engine",
|
|
162
|
+
"arch_framework_desc": "Controllers, Services, Models, Middleware, WebSocket Handlers, Jobs — Laravel-style MVC with full DI container",
|
|
163
|
+
"arch_native": "Native",
|
|
164
|
+
"arch_subtitle": "Three-tier design separating concerns for maximum performance and developer ergonomics.",
|
|
165
|
+
"arch_title_1": "Layered",
|
|
166
|
+
"arch_title_2": "Architecture",
|
|
167
|
+
"arch_you_write": "You Write",
|
|
168
|
+
"btn_all_features": "View All Features",
|
|
169
|
+
"btn_demo": "Live Demo",
|
|
170
|
+
"btn_features": "Explore Features",
|
|
171
|
+
"btn_try_chat": "Try Chat Demo",
|
|
172
|
+
"cmp_3rd_party": "3rd party",
|
|
173
|
+
"cmp_builtin": "Built-in",
|
|
174
|
+
"cmp_feature": "Feature",
|
|
175
|
+
"cmp_http": "HTTP Engine",
|
|
176
|
+
"cmp_model_based": "Model-based",
|
|
177
|
+
"cmp_orm": "ORM Built-in",
|
|
178
|
+
"cmp_queue": "Task Queue",
|
|
179
|
+
"cmp_schema": "Schema Sync",
|
|
180
|
+
"cmp_upload": "File Upload",
|
|
181
|
+
"cta_subtitle": "Get started with FuzionX in seconds. One command, zero configuration.",
|
|
182
|
+
"cta_title_1": "Ready to Build",
|
|
183
|
+
"cta_title_2": "Something Fast",
|
|
184
|
+
"feat_bridge": "Rust N-API Bridge",
|
|
185
|
+
"feat_bridge_desc": "HTTP server, session management, cryptography, and file processing at native speed. No JavaScript overhead for core operations.",
|
|
186
|
+
"feat_orm": "Multi-DB ORM",
|
|
187
|
+
"feat_orm_desc": "One unified API for MariaDB, PostgreSQL, and MongoDB. Model-based schema sync replaces migration files.",
|
|
188
|
+
"feat_queue": "Task Queue + Workers",
|
|
189
|
+
"feat_queue_desc": "Scheduled jobs (cron), async task queues with retry logic, and WorkerPool for CPU-heavy operations in isolated threads.",
|
|
190
|
+
"feat_security": "Enterprise Security",
|
|
191
|
+
"feat_security_desc": "Native bcrypt/argon2 hashing, AES-256-GCM encryption, ASP wire protocol, CSRF protection, and rate limiting.",
|
|
192
|
+
"feat_ssr": "SSR + SPA Hybrid",
|
|
193
|
+
"feat_ssr_desc": "Tera template engine for SSR pages alongside Vue.js SPA — run both in a single project with domain-based routing.",
|
|
194
|
+
"feat_subtitle": "A production-ready framework that ships with batteries included — powered by Rust under the hood.",
|
|
195
|
+
"feat_title_1": "Everything You Need.",
|
|
196
|
+
"feat_title_2": "Nothing You Don't.",
|
|
197
|
+
"feat_ws": "Real-time WebSocket",
|
|
198
|
+
"feat_ws_desc": "Namespace routing, rooms, event-based handlers, and multi-server Hub broadcasting built into the framework.",
|
|
199
|
+
"footer": "Rust-powered Node.js framework for the modern web.",
|
|
200
|
+
"hero_badge": "Powered by Rust N-API",
|
|
201
|
+
"hero_sub_1": "Full-stack MVC framework for Node.js with a Rust-powered core engine.",
|
|
202
|
+
"hero_sub_2": "500K+ requests per second. Zero-copy file handling. Native-speed crypto.",
|
|
203
|
+
"hero_title_1": "Build",
|
|
204
|
+
"hero_title_2": "Blazing Fast",
|
|
205
|
+
"hero_title_3": "Web Applications",
|
|
206
|
+
"meta_desc": "Build blazing-fast web applications with FuzionX. Rust N-API bridge delivering 500K+ RPS, multi-DB ORM, real-time WebSocket, and enterprise-grade security.",
|
|
207
|
+
"stat_db": "Database Drivers",
|
|
208
|
+
"stat_modules": "Core Modules",
|
|
209
|
+
"stat_rps": "Requests/sec",
|
|
210
|
+
"stat_zero_copy": "Memory Copy Uploads",
|
|
211
|
+
"title": "Rust-Powered Full-Stack Node.js Framework",
|
|
212
|
+
"why_subtitle": "See how FuzionX stacks up against popular Node.js frameworks.",
|
|
213
|
+
"why_title_1": "Why"
|
|
214
|
+
},
|
|
215
|
+
"label": {
|
|
216
|
+
"attachments": "Attachments",
|
|
217
|
+
"content": "Content",
|
|
218
|
+
"email": "Email",
|
|
219
|
+
"name": "Name",
|
|
220
|
+
"password": "Password",
|
|
221
|
+
"password_confirm": "Confirm Password",
|
|
222
|
+
"title": "Title"
|
|
223
|
+
},
|
|
224
|
+
"nav": {
|
|
225
|
+
"board": "Board",
|
|
226
|
+
"chat": "Chat Demo",
|
|
227
|
+
"features": "Features",
|
|
228
|
+
"home": "Home",
|
|
229
|
+
"login": "Login",
|
|
230
|
+
"logout": "Logout",
|
|
231
|
+
"profile": "Profile",
|
|
232
|
+
"register": "Register"
|
|
233
|
+
},
|
|
234
|
+
"page": {
|
|
235
|
+
"404": "Page not found",
|
|
236
|
+
"500": "Server error",
|
|
237
|
+
"dashboard": "Dashboard",
|
|
238
|
+
"login": "Login",
|
|
239
|
+
"register": "Register"
|
|
240
|
+
},
|
|
241
|
+
"post": {
|
|
242
|
+
"not_found": "Post not found."
|
|
243
|
+
},
|
|
244
|
+
"profile": {
|
|
245
|
+
"new_password": "New Password (optional)",
|
|
246
|
+
"title": "Edit Profile",
|
|
247
|
+
"update_success": "Profile updated."
|
|
248
|
+
},
|
|
249
|
+
"welcome": "Welcome, {name}! 👋"
|
|
52
250
|
}
|
|
@@ -1,52 +1,250 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
2
|
+
"auth": {
|
|
3
|
+
"email_exists": "이미 등록된 이메일입니다.",
|
|
4
|
+
"has_account": "이미 계정이 있으신가요?",
|
|
5
|
+
"login_failed": "이메일 또는 비밀번호가 올바르지 않습니다.",
|
|
6
|
+
"no_account": "계정이 없으신가요?",
|
|
7
|
+
"password_mismatch": "비밀번호가 일치하지 않습니다.",
|
|
8
|
+
"register_success": "회원가입이 완료되었습니다. 로그인해주세요."
|
|
9
|
+
},
|
|
10
|
+
"board": {
|
|
11
|
+
"attached_files": "기존 첨부파일",
|
|
12
|
+
"author": "작성자",
|
|
13
|
+
"confirm_delete": "삭제하시겠습니까?",
|
|
14
|
+
"date": "날짜",
|
|
15
|
+
"delete_success": "게시글이 성공적으로 삭제되었습니다.",
|
|
16
|
+
"drop_files": "클릭 또는 파일을 여기에 드래그",
|
|
17
|
+
"edit_title": "글 수정",
|
|
18
|
+
"empty": "게시글이 없습니다.",
|
|
19
|
+
"file_hint": "최대 10MB, 이미지/문서 파일",
|
|
20
|
+
"new_title": "새 글 작성",
|
|
21
|
+
"processing": "처리중",
|
|
22
|
+
"store_success": "게시글이 성공적으로 저장되었습니다.",
|
|
23
|
+
"title": "게시판",
|
|
24
|
+
"update_success": "게시글이 성공적으로 수정되었습니다."
|
|
25
|
+
},
|
|
26
|
+
"btn": {
|
|
27
|
+
"back": "← 목록",
|
|
28
|
+
"cancel": "취소",
|
|
29
|
+
"create": "작성",
|
|
30
|
+
"delete": "삭제",
|
|
31
|
+
"edit": "수정",
|
|
32
|
+
"go_home": "홈으로",
|
|
33
|
+
"login": "로그인",
|
|
34
|
+
"new_post": "새 글",
|
|
35
|
+
"register": "회원가입",
|
|
36
|
+
"save": "저장"
|
|
37
|
+
},
|
|
38
|
+
"chat": {
|
|
39
|
+
"btn_join": "채팅 참여",
|
|
40
|
+
"btn_leave": "채팅 나가기",
|
|
41
|
+
"btn_send": "전송",
|
|
42
|
+
"connecting": "연결 중...",
|
|
43
|
+
"demo_sub": "FuzionX 실시간 WebSocket을 직접 체험해보세요.",
|
|
44
|
+
"demo_tech": "기술 스택:",
|
|
45
|
+
"demo_title": "채팅 데모",
|
|
46
|
+
"footer": "WsHandler 기반",
|
|
47
|
+
"footer_link": "WebSocket 기능",
|
|
48
|
+
"meta_desc": "FuzionX WsHandler 기반 실시간 WebSocket 채팅 데모. 사용자 접속 상태와 함께 실시간 메시징을 체험해보세요.",
|
|
49
|
+
"msg_placeholder": "메시지를 입력하세요...",
|
|
50
|
+
"nickname_placeholder": "닉네임을 입력하세요...",
|
|
51
|
+
"online": "접속 중",
|
|
52
|
+
"page_title": "채팅 데모",
|
|
53
|
+
"room_title": "채팅방",
|
|
54
|
+
"typing": "is typing..."
|
|
55
|
+
},
|
|
56
|
+
"common": {
|
|
57
|
+
"forbidden": "권한이 없습니다."
|
|
58
|
+
},
|
|
59
|
+
"dashboard": {
|
|
60
|
+
"about_title": "FuzionX 프레임워크",
|
|
61
|
+
"edit_profile": "수정",
|
|
62
|
+
"feat_auth": "내장 인증 시스템",
|
|
63
|
+
"feat_auth_desc": "세션 기반 인증, bcrypt/argon2 해싱, CSRF 보호가 기본 내장되어 있습니다.",
|
|
64
|
+
"feat_i18n": "다국어 지원 (i18n)",
|
|
65
|
+
"feat_i18n_desc": "JSON 기반 다국어 파일로 한국어/영어 등 자동 번역을 지원하며, 누락 키를 자동 감지합니다.",
|
|
66
|
+
"feat_perf": "고성능 Rust Bridge",
|
|
67
|
+
"feat_perf_desc": "Rust N-API 기반 HTTP 서버, 세션 관리, 암호화, 해싱을 네이티브 속도로 처리합니다.",
|
|
68
|
+
"feat_ssr": "SSR + SPA 동시 지원",
|
|
69
|
+
"feat_ssr_desc": "Tera 템플릿 엔진 기반 SSR과 Vue.js SPA를 하나의 프로젝트에서 동시 운영할 수 있습니다.",
|
|
70
|
+
"go_board": "바로가기",
|
|
71
|
+
"qs_controller": "컨트롤러 작성",
|
|
72
|
+
"qs_controller_desc": "비즈니스 로직은 서비스에 위임하고, 렌더링/리다이렉트를 처리합니다.",
|
|
73
|
+
"qs_route": "라우트 정의",
|
|
74
|
+
"qs_route_desc": "routes.js에서 URL과 컨트롤러를 매핑합니다.",
|
|
75
|
+
"quickstart_title": "빠른 시작"
|
|
76
|
+
},
|
|
77
|
+
"feat": {
|
|
78
|
+
"badge": "프레임워크 기능",
|
|
79
|
+
"bridge_code_title": "네이티브 성능 — JS 오버헤드 제로",
|
|
80
|
+
"bridge_crypto": "네이티브 암호화",
|
|
81
|
+
"bridge_crypto_desc": "bcrypt, argon2id, AES-256-GCM, SHA-256, MD5, UUID v4 — 모두 Rust에서 실행됩니다. crypto 모듈 오버헤드 없음, C++ 애드온 컴파일 이슈 없음.",
|
|
82
|
+
"bridge_media": "미디어 처리",
|
|
83
|
+
"bridge_media_desc": "이미지 리사이징(Lanczos3), WebP 변환, 비디오 썸네일 추출 — Rust image 크레이트와 ffmpeg 바인딩으로 구동.",
|
|
84
|
+
"bridge_rps": "HTTP 엔진이 N-API를 통해 완전히 Rust에서 실행되어 JavaScript 기반 서버가 따라올 수 없는 처리량을 제공합니다. 요청 파싱, 라우팅, 응답 직렬화가 네이티브 속도로 처리됩니다.",
|
|
85
|
+
"bridge_sub": "핵심 작업을 네이티브 성능으로 — JavaScript 오버헤드 없음.",
|
|
86
|
+
"bridge_title": "Rust N-API 브릿지",
|
|
87
|
+
"bridge_zerocopy": "제로카피 파일 업로드",
|
|
88
|
+
"bridge_zerocopy_desc": "멀티파트 파싱은 Rust에서 처리. 파일은 디스크에 직접 기록 — 파일 버퍼가 JavaScript 메모리에 진입하지 않아 대용량 업로드가 안전하고 효율적.",
|
|
89
|
+
"btn_back": "홈으로 돌아가기",
|
|
90
|
+
"btn_chat": "채팅 데모 체험",
|
|
91
|
+
"btn_try_chat": "라이브 채팅 데모 체험 →",
|
|
92
|
+
"cta_sub": "한 줄 명령어로 스캐폴딩. 설정 없이 바로 시작.",
|
|
93
|
+
"cta_title_1": "지금 바로",
|
|
94
|
+
"cta_title_2": "시작하세요",
|
|
95
|
+
"dx_autoscan": "자동 스캔",
|
|
96
|
+
"dx_autoscan_desc": "controllers/, services/, ws/, jobs/ 폴더에 파일을 넣기만 하면 프레임워크가 자동으로 인식하고 등록합니다. 수동 설정 불필요.",
|
|
97
|
+
"dx_cli": "CLI 코드 생성기",
|
|
98
|
+
"dx_cli_desc": "fx make:controller, fx make:model, fx make:service — 적절한 보일러플레이트와 함께 컴포넌트를 즉시 생성합니다.",
|
|
99
|
+
"dx_openapi": "OpenAPI 자동 생성",
|
|
100
|
+
"dx_openapi_desc": "/docs에서 설정 없이 Swagger UI를 제공합니다. 라우트 정의가 자동으로 OpenAPI 3.0 스펙으로 변환됩니다.",
|
|
101
|
+
"dx_sub": "CLI 스캐폴딩, 자동 스캔, 핫 리로드, OpenAPI 문서 — 생산성을 위한 모든 것.",
|
|
102
|
+
"dx_test": "테스트 헬퍼",
|
|
103
|
+
"dx_test_desc": "인프로세스 HTTP 테스트 클라이언트, DB 트랜잭션 롤백, 격리된 테스트 컨텍스트. vitest 즉시 통합.",
|
|
104
|
+
"dx_title": "개발자 경험",
|
|
105
|
+
"header_sub": "성능, 개발자 경험, 엔터프라이즈 준비를 위해 설계된 모든 기능.",
|
|
106
|
+
"header_title_1": "프로덕션을 위해",
|
|
107
|
+
"header_title_2": "만들었습니다",
|
|
108
|
+
"meta_desc": "FuzionX 기능 탐색: Rust N-API 브릿지, 멀티DB ORM, WebSocket, 태스크 큐 등.",
|
|
109
|
+
"orm_access": "3단계 접근",
|
|
110
|
+
"orm_access_desc": "99%는 통합 API → DB 특화 기능은 Raw 쿼리 → 완전한 제어가 필요하면 네이티브 드라이버 직접 접근.",
|
|
111
|
+
"orm_relations": "관계 설정",
|
|
112
|
+
"orm_relations_desc": "hasMany, hasOne, belongsTo, belongsToMany — 메서드로 관계를 정의. .with('posts.comments')로 즉시 로딩.",
|
|
113
|
+
"orm_schema": "모델 기반 스키마 동기화",
|
|
114
|
+
"orm_schema_desc": "모델에서 static columns로 컬럼을 정의하고 fx db:sync를 실행. 마이그레이션 파일 작성 불필요 — 모델이 곧 스키마.",
|
|
115
|
+
"orm_sub": "MariaDB, PostgreSQL, MongoDB를 하나의 API로. 모델 = 스키마 = 단일 진실 소스.",
|
|
116
|
+
"orm_title": "멀티 데이터베이스 ORM",
|
|
117
|
+
"orm_unified": "통합 쿼리 API",
|
|
118
|
+
"orm_unified_desc": "User.where('active', true).paginate(1, 20)을 작성하면 모든 데이터베이스에서 동작합니다. CRUD 작업에 DB별 코드 불필요.",
|
|
119
|
+
"page_title": "기능",
|
|
120
|
+
"queue_queued": "큐 태스크",
|
|
121
|
+
"queue_queued_desc": "재시도 포함 비동기 디스패치: app.dispatch('SendEmail', data). 메모리 또는 Redis 백엔드. 실패한 태스크는 failed() 훅을 호출.",
|
|
122
|
+
"queue_scheduled": "스케줄 작업",
|
|
123
|
+
"queue_scheduled_desc": "Cron 기반 반복 작업. static schedule = 'daily:02:00'. 마스터 프로세스에서 실행, 멀티서버용 Redis 분산 잠금.",
|
|
124
|
+
"queue_sub": "백그라운드 작업을 처리하는 세 가지 방법 — 스케줄, 큐, CPU 격리.",
|
|
125
|
+
"queue_title": "태스크 큐 + 워커",
|
|
126
|
+
"queue_worker_desc": "worker_threads에서 CPU 집약적 작업: app.worker.run('csv-parser', data). 이벤트 루프 블로킹 방지. 타임아웃 + 자동 정리.",
|
|
127
|
+
"sec_asp": "ASP 전송 암호화",
|
|
128
|
+
"sec_asp_desc": "FuzionX 스텔스 프로토콜이 모든 HTTP 요청/응답 본문을 암호화. 애플리케이션 코드에 투명, MITM 공격에 불침투.",
|
|
129
|
+
"sec_hash": "네이티브 비밀번호 해싱",
|
|
130
|
+
"sec_hash_desc": "Rust에서 bcrypt(cost 12)과 argon2id 해싱 — 동일한 보안 보장으로 JavaScript 구현 대비 수십 배 빠름.",
|
|
131
|
+
"sec_rate": "속도 제한 + CSRF",
|
|
132
|
+
"sec_rate_desc": "Rust 브릿지 레이어의 IP별 속도 제한. CSRF 토큰 생성 및 검증. IP 화이트/블랙리스트. HSTS 및 CSP 헤더.",
|
|
133
|
+
"sec_session": "세션 + JWT 인증",
|
|
134
|
+
"sec_session_desc": "파일 또는 Redis 세션 저장소. JWT 액세스/리프레시 토큰 순환. 내장 auth() 미들웨어와 라우트 가드.",
|
|
135
|
+
"sec_sub": "와이어 암호화부터 비밀번호 해싱까지 — 모든 레이어에 프로덕션급 보안을 내장.",
|
|
136
|
+
"sec_title": "엔터프라이즈 보안",
|
|
137
|
+
"ssr_i18n": "내장 i18n",
|
|
138
|
+
"ssr_i18n_desc": "자동 감지, 폴백 로케일, 누락 키 자동 완성이 포함된 JSON 기반 번역.",
|
|
139
|
+
"ssr_multiapp": "멀티앱 라우팅",
|
|
140
|
+
"ssr_multiapp_desc": "다른 도메인을 다른 앱으로 라우팅: api.example.com → spa, www.example.com → ssr. 하나의 코드베이스, 여러 프론트엔드.",
|
|
141
|
+
"ssr_sub": "하나의 프로젝트에서 서버 렌더링 페이지와 싱글페이지 앱을 도메인 라우팅으로 운영.",
|
|
142
|
+
"ssr_tera": "Tera 템플릿 엔진",
|
|
143
|
+
"ssr_tera_desc": "Rust로 컴파일된 Jinja2 호환 템플릿 엔진. 레이아웃, 블록, 상속, 필터, 매크로로 빠른 SSR 렌더링.",
|
|
144
|
+
"ssr_theme": "테마 시스템",
|
|
145
|
+
"ssr_theme_desc": "views/{theme}/ 구조의 다중 뷰 테마. 컨트롤러 코드 변경 없이 설정으로 테마 전환.",
|
|
146
|
+
"ssr_title": "SSR + SPA 하이브리드",
|
|
147
|
+
"ws_dsl": "이벤트 라우팅 DSL",
|
|
148
|
+
"ws_dsl_desc": "static events(e)로 이벤트 → 핸들러 매핑을 선언. 컨트롤러 라우트와 동일한 방식. 깔끔하고 선언적이며 ws/ 폴더에서 자동 스캔.",
|
|
149
|
+
"ws_hub": "허브 브로드캐스팅",
|
|
150
|
+
"ws_hub_desc": "멀티 서버? { hub: true }만 추가하면 됩니다. 메시지가 허브 서버를 통해 연결된 모든 인스턴스로 전달.",
|
|
151
|
+
"ws_middleware": "미들웨어 공유",
|
|
152
|
+
"ws_middleware_desc": "WebSocket 핸드셰이크에 동일한 HTTP 미들웨어를 재사용. 인증 미들웨어가 HTTP와 WS 연결 모두에서 동작.",
|
|
153
|
+
"ws_rooms": "룸",
|
|
154
|
+
"ws_rooms_desc": "socket.join('room:123'), socket.to('room:123').send({...}) — 외부 라이브러리 없이 내장 룸 관리.",
|
|
155
|
+
"ws_sub": "룸, 미들웨어 공유, 멀티서버 허브를 갖춘 네임스페이스 기반 이벤트 라우팅.",
|
|
156
|
+
"ws_title": "실시간 WebSocket"
|
|
157
|
+
},
|
|
158
|
+
"home": {
|
|
159
|
+
"arch_bridge_desc": "Rust N-API 바이너리 — libuv Fusion HTTP, 네이티브 암호화, 미디어 처리, 파일 I/O. 가능한 곳에서 제로카피.",
|
|
160
|
+
"arch_core_desc": "Rust 브릿지를 래핑하는 Express 수준 HTTP 엔진. 라우팅, 요청/응답 라이프사이클, WebSocket 서버.",
|
|
161
|
+
"arch_engine": "엔진",
|
|
162
|
+
"arch_framework_desc": "컨트롤러, 서비스, 모델, 미들웨어, WebSocket 핸들러, 작업 — 완전한 DI 컨테이너를 갖춘 Laravel 스타일 MVC",
|
|
163
|
+
"arch_native": "네이티브",
|
|
164
|
+
"arch_subtitle": "최대 성능과 개발자 편의를 위한 관심사 분리 3계층 설계.",
|
|
165
|
+
"arch_title_1": "계층형",
|
|
166
|
+
"arch_title_2": "아키텍처",
|
|
167
|
+
"arch_you_write": "직접 작성",
|
|
168
|
+
"btn_all_features": "모든 기능 보기",
|
|
169
|
+
"btn_demo": "라이브 데모",
|
|
170
|
+
"btn_features": "기능 탐색",
|
|
171
|
+
"btn_try_chat": "채팅 데모 체험",
|
|
172
|
+
"cmp_3rd_party": "서드파티",
|
|
173
|
+
"cmp_builtin": "내장",
|
|
174
|
+
"cmp_feature": "기능",
|
|
175
|
+
"cmp_http": "HTTP 엔진",
|
|
176
|
+
"cmp_model_based": "모델 기반",
|
|
177
|
+
"cmp_orm": "ORM 내장",
|
|
178
|
+
"cmp_queue": "태스크 큐",
|
|
179
|
+
"cmp_schema": "스키마 동기화",
|
|
180
|
+
"cmp_upload": "파일 업로드",
|
|
181
|
+
"cta_subtitle": "FuzionX를 몇 초 만에 시작하세요. 한 줄 명령어, 설정 불필요.",
|
|
182
|
+
"cta_title_1": "빠른 무언가를",
|
|
183
|
+
"cta_title_2": "만들 준비 되셨나요",
|
|
184
|
+
"feat_bridge": "Rust N-API 브릿지",
|
|
185
|
+
"feat_bridge_desc": "HTTP 서버, 세션 관리, 암호화, 파일 처리를 네이티브 속도로. 핵심 작업에 JavaScript 오버헤드 없음.",
|
|
186
|
+
"feat_orm": "멀티DB ORM",
|
|
187
|
+
"feat_orm_desc": "MariaDB, PostgreSQL, MongoDB를 하나의 통합 API로. 모델 기반 스키마 동기화로 마이그레이션 파일 대체.",
|
|
188
|
+
"feat_queue": "태스크 큐 + 워커",
|
|
189
|
+
"feat_queue_desc": "스케줄 작업(cron), 재시도 로직이 포함된 비동기 태스크 큐, 격리된 스레드에서의 WorkerPool 지원.",
|
|
190
|
+
"feat_security": "엔터프라이즈 보안",
|
|
191
|
+
"feat_security_desc": "네이티브 bcrypt/argon2 해싱, AES-256-GCM 암호화, ASP 와이어 프로토콜, CSRF 보호, 속도 제한.",
|
|
192
|
+
"feat_ssr": "SSR + SPA 하이브리드",
|
|
193
|
+
"feat_ssr_desc": "Tera 템플릿 엔진의 SSR 페이지와 Vue.js SPA를 하나의 프로젝트에서 도메인 기반 라우팅으로 동시 운영.",
|
|
194
|
+
"feat_subtitle": "Rust로 구동되는 배터리 포함 프로덕션 레디 프레임워크.",
|
|
195
|
+
"feat_title_1": "필요한 모든 것.",
|
|
196
|
+
"feat_title_2": "불필요한 것은 없이.",
|
|
197
|
+
"feat_ws": "실시간 WebSocket",
|
|
198
|
+
"feat_ws_desc": "네임스페이스 라우팅, 룸, 이벤트 기반 핸들러, 멀티서버 허브 브로드캐스팅이 프레임워크에 내장.",
|
|
199
|
+
"footer": "Rust 기반 모던 웹을 위한 Node.js 프레임워크.",
|
|
200
|
+
"hero_badge": "Rust N-API 기반",
|
|
201
|
+
"hero_sub_1": "Rust 기반 코어 엔진을 갖춘 Node.js 풀스택 MVC 프레임워크.",
|
|
202
|
+
"hero_sub_2": "초당 500K+ 요청 처리. 제로카피 파일 핸들링. 네이티브 속도 암호화.",
|
|
203
|
+
"hero_title_1": "빠른",
|
|
204
|
+
"hero_title_2": "초고속",
|
|
205
|
+
"hero_title_3": "웹 애플리케이션 구축",
|
|
206
|
+
"meta_desc": "FuzionX로 초고속 웹 애플리케이션을 구축하세요. Rust N-API 브릿지로 500K+ RPS, 멀티DB ORM, 실시간 WebSocket, 엔터프라이즈급 보안.",
|
|
207
|
+
"stat_db": "데이터베이스 드라이버",
|
|
208
|
+
"stat_modules": "코어 모듈",
|
|
209
|
+
"stat_rps": "요청/초",
|
|
210
|
+
"stat_zero_copy": "메모리 카피 업로드",
|
|
211
|
+
"title": "Rust 기반 풀스택 Node.js 프레임워크",
|
|
212
|
+
"why_subtitle": "FuzionX가 인기 Node.js 프레임워크와 어떻게 다른지 확인하세요.",
|
|
213
|
+
"why_title_1": "왜"
|
|
214
|
+
},
|
|
215
|
+
"label": {
|
|
216
|
+
"attachments": "첨부파일",
|
|
217
|
+
"content": "내용",
|
|
218
|
+
"email": "이메일",
|
|
219
|
+
"name": "이름",
|
|
220
|
+
"password": "비밀번호",
|
|
221
|
+
"password_confirm": "비밀번호 확인",
|
|
222
|
+
"title": "제목"
|
|
223
|
+
},
|
|
224
|
+
"nav": {
|
|
225
|
+
"board": "게시판",
|
|
226
|
+
"chat": "채팅 데모",
|
|
227
|
+
"features": "기능",
|
|
228
|
+
"home": "홈",
|
|
229
|
+
"login": "로그인",
|
|
230
|
+
"logout": "로그아웃",
|
|
231
|
+
"profile": "프로필",
|
|
232
|
+
"register": "회원가입"
|
|
233
|
+
},
|
|
234
|
+
"page": {
|
|
235
|
+
"404": "페이지를 찾을 수 없습니다",
|
|
236
|
+
"500": "서버 오류가 발생했습니다",
|
|
237
|
+
"dashboard": "대시보드",
|
|
238
|
+
"login": "로그인",
|
|
239
|
+
"register": "회원가입"
|
|
240
|
+
},
|
|
241
|
+
"post": {
|
|
242
|
+
"not_found": "게시글을 찾을 수 없습니다."
|
|
243
|
+
},
|
|
244
|
+
"profile": {
|
|
245
|
+
"new_password": "새 비밀번호 (변경 시에만)",
|
|
246
|
+
"title": "프로필 수정",
|
|
247
|
+
"update_success": "프로필이 수정되었습니다."
|
|
248
|
+
},
|
|
249
|
+
"welcome": "환영합니다, {name}님 👋"
|
|
52
250
|
}
|
package/templates/spa/meta.json
CHANGED