mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-24 15:47:53 -05:00
Compare commits
1 Commits
v2.38.0
...
create-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
760bdc78e4 |
2
.github/workflows/changelog-to-fastlane.yml
vendored
2
.github/workflows/changelog-to-fastlane.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
||||
id: checkout
|
||||
uses: actions/checkout@v5.0.0
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6.0.0
|
||||
uses: actions/setup-python@v5.6.0
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Run converter script
|
||||
|
||||
30
.github/workflows/update-gradle-wrapper.yml
vendored
30
.github/workflows/update-gradle-wrapper.yml
vendored
@@ -1,30 +0,0 @@
|
||||
name: Update Gradle Wrapper
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
permissions:
|
||||
actions: none
|
||||
checks: none
|
||||
contents: write
|
||||
deployments: none
|
||||
discussions: none
|
||||
id-token: none
|
||||
issues: none
|
||||
packages: none
|
||||
pages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
jobs:
|
||||
update-gradle-wrapper:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update Gradle Wrapper
|
||||
uses: gradle-update/update-gradle-wrapper-action@v2
|
||||
44
.scripts/dump_stocard_stores.py
Executable file
44
.scripts/dump_stocard_stores.py
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import csv
|
||||
import json
|
||||
import msgpack
|
||||
|
||||
MSGPACK = "bootstrapdata.msgpack"
|
||||
OUTFILE = "stocard_stores.csv"
|
||||
|
||||
|
||||
def load(fh):
|
||||
data = []
|
||||
for r in msgpack.Unpacker(fh, raw=False):
|
||||
if r["collection"] == "/loyalty-card-providers/":
|
||||
d = json.loads(r["data"])
|
||||
data.append([r["resource_id"], d["name"], d["default_barcode_format"]])
|
||||
return data
|
||||
|
||||
|
||||
def save(data, output_file=OUTFILE):
|
||||
with open(output_file, "w") as fh:
|
||||
writer = csv.writer(fh, lineterminator="\n")
|
||||
writer.writerow(["_id", "name", "barcodeFormat"])
|
||||
for row in data:
|
||||
writer.writerow(row)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser(
|
||||
epilog=f"INPUT_FILE must be a .msgpack or .apk and defaults to {MSGPACK}; "
|
||||
f"OUTPUT_FILE defaults to {OUTFILE}")
|
||||
parser.add_argument("input_file", metavar="INPUT_FILE", nargs="?", default=MSGPACK)
|
||||
parser.add_argument("output_file", metavar="OUTPUT_FILE", nargs="?", default=OUTFILE)
|
||||
args = parser.parse_args()
|
||||
if args.input_file.lower().endswith(".apk"):
|
||||
import zipfile
|
||||
with zipfile.ZipFile(args.input_file) as zf:
|
||||
with zf.open(f"assets/{MSGPACK}") as fh:
|
||||
data = load(fh)
|
||||
else:
|
||||
with open(args.input_file, "rb") as fh:
|
||||
data = load(fh)
|
||||
save(data, args.output_file)
|
||||
@@ -1,12 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
## v2.38.0 - 152 (2025-09-12)
|
||||
|
||||
- Add support for .pkpasses files
|
||||
- Remove Stocard importer (Stocard no longer exists)
|
||||
- Temporarily disable widget images below Android 12L (workaround for a crash issue)
|
||||
|
||||
## v2.37.0 - 151 (2025-08-22)
|
||||
## Unreleased - 151
|
||||
|
||||
- New redesign of the Catima logo
|
||||
- Translation updates
|
||||
|
||||
@@ -17,8 +17,8 @@ android {
|
||||
applicationId = "me.hackerchick.catima"
|
||||
minSdk = 21
|
||||
targetSdk = 35
|
||||
versionCode = 152
|
||||
versionName = "2.38.0"
|
||||
versionCode = 150
|
||||
versionName = "2.36.0"
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
multiDexEnabled = true
|
||||
@@ -117,7 +117,7 @@ dependencies {
|
||||
implementation("androidx.exifinterface:exifinterface:1.4.1")
|
||||
implementation("androidx.palette:palette:1.0.0")
|
||||
implementation("androidx.preference:preference:1.2.1")
|
||||
implementation("com.google.android.material:material:1.13.0")
|
||||
implementation("com.google.android.material:material:1.12.0")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
|
||||
|
||||
// Third-party
|
||||
@@ -133,7 +133,7 @@ dependencies {
|
||||
val junitVersion = "4.13.2"
|
||||
testImplementation("androidx.test:core:$androidXTestVersion")
|
||||
testImplementation("junit:junit:$junitVersion")
|
||||
testImplementation("org.robolectric:robolectric:4.16")
|
||||
testImplementation("org.robolectric:robolectric:4.15.1")
|
||||
|
||||
androidTestImplementation("androidx.test:core:$androidXTestVersion")
|
||||
androidTestImplementation("junit:junit:$junitVersion")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">卡提碼除錯版</string>
|
||||
</resources>
|
||||
<string name="app_name">Catima 除錯版</string>
|
||||
</resources>
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<permission
|
||||
android:description="@string/permissionReadCardsDescription"
|
||||
android:icon="@drawable/ic_launcher_monochrome"
|
||||
android:icon="@drawable/ic_launcher_foreground"
|
||||
android:label="@string/permissionReadCardsLabel"
|
||||
android:name="${applicationId}.READ_CARDS"
|
||||
android:protectionLevel="dangerous" />
|
||||
@@ -65,7 +65,6 @@
|
||||
<data android:mimeType="application/vnd.apple.pkpass" />
|
||||
<data android:mimeType="application/vnd-com.apple.pkpass" />
|
||||
<data android:mimeType="application/vnd.espass-espass" />
|
||||
<data android:mimeType="application/vnd.apple.pkpasses" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.SEND" />
|
||||
@@ -77,7 +76,6 @@
|
||||
<data android:mimeType="application/vnd.apple.pkpass" />
|
||||
<data android:mimeType="application/vnd-com.apple.pkpass" />
|
||||
<data android:mimeType="application/vnd.espass-espass" />
|
||||
<data android:mimeType="application/vnd.apple.pkpasses" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
|
||||
@@ -175,6 +175,7 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
|
||||
List<CharSequence> betaImportOptions = new ArrayList<>();
|
||||
betaImportOptions.add("Fidme");
|
||||
betaImportOptions.add("Stocard");
|
||||
List<CharSequence> importOptions = new ArrayList<>();
|
||||
|
||||
for (String importOption : getResources().getStringArray(R.array.import_types_array)) {
|
||||
@@ -207,8 +208,14 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
importAlertMessage = getString(R.string.importLoyaltyCardKeychainMessage);
|
||||
importDataFormat = DataFormat.Catima;
|
||||
break;
|
||||
// Voucher Vault
|
||||
// Stocard
|
||||
case 3:
|
||||
importAlertTitle = getString(R.string.importStocard);
|
||||
importAlertMessage = getString(R.string.importStocardMessage);
|
||||
importDataFormat = DataFormat.Stocard;
|
||||
break;
|
||||
// Voucher Vault
|
||||
case 4:
|
||||
importAlertTitle = getString(R.string.importVoucherVault);
|
||||
importAlertMessage = getString(R.string.importVoucherVaultMessage);
|
||||
importDataFormat = DataFormat.VoucherVault;
|
||||
|
||||
@@ -101,8 +101,7 @@ class ListWidget : AppWidgetProvider() {
|
||||
setInt(R.id.item_container_foreground, "setBackgroundColor", headerColor)
|
||||
val icon = loyaltyCard.getImageThumbnail(context)
|
||||
// setImageViewIcon is not supported on Android 5, so force Android 5 down the text path
|
||||
// FIXME: The icon flow causes a crash up to Android 12L, so SDK_INT is forced up from 23 to 33
|
||||
if (icon != null && Build.VERSION.SDK_INT >= 32) {
|
||||
if (icon != null && Build.VERSION.SDK_INT >= 23) {
|
||||
setInt(R.id.item_container_foreground, "setBackgroundColor", foreground)
|
||||
setImageViewIcon(R.id.item_image, Icon.createWithBitmap(icon))
|
||||
setViewVisibility(R.id.item_text, View.INVISIBLE)
|
||||
|
||||
@@ -498,8 +498,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
// However, several users stated in https://github.com/CatimaLoyalty/Android/issues/2197 that the formats are extremely similar to the point they could rename an .espass file to .pkpass and have it imported
|
||||
// So it makes sense to "unofficially" treat it as a PKPASS for now, even though not completely correct
|
||||
parseResultList = Utils.retrieveBarcodesFromPkPass(this, data);
|
||||
} else if (receivedType.equals("application/vnd.apple.pkpasses")) {
|
||||
parseResultList = Utils.retrieveBarcodesFromPkPasses(this, data);
|
||||
} else {
|
||||
Log.e(TAG, "Wrong mime-type");
|
||||
return;
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
package protect.card_locker
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import android.util.Log
|
||||
import androidx.core.net.toUri
|
||||
import net.lingala.zip4j.io.inputstream.ZipInputStream
|
||||
import net.lingala.zip4j.model.LocalFileHeader
|
||||
import java.io.FileNotFoundException
|
||||
import java.io.IOException
|
||||
|
||||
class PkpassesParser(context: Context, uri: Uri?) {
|
||||
private var mContext = context
|
||||
private val pkPassParsers: ArrayList<PkpassParser> = ArrayList()
|
||||
|
||||
init {
|
||||
mContext = context
|
||||
|
||||
Log.i(TAG, "Received Pkpasses file")
|
||||
if (uri == null) {
|
||||
Log.e(TAG, "Uri did not contain any data")
|
||||
throw IOException(context.getString(R.string.errorReadingFile))
|
||||
}
|
||||
|
||||
try {
|
||||
mContext.contentResolver.openInputStream(uri).use { inputStream ->
|
||||
ZipInputStream(inputStream).use { zipInputStream ->
|
||||
var localFileHeader: LocalFileHeader?
|
||||
|
||||
while (true) {
|
||||
// Retrieve the next file
|
||||
localFileHeader = zipInputStream.nextEntry
|
||||
|
||||
// If no next file, exit loop
|
||||
if (localFileHeader == null) {
|
||||
break
|
||||
}
|
||||
|
||||
// Ignore directories
|
||||
if (localFileHeader.isDirectory) continue
|
||||
|
||||
// Ignore non-pkpass files
|
||||
if (!localFileHeader.fileName.endsWith(".pkpass")) continue
|
||||
|
||||
// Extract .pkpass (.zip) inside .pkpasses to cache directory
|
||||
val tempFileName = "pkpassparser_" + System.currentTimeMillis() + "_" + localFileHeader.fileName
|
||||
val tempFile = Utils.copyToTempFile(mContext, zipInputStream, tempFileName)
|
||||
|
||||
// Parse temporary file
|
||||
pkPassParsers.add(
|
||||
PkpassParser(mContext, tempFile.toUri())
|
||||
)
|
||||
|
||||
// Delete temporary file
|
||||
tempFile.delete()
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e: FileNotFoundException) {
|
||||
throw IOException(mContext.getString(R.string.errorReadingFile))
|
||||
} catch (e: Exception) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
fun getPkpassParsers(): ArrayList<PkpassParser> {
|
||||
return pkPassParsers
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "Catima"
|
||||
}
|
||||
}
|
||||
@@ -87,10 +87,10 @@ import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.EnumMap;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@@ -228,58 +228,6 @@ public class Utils {
|
||||
return parseResultList;
|
||||
}
|
||||
|
||||
static public List<ParseResult> retrieveBarcodesFromPkPasses(Context context, Uri uri) {
|
||||
Log.i(TAG, "Received Pkpasses file with possible barcode");
|
||||
if (uri == null) {
|
||||
Log.e(TAG, "Pkpasses did not contain any data");
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
PkpassesParser pkpassesParser;
|
||||
try {
|
||||
pkpassesParser = new PkpassesParser(context, uri);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error reading pkpasses file", e);
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<ParseResult> parseResultList = new ArrayList<>();
|
||||
int i = 0;
|
||||
for (PkpassParser pkpassParser : pkpassesParser.getPkpassParsers()) {
|
||||
ParseResult parseResult;
|
||||
List<String> locales = pkpassParser.listLocales();
|
||||
if (locales.isEmpty()) {
|
||||
try {
|
||||
parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null));
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e);
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
parseResult.setNote(String.format(context.getString(R.string.cardWithNumber), i+1));
|
||||
parseResultList.add(parseResult);
|
||||
} else {
|
||||
for (String locale : locales) {
|
||||
try {
|
||||
parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale));
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e);
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
parseResult.setNote(String.format(context.getString(R.string.cardWithNumberAndLocale), i+1, locale));
|
||||
parseResultList.add(parseResult);
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return parseResultList;
|
||||
}
|
||||
|
||||
static public List<ParseResult> retrieveBarcodesFromPdf(Context context, Uri uri) {
|
||||
Log.i(TAG, "Received PDF file with possible barcode");
|
||||
if (uri == null) {
|
||||
@@ -371,19 +319,7 @@ public class Utils {
|
||||
}
|
||||
|
||||
if (requestCode == Utils.BARCODE_IMPORT_FROM_PKPASS_FILE) {
|
||||
Uri intentData = intent.getData();
|
||||
|
||||
if (intentData == null) {
|
||||
Log.e(TAG, "Uri did not contain any data");
|
||||
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
if (Objects.equals(context.getContentResolver().getType(intentData), "application/vnd.apple.pkpasses")) {
|
||||
return retrieveBarcodesFromPkPasses(context, intentData);
|
||||
}
|
||||
|
||||
return retrieveBarcodesFromPkPass(context, intentData);
|
||||
return retrieveBarcodesFromPkPass(context, intent.getData());
|
||||
}
|
||||
|
||||
if (requestCode == Utils.BARCODE_SCAN || requestCode == Utils.SELECT_BARCODE_REQUEST) {
|
||||
@@ -914,7 +850,7 @@ public class Utils {
|
||||
|
||||
public static File copyToTempFile(Context context, InputStream input, String name) throws IOException {
|
||||
File file = createTempFile(context, name);
|
||||
try (FileOutputStream out = new FileOutputStream(file)) {
|
||||
try (input; FileOutputStream out = new FileOutputStream(file)) {
|
||||
byte[] buf = new byte[4096];
|
||||
int len;
|
||||
while ((len = input.read(buf)) != -1) {
|
||||
|
||||
@@ -3,5 +3,6 @@ package protect.card_locker.importexport;
|
||||
public enum DataFormat {
|
||||
Catima,
|
||||
Fidme,
|
||||
Stocard,
|
||||
VoucherVault;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,9 @@ public class MultiFormatImporter {
|
||||
case Fidme:
|
||||
importer = new FidmeImporter();
|
||||
break;
|
||||
case Stocard:
|
||||
importer = new StocardImporter();
|
||||
break;
|
||||
case VoucherVault:
|
||||
importer = new VoucherVaultImporter();
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,428 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.graphics.Bitmap;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
|
||||
import net.lingala.zip4j.ZipFile;
|
||||
import net.lingala.zip4j.io.inputstream.ZipInputStream;
|
||||
import net.lingala.zip4j.model.FileHeader;
|
||||
|
||||
import org.apache.commons.csv.CSVFormat;
|
||||
import org.apache.commons.csv.CSVParser;
|
||||
import org.apache.commons.csv.CSVRecord;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.ParseException;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import protect.card_locker.CatimaBarcode;
|
||||
import protect.card_locker.DBHelper;
|
||||
import protect.card_locker.FormatException;
|
||||
import protect.card_locker.ImageLocationType;
|
||||
import protect.card_locker.LoyaltyCard;
|
||||
import protect.card_locker.R;
|
||||
import protect.card_locker.Utils;
|
||||
import protect.card_locker.ZipUtils;
|
||||
|
||||
/**
|
||||
* Class for importing a database from CSV (Comma Separate Values)
|
||||
* formatted data.
|
||||
* <p>
|
||||
* The database's loyalty cards are expected to appear in the CSV data.
|
||||
* A header is expected for the each table showing the names of the columns.
|
||||
*/
|
||||
public class StocardImporter implements Importer {
|
||||
public static class StocardProvider {
|
||||
public String name = null;
|
||||
public String barcodeFormat = null;
|
||||
public Bitmap logo = null;
|
||||
}
|
||||
|
||||
public static class StocardRecord {
|
||||
public String providerId = null;
|
||||
public String store = null;
|
||||
public String label = null;
|
||||
public String note = null;
|
||||
public String cardId = null;
|
||||
public String barcodeType = null;
|
||||
public Long lastUsed = null;
|
||||
public Bitmap frontImage = null;
|
||||
public Bitmap backImage = null;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format(
|
||||
"StocardRecord{%n providerId=%s,%n store=%s,%n label=%s,%n note=%s,%n cardId=%s,%n"
|
||||
+ " barcodeType=%s,%n lastUsed=%s,%n frontImage=%s,%n backImage=%s%n}",
|
||||
this.providerId,
|
||||
this.store,
|
||||
this.label,
|
||||
this.note,
|
||||
this.cardId,
|
||||
this.barcodeType,
|
||||
this.lastUsed,
|
||||
this.frontImage,
|
||||
this.backImage
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static class ZIPData {
|
||||
public final Map<String, StocardRecord> cards;
|
||||
public final Map<String, StocardProvider> providers;
|
||||
|
||||
ZIPData(final Map<String, StocardRecord> cards, final Map<String, StocardProvider> providers) {
|
||||
this.cards = cards;
|
||||
this.providers = providers;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ImportedData {
|
||||
public final List<LoyaltyCard> cards;
|
||||
public final Map<Integer, Map<ImageLocationType, Bitmap>> images;
|
||||
|
||||
ImportedData(final List<LoyaltyCard> cards, final Map<Integer, Map<ImageLocationType, Bitmap>> images) {
|
||||
this.cards = cards;
|
||||
this.images = images;
|
||||
}
|
||||
}
|
||||
|
||||
public static final String PROVIDER_PREFIX = "/loyalty-card-providers/";
|
||||
|
||||
private static final String TAG = "Catima";
|
||||
|
||||
public void importData(Context context, SQLiteDatabase database, File inputFile, char[] password) throws IOException, FormatException, JSONException, ParseException {
|
||||
ZIPData zipData = new ZIPData(new HashMap<>(), new HashMap<>());
|
||||
|
||||
final CSVParser parser = new CSVParser(new InputStreamReader(context.getResources().openRawResource(R.raw.stocard_stores), StandardCharsets.UTF_8), CSVFormat.RFC4180.builder().setHeader().build());
|
||||
|
||||
try {
|
||||
for (CSVRecord record : parser) {
|
||||
StocardProvider provider = new StocardProvider();
|
||||
provider.name = record.get("name").trim();
|
||||
provider.barcodeFormat = record.get("barcodeFormat").trim();
|
||||
|
||||
zipData.providers.put(record.get("_id").trim(), provider);
|
||||
}
|
||||
|
||||
parser.close();
|
||||
} catch (IllegalArgumentException | IllegalStateException e) {
|
||||
throw new FormatException("Issue parsing CSV data", e);
|
||||
}
|
||||
|
||||
ZipFile zipFile = new ZipFile(inputFile, password);
|
||||
zipData = importZIP(zipFile, zipData);
|
||||
zipFile.close();
|
||||
|
||||
if (zipData.cards.keySet().size() == 0) {
|
||||
throw new FormatException("Couldn't find any loyalty cards in this Stocard export.");
|
||||
}
|
||||
|
||||
ImportedData importedData = importLoyaltyCardHashMap(context, zipData);
|
||||
saveAndDeduplicate(context, database, importedData);
|
||||
}
|
||||
|
||||
public ZIPData importZIP(ZipFile zipFile, final ZIPData zipData) throws IOException, FormatException, JSONException {
|
||||
Map<String, StocardRecord> cards = zipData.cards;
|
||||
Map<String, StocardProvider> providers = zipData.providers;
|
||||
|
||||
String[] customProvidersBaseName = null;
|
||||
String[] cardBaseName = null;
|
||||
String customProviderId = "";
|
||||
String cardName = "";
|
||||
for (FileHeader fileHeader : zipFile.getFileHeaders()) {
|
||||
String fileName = fileHeader.getFileName();
|
||||
String[] nameParts = fileName.split("/");
|
||||
|
||||
if (nameParts.length < 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String userId = nameParts[1];
|
||||
ZipInputStream zipInputStream = zipFile.getInputStream(fileHeader);
|
||||
|
||||
if (customProvidersBaseName == null) {
|
||||
// FIXME: can we use the points-account/statement/content.json balance info somehow?
|
||||
/*
|
||||
Known files:
|
||||
extracts/<user-UUID>/users/<user-UUID>/
|
||||
analytics-properties/content.json
|
||||
devices/<device-UUID>/
|
||||
analytics-properties/content.json
|
||||
content.json
|
||||
ip-location-wifi/content.json
|
||||
enabled-regions/<UUID>/content.json
|
||||
loyalty-card-custom-providers/<provider-UUID>/content.json - custom providers
|
||||
loyalty-cards/<card-UUID>/
|
||||
card-linked-coupons/accounts/default/
|
||||
content.json
|
||||
user-coupons/<UUID>/content.json
|
||||
content.json - card itself
|
||||
images/back.png - back image (legacy)
|
||||
images/back/back.jpg - back image
|
||||
images/back/content.json
|
||||
images/front.png - front image (legacy)
|
||||
images/front/content.json
|
||||
images/front/front.jpg - front image
|
||||
notes/default/content.json - note
|
||||
points-account/
|
||||
content.json
|
||||
statement/content.json
|
||||
usages/<UUID>/content.json - timestamps
|
||||
usage-statistics/content.json - timestamps
|
||||
reward-program-balances/<UUID>/content.json
|
||||
*/
|
||||
customProvidersBaseName = new String[]{
|
||||
"extracts",
|
||||
userId,
|
||||
"users",
|
||||
userId,
|
||||
"loyalty-card-custom-providers"
|
||||
};
|
||||
cardBaseName = new String[]{
|
||||
"extracts",
|
||||
userId,
|
||||
"users",
|
||||
userId,
|
||||
"loyalty-cards"
|
||||
};
|
||||
}
|
||||
|
||||
if (startsWith(nameParts, customProvidersBaseName, 1)) {
|
||||
// Extract providerId
|
||||
customProviderId = nameParts[customProvidersBaseName.length];
|
||||
|
||||
StocardProvider provider = providers.get(customProviderId);
|
||||
if (provider == null) {
|
||||
provider = new StocardProvider();
|
||||
providers.put(customProviderId, provider);
|
||||
}
|
||||
|
||||
// Name file
|
||||
if (fileName.endsWith(customProviderId + "/content.json")) {
|
||||
JSONObject jsonObject = ZipUtils.readJSON(zipInputStream);
|
||||
provider.name = jsonObject.getString("name");
|
||||
} else if (fileName.endsWith("logo.png")) {
|
||||
provider.logo = ZipUtils.readImage(zipInputStream);
|
||||
} else if (!fileName.endsWith("/")) {
|
||||
Log.d(TAG, "Unknown or unused loyalty-card-custom-providers file " + fileName + ", skipping...");
|
||||
}
|
||||
} else if (startsWith(nameParts, cardBaseName, 1)) {
|
||||
// Extract cardName
|
||||
cardName = nameParts[cardBaseName.length];
|
||||
|
||||
StocardRecord record = cards.get(cardName);
|
||||
if (record == null) {
|
||||
record = new StocardRecord();
|
||||
cards.put(cardName, record);
|
||||
}
|
||||
|
||||
// This is the card itself
|
||||
if (fileName.endsWith(cardName + "/content.json")) {
|
||||
JSONObject jsonObject = ZipUtils.readJSON(zipInputStream);
|
||||
record.cardId = jsonObject.getString("input_id");
|
||||
|
||||
if (jsonObject.has("input_provider_name")) {
|
||||
record.store = jsonObject.getString("input_provider_name");
|
||||
}
|
||||
|
||||
if (jsonObject.has("label")) {
|
||||
String label = jsonObject.getString("label");
|
||||
if (!label.isBlank()) {
|
||||
record.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
// Provider ID can be either custom or not, extract whatever version is relevant
|
||||
String customProviderPrefix = "/users/" + userId + "/loyalty-card-custom-providers/";
|
||||
String providerId = jsonObject
|
||||
.getJSONObject("input_provider_reference")
|
||||
.getString("identifier");
|
||||
if (providerId.startsWith(customProviderPrefix)) {
|
||||
providerId = providerId.substring(customProviderPrefix.length());
|
||||
} else if (providerId.startsWith(PROVIDER_PREFIX)) {
|
||||
providerId = providerId.substring(PROVIDER_PREFIX.length());
|
||||
} else {
|
||||
throw new FormatException("Unsupported provider ID format: " + providerId);
|
||||
}
|
||||
|
||||
record.providerId = providerId;
|
||||
|
||||
if (jsonObject.has("input_barcode_format")) {
|
||||
record.barcodeType = jsonObject.getString("input_barcode_format");
|
||||
}
|
||||
} else if (fileName.endsWith("notes/default/content.json")) {
|
||||
record.note = ZipUtils.readJSON(zipInputStream).getString("content");
|
||||
} else if (fileName.endsWith("usage-statistics/content.json")) {
|
||||
JSONArray usages = ZipUtils.readJSON(zipInputStream).getJSONArray("usages");
|
||||
for (int i = 0; i < usages.length(); i++) {
|
||||
JSONObject lastUsedObject = usages.getJSONObject(i);
|
||||
String lastUsedString = lastUsedObject.getJSONObject("time").getString("value");
|
||||
long timeStamp = Instant.parse(lastUsedString).getEpochSecond();
|
||||
if (record.lastUsed == null || timeStamp > record.lastUsed) {
|
||||
record.lastUsed = timeStamp;
|
||||
}
|
||||
}
|
||||
} else if (fileName.matches(".*/usages/[^/]+/content.json")) {
|
||||
JSONObject lastUsedObject = ZipUtils.readJSON(zipInputStream);
|
||||
String lastUsedString = lastUsedObject.getJSONObject("time").getString("value");
|
||||
long timeStamp = Instant.parse(lastUsedString).getEpochSecond();
|
||||
if (record.lastUsed == null || timeStamp > record.lastUsed) {
|
||||
record.lastUsed = timeStamp;
|
||||
}
|
||||
} else if (fileName.endsWith("/images/front.png") || fileName.endsWith("/images/front/front.jpg")) {
|
||||
record.frontImage = ZipUtils.readImage(zipInputStream);
|
||||
} else if (fileName.endsWith("/images/back.png") || fileName.endsWith("/images/back/back.jpg")) {
|
||||
record.backImage = ZipUtils.readImage(zipInputStream);
|
||||
} else if (!fileName.endsWith("/")) {
|
||||
Log.d(TAG, "Unknown or unused loyalty-cards file " + fileName + ", skipping...");
|
||||
}
|
||||
} else if (!fileName.endsWith("/")) {
|
||||
Log.d(TAG, "Unknown or unused file " + fileName + ", skipping...");
|
||||
}
|
||||
|
||||
zipInputStream.close();
|
||||
}
|
||||
|
||||
return new ZIPData(cards, providers);
|
||||
}
|
||||
|
||||
public ImportedData importLoyaltyCardHashMap(Context context, final ZIPData zipData) throws FormatException {
|
||||
ImportedData importedData = new ImportedData(new ArrayList<>(), new HashMap<>());
|
||||
int tempID = 0;
|
||||
|
||||
List<String> cardKeys = new ArrayList<>(zipData.cards.keySet());
|
||||
Collections.sort(cardKeys);
|
||||
|
||||
for (String key : cardKeys) {
|
||||
StocardRecord record = zipData.cards.get(key);
|
||||
|
||||
if (record.providerId == null) {
|
||||
Log.d(TAG, "Missing providerId for card " + record + ", ignoring...");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (record.cardId == null) {
|
||||
throw new FormatException("No card ID listed, but is required");
|
||||
}
|
||||
|
||||
StocardProvider provider = zipData.providers.get(record.providerId);
|
||||
|
||||
// Read store from card, if not available (old export), fall back to providerData
|
||||
String store = record.store != null ? record.store : provider != null ? provider.name : record.providerId;
|
||||
String note = record.note != null ? record.note : "";
|
||||
String barcodeTypeString = record.barcodeType != null ? record.barcodeType : provider != null ? provider.barcodeFormat : null;
|
||||
|
||||
if (record.label != null && !record.label.equals(store) && !record.label.equals(note)) {
|
||||
note = note.isEmpty() ? record.label : note + "\n" + record.label;
|
||||
}
|
||||
|
||||
CatimaBarcode barcodeType = null;
|
||||
if (barcodeTypeString != null && !barcodeTypeString.isEmpty()) {
|
||||
if (barcodeTypeString.equals("RSS_DATABAR_EXPANDED")) {
|
||||
barcodeType = CatimaBarcode.fromBarcode(BarcodeFormat.RSS_EXPANDED);
|
||||
} else if (barcodeTypeString.equals("GS1_128")) {
|
||||
barcodeType = CatimaBarcode.fromBarcode(BarcodeFormat.CODE_128);
|
||||
} else {
|
||||
barcodeType = CatimaBarcode.fromName(barcodeTypeString);
|
||||
}
|
||||
}
|
||||
|
||||
int headerColor = Utils.getRandomHeaderColor(context);
|
||||
if (provider != null && provider.logo != null) {
|
||||
headerColor = Utils.getHeaderColorFromImage(provider.logo, headerColor);
|
||||
}
|
||||
|
||||
long lastUsed = record.lastUsed != null ? record.lastUsed : Utils.getUnixTime();
|
||||
|
||||
LoyaltyCard card = new LoyaltyCard(
|
||||
tempID,
|
||||
store,
|
||||
note,
|
||||
null,
|
||||
null,
|
||||
BigDecimal.valueOf(0),
|
||||
null,
|
||||
record.cardId,
|
||||
null,
|
||||
barcodeType,
|
||||
headerColor,
|
||||
0,
|
||||
lastUsed,
|
||||
DBHelper.DEFAULT_ZOOM_LEVEL,
|
||||
DBHelper.DEFAULT_ZOOM_LEVEL_WIDTH,
|
||||
0,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
importedData.cards.add(card);
|
||||
|
||||
Map<ImageLocationType, Bitmap> images = new HashMap<>();
|
||||
|
||||
if (provider != null && provider.logo != null) {
|
||||
images.put(ImageLocationType.icon, provider.logo);
|
||||
}
|
||||
if (record.frontImage != null) {
|
||||
images.put(ImageLocationType.front, record.frontImage);
|
||||
}
|
||||
if (record.backImage != null) {
|
||||
images.put(ImageLocationType.back, record.backImage);
|
||||
}
|
||||
|
||||
importedData.images.put(tempID, images);
|
||||
tempID++;
|
||||
}
|
||||
|
||||
return importedData;
|
||||
}
|
||||
|
||||
public void saveAndDeduplicate(Context context, SQLiteDatabase database, final ImportedData data) throws IOException {
|
||||
// This format does not have IDs that can cause conflicts
|
||||
// Proper deduplication for all formats will be implemented later
|
||||
for (LoyaltyCard card : data.cards) {
|
||||
// card.id is temporary and only used to index the images Map
|
||||
long id = DBHelper.insertLoyaltyCard(database, card.store, card.note, card.validFrom, card.expiry, card.balance, card.balanceType,
|
||||
card.cardId, card.barcodeId, card.barcodeType, card.headerColor, card.starStatus, card.lastUsed, card.archiveStatus);
|
||||
for (Map.Entry<ImageLocationType, Bitmap> entry : data.images.get(card.id).entrySet()) {
|
||||
Utils.saveCardImage(context, entry.getValue(), (int) id, entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean startsWith(String[] full, String[] start, int minExtraLength) {
|
||||
if (full.length - minExtraLength < start.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < start.length; i++) {
|
||||
if (!start[i].contentEquals(full[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -15,51 +15,51 @@ IllusiveMan196
|
||||
Altonss
|
||||
B o d o
|
||||
Michael Moroni
|
||||
Silvério Santos
|
||||
Eric
|
||||
Joel A
|
||||
Silvério Santos
|
||||
Максим Горпиніч
|
||||
GM
|
||||
Priit Jõerüüt
|
||||
Petr Novák
|
||||
laralem
|
||||
Petr Novák
|
||||
Edgars Andersons
|
||||
Taco
|
||||
nadiafekihahmed
|
||||
pfaffenrodt
|
||||
Aayush Gupta
|
||||
Scrambled777
|
||||
Giovanni Donisi
|
||||
ikanakova
|
||||
Giovanni Donisi
|
||||
HudobniVolk
|
||||
Nyatsuki
|
||||
Jiri Grönroos
|
||||
Nyatsuki
|
||||
josé m
|
||||
Samantaz Fox
|
||||
Fjuro
|
||||
Balázs Meskó
|
||||
Milo Ivir
|
||||
Sergio Paredes
|
||||
Fjuro
|
||||
Cliff Heraldo
|
||||
Sergio Paredes
|
||||
Ankit Tiwari
|
||||
Arno-github
|
||||
Warder
|
||||
GitSpoon
|
||||
Kachelkaiser
|
||||
Jose Delvani
|
||||
mdvhimself
|
||||
Milan Šalka
|
||||
Robin
|
||||
தமிழ் நேரம்
|
||||
huuhaa
|
||||
Vasilis
|
||||
GitSpoon
|
||||
Skrripy
|
||||
Projjal Moitra
|
||||
Quentin PAGÈS
|
||||
StellarSand
|
||||
ngocanhtve
|
||||
Marnick L'Eau
|
||||
Vasilis
|
||||
huuhaa
|
||||
தமிழ் நேரம்
|
||||
waffshappen
|
||||
Marnick L'Eau
|
||||
ngocanhtve
|
||||
StellarSand
|
||||
Quentin PAGÈS
|
||||
Projjal Moitra
|
||||
Robin
|
||||
JungHee Lee
|
||||
hajertabbane
|
||||
Ziad OUALHADJ
|
||||
|
||||
7509
app/src/main/res/raw/stocard_stores.csv
Normal file
7509
app/src/main/res/raw/stocard_stores.csv
Normal file
File diff suppressed because it is too large
Load Diff
@@ -77,6 +77,8 @@
|
||||
<string name="importCatimaMessage">حدّد ملفك <i>catima.zip</i> تصدير من Catima للاستيراد. \nإنشئها من قائمة الاستيراد / التصدير لتطبيق Catima آخر بالضغط على تصدير هناك أولاً.</string>
|
||||
<string name="importFidme">الاستيراد من FidMe</string>
|
||||
<string name="importFidmeMessage">حدّد ملفك <i>fidme-export-request-xxxxxx.zip</i> تصدير من FidMe للاستيراد، ثم حدد أنواع الباركود يدويًا بعد ذلك. \nإنشئها من ملف تعريف FidMe الخاص بك عن طريق اختيار حماية البيانات ثم الضغط على استخراج بياناتي أولاً.</string>
|
||||
<string name="importStocardMessage">حدد ملفك <i>***.zip</i> تصدير من Stocard للاستيراد.
|
||||
\nاحصل عليه عن طريق إرسال بريد إلكتروني إلى support@stocardapp.com لطلب تصدير بياناتك.</string>
|
||||
<string name="importVoucherVault">الاستيراد من Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">حدّد ملفك <i>vouchervault.json</i> تصدير من Voucher Vault للاستيراد. \nإنشئها بالضغط على تصدير في Voucher Vault أولاً.</string>
|
||||
<string name="barcodeId">قيمة الباركود</string>
|
||||
@@ -227,6 +229,7 @@
|
||||
<string name="sort_by_expiry">انقضاء</string>
|
||||
<string name="importLoyaltyCardKeychain">الاستيراد من Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">حدّد ملفك <i>LoyaltyCardKeychain.csv</i> التصدير من Loyalty Card Keychain للاستيراد. \nإنشئها من قائمة الاستيراد / التصدير في Loyalty Card Keychain بالضغط على تصدير هناك أولاً.</string>
|
||||
<string name="importStocard">الاستيراد من Stocard</string>
|
||||
<string name="failedGeneratingShareURL">تعذر إنشاء عنوان URL قابل للمشاركة. الرجاء الإبلاغ عن هذا.</string>
|
||||
<string name="help_translate_this_app">ساعد في ترجمة هذا التطبيق</string>
|
||||
<string name="on_google_play">على Google Play</string>
|
||||
|
||||
@@ -139,6 +139,7 @@
|
||||
<string name="importCatima">Імпарт з Catima</string>
|
||||
<string name="importFidme">Імпарт з FidMe</string>
|
||||
<string name="importLoyaltyCardKeychain">Імпарт з Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Імпарт з Stocard</string>
|
||||
<string name="importVoucherVault">Імпарт з Voucher Vault</string>
|
||||
<string name="barcodeId">Значэнне штрыхкода</string>
|
||||
<string name="importVoucherVaultMessage">Каб імпартаваць, выберыце файл <i>vouchervault.json</i> з Voucher Vault. \nСтварыце яго, націснуўшы Экспарт у Voucher Vault .</string>
|
||||
@@ -276,6 +277,7 @@
|
||||
<string name="editBarcode">Рэдагаваць штрыхкод</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Выйсці без захавання?</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Каб імпартаваць, выберыце файл <i>LoyaltyCardKeychain.csv</i> з Loyalty Card Keychain. \nСтварыце яго з меню «Імпарт/Экспарт» у Loyalty Card Keychain, спачатку націснуўшы там «Экспарт».</string>
|
||||
<string name="importStocardMessage">Каб імпартаваць, выберыце файл <i>***.zip</i> з Stocard. \nАтрымайце яго па электроннай пошце support@stocardapp.com з запытам на экспарт вашых даных.</string>
|
||||
<string name="frontImageDescription">Пярэдні відарыс</string>
|
||||
<string name="groupsList">Групы: <xliff:g>%s</xliff:g></string>
|
||||
<string name="switchToBackImage">Пераключыцца на задні відарыс</string>
|
||||
|
||||
@@ -129,9 +129,12 @@
|
||||
<string name="addManually">Ръчно въвеждане</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Оставяте промените незапазени\?</string>
|
||||
<string name="unsupportedBarcodeType">Щрихкод от този вид не може да бъде показан. Може да бъде поддържан в следващо издание.</string>
|
||||
<string name="importStocard">Внасяне от Stocard</string>
|
||||
<string name="importVoucherVault">Внасяне от Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Изберете файла <i>vouchervault.json</i>, предварително изнесен от Voucher Vault.
|
||||
\nСъздайте такъв файл от меню „Export“ във Voucher Vault.</string>
|
||||
<string name="importStocardMessage">Изберете файла <i>***.zip</i>, предварително изнесен от Stocard.
|
||||
\nПолучете го като изпратите писмо на support@stocardapp.com с искане за изнасяне вашите данни.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Изберете файла <i>LoyaltyCardKeychain.csv</i>, предварително изнесен от Loyalty Card Keychain.
|
||||
\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Loyalty Card Keychain като изберете Изнасяне.</string>
|
||||
<string name="failedParsingImportUriError">Препратката не може да бъде анализирана за внасяне</string>
|
||||
@@ -300,13 +303,11 @@
|
||||
<string name="settings_column_count_portrait">Колони в портретен изглед</string>
|
||||
<string name="settings_category_title_cards_overview">Списък с карти</string>
|
||||
<string name="generic_error_please_retry">Съжаляваме, нещо се обърка, опитайте отново…</string>
|
||||
<string name="addFromPkpass">Изберете файл на Passbook (.pkpass / pkpasses)</string>
|
||||
<string name="addFromPkpass">Изберете файл на Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Този вид файлове не се поддържат</string>
|
||||
<string name="sort_by_valid_from">Начало валидност</string>
|
||||
<string name="width">Ширина</string>
|
||||
<string name="setBarcodeWidth">Задаване ширина на щрих кода</string>
|
||||
<string name="card_list_widget_name">Списък с карти</string>
|
||||
<string name="card_list_widget_empty">Когато добавите карти в Catima те ще се покажат тук. Ако имате карти уверете се, че са извън архива.</string>
|
||||
<string name="cardWithNumber">Карта <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Карта <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
<string name="starImage">তারা ছবি</string>
|
||||
<string name="importCatima">ক্যাতিনা আগম</string>
|
||||
<string name="importLoyaltyCardKeychain">আমদানি লয়্যালটি কার্ড কীচেন</string>
|
||||
<string name="importStocard">স্টো কার্ড আমদানি করুন</string>
|
||||
<string name="importVoucherVault">আমদানি ভাউচার ভল্ট</string>
|
||||
<string name="barcodeId">বারকোড আইডি</string>
|
||||
<string name="sameAsCardId">আইডি আর এটা এক</string>
|
||||
@@ -202,6 +203,8 @@
|
||||
\nআপনার FidMe প্রোফাইল থেকে ডেটা সুরক্ষা নির্বাচন করে এবং তারপর প্রথমে আমার ডেটা বের করুন টিপে এটি তৈরি করুন।</string>
|
||||
<string name="importCatimaMessage">ক্যাটিমা থেকে আমদানি করতে আপনার <i>catima.zip</i> রপ্তানি নির্বাচন করুন।
|
||||
\nঅন্য Catima অ্যাপের আমদানি/রপ্তানি মেনু থেকে প্রথমে সেখানে রপ্তানি টিপে এটি তৈরি করুন।</string>
|
||||
<string name="importStocardMessage">আমদানি করতে Stocard থেকে আপনার <i>***.zip</i> এক্সপোর্ট নির্বাচন করুন।
|
||||
\nআপনার ডেটা রপ্তানির জন্য জিজ্ঞাসা করে support@stocardapp.com ই-মেইল করে এটি পান।</string>
|
||||
<string name="importVoucherVaultMessage">আমদানি করতে ভাউচার ভল্ট থেকে আপনার <i>vouchervault.json</i> এক্সপোর্ট নির্বাচন করুন।
|
||||
\nপ্রথমে ভাউচার ভল্টে এক্সপোর্ট টিপে এটি তৈরি করুন।</string>
|
||||
<string name="settings_oled_dark">অন্ধকার থিমের জন্য খাঁটি কালো পটভূমি</string>
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
<string name="starImage">Omiljena zvijezda</string>
|
||||
<string name="importCatima">Uvezi iz Catima</string>
|
||||
<string name="importLoyaltyCardKeychain">Uvezi iz Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Uvezi iz Stokarda</string>
|
||||
<string name="importVoucherVault">Uvezi iz trezora vaučer</string>
|
||||
<string name="barcodeId">Barcode vrijednost</string>
|
||||
<string name="sameAsCardId">Isto kao i kartica</string>
|
||||
|
||||
@@ -118,6 +118,9 @@
|
||||
<string name="importVoucherVaultMessage">Vyberte k importu svůj <i>vouchervault.json</i> exportovaný z Voucher Vault.
|
||||
\nVytvoříte jej tak, že nejprve stisknete tlačítko Exportovat v aplikaci Voucher Vault.</string>
|
||||
<string name="importVoucherVault">Import z Voucher Vault</string>
|
||||
<string name="importStocardMessage">Vyberte k importu svůj <i>***.zip</i> exportovaný z aplikace Stocard.
|
||||
\nZískejte ji zasláním e-mailu na adresu support@stocardapp.com s žádostí o export vašich dat.</string>
|
||||
<string name="importStocard">Import ze Stocard</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Vyberte k importu <i>LoyaltyCardKeychain.csv</i> exportovaný z Loyalty Card Keychain.
|
||||
\nVytvoříte jej z nabídky Import/Export v Loyalty Card Keychain tak, že tam nejprve stisknete tlačítko Exportovat.</string>
|
||||
<string name="importLoyaltyCardKeychain">Import z Loyalty Card Keychain</string>
|
||||
@@ -297,7 +300,7 @@
|
||||
<string name="generic_error_please_retry">Je nám líto, něco se pokazilo, zkuste to prosím znovu...</string>
|
||||
<string name="settings_column_count_portrait">Sloupce v režimu na výšku</string>
|
||||
<string name="settings_automatic_column_count">Automatický</string>
|
||||
<string name="addFromPkpass">Vyberte soubor Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Vyberte soubor Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Tento soubor není podporován</string>
|
||||
<string name="settings_category_title_cards_overview">Přehled karet</string>
|
||||
<string name="settings_column_count_landscape">Sloupce v režimu na šířku</string>
|
||||
@@ -313,6 +316,4 @@
|
||||
<string name="width">Šířka</string>
|
||||
<string name="card_list_widget_name">Seznam karet</string>
|
||||
<string name="card_list_widget_empty">Karty přidané do aplikace Catima se zobrazí zde. Pokud máte karty, ujistěte se, že nejsou všechny archivovány.</string>
|
||||
<string name="cardWithNumber">Karta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -114,6 +114,7 @@
|
||||
<string name="never">Aldrig</string>
|
||||
<string name="chooseExpiryDate">Vælg udløbsdato</string>
|
||||
<string name="balance">Balance</string>
|
||||
<string name="importStocard">Importer fra Stocard</string>
|
||||
<string name="balanceSentence">Balance: <xliff:g>%s</xliff:g></string>
|
||||
<string name="group_name_is_empty">Gruppenavn må ikke være tom</string>
|
||||
<string name="group_updated">Gruppe opdateret</string>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_search">Suche</string>
|
||||
<string name="action_search">Suchen</string>
|
||||
<string name="action_add">Hinzufügen</string>
|
||||
<string name="noGiftCards">Füge eine Karte mit + hinzu oder importiere welche über das ⋮ Menü.</string>
|
||||
<string name="noMatchingGiftCards">Keine Ergebnisse. Versuche, deine Suche zu ändern.</string>
|
||||
@@ -126,6 +126,8 @@
|
||||
<string name="frontImageDescription">Vorderseite</string>
|
||||
<string name="backImageDescription">Rückseite</string>
|
||||
<string name="passwordRequired">Bitte gib das Passwort ein</string>
|
||||
<string name="importStocardMessage">Wähle deinen <i>***.zip</i>-Export aus Stocard zum Importieren aus. \nDu erhälst ihn, indem du eine E-Mail an support@stocardapp.com sendest und um einen Export deiner Daten bittest.</string>
|
||||
<string name="importStocard">Von Stocard importieren</string>
|
||||
<string name="turn_flashlight_off">Blitzlicht ausschalten</string>
|
||||
<string name="turn_flashlight_on">Blitzlicht einschalten</string>
|
||||
<string name="failedGeneratingShareURL">URL konnte nicht erstellt werden. Bitte melde das an uns.</string>
|
||||
@@ -298,12 +300,10 @@
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="generic_error_please_retry">Entschuldigung, da ist etwas schief gelaufen, versuchen Sie es noch einmal ...</string>
|
||||
<string name="unsupportedFile">Diese Datei wird nicht unterstützt</string>
|
||||
<string name="addFromPkpass">Eine Passbook-Datei (.pkpass / .pkpasses) auswählen</string>
|
||||
<string name="addFromPkpass">Passbook-Datei (.pkpass) auswählen</string>
|
||||
<string name="sort_by_valid_from">Gültig ab</string>
|
||||
<string name="width">Breite</string>
|
||||
<string name="setBarcodeWidth">Barcodebreite einstellen</string>
|
||||
<string name="card_list_widget_empty">Nachdem du einige Treuekarten in Catima hinzugefügt hast, werden sie hier angezeigt. Wenn du Karten hast, stelle sicher, dass diese nicht alle archiviert sind.</string>
|
||||
<string name="card_list_widget_empty">Nachdem du einige Treuekarten in Catima hinzugefügt hast, werden sie hier angezeigt. Wenn du Karten hast, stelle sicher, dass sie nicht alle archiviert sind.</string>
|
||||
<string name="card_list_widget_name">Kartenliste</string>
|
||||
<string name="cardWithNumberAndLocale">Karte <xliff:g>%d</xliff:g> (%s)</string>
|
||||
<string name="cardWithNumber">Karte <xliff:g>%d</xliff:g></string>
|
||||
</resources>
|
||||
|
||||
@@ -117,6 +117,8 @@
|
||||
</plurals>
|
||||
<string name="importCatimaMessage">Επιλέξτε την <i>catima.zip</i> εξαγωγή από το Catima για εισαγωγή
|
||||
\nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής μιας άλλης εφαρμογής Catima κάνοντας εξαγωγή εκεί πρώτα.</string>
|
||||
<string name="importStocardMessage">Επιλέξτε την <i>***.zip</i> εξαγωγή από το Stocard για εισαγωγή.
|
||||
\nΠάρτε το στέλνοντας email στο: support@stocardapp.com ζητώντας μια εξαγωγή αρχείων των δεδομένων σας.</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Θέλω να μοιραστώ μερικές κάρτες μαζί σου</string>
|
||||
<string name="editGroup">Επεξεργασία Ομάδας: <xliff:g>%s</xliff:g></string>
|
||||
<string name="setFrontImage">Επιλογή εμπρόσθιας εικόνας</string>
|
||||
@@ -185,6 +187,7 @@
|
||||
<string name="noBarcodeFound">Δεν βρέθηκε γραμμωτός κώδικα</string>
|
||||
<string name="balance">Υπόλοιπο</string>
|
||||
<string name="importCatima">Εισαγωγή από Catima</string>
|
||||
<string name="importStocard">Εισαγωγή από Stocard</string>
|
||||
<string name="importVoucherVault">Εισαγωγή από Voucher Vault</string>
|
||||
<string name="sameAsCardId">Όπως ο κωδικός</string>
|
||||
<string name="exportPassword">Προσθέστε έναν κωδικό για προστασία της εξαγωγής (προαιρετικά)</string>
|
||||
@@ -300,12 +303,10 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Λυπούμαστε, κάτι πήγε στραβά, δοκιμάστε ξανά...</string>
|
||||
<string name="unsupportedFile">Το αρχείο δεν υποστηρίζεται</string>
|
||||
<string name="addFromPkpass">Επιλέξτε αρχείο Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Επιλογή αρχείου Passbook (.pkpass)</string>
|
||||
<string name="sort_by_valid_from">Έναρξη ισχύος</string>
|
||||
<string name="setBarcodeWidth">Ορισμός πλάτους γραμμωτού κώδικα</string>
|
||||
<string name="width">Πλάτος</string>
|
||||
<string name="card_list_widget_empty">Αφού προσθέσετε μερικές κάρτες επιβράβευσης στο Catima, θα εμφανιστούν εδώ. Εάν έχετε κάρτες, βεβαιωθείτε ότι δεν είναι όλες αρχειοθετημένες.</string>
|
||||
<string name="card_list_widget_name">Λίστα καρτών</string>
|
||||
<string name="cardWithNumber">Κάρτα <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Κάρτα <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -233,6 +233,8 @@
|
||||
<string name="settings_pink_theme">Rozkolora</string>
|
||||
<string name="field_must_not_be_empty">Kampo devas ne esti malplena</string>
|
||||
<string name="manually_enter_barcode_instructions">Entajpu la identigilon aŭ tekston sur via karto kaj premu la strikodon kiu aspektas kiel tiu sur via karto.</string>
|
||||
<string name="importStocardMessage">Elektu la <i>***.zip</i> eksoporton de Stocard kiun vi volas importi.
|
||||
\nAkiru ĝin sendante retpoŝton al support@stocardapp.com petante eksporton de viaj datumoj.</string>
|
||||
<string name="turn_flashlight_off">Malŝalti poŝlampon</string>
|
||||
<string name="add_manually_warning_title">Skani estas rekomendata</string>
|
||||
<string name="continue_">Daŭrigi</string>
|
||||
@@ -270,6 +272,7 @@
|
||||
<string name="updateBarcodeQuestionText">Vi ŝanĝis la identigon. Ĉu vi volas ankaŭ ĝisdatigi la strikodon por uzi la saman valoron?</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Elektu la <i>LoyaltyCardKeychain.csv</i> eksporton de Loyalty Card Keychain kiun vi volas importi.
|
||||
\nKreu ĝin unue de la \"Importi/eksporti\" menuo en Loyalty Card Keychain elektante \"eksporti\" tie.</string>
|
||||
<string name="importStocard">Importi de Stocard</string>
|
||||
<string name="importVoucherVault">Importi el Voucher Vault</string>
|
||||
<string name="turn_flashlight_on">Enŝalti poŝlampon</string>
|
||||
<string name="settings_locale">Lingvo</string>
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
<string name="cameraPermissionDeniedTitle">No se pudo acceder a la cámara</string>
|
||||
<string name="wrongValueForBarcodeType">El valor no es válido para el tipo de código de barras seleccionado</string>
|
||||
<string name="expiryDate">Fecha de vencimiento</string>
|
||||
<string name="importStocard">Importar desde Stocard</string>
|
||||
<string name="currency">Moneda</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
|
||||
@@ -118,6 +119,8 @@
|
||||
<string name="settings_landscape_orientation">Horizontal</string>
|
||||
<string name="privacy_policy">Política de Privacidad</string>
|
||||
<string name="enter_group_name">Ingrese el nombre del grupo</string>
|
||||
<string name="importStocardMessage">Seleccione su <i>***.zip</i> exportado desde Stocard para importarlo.
|
||||
\nObténgalo mandando un correo electrónico a support@stocardapp.com preguntando por una copia de tus datos.</string>
|
||||
<string name="addManually">Ingresar el código de barras manualmente</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os y colaboradores</string>
|
||||
<string name="importVoucherVault">Importar desde Voucher Vault</string>
|
||||
|
||||
@@ -94,6 +94,8 @@
|
||||
\nCréalo primero desde tu perfil de FidMe eligiendo Protección de datos y pulsa Extraer mis datos.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Seleccione su <i>LoyaltyCardKeychain.csv</i> exportado desde Loyalty Card Keychain para importarlo.
|
||||
\nCréalo primero desde el menú Importar/Exportar en Loyalty Card Keychain pulsando Exportar desde allí.</string>
|
||||
<string name="importStocardMessage">Seleccione su exportación <i>*.zip</i> de Stocard para importarla.
|
||||
\nConsígalo enviando un correo electrónico a support@stocardapp.com solicitando una exportación de sus datos.</string>
|
||||
<string name="importVoucherVaultMessage">Seleccione su <i>vouchervault.json</i> exportado desde Voucher Vault para importarlo.
|
||||
\nCréalo pulsando primero Exportar en Voucher Vault.</string>
|
||||
<string name="failedGeneratingShareURL">No se ha podido generar una URL compartible. Por favor, informe de ello.</string>
|
||||
@@ -118,6 +120,7 @@
|
||||
<string name="sameAsCardId">Igual que el código</string>
|
||||
<string name="barcodeId">Valor de código de barra</string>
|
||||
<string name="importVoucherVault">Importar desde Voucher Vault</string>
|
||||
<string name="importStocard">Importar desde Stocard</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar desde Loyalty Card Keychain</string>
|
||||
<string name="importFidme">Importar desde FidMe</string>
|
||||
<string name="importCatima">Importar desde Catima</string>
|
||||
|
||||
@@ -182,6 +182,8 @@
|
||||
<string name="importFidme">Impordi FidMe varukoopiast</string>
|
||||
<string name="importFidmeMessage">Importimiseks vali oma <i>fidme-export-request-xxxxxx.zip</i>, mille oled FidMe rakendusest eksportinud. Peale importi määra triipkoodi tüübid käsistsi. \nSellise faili loomiseks vali oma FidMe profiilist eelistuse Andmekaitse-Paki lahti.</string>
|
||||
<string name="importLoyaltyCardKeychain">Impordi rakendusest Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Impordi Stocardist</string>
|
||||
<string name="importStocardMessage">Importimiseks vali oma <i>***.zip</i> Stocardi ekspordifail. \nSellise faili saad saates kirja aadressile support@stocardapp.com ning küsides oma andmeid.</string>
|
||||
<string name="chooseImportType">Importimise valikud</string>
|
||||
<string name="importVoucherVault">Impordi rakendusest Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Importimiseks vali oma <i>vouchervault.json</i> Voucher Vaulti ekspordifail. \nSellise faili saad teha rakenduses Voucher Vault menüüvalikust Eksport.</string>
|
||||
@@ -297,12 +299,10 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Vabandust, midagi läks nüüd viltu, palun proovi uuesti...</string>
|
||||
<string name="unsupportedFile">See fail pole toetatud</string>
|
||||
<string name="addFromPkpass">Vali Passbooki fail (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Vali Passbooki fail (.pkpass)</string>
|
||||
<string name="sort_by_valid_from">Kehtib alates</string>
|
||||
<string name="setBarcodeWidth">Määratle triipkoodi laius</string>
|
||||
<string name="width">Laius</string>
|
||||
<string name="card_list_widget_name">Kaartide loend</string>
|
||||
<string name="card_list_widget_empty">Kui lisad Catimasse kliendikaarte, siis saavad nad olema nähtavad siin. Kui sul on kaardid lisatud, siis palun kontrolli, et nad kõik poleks arhiveeritud.</string>
|
||||
<string name="cardWithNumber">Kaart: <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kaart: <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -120,6 +120,7 @@
|
||||
<string name="noGroups">روی دکمه + اضافه کلیک کنید تا گروههایی برای دستهبندی اضافه کنید.</string>
|
||||
<string name="editGroup">ویرایش گروه: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importCatimaMessage">فایل <i>catima.zip</i> خروجی خود را از Catima برای وارد کردن انتخاب کنید.\nآن را از منوی وارد/صادر کردن در یک اپلیکیشن دیگر Catima با فشردن دکمه صادرکردن ابتدا ایجاد کنید.</string>
|
||||
<string name="importStocard">واردات از Stocard</string>
|
||||
<string name="unsupportedBarcodeType">این نوع بارکد هنوز نمیتواند نمایش داده شود. ممکن است در نسخه آینده برنامه پشتیبانی شود.</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> امتیاز</item>
|
||||
@@ -170,6 +171,7 @@
|
||||
<string name="accept">قبول</string>
|
||||
<string name="importCatima">واردات از کاتیما</string>
|
||||
<string name="importFidme">واردات از FidMe</string>
|
||||
<string name="importStocardMessage">فایل خروجی <i>***.zip</i> خود را از Stocard برای وارد کردن انتخاب کنید.\nاین فایل را با ارسال ایمیل به آدرس support@stocardapp.com و درخواست خروجی دادههای خود دریافت کنید.</string>
|
||||
<string name="importVoucherVault">واردات از صندوق کوپن</string>
|
||||
<string name="importVoucherVaultMessage">فایل خروجی <i>vouchervault.json</i> خود را از صندوق کوپن برای وارد کردن انتخاب کنید.\nآن را ابتدا با فشردن دکمه صادرکردن در صندوق کوپن ایجاد کنید.</string>
|
||||
<string name="barcodeId">مقدار بارکد</string>
|
||||
|
||||
@@ -142,6 +142,9 @@
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> valittu</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> valitut</item>
|
||||
</plurals>
|
||||
<string name="importStocard">Tuo Stocardista</string>
|
||||
<string name="importStocardMessage">Valitse tuotava <i>***.zip</i>-vienti Stocardista.
|
||||
\nHanki se lähettämällä sähköpostia osoitteeseen support@stocardapp.com ja pyytämällä tietojesi vientiä.</string>
|
||||
<string name="passwordRequired">Ole hyvä ja syötä salasana</string>
|
||||
<string name="failedGeneratingShareURL">Jaettavaa URL-osoitetta ei voitu luoda. Ilmoita tästä.</string>
|
||||
<string name="turn_flashlight_on">Käytä taskulamppua</string>
|
||||
|
||||
@@ -129,6 +129,9 @@
|
||||
<string name="backImageDescription">Image du verso</string>
|
||||
<string name="frontImageDescription">Image du recto</string>
|
||||
<string name="passwordRequired">Veuillez entrer le mot de passe</string>
|
||||
<string name="importStocardMessage">Sélectionnez votre exportation <i>***.zip</i> de Stocard pour l’importer.
|
||||
\nVous pouvez l’obtenir en envoyant un courriel à support@stocardapp.com pour demander une exportation de vos données.</string>
|
||||
<string name="importStocard">Importer depuis Stocard</string>
|
||||
<string name="turn_flashlight_off">Éteindre la lampe de poche</string>
|
||||
<string name="turn_flashlight_on">Allumer la lampe de poche</string>
|
||||
<string name="failedGeneratingShareURL">Impossible de générer une URL partageable. Veuillez signaler ceci.</string>
|
||||
@@ -305,7 +308,7 @@
|
||||
<string name="settings_automatic_column_count">Automatique</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPkpass">Sélectionner un fichier Cartes / Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Sélectionner un fichier Cartes / Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Ce fichier n\'est pas supporté</string>
|
||||
<string name="generic_error_please_retry">Désolé, un problème est survenu, veuillez réessayer...</string>
|
||||
<string name="sort_by_valid_from">Valide à partir du</string>
|
||||
@@ -313,6 +316,4 @@
|
||||
<string name="setBarcodeWidth">Définir la largeur du code-barres</string>
|
||||
<string name="card_list_widget_name">Liste des cartes</string>
|
||||
<string name="card_list_widget_empty">Après avoir ajouter des cartes de fidélité dans Catima, elles apparaîtront ici. Si vous avez des cartes, assurez-vous qu\'elles ne soient pas archivées.</string>
|
||||
<string name="cardWithNumber">Carte <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Carte <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -123,6 +123,8 @@
|
||||
<string name="importFidmeMessage">Elixe o ficheiro exportado <i>fidme-export-request-xxxxxx.zip</i> desde FidMe, e despois elixe manualmente o tipo de código de barras.\nCréao no teu perfil FidMe en Protección de Datos e despois premendo en Extraer os meus datos.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar desde Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Elixe o ficheiro de exportación <i>LoyaltyCardKeychain.csv</i> desde Loyalty Card Keychain \nCréao no menú Importar/Exportar en Loyalty Card Keychain premendo en Exportar.</string>
|
||||
<string name="importStocard">Importar desde Stocard</string>
|
||||
<string name="importStocardMessage">Elixe o ficheiro <i>***.zip</i> desde Stocard. \nPodes obtelo escribindo un correo a support@stocardapp.com e pedindo a exportación dos datos.</string>
|
||||
<string name="importVoucherVault">Importar desde Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecciona o ficheiro de exportación <i>vouchervault.json</i> desde Voucher Vault. \nCréao premendo en Exportar en Voucher Vault.</string>
|
||||
<string name="barcodeId">Valor do código de barras</string>
|
||||
@@ -295,13 +297,11 @@
|
||||
<string name="addFromPdfFile">Elixe un ficheiro PDF</string>
|
||||
<string name="errorReadingFile">Non se puido ler o ficheiro</string>
|
||||
<string name="unsupportedFile">Este ficheiro non é compatible</string>
|
||||
<string name="addFromPkpass">Selecciona un ficheiro Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Selecciona un ficheiro Passbook (.pkpass)</string>
|
||||
<string name="generic_error_please_retry">Sentímolo, pero algo fallou, inténtao outra vez…</string>
|
||||
<string name="sort_by_valid_from">Válido desde</string>
|
||||
<string name="width">Anchura</string>
|
||||
<string name="setBarcodeWidth">Establecer anchura do código de barras</string>
|
||||
<string name="card_list_widget_name">Lista de tarxetas</string>
|
||||
<string name="card_list_widget_empty">Aquí aparecerán as tarxetas fidelidade cando as engadas a Catima. Se tes tarxetas mira que non estean arquivadas.</string>
|
||||
<string name="cardWithNumber">Tarxeta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Tarxeta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
<string name="balanceParsingFailed">अमान्य शेष राशि</string>
|
||||
<string name="takePhoto">एक फोटो खींचें</string>
|
||||
<string name="wrongValueForBarcodeType">चयनित बारकोड प्रकार के लिए मान्य नहीं है</string>
|
||||
<string name="importStocard">स्टोकार्ड (Stocard) से आयात करें</string>
|
||||
<string name="app_loyalty_card_keychain">लॉयल्टी कार्ड कीचेन</string>
|
||||
<string name="no">नहीं</string>
|
||||
<string name="importFidme">Fidme से आयात करें</string>
|
||||
@@ -154,6 +155,7 @@
|
||||
<string name="balanceSentence">शेष राशि: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">कार्ड देखते समय स्क्रीन का लॉक हो जाना बंद करें</string>
|
||||
<string name="expiryStateSentenceExpired">समय अवधि समाप्त: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importStocardMessage">आयात करने के लिए स्टोकार्ड (स्टोकार्ड) से अपना <i>***.zip</i> निर्यात चुनें।\nअपने डेटा के निर्यात के लिए support@stocardapp.com पर ई-मेल करके इसे प्राप्त करें।</string>
|
||||
<string name="app_libraries">लिब्रे तृतीय-पक्ष लाइब्रेरी: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">लिब्रे तृतीय-पक्ष संसाधन: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="settings_keep_screen_on_summary">कार्ड देखते समय स्क्रीन टाइमआउट बंद करें</string>
|
||||
|
||||
@@ -75,6 +75,8 @@
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> kartice</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kartica</item>
|
||||
</plurals>
|
||||
<string name="importStocardMessage">Odaberi tvoju iz Stocard izvezenu <i>***.zip</i> datoteku koju želiš uvesti.
|
||||
\nPošalji e-mail na support@stocardapp.com s molbom za izvoz tvojih podataka.</string>
|
||||
<string name="translate_platform">na platformi Weblate</string>
|
||||
<string name="editGroup">Uređivanje grupe: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editBarcode">Uredi crtični kod</string>
|
||||
@@ -83,7 +85,8 @@
|
||||
<string name="accept">Prihvati</string>
|
||||
<string name="importCatima">Uvezi iz Catima</string>
|
||||
<string name="importFidme">Uvezi iz FidMe</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi tvoju iz LoyaltyCardKeychain izvezenu <i>LoyaltyCardKeychain.csv</i> datoteku koju želiš uvesti.
|
||||
<string name="importStocard">Uvezi iz Stocard</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi tvoju iz LoyaltyCardKeychain izvezenu <i>LoyaltyCardKeychain.csv</i> datoteku koju želiš uvesti.
|
||||
\nStvori je putem izbornika „Uvoz/Izvoz” u aplikaciji Loyalty Card Keychain i tamo pritisni „Izvoz”.</string>
|
||||
<string name="updateBarcodeQuestionText">Promijenio/la si ID. Želiš li također aktualizirati crtični kod da koristi istu vrijednost\?</string>
|
||||
<string name="importCards">Uvezi kartice</string>
|
||||
@@ -305,13 +308,8 @@
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="generic_error_please_retry">Žao nam je, nešto nije u redu, pokušaj ponovo …</string>
|
||||
<string name="addFromPkpass">Odaberi jednu Passbook datoteku (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Odaberi jednu Passbook datoteku (.pkpass)</string>
|
||||
<string name="unsupportedFile">Ova datoteka nije podržana</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Pomoću gumba za glasnoću promijeni koja se kartica prikazuje</string>
|
||||
<string name="settings_use_volume_keys_navigation">Mijenjaj kartice pomoću gumba za glasnoću</string>
|
||||
<string name="width">Širina</string>
|
||||
<string name="card_list_widget_name">Popis kartica</string>
|
||||
<string name="setBarcodeWidth">Postavi širinu barkoda</string>
|
||||
<string name="cardWithNumber">Kartica <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kartica <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -50,6 +50,8 @@
|
||||
<string name="deleteTitle">Kártya törlése</string>
|
||||
<string name="barcodeImageDescriptionWithType">A(z) <xliff:g>%s</xliff:g> vonalkód képe</string>
|
||||
<string name="noCardExistsError">A kártya nem található</string>
|
||||
<string name="importStocardMessage">Válassza ki az importálandó <i>***.zip</i> Stocard export fájlt.
|
||||
\nAz adatainak exportálását a support@stocardapp.com címre írt levélben kérheti.</string>
|
||||
<string name="importVoucherVault">Importálás a Voucher Vaultból</string>
|
||||
<string name="wrongValueForBarcodeType">Ez az érték meg megfelelő a kiválasztott vonalkódtípushoz</string>
|
||||
<string name="settings_green_theme">Zöld</string>
|
||||
@@ -123,6 +125,7 @@
|
||||
<string name="importLoyaltyCardKeychain">Importálás a Loyalty Card Keychainből</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Válassza ki a Loyalty Card Keychainből importálandó <i>LoyaltyCardKeychain.csv</i> export fájlt.
|
||||
\nEzt hozza létre a Loyalty Card Keychainben az Importálás/exportálás menüben, az Exportálás megnyomásával.</string>
|
||||
<string name="importStocard">Importálás a Stocardból</string>
|
||||
<string name="importVoucherVaultMessage">Válassza ki az importálandó <i>vouchervault.json</i> Voucher Vault export fájlt.
|
||||
\nEzt hozza létre a Voucher Vaultban az Exportálás megnyomásával.</string>
|
||||
<string name="barcodeId">Vonalkód értéke</string>
|
||||
|
||||
@@ -139,6 +139,9 @@
|
||||
<string name="importLoyaltyCardKeychain">Impor dari Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Pilih ekspor <i>LoyaltyCardKeychain.csv</i> Anda dari Loyalty Card Keychain untuk diimpor.
|
||||
\nBuat dari menu Import/Export di Loyalty Card Keychain dengan menekan Export terlebih dahulu.</string>
|
||||
<string name="importStocard">Impor dari Stocard</string>
|
||||
<string name="importStocardMessage">Pilih ekspor <i>***.zip</i> Anda dari Stocard untuk diimpor.
|
||||
\nDapatkan dengan mengirim email ke support@stocardapp.com untuk meminta ekspor data Anda.</string>
|
||||
<string name="importVoucherVault">Impor dari Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Pilih ekspor <i>vouchervault.json</i> Anda dari Voucher Vault untuk diimpor.
|
||||
\nBuat dengan menekan Ekspor di Voucher Vault terlebih dahulu.</string>
|
||||
@@ -293,7 +296,7 @@
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="addFromPkpass">Pilih file Buku Tabungan (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Pilih file Buku Tabungan (.pkpass)</string>
|
||||
<string name="unsupportedFile">File ini tidak didukung</string>
|
||||
<string name="generic_error_please_retry">Maaf, terjadi kesalahan, silakan coba lagi...</string>
|
||||
<string name="sort_by_valid_from">Berlaku dari</string>
|
||||
|
||||
@@ -129,6 +129,9 @@
|
||||
<string name="backImageDescription">Immagine posteriore</string>
|
||||
<string name="frontImageDescription">Immagine frontale</string>
|
||||
<string name="passwordRequired">Si prega di inserire la password</string>
|
||||
<string name="importStocardMessage">Seleziona il tuo file di esportazione <i>***.zip</i> da Stocard per importarlo.
|
||||
\nOttienilo inviando un\'e-mail a support@stocardapp.com chiedendo un\'esportazione dei tuoi dati.</string>
|
||||
<string name="importStocard">Importa da Stocard</string>
|
||||
<string name="turn_flashlight_off">Spegni la torcia</string>
|
||||
<string name="turn_flashlight_on">Accendi la torcia</string>
|
||||
<string name="failedGeneratingShareURL">Impossibile generare un URL condivisibile. Si prega di segnalarlo.</string>
|
||||
|
||||
@@ -128,6 +128,9 @@
|
||||
<string name="photos">画像</string>
|
||||
<string name="backImageDescription">裏</string>
|
||||
<string name="frontImageDescription">表</string>
|
||||
<string name="importStocardMessage">Stocardでエクスポートした<i>***.zip</i>ファイルを選択してください。
|
||||
\nファイルがない場合、e-mailing support@stocardapp.comにデータのエクスポートを要求してください。</string>
|
||||
<string name="importStocard">Stocardからインポート</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="other">選択済み: <xliff:g>%d</xliff:g> 枚</item>
|
||||
</plurals>
|
||||
|
||||
@@ -229,6 +229,9 @@
|
||||
<string name="importLoyaltyCardKeychainMessage">가져올 포인트 카드 키체인에서 <i>LoyaltyCardKeychain.csv</i> 내보내기를 선택합니다.
|
||||
\n먼저 내보내기를 눌러 로열티 카드 키체인의 가져오기/내보내기 메뉴에서 만드십시오.</string>
|
||||
<string name="setBarcodeId">바코드 값 설정</string>
|
||||
<string name="importStocard">Stocard에서 가져오기</string>
|
||||
<string name="importStocardMessage">가져올 Stocard에서 <i>***.zip</i> 내보내기를 선택합니다.
|
||||
\nsupport@stocardapp.com으로 이메일을 보내 데이터 내보내기를 요청하면 받을 수 있습니다.</string>
|
||||
<string name="importVoucherVault">Voucher Vault에서 가져오기</string>
|
||||
<string name="importVoucherVaultMessage">가져올 Voucher Vault에서 <i>vouchervault.json</i> 내보내기를 선택합니다.
|
||||
\n먼저 바우처 금고에서 내보내기를 눌러 생성하세요.</string>
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
<string name="exportOptionExplanation">D \' Donnéeë ginn op eng Plaz vun Hirer Wal geschriwwen.</string>
|
||||
<string name="accept">Averstane</string>
|
||||
<string name="settings_display_barcode_max_brightness">Erhellen barcode-Usiicht</string>
|
||||
<string name="importStocard">Importéieren vun Stocard</string>
|
||||
<string name="importLoyaltyCardKeychain">Import vun Loyalty Card Keychain</string>
|
||||
<string name="setBarcodeId">Leeë Si barcode-Wäert</string>
|
||||
<string name="wrongValueForBarcodeType">De Wäert ass fir de ausgewielt Barcode-Typ net gëllt</string>
|
||||
|
||||
@@ -65,6 +65,9 @@
|
||||
<string name="setBarcodeId">Nustatyti brūkšninio kodo reikšmę</string>
|
||||
<string name="sameAsCardId">Tokia pat kaip ID</string>
|
||||
<string name="barcodeId">Brūkšninio kodo reikšmė</string>
|
||||
<string name="importStocardMessage">Pasirinkite <i>***.zip</i> eksportą iš Stocard, kad galėtumėte importuoti.
|
||||
\nGaukite susisiekę el. paštu support@stocardapp.com, prašydami eksportuoti jūsų duomenis.</string>
|
||||
<string name="importStocard">Importuoti iš Stocard</string>
|
||||
<string name="importFidmeMessage">Pasirinkite <i>fidme-export-request-xxxxxx.zip</i> eksportą iš FidMe, kurį norite importuoti, ir po to brūkšninių kodų tipus pasirinkite rankiniu būdu.
|
||||
\nSukurkite jį iš savo FidMe profilio, pasirinkę Duomenų apsauga ir pirmiausia paspaudę Išgauti mano duomenis.</string>
|
||||
<string name="importFidme">Importuoti iš FidMe</string>
|
||||
|
||||
@@ -177,6 +177,8 @@
|
||||
<string name="importFidme">Ievietot no FidMe</string>
|
||||
<string name="importFidmeMessage">Jāatlasa sava <i>fidme-export-request-xxxxxx.zip</i> izguves datne no FidMe, lai ievietotu, un pēc tam pašrocīgi jāatlasa svītrkodu veidi. \nTo var izveidot savā FidMe profila sadaļā \"Data Protection\" spiežot \"Extract my data\".</string>
|
||||
<string name="importLoyaltyCardKeychain">Ievietot no Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Ievietot no Stocard</string>
|
||||
<string name="importStocardMessage">Jāatlasa sava <i>***.zip</i> izguves datne no Stocard, lai ievietotu. \nTo var iegūt, ja nosūta lūgumu izgūt savus datus uz e-pasta adresi support@stocardapp.com.</string>
|
||||
<string name="importVoucherVault">Ievietot no Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Jāatlasa sava <i>vouchervaldt.json</i> izguves datne no Voucher Vault, lai ievietotu. \nTo var izveidot spiežot \"Export\" Voucher Vault.</string>
|
||||
<string name="barcodeId">Svītrkoda vērtība</string>
|
||||
@@ -302,13 +304,11 @@
|
||||
<string name="settings_column_count_portrait">Kolonnas stateniskā novietojumā</string>
|
||||
<string name="settings_column_count_landscape">Kolonnas līmeniskā novietojumā</string>
|
||||
<string name="unsupportedFile">Šī datne netiek atbalstīta</string>
|
||||
<string name="addFromPkpass">Atlasīt Passbook datni (.pkpass/.pkpasses)</string>
|
||||
<string name="addFromPkpass">Atlasīt Passbook datni (.pkpass)</string>
|
||||
<string name="generic_error_please_retry">Atvainojamies, kaut kas nogāja greizi. Lūgums mēģināt vēlreiz...</string>
|
||||
<string name="sort_by_valid_from">Derīga no</string>
|
||||
<string name="setBarcodeWidth">Iestatīt svītrkoda platumu</string>
|
||||
<string name="width">Platums</string>
|
||||
<string name="card_list_widget_name">Karšu saraksts</string>
|
||||
<string name="card_list_widget_empty">Pēc klienta karšu pievienošanas Catima tās parādīsies šeit. Ja Tev ir kartes, jāpārliecinās, ka tās visas nav arhivētas.</string>
|
||||
<string name="cardWithNumber">Karte <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karte <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -126,7 +126,10 @@
|
||||
<string name="photos">Bilder</string>
|
||||
<string name="backImageDescription">Baksidebilde</string>
|
||||
<string name="frontImageDescription">Forsidebilde</string>
|
||||
<string name="importStocardMessage">Velg din <i>***.zip</i>-eksport fra Stocard å importere.
|
||||
\nSkaff den ved å sende e-post til support@stocardapp.com der du etterspør eksport av dataen din.</string>
|
||||
<string name="passwordRequired">Skriv inn passordet</string>
|
||||
<string name="importStocard">Importer fra Stocard</string>
|
||||
<string name="failedGeneratingShareURL">Klarte ikke å lage delbar nettadresse. Rapporter denne feilen.</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> valgt</item>
|
||||
|
||||
@@ -129,6 +129,9 @@
|
||||
<string name="backImageDescription">Achterzijde van kaart</string>
|
||||
<string name="frontImageDescription">Voorzijde van kaart</string>
|
||||
<string name="passwordRequired">Voer het wachtwoord in</string>
|
||||
<string name="importStocardMessage">Kies het te importeren Stocard-exportbestand genaamd <i>***.zip</i>.
|
||||
\nStuur een e-mail naar support@stocardapp.com waarin je vraagt om een exportbestand.</string>
|
||||
<string name="importStocard">Importeren uit Stocard</string>
|
||||
<string name="failedGeneratingShareURL">De te delen link kan niet worden gegenereerd. Meld deze fout.</string>
|
||||
<string name="turn_flashlight_off">Zaklamp uitzetten</string>
|
||||
<string name="turn_flashlight_on">Zaklamp aanzetten</string>
|
||||
|
||||
@@ -102,6 +102,9 @@
|
||||
<string name="importVoucherVaultMessage">Wybierz swój <i>vouchervault.json</i> z Voucher Vault, aby zaimportować.
|
||||
\nUtwórz go wpierw klikając Eksportuj w Voucher Vault.</string>
|
||||
<string name="importVoucherVault">Importuj z Voucher Vault</string>
|
||||
<string name="importStocardMessage">Wybierz swój <i>***.zip</i> z Stocard, aby zaimportować.
|
||||
\nUzyskaj go, wysyłając email na adres support@stocardapp.com, z prośbą o eksport Twoich danych.</string>
|
||||
<string name="importStocard">Importuj z Stocard</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Wybierz swój <i>LoyaltyCardKeychain.csv</i> z Loyalty Card Keychain, aby zaimportować.
|
||||
\nUtwórz go z menu Importuj/Eksportuj w Loyalty Card Keychain, wpierw klikając tam Eksportuj.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importuj z Loyalty Card Keychain</string>
|
||||
@@ -311,7 +314,7 @@
|
||||
<string name="settings_column_count_landscape">Kolumny w trybie pejzażu</string>
|
||||
<string name="settings_automatic_column_count">Automatycznie</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="addFromPkpass">Wybierz plik Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Wybierz plik Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Ten plik nie jest obsługiwany</string>
|
||||
<string name="generic_error_please_retry">Coś poszło nie tak, spróbuj ponownie później...</string>
|
||||
<string name="sort_by_valid_from">Poprawna forma</string>
|
||||
@@ -319,6 +322,4 @@
|
||||
<string name="width">Szerokość</string>
|
||||
<string name="card_list_widget_empty">Karty lojalnościowe dodane w aplikacji Catima pokażą się tutaj. Jeżeli masz jakieś karty, upewnij się że nie są one zarchiwizowane.</string>
|
||||
<string name="card_list_widget_name">Lista kart</string>
|
||||
<string name="cardWithNumber">Karta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecionar arquivo <i>LoyaltyCardKeychain.csv</i>, exportado do Loyalty Card Keychain, para importação.
|
||||
\nPrimeiro, crie-o pelo menu Importar/Exportar no Loyalty Card Keychain clicando em Exportar.</string>
|
||||
<string name="setBarcodeId">Definir valor do código de barras</string>
|
||||
<string name="importStocard">Importar de Stocard</string>
|
||||
<string name="importVoucherVault">Importar de Cofre de Vouchers</string>
|
||||
<string name="barcodeId">Valor no código de barras</string>
|
||||
<string name="sameAsCardId">Igual ao ID</string>
|
||||
@@ -279,6 +280,8 @@
|
||||
<string name="importFidme">Importar de FidMe</string>
|
||||
<string name="importFidmeMessage">Selecione o arquivo <i>fidme-export-request-xxxxxx.zip</i>, exportado de FidMe, para importação e em seguida selecione o tipo de código de barras manualmente.
|
||||
\nCrie-o pelo seu perfil no FidMe escolhendo \'Proteção de Dados\' (Data Protection) e então clicando em \"Extrair meus dados\".</string>
|
||||
<string name="importStocardMessage">Selecionar arquivo <i>***.zip</i>, exportado de Stocard, para importação.
|
||||
\nObtenha-o enviando um e-mail para support@stocardapp.com solicitando exportação dos seus dados.</string>
|
||||
<string name="importVoucherVaultMessage">Selecionar arquivo<i>vouchervault.json</i>, exportado de Voucher Vault, para importação.
|
||||
\nPrimeiro, crie-o pressionando em Exportar no Voucher Vault.</string>
|
||||
<string name="enter_card_id">Insira o ID ou texto escrito no seu cartão</string>
|
||||
@@ -306,13 +309,11 @@
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="unsupportedFile">Este arquivo não é suportado</string>
|
||||
<string name="addFromPkpass">Selecionar um arquivo do gerenciador de senhas (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Selecionar um arquivo do gerenciador de senhas (.pkpass)</string>
|
||||
<string name="generic_error_please_retry">Desculpe, alguma coisa deu errado, por favor tente novamente...</string>
|
||||
<string name="sort_by_valid_from">Válido a partir de</string>
|
||||
<string name="width">Largura</string>
|
||||
<string name="setBarcodeWidth">Definir largura do código de barras</string>
|
||||
<string name="card_list_widget_name">Lista de cartões</string>
|
||||
<string name="card_list_widget_empty">Depois que você adicionar alguns cartões de fidelidade no Catima, eles aparecerão aqui. Se você tiver cartões, verifique se eles não estão todos arquivados.</string>
|
||||
<string name="cardWithNumber">Cartão <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
<string name="sameAsCardId">Igual ao identificador</string>
|
||||
<string name="importFidmeMessage">Selecione a exportação <i>fidme-export-request-xxxxxx.zip</i> do FidMe para importar e depois selecione os tipos de código de barras manualmente.
|
||||
\nPrimeiro crie a exportação no seu perfil do FidMe escolhendo a opção \"Proteção de dados\" e em seguida pressionando \"Extrair os meus dados\".</string>
|
||||
<string name="importStocardMessage">Selecione a exportação <i>***.zip</i> do Stocard para importar.
|
||||
\nObtenha-o através do e-mail support@stocardapp.com solicitando uma exportação dos seus dados.</string>
|
||||
<string name="barcodeId">Valor do código de barras</string>
|
||||
<string name="wrongValueForBarcodeType">O valor não é válido para o tipo de código de barras selecionado</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quero partilhar alguns cartões</string>
|
||||
@@ -136,6 +138,7 @@
|
||||
<string name="importLoyaltyCardKeychain">Importar do Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione a exportação <i>LoyaltyCardKeychain.csv</i> do Loyalty Card Keychain para importar.
|
||||
\nPrimeiro crie a exportação no menu \"Importar / exportar\" no Loyalty Card Keychain pressionando \"Exportar\".</string>
|
||||
<string name="importStocard">Importar do Stocard</string>
|
||||
<string name="importVoucherVault">Importar do Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecione a exportação <i>vouchervault.json</i> do Voucher Vault para importar.
|
||||
\nCrie-a primeiro pressionando a opção \"Exportar\" no Voucher Vault.</string>
|
||||
@@ -305,7 +308,7 @@
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPkpass">Selecionar um ficheiro Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Selecionar um ficheiro Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Este ficheiro não é suportado</string>
|
||||
<string name="generic_error_please_retry">Lamento, ocorreu um erro, tente novamente...</string>
|
||||
<string name="sort_by_valid_from">Válido a partir de</string>
|
||||
@@ -313,6 +316,4 @@
|
||||
<string name="setBarcodeWidth">Definir a largura do código de barras</string>
|
||||
<string name="card_list_widget_name">Lista de cartões</string>
|
||||
<string name="card_list_widget_empty">Após adicionar cartões de fidelidade em Catima, eles aparecerão aqui. Se tem cartões, certifique-se de que não estão todos arquivados.</string>
|
||||
<string name="cardWithNumber">Cartão <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -166,6 +166,8 @@
|
||||
<string name="importFidmeMessage">Selecione a exportação <i>fidme-export-request-xxxxxx.zip</i> do FidMe para importar e depois selecione os tipos de código de barras manualmente. \nPrimeiro crie a exportação no seu perfil do FidMe escolhendo a opção \"Proteção de dados\" e em seguida pressionando \"Extrair os meus dados\".</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar do Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Selecione a exportação <i>LoyaltyCardKeychain.csv</i> do Loyalty Card Keychain para importar. \nPrimeiro crie a exportação no menu \"Importar / exportar\" no Loyalty Card Keychain pressionando \"Exportar\".</string>
|
||||
<string name="importStocard">Importar do Stocard</string>
|
||||
<string name="importStocardMessage">Selecione a exportação <i>***.zip</i> do Stocard para importar. \nObtenha-o através do e-mail support@stocardapp.com solicitando uma exportação dos seus dados.</string>
|
||||
<string name="importVoucherVault">Importar do Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecione a exportação <i>vouchervault.json</i> do Voucher Vault para importar. \nCrie-a primeiro pressionando a opção \"Exportar\" no Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras ainda não pode ser mostrado. Pode vir a ser suportado numa versão posterior da aplicação.</string>
|
||||
@@ -301,13 +303,11 @@
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
<string name="useFrontImage">Utilizar imagem frontal</string>
|
||||
<string name="useBackImage">Utilizar imagem do verso</string>
|
||||
<string name="addFromPkpass">Selecionar um ficheiro Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Selecionar um ficheiro Passbook (.pkpass)</string>
|
||||
<string name="unsupportedFile">Este ficheiro não é suportado</string>
|
||||
<string name="generic_error_please_retry">Lamento, ocorreu um erro, tente novamente...</string>
|
||||
<string name="setBarcodeWidth">Definir Largura do Código de Barra</string>
|
||||
<string name="width">Largura</string>
|
||||
<string name="card_list_widget_name">Lista de cartões</string>
|
||||
<string name="card_list_widget_empty">Após adicionar cartões de fidelidade em Catima, eles aparecerão aqui. Se tem cartões, certifique-se de que não estão todos arquivados.</string>
|
||||
<string name="cardWithNumber">Cartão <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Cartão <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
<string name="photos">Imagini</string>
|
||||
<string name="noGiftCardsGroup">Adăugați câteva carduri, iar apoi atribuiți-le grupului aici.</string>
|
||||
<string name="importCatima">Importați din Catima</string>
|
||||
<string name="importStocard">Importați din Stocard</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Aș dori să partajez niște carduri cu tine</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Drepturi de autor © 2019–<xliff:g>%d</xliff:g> Sylvia van Os și contribuitorii</string>
|
||||
<string name="translate_platform">pe Weblate</string>
|
||||
@@ -202,6 +203,7 @@
|
||||
<string name="setBarcodeHeight">Setați înălțimea codului de bare</string>
|
||||
<string name="settings_landscape_orientation">Orizontal</string>
|
||||
<string name="privacy_policy">Politica de Confidențialitate</string>
|
||||
<string name="importStocardMessage">Selectați exportul dvs. <i>***.zip</i> din Stocard pentru a-l importa.\nGenerați întâi fișierul solicitând prin e-mail către support@stocardapp.com un export al datelor dumneavoastră.</string>
|
||||
<string name="openBackImageInGalleryApp">Deschideți imaginea din spate în aplicația galerie</string>
|
||||
<string name="settings_system_locale">Sistem</string>
|
||||
<string name="updateBalance">Actualizați balanța</string>
|
||||
|
||||
@@ -130,7 +130,10 @@
|
||||
<string name="backImageDescription">Задняя сторона</string>
|
||||
<string name="frontImageDescription">Лицевая сторона</string>
|
||||
<string name="photos">Фото</string>
|
||||
<string name="importStocardMessage">Выберите для импортирования файл <i>***.zip</i>.
|
||||
\nЭтот файл можно получить по электронной почте от support@stocardapp.com, предварительно запросив экспорт ваших данных.</string>
|
||||
<string name="passwordRequired">Введите пароль</string>
|
||||
<string name="importStocard">Импорт из Stocard</string>
|
||||
<string name="failedGeneratingShareURL">Невозможно создать URL для обмена. Пожалуйста, сообщите об этом.</string>
|
||||
<string name="turn_flashlight_off">Отключить вспышку</string>
|
||||
<string name="turn_flashlight_on">Включить вспышку</string>
|
||||
@@ -312,13 +315,11 @@
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="unsupportedFile">Данный файл не поддерживается</string>
|
||||
<string name="addFromPkpass">Выбрать файл Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Выбрать файл Passbook (.pkpass)</string>
|
||||
<string name="generic_error_please_retry">Извините, что-то пошло не так, попробуйте ещё раз…</string>
|
||||
<string name="sort_by_valid_from">Начало действия</string>
|
||||
<string name="width">Ширина</string>
|
||||
<string name="setBarcodeWidth">Указать ширину штрих-кода</string>
|
||||
<string name="card_list_widget_name">Список карт</string>
|
||||
<string name="card_list_widget_empty">После добавления карт лояльности в Catima, они появятся здесь. Если у вас есть карты, убедитесь, что они не архивированы.</string>
|
||||
<string name="cardWithNumber">Карта <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Карта <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
<string name="translate_platform">na Weblate</string>
|
||||
<string name="showMoreInfo">Zobraziť podrobnosti</string>
|
||||
<string name="yes">Áno</string>
|
||||
<string name="importStocard">Import z aplikácie Stocard</string>
|
||||
<string name="selectColor">Vybrať farbu</string>
|
||||
<string name="setIcon">Nastavenie miniatúry</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
@@ -232,6 +233,8 @@
|
||||
<string name="settings_landscape_orientation">Na šírku</string>
|
||||
<string name="importFidmeMessage">Vyberte svoj <i>fidme-export-request-xxxxxx.zip</i> export zo služby FidMe pre import a potom vyberte typy čiarových kódov ručne.
|
||||
\nVytvorte ho z profilu FidMe tak, že najprv vyberiete položku Ochrana údajov a potom stlačíte tlačidlo Extrahovať moje údaje.</string>
|
||||
<string name="importStocardMessage">Vyberte svoj <i>***.zip</i> export zo Stocard pre import.
|
||||
\nZískate ho zaslaním e-mailu na adresu support@stocardapp.com, v ktorom požiadate o export svojich údajov.</string>
|
||||
<string name="currentBalanceSentence">Aktuálny zostatok: <xliff:g>%s</xliff:g></string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Chcem sa s vami zdielať karty</string>
|
||||
<string name="app_contributors">Podporili: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
@@ -308,11 +311,9 @@
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPkpass">Vyberte súbor Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Vyberte súbor Passbook (.pkpass)</string>
|
||||
<string name="settings_use_volume_keys_navigation">Zmena kariet pomocou tlačidiel hlasitosti</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Pre posúvanie medzi kartami používať tlačidlá hlasitosti</string>
|
||||
<string name="card_list_widget_name">Zoznam kariet</string>
|
||||
<string name="card_list_widget_empty">Po pridaní vernostných kariet do Catima sa zobrazia tu. Ak máte karty, uistite sa, že nie sú všetky archivované.</string>
|
||||
<string name="cardWithNumber">Karta <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Karta <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,84 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_add">Dodaj</string>
|
||||
<string name="noGiftCards">Pritisni gumb + za dodajanje nove kartice ali gumb ⋮ v meniju za uvoz.</string>
|
||||
<string name="noGiftCards">Pritisnite gumb + za dodajanje nove kartice ali gumb⋮v meniju za uvoz baze kartic iz datoteke.</string>
|
||||
<string name="storeName">Ime</string>
|
||||
<string name="note">Opomba</string>
|
||||
<string name="note">Zabeležka</string>
|
||||
<string name="cardId">Št. kartice</string>
|
||||
<string name="cancel">Prekliči</string>
|
||||
<string name="save">Shrani</string>
|
||||
<string name="edit">Uredi</string>
|
||||
<string name="delete">Izbriši</string>
|
||||
<string name="confirm">Potrdi</string>
|
||||
<string name="ok">V redu</string>
|
||||
<string name="sendLabel">Pošlji …</string>
|
||||
<string name="editCardTitle">Uredi kartico</string>
|
||||
<string name="addCardTitle">Dodaj kartico</string>
|
||||
<string name="ok">Vredu</string>
|
||||
<string name="sendLabel">Pošlji…</string>
|
||||
<string name="editCardTitle">Uredi kartico zvestobe</string>
|
||||
<string name="addCardTitle">Dodaj kartico zvestobe</string>
|
||||
<string name="scanCardBarcode">Skeniraj črtno kodo</string>
|
||||
<string name="cardShortcut">Bližnjica do kartice</string>
|
||||
<string name="noCardsMessage">Najprej dodaj kartico</string>
|
||||
<string name="noCardExistsError">Te kartice ni bilo mogoče najti</string>
|
||||
<string name="importExport">Uvozi/Izvozi</string>
|
||||
<string name="noCardsMessage">Najprej dodajte kartico</string>
|
||||
<string name="noCardExistsError">Te kartice zvestobe ni bilo mogoče najti</string>
|
||||
<string name="importExport">Uvozi/izvozi</string>
|
||||
<string name="exportName">Izvozi</string>
|
||||
<string name="importExportHelp">Varnostna kopija podatkovne baze omogoča prenos na drugo napravo.</string>
|
||||
<string name="importExportHelp">Varnostna kopija podatkovne baze kartic zvestobe omogoča prenos baze kartic tudi na drugo napravo.</string>
|
||||
<string name="importSuccessfulTitle">Uvoz je bil uspešen</string>
|
||||
<string name="importFailedTitle">Uvoz ni uspel</string>
|
||||
<string name="importFailed">Napaka pri uvozu</string>
|
||||
<string name="importFailed">Napaka pri uvozu baze</string>
|
||||
<string name="exportSuccessfulTitle">Izvoz je uspel</string>
|
||||
<string name="exportFailedTitle">Izvoz ni uspel</string>
|
||||
<string name="exportFailed">Izvoza ni bilo mogoče izvesti</string>
|
||||
<string name="importing">Uvažanje …</string>
|
||||
<string name="exporting">Izvažanje …</string>
|
||||
<string name="exportFailed">Napaka pri izvozu baze</string>
|
||||
<string name="importing">Uvažanje…</string>
|
||||
<string name="exporting">Izvažanje…</string>
|
||||
<string name="importOptionFilesystemTitle">Uvozi iz datotečnega sistema</string>
|
||||
<string name="importOptionFilesystemExplanation">Izberi specifično datoteko iz datotečnega sistema.</string>
|
||||
<string name="importOptionFilesystemExplanation">Izberite specifično datoteko iz datotečnega sistema.</string>
|
||||
<string name="importOptionFilesystemButton">Iz datotečnega sistema</string>
|
||||
<string name="about">Več o aplikaciji</string>
|
||||
<string name="app_license">Prosta programska oprema s copyleftom, licenca GPL3+</string>
|
||||
<string name="app_license">Odprtokodna programska oprema, licencirana skladno s GPL3+</string>
|
||||
<string name="about_title_fmt">Več o <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Verzija: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Izberi črtno kodo</string>
|
||||
<string name="selectBarcodeTitle">Izberite črtno kodo</string>
|
||||
<string name="thumbnailDescription">Sličica</string>
|
||||
<string name="settings">Nastavitve</string>
|
||||
<string name="settings_display_barcode_max_brightness">Povečaj osvetljenost zaslona</string>
|
||||
<string name="deleteTitle">Izbriši kartico</string>
|
||||
<string name="deleteConfirmation">Prosim potrdi, če želiš izbrisati to kartico?</string>
|
||||
<string name="settings_display_barcode_max_brightness">Povečaj osvetljenost prikaza črtne kode</string>
|
||||
<string name="deleteTitle">Odstrani kartico zvestobe</string>
|
||||
<string name="deleteConfirmation">Prosim potrdite, če želite izbrisati to kartico\?</string>
|
||||
<string name="card">Kartica</string>
|
||||
<string name="addFromImage">Izberi sliko iz galerije</string>
|
||||
<string name="addManually">Ročno vnesi črtno kodo</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Zapusti brez shranjevanja?</string>
|
||||
<string name="addFromImage">Izberite sliko iz galerije</string>
|
||||
<string name="addManually">Ročno vnesite ID kartice</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Zapustite brez shranjevanja\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Izhod</string>
|
||||
<string name="moveDown">Premikanje navzdol</string>
|
||||
<string name="moveUp">Premik navzgor</string>
|
||||
<string name="failedOpeningFileManager">Najprej namesti upravitelja datotek.</string>
|
||||
<string name="failedOpeningFileManager">Najprej namestite upravitelja datotek.</string>
|
||||
<string name="deleteConfirmationGroup">Brisanje skupine\?</string>
|
||||
<string name="all">Vse</string>
|
||||
<string name="noGroupCards">Ta skupina je prazna</string>
|
||||
<string name="noGroups">Pritisni gumb +, če želiš dodati skupine za kategorizacijo.</string>
|
||||
<string name="noGroups">Pritisnite gumb \"+\", če želite dodati skupine za kategorizacijo.</string>
|
||||
<string name="groups">Skupine</string>
|
||||
<string name="enter_group_name">Vnesi ime skupine</string>
|
||||
<string name="enter_group_name">Vnesite ime skupine</string>
|
||||
<string name="exportSuccessful">Podatkovna baza izvožena</string>
|
||||
<string name="importSuccessful">Podatkovna baza uvožena</string>
|
||||
<string name="intent_import_card_from_url_share_text">S tabo želim deliti kartico</string>
|
||||
<string name="intent_import_card_from_url_share_text">Z vami želim deliti kartico</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Prepreči zaklepanje zaslona</string>
|
||||
<string name="settings_keep_screen_on">Ohrani zaslon vklopljen</string>
|
||||
<string name="settings_keep_screen_on">Ohranite zaslon vklopljen</string>
|
||||
<string name="settings_dark_theme">Temno</string>
|
||||
<string name="settings_light_theme">Svetlo</string>
|
||||
<string name="settings_system_theme">Sistem</string>
|
||||
<string name="settings_theme">Tema</string>
|
||||
<string name="starImage">Zvezdica za priljubljene</string>
|
||||
<string name="app_copyright_old">Na podlagi aplikacije Loyalty Card Keychain \navtorske pravice © 2016-2020 Branden Archer</string>
|
||||
<string name="app_copyright_old">Bazira na podlagi aplikacije Loyalty Card Keychain
|
||||
\ncopyright © 2016-2020 Branden Archer</string>
|
||||
<string name="exportOptionExplanation">Podatki bodo zapisani na izbrano mesto.</string>
|
||||
<string name="failedParsingImportUriError">Ni bilo mogoče razčleniti URI uvoza</string>
|
||||
<string name="share">Deli</string>
|
||||
<string name="share">Delite</string>
|
||||
<string name="unstar">Odstrani iz priljubljenih</string>
|
||||
<string name="star">Dodaj med priljubljene</string>
|
||||
<string name="noBarcode">Brez črtne kode</string>
|
||||
<string name="barcodeType">Vrsta črtne kode</string>
|
||||
<string name="noMatchingGiftCards">Brez rezultata iskanja. Poskusi spremeniti iskalni niz.</string>
|
||||
<string name="action_search">Išči</string>
|
||||
<string name="exportPasswordHint">Vnesi geslo</string>
|
||||
<string name="exportPassword">Izberi geslo za zaščito izvoza (neobvezno)</string>
|
||||
<string name="help_translate_this_app">Pomagaj pri prevajanju aplikacije</string>
|
||||
<string name="noMatchingGiftCards">Brez rezultata iskanja. Poskusite spremeniti iskalni niz.</string>
|
||||
<string name="action_search">Iskanje</string>
|
||||
<string name="exportPasswordHint">Vnesite geslo</string>
|
||||
<string name="exportPassword">Izberite geslo za zaščito izvoza (neobvezno)</string>
|
||||
<string name="help_translate_this_app">Pomagajte pri prevajanju aplikacije</string>
|
||||
<string name="version_history">Zgodovina različic</string>
|
||||
<string name="settings_brown_theme">Rjava</string>
|
||||
<string name="settings_green_theme">Zelena</string>
|
||||
@@ -92,52 +93,53 @@
|
||||
<string name="settings_locale">Jezik</string>
|
||||
<string name="barcodeImageDescriptionWithType">Slika <xliff:g>%s</xliff:g> črtna koda</string>
|
||||
<string name="sort_by">Razvrsti po</string>
|
||||
<string name="reverse">… v obratnem vrstnem redu</string>
|
||||
<string name="reverse">...v obratnem vrstnem redu</string>
|
||||
<string name="sort_by_expiry">Potek</string>
|
||||
<string name="sort_by_most_recently_used">Nazadnje uporabljene</string>
|
||||
<string name="sort_by_name">Ime</string>
|
||||
<string name="sort">Razvrsti</string>
|
||||
<string name="license">Licence</string>
|
||||
<string name="on_github">na GitHubu</string>
|
||||
<string name="rate_this_app">Oceni aplikacijo</string>
|
||||
<string name="report_error">Prijavi napako</string>
|
||||
<string name="on_google_play">v Trgovini Google Play</string>
|
||||
<string name="rate_this_app">Ocenite aplikacijo</string>
|
||||
<string name="report_error">Prijavite napako</string>
|
||||
<string name="on_google_play">na Trgovini Google Play</string>
|
||||
<string name="and_data_usage">in uporaba podatkov</string>
|
||||
<string name="source_repository">Izvorna koda</string>
|
||||
<string name="points">Točke</string>
|
||||
<string name="currency">Valuta</string>
|
||||
<string name="balance">Stanje</string>
|
||||
<string name="balance">Stanje na računu</string>
|
||||
<string name="errorReadingImage">Slike ni bilo mogoče prebrati</string>
|
||||
<string name="noBarcodeFound">Črtna koda ni bila najdena</string>
|
||||
<string name="balanceSentence">Stanje: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseImportType">Uvozi podatke iz</string>
|
||||
<string name="importCatima">Izvoz iz aplikacije Catima</string>
|
||||
<string name="importVoucherVault">Uvoz iz aplikacije Voucher Vault</string>
|
||||
<string name="importStocard">Izvoz iz aplikacije Stocard</string>
|
||||
<string name="importVoucherVault">Izvoz iz aplikacije Voucher Vault</string>
|
||||
<string name="privacy_policy">Politika zasebnosti</string>
|
||||
<string name="turn_flashlight_off">Izklopi svetilko</string>
|
||||
<string name="turn_flashlight_on">Vklopi svetilko</string>
|
||||
<string name="passwordRequired">Vnesi geslo</string>
|
||||
<string name="turn_flashlight_off">Izklop svetilke</string>
|
||||
<string name="turn_flashlight_on">Vklop svetilke</string>
|
||||
<string name="passwordRequired">Vnesite geslo</string>
|
||||
<string name="accept">Sprejmi</string>
|
||||
<string name="importLoyaltyCardKeychain">Uvoz iz aplikacije Kartice zvestobe</string>
|
||||
<string name="importLoyaltyCardKeychain">Uvoz iz aplikacije Loyalty Card Keychain</string>
|
||||
<string name="barcodeId">Vsebina črtne kode</string>
|
||||
<string name="sameAsCardId">Enaka kot Št. kartice</string>
|
||||
<string name="sameAsCardId">Enaka kot ID kartice</string>
|
||||
<string name="setBarcodeId">Nastavi vsebino črtne kode</string>
|
||||
<string name="wrongValueForBarcodeType">Ta vrednost ni veljavna pri izbranem tipu črtne kode</string>
|
||||
<string name="takePhoto">Slikaj</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">S tabo želim deliti kartice zvestobe</string>
|
||||
<string name="wrongValueForBarcodeType">Ta vrednost ni veljavna pri izbranem tipu čtne kode</string>
|
||||
<string name="takePhoto">Naredi fotografijo</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Z vami želim deliti kartice zvestobe</string>
|
||||
<string name="importFidme">Uvoz iz aplikacije FidMe</string>
|
||||
<string name="no">Ne</string>
|
||||
<string name="yes">Da</string>
|
||||
<string name="frontImageDescription">Prednja stran</string>
|
||||
<string name="backImageDescription">Zadnja stran</string>
|
||||
<string name="setBackImage">Nastavi sliko zadnje strani</string>
|
||||
<string name="setBackImage">Nastavi sliko sprednje strani</string>
|
||||
<string name="setFrontImage">Nastavi sliko sprednje strani</string>
|
||||
<string name="photos">Fotografije</string>
|
||||
<string name="updateBarcodeQuestionText">Spremenil si št. kartice. Želiš posodobiti tudi črtno kodo na enako vrednost?</string>
|
||||
<string name="updateBarcodeQuestionTitle">Posodobiti črtno kodo?</string>
|
||||
<string name="updateBarcodeQuestionText">Spremenili ste ID kartice. Želite posodobiti tudi črtno kodo na enako vrednost\?</string>
|
||||
<string name="updateBarcodeQuestionTitle">Posodobi črtno kodo?</string>
|
||||
<string name="removeImage">Odstrani sliko</string>
|
||||
<string name="unsupportedBarcodeType">Te vrste črtne kode aplikacija ne more prikazati. Morda bo to možno v prihodnosti.</string>
|
||||
<string name="shortcutSelectCard">Izberi kartico</string>
|
||||
<string name="shortcutSelectCard">Izberite kartico</string>
|
||||
<string name="starred">Priljubljene</string>
|
||||
<string name="include_if_asking_support">Ob zahtevani pomoči podpore je potrebno vključiti naslednje informacije:</string>
|
||||
<plurals name="balancePoints">
|
||||
@@ -149,22 +151,22 @@
|
||||
<string name="editBarcode">Uredi črtno kodo</string>
|
||||
<string name="group_edit">Uredi skupino</string>
|
||||
<string name="never">Nikoli</string>
|
||||
<string name="importCards">Uvozi kartice</string>
|
||||
<string name="importCards">Uvozite kartice</string>
|
||||
<string name="currentBalanceSentence">Trenutno stanje: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Novo stanje: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_loyalty_card_keychain">Kartice zvestobe</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> izbrana</item>
|
||||
<item quantity="two"><xliff:g>%d</xliff:g> izbrani</item>
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> izbrane</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> izbranih</item>
|
||||
</plurals>
|
||||
<string name="settings_card_orientation">Orientacija zaslona</string>
|
||||
<string name="settings_card_orientation">Orientacija črtne kode</string>
|
||||
<string name="settings_follow_system_orientation">Sledi sistemu</string>
|
||||
<string name="settings_portrait_orientation">Pokončno</string>
|
||||
<string name="settings_landscape_orientation">Ležeče</string>
|
||||
<string name="settings_portrait_orientation">Portret</string>
|
||||
<string name="settings_landscape_orientation">Pokrajina</string>
|
||||
<string name="settings_lock_on_opening_orientation">Ohrani usmerjenost uporabljeno pri odpiranju kartice</string>
|
||||
<string name="setIcon">Nastavi sličico</string>
|
||||
<string name="setIcon">Nastavite ikono</string>
|
||||
<string name="showMoreInfo">Prikaži informacije</string>
|
||||
<string name="updateBalance">Posodobi stanje</string>
|
||||
<string name="failedToRetrieveImageFile">Slikovne datoteke ni bilo mogoče pridobiti</string>
|
||||
@@ -174,15 +176,15 @@
|
||||
<string name="duplicateCard">Podvoji</string>
|
||||
<string name="archive">Arhiviraj</string>
|
||||
<string name="unarchive">Odpakiraj arhiv</string>
|
||||
<string name="archived">Kartica arhivirana</string>
|
||||
<string name="archived">Karta arhivirana</string>
|
||||
<string name="unarchived">Kartica ni arhivirana</string>
|
||||
<string name="failedLaunchingPhotoPicker">Ni mogoče najti podprte aplikacije za gledanje slik</string>
|
||||
<string name="previousCard">Prejšnja</string>
|
||||
<string name="nextCard">Naslednja</string>
|
||||
<string name="updateBalanceTitle">Koliko si porabil ali prejel?</string>
|
||||
<string name="updateBalanceHint">Vpiši vrednost</string>
|
||||
<string name="previousCard">Prejšnje</string>
|
||||
<string name="nextCard">Naslednje</string>
|
||||
<string name="updateBalanceTitle">Koliko ste porabili?</string>
|
||||
<string name="updateBalanceHint">Vpišite vrednost</string>
|
||||
<string name="group_name_already_in_use">Ime skupine je že uporabljeno</string>
|
||||
<string name="group_name_is_empty">Ime skupine ne sme biti prazno</string>
|
||||
<string name="group_name_is_empty">Ime skupine ne more biti prazno polje</string>
|
||||
<string name="group_updated">Skupina posodobljena</string>
|
||||
<string name="groupsList">Skupine: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_libraries">Proste knjižnice tretjih oseb: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
@@ -192,25 +194,29 @@
|
||||
<string name="expiryDate">Datum poteka veljavnosti</string>
|
||||
<string name="chooseExpiryDate">Izberi datum poteka veljavnosti</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Premakni črtno kodo na vrh zaslona</string>
|
||||
<string name="importCatimaMessage">Izberi svoj obstoječ Catima <i>catima.zip</i> izvoz podatkov za uvoz v aplikacijo. \nNajprej izvozi podatke v meniju \"Uvozi/Izvozi\" v drugi aplikaciji Catima s pritiskom na Izvozi.</string>
|
||||
<string name="importVoucherVaultMessage">Izberi svoj <i>vouchervault.json</i> Voucher Vault izvoz podatkov za uvoz. \nIzvoz podatkov dobiš s pritiskom na gumb »Export« v Voucher Vault first.</string>
|
||||
<string name="failedToOpenUrl">Prvo namesti spletni brskalnik</string>
|
||||
<string name="welcome">Pozdravljen v Catimi</string>
|
||||
<string name="noGiftCardsGroup">Ustvari kartice in jih dodeli tej skupini.</string>
|
||||
<string name="importCatimaMessage">Izberi svoj obstoječ Catima <i>catima.zip</i> izvoz podatkov za uvoz v aplikacijo.
|
||||
\nNajprej izvozi podatke v meniju \"Uvozi/Izvozi\" v drugi aplikaciji Catima s pritiskom na izbiro izvozi.</string>
|
||||
<string name="importStocardMessage">Izberi svoj <i>***.zip</i> Stocard izvoz podatkov za uvoz.
|
||||
\nIzvoz podatkov dobiš s pošiljanjem elektronske pošte na support@stocardapp.com, kjer povprašaš za izvoz svojih podatkov.</string>
|
||||
<string name="importVoucherVaultMessage">Izberi svoj <i>vouchervault.json</i> Voucher Vault izvoz podatkov za uvoz.
|
||||
\nIzvoz podatkov dobiš s pritiskom na gumb \"Export\" v Voucher Vault first.</string>
|
||||
<string name="failedToOpenUrl">Prvo namestite spletni brskalnik</string>
|
||||
<string name="welcome">Pozdravljeni v Catimi</string>
|
||||
<string name="noGiftCardsGroup">Kreiraj kartice in jim dodeli skupino tukaj.</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Izbriši <xliff:g>%d</xliff:g> kartico</item>
|
||||
<item quantity="two">Izbriši <xliff:g>%d</xliff:g> kartici</item>
|
||||
<item quantity="few">Izbriši <xliff:g>%d</xliff:g> kartice</item>
|
||||
<item quantity="other">Izbriši <xliff:g>%d</xliff:g> kartic</item>
|
||||
<item quantity="one">Izbriši <xliff:g>%d</xliff:g> kartico zvestobe</item>
|
||||
<item quantity="two">Izbriši <xliff:g>%d</xliff:g> kartici zvestobe</item>
|
||||
<item quantity="few">Izbriši <xliff:g>%d</xliff:g> kartice zvestobe</item>
|
||||
<item quantity="other">Izbriši <xliff:g>%d</xliff:g> kartic zvestobe</item>
|
||||
</plurals>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Izbriši to <xliff:g>%d</xliff:g> kartico dokončno?</item>
|
||||
<item quantity="two">Izbriši ti dve <xliff:g>%d</xliff:g> kartici dokončno?</item>
|
||||
<item quantity="few">Izbriši te <xliff:g>%d</xliff:g> kartice dokončno?</item>
|
||||
<item quantity="other">Izbriši teh <xliff:g>%d</xliff:g> kartic dokončno?</item>
|
||||
<item quantity="one">Izbriši to <xliff:g>%d</xliff:g> kartico zvestobe dokončno\?</item>
|
||||
<item quantity="two">Izbriši ti dve <xliff:g>%d</xliff:g> kartici zvestobe dokončno\?</item>
|
||||
<item quantity="few">Izbriši te <xliff:g>%d</xliff:g> kartice zvestobe dokončno\?</item>
|
||||
<item quantity="other">Izbriši teh <xliff:g>%d</xliff:g> kartic zvestobe dokončno\?</item>
|
||||
</plurals>
|
||||
<string name="cameraPermissionDeniedTitle">Ni bilo mogoče dostopati do kamere</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Catima potrebuje dostop do vaše kamere za skeniranje črtnih kod. Pritisni tukaj in spremeni nastavitve dovoljenj.</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Catima potrebuje dostop do vaše kamere za skeniranje črtnih kod. Pritisnite tukaj in spremenite nastavitve dovoljenj.</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> kartica</item>
|
||||
<item quantity="two"><xliff:g>%d</xliff:g> kartici</item>
|
||||
@@ -218,11 +224,13 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kartic</item>
|
||||
</plurals>
|
||||
<string name="editGroup">Urejanje skupine: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importFidmeMessage">Izberi svoj <i>fidme-export-request-xxxxxx.zip</i> FidMe izvoz podatkov za uvoz in naknadno ročno izberi tipe črtnih kod. \nFidMe izvoz podatkov naredi v svojem FidMe profilu z izbiro »Data Protection« in nato s pritiskom na gumb »Extract my data first«.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Izberi svoj <i>LoyaltyCardKeychain.csv</i> Kartice zvestobe izvoz podatkov za uvoz. \nKartice zvestobe izvoz podatkov naredi s pritiskom na gumb »Import/Export« v meniju s pritiskom najprej na gumb »Export«.</string>
|
||||
<string name="failedGeneratingShareURL">URL-ja za skupno rabo ni bilo mogoče ustvariti. Prosim prijavi napako.</string>
|
||||
<string name="importFidmeMessage">Izberi svoj <i>fidme-export-request-xxxxxx.zip</i> FidMe izvoz podatkov za uvoz in naknadno ročno izberi tipe črtnih kod.
|
||||
\nFidMe izvoz podatkov naredi v svojem FidMe profilu z izbiro \"Data Protection\" in nato s pritiskom na gumb \"Extract my data first\".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Izberi svoj <i>LoyaltyCardKeychain.csv</i> Loyalty Card Keychain izvoz podatkov za uvoz.
|
||||
\nLoyalty Card Keychain izvoz podatkov naredi s pritiskom na gumb \"Import/Export\" v meniju s pritiskom najprej na gumb \"Export\".</string>
|
||||
<string name="failedGeneratingShareURL">URL-ja za skupno rabo ni bilo mogoče ustvariti. Prosim prijavite napako.</string>
|
||||
<string name="settings_oled_dark">Čisto črno ozadje za temno temo</string>
|
||||
<string name="selectColor">Izberi barvo</string>
|
||||
<string name="selectColor">Izberite barvo</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="app_contributors">Omogočeno od: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="barcodeLongPressMessage">V aplikaciji za gledanje slik lahko odpremo samo slike</string>
|
||||
@@ -232,86 +240,16 @@
|
||||
<item quantity="few"><xliff:g>%1$d</xliff:g> kartice (<xliff:g id="archivedCount">%2$d</xliff:g> arhivirane)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kartic (<xliff:g id="archivedCount">%2$d</xliff:g> arhiviranih)</item>
|
||||
</plurals>
|
||||
<string name="cameraPermissionRequired">Za to dejanje je potrebno dovoljenje za dostop do kamere …</string>
|
||||
<string name="storageReadPermissionRequired">Za to dejanje je potrebno dovoljenje za branje iz pomnilnika …</string>
|
||||
<string name="cameraPermissionRequired">Za to dejanje je potrebno dovoljenje za dostop do kamere…</string>
|
||||
<string name="storageReadPermissionRequired">Za to dejanje je potrebno dovoljenje za branje iz pomnilnika…</string>
|
||||
<string name="validFromSentence">Veljavno od: <xliff:g>%s</xliff:g></string>
|
||||
<string name="validFromDate">Velja od</string>
|
||||
<string name="anyDate">Katerikoli datum</string>
|
||||
<string name="chooseValidFromDate">Izberi datum začetka veljavnosti</string>
|
||||
<string name="permissionReadCardsDescription">preberi svoje kartice Catima in vse podrobnosti, vključno z opombami in slikami</string>
|
||||
<string name="chooseValidFromDate">Izberite datum začetka veljavnosti</string>
|
||||
<string name="permissionReadCardsDescription">preberite svoje kartice Catima in vse podrobnosti, vključno z opombami in slikami</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Potrebno za delovanje nekaterih skenerjev</string>
|
||||
<string name="app_copyright_short">Avtorske pravice © Sylvia van Os in drugi sodelujoči</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Avtorske pravice © 2019–<xliff:g>%d</xliff:g> Sylvia van Os in drugi sodelujoči</string>
|
||||
<string name="permissionReadCardsLabel">Preberi kartice Catima</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os in drugi sodelujoči</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os in drugi sodelujoči</string>
|
||||
<string name="permissionReadCardsLabel">Preberite kartice Catima</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Vedno obrni (prezri sistemske nastavitve)</string>
|
||||
<string name="settings_keep_screen_on_summary">Med ogledom kartice ohrani vključen zaslon</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Med ogledom kartice onemogoči zaklepanje zaslona</string>
|
||||
<string name="settings_allow_content_provider_read_title">Dovoli drugim aplikacijam dostop do mojih podatkov</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Aplikacije bodo morale še vedno zahtevati dovoljenje za dostop</string>
|
||||
<string name="settings_use_volume_keys_navigation">Preklopi kartice z uporabo gumbov za glasnost</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Uporabi gumbe za glasnost za preklop prikazane kartice</string>
|
||||
<string name="donate">Daruj</string>
|
||||
<string name="icon_header_click_text">Dolgi pritisk za urejanje sličice</string>
|
||||
<string name="show_name_below_image_thumbnail">Prikaži ime pod sličico</string>
|
||||
<string name="show_note">Pokaži opombo</string>
|
||||
<string name="show_balance">Pokaži stanje</string>
|
||||
<string name="show_validity">Pokaži veljavnost</string>
|
||||
<string name="settings_category_title_cards">Pogled kartice</string>
|
||||
<string name="settings_category_title_cards_overview">Pregled kartic</string>
|
||||
<string name="settings_column_count_portrait">Stolpci v pokončnem načinu</string>
|
||||
<string name="settings_column_count_landscape">Stolpci v ležečem načinu</string>
|
||||
<string name="settings_automatic_column_count">Avtomatsko</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_category_title_general">Splošno</string>
|
||||
<string name="settings_category_title_privacy">Zasebnost</string>
|
||||
<string name="action_display_options">Možnosti prikaza</string>
|
||||
<string name="show_archived_cards">Pokaži arhivirane kartice</string>
|
||||
<string name="view_online">Ogled na spletu</string>
|
||||
<string name="action_more_options">Več možnosti</string>
|
||||
<string name="addWithoutBarcode">Dodaj kartico brez črtne kode</string>
|
||||
<string name="enter_card_id">Vnesi identifikacijsko številko ali besedilo na kartici</string>
|
||||
<string name="card_id_must_not_be_empty">Št. kartice ne sme biti prazna</string>
|
||||
<string name="add_a_card_in_a_different_way">Dodaj kartico na drugačen način</string>
|
||||
<string name="field_must_not_be_empty">Polje ne sme biti prazno</string>
|
||||
<string name="manually_enter_barcode_instructions">Vnesi identifikacijsko številko ali besedilo na kartici in pritisni črtno kodo, ki je podobna tisti na kartici.</string>
|
||||
<string name="add_manually_warning_title">Priporočljivo je skeniranje</string>
|
||||
<string name="add_manually_warning_message">V nekaterih trgovinah se vrednost črtne kode razlikuje od številke, napisane na kartici. Zaradi tega ročno vnašanje črtne kode morda ne bo vedno delovalo. Priporočamo, da črtno kodo raje skeniraš s kamero. Želiš nadaljevati?</string>
|
||||
<string name="continue_">Nadaljuj</string>
|
||||
<string name="spend">Porabi</string>
|
||||
<string name="receive">Prejmi</string>
|
||||
<string name="amountParsingFailed">Neveljaven znesek</string>
|
||||
<string name="addFromPdfFile">Izberi PDF datoteko</string>
|
||||
<string name="errorReadingFile">Datoteke ni mogoče prebrati</string>
|
||||
<string name="failedLaunchingFileManager">Ni bilo mogoče najti podprtega upravitelja datotek</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Katero od najdenih črtnih kod želiš uporabiti?</string>
|
||||
<string name="pageWithNumber">Stran <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Tvoja naprava očitno nima kamere. Če jo ima, poskusi ponovno zagnati napravo. V nasprotnem primeru uporabi spodnji gumb Več možnosti, da dodaš črtno kodo na drug način.</string>
|
||||
<string name="importCancelled">Uvoz preklican</string>
|
||||
<string name="exportCancelled">Izvoz preklican</string>
|
||||
<string name="balanceParsingFailed">Neveljavno stanje</string>
|
||||
<string name="settings_oled_dark_summary">Zmanjša porabo baterije na OLED zaslonih</string>
|
||||
<string name="sort_by_valid_from">Velja od</string>
|
||||
<string name="height">Višina</string>
|
||||
<string name="switchToFrontImage">Preklopi na prednjo sliko</string>
|
||||
<string name="switchToBackImage">Preklopi na zadnjo sliko</string>
|
||||
<string name="switchToBarcode">Preklopi na črtno kodo</string>
|
||||
<string name="openFrontImageInGalleryApp">Odpri sprednjo sliko v galeriji</string>
|
||||
<string name="openBackImageInGalleryApp">Odpri zadnjo sliko v galeriji</string>
|
||||
<string name="setBarcodeHeight">Nastavi višino črtne kode</string>
|
||||
<string name="useFrontImage">Uporabi prednjo sliko</string>
|
||||
<string name="useBackImage">Uporabi zadnjo sliko</string>
|
||||
<string name="addFromPkpass">Izberi Passbook datoteko (.pkpass)</string>
|
||||
<string name="unsupportedFile">Ta datoteka ni podprta</string>
|
||||
<string name="generic_error_please_retry">Žal se je pojavila napaka, poskusi znova …</string>
|
||||
<string name="width">Širina</string>
|
||||
<string name="card_list_widget_name">Seznam kartic</string>
|
||||
<string name="setBarcodeWidth">Nastavi širino črtne kode</string>
|
||||
<string name="card_list_widget_empty">Ko v Catimi dodaš nekaj kartic zvestobe, se bodo te prikazale tukaj. Če imaš kartice, se prepričaj, da niso vse arhivirane.</string>
|
||||
</resources>
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
<string name="importLoyaltyCardKeychain">Uvezi iz aplikacije Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Odaberi svoj <i>LoyaltyCardKeychain.csv</i> izvoz iz aplikacije Loyalty Card Keychain za uvoz.
|
||||
\nKreiraj ga iz menija \"Import/Export\" u aplikaciji Loyalty Card Keychain klikom na \"Export\".</string>
|
||||
<string name="importStocard">Uvoz iz Stocard</string>
|
||||
<string name="importVoucherVault">Uvoz iz Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Odaberi svoj <i>vouchervault.json</i> izvoz iz Voucher Vault za uvoz.
|
||||
\nKreiraj ga pritiskom na \"Export\" u Voucher Vault aplikaciji.</string>
|
||||
@@ -249,6 +250,8 @@
|
||||
\nMožeš da ga kreiraš u Catima aplikaciji koju prenosiš iz menija Uvoz/Izvoz aplikacije pritiskom na izvoz.</string>
|
||||
<string name="importFidmeMessage">Odaberi svoj <i>fidme-export-request-xxxxxx.zip</i> izvoz iz FidMe za uvoz, a zatim ručno izaberite tipove bar-kodova.
|
||||
\nKreirajte ga iz svog FidMe profila tako što ćeš izabrati \"Data Protection\", a zatim pritisnuti \"Extract my data first\".</string>
|
||||
<string name="importStocardMessage">Odaberi svoj <i>***.zip</i> izvoz iz Stocard za uvoz.
|
||||
\nNabavi ga putem e-mail adrese support@stocardapp.com tražeći izvoz vaših podataka.</string>
|
||||
<string name="backImageDescription">Zadnja fotografija kartice</string>
|
||||
<string name="setBackImage">Postavi zadnju fotografiju</string>
|
||||
<string name="passwordRequired">Unesi lozinku</string>
|
||||
@@ -311,6 +314,4 @@
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="addFromPkpass">Izaberi \"Passbook\" dokument (.pkpass)</string>
|
||||
<string name="card_list_widget_name">Lista kartica</string>
|
||||
<string name="card_list_widget_empty">Nakon što dodate neke kartice lojalnosti u Catima, one će se pojaviti ovde. Ako imate kartice, uverite se da nisu sve arhivirane.</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
\nSkapa den från Import/Export-menyn i Loyalty Card Keychain först genom att trycka på Exportera.</string>
|
||||
<string name="importVoucherVaultMessage">Välj den exporterade <i>vouchervault.json</i> från Voucher Vault som du vill importera.
|
||||
\nSkapa den först genom att trycka på Exportera i Voucher Vault.</string>
|
||||
<string name="importStocardMessage">Välj den exporterade <i>***.zip</i> från Stocard som du vill importera.
|
||||
\nSkaffa den först genom att skicka e-post till support@stocardapp.com och be om att få dina data exporterade.</string>
|
||||
<string name="enter_group_name">Ange gruppnamn</string>
|
||||
<string name="groups">Grupper</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -45,6 +47,7 @@
|
||||
<string name="importCatima">Importera från Catima</string>
|
||||
<string name="importFidme">Importera från FidMe</string>
|
||||
<string name="importLoyaltyCardKeychain">Importera från Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Importera from Stocard</string>
|
||||
<string name="importVoucherVault">Importera från Voucher Vault</string>
|
||||
<string name="barcodeId">Streckkodsvärde</string>
|
||||
<string name="passwordRequired">Var snäll och ange lösenordet</string>
|
||||
|
||||
@@ -147,7 +147,9 @@
|
||||
<string name="importCatimaMessage">நீங்கள் கேட்டிமாவில் இருந்து ஏற்றுமதி செய்த <i> catima.zip </i> தேர்ந்துஎடுத்து இறக்குமதி செய்யுங்கள்.\nமுதலில் மற்றொரு கேட்டிமா செயலியில் இறக்குமதி/ஏற்றுமதி மெனுவிலிருந்து ஏற்றுமதியை தேர்ந்துஎடுத்து இக்கோப்பை உருவாக்கவும்.</string>
|
||||
<string name="importLoyaltyCardKeychain">விசுவாச அட்டை கீச்சினிலிருந்து இறக்குமதி செய்யுங்கள்</string>
|
||||
<string name="importFidmeMessage">உங்கள் <i> fidme-export-request-xxxxxx.zip </i> இறக்குமதி செய்ய FIDME இலிருந்து ஏற்றுமதி செய்து, பின்னர் பார்கோடு வகைகளை கைமுறையாகத் தேர்ந்தெடுக்கவும்.\n தரவு பாதுகாப்பைத் தேர்ந்தெடுப்பதன் மூலம் உங்கள் FIDME சுயவிவரத்திலிருந்து அதை உருவாக்கவும், பின்னர் எனது தரவைப் பிரித்தெடுக்கவும் அழுத்தவும்.</string>
|
||||
<string name="importStocardMessage">உங்கள் <i> ***. சிப் </i> இறக்குமதி செய்ய ஏற்றுமதி.\n உங்கள் தரவை ஏற்றுமதி செய்யக் கேட்கும் support@stocardapp.com என்ற மின்னஞ்சல் மூலம் அதைப் பெறுங்கள்.</string>
|
||||
<string name="importVoucherVault">வவுச்சர் பெட்டகத்திலிருந்து இறக்குமதி</string>
|
||||
<string name="importStocard">ச்டார்ட் இருந்து இறக்குமதி</string>
|
||||
<string name="sameAsCardId">ஐடி அதே</string>
|
||||
<string name="setBarcodeId">பார்கோடு மதிப்பை அமைக்கவும்</string>
|
||||
<string name="unsupportedBarcodeType">இந்த பார்கோடு வகையை இன்னும் காட்ட முடியாது. பயன்பாட்டின் பின்னர் பதிப்பில் இது ஆதரிக்கப்படலாம்.</string>
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
<string name="importVoucherVaultMessage">İçe aktarmak için Voucher Vault\'tan dışa aktardığınız <i>vouchervault.json</i> dosyasını seçin.
|
||||
\nÖnce Voucher Vault\'ta \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importVoucherVault">Voucher Vault\'tan içe aktar</string>
|
||||
<string name="importStocardMessage">İçe aktarmak için Stocard\'dan dışa aktardığınız <i>***.zip</i> dosyasını seçin.
|
||||
\nsupport@stocardapp.com adresine e-posta göndererek verilerinizin dışa aktarılmasını isteyerek edinin.</string>
|
||||
<string name="importStocard">Stocard\'dan içe aktar</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">İçe aktarmak için Loyalty Card Keychain\'den dışa aktardığınız <i>LoyaltyCardKeychain.csv</i> dosyasını seçin.
|
||||
\nLoyalty Card Keychain uygulamasının İçe/Dışa aktar menüsündeki \"Dışa aktar\" düğmesine basarak bir tane oluşturun.</string>
|
||||
<string name="importLoyaltyCardKeychain">Loyalty Card Keychain\'den içe aktar</string>
|
||||
@@ -307,6 +310,4 @@
|
||||
<string name="setBarcodeWidth">Barkod Genişliğini Ayarla</string>
|
||||
<string name="card_list_widget_name">Kart listesi</string>
|
||||
<string name="card_list_widget_empty">Catima\'ya sadakat kartları eklediğinizde, burada gözükecekler. Eğer kartlarınız varsa, arşivlemediğinizden emin olun.</string>
|
||||
<string name="cardWithNumber">Kart <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Kart <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -134,6 +134,8 @@
|
||||
<string name="photos">Світлини</string>
|
||||
<string name="backImageDescription">Тильна сторона</string>
|
||||
<string name="frontImageDescription">Лицьова сторона</string>
|
||||
<string name="importStocardMessage">Виберіть експорт <i> ***.zip </i> з Stocard для імпорту.\nОтримайте його, надіславши електронного листа support@stocardapp.com з проханням експортувати ваші дані.</string>
|
||||
<string name="importStocard">Імпорт з Stocard</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one">Обрано: <xliff:g>%d</xliff:g></item>
|
||||
<item quantity="few">Обрані: <xliff:g>%d</xliff:g></item>
|
||||
@@ -313,12 +315,10 @@
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="unsupportedFile">Цей файл не підтримується</string>
|
||||
<string name="generic_error_please_retry">Вибачте, щось пішло не так, спробуйте ще раз...</string>
|
||||
<string name="addFromPkpass">Виберіть файл Passbook (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Виберіть файл Passbook (.pkpass)</string>
|
||||
<string name="sort_by_valid_from">Діє з</string>
|
||||
<string name="width">Ширина</string>
|
||||
<string name="setBarcodeWidth">Встановити ширину штрих-коду</string>
|
||||
<string name="card_list_widget_name">Список карток</string>
|
||||
<string name="card_list_widget_empty">Після того, як ви додасте кілька карток лояльності в Catima, вони з’являться тут. Якщо у вас є картки, переконайтеся, що вони не всі заархівовані.</string>
|
||||
<string name="cardWithNumber">Картка <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Картка <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<string name="cameraPermissionDeniedTitle">Không sử dụng được camera</string>
|
||||
<string name="wrongValueForBarcodeType">Giá trị cho loại mã vạch này không hợp lệ</string>
|
||||
<string name="expiryDate">Ngày hết hạn</string>
|
||||
<string name="importStocard">Nhập dữ liệu từ Stocard</string>
|
||||
<string name="currency">Tiền tệ</string>
|
||||
<string name="welcome">Chào mừng tới Catima</string>
|
||||
<string name="failedParsingImportUriError">Không thể phân tích URI được cung cấp</string>
|
||||
@@ -151,6 +152,8 @@
|
||||
<string name="settings_landscape_orientation">Ngang</string>
|
||||
<string name="privacy_policy">Chính Sách Quyền Riêng Tư</string>
|
||||
<string name="enter_group_name">Nhập tên nhóm</string>
|
||||
<string name="importStocardMessage">Chọn <i>***.zip</i> được xuất từ Stocard để nhập liệu.
|
||||
\nLấy tập tin này bằng cách gửi thư yêu cầu xuất dữ liệu đến support@stocardapp.com.</string>
|
||||
<string name="addCardTitle">Thêm Thẻ</string>
|
||||
<string name="exportFailed">Không thể xuất dữ liệu</string>
|
||||
<string name="exportName">Xuất dữ liệu</string>
|
||||
|
||||
@@ -119,6 +119,8 @@
|
||||
<string name="deleteConfirmation">确定要永久删除此卡?</string>
|
||||
<string name="deleteTitle">移除卡片</string>
|
||||
<string name="starImage">收藏夹星星</string>
|
||||
<string name="importStocardMessage">选择 Stocard 导出文件 <i>****.zip</i>来导入。
|
||||
\n发电子邮件给 support@stocardapp.com 请求获得数据导出文件。</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="other">确定要永久删除 <xliff:g>%d</xliff:g> 这些卡片?</item>
|
||||
</plurals>
|
||||
@@ -143,6 +145,7 @@
|
||||
<string name="photos">照片</string>
|
||||
<string name="backImageDescription">背面图像</string>
|
||||
<string name="frontImageDescription">正面图像</string>
|
||||
<string name="importStocard">从Stocard导入</string>
|
||||
<string name="noGiftCardsGroup">创建一些卡片并分配到这个卡组中。</string>
|
||||
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g>型条码图像</string>
|
||||
<string name="group_edit">编辑组</string>
|
||||
@@ -293,7 +296,7 @@
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_landscape">横屏模式下的列数</string>
|
||||
<string name="addFromPkpass">选择 Passbook 文件(.pkpass/.pkpasses)</string>
|
||||
<string name="addFromPkpass">选择 Passbook 文件(.pkpass)</string>
|
||||
<string name="unsupportedFile">此文件不受支持</string>
|
||||
<string name="generic_error_please_retry">抱歉,某个东西出错了,请再试…</string>
|
||||
<string name="sort_by_valid_from">有效期开始日</string>
|
||||
@@ -301,6 +304,4 @@
|
||||
<string name="setBarcodeWidth">设置条码宽度</string>
|
||||
<string name="card_list_widget_name">卡片列表</string>
|
||||
<string name="card_list_widget_empty">在 Catima 中添加了一些会员卡后,它们会出现在这里。如果你有卡片,确保不是所有都已归档。</string>
|
||||
<string name="cardWithNumber">卡<xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">卡 <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<string name="noCardExistsError">無法找到此卡片</string>
|
||||
<string name="noCardsMessage">請先新增卡片</string>
|
||||
<string name="sort">排列</string>
|
||||
<string name="settings_catima_theme">卡提碼</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_pink_theme">粉紅</string>
|
||||
<string name="settings_magenta_theme">品紅</string>
|
||||
<string name="settings_violet_theme">紫色</string>
|
||||
@@ -151,14 +151,18 @@
|
||||
<string name="importVoucherVault">自 Voucher Vault 中匯入</string>
|
||||
<string name="importVoucherVaultMessage">選取您自 Voucher Vault 匯出的 <i>vouchervault.json</i> 檔案以進行匯入。
|
||||
\n請您先透過 Voucher Vault 進行匯出。</string>
|
||||
<string name="importStocard">自 Stocard 中匯入</string>
|
||||
<string name="importStocardMessage">>選取您自 Stocard 匯出的 <i>***.zip</i> 檔案以進行匯入。
|
||||
\n請您寫封 Email 至 support@stocardapp.com 索取您的資料。</string>
|
||||
<string name="importLoyaltyCardKeychain">自 Loyalty Card Keychain 中匯入</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">選取您自 Loyalty Card Keychain <i>LoyaltyCardKeychain.csv</i> 檔案以進行匯入。
|
||||
\n請您先透過 Loyalty Card Keychain 的匯入/匯出選單進行匯出。</string>
|
||||
<string name="importFidme">自 FidMe 匯入</string>
|
||||
<string name="importFidmeMessage">選取您自 FidMe 匯出的<i>fidme-export-request-xxxxxx.zip</i> 檔案以進行匯入,並手動選擇條碼種類。
|
||||
\n請您先透過您的 FidMe 個人檔案選取『Data Protection』,並選擇『Extract my data』。</string>
|
||||
<string name="importCatima">自卡提碼匯入</string>
|
||||
<string name="importCatimaMessage">選取您自卡提碼匯出的 <i>catima.zip</i> 檔案以進行匯入。 \n您可透過其他裝置的卡提碼程式中的匯入/匯出選單進行匯出。</string>
|
||||
<string name="importCatima">自 Catima 匯入</string>
|
||||
<string name="importCatimaMessage">選取您自 Catima 匯出的 <i>catima.zip</i> 檔案以進行匯入。
|
||||
\n您可透過其他裝置的 Catima 程式中的匯入/匯出選單進行匯出。</string>
|
||||
<string name="points">點</string>
|
||||
<string name="app_libraries">第三方自由函式庫:<xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">第三方自由資源:<xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
@@ -208,10 +212,10 @@
|
||||
<string name="failedLaunchingPhotoPicker">無法找到支援的圖庫應用程式</string>
|
||||
<string name="previousCard">上一張</string>
|
||||
<string name="nextCard">下一張</string>
|
||||
<string name="welcome">歡迎使用卡提碼</string>
|
||||
<string name="welcome">歡迎使用 Catima</string>
|
||||
<string name="settings_lock_on_opening_orientation">開啟卡片時鎖定的方向</string>
|
||||
<string name="importCards">導入卡片</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">卡提碼需要鏡頭使用權才能夠掃描條碼, 點擊這裏更變你的權限設定。</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Catima 需要鏡頭使用權才能夠掃描條碼, 點擊這裏更變你的權限設定。</string>
|
||||
<string name="validFromDate">生效</string>
|
||||
<string name="anyDate">任何日期</string>
|
||||
<string name="chooseValidFromDate">選擇生效日期</string>
|
||||
@@ -231,16 +235,16 @@
|
||||
<string name="show_validity">顯示有效性</string>
|
||||
<string name="switchToFrontImage">選擇正面圖片</string>
|
||||
<string name="switchToBackImage">選擇背面圖片</string>
|
||||
<string name="height">高</string>
|
||||
<string name="height">高度</string>
|
||||
<string name="donate">捐款</string>
|
||||
<string name="icon_header_click_text">長按以編輯縮圖</string>
|
||||
<string name="openBackImageInGalleryApp">以圖庫軟體開啟背面圖片</string>
|
||||
<string name="show_name_below_image_thumbnail">在縮圖下方顯示名稱</string>
|
||||
<string name="setBarcodeHeight">設定條碼高度</string>
|
||||
<string name="app_copyright_short">著作權所有© Sylvia van Os與其他貢獻者</string>
|
||||
<string name="permissionReadCardsLabel">讀取卡提碼卡片</string>
|
||||
<string name="app_name">卡提碼</string>
|
||||
<string name="permissionReadCardsDescription">讀取卡提碼卡片及卡片資訊,包含註記與圖片</string>
|
||||
<string name="permissionReadCardsLabel">讀取Catima卡片</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="permissionReadCardsDescription">讀取Catima卡片及卡片資訊,包含註記與圖片</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">觀看卡片時避免螢幕鎖定</string>
|
||||
<string name="settings_allow_content_provider_read_summary">其他程式仍然需要取得權限</string>
|
||||
<string name="settings_allow_content_provider_read_title">允許其他程式使用我的資料</string>
|
||||
@@ -295,8 +299,4 @@
|
||||
<string name="unsupportedFile">不支援此檔案</string>
|
||||
<string name="generic_error_please_retry">抱歉,似乎出了點錯誤,請您再試一次...</string>
|
||||
<string name="sort_by_valid_from">有效期限開始日</string>
|
||||
<string name="card_list_widget_empty">加入卡提碼的卡片會在這顯示。若您已加入卡片,請確認卡片是否被歸檔。</string>
|
||||
<string name="width">寬</string>
|
||||
<string name="card_list_widget_name">卡片清單</string>
|
||||
<string name="setBarcodeWidth">設定條碼寬度</string>
|
||||
</resources>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<item>Catima</item>
|
||||
<item>Fidme</item>
|
||||
<item>@string/app_loyalty_card_keychain</item>
|
||||
<item>Stocard</item>
|
||||
<item>Voucher Vault</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> selected</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> selected</item>
|
||||
</plurals>
|
||||
<string name="noGiftCards">Click the + plus button to add a card, or import from the ⋮ menu</string>
|
||||
<string name="noGiftCardsGroup">Create some cards, and then assign them to the group here</string>
|
||||
<string name="noGiftCards">Click the + plus button to add a card, or import from the ⋮ menu.</string>
|
||||
<string name="noGiftCardsGroup">Create some cards, and then assign them to the group here.</string>
|
||||
<string name="noMatchingGiftCards">No results. Try changing your search.</string>
|
||||
<string name="storeName">Name</string>
|
||||
<string name="note">Note</string>
|
||||
@@ -41,18 +41,18 @@
|
||||
<string name="ok">OK</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="sendLabel">Send…</string>
|
||||
<string name="editCardTitle">Edit card</string>
|
||||
<string name="addCardTitle">Add card</string>
|
||||
<string name="scanCardBarcode">Scan barcode</string>
|
||||
<string name="cardShortcut">Card shortcut</string>
|
||||
<string name="editCardTitle">Edit Card</string>
|
||||
<string name="addCardTitle">Add Card</string>
|
||||
<string name="scanCardBarcode">Scan Barcode</string>
|
||||
<string name="cardShortcut">Card Shortcut</string>
|
||||
<string name="noCardsMessage">Add a card first</string>
|
||||
<!-- %s is a type of barcode here -->
|
||||
<string name="barcodeImageDescriptionWithType">Image <xliff:g>%s</xliff:g> barcode</string>
|
||||
<string name="noCardExistsError">Couldn\'t find that card</string>
|
||||
<string name="failedParsingImportUriError">Couldn\'t parse the import URI</string>
|
||||
<string name="importExport">Import/export</string>
|
||||
<string name="noCardExistsError">Could not find that card</string>
|
||||
<string name="failedParsingImportUriError">Could not parse the import URI</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
<string name="exportName">Export</string>
|
||||
<string name="importExportHelp">Backing up your data allows moving it to another device</string>
|
||||
<string name="importExportHelp">Backing up your data allows moving it to another device.</string>
|
||||
<string name="importSuccessfulTitle">Imported</string>
|
||||
<string name="importFailedTitle">Import failed</string>
|
||||
<string name="importFailed">Could not perform import</string>
|
||||
@@ -63,13 +63,13 @@
|
||||
<string name="exporting">Exporting…</string>
|
||||
<string name="storageReadPermissionRequired">Permission to read storage needed for this action…</string>
|
||||
<string name="cameraPermissionRequired">Permission to access camera needed for this action…</string>
|
||||
<string name="permissionReadCardsLabel">Read Catima cards</string>
|
||||
<string name="permissionReadCardsLabel">Read Catima Cards</string>
|
||||
<string name="permissionReadCardsDescription">read your Catima cards and all its details, including notes and images</string>
|
||||
<string name="cameraPermissionDeniedTitle">Couldn\'t access the camera</string>
|
||||
<string name="cameraPermissionDeniedTitle">Could not access the camera</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">To scan barcodes, Catima will need access to your camera. Tap here to change your permission settings.</string>
|
||||
<string name="exportOptionExplanation">The data will be written to a location of your choice</string>
|
||||
<string name="exportOptionExplanation">The data will be written to a location of your choice.</string>
|
||||
<string name="importOptionFilesystemTitle">Import from filesystem</string>
|
||||
<string name="importOptionFilesystemExplanation">Choose a specific file from the filesystem</string>
|
||||
<string name="importOptionFilesystemExplanation">Choose a specific file from the filesystem.</string>
|
||||
<string name="importOptionFilesystemButton">From filesystem</string>
|
||||
<string name="about">About</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os and contributors</string>
|
||||
@@ -78,9 +78,9 @@
|
||||
<string name="app_license">Copylefted libre software, licensed GPLv3+</string>
|
||||
<string name="about_title_fmt">About <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Version: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Third-party libraries: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Third-party resources: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Select barcode</string>
|
||||
<string name="app_libraries">Libre third-party libraries: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Libre third-party resources: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Select Barcode</string>
|
||||
<string name="thumbnailDescription">Thumbnail</string>
|
||||
<string name="starImage">Favorite star</string>
|
||||
<string name="settings">Settings</string>
|
||||
@@ -138,7 +138,7 @@
|
||||
<string name="enter_group_name">Enter group name</string>
|
||||
<string name="groups">Groups</string>
|
||||
<string name="group_edit">Edit Group</string>
|
||||
<string name="noGroups">Click the + plus button to add groups for categorization</string>
|
||||
<string name="noGroups">Click the + plus button to add groups for categorization.</string>
|
||||
<string name="noGroupCards">This group is empty</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> card</item>
|
||||
@@ -149,7 +149,7 @@
|
||||
<string name="group_updated">Group updated</string>
|
||||
<string name="all">All</string>
|
||||
<string name="deleteConfirmationGroup">Delete group?</string>
|
||||
<string name="failedOpeningFileManager">Failed to open file manager</string>
|
||||
<string name="failedOpeningFileManager">Install a file manager first.</string>
|
||||
<string name="moveUp">Move upwards</string>
|
||||
<string name="moveDown">Move downwards</string>
|
||||
<string name="leaveWithoutSaveTitle">Exit</string>
|
||||
@@ -157,7 +157,7 @@
|
||||
<string name="addManually">Enter the barcode manually</string>
|
||||
<string name="addFromImage">Select an image from gallery</string>
|
||||
<string name="groupsList">Groups: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editing group: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editing Group: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Expires: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expired: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Balance: <xliff:g>%s</xliff:g></string>
|
||||
@@ -172,32 +172,35 @@
|
||||
<string name="chooseExpiryDate">Choose expiry date</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Move the barcode to the top of the screen</string>
|
||||
<string name="noBarcodeFound">No barcode was found</string>
|
||||
<string name="errorReadingImage">Couldn\'t read the image</string>
|
||||
<string name="errorReadingImage">Could not read the image</string>
|
||||
<string name="balance">Balance</string>
|
||||
<string name="currency">Currency</string>
|
||||
<string name="points">Points</string>
|
||||
<string name="balanceParsingFailed">Invalid balance</string>
|
||||
<string name="chooseImportType">Import data from</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy">Privacy policy</string>
|
||||
<string name="privacy_policy">Privacy Policy</string>
|
||||
<string name="accept">Accept</string>
|
||||
<string name="importCatima">Import from Catima</string>
|
||||
<string name="importCatimaMessage">Select your export from Catima to import.
|
||||
\nCreate it from the "Import/export" menu of another Catima app by pressing "Export".</string>
|
||||
<string name="importCatimaMessage">Select your <i>catima.zip</i> export from Catima to import.
|
||||
\nCreate it from the Import/Export menu of another Catima app by pressing Export there first.</string>
|
||||
<string name="importFidme">Import from FidMe</string>
|
||||
<string name="importFidmeMessage">Select your export from FidMe to import, and select the barcode types manually afterwards.
|
||||
\nCreate it from your FidMe profile by choosing "Data Protection" and then pressing "Extract my data".</string>
|
||||
<string name="importFidmeMessage">Select your <i>fidme-export-request-xxxxxx.zip</i> export from FidMe to import, and select the barcode types manually afterwards.
|
||||
\nCreate it from your FidMe profile by choosing Data Protection and then pressing Extract my data first.</string>
|
||||
<string name="importLoyaltyCardKeychain">Import from Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Select your export from Loyalty Card Keychain to import.
|
||||
\nCreate it from the "Import/Export" menu in Loyalty Card Keychain by pressing "Export".</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Select your <i>LoyaltyCardKeychain.csv</i> export from Loyalty Card Keychain to import.
|
||||
\nCreate it from the Import/Export menu in Loyalty Card Keychain by pressing Export there first.</string>
|
||||
<string name="importStocard">Import from Stocard</string>
|
||||
<string name="importStocardMessage">Select your <i>***.zip</i> export from Stocard to import.
|
||||
\nGet it by e-mailing support@stocardapp.com asking for an export of your data.</string>
|
||||
<string name="importVoucherVault">Import from Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Select your export from Voucher Vault to import.
|
||||
\nCreate it by pressing "Export" in Voucher Vault.</string>
|
||||
<string name="importVoucherVaultMessage">Select your <i>vouchervault.json</i> export from Voucher Vault to import.
|
||||
\nCreate it by pressing Export in Voucher Vault first.</string>
|
||||
<string name="barcodeId">Barcode value</string>
|
||||
<string name="sameAsCardId">Same as ID</string>
|
||||
<string name="setBarcodeId">Set barcode value</string>
|
||||
<string name="unsupportedBarcodeType">This barcode type can\'t yet be displayed. It may be supported in a later version of the app.</string>
|
||||
<string name="wrongValueForBarcodeType">The value isn\'t valid for the selected barcode type</string>
|
||||
<string name="wrongValueForBarcodeType">The value is not valid for the selected barcode type</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">I want to share some cards with you</string>
|
||||
<string name="frontImageDescription">Front image</string>
|
||||
<string name="backImageDescription">Back image</string>
|
||||
@@ -210,10 +213,10 @@
|
||||
<string name="updateBarcodeQuestionText">You changed the ID. Do you want to also update the barcode to use the same value?</string>
|
||||
<string name="yes">Yes</string>
|
||||
<string name="no">No</string>
|
||||
<string name="passwordRequired">Enter the password</string>
|
||||
<string name="passwordRequired">Please enter the password</string>
|
||||
<string name="exportPassword">Set a password to protect your export (optional)</string>
|
||||
<string name="exportPasswordHint">Enter password</string>
|
||||
<string name="failedGeneratingShareURL">Couldn\'t generate sharable URL</string>
|
||||
<string name="failedGeneratingShareURL">Could not generate sharable URL. Please report this.</string>
|
||||
<string name="turn_flashlight_on">Turn flashlight on</string>
|
||||
<string name="turn_flashlight_off">Turn flashlight off</string>
|
||||
<string name="settings_locale">Language</string>
|
||||
@@ -248,23 +251,23 @@
|
||||
<string name="failedToRetrieveImageFile">Failed to retrieve image file</string>
|
||||
<string name="barcodeLongPressMessage">Only images can be opened in the gallery app</string>
|
||||
<string name="sort_by_name">Name</string>
|
||||
<string name="sort_by_most_recently_used">Most recently used</string>
|
||||
<string name="sort_by_valid_from">Valid from</string>
|
||||
<string name="sort_by_most_recently_used">Most Recently Used</string>
|
||||
<string name="sort_by_valid_from">Valid From</string>
|
||||
<string name="sort_by_expiry">Expiry</string>
|
||||
<!-- \"Reversed order\" is also OK. This is an option in the card sorting list -->
|
||||
<string name="reverse">…in reversed order</string>
|
||||
<string name="sort_by">Sort by</string>
|
||||
<string name="version_history">Version history</string>
|
||||
<string name="version_history">Version History</string>
|
||||
<string name="arrow" translatable="false"><![CDATA[>]]></string>
|
||||
<string name="credits">Credits</string>
|
||||
<string name="help_translate_this_app">Help translate this app</string>
|
||||
<string name="license">License</string>
|
||||
<string name="source_repository">Source repository</string>
|
||||
<string name="source_repository">Source Repository</string>
|
||||
<string name="on_github">on GitHub</string>
|
||||
<string name="and_data_usage">and data usage</string>
|
||||
<string name="rate_this_app">Rate this app</string>
|
||||
<string name="on_google_play">on Google Play</string>
|
||||
<string name="report_error">Report error</string>
|
||||
<string name="report_error">Report Error</string>
|
||||
<string name="translate_platform">on Weblate</string>
|
||||
<string name="shortcutSelectCard">Select a card</string>
|
||||
<string name="options">Options</string>
|
||||
@@ -276,7 +279,7 @@
|
||||
<string name="archived">Card archived</string>
|
||||
<string name="unarchived">Card unarchived</string>
|
||||
<string name="overflowMenu" translatable="false">Overflow menu</string>
|
||||
<string name="failedLaunchingPhotoPicker">Couldn\'t find a supported image picker</string>
|
||||
<string name="failedLaunchingPhotoPicker">Could not find a supported gallery app</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> card (<xliff:g id="archivedCount">%2$d</xliff:g> archived)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> cards (<xliff:g id="archivedCount">%2$d</xliff:g> archived)</item>
|
||||
@@ -298,8 +301,8 @@
|
||||
<string name="switchToFrontImage">Switch to front image</string>
|
||||
<string name="switchToBackImage">Switch to back image</string>
|
||||
<string name="switchToBarcode">Switch to barcode</string>
|
||||
<string name="openFrontImageInGalleryApp">Open front image in image viewer app</string>
|
||||
<string name="openBackImageInGalleryApp">Open back image in image viewer app</string>
|
||||
<string name="openFrontImageInGalleryApp">Open front image in gallery app</string>
|
||||
<string name="openBackImageInGalleryApp">Open back image in gallery app</string>
|
||||
<string name="setBarcodeHeight">Set barcode height</string>
|
||||
<string name="donate">Donate</string>
|
||||
<string name="icon_header_click_text">Long press to edit thumbnail</string>
|
||||
@@ -340,14 +343,14 @@
|
||||
<string name="field_must_not_be_empty">Field must not be empty</string>
|
||||
<string name="manually_enter_barcode_instructions">Enter the ID number or text on your card and press the barcode that looks like the one on your card.</string>
|
||||
<string name="add_manually_warning_title">Scanning is recommended</string>
|
||||
<string name="add_manually_warning_message">For some cards, the barcode value differs from the number written on the card. Because of this, entering a barcode manually may not always work. It is recommended to scan the barcode with your camera instead. Do you still want to continue?</string>
|
||||
<string name="add_manually_warning_message">For some stores, the barcode value differs from the number written on the card. Because of this, entering a barcode manually may not always work. It is strongly recommended to scan the barcode with your camera instead. Do you still want to continue?</string>
|
||||
<string name="continue_">Continue</string>
|
||||
<string name="spend">Spend</string>
|
||||
<string name="receive">Receive</string>
|
||||
<string name="amountParsingFailed">Invalid amount</string>
|
||||
<string name="addFromPdfFile">Select a PDF file</string>
|
||||
<string name="errorReadingFile">Couldn\'t read the file</string>
|
||||
<string name="failedLaunchingFileManager">Couldn\'t find a supported file manager</string>
|
||||
<string name="errorReadingFile">Could not read the file</string>
|
||||
<string name="failedLaunchingFileManager">Could not find a supported file manager</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Which of the found barcodes do you want to use?</string>
|
||||
<string name="pageWithNumber">Page <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Your device does not seem to have a camera. If it does, try rebooting the device. Otherwise, use the "More options" button below to add a barcode another way.</string>
|
||||
@@ -355,13 +358,11 @@
|
||||
<string name="exportCancelled">Export cancelled</string>
|
||||
<string name="useFrontImage">Use front image</string>
|
||||
<string name="useBackImage">Use back image</string>
|
||||
<string name="addFromPkpass">Select a Passbook file (.pkpass / .pkpasses)</string>
|
||||
<string name="addFromPkpass">Select a Passbook file (.pkpass)</string>
|
||||
<string name="unsupportedFile">This file is not supported</string>
|
||||
<string name="generic_error_please_retry">An error occurred</string>
|
||||
<string name="generic_error_please_retry">Sorry, something went wrong, please try again...</string>
|
||||
<string name="width">Width</string>
|
||||
<string name="card_list_widget_name">Card list</string>
|
||||
<string name="setBarcodeWidth">Set barcode width</string>
|
||||
<string name="setBarcodeWidth">Set Barcode Width</string>
|
||||
<string name="card_list_widget_empty">After you add some loyalty cards in Catima, they will appear here. If you have cards, make sure they are not all archived.</string>
|
||||
<string name="cardWithNumber">Card <xliff:g>%d</xliff:g></string>
|
||||
<string name="cardWithNumberAndLocale">Card <xliff:g>%d</xliff:g> (%s)</string>
|
||||
</resources>
|
||||
|
||||
@@ -819,8 +819,8 @@ public class ImportExportTest {
|
||||
public void exportImportV2Zip() throws FileNotFoundException {
|
||||
// Prepare images
|
||||
// NB: we can't use LetterBitmap as robolectric doesn't support Canvas enough
|
||||
Bitmap bitmap1 = BitmapFactory.decodeStream(getClass().getResourceAsStream("example-front.jpg"));
|
||||
Bitmap bitmap2 = BitmapFactory.decodeStream(getClass().getResourceAsStream("example-back.jpg"));
|
||||
Bitmap bitmap1 = BitmapFactory.decodeStream(getClass().getResourceAsStream("stocard-front.jpg"));
|
||||
Bitmap bitmap2 = BitmapFactory.decodeStream(getClass().getResourceAsStream("stocard-back.jpg"));
|
||||
|
||||
// Set up cards and groups
|
||||
HashMap<Integer, LoyaltyCard> loyaltyCardHashMap = new HashMap<>();
|
||||
@@ -1123,6 +1123,163 @@ public class ImportExportTest {
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importStocard() {
|
||||
InputStream inputStream = getClass().getResourceAsStream("stocard.zip");
|
||||
|
||||
// Import the Stocard data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Stocard, null);
|
||||
assertEquals(ImportExportResultType.BadPassword, result.resultType());
|
||||
assertEquals(0, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
inputStream = getClass().getResourceAsStream("stocard.zip");
|
||||
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Stocard, "sE0p0RiFDteqhlD4adwWpwjvmI0r0CFOTfyzRae4vEsgNe3NKL".toCharArray());
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(3, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 1);
|
||||
|
||||
assertEquals("Air Miles", card.store);
|
||||
assertEquals("szjsbs", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("7649484", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.EAN_13, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1625690099, card.lastUsed);
|
||||
|
||||
assertTrue(BitmapFactory.decodeStream(getClass().getResourceAsStream("stocard-front.jpg")).sameAs(Utils.retrieveCardImage(activity.getApplicationContext(), 1, ImageLocationType.front)));
|
||||
assertTrue(BitmapFactory.decodeStream(getClass().getResourceAsStream("stocard-back.jpg")).sameAs(Utils.retrieveCardImage(activity.getApplicationContext(), 1, ImageLocationType.back)));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 1, ImageLocationType.icon));
|
||||
|
||||
card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 2);
|
||||
|
||||
assertEquals("GAMMA", card.store);
|
||||
assertEquals("", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("55555", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.EAN_13, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1625600883, card.lastUsed);
|
||||
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 2, ImageLocationType.front));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 2, ImageLocationType.back));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 2, ImageLocationType.icon));
|
||||
|
||||
card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 3);
|
||||
|
||||
assertEquals("jö", card.store);
|
||||
assertEquals("", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("(01)09010374000019(21)02097564604859211217(10)01231287693", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.RSS_EXPANDED, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1625600120, card.lastUsed);
|
||||
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 3, ImageLocationType.front));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 3, ImageLocationType.back));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 3, ImageLocationType.icon));
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importStocard2() {
|
||||
// Copy of stocard.zip, but with an extra card using a custom provider, a label for "Miles", and /usages/ timestamp
|
||||
InputStream inputStream = getClass().getResourceAsStream("stocard2.zip");
|
||||
|
||||
// Import the Stocard data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Stocard, null);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(4, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 1);
|
||||
|
||||
assertEquals("Foo", card.store);
|
||||
assertEquals("", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("1234567895", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.ITF, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1624991439, card.lastUsed);
|
||||
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 1, ImageLocationType.front));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 1, ImageLocationType.back));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 1, ImageLocationType.icon));
|
||||
|
||||
card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 2);
|
||||
|
||||
assertEquals("Air Miles", card.store);
|
||||
assertEquals("szjsbs\nMiles", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("7649484", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.EAN_13, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1625690099, card.lastUsed);
|
||||
|
||||
assertTrue(BitmapFactory.decodeStream(getClass().getResourceAsStream("stocard-front.jpg")).sameAs(Utils.retrieveCardImage(activity.getApplicationContext(), 2, ImageLocationType.front)));
|
||||
assertTrue(BitmapFactory.decodeStream(getClass().getResourceAsStream("stocard-back.jpg")).sameAs(Utils.retrieveCardImage(activity.getApplicationContext(), 2, ImageLocationType.back)));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 2, ImageLocationType.icon));
|
||||
|
||||
card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 3);
|
||||
|
||||
assertEquals("GAMMA", card.store);
|
||||
assertEquals("", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("55555", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.EAN_13, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1625600883, card.lastUsed);
|
||||
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 3, ImageLocationType.front));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 3, ImageLocationType.back));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 3, ImageLocationType.icon));
|
||||
|
||||
card = DBHelper.getLoyaltyCard(activity.getApplicationContext(), mDatabase, 4);
|
||||
|
||||
assertEquals("jö", card.store);
|
||||
assertEquals("", card.note);
|
||||
assertEquals(null, card.validFrom);
|
||||
assertEquals(null, card.expiry);
|
||||
assertEquals(new BigDecimal("0"), card.balance);
|
||||
assertEquals(null, card.balanceType);
|
||||
assertEquals("(01)09010374000019(21)02097564604859211217(10)01231287693", card.cardId);
|
||||
assertEquals(null, card.barcodeId);
|
||||
assertEquals(BarcodeFormat.RSS_EXPANDED, card.barcodeType.format());
|
||||
assertEquals(0, card.starStatus);
|
||||
assertEquals(1625600120, card.lastUsed);
|
||||
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 4, ImageLocationType.front));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 4, ImageLocationType.back));
|
||||
assertNull(Utils.retrieveCardImage(activity.getApplicationContext(), 4, ImageLocationType.icon));
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importVoucherVault() {
|
||||
InputStream inputStream = getClass().getResourceAsStream("vouchervault.json");
|
||||
|
||||
@@ -67,7 +67,7 @@ public class MainActivityTest {
|
||||
assertEquals("Sort", menu.findItem(R.id.action_sort).getTitle().toString());
|
||||
assertEquals("Display options", menu.findItem(R.id.action_display_options).getTitle().toString());
|
||||
assertEquals("Groups", menu.findItem(R.id.action_manage_groups).getTitle().toString());
|
||||
assertEquals("Import/export", menu.findItem(R.id.action_import_export).getTitle().toString());
|
||||
assertEquals("Import/Export", menu.findItem(R.id.action_import_export).getTitle().toString());
|
||||
assertEquals("About", menu.findItem(R.id.action_about).getTitle().toString());
|
||||
assertEquals("Settings", menu.findItem(R.id.action_settings).getTitle().toString());
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ class PkpassTest {
|
||||
val parser = PkpassParser(context, pkpassUri)
|
||||
val imageBitmap = BitmapFactory.decodeStream(context.contentResolver.openInputStream(imageUri))
|
||||
|
||||
// Confirm this has two languages
|
||||
// Confirm this does not have languages
|
||||
Assert.assertEquals(listOf("de", "en"), parser.listLocales())
|
||||
|
||||
// Confirm correct parsing (en)
|
||||
@@ -178,170 +178,6 @@ class PkpassTest {
|
||||
Assert.assertTrue(imageBitmap.sameAs(parser.image))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testEurowingsPassPkpasses() {
|
||||
// This test is basically the exact same as testEurowingsPass, just zipped a second time to test pkpasses support
|
||||
|
||||
// Prepare
|
||||
val context: Context = ApplicationProvider.getApplicationContext()
|
||||
val pkpasses = "pkpass/Eurowings/Eurowings.pkpasses"
|
||||
val image = "pkpass/Eurowings/logo@2x.png"
|
||||
|
||||
val pkpassesUri = Uri.parse(pkpasses)
|
||||
val imageUri = Uri.parse(image)
|
||||
ShadowContentResolver().registerInputStream(pkpassesUri, javaClass.getResourceAsStream(pkpasses))
|
||||
ShadowContentResolver().registerInputStream(imageUri, javaClass.getResourceAsStream(image))
|
||||
|
||||
val pkpassesParser = PkpassesParser(context, pkpassesUri)
|
||||
val imageBitmap = BitmapFactory.decodeStream(context.contentResolver.openInputStream(imageUri))
|
||||
|
||||
// Confirm there are exactly two passes in it (these are duplicated for simplicity, might not be the best test)
|
||||
val pkpassParsers = pkpassesParser.getPkpassParsers()
|
||||
Assert.assertEquals(2, pkpassParsers.count())
|
||||
repeat(2) { index ->
|
||||
val parser = pkpassParsers[index]
|
||||
|
||||
// Confirm this has two languages
|
||||
Assert.assertEquals(listOf("de", "en"), parser.listLocales())
|
||||
|
||||
// Confirm correct parsing (en)
|
||||
var parsedCard = parser.toLoyaltyCard("de")
|
||||
|
||||
Assert.assertEquals(-1, parsedCard.id)
|
||||
Assert.assertEquals("EUROWINGS", parsedCard.store)
|
||||
Assert.assertEquals("Eurowings Boarding Pass\n" +
|
||||
"\n" +
|
||||
"Gate: B61\n" +
|
||||
"Sitz: 12D\n" +
|
||||
"\n" +
|
||||
"Cologne-Bonn: CGN\n" +
|
||||
"Dubrovnik: DBV\n" +
|
||||
"\n" +
|
||||
"Name: John Doe\n" +
|
||||
"Status: -\n" +
|
||||
"Gruppe: GROUP 1\n" +
|
||||
"Tarif: SMART\n" +
|
||||
"\n" +
|
||||
"Flug: EW 954\n" +
|
||||
"Datum: 08/09/2019\n" +
|
||||
"Boarding: 05:00\n" +
|
||||
"Gate Schließt: 05:15\n" +
|
||||
"\n" +
|
||||
"Eurowings wünscht Ihnen einen angenehmen Flug.\n" +
|
||||
"\n" +
|
||||
"Wir bitten Sie, sich zur angegeben Boarding Zeit am Gate einzufinden.\n" +
|
||||
"Buchungscode: JBZPPP\n" +
|
||||
"Sequenz: 73\n" +
|
||||
"Hinweis: Bitte beachten Sie, dass obwohl Ihr Flug verspätet sein mag, Sie dennoch wie geplant pünktlich am Check-in und am Abfluggate erscheinen müssen.\n" +
|
||||
"\n" +
|
||||
"Kostenlose Mitnahme eines Handgepäckstücks (8 Kg, 55 x 40 x 23cm).\n" +
|
||||
"Mitnahme von Flüssigkeiten im Handgepäck: Neben den sonstigen Beschränkungen für das Handgepäck ist für alle Abflüge innerhalb der Europäischen Union sowie vielen weiteren Ländern (u.a. Schweiz, Russland, Island, Kroatien, Israel, Ägypten, Marokko, Tunesien, Norwegen) die Mitnahme von vor der Fluggastkontrolle erworbenen bzw. mitgebrachten Flüssigkeiten und Gels nur noch eingeschränkt erlaubt:\n" +
|
||||
"\n" +
|
||||
"- Sämtliche Flüssigkeiten (wie Kosmetik- und Toilettenartikel, Gels, Pasten, Cremes, Lotionen, Gemische aus flüssigen und festen Stoffen, Parfums, Behälter unter Druck, Dosen, Wasserflaschen etc.) sowie wachs- oder gelartige Stoffe dürfen nur noch in Behältnissen bis zu 100 ml bzw. 100 g mit an Bord genommen werden.\n" +
|
||||
"\n" +
|
||||
"- Diese Flüssigkeiten bzw. Stoffe müssen in einem transparenten, wiederverschließbaren Plastikbeutel (max. 1 kg Inhalt) vollständig geschlossen, verpackt sein.\n" +
|
||||
"\n" +
|
||||
"- Diese Beutel müssen Fluggäste selbst vor dem Abflug erwerben. Sie sind in vielen Supermärkten z. B. als Gefrierbeutel erhältlich. Es besteht zurzeit keine Möglichkeit, entsprechende Plastikbeutel am Eurowings Check-In zu erwerben bzw. auszugeben.\n" +
|
||||
"\n" +
|
||||
"- Verschreibungspflichtige Medikamente sowie Babynahrung dürfen weiterhin im Handgepäck transportiert werden. Der Fluggast muss nachweisen, dass die Medikamente und Babynahrung während des Fluges benötigt werden.\n" +
|
||||
"\n" +
|
||||
"- Produkte und Beutel, die nicht den Maßgaben entsprechen oder die nur mit Gummiband oder ähnlichem verschlossen sind, müssen leider abgegeben werden.\n" +
|
||||
"\n" +
|
||||
"Flüssigkeiten und Gels, die Sie nicht zwingend während Ihres Aufenthalts an Bord benötigen, sollten zur raschen Fluggastabfertigung nach Möglichkeit im aufzugebenden Gepäck untergebracht werden.\n" +
|
||||
"\n" +
|
||||
"Selbstverständlich ist die Mitnahme von allen Flüssigkeiten/Gels/Getränken aus Travel-Value oder Duty Free-Shops, die nach der Fluggastkontrolle erworben werden, weiterhin erlaubt.\n" +
|
||||
"\n" +
|
||||
"Eurowings übernimmt keine Haftung für Gegenstände, die der Fluggast nicht im Handgepäck mitführen darf und deshalb aus Sicherheitsgründen an der Fluggastkontrolle abgeben muss.\n" +
|
||||
"Kontakt: Sie erreichen das deutsche Call Center unter der Telefonnummer\n" +
|
||||
"\n" +
|
||||
"0180 6 320 320 ( 0:00 Uhr - 24:00 Uhr )\n" +
|
||||
"\n" +
|
||||
"(0,20 € pro Anruf aus dem Festnetz der Deutschen Telekom - Mobilfunk maximal 0,60 € pro Anruf).", parsedCard.note)
|
||||
Assert.assertEquals(Date(1567911600000), parsedCard.validFrom)
|
||||
Assert.assertEquals(null, parsedCard.expiry)
|
||||
Assert.assertEquals(BigDecimal(0), parsedCard.balance)
|
||||
Assert.assertEquals(null, parsedCard.balanceType)
|
||||
Assert.assertEquals("M1DOE/JOHN JBZPPP CGNDBVEW 0954 251A012D0073 148>5181W 9250BEW 00000000000002A0000000000000 0 N", parsedCard.cardId)
|
||||
Assert.assertEquals(null, parsedCard.barcodeId)
|
||||
Assert.assertEquals(BarcodeFormat.AZTEC, parsedCard.barcodeType!!.format())
|
||||
Assert.assertEquals(Color.parseColor("#FFFFFF"), parsedCard.headerColor)
|
||||
Assert.assertEquals(0, parsedCard.starStatus)
|
||||
Assert.assertEquals(0, parsedCard.archiveStatus)
|
||||
Assert.assertEquals(0, parsedCard.lastUsed)
|
||||
Assert.assertEquals(DBHelper.DEFAULT_ZOOM_LEVEL, parsedCard.zoomLevel)
|
||||
Assert.assertEquals(DBHelper.DEFAULT_ZOOM_LEVEL_WIDTH, parsedCard.zoomLevelWidth)
|
||||
|
||||
// Confirm correct image is used
|
||||
Assert.assertTrue(imageBitmap.sameAs(parser.image))
|
||||
|
||||
// Confirm correct parsing (en)
|
||||
parsedCard = parser.toLoyaltyCard("en")
|
||||
|
||||
Assert.assertEquals(-1, parsedCard.id)
|
||||
Assert.assertEquals("EUROWINGS", parsedCard.store)
|
||||
Assert.assertEquals("Eurowings Boarding Pass\n" +
|
||||
"\n" +
|
||||
"Gate: B61\n" +
|
||||
"Seat: 12D\n" +
|
||||
"\n" +
|
||||
"Cologne-Bonn: CGN\n" +
|
||||
"Dubrovnik: DBV\n" +
|
||||
"\n" +
|
||||
"Name: John Doe\n" +
|
||||
"Status: -\n" +
|
||||
"Group: GROUP 1\n" +
|
||||
"Fare: SMART\n" +
|
||||
"\n" +
|
||||
"Flight: EW 954\n" +
|
||||
"Date: 08/09/2019\n" +
|
||||
"Boarding: 05:00\n" +
|
||||
"Gate closure: 05:15\n" +
|
||||
"\n" +
|
||||
"Eurowings wishes you a pleasant flight .\n" +
|
||||
"\n" +
|
||||
"We kindly ask you to be present at your departure gate on time.\n" +
|
||||
"Booking code: JBZPPP\n" +
|
||||
"Sequence: 73\n" +
|
||||
"Notice: Please note that although your flight may be delayed, you will still need to check in and go to your departure gate on time as scheduled.\n" +
|
||||
"\n" +
|
||||
"Carry on one item of hand luggage (8 kg, 55 x 40 x 23 cm) for free.\n" +
|
||||
"Carrying liquids in hand luggage: In addition to other restrictions on hand luggage, there are still restrictions on liquids and gels brought by the passenger or purchased before the security control on all departures within the European Union, as well as to many other countries (including Switzerland, Russia, Iceland, Croatia, Israel, Egypt, Morocco, Tunisia and Norway):\n" +
|
||||
"\n" +
|
||||
"- All liquids (such as toiletries and cosmetics, gels, pastes, creams, lotions, mixtures of liquids and solids, perfumes, pressurised containers, cans, water bottles etc) as well as wax and gel-like substances may only be carried on board in amounts less than 100ml or 100g.\n" +
|
||||
"\n" +
|
||||
"- These liquids or substances must be packed in closed containers in a transparent, re-sealable plastic bag (max. contents 1 kg).\n" +
|
||||
"\n" +
|
||||
"- It is the passenger’s responsibility to purchase this bag before departure. They are available in many supermarkets, e.g. as freezer bags. It is currently not possible for passengers to obtain or purchase the required bags from Eurowings check-in.\n" +
|
||||
"\n" +
|
||||
"- Prescription medicines and baby food may still be carried in hand baggage. The passenger must prove that such medicines and/or baby food are needed during the flight.\n" +
|
||||
"\n" +
|
||||
"- Products and bags which do not meet the requirements or are only sealed with a rubber band or similar will unfortunately have to be surrendered by passengers\n" +
|
||||
"\n" +
|
||||
"In order to pass through the airport as quickly as possible, you are strongly advised to pack any liquids or gels which are not essential for your journey on board the aircraft in your checked baggage if possible.\n" +
|
||||
"\n" +
|
||||
"As a matter of course, liquids from the Travel Value / Duty Free shops which have been purchased after you have passed through security are still allowed on board.\n" +
|
||||
"\n" +
|
||||
"Eurowings shall not be liable for any items which passengers are prohibited from carrying in their hand baggage for security reasons and are required to surrender at the security checkpoint.\n" +
|
||||
"Contact: https://mobile.eurowings.com/booking/StaticContactInfo.aspx?culture=en-GB&back=home", parsedCard.note)
|
||||
Assert.assertEquals(Date(1567911600000), parsedCard.validFrom)
|
||||
Assert.assertEquals(null, parsedCard.expiry)
|
||||
Assert.assertEquals(BigDecimal(0), parsedCard.balance)
|
||||
Assert.assertEquals(null, parsedCard.balanceType)
|
||||
Assert.assertEquals("M1DOE/JOHN JBZPPP CGNDBVEW 0954 251A012D0073 148>5181W 9250BEW 00000000000002A0000000000000 0 N", parsedCard.cardId)
|
||||
Assert.assertEquals(null, parsedCard.barcodeId)
|
||||
Assert.assertEquals(BarcodeFormat.AZTEC, parsedCard.barcodeType!!.format())
|
||||
Assert.assertEquals(Color.parseColor("#FFFFFF"), parsedCard.headerColor)
|
||||
Assert.assertEquals(0, parsedCard.starStatus)
|
||||
Assert.assertEquals(0, parsedCard.archiveStatus)
|
||||
Assert.assertEquals(0, parsedCard.lastUsed)
|
||||
Assert.assertEquals(DBHelper.DEFAULT_ZOOM_LEVEL, parsedCard.zoomLevel)
|
||||
Assert.assertEquals(DBHelper.DEFAULT_ZOOM_LEVEL_WIDTH, parsedCard.zoomLevelWidth)
|
||||
|
||||
// Confirm correct image is used
|
||||
Assert.assertTrue(imageBitmap.sameAs(parser.image))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testFakeEmptyEurowingsPassForGitHubIssue2317() {
|
||||
// Prepare
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
BIN
app/src/test/res/protect/card_locker/stocard.zip
Normal file
BIN
app/src/test/res/protect/card_locker/stocard.zip
Normal file
Binary file not shown.
BIN
app/src/test/res/protect/card_locker/stocard2.zip
Normal file
BIN
app/src/test/res/protect/card_locker/stocard2.zip
Normal file
Binary file not shown.
@@ -1,8 +1,8 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
plugins {
|
||||
id("com.android.application") version "8.13.0" apply false
|
||||
id("org.jetbrains.kotlin.android") version "2.2.20" apply false
|
||||
id("com.android.application") version "8.12.1" apply false
|
||||
id("org.jetbrains.kotlin.android") version "2.2.10" apply false
|
||||
}
|
||||
|
||||
allprojects {
|
||||
|
||||
@@ -81,4 +81,4 @@ Help translate the app to your language from [our Hosted Weblate page](https://h
|
||||
|
||||
This app is based on the great (but no longer developed) [Loyalty Card Keychain](https://github.com/brarcher/loyalty-card-locker) by [Branden Archer](https://github.com/brarcher).
|
||||
|
||||
Logo and feature graphic contributed by [il-Luca](https://github.com/il-Luca) and [Aeven-Dev](https://github.com/aeven-dev), based on the original logo by [Rose (TangentFoxy)](https://github.com/TangentFoxy) and original feature graphic by [Ziad OUALHADJ](https://github.com/ziadOUA).
|
||||
Logo and feature graphic contributed by [il-Luca](https://github.com/il-Luca), based on the original logo by [Rose (TangentFoxy)](https://github.com/TangentFoxy) and original feature graphic by [Ziad OUALHADJ](https://github.com/ziadOUA).
|
||||
|
||||
5
docs/STOCARD.md
Normal file
5
docs/STOCARD.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Stocard Importer
|
||||
|
||||
The `app/src/main/res/raw/stocard_stores.csv` CSV file used by the Stocard importer was created using the `.scripts/dump_stocard_stores.py` script.
|
||||
|
||||
Only used for data portability reasons (ensuring importing works). Do NOT copy this anywhere else or use it for any purpose other than ensuring we can import a GDPR-provided export. We want to make sure this stays under fair use.
|
||||
@@ -1,2 +0,0 @@
|
||||
- Nový design loga Catima
|
||||
- Aktualizace překladů
|
||||
@@ -1,2 +0,0 @@
|
||||
- Přidána podpora pro soubory .pkpasses
|
||||
- Odstraněn importér Stocard (aplikace již neexistuje)
|
||||
@@ -5,11 +5,11 @@ Zapomeňte na peněženku nebo ji mějte ultralehkou na cennosti.
|
||||
|
||||
S tímto nezbytným nástrojem pro každodenní nošení (EDC) můžete nahradit zbytečné plasty hotovostí.
|
||||
|
||||
- Vyhněte se špehování s velmi malým počtem oprávnění. Žádný přístup k internetu a žádné reklamy.
|
||||
- Vyhněte se špehování s velmi malým počtem oprávnění. Žádný přístup k internetu a žádné reklamy.
|
||||
- Přidejte karty nebo kódy se jmény a přizpůsobitelnými barvami.
|
||||
- Ruční zadání kódu, pokud není žádný čárový kód k uložení nebo jej nelze použít.
|
||||
- Import karet a kódů ze souborů a aplikací Catima, FidMe, Loyalty Card Keychain a Voucher Vault.
|
||||
- Vytvořte si zálohu všech karet a v případě potřeby je přeneste do nového zařízení.
|
||||
- Import karet a kódů ze souborů, Catima, FidMe, klíčenky věrnostních karet, Stocard a trezoru voucherů.
|
||||
- Vytvořte si zálohu všech karet a v případě potřeby je přeneste do nového zařízení.
|
||||
- Sdílejte kupony, exkluzivní nabídky, propagační kódy nebo karty a kódy pomocí libovolné aplikace.
|
||||
- Tmavý motiv a možnosti zpřístupnění pro uživatele se zrakovým postižením.
|
||||
- Vytvořeno pro všechny komunitou svobodného softwaru.
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
- Neue Umgestaltung des Catima Logos
|
||||
- Übersetzungsaktualisierungen
|
||||
@@ -1,2 +0,0 @@
|
||||
- Unterstützung für .pkpasses Dateien hinzugefügt
|
||||
- Stocard Import entfernt (Stocard gibts nicht mehr)
|
||||
@@ -8,7 +8,7 @@ Mit diesem unverzichtbaren Programm schaffst du Platz für Bargeld statt für nu
|
||||
- Du wirst nicht ausspioniert, dank sehr weniger Berechtigungen. Kein Internetzugang und keine Werbung.
|
||||
- Füge Karten oder Codes mit Namen und anpassbaren Farben hinzu.
|
||||
- Manuelle Code-Eingabe, wenn kein Barcode vorhanden ist oder er nicht funktioniert.
|
||||
- Importiere Karten und Codes aus Dateien, von Catima, FidMe, Loyalty Card Keychain und Voucher Vault.
|
||||
- Importiere Karten und Codes aus Dateien, von Catima, FidMe, Loyalty Card Keychain, Stocard oder Voucher Vault.
|
||||
- Erstelle ein Backup aller deiner Karten und übertrage diese auf ein neues Gerät.
|
||||
- Teile Gutscheine, exklusive Angebote, Werbeaktionscodes oder Karten und sonstige Codes mit allen Apps.
|
||||
- Dunkles Design und Barrierefreiheit für Nutzer mit Sehbehinderung.
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
- Add support for .pkpasses files
|
||||
- Remove Stocard importer (Stocard no longer exists)
|
||||
- Temporarily disable widget images below Android 12L (workaround for a crash issue)
|
||||
@@ -8,7 +8,7 @@ With this essential everyday carry (EDC) tool you can replace useless plastic wi
|
||||
- Avoid spying with very few permissions. No Internet access and no ads.
|
||||
- Add cards or codes with names and customizable colours.
|
||||
- Manual code entry if there is no barcode to store, or it can't be used.
|
||||
- Import cards and codes from files, Catima, FidMe, Loyalty Card Keychain and Voucher Vault.
|
||||
- Import cards and codes from files, Catima, FidMe, Loyalty Card Keychain, Stocard and Voucher Vault.
|
||||
- Make a backup of all your cards and transfer them to a new device if you want.
|
||||
- Share coupons, exclusive offers, promo codes, or cards and codes using any app.
|
||||
- Dark theme and accessibility options for vision impaired users.
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
- Nouveau design du logo Catima
|
||||
- Mise à jour des traductions
|
||||
@@ -1,3 +0,0 @@
|
||||
- Ajout du support des fichiers .pkpasses
|
||||
|
||||
- Suppression de l'import depuis Stocard (Stocard n'existe plus).
|
||||
@@ -8,7 +8,7 @@ Avec cet outil essentiel à emporter au quotidien, vous pouvez remplacer le plas
|
||||
- Évitez l'espionnage avec très peu de permissions. Aucun accès à Internet et aucune publicité.
|
||||
- Ajoutez des cartes ou des codes avec des noms et des couleurs personnalisables.
|
||||
- Saisie manuelle du code s'il n'y a pas de code-barres à stocker ou s'il ne peut pas être utilisé.
|
||||
- Importez des cartes et des codes depuis des fichiers, Catima, FidMe, Loyalty Card Keychain et Voucher Vault.
|
||||
- Importez des cartes et des codes depuis des fichiers, Catima, FidMe, Loyalty Card Keychain, Stocard et Voucher Vault.
|
||||
- Faites une sauvegarde de toutes vos cartes et transférez-les sur un nouvel appareil si vous le souhaitez.
|
||||
- Partagez des coupons, des offres exclusives, des codes promotionnels ou des cartes et des codes en utilisant n'importe quelle application.
|
||||
- Thème sombre et options d'accessibilité pour les utilisateurs malvoyants.
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
- Pievienots .pkpasses datņu atbalsts
|
||||
- Noņemts Stocard ievietotājs (Stocard vairs nepastāv)
|
||||
@@ -1,2 +0,0 @@
|
||||
- Nova reformulação do logótipo Catima
|
||||
- Atualizações de tradução
|
||||
@@ -1 +0,0 @@
|
||||
- Adicionar apoio para ficheiros de .pkpasses
|
||||
@@ -1,2 +0,0 @@
|
||||
- Nova reformulação do logótipo Catima
|
||||
- Atualizações de tradução
|
||||
@@ -1 +0,0 @@
|
||||
- Adicionar apoio para ficheiros de .pkpasses
|
||||
@@ -1,2 +0,0 @@
|
||||
- Новый дизайн логотипа Catima
|
||||
- Обновления переводов
|
||||
@@ -1,2 +0,0 @@
|
||||
- Добавлена поддержка файлов .pkpasses
|
||||
- Удалён импорт из Stocard (Stocard больше не существует)
|
||||
@@ -8,7 +8,7 @@
|
||||
- Нет отслеживания, минимальное количество разрешений. Нет требуется доступ в интернет и нет рекламы.
|
||||
- Добавление карт или штрих-кодов с настраиваемыми именами и цветами.
|
||||
- Возможен ручной ввод данных, если штрих-код отсутствует или не распознаётся.
|
||||
- Импорт карт и кодов из файлов приложений Catima, FidMe, Loyalty Card Keychain и Voucher Vault.
|
||||
- Импорт карт и кодов из файлов приложений Catima, FidMe, Loyalty Card Keychain, Stocard и Voucher Vault.
|
||||
- Создание резервной копии всех ваших карт и перенос их на новое устройство при необходимости.
|
||||
- Возможность поделиться купонами, эксклюзивными предложениями, промо-кодами или картами и кодами, используя любое приложение.
|
||||
- Тёмная тема и специальные возможности для слабовидящих пользователей.
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
- Nový dizajn loga Catima
|
||||
- Aktualizácie prekladov
|
||||
@@ -1 +0,0 @@
|
||||
- Pridaná podpora pre súbory .pkpasses
|
||||
@@ -1 +0,0 @@
|
||||
- Popravek napake pri odpiranju neveljavnih datotek pkpass
|
||||
@@ -1 +0,0 @@
|
||||
- Izboljšanje prikaza ikone arhiva/označenih elementov
|
||||
@@ -1,3 +0,0 @@
|
||||
- Cilj Android 15
|
||||
- Popravek tipkovnice, ki prekriva gumb za shranjevanje na zaslonu za urejanje
|
||||
- Popravek nekaterih datotek pkpass, ki niso bile zaznale kot pkpass (podpora za vrsto mime application/vnd-com.apple.pkpass)
|
||||
@@ -1,2 +0,0 @@
|
||||
- Možnost razvrščanja kartic po začetku veljavnosti
|
||||
- Začasna vrnitev k ciljanju Android 14 za odpravljanje nekaterih težav z uporabniškim vmesnikom
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user