From daf2e8ba4261d19b4b3c4eebee5a61773c86632b Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Thu, 13 Apr 2017 20:43:45 +0200 Subject: [PATCH 1/4] Fix rotation of transaction lists causes crash of application Fixes #664 --- .../android/ui/transaction/TransactionsActivity.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java index 060d5a707..07051a11d 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java @@ -143,8 +143,10 @@ public void onItemSelected(AdapterView parent, View view, int position, long mTabLayout.addTab(mTabLayout.newTab().setText(R.string.section_header_transactions)); } } - // Hide the favorite icon of the selected account to avoid clutter - ((TextView) view).setCompoundDrawablesWithIntrinsicBounds(0,0,0,0); + if (view != null) { + // Hide the favorite icon of the selected account to avoid clutter + ((TextView) view).setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); + } //refresh any fragments in the tab with the new account UID refresh(); } From 0c22161971374e43a68d842b314838ade7bca885 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Thu, 13 Apr 2017 23:18:03 +0200 Subject: [PATCH 2/4] Copy backup files from external storage to the storage reserved for the app (which requires no WRITE_EXTERNAL_STORAGE) permission Fixes #670 --- app/build.gradle | 4 +- .../android/app/GnuCashApplication.java | 1 + .../org/gnucash/android/db/BookDbHelper.java | 10 +-- .../gnucash/android/db/DatabaseSchema.java | 2 +- .../gnucash/android/db/MigrationHelper.java | 90 +++++++++++++++++-- .../org/gnucash/android/export/Exporter.java | 9 +- 6 files changed, 101 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 399b2c261..42cc4b543 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ apply plugin: 'android-apt' def versionMajor = 2 def versionMinor = 1 -def versionPatch = 5 -def versionBuild = 4 +def versionPatch = 6 +def versionBuild = 0 def buildTime() { def df = new SimpleDateFormat("yyyyMMdd HH:mm 'UTC'") diff --git a/app/src/main/java/org/gnucash/android/app/GnuCashApplication.java b/app/src/main/java/org/gnucash/android/app/GnuCashApplication.java index 394926963..6f722a634 100644 --- a/app/src/main/java/org/gnucash/android/app/GnuCashApplication.java +++ b/app/src/main/java/org/gnucash/android/app/GnuCashApplication.java @@ -41,6 +41,7 @@ import org.gnucash.android.R; import org.gnucash.android.db.BookDbHelper; import org.gnucash.android.db.DatabaseHelper; +import org.gnucash.android.db.MigrationHelper; import org.gnucash.android.db.adapter.AccountsDbAdapter; import org.gnucash.android.db.adapter.BooksDbAdapter; import org.gnucash.android.db.adapter.BudgetAmountsDbAdapter; diff --git a/app/src/main/java/org/gnucash/android/db/BookDbHelper.java b/app/src/main/java/org/gnucash/android/db/BookDbHelper.java index 6fa1a6ebb..3a7cf40e6 100644 --- a/app/src/main/java/org/gnucash/android/db/BookDbHelper.java +++ b/app/src/main/java/org/gnucash/android/db/BookDbHelper.java @@ -159,15 +159,15 @@ private void insertBook(SQLiteDatabase db, Book book) { private void migrateBackupFiles(String activeBookUID){ Log.d(LOG_TAG, "Moving export and backup files to book-specific folders"); - File newBasePath = new File(Exporter.BASE_FOLDER_PATH + "/" + activeBookUID); + File newBasePath = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/" + activeBookUID); newBasePath.mkdirs(); - File src = new File(Exporter.BASE_FOLDER_PATH + "/backups/"); - File dst = new File(Exporter.BASE_FOLDER_PATH + "/" + activeBookUID + "/backups/"); + File src = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/backups/"); + File dst = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/" + activeBookUID + "/backups/"); new Thread(new RecursiveMoveFiles(src, dst)).start(); - src = new File(Exporter.BASE_FOLDER_PATH + "/exports/"); - dst = new File(Exporter.BASE_FOLDER_PATH + "/" + activeBookUID + "/exports/"); + src = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/exports/"); + dst = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/" + activeBookUID + "/exports/"); new Thread(new RecursiveMoveFiles(src, dst)).start(); File nameFile = new File(newBasePath, "Book 1"); diff --git a/app/src/main/java/org/gnucash/android/db/DatabaseSchema.java b/app/src/main/java/org/gnucash/android/db/DatabaseSchema.java index 0f32f068d..01f07d2d9 100644 --- a/app/src/main/java/org/gnucash/android/db/DatabaseSchema.java +++ b/app/src/main/java/org/gnucash/android/db/DatabaseSchema.java @@ -39,7 +39,7 @@ public class DatabaseSchema { * Version number of database containing accounts and transactions info. * With any change to the database schema, this number must increase */ - public static final int DATABASE_VERSION = 13; + public static final int DATABASE_VERSION = 14; /** * Name of the database diff --git a/app/src/main/java/org/gnucash/android/db/MigrationHelper.java b/app/src/main/java/org/gnucash/android/db/MigrationHelper.java index f5d3805ec..059634bb1 100644 --- a/app/src/main/java/org/gnucash/android/db/MigrationHelper.java +++ b/app/src/main/java/org/gnucash/android/db/MigrationHelper.java @@ -56,6 +56,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; @@ -64,6 +65,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.TimeZone; @@ -167,12 +169,17 @@ private static String getGnuCashRootAccountUID(SQLiteDatabase db){ * @throws IOException if an error occurred during the file copy */ static void moveFile(File src, File dst) throws IOException { + Log.d(LOG_TAG, String.format(Locale.US, "Moving %s from %s to %s", + src.getName(), src.getParent(), dst.getParent())); FileChannel inChannel = new FileInputStream(src).getChannel(); FileChannel outChannel = new FileOutputStream(dst).getChannel(); try { long bytesCopied = inChannel.transferTo(0, inChannel.size(), outChannel); - if(bytesCopied >= src.length()) - src.delete(); + if(bytesCopied >= src.length()) { + boolean result = src.delete(); + String msg = result ? "Deleted src file: " : "Could not delete src: "; + Log.d(LOG_TAG, msg + src.getPath()); + } } finally { if (inChannel != null) inChannel.close(); @@ -194,7 +201,7 @@ public void run() { for (File src : oldExportFolder.listFiles()) { if (src.isDirectory()) continue; - File dst = new File(Exporter.BASE_FOLDER_PATH + "/exports/" + src.getName()); + File dst = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/exports/" + src.getName()); try { MigrationHelper.moveFile(src, dst); } catch (IOException e) { @@ -210,7 +217,7 @@ public void run() { File oldBackupFolder = new File(oldExportFolder, "backup"); if (oldBackupFolder.exists()){ for (File src : new File(oldExportFolder, "backup").listFiles()) { - File dst = new File(Exporter.BASE_FOLDER_PATH + "/backups/" + src.getName()); + File dst = new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/backups/" + src.getName()); try { MigrationHelper.moveFile(src, dst); } catch (IOException e) { @@ -490,8 +497,8 @@ static int upgradeDbToVersion7(SQLiteDatabase db) { static int upgradeDbToVersion8(SQLiteDatabase db) { Log.i(DatabaseHelper.LOG_TAG, "Upgrading database to version 8"); int oldVersion = 7; - new File(Exporter.BASE_FOLDER_PATH + "/backups/").mkdirs(); - new File(Exporter.BASE_FOLDER_PATH + "/exports/").mkdirs(); + new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/backups/").mkdirs(); + new File(Exporter.LEGACY_BASE_FOLDER_PATH + "/exports/").mkdirs(); //start moving the files in background thread before we do the database stuff new Thread(moveExportedFilesToNewDefaultLocation).start(); @@ -1474,4 +1481,75 @@ static int upgradeDbToVersion13(SQLiteDatabase db){ return oldVersion; } + + /** + * Move files from {@code srcDir} to {@code dstDir} + * Subdirectories will be created in the target as necessary + * @param srcDir Source directory which should already exist + * @param dstDir Destination directory which should already exist + * @see #moveFile(File, File) + */ + private static void moveDirectory(File srcDir, File dstDir){ + if (!srcDir.exists() || !srcDir.isDirectory() || !dstDir.isDirectory() || !dstDir.exists()){ + throw new IllegalArgumentException("Source is not a directory, use MigrationHelper.moveFile(...)"); + } + + for (File src : srcDir.listFiles()){ + if (src.isDirectory()){ + File dst = new File(dstDir, src.getName()); + dst.mkdir(); + moveDirectory(src, dst); + if (!src.delete()) + Log.i(LOG_TAG, "Failed to delete directory: " + src.getPath()); + continue; + } + + try { + File dst = new File(dstDir, src.getName()); + MigrationHelper.moveFile(src, dst); + } catch (IOException e) { + Log.e(LOG_TAG, "Error moving file " + src.getPath()); + Crashlytics.logException(e); + } + } + } + + /** + * Upgrade the database to version 14 + *

+ * This migration actually does not change anything in the database + * It moves the backup files to a new backup location which does not require SD CARD write permission + *

+ * @param db SQLite database to be upgraded + * @return + */ + public static int upgradeDbToVersion14(SQLiteDatabase db){ + Log.i(DatabaseHelper.LOG_TAG, "Upgrading database to version 14"); + int oldDbVersion = 13; + File backupFolder = new File(Exporter.BASE_FOLDER_PATH); + backupFolder.mkdir(); + + new Thread(new Runnable() { + @Override + public void run() { + File srcDir = new File(Exporter.LEGACY_BASE_FOLDER_PATH); + File dstDir = new File(Exporter.BASE_FOLDER_PATH); + moveDirectory(srcDir, dstDir); + File readmeFile = new File(Exporter.LEGACY_BASE_FOLDER_PATH, "README.txt"); + FileWriter writer = null; + try { + writer = new FileWriter(readmeFile); + writer.write("Backup files have been moved to " + dstDir.getPath() + + "\nYou can now delete this folder"); + writer.flush(); + } catch (IOException e) { + e.printStackTrace(); + Log.e(LOG_TAG, "Error creating README file"); + } + + } + }).start(); + + return 14; + } } diff --git a/app/src/main/java/org/gnucash/android/export/Exporter.java b/app/src/main/java/org/gnucash/android/export/Exporter.java index 6e000d036..87c60d569 100644 --- a/app/src/main/java/org/gnucash/android/export/Exporter.java +++ b/app/src/main/java/org/gnucash/android/export/Exporter.java @@ -61,8 +61,15 @@ public abstract class Exporter { /** * Application folder on external storage + * @deprecated Use {@link #BASE_FOLDER_PATH} instead */ - public static final String BASE_FOLDER_PATH = Environment.getExternalStorageDirectory() + "/" + BuildConfig.APPLICATION_ID; + @Deprecated + public static final String LEGACY_BASE_FOLDER_PATH = Environment.getExternalStorageDirectory() + "/" + BuildConfig.APPLICATION_ID; + + /** + * Application folder on external storage + */ + public static final String BASE_FOLDER_PATH = GnuCashApplication.getAppContext().getExternalFilesDir(null).getAbsolutePath(); /** * Export options From c5a1f7cd187c9e33bf8a6a43f41e2391e2d75dac Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Sat, 15 Apr 2017 17:04:56 +0200 Subject: [PATCH 3/4] Update translations --- app/src/main/res/values-cs-rCZ/strings.xml | 154 +++++++------- app/src/main/res/values-es-rMX/strings.xml | 6 +- app/src/main/res/values-es/strings.xml | 6 +- app/src/main/res/values-fr/strings.xml | 6 +- app/src/main/res/values-in-rID/strings.xml | 225 ++++++++++----------- app/src/main/res/values-ja-rJP/strings.xml | 6 +- app/src/main/res/values-nb/strings.xml | 26 +-- app/src/main/res/values-no-rNO/strings.xml | 38 ++-- app/src/main/res/values-pt-rBR/strings.xml | 78 +++---- app/src/main/res/values-ru/strings.xml | 6 +- app/src/main/res/values-sv-rSE/strings.xml | 2 +- 11 files changed, 274 insertions(+), 279 deletions(-) diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 7ac3d8731..ce20f70f4 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -21,58 +21,58 @@ Čestina Exportovat… Přidat novou transakci na účet - View account details - No accounts to display - Account name - Cancel - Save + Zobrazit podrobnosti o účtu + Žádné účty ke zobrazení + Název účtu + Zrušit + Uložit Test - Enter Passcode - Wrong passcode, please try again - Passcode set - Please confirm your passcode - Invalid passcode confirmation. Please try again - Description - Amount - New transaction - No transactions to display - DATE & TIME - Account - DEBIT + Zadejte heslo + Chybné heslo, prosím zkuste to znovu + Heslo nastaveno + Potvrďte prosím své heslo + Přístupový kód je neplatný. Zkuste to prosím znovu + Popis + Částka + Nová transakce + Žádné transakce k zobrazení + Datum & čas + Účet + DEBET CREDIT - Accounts - Transactions - Delete - Delete - Cancel - Account deleted - Confirm delete - All transactions in this account will also be deleted - Edit Transaction - Add note - MOVE - %1$d selected - Balance: - Export To: - Export Transactions - Export all transactions - By default, only new transactions since last export will be exported. Check this option to export all transactions - Error exporting %1$s file - Export - Delete transactions after export - All exported transactions will be deleted when exporting is completed - Settings + Účty + Transakce + Smazat + Smazat + Zrušit + Účet smazán + Potvrdit smazání + Všechny transakce na tomto účtu budou také smazány + Upravit transakci + Přidat poznámku + PŘESUNOUT + Vybráno %1$d + Bilance: + Exportovat do: + Exportovat transakce + Exportovat všechny transakce + Ve výchozím nastavení jsou exportovány pouze nové transakce přidané od posledního exportu. Zaškrtněte tuto volbu, chcete-li exportovat všechny transakce + Chyba při exportu %1$s souboru + Exportovat + Odstranit transakce po exportu + Všechny exportované transakce budou odstraněny po dokončení exportu + Nastavení - SD Card + SD karta Dropbox - Google Drive + Google disk ownCloud - Send to… + Odeslat… - Move - Move %1$d transaction(s) - Destination Account - Access SD Card + Přesunout + Přesunout transakci(e) %1$d + Cílový účet + Přístup na SD kartu Cannot move transactions.\nThe destination account uses a different currency from origin account General About @@ -124,15 +124,15 @@ Default export email The default email address to send exports to. You can still change this when you export. Transfer Account - All transactions will be a transfer from one account to another + Všechny transakce budou převedeny z jednoho účtu na jiný Activate Double Entry - Balance - Enter an account name to create an account - Currency + Zůstatek + Zadejte název účtu pro jeho vytvoření + Měna Parent account - Use XML OFX header - Enable this option when exporting to third-party application other than GnuCash for desktop - What\'s New + Použit XML OFX hlavičku + Použijte tuto možnost při exportu do aplikace jiného výrobce než GnuCash pro stolní počítače + Co je nového - Support for multiple different books \n - Adds ownCloud as destination for exports\n @@ -142,33 +142,29 @@ - Multiple bug fixes and improvements\n Dismiss - Enter an amount to save the transaction - Multi-currency transactions cannot be modified - Import GnuCash Accounts - Import Accounts - An error occurred while importing the GnuCash accounts - GnuCash Accounts successfully imported - Import account structure exported from GnuCash desktop - Import GnuCash XML - Delete all accounts in the database. All transactions will be deleted as - well. - - Delete all accounts - Accounts - All accounts have been successfully deleted - Are you sure you want to delete all accounts and transactions?\n\nThis - operation cannot be undone! - - Account Type - All transactions in all accounts will be deleted! - Delete all transactions - All transactions successfully deleted! - Importing accounts - Tap again to confirm. ALL entries will be deleted!! - Transactions + Zadejte částku k uložení transakce + Transakce ve více měnách nelze upravovat + Importovat GnuCash účty + Importovat účty + Při importu GnuCash účtů došlo k chybě + GnuCash účty úspěšně importovány + Importovat strukturu účtu exportovaného z GnuCash pro stolní počítače + Importovat GnuCash XML + Smazáním všech účtů v databázi dojde také ke smazání všechn transakcí. + Smazat všechny účty + Účty + Všechny účty byly úspěšně smazány + Opravdu chcete smazat všechny účty a transakce? \n\nTato operaci nelze vrátit zpět! + Typ účtu + Budou smazány všechny transakce ve všech účtech! + Smazat všechny transakce + Všechny transakce byly úspěšně smazány! + Importování účtů + Klepnutím znovu potvrďte. Budou smazány všechny položky!! + Transakce Sub-Accounts - Search - Default Export Format + Vyhledat + Výchozí formát pro Export File format to use by default when exporting transactions Export transactions… Recurrence diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml index 826ba8753..89540d685 100644 --- a/app/src/main/res/values-es-rMX/strings.xml +++ b/app/src/main/res/values-es-rMX/strings.xml @@ -21,7 +21,7 @@ Detalles Exportar… Añadir una nueva transacción a una cuenta - View account details + Ver detalles de la cuenta No hay cuentas que mostrar Nombre de la cuenta Cancelar @@ -86,7 +86,7 @@ Registrar transacciones en GnuCash Crear cuentas en GnuCash Mostrar cuentas - Hide account balance in widget + Ocultar el saldo de la cuenta en widget Crear Cuentas Seleccionar cuentas a crear No hay cuentas en Gnucash.\nCree una cuenta antes de añadir un widget @@ -476,5 +476,5 @@ Este proceso solo recoge información que no permite identificar al usuario%1$s veces Vista compacta Libro %1$d - never + nunca diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9b2ac3ea0..8104da67d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -21,7 +21,7 @@ Información Exportar OFX Añadir una nueva transacción a una cuenta - View account details + Ver detalles de la cuenta No hay cuentas que mostrar Nombre de la cuenta Cancelar @@ -86,7 +86,7 @@ Registrar transacciones en GnuCash Crear cuentas en GnuCash Mostrar cuentas - Hide account balance in widget + Ocultar el saldo de la cuenta en widget Crear Cuentas Seleccionar cuentas a crear No hay cuentas en Gnucash.\nCree una cuenta antes de añadir un widget @@ -475,5 +475,5 @@ Este proceso solo recoge información que no permite identificar al usuario%1$s veces Vista compacta Libro %1$d - never + nunca diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e4115c88f..3ef2c08fe 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -21,7 +21,7 @@ Informations Exporter en OFX Ajoute une nouvelle transaction à un compte - View account details + Voir les détails du compte Aucun compte à afficher Nom du compte Annuler @@ -86,7 +86,7 @@ Enregistrer les transactions dans GnuCash Créer comptes dans GnuCash Afficher le compte - Hide account balance in widget + Cacher le solde du compte dans le widget Créer les comptes Choisissez les comptes à créer Aucun compte existant dans GnuCash.\nCréez un compte avant d\'ajouter un widget @@ -467,5 +467,5 @@ pour la %1$s fois Vue compacte Livre %1$d - never + jamais diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 9322411bd..4fad498c2 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -102,7 +102,7 @@ Kode Akses Dimatikan Ganti Kode Akses Tentang GnuCash - Sebuah manajemen finansial mobile dan pelacak pengeluaran yang dibuat untuk Android + Sebuah manajemen finansial mobile dan pelacak pengeluaran yang didesain untuk Android Tentang %1$s file diekspor ke:\n GnuCash Android %1$s ekspor @@ -169,32 +169,32 @@ Formart Ekspor Default Format file untuk digunakan secara default ketika mengekspor transaksi Ekspor transaksi… - Recurrence + Perulangan - Imbalance - Exporting transactions - No recurring transactions to display. - Successfully deleted recurring transaction + Tak Seimbang + Mengekspor transaksi + Tidak ada transaksi berulang untuk ditampilkan. + Berhasil menghapus transaksi berulang Placeholder account - Default Transfer Account + Akun Transfer Default - %d sub-accounts + %d sub-akun - CASH + TUNAI BANK - CREDIT CARD - ASSET - LIABILITY - INCOME - EXPENSE - PAYABLE - RECEIVABLE - EQUITY - CURRENCY - STOCK - MUTUAL FUND - TRADING + KARTU KREDIT + ASET + LIABILITAS + PENDAPATAN + PENGELUARAN + UTANG + PIUTANG + EKUITAS + MATA UANG + SAHAM + REKSA DANA + PERDAGANGAN QIF @@ -202,24 +202,24 @@ XML - Select a Color + Pilih Warna - Account Color & Type - Delete sub-accounts - Recent - Favorites - All - Creates default GnuCash commonly-used account structure - Create default accounts + Warna & Jenis Akun + Hapus sub-akun + Terbaru + Favorit + Semua + Buat struktur akun yang paling sering digunakan di GnuCash secara default + Buat akun default A new book will be opened with the default accounts\n\nYour current accounts and transactions will not be modified! - Scheduled Transactions - Welcome to GnuCash Android! \nYou can either create - a hierarchy of commonly-used accounts, or import your own GnuCash account structure. \n\nBoth options are also - available in app Settings so you can decide later. + Transaksi Terjadwal + Selamat datang di GnuCash Android! \nAnda dapat mwmbuat + hierarki akun yang sering banyak digunakan, atau impor struktur akun GnuCash Anda. \n\nKedua pilihan tersebut juga + tersedia di bagian pengaturan aplikasi sehingga Anda dapat memutuskannya nanti. - Transactions - Select destination for export + Transaksi + Pilih tujuan untuk ekspor Memo Mengeluarkan Menerima @@ -230,7 +230,7 @@ Mengurangi Menambahkan Pendapatan - Rebate + Rabat Pengeluaran Tagihan Invoice @@ -240,102 +240,101 @@ Tidak ada cadangan terbaru Saldo Awal Ekuitas - Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions - - Save account opening balances - OFX does not support double-entry transactions - Generates separate QIF files per currency + Aktifkan untuk menyimpan saldo akun (sebelum menghapus transaksi) sebagai saldo pembukaan setelah menghapus traksaksi + Simpan saldo pembukaan akun + OFX tidak mendukung transaksi double-entry + Menghasilkan file QIF terpisah per mata uang Transaction splits - Imbalance: + Tidak seimbang: Add split - Favorite + Favorit Navigation drawer opened Navigation drawer closed - Reports - Pie Chart - Line Chart - Bar Chart - Report Preferences - Select currency - Account color in reports - Use account color in the bar/pie chart - Reports - Order by size - Show legend - Show labels - Show percentage - Show average lines + Laporan + Bagan Pai + Bagan Garis + Bagan Batang + Pengaturan Laporan + Pilih mata uang + Warna akun dalam laporan + Gunakan warna akun di bagan batang/pai + Laporan + Urut berdasarkan ukuran + Tampilkan legenda + Tampilkan label + Tampilkan persentase + Tampilkan garis rata-rata Group Smaller Slices - No chart data available - Overall + Tidak ada data bagan tersedia + Keseluruhan Total - Other - The percentage of selected value calculated from the total amount - The percentage of selected value calculated from the current stacked bar amount - Save as template - This account contains transactions. \nWhat would you like to do with these transactions - This account contains sub-accounts. \nWhat would you like to do with these sub-accounts - Delete transactions - Create and specify a transfer account OR disable double-entry in settings to save the transaction - Tap to create schedule - Restore Backup… - Backup & export - Enable DropBox - Enable ownCloud - Backup - Enable exporting to DropBox - Enable exporting to ownCloud - Select GnuCash XML file - Backup Preferences - Create Backup - By default backups are saved to the SDCARD - Select a specific backup to restore - Backup successful - Backup failed - Exports all accounts and transactions - Enable Google Drive - Enable exporting to Google Drive - Install a file manager to select files - Select backup to restore - Favorites - Open… - Reports - Scheduled Transactions - Export… - Settings - User Name - Password + Lainnya + Persentase nilai yang dipilih dihitung dari jumlah total + Persentase dari nilai yang dipilih dihitung dari jumlah batang yang ditumpuk saat ini + Simpan sebagai templat + Akun ini berisi transaksi. \nApa yang ingin Anda lakukan dengan transaksi tersebut + Akun ini berisi sub-akun. \nApa yang ingin Anda lakukan dengan sub-akun tersebut + Hapus transaksi + Membuat dan menetapkan sebuah akun transfer ATAU nonaktifkan double-entry pada pengaturan untuk menyimpan transaksi + Ketuk untuk membuat jadwal + Mengembalikan Cadangan… + Cadangan & ekspor + Aktifkan DropBox + Aktifkan ownCloud + Cadangan + Aktifkan mengekspor ke DropBox + Aktifkan mengekspor ke ownCloud + Pilih file XML GnuCash + Pengaturan Cadangan + Membuat Cadangan + Secara default backup disimpan ke SDCARD + Pilih cadangan untuk dipulihkan + Pencadangan berhasil + Pencadangan gagal + Ekspor seluruh akun dan transaksi + Aktifkan Google Drive + Aktifkan ekspor ke Google Drive + Install sebuah file manager untuk memilih file + Pilih backup untuk di-restore + Favorit + Buka… + Laporan + Transaksi Terjadwal + Ekspor… + Pengaturan + Nama Pengguna + Kata Sandi owncloud https:// - OC server not found + Server OC tidak ditemukan OC username/password invalid - Invalid chars: \\ < > : \" | * ? - OC server OK + Karakter tidak valid: \\ < > : \" | * ? + Server OC OK OC username/password OK - Dir name OK + Nama Dir OK - Every %d days + Setiap %d hari - Every %d weeks + Setiap %d minggu - Every %d months + Setiap %d bulan - Every %d years + Setiap %d tahun - Enable Crash Logging - Automatically send information about app malfunction to the developers. + Aktifkan Pencatatan Kerusakan + Mengirim informasi secara otomatis tentang malfungsi aplikasi ke pengembang. Format - Backup folder cannot be found. Make sure the SD Card is mounted! - Enter your old passcode - Enter your new passcode - Scheduled Exports - Exports - No scheduled exports to display - Create export schedule - Exported to: %1$s + Folder backup tidak dapat ditemukan. Pastikan SD Card di-mount! + Masukkan kode akses lama Anda + Masukkan kode akses baru Anda + Ekspor Terjadwal + Ekspor + Tidak ada ekspor terjadwal untuk ditampilkan + Membuat jadwal ekspor + Telah diekspor ke: %1$s The legend is too long Account description No recent accounts diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index e2108f9ed..54c276626 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -21,7 +21,7 @@ 情報 エクスポート… 新規の取引を入力 - View account details + 勘定の詳細を表示 表示する勘定科目がありません 勘定科目名 キャンセル @@ -86,7 +86,7 @@ GnuCashで取引を記録する GnuCashで費目を新規登録する 勘定科目を表示 - Hide account balance in widget + 勘定残高を非表示 勘定科目を作成 作成する勘定科目を選択 GnuCashに勘定科目が存在しません。\nウィジェットを追加する前に勘定科目を作成してください @@ -466,5 +466,5 @@ %1$s 回 コンパクト表示 帳簿 %1$d - never + しない diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 7592d7d06..c6751e20c 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -21,7 +21,7 @@ Informasjon Eksport... Legge til en ny transaksjon i en konto - View account details + Vis kontoinformasjon Ingen kontoer for å vise Kontonavn Avbryt @@ -86,7 +86,7 @@ Registrere transaksjoner i GnuCash Opprette kontoer i GnuCash Vis konto - Hide account balance in widget + Skjul saldo i widget Opprett konto Velg kontoer å opprette Det finnes ingen kontoer i GnuCash.\nOpprett en konto før du legger til en widget @@ -305,9 +305,9 @@ Finner ikke OC-server OC brukernavn/passord ugyldig Ugyldige tegn: \\ < >: \ \"| * ? - OC server OK - OC username/password OK - Dir name OK + OC serveren OK + OC brukernavn/passord OK + Mappenavn OK Daglig Hver %d dag @@ -401,7 +401,7 @@ Kontantstrøm Budsjetter Aktiver Kompaktvisning - Enable to always use compact view for transactions list + Aktiver Kompaktvisning for Transaksjonsliste Ugyldig valutakurs e.g. 1 %1$s = x.xx %2$s Ugyldig beløp @@ -437,13 +437,13 @@ + Manage Books Manage Books… - Select any part of the chart to view details - Confirm delete Book - All accounts and transactions in this book will be deleted! - Delete Book - Last Exported: - Enable Sync - New Book + Merk en del av diagrammet for detaljer + Bekreft sletting + Alle kontoer og transaksjoner i denne boken vil bli slettet! + Slett bok + Sist eksportert: + Aktiver synkronisering + Ny Bok The selected transaction has no splits and cannot be opened %1$d splits in %1$s diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index cd524823f..eb2f54260 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -21,7 +21,7 @@ Informasjon Eksport... Legge til en ny transaksjon i en konto - View account details + Vis kontoinformasjon Ingen kontoer for å vise Kontonavn Avbryt @@ -86,7 +86,7 @@ Registrere transaksjoner i GnuCash Opprette kontoer i GnuCash Vis konto - Hide account balance in widget + Skjul saldo i widget Opprett konto Velg kontoer å opprette Det finnes ingen kontoer i GnuCash.\nOpprett en konto før du legger til en widget @@ -211,7 +211,7 @@ Alle Oppretter standard GnuCash kontostruktur Opprette standardkontoer - A new book will be opened with the default accounts\n\nYour current accounts and transactions will not be modified! + En ny bok åpnes med standardkontoer\n\nDine gjeldende kontoer og transaksjoner vil ikke bli endret! Planlagte transaksjoner Velkommen til GnuCash Android! \nDu kan enten opprette et hierarki av brukte kontoer, eller importere din egen GnuCash kontostruktur. \n\nBegge alternativer er også tilgjengelige i app innstillinger så du kan velge senere. Transaksjoner @@ -279,7 +279,7 @@ Aktiver ownCloud Sikkerhetskopiering Aktiver eksportering til DropBox - Enable exporting to ownCloud + Aktiver eksportering til DropBox Velg GnuCash XML-fil Innstillinger for sikkerhetskopiering Opprett sikkerhetskopi @@ -300,14 +300,14 @@ Innstillinger Brukernavn Passord - owncloud + ownCloud https:// - OC server not found - OC username/password invalid - Invalid chars: \\ < > : \" | * ? - OC server OK - OC username/password OK - Dir name OK + Finner ikke OC-server + OC brukernavn/passord ugyldig + Ugyldige tegn: \\ < > : \" | * ? + OC serveren OK + OC brukernavn/passord OK + Mappenavn OK Daglig Hver %d dag @@ -401,7 +401,7 @@ Kontantstrøm Budsjetter Aktiver Kompaktvisning - Enable to always use compact view for transactions list + Aktiver Kompaktvisning for Transaksjonsliste Ugyldig valutakurs e.g. 1 %1$s = x.xx %2$s Ugyldig beløp @@ -437,13 +437,13 @@ + Manage Books Manage Books… - Select any part of the chart to view details - Confirm delete Book - All accounts and transactions in this book will be deleted! - Delete Book - Last Exported: - Enable Sync - New Book + Merk en del av diagrammet for detaljer + Bekreft sletting + Alle kontoer og transaksjoner i denne boken vil bli slettet! + Slett bok + Sist eksportert: + Aktiver synkronisering + Ny Bok The selected transaction has no splits and cannot be opened %1$d splits in %1$s diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 9d5c5a728..cbd4f9723 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -21,16 +21,16 @@ Informação Exportar Adicionar nova transação a uma conta - View account details + Exibir detalhes de conta Sem contas para mostrar Nome da Conta Cancelar - Gravar + Salvar Teste - Introduza a palavra passe + Digitar Senha Senha incorreta, tente novamente - Definição de palavra passe - Por favor confirme a sua palavra passe + Definição de senha + Por favor, confirme sua senha Confirmação de palavra passe inválida. Por favor tente novamnete Descrição Valor @@ -42,7 +42,7 @@ CRÉDITO Contas Transações - APAGAR + Excluir Apagar Cancelar Conta apagada @@ -81,12 +81,12 @@ Moeda padrão para as novas contas Permite gravar transações no GnuCash para Android Permite criar contas no GnuCash para Android - Os seus dados Gnucash + Seus dados do GnuCash Ler e modificar dados do GnuCash Gravar transações no GnuCash Criar contas no GnuCash Mostrar conta - Hide account balance in widget + Esconder o saldo da conta no widget Criar Contas Escolha as contas a criar Não existem contas no GnuCash.\nCrie uma conta antes de adicionar um widget @@ -134,12 +134,12 @@ Active esta opção quando fizer exportações para outras aplicações que não seja o GnuCash para Desktop O que há de novo -- Suporte para vários livres diferentes\n +- Suporte para múltiplos livros\n - Adiciona o ownCloud como destino das exportações\n -- Vista compacta da lista das transações\n -- Redesenhado o ecrã de bloqueio de password\n -- Melhorado o tratamento de transações agendadas\n - - Várias correcções de erros e melhoramentos\n +- Visualização compacta da lista de transações\n +- Nova tela de bloqueio de senha\n +- Aperfeiçoado o tratamento de transações agendadas\n + - Diversas correções de erros e melhorias\n Descartar Introduza um valor para gravar a transação As transações multi-moeda não podem ser alteradas @@ -190,8 +190,8 @@ CONTAS A RECEBER SITUAÇÃO LÍQUIDA MOEDA - ACÇÕES - FUNDO + AÇÕES + FUNDO MÚTUO NEGOCIAÇÃO @@ -200,7 +200,7 @@ XML - Escolha uma côr + Selecione uma Cor Côr da Conta & Tipo @@ -210,7 +210,7 @@ Todas Cria uma estrutura de contas GnuCash padrão Cria contas padrão - Irá ser aberto um novo livro com as contas por defeito\n\nAs suas contas e transações não irão ser modificadas! + Um novo livro será aberto com as contas padrão \n\n Suas contas e transações atuais não serão modificadas! Transações agendadas Bem vindo ao GnuCash Android! \nPode criar um hierarquia de contas, ou importar a sua estrutura de contas do GnuCash. \n\n Ambas as opções estão disponíves bas Opções da aplicação, para que possa decidir mais tarde. @@ -291,7 +291,7 @@ Exporta todas as contas e transações Habilitar o Google Drive Habilitar a exportação para o Google Drive - Instale um gestor de ficheiros para escolher um ficheiro + Instalar um gerenciador de arquivos para selecionar arquivos Escolha um backup para restaurar Favoritos Abrir… @@ -341,25 +341,25 @@ Neste processo não serão recolhidas informações do utilizador! Descrição da Conta Sem Contas recentes Sem Contas favoritas - Acções agendadas + Ações Agendadas "Feito, execução completada em %1$s" Escolha uma barra para ver os detalhes - Seguinte - Feito + Avançar + Finalizar Moeda padrão Configuração de Contas Escolha a moeda Opções de Feedback - Criar contas por defeito + Criar contas padrão Importar as minhas contas Deixe-me tratar disso Outros… Envia relatórios de erros automaticamente Desactivar relatórios de erros - Anterior + Voltar Configurar GnuCash - Bemvindo ao GnuCash - Antes de iniciar, \nvamos efectuar umas configurações primeiro\n\nPara continuar, faça Seguinte + Bem-vindo ao GnuCash + Antes de iniciar, \nvamos fazer algumas configurações primeiro\n\nPara continuar, pressione Avançar Editor de contrapartidas Confirme que todas as contrapartidas têm montantes válidos antes de gravar! Expressão inválida! @@ -368,8 +368,8 @@ Neste processo não serão recolhidas informações do utilizador! O montante convertido é obrigatório. Transferências - Escolha uma secção para ver os detalhes - Perडodo: + Escolha uma seção para ver os detalhes + Período: De: Para: Forneça o montante convertido ou a taxa de câmbio para a transferência @@ -378,11 +378,11 @@ Neste processo não serão recolhidas informações do utilizador! Montante convertido Folha Despesas dos últimos 3 meses - Activos Totais - Total do Passivo + Total de Ativos + Total de Passivos Valor Líquido - Activo - Passivo + Ativos + Passivos Capital Próprio Mover para @@ -402,7 +402,7 @@ Neste processo não serão recolhidas informações do utilizador! Orçamentos Fluxo de caixa Orçamentos - Permitir visão compacta + Habilitar a exibição compacta Sempre permitir visão compacta para a lista de transações Taxa de câmbio inválida por exemplo, 1 %1$s = x.xx %2$s @@ -412,13 +412,13 @@ Neste processo não serão recolhidas informações do utilizador! Últimos 3 meses Últimos 6 meses Últimos 12 meses - Tudo + Desde o início Intervalo personalizado… 1 - + 2 ABC 3 @@ -438,9 +438,9 @@ Neste processo não serão recolhidas informações do utilizador! 0 + Gerenciar livros - Gerir Livros… + Administar livros… Selecione qualquer parte do gráfico para ver os detalhes - Confirme o apagar do Livro + Confirmar exclusão de Livro Todas as contas e transações neste livro serão excluídas! Apagar livro Última exportação: @@ -463,16 +463,16 @@ Neste processo não serão recolhidas informações do utilizador! Conectado ao Google Drive Impossível conectar ao Google Drive - Por favor introduza um montante a dividir + Por favor insira uma quantidade para dividir serviço externo Agenda recorrente de transação atualizada Desde Desde o início Recomendado na Play Store até %1$s - na %1$s + em %1$s por %1$s vezes Visualização compacta Livro %1$d - never + nunca diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 3c22f7b47..0d7080dee 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -21,7 +21,7 @@ Информация Экспорт… Новая проводка - View account details + Посмотреть дели счета Нет счетов Имя счёта Отмена @@ -86,7 +86,7 @@ Запись проводок в GnuCash Создайте учетные записи в GnuCash Показать счёт - Hide account balance in widget + Скрыть баланс счета в виджете Создать счета Выберите счета для создания Нет счетов в Gnucash.\nСначала создайте счета, а потом добавляйте виджет. @@ -484,5 +484,5 @@ для %1$s раз Компактный вид Книга %1$d - never + никогда diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 5ef6762b3..fa49fc29c 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -21,7 +21,7 @@ Information Exportera… Lägg till en transaktion till ett konto - View account details + Visa kontodetaljer Det finns inga konton att visa Kontonamn Avbryt From 4e95e9e0edab6c0a4659925b0b1776ac20b63e62 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Sat, 15 Apr 2017 17:28:15 +0200 Subject: [PATCH 4/4] Update CHANGELOG for v2.1.6 release --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95c4b2c0d..6fa55ad30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ Change Log =============================================================================== +Version 2.1.6 *(2017-04-15)* +---------------------------- +* Fixed #664: Rotating device in transaction view causes crash +* Improved #670: Migrate backup/export files to new location (which does not require permisions from KitKat) +* Improved #669: Update translations + Version 2.1.5 *(2017-04-04)* ---------------------------- * Fixed: Widget button for placeholder accounts tries to create transactions