labels changed for language
This commit is contained in:
@@ -2,7 +2,9 @@ package de.softwareapp_hb.privateqrscanner
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
|
import androidx.activity.compose.LocalActivityResultRegistryOwner
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
|
import androidx.activity.result.ActivityResultRegistryOwner
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -23,13 +25,16 @@ class MainActivity : ComponentActivity() {
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
val container = (application as CleanScannerApp).appContainer
|
val container = (application as CleanScannerApp).appContainer
|
||||||
setContent {
|
setContent {
|
||||||
PrivateQrLocalizedContent(container)
|
PrivateQrLocalizedContent(container, activityResultRegistryOwner = this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun PrivateQrLocalizedContent(container: AppContainer) {
|
private fun PrivateQrLocalizedContent(
|
||||||
|
container: AppContainer,
|
||||||
|
activityResultRegistryOwner: ActivityResultRegistryOwner
|
||||||
|
) {
|
||||||
val baseContext = LocalContext.current
|
val baseContext = LocalContext.current
|
||||||
val localeOptions = remember(baseContext.applicationContext) {
|
val localeOptions = remember(baseContext.applicationContext) {
|
||||||
AppLocaleCatalog.load(baseContext.applicationContext)
|
AppLocaleCatalog.load(baseContext.applicationContext)
|
||||||
@@ -48,6 +53,7 @@ private fun PrivateQrLocalizedContent(container: AppContainer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CompositionLocalProvider(
|
CompositionLocalProvider(
|
||||||
|
LocalActivityResultRegistryOwner provides activityResultRegistryOwner,
|
||||||
LocalContext provides localizedContext,
|
LocalContext provides localizedContext,
|
||||||
LocalConfiguration provides localizedContext.resources.configuration
|
LocalConfiguration provides localizedContext.resources.configuration
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package de.softwareapp_hb.privateqrscanner.ui.screens
|
package de.softwareapp_hb.privateqrscanner.ui.screens
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
@@ -107,7 +108,7 @@ fun HistoryScreen(
|
|||||||
val detailIsBase64 = detail.isBase64Encoded()
|
val detailIsBase64 = detail.isBase64Encoded()
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
onDismissRequest = { selectedItem.value = null },
|
onDismissRequest = { selectedItem.value = null },
|
||||||
title = { Text(text = detail.type) },
|
title = { Text(text = detail.localizedDisplayType(context)) },
|
||||||
text = {
|
text = {
|
||||||
if (detailIsBase64) {
|
if (detailIsBase64) {
|
||||||
Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
|
Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
@@ -239,7 +240,7 @@ fun HistoryScreen(
|
|||||||
text = stringResource(R.string.share_txt),
|
text = stringResource(R.string.share_txt),
|
||||||
enabled = history.isNotEmpty(),
|
enabled = history.isNotEmpty(),
|
||||||
onClick = {
|
onClick = {
|
||||||
val exportText = HistoryExportFormatter.formatText(history)
|
val exportText = HistoryExportFormatter.formatText(localizedHistory(context, history))
|
||||||
Intents.shareContent(context, exportText, "text/plain")
|
Intents.shareContent(context, exportText, "text/plain")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -247,7 +248,7 @@ fun HistoryScreen(
|
|||||||
text = stringResource(R.string.share_csv),
|
text = stringResource(R.string.share_csv),
|
||||||
enabled = history.isNotEmpty(),
|
enabled = history.isNotEmpty(),
|
||||||
onClick = {
|
onClick = {
|
||||||
val exportCsv = HistoryExportFormatter.formatCsv(history)
|
val exportCsv = HistoryExportFormatter.formatCsv(localizedHistory(context, history))
|
||||||
Intents.shareContent(context, exportCsv, "text/csv")
|
Intents.shareContent(context, exportCsv, "text/csv")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -255,7 +256,7 @@ fun HistoryScreen(
|
|||||||
text = stringResource(R.string.share_json),
|
text = stringResource(R.string.share_json),
|
||||||
enabled = history.isNotEmpty(),
|
enabled = history.isNotEmpty(),
|
||||||
onClick = {
|
onClick = {
|
||||||
val exportJson = HistoryExportFormatter.formatJson(history)
|
val exportJson = HistoryExportFormatter.formatJson(localizedHistory(context, history))
|
||||||
Intents.shareContent(context, exportJson, "application/json")
|
Intents.shareContent(context, exportJson, "application/json")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -399,21 +400,33 @@ private fun LocalControlsCard(
|
|||||||
text = stringResource(R.string.share_txt),
|
text = stringResource(R.string.share_txt),
|
||||||
enabled = history.isNotEmpty(),
|
enabled = history.isNotEmpty(),
|
||||||
onClick = {
|
onClick = {
|
||||||
Intents.shareContent(context, HistoryExportFormatter.formatText(history), "text/plain")
|
Intents.shareContent(
|
||||||
|
context,
|
||||||
|
HistoryExportFormatter.formatText(localizedHistory(context, history)),
|
||||||
|
"text/plain"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
ExportButton(
|
ExportButton(
|
||||||
text = stringResource(R.string.share_csv),
|
text = stringResource(R.string.share_csv),
|
||||||
enabled = history.isNotEmpty(),
|
enabled = history.isNotEmpty(),
|
||||||
onClick = {
|
onClick = {
|
||||||
Intents.shareContent(context, HistoryExportFormatter.formatCsv(history), "text/csv")
|
Intents.shareContent(
|
||||||
|
context,
|
||||||
|
HistoryExportFormatter.formatCsv(localizedHistory(context, history)),
|
||||||
|
"text/csv"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
ExportButton(
|
ExportButton(
|
||||||
text = stringResource(R.string.share_json),
|
text = stringResource(R.string.share_json),
|
||||||
enabled = history.isNotEmpty(),
|
enabled = history.isNotEmpty(),
|
||||||
onClick = {
|
onClick = {
|
||||||
Intents.shareContent(context, HistoryExportFormatter.formatJson(history), "application/json")
|
Intents.shareContent(
|
||||||
|
context,
|
||||||
|
HistoryExportFormatter.formatJson(localizedHistory(context, history)),
|
||||||
|
"application/json"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -588,6 +601,7 @@ private fun HistoryRow(
|
|||||||
onDelete: (Long) -> Unit,
|
onDelete: (Long) -> Unit,
|
||||||
onOpenDetails: () -> Unit
|
onOpenDetails: () -> Unit
|
||||||
) {
|
) {
|
||||||
|
val context = LocalContext.current
|
||||||
val dismissState = rememberSwipeToDismissBoxState(
|
val dismissState = rememberSwipeToDismissBoxState(
|
||||||
confirmValueChange = {
|
confirmValueChange = {
|
||||||
if (it == SwipeToDismissBoxValue.EndToStart || it == SwipeToDismissBoxValue.StartToEnd) {
|
if (it == SwipeToDismissBoxValue.EndToStart || it == SwipeToDismissBoxValue.StartToEnd) {
|
||||||
@@ -638,7 +652,7 @@ private fun HistoryRow(
|
|||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = item.type,
|
text = item.localizedDisplayType(context),
|
||||||
color = PrivateQrColors.TextPrimary,
|
color = PrivateQrColors.TextPrimary,
|
||||||
style = MaterialTheme.typography.titleMedium,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
fontWeight = FontWeight.ExtraBold
|
fontWeight = FontWeight.ExtraBold
|
||||||
@@ -678,6 +692,12 @@ private fun iconForType(type: String): ImageVector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun localizedHistory(context: Context, history: List<ScanRecord>): List<ScanRecord> {
|
||||||
|
return history.map { item ->
|
||||||
|
item.copy(type = item.localizedDisplayType(context))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun ScanRecord.isBase64Encoded(): Boolean {
|
private fun ScanRecord.isBase64Encoded(): Boolean {
|
||||||
return type.contains("base64", ignoreCase = true)
|
return type.contains("base64", ignoreCase = true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
package de.softwareapp_hb.privateqrscanner.ui.screens
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.annotation.StringRes
|
||||||
|
import de.softwareapp_hb.privateqrscanner.R
|
||||||
|
import de.softwareapp_hb.privateqrscanner.domain.ScanRecord
|
||||||
|
import de.softwareapp_hb.privateqrscanner.domain.ScanResult
|
||||||
|
|
||||||
|
private const val DUPLICATE_TICKET_PREFIX = "Duplicate ticket ("
|
||||||
|
private const val UNREGISTERED_TICKET_PREFIX = "Unregistered ticket ("
|
||||||
|
private val base64SuffixRegex = Regex("""\s*\(Base64\)\s*$""", RegexOption.IGNORE_CASE)
|
||||||
|
|
||||||
|
internal fun ScanResult.localizedDisplayType(context: Context): String {
|
||||||
|
return localizedScanType(
|
||||||
|
context = context,
|
||||||
|
type = type,
|
||||||
|
isBase64Encoded = isBase64Encoded
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun ScanRecord.localizedDisplayType(context: Context): String {
|
||||||
|
return localizedStoredScanType(context, type)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun localizedStoredScanType(context: Context, rawType: String): String {
|
||||||
|
val trimmed = rawType.trim()
|
||||||
|
extractWrappedType(trimmed, DUPLICATE_TICKET_PREFIX)?.let { innerType ->
|
||||||
|
return context.getString(
|
||||||
|
R.string.scan_type_duplicate_ticket,
|
||||||
|
localizedStoredScanType(context, innerType)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
extractWrappedType(trimmed, UNREGISTERED_TICKET_PREFIX)?.let { innerType ->
|
||||||
|
return context.getString(
|
||||||
|
R.string.scan_type_unregistered_ticket,
|
||||||
|
localizedStoredScanType(context, innerType)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (base64SuffixRegex.containsMatchIn(trimmed)) {
|
||||||
|
val innerType = base64SuffixRegex.replace(trimmed, "").trim()
|
||||||
|
return context.getString(
|
||||||
|
R.string.scan_type_base64_suffix,
|
||||||
|
localizedCanonicalScanType(context, innerType)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return localizedCanonicalScanType(context, trimmed)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun localizedScanType(
|
||||||
|
context: Context,
|
||||||
|
type: String,
|
||||||
|
isBase64Encoded: Boolean
|
||||||
|
): String {
|
||||||
|
val baseType = localizedCanonicalScanType(context, type)
|
||||||
|
return if (isBase64Encoded && !type.contains("base64", ignoreCase = true)) {
|
||||||
|
context.getString(R.string.scan_type_base64_suffix, baseType)
|
||||||
|
} else {
|
||||||
|
baseType
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun localizedCanonicalScanType(context: Context, type: String): String {
|
||||||
|
val stringRes = scanTypeStringRes(type)
|
||||||
|
return if (stringRes != null) {
|
||||||
|
context.getString(stringRes)
|
||||||
|
} else {
|
||||||
|
type.ifBlank { context.getString(R.string.scan_type_unknown) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun extractWrappedType(type: String, prefix: String): String? {
|
||||||
|
return if (type.startsWith(prefix, ignoreCase = true) && type.endsWith(")")) {
|
||||||
|
type.substring(prefix.length, type.length - 1)
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@StringRes
|
||||||
|
private fun scanTypeStringRes(type: String): Int? = when (type.trim().lowercase()) {
|
||||||
|
"contact" -> R.string.scan_type_contact
|
||||||
|
"url" -> R.string.scan_type_url
|
||||||
|
"wifi", "wi-fi" -> R.string.scan_type_wifi
|
||||||
|
"phone" -> R.string.scan_type_phone
|
||||||
|
"sms" -> R.string.scan_type_sms
|
||||||
|
"email", "e-mail" -> R.string.scan_type_email
|
||||||
|
"calendar" -> R.string.scan_type_calendar
|
||||||
|
"isbn" -> R.string.scan_type_isbn
|
||||||
|
"product" -> R.string.scan_type_product
|
||||||
|
"text" -> R.string.scan_type_text
|
||||||
|
"geo" -> R.string.scan_type_geo
|
||||||
|
"driver license", "driver licence" -> R.string.scan_type_driver_license
|
||||||
|
"unknown" -> R.string.scan_type_unknown
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
+1
-1
@@ -394,7 +394,7 @@ internal fun GalleryScanPreviewDialog(
|
|||||||
}
|
}
|
||||||
Column(modifier = Modifier.weight(1f)) {
|
Column(modifier = Modifier.weight(1f)) {
|
||||||
Text(
|
Text(
|
||||||
text = candidate.result.displayType,
|
text = candidate.result.localizedDisplayType(context),
|
||||||
color = PrivateQrColors.TextPrimary,
|
color = PrivateQrColors.TextPrimary,
|
||||||
style = MaterialTheme.typography.titleMedium,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
fontWeight = FontWeight.ExtraBold
|
fontWeight = FontWeight.ExtraBold
|
||||||
|
|||||||
+5
-4
@@ -1,5 +1,6 @@
|
|||||||
package de.softwareapp_hb.privateqrscanner.ui.screens
|
package de.softwareapp_hb.privateqrscanner.ui.screens
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
@@ -115,7 +116,7 @@ internal fun BatchResultsPanel(
|
|||||||
)
|
)
|
||||||
if (allowShare) {
|
if (allowShare) {
|
||||||
TextButton(
|
TextButton(
|
||||||
onClick = { Intents.shareText(context, buildBatchExport(results)) },
|
onClick = { Intents.shareText(context, buildBatchExport(context, results)) },
|
||||||
enabled = results.isNotEmpty(),
|
enabled = results.isNotEmpty(),
|
||||||
colors = ButtonDefaults.textButtonColors(
|
colors = ButtonDefaults.textButtonColors(
|
||||||
containerColor = PrivateQrColors.Mint,
|
containerColor = PrivateQrColors.Mint,
|
||||||
@@ -143,7 +144,7 @@ internal fun BatchResultsPanel(
|
|||||||
) {
|
) {
|
||||||
Column(modifier = Modifier.weight(1f)) {
|
Column(modifier = Modifier.weight(1f)) {
|
||||||
Text(
|
Text(
|
||||||
text = "${item.result.displayType}: $contentText",
|
text = "${item.result.localizedDisplayType(context)}: $contentText",
|
||||||
color = Color.White.copy(alpha = 0.92f),
|
color = Color.White.copy(alpha = 0.92f),
|
||||||
style = MaterialTheme.typography.titleMedium,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
fontWeight = FontWeight.Bold,
|
fontWeight = FontWeight.Bold,
|
||||||
@@ -218,12 +219,12 @@ internal fun BatchResultsPanel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buildBatchExport(results: List<BatchScanRecord>): String {
|
private fun buildBatchExport(context: Context, results: List<BatchScanRecord>): String {
|
||||||
if (results.isEmpty()) return ""
|
if (results.isEmpty()) return ""
|
||||||
val formatter = DateFormat.getDateTimeInstance()
|
val formatter = DateFormat.getDateTimeInstance()
|
||||||
return results.joinToString(separator = "\n\n") { item ->
|
return results.joinToString(separator = "\n\n") { item ->
|
||||||
val encoding = if (item.result.isBase64Encoded) "\nEncoding: Base64" else ""
|
val encoding = if (item.result.isBase64Encoded) "\nEncoding: Base64" else ""
|
||||||
"${formatter.format(Date(item.timestamp))}\n${item.result.displayType}$encoding\n${item.result.content}"
|
"${formatter.format(Date(item.timestamp))}\n${item.result.localizedDisplayType(context)}$encoding\n${item.result.content}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-3
@@ -22,6 +22,7 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Brush
|
import androidx.compose.ui.graphics.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.style.TextDecoration
|
import androidx.compose.ui.text.style.TextDecoration
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
@@ -46,6 +47,7 @@ internal fun ResultVisualCard(
|
|||||||
onOpenUrl: ((String) -> Unit)? = null,
|
onOpenUrl: ((String) -> Unit)? = null,
|
||||||
modifier: Modifier = Modifier
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
|
val context = LocalContext.current
|
||||||
val contact = remember(result) {
|
val contact = remember(result) {
|
||||||
if (result.isBase64Encoded) null else ScanContentParsers.parseContact(result.content)
|
if (result.isBase64Encoded) null else ScanContentParsers.parseContact(result.content)
|
||||||
}
|
}
|
||||||
@@ -79,7 +81,7 @@ internal fun ResultVisualCard(
|
|||||||
tint = PrivateQrColors.Teal700
|
tint = PrivateQrColors.Teal700
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = "Wi-Fi",
|
text = result.localizedDisplayType(context),
|
||||||
style = MaterialTheme.typography.headlineSmall
|
style = MaterialTheme.typography.headlineSmall
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -90,7 +92,7 @@ internal fun ResultVisualCard(
|
|||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = result.displayType,
|
text = result.localizedDisplayType(context),
|
||||||
style = MaterialTheme.typography.headlineSmall,
|
style = MaterialTheme.typography.headlineSmall,
|
||||||
color = PrivateQrColors.TextPrimary
|
color = PrivateQrColors.TextPrimary
|
||||||
)
|
)
|
||||||
@@ -215,7 +217,8 @@ private fun ContactVisualCard(
|
|||||||
ContactCardTemplate.Playful -> Color(0xFF55657B)
|
ContactCardTemplate.Playful -> Color(0xFF55657B)
|
||||||
ContactCardTemplate.Minimal -> Color(0xFF475569)
|
ContactCardTemplate.Minimal -> Color(0xFF475569)
|
||||||
}
|
}
|
||||||
val name = contact?.fullName ?: "Contact"
|
val fallbackName = stringResource(R.string.scan_type_contact)
|
||||||
|
val name = contact?.fullName ?: fallbackName
|
||||||
val subtitle = listOfNotNull(contact?.title, contact?.organization).distinct().joinToString(" • ")
|
val subtitle = listOfNotNull(contact?.title, contact?.organization).distinct().joinToString(" • ")
|
||||||
val initials = remember(name) { initialsFromName(name) }
|
val initials = remember(name) { initialsFromName(name) }
|
||||||
|
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">تم رصد رمز. ثبّت الجهاز أو اقترب.</string>
|
<string name="live_potential_detected">تم رصد رمز. ثبّت الجهاز أو اقترب.</string>
|
||||||
<string name="live_readable_detected">تم اكتشاف رمز قابل للقراءة.</string>
|
<string name="live_readable_detected">تم اكتشاف رمز قابل للقراءة.</string>
|
||||||
<string name="share_history">مشاركة السجل</string>
|
<string name="share_history">مشاركة السجل</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">نص</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">جهة اتصال</string>
|
||||||
|
<string name="scan_type_url">رابط</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">هاتف</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">بريد إلكتروني</string>
|
||||||
|
<string name="scan_type_calendar">تقويم</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">منتج</string>
|
||||||
|
<string name="scan_type_text">نص</string>
|
||||||
|
<string name="scan_type_geo">موقع</string>
|
||||||
|
<string name="scan_type_driver_license">رخصة قيادة</string>
|
||||||
|
<string name="scan_type_unknown">غير معروف</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">تذكرة مكررة (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">تذكرة غير مسجلة (%1$s)</string>
|
||||||
<string name="history_header_subtitle">يبقى السجل الاختياري على جهازك</string>
|
<string name="history_header_subtitle">يبقى السجل الاختياري على جهازك</string>
|
||||||
<string name="history_hero_title">راجع عمليات المسح السابقة محليًا</string>
|
<string name="history_hero_title">راجع عمليات المسح السابقة محليًا</string>
|
||||||
<string name="history_hero_subtitle">ابحث أو صدّر أو احذف عمليات المسح المحفوظة متى شئت.</string>
|
<string name="history_hero_subtitle">ابحث أو صدّر أو احذف عمليات المسح المحفوظة متى شئت.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Código encontrado. Mantenha firme ou aproxime-se.</string>
|
<string name="live_potential_detected">Código encontrado. Mantenha firme ou aproxime-se.</string>
|
||||||
<string name="live_readable_detected">Código legível detectado.</string>
|
<string name="live_readable_detected">Código legível detectado.</string>
|
||||||
<string name="share_history">Compartilhar histórico</string>
|
<string name="share_history">Compartilhar histórico</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Texto</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Contato</string>
|
||||||
|
<string name="scan_type_url">Link</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">Telefone</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">E-mail</string>
|
||||||
|
<string name="scan_type_calendar">Calendário</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Produto</string>
|
||||||
|
<string name="scan_type_text">Texto</string>
|
||||||
|
<string name="scan_type_geo">Localização</string>
|
||||||
|
<string name="scan_type_driver_license">Carteira de motorista</string>
|
||||||
|
<string name="scan_type_unknown">Desconhecido</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Ingresso duplicado (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Ingresso não registrado (%1$s)</string>
|
||||||
<string name="history_header_subtitle">O histórico opcional fica no seu dispositivo</string>
|
<string name="history_header_subtitle">O histórico opcional fica no seu dispositivo</string>
|
||||||
<string name="history_hero_title">Revise leituras anteriores localmente</string>
|
<string name="history_hero_title">Revise leituras anteriores localmente</string>
|
||||||
<string name="history_hero_subtitle">Pesquise, exporte ou exclua leituras salvas quando quiser.</string>
|
<string name="history_hero_subtitle">Pesquise, exporte ou exclua leituras salvas quando quiser.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Código detetado. Mantenha estável ou aproxime-se.</string>
|
<string name="live_potential_detected">Código detetado. Mantenha estável ou aproxime-se.</string>
|
||||||
<string name="live_readable_detected">Código legível detetado.</string>
|
<string name="live_readable_detected">Código legível detetado.</string>
|
||||||
<string name="share_history">Partilhar histórico</string>
|
<string name="share_history">Partilhar histórico</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Texto</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Contacto</string>
|
||||||
|
<string name="scan_type_url">Ligação</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">Telefone</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">E-mail</string>
|
||||||
|
<string name="scan_type_calendar">Calendário</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Produto</string>
|
||||||
|
<string name="scan_type_text">Texto</string>
|
||||||
|
<string name="scan_type_geo">Localização</string>
|
||||||
|
<string name="scan_type_driver_license">Carta de condução</string>
|
||||||
|
<string name="scan_type_unknown">Desconhecido</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Bilhete duplicado (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Bilhete não registado (%1$s)</string>
|
||||||
<string name="history_header_subtitle">O histórico opcional fica no seu dispositivo</string>
|
<string name="history_header_subtitle">O histórico opcional fica no seu dispositivo</string>
|
||||||
<string name="history_hero_title">Reveja digitalizações anteriores localmente</string>
|
<string name="history_hero_title">Reveja digitalizações anteriores localmente</string>
|
||||||
<string name="history_hero_subtitle">Pesquise, exporte ou elimine digitalizações guardadas quando quiser.</string>
|
<string name="history_hero_subtitle">Pesquise, exporte ou elimine digitalizações guardadas quando quiser.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">发现代码。请保持稳定或靠近一些。</string>
|
<string name="live_potential_detected">发现代码。请保持稳定或靠近一些。</string>
|
||||||
<string name="live_readable_detected">检测到可读取的代码。</string>
|
<string name="live_readable_detected">检测到可读取的代码。</string>
|
||||||
<string name="share_history">分享历史记录</string>
|
<string name="share_history">分享历史记录</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">文本</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">联系人</string>
|
||||||
|
<string name="scan_type_url">链接</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">电话</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">电子邮件</string>
|
||||||
|
<string name="scan_type_calendar">日历</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">产品</string>
|
||||||
|
<string name="scan_type_text">文本</string>
|
||||||
|
<string name="scan_type_geo">位置</string>
|
||||||
|
<string name="scan_type_driver_license">驾驶证</string>
|
||||||
|
<string name="scan_type_unknown">未知</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">重复票券(%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">未注册票券(%1$s)</string>
|
||||||
<string name="history_header_subtitle">可选历史记录保留在你的设备上</string>
|
<string name="history_header_subtitle">可选历史记录保留在你的设备上</string>
|
||||||
<string name="history_hero_title">在本地查看过去的扫描</string>
|
<string name="history_hero_title">在本地查看过去的扫描</string>
|
||||||
<string name="history_hero_subtitle">随时搜索、导出或删除已保存的扫描。</string>
|
<string name="history_hero_subtitle">随时搜索、导出或删除已保存的扫描。</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">發現代碼。請保持穩定或靠近一些。</string>
|
<string name="live_potential_detected">發現代碼。請保持穩定或靠近一些。</string>
|
||||||
<string name="live_readable_detected">偵測到可讀取的代碼。</string>
|
<string name="live_readable_detected">偵測到可讀取的代碼。</string>
|
||||||
<string name="share_history">分享記錄</string>
|
<string name="share_history">分享記錄</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">文字</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">聯絡人</string>
|
||||||
|
<string name="scan_type_url">連結</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">電話</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">電子郵件</string>
|
||||||
|
<string name="scan_type_calendar">日曆</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">產品</string>
|
||||||
|
<string name="scan_type_text">文字</string>
|
||||||
|
<string name="scan_type_geo">位置</string>
|
||||||
|
<string name="scan_type_driver_license">駕駛執照</string>
|
||||||
|
<string name="scan_type_unknown">未知</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">重複票券(%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">未註冊票券(%1$s)</string>
|
||||||
<string name="history_header_subtitle">可選記錄會保留在你的裝置上</string>
|
<string name="history_header_subtitle">可選記錄會保留在你的裝置上</string>
|
||||||
<string name="history_hero_title">在本機查看過去的掃描</string>
|
<string name="history_hero_title">在本機查看過去的掃描</string>
|
||||||
<string name="history_hero_subtitle">隨時搜尋、匯出或刪除已儲存的掃描。</string>
|
<string name="history_hero_subtitle">隨時搜尋、匯出或刪除已儲存的掃描。</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Code erkannt. Ruhig halten oder näher rangehen.</string>
|
<string name="live_potential_detected">Code erkannt. Ruhig halten oder näher rangehen.</string>
|
||||||
<string name="live_readable_detected">Lesbarer Code erkannt.</string>
|
<string name="live_readable_detected">Lesbarer Code erkannt.</string>
|
||||||
<string name="share_history">Historie teilen</string>
|
<string name="share_history">Historie teilen</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Text</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Kontakt</string>
|
||||||
|
<string name="scan_type_url">Link</string>
|
||||||
|
<string name="scan_type_wifi">WLAN</string>
|
||||||
|
<string name="scan_type_phone">Telefon</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">E-Mail</string>
|
||||||
|
<string name="scan_type_calendar">Kalender</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Produkt</string>
|
||||||
|
<string name="scan_type_text">Text</string>
|
||||||
|
<string name="scan_type_geo">Standort</string>
|
||||||
|
<string name="scan_type_driver_license">Führerschein</string>
|
||||||
|
<string name="scan_type_unknown">Unbekannt</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Doppeltes Ticket (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Nicht registriertes Ticket (%1$s)</string>
|
||||||
<string name="history_header_subtitle">Optionale Historie bleibt auf deinem Gerät</string>
|
<string name="history_header_subtitle">Optionale Historie bleibt auf deinem Gerät</string>
|
||||||
<string name="history_hero_title">Vergangene Scans lokal prüfen</string>
|
<string name="history_hero_title">Vergangene Scans lokal prüfen</string>
|
||||||
<string name="history_hero_subtitle">Gespeicherte Scans jederzeit suchen, exportieren oder löschen.</string>
|
<string name="history_hero_subtitle">Gespeicherte Scans jederzeit suchen, exportieren oder löschen.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Código detectado. Mantén el dispositivo estable o acércate.</string>
|
<string name="live_potential_detected">Código detectado. Mantén el dispositivo estable o acércate.</string>
|
||||||
<string name="live_readable_detected">Código legible detectado.</string>
|
<string name="live_readable_detected">Código legible detectado.</string>
|
||||||
<string name="share_history">Compartir historial</string>
|
<string name="share_history">Compartir historial</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Texto</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Contacto</string>
|
||||||
|
<string name="scan_type_url">Enlace</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">Teléfono</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">Correo electrónico</string>
|
||||||
|
<string name="scan_type_calendar">Calendario</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Producto</string>
|
||||||
|
<string name="scan_type_text">Texto</string>
|
||||||
|
<string name="scan_type_geo">Ubicación</string>
|
||||||
|
<string name="scan_type_driver_license">Permiso de conducir</string>
|
||||||
|
<string name="scan_type_unknown">Desconocido</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Ticket duplicado (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Ticket no registrado (%1$s)</string>
|
||||||
<string name="history_header_subtitle">El historial opcional permanece en tu dispositivo</string>
|
<string name="history_header_subtitle">El historial opcional permanece en tu dispositivo</string>
|
||||||
<string name="history_hero_title">Revisa escaneos anteriores localmente</string>
|
<string name="history_hero_title">Revisa escaneos anteriores localmente</string>
|
||||||
<string name="history_hero_subtitle">Busca, exporta o elimina escaneos guardados cuando quieras.</string>
|
<string name="history_hero_subtitle">Busca, exporta o elimina escaneos guardados cuando quieras.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Code repéré. Restez stable ou rapprochez-vous.</string>
|
<string name="live_potential_detected">Code repéré. Restez stable ou rapprochez-vous.</string>
|
||||||
<string name="live_readable_detected">Code lisible détecté.</string>
|
<string name="live_readable_detected">Code lisible détecté.</string>
|
||||||
<string name="share_history">Partager l’historique</string>
|
<string name="share_history">Partager l’historique</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Texte</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Contact</string>
|
||||||
|
<string name="scan_type_url">Lien</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">Téléphone</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">E-mail</string>
|
||||||
|
<string name="scan_type_calendar">Calendrier</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Produit</string>
|
||||||
|
<string name="scan_type_text">Texte</string>
|
||||||
|
<string name="scan_type_geo">Emplacement</string>
|
||||||
|
<string name="scan_type_driver_license">Permis de conduire</string>
|
||||||
|
<string name="scan_type_unknown">Inconnu</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Ticket en double (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Ticket non enregistré (%1$s)</string>
|
||||||
<string name="history_header_subtitle">L’historique facultatif reste sur votre appareil</string>
|
<string name="history_header_subtitle">L’historique facultatif reste sur votre appareil</string>
|
||||||
<string name="history_hero_title">Consulter les scans passés localement</string>
|
<string name="history_hero_title">Consulter les scans passés localement</string>
|
||||||
<string name="history_hero_subtitle">Recherchez, exportez ou supprimez les scans enregistrés quand vous le souhaitez.</string>
|
<string name="history_hero_subtitle">Recherchez, exportez ou supprimez les scans enregistrés quand vous le souhaitez.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Codice individuato. Tieni fermo o avvicinati.</string>
|
<string name="live_potential_detected">Codice individuato. Tieni fermo o avvicinati.</string>
|
||||||
<string name="live_readable_detected">Codice leggibile rilevato.</string>
|
<string name="live_readable_detected">Codice leggibile rilevato.</string>
|
||||||
<string name="share_history">Condividi cronologia</string>
|
<string name="share_history">Condividi cronologia</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Testo</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Contatto</string>
|
||||||
|
<string name="scan_type_url">Link</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">Telefono</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">Email</string>
|
||||||
|
<string name="scan_type_calendar">Calendario</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Prodotto</string>
|
||||||
|
<string name="scan_type_text">Testo</string>
|
||||||
|
<string name="scan_type_geo">Posizione</string>
|
||||||
|
<string name="scan_type_driver_license">Patente di guida</string>
|
||||||
|
<string name="scan_type_unknown">Sconosciuto</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Ticket duplicato (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Ticket non registrato (%1$s)</string>
|
||||||
<string name="history_header_subtitle">La cronologia opzionale resta sul tuo dispositivo</string>
|
<string name="history_header_subtitle">La cronologia opzionale resta sul tuo dispositivo</string>
|
||||||
<string name="history_hero_title">Rivedi localmente le scansioni passate</string>
|
<string name="history_hero_title">Rivedi localmente le scansioni passate</string>
|
||||||
<string name="history_hero_subtitle">Cerca, esporta o elimina le scansioni salvate quando vuoi.</string>
|
<string name="history_hero_subtitle">Cerca, esporta o elimina le scansioni salvate quando vuoi.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">コードを検出しました。端末を安定させるか、近づけてください。</string>
|
<string name="live_potential_detected">コードを検出しました。端末を安定させるか、近づけてください。</string>
|
||||||
<string name="live_readable_detected">読み取り可能なコードを検出しました。</string>
|
<string name="live_readable_detected">読み取り可能なコードを検出しました。</string>
|
||||||
<string name="share_history">履歴を共有</string>
|
<string name="share_history">履歴を共有</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">テキスト</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">連絡先</string>
|
||||||
|
<string name="scan_type_url">リンク</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">電話</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">メール</string>
|
||||||
|
<string name="scan_type_calendar">カレンダー</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">製品</string>
|
||||||
|
<string name="scan_type_text">テキスト</string>
|
||||||
|
<string name="scan_type_geo">位置情報</string>
|
||||||
|
<string name="scan_type_driver_license">運転免許証</string>
|
||||||
|
<string name="scan_type_unknown">不明</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">重複チケット(%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">未登録チケット(%1$s)</string>
|
||||||
<string name="history_header_subtitle">任意の履歴は端末内に残ります</string>
|
<string name="history_header_subtitle">任意の履歴は端末内に残ります</string>
|
||||||
<string name="history_hero_title">過去のスキャンをローカルで確認</string>
|
<string name="history_hero_title">過去のスキャンをローカルで確認</string>
|
||||||
<string name="history_hero_subtitle">保存したスキャンをいつでも検索、エクスポート、削除できます。</string>
|
<string name="history_hero_subtitle">保存したスキャンをいつでも検索、エクスポート、削除できます。</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">코드를 찾았습니다. 기기를 고정하거나 더 가까이 이동하세요.</string>
|
<string name="live_potential_detected">코드를 찾았습니다. 기기를 고정하거나 더 가까이 이동하세요.</string>
|
||||||
<string name="live_readable_detected">읽을 수 있는 코드가 감지되었습니다.</string>
|
<string name="live_readable_detected">읽을 수 있는 코드가 감지되었습니다.</string>
|
||||||
<string name="share_history">기록 공유</string>
|
<string name="share_history">기록 공유</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">텍스트</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">연락처</string>
|
||||||
|
<string name="scan_type_url">링크</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">전화</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">이메일</string>
|
||||||
|
<string name="scan_type_calendar">캘린더</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">제품</string>
|
||||||
|
<string name="scan_type_text">텍스트</string>
|
||||||
|
<string name="scan_type_geo">위치</string>
|
||||||
|
<string name="scan_type_driver_license">운전면허증</string>
|
||||||
|
<string name="scan_type_unknown">알 수 없음</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">중복 티켓(%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">등록되지 않은 티켓(%1$s)</string>
|
||||||
<string name="history_header_subtitle">선택적 기록은 기기에 남습니다</string>
|
<string name="history_header_subtitle">선택적 기록은 기기에 남습니다</string>
|
||||||
<string name="history_hero_title">지난 스캔을 로컬에서 확인</string>
|
<string name="history_hero_title">지난 스캔을 로컬에서 확인</string>
|
||||||
<string name="history_hero_subtitle">저장된 스캔을 언제든 검색, 내보내기 또는 삭제할 수 있습니다.</string>
|
<string name="history_hero_subtitle">저장된 스캔을 언제든 검색, 내보내기 또는 삭제할 수 있습니다.</string>
|
||||||
|
|||||||
@@ -46,9 +46,25 @@
|
|||||||
<string name="live_potential_detected">Code spotted. Hold steady or move closer.</string>
|
<string name="live_potential_detected">Code spotted. Hold steady or move closer.</string>
|
||||||
<string name="live_readable_detected">Readable code detected.</string>
|
<string name="live_readable_detected">Readable code detected.</string>
|
||||||
<string name="share_history">Share history</string>
|
<string name="share_history">Share history</string>
|
||||||
<string name="share_txt">TXT</string>
|
<string name="share_txt">Text</string>
|
||||||
<string name="share_csv">CSV</string>
|
<string name="share_csv">CSV</string>
|
||||||
<string name="share_json">JSON</string>
|
<string name="share_json">JSON</string>
|
||||||
|
<string name="scan_type_contact">Contact</string>
|
||||||
|
<string name="scan_type_url">Link</string>
|
||||||
|
<string name="scan_type_wifi">Wi-Fi</string>
|
||||||
|
<string name="scan_type_phone">Phone</string>
|
||||||
|
<string name="scan_type_sms">SMS</string>
|
||||||
|
<string name="scan_type_email">Email</string>
|
||||||
|
<string name="scan_type_calendar">Calendar</string>
|
||||||
|
<string name="scan_type_isbn">ISBN</string>
|
||||||
|
<string name="scan_type_product">Product</string>
|
||||||
|
<string name="scan_type_text">Text</string>
|
||||||
|
<string name="scan_type_geo">Location</string>
|
||||||
|
<string name="scan_type_driver_license">Driver license</string>
|
||||||
|
<string name="scan_type_unknown">Unknown</string>
|
||||||
|
<string name="scan_type_base64_suffix">%1$s (Base64)</string>
|
||||||
|
<string name="scan_type_duplicate_ticket">Duplicate ticket (%1$s)</string>
|
||||||
|
<string name="scan_type_unregistered_ticket">Unregistered ticket (%1$s)</string>
|
||||||
<string name="history_header_subtitle">Optional history stays on your device</string>
|
<string name="history_header_subtitle">Optional history stays on your device</string>
|
||||||
<string name="history_hero_title">Review past scans locally</string>
|
<string name="history_hero_title">Review past scans locally</string>
|
||||||
<string name="history_hero_subtitle">Search, export, or delete saved scans whenever you choose.</string>
|
<string name="history_hero_subtitle">Search, export, or delete saved scans whenever you choose.</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user