mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-04 11:37:22 +00:00
feat(nav,settings): bottom nav 5+N collapsible menu + Indonesian locale
Background: 8 bottom-nav items squeeze long English labels on narrow screens. 4.5.1 introduces the 5+N pattern: 5 main tabs plus a fixed 6th "More" button that pops a second-level menu (spring bounce) with the remaining pages. Changes: - MainScreen: nav split into main (<=5, screenOrder-driven) + more (subMenuOrder); More button with popup panel + spring animation; BackHandler closes the menu before navigating back - MoreMenuPopup: bottom-end card, current page highlighted, scrim click to dismiss - UI Settings: page order card now has two zones (main menu, max 5, Settings locked last with no drag handle / more menu); move buttons between zones, drag-to-reorder within zones; new subMenuOrder pref - Defaults: main = Satellites/Passes/Radar/Map/Settings, more = Mutual/Roaming/CwDecode; old screenOrder migrates by classifying pages against the default sub menu - Hard-coded UI strings localized (Tracking/Lat/Lon/Qth/Connect/ Track/Stop/CW permission prompts) into EN/ZH/TR - NEW Indonesian locale (values-in, 181 strings + cw module strings) - user rule: every future release must update EN/ZH/TR/IN - Version 4.5.1 (451) Verified: check_strings.py OK (8 files, no bare apostrophes); :app:compileDebugKotlin BUILD SUCCESSFUL locally.
This commit is contained in:
1 parent
760a26b007
commit
38cf7a3569
19 files changed
+753
-172
No files matched your search
@@ -181,7 +181,7 @@ fun CwDecodeScreen(navigateUp: () -> Unit = {}) {
|
||||
) {
|
||||
Column(horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
Text(
|
||||
text = "Microphone permission is required for CW decoding",
|
||||
text = stringResource(R.string.cw_mic_permission),
|
||||
color = Color.White,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.padding(horizontal = 24.dp)
|
||||
@@ -190,7 +190,7 @@ fun CwDecodeScreen(navigateUp: () -> Unit = {}) {
|
||||
Button(onClick = {
|
||||
permissionLauncher.launch(Manifest.permission.RECORD_AUDIO)
|
||||
}) {
|
||||
Text("Grant permission")
|
||||
Text(stringResource(R.string.cw_grant_permission))
|
||||
}
|
||||
if (permanentlyDenied) {
|
||||
// 勾选了"不再询问": 引导去系统设置开启
|
||||
@@ -202,7 +202,7 @@ fun CwDecodeScreen(navigateUp: () -> Unit = {}) {
|
||||
)
|
||||
)
|
||||
}) {
|
||||
Text("Open app settings")
|
||||
Text(stringResource(R.string.cw_open_settings))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="purple_500">#ff6200ee</color>
|
||||
<integer name="default_font_size">18</integer>
|
||||
<string name="idle">Diam</string>
|
||||
<string name="waterfall_display">Tampilan waterfall</string>
|
||||
<string name="frequency_scale">Skala frekuensi</string>
|
||||
<string name="decoded_text">Teks terdekode</string>
|
||||
<string name="clear">Bersihkan</string>
|
||||
<string name="pause">Jeda Dekode</string>
|
||||
<string name="save_text">Simpan Teks</string>
|
||||
<string name="record_signals">Rekam Sinyal</string>
|
||||
<string name="settings">Pengaturan</string>
|
||||
<string name="help">Bantuan Daring</string>
|
||||
<string name="rate">Nilai Aplikasi Ini</string>
|
||||
<string name="premium">Dapatkan Versi Premium</string>
|
||||
<string name="tap_back_again_to_close">Ketuk Kembali lagi untuk menutup aplikasi</string>
|
||||
<string name="message_type">Tipe Pesan</string>
|
||||
<string name="cw_mic_permission">Izin mikrofon diperlukan untuk dekode CW</string>
|
||||
<string name="cw_grant_permission">Beri izin</string>
|
||||
<string name="cw_open_settings">Buka pengaturan aplikasi</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="purple_500">#ff6200ee</color>
|
||||
<integer name="default_font_size">18</integer>
|
||||
<string name="idle">Beklemede</string>
|
||||
<string name="waterfall_display">Şelale görüntüsü</string>
|
||||
<string name="frequency_scale">Frekans ölçeği</string>
|
||||
<string name="decoded_text">Çözülen metin</string>
|
||||
<string name="clear">Temizle</string>
|
||||
<string name="pause">Çözmeyi Duraklat</string>
|
||||
<string name="save_text">Metni Kaydet</string>
|
||||
<string name="record_signals">Sinyalleri Kaydet</string>
|
||||
<string name="settings">Ayarlar</string>
|
||||
<string name="help">Çevrimiçi Yardım</string>
|
||||
<string name="rate">Bu Uygulamayı Değerlendir</string>
|
||||
<string name="premium">Premium Sürümü Al</string>
|
||||
<string name="tap_back_again_to_close">Kapatmak için Geriye tekrar dokunun</string>
|
||||
<string name="message_type">Mesaj Türü</string>
|
||||
<string name="cw_mic_permission">CW çözme için mikrofon izni gereklidir</string>
|
||||
<string name="cw_grant_permission">İzin ver</string>
|
||||
<string name="cw_open_settings">Uygulama ayarlarını aç</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="purple_500">#ff6200ee</color>
|
||||
<integer name="default_font_size">18</integer>
|
||||
<string name="idle">空闲</string>
|
||||
<string name="waterfall_display">瀑布图</string>
|
||||
<string name="frequency_scale">频率刻度</string>
|
||||
<string name="decoded_text">解码文本</string>
|
||||
<string name="clear">清除</string>
|
||||
<string name="pause">暂停解码</string>
|
||||
<string name="save_text">保存文本</string>
|
||||
<string name="record_signals">录音信号</string>
|
||||
<string name="settings">设置</string>
|
||||
<string name="help">在线帮助</string>
|
||||
<string name="rate">评价此应用</string>
|
||||
<string name="premium">获取高级版</string>
|
||||
<string name="tap_back_again_to_close">再次按返回键退出应用</string>
|
||||
<string name="message_type">消息类型</string>
|
||||
<string name="cw_mic_permission">CW 解码需要麦克风权限</string>
|
||||
<string name="cw_grant_permission">授予权限</string>
|
||||
<string name="cw_open_settings">打开应用设置</string>
|
||||
</resources>
|
||||
@@ -16,4 +16,7 @@
|
||||
<string name="premium">Get Premium Version</string>
|
||||
<string name="tap_back_again_to_close">Tap Back again to close the app</string>
|
||||
<string name="message_type">Message Type</string>
|
||||
<string name="cw_mic_permission">Microphone permission is required for CW decoding</string>
|
||||
<string name="cw_grant_permission">Grant permission</string>
|
||||
<string name="cw_open_settings">Open app settings</string>
|
||||
</resources>
|
||||
Reference in new issue
Block a user