安正超 6b40c2bc16 feat: Add 7 new language packs (DE, ES, IT, JA, KO, PT-BR, RU) and refactor language switcher (#29)
* feat: 补充任务状态和操作相关的翻译键

- 添加小写版本的状态翻译键:waiting, in progress, success, failed, paused, canceled
- 添加 Upload 翻译键
- 更新任务状态显示使用新的翻译键
- 统一翻译键命名规范

* feat: 为法语语言包补充任务状态和操作相关的翻译键

- 添加小写版本的状态翻译键:waiting, in progress, success, failed, paused, canceled
- 添加 Upload 翻译键
- 修复 In Progress 参数名(deleting -> processing)
- 更新 Success Status 和 Failed Status 翻译

* fix: 对齐所有语言包的翻译键

- 为法语语言包添加 Processing (with count) 键
- 为土耳其语语言包添加 success 和 Success Status 键
- 为中文和英文语言包添加 Success Status 键
- 确保所有语言包(中文、英文、土耳其语、法语)的键完全对齐
- 所有语言包现在都有 880 个键

* feat: 添加国际主流语言支持

新增语言包:
- 日语 (ja-JP) - 日本語
- 韩语 (ko-KR) - 한국어
- 德语 (de-DE) - Deutsch
- 西班牙语 (es-ES) - Español
- 俄语 (ru-RU) - Русский
- 葡萄牙语 (pt-BR) - Português
- 意大利语 (it-IT) - Italiano

更新内容:
- 更新 nuxt.config.ts 添加新语言配置
- 更新 language-switcher.vue 组件添加新语言选项
- 所有新语言包包含 880 个翻译键(目前使用英文作为占位符)

现在支持共 11 种语言:英语、中文、日语、韩语、德语、法语、西班牙语、葡萄牙语、意大利语、俄语、土耳其语

* fix: 暂时隐藏未翻译的语言选项

- 从语言选择器中移除尚未翻译的语言(日语、韩语、德语、西班牙语、葡萄牙语、意大利语、俄语)
- 只保留已完整翻译的语言:英语、中文、法语、土耳其语
- 未翻译的语言配置已注释,待翻译完成后可重新启用

这些语言包文件已创建但内容为英文占位符,切换后会显示英文内容

* feat: 完成德语和日语语言包翻译

- 将德语文件 (de-DE.json) 中的所有英文值翻译为德语
- 将日语文件 (ja-JP.json) 中的所有英文值翻译为日语
- 技术术语(如 API、KMS、IAM、MQTT 等)保持英文或使用适当的本地化形式
- 遵循德语和日语的本地化习惯和语言环境

* feat: 完成意大利语、韩语、巴西葡萄牙语和俄语翻译

* feat: 完成西班牙语翻译

* refactor: remove duplicate language options in language-switcher

- Generate options array dynamically from languageConfig
- Eliminate redundant language definitions
- Maintain single source of truth for language data

* fix: input shadow
2025-12-05 22:02:45 +08:00
2025-09-22 16:52:11 +08:00
2025-11-01 09:49:37 +08:00
2025-11-01 00:03:01 +08:00
2025-10-29 22:37:28 +08:00
2025-11-01 00:03:01 +08:00
2025-10-14 10:50:03 +08:00
2025-11-01 00:03:01 +08:00
2024-12-09 22:53:14 +08:00
2025-10-31 10:19:27 +08:00
2025-11-01 00:03:01 +08:00
2025-11-01 00:03:01 +08:00
2025-10-27 22:04:05 +08:00
2025-10-31 08:43:37 +08:00
2024-12-08 14:19:47 +08:00

RustFS Console

A modern web management console for RustFS distributed file system.

Features

  • Vue 3 + Nuxt 4 + TypeScript + Tailwind CSS v4
  • shadcn-vue components with dark mode
  • i18n support (English, Chinese, Turkish)
  • Responsive design
  • S3-compatible API with AWS signing
  • Real-time monitoring dashboard

Quick Start

Prerequisites

  • Node.js >= 22.0.0
  • pnpm >= 10.19.0
  • RustFS backend running

Installation

git clone https://github.com/rustfs/console.git
cd console
pnpm install

Development

pnpm dev

Server starts at http://localhost:3000.

Environment (Optional)

Create .env:

APP_NAME=RustFS
BASE_URL=/rustfs/console/
API_BASE_URL=http://localhost:9000/rustfs/admin/v3
SERVER_HOST=http://localhost:9000
S3_REGION=us-east-1
S3_ENDPOINT=http://localhost:9000

Configuration is auto-detected from server config, localStorage, or browser host.

Production Build

pnpm build
pnpm preview

Project Structure

├── components/     # Vue components
├── composables/    # Reusable logic
├── pages/         # Nuxt routes
├── lib/           # API clients, utilities
├── store/         # Pinia stores
├── tests/         # Test files
└── utils/         # Utility functions

Development

Code Quality

pnpm type-check    # TypeScript checking
pnpm lint          # Linting
pnpm lint:fix      # Auto-fix formatting

Testing

pnpm test          # Run tests
pnpm test:run      # CI mode
pnpm test:coverage # With coverage

See tests/README.md for details.

Coding Standards

  • Component files: kebab-case (bucket-selector.vue)
  • Component usage: StudlyCase (<BucketSelector />)
  • Composables: camelCase with use prefix (useBucket.ts)
  • TypeScript: Strict mode, avoid any
  • Comments: English only

Contributing

Workflow

  1. Fork and clone
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Make changes following coding standards
  4. Test: pnpm type-check && pnpm lint && pnpm test:run
  5. Commit: git commit -m 'feat: add amazing feature' (English only)
  6. Push and create PR

Pre-Commit Checklist

Before committing, run all checks:

# Quick check (lint, type-check, tests, build)
pnpm run check

# Full check (includes security audit)
pnpm run pre-commit

Or manually:

  • pnpm lint passes
  • pnpm type-check passes
  • pnpm test:run passes
  • pnpm build succeeds
  • pnpm audit --audit-level=moderate passes
  • No debug code (console.log)
  • Self-reviewed
  • Commit messages in English

Tip: Run pnpm run check before every commit to catch issues early.

Commit Convention

Follow Conventional Commits:

  • feat: New features
  • fix: Bug fixes
  • docs: Documentation
  • style: Formatting
  • refactor: Code refactoring
  • test: Tests
  • chore: Build/tool changes

All commit messages must be in English.

Deployment

Build

pnpm build

Output: .output/public (static files)

Docker

FROM node:22-alpine AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && corepack prepare pnpm@10.19.0 --activate
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build

FROM nginx:alpine
COPY --from=builder /app/.output/public /usr/share/nginx/html
EXPOSE 80

License

Apache License 2.0 - see LICENSE

S
Description
A modern, responsive web management console for RustFS distributed file system, built with Vue 3 + Nuxt 4 + TypeScript + Tailwind CSS v4 and TypeScript.
Readme Apache-2.0 37 MiB
Languages
TypeScript 90.3%
JavaScript 9.4%
CSS 0.3%