feat: add i18n framework with Indonesian translation support (#124)

* feat: add i18n support with separate translation files

- Extract translations from store.js to separate files for easier management
- Add translation files for English (en.js), Indonesian (id.js), Turkish (tr.js), and Chinese (zh.js)
- Load translations via window.translations object before Alpine store initialization
- Add Bahasa Indonesia option to language selector

* feat: translate remaining hardcoded UI strings

- Update index.html to use t() for Menu and GitHub labels
- Update views to translate Tier, Quota, Live, tier badges, and close button
- Update components to use translated error messages and confirmation dialogs
- Update utils to use translated validation and error messages
- Update app-init.js to use translated OAuth success/error messages
This commit is contained in:
Irvan Fauziansyah
2026-01-15 22:33:38 +07:00
committed by GitHub
parent 9ffb83ab74
commit e2d03f9b25
17 changed files with 1413 additions and 890 deletions

View File

@@ -139,7 +139,7 @@
<div class="w-64 flex flex-col h-full pt-6 pb-4 flex-shrink-0">
<!-- Mobile Menu Header -->
<div class="flex items-center justify-between px-4 mb-6 lg:hidden">
<span class="text-sm font-bold text-white">Menu</span>
<span class="text-sm font-bold text-white" x-text="$store.global.t('menu')">Menu</span>
<button @click="sidebarOpen = false" class="text-gray-400 hover:text-white">
<svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
@@ -215,7 +215,7 @@
<div class="flex justify-between">
<span x-text="'V ' + $store.global.version">V 1.0.0</span>
<a href="https://github.com/badri-s2001/antigravity-claude-proxy" target="_blank" rel="noopener noreferrer"
class="hover:text-neon-purple transition-colors">GitHub</a>
class="hover:text-neon-purple transition-colors" x-text="$store.global.t('github')">GitHub</a>
</div>
</div>
</div>
@@ -353,6 +353,11 @@
<script src="js/utils/account-actions.js"></script>
<script src="js/utils/validators.js"></script>
<script src="js/utils/model-config.js"></script>
<!-- Translation files (must load before store.js) -->
<script src="js/translations/en.js"></script>
<script src="js/translations/zh.js"></script>
<script src="js/translations/tr.js"></script>
<script src="js/translations/id.js"></script>
<!-- 2. Alpine Stores (register alpine:init listeners) -->
<script src="js/store.js"></script>
<script src="js/data-store.js"></script>