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 [![Deploy to smbCloud](https://github.com/smbcloudXYZ/smbcloud-cli/blob/development/deploy.svg)](https://smbcloud.xyz)
59
60 ## License
61
62 MIT