mirror of
https://github.com/nacabaro/vbhelper.git
synced 2026-01-27 16:05:32 +00:00
feat(i18n): continue translation work
This commit is contained in:
parent
0d174f1550
commit
16fbfae0c2
@ -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)
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
}
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
},
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
)
|
||||
}
|
||||
|
||||
@ -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()
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
@ -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(
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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)) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
Loading…
x
Reference in New Issue
Block a user