Refactor, translation and fixes
This commit is contained in:
@@ -51,7 +51,7 @@ import androidx.compose.ui.unit.dp
|
|||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import net.helcel.cowspent.R
|
import net.helcel.cowspent.R
|
||||||
import net.helcel.cowspent.android.helper.AlertDialog
|
import net.helcel.cowspent.android.helper.StatefulAlertDialog
|
||||||
import net.helcel.cowspent.android.helper.formatAmount
|
import net.helcel.cowspent.android.helper.formatAmount
|
||||||
import net.helcel.cowspent.model.DBCurrency
|
import net.helcel.cowspent.model.DBCurrency
|
||||||
import kotlin.time.Duration.Companion.milliseconds
|
import kotlin.time.Duration.Companion.milliseconds
|
||||||
@@ -66,35 +66,10 @@ fun ManageCurrenciesScreen(
|
|||||||
onEdit: (DBCurrency) -> Unit,
|
onEdit: (DBCurrency) -> Unit,
|
||||||
onCancelEdit: () -> Unit
|
onCancelEdit: () -> Unit
|
||||||
) {
|
) {
|
||||||
val dialogState = viewModel.dialogState
|
StatefulAlertDialog(
|
||||||
if (dialogState != null) {
|
state = viewModel.dialogState,
|
||||||
AlertDialog(
|
onDismissRequest = { viewModel.dismissDialog() }
|
||||||
showDialog = true,
|
)
|
||||||
onDismissRequest = { viewModel.dismissDialog() },
|
|
||||||
title = dialogState.title,
|
|
||||||
message = dialogState.message,
|
|
||||||
icon = dialogState.icon,
|
|
||||||
items = dialogState.items,
|
|
||||||
positiveText = dialogState.positiveText,
|
|
||||||
negativeText = dialogState.negativeText,
|
|
||||||
neutralText = dialogState.neutralText,
|
|
||||||
onConfirm = {
|
|
||||||
dialogState.onConfirm?.invoke()
|
|
||||||
viewModel.dismissDialog()
|
|
||||||
},
|
|
||||||
onCancel = {
|
|
||||||
dialogState.onCancel?.invoke()
|
|
||||||
viewModel.dismissDialog()
|
|
||||||
},
|
|
||||||
onNeutral = {
|
|
||||||
dialogState.onNeutral?.invoke()
|
|
||||||
viewModel.dismissDialog()
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
dialogState.onItemSelected?.invoke(it)
|
|
||||||
viewModel.dismissDialog()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = {
|
topBar = {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package net.helcel.cowspent.android.helper
|
package net.helcel.cowspent.android.helper
|
||||||
|
|
||||||
import android.graphics.*
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.Drawable
|
|
||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
import java.security.NoSuchAlgorithmException
|
import java.security.NoSuchAlgorithmException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -11,74 +10,9 @@ import kotlin.math.round
|
|||||||
import kotlin.math.sqrt
|
import kotlin.math.sqrt
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Drawable object that draws text (1 character) on top of a circular/filled background.
|
* The color a member's avatar gets, derived from their name.
|
||||||
*/
|
*/
|
||||||
class TextDrawable private constructor(
|
object TextDrawable {
|
||||||
private val mText: String,
|
|
||||||
r: Int,
|
|
||||||
g: Int,
|
|
||||||
b: Int,
|
|
||||||
private val mRadius: Float,
|
|
||||||
private val mDisabled: Boolean
|
|
||||||
) : Drawable() {
|
|
||||||
private val mTextPaint: Paint = Paint()
|
|
||||||
private val mBackground: Paint = Paint()
|
|
||||||
private val mDisabledCircle: Paint = Paint()
|
|
||||||
|
|
||||||
init {
|
|
||||||
mBackground.style = Paint.Style.FILL
|
|
||||||
mBackground.isAntiAlias = true
|
|
||||||
mBackground.color = Color.rgb(r, g, b)
|
|
||||||
|
|
||||||
if ((r + g + b) / 3 < 220) {
|
|
||||||
mTextPaint.color = Color.WHITE
|
|
||||||
} else {
|
|
||||||
mTextPaint.color = Color.BLACK
|
|
||||||
}
|
|
||||||
mTextPaint.textSize = mRadius
|
|
||||||
mTextPaint.isAntiAlias = true
|
|
||||||
mTextPaint.textAlign = Paint.Align.CENTER
|
|
||||||
|
|
||||||
mDisabledCircle.style = Paint.Style.STROKE
|
|
||||||
mDisabledCircle.strokeWidth = mRadius * 0.2f
|
|
||||||
mDisabledCircle.isAntiAlias = true
|
|
||||||
mDisabledCircle.color = Color.DKGRAY
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun draw(canvas: Canvas) {
|
|
||||||
canvas.drawCircle(mRadius, mRadius, mRadius, mBackground)
|
|
||||||
canvas.drawText(
|
|
||||||
mText,
|
|
||||||
mRadius,
|
|
||||||
mRadius - (mTextPaint.descent() + mTextPaint.ascent()) / 2,
|
|
||||||
mTextPaint
|
|
||||||
)
|
|
||||||
if (mDisabled) {
|
|
||||||
canvas.drawCircle(mRadius, mRadius, mRadius * 0.9f, mDisabledCircle)
|
|
||||||
canvas.drawLine(
|
|
||||||
mRadius * 0.4f,
|
|
||||||
mRadius * 1.6f,
|
|
||||||
mRadius * 1.6f,
|
|
||||||
mRadius * 0.4f,
|
|
||||||
mDisabledCircle
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setAlpha(alpha: Int) {
|
|
||||||
mTextPaint.alpha = alpha
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setColorFilter(cf: ColorFilter?) {
|
|
||||||
mTextPaint.colorFilter = cf
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated("Deprecated in Java")
|
|
||||||
override fun getOpacity(): Int {
|
|
||||||
return PixelFormat.TRANSLUCENT
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
private const val INDEX_RED = 0
|
private const val INDEX_RED = 0
|
||||||
private const val INDEX_GREEN = 1
|
private const val INDEX_GREEN = 1
|
||||||
private const val INDEX_BLUE = 2
|
private const val INDEX_BLUE = 2
|
||||||
@@ -215,5 +149,4 @@ class TextDrawable private constructor(
|
|||||||
val md5 = MessageDigest.getInstance("MD5").digest(string.toByteArray())
|
val md5 = MessageDigest.getInstance("MD5").digest(string.toByteArray())
|
||||||
return md5.joinToString("") { "%02x".format(it) }
|
return md5.joinToString("") { "%02x".format(it) }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ fun LabelManagementScreenContent(
|
|||||||
title = { Text(stringResource(R.string.title_labels)) },
|
title = { Text(stringResource(R.string.title_labels)) },
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = onBack) {
|
IconButton(onClick = onBack) {
|
||||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null)
|
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = stringResource(R.string.simple_back))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
backgroundColor = MaterialTheme.colors.primary,
|
backgroundColor = MaterialTheme.colors.primary,
|
||||||
@@ -267,10 +267,10 @@ fun LabelItem(
|
|||||||
Spacer(modifier = Modifier.width(32.dp))
|
Spacer(modifier = Modifier.width(32.dp))
|
||||||
Text(text = name, modifier = Modifier.weight(1f), style = MaterialTheme.typography.subtitle1)
|
Text(text = name, modifier = Modifier.weight(1f), style = MaterialTheme.typography.subtitle1)
|
||||||
IconButton(onClick = onEdit) {
|
IconButton(onClick = onEdit) {
|
||||||
Icon(Icons.Default.Edit, contentDescription = null, tint = MaterialTheme.colors.onSurface.copy(alpha = 0.6f))
|
Icon(Icons.Default.Edit, contentDescription = stringResource(R.string.action_edit), tint = MaterialTheme.colors.onSurface.copy(alpha = 0.6f))
|
||||||
}
|
}
|
||||||
IconButton(onClick = onDelete) {
|
IconButton(onClick = onDelete) {
|
||||||
Icon(Icons.Default.Delete, contentDescription = null, tint = MaterialTheme.colors.error.copy(alpha = 0.6f))
|
Icon(Icons.Default.Delete, contentDescription = stringResource(R.string.action_delete), tint = MaterialTheme.colors.error.copy(alpha = 0.6f))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,6 +151,9 @@ object ProjectImportHelper {
|
|||||||
|
|
||||||
val memberNameToId = mutableMapOf<String, Long>()
|
val memberNameToId = mutableMapOf<String, Long>()
|
||||||
val pid = db.addProject(DBProject(0, projectRemoteId, "", projectRemoteId, null, null, null, ProjectType.LOCAL, 0L, mainCurrencyName, false, DBProject.ACCESS_LEVEL_UNKNOWN, null))
|
val pid = db.addProject(DBProject(0, projectRemoteId, "", projectRemoteId, null, null, null, ProjectType.LOCAL, 0L, mainCurrencyName, false, DBProject.ACCESS_LEVEL_UNKNOWN, null))
|
||||||
|
// addProject only inserts a subset of the row, currency not among it, so the main
|
||||||
|
// currency the file declared has to be written separately or it is lost.
|
||||||
|
if (mainCurrencyName != null) db.updateProject(pid, newCurrencyName = mainCurrencyName)
|
||||||
|
|
||||||
val pmRemoteToLocal = mutableMapOf<Long, Long>()
|
val pmRemoteToLocal = mutableMapOf<Long, Long>()
|
||||||
paymentModes.forEach {
|
paymentModes.forEach {
|
||||||
|
|||||||
@@ -838,13 +838,14 @@ class CowspentServerSyncHelper private constructor(private val dbHelper: Cowspen
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Walks back through pages of bills, newest first, stopping at the first page that already
|
* Walks back through pages of bills, newest first, until it has seen a run of
|
||||||
* matches locally and taking everything older on trust.
|
* [UNCHANGED_RUN_TO_SETTLE] consecutive bills that already match locally - at which point
|
||||||
|
* everything older is taken on trust.
|
||||||
*
|
*
|
||||||
* That only terminates while the server really does reverse the order and honour the
|
* That only terminates while the server really does reverse the order and honour the
|
||||||
* offset. One that does neither returns the same oldest-first page every time, and since
|
* offset. One that does neither returns the same oldest-first page every time, and since
|
||||||
* the walk compares against local rows it never writes, a single unknown bill keeps every
|
* the walk compares against local rows it never writes, a single unknown bill keeps the
|
||||||
* page mismatched and the same page is requested forever. Returns null when the responses
|
* run at zero and the same page is requested forever. Returns null when the responses
|
||||||
* show that happening, so the caller can fall back to the complete fetch.
|
* show that happening, so the caller can fall back to the complete fetch.
|
||||||
*/
|
*/
|
||||||
private fun walkBillPages(
|
private fun walkBillPages(
|
||||||
@@ -857,6 +858,9 @@ class CowspentServerSyncHelper private constructor(private val dbHelper: Cowspen
|
|||||||
var syncTimestamp = project.lastSyncedTimestamp
|
var syncTimestamp = project.lastSyncedTimestamp
|
||||||
var offset = 0
|
var offset = 0
|
||||||
var previousPageIds: List<Long>? = null
|
var previousPageIds: List<Long>? = null
|
||||||
|
// Counted across pages, not restarted at each one: a run that begins near the end of
|
||||||
|
// a page still finishes on the next.
|
||||||
|
var unchangedRun = 0
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
val response = client!!.getBills(project, offset, limit, true, 0)
|
val response = client!!.getBills(project, offset, limit, true, 0)
|
||||||
@@ -881,13 +885,23 @@ class CowspentServerSyncHelper private constructor(private val dbHelper: Cowspen
|
|||||||
syncTimestamp = response.syncTimestamp
|
syncTimestamp = response.syncTimestamp
|
||||||
}
|
}
|
||||||
|
|
||||||
val pageAlreadyLocal = page.all { remote ->
|
var settled = false
|
||||||
|
for (remote in page) {
|
||||||
val local = localBillsByRemoteId[remote.remoteId]
|
val local = localBillsByRemoteId[remote.remoteId]
|
||||||
local != null && !hasChanged(local, remote)
|
if (local != null && !hasChanged(local, remote)) {
|
||||||
|
unchangedRun++
|
||||||
|
if (unchangedRun >= UNCHANGED_RUN_TO_SETTLE) {
|
||||||
|
settled = true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
unchangedRun = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// A short page is the end of the collection: there is nothing older to walk back
|
// A short page is the end of the collection: there is nothing older to walk back
|
||||||
// to, so asking for the next offset would only refetch it.
|
// to, so asking for the next offset would only refetch it.
|
||||||
if (pageAlreadyLocal || page.size < limit) break
|
if (settled || page.size < limit) break
|
||||||
offset += limit
|
offset += limit
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1803,6 +1817,16 @@ class CowspentServerSyncHelper private constructor(private val dbHelper: Cowspen
|
|||||||
companion object {
|
companion object {
|
||||||
private val TAG = CowspentServerSyncHelper::class.java.simpleName
|
private val TAG = CowspentServerSyncHelper::class.java.simpleName
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How many consecutive bills, walking newest to oldest, must already match locally before
|
||||||
|
* the paged walk concludes that every older bill matches too.
|
||||||
|
*
|
||||||
|
* A whole page of 50 had to match before, so one edit anywhere in a page forced another
|
||||||
|
* page to be fetched. A trailing run is the same bet on a smaller sample: it can settle
|
||||||
|
* part way into a page, and it carries across page boundaries rather than restarting.
|
||||||
|
*/
|
||||||
|
private const val UNCHANGED_RUN_TO_SETTLE = 25
|
||||||
|
|
||||||
private var instance: CowspentServerSyncHelper? = null
|
private var instance: CowspentServerSyncHelper? = null
|
||||||
private val projectIdsToSync: MutableList<Long> = ArrayList()
|
private val projectIdsToSync: MutableList<Long> = ArrayList()
|
||||||
|
|
||||||
|
|||||||
@@ -897,7 +897,9 @@ open class ServerResponse(
|
|||||||
memberRemoteIdToId: Map<Long, Long>
|
memberRemoteIdToId: Map<Long, Long>
|
||||||
): List<DBBillOwer> {
|
): List<DBBillOwer> {
|
||||||
val billOwers: MutableList<DBBillOwer> = ArrayList()
|
val billOwers: MutableList<DBBillOwer> = ArrayList()
|
||||||
if (json.has("owers")) {
|
// As everywhere else here, an explicitly null value is not a value: getJSONArray would
|
||||||
|
// throw on it, and that exception fails the whole project sync over one bill.
|
||||||
|
if (json.has("owers") && !json.isNull("owers")) {
|
||||||
val jsonOs = json.getJSONArray("owers")
|
val jsonOs = json.getJSONArray("owers")
|
||||||
for (i in 0 until jsonOs.length()) {
|
for (i in 0 until jsonOs.length()) {
|
||||||
val obj = jsonOs.get(i)
|
val obj = jsonOs.get(i)
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<string name="app_name">Cowspent</string>
|
|
||||||
|
|
||||||
<!-- Actions -->
|
<!-- Actions -->
|
||||||
<string name="action_new_bill">Neue Rechnung</string>
|
<string name="action_new_bill">Neue Rechnung</string>
|
||||||
@@ -10,7 +9,11 @@
|
|||||||
<string name="action_edit">Bearbeiten</string>
|
<string name="action_edit">Bearbeiten</string>
|
||||||
<string name="action_share">Teilen</string>
|
<string name="action_share">Teilen</string>
|
||||||
<string name="action_search">Suchen</string>
|
<string name="action_search">Suchen</string>
|
||||||
|
<string name="action_open_menu">Menü öffnen</string>
|
||||||
|
<string name="action_close_search">Suche schließen</string>
|
||||||
|
<string name="action_clear_search">Suche leeren</string>
|
||||||
<string name="action_delete">Löschen</string>
|
<string name="action_delete">Löschen</string>
|
||||||
|
<string name="simple_back">Zurück</string>
|
||||||
<string name="action_archive">Archivieren</string>
|
<string name="action_archive">Archivieren</string>
|
||||||
<string name="action_unarchive">Reaktivieren</string>
|
<string name="action_unarchive">Reaktivieren</string>
|
||||||
<string name="action_export">Exportieren</string>
|
<string name="action_export">Exportieren</string>
|
||||||
@@ -37,7 +40,7 @@
|
|||||||
<string name="title_add_project">Projekt hinzufügen</string>
|
<string name="title_add_project">Projekt hinzufügen</string>
|
||||||
<string name="title_add_category">Neue Kategorie</string>
|
<string name="title_add_category">Neue Kategorie</string>
|
||||||
<string name="title_add_payment_mode">Zahlungsmethode hinzufügen</string>
|
<string name="title_add_payment_mode">Zahlungsmethode hinzufügen</string>
|
||||||
<string name="title_account">Nextloud-Konto</string>
|
<string name="title_account">Nextcloud-Konto</string>
|
||||||
<string name="title_share_web">Weblink</string>
|
<string name="title_share_web">Weblink</string>
|
||||||
<string name="title_share_qr">Cowspent link</string>
|
<string name="title_share_qr">Cowspent link</string>
|
||||||
<string name="title_confirm">Bist du sicher?</string>
|
<string name="title_confirm">Bist du sicher?</string>
|
||||||
@@ -137,10 +140,17 @@
|
|||||||
<string name="settings_show_archived">Archivierte Projekte anzeigen</string>
|
<string name="settings_show_archived">Archivierte Projekte anzeigen</string>
|
||||||
<string name="settings_beta_features">Beta-Funktionen</string>
|
<string name="settings_beta_features">Beta-Funktionen</string>
|
||||||
<string name="settings_beta_features_summary">Experimentelle Funktionen aktivieren. Benutzung auf eigene Gefahr.</string>
|
<string name="settings_beta_features_summary">Experimentelle Funktionen aktivieren. Benutzung auf eigene Gefahr.</string>
|
||||||
|
<string name="settings_fill_new_bill_from_last">Aus letzter Rechnung vorausfüllen</string>
|
||||||
|
<string name="settings_fill_new_bill_from_last_summary">Zahler, Kategorie, Zahlungsart und Beteiligte aus der zuletzt erstellten Rechnung des Projekts übernehmen.</string>
|
||||||
|
<string name="settings_auto_sync_on_open">Synchronisierungsintervall</string>
|
||||||
|
<string name="settings_auto_sync_on_open_summary">Wie oft Konto und alle Projekte beim Öffnen der App aktualisiert werden.</string>
|
||||||
|
<string name="pref_value_sync_1m">1 Minute</string>
|
||||||
|
<string name="pref_value_sync_10m">10 Minuten</string>
|
||||||
|
<string name="pref_value_sync_1h">1 Stunde</string>
|
||||||
|
<string name="pref_value_sync_1d">1 Tag</string>
|
||||||
<string name="settings_url_warn_http">WARNUNG: \"http\" ist unsicher. Verwende \"https\".</string>
|
<string name="settings_url_warn_http">WARNUNG: \"http\" ist unsicher. Verwende \"https\".</string>
|
||||||
<string name="settings_colorpicker_title">Farbe wählen</string>
|
<string name="settings_colorpicker_title">Farbe wählen</string>
|
||||||
<string name="pref_value_color_system">System</string>
|
<string name="pref_value_color_system">System</string>
|
||||||
<string name="pref_value_color_server">Nextcloud</string>
|
|
||||||
<string name="pref_value_color_manual">Manuell</string>
|
<string name="pref_value_color_manual">Manuell</string>
|
||||||
<string name="pref_value_theme_light">Hell</string>
|
<string name="pref_value_theme_light">Hell</string>
|
||||||
<string name="pref_value_theme_dark">Dunkel</string>
|
<string name="pref_value_theme_dark">Dunkel</string>
|
||||||
@@ -158,7 +168,7 @@
|
|||||||
<string name="payment_mode_all">Alle</string>
|
<string name="payment_mode_all">Alle</string>
|
||||||
<string name="payment_mode_credit_card">Kreditkarte</string>
|
<string name="payment_mode_credit_card">Kreditkarte</string>
|
||||||
<string name="payment_mode_cash">Bargeld</string>
|
<string name="payment_mode_cash">Bargeld</string>
|
||||||
<string name="payment_mode_check">Prüfen</string>
|
<string name="payment_mode_check">Scheck</string>
|
||||||
<string name="payment_mode_online">Online</string>
|
<string name="payment_mode_online">Online</string>
|
||||||
<string name="payment_mode_transfer">Überweisung</string>
|
<string name="payment_mode_transfer">Überweisung</string>
|
||||||
<string name="category_none">Keine</string>
|
<string name="category_none">Keine</string>
|
||||||
@@ -181,8 +191,6 @@
|
|||||||
<string name="new_project_action">Was</string>
|
<string name="new_project_action">Was</string>
|
||||||
<string name="new_project_where">Wo</string>
|
<string name="new_project_where">Wo</string>
|
||||||
<string name="where_local">Nur lokal</string>
|
<string name="where_local">Nur lokal</string>
|
||||||
<string name="where_cospend">Cospend</string>
|
|
||||||
<string name="where_ihatemoney">IHateMoney</string>
|
|
||||||
<string name="todo_join">Bestehendem Projekt beitreten</string>
|
<string name="todo_join">Bestehendem Projekt beitreten</string>
|
||||||
<string name="todo_create">Neues Projekt erstellen</string>
|
<string name="todo_create">Neues Projekt erstellen</string>
|
||||||
<string name="import_tooltip">Aus Datei importieren</string>
|
<string name="import_tooltip">Aus Datei importieren</string>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<string name="app_name">Capucha gastada</string>
|
|
||||||
<!-- Actions -->
|
<!-- Actions -->
|
||||||
<string name="action_new_bill">Nueva factura</string>
|
<string name="action_new_bill">Nueva factura</string>
|
||||||
<string name="action_add_project">Añadir proyecto</string>
|
<string name="action_add_project">Añadir proyecto</string>
|
||||||
@@ -8,154 +8,174 @@
|
|||||||
<string name="action_edit">Editar</string>
|
<string name="action_edit">Editar</string>
|
||||||
<string name="action_share">Compartir</string>
|
<string name="action_share">Compartir</string>
|
||||||
<string name="action_search">Buscar</string>
|
<string name="action_search">Buscar</string>
|
||||||
|
<string name="action_open_menu">Abrir el menú</string>
|
||||||
|
<string name="action_close_search">Cerrar la búsqueda</string>
|
||||||
|
<string name="action_clear_search">Borrar la búsqueda</string>
|
||||||
<string name="action_delete">Eliminar</string>
|
<string name="action_delete">Eliminar</string>
|
||||||
|
<string name="simple_back">Atrás</string>
|
||||||
<string name="action_archive">Archivar</string>
|
<string name="action_archive">Archivar</string>
|
||||||
<string name="action_unarchive">Desarchivar</string>
|
<string name="action_unarchive">Desarchivar</string>
|
||||||
<string name="action_export">Exportar</string>
|
<string name="action_export">Exportar</string>
|
||||||
<string name="action_stats">Estadísticas</string>
|
<string name="action_stats">Estadísticas</string>
|
||||||
<string name="action_settle">Salir</string>
|
<string name="action_settle">Liquidar</string>
|
||||||
<string name="action_scan_qrcode">Scan QR Code</string>
|
<string name="action_scan_qrcode">Escanear código QR</string>
|
||||||
<string name="action_settings">Ajustes</string>
|
<string name="action_settings">Ajustes</string>
|
||||||
<string name="action_label_bills">Categorías faltantes de etiqueta</string>
|
<string name="action_label_bills">Categorizar facturas</string>
|
||||||
<string name="action_logout">Cerrar sesión</string>
|
<string name="action_logout">Cerrar sesión</string>
|
||||||
<string name="action_connect">Conectar</string>
|
<string name="action_connect">Conectar</string>
|
||||||
<string name="action_discard">Descartar</string>
|
<string name="action_discard">Descartar</string>
|
||||||
<string name="action_members">Miembros</string>
|
<string name="action_members">Miembros</string>
|
||||||
<string name="action_labels">Etiquetas</string>
|
<string name="action_labels">Etiquetas</string>
|
||||||
<string name="action_currencies">Monedas</string>
|
<string name="action_currencies">Monedas</string>
|
||||||
|
|
||||||
<!-- Titles -->
|
<!-- Titles -->
|
||||||
<string name="title_stats">Estadísticas</string>
|
<string name="title_stats">Estadísticas</string>
|
||||||
<string name="title_edit_project">Editar proyecto</string>
|
<string name="title_edit_project">Editar proyecto</string>
|
||||||
<string name="title_label_bills">Facturas de etiqueta</string>
|
<string name="title_label_bills">Categorizar facturas</string>
|
||||||
<string name="title_labels">Administrar etiquetas</string>
|
<string name="title_labels">Gestionar etiquetas</string>
|
||||||
<string name="title_about">Acerca de</string>
|
<string name="title_about">Acerca de</string>
|
||||||
<string name="title_settle">Liquidar Proyecto</string>
|
<string name="title_settle">Liquidar proyecto</string>
|
||||||
<string name="title_share">Compartir proyecto</string>
|
<string name="title_share">Compartir proyecto</string>
|
||||||
<string name="title_add_project">Añadir proyecto</string>
|
<string name="title_add_project">Añadir proyecto</string>
|
||||||
<string name="title_add_category">Añadir categoría</string>
|
<string name="title_add_category">Añadir categoría</string>
|
||||||
<string name="title_add_payment_mode">Añadir modo de pago</string>
|
<string name="title_add_payment_mode">Añadir modo de pago</string>
|
||||||
<string name="title_account">Cuenta Nextcloud</string>
|
<string name="title_account">Cuenta de Nextcloud</string>
|
||||||
<string name="title_share_web">Enlace web</string>
|
<string name="title_share_web">Enlace web</string>
|
||||||
<string name="title_share_qr">Cowspent link</string>
|
<string name="title_share_qr">Enlace de Cowspent</string>
|
||||||
<string name="title_confirm">¿Estás seguro?</string>
|
<string name="title_confirm">¿Estás seguro?</string>
|
||||||
|
|
||||||
<!-- Labels and Fields -->
|
<!-- Labels and Fields -->
|
||||||
<string name="label_all_bills">Todas las facturas</string>
|
<string name="label_all_bills">Todas las facturas</string>
|
||||||
<string name="label_categories">Categorías</string>
|
<string name="label_categories">Categorías</string>
|
||||||
<string name="label_payment_modes">Modos de pago</string>
|
<string name="label_payment_modes">Modos de pago</string>
|
||||||
<string name="label_name">Nombre</string>
|
<string name="label_name">Nombre</string>
|
||||||
<string name="label_icon">Icon / Emoji</string>
|
<string name="label_icon">Icono / Emoji</string>
|
||||||
<string name="label_color">Color</string>
|
<string name="label_color">Color</string>
|
||||||
<string name="label_weight">Peso</string>
|
<string name="label_weight">Peso</string>
|
||||||
<string name="label_activated">Activado</string>
|
<string name="label_activated">Activado</string>
|
||||||
<string name="label_password">Contraseña</string>
|
<string name="label_password">Contraseña</string>
|
||||||
<string name="label_email">E-mail</string>
|
<string name="label_email">Correo electrónico</string>
|
||||||
<string name="label_url">Dirección del servidor</string>
|
<string name="label_url">Dirección del servidor</string>
|
||||||
<string name="label_username">Usuario</string>
|
<string name="label_username">Nombre de usuario</string>
|
||||||
<string name="label_comment">Comentario</string>
|
<string name="label_comment">Comentario</string>
|
||||||
<string name="label_what">¿Qué?</string>
|
<string name="label_what">¿Qué?</string>
|
||||||
<string name="label_payer">¿Quién pagó?</string>
|
<string name="label_payer">¿Quién pagó?</string>
|
||||||
<string name="label_owers">¿Para quién?</string>
|
<string name="label_owers">¿Para quién?</string>
|
||||||
<string name="label_repeat">Repetir cada</string>
|
<string name="label_repeat">Repetición</string>
|
||||||
<string name="label_mode">Modo</string>
|
<string name="label_mode">Modo</string>
|
||||||
<string name="label_category">Categoría</string>
|
<string name="label_category">Categoría</string>
|
||||||
<string name="label_project_id">ID del proyecto/nombre</string>
|
<string name="label_project_id">ID/nombre del proyecto</string>
|
||||||
<string name="label_project_title">Título del proyecto</string>
|
<string name="label_project_title">Título del proyecto</string>
|
||||||
<string name="label_use_sso">Usar cuenta de la aplicación Nextcloud</string>
|
<string name="label_use_sso">Usar la cuenta de la aplicación Nextcloud</string>
|
||||||
|
|
||||||
<!-- Dialogs and Messages -->
|
<!-- Dialogs and Messages -->
|
||||||
<string name="dialog_unsaved_changes_title">Cambios sin guardar</string>
|
<string name="dialog_unsaved_changes_title">Cambios sin guardar</string>
|
||||||
<string name="dialog_unsaved_changes_msg">¿Guardar cambios antes de salir?</string>
|
<string name="dialog_unsaved_changes_msg">¿Guardar los cambios antes de salir?</string>
|
||||||
<string name="dialog_confirm_remove_project_msg">El proyecto remoto no se eliminará.</string>
|
<string name="dialog_confirm_remove_project_msg">El proyecto remoto no se eliminará.</string>
|
||||||
<string name="dialog_sync_error_title">Error de sincronización</string>
|
<string name="dialog_sync_error_title">Error de sincronización</string>
|
||||||
<string name="dialog_sync_error_msg">Sincronización fallida para %1$s.\n\n%2$s</string>
|
<string name="dialog_sync_error_msg">Error al sincronizar %1$s.\n\n%2$s</string>
|
||||||
<string name="dialog_balanced_msg">Los gastos ya están equilibrados.</string>
|
<string name="dialog_balanced_msg">Los gastos ya están equilibrados.</string>
|
||||||
<string name="msg_project_added">Proyecto %1$s añadido</string>
|
<string name="msg_project_added">Proyecto %1$s añadido</string>
|
||||||
<string name="msg_bill_labeled_done">Todas las facturas etiquetadas</string>
|
<string name="msg_bill_labeled_done">Todas las facturas están categorizadas</string>
|
||||||
<string name="msg_no_suggestions">No hay sugerencias</string>
|
<string name="msg_no_suggestions">No hay sugerencias</string>
|
||||||
<string name="msg_auth_warning">Requiere Gasto v0.3.4+.</string>
|
<string name="msg_auth_warning">Requiere Cospend v0.3.4+.</string>
|
||||||
<string name="msg_link_copied">Enlace copiado al portapapeles</string>
|
<string name="msg_link_copied">Enlace copiado al portapapeles</string>
|
||||||
<string name="msg_share_qr">Escanea el código QR o comparte el enlace para unirte.</string>
|
<string name="msg_share_qr">Escanea el código QR o comparte el enlace para unirte al proyecto.</string>
|
||||||
<string name="msg_share_web">Enlace para acceso al navegador web.</string>
|
<string name="msg_share_web">Enlace de acceso desde un navegador web.</string>
|
||||||
<string name="msg_share_qr_warn">Comparte este enlace con un usuario de Cowged.</string>
|
<string name="msg_share_qr_warn">Comparte este enlace con un usuario de Cowspent.</string>
|
||||||
<string name="msg_settle_intro">Acuerdo para %1$s:</string>
|
<string name="msg_settle_intro">Liquidación de %1$s:</string>
|
||||||
<string name="msg_settle_sentence">%1$s debe %3$.2f a %2$s</string>
|
<string name="msg_settle_sentence">%1$s debe %3$.2f a %2$s</string>
|
||||||
<string name="msg_stats_intro">Estadísticas de %1$s:</string>
|
<string name="msg_stats_intro">Estadísticas de %1$s:</string>
|
||||||
<string name="msg_stats_header">Miembro Pagado | Gasto | Saldo)</string>
|
<string name="msg_stats_header">Miembro (Pagado | Gastado | Saldo)</string>
|
||||||
<string name="msg_logged_in_as">Logged in as %1$s</string>
|
<string name="msg_logged_in_as">Sesión iniciada como %1$s</string>
|
||||||
|
|
||||||
<!-- Errors -->
|
<!-- Errors -->
|
||||||
<string name="error_generic">Error</string>
|
<string name="error_generic">Error</string>
|
||||||
<string name="error_loading">Cargando</string>
|
<string name="error_loading">Cargando</string>
|
||||||
<string name="error_no_projects">No se encontraron proyectos</string>
|
<string name="error_no_projects">No se encontraron proyectos</string>
|
||||||
<string name="error_no_members">Ningún miembro encontrado</string>
|
<string name="error_no_members">No se encontraron miembros</string>
|
||||||
<string name="error_no_bills">No se encontraron facturas</string>
|
<string name="error_no_bills">No se encontraron facturas</string>
|
||||||
<string name="error_no_member">Se requiere al menos un miembro</string>
|
<string name="error_no_member">Se requiere al menos un miembro</string>
|
||||||
<string name="error_maintenance_mode">El servidor está en modo mantenimiento</string>
|
<string name="error_maintenance_mode">El servidor está en modo de mantenimiento</string>
|
||||||
<string name="error_400">400 Solicitud errónea</string>
|
<string name="error_400">400 Solicitud incorrecta</string>
|
||||||
<string name="error_401">401 no autorizado</string>
|
<string name="error_401">401 No autorizado</string>
|
||||||
<string name="error_403">403 Prohibida</string>
|
<string name="error_403">403 Prohibido</string>
|
||||||
<string name="error_404">404 no encontrado</string>
|
<string name="error_404">404 No encontrado</string>
|
||||||
<string name="error_sync">Sincronización fallida: %1$s</string>
|
<string name="error_sync">Error de sincronización: %1$s</string>
|
||||||
<string name="error_invalid_login">Inicio de sesión no válido: %1$s</string>
|
<string name="error_invalid_login">Inicio de sesión no válido: %1$s</string>
|
||||||
<string name="error_auth">Nombre de usuario o contraseña incorrectos</string>
|
<string name="error_auth">Nombre de usuario o contraseña incorrectos</string>
|
||||||
<string name="error_json">Respuesta del servidor inválida</string>
|
<string name="error_json">Respuesta del servidor no válida</string>
|
||||||
<string name="error_req_failed">Petición fallida</string>
|
<string name="error_req_failed">La petición ha fallado</string>
|
||||||
<string name="error_invalid_email">E-mail inválido</string>
|
<string name="error_invalid_email">Correo electrónico no válido</string>
|
||||||
<string name="error_invalid_project_id">ID de proyecto inválido</string>
|
<string name="error_invalid_project_id">ID de proyecto no válido</string>
|
||||||
<string name="error_invalid_project_name">Título del proyecto inválido</string>
|
<string name="error_invalid_project_name">Título de proyecto no válido</string>
|
||||||
<string name="error_invalid_bill_name">Nombre de factura no válido</string>
|
<string name="error_invalid_bill_name">Nombre de factura no válido</string>
|
||||||
<string name="error_invalid_bill_date">Fecha de factura inválida</string>
|
<string name="error_invalid_bill_date">Fecha de factura no válida</string>
|
||||||
<string name="error_invalid_bill_payer">Pagador requerido</string>
|
<string name="error_invalid_bill_payer">Pagador requerido</string>
|
||||||
<string name="error_invalid_bill_owers">Propietarios requeridos</string>
|
<string name="error_invalid_bill_owers">Participantes requeridos</string>
|
||||||
<string name="error_no_network">No hay conexión de red</string>
|
<string name="error_no_network">No hay conexión de red</string>
|
||||||
<string name="error_server">Error del servidor</string>
|
<string name="error_server">Error del servidor</string>
|
||||||
<string name="error_io">Conexión con el servidor dañada</string>
|
<string name="error_io">Se ha perdido la conexión con el servidor</string>
|
||||||
<string name="error_share_impossible">No se puede compartir este proyecto</string>
|
<string name="error_share_impossible">No se puede compartir este proyecto</string>
|
||||||
|
|
||||||
<!-- Drawer / Common UI -->
|
<!-- Drawer / Common UI -->
|
||||||
<string name="drawer_no_account">Conectar a la cuenta de Nextcloud</string>
|
<string name="drawer_no_account">Conectar a una cuenta de Nextcloud</string>
|
||||||
<string name="drawer_last_sync">Última sincronización: %1$02d:%2$02d</string>
|
<string name="drawer_last_sync">Última sincronización: %1$02d:%2$02d</string>
|
||||||
<string name="simple_cancel">Cancelar</string>
|
<string name="simple_cancel">Cancelar</string>
|
||||||
<string name="simple_ok" tools:ignore="ButtonCase,Typos">Ok</string>
|
<string name="simple_ok" tools:ignore="ButtonCase,Typos">Ok</string>
|
||||||
<string name="simple_yes">Sí</string>
|
<string name="simple_yes">Sí</string>
|
||||||
<string name="simple_no">Nu</string>
|
<string name="simple_no">No</string>
|
||||||
<string name="simple_close">Cerrar</string>
|
<string name="simple_close">Cerrar</string>
|
||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings_appearance">Apariencia</string>
|
<string name="settings_appearance">Apariencia</string>
|
||||||
<string name="settings_network">Red</string>
|
<string name="settings_network">Red</string>
|
||||||
<string name="settings_other">Otro</string>
|
<string name="settings_other">Otros</string>
|
||||||
<string name="settings_night_mode">Tema</string>
|
<string name="settings_night_mode">Tema</string>
|
||||||
<string name="settings_offline_mode">Modo sin conexión</string>
|
<string name="settings_offline_mode">Modo sin conexión</string>
|
||||||
<string name="settings_offline_mode_summary">Solo sincronizar manualmente.</string>
|
<string name="settings_offline_mode_summary">Sincronizar solo manualmente.</string>
|
||||||
<string name="settings_color_custom">Color personalizado</string>
|
<string name="settings_color_custom">Color personalizado</string>
|
||||||
<string name="settings_color_mode">Selección de color</string>
|
<string name="settings_color_mode">Selección de color</string>
|
||||||
<string name="settings_show_archived">Mostrar proyectos archivados</string>
|
<string name="settings_show_archived">Mostrar los proyectos archivados</string>
|
||||||
<string name="settings_beta_features">Características beta</string>
|
<string name="settings_beta_features">Funciones beta</string>
|
||||||
<string name="settings_beta_features_summary">Activar características experimentales. Úsalo bajo tu propio riesgo.</string>
|
<string name="settings_beta_features_summary">Activar las funciones experimentales. Úsalas bajo tu propia responsabilidad.</string>
|
||||||
<string name="settings_url_warn_http">ADVERTENCIA: \"http\" no es seguro. Use \"https\".</string>
|
<string name="settings_fill_new_bill_from_last">Rellenar desde la última factura</string>
|
||||||
<string name="settings_colorpicker_title">Elegir color</string>
|
<string name="settings_fill_new_bill_from_last_summary">Reutilizar el pagador, la categoría, el modo y los participantes de la última factura creada en el proyecto.</string>
|
||||||
|
<string name="settings_auto_sync_on_open">Intervalo de sincronización</string>
|
||||||
|
<string name="settings_auto_sync_on_open_summary">Con qué frecuencia se actualizan la cuenta y todos los proyectos al abrir la aplicación.</string>
|
||||||
|
<string name="pref_value_sync_1m">1 minuto</string>
|
||||||
|
<string name="pref_value_sync_10m">10 minutos</string>
|
||||||
|
<string name="pref_value_sync_1h">1 hora</string>
|
||||||
|
<string name="pref_value_sync_1d">1 día</string>
|
||||||
|
<string name="settings_url_warn_http">ADVERTENCIA: \"http\" no es seguro. Usa \"https\".</string>
|
||||||
|
<string name="settings_colorpicker_title">Elegir un color</string>
|
||||||
|
|
||||||
<string name="pref_value_color_system">Sistema</string>
|
<string name="pref_value_color_system">Sistema</string>
|
||||||
<string name="pref_value_color_server">Nextcloud</string>
|
|
||||||
<string name="pref_value_color_manual">Manual</string>
|
<string name="pref_value_color_manual">Manual</string>
|
||||||
<string name="pref_value_theme_light">Claro</string>
|
<string name="pref_value_theme_light">Claro</string>
|
||||||
<string name="pref_value_theme_dark">Oscuro</string>
|
<string name="pref_value_theme_dark">Oscuro</string>
|
||||||
<string name="pref_value_theme_system">Seguir sistema</string>
|
<string name="pref_value_theme_system">Seguir el sistema</string>
|
||||||
<!-- Constants (Do not translate) -->
|
|
||||||
<!-- Enums and Lists -->
|
<!-- Enums and Lists -->
|
||||||
<string name="repeat_no">No repetir</string>
|
<string name="repeat_no">Sin repetición</string>
|
||||||
<string name="repeat_day">Diario</string>
|
<string name="repeat_day">Diaria</string>
|
||||||
<string name="repeat_week">Semanal</string>
|
<string name="repeat_week">Semanal</string>
|
||||||
<string name="repeat_fortnight">Fortnocturno</string>
|
<string name="repeat_fortnight">Quincenal</string>
|
||||||
<string name="repeat_month">Mensual</string>
|
<string name="repeat_month">Mensual</string>
|
||||||
<string name="repeat_year">Anual</string>
|
<string name="repeat_year">Anual</string>
|
||||||
<string name="payment_mode_none">Ninguna</string>
|
|
||||||
|
<string name="payment_mode_none">Ninguno</string>
|
||||||
<string name="payment_mode_all">Todos</string>
|
<string name="payment_mode_all">Todos</string>
|
||||||
<string name="payment_mode_credit_card">Tarjeta de crédito</string>
|
<string name="payment_mode_credit_card">Tarjeta de crédito</string>
|
||||||
<string name="payment_mode_cash">Dinero</string>
|
<string name="payment_mode_cash">Efectivo</string>
|
||||||
<string name="payment_mode_check">Comprobar</string>
|
<string name="payment_mode_check">Cheque</string>
|
||||||
<string name="payment_mode_online">En línea</string>
|
<string name="payment_mode_online">En línea</string>
|
||||||
<string name="payment_mode_transfer">Transferir</string>
|
<string name="payment_mode_transfer">Transferencia</string>
|
||||||
|
|
||||||
<string name="category_none">Ninguna</string>
|
<string name="category_none">Ninguna</string>
|
||||||
<string name="category_all">Todos</string>
|
<string name="category_all">Todas</string>
|
||||||
<string name="category_all_except_reimbursement">Todos excepto reembolso</string>
|
<string name="category_all_except_reimbursement">Todas excepto reembolso</string>
|
||||||
<string name="category_groceries">Comestible</string>
|
<string name="category_groceries">Supermercado</string>
|
||||||
<string name="category_leisure">Bar/Fiesta</string>
|
<string name="category_leisure">Bar/Fiesta</string>
|
||||||
<string name="category_rent">Alquiler</string>
|
<string name="category_rent">Alquiler</string>
|
||||||
<string name="category_bills">Factura</string>
|
<string name="category_bills">Factura</string>
|
||||||
@@ -167,75 +187,81 @@
|
|||||||
<string name="category_accomodation">Alojamiento</string>
|
<string name="category_accomodation">Alojamiento</string>
|
||||||
<string name="category_transport">Transporte</string>
|
<string name="category_transport">Transporte</string>
|
||||||
<string name="category_sport">Deporte</string>
|
<string name="category_sport">Deporte</string>
|
||||||
|
|
||||||
<!-- Project specific -->
|
<!-- Project specific -->
|
||||||
<string name="new_project_action">Qué</string>
|
<string name="new_project_action">Qué</string>
|
||||||
<string name="new_project_where">Donde</string>
|
<string name="new_project_where">Dónde</string>
|
||||||
<string name="where_local">Solo local</string>
|
<string name="where_local">Solo local</string>
|
||||||
<string name="where_cospend">Gastar</string>
|
<string name="todo_join">Unirse a un proyecto existente</string>
|
||||||
<string name="where_ihatemoney">Dinero IHate</string>
|
<string name="todo_create">Crear un proyecto nuevo</string>
|
||||||
<string name="todo_join">Unirse al proyecto existente</string>
|
<string name="import_tooltip">Importar desde un archivo</string>
|
||||||
<string name="todo_create">Crear nuevo proyecto</string>
|
<string name="choose_account_project_dialog_title">Elegir un proyecto</string>
|
||||||
<string name="import_tooltip">Importar desde archivo</string>
|
|
||||||
<string name="choose_account_project_dialog_title">Elegir proyecto</string>
|
|
||||||
<string name="choose_account_project_dialog_impossible">No se encontraron proyectos en esta cuenta.</string>
|
<string name="choose_account_project_dialog_impossible">No se encontraron proyectos en esta cuenta.</string>
|
||||||
<string name="choose_project_management_action">Projekt</string>
|
<string name="choose_project_management_action">Proyecto</string>
|
||||||
<string name="project_added_success">Proyecto añadido correctamente.</string>
|
<string name="project_added_success">Proyecto añadido correctamente.</string>
|
||||||
<string name="no_projects_text">Aún no tienes proyectos.</string>
|
<string name="no_projects_text">Aún no tienes proyectos.</string>
|
||||||
<string name="configure_account_choice">Configurar cuenta Nextcloud</string>
|
<string name="configure_account_choice">Configurar una cuenta de Nextcloud</string>
|
||||||
<string name="add_project_choice">Añadir proyecto manualmente</string>
|
<string name="add_project_choice">Añadir un proyecto manualmente</string>
|
||||||
<string name="no_members_text">No hay miembros en este proyecto.</string>
|
<string name="no_members_text">No hay miembros en este proyecto.</string>
|
||||||
<string name="no_bills_text">No se encontraron facturas.</string>
|
<string name="no_bills_text">No se encontraron facturas.</string>
|
||||||
<string name="member_already_exists">El miembro ya existe.</string>
|
<string name="member_already_exists">El miembro ya existe.</string>
|
||||||
<string name="activity_dialog_title">Proyecto: %1$s</string>
|
<string name="activity_dialog_title">Proyecto: %1$s</string>
|
||||||
<string name="remove_project_confirmation">Proyecto %1$s eliminado.</string>
|
<string name="remove_project_confirmation">Proyecto %1$s eliminado.</string>
|
||||||
<string name="file_saved_success">Archivo guardado: %1$s</string>
|
<string name="file_saved_success">Archivo guardado: %1$s</string>
|
||||||
<string name="import_error_header">Error al importar en la fila %d</string>
|
<string name="import_error_header">Error de importación en la fila %d</string>
|
||||||
<string name="import_error_date">Formato de fecha no válido en la fila %d</string>
|
<string name="import_error_date">Formato de fecha no válido en la fila %d</string>
|
||||||
<string name="import_error_owers">Dueños no válidos en la fila %d</string>
|
<string name="import_error_owers">Participantes no válidos en la fila %d</string>
|
||||||
<string name="add_member_dialog_title">Añadir miembro</string>
|
<string name="add_member_dialog_title">Añadir miembro</string>
|
||||||
<string name="edit_member_dialog_title">Editar miembro</string>
|
<string name="edit_member_dialog_title">Editar miembro</string>
|
||||||
<string name="member_edit_delete">Eliminar</string>
|
<string name="member_edit_delete">Eliminar</string>
|
||||||
<string name="project_edition_no_change">No hay cambios para guardar.</string>
|
<string name="project_edition_no_change">No hay cambios que guardar.</string>
|
||||||
|
|
||||||
<!-- Settlement -->
|
<!-- Settlement -->
|
||||||
<string name="center_none">Ninguno (óptimo)</string>
|
<string name="center_none">Ninguno (óptimo)</string>
|
||||||
<string name="settle_who">Quién paga</string>
|
<string name="settle_who">Quién paga</string>
|
||||||
<string name="settle_to_whom">A quien</string>
|
<string name="settle_to_whom">A quién</string>
|
||||||
<string name="settle_how_much">Cantidad</string>
|
<string name="settle_how_much">Importe</string>
|
||||||
<string name="simple_settle_share">Compartir</string>
|
<string name="simple_settle_share">Compartir</string>
|
||||||
<string name="simple_create_bills">Crear facturas</string>
|
<string name="simple_create_bills">Crear las facturas</string>
|
||||||
<string name="settle_bill_what">Acuerdo</string>
|
<string name="settle_bill_what">Liquidación</string>
|
||||||
|
|
||||||
<!-- Currencies -->
|
<!-- Currencies -->
|
||||||
<string name="currency_dialog_title">Elija la moneda (%s)</string>
|
<string name="currency_dialog_title">Elegir moneda (%s)</string>
|
||||||
<string name="setting_none">Ninguna</string>
|
<string name="setting_none">Ninguna</string>
|
||||||
<string name="setting_all">Todos</string>
|
<string name="setting_all">Todas</string>
|
||||||
<string name="currency_saved_success">Ajustes de moneda guardados.</string>
|
<string name="currency_saved_success">Ajustes de moneda guardados.</string>
|
||||||
<string name="main_currency">Moneda principal</string>
|
<string name="main_currency">Moneda principal</string>
|
||||||
|
|
||||||
<!-- Statistics -->
|
<!-- Statistics -->
|
||||||
<string name="label_bills_suggested">Categorías sugeridas</string>
|
<string name="label_bills_suggested">Categorías sugeridas</string>
|
||||||
<string name="label_bills_skip">Saltar</string>
|
<string name="label_bills_skip">Omitir</string>
|
||||||
<string name="stats_date_min">De</string>
|
<string name="stats_date_min">Desde</string>
|
||||||
<string name="stats_date_max">A</string>
|
<string name="stats_date_max">Hasta</string>
|
||||||
<string name="stats_who">Miembro</string>
|
<string name="stats_who">Miembro</string>
|
||||||
<string name="stats_paid">Pagado</string>
|
<string name="stats_paid">Pagado</string>
|
||||||
<string name="stats_spent">Escrito</string>
|
<string name="stats_spent">Gastado</string>
|
||||||
<string name="stats_balance">Saldo</string>
|
<string name="stats_balance">Saldo</string>
|
||||||
<string name="total">Total: %1$s</string>
|
<string name="total">Total: %1$s</string>
|
||||||
|
|
||||||
<!-- Errors Extra -->
|
<!-- Errors Extra -->
|
||||||
<string name="error_project_connect_check">Conexión fallida: %1$s</string>
|
<string name="error_project_connect_check">Error de conexión: %1$s</string>
|
||||||
<string name="error_create_remote_project_helper">Creación fallida: %1$s</string>
|
<string name="error_create_remote_project_helper">Error al crear: %1$s</string>
|
||||||
<string name="error_edit_remote_project_helper">Error al actualizar proyecto remoto: %1$s</string>
|
<string name="error_edit_remote_project_helper">Error al actualizar el proyecto remoto: %1$s</string>
|
||||||
<string name="remote_project_operation_no_network">Red no disponible para operaciones remotas.</string>
|
<string name="remote_project_operation_no_network">Red no disponible para esta operación remota.</string>
|
||||||
<string name="error_scanning_bill_qr_code">Error al analizar el código QR.</string>
|
<string name="error_scanning_bill_qr_code">No se ha podido leer el código QR.</string>
|
||||||
<string name="error_token_mismatch">El token de autenticación no coincide. Por favor, inicia sesión de nuevo.</string>
|
<string name="error_token_mismatch">El token de autenticación no coincide. Vuelve a iniciar sesión.</string>
|
||||||
<string name="insufficient_access_level">No tienes permiso para realizar esta acción.</string>
|
<string name="insufficient_access_level">No tienes permiso para realizar esta acción.</string>
|
||||||
<string name="delete_label_confirmation_title">Eliminar Etiqueta</string>
|
<string name="delete_label_confirmation_title">Eliminar etiqueta</string>
|
||||||
<string name="delete_label_confirmation_message">¿Está seguro que desea eliminar esta etiqueta?</string>
|
<string name="delete_label_confirmation_message">¿Seguro que quieres eliminar esta etiqueta?</string>
|
||||||
|
|
||||||
<!-- About -->
|
<!-- About -->
|
||||||
<string name="about_version">Versión %1$s</string>
|
<string name="about_version">Versión %1$s</string>
|
||||||
<string name="about_maintainer_title">Mantenedor</string>
|
<string name="about_maintainer_title">Mantenedor</string>
|
||||||
<string name="about_license_title">Licencia</string>
|
<string name="about_license_title">Licencia</string>
|
||||||
<string name="about_source_title">Código fuente</string>
|
<string name="about_source_title">Código fuente</string>
|
||||||
|
|
||||||
<!-- New constants for backward compatibility or shared use -->
|
<!-- New constants for backward compatibility or shared use -->
|
||||||
<string name="share_intent_title">Proyecto %1$s</string>
|
<string name="share_intent_title">Proyecto %1$s</string>
|
||||||
<string name="share_chooser_title">Compartir %1$s</string>
|
<string name="share_chooser_title">Compartir %1$s</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,34 +1,40 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<string name="app_name">Vache dépensée</string>
|
|
||||||
|
|
||||||
<!-- Actions -->
|
<!-- Actions -->
|
||||||
<string name="action_new_bill">Nouvelle facture</string>
|
<string name="action_new_bill">Nouvelle facture</string>
|
||||||
<string name="action_add_project">Ajouter un projet</string>
|
<string name="action_add_project">Ajouter un projet</string>
|
||||||
<string name="action_save">Enregistrer</string>
|
<string name="action_save">Enregistrer</string>
|
||||||
<string name="action_edit">Editer</string>
|
<string name="action_edit">Modifier</string>
|
||||||
<string name="action_share">Partager</string>
|
<string name="action_share">Partager</string>
|
||||||
<string name="action_search">Chercher</string>
|
<string name="action_search">Rechercher</string>
|
||||||
<string name="action_delete">Supprimez</string>
|
<string name="action_open_menu">Ouvrir le menu</string>
|
||||||
<string name="action_archive">Archive</string>
|
<string name="action_close_search">Fermer la recherche</string>
|
||||||
|
<string name="action_clear_search">Effacer la recherche</string>
|
||||||
|
<string name="action_delete">Supprimer</string>
|
||||||
|
<string name="simple_back">Retour</string>
|
||||||
|
<string name="action_archive">Archiver</string>
|
||||||
<string name="action_unarchive">Désarchiver</string>
|
<string name="action_unarchive">Désarchiver</string>
|
||||||
<string name="action_export">Exportation</string>
|
<string name="action_export">Exporter</string>
|
||||||
<string name="action_stats">Stats</string>
|
<string name="action_stats">Stats</string>
|
||||||
<string name="action_settle">Régler</string>
|
<string name="action_settle">Régler</string>
|
||||||
<string name="action_scan_qrcode">Scan QR Code</string>
|
<string name="action_scan_qrcode">Scanner un QR code</string>
|
||||||
<string name="action_settings">Réglages</string>
|
<string name="action_settings">Réglages</string>
|
||||||
<string name="action_label_bills">Catégories manquantes</string>
|
<string name="action_label_bills">Catégoriser les factures</string>
|
||||||
<string name="action_logout">Déconnexion</string>
|
<string name="action_logout">Déconnecter</string>
|
||||||
<string name="action_connect">Connecter</string>
|
<string name="action_connect">Connecter</string>
|
||||||
<string name="action_discard">Abandonner</string>
|
<string name="action_discard">Abandonner</string>
|
||||||
<string name="action_members">Membres</string>
|
<string name="action_members">Membres</string>
|
||||||
<string name="action_labels">Étiquettes</string>
|
<string name="action_labels">Étiquettes</string>
|
||||||
<string name="action_currencies">Devises</string>
|
<string name="action_currencies">Devises</string>
|
||||||
|
|
||||||
<!-- Titles -->
|
<!-- Titles -->
|
||||||
<string name="title_stats">Statistiques</string>
|
<string name="title_stats">Statistiques</string>
|
||||||
<string name="title_edit_project">Modifier le projet</string>
|
<string name="title_edit_project">Modifier le projet</string>
|
||||||
<string name="title_label_bills">Étiquettes de factures</string>
|
<string name="title_label_bills">Catégoriser les factures</string>
|
||||||
<string name="title_labels">Gérer les étiquettes</string>
|
<string name="title_labels">Gérer les étiquettes</string>
|
||||||
<string name="title_about">À propos de</string>
|
<string name="title_about">À propos</string>
|
||||||
<string name="title_settle">Régler le projet</string>
|
<string name="title_settle">Régler le projet</string>
|
||||||
<string name="title_share">Partager le projet</string>
|
<string name="title_share">Partager le projet</string>
|
||||||
<string name="title_add_project">Ajouter un projet</string>
|
<string name="title_add_project">Ajouter un projet</string>
|
||||||
@@ -36,14 +42,15 @@
|
|||||||
<string name="title_add_payment_mode">Ajouter un mode de paiement</string>
|
<string name="title_add_payment_mode">Ajouter un mode de paiement</string>
|
||||||
<string name="title_account">Compte Nextcloud</string>
|
<string name="title_account">Compte Nextcloud</string>
|
||||||
<string name="title_share_web">Lien web</string>
|
<string name="title_share_web">Lien web</string>
|
||||||
<string name="title_share_qr">Cowspent link</string>
|
<string name="title_share_qr">Lien Cowspent</string>
|
||||||
<string name="title_confirm">Êtes-vous sûr(e) ?</string>
|
<string name="title_confirm">Êtes-vous sûr(e) ?</string>
|
||||||
|
|
||||||
<!-- Labels and Fields -->
|
<!-- Labels and Fields -->
|
||||||
<string name="label_all_bills">Toutes les factures</string>
|
<string name="label_all_bills">Toutes les factures</string>
|
||||||
<string name="label_categories">Catégories</string>
|
<string name="label_categories">Catégories</string>
|
||||||
<string name="label_payment_modes">Modes de paiement</string>
|
<string name="label_payment_modes">Modes de paiement</string>
|
||||||
<string name="label_name">Nom</string>
|
<string name="label_name">Nom</string>
|
||||||
<string name="label_icon">Icon / Emoji</string>
|
<string name="label_icon">Icône / Emoji</string>
|
||||||
<string name="label_color">Couleur</string>
|
<string name="label_color">Couleur</string>
|
||||||
<string name="label_weight">Poids</string>
|
<string name="label_weight">Poids</string>
|
||||||
<string name="label_activated">Activé</string>
|
<string name="label_activated">Activé</string>
|
||||||
@@ -51,48 +58,50 @@
|
|||||||
<string name="label_email">Courriel</string>
|
<string name="label_email">Courriel</string>
|
||||||
<string name="label_url">Adresse du serveur</string>
|
<string name="label_url">Adresse du serveur</string>
|
||||||
<string name="label_username">Nom d\'utilisateur</string>
|
<string name="label_username">Nom d\'utilisateur</string>
|
||||||
<string name="label_comment">Commenter</string>
|
<string name="label_comment">Commentaire</string>
|
||||||
<string name="label_what">Quoi?</string>
|
<string name="label_what">Quoi ?</string>
|
||||||
<string name="label_payer">Qui a payé ?</string>
|
<string name="label_payer">Qui a payé ?</string>
|
||||||
<string name="label_owers">Pour qui?</string>
|
<string name="label_owers">Pour qui ?</string>
|
||||||
<string name="label_repeat">Répéter toutes les</string>
|
<string name="label_repeat">Répétition</string>
|
||||||
<string name="label_mode">Mode</string>
|
<string name="label_mode">Mode</string>
|
||||||
<string name="label_category">Catégorie</string>
|
<string name="label_category">Catégorie</string>
|
||||||
<string name="label_project_id">ID/nom du projet</string>
|
<string name="label_project_id">ID/nom du projet</string>
|
||||||
<string name="label_project_title">Titre du projet</string>
|
<string name="label_project_title">Titre du projet</string>
|
||||||
<string name="label_use_sso">Utiliser le compte Nextcloud App</string>
|
<string name="label_use_sso">Utiliser le compte de l\'application Nextcloud</string>
|
||||||
|
|
||||||
<!-- Dialogs and Messages -->
|
<!-- Dialogs and Messages -->
|
||||||
<string name="dialog_unsaved_changes_title">Modifications non enregistrées</string>
|
<string name="dialog_unsaved_changes_title">Modifications non enregistrées</string>
|
||||||
<string name="dialog_unsaved_changes_msg">Enregistrer les modifications avant de partir?</string>
|
<string name="dialog_unsaved_changes_msg">Enregistrer les modifications avant de quitter ?</string>
|
||||||
<string name="dialog_confirm_remove_project_msg">Le projet distant ne sera pas supprimé.</string>
|
<string name="dialog_confirm_remove_project_msg">Le projet distant ne sera pas supprimé.</string>
|
||||||
<string name="dialog_sync_error_title">Erreur de synchronisation</string>
|
<string name="dialog_sync_error_title">Erreur de synchronisation</string>
|
||||||
<string name="dialog_sync_error_msg">Échec de la synchronisation pour %1$s.\n\n%2$s</string>
|
<string name="dialog_sync_error_msg">Échec de la synchronisation pour %1$s.\n\n%2$s</string>
|
||||||
<string name="dialog_balanced_msg">Les dépenses sont déjà équilibrées.</string>
|
<string name="dialog_balanced_msg">Les dépenses sont déjà équilibrées.</string>
|
||||||
<string name="msg_project_added">Projet %1$s ajouté</string>
|
<string name="msg_project_added">Projet %1$s ajouté</string>
|
||||||
<string name="msg_bill_labeled_done">Toutes les factures étiquetées</string>
|
<string name="msg_bill_labeled_done">Toutes les factures sont catégorisées</string>
|
||||||
<string name="msg_no_suggestions">Aucune suggestion</string>
|
<string name="msg_no_suggestions">Aucune suggestion</string>
|
||||||
<string name="msg_auth_warning">Nécessite Cospend v0.3.4+.</string>
|
<string name="msg_auth_warning">Nécessite Cospend v0.3.4+.</string>
|
||||||
<string name="msg_link_copied">Lien copié dans le presse-papiers</string>
|
<string name="msg_link_copied">Lien copié dans le presse-papiers</string>
|
||||||
<string name="msg_share_qr">Scannez le code QR ou partagez le lien pour vous inscrire.</string>
|
<string name="msg_share_qr">Scannez le QR code ou partagez le lien pour rejoindre le projet.</string>
|
||||||
<string name="msg_share_web">Lien pour accéder au navigateur Web.</string>
|
<string name="msg_share_web">Lien d\'accès depuis un navigateur web.</string>
|
||||||
<string name="msg_share_qr_warn">Partagez ce lien avec un utilisateur Cowspent</string>
|
<string name="msg_share_qr_warn">Partagez ce lien avec un utilisateur de Cowspent.</string>
|
||||||
<string name="msg_settle_intro">Réglage pour %1$s:</string>
|
<string name="msg_settle_intro">Règlement pour %1$s :</string>
|
||||||
<string name="msg_settle_sentence">%1$s doit %3$.2f à %2$s</string>
|
<string name="msg_settle_sentence">%1$s doit %3$.2f à %2$s</string>
|
||||||
<string name="msg_stats_intro">Statistiques pour %1$s:</string>
|
<string name="msg_stats_intro">Statistiques pour %1$s :</string>
|
||||||
<string name="msg_stats_header">Membre (payé | Dépensé | Solde)</string>
|
<string name="msg_stats_header">Membre (Payé | Dépensé | Solde)</string>
|
||||||
<string name="msg_logged_in_as">Connecté en tant que %1$s</string>
|
<string name="msg_logged_in_as">Connecté en tant que %1$s</string>
|
||||||
|
|
||||||
<!-- Errors -->
|
<!-- Errors -->
|
||||||
<string name="error_generic">Erreur</string>
|
<string name="error_generic">Erreur</string>
|
||||||
<string name="error_loading">En cours de chargement</string>
|
<string name="error_loading">Chargement</string>
|
||||||
<string name="error_no_projects">Aucun projet trouvé</string>
|
<string name="error_no_projects">Aucun projet trouvé</string>
|
||||||
<string name="error_no_members">Aucun membre trouvé</string>
|
<string name="error_no_members">Aucun membre trouvé</string>
|
||||||
<string name="error_no_bills">Aucune facture trouvée</string>
|
<string name="error_no_bills">Aucune facture trouvée</string>
|
||||||
<string name="error_no_member">Au moins un membre est requis</string>
|
<string name="error_no_member">Au moins un membre est requis</string>
|
||||||
<string name="error_maintenance_mode">Le serveur est en mode maintenance</string>
|
<string name="error_maintenance_mode">Le serveur est en mode maintenance</string>
|
||||||
<string name="error_400">400 Mauvaise requête</string>
|
<string name="error_400">400 Requête incorrecte</string>
|
||||||
<string name="error_401">401 Non autorisé</string>
|
<string name="error_401">401 Non autorisé</string>
|
||||||
<string name="error_403">403 Interdit</string>
|
<string name="error_403">403 Interdit</string>
|
||||||
<string name="error_404">404 introuvable</string>
|
<string name="error_404">404 Introuvable</string>
|
||||||
<string name="error_sync">Échec de la synchronisation : %1$s</string>
|
<string name="error_sync">Échec de la synchronisation : %1$s</string>
|
||||||
<string name="error_invalid_login">Identifiant invalide : %1$s</string>
|
<string name="error_invalid_login">Identifiant invalide : %1$s</string>
|
||||||
<string name="error_auth">Mauvais nom d\'utilisateur ou mot de passe</string>
|
<string name="error_auth">Mauvais nom d\'utilisateur ou mot de passe</string>
|
||||||
@@ -100,64 +109,78 @@
|
|||||||
<string name="error_req_failed">La requête a échoué</string>
|
<string name="error_req_failed">La requête a échoué</string>
|
||||||
<string name="error_invalid_email">Adresse e-mail invalide</string>
|
<string name="error_invalid_email">Adresse e-mail invalide</string>
|
||||||
<string name="error_invalid_project_id">ID de projet invalide</string>
|
<string name="error_invalid_project_id">ID de projet invalide</string>
|
||||||
<string name="error_invalid_project_name">Titre du projet non valide</string>
|
<string name="error_invalid_project_name">Titre de projet invalide</string>
|
||||||
<string name="error_invalid_bill_name">Nom de facture invalide</string>
|
<string name="error_invalid_bill_name">Nom de facture invalide</string>
|
||||||
<string name="error_invalid_bill_date">Date de facture invalide</string>
|
<string name="error_invalid_bill_date">Date de facture invalide</string>
|
||||||
<string name="error_invalid_bill_payer">Payeur requis</string>
|
<string name="error_invalid_bill_payer">Payeur requis</string>
|
||||||
<string name="error_invalid_bill_owers">Propriétaires requis</string>
|
<string name="error_invalid_bill_owers">Participants requis</string>
|
||||||
<string name="error_no_network">Aucune connexion réseau</string>
|
<string name="error_no_network">Aucune connexion réseau</string>
|
||||||
<string name="error_server">Erreur serveur</string>
|
<string name="error_server">Erreur serveur</string>
|
||||||
<string name="error_io">La connexion au serveur a échoué</string>
|
<string name="error_io">La connexion au serveur a échoué</string>
|
||||||
<string name="error_share_impossible">Impossible de partager ce projet</string>
|
<string name="error_share_impossible">Impossible de partager ce projet</string>
|
||||||
|
|
||||||
<!-- Drawer / Common UI -->
|
<!-- Drawer / Common UI -->
|
||||||
<string name="drawer_no_account">Se connecter au compte Nextcloud</string>
|
<string name="drawer_no_account">Se connecter au compte Nextcloud</string>
|
||||||
<string name="drawer_last_sync">Dernière synchronisation : %1$02d:%2$02d</string>
|
<string name="drawer_last_sync">Dernière synchronisation : %1$02d:%2$02d</string>
|
||||||
<string name="simple_cancel">Abandonner</string>
|
<string name="simple_cancel">Annuler</string>
|
||||||
<string name="simple_ok" tools:ignore="ButtonCase,Typos">Ok</string>
|
<string name="simple_ok" tools:ignore="ButtonCase,Typos">Ok</string>
|
||||||
<string name="simple_yes">Oui</string>
|
<string name="simple_yes">Oui</string>
|
||||||
<string name="simple_no">Non</string>
|
<string name="simple_no">Non</string>
|
||||||
<string name="simple_close">Fermer</string>
|
<string name="simple_close">Fermer</string>
|
||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings_appearance">Apparence</string>
|
<string name="settings_appearance">Apparence</string>
|
||||||
<string name="settings_network">Réseau</string>
|
<string name="settings_network">Réseau</string>
|
||||||
<string name="settings_other">Autres</string>
|
<string name="settings_other">Autres</string>
|
||||||
<string name="settings_night_mode">Thème</string>
|
<string name="settings_night_mode">Thème</string>
|
||||||
<string name="settings_offline_mode">Mode hors-ligne</string>
|
<string name="settings_offline_mode">Mode hors ligne</string>
|
||||||
<string name="settings_offline_mode_summary">Synchroniser uniquement manuellement.</string>
|
<string name="settings_offline_mode_summary">Synchroniser uniquement manuellement.</string>
|
||||||
<string name="settings_color_custom">Couleur personnalisée</string>
|
<string name="settings_color_custom">Couleur personnalisée</string>
|
||||||
<string name="settings_color_mode">Sélection de la couleur</string>
|
<string name="settings_color_mode">Sélection de la couleur</string>
|
||||||
<string name="settings_show_archived">Afficher les projets archivés</string>
|
<string name="settings_show_archived">Afficher les projets archivés</string>
|
||||||
<string name="settings_beta_features">Fonctionnalités bêta</string>
|
<string name="settings_beta_features">Fonctionnalités bêta</string>
|
||||||
<string name="settings_beta_features_summary">Activer les fonctionnalités expérimentales. Utiliser à vos propres risques.</string>
|
<string name="settings_beta_features_summary">Activer les fonctionnalités expérimentales. À utiliser à vos risques et périls.</string>
|
||||||
|
<string name="settings_fill_new_bill_from_last">Pré-remplir depuis la dernière facture</string>
|
||||||
|
<string name="settings_fill_new_bill_from_last_summary">Reprendre le payeur, la catégorie, le mode et les participants de la dernière facture créée dans le projet.</string>
|
||||||
|
<string name="settings_auto_sync_on_open">Intervalle de synchronisation</string>
|
||||||
|
<string name="settings_auto_sync_on_open_summary">Fréquence de rafraîchissement du compte et de tous les projets à l\'ouverture de l\'application.</string>
|
||||||
|
<string name="pref_value_sync_1m">1 minute</string>
|
||||||
|
<string name="pref_value_sync_10m">10 minutes</string>
|
||||||
|
<string name="pref_value_sync_1h">1 heure</string>
|
||||||
|
<string name="pref_value_sync_1d">1 jour</string>
|
||||||
<string name="settings_url_warn_http">AVERTISSEMENT : \"http\" n\'est pas sûr. Utilisez \"https\".</string>
|
<string name="settings_url_warn_http">AVERTISSEMENT : \"http\" n\'est pas sûr. Utilisez \"https\".</string>
|
||||||
<string name="settings_colorpicker_title">Choisir une couleur</string>
|
<string name="settings_colorpicker_title">Choisir une couleur</string>
|
||||||
|
|
||||||
<string name="pref_value_color_system">Système</string>
|
<string name="pref_value_color_system">Système</string>
|
||||||
<string name="pref_value_color_server">Nuage suivant</string>
|
|
||||||
<string name="pref_value_color_manual">Manuelle</string>
|
<string name="pref_value_color_manual">Manuelle</string>
|
||||||
<string name="pref_value_theme_light">Lumière</string>
|
<string name="pref_value_theme_light">Clair</string>
|
||||||
<string name="pref_value_theme_dark">Sombre</string>
|
<string name="pref_value_theme_dark">Sombre</string>
|
||||||
<string name="pref_value_theme_system">Suivre le système</string>
|
<string name="pref_value_theme_system">Suivre le système</string>
|
||||||
|
|
||||||
<!-- Constants (Do not translate) -->
|
<!-- Constants (Do not translate) -->
|
||||||
|
|
||||||
<!-- Enums and Lists -->
|
<!-- Enums and Lists -->
|
||||||
<string name="repeat_no">Pas de répétition</string>
|
<string name="repeat_no">Pas de répétition</string>
|
||||||
<string name="repeat_day">Tous les jours</string>
|
<string name="repeat_day">Quotidienne</string>
|
||||||
<string name="repeat_week">Hebdomadaire</string>
|
<string name="repeat_week">Hebdomadaire</string>
|
||||||
<string name="repeat_fortnight">Tous les quinze jours</string>
|
<string name="repeat_fortnight">Toutes les deux semaines</string>
|
||||||
<string name="repeat_month">Mensuel</string>
|
<string name="repeat_month">Mensuelle</string>
|
||||||
<string name="repeat_year">Annuel</string>
|
<string name="repeat_year">Annuelle</string>
|
||||||
|
|
||||||
<string name="payment_mode_none">Aucun</string>
|
<string name="payment_mode_none">Aucun</string>
|
||||||
<string name="payment_mode_all">Tous</string>
|
<string name="payment_mode_all">Tous</string>
|
||||||
<string name="payment_mode_credit_card">Carte de crédit</string>
|
<string name="payment_mode_credit_card">Carte bancaire</string>
|
||||||
<string name="payment_mode_cash">Espèces</string>
|
<string name="payment_mode_cash">Espèces</string>
|
||||||
<string name="payment_mode_check">Contrôler</string>
|
<string name="payment_mode_check">Chèque</string>
|
||||||
<string name="payment_mode_online">En ligne</string>
|
<string name="payment_mode_online">En ligne</string>
|
||||||
<string name="payment_mode_transfer">Transférer</string>
|
<string name="payment_mode_transfer">Virement</string>
|
||||||
<string name="category_none">Aucun</string>
|
|
||||||
<string name="category_all">Tous</string>
|
<string name="category_none">Aucune</string>
|
||||||
<string name="category_all_except_reimbursement">Tout sauf remboursement</string>
|
<string name="category_all">Toutes</string>
|
||||||
<string name="category_groceries">Épicerie</string>
|
<string name="category_all_except_reimbursement">Toutes sauf remboursement</string>
|
||||||
<string name="category_leisure">Barre/Fête</string>
|
<string name="category_groceries">Courses</string>
|
||||||
<string name="category_rent">Louer</string>
|
<string name="category_leisure">Bar/Fête</string>
|
||||||
|
<string name="category_rent">Loyer</string>
|
||||||
<string name="category_bills">Facture</string>
|
<string name="category_bills">Facture</string>
|
||||||
<string name="category_excursion">Excursion/Culture</string>
|
<string name="category_excursion">Excursion/Culture</string>
|
||||||
<string name="category_health">Santé</string>
|
<string name="category_health">Santé</string>
|
||||||
@@ -167,12 +190,11 @@
|
|||||||
<string name="category_accomodation">Hébergement</string>
|
<string name="category_accomodation">Hébergement</string>
|
||||||
<string name="category_transport">Transport</string>
|
<string name="category_transport">Transport</string>
|
||||||
<string name="category_sport">Sport</string>
|
<string name="category_sport">Sport</string>
|
||||||
|
|
||||||
<!-- Project specific -->
|
<!-- Project specific -->
|
||||||
<string name="new_project_action">Qu\'est-ce que</string>
|
<string name="new_project_action">Quoi</string>
|
||||||
<string name="new_project_where">Où se trouve</string>
|
<string name="new_project_where">Où</string>
|
||||||
<string name="where_local">Seulement en local</string>
|
<string name="where_local">Local uniquement</string>
|
||||||
<string name="where_cospend">Codépense</string>
|
|
||||||
<string name="where_ihatemoney">format@@0 IHateMoney</string>
|
|
||||||
<string name="todo_join">Rejoindre un projet existant</string>
|
<string name="todo_join">Rejoindre un projet existant</string>
|
||||||
<string name="todo_create">Créer un nouveau projet</string>
|
<string name="todo_create">Créer un nouveau projet</string>
|
||||||
<string name="import_tooltip">Importer depuis un fichier</string>
|
<string name="import_tooltip">Importer depuis un fichier</string>
|
||||||
@@ -180,62 +202,69 @@
|
|||||||
<string name="choose_account_project_dialog_impossible">Aucun projet trouvé sur ce compte.</string>
|
<string name="choose_account_project_dialog_impossible">Aucun projet trouvé sur ce compte.</string>
|
||||||
<string name="choose_project_management_action">Projet</string>
|
<string name="choose_project_management_action">Projet</string>
|
||||||
<string name="project_added_success">Le projet a été ajouté avec succès.</string>
|
<string name="project_added_success">Le projet a été ajouté avec succès.</string>
|
||||||
<string name="no_projects_text">Vous n\'avez pas encore de projets.</string>
|
<string name="no_projects_text">Vous n\'avez pas encore de projet.</string>
|
||||||
<string name="configure_account_choice">Configurer le compte Nextcloud</string>
|
<string name="configure_account_choice">Configurer le compte Nextcloud</string>
|
||||||
<string name="add_project_choice">Ajouter un projet manuellement</string>
|
<string name="add_project_choice">Ajouter un projet manuellement</string>
|
||||||
<string name="no_members_text">Aucun membre dans ce projet.</string>
|
<string name="no_members_text">Aucun membre dans ce projet.</string>
|
||||||
<string name="no_bills_text">Aucune facture trouvée.</string>
|
<string name="no_bills_text">Aucune facture trouvée.</string>
|
||||||
<string name="member_already_exists">Ce membre existe déjà.</string>
|
<string name="member_already_exists">Ce membre existe déjà.</string>
|
||||||
<string name="activity_dialog_title">Projet: %1$s</string>
|
<string name="activity_dialog_title">Projet : %1$s</string>
|
||||||
<string name="remove_project_confirmation">Projet %1$s supprimé.</string>
|
<string name="remove_project_confirmation">Projet %1$s supprimé.</string>
|
||||||
<string name="file_saved_success">Fichier enregistré : %1$s</string>
|
<string name="file_saved_success">Fichier enregistré : %1$s</string>
|
||||||
<string name="import_error_header">Échec de l\'importation à la ligne %d</string>
|
<string name="import_error_header">Échec de l\'importation à la ligne %d</string>
|
||||||
<string name="import_error_date">Format de date invalide à la ligne %d</string>
|
<string name="import_error_date">Format de date invalide à la ligne %d</string>
|
||||||
<string name="import_error_owers">Propriétés non valides à la ligne %d</string>
|
<string name="import_error_owers">Participants invalides à la ligne %d</string>
|
||||||
<string name="add_member_dialog_title">Ajouter un membre</string>
|
<string name="add_member_dialog_title">Ajouter un membre</string>
|
||||||
<string name="edit_member_dialog_title">Modifier le membre</string>
|
<string name="edit_member_dialog_title">Modifier le membre</string>
|
||||||
<string name="member_edit_delete">Supprimez</string>
|
<string name="member_edit_delete">Supprimer</string>
|
||||||
<string name="project_edition_no_change">Aucune modification à enregistrer.</string>
|
<string name="project_edition_no_change">Aucune modification à enregistrer.</string>
|
||||||
|
|
||||||
<!-- Settlement -->
|
<!-- Settlement -->
|
||||||
<string name="center_none">Aucun (optimiste)</string>
|
<string name="center_none">Aucun (optimal)</string>
|
||||||
<string name="settle_who">Qui paie</string>
|
<string name="settle_who">Qui paie</string>
|
||||||
<string name="settle_to_whom">À qui</string>
|
<string name="settle_to_whom">À qui</string>
|
||||||
<string name="settle_how_much">Montant</string>
|
<string name="settle_how_much">Montant</string>
|
||||||
<string name="simple_settle_share">Partager</string>
|
<string name="simple_settle_share">Partager</string>
|
||||||
<string name="simple_create_bills">Créer des factures</string>
|
<string name="simple_create_bills">Créer les factures</string>
|
||||||
<string name="settle_bill_what">Réglement</string>
|
<string name="settle_bill_what">Règlement</string>
|
||||||
|
|
||||||
<!-- Currencies -->
|
<!-- Currencies -->
|
||||||
<string name="currency_dialog_title">Choisir la devise (%s)</string>
|
<string name="currency_dialog_title">Choisir la devise (%s)</string>
|
||||||
<string name="setting_none">Aucun</string>
|
<string name="setting_none">Aucune</string>
|
||||||
<string name="setting_all">Tous</string>
|
<string name="setting_all">Toutes</string>
|
||||||
<string name="currency_saved_success">Paramètres des devises enregistrés.</string>
|
<string name="currency_saved_success">Paramètres des devises enregistrés.</string>
|
||||||
<string name="main_currency">Devise principale</string>
|
<string name="main_currency">Devise principale</string>
|
||||||
|
|
||||||
<!-- Statistics -->
|
<!-- Statistics -->
|
||||||
<string name="label_bills_suggested">Catégories suggérées</string>
|
<string name="label_bills_suggested">Catégories suggérées</string>
|
||||||
<string name="label_bills_skip">Ignorer</string>
|
<string name="label_bills_skip">Ignorer</string>
|
||||||
<string name="stats_date_min">A partir de</string>
|
<string name="stats_date_min">Du</string>
|
||||||
<string name="stats_date_max">À</string>
|
<string name="stats_date_max">Au</string>
|
||||||
<string name="stats_who">Membre</string>
|
<string name="stats_who">Membre</string>
|
||||||
<string name="stats_paid">Payé</string>
|
<string name="stats_paid">Payé</string>
|
||||||
<string name="stats_spent">Dépensé</string>
|
<string name="stats_spent">Dépensé</string>
|
||||||
<string name="stats_balance">Solde</string>
|
<string name="stats_balance">Solde</string>
|
||||||
<string name="total">Total : %1$s</string>
|
<string name="total">Total : %1$s</string>
|
||||||
|
|
||||||
<!-- Errors Extra -->
|
<!-- Errors Extra -->
|
||||||
<string name="error_project_connect_check">Échec de la connexion : %1$s</string>
|
<string name="error_project_connect_check">Échec de la connexion : %1$s</string>
|
||||||
<string name="error_create_remote_project_helper">Échec de la création : %1$s</string>
|
<string name="error_create_remote_project_helper">Échec de la création : %1$s</string>
|
||||||
<string name="error_edit_remote_project_helper">Erreur lors de la mise à jour du projet distant : %1$s</string>
|
<string name="error_edit_remote_project_helper">Erreur lors de la mise à jour du projet distant : %1$s</string>
|
||||||
<string name="remote_project_operation_no_network">Réseau indisponible pour le fonctionnement à distance.</string>
|
<string name="remote_project_operation_no_network">Réseau indisponible pour cette opération distante.</string>
|
||||||
<string name="error_scanning_bill_qr_code">Impossible d\'analyser le code QR.</string>
|
<string name="error_scanning_bill_qr_code">Impossible de lire le QR code.</string>
|
||||||
<string name="error_token_mismatch">Incompatibilité du jeton d\'authentification. Veuillez vous reconnecter.</string>
|
<string name="error_token_mismatch">Jeton d\'authentification invalide. Veuillez vous reconnecter.</string>
|
||||||
<string name="insufficient_access_level">Vous n\'avez pas la permission d\'effectuer cette action.</string>
|
<string name="insufficient_access_level">Vous n\'avez pas la permission d\'effectuer cette action.</string>
|
||||||
<string name="delete_label_confirmation_title">Supprimer l\'étiquette</string>
|
<string name="delete_label_confirmation_title">Supprimer l\'étiquette</string>
|
||||||
<string name="delete_label_confirmation_message">Êtes-vous sûr de vouloir supprimer ce label ?</string>
|
<string name="delete_label_confirmation_message">Voulez-vous vraiment supprimer cette étiquette ?</string>
|
||||||
|
|
||||||
<!-- About -->
|
<!-- About -->
|
||||||
<string name="about_version">Version %1$s</string>
|
<string name="about_version">Version %1$s</string>
|
||||||
<string name="about_maintainer_title">Mainteneur</string>
|
<string name="about_maintainer_title">Mainteneur</string>
|
||||||
<string name="about_license_title">Licence</string>
|
<string name="about_license_title">Licence</string>
|
||||||
<string name="about_source_title">Code source</string>
|
<string name="about_source_title">Code source</string>
|
||||||
|
|
||||||
<!-- New constants for backward compatibility or shared use -->
|
<!-- New constants for backward compatibility or shared use -->
|
||||||
<string name="share_intent_title">Projet %1$s</string>
|
<string name="share_intent_title">Projet %1$s</string>
|
||||||
<string name="share_chooser_title">Partager %1$s</string>
|
<string name="share_chooser_title">Partager %1$s</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<string name="app_name">Cowspent</string>
|
<string name="app_name" translatable="false">Cowspent</string>
|
||||||
|
|
||||||
<!-- Actions -->
|
<!-- Actions -->
|
||||||
<string name="action_new_bill">New bill</string>
|
<string name="action_new_bill">New bill</string>
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
<string name="action_close_search">Close search</string>
|
<string name="action_close_search">Close search</string>
|
||||||
<string name="action_clear_search">Clear search</string>
|
<string name="action_clear_search">Clear search</string>
|
||||||
<string name="action_delete">Delete</string>
|
<string name="action_delete">Delete</string>
|
||||||
|
<string name="simple_back">Back</string>
|
||||||
<string name="action_archive">Archive</string>
|
<string name="action_archive">Archive</string>
|
||||||
<string name="action_unarchive">Unarchive</string>
|
<string name="action_unarchive">Unarchive</string>
|
||||||
<string name="action_export">Export</string>
|
<string name="action_export">Export</string>
|
||||||
@@ -152,7 +153,7 @@
|
|||||||
<string name="settings_colorpicker_title">Choose Color</string>
|
<string name="settings_colorpicker_title">Choose Color</string>
|
||||||
|
|
||||||
<string name="pref_value_color_system">System</string>
|
<string name="pref_value_color_system">System</string>
|
||||||
<string name="pref_value_color_server">Nextcloud</string>
|
<string name="pref_value_color_server" translatable="false">Nextcloud</string>
|
||||||
<string name="pref_value_color_manual">Manual</string>
|
<string name="pref_value_color_manual">Manual</string>
|
||||||
<string name="pref_value_theme_light">Light</string>
|
<string name="pref_value_theme_light">Light</string>
|
||||||
<string name="pref_value_theme_dark">Dark</string>
|
<string name="pref_value_theme_dark">Dark</string>
|
||||||
@@ -212,8 +213,8 @@
|
|||||||
<string name="new_project_action">What</string>
|
<string name="new_project_action">What</string>
|
||||||
<string name="new_project_where">Where</string>
|
<string name="new_project_where">Where</string>
|
||||||
<string name="where_local">Local only</string>
|
<string name="where_local">Local only</string>
|
||||||
<string name="where_cospend">Cospend</string>
|
<string name="where_cospend" translatable="false">Cospend</string>
|
||||||
<string name="where_ihatemoney">IHateMoney</string>
|
<string name="where_ihatemoney" translatable="false">IHateMoney</string>
|
||||||
<string name="todo_join">Join existing project</string>
|
<string name="todo_join">Join existing project</string>
|
||||||
<string name="todo_create">Create new project</string>
|
<string name="todo_create">Create new project</string>
|
||||||
<string name="import_tooltip">Import from file</string>
|
<string name="import_tooltip">Import from file</string>
|
||||||
|
|||||||
@@ -26,3 +26,5 @@ org.gradle.warning.mode=all
|
|||||||
android.uniquePackageNames=false
|
android.uniquePackageNames=false
|
||||||
android.dependency.useConstraints=false
|
android.dependency.useConstraints=false
|
||||||
android.r8.strictFullModeForKeepRules=false
|
android.r8.strictFullModeForKeepRules=false
|
||||||
|
# Enabled parallel sync for Gradle 9.4+
|
||||||
|
org.gradle.tooling.parallel=true
|
||||||
|
|||||||
Reference in New Issue
Block a user