Skip to content

Commit a174d17

Browse files
feat: add Indonesian (Bahasa Indonesia) localization (#1513)
* feat: add Indonesian (Bahasa Indonesia) localization Add native Indonesian (id) as a first-class language: - id.lproj/Localizable.strings with all strings translated to native Indonesian (placeholders/format specifiers preserved) - Register `indonesian` in the AppLanguage enum + Settings language picker - Add the localized "language_indonesian" name to en.lproj - Extend LocalizationLanguageCatalogTests parity list * docs: note Italian and Indonesian localization --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
1 parent 2d9ddd0 commit a174d17

21 files changed

Lines changed: 1161 additions & 2 deletions

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
- Ollama: replace the bundled provider icon with the cleaner official mark while preserving native template tinting. Thanks @mattab178!
66
- Menu bar: avoid a one-time visible menu rebuild after first-open background data arrives.
77
- Settings: use high-contrast selected-content colors for provider sidebar text and icons.
8+
- Localization: add Italian as a selectable app language (#1248). Thanks @Yuxin-Qiao!
9+
- Localization: add Indonesian as a selectable app language (#1513). Thanks @StevanusPangau!
810

911
### Changed
1012
- Antigravity: prefer app and `agy` quota summaries, group usage into Gemini and Claude + GPT session/weekly pools, and preserve IDE and OAuth fallbacks. Thanks @Zihao-Qi!
@@ -60,7 +62,6 @@
6062
- Menu bar: add an optional reset-time display for the selected quota metric, with percent fallback when reset metadata is unavailable (#1223, fixes #1185). Thanks @Yuxin-Qiao!
6163
- Cursor: include application data, extensions, settings, and caches in optional local storage tracking (fixes #1403). Thanks @dhruv-anand-aintech!
6264
- Menu bar: move the highlighted Overview provider with trackpad or mouse-wheel scrolling while preserving native submenu and keyboard behavior (#1436). Thanks @joshuavial!
63-
- Localization: add Italian as a selectable app language (#1248). Thanks @Yuxin-Qiao!
6465

6566
### Fixed
6667
- CLI: keep Ollama API credentials scoped to Ollama when deciding whether another provider requires macOS web support (#1466). Thanks @WadydX!

Sources/CodexBar/PreferencesGeneralPane.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ enum AppLanguage: String, CaseIterable, Identifiable {
2020
case japanese = "ja"
2121
case korean = "ko"
2222
case turkish = "tr"
23+
case indonesian = "id"
2324

2425
var id: String {
2526
self.rawValue
@@ -44,6 +45,7 @@ enum AppLanguage: String, CaseIterable, Identifiable {
4445
case .japanese: L("language_japanese")
4546
case .korean: L("language_korean")
4647
case .turkish: L("language_turkish")
48+
case .indonesian: L("language_indonesian")
4749
}
4850
}
4951
}

Sources/CodexBar/Resources/ca.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,3 +934,4 @@
934934

935935
"language_vietnamese" = "Vietnamita";
936936
"language_turkish" = "Türkçe";
937+
"language_indonesian" = "Indonesi";

Sources/CodexBar/Resources/de.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@
411411
"language_korean" = "Koreanisch";
412412
"language_turkish" = "Türkçe";
413413
"language_italian" = "Italiano";
414+
"language_indonesian" = "Indonesisch";
414415
"start_at_login_title" = "Beim Login starten";
415416
"start_at_login_subtitle" = "Startet CodexBar automatisch, wenn dein Mac hochfährt.";
416417
"show_cost_summary" = "Kostenübersicht anzeigen";

Sources/CodexBar/Resources/en.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,5 +1077,6 @@
10771077
"Search providers" = "Search providers";
10781078

10791079
"language_vietnamese" = "Vietnamese";
1080+
"language_indonesian" = "Bahasa Indonesia";
10801081

10811082
"Request quota: %@ / %@" = "Request quota: %@ / %@";

Sources/CodexBar/Resources/es.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,3 +934,4 @@
934934

935935
"language_vietnamese" = "Vietnamita";
936936
"language_turkish" = "Türkçe";
937+
"language_indonesian" = "Indonesio";

Sources/CodexBar/Resources/fr.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@
411411
"language_italian" = "Italiano";
412412
"language_vietnamese" = "Vietnamien";
413413
"language_turkish" = "Türkçe";
414+
"language_indonesian" = "Indonésien";
414415
"start_at_login_title" = "Lancer à l'ouverture de session";
415416
"start_at_login_subtitle" = "Ouvre automatiquement CodexBar au démarrage de votre Mac.";
416417
"show_cost_summary" = "Afficher le récapitulatif des coûts";

Sources/CodexBar/Resources/id.lproj/Localizable.strings

Lines changed: 1081 additions & 0 deletions
Large diffs are not rendered by default.

Sources/CodexBar/Resources/it.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@
413413
"language_dutch" = "Olandese";
414414
"language_ukrainian" = "Ucraino";
415415
"language_vietnamese" = "Vietnamita";
416+
"language_indonesian" = "Indonesiano";
416417
"start_at_login_title" = "Avvia all'accesso";
417418
"start_at_login_subtitle" = "Apre automaticamente CodexBar quando avvii il Mac.";
418419
"show_cost_summary" = "Mostra riepilogo costi";

Sources/CodexBar/Resources/ja.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,3 +1075,4 @@
10751075

10761076
"language_vietnamese" = "ベトナム語";
10771077
"language_turkish" = "Türkçe";
1078+
"language_indonesian" = "インドネシア語";

0 commit comments

Comments
 (0)