copilot/add-i18n-support-for-english
copilot/add-i18n-support-for-english
dependabot/npm_and_yarn/astro-5.16.4
dependabot/npm_and_yarn/katex-0.16.27
dependabot/npm_and_yarn/prettier-3.7.4
dependabot/npm_and_yarn/tailwindcss-4.1.16
dependabot/npm_and_yarn/tailwindcss/vite-4.1.16
dependabot/npm_and_yarn/typescript-eslint-8.46.2
dependabot/npm_and_yarn/typescript-eslint/parser-8.46.2
development
main
| 1 | # PBJ Komplit! |
| 2 | |
| 3 | Tempat belajar bahasa Jawa. / A place to learn Javanese language. |
| 4 | |
| 5 | ## Features |
| 6 | |
| 7 | - 🌐 **Bilingual Support**: Full internationalization (i18n) with Indonesian and English |
| 8 | - 📱 **Responsive Design**: Works seamlessly on all devices |
| 9 | - 🎨 **Modern UI**: Clean and intuitive interface |
| 10 | - 🔍 **SEO Optimized**: Proper metadata and language alternates for better search engine visibility |
| 11 | |
| 12 | ## Internationalization (i18n) |
| 13 | |
| 14 | This site supports multiple languages: |
| 15 | |
| 16 | - **Indonesian (id)** - Default language, accessible at `/` |
| 17 | - **English (en)** - Accessible at `/en/` |
| 18 | |
| 19 | ### Language Structure |
| 20 | |
| 21 | The i18n implementation includes: |
| 22 | |
| 23 | 1. **Astro i18n Configuration** (`astro.config.ts`) |
| 24 | - Configured routing for Indonesian (default) and English |
| 25 | - Default locale: `id` |
| 26 | - Supported locales: `id`, `en` |
| 27 | |
| 28 | 2. **Translation System** (`src/i18n/`) |
| 29 | - `ui.ts` - Translation dictionaries for UI strings |
| 30 | - `utils.ts` - Helper functions for language detection and URL generation |
| 31 | |
| 32 | 3. **Content Organization** |
| 33 | - Indonesian content: `src/content/posts/`, `src/content/about/` |
| 34 | - English content: `src/content/posts/en/`, `src/content/about/en/` |
| 35 | |
| 36 | 4. **Language Switcher** |
| 37 | - Located in the header for easy language switching |
| 38 | - Maintains the same page context when switching languages |
| 39 | |
| 40 | ### Adding New Translations |
| 41 | |
| 42 | To add translations for UI elements: |
| 43 | |
| 44 | 1. Edit `src/i18n/ui.ts` |
| 45 | 2. Add the key-value pair in both `en` and `id` sections |
| 46 | 3. Use the `t()` function in components to access translations |
| 47 | |
| 48 | ### Adding Translated Content |
| 49 | |
| 50 | For blog posts or pages: |
| 51 | |
| 52 | 1. Create content in `src/content/posts/en/` for English versions |
| 53 | 2. Keep Indonesian versions in `src/content/posts/` |
| 54 | 3. Use the same filename for both versions |
| 55 | |
| 56 | ## Deploy on smbCloud |
| 57 | |
| 58 | [](https://smbcloud.xyz) |
| 59 | |
| 60 | ## License |
| 61 | |
| 62 | MIT |