From 7add81e8b6a34c990afea11ebfdedde372107940 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Fri, 9 Jan 2026 16:06:17 +0000 Subject: [PATCH] Added tweaks to GH actions workflow, refactored strings --- .github/workflows/{main.yml => release.yml} | 50 ++-- README.md | 2 +- .../com/rtbishop/look4sat/MainContainer.kt | 2 +- .../presentation/common/Components.kt | 8 +- .../look4sat/presentation/map/MapScreen.kt | 4 +- .../presentation/passes/PassesDialog.kt | 9 +- .../presentation/passes/PassesScreen.kt | 6 +- .../presentation/radar/RadarScreen.kt | 13 +- .../satellites/SatellitesDialog.kt | 4 +- .../satellites/SatellitesScreen.kt | 6 +- .../presentation/settings/SettingsDialog.kt | 10 +- .../presentation/settings/SettingsScreen.kt | 56 ++-- .../settings/SettingsViewModel.kt | 12 +- app/src/main/res/values-es-rES/strings.xml | 228 ++++++++-------- app/src/main/res/values-ru/strings.xml | 230 ++++++++-------- app/src/main/res/values-si/strings.xml | 232 ++++++++--------- app/src/main/res/values-uk/strings.xml | 230 ++++++++-------- app/src/main/res/values-zh-rCN/strings.xml | 233 +++++++---------- app/src/main/res/values/strings.xml | 246 ++++++++---------- .../android/en-US/images/bcm_button.png | Bin 5761 -> 0 bytes gradle.properties | 2 - gradle/libs.versions.toml | 2 +- 22 files changed, 728 insertions(+), 857 deletions(-) rename .github/workflows/{main.yml => release.yml} (67%) delete mode 100644 fastlane/metadata/android/en-US/images/bcm_button.png diff --git a/.github/workflows/main.yml b/.github/workflows/release.yml similarity index 67% rename from .github/workflows/main.yml rename to .github/workflows/release.yml index c7aaf49b..f4f6bd2b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/release.yml @@ -1,26 +1,34 @@ -name: Look4Sat CI +name: release on: push: tags: - v** -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout Latest Commit - uses: actions/checkout@v4 +env: + TAG_NAME: ${{ github.ref_name }} + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - - name: Setup java environment - uses: actions/setup-java@v4 +jobs: + release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout Repository + uses: actions/checkout@v6 + + - name: Setup Java + uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: '17' + java-version: '21' - - name: Assemble APK and Bundle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + + - name: Assemble Artifacts run: | - chmod +x ./gradlew ./gradlew assembleRelease ./gradlew bundleRelease @@ -34,7 +42,7 @@ jobs: alias: ${{ secrets.KEY_ALIAS }} keyPassword: ${{ secrets.KEY_PASSWORD }} env: - BUILD_TOOLS_VERSION: "35.0.1" + BUILD_TOOLS_VERSION: "36.0.0" - name: Sign Bundle uses: r0adkll/sign-android-release@v1 @@ -46,14 +54,14 @@ jobs: alias: ${{ secrets.KEY_ALIAS }} keyPassword: ${{ secrets.KEY_PASSWORD }} env: - BUILD_TOOLS_VERSION: "35.0.1" + BUILD_TOOLS_VERSION: "36.0.0" - - name: Rename APK and Bundle + - name: Rename Artifacts run: | mv ${{steps.sign_apk.outputs.signedReleaseFile}} app/build/outputs/apk/release/look4sat.apk mv ${{steps.sign_bundle.outputs.signedReleaseFile}} app/build/outputs/apk/release/look4sat.aab - - name: Deploy Bundle to Play Store + - name: Deploy Bundle uses: r0adkll/upload-google-play@v1 with: serviceAccountJsonPlainText: ${{secrets.SERVICE_ACCOUNT_JSON}} @@ -62,9 +70,7 @@ jobs: track: beta whatsNewDirectory: fastlane/metadata/android/en-US/whatsnew - - name: Create release - uses: ncipollo/release-action@v1 - with: - artifacts: "app/build/outputs/apk/release/look4sat.apk,app/build/outputs/apk/release/look4sat.aab" - bodyFile: fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US - token: ${{ secrets.RELEASE_TOKEN }} + - name: Create Release + run: | + gh release create $TAG_NAME --title=$TAG_NAME --generate-notes + gh release upload $TAG_NAME app/build/outputs/apk/release/look4sat.apk diff --git a/README.md b/README.md index b9c4b4c2..6d7dee2f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Look4Sat: Satellite tracker -[![Look4Sat CI](https://github.com/rt-bishop/Look4Sat/actions/workflows/main.yml/badge.svg)](https://github.com/rt-bishop/Look4Sat/actions/workflows/main.yml) +[![Look4Sat CI](https://github.com/rt-bishop/Look4Sat/actions/workflows/release.yml/badge.svg)](https://github.com/rt-bishop/Look4Sat/actions/workflows/release.yml) [Get it on Google Play](https://play.google.com/store/apps/details?id=com.rtbishop.look4sat) [Get it on F-Droid](https://f-droid.org/packages/com.rtbishop.look4sat/) diff --git a/app/src/main/java/com/rtbishop/look4sat/MainContainer.kt b/app/src/main/java/com/rtbishop/look4sat/MainContainer.kt index e4fc2b9f..e59066cf 100644 --- a/app/src/main/java/com/rtbishop/look4sat/MainContainer.kt +++ b/app/src/main/java/com/rtbishop/look4sat/MainContainer.kt @@ -83,7 +83,7 @@ class MainContainer(private val context: Context) { } private fun provideLocalSource(): ILocalSource { - val builder = Room.databaseBuilder(context, Look4SatDb::class.java, "Look4SatDBv313") + val builder = Room.databaseBuilder(context, Look4SatDb::class.java, "Look4SatDBv400") val database = builder.apply { fallbackToDestructiveMigration(false) }.build() return LocalSource(database.look4SatDao()) } diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/common/Components.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/common/Components.kt index 75729d6e..81d4300f 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/common/Components.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/common/Components.kt @@ -108,7 +108,7 @@ fun RowScope.NextPassRow(pass: OrbitalPass, modifier: Modifier = Modifier) { // .background(color = MaterialTheme.colorScheme.background) .padding(start = 6.dp, top = 1.dp, end = 6.dp, bottom = 0.dp) ) { - val passSatId = stringResource(id = R.string.pass_satId, pass.catNum) + val passSatId = stringResource(id = R.string.passes_satId, pass.catNum) Row(verticalAlignment = Alignment.CenterVertically) { Text( text = "$passSatId - ", @@ -175,7 +175,7 @@ fun RowScope.NextPassRow(pass: OrbitalPass, modifier: Modifier = Modifier) { ) { Text( text = stringResource( - id = R.string.pass_aosLos, + id = R.string.passes_aosLos, pass.aosAzimuth.toInt(), pass.losAzimuth.toInt() ), @@ -235,7 +235,7 @@ fun EmptyListCard(message: String) { verticalArrangement = Arrangement.spacedBy(16.dp), modifier = Modifier.padding(32.dp) ) { - Text(text = stringResource(R.string.empty_list_title), fontSize = 21.sp) + Text(text = stringResource(R.string.empty_list_message), fontSize = 21.sp) Text(text = message, fontSize = 18.sp, textAlign = TextAlign.Center) } } @@ -302,7 +302,7 @@ fun InfoDialog(title: String, text: String, onDismiss: () -> Unit) { Spacer(modifier = Modifier.weight(1f)) CardButton( onClick = onDismiss, - text = stringResource(id = R.string.btn_understand) + text = stringResource(id = R.string.btn_accept) ) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/map/MapScreen.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/map/MapScreen.kt index 5a203403..130609a6 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/map/MapScreen.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/map/MapScreen.kt @@ -144,7 +144,7 @@ private fun MapDataCard(data: MapData) { val textColor = MaterialTheme.colorScheme.primary val cardColors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainerLowest) Column(horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween) { - Text(text = "© OpenStreetMap contributors", fontSize = 14.sp) + Text(text = stringResource(R.string.map_copyright), fontSize = 14.sp) Card(colors = cardColors) { Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) { Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) { @@ -172,7 +172,7 @@ private fun MapDataCard(data: MapData) { private fun MapDataCards(data: MapData) { val cardColors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainerLowest) val paddingMod = Modifier.padding(horizontal = 8.dp, vertical = 4.dp).width(160.dp) - val osmText = "© OpenStreetMap contributors" + val osmText = stringResource(R.string.map_copyright) val textColor = MaterialTheme.colorScheme.primary Box(modifier = Modifier.fillMaxSize()) { Card(colors = cardColors, modifier = Modifier.align(Alignment.TopStart)) { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesDialog.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesDialog.kt index 732d3d4d..02a28322 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesDialog.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesDialog.kt @@ -42,6 +42,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview @@ -73,16 +74,16 @@ fun PassesDialog(hours: Int, elevation: Double, cancel: () -> Unit, accept: (Int val onAccept = { accept(hoursValue.intValue, elevationValueNew.doubleValue).also { cancel() } } - SharedDialog(title = "Passes", onCancel = cancel, onAccept = onAccept) { + SharedDialog(title = stringResource(R.string.passes_filter_passes), onCancel = cancel, onAccept = onAccept) { SliderRow( - title = "Show passes above", + title = stringResource(R.string.passes_filter_above), value = elevationValueNew.doubleValue, valuePostfix = "°", valueResId = R.drawable.ic_elevation, valueRange = 0f..60f ) { elevationValueNew.doubleValue = it.toDouble() } SliderRow( - title = "Show passes within", + title = stringResource(R.string.passes_filter_within), value = hoursValue.intValue.toDouble(), valuePostfix = "h", valueResId = R.drawable.ic_clock, @@ -145,7 +146,7 @@ fun RadiosDialog(modes: List, cancel: () -> Unit, accept: (List) if (selected.contains(mode)) selected.remove(mode) else selected.add(mode) } val onAccept = { accept(selected.toList()).also { cancel() } } - SharedDialog(title = "Radios", onCancel = cancel, onAccept = onAccept) { + SharedDialog(title = stringResource(R.string.passes_filter_modes), onCancel = cancel, onAccept = onAccept) { LazyVerticalGrid( columns = GridCells.Adaptive(240.dp), modifier = Modifier diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesScreen.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesScreen.kt index 1e3ac9a4..a27d9003 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesScreen.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/passes/PassesScreen.kt @@ -204,7 +204,7 @@ private fun NearEarthPass( modifier: Modifier = Modifier, isVerticalLayout: Boolean = true ) { - val passSatId = stringResource(id = R.string.pass_satId, pass.catNum) + val passSatId = stringResource(id = R.string.passes_satId, pass.catNum) val horizontalPadding = if (isVerticalLayout) 6.dp else 10.dp Surface(color = MaterialTheme.colorScheme.background, modifier = modifier) { Surface(modifier = Modifier @@ -254,7 +254,7 @@ private fun NearEarthPass( verticalAlignment = Alignment.CenterVertically ) { if (pass.isDeepSpace) { - Text(text = "DeepSpace", fontSize = 15.sp) + Text(text = stringResource(R.string.passes_deep_space), fontSize = 15.sp) } else { Text( text = sdfDate.format(Date(pass.aosTime)), @@ -285,7 +285,7 @@ private fun NearEarthPass( ) { Text( text = stringResource( - id = R.string.pass_aosLos, + id = R.string.passes_aosLos, pass.aosAzimuth.toInt(), pass.losAzimuth.toInt() ), diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radar/RadarScreen.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radar/RadarScreen.kt index 22582330..178718bd 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radar/RadarScreen.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radar/RadarScreen.kt @@ -32,6 +32,8 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.rotate import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -333,7 +335,7 @@ private fun EclipsedIndicator() { contentAlignment = Alignment.Center ) { Text( - text = "Eclipsed!", + text = stringResource(R.string.radar_eclipsed), fontSize = 18.sp, fontWeight = FontWeight.Medium, color = MaterialTheme.colorScheme.background, @@ -387,12 +389,13 @@ private fun FrequencyRow(radio: SatRadio, isDownlink: Boolean, modifier: Modifie Row(verticalAlignment = Alignment.CenterVertically, modifier = modifier.fillMaxWidth()) { val rotateMod = Modifier.rotate(if (isDownlink) 90f else -90f) val weightMod = Modifier.weight(1f) + val desc = if (isDownlink) stringResource(R.string.radar_downlink) else stringResource(R.string.radar_uplink) Text( text = if (isDownlink) "D:" else "U:", textAlign = TextAlign.Center, fontSize = 18.sp, color = MaterialTheme.colorScheme.onSurface, - modifier = modifier.size(width = 24.dp, height = 24.dp) + modifier = modifier.size(width = 24.dp, height = 24.dp).semantics { contentDescription = desc } ) FrequencyText(if (isDownlink) radio.downlinkLow else radio.uplinkLow, weightMod) Text( @@ -407,7 +410,7 @@ private fun FrequencyRow(radio: SatRadio, isDownlink: Boolean, modifier: Modifie Icon( painter = painterResource(id = R.drawable.ic_arrow), tint = MaterialTheme.colorScheme.onSurface, - contentDescription = if (isDownlink) "Downlink" else "Uplink", + contentDescription = null, modifier = rotateMod.size(width = 24.dp, height = 24.dp) ) } @@ -415,10 +418,10 @@ private fun FrequencyRow(radio: SatRadio, isDownlink: Boolean, modifier: Modifie @Composable private fun FrequencyText(frequency: Long?, modifier: Modifier = Modifier) { - val noLinkText = stringResource(R.string.radio_no_link) + val noLinkText = stringResource(R.string.radar_no_link) val freqValue = frequency?.let { it / 1000000f } Text( - text = freqValue?.let { stringResource(id = R.string.radio_link_low, it) } ?: noLinkText, + text = freqValue?.let { stringResource(id = R.string.radar_link_low, it) } ?: noLinkText, textAlign = TextAlign.Center, fontSize = 21.sp, fontWeight = FontWeight.Bold, diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesDialog.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesDialog.kt index c12a9f42..9a855eda 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesDialog.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesDialog.kt @@ -17,10 +17,12 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.rtbishop.look4sat.R import com.rtbishop.look4sat.presentation.MainTheme import com.rtbishop.look4sat.presentation.common.SharedDialog @@ -40,7 +42,7 @@ fun MultiTypesDialog( if (selected.contains(type)) selected.remove(type) else selected.add(type) } val onAccept = { accept(selected.toList()) } - SharedDialog(title = "Select category", onCancel = cancel, onAccept = onAccept) { + SharedDialog(title = stringResource(R.string.satellites_select_type), onCancel = cancel, onAccept = onAccept) { LazyVerticalGrid( columns = GridCells.Adaptive(240.dp), modifier = Modifier diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesScreen.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesScreen.kt index c8bd5a32..763bbecf 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesScreen.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/satellites/SatellitesScreen.kt @@ -143,7 +143,7 @@ private fun SearchBar(setQuery: (String) -> Unit, modifier: Modifier = Modifier) decorationBox = { innerTextField -> if (currentQuery.value.isEmpty()) { Text( - text = stringResource(id = R.string.entries_search_hint), + text = stringResource(id = R.string.satellites_search_hint), fontSize = 16.sp, lineHeight = 20.sp, fontWeight = FontWeight.Medium, @@ -178,7 +178,7 @@ private fun TypeCard(types: List, onClick: () -> Unit, modifier: Modifie tint = MaterialTheme.colorScheme.primary ) Text( - text = "Tags: $typesText", + text = stringResource(R.string.satellites_type, typesText), fontSize = 16.sp, fontWeight = FontWeight.Medium, modifier = Modifier @@ -199,7 +199,7 @@ private fun SatellitePreview() { @Composable private fun Satellite(item: SatItem, onSelected: (Int, Boolean) -> Unit, modifier: Modifier) { - val passSatId = stringResource(id = R.string.pass_satId, item.catnum) + val passSatId = stringResource(id = R.string.passes_satId, item.catnum) Surface( color = MaterialTheme.colorScheme.background, modifier = modifier.clickable { onSelected(item.catnum, item.isSelected) }) { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsDialog.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsDialog.kt index 48fb1188..7f7d0fc2 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsDialog.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsDialog.kt @@ -21,12 +21,12 @@ private fun PositionDialogPreview() { fun PositionDialog(lat: Double, lon: Double, dismiss: () -> Unit, save: (Double, Double) -> Unit) { val latValue = rememberSaveable { mutableStateOf(lat.toString()) } val lonValue = rememberSaveable { mutableStateOf(lon.toString()) } - val titleText = stringResource(id = R.string.position_title) + val titleText = stringResource(id = R.string.settings_position_title) val onAccept = { saveValues(latValue.value, lonValue.value, save).also { dismiss() } } SharedDialog(title = titleText, onCancel = dismiss, onAccept = onAccept) { - Text(text = stringResource(id = R.string.position_lat_text)) + Text(text = stringResource(id = R.string.settings_position_lat_text)) OutlinedTextField(value = latValue.value, onValueChange = { latValue.value = it }) - Text(text = stringResource(id = R.string.position_lon_text)) + Text(text = stringResource(id = R.string.settings_position_lon_text)) OutlinedTextField(value = lonValue.value, onValueChange = { lonValue.value = it }) } } @@ -49,8 +49,8 @@ private fun LocatorDialogPreview() { fun LocatorDialog(qthLocator: String, dismiss: () -> Unit, save: (String) -> Unit) { val locator = rememberSaveable { mutableStateOf(qthLocator) } val onAccept = { save(locator.value).also { dismiss() } } - SharedDialog(title = "Radios", onCancel = dismiss, onAccept = onAccept) { - Text(text = stringResource(id = R.string.locator_text)) + SharedDialog(title = stringResource(R.string.settings_locator_title), onCancel = dismiss, onAccept = onAccept) { + Text(text = stringResource(id = R.string.settings_locator_text)) OutlinedTextField(value = locator.value, onValueChange = { locator.value = it }) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsScreen.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsScreen.kt index b81d63b0..4ca73ca7 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsScreen.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsScreen.kt @@ -72,7 +72,7 @@ fun NavGraphBuilder.settingsDestination() { private fun SettingsScreen(uiState: SettingsState) { // Permissions setup val bluetoothContract = ActivityResultContracts.RequestPermission() - val bluetoothError = stringResource(R.string.BTremote_perm_error) + val bluetoothError = stringResource(R.string.settings_BTremote_perm_error) val bluetoothPerm = when { Build.VERSION.SDK_INT < Build.VERSION_CODES.S -> Manifest.permission.BLUETOOTH else -> Manifest.permission.BLUETOOTH_CONNECT @@ -84,7 +84,7 @@ private fun SettingsScreen(uiState: SettingsState) { } } val locationContract = ActivityResultContracts.RequestMultiplePermissions() - val locationError = stringResource(R.string.location_gps_error) + val locationError = stringResource(R.string.settings_location_gps_error) val locationPermCoarse = Manifest.permission.ACCESS_COARSE_LOCATION val locationPermFine = Manifest.permission.ACCESS_FINE_LOCATION val locationRequest = rememberLauncherForActivityResult(locationContract) { permissions -> @@ -233,7 +233,7 @@ private fun LocationCard( ) { Row(verticalAlignment = Alignment.CenterVertically) { Text( - text = stringResource(id = R.string.location_title), + text = stringResource(id = R.string.settings_location_title), color = MaterialTheme.colorScheme.primary ) UpdateIndicator(isUpdating = settings.isUpdating, Modifier.weight(1f)) @@ -262,19 +262,19 @@ private fun LocationCard( Row(horizontalArrangement = Arrangement.SpaceEvenly) { CardButton( onClick = setGpsPos, - text = stringResource(id = R.string.btn_gps), + text = stringResource(id = R.string.settings_station_gps), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = showPosDialog, - text = stringResource(id = R.string.btn_manual), + text = stringResource(id = R.string.settings_station_manual), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = showLocDialog, - text = stringResource(id = R.string.btn_qth), + text = stringResource(id = R.string.settings_station_qth), modifier = Modifier.weight(1f) ) } @@ -310,7 +310,7 @@ private fun DataCard( ) { Row(verticalAlignment = Alignment.CenterVertically) { Text( - text = stringResource(id = R.string.data_title), + text = stringResource(id = R.string.settings_data_title), color = MaterialTheme.colorScheme.primary ) UpdateIndicator(isUpdating = settings.isUpdating, Modifier.weight(1f)) @@ -327,19 +327,19 @@ private fun DataCard( Row(horizontalArrangement = Arrangement.SpaceEvenly) { CardButton( onClick = { updateFromWeb() }, - text = stringResource(id = R.string.btn_web), + text = stringResource(id = R.string.settings_data_online), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = { updateFromFile() }, - text = stringResource(id = R.string.btn_import), + text = stringResource(id = R.string.settings_data_import), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = { clearAllData() }, - text = stringResource(id = R.string.btn_clear), + text = stringResource(id = R.string.settings_data_clear), modifier = Modifier.weight(1f) ) } @@ -372,7 +372,7 @@ private fun NetworkOutputCard( ElevatedCard(modifier = Modifier.fillMaxWidth()) { Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) { Text( - text = stringResource(id = R.string.remote_title), + text = stringResource(id = R.string.settings_remote_title), color = MaterialTheme.colorScheme.primary ) Row( @@ -380,7 +380,7 @@ private fun NetworkOutputCard( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { - Text(text = stringResource(R.string.remote_switch)) + Text(text = stringResource(R.string.settings_remote_switch)) Switch(checked = settings.rotatorState, onCheckedChange = { setRotatorState(it) }) } Row( @@ -391,7 +391,7 @@ private fun NetworkOutputCard( OutlinedTextField( value = settings.rotatorAddress, singleLine = true, - label = { Text(text = stringResource(R.string.remote_ip_hint)) }, + label = { Text(text = stringResource(R.string.settings_remote_ip_hint)) }, onValueChange = { setRotatorAddress(it) }, modifier = Modifier.weight(1.5f), enabled = settings.rotatorState @@ -399,7 +399,7 @@ private fun NetworkOutputCard( OutlinedTextField( value = settings.rotatorPort, onValueChange = { setRotatorPort(it) }, - label = { Text(text = stringResource(R.string.remote_port_hint)) }, + label = { Text(text = stringResource(R.string.settings_remote_port_hint)) }, singleLine = true, modifier = Modifier.weight(1f), enabled = settings.rotatorState @@ -435,7 +435,7 @@ private fun BluetoothOutputCard( ElevatedCard(modifier = Modifier.fillMaxWidth()) { Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) { Text( - text = stringResource(id = R.string.BTremote_title), + text = stringResource(id = R.string.settings_BTremote_title), color = MaterialTheme.colorScheme.primary ) Row( @@ -443,7 +443,7 @@ private fun BluetoothOutputCard( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { - Text(text = stringResource(R.string.BTremote_switch)) + Text(text = stringResource(R.string.settings_BTremote_switch)) Switch(checked = settings.bluetoothState, onCheckedChange = { setBluetoothState(it) }) } Row( @@ -454,7 +454,7 @@ private fun BluetoothOutputCard( OutlinedTextField( value = settings.bluetoothAddress, singleLine = true, - label = { Text(text = stringResource(R.string.BTremote_device_hint)) }, + label = { Text(text = stringResource(R.string.settings_BTremote_device_hint)) }, onValueChange = { setBluetoothAddress(it) }, modifier = Modifier.weight(1.5f), enabled = settings.bluetoothState @@ -462,7 +462,7 @@ private fun BluetoothOutputCard( OutlinedTextField( value = settings.bluetoothFormat, onValueChange = { setBluetoothFormat(it) }, - label = { Text(text = stringResource(R.string.BTremote_output_hint)) }, + label = { Text(text = stringResource(R.string.settings_BTremote_output_hint)) }, singleLine = true, modifier = Modifier.weight(1f), enabled = settings.bluetoothState @@ -503,7 +503,7 @@ private fun OtherCard( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { - Text(text = stringResource(id = R.string.other_switch_utc)) + Text(text = stringResource(id = R.string.settings_other_switch_utc)) Switch(checked = settings.stateOfUtc, onCheckedChange = { toggleUtc(it) }) } Row( @@ -511,7 +511,7 @@ private fun OtherCard( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { - Text(text = stringResource(id = R.string.other_switch_update)) + Text(text = stringResource(id = R.string.settings_other_switch_update)) Switch(checked = settings.stateOfAutoUpdate, onCheckedChange = { toggleUpdate(it) }) } Row( @@ -519,7 +519,7 @@ private fun OtherCard( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { - Text(text = stringResource(id = R.string.other_switch_sweep)) + Text(text = stringResource(id = R.string.settings_other_switch_sweep)) Switch(checked = settings.stateOfSweep, onCheckedChange = { toggleSweep(it) }) } Row( @@ -527,7 +527,7 @@ private fun OtherCard( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { - Text(text = stringResource(id = R.string.other_switch_sensors)) + Text(text = stringResource(id = R.string.settings_other_switch_sensors)) Switch(checked = settings.stateOfSensors, onCheckedChange = { toggleSensor(it) }) } } @@ -537,12 +537,12 @@ private fun OtherCard( @Composable private fun setUpdateTime(updateTime: Long): String { val updateDate = if (updateTime != 0L) { - val timePattern = stringResource(id = R.string.last_updated_pattern) + val timePattern = stringResource(id = R.string.settings_last_updated_pattern) SimpleDateFormat(timePattern, Locale.getDefault()).format(Date(updateTime)) } else { - stringResource(id = R.string.pass_placeholder) + stringResource(id = R.string.passes_placeholder) } - return stringResource(id = R.string.data_update, updateDate) + return stringResource(id = R.string.settings_data_update, updateDate) } @Composable @@ -568,7 +568,7 @@ private fun CardCredits(modifier: Modifier = Modifier) { modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp) ) { Text( - text = stringResource(id = R.string.outro_title), + text = stringResource(id = R.string.settings_outro_title), fontSize = 18.sp, fontWeight = FontWeight.Medium, color = MaterialTheme.colorScheme.primary, @@ -576,11 +576,11 @@ private fun CardCredits(modifier: Modifier = Modifier) { ) Text( text = stringResource( - id = R.string.outro_thanks + id = R.string.settings_outro_thanks ), fontSize = 16.sp, textAlign = TextAlign.Center ) Text( - text = stringResource(id = R.string.outro_license), + text = stringResource(id = R.string.settings_outro_license), fontSize = 18.sp, fontWeight = FontWeight.Medium, color = MaterialTheme.colorScheme.primary, diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsViewModel.kt index fcaf7b9a..3344adbd 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settings/SettingsViewModel.kt @@ -152,13 +152,13 @@ class SettingsViewModel( private fun setGpsPosition() { if (settingsRepo.setStationPosition()) { - val messageResId = R.string.location_success + val messageResId = R.string.settings_location_success val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = true, messageResId = messageResId ) _uiState.update { it.copy(positionSettings = newPosSettings) } } else { - val errorResId = R.string.location_gps_error + val errorResId = R.string.settings_location_gps_error val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = errorResId ) @@ -168,13 +168,13 @@ class SettingsViewModel( private fun setGeoPosition(latitude: Double, longitude: Double) { if (settingsRepo.setStationPosition(latitude, longitude, 0.0)) { - val messageResId = R.string.location_success + val messageResId = R.string.settings_location_success val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = messageResId ) _uiState.update { it.copy(positionSettings = newPosSettings) } } else { - val errorResId = R.string.location_manual_error + val errorResId = R.string.settings_location_manual_error val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = errorResId ) @@ -184,13 +184,13 @@ class SettingsViewModel( private fun setQthPosition(locator: String) { if (settingsRepo.setStationPosition(locator)) { - val messageResId = R.string.location_success + val messageResId = R.string.settings_location_success val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = messageResId ) _uiState.update { it.copy(positionSettings = newPosSettings) } } else { - val errorResId = R.string.location_qth_error + val errorResId = R.string.settings_location_qth_error val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = errorResId ) diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 8691ed4b..5f6128c9 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1,107 +1,74 @@ - Look4Sat - 00:00:00 - Versión: %s - Rastreador y predictor de satélites - - - - Añadir + Aceptar Cancelar - Atrás - Modos - Seleccionar todo - OK - Vaciar - Vaciar todo - Recargar - Mapa - Filtro - Satélites - Ajustes - Anterior - Siguiente - Notificar - GPS - Manual - QTH - Online - Importar - GitHub - Soporte - F-Droid + No items to display - + + Satélites + Passes + Radar + Mapa + Ajustes - Filtrar pases - Horas por delante - Mostrar pases que ocurrirán en X horas - Elevación mínima - Mostar primero pases con elevación máxima - - Ajustes ubicación QTH - Ajustar posición de la estación con tu ubicación - QTH - - Tipo de modulación - - Ajustar ubicaicón de la estación - Latitud de tu estación terrestre - Latitud - Longitud de tu estación terrestre - Longitud - - Gestionar fuentes de datos - Fuente HTTPS - - Seleccionar tipo de satélite - Tipo: %s - - - - Buscar por Nombre / Id + + Seleccionar todo + Vaciar todo + Seleccionar tipo de satélite + Tipo: %s + Buscar por Nombre / Id + + Make sure your search query is correct and the DB is updated + Warning\! + + There are over 9000 satellites listed in this app. + It makes no sense to track them all at the same time. + \n\nAlways try to narrow down the list to only the ones + you\'re interested in vía search and types selector. + No hay pases de satélite próximos para mostrar No hay datos para mostrar. Por favor, actualiza la base de datos a través del menú Ajustes. + DeepSpace + Filtrar pases + Horas por delante + Elevación mínima + Tipo de modulación + ELEV: %.1f° + ALT: %.0f km + - - : - - + + Make sure your filters are correct and you have selected satellites + Welcome to Look4Sat\! + + Make sure to set your position vía GPS, Lat/Lon or QTH in Settings. + \n\nPlease update the database at least weekly to get accurate predictions. - %s - Id:%d - AOS - %.1f° - ELEV: %.1f° - %.1f° - LOS - ALT: %.0f km - - - : - - - HH:mm:ss - MMM dd - dd MMM - HH:mm:ss - + Ácimut - %.1f° Elevación - %.1f° Altitud - %.0f km Distancia - %.0f km Visible Eclipsado - %s - Id:%d - - Modo: %s - Invertido: %s - %s - - - . - - - %.4f - %.4f - %.4f - Transmisores satélite: - Este satélite no lleva transmisores - Si - No - Downlink - Uplink + Modo: %s + Invertido: %s + %s + - - . - - + %.4f + %.4f - %.4f + Transmisores satélite: + Este satélite no lleva transmisores + Si + No + Downlink + Uplink + Añadir + Atrás + Notificar + Mapa mundo %s Id:%d @@ -109,7 +76,6 @@ Elevación: %.1f° Latitud: %.1f° Longitud: %.1f° - Ubicación QTH: %s Visible Eclipsado Visibilidad: %s @@ -119,45 +85,64 @@ Distancia: %.0f km Velocidad: %.2f km/s Wikimedia maps | Map data © OpenStreetMap contributors + Anterior + Siguiente - + + Ubicación estación + Latitud: %.4f° + Longitud: %.4f° + Sin datos de geolocalización + Revisa los permisos de ubicación + Ubicación no válida + Ubicación QTH no válida + Ubicación actualizada con éxito - Ubicación estación - Latitud: %.4f° - Longitud: %.4f° - Sin datos de geolocalización - Revisa los permisos de ubicación - Ubicación no válida - Ubicación QTH no válida - Ubicación actualizada con éxito + Actualizar datos de satélites + Actualización completada con errores + Última actualización: %s + Satélites: %s + Transmisores: %s + Actualización completada con éxito + Datos eliminados con éxito - Actualizar datos de satélites - Actualización completada con errores - Última actualización: %s - Satélites: %s - Transmisores: %s - Actualización completada con éxito - Datos eliminados con éxito + Preferencias Rotator + Habilitar control remoto + Dirección IP + Puerto - Preferencias Rotator - Habilitar control remoto - Dirección IP - Puerto + Salida por Bluetooth + Habilitar salida + Id dispositivo + Formato de datos + Revisa los permisos de Bluetooth - Salida por Bluetooth - Habilitar salida - Id dispositivo - Formato de datos - Revisa los permisos de Bluetooth + Mostrar tiempos de pase en UTC + Habilitar auto actualización de datos + Habilitar animaciones radar + Usar sensores para rotar vista de radar - Otras preferencias - Mostrar tiempos de pase en UTC - Habilitar auto actualización de datos - Habilitar animaciones radar - Usar sensores para rotar vista de radar + GPS + Manual + QTH + Online + Importar + GitHub + Soporte + F-Droid + GPLv3 Licence + Privacy Policy + Ajustes ubicación QTH + Ajustar posición de la estación con tu ubicación + Vaciar + Ajustar ubicaicón de la estación + Latitud de tu estación terrestre + Longitud de tu estación terrestre - Me gustaría dar las gracias a: - • tí por descargar y usar Look4Sat! \nQue tengas cielos despejados! + d MMM yyyy - HH:mm:ss + + Me gustaría dar las gracias a: + • ti por descargar y usar Look4Sat! \nQue tengas cielos despejados! \n • David A. B. Johnson y Dave Moten por crear predict4java lib bajo GNU GPLv2. @@ -170,7 +155,8 @@ \n • DownloadAstro por su interés en la app y la entrevista publicada. - Política de privacidad. + Política de privacidad. La app viene sin garantías de ningún tipo. \nPara más información revisa la licencia GNU GPLv3. + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e63c59c8..6c4875a0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,115 +1,74 @@ - Look4Sat - 00:00:00 - Версия: %s - Трекер спутников для Android + + Принять + Отменить + No items to display + Спутники Пролеты Radar Карта Настройки - - - Добавить - Принять - Отменить - Назад - Режимы - Выбрать - Готово - Очистить - Очистить - Обновить - Карта - Фильтр - Спутники - Настройки - Пред - След - Уведомить - GPS - Ввести - QTH - Онлайн - Импорт - GitHub - Поддержать - F-Droid - Лицензия - Конфиденц. - - - - Фильтровать пролеты - Количество часов - Показать пролеты за след. Х часов - Минимальная элевация - Показать пролеты с элевацией более - - Настройки локатора QTH - Установить позицию используя локатор - QTH - - Выберите тип модуляции - - Настройки местоположения - Установите широту наземной станции - Широта - Установите долготу наземной станции - Долгота - - Источники данных - Протокол HTTPS - - Выберите тип спутника - Выбран тип: %s - - - - Имя / Id + + Выбрать + Очистить + Выберите тип спутника + Выбран тип: %s + Имя / Id + + Make sure your search query is correct and the DB is updated + Warning\! + + There are over 9000 satellites listed in this app. + It makes no sense to track them all at the same time. + \n\nAlways try to narrow down the list to only the ones + you\'re interested in via search and types selector. + + Выберите тип модуляции + Фильтровать пролеты + Количество часов + Минимальная элевация + DeepSpace Нет предстоящих пролётов спутников Пожалуйста, обновите базу данных спутников через меню Настроек + Элевация: %.1f° + Высота: %d км + -- : -- : -- + + Make sure your filters are correct and you have selected satellites + Welcome to Look4Sat\! + + Make sure to set your position via GPS, Lat/Lon or QTH in Settings. + \n\nPlease update the database at least weekly to get accurate predictions. - %s - Id:%d - НПС - %.1f° - Элевация: %.1f° - %.1f° - КПС - Высота: %d км - -- : -- : -- - HH:mm:ss - EEE - EEE - HH:mm:ss - + Азим. - %.1f° Элев. - %.1f° Выс. - %.0f km Дальн. - %.0f km Видимый В тени - %s - Id:%d - - Модуляция: %s - Инверсия: %s - %s - - - . - - - %.4f - %.4f - %.4f - Трансиверы спутника: - У этого спутника нет трансиверов - Да - Нет - Даунлинк - Аплинк + Модуляция: %s + Инверсия: %s + %s + - - . - - + %.4f + %.4f - %.4f + Трансиверы спутника: + У этого спутника нет трансиверов + Да + Нет + Даунлинк + Аплинк + Добавить + Назад + Уведомить + Карта Мира %s Id:%d @@ -126,45 +85,65 @@ Дистанция: %.0fкм Скорость: %.2fкм/с Wikimedia maps | Map data © OpenStreetMap contributors + Пред + След - + + Местоположение + Широта: %.4f° + Долгота: %.4f° + Нет данных геолокации + Нет разрешения использовать геоданные + Введены неверные данные + Неправильный локатор QTH + Позиция успешно обновлена - Местоположение - Широта: %.4f° - Долгота: %.4f° - Нет данных геолокации - Нет разрешения использовать геоданные - Введены неверные данные - Неправильный локатор QTH - Позиция успешно обновлена + Обновление данных + При обновлении возникли ошибки + Обновлено: %s + Спутников: %s + Трансиверов: %s + Обновление прошло успешно + Очистка прошла успешно - Обновление данных - При обновлении возникли ошибки - Обновлено: %s - Спутников: %s - Трансиверов: %s - Обновление прошло успешно - Очистка прошла успешно + Настройки ротатора + Удаленное управление + IP адрес + Порт - Настройки ротатора - Удаленное управление - IP адрес - Порт + Передача данных по Bluetooth + Включить передачу + Id устройства + Формат данных + Нет разрешения использовать bluetooth - Передача данных по Bluetooth - Включить передачу - Id устройства - Формат данных - Нет разрешения использовать bluetooth + Показывать время по UTC + Обновлять данные автоматически + Показывать анимацию радара + Использовать сенсоры устройства - Показывать время по UTC - Обновлять данные автоматически - Показывать анимацию радара - Использовать сенсоры устройства - Использовать светлую тему + GPS + Ввести + QTH + Онлайн + Импорт + GitHub + Поддержать + F-Droid + Лицензия + Конфиденц. - Я хотел бы сказать спасибо: - Вам за использование этого приложения! \nЖелаю всегда чистого неба над головой! + d MMM yyyy - HH:mm:ss + + Очистить + Настройки локатора QTH + Установить позицию используя локатор + Настройки местоположения + Установите широту наземной станции + Установите долготу наземной станции + + Я хотел бы сказать спасибо: + Вам за использование этого приложения! \nЖелаю всегда чистого неба над головой! \nDavid A. B. Johnson и Dave Moten за работу над predict4java и доступ к ней по GNU GPLv2 @@ -177,5 +156,6 @@ \nDownloadAstro за интерес к приложению и публикацию интервью на сайте. - Это ПО поставляется без гарантий. + Это ПО поставляется без гарантий. + diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index 7e2764c1..62185564 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -1,115 +1,74 @@ - Look4Sat - 00:00:00 - අනුවාදය: %s - චන්ද්‍රිකා tracker හා නිසැක පෙරැයින්නා + + පිළිගන්න + අවලංගු ක° + No items to display + චන්ද්‍රිකා පසුකර යෑම් Radar - ලෝක සිතියම + සිතියම පසුතල - - - එකතු ක° - පිළිගන්න - අවලංගු ක° - ආපසු - ප්‍රාකාර - සියල්ල තෝරන්න - කළා - පිරිසිදු ක° - සියල්ල පිරිසිදු ක° - පූරණය - සිතියම - පිරිපහදුව - චන්ද්‍රිකා - පසුතල - පසුපස - ඊළග - දන්වනවා - GPS - අතින් - QTH - මාර්ගගතව - Import - GitHub - දායකත්ව - F-Droid - GPLv3 බලපත්‍රය - Privacy Policy - - - - පසුකිරිම් පිරිපහදුව - ඉදිරි පැය - පැය X ඇතුළත සිදුවන අවසරපත් පෙන්වන්න - අවම උත්තෝලනය - ඉහත උපරිම උත්තෝලනයක් සහිත අවසරපත් පෙන්වන්න - - QTH locator පසුතල - ඔබගේ locator භාවිතා කර පොළහි පිහිටීම සකසන්න - QTH - - මූර්ජන ආකාරය තෝරන්න - - පොළෙහි පිහිටීම් පසුතල - ඔබගේ පොළෙහි අක්‍ෂාංශය සකසන්න - අක්‍ෂාංශය - ඔබගේ පොළෙහි දේශාංශය සකසන්න - දේශාංශය - - දත්ත මූලාශ්‍ර කළමනාකරණය කරන්න - HTTPS මූලාශ්‍ර - - චන්ද්‍රිකා ආකාරය තෝරන්න - තේරූ ආකාර: %s - - - - Name / Id + + චන්ද්‍රිකා ආකාරය තෝරන්න + තේරූ ආකාර: %s + සියල්ල තෝරන්න + සියල්ල පිරිසිදු ක° + Name / Id + + Make sure your search query is correct and the DB is updated + Warning\! + + There are over 9000 satellites listed in this app. + It makes no sense to track them all at the same time. + \n\nAlways try to narrow down the list to only the ones + you\'re interested in via search and types selector. + + පසුකිරිම් පිරිපහදුව + ඉදිරි පැය + අවම උත්තෝලනය + මූර්ජන ආකාරය තෝරන්න + DeepSpace ප්‍රදර්ශනය කිරීමට ඉදිරියට එන චන්ද්‍රිකා පසුකර යෑම් නැත. පෙන්වීමට දත්ත නැත. කරුණාකර දත්ත සමුදාය යාවත්කාලීන කරන්න. + උත්තෝලනය: %.1f° + උන්නතාශය: %d km + -- : -- : -- + + Make sure your filters are correct and you have selected satellites + Welcome to Look4Sat\! + + Make sure to set your position via GPS, Lat/Lon or QTH in Settings. + \n\nPlease update the database at least weekly to get accurate predictions. - %s - Id:%d - AOS - %.1f° - උත්තෝලනය: %.1f° - %.1f° - LOS - උන්නතාශය: %d km - -- : -- : -- - HH:mm:ss - EEE - EEE - HH:mm:ss - + දිගංශය - %.1f° උත්තෝලනය - %.1f° උන්නතාශය - %.0f km පරතරය - %.0f km දෘශ්‍යමාන අදෘශ්‍ය - %s - Id:%d - - ප්‍රාකාරය: %s - Inverted: %s - %s - - - . - - - %.4f - %.4f - %.4f - චන්ද්‍රිකා සම්ප්‍රේෂණයන්: - මෙම චන්ද්‍රිකාව සම්ප්‍රෙෂණය නොකරයි - ඔව් - නෑ - Downlink - Uplink + ප්‍රාකාරය: %s + Inverted: %s + %s + - - . - - + %.4f + %.4f - %.4f + චන්ද්‍රිකා සම්ප්‍රේෂණයන්: + මෙම චන්ද්‍රිකාව සම්ප්‍රෙෂණය නොකරයි + ඔව් + නෑ + Downlink + Uplink + එකතු ක° + ආපසු + දන්වනවා + ලෝක සිතියම %s Id:%d @@ -126,45 +85,65 @@ පරතරය: %.0f km ප්‍රවේශය: %.2f km/s Wikimedia maps | සිතියම් දත්ත © OpenStreetMap බෙදාහැරීම + පසුපස + ඊළග - + + පොළෙහි පිහිටීම + අක්‍ෂාංශ: %.4f° + දේශාංශ: %.4f° + භූ ස්ථාන දත්ත නොමැත + ඔබගේ location අවසර පරීක්ෂා ක° + ඇතුළත් කළ ස්ථානය වලංගු නොවේ + QTH locator වලංගු නොවේ + පිහිටීම යාවත්කාලීනය සාර්ථකයි - පොළෙහි පිහිටීම - අක්‍ෂාංශ: %.4f° - දේශාංශ: %.4f° - භූ ස්ථාන දත්ත නොමැත - ඔබගේ location අවසර පරීක්ෂා ක° - ඇතුළත් කළ ස්ථානය වලංගු නොවේ - QTH locator වලංගු නොවේ - පිහිටීම යාවත්කාලීනය සාර්ථකයි + චන්ද්‍රිකා දත්ත යාවත්කාලීනයි + දෝෂ සහිතව යාවත්කාලීනය සම්පූර්ණයි + අවසන් යාවත්කාලීනය: %s + චන්ද්‍රිකා: %s + සම්ප්‍රෙේෂණය: %s + යාවත්කාලීනය සම්පූර්ණ කිරීම සාර්ථකයි + දත්ත ඉවත් කිරීම සාර්ථකයි - චන්ද්‍රිකා දත්ත යාවත්කාලීනයි - දෝෂ සහිතව යාවත්කාලීනය සම්පූර්ණයි - අවසන් යාවත්කාලීනය: %s - චන්ද්‍රිකා: %s - සම්ප්‍රෙේෂණය: %s - යාවත්කාලීනය සම්පූර්ණ කිරීම සාර්ථකයි - දත්ත ඉවත් කිරීම සාර්ථකයි + භ්‍රමක මනාප + දුරස්ථ පාලනය සබල ක° + IP ලිපිනය + Port - භ්‍රමක මනාප - දුරස්ථ පාලනය සබල ක° - IP ලිපිනය - Port + Bluetooth දත්ත ප්‍රතිදානය + ප්‍රතිදානය සබල ක° + උපාංග id + දත්ත අකාරය + Bluetooth අවසර පරික්‍ෂා ක° - Bluetooth දත්ත ප්‍රතිදානය - ප්‍රතිදානය සබල ක° - උපාංග id - දත්ත අකාරය - Bluetooth අවසර පරික්‍ෂා ක° + පසුකර වේලාවන් UTC මගින් + ස්වයං දත්ත යාවත්කාලීනය + radar sweep සජීවිකරණය සබල කරන්න + Radar දර්ශනය කරකැවීමට සංවේදක භාවිතා කරන්න - පසුකර වේලාවන් UTC මගින් - ස්වයං දත්ත යාවත්කාලීනය - radar sweep සජීවිකරණය සබල කරන්න - Radar දර්ශනය කරකැවීමට සංවේදක භාවිතා කරන්න - සැහැල්ලු තේමාව භාවිතා කරන්න + GPS + අතින් + QTH + මාර්ගගතව + Import + GitHub + දායකත්ව + F-Droid + GPLv3 බලපත්‍රය + Privacy Policy + පිරිසිදු ක° - මම ස්තුති කිරීමට කැමති: - බාගෙන භාවිතා කළ ඔබට! \nඅහස සදා ඔබ වෙනුවෙන් පැහැදිලියි! + d MMM yyyy - HH:mm:ss + + QTH locator පසුතල + ඔබගේ locator භාවිතා කර පොළහි පිහිටීම සකසන්න + පොළෙහි පිහිටීම් පසුතල + ඔබගේ පොළෙහි අක්‍ෂාංශය සකසන්න + ඔබගේ පොළෙහි දේශාංශය සකසන්න + + මම ස්තුති කිරීමට කැමති: + බාගෙන භාවිතා කළ ඔබට! \nඅහස සදා ඔබ වෙනුවෙන් පැහැදිලියි! \nDavid A. B. Johnson සහ Dave Motenඔවුනට ප්‍රයෝජනවත් predict4java පුස්තකාලය නිර්මාණයට. \nසහ Alexandru Csete සඳහා Gpredict නිර්මාණයට සහ @@ -174,5 +153,6 @@ \nLibre Space Foundationට ඔවුන්ගේ SatNOGSWeb අඩවියට API හා DB විශාල දත්ත ප්‍රමාණයක් ලබාදීම සඳහා. \nDownloadAstro කණ්ඩායමට යෙදුම පිළිබඳ ඔවුන්ගේ උනන්දුව සහ කැපවීම ලැබිම සම්බන්ධයෙන්. - මෘදුකාංගය වගකීමක් සමග නොලැබේ + මෘදුකාංගය වගකීමක් සමග නොලැබේ + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 2e106bb1..05c1ff2e 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1,112 +1,74 @@ - Look4Sat - 00:00:00 - Версія: %s - Трекер супутників та прогноз прольотів + + Прийняти + Скасувати + No items to display + Супутники Прольоти Radar - Мапа + Карта Налаштування - - Додати - Прийняти - Скасувати - Назад - Режими - Вибрати всі - Готово - Очистити - Очистити - Оновити - Карта - Фільтр - Супутники - Налаштування - Попередній - Наступний - Сповістити - GPS - Вручну - QTH - Онлайн - Імпорт - GitHub - Підтримати - F-Droid - Ліцензія GPLv3 - Конфіденційність - - - Фільтр прольотів - Кількість годин - Показати за наступні X годин - Мінімальне піднесення - Показати з піднесенням понад - - Налаштування QTH локатора - Задати позицію за QTH локатором - QTH - - Виберіть тип модуляції - - Налаштування місцезнаходження станції - Задайте широту станції - Широта - Задайте довготу станції - Довгота - - Джерела даних - Джерело HTTPS - - Виберіть тип супутника - Вибраний тип: %s - - - Пошук за Назвою / Id + + Вибрати всі + Очистити + Виберіть тип супутника + Вибраний тип: %s + Пошук за Назвою / Id + + Make sure your search query is correct and the DB is updated + Warning\! + + There are over 9000 satellites listed in this app. + It makes no sense to track them all at the same time. + \n\nAlways try to narrow down the list to only the ones + you\'re interested in via search and types selector. + + Фільтр прольотів + Кількість годин + Мінімальне піднесення + Виберіть тип модуляції + DeepSpace Немає майбутніх прольотів супутників Немає даних для відображення. Будь ласка, оновіть базу даних через меню Налаштування + Піднес.: %.1f° + Висота: %.0f км + - - : - - + + Make sure your filters are correct and you have selected satellites + Welcome to Look4Sat\! + + Make sure to set your position via GPS, Lat/Lon or QTH in Settings. + \n\nPlease update the database at least weekly to get accurate predictions. - %s - Id:%05d - Початок - %.1f° - Піднес.: %.1f° - %.1f° - кінець - Висота: %.0f км - - - : - - - HH:mm:ss - EEE - EEE - HH:mm:ss - + Азимут - %.1f° Піднес. - %.1f° Висота - %.0f km Відстань - %.0f км Видимий В тіні - %s - Id:%d - - Модуляція: %s - Інверсія: %s - %s - - - . - - - %.4f - %.4f - %.4f - Супутникові трансивери: - Цей супутник не має трансиверів - Так - Ні - Downlink - Uplink + Модуляція: %s + Інверсія: %s + %s + - - . - - + %.4f + %.4f - %.4f + Супутникові трансивери: + Цей супутник не має трансиверів + Так + Ні + Downlink + Uplink + Додати + Сповістити + Назад + Карта світу %s Id:%d @@ -123,44 +85,65 @@ Дистанція: %.0f км Швидкість: %.2f км/с Wikimedia maps | Map data © OpenStreetMap contributors + Попередній + Наступний - - Місцезнаходження - Широта: %.4f° - Довгота: %.4f° - Немає даних геолокації - Перевірте дозволи на визначення місця - Введені некоректні дані - Некоректний локатор QTH - Позицію успішно оновлено + + Місцезнаходження + Широта: %.4f° + Довгота: %.4f° + Немає даних геолокації + Перевірте дозволи на визначення місця + Введені некоректні дані + Некоректний локатор QTH + Позицію успішно оновлено - Оновлення даних - Помилка при оновлені даних - Останнє оновлення: %s - Супутників: %s - Трансиверів: %s - Оновлення успішне - Дані успішно очищено + Оновлення даних + Помилка при оновлені даних + Останнє оновлення: %s + Супутників: %s + Трансиверів: %s + Оновлення успішне + Дані успішно очищено - Налаштування ротатора - Віддалене керування - IP адреса - Порт + Налаштування ротатора + Віддалене керування + IP адреса + Порт - Передача даних через Bluetooth - Увімкнути передачу - Id пристрою - Формат даних - Перевірте дозвіл Bluetooth + Передача даних через Bluetooth + Увімкнути передачу + Id пристрою + Формат даних + Перевірте дозвіл Bluetooth - Показувати час в UTC - Автоматичне оновлення даних - Показувати анімацію радара - Використовувати сенсори пристрою - Використовувати світлу тему + Показувати час в UTC + Автоматичне оновлення даних + Показувати анімацію радара + Використовувати сенсори пристрою - Я хотів би подякувати: - Вам за завантаження та використання Look4Sat! + Очистити + GPS + Вручну + QTH + Онлайн + Імпорт + GitHub + Підтримати + F-Droid + Ліцензія GPLv3 + Конфіденційність + + d MMM yyyy - HH:mm:ss + + Налаштування QTH локатора + Задати позицію за QTH локатором + Налаштування місцезнаходження станції + Задайте широту станції + Задайте довготу станції + + Я хотів би подякувати: + Вам за завантаження та використання Look4Sat! \nБажаю завжди чистого неба над головою! \nDavid A. B. Johnson та Dave Moten за створення бібліотеки predict4java. @@ -172,5 +155,6 @@ \nКоманді DownloadAstro за інтерес до застосунку та публікацію інтерв\'ю на сайті. - Це ПЗ поставляється без жодних гарантій. + Це ПЗ поставляється без жодних гарантій. + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index de2fcc0d..babfa9ef 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1,117 +1,66 @@ - Look4Sat - 00:00:00 - 版本:%s - 人造卫星追踪和过境预测 + + 确定 + 取消 + 没有可显示的内容 + 卫星 过境 Radar - 世界地图 + 地图 设置 - - - 添加 - 确定 - 了解 - 取消 - 后退 - 模式 - 全选 - 完毕 - 清空 - 全部清空 - 刷新 - 地图 - 筛选 - 卫星 - 设置 - 上一个 - 下一个 - 通知 - GPS 定位 - 手动输入 - QTH 网格 - 在线更新 - 导入文件 - GitHub - 支持 - F-Droid - GNU GPLv3 - 隐私政策 - - - - 请务必在设置中通过GPS、经纬度或QTH定位您的位置\n建议至少每周更新一次数据库,以确保预测结果的准确性 - 筛选过境 - 小时数 - 显示未来 X 小时内的过境 - 仰角值 - 显示最高仰角超过该值的过境 - - QTH 网格 - 使用梅登黑德网格设置站位 - 6 位网格代码 - - 选择调制类型 - - 站位设置 - 输入站位的纬度 - 纬度 - 输入站位的经度 - 经度 - - 管理数据源 - HTTPS 来源 - - 选择卫星类型 - 选择类型:%s - - - - Name / Id + + 全选 + 全部清空 + 选择卫星类型 + 选择类型:%s + Name / Id + 请确保您的搜素无误并且卫星数据已更新 + 警告! + 此应用收录了超过9000颗卫星信息\n同时追踪所有卫星并不现实\n建议始终通过搜索和分类筛选功能仅勾选您感兴趣的卫星 + + 筛选过境 + 小时数 + 仰角值 + 选择调制类型 没有即将过境的卫星 没有数据可显示,请通过设置菜单更新卫星数据。 + DeepSpace + 仰角:%.1f° + 高度:%d km + -- : -- : -- + 请确保您的筛选设置正确并且已勾选卫星 + 欢迎使用Look4Sat! + 请务必在设置中通过GPS、经纬度或QTH定位您的位置\n建议至少每周更新一次数据库,以确保预测结果的准确性 - %s - Id:%d - 入境 - %.1f° - 仰角:%.1f° - %.1f° - 出境 - 高度:%d km - -- : -- : -- - HH:mm:ss - EEE - EEE - HH:mm:ss - + 方位角 - %.1f° 仰角 - %.1f° 高度 - %.0f km 距离 - %.0f km 日照中 地影中 - %s - Id:%d - - 调制:%s - 倒置:%s - %s - - - . - - - %.4f - %.4f - %.4f - 卫星收发器: - 这颗卫星没有收发器 - 是 - 否 - 下行链路 - 上行链路 + 调制:%s + 倒置:%s + %s + - - . - - + %.4f + %.4f - %.4f + 卫星收发器: + 这颗卫星没有收发器 + 是 + 否 + 下行链路 + 上行链路 + 添加 + 后退 + 通知 + 世界地图 %s Id:%d @@ -128,46 +77,64 @@ 距离:%.0f km 速度:%.2f km/s 维基媒体地图 | 地图数据 贡献者 © OpenStreetMap + 上一个 + 下一个 - + + 站位 + 纬度:%.4f° + 经度:%.4f° + 没有地理位置数据 + 检查您的位置权限 + 输入的位置无效 + 无效的 QTH 网格 + 位置更新成功 - 站位 - 纬度:%.4f° - 经度:%.4f° - 没有地理位置数据 - 检查您的位置权限 - 输入的位置无效 - 无效的 QTH 网格 - 位置更新成功 + 卫星数据更新 + 更新完成但出现错误 + 最后更新时间:%s + 卫星:%s + 收发器:%s + 更新成功 + 数据清空成功 - 卫星数据更新 - 更新完成但出现错误 - 最后更新时间:%s - 卫星:%s - 收发器:%s - 更新成功 - 数据清空成功 + yyyy MMM d - HH:mm:ss + 旋转器首选项 + 启用远程控制 + IP地址 + 端口 - yyyy MMM d - HH:mm:ss - 旋转器首选项 - 启用远程控制 - IP地址 - 端口 + 蓝牙数据输出 + 启用输出 + 蓝牙设备 ID + 数据格式 + 请检查蓝牙权限 - 蓝牙数据输出 - 启用输出 - 蓝牙设备 ID - 数据格式 - 请检查蓝牙权限 + 以 UTC 时间显示 + 启用卫星数据自动更新 + 启用雷达扫描动画 + 使用传感器旋转雷达视图 - 以 UTC 时间显示 - 启用卫星数据自动更新 - 启用雷达扫描动画 - 使用传感器旋转雷达视图 - 使用旧版配色方案 + 清空 + GPS 定位 + 手动输入 + QTH 网格 + 在线更新 + 导入文件 + GitHub + 支持 + F-Droid + GNU GPLv3 + 隐私政策 - 我要感谢: - 感谢下载和使用 Look4Sat!愿你的天空永远晴朗! + QTH 网格 + 使用梅登黑德网格设置站位 + 站位设置 + 输入站位的纬度 + 输入站位的经度 + + 我要感谢: + 感谢下载和使用 Look4Sat!愿你的天空永远晴朗! \n简体中文版翻译由 BA7LWN 于 2022.5.10 创建。 \nDavid A. B. Johnson and Dave Moten for creating predict4java lib @@ -181,12 +148,6 @@ \nDownloadAstro team for their interest to the app and the interview published. - 该应用程序不提供任何保修. - 没有可显示的内容 - 请确保您的搜素无误并且卫星数据已更新 - 警告! - 此应用收录了超过9000颗卫星信息\n同时追踪所有卫星并不现实\n建议始终通过搜索和分类筛选功能仅勾选您感兴趣的卫星 - 请确保您的筛选设置正确并且已勾选卫星 - 欢迎使用Look4Sat! - + 该应用程序不提供任何保修. + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 359b16d6..dc1d26d5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,132 +1,81 @@ - Look4Sat - 00:00:00 - Version: %s - Satellite tracker and pass predictor + + Look4Sat + Accept + Cancel + No items to display + Satellites Passes Radar Map Settings - - Add - Accept - I Understand - Cancel - Back - Modes - Select all - Done - Clear - Clear all - Refresh - Map - Filter - Satellites - Settings - Prev - Next - Notify - GPS - Manual - QTH - Online - Import - GitHub - Donate - F-Droid - GPLv3 Licence - Privacy Policy - - - No items to display - - - + + Selected type: %s + Id - Name + Clear all + Select all + Select satellite type + Make sure your search query is correct and the DB is updated - Warning\! - + Warning\! + There are over 9000 satellites listed in this app. It makes no sense to track them all at the same time. \n\nAlways try to narrow down the list to only the ones you\'re interested in via search and types selector. - + + + Filter passes + Minimal elevation + Hours ahead + Select modulation type + There are no upcoming satellite passes to display + No data to show. Please update the database via Settings menu. + DeepSpace + %05d + %03d° - %03d° + Elevation: %.1f° + Altitude: %d km + -- : -- : -- + Make sure your filters are correct and you have selected satellites - Welcome to Look4Sat\! - + Welcome to Look4Sat\! + Make sure to set your position via GPS, Lat/Lon or QTH in Settings. \n\nPlease update the database at least weekly to get accurate predictions. - Filter passes - Hours ahead - Show passes that occur within X hours - Minimal elevation - Show passes with max elevation above - - QTH locator settings - Set station\'s position using locator - QTH - - Select modulation type - - Station position settings - Set your ground station\'s latitude - Latitude - Set your ground station\'s longitude - Longitude - - Manage data sources - HTTPS Source - - Select satellite type - Selected type: %s - - - Id - Name - - There are no upcoming satellite passes to display - No data to show. Please update the database via Settings menu. - - %s - Id:%05d - AOS - %.1f° - %03d° - %03d° - Elevation: %.1f° - %.1f° - LOS - Altitude: %d km - -- : -- : -- - HH:mm:ss - EEE - EEE - HH:mm:ss - + Azimuth - %.1f° + %.1f° Elevation - %.1f° + %.1f° Altitude - %.0f km + %.0f km Distance - %.0f km + %.0f km Visible Eclipsed - %s - Id:%d - - Mode: %s - Inverted: %s - %s - - - . - - - %.4f - %.4f - %.4f - Satellite transceivers: - This satellite has no transceivers - Yes - No - Downlink - Uplink + Notify + Mode: %s + Inverted: %s + %s + - - . - - + %.4f + %.4f - %.4f + Satellite transceivers: + This satellite has no transceivers + Yes + No + Downlink + Uplink + Back + Add + World Map %s Id:%d @@ -144,46 +93,66 @@ Distance: %.0f km Velocity: %.2f km/s Wikimedia maps | Map data © OpenStreetMap contributors + Prev + Next - - Station position - Latitude: %.4f° - Longitude: %.4f° - No geolocation data - Check your location permissions - Invalid location entered - Invalid QTH locator - Position updated successfully + + Station position + Latitude: %.4f° + Longitude: %.4f° + No geolocation data + Check your location permissions + Invalid location entered + Invalid QTH locator + Position updated successfully - Satellite data update - Update completed with errors - Last updated: %s - Satellites: %s - Transceivers: %s - Update completed successfully - Data was cleared successfully + Clear + GPS + Manual + QTH + Online + Import + GitHub + Donate + F-Droid + GPLv3 Licence + Privacy Policy - d MMM yyyy - HH:mm:ss + Station position settings + Set your ground station\'s latitude + Set your ground station\'s longitude - Rotator preferences - Enable remote control - IP address - Port + QTH locator settings + Set station\'s position using locator - Bluetooth data output - Enable output - Device id - Data format - Check your bluetooth permission + Satellite data update + Update completed with errors + Last updated: %s + Satellites: %s + Transceivers: %s + Update completed successfully + Data was cleared successfully - Show pass time in UTC - Enable automatic data update - Enable radar sweep animation - Use sensors to rotate radar view - Use light theme + d MMM yyyy - HH:mm:ss - I would like to say thanks to: - You for downloading and using Look4Sat! \nMay your sky always be clear! + Rotator preferences + Enable remote control + IP address + Port + + Bluetooth data output + Enable output + Device id + Data format + Check your bluetooth permission + + Show pass time in UTC + Enable automatic data update + Enable radar sweep animation + Use sensors to rotate radar view + + I would like to say thanks to: + You for downloading and using Look4Sat! \nMay your sky always be clear! \nDavid A. B. Johnson and Dave Moten for creating a super useful predict4java library. \nAlexandru Csete for creating Gpredict @@ -193,5 +162,6 @@ \nLibre Space Foundation for their SatNOGS API and DB providing a huge amount of data. - The app comes with no warranty. + The app comes with no warranty. + diff --git a/fastlane/metadata/android/en-US/images/bcm_button.png b/fastlane/metadata/android/en-US/images/bcm_button.png deleted file mode 100644 index 5b56acfdb45e211fb9e86cee7f2e9938cbe9e474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5761 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 KR4!4peEmOXD?FY6 diff --git a/gradle.properties b/gradle.properties index 2e92daac..05ab4224 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,4 @@ # Configure your build environment: http://www.gradle.org/docs/current/userguide/build_environment.html -android.experimental.enableScreenshotTest=true -android.r8.optimizedResourceShrinking=true android.useAndroidX=true kotlin.code.style=official org.gradle.caching=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ecdadaec..d26f40ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ compose-lifecycle = "2.10.0" compose-navigation = "2.9.6" other-coroutines = "1.10.2" -other-json = "20250517" +other-json = "20251224" other-okhttp = "5.3.2" other-osmdroid = "6.1.20"