Thank you for your interest in contributing to this project! We appreciate your help in making this project better.
- How to Contribute
- Pull Request Guidelines
- Development
- Internationalization (i18n)
- Branch Structure
- Code Quality
Feel free to contribute to this project by:
- Opening issues to report bugs or suggest features
- Submitting pull requests with improvements or fixes
Important
Please make sure to select the dev branch when submitting pull requests.
To set up your development environment:
| Command | Description |
|---|---|
bun install |
Install dependencies |
bun run dev:frontend |
Start development server |
bun run dev |
Run the full app |
bun run build:all |
Build for all platforms |
bun run check |
Run checks/linting |
This project uses a dynamically loaded, namespace-based translation system. English (en) is the source of truth for all localization.
- Always edit English first: Add or modify keys in
src/frontend/svelte/i18n/locales/en/. - Sync structure: Run
bun run check(or specificallybun run i18n:generate).- This automatically copies missing files and keys into other languages (like
zh). - Missing translations are prepended with
[NYT_LANG](Not Yet Translated) so translators can easily spot them. - Note: These prefixes are automatically stripped when the app runs, so users only see the clean English fallback text.
- This automatically copies missing files and keys into other languages (like
- Translate: Open the other language files and translate the strings that have the
[NYT_LANG]prefix, removing the prefix once done. - Verify: Use
bun run check:frontend(orbun run i18n:check) to see a report of any missing keys.
main- Stable release branchdev- Development branch (base for pull requests)
Please ensure your code passes all checks before submitting:
bun run checkThis runs:
- Frontend (Svelte Check & TypeScript)
- Backend (Go Vet, Golangci-lint & Go Test)
Thank you for contributing! 🎉