diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/MainScreen.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/MainScreen.kt index ff3a89f3..c7a237f9 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/MainScreen.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/MainScreen.kt @@ -23,11 +23,11 @@ import com.rtbishop.look4sat.presentation.satellites.satellitesDestination import com.rtbishop.look4sat.presentation.settings.settingsDestination sealed class Screen(val route: String, val iconResId: Int, val titleResId: Int) { - data object Satellites : Screen("satellites", R.drawable.ic_satellites, R.string.nav_satellites) - data object Passes : Screen("passes", R.drawable.ic_passes, R.string.nav_passes) + data object Satellites : Screen("satellites", R.drawable.ic_satellites, R.string.nav_sat) + data object Passes : Screen("passes", R.drawable.ic_passes, R.string.nav_pass) data object Radar : Screen("radar", R.drawable.ic_radar, R.string.nav_radar) data object Map : Screen("map", R.drawable.ic_map, R.string.nav_map) - data object Settings : Screen("settings", R.drawable.ic_settings, R.string.nav_settings) + data object Settings : Screen("settings", R.drawable.ic_settings, R.string.nav_prefs) } @Composable 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 81d4300f..ee0f66ac 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.passes_satId, pass.catNum) + val passSatId = stringResource(id = R.string.pass_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.passes_aosLos, + id = R.string.pass_aosLos, pass.aosAzimuth.toInt(), pass.losAzimuth.toInt() ), 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 02a28322..32a7a4bf 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 @@ -74,16 +74,16 @@ fun PassesDialog(hours: Int, elevation: Double, cancel: () -> Unit, accept: (Int val onAccept = { accept(hoursValue.intValue, elevationValueNew.doubleValue).also { cancel() } } - SharedDialog(title = stringResource(R.string.passes_filter_passes), onCancel = cancel, onAccept = onAccept) { + SharedDialog(title = stringResource(R.string.pass_filter_title), onCancel = cancel, onAccept = onAccept) { SliderRow( - title = stringResource(R.string.passes_filter_above), + title = stringResource(R.string.pass_filter_elev), value = elevationValueNew.doubleValue, valuePostfix = "°", valueResId = R.drawable.ic_elevation, valueRange = 0f..60f ) { elevationValueNew.doubleValue = it.toDouble() } SliderRow( - title = stringResource(R.string.passes_filter_within), + title = stringResource(R.string.pass_filter_hours), value = hoursValue.intValue.toDouble(), valuePostfix = "h", valueResId = R.drawable.ic_clock, @@ -146,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 = stringResource(R.string.passes_filter_modes), onCancel = cancel, onAccept = onAccept) { + SharedDialog(title = stringResource(R.string.pass_modes_title), 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 a27d9003..014f5271 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 @@ -95,8 +95,8 @@ private fun PassesScreen(uiState: PassesState, navigateToRadar: (Int, Long) -> U } if (uiState.shouldSeeWelcome) { InfoDialog( - title = stringResource(R.string.passes_welcome_title), - text = stringResource(R.string.passes_welcome_message) + title = stringResource(R.string.pass_welcome_title), + text = stringResource(R.string.pass_welcome_message) ) { uiState.takeAction(PassesAction.DismissWelcome) } @@ -158,7 +158,7 @@ private fun PassesList( } ) { if (passes.isEmpty()) { - EmptyListCard(message = stringResource(R.string.passes_empty_list_message)) + EmptyListCard(message = stringResource(R.string.pass_empty_list_message)) } else { LazyVerticalGrid( state = gridState, @@ -204,7 +204,7 @@ private fun NearEarthPass( modifier: Modifier = Modifier, isVerticalLayout: Boolean = true ) { - val passSatId = stringResource(id = R.string.passes_satId, pass.catNum) + val passSatId = stringResource(id = R.string.pass_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 = stringResource(R.string.passes_deep_space), fontSize = 15.sp) + Text(text = stringResource(R.string.pass_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.passes_aosLos, + id = R.string.pass_aosLos, pass.aosAzimuth.toInt(), pass.losAzimuth.toInt() ), 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 9a855eda..db95f86b 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 @@ -42,7 +42,7 @@ fun MultiTypesDialog( if (selected.contains(type)) selected.remove(type) else selected.add(type) } val onAccept = { accept(selected.toList()) } - SharedDialog(title = stringResource(R.string.satellites_select_type), onCancel = cancel, onAccept = onAccept) { + SharedDialog(title = stringResource(R.string.sat_type_title), 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 763bbecf..70e46bc2 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 @@ -28,6 +28,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.SolidColor 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.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow @@ -72,8 +74,8 @@ private fun SatellitesScreen(uiState: SatellitesState, navigateUp: () -> Unit) { } if (uiState.shouldSeeWarning) { InfoDialog( - stringResource(R.string.satellites_warning_title), - stringResource(R.string.satellites_warning_message) + stringResource(R.string.sat_warning_title), + stringResource(R.string.sat_warning_message) ) { uiState.takeAction(SatellitesAction.DismissWarning) } @@ -82,28 +84,34 @@ private fun SatellitesScreen(uiState: SatellitesState, navigateUp: () -> Unit) { val selectAll = { uiState.takeAction(SatellitesAction.SelectAll) } val setQuery = { newQuery: String -> uiState.takeAction(SatellitesAction.SearchFor(newQuery)) } val saveSelection = { uiState.takeAction(SatellitesAction.SaveSelection).also { navigateUp() } } + val primCardCd = stringResource(R.string.btn_accept) + val primCardMod = Modifier.semantics { contentDescription = primCardCd } + val clearAllCd = stringResource(R.string.sat_clear_all) + val clearAllMod = Modifier.semantics { contentDescription = clearAllCd } + val selectAllCd = stringResource(R.string.sat_select_all) + val selectAllMod = Modifier.semantics { contentDescription = selectAllCd } Column(modifier = Modifier.layoutPadding(), verticalArrangement = Arrangement.spacedBy(6.dp)) { if (isVerticalLayout()) { TopBar { TypeCard(types = uiState.currentTypes, toggleDialog, modifier = Modifier.weight(1f)) - PrimaryIconCard(onClick = saveSelection, resId = R.drawable.ic_done) + PrimaryIconCard(onClick = saveSelection, resId = R.drawable.ic_done, modifier = primCardMod) } TopBar { SearchBar(setQuery = { setQuery(it) }, modifier = Modifier.weight(1f)) - IconCard(action = unselectAll, resId = R.drawable.ic_check_off) - IconCard(action = selectAll, resId = R.drawable.ic_check_on) + IconCard(action = unselectAll, resId = R.drawable.ic_check_off, modifier = clearAllMod) + IconCard(action = selectAll, resId = R.drawable.ic_check_on, modifier = selectAllMod) } } else { TopBar { - PrimaryIconCard(onClick = saveSelection, resId = R.drawable.ic_done) + PrimaryIconCard(onClick = saveSelection, resId = R.drawable.ic_done, modifier = primCardMod) TypeCard(types = uiState.currentTypes, toggleDialog, modifier = Modifier.weight(1f)) SearchBar(setQuery = { setQuery(it) }, modifier = Modifier.weight(1f)) - IconCard(action = unselectAll, resId = R.drawable.ic_check_off) - IconCard(action = selectAll, resId = R.drawable.ic_check_on) + IconCard(action = unselectAll, resId = R.drawable.ic_check_off, modifier = clearAllMod) + IconCard(action = selectAll, resId = R.drawable.ic_check_on, modifier = selectAllMod) } } ElevatedCard(modifier = Modifier.fillMaxSize()) { - val emptyMessage = stringResource(R.string.satellites_empty_list_message) + val emptyMessage = stringResource(R.string.sat_empty_list_message) when { uiState.isLoading -> CardLoadingIndicator() uiState.itemsList.isEmpty() -> EmptyListCard(message = emptyMessage) @@ -143,7 +151,7 @@ private fun SearchBar(setQuery: (String) -> Unit, modifier: Modifier = Modifier) decorationBox = { innerTextField -> if (currentQuery.value.isEmpty()) { Text( - text = stringResource(id = R.string.satellites_search_hint), + text = stringResource(id = R.string.sat_search_hint), fontSize = 16.sp, lineHeight = 20.sp, fontWeight = FontWeight.Medium, @@ -155,7 +163,8 @@ private fun SearchBar(setQuery: (String) -> Unit, modifier: Modifier = Modifier) cursorBrush = SolidColor(MaterialTheme.colorScheme.onSurface) ) IconButton(onClick = { setNewQuery("") }) { - Icon(painter = painterResource(id = R.drawable.ic_close), contentDescription = null) + val clearCd = stringResource(R.string.sat_search_clear) + Icon(painter = painterResource(id = R.drawable.ic_close), contentDescription = clearCd) } } } @@ -178,7 +187,7 @@ private fun TypeCard(types: List, onClick: () -> Unit, modifier: Modifie tint = MaterialTheme.colorScheme.primary ) Text( - text = stringResource(R.string.satellites_type, typesText), + text = stringResource(R.string.sat_type_hint, typesText), fontSize = 16.sp, fontWeight = FontWeight.Medium, modifier = Modifier @@ -199,7 +208,7 @@ private fun SatellitePreview() { @Composable private fun Satellite(item: SatItem, onSelected: (Int, Boolean) -> Unit, modifier: Modifier) { - val passSatId = stringResource(id = R.string.passes_satId, item.catnum) + val passSatId = stringResource(id = R.string.pass_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 7f7d0fc2..b59baadd 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.settings_position_title) + val titleText = stringResource(id = R.string.prefs_station_title) val onAccept = { saveValues(latValue.value, lonValue.value, save).also { dismiss() } } SharedDialog(title = titleText, onCancel = dismiss, onAccept = onAccept) { - Text(text = stringResource(id = R.string.settings_position_lat_text)) + Text(text = stringResource(id = R.string.prefs_station_lat_text)) OutlinedTextField(value = latValue.value, onValueChange = { latValue.value = it }) - Text(text = stringResource(id = R.string.settings_position_lon_text)) + Text(text = stringResource(id = R.string.prefs_station_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 = stringResource(R.string.settings_locator_title), onCancel = dismiss, onAccept = onAccept) { - Text(text = stringResource(id = R.string.settings_locator_text)) + SharedDialog(title = stringResource(R.string.prefs_locator_title), onCancel = dismiss, onAccept = onAccept) { + Text(text = stringResource(id = R.string.prefs_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 4ca73ca7..5ea6e365 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.settings_BTremote_perm_error) + val bluetoothError = stringResource(R.string.prefs_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.settings_location_gps_error) + val locationError = stringResource(R.string.prefs_loc_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.settings_location_title), + text = stringResource(id = R.string.prefs_loc_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.settings_station_gps), + text = stringResource(id = R.string.prefs_loc_gps_title), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = showPosDialog, - text = stringResource(id = R.string.settings_station_manual), + text = stringResource(id = R.string.prefs_loc_manual_title), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = showLocDialog, - text = stringResource(id = R.string.settings_station_qth), + text = stringResource(id = R.string.prefs_loc_qth_title), modifier = Modifier.weight(1f) ) } @@ -310,7 +310,7 @@ private fun DataCard( ) { Row(verticalAlignment = Alignment.CenterVertically) { Text( - text = stringResource(id = R.string.settings_data_title), + text = stringResource(id = R.string.prefs_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.settings_data_online), + text = stringResource(id = R.string.prefs_data_online), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = { updateFromFile() }, - text = stringResource(id = R.string.settings_data_import), + text = stringResource(id = R.string.prefs_data_import), modifier = Modifier.weight(1f) ) Spacer(modifier = Modifier.width(6.dp)) CardButton( onClick = { clearAllData() }, - text = stringResource(id = R.string.settings_data_clear), + text = stringResource(id = R.string.prefs_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.settings_remote_title), + text = stringResource(id = R.string.prefs_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.settings_remote_switch)) + Text(text = stringResource(R.string.prefs_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.settings_remote_ip_hint)) }, + label = { Text(text = stringResource(R.string.prefs_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.settings_remote_port_hint)) }, + label = { Text(text = stringResource(R.string.prefs_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.settings_BTremote_title), + text = stringResource(id = R.string.prefs_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.settings_BTremote_switch)) + Text(text = stringResource(R.string.prefs_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.settings_BTremote_device_hint)) }, + label = { Text(text = stringResource(R.string.prefs_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.settings_BTremote_output_hint)) }, + label = { Text(text = stringResource(R.string.prefs_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.settings_other_switch_utc)) + Text(text = stringResource(id = R.string.prefs_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.settings_other_switch_update)) + Text(text = stringResource(id = R.string.prefs_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.settings_other_switch_sweep)) + Text(text = stringResource(id = R.string.prefs_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.settings_other_switch_sensors)) + Text(text = stringResource(id = R.string.prefs_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.settings_last_updated_pattern) + val timePattern = stringResource(id = R.string.prefs_updated_time) SimpleDateFormat(timePattern, Locale.getDefault()).format(Date(updateTime)) } else { - stringResource(id = R.string.passes_placeholder) + stringResource(id = R.string.pass_time_placeholder) } - return stringResource(id = R.string.settings_data_update, updateDate) + return stringResource(id = R.string.prefs_updated_title, 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.settings_outro_title), + text = stringResource(id = R.string.prefs_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.settings_outro_thanks + id = R.string.prefs_outro_thanks ), fontSize = 16.sp, textAlign = TextAlign.Center ) Text( - text = stringResource(id = R.string.settings_outro_license), + text = stringResource(id = R.string.prefs_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 3344adbd..1bb89cf0 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.settings_location_success + val messageResId = R.string.prefs_loc_success val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = true, messageResId = messageResId ) _uiState.update { it.copy(positionSettings = newPosSettings) } } else { - val errorResId = R.string.settings_location_gps_error + val errorResId = R.string.prefs_loc_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.settings_location_success + val messageResId = R.string.prefs_loc_success val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = messageResId ) _uiState.update { it.copy(positionSettings = newPosSettings) } } else { - val errorResId = R.string.settings_location_manual_error + val errorResId = R.string.prefs_loc_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.settings_location_success + val messageResId = R.string.prefs_loc_success val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = messageResId ) _uiState.update { it.copy(positionSettings = newPosSettings) } } else { - val errorResId = R.string.settings_location_qth_error + val errorResId = R.string.prefs_loc_qth_error val newPosSettings = _uiState.value.positionSettings.copy( isUpdating = false, messageResId = errorResId ) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 5f6128c9..5b51af22 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -6,143 +6,130 @@ No items to display - Satélites - Passes + Satélites + Passes Radar Mapa - Ajustes + Ajustes - Seleccionar todo - Vaciar todo - Seleccionar tipo de satélite - Tipo: %s - Buscar por Nombre / Id - + Tipo: %s + Seleccionar tipo de satélite + Id - Name + Vaciar + Vaciar todo + Seleccionar todo + 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 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 - - - : - - - + Filtrar pases + Elevación mínima + Horas por delante + Tipo de modulación + ELEV: %.1f° + ALT: %.0f km + No hay datos para mostrar. Por favor, actualiza la base de datos a través del menú Ajustes. + Make sure your filters are correct and you have selected satellites - Welcome to Look4Sat\! - + No hay pases de satélite próximos para mostrar + 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. + Atrás + Notificar Ácimut Elevación Altitud Distancia - Visible Eclipsado - 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 + Transmisores satélite: + Invertido: %s + Modo: %s + Este satélite no lleva transmisores + No + Si + Visible - Mapa mundo - %s - Id:%d - Ácimut: %.1f° - Elevación: %.1f° - Latitud: %.1f° - Longitud: %.1f° - Visible - Eclipsado - Visibilidad: %s - Período: %.0f min - Fase: %.1f° - Altitud: %.0f km - Distancia: %.0f km - Velocidad: %.2f km/s - Wikimedia maps | Map data © OpenStreetMap contributors Anterior Siguiente + Ácimut: %.1f° + Elevación: %.1f° + Altitud: %.0f km + Distancia: %.0f km + Latitud: %.1f° + Longitud: %.1f° + Fase: %.1f° + Eclipsado + Período: %.0f min + Velocidad: %.2f km/s + Visibilidad: %s + Visible - 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 + Soporte + GPLv3 Licence + Privacy Policy + F-Droid + GitHub - 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 + Última actualización: %s + d MMM yyyy - HH:mm:ss - Preferencias Rotator - Habilitar control remoto - Dirección IP - Puerto + Ubicación estación + GPS + Revisa los permisos de ubicación + Manual + Ubicación no válida + QTH + Ubicación QTH no válida + Ubicación actualizada con éxito + Ajustar ubicaicón de la estación + Latitud de tu estación terrestre + Longitud de tu estación terrestre + Ajustes ubicación QTH + Ajustar posición de la estación con tu ubicación - Salida por Bluetooth - Habilitar salida - Id dispositivo - Formato de datos - Revisa los permisos de Bluetooth + Actualizar datos de satélites + Satélites: %s + Transmisores: %s + Online + Importar + Vaciar + Datos eliminados con éxito + Actualización completada con éxito - Mostrar tiempos de pase en UTC - Habilitar auto actualización de datos - Habilitar animaciones radar - Usar sensores para rotar vista de radar + Preferencias Rotator + Habilitar control remoto + Dirección IP + Puerto - 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 + Salida por Bluetooth + Habilitar salida + Id dispositivo + Formato de datos + Revisa los permisos de Bluetooth - d MMM yyyy - HH:mm:ss + Mostrar tiempos de pase en UTC + Habilitar auto actualización de datos + Habilitar animaciones radar + Usar sensores para rotar vista de radar - Me gustaría dar las gracias a: - • ti por descargar y usar Look4Sat! \nQue tengas cielos despejados! + 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. @@ -155,7 +142,7 @@ \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 6c4875a0..3056ce06 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -6,144 +6,130 @@ No items to display - Спутники - Пролеты + Спутники + Пролеты Radar Карта - Настройки + Настройки - Выбрать - Очистить - Выберите тип спутника - Выбран тип: %s - Имя / Id - + Выбран тип: %s + Выберите тип спутника + Id - Название + Очистить + Очистить + Выбрать + 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. - Выберите тип модуляции - Фильтровать пролеты - Количество часов - Минимальная элевация - DeepSpace - Нет предстоящих пролётов спутников - Пожалуйста, обновите базу данных спутников через меню Настроек - Элевация: %.1f° - Высота: %d км - -- : -- : -- - + Фильтровать пролеты + Минимальная элевация + Количество часов + Выберите тип модуляции + Элевация: %.1f° + Высота: %d км + Пожалуйста, обновите базу данных спутников через меню Настроек + 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. + Назад + Уведомить Азим. Элев. Выс. Дальн. - Видимый В тени - Модуляция: %s - Инверсия: %s - %s - - - . - - - %.4f - %.4f - %.4f - Трансиверы спутника: - У этого спутника нет трансиверов - Да - Нет Даунлинк Аплинк Добавить - Назад - Уведомить + Трансиверы спутника: + Инверсия: %s + Модуляция: %s + У этого спутника нет трансиверов + Нет + Да + Видимый - Карта Мира - %s - Id:%d - Азимут: %.1f° - Элевация: %.1f° - Широта: %.1f° - Долгота: %.1f° - Видимый - В тени - Видимость: %s - Период: %.0fмин - Фаза: %.1f° - Высота: %.0fкм - Дистанция: %.0fкм - Скорость: %.2fкм/с - Wikimedia maps | Map data © OpenStreetMap contributors Пред След + Азимут: %.1f° + Элевация: %.1f° + Высота: %.0fкм + Дистанция: %.0fкм + Широта: %.1f° + Долгота: %.1f° + Фаза: %.1f° + В тени + Период: %.0fмин + Скорость: %.2fкм/с + Видимость: %s + Видимый - Местоположение - Широта: %.4f° - Долгота: %.4f° - Нет данных геолокации - Нет разрешения использовать геоданные - Введены неверные данные - Неправильный локатор QTH - Позиция успешно обновлена + Поддержать + Лицензия + Конфиденц. + F-Droid + GitHub - Обновление данных - При обновлении возникли ошибки - Обновлено: %s - Спутников: %s - Трансиверов: %s - Обновление прошло успешно - Очистка прошла успешно + Обновлено: %s + d MMM yyyy - HH:mm:ss - Настройки ротатора - Удаленное управление - IP адрес - Порт + Местоположение + GPS + Нет разрешения использовать геоданные + Ввести + Введены неверные данные + QTH + Неправильный локатор QTH + Позиция успешно обновлена + Настройки местоположения + Установите широту наземной станции + Установите долготу наземной станции + Настройки локатора QTH + Установить позицию используя локатор - Передача данных по Bluetooth - Включить передачу - Id устройства - Формат данных - Нет разрешения использовать bluetooth + Обновление данных + Спутников: %s + Трансиверов: %s + Онлайн + Импорт + Очистить + Очистка прошла успешно + Обновление прошло успешно - Показывать время по UTC - Обновлять данные автоматически - Показывать анимацию радара - Использовать сенсоры устройства + Настройки ротатора + Удаленное управление + IP адрес + Порт - GPS - Ввести - QTH - Онлайн - Импорт - GitHub - Поддержать - F-Droid - Лицензия - Конфиденц. + Передача данных по Bluetooth + Включить передачу + Id устройства + Формат данных + Нет разрешения использовать bluetooth - d MMM yyyy - HH:mm:ss + Показывать время по UTC + Обновлять данные автоматически + Показывать анимацию радара + Использовать сенсоры устройства - Очистить - Настройки локатора QTH - Установить позицию используя локатор - Настройки местоположения - Установите широту наземной станции - Установите долготу наземной станции - - Я хотел бы сказать спасибо: - Вам за использование этого приложения! \nЖелаю всегда чистого неба над головой! + Я хотел бы сказать спасибо: + Вам за использование этого приложения! \nЖелаю всегда чистого неба над головой! \nDavid A. B. Johnson и Dave Moten за работу над predict4java и доступ к ней по GNU GPLv2 @@ -156,6 +142,6 @@ \nDownloadAstro за интерес к приложению и публикацию интервью на сайте. - Это ПО поставляется без гарантий. + Это ПО поставляется без гарантий. diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index 62185564..e5462825 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -6,144 +6,130 @@ No items to display - චන්ද්‍රිකා - පසුකර යෑම් + චන්ද්‍රිකා + පසුකර යෑම් Radar සිතියම - පසුතල + පසුතල - චන්ද්‍රිකා ආකාරය තෝරන්න - තේරූ ආකාර: %s - සියල්ල තෝරන්න - සියල්ල පිරිසිදු ක° - Name / Id - + තේරූ ආකාර: %s + චන්ද්‍රිකා ආකාරය තෝරන්න + Id - Name + පිරිසිදු ක° + සියල්ල පිරිසිදු ක° + සියල්ල තෝරන්න + 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. - පසුකිරිම් පිරිපහදුව - ඉදිරි පැය - අවම උත්තෝලනය - මූර්ජන ආකාරය තෝරන්න - DeepSpace - ප්‍රදර්ශනය කිරීමට ඉදිරියට එන චන්ද්‍රිකා පසුකර යෑම් නැත. - පෙන්වීමට දත්ත නැත. කරුණාකර දත්ත සමුදාය යාවත්කාලීන කරන්න. - උත්තෝලනය: %.1f° - උන්නතාශය: %d km - -- : -- : -- - + පසුකිරිම් පිරිපහදුව + අවම උත්තෝලනය + ඉදිරි පැය + මූර්ජන ආකාරය තෝරන්න + උත්තෝලනය: %.1f° + උන්නතාශය: %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. + ආපසු + දන්වනවා දිගංශය උත්තෝලනය උන්නතාශය පරතරය - දෘශ්‍යමාන අදෘශ්‍ය - ප්‍රාකාරය: %s - Inverted: %s - %s - - - . - - - %.4f - %.4f - %.4f - චන්ද්‍රිකා සම්ප්‍රේෂණයන්: - මෙම චන්ද්‍රිකාව සම්ප්‍රෙෂණය නොකරයි - ඔව් - නෑ Downlink Uplink එකතු ක° - ආපසු - දන්වනවා + චන්ද්‍රිකා සම්ප්‍රේෂණයන්: + Inverted: %s + ප්‍රාකාරය: %s + මෙම චන්ද්‍රිකාව සම්ප්‍රෙෂණය නොකරයි + නෑ + ඔව් + දෘශ්‍යමාන - ලෝක සිතියම - %s - Id:%d - දිගංශය: %.1f° - උත්තෝලනය: %.1f° - අක්‍ෂාංශ: %.1f° - දේශාංශ: %.1f° - දෘශ්‍ය - අදෘශ්‍ය - දෘශ්‍යතාව: %s - කාලය: %.0f min - අංශය: %.1f° - උන්නතාශය: %.0f km, - පරතරය: %.0f km - ප්‍රවේශය: %.2f km/s - Wikimedia maps | සිතියම් දත්ත © OpenStreetMap බෙදාහැරීම පසුපස ඊළග + දිගංශය: %.1f° + උත්තෝලනය: %.1f° + උන්නතාශය: %.0f km, + පරතරය: %.0f km + අක්‍ෂාංශ: %.1f° + දේශාංශ: %.1f° + අංශය: %.1f° + අදෘශ්‍ය + කාලය: %.0f min + ප්‍රවේශය: %.2f km/s + දෘශ්‍යතාව: %s + දෘශ්‍ය - පොළෙහි පිහිටීම - අක්‍ෂාංශ: %.4f° - දේශාංශ: %.4f° - භූ ස්ථාන දත්ත නොමැත - ඔබගේ location අවසර පරීක්ෂා ක° - ඇතුළත් කළ ස්ථානය වලංගු නොවේ - QTH locator වලංගු නොවේ - පිහිටීම යාවත්කාලීනය සාර්ථකයි + දායකත්ව + GPLv3 බලපත්‍රය + Privacy Policy + F-Droid + GitHub - චන්ද්‍රිකා දත්ත යාවත්කාලීනයි - දෝෂ සහිතව යාවත්කාලීනය සම්පූර්ණයි - අවසන් යාවත්කාලීනය: %s - චන්ද්‍රිකා: %s - සම්ප්‍රෙේෂණය: %s - යාවත්කාලීනය සම්පූර්ණ කිරීම සාර්ථකයි - දත්ත ඉවත් කිරීම සාර්ථකයි + අවසන් යාවත්කාලීනය: %s + d MMM yyyy - HH:mm:ss - භ්‍රමක මනාප - දුරස්ථ පාලනය සබල ක° - IP ලිපිනය - Port + පොළෙහි පිහිටීම + GPS + ඔබගේ location අවසර පරීක්ෂා ක° + අතින් + ඇතුළත් කළ ස්ථානය වලංගු නොවේ + QTH + QTH locator වලංගු නොවේ + පිහිටීම යාවත්කාලීනය සාර්ථකයි + පොළෙහි පිහිටීම් පසුතල + ඔබගේ පොළෙහි අක්‍ෂාංශය සකසන්න + ඔබගේ පොළෙහි දේශාංශය සකසන්න + QTH locator පසුතල + ඔබගේ locator භාවිතා කර පොළහි පිහිටීම සකසන්න - Bluetooth දත්ත ප්‍රතිදානය - ප්‍රතිදානය සබල ක° - උපාංග id - දත්ත අකාරය - Bluetooth අවසර පරික්‍ෂා ක° + චන්ද්‍රිකා දත්ත යාවත්කාලීනයි + චන්ද්‍රිකා: %s + සම්ප්‍රෙේෂණය: %s + මාර්ගගතව + Import + පිරිසිදු ක° + දත්ත ඉවත් කිරීම සාර්ථකයි + යාවත්කාලීනය සම්පූර්ණ කිරීම සාර්ථකයි - පසුකර වේලාවන් UTC මගින් - ස්වයං දත්ත යාවත්කාලීනය - radar sweep සජීවිකරණය සබල කරන්න - Radar දර්ශනය කරකැවීමට සංවේදක භාවිතා කරන්න + භ්‍රමක මනාප + දුරස්ථ පාලනය සබල ක° + IP ලිපිනය + Port - GPS - අතින් - QTH - මාර්ගගතව - Import - GitHub - දායකත්ව - F-Droid - GPLv3 බලපත්‍රය - Privacy Policy - පිරිසිදු ක° + Bluetooth දත්ත ප්‍රතිදානය + ප්‍රතිදානය සබල ක° + උපාංග id + දත්ත අකාරය + Bluetooth අවසර පරික්‍ෂා ක° - d MMM yyyy - HH:mm:ss + පසුකර වේලාවන් UTC මගින් + ස්වයං දත්ත යාවත්කාලීනය + radar sweep සජීවිකරණය සබල කරන්න + Radar දර්ශනය කරකැවීමට සංවේදක භාවිතා කරන්න - QTH locator පසුතල - ඔබගේ locator භාවිතා කර පොළහි පිහිටීම සකසන්න - පොළෙහි පිහිටීම් පසුතල - ඔබගේ පොළෙහි අක්‍ෂාංශය සකසන්න - ඔබගේ පොළෙහි දේශාංශය සකසන්න - - මම ස්තුති කිරීමට කැමති: - බාගෙන භාවිතා කළ ඔබට! \nඅහස සදා ඔබ වෙනුවෙන් පැහැදිලියි! + මම ස්තුති කිරීමට කැමති: + බාගෙන භාවිතා කළ ඔබට! \nඅහස සදා ඔබ වෙනුවෙන් පැහැදිලියි! \nDavid A. B. Johnson සහ Dave Motenඔවුනට ප්‍රයෝජනවත් predict4java පුස්තකාලය නිර්මාණයට. \nසහ Alexandru Csete සඳහා Gpredict නිර්මාණයට සහ @@ -153,6 +139,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 05c1ff2e..67d122c1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -6,144 +6,130 @@ No items to display - Супутники - Прольоти + Супутники + Прольоти Radar Карта - Налаштування + Налаштування - Вибрати всі - Очистити - Виберіть тип супутника - Вибраний тип: %s - Пошук за Назвою / Id - + Вибраний тип: %s + Виберіть тип супутника + Id - Назва + Очистити + Очистити + Вибрати всі + 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. - Фільтр прольотів - Кількість годин - Мінімальне піднесення - Виберіть тип модуляції - DeepSpace - Немає майбутніх прольотів супутників - Немає даних для відображення. Будь ласка, оновіть базу даних через меню Налаштування - Піднес.: %.1f° - Висота: %.0f км - - - : - - - + Фільтр прольотів + Мінімальне піднесення + Кількість годин + Виберіть тип модуляції + Піднес.: %.1f° + Висота: %.0f км + Немає даних для відображення. Будь ласка, оновіть базу даних через меню Налаштування + 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. + Назад + Сповістити Азимут Піднес. Висота Відстань - Видимий В тіні - Модуляція: %s - Інверсія: %s - %s - - - . - - - %.4f - %.4f - %.4f - Супутникові трансивери: - Цей супутник не має трансиверів - Так - Ні Downlink Uplink Додати - Сповістити - Назад + Супутникові трансивери: + Інверсія: %s + Модуляція: %s + Цей супутник не має трансиверів + Ні + Так + Видимий - Карта світу - %s - Id:%d - Азимут: %.1f° - Піднесення: %.1f° - Широта: %.1f° - Довгота: %.1f° - Видимий - Затемнений - Видимість: %s - Період: %.0f хв - Фаза: %.1f° - Висота: %.0f км - Дистанція: %.0f км - Швидкість: %.2f км/с - Wikimedia maps | Map data © OpenStreetMap contributors Попередній Наступний + Азимут: %.1f° + Піднесення: %.1f° + Висота: %.0f км + Дистанція: %.0f км + Широта: %.1f° + Довгота: %.1f° + Фаза: %.1f° + Затемнений + Період: %.0f хв + Швидкість: %.2f км/с + Видимість: %s + Видимий - Місцезнаходження - Широта: %.4f° - Довгота: %.4f° - Немає даних геолокації - Перевірте дозволи на визначення місця - Введені некоректні дані - Некоректний локатор QTH - Позицію успішно оновлено + Підтримати + Ліцензія GPLv3 + Конфіденційність + F-Droid + GitHub - Оновлення даних - Помилка при оновлені даних - Останнє оновлення: %s - Супутників: %s - Трансиверів: %s - Оновлення успішне - Дані успішно очищено + Останнє оновлення: %s + d MMM yyyy - HH:mm:ss - Налаштування ротатора - Віддалене керування - IP адреса - Порт + Місцезнаходження + GPS + Перевірте дозволи на визначення місця + Вручну + Введені некоректні дані + QTH + Некоректний локатор QTH + Позицію успішно оновлено + Налаштування місцезнаходження станції + Задайте широту станції + Задайте довготу станції + Налаштування QTH локатора + Задати позицію за QTH локатором - Передача даних через Bluetooth - Увімкнути передачу - Id пристрою - Формат даних - Перевірте дозвіл Bluetooth + Оновлення даних + Супутників: %s + Трансиверів: %s + Онлайн + Імпорт + Очистити + Дані успішно очищено + Оновлення успішне - Показувати час в UTC - Автоматичне оновлення даних - Показувати анімацію радара - Використовувати сенсори пристрою + Налаштування ротатора + Віддалене керування + IP адреса + Порт - Очистити - GPS - Вручну - QTH - Онлайн - Імпорт - GitHub - Підтримати - F-Droid - Ліцензія GPLv3 - Конфіденційність + Передача даних через Bluetooth + Увімкнути передачу + Id пристрою + Формат даних + Перевірте дозвіл Bluetooth - d MMM yyyy - HH:mm:ss + Показувати час в UTC + Автоматичне оновлення даних + Показувати анімацію радара + Використовувати сенсори пристрою - Налаштування QTH локатора - Задати позицію за QTH локатором - Налаштування місцезнаходження станції - Задайте широту станції - Задайте довготу станції - - Я хотів би подякувати: - Вам за завантаження та використання Look4Sat! + Я хотів би подякувати: + Вам за завантаження та використання Look4Sat! \nБажаю завжди чистого неба над головою! \nDavid A. B. Johnson та Dave Moten за створення бібліотеки predict4java. @@ -155,6 +141,6 @@ \nКоманді DownloadAstro за інтерес до застосунку та публікацію інтерв\'ю на сайті. - Це ПЗ поставляється без жодних гарантій. + Це ПЗ поставляється без жодних гарантій. diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 772f407b..96880c5f 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -6,135 +6,122 @@ 没有可显示的内容 - 卫星 - 过境 + 卫星 + 过境 Radar 地图 - 设置 + 设置 - 全选 - 全部清空 - 选择卫星类型 - 选择类型:%s - Name / Id - 请确保您的搜素无误并且卫星数据已更新 - 警告! - 此应用收录了超过9000颗卫星信息\n同时追踪所有卫星并不现实\n建议始终通过搜索和分类筛选功能仅勾选您感兴趣的卫星 + 选择类型:%s + 选择卫星类型 + Id - Name + 清空 + 全部清空 + 全选 + 请确保您的搜素无误并且卫星数据已更新 + 警告! + 此应用收录了超过9000颗卫星信息\n同时追踪所有卫星并不现实\n建议始终通过搜索和分类筛选功能仅勾选您感兴趣的卫星 - 筛选过境 - 小时数 - 仰角值 - 选择调制类型 - 没有即将过境的卫星 - 没有数据可显示,请通过设置菜单更新卫星数据。 - DeepSpace - 仰角:%.1f° - 高度:%d km - -- : -- : -- - 请确保您的筛选设置正确并且已勾选卫星 - 欢迎使用Look4Sat! - 请务必在设置中通过GPS、经纬度或QTH定位您的位置\n建议至少每周更新一次数据库,以确保预测结果的准确性 + 筛选过境 + 仰角值 + 小时数 + 选择调制类型 + 仰角:%.1f° + 高度:%d km + 没有数据可显示,请通过设置菜单更新卫星数据。 + 请确保您的筛选设置正确并且已勾选卫星 + 没有即将过境的卫星 + 欢迎使用Look4Sat! + 请务必在设置中通过GPS、经纬度或QTH定位您的位置\n建议至少每周更新一次数据库,以确保预测结果的准确性 + 后退 + 通知 方位角 仰角 高度 距离 - 日照中 地影中 - 调制:%s - 倒置:%s - %s - - - . - - - %.4f - %.4f - %.4f - 卫星收发器: - 这颗卫星没有收发器 - 是 - 否 下行链路 上行链路 添加 - 后退 - 通知 + 卫星收发器: + 倒置:%s + 调制:%s + 这颗卫星没有收发器 + 否 + 是 + 日照中 - 世界地图 - %s - Id:%d - 方位角:%.1f° - 仰角:%.1f° - 纬度:%.1f° - 经度:%.1f° - 日照中 - 地影中 - 能见度:%s - 周期:% .0f min - 相位:%.1f° - 高度:%.0f km - 距离:%.0f km - 速度:%.2f km/s - 维基媒体地图 | 地图数据 贡献者 © OpenStreetMap 上一个 下一个 + 方位角:%.1f° + 仰角:%.1f° + 高度:%.0f km + 距离:%.0f km + 纬度:%.1f° + 经度:%.1f° + 相位:%.1f° + 地影中 + 周期:% .0f min + 速度:%.2f km/s + 能见度:%s + 日照中 - 站位 - 纬度:%.4f° - 经度:%.4f° - 没有地理位置数据 - 检查您的位置权限 - 输入的位置无效 - 无效的 QTH 网格 - 位置更新成功 + 支持 + GNU GPLv3 + 隐私政策 + F-Droid + GitHub - 卫星数据更新 - 更新完成但出现错误 - 最后更新时间:%s - 卫星:%s - 收发器:%s - 更新成功 - 数据清空成功 + 最后更新时间:%s + yyyy MMM d - HH:mm:ss - yyyy MMM d - HH:mm:ss - 旋转器首选项 - 启用远程控制 - IP地址 - 端口 + 站位 + GPS 定位 + 检查您的位置权限 + 手动输入 + 输入的位置无效 + QTH 网格 + 无效的 QTH 网格 + 位置更新成功 + 站位设置 + 输入站位的纬度 + 输入站位的经度 + QTH 网格 + 使用梅登黑德网格设置站位 - 蓝牙数据输出 - 启用输出 - 蓝牙设备 ID - 数据格式 - 请检查蓝牙权限 + 卫星数据更新 + 卫星:%s + 收发器:%s + 在线更新 + 导入文件 + 清空 + 数据清空成功 + 更新成功 - 以 UTC 时间显示 - 启用卫星数据自动更新 - 启用雷达扫描动画 - 使用传感器旋转雷达视图 + 旋转器首选项 + 启用远程控制 + IP地址 + 端口 - 清空 - GPS 定位 - 手动输入 - QTH 网格 - 在线更新 - 导入文件 - GitHub - 支持 - F-Droid - GNU GPLv3 - 隐私政策 + 蓝牙数据输出 + 启用输出 + 蓝牙设备 ID + 数据格式 + 请检查蓝牙权限 - QTH 网格 - 使用梅登黑德网格设置站位 - 站位设置 - 输入站位的纬度 - 输入站位的经度 + 以 UTC 时间显示 + 启用卫星数据自动更新 + 启用雷达扫描动画 + 使用传感器旋转雷达视图 - 我要感谢: - 感谢下载和使用 Look4Sat!愿你的天空永远晴朗! + 我要感谢: + 感谢下载和使用 Look4Sat!愿你的天空永远晴朗! \n简体中文版翻译由 BA7LWN 于 2022.5.10 创建。 \nDavid A. B. Johnson and Dave Moten for creating predict4java lib @@ -148,6 +135,6 @@ \nDownloadAstro team for their interest to the app and the interview published. - 该应用程序不提供任何保修. + 该应用程序不提供任何保修. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc1d26d5..0cc29358 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,48 +7,51 @@ No items to display - Satellites - Passes + Satellites + Passes Radar Map - Settings + Settings - Selected type: %s - Id - Name - Clear all - Select all - Select satellite type - + Selected type: %s + Select satellite type + Id - Name + Clear + Clear all + Select all + 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 - -- : -- : -- - + Filter passes + Minimal elevation + Hours ahead + -- : -- : -- + Select modulation type + %05d + Elevation: %.1f° + DeepSpace + Altitude: %d km + %03d° - %03d° + No data to show. Please update the database via Settings menu. + Make sure your filters are correct and you have selected satellites - Welcome to Look4Sat\! - + There are no upcoming satellite passes to display + 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. + Back + Notify Azimuth %.1f° Elevation @@ -57,102 +60,90 @@ %.0f km Distance %.0f km - Visible Eclipsed - Notify - Mode: %s - Inverted: %s - %s - - - . - - - %.4f - %.4f - %.4f - Satellite transceivers: - This satellite has no transceivers - Yes - No Downlink Uplink - Back + %.4f + %.4f - %.4f + - - . - - Add + Satellite transceivers: + Inverted: %s + Mode: %s + This satellite has no transceivers + No + Yes + Visible - World Map - %s - Id:%d + Prev + Next + © OpenStreetMap contributors Azimuth: %.1f° Elevation: %.1f° + Altitude: %.0f km + Distance: %.0f km Latitude: %.1f° Longitude: %.1f° QTH: %s - Visible - Eclipsed - Visibility: %s - Period: %.0f min Phase: %.1f° - Altitude: %.0f km - Distance: %.0f km + Eclipsed + Period: %.0f min Velocity: %.2f km/s - Wikimedia maps | Map data © OpenStreetMap contributors - Prev - Next + Visibility: %s + Visible - Station position - Latitude: %.4f° - Longitude: %.4f° - No geolocation data - Check your location permissions - Invalid location entered - Invalid QTH locator - Position updated successfully + Donate + GPLv3 Licence + Privacy Policy + F-Droid + GitHub - Clear - GPS - Manual - QTH - Online - Import - GitHub - Donate - F-Droid - GPLv3 Licence - Privacy Policy + Last updated: %s + d MMM yyyy - HH:mm:ss - Station position settings - Set your ground station\'s latitude - Set your ground station\'s longitude + Station position + GPS + Check your location permissions + Manual + Invalid location entered + QTH + Invalid QTH locator + Position updated successfully + Station position settings + Set your ground station\'s latitude + Set your ground station\'s longitude + QTH locator settings + Set station\'s position using locator - QTH locator settings - Set station\'s position using locator + Satellite data + Satellites: %s + Transceivers: %s + Online + Import + Clear + Data was cleared successfully + Update completed successfully - Satellite data update - Update completed with errors - Last updated: %s - Satellites: %s - Transceivers: %s - Update completed successfully - Data was cleared successfully + Rotator preferences + Enable remote control + IP address + Port - d MMM yyyy - HH:mm:ss + Bluetooth data output + Enable output + Device id + Data format + Check your bluetooth permission - Rotator preferences - Enable remote control - IP address - Port + Show pass time in UTC + Enable automatic data update + Enable radar sweep animation + Use sensors to rotate radar view - 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! + 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 @@ -162,6 +153,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.