diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/navigation/BottomNavigationBar.kt b/app/src/main/java/com/github/nacabaro/vbhelper/navigation/BottomNavigationBar.kt index 52560c1..96f4275 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/navigation/BottomNavigationBar.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/navigation/BottomNavigationBar.kt @@ -8,7 +8,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.res.painterResource import androidx.navigation.NavController import androidx.navigation.compose.currentBackStackEntryAsState - +import androidx.compose.ui.res.stringResource @Composable fun BottomNavigationBar(navController: NavController) { @@ -26,8 +26,8 @@ fun BottomNavigationBar(navController: NavController) { items.forEach { item -> NavigationBarItem ( - icon = { Icon(painter = painterResource(item.icon), contentDescription = item.label) }, - label = { Text(item.label) }, + icon = { Icon(painter = painterResource(item.icon), contentDescription = stringResource(item.label)) }, + label = { Text(text = stringResource(item.label)) }, selected = currentRoute == item.route, onClick = { navController.navigate(item.route) { diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/navigation/NavigationItems.kt b/app/src/main/java/com/github/nacabaro/vbhelper/navigation/NavigationItems.kt index ca187ea..77b9b91 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/navigation/NavigationItems.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/navigation/NavigationItems.kt @@ -1,25 +1,101 @@ package com.github.nacabaro.vbhelper.navigation import com.github.nacabaro.vbhelper.R +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes -sealed class NavigationItems ( - var route: String, - var icon: Int, - var label: String +sealed class NavigationItems( + val route: String, + @DrawableRes val icon: Int, + @StringRes val label: Int ) { - object Scan : NavigationItems("Scan/{characterId}", R.drawable.baseline_nfc_24, "Scan") - object Battles : NavigationItems("Battle", R.drawable.baseline_swords_24, "Battle") - object Home : NavigationItems("Home", R.drawable.baseline_cottage_24, "Home") - object Dex : NavigationItems("Dex", R.drawable.baseline_menu_book_24, "Dex") - object CardAdventure : NavigationItems("CardAdventure/{cardId}", R.drawable.baseline_fort_24, "Card adventure") - object Storage : NavigationItems("Storage", R.drawable.baseline_catching_pokemon_24, "Storage") - object Settings : NavigationItems("Settings", R.drawable.baseline_settings_24, "Settings") - object Viewer : NavigationItems("Viewer", R.drawable.baseline_image_24, "Viewer") - object CardView : NavigationItems("Card/{cardId}", R.drawable.baseline_image_24, "Card") - object Items : NavigationItems("Items", R.drawable.baseline_data_24, "Items") - object MyItems : NavigationItems("MyItems", R.drawable.baseline_data_24, "My items") - object ItemsStore : NavigationItems("ItemsStore", R.drawable.baseline_data_24, "Items store") - object ApplyItem : NavigationItems("ApplyItem/{itemId}", R.drawable.baseline_data_24, "Apply item") - object Adventure : NavigationItems("Adventure", R.drawable.baseline_fort_24, "Adventure") - object Credits : NavigationItems("Credits", R.drawable.baseline_data_24, "Credits") + object Scan : NavigationItems( + "Scan/{characterId}", + R.drawable.baseline_nfc_24, + R.string.nav_scan + ) + + object Battles : NavigationItems( + "Battle", + R.drawable.baseline_swords_24, + R.string.nav_battle + ) + + object Home : NavigationItems( + "Home", + R.drawable.baseline_cottage_24, + R.string.nav_home + ) + + object Dex : NavigationItems( + "Dex", + R.drawable.baseline_menu_book_24, + R.string.nav_dex + ) + + object CardAdventure : NavigationItems( + "CardAdventure/{cardId}", + R.drawable.baseline_fort_24, + R.string.nav_card_adventure + ) + + object Storage : NavigationItems( + "Storage", + R.drawable.baseline_catching_pokemon_24, + R.string.nav_storage + ) + + object Settings : NavigationItems( + "Settings", + R.drawable.baseline_settings_24, + R.string.nav_settings + ) + + object Viewer : NavigationItems( + "Viewer", + R.drawable.baseline_image_24, + R.string.nav_viewer + ) + + object CardView : NavigationItems( + "Card/{cardId}", + R.drawable.baseline_image_24, + R.string.nav_card + ) + + object Items : NavigationItems( + "Items", + R.drawable.baseline_data_24, + R.string.nav_items + ) + + object MyItems : NavigationItems( + "MyItems", + R.drawable.baseline_data_24, + R.string.nav_my_items + ) + + object ItemsStore : NavigationItems( + "ItemsStore", + R.drawable.baseline_data_24, + R.string.nav_items_store + ) + + object ApplyItem : NavigationItems( + "ApplyItem/{itemId}", + R.drawable.baseline_data_24, + R.string.nav_apply_item + ) + + object Adventure : NavigationItems( + "Adventure", + R.drawable.baseline_fort_24, + R.string.nav_adventure + ) + + object Credits : NavigationItems( + "Credits", + R.drawable.baseline_data_24, + R.string.nav_credits + ) } \ No newline at end of file diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt index d7511ae..28fe0e9 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt @@ -18,6 +18,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.navigation.NavController import com.github.nacabaro.vbhelper.screens.itemsScreen.ObtainedItemDialog import com.github.nacabaro.vbhelper.components.TopBanner @@ -29,6 +30,7 @@ import com.github.nacabaro.vbhelper.source.StorageRepository import com.github.nacabaro.vbhelper.utils.BitmapData import kotlinx.coroutines.delay import java.time.Instant +import com.github.nacabaro.vbhelper.R @Composable fun AdventureScreen( @@ -61,7 +63,7 @@ fun AdventureScreen( Scaffold( topBar = { TopBanner( - text = "Adventure", + text = stringResource(R.string.adventure_title), onBackClick = { navController.popBackStack() } @@ -76,7 +78,7 @@ fun AdventureScreen( .padding(top = contentPadding.calculateTopPadding()) .fillMaxSize() ) { - Text(text = "Nothing to see here") + Text(text = stringResource(R.string.adventure_empty_state)) } } else { LazyColumn( diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/BetaWarning.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/BetaWarning.kt index fb9a567..77e0882 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/BetaWarning.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/BetaWarning.kt @@ -8,8 +8,10 @@ import androidx.compose.material3.Card import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog +import com.github.nacabaro.vbhelper.R @Composable fun BetaWarning( @@ -19,26 +21,26 @@ fun BetaWarning( onDismissRequest = onDismissRequest ) { Card { - Column ( + Column( modifier = Modifier .padding(16.dp) ) { Text( - text = "This application is currently in alpha and it is not complete. Do not use to store important characters for you, as any future updates might delete all your characters. Sorry for the inconvenience!" + text = stringResource(R.string.beta_warning_message_main) ) Spacer(modifier = Modifier.padding(8.dp)) Text( - text = "Application should work now with the original VB and the VH." + text = stringResource(R.string.beta_warning_message_compatibility) ) Spacer(modifier = Modifier.padding(8.dp)) Text( - text = "Thank you for your understanding and patience. Sincerely, the dev team." + text = stringResource(R.string.beta_warning_message_thanks) ) Spacer(modifier = Modifier.padding(8.dp)) Button( onClick = onDismissRequest ) { - Text(text = "Dismiss") + Text(text = stringResource(R.string.beta_warning_button_dismiss)) } } } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt index 7cd4515..7036fb8 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt @@ -19,6 +19,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog @@ -39,6 +40,7 @@ import com.github.nacabaro.vbhelper.screens.itemsScreen.ObtainedItemDialog import com.github.nacabaro.vbhelper.source.StorageRepository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import com.github.nacabaro.vbhelper.R @Composable fun HomeScreen( @@ -81,7 +83,7 @@ fun HomeScreen( Scaffold ( topBar = { TopBanner( - text = "VB Helper", + text = stringResource(R.string.home_title), onScanClick = { navController.navigate(NavigationItems.Scan.route) }, @@ -99,7 +101,7 @@ fun HomeScreen( .fillMaxSize() .padding(top = contentPadding.calculateTopPadding()) ) { - Text(text = "Nothing to see here") + Text(text = stringResource(R.string.adventure_empty_state)) } } else { if (activeMon.value!!.isBemCard) { @@ -154,7 +156,7 @@ fun HomeScreen( .padding(16.dp) ) { Text( - text = "One of your characters has finished their adventure mission!", + text = stringResource(R.string.home_adventure_mission_finished), textAlign = TextAlign.Center ) Button( @@ -165,7 +167,7 @@ fun HomeScreen( .padding(8.dp) .fillMaxWidth() ) { - Text(text = "Dismiss") + Text(text = stringResource(R.string.beta_warning_button_dismiss)) } } } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsScreen.kt index 8bbcbc3..4b78f99 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsScreen.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier import androidx.navigation.NavController import com.github.nacabaro.vbhelper.components.TopBanner import com.github.nacabaro.vbhelper.navigation.NavigationItems +import androidx.compose.ui.res.stringResource @Composable fun ItemsScreen( @@ -37,7 +38,7 @@ fun ItemsScreen( ) { items.forEachIndexed { index, item -> Tab( - text = { Text(item.label) }, + text = { Text(text = stringResource(item.label)) }, selected = selectedTabItem == index, onClick = { selectedTabItem = index } ) diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ChooseConnectionScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ChooseConnectionScreen.kt index 34180ba..d2025aa 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ChooseConnectionScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ChooseConnectionScreen.kt @@ -12,10 +12,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController import com.github.nacabaro.vbhelper.components.TopBanner +import com.github.nacabaro.vbhelper.R @Composable fun ChooseConnectOption( @@ -26,7 +28,7 @@ fun ChooseConnectOption( Scaffold( topBar = { TopBanner( - text = "Scan a Vital Bracelet", + text = stringResource(R.string.scan_title), onBackClick = { navController.popBackStack() } @@ -41,13 +43,13 @@ fun ChooseConnectOption( .padding(contentPadding) ) { ScanButton( - text = "Vital Bracelet to App", + text = stringResource(R.string.scan_vb_to_app), disabled = onClickRead == null, onClick = onClickRead?: { }, ) Spacer(modifier = Modifier.height(16.dp)) ScanButton( - text = "App to Vital Bracelet", + text = stringResource(R.string.scan_app_to_vb), disabled = onClickWrite == null, onClick = onClickWrite?: { }, ) diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt index 8dec3b6..72fc520 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt @@ -25,6 +25,7 @@ import com.github.nacabaro.vbhelper.source.proto.Secrets import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.withContext +import com.github.nacabaro.vbhelper.R const val SCAN_SCREEN_ACTIVITY_LIFECYCLE_LISTENER = "SCAN_SCREEN_ACTIVITY_LIFECYCLE_LISTENER" @@ -93,9 +94,9 @@ fun ScanScreen( else -> { { if(secrets == null) { - Toast.makeText(context, "Secrets is not yet initialized. Try again.", Toast.LENGTH_SHORT).show() + Toast.makeText(context, context.getString(R.string.scan_secrets_not_initialized), Toast.LENGTH_SHORT).show() } else if(secrets?.isMissingSecrets() == true) { - Toast.makeText(context, "Secrets not yet imported. Go to Settings and Import APK", Toast.LENGTH_SHORT).show() + Toast.makeText(context, context.getString(R.string.scan_secrets_not_imported), Toast.LENGTH_SHORT).show() } else { readingScreen = true // kicks off nfc adapter in DisposableEffect } @@ -107,9 +108,9 @@ fun ScanScreen( else -> { { if(secrets == null) { - Toast.makeText(context, "Secrets is not yet initialized. Try again.", Toast.LENGTH_SHORT).show() + Toast.makeText(context, context.getString(R.string.scan_secrets_not_initialized), Toast.LENGTH_SHORT).show() } else if(secrets?.isMissingSecrets() == true) { - Toast.makeText(context, "Secrets not yet imported. Go to Settings and Import APK", Toast.LENGTH_SHORT).show() + Toast.makeText(context, context.getString(R.string.scan_secrets_not_imported), Toast.LENGTH_SHORT).show() } else { writingScreen = true // kicks off nfc adapter in DisposableEffect } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt index 9ce42bc..487ab2d 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt @@ -25,6 +25,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch +import com.github.nacabaro.vbhelper.R class ScanScreenControllerImpl( override val secretsFlow: Flow, @@ -38,7 +39,7 @@ class ScanScreenControllerImpl( init { val maybeNfcAdapter = NfcAdapter.getDefaultAdapter(componentActivity) if (maybeNfcAdapter == null) { - Toast.makeText(componentActivity, "No NFC on device!", Toast.LENGTH_SHORT).show() + Toast.makeText(componentActivity, componentActivity.getString(R.string.scan_no_nfc_on_device), Toast.LENGTH_SHORT).show() } nfcAdapter = maybeNfcAdapter checkSecrets() @@ -94,7 +95,7 @@ class ScanScreenControllerImpl( val nfcData = NfcA.get(tag) if (nfcData == null) { componentActivity.runOnUiThread { - Toast.makeText(componentActivity, "Tag detected is not VB", Toast.LENGTH_SHORT).show() + Toast.makeText(componentActivity, componentActivity.getString(R.string.scan_tag_not_vb), Toast.LENGTH_SHORT).show() } } nfcData.connect() @@ -112,7 +113,7 @@ class ScanScreenControllerImpl( componentActivity.lifecycleScope.launch(Dispatchers.IO) { if(secretsFlow.stateIn(componentActivity.lifecycleScope).value.isMissingSecrets()) { componentActivity.runOnUiThread { - Toast.makeText(componentActivity, "Missing Secrets. Go to settings and import Vital Arena APK", Toast.LENGTH_SHORT).show() + Toast.makeText(componentActivity, componentActivity.getString(R.string.scan_missing_secrets), Toast.LENGTH_SHORT).show() } } } @@ -135,10 +136,10 @@ class ScanScreenControllerImpl( tagCommunicator.sendCharacter(castNfcCharacter) } onComplete.invoke() - "Sent character successfully!" + componentActivity.getString(R.string.scan_sent_character_success) } catch (e: Throwable) { Log.e("TAG", e.stackTraceToString()) - "Whoops" + componentActivity.getString(R.string.scan_error_generic) } } } @@ -151,13 +152,13 @@ class ScanScreenControllerImpl( handleTag(secrets) { tagCommunicator -> tagCommunicator.prepareDIMForCharacter(nfcCharacter.dimId) onComplete.invoke() - "Sent DIM successfully!" + componentActivity.getString(R.string.scan_sent_dim_success) } } // EXTRACTED DIRECTLY FROM EXAMPLE APP private fun showWirelessSettings() { - Toast.makeText(componentActivity, "NFC must be enabled", Toast.LENGTH_SHORT).show() + Toast.makeText(componentActivity, componentActivity.getString(R.string.scan_nfc_must_be_enabled), Toast.LENGTH_SHORT).show() componentActivity.startActivity(Intent(Settings.ACTION_WIRELESS_SETTINGS)) } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/settingsScreen/SettingsScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/settingsScreen/SettingsScreen.kt index 691e610..6a71765 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/settingsScreen/SettingsScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/settingsScreen/SettingsScreen.kt @@ -16,12 +16,15 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController import com.github.nacabaro.vbhelper.components.TopBanner import com.github.nacabaro.vbhelper.navigation.NavigationItems +import com.github.nacabaro.vbhelper.R + @Composable fun SettingsScreen( @@ -30,10 +33,10 @@ fun SettingsScreen( ) { val context = LocalContext.current - Scaffold ( + Scaffold( topBar = { TopBanner( - text = "Settings", + text = stringResource(R.string.settings_title), onBackClick = { navController.popBackStack() } @@ -42,34 +45,57 @@ fun SettingsScreen( modifier = Modifier .fillMaxSize() ) { contentPadding -> - Column ( + Column( modifier = Modifier .padding(top = contentPadding.calculateTopPadding()) .fillMaxSize() .verticalScroll(rememberScrollState()) ) { - SettingsSection("NFC Communication") - SettingsEntry(title = "Import APK", description = "Import Secrets From Vital Arena 2.1.0 APK") { + SettingsSection(title = stringResource(R.string.settings_section_nfc)) + SettingsEntry( + title = stringResource(R.string.settings_import_apk_title), + description = stringResource(R.string.settings_import_apk_desc) + ) { settingsScreenController.onClickImportApk() } - SettingsSection("DiM/BEm management") - SettingsEntry(title = "Import card", description = "Import DiM/BEm card file") { + + SettingsSection(title = stringResource(R.string.settings_section_dim_bem)) + SettingsEntry( + title = stringResource(R.string.settings_import_card_title), + description = stringResource(R.string.settings_import_card_desc) + ) { settingsScreenController.onClickImportCard() } - SettingsSection("About and credits") - SettingsEntry(title = "Credits", description = "Credits") { + + SettingsSection(title = stringResource(R.string.settings_section_about)) + SettingsEntry( + title = stringResource(R.string.settings_credits_title), + description = stringResource(R.string.settings_credits_desc) + ) { navController.navigate(NavigationItems.Credits.route) } - SettingsEntry(title = "About", description = "About") { + SettingsEntry( + title = stringResource(R.string.settings_about_title), + description = stringResource(R.string.settings_about_desc) + ) { val browserIntent = Intent( - Intent.ACTION_VIEW, Uri.parse("https://github.com/nacabaro/vbhelper/")) + Intent.ACTION_VIEW, + Uri.parse("https://github.com/nacabaro/vbhelper/") + ) context.startActivity(browserIntent) } - SettingsSection("Data management") - SettingsEntry(title = "Export data", description = "Export application database") { + + SettingsSection(title = stringResource(R.string.settings_section_data)) + SettingsEntry( + title = stringResource(R.string.settings_export_data_title), + description = stringResource(R.string.settings_export_data_desc) + ) { settingsScreenController.onClickOpenDirectory() } - SettingsEntry(title = "Import data", description = "Import application database") { + SettingsEntry( + title = stringResource(R.string.settings_import_data_title), + description = stringResource(R.string.settings_import_data_desc) + ) { settingsScreenController.onClickImportDatabase() } } @@ -101,9 +127,9 @@ fun SettingsEntry( fun SettingsSection( title: String ) { - Box ( + Box( modifier = Modifier - .padding(start = 16.dp) + .padding(start = 16.dp, top = 16.dp, bottom = 4.dp) ) { Text( text = title, @@ -112,4 +138,4 @@ fun SettingsSection( color = MaterialTheme.colorScheme.primary ) } -} \ No newline at end of file +} diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000..a0ea0f7 --- /dev/null +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -0,0 +1,92 @@ + + VBHelper + + Este aplicativo ainda está em versão alfa e não está completo. Não o use para armazenar personagens importantes para você, pois futuras atualizações podem apagar todos os seus personagens. Desculpe pelo transtorno! + + + O aplicativo agora deve funcionar com o VB original e com o VH. + + + Obrigado pela compreensão e pela paciência. Atenciosamente, a equipe de desenvolvimento. + + Fechar + + + Escanear + Batalhas + Início + Dex + Aventura do card + Armazenamento + Configurações + Visualizador + Card + Itens + Meus itens + Loja de itens + Aplicar item + Aventura + Créditos + + Aventura + Nada para ver aqui + + VB Helper + + Um dos seus personagens terminou a missão de aventura! + + + + Os segredos ainda não foram inicializados. Tente novamente. + + + Os segredos ainda não foram importados. Vá em Configurações e importe o APK. + + + Escanear um Vital Bracelet + Vital Bracelet para o app + App para o Vital Bracelet + + O dispositivo não possui NFC! + A tag detectada não é do Vital Bracelet. + + Segredos ausentes. Vá em Configurações e importe o APK do Vital Arena. + + Personagem enviado com sucesso! + Ops! + DIM enviado com sucesso! + O NFC precisa estar ativado. + + Configurações + + Comunicação NFC + Gerenciamento de DiM/BEm + Sobre e créditos + Gerenciamento de dados + + Importar APK + + Importar segredos do APK do Vital Arena 2.1.0 + + + Importar card + + Importar arquivo de card DiM/BEm + + + Créditos + Créditos + + Sobre + Sobre + + Exportar dados + + Exportar banco de dados do aplicativo + + + Importar dados + + Importar banco de dados do aplicativo + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9dbd136..46d70d8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,97 @@ VBHelper + + This application is currently in alpha and it is not complete. Do not use it to store important characters for you, as any future updates might delete all your characters. Sorry for the inconvenience! + + + + The application should now work with the original VB and the VH. + + + + Thank you for your understanding and patience. Sincerely, the dev team. + + + + Dismiss + + + Scan + Battle + Home + Dex + Card adventure + Storage + Settings + Viewer + Card + Items + My items + Items store + Apply item + Adventure + Credits + + Adventure + Nothing to see here + + VB Helper + + One of your characters has finished their adventure mission! + + + + Secrets is not yet initialized. Try again. + + + Secrets not yet imported. Go to Settings and Import APK. + + + Scan a Vital Bracelet + Vital Bracelet to App + App to Vital Bracelet + + No NFC on device! + Tag detected is not VB + + Missing Secrets. Go to settings and import Vital Arena APK. + + Sent character successfully! + Whoops + Sent DIM successfully! + NFC must be enabled + + + Settings + + NFC Communication + DiM/BEm management + About and credits + Data management + + Import APK + + Import Secrets From Vital Arena 2.1.0 APK + + + Import card + + Import DiM/BEm card file + + + Credits + Credits + + About + About + + Export data + + Export application database + + + Import data + + Import application database + \ No newline at end of file