M app/src/main/java/com/github/nacabaro/vbhelper/components/CharacterEntry.kt => app/src/main/java/com/github/nacabaro/vbhelper/components/CharacterEntry.kt +36 -10
@@ 36,6 36,8 @@ import com.github.cfogrady.vbnfc.vb.SpecialMission
import com.github.nacabaro.vbhelper.R
import com.github.nacabaro.vbhelper.domain.device_data.SpecialMissions
import com.github.nacabaro.vbhelper.utils.getObscuredBitmap
+import androidx.compose.ui.res.stringResource
+
@Composable
fun CharacterEntry(
@@ 134,11 136,23 @@ fun SpecialMissionsEntry(
onClickCard: () -> Unit = { },
) {
val textValue = when (specialMission.missionType) {
- SpecialMission.Type.NONE -> "No mission selected"
- SpecialMission.Type.STEPS -> "Walk ${specialMission.goal} steps"
- SpecialMission.Type.BATTLES -> "Battle ${specialMission.goal} times"
- SpecialMission.Type.WINS -> "Win ${specialMission.goal} battles"
- SpecialMission.Type.VITALS -> "Earn ${specialMission.goal} vitals"
+ SpecialMission.Type.NONE -> stringResource(R.string.special_mission_none)
+ SpecialMission.Type.STEPS -> stringResource(
+ R.string.special_mission_steps,
+ specialMission.goal
+ )
+ SpecialMission.Type.BATTLES -> stringResource(
+ R.string.special_mission_battles,
+ specialMission.goal
+ )
+ SpecialMission.Type.WINS -> stringResource(
+ R.string.special_mission_wins,
+ specialMission.goal
+ )
+ SpecialMission.Type.VITALS -> stringResource(
+ R.string.special_mission_vitals,
+ specialMission.goal
+ )
}
val progress = if (specialMission.status == SpecialMission.Status.COMPLETED) {
@@ 149,10 163,22 @@ fun SpecialMissionsEntry(
val completion = when (specialMission.missionType) {
SpecialMission.Type.NONE -> ""
- SpecialMission.Type.STEPS -> "Walked $progress steps"
- SpecialMission.Type.BATTLES -> "Battled $progress times"
- SpecialMission.Type.WINS -> "Won $progress battles"
- SpecialMission.Type.VITALS -> "Earned $progress vitals"
+ SpecialMission.Type.STEPS -> stringResource(
+ R.string.special_mission_steps_progress,
+ progress
+ )
+ SpecialMission.Type.BATTLES -> stringResource(
+ R.string.special_mission_battles_progress,
+ progress
+ )
+ SpecialMission.Type.WINS -> stringResource(
+ R.string.special_mission_wins_progress,
+ progress
+ )
+ SpecialMission.Type.VITALS -> stringResource(
+ R.string.special_mission_vitals_progress,
+ progress
+ )
}
val icon = when (specialMission.missionType) {
@@ 193,7 219,7 @@ fun SpecialMissionsEntry(
) {
Icon(
painter = painterResource(icon),
- contentDescription = "Vitals",
+ contentDescription = stringResource(R.string.special_mission_icon_content_description),
modifier = Modifier
.fillMaxHeight()
.padding(16.dp)
M app/src/main/java/com/github/nacabaro/vbhelper/screens/BattlesScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/BattlesScreen.kt +5 -2
@@ 10,13 10,16 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import com.github.nacabaro.vbhelper.components.TopBanner
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun BattlesScreen() {
Scaffold (
topBar = {
TopBanner(
- text = "Online battles"
+ text = stringResource(R.string.battles_online_title)
)
}
) { contentPadding ->
@@ 27,7 30,7 @@ fun BattlesScreen() {
.padding(top = contentPadding.calculateTopPadding())
.fillMaxSize()
) {
- Text("Coming soon")
+ Text(stringResource(R.string.battles_coming_soon))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardAdventureScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardAdventureScreen.kt +4 -1
@@ 11,6 11,9 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.navigation.NavController
import com.github.nacabaro.vbhelper.components.TopBanner
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun CardAdventureScreen(
@@ 28,7 31,7 @@ fun CardAdventureScreen(
Scaffold (
topBar = {
TopBanner(
- text = "Adventure missions",
+ text = stringResource(R.string.card_adventure_missions_title),
onBackClick = {
navController.popBackStack()
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardEntry.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardEntry.kt +10 -3
@@ 24,6 24,9 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import com.github.nacabaro.vbhelper.utils.BitmapData
import com.github.nacabaro.vbhelper.utils.getBitmap
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun CardEntry(
@@ 75,7 78,11 @@ fun CardEntry(
modifier = Modifier
)
Text(
- text = "$obtainedCharacters of $totalCharacters characters obtained",
+ text = stringResource(
+ R.string.card_entry_characters_obtained,
+ obtainedCharacters,
+ totalCharacters
+ ),
fontFamily = MaterialTheme.typography.labelSmall.fontFamily,
fontSize = MaterialTheme.typography.labelSmall.fontSize,
modifier = Modifier
@@ 91,7 98,7 @@ fun CardEntry(
) {
Icon(
imageVector = Icons.Default.Edit,
- contentDescription = "Edit"
+ contentDescription = stringResource(R.string.card_entry_edit)
)
}
IconButton(
@@ 99,7 106,7 @@ fun CardEntry(
) {
Icon(
imageVector = Icons.Default.Delete,
- contentDescription = "Delete"
+ contentDescription = stringResource(R.string.card_entry_delete)
)
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardViewScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardViewScreen.kt +4 -1
@@ 10,6 10,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
import androidx.navigation.NavController
import com.github.nacabaro.vbhelper.utils.BitmapData
import com.github.nacabaro.vbhelper.components.CharacterEntry
@@ 19,6 20,8 @@ import com.github.nacabaro.vbhelper.dtos.CharacterDtos
import com.github.nacabaro.vbhelper.navigation.NavigationItems
import com.github.nacabaro.vbhelper.screens.cardScreen.dialogs.DexCharaDetailsDialog
import com.github.nacabaro.vbhelper.source.DexRepository
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun CardViewScreen(
@@ 35,7 38,7 @@ fun CardViewScreen(
Scaffold (
topBar = {
TopBanner(
- text = "Discovered characters",
+ text = stringResource(R.string.card_view_discovered_characters),
onBackClick = {
navController.popBackStack()
},
M app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardsScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/CardsScreen.kt +3 -1
@@ 24,6 24,8 @@ import com.github.nacabaro.vbhelper.navigation.NavigationItems
import com.github.nacabaro.vbhelper.screens.cardScreen.dialogs.CardDeleteDialog
import com.github.nacabaro.vbhelper.screens.cardScreen.dialogs.CardRenameDialog
import com.github.nacabaro.vbhelper.source.DexRepository
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
@Composable
fun CardsScreen(
@@ 43,7 45,7 @@ fun CardsScreen(
Scaffold (
topBar = {
TopBanner(
- text = "My cards",
+ text = stringResource(R.string.cards_my_cards_title),
onModifyClick = {
modifyCards = !modifyCards
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/dialogs/DexCharaDetailsDialog.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/cardScreen/dialogs/DexCharaDetailsDialog.kt +39 -13
@@ 33,7 33,8 @@ import com.github.nacabaro.vbhelper.dtos.CharacterDtos
import com.github.nacabaro.vbhelper.source.DexRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
import com.github.nacabaro.vbhelper.utils.getImageBitmap
-
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
@Composable
fun DexCharaDetailsDialog(
@@ 119,7 120,7 @@ fun DexCharaDetailsDialog(
) {
Image(
bitmap = charaImageBitmapData.imageBitmap,
- contentDescription = "Icon",
+ contentDescription = stringResource(R.string.dex_chara_icon_description),
modifier = Modifier
.size(charaImageBitmapData.dpWidth)
.padding(8.dp),
@@ 138,7 139,7 @@ fun DexCharaDetailsDialog(
Column {
Image(
bitmap = nameImageBitmapData.imageBitmap,
- contentDescription = "Icon",
+ contentDescription = stringResource(R.string.dex_chara_name_icon_description),
modifier = Modifier
.width(nameImageBitmapData.dpWidth)
.height(nameImageBitmapData.dpHeight),
@@ 147,17 148,28 @@ fun DexCharaDetailsDialog(
Spacer(modifier = Modifier.padding(4.dp))
if (currentChara.baseHp != 65535) {
Text(
- text = "HP: ${currentChara.baseHp}, BP: ${currentChara.baseBp}, AP: ${currentChara.baseAp}"
+ text = stringResource(
+ R.string.dex_chara_stats,
+ currentChara.baseHp,
+ currentChara.baseBp,
+ currentChara.baseAp
+ )
+ )
+ Text(
+ text = stringResource(
+ R.string.dex_chara_stage_attribute,
+ romanNumeralsStage,
+ currentChara.attribute.toString().substring(0, 2)
+ )
)
- Text(text = "Stg: ${romanNumeralsStage}, Atr: ${currentChara.attribute.toString().substring(0, 2)}")
}
}
} else {
Column {
- Text(text = "????????????????")
+ Text(stringResource(R.string.dex_chara_unknown_name))
Spacer(modifier = Modifier.padding(4.dp))
- Text(text = "Stg: -, Atr: -")
- Text(text = "HP: -, BP: -, AP: -")
+ Text(stringResource(R.string.dex_chara_stage_attribute_unknown))
+ Text(stringResource(R.string.dex_chara_stats_unknown))
}
}
}
@@ 198,7 210,7 @@ fun DexCharaDetailsDialog(
) {
Image(
bitmap = selectedCharaImageBitmap.imageBitmap,
- contentDescription = "Icon",
+ contentDescription = stringResource(R.string.dex_chara_icon_description),
modifier = Modifier
.size(selectedCharaImageBitmap.dpWidth)
.padding(8.dp),
@@ 214,8 226,22 @@ fun DexCharaDetailsDialog(
.padding(16.dp)
)
Column {
- Text("Tr: ${it.requiredTrophies}; Bt: ${it.requiredBattles}; Vr: ${it.requiredVitals}; Wr: ${it.requiredWinRate}%; Ct: ${it.changeTimerHours}h")
- Text("AdvLvl ${it.requiredAdventureLevelCompleted + 1}")
+ Text(
+ text = stringResource(
+ R.string.dex_chara_requirements,
+ it.requiredTrophies,
+ it.requiredBattles,
+ it.requiredVitals,
+ it.requiredWinRate,
+ it.changeTimerHours
+ )
+ )
+ Text(
+ text = stringResource(
+ R.string.dex_chara_adventure_level,
+ it.requiredAdventureLevelCompleted + 1
+ )
+ )
}
}
}
@@ 229,7 255,7 @@ fun DexCharaDetailsDialog(
showFusions = true
}
) {
- Text("Fusions")
+ Text(stringResource(R.string.dex_chara_fusions_button))
}
}
@@ 241,7 267,7 @@ fun DexCharaDetailsDialog(
Button(
onClick = onClickClose
) {
- Text("Close")
+ Text(stringResource(R.string.dex_chara_close_button))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt +9 -7
@@ 25,6 25,8 @@ import com.github.nacabaro.vbhelper.dtos.ItemDtos
import com.github.nacabaro.vbhelper.screens.homeScreens.HomeScreenControllerImpl
import com.github.nacabaro.vbhelper.utils.BitmapData
import java.util.Locale
+import androidx.compose.ui.res.stringResource
+
@Composable
fun VBDiMHomeScreen(
@@ 65,7 67,7 @@ fun VBDiMHomeScreen(
ItemDisplay(
icon = R.drawable.baseline_vitals_24,
textValue = activeMon.vitalPoints.toString(),
- definition = "Vitals",
+ definition = stringResource(R.string.home_vbdim_vitals),
modifier = Modifier
.weight(0.5f)
.aspectRatio(1f)
@@ 74,7 76,7 @@ fun VBDiMHomeScreen(
ItemDisplay(
icon = R.drawable.baseline_trophy_24,
textValue = activeMon.trophies.toString(),
- definition = "Trophies",
+ definition = stringResource(R.string.home_vbdim_trophies),
modifier = Modifier
.weight(0.5f)
.aspectRatio(1f)
@@ 89,7 91,7 @@ fun VBDiMHomeScreen(
ItemDisplay(
icon = R.drawable.baseline_mood_24,
textValue = activeMon.mood.toString(),
- definition = "Mood",
+ definition = stringResource(R.string.home_vbdim_mood),
modifier = Modifier
.weight(1f)
.aspectRatio(1f)
@@ 102,7 104,7 @@ fun VBDiMHomeScreen(
0 -> "${activeMon.transformationCountdown} m"
else -> "$transformationCountdownInHours h"
},
- definition = "Next timer",
+ definition = stringResource(R.string.home_vbdim_next_timer),
modifier = Modifier
.weight(1f)
.aspectRatio(1f)
@@ 122,7 124,7 @@ fun VBDiMHomeScreen(
) + " %" // Specify locale
}
},
- definition = "Total battle win %",
+ definition = stringResource(R.string.home_vbdim_total_battle_win),
modifier = Modifier
.weight(1f)
.aspectRatio(1f)
@@ 142,7 144,7 @@ fun VBDiMHomeScreen(
) + " %" // Specify locale
}
},
- definition = "Current phase win %",
+ definition = stringResource(R.string.home_vbdim_current_phase_win),
modifier = Modifier
.weight(1f)
.aspectRatio(1f)
@@ 165,7 167,7 @@ fun VBDiMHomeScreen(
.padding(16.dp)
) {
Text(
- text = "Special missions",
+ text = stringResource(R.string.home_vbdim_special_missions),
fontSize = 24.sp
)
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ChooseCharacterScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ChooseCharacterScreen.kt +4 -3
@@ 15,6 15,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
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.components.CharacterEntry
import com.github.nacabaro.vbhelper.components.TopBanner
@@ 26,7 27,7 @@ import com.github.nacabaro.vbhelper.source.StorageRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
-
+import com.github.nacabaro.vbhelper.R
@Composable
fun ChooseCharacterScreen(
@@ 69,7 70,7 @@ fun ChooseCharacterScreen(
itemsScreenController.applyItem(itemId, selectedCharacter!!) {
Toast.makeText(
application.applicationContext,
- "Item applied!",
+ application.getString(R.string.choose_character_item_applied),
Toast.LENGTH_SHORT
).show()
navController.popBackStack()
@@ 80,7 81,7 @@ fun ChooseCharacterScreen(
Scaffold(
topBar = {
TopBanner(
- text = "Choose character",
+ text = stringResource(R.string.choose_character_title),
onBackClick = {
navController.popBackStack()
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemDialog.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemDialog.kt +14 -5
@@ 17,6 17,7 @@ import androidx.compose.runtime.Composable
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.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ 27,6 28,8 @@ import com.github.nacabaro.vbhelper.domain.items.ItemType
import com.github.nacabaro.vbhelper.dtos.ItemDtos
import com.github.nacabaro.vbhelper.ui.theme.VBHelperTheme
+
+
@Composable
fun ItemDialog(
item: ItemDtos.ItemsWithQuantities,
@@ 95,7 98,10 @@ fun ItemDialog(
textAlign = TextAlign.Center,
fontSize = MaterialTheme.typography.bodySmall.fontSize,
fontFamily = MaterialTheme.typography.bodySmall.fontFamily,
- text = "Costs ${item.price} credits",
+ text = stringResource(
+ R.string.item_dialog_costs_credits,
+ item.price
+ ),
modifier = Modifier
.fillMaxWidth()
)
@@ 104,7 110,10 @@ fun ItemDialog(
textAlign = TextAlign.Center,
fontSize = MaterialTheme.typography.bodySmall.fontSize,
fontFamily = MaterialTheme.typography.bodySmall.fontFamily,
- text = "You have ${item.quantity} of this item",
+ text = stringResource(
+ R.string.item_dialog_you_have_quantity,
+ item.quantity
+ ),
modifier = Modifier
.fillMaxWidth()
)
@@ 118,7 127,7 @@ fun ItemDialog(
Button(
onClick = onClickUse
) {
- Text("Use item")
+ Text(stringResource(R.string.item_dialog_use))
}
}
@@ 126,7 135,7 @@ fun ItemDialog(
Button(
onClick = onClickPurchase
) {
- Text("Purchase")
+ Text(stringResource(R.string.item_dialog_purchase))
}
}
@@ 134,7 143,7 @@ fun ItemDialog(
Button(
onClick = onClickCancel
) {
- Text("Cancel")
+ Text(stringResource(R.string.item_dialog_cancel))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemElement.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemElement.kt +1 -0
@@ 14,6 14,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import com.github.nacabaro.vbhelper.dtos.ItemDtos
+import com.github.nacabaro.vbhelper.R
@Composable
fun ItemElement(
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsScreen.kt +3 -1
@@ 18,6 18,8 @@ import androidx.navigation.NavController
import com.github.nacabaro.vbhelper.components.TopBanner
import com.github.nacabaro.vbhelper.navigation.NavigationItems
import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun ItemsScreen(
@@ 31,7 33,7 @@ fun ItemsScreen(
Scaffold(
topBar = {
Column {
- TopBanner("Items")
+ TopBanner(text = stringResource(R.string.items_title))
TabRow(
selectedTabIndex = selectedTabItem,
modifier = Modifier
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsStore.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ItemsStore.kt +18 -12
@@ 21,6 21,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.unit.dp
import androidx.navigation.NavController
import com.github.nacabaro.vbhelper.database.AppDatabase
@@ 30,6 31,7 @@ import com.github.nacabaro.vbhelper.source.CurrencyRepository
import com.github.nacabaro.vbhelper.source.ItemsRepository
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
+import com.github.nacabaro.vbhelper.R
@Composable
fun ItemsStore(
@@ 52,7 54,7 @@ fun ItemsStore(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
) {
- Text("No items")
+ Text(stringResource(R.string.items_no_items))
}
} else {
Column() {
@@ 62,7 64,10 @@ fun ItemsStore(
.fillMaxWidth()
) {
Text(
- text = "${currentCurrency.value} credits",
+ text = stringResource(
+ R.string.items_store_credits,
+ currentCurrency.value
+ ),
modifier = Modifier
.padding(8.dp)
)
@@ 94,14 99,15 @@ fun ItemsStore(
scope.launch {
Toast.makeText(
application.applicationContext,
- purchaseItem(
- application.container.db,
- myItems[selectedElementIndex!!],
- currencyRepository
+ application.getString(
+ purchaseItem(
+ application.container.db,
+ myItems[selectedElementIndex!!],
+ currencyRepository
+ )
),
Toast.LENGTH_SHORT
- ).show(
- )
+ ).show()
}
},
onClickCancel = { selectedElementIndex = null }
@@ 113,9 119,9 @@ suspend fun purchaseItem(
db: AppDatabase,
item: ItemDtos.ItemsWithQuantities,
currencyRepository: CurrencyRepository
-): String {
- if (currencyRepository.currencyValue.first() < item.price) {
- return "Not enough credits"
+): Int {
+ return if (currencyRepository.currencyValue.first() < item.price) {
+ R.string.items_not_enough_credits
} else {
db
.itemDao()
@@ 129,6 135,6 @@ suspend fun purchaseItem(
currencyRepository.currencyValue.first() - item.price
)
- return "Purchase successful!"
+ R.string.items_purchase_success
}
}=
\ No newline at end of file
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/MyItems.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/MyItems.kt +4 -1
@@ 17,11 17,14 @@ 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.unit.dp
import androidx.navigation.NavController
import com.github.nacabaro.vbhelper.di.VBHelper
import com.github.nacabaro.vbhelper.navigation.NavigationItems
import com.github.nacabaro.vbhelper.source.ItemsRepository
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun MyItems(
@@ 39,7 42,7 @@ fun MyItems(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
) {
- Text("No items")
+ Text(stringResource(R.string.items_no_items))
}
} else {
LazyVerticalGrid(
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt +11 -3
@@ 19,6 19,8 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import com.github.nacabaro.vbhelper.dtos.ItemDtos
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
@Composable
fun ObtainedItemDialog(
@@ 82,7 84,10 @@ fun ObtainedItemDialog(
textAlign = TextAlign.Center,
fontSize = MaterialTheme.typography.bodySmall.fontSize,
fontFamily = MaterialTheme.typography.bodySmall.fontFamily,
- text = "You have obtained ${obtainedItem.itemAmount} of this item",
+ text = stringResource(
+ R.string.obtained_item_you_have,
+ obtainedItem.itemAmount
+ ),
modifier = Modifier
.fillMaxWidth()
.padding(top = 4.dp)
@@ 91,7 96,10 @@ fun ObtainedItemDialog(
textAlign = TextAlign.Center,
fontSize = MaterialTheme.typography.bodySmall.fontSize,
fontFamily = MaterialTheme.typography.bodySmall.fontFamily,
- text = "You also got $obtainedCurrency credits",
+ text = stringResource(
+ R.string.obtained_item_you_also_got_credits,
+ obtainedCurrency
+ ),
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 4.dp)
@@ 101,7 109,7 @@ fun ObtainedItemDialog(
modifier = Modifier
.fillMaxWidth()
) {
- Text(text = "Dismiss")
+ Text(text = stringResource(R.string.obtained_item_dismiss))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/ActionScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/ActionScreen.kt +4 -2
@@ 10,8 10,10 @@ 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 com.github.nacabaro.vbhelper.components.TopBanner
+import com.github.nacabaro.vbhelper.R
@Composable
fun ActionScreen(
@@ 33,12 35,12 @@ fun ActionScreen(
.padding(innerPadding)
.fillMaxSize()
) {
- Text("Place your Vital Bracelet near the reader...")
+ Text(stringResource(R.string.action_place_near_reader))
Button(
onClick = onClickCancel,
modifier = Modifier.padding(16.dp)
) {
- Text("Cancel")
+ Text(stringResource(R.string.action_cancel))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/ReadCharacterScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/ReadCharacterScreen.kt +6 -4
@@ 11,9 11,11 @@ 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.text.style.TextAlign
import androidx.compose.ui.unit.dp
import com.github.nacabaro.vbhelper.components.TopBanner
+import com.github.nacabaro.vbhelper.R
@Composable
fun ReadCharacterScreen(
@@ 23,7 25,7 @@ fun ReadCharacterScreen(
Scaffold(
topBar = {
TopBanner(
- text = "Read character",
+ text = stringResource(R.string.read_character_title),
onBackClick = onClickCancel
)
}
@@ 36,12 38,12 @@ fun ReadCharacterScreen(
.fillMaxSize()
) {
Text(
- text = "Prepare your device!",
+ text = stringResource(R.string.read_character_prepare_device),
textAlign = TextAlign.Center
)
Text(
- text = "Go to connect and when ready press confirm!",
+ text = stringResource(R.string.read_character_go_to_connect),
textAlign = TextAlign.Center
)
@@ 52,7 54,7 @@ fun ReadCharacterScreen(
Button(
onClick = onClickConfirm,
) {
- Text("Confirm")
+ Text(stringResource(R.string.read_character_confirm))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/ReadingScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/ReadingScreen.kt +4 -1
@@ 7,11 7,14 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
+import androidx.compose.ui.res.stringResource
import com.github.nacabaro.vbhelper.ActivityLifecycleListener
import com.github.nacabaro.vbhelper.domain.card.Card
import com.github.nacabaro.vbhelper.screens.cardScreen.ChooseCard
import com.github.nacabaro.vbhelper.screens.scanScreen.SCAN_SCREEN_ACTIVITY_LIFECYCLE_LISTENER
import com.github.nacabaro.vbhelper.screens.scanScreen.ScanScreenController
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun ReadingScreen(
@@ 92,7 95,7 @@ fun ReadingScreen(
}
if (readingScreen) {
- ActionScreen("Reading character") {
+ ActionScreen(topBannerText = stringResource(R.string.reading_character_title),) {
readingScreen = false
scanScreenController.cancelRead()
onCancel()
M app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/WriteCardScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/WriteCardScreen.kt +15 -5
@@ 24,6 24,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.github.nacabaro.vbhelper.components.TopBanner
import com.github.nacabaro.vbhelper.di.VBHelper
@@ 31,6 32,7 @@ import com.github.nacabaro.vbhelper.domain.card.Card
import com.github.nacabaro.vbhelper.source.ScanRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
import com.github.nacabaro.vbhelper.utils.getImageBitmap
+import com.github.nacabaro.vbhelper.R
@Composable
fun WriteCardScreen(
@@ 55,7 57,7 @@ fun WriteCardScreen(
Scaffold(
topBar = {
TopBanner(
- text = "Writing card details",
+ text = stringResource(R.string.write_card_title),
onBackClick = onClickCancel
)
}
@@ 101,7 103,9 @@ fun WriteCardScreen(
) {
Image(
bitmap = charaImageBitmapData.imageBitmap,
- contentDescription = "Icon",
+ contentDescription = stringResource(
+ R.string.write_card_icon_description
+ ),
modifier = Modifier
.size(charaImageBitmapData.dpWidth)
.padding(8.dp),
@@ 115,8 119,14 @@ fun WriteCardScreen(
)
Column {
- Text("Get your device Ready!")
- Text("You will need ${cardDetails.name} card!")
+ Text(stringResource(R.string.write_card_device_ready))
+ Text(
+ stringResource(
+ R.string.write_card_required_card,
+ cardDetails.name
+ )
+ )
+
}
}
@@ 125,7 135,7 @@ fun WriteCardScreen(
Button(
onClick = onClickConfirm,
) {
- Text("Confirm")
+ Text(stringResource(R.string.write_card_confirm))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/WriteCharacterScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/WriteCharacterScreen.kt +8 -5
@@ 25,6 25,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.github.nacabaro.vbhelper.components.TopBanner
import com.github.nacabaro.vbhelper.di.VBHelper
@@ 32,6 33,8 @@ import com.github.nacabaro.vbhelper.domain.card.Card
import com.github.nacabaro.vbhelper.source.ScanRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
import com.github.nacabaro.vbhelper.utils.getImageBitmap
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun WriteCharacterScreen(
@@ 56,7 59,7 @@ fun WriteCharacterScreen(
Scaffold(
topBar = {
TopBanner(
- text = "Writing character",
+ text = stringResource(R.string.write_character_title),
onBackClick = onClickCancel
)
}
@@ 102,7 105,7 @@ fun WriteCharacterScreen(
) {
Image(
bitmap = charaImageBitmapData.imageBitmap,
- contentDescription = "Icon",
+ contentDescription = stringResource(R.string.write_character_icon_description),
modifier = Modifier
.size(charaImageBitmapData.dpWidth)
.padding(8.dp),
@@ 116,8 119,8 @@ fun WriteCharacterScreen(
)
Column {
- Text("Card installed successfully!!")
- Text("Wait until your device is ready, then tap 'Confirm'")
+ Text(stringResource(R.string.write_character_success))
+ Text(stringResource(R.string.write_character_wait_ready))
}
}
@@ 128,7 131,7 @@ fun WriteCharacterScreen(
Button(
onClick = onClickConfirm,
) {
- Text("Confirm")
+ Text(stringResource(R.string.write_character_confirm))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/WritingScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/screens/WritingScreen.kt +4 -2
@@ 17,6 17,8 @@ import com.github.nacabaro.vbhelper.screens.scanScreen.ScanScreenController
import com.github.nacabaro.vbhelper.source.StorageRepository
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
@Composable
fun WritingScreen(
@@ 97,7 99,7 @@ fun WritingScreen(
)
} else if (!isDoneSendingCard) {
writing = true
- ActionScreen("Sending card") {
+ ActionScreen( topBannerText = stringResource(R.string.sending_card_title)) {
scanScreenController.cancelRead()
onCancel()
}
@@ 115,7 117,7 @@ fun WritingScreen(
)
} else if (!isDoneWritingCharacter) {
writing = true
- ActionScreen("Writing character") {
+ ActionScreen(topBannerText = stringResource(R.string.writing_character_action_title)) {
isDoneSendingCard = false
scanScreenController.cancelRead()
onCancel()
M app/src/main/java/com/github/nacabaro/vbhelper/screens/settingsScreen/CreditsScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/settingsScreen/CreditsScreen.kt +10 -8
@@ 6,8 6,10 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
import androidx.navigation.NavController
import com.github.nacabaro.vbhelper.components.TopBanner
+import com.github.nacabaro.vbhelper.R
@Composable
fun CreditsScreen(
@@ 16,7 18,7 @@ fun CreditsScreen(
Scaffold (
topBar = {
TopBanner(
- text = "Credits",
+ text = stringResource(R.string.credits_title),
onBackClick = {
navController.popBackStack()
}
@@ 29,13 31,13 @@ fun CreditsScreen(
modifier = Modifier
.padding(top = contentPadding.calculateTopPadding())
) {
- SettingsSection("Reverse engineering")
- SettingsEntry(title = "cyanic", description = "Reversed the firmware and helped us during development.") { }
- SettingsSection("Application development")
- SettingsEntry(title = "cfogrady", description = "Developed vb-lib-nfc and part of this application.") { }
- SettingsEntry(title = "nacabaro", description = "Developed this application.") { }
- SettingsEntry(title = "lightheel", description = "Developing the battling part for this application, including server. Still in the works.") { }
- SettingsEntry(title = "shvstrz", description = "Designing the app icon in SVG.") { }
+ SettingsSection(stringResource(R.string.credits_section_reverse_engineering))
+ SettingsEntry(title = "cyanic", description = stringResource(R.string.credits_cyanic_description)) { }
+ SettingsSection(stringResource(R.string.credits_section_app_development))
+ SettingsEntry(title = "cfogrady", description = stringResource(R.string.credits_cfogrady_description)) { }
+ SettingsEntry(title = "nacabaro", description = stringResource(R.string.credits_nacabaro_description)) { }
+ SettingsEntry(title = "lightheel", description = stringResource(R.string.credits_lightheel_description)) { }
+ SettingsEntry(title = "shvstrz", description = stringResource(R.string.credits_shvstrz_description)) { }
}
}
}=
\ No newline at end of file
M app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageDialog.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageDialog.kt +10 -7
@@ 33,6 33,9 @@ import com.github.nacabaro.vbhelper.source.StorageRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
import com.github.nacabaro.vbhelper.utils.getBitmap
import kotlinx.coroutines.launch
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
+
@Composable
fun StorageDialog(
@@ 94,7 97,7 @@ fun StorageDialog(
val dpSize = (characterSprite.value!!.width * 4 / density).dp
Image(
bitmap = imageBitmap,
- contentDescription = "Character image",
+ contentDescription = stringResource(R.string.storage_character_image_description),
filterQuality = FilterQuality.None,
modifier = Modifier
.size(dpSize)
@@ 104,7 107,7 @@ fun StorageDialog(
val nameDpSize = (characterName.value!!.width * 4 / density).dp
Image(
bitmap = nameImageBitmap,
- contentDescription = "Character image",
+ contentDescription = stringResource(R.string.storage_character_image_description),
filterQuality = FilterQuality.None,
modifier = Modifier
.size(nameDpSize)
@@ 121,7 124,7 @@ fun StorageDialog(
modifier = Modifier
.weight(1f)
) {
- Text(text = "Send to watch")
+ Text(text = stringResource(R.string.storage_send_to_watch))
}
Spacer(
modifier = Modifier
@@ 130,7 133,7 @@ fun StorageDialog(
Button(
onClick = onClickSetActive,
) {
- Text(text = "Set active")
+ Text(text = stringResource(R.string.storage_set_active))
}
}
Button(
@@ 140,21 143,21 @@ fun StorageDialog(
modifier = Modifier
.fillMaxWidth()
) {
- Text(text = "Send on adventure")
+ Text(text = stringResource(R.string.storage_send_on_adventure))
}
Button(
modifier = Modifier
.fillMaxWidth(),
onClick = onClickDelete
) {
- Text(text = "Delete character")
+ Text(text = stringResource(R.string.storage_delete_character))
}
Button(
modifier = Modifier
.fillMaxWidth(),
onClick = onDismissRequest
) {
- Text(text = "Close")
+ Text(text = stringResource(R.string.storage_close))
}
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt +5 -3
@@ 34,6 34,8 @@ import com.github.nacabaro.vbhelper.navigation.NavigationItems
import com.github.nacabaro.vbhelper.screens.adventureScreen.AdventureScreenControllerImpl
import com.github.nacabaro.vbhelper.source.StorageRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
+import androidx.compose.ui.res.stringResource
+import com.github.nacabaro.vbhelper.R
@Composable
@@ 51,7 53,7 @@ fun StorageScreen(
Scaffold (
topBar = {
TopBanner(
- text = "My characters",
+ text = stringResource(R.string.storage_my_characters_title),
onAdventureClick = {
navController.navigate(NavigationItems.Adventure.route)
}
@@ 67,7 69,7 @@ fun StorageScreen(
.fillMaxSize()
) {
Text(
- text = "Nothing to see here",
+ text = stringResource(R.string.storage_nothing_to_see_here),
textAlign = TextAlign.Center,
modifier = Modifier
)
@@ 92,7 94,7 @@ fun StorageScreen(
} else {
Toast.makeText(
application,
- "This character is in an adventure",
+ application.getString(R.string.storage_in_adventure_toast),
Toast.LENGTH_SHORT
).show()
navController.navigate(
M app/src/main/res/values-pt-rBR/strings.xml => app/src/main/res/values-pt-rBR/strings.xml +128 -0
@@ 89,4 89,132 @@
<string name="settings_import_data_desc">
Importar banco de dados do aplicativo
</string>
+
+ <string name="credits_title">Créditos</string>
+ <string name="credits_section_reverse_engineering">Engenharia reversa</string>
+ <string name="credits_section_app_development">Desenvolvimento do aplicativo</string>
+
+ <string name="credits_cyanic_description">
+ Reverteu o firmware e nos ajudou durante o desenvolvimento.
+ </string>
+ <string name="credits_cfogrady_description">
+ Desenvolveu vb-lib-nfc e parte deste aplicativo.
+ </string>
+ <string name="credits_nacabaro_description">
+ Desenvolveu este aplicativo.
+ </string>
+ <string name="credits_lightheel_description">
+ Está desenvolvendo a parte de batalhas deste aplicativo, incluindo o servidor. Ainda em desenvolvimento.
+ </string>
+ <string name="credits_shvstrz_description">
+ Responsável pelo design do ícone do aplicativo em SVG.
+ </string>
+
+ <string name="action_place_near_reader">Aproxime o seu Vital Bracelet do leitor...</string>
+ <string name="action_cancel">Cancelar</string>
+
+ <string name="read_character_title">Ler personagem</string>
+ <string name="read_character_prepare_device">Prepare seu dispositivo!</string>
+ <string name="read_character_go_to_connect">Vá em conectar e, quando estiver pronto, pressione confirmar!</string>
+ <string name="read_character_confirm">Confirmar</string>
+
+ <string name="reading_character_title">Lendo personagem</string>
+
+ <string name="write_card_title">Escrevendo detalhes do cartão</string>
+ <string name="write_card_icon_description">Ícone do cartão</string>
+ <string name="write_card_device_ready">Prepare o seu dispositivo!</string>
+ <string name="write_card_required_card">Você vai precisar do cartão %1$s!</string>
+ <string name="write_card_confirm">Confirmar</string>
+
+ <string name="write_character_title">Escrevendo personagem</string>
+ <string name="write_character_icon_description">Ícone do personagem</string>
+ <string name="write_character_success">
+ Cartão instalado com sucesso!!
+ </string>
+ <string name="write_character_wait_ready">
+ Aguarde até que seu dispositivo esteja pronto e então toque em Confirmar
+ </string>
+ <string name="write_character_confirm">Confirmar</string>
+
+ <string name="sending_card_title">Enviando cartão</string>
+ <string name="writing_character_action_title">Escrevendo personagem</string>
+
+ <string name="items_title">Itens</string>
+ <string name="items_no_items">Nenhum item</string>
+
+ <string name="items_store_credits">%1$d créditos</string>
+ <string name="items_not_enough_credits">Créditos insuficientes</string>
+ <string name="items_purchase_success">Compra realizada com sucesso!</string>
+
+ <string name="obtained_item_you_have">Você obteve %1$d deste item</string>
+ <string name="obtained_item_you_also_got_credits">Você também recebeu %1$d créditos</string>
+ <string name="obtained_item_dismiss">Fechar</string>
+
+ <string name="choose_character_title">Escolher personagem</string>
+ <string name="choose_character_item_applied">Item aplicado!</string>
+
+ <string name="item_dialog_costs_credits">Custa %1$d créditos</string>
+ <string name="item_dialog_you_have_quantity">Você tem %1$d deste item</string>
+ <string name="item_dialog_use">Usar item</string>
+ <string name="item_dialog_purchase">Comprar</string>
+ <string name="item_dialog_cancel">Cancelar</string>
+
+ <string name="battles_online_title">Batalhas online</string>
+ <string name="battles_coming_soon">Em breve</string>
+
+ <string name="cards_my_cards_title">Meus cards</string>
+
+ <string name="card_view_discovered_characters">Personagens descobertos</string>
+
+ <string name="dex_chara_icon_description">Ícone do personagem</string>
+ <string name="dex_chara_name_icon_description">Nome do personagem</string>
+ <string name="dex_chara_stats">HP: %1$d, BP: %2$d, AP: %3$d</string>
+ <string name="dex_chara_stage_attribute">Stg: %1$s, Atr: %2$s</string>
+ <string name="dex_chara_unknown_name">\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?</string>
+ <string name="dex_chara_stage_attribute_unknown">Stg: -, Atr: -</string>
+ <string name="dex_chara_stats_unknown">HP: -, BP: -, AP: -</string>
+ <string name="dex_chara_requirements">
+ Tr: %1$d; Bt: %2$d; Vr: %3$d; Wr: %4$d%%; Ct: %5$dh
+ </string>
+ <string name="dex_chara_adventure_level">AdvLvl %1$d</string>
+ <string name="dex_chara_fusions_button">Fusões</string>
+ <string name="dex_chara_close_button">Fechar</string>
+
+ <string name="card_adventure_missions_title">Missões de aventura</string>
+
+ <string name="card_entry_characters_obtained">%1$d de %2$d personagens obtidos</string>
+ <string name="card_entry_edit">Editar card</string>
+ <string name="card_entry_delete">Excluir card</string>
+
+ <string name="storage_my_characters_title">Meus personagens</string>
+ <string name="storage_nothing_to_see_here">Nada para ver aqui</string>
+ <string name="storage_in_adventure_toast">Este personagem está em uma aventura</string>
+
+ <string name="storage_character_image_description">Imagem do personagem</string>
+ <string name="storage_send_to_watch">Enviar para o relógio</string>
+ <string name="storage_set_active">Definir como ativo</string>
+ <string name="storage_send_on_adventure">Enviar para aventura</string>
+ <string name="storage_delete_character">Excluir personagem</string>
+ <string name="storage_close">Fechar</string>
+
+ <string name="home_vbdim_vitals">Vitais</string>
+ <string name="home_vbdim_trophies">Troféus</string>
+ <string name="home_vbdim_mood">Humor</string>
+ <string name="home_vbdim_next_timer">Próximo timer</string>
+ <string name="home_vbdim_total_battle_win">% vitórias totais</string>
+ <string name="home_vbdim_current_phase_win">% vitórias fase atual</string>
+ <string name="home_vbdim_special_missions">Missões especiais</string>
+
+ <string name="special_mission_none">Nenhuma missão selecionada</string>
+ <string name="special_mission_steps">Ande %1$d passos</string>
+ <string name="special_mission_battles">Lute %1$d vezes</string>
+ <string name="special_mission_wins">Vença %1$d batalhas</string>
+ <string name="special_mission_vitals">Ganhe %1$d vitals</string>
+ <string name="special_mission_steps_progress">Andou %1$d passos</string>
+ <string name="special_mission_battles_progress">Lutou %1$d vezes</string>
+ <string name="special_mission_wins_progress">Venceu %1$d batalhas</string>
+ <string name="special_mission_vitals_progress">Ganhou %1$d vitals</string>
+ <string name="special_mission_icon_content_description">Ícone de missão especial</string>
+
+
</resources>=
\ No newline at end of file
M app/src/main/res/values/strings.xml => app/src/main/res/values/strings.xml +129 -0
@@ 94,4 94,133 @@
<string name="settings_import_data_desc">
Import application database
</string>
+
+ <string name="credits_title">Credits</string>
+ <string name="credits_section_reverse_engineering">Reverse engineering</string>
+ <string name="credits_section_app_development">Application development</string>
+
+ <string name="credits_cyanic_description">
+ Reversed the firmware and helped us during development.
+ </string>
+ <string name="credits_cfogrady_description">
+ Developed vb-lib-nfc and part of this application.
+ </string>
+ <string name="credits_nacabaro_description">
+ Developed this application.
+ </string>
+ <string name="credits_lightheel_description">
+ Developing the battling part for this application, including server. Still in the works.
+ </string>
+ <string name="credits_shvstrz_description">
+ Designing the app icon in SVG.
+ </string>
+
+ <string name="action_place_near_reader">Place your Vital Bracelet near the reader...</string>
+ <string name="action_cancel">Cancel</string>
+
+ <string name="read_character_title">Read character</string>
+ <string name="read_character_prepare_device">Prepare your device!</string>
+ <string name="read_character_go_to_connect">Go to connect and when ready press confirm!</string>
+ <string name="read_character_confirm">Confirm</string>
+
+ <string name="reading_character_title">Reading character</string>
+
+ <string name="write_card_title">Writing card details</string>
+ <string name="write_card_icon_description">Card icon</string>
+ <string name="write_card_device_ready">Get your device ready!</string>
+ <string name="write_card_required_card">You will need %1$s card!</string>
+ <string name="write_card_confirm">Confirm</string>
+
+
+ <string name="write_character_title">Writing character</string>
+ <string name="write_character_icon_description">Character icon</string>
+ <string name="write_character_success">
+ Card installed successfully!!
+ </string>
+ <string name="write_character_wait_ready">
+ Wait until your device is ready, then tap Confirm
+ </string>
+ <string name="write_character_confirm">Confirm</string>
+
+ <string name="sending_card_title">Sending card</string>
+ <string name="writing_character_action_title">Writing character</string>
+
+ <string name="items_title">Items</string>
+ <string name="items_no_items">No items</string>
+
+ <string name="items_store_credits">%1$d credits</string>
+ <string name="items_not_enough_credits">Not enough credits</string>
+ <string name="items_purchase_success">Purchase successful!</string>
+
+ <string name="obtained_item_you_have">You have obtained %1$d of this item</string>
+ <string name="obtained_item_you_also_got_credits">You also got %1$d credits</string>
+ <string name="obtained_item_dismiss">Dismiss</string>
+
+ <string name="choose_character_title">Choose character</string>
+ <string name="choose_character_item_applied">Item applied!</string>
+
+ <string name="item_dialog_costs_credits">Costs %1$d credits</string>
+ <string name="item_dialog_you_have_quantity">You have %1$d of this item</string>
+ <string name="item_dialog_use">Use item</string>
+ <string name="item_dialog_purchase">Purchase</string>
+ <string name="item_dialog_cancel">Cancel</string>
+
+ <string name="battles_online_title">Online battles</string>
+ <string name="battles_coming_soon">Coming soon</string>
+
+ <string name="cards_my_cards_title">My cards</string>
+
+ <string name="card_view_discovered_characters">Discovered characters</string>
+
+
+ <string name="dex_chara_icon_description">Character icon</string>
+ <string name="dex_chara_name_icon_description">Character name</string>
+ <string name="dex_chara_stats">HP: %1$d, BP: %2$d, AP: %3$d</string>
+ <string name="dex_chara_stage_attribute">Stg: %1$s, Atr: %2$s</string>
+ <string name="dex_chara_unknown_name">\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?</string>
+ <string name="dex_chara_stage_attribute_unknown">Stg: -, Atr: -</string>
+ <string name="dex_chara_stats_unknown">HP: -, BP: -, AP: -</string>
+ <string name="dex_chara_requirements">
+ Tr: %1$d; Bt: %2$d; Vr: %3$d; Wr: %4$d%%; Ct: %5$dh
+ </string>
+ <string name="dex_chara_adventure_level">AdvLvl %1$d</string>
+ <string name="dex_chara_fusions_button">Fusions</string>
+ <string name="dex_chara_close_button">Close</string>
+
+ <string name="card_adventure_missions_title">Adventure missions</string>
+
+ <string name="card_entry_characters_obtained">%1$d of %2$d characters obtained</string>
+ <string name="card_entry_edit">Edit card</string>
+ <string name="card_entry_delete">Delete card</string>
+
+ <string name="storage_my_characters_title">My characters</string>
+ <string name="storage_nothing_to_see_here">Nothing to see here</string>
+ <string name="storage_in_adventure_toast">This character is in an adventure</string>
+
+ <string name="storage_character_image_description">Character image</string>
+ <string name="storage_send_to_watch">Send to watch</string>
+ <string name="storage_set_active">Set active</string>
+ <string name="storage_send_on_adventure">Send on adventure</string>
+ <string name="storage_delete_character">Delete character</string>
+ <string name="storage_close">Close</string>
+
+ <string name="home_vbdim_vitals">Vitals</string>
+ <string name="home_vbdim_trophies">Trophies</string>
+ <string name="home_vbdim_mood">Mood</string>
+ <string name="home_vbdim_next_timer">Next timer</string>
+ <string name="home_vbdim_total_battle_win">Total battle win %</string>
+ <string name="home_vbdim_current_phase_win">Current phase win %</string>
+ <string name="home_vbdim_special_missions">Special missions</string>
+
+ <string name="special_mission_none">No mission selected</string>
+ <string name="special_mission_steps">Walk %1$d steps</string>
+ <string name="special_mission_battles">Battle %1$d times</string>
+ <string name="special_mission_wins">Win %1$d battles</string>
+ <string name="special_mission_vitals">Earn %1$d vitals</string>
+ <string name="special_mission_steps_progress">Walked %1$d steps</string>
+ <string name="special_mission_battles_progress">Battled %1$d times</string>
+ <string name="special_mission_wins_progress">Won %1$d battles</string>
+ <string name="special_mission_vitals_progress">Earned %1$d vitals</string>
+ <string name="special_mission_icon_content_description">Special mission icon</string>
+
</resources>=
\ No newline at end of file