From de6afbc1fedfde3455e7126dc368265fb4b7eed3 Mon Sep 17 00:00:00 2001 From: Yongxin Wang Date: Fri, 27 Nov 2015 14:00:30 +0800 Subject: [PATCH 1/7] fix the bug that modify account name will delete all transaction under the account --- .../gnucash/android/db/DatabaseAdapter.java | 18 ++++++++++++++++++ .../ui/account/AccountFormFragment.java | 2 ++ 2 files changed, 20 insertions(+) diff --git a/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java b/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java index 5281404ff..533b7af72 100644 --- a/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java @@ -56,6 +56,10 @@ public abstract class DatabaseAdapter { protected SQLiteStatement mReplaceStatement; + public enum UpdateMethod { + insert, update, replace + }; + /** * Opens the database adapter with an existing database * @param db SQLiteDatabase object @@ -620,6 +624,20 @@ public void setTransactionSuccessful() { mDb.setTransactionSuccessful(); } + /// Foreign key constraits should be enabled in general. + /// But if it affects speed (check constraints takes time) + /// and the constrained can be assured by the program, + /// or if some SQL exec will cause deletion of records + /// (like use replace in accounts update will delete all transactions) + /// that need not be deleted, then it can be disabled temporarily + public void enableForeignKey(boolean enable) { + if (enable){ + mDb.execSQL("PRAGMA foreign_keys=ON"); + } else { + mDb.execSQL("PRAGMA foreign_keys=OFF"); + } + } + /** * Expose mDb.endTransaction() */ diff --git a/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java index b83b0288f..0a62283f6 100644 --- a/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java @@ -846,7 +846,9 @@ private void saveAccount() { if (mAccountsDbAdapter == null) mAccountsDbAdapter = AccountsDbAdapter.getInstance(); // bulk update, will not update transactions + mAccountsDbAdapter.enableForeignKey(false); mAccountsDbAdapter.bulkAddRecords(accountsToUpdate); + mAccountsDbAdapter.enableForeignKey(true); finishFragment(); } From 13ef64a5bd2be9ec0b3923c90a209d6a46745df1 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Tue, 1 Dec 2015 11:13:25 +0100 Subject: [PATCH 2/7] Fix QIF export sometimes exports all transactions This is due to the import still in progress while the last export time is set. Now we query the database to get the last export time (instead of using current time) which ensures that the import database transaction must have completed first. Fixes #444 --- CHANGELOG.md | 6 ++++++ app/build.gradle | 2 +- .../android/db/TransactionsDbAdapter.java | 17 +++++++++++++++++ .../android/importer/GncXmlImporter.java | 9 +++++++-- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10f24f1b5..77ac5089c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ Change Log =============================================================================== +Version 2.0.4 *(2015-12-xx)* +---------------------------- +* Fixed: Transaction export time not always working reliably +* Fixed: Renaming account causes transactions to be deleted + + Version 2.0.3 *(2015-11-21)* ---------------------------- * Fixed: Unable to enter decimal amounts in split editor diff --git a/app/build.gradle b/app/build.gradle index 820cf023d..3280e903d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'io.fabric' def versionMajor = 2 def versionMinor = 0 -def versionPatch = 3 +def versionPatch = 4 def versionBuild = 0 def buildTime() { diff --git a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java index b522ea7f7..bf3d19af6 100644 --- a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java @@ -37,6 +37,7 @@ import org.gnucash.android.model.Split; import org.gnucash.android.model.Transaction; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; @@ -633,6 +634,22 @@ public long getTimestampOfLatestTransaction(AccountType type, String currencyCod return getTimestamp("MAX", type, currencyCode); } + /** + * Returns the most recent `modified_at` timestamp of non-template transactions in the database + * @return Last moodified time in milliseconds or null if no such transactions exist + */ + public Timestamp getTimestampOfLastModification(){ + Cursor cursor = mDb.query(TransactionEntry.TABLE_NAME, + new String[]{"MAX(" + TransactionEntry.COLUMN_MODIFIED_AT + ")"}, + TransactionEntry.COLUMN_TEMPLATE + " = 0", null, null, null, null); + Timestamp timestamp = null; + if (cursor.moveToNext()){ + String timeString = cursor.getString(0); + timestamp = Timestamp.valueOf(timeString); + } + return timestamp; + } + /** * Returns the earliest or latest timestamp of transactions for a specific account type and currency * @param mod Mode (either MAX or MIN) diff --git a/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java b/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java index 43ea7c614..a6734ed1f 100644 --- a/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java +++ b/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java @@ -21,6 +21,7 @@ import android.util.Log; import org.gnucash.android.app.GnuCashApplication; +import org.gnucash.android.db.TransactionsDbAdapter; import org.gnucash.android.export.Exporter; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -93,8 +94,12 @@ public static void parse(InputStream gncXmlInputStream) throws ParserConfigurati xr.parse(new InputSource(bos)); long endTime = System.nanoTime(); - String timeStamp = new Timestamp(System.currentTimeMillis()).toString(); - PreferenceManager.getDefaultSharedPreferences(GnuCashApplication.getAppContext()).edit().putString(Exporter.PREF_LAST_EXPORT_TIME, timeStamp).apply(); + + Timestamp timeStamp = TransactionsDbAdapter.getInstance().getTimestampOfLastModification(); + PreferenceManager.getDefaultSharedPreferences(GnuCashApplication.getAppContext()) + .edit() + .putString(Exporter.PREF_LAST_EXPORT_TIME, timeStamp.toString()) + .apply(); Log.d(GncXmlImporter.class.getSimpleName(), String.format("%d ns spent on importing the file", endTime-startTime)); } From 93cc38df92f2ef957218d74642c3de89706c016e Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Tue, 1 Dec 2015 13:54:54 +0100 Subject: [PATCH 3/7] Improve time formatting in transactions list Fix random crashes when saving transactions Closes #431 --- .../gnucash/android/db/AccountsDbAdapter.java | 6 +++- .../org/gnucash/android/export/Exporter.java | 4 +-- .../transaction/TransactionFormFragment.java | 4 +-- .../ui/transaction/TransactionsActivity.java | 31 ++++++++++++++++++- .../transaction/TransactionsListFragment.java | 11 ++++--- 5 files changed, 45 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/db/AccountsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/AccountsDbAdapter.java index 63b189a34..7da4727b4 100644 --- a/app/src/main/java/org/gnucash/android/db/AccountsDbAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/AccountsDbAdapter.java @@ -794,9 +794,13 @@ private Money computeBalance(String accountUID, long startTimestamp, long endTim * @param endTimestamp the end timestamp of the time range * @return Money balance of account list */ - public Money getAccountsBalance(List accountUIDList, long startTimestamp, long endTimestamp) { + public Money getAccountsBalance(@NonNull List accountUIDList, long startTimestamp, long endTimestamp) { String currencyCode = GnuCashApplication.getDefaultCurrencyCode(); Money balance = Money.createZeroInstance(currencyCode); + + if (accountUIDList.isEmpty()) + return balance; + boolean hasDebitNormalBalance = getAccountType(accountUIDList.get(0)).hasDebitNormalBalance(); SplitsDbAdapter splitsDbAdapter = SplitsDbAdapter.getInstance(); 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 9727f1013..7e2878a8d 100644 --- a/app/src/main/java/org/gnucash/android/export/Exporter.java +++ b/app/src/main/java/org/gnucash/android/export/Exporter.java @@ -201,11 +201,11 @@ public String getExportMimeType(){ public static class ExporterException extends RuntimeException{ public ExporterException(ExportParams params){ - super("Failed to generate " + params.getExportFormat().toString()); + super("Failed to generate export with parameters: " + params.toString()); } public ExporterException(@NonNull ExportParams params, @NonNull String msg) { - super("Failed to generate " + params.getExportFormat().toString() + "-" + msg); + super("Failed to generate export with parameters: " + params.toString() + " - " + msg); } public ExporterException(ExportParams params, Throwable throwable){ diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java index 49042df76..48db0b815 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java @@ -785,8 +785,8 @@ private void saveNewTransaction() { mTransaction.addSplit(split); String transferAcctUID; - if (mUseDoubleEntry) { - long transferAcctId = mTransferAccountSpinner.getSelectedItemId(); + long transferAcctId = mTransferAccountSpinner.getSelectedItemId(); + if (mUseDoubleEntry || transferAcctId < 0) { transferAcctUID = mAccountsDbAdapter.getUID(transferAcctId); } else { transferAcctUID = mAccountsDbAdapter.getOrCreateImbalanceAccountUID(currency); 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 350f0a503..b2beebf76 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 @@ -24,6 +24,7 @@ import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; @@ -32,6 +33,7 @@ import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.widget.Toolbar; +import android.text.format.DateUtils; import android.util.Log; import android.util.SparseArray; import android.view.Menu; @@ -60,8 +62,12 @@ import org.gnucash.android.ui.util.OnTransactionClickedListener; import org.gnucash.android.ui.util.Refreshable; import org.gnucash.android.util.QualifiedAccountNameCursorAdapter; +import org.joda.time.LocalDate; import java.math.BigDecimal; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; import butterknife.Bind; import butterknife.ButterKnife; @@ -92,6 +98,7 @@ public class TransactionsActivity extends BaseDrawerActivity implements * Number of pages to show */ private static final int DEFAULT_NUM_PAGES = 2; + private static SimpleDateFormat mDayMonthDateFormat = new SimpleDateFormat("EEE, d MMM"); /** * GUID of {@link Account} whose transactions are displayed @@ -153,7 +160,6 @@ public void onNothingSelected(AdapterView parent) { private PagerAdapter mPagerAdapter; - /** * Adapter for managing the sub-account and transaction fragment pages in the accounts view */ @@ -486,6 +492,29 @@ public static void displayBalance(TextView balanceTextView, Money balance){ balanceTextView.setTextColor(fontColor); } + /** + * Formats the date to show the the day of the week if the {@code dateMillis} is within 7 days + * of today. Else it shows the actual date formatted as short string.
+ * It also shows "today", "yesterday" or "tomorrow" if the date is on any of those days + * @param dateMillis + * @return + */ + @NonNull + public static String getPrettyDateFormat(Context context, long dateMillis) { + LocalDate transactionTime = new LocalDate(dateMillis); + LocalDate today = new LocalDate(); + String prettyDateText = null; + if (transactionTime.compareTo(today.minusDays(1)) >= 0 && transactionTime.compareTo(today.plusDays(1)) <= 0){ + prettyDateText = DateUtils.getRelativeTimeSpanString(dateMillis, System.currentTimeMillis(), DateUtils.DAY_IN_MILLIS).toString(); + } else if (transactionTime.getYear() == today.getYear()){ + prettyDateText = mDayMonthDateFormat.format(new Date(dateMillis)); + } else { + prettyDateText = DateUtils.formatDateTime(context, dateMillis, DateUtils.FORMAT_ABBREV_MONTH | DateUtils.FORMAT_SHOW_YEAR); + } + + return prettyDateText; + } + @Override public void createNewTransaction(String accountUID) { Intent createTransactionIntent = new Intent(this.getApplicationContext(), FormActivity.class); diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java index e59155ea3..9b0a8c416 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java @@ -21,6 +21,7 @@ import android.content.res.Configuration; import android.database.Cursor; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; @@ -42,6 +43,7 @@ import android.widget.TextView; import org.gnucash.android.R; +import org.gnucash.android.app.GnuCashApplication; import org.gnucash.android.db.AccountsDbAdapter; import org.gnucash.android.db.DatabaseCursorLoader; import org.gnucash.android.db.DatabaseSchema; @@ -57,8 +59,10 @@ import org.gnucash.android.ui.util.CursorRecyclerAdapter; import org.gnucash.android.ui.util.Refreshable; import org.gnucash.android.ui.util.widget.EmptyRecyclerView; +import org.joda.time.LocalDate; import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -196,7 +200,6 @@ public void onLoaderReset(Loader loader) { mTransactionRecyclerAdapter.swapCursor(null); } - /** * {@link DatabaseCursorLoader} for loading transactions asynchronously from the database * @author Ngewi Fet @@ -221,8 +224,6 @@ public Cursor loadInBackground() { public class TransactionRecyclerAdapter extends CursorRecyclerAdapter{ - DateFormat simpleDateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); - public TransactionRecyclerAdapter(Cursor cursor) { super(cursor); } @@ -264,7 +265,8 @@ public void onBindViewHolderCursor(ViewHolder holder, Cursor cursor) { holder.transactionNote.setText(text); long dateMillis = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseSchema.TransactionEntry.COLUMN_TIMESTAMP)); - String dateText = DateUtils.getRelativeTimeSpanString(dateMillis, System.currentTimeMillis(), DateUtils.DAY_IN_MILLIS).toString(); + String dateText = TransactionsActivity.getPrettyDateFormat(getActivity(), dateMillis); + holder.transactionDate.setText(dateText); final long id = holder.transactionId; @@ -288,7 +290,6 @@ public void onClick(View v) { } - public class ViewHolder extends RecyclerView.ViewHolder implements PopupMenu.OnMenuItemClickListener{ @Bind(R.id.primary_text) public TextView transactionDescription; @Bind(R.id.secondary_text) public TextView transactionNote; From 8b8f1944285e299d13ef1e00ded080c4a074170a Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Tue, 1 Dec 2015 17:58:12 +0100 Subject: [PATCH 4/7] Fix: setup wizard won't complete if manual account creation is selected Fix dialog not shown during initial account import Fix: setting last import date when only accounts are imported (no transactions) Fixes #443 Fixes #428 Fixes #438 --- CHANGELOG.md | 3 ++- .../gnucash/android/db/TransactionsDbAdapter.java | 14 ++++++++++---- .../gnucash/android/importer/GncXmlImporter.java | 1 - .../android/ui/account/AccountsActivity.java | 5 +++-- .../android/ui/common/BaseDrawerActivity.java | 2 +- .../android/ui/settings/SettingsActivity.java | 2 +- .../android/ui/wizard/FirstRunWizardActivity.java | 11 +++++++++-- 7 files changed, 26 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ac5089c..3a274fca9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ Version 2.0.4 *(2015-12-xx)* ---------------------------- * Fixed: Transaction export time not always working reliably * Fixed: Renaming account causes transactions to be deleted - +* Fixed: Progress dialog not displayed during initial import +* Fixed: Unable to finish first-run wizard if choosing to create accounts manually Version 2.0.3 *(2015-11-21)* ---------------------------- diff --git a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java index bf3d19af6..64920a7b9 100644 --- a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java @@ -636,17 +636,23 @@ public long getTimestampOfLatestTransaction(AccountType type, String currencyCod /** * Returns the most recent `modified_at` timestamp of non-template transactions in the database - * @return Last moodified time in milliseconds or null if no such transactions exist + * @return Last moodified time in milliseconds or current time if there is none in the database */ public Timestamp getTimestampOfLastModification(){ Cursor cursor = mDb.query(TransactionEntry.TABLE_NAME, new String[]{"MAX(" + TransactionEntry.COLUMN_MODIFIED_AT + ")"}, - TransactionEntry.COLUMN_TEMPLATE + " = 0", null, null, null, null); + null, null, null, null, null); + Timestamp timestamp = null; - if (cursor.moveToNext()){ + if (cursor.moveToFirst()){ String timeString = cursor.getString(0); - timestamp = Timestamp.valueOf(timeString); + if (timeString == null) //in case there were no transactions in the XML file (account structure only) + timestamp = new Timestamp(System.currentTimeMillis()); + else { + timestamp = Timestamp.valueOf(timeString); + } } + cursor.close(); return timestamp; } diff --git a/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java b/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java index a6734ed1f..eb9eea9a4 100644 --- a/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java +++ b/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java @@ -94,7 +94,6 @@ public static void parse(InputStream gncXmlInputStream) throws ParserConfigurati xr.parse(new InputSource(bos)); long endTime = System.nanoTime(); - Timestamp timeStamp = TransactionsDbAdapter.getInstance().getTimestampOfLastModification(); PreferenceManager.getDefaultSharedPreferences(GnuCashApplication.getAppContext()) .edit() diff --git a/app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java b/app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java index 494d817ba..34e9e3c8f 100644 --- a/app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java +++ b/app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java @@ -525,10 +525,11 @@ public static void startXmlFileChooser(Activity activity) { *

This method is usually called in response to {@link AccountsActivity#startXmlFileChooser(Activity)}

* @param context Activity context * @param data Intent data containing the XML uri + * @param onFinishTask Task to be executed when import is complete */ - public static void importXmlFileFromIntent(Activity context, Intent data) { + public static void importXmlFileFromIntent(Activity context, Intent data, TaskDelegate onFinishTask) { GncXmlExporter.createBackup(); - new ImportAsyncTask(context).execute(data.getData()); + new ImportAsyncTask(context, onFinishTask).execute(data.getData()); } /** diff --git a/app/src/main/java/org/gnucash/android/ui/common/BaseDrawerActivity.java b/app/src/main/java/org/gnucash/android/ui/common/BaseDrawerActivity.java index 6d12529f2..c0b3460bd 100644 --- a/app/src/main/java/org/gnucash/android/ui/common/BaseDrawerActivity.java +++ b/app/src/main/java/org/gnucash/android/ui/common/BaseDrawerActivity.java @@ -193,7 +193,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case AccountsActivity.REQUEST_PICK_ACCOUNTS_FILE: - AccountsActivity.importXmlFileFromIntent(this, data); + AccountsActivity.importXmlFileFromIntent(this, data, null); break; } } diff --git a/app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java b/app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java index 250a799c0..6cd389c43 100644 --- a/app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java +++ b/app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java @@ -578,7 +578,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case AccountsActivity.REQUEST_PICK_ACCOUNTS_FILE: if (resultCode == Activity.RESULT_OK && data != null) { - AccountsActivity.importXmlFileFromIntent(this, data); + AccountsActivity.importXmlFileFromIntent(this, data, null); } break; case GeneralPreferenceFragment.PASSCODE_REQUEST_CODE: diff --git a/app/src/main/java/org/gnucash/android/ui/wizard/FirstRunWizardActivity.java b/app/src/main/java/org/gnucash/android/ui/wizard/FirstRunWizardActivity.java index 850d80329..717328493 100644 --- a/app/src/main/java/org/gnucash/android/ui/wizard/FirstRunWizardActivity.java +++ b/app/src/main/java/org/gnucash/android/ui/wizard/FirstRunWizardActivity.java @@ -52,6 +52,7 @@ import org.gnucash.android.app.GnuCashApplication; import org.gnucash.android.importer.ImportAsyncTask; import org.gnucash.android.ui.account.AccountsActivity; +import org.gnucash.android.ui.util.TaskDelegate; import java.io.FileNotFoundException; import java.io.InputStream; @@ -212,6 +213,8 @@ private void createAccountsAndFinish() { finish(); } else if (mAccountOptions.equals(getString(R.string.wizard_option_import_my_accounts))){ AccountsActivity.startXmlFileChooser(this); + } else { + finish(); } } @@ -252,9 +255,13 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case AccountsActivity.REQUEST_PICK_ACCOUNTS_FILE: if (resultCode == Activity.RESULT_OK && data != null) { - AccountsActivity.importXmlFileFromIntent(this, data); + AccountsActivity.importXmlFileFromIntent(this, data, new TaskDelegate() { + @Override + public void onTaskComplete() { + finish(); + } + }); } - finish(); break; } } From 3624798f5107e80b807ce6f787da7190de3ecb92 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Tue, 1 Dec 2015 18:08:12 +0100 Subject: [PATCH 5/7] Remove inapplicable options from scheduled actions context menu Update CHANGELOG --- CHANGELOG.md | 3 ++- .../android/db/TransactionsDbAdapter.java | 6 ++--- .../ScheduledActionsListFragment.java | 2 +- .../res/menu/schedxactions_context_menu.xml | 26 +++++++++++++++++++ .../res/menu/transactions_context_menu.xml | 3 +-- 5 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 app/src/main/res/menu/schedxactions_context_menu.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a274fca9..80e01a7d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,12 @@ Change Log =============================================================================== -Version 2.0.4 *(2015-12-xx)* +Version 2.0.4 *(2015-12-02)* ---------------------------- * Fixed: Transaction export time not always working reliably * Fixed: Renaming account causes transactions to be deleted * Fixed: Progress dialog not displayed during initial import * Fixed: Unable to finish first-run wizard if choosing to create accounts manually +* Fixed: Removed inapplicable options in scheduled actions context menu Version 2.0.3 *(2015-11-21)* ---------------------------- diff --git a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java index 64920a7b9..0f9b4bfa6 100644 --- a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java @@ -643,12 +643,10 @@ public Timestamp getTimestampOfLastModification(){ new String[]{"MAX(" + TransactionEntry.COLUMN_MODIFIED_AT + ")"}, null, null, null, null, null); - Timestamp timestamp = null; + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); if (cursor.moveToFirst()){ String timeString = cursor.getString(0); - if (timeString == null) //in case there were no transactions in the XML file (account structure only) - timestamp = new Timestamp(System.currentTimeMillis()); - else { + if (timeString != null){ //in case there were no transactions in the XML file (account structure only) timestamp = Timestamp.valueOf(timeString); } } diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java index 2358ddbf1..649f5a514 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java @@ -95,7 +95,7 @@ public class ScheduledActionsListFragment extends ListFragment implements @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = mode.getMenuInflater(); - inflater.inflate(R.menu.transactions_context_menu, menu); + inflater.inflate(R.menu.schedxactions_context_menu, menu); return true; } diff --git a/app/src/main/res/menu/schedxactions_context_menu.xml b/app/src/main/res/menu/schedxactions_context_menu.xml new file mode 100644 index 000000000..74106be52 --- /dev/null +++ b/app/src/main/res/menu/schedxactions_context_menu.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/transactions_context_menu.xml b/app/src/main/res/menu/transactions_context_menu.xml index cd4f77178..14cb5e34e 100644 --- a/app/src/main/res/menu/transactions_context_menu.xml +++ b/app/src/main/res/menu/transactions_context_menu.xml @@ -1,6 +1,6 @@ Date: Tue, 1 Dec 2015 22:05:06 +0100 Subject: [PATCH 6/7] Fix crash when deleting scheduled exports Fixes #441 --- .../gnucash/android/db/DatabaseAdapter.java | 6 +---- .../ScheduledActionsListFragment.java | 26 ++++++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java b/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java index 533b7af72..2e810b569 100644 --- a/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java @@ -56,10 +56,6 @@ public abstract class DatabaseAdapter { protected SQLiteStatement mReplaceStatement; - public enum UpdateMethod { - insert, update, replace - }; - /** * Opens the database adapter with an existing database * @param db SQLiteDatabase object @@ -427,7 +423,7 @@ public String getUID(long id){ if (cursor.moveToFirst()) { uid = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseSchema.CommonColumns.COLUMN_UID)); } else { - throw new IllegalArgumentException("Account record ID " + id + " does not exist in the db"); + throw new IllegalArgumentException(mTableName + " Record ID " + id + " does not exist in the db"); } } finally { cursor.close(); diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java index 649f5a514..5d60d8b32 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java @@ -115,16 +115,24 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.context_menu_delete: for (long id : getListView().getCheckedItemIds()) { - Log.i(TAG, "Cancelling scheduled transaction(s)"); - String trnUID = mTransactionsDbAdapter.getUID(id); - ScheduledActionDbAdapter scheduledActionDbAdapter = GnuCashApplication.getScheduledEventDbAdapter(); - List actions = scheduledActionDbAdapter.getScheduledActionsWithUID(trnUID); - - if (mTransactionsDbAdapter.deleteRecord(id)){ - Toast.makeText(getActivity(), R.string.toast_recurring_transaction_deleted, Toast.LENGTH_SHORT).show(); - for (ScheduledAction action : actions) { - scheduledActionDbAdapter.deleteRecord(action.getUID()); + + if (mActionType == ScheduledAction.ActionType.TRANSACTION) { + Log.i(TAG, "Cancelling scheduled transaction(s)"); + String trnUID = mTransactionsDbAdapter.getUID(id); + ScheduledActionDbAdapter scheduledActionDbAdapter = GnuCashApplication.getScheduledEventDbAdapter(); + List actions = scheduledActionDbAdapter.getScheduledActionsWithUID(trnUID); + + if (mTransactionsDbAdapter.deleteRecord(id)) { + Toast.makeText(getActivity(), + R.string.toast_recurring_transaction_deleted, + Toast.LENGTH_SHORT).show(); + for (ScheduledAction action : actions) { + scheduledActionDbAdapter.deleteRecord(action.getUID()); + } } + } else if (mActionType == ScheduledAction.ActionType.BACKUP){ + Log.i(TAG, "Removing scheduled exports"); + ScheduledActionDbAdapter.getInstance().deleteRecord(id); } } mode.finish(); From e589a2687a892d0611c44165d712ade3d238f31c Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Tue, 1 Dec 2015 22:12:53 +0100 Subject: [PATCH 7/7] Update translations --- app/src/main/res/values-af-rZA/strings.xml | 2 +- app/src/main/res/values-ar-rSA/strings.xml | 2 +- app/src/main/res/values-ca-rES/strings.xml | 2 +- app/src/main/res/values-cs-rCZ/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 322 ++++++++++----------- app/src/main/res/values-el-rGR/strings.xml | 2 +- app/src/main/res/values-en-rGB/strings.xml | 10 +- app/src/main/res/values-es-rMX/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 6 +- app/src/main/res/values-fi-rFI/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-hu-rHU/strings.xml | 2 +- app/src/main/res/values-it-rIT/strings.xml | 2 +- app/src/main/res/values-iw-rIL/strings.xml | 2 +- app/src/main/res/values-ja-rJP/strings.xml | 2 +- app/src/main/res/values-ko-rKR/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-nl-rNL/strings.xml | 2 +- app/src/main/res/values-no-rNO/strings.xml | 2 +- app/src/main/res/values-pl-rPL/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt-rPT/strings.xml | 2 +- app/src/main/res/values-ro-rRO/strings.xml | 20 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sr-rSP/strings.xml | 2 +- app/src/main/res/values-sv-rSE/strings.xml | 2 +- app/src/main/res/values-tr-rTR/strings.xml | 82 +++--- app/src/main/res/values-uk-rUA/strings.xml | 2 +- app/src/main/res/values-vi-rVN/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 188 ++++++------ app/src/main/res/values-zh-rTW/strings.xml | 2 +- 31 files changed, 338 insertions(+), 340 deletions(-) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 54aa639ba..8c2aa2c91 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 107153ca9..18213c28d 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 7b935d0bc..4294768fe 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -57,7 +57,7 @@ By default, only new transactions since last export will be exported. Check this option to export all transactions Error exporting %1$s file Exporta - Suprimeix després d\'exportar + Delete transactions after export All exported transactions will be deleted when exporting is completed Preferències diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 92c01bd4b..5cc200664 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index b16e201b2..ab37838d5 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -57,7 +57,7 @@ Auswählen, um alle Buchungen zu exportieren. Andernfalls werden nur die neuen Buchungen seit letztem Export exportiert. Fehler beim Exportieren der %1$s-Datei Exportieren - Löschen nach dem Exportieren + Buchungen nach dem Export löschen Alle exportierten Buchungen werden nach dem Export gelöscht. Einstellungen @@ -85,20 +85,20 @@ Konto anzeigen Konten erstellen Zu erstellende Konten auswählen - Keine Konten vorhanden.\nSie müssen ein Konto erstellen um Widgets anfügen zu können. + Keine Konten vorhanden.\nErstellen Sie ein Konto um Widgets hinzuzufügen Version Lizenz Apache License v2.0. Klicken für Details Allgemein Konto auswählen Keine Buchungen zum Exportieren - Passcode - Passcode Preferences - Passcode Turned On - Passcode Turned Off - Change Passcode + PIN Einstellungen + Sicherheit + Zugang nur mit PIN + Zugang ohne PIN + PIN ändern Über GnuCash - A mobile finance management and expense-tracker designed for Android + Ein leistungsfähiger und flexibler mobiler Finanzmanager für Android Über %1$s-Datei erfolgreich exportiert nach:\n GnuCash Android exportierte %1$s-Datei @@ -129,17 +129,17 @@ XML-OFX-Header verwenden Diese Option aktivieren, wenn Sie die OFX-Dateien für ein anderes Programm als GnuCash auf dem Desktop exportieren Neuigkeiten in dieser Version - - - New Material app design \n - - Multi-currency transactions\n - - Calculator to transaction amounts\n - - Better reporting options\n - - New help & feedback section\n - - Multiple bug fixes and improvements\n - + \n + - App im Material Design\n + - Mehrwährungsbuchungen\n + - Rechner für Buchungsbeträge\n + - Verbesserte Berichte\n + - Neuer Hilfe & Feedback-Bereich\n + - Viele Fehlerbehebungen und Verbesserungen\n +\n Schließen Geben Sie einen Betrag ein, um die Buchung speichern zu können - Multi-currency transactions cannot be modified + Mehrwährungsbuchungen können nicht bearbeitet werden GnuCash-Konten importieren Konten importieren Beim Importieren der GnuCash-Konten ist ein Fehler aufgetreten! @@ -165,7 +165,7 @@ Standard-Export-Format Dateiformat, welches standardmäßig verwendet wird, wenn Buchungen exportiert werden Buchungen exportieren… - Wiederkehr + Wiederholung Ausgleichskonto Die Buchungen werden exportiert Keine wiederkehrende Buchungen vorhanden @@ -184,13 +184,13 @@ PASSIVA EINKOMMEN AUFWENDUNGEN - PAYABLE + VERBINDLICHKEITEN FORDERUNGEN EIGENKAPITAL WÄHRUNG AKTIENKONTO INVESTMENTFONDS - TRADING + HANDELSKONTO QIF @@ -205,8 +205,8 @@ Alle Erstellt die häufig verwendeten Standard-GnuCash-Konten Standard-Konten erstellen - All existing accounts and transactions on the device will be deleted.\n\nAre you sure you want to proceed? - Eingeplante Buchungen + Es werden alle bestehenden Konten und Buchungen auf dem Gerät gelöscht.\n\nWollen Sie fortfahren? + Geplante Buchungen Willkommen bei GnuCash Android!\nSie können entweder eine Hierarchie der für gewöhnlich verwendeten Konten erstellen oder Ihre eigene GnuCash-Kontenstruktur importieren.\n\nBeide Optionen sind auch in den Einstellungen verfügbar, sodass Sie dies später entscheiden können. Eingeplante Buchungen @@ -230,164 +230,164 @@ Wiederholungen Keine Sicherheitskopie vorhanden Anfangsbestand - Equity + Eigenkapital Möglichkeit aktivieren, den aktuellen Saldo als neuen Anfangsbestand nach dem Löschen der Buchungen zu übernehmen Saldo als neuen Anfangsbestand übernehmen - OFX does not support double-entry transactions - Generates separate QIF files per currency - Transaction splits - Imbalance: - Add split - Favorite - 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 - Group Smaller Slices - No chart data available - Overall - 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 - DropBox Sync + OFX unterstützt keine doppelte Buchführung + Erzeugt eine QIF-Datei für jede Währung + Split Buchung + Differenz: + Split hinzufügen + Favorit + Navigationsleiste geöffnet + Navigationsleiste geschlossen + Berichte + Tortendiagramm + Liniendiagramm + Balkendiagramm + Berichte + Wählen Sie eine Währung + Kontofarbe + Verwende Kontofarben in Balken- und Tortendiagrammen + Berichte + Nach Größe sortieren + Legende anzeigen + Beschreibung anzeigen + Prozent anzeigen + Durchschnitt anzeigen + Kleine Segmente zusammenfassen + Keine Daten zum anzeigen gefunden + Summe + Summe + Sonstige + Der Prozentsatz wird aus der Gesamtsumme errechnet + Der Prozentsatz wird vom Gesamtwert des Balkens errechnet + Als Vorlage speichern + Dieses Konto enthält Buchungen.\nWas wollen Sie mit diesen Buchungen tun? + Dieses Konto enthält Unterkonten. \nWas wollen Sie mit diesen Unterkonten tun? + Buchungen löschen + Erstellen und wählen Sie ein Transferkonto aus oder deaktivieren Sie Doppelte Buchführung in den Einstellungen um diese Buchung zu speichern + Wiederholung erstellen + Sicherung wiederherstellen… + Backup & Exporte + Dropbox Sync Backup - Enable to sync to DropBox - 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 + Aktiviert Synchronisierung mit DropBox + GnuCash XML Datei auswählen + Sicherungs-Einstellungen + Sicherung erstellen + Sicherungen werden auf der SDCARD gespeichert + Wähle eine Sicherungskopie zur Wiederherstellung aus + Sicherung erfolgreich + Sicherung fehlgeschlagen + Alle Konten und Buchungen werden exportiert Google Drive Sync - Enable to sync to Google Drive - Install a file manager to select files - Select backup to restore - Favorites - Open… - Reports - Scheduled Transactions - Export… - Settings + Aktiviert Synchronisierung mit Google Drive + Installieren Sie einen Dateimanager um Dateien auszuwählen + Wähle eine Sicherungskopie + Favoriten + Öffnen… + Berichte + Geplante Buchungen + Exportieren… + Einstellungen - Daily - Every %d days + Täglich + Jeden %d. Tag - Weekly - Every %d weeks + Wöchentlich + Jede %d. Woche - Monthly - Every %d months + Monatlich + Jenden %d. Monat - Yearly - Every %d years + Jährlich + Alle %d Jahre - Enable Crash Logging + Absturzprotokolloerung aktivieren Enable to send information about malfunctions to the developers for improvement (recommended). No user-identifiable information will be collected as part of this process! Format - Backup folder cannot be found. Make sure the SD Card is mounted! - Enter your old passcode - Enter your new passcode - Scheduled Exports + Sicherungsordner nicht gefunden. Prüfe, ob eine SD-Karte vorhanden ist! + Alten PIN eingeben + Neuen PIN eingeben + Geplanten Exporte Scheduled Exports - No scheduled exports to display - Create export schedule - Exported to: %1$s - The legend is too long - Account description - No recent accounts - No favorite accounts - Scheduled Actions + Keine geplanten Exporte + Wiederkehrenden Export erstellen + Exportiert auf %1$s + Die Legende ist zu lang + Kontobeschreibung + Keine kürzlich verwendeten Konten + Keine bevorzugten Konten + Geplante Aktionen "Ended, last executed on " - Select a bar to view details - Next - Done - Default Currency - Account Setup - Select Currency - Feedback Options - Create default accounts - Import my accounts - Let me handle it + Wählen Sie einen Balken für Details + Weiter + Fertig + Standardwährung + Konto einrichten + Währung wählen + Feedbackoptionen + Standard-Konten erstellen + Meine Konten importieren + Überlassen Sie das mir Other... - Automatically send crash reports - Disable crash reports - Back - Setup GnuCash - Welcome to GnuCash - Before you dive in, \nlet\'s setup a few things first\n\nTo continue, press Next - Split Editor - Check that all splits have valid amounts before saving! - Invalid expression! - Scheduled recurring transaction - An exchange rate is required - The converted amount is required - Transfer Funds - - Select a slice to see details - Period: - From: - To: - Provide either the converted amount or exchange rate in order to transfer funds - Exchange rate - Fetch quote - Converted Amount - Sheet - Expenses for last 3 months - Total Assets - Total Liabilities - Net Worth - Assets - Liabilities - Equity - - Move to: - Group By - Month - Quarter - Year - Balance Sheet - Total: - Google+ Community - Translate GnuCash - Share ideas, discuss changes or report problems - Translate or proof-read on CrowdIn - No compatible apps to receive the exported transactions! - Move... - Duplicate + Absturzberichte automatisch senden + Absturzberichte deaktivieren + Zurück + GnuCash einrichten + Willkommen bei GnuCash + Bevor Sie anfangen, \nlassen Sie uns ein paar Dinge einrichten\n\nZum fortfahren drücken Sie auf Weiter + Split Buchung + Prüfen Sie vor dem Speichern, ob alle Buchungsteile gültige Beträge enthalten! + Ungültiger Ausdruck! + Geplante Buchung + Ein Wechselkurs ist erforderlich + Ein Wechselbetrag ist erforderlich + Überweisungen + + Tippe auf ein Segment um Details zu sehen + Zeitraum: + Von: + An: + Wählen Sie entweder den gewechselten Betrag oder den Wechselkurs für die Überweisung an + Wechselkurs + Kurs einholen + Umgerechneter Betrag + Bilanz + Aufwendungen der letzten 3 Monate + Summe Vermögen + Summe Verbindlichkeiten + Reinvermögen + Vermögen + Verbindlichkeiten + Eigenkapital + + Verschieben nach: + Gruppieren nach + Monat + Quartal + Jahr + Bilanz + Summe: + Google+ community + GnuCash übersetzen + Teile deine Ideen und Verbesserungsvorschläge mit oder berichte über Probleme mit GnuCash + Übersetze oder korrigiere Übersetzungen auf CrowdIn + Es gibt keine kompatible App, welche die exportierten Buchungen empfangen kann! + Verschieben… + Kopieren - Current month - Last 3 months - Last 6 months - Last 12 months - All time - Custom range… + Aktueller Monat + Letzte 3 Monate + Letzte 6 Monate + Letzte 12 Monate + Unbegrenzt + Benutzerdefiniert… diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 9b033a1bd..1e6c5f298 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -57,7 +57,7 @@ Προεπιλεγμένα, μόνο οι νέες συναλλαγές από τη τελευταία εξαγωγή θα εξαχθούν. Ενεργοποίησε αυτή την επιλογή για την εξαγωγή όλων των συναλλαγών Σφάλμα εξαγωγής δεδομένων %1$s Εξαγωγή - Διαγραφή μετά την εξαγωγή + Delete transactions after export Όλες οι συναλλαγές που εξάγονται, θα διαγραφούν με την ολοκλήρωση της εξαγωγής Ρυθμίσεις diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 54aa639ba..f1bfc01c4 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings @@ -203,7 +203,7 @@ Account Color & Type Delete sub-accounts Recent - Favorites + Favourites All Creates default GnuCash commonly-used account structure Create default accounts @@ -243,7 +243,7 @@ Transaction splits Imbalance: Add split - Favorite + Favourite Navigation drawer opened Navigation drawer closed Reports @@ -290,7 +290,7 @@ Enable to sync to Google Drive Install a file manager to select files Select backup to restore - Favorites + Favourites Open… Reports Scheduled Transactions @@ -326,7 +326,7 @@ The legend is too long Account description No recent accounts - No favorite accounts + No favourite accounts Scheduled Actions "Ended, last executed on %1$s" Select a bar to view details diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml index 276b7d0e6..4ab003dc5 100644 --- a/app/src/main/res/values-es-rMX/strings.xml +++ b/app/src/main/res/values-es-rMX/strings.xml @@ -57,7 +57,7 @@ Por defecto solo las nuevas transacciones desde la última exportación serán exportadas. Seleccione esta opción para exportar todas las transacciones Error exportando datos %1$s Exportar - Borrar después de exportar + Delete transactions after export Todas las transacciones exportadas serán borradas cuando la exportación haya terminado Ajustes diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d0f5da332..4f8a964b0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -57,7 +57,7 @@ Por defecto solo las nuevas transacciones desde la última exportación serán exportadas. Seleccione esta opción para exportar todas las transacciones Error exportando datos %1$s Exportar - Borrar después de exportar + Borrar las transacciones exportadas Todas las transacciones exportadas serán borradas cuando la exportación haya terminado Ajustes @@ -380,8 +380,8 @@ Este proceso solo recoge información que no permite identificar al usuarioCompartir ideas, discutir cambios o reportar problemas
Traducir o revisar en CrowdIn ¡No hay aplicaciones compatibles para recibir las transacciones exportadas! - Move... - Duplicate + Mover... + Duplicar Mes actual Últimos 3 meses diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 54aa639ba..8c2aa2c91 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 547ffb19c..30d4f59af 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -57,7 +57,7 @@ Par défaut, seul les nouvelles transactions depuis le dernier export seront exportées. Cochez cette option pour exporter toutes les transactions Erreur lors de l\'export des données en %1$s Exporter - Supprimer après export + Delete transactions after export Toutes les transactions exportées seront supprimées aprés l\'export Paramètres diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index f6e4e0ffa..6dc9b45d7 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -57,7 +57,7 @@ By default, only new transactions since last export will be exported. Check this option to export all transactions Error exporting %1$s data Export - Delete after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 313ddee27..52e4f11ae 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -57,7 +57,7 @@ Di default, verranno esportate solo le transazioni dall\'ultima esportazione. Selezionare questa opzione per esportare tutte le transazioni Errore nell\'esportazione dei dati %1$s Esporta - Elimina dopo l\'esportazione + Delete transactions after export Tutte le transazioni esportate verranno eliminate al termine dell\'esportazione Impostazioni diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index 54aa639ba..8c2aa2c91 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 52fe7ce51..59c351479 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 1656ad737..27cff5080 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 05ee7407b..f6958153f 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -57,7 +57,7 @@ Standard eksporteres bare nye transaksjoner siden siste eksport. Merk dette alternativet for å eksportere alle transaksjoner Feil ved eksport av %1$s Eksporter - Slette etter eksport + Delete transactions after export Alle eksporterte transaksjoner slettes når eksport er fullført Innstillinger diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 6654dae56..22badd8a7 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -57,7 +57,7 @@ Aanvinken om alle boekingen te exporteren. Anders worden uitsluitend de nieuwe boekingen sinds de laatste export geëxporteerd. Fout tijdens het exporteren van de %1$s data Exporteren - Verwijderen na exporteren + Delete transactions after export Alle geëxporteerde boekingen zullen verwijderd worden na de export Instellingen diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 05ee7407b..f6958153f 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -57,7 +57,7 @@ Standard eksporteres bare nye transaksjoner siden siste eksport. Merk dette alternativet for å eksportere alle transaksjoner Feil ved eksport av %1$s Eksporter - Slette etter eksport + Delete transactions after export Alle eksporterte transaksjoner slettes når eksport er fullført Innstillinger diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index aa7366017..dd96df3c2 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -57,7 +57,7 @@ By default, only new transactions since last export will be exported. Check this option to export all transactions Błąd eksportowania pliku %1$s Eksportuj - Usuń po eksporcie + Delete transactions after export Wszystkie eksportowane transakcje będą usunięte po zakończeniu eksportu Ustawienia diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 443b85b81..9780fcea3 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -57,7 +57,7 @@ Por padrão, apenas as novas transações após a última exportação serão exportadas. Marque esta opção para exportar todas as transações Erro ao exportar o ficheiro %1$s Exportar - Apagar após exportação + Excluir transações após exportar Todas as transações exportadas serão apagadas quando a exportação estiver completa Configurações diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index ce055634b..300f2335f 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -57,7 +57,7 @@ Por defeito, apenas as novas transações após a última exportação serão exportadas. Marque esta opção para exportar todas as transações Erro ao exportar o ficheiro %1$s Exportar - Apagar após exportação + Apagar as transações depois de exportar Todas as transações exportadas serão apagadas quando a exportação estiver completa Configurações diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 92c01bd4b..58d71312c 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -16,17 +16,17 @@ limitations under the License. --> - Create Account - Edit Account + Creează cont + Editați contul Info Export… - Add a new transaction to an account - No accounts to display - Account name - Cancel - Save - Enter Passcode - Wrong passcode, please try again + Adăugaţi o nouă tranzacţie într-un cont + Nu există conturi pentru a afișa + Numele contului + Rezilia + Salvaţi + Introduceţi parola + Greşit parola, vă rugăm să încercaţi din nou Passcode set Please confirm your passcode Invalid passcode confirmation. Please try again @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 764b17f0d..73e539fc8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -57,7 +57,7 @@ Экспортировать все проводки, а не только новые. Ошибка при экспорте %1$s Экспорт - Удалить после экспорта + Delete transactions after export Все экспортированные проводки будут удалены по завершении. Настройки diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index c92cb1056..1210f63e2 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -57,7 +57,7 @@ Подразумева се да буду извезене само нове трансакције након последњег извоза. Укључите ову опцију ако желите извоз свих трансакција Грешка при извозу датотеке %1$s Извези - Брисање након извоза + Delete transactions after export Све извезене трансакције ће бити обрисане након завршетка извоза Подешавања diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 54aa639ba..8c2aa2c91 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index a9c761986..55baa90e9 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -19,49 +19,49 @@ Hesap Oluştur Hesabı Düzenle Bilgilendirme - Export… - Add a new transaction to an account + Dışarı Aktar… + Bir hesaba yeni bir işlem ekle No accounts to display - Account name + Hesap adı İptal Kaydet - Enter Passcode - Wrong passcode, please try again - Passcode set - Please confirm your passcode + Şifre girin + Yanlış şifre, lütfen tekrar deneyin + Şifre ayarla + Lütfen, şifreyi onaylayın Invalid passcode confirmation. Please try again - Description - Amount + Açıklama + Tutar New transaction No transactions to display DATE & TIME - Account + Hesap DEBIT - CREDIT - Accounts - Transactions - Delete - Delete - Cancel - Account deleted + KREDİ + Hesaplar + İşlemler + Sil + Sil + İptal + Silinmiş hesap Confirm delete All transactions in this account will also be deleted Edit Transaction Add note - MOVE - %1$d selected - Balance: + TAŞI + %1$d seçildi + Bakiye: 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed - Settings + Ayarlar - SD Card + Hafıza Kartı DropBox Google Drive Send to… @@ -69,12 +69,12 @@ Move Move %1$d transaction(s) Destination Account - Access SD Card + SD Kart Erişimi Cannot move transactions.\nThe destination account uses a different currency from origin account - General - About - Choose default currency - Default currency + Genel + Hakkında + Varsayılan para birimini seçin + Varsayılan para birimi Default currency to assign to new accounts Enables recording transactions in GnuCash for Android Enables creation of accounts in GnuCash for Android @@ -83,14 +83,14 @@ Record transactions in GnuCash Create accounts in GnuCash Display account - Create Accounts + Hesap Oluştur Select accounts to create No accounts exist in GnuCash.\nCreate an account before adding a widget Build version - License - Apache License v2.0. Click for details - General Preferences - Select Account + Lisans + Apache Lisansı v2.0. Detaylar için tıklayın + Genel Tercihler + Hesap seçin There are no transactions available to export Passcode Passcode Preferences @@ -109,7 +109,7 @@ Default Transaction Type The type of transaction to use by default, CREDIT or DEBIT - CREDIT + KREDİ DEBIT Are you sure you want to delete ALL transactions? @@ -122,13 +122,13 @@ Transfer Account All transactions will be a transfer from one account to another Activate Double Entry - Balance + Bakiye Enter an account name to create an account - Currency + Para birimi Parent account Use XML OFX header Enable this option when exporting to third-party application other than GnuCash for desktop - What\'s New + Yenilikler - New Material app design \n - Multi-currency transactions\n @@ -137,7 +137,7 @@ - New help & feedback section\n - Multiple bug fixes and improvements\n - Dismiss + Yoksay Enter an amount to save the transaction Multi-currency transactions cannot be modified Import GnuCash Accounts @@ -150,12 +150,12 @@ well.
Delete all accounts - Accounts + Hesaplar 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 + Hesap Türü All transactions in all accounts will be deleted! Delete all transactions All transactions successfully deleted! @@ -163,7 +163,7 @@ Tap again to confirm. ALL entries will be deleted!! Transactions Sub-Accounts - Search + Arama Default Export Format File format to use by default when exporting transactions Export transactions… diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 0f8436621..bd4f1b497 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -57,7 +57,7 @@ Експортувати всі транзакції, а не тільки нові. Помилка при експорті %1$s Експорт - Видалити після експорту + Delete transactions after export Всі експортовані транзакції будуть видалені по завершенні. Налаштування diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 1656ad737..27cff5080 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -57,7 +57,7 @@ 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 after export + Delete transactions after export All exported transactions will be deleted when exporting is completed Settings diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 83f48ddfb..d9944b689 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -51,7 +51,7 @@ 移动 %1$d 已选中 合计: - Export To: + 导出到: 导出交易资料 导出所有交易 默认情况下,自上次导出后新增的交易才会被导出。选择此项后所有的交易都会被导出。 @@ -64,7 +64,7 @@ SD卡 DropBox Google Drive - 分享… + Owncloud 移动 移动 %1$d 交易 @@ -88,7 +88,7 @@ GnuCash里还没有科目信息。\n使用小部件前需要添加科目 版本号 授权许可 - Apache License v2.0,点击查看明细(将打开网页)。 + Apache License v2.0,点击查看明细(将打开网页) 通用 选择科目 没有需要导出的交易 @@ -98,10 +98,10 @@ 没有设置密码 修改密码 关于GnuCash - A mobile finance management and expense-tracker designed for Android + Android版财务管理软件 关于 %1$s文件保存到:\n - GnuCash Android %1$s 导出 + GnuCash Android %1$s 的导出文件 GnuCash Android Export from 交易 交易设置 @@ -117,7 +117,7 @@ 导出设置 导出所有交易 删除已导出的交易 - email设置 + Email设置 默认发送导出的OFX文件到这个email地址,当然在导出过程时你仍然可以临时变更。 交易科目 所有交易会显示成两行,复式簿记 @@ -130,12 +130,12 @@ 当导出数据到GnuCash桌面版以外的程序时需要开启这个选项。 新功能 - - New Material app design \n - - Multi-currency transactions\n - - Calculator to transaction amounts\n - - Better reporting options\n - - New help & feedback section\n - - Multiple bug fixes and improvements\n + - 新的界面外观(Material Design) \n + - 同时使用多种货币 \n + - 使用计算器输入金额 \n + - 改进报表的可选参数设计 \n + - 新增帮助菜单 \n + - 其他一些小问题的修复\n 知道了 输入金额才能保存交易 @@ -238,8 +238,8 @@ 不平衡的: 添加一行 收藏 - Navigation drawer opened - Navigation drawer closed + 打开导航抽屉 + 关闭导航抽屉 报表 饼图 折线图 @@ -250,29 +250,29 @@ 在饼图中使用科目的颜色 报表 按数量排序 - Show legend - Show labels - Show percentage - Show average lines + 显示图例 + 显示标签 + 显示占比 + 显示平均线 合并太小的数据 没有数据可显示 全部 总计 其他 - The percentage of selected value calculated from the total amount - The percentage of selected value calculated from the current stacked bar amount + 百分比按照总金额占比来计算 + 百分比按照柱状图比例计算 保存成模板 科目中包含交易信息。 \n如何处理交易信息 还存在子科目。 \n如何处理这些子科目 删除交易 请选择一个转账科目,否则在“设置”中关闭双航模式(复式簿记) - 点击然后创建计划交易 + 点击然后创建计划任务 从备份恢复… 备份和导出 - DropBox Sync + DropBox 同步 备份 同步到DropBox - Select GnuCash XML file + 选择GnuCash XML文件 备份设置 创建备份 备份会保存到SD卡上 @@ -280,7 +280,7 @@ 备份成功 备份失败 导出所有科目和交易 - Google Drive Sync + Google Drive 同步 同步到Google Drive 你需要安装一个文件管理器 选择备份 @@ -303,10 +303,8 @@ 每 %d 年 启用崩溃日志 - Enable to send information about malfunctions to the developers for improvement (recommended). -No user-identifiable information will be collected as part of this process! - - Format + 发送崩溃日志给开发者来帮助改进软件,里面没有个人的隐私信息。 + 文件格式: 找不到备份目录,请确认SD卡正常。 先输入现在的密码 请输入新密码 @@ -315,74 +313,74 @@ No user-identifiable information will be collected as part of this process! 没有备份任务 创建定时备份 导出到:%1$s - The legend is too long - Account description - No recent accounts - No favorite accounts - Scheduled Actions + 图例太多了 + 科目描述 + 最近的科目为空 + 没有加星标的科目 + 定时任务 "Ended, last executed on " - Select a bar to view details - Next - Done - Default Currency - Account Setup - Select Currency - Feedback Options - Create default accounts - Import my accounts - Let me handle it - Other... - Automatically send crash reports - Disable crash reports - Back - Setup GnuCash - Welcome to GnuCash - Before you dive in, \nlet\'s setup a few things first\n\nTo continue, press Next - Split Editor - Check that all splits have valid amounts before saving! - Invalid expression! - Scheduled recurring transaction - An exchange rate is required - The converted amount is required - Transfer Funds - - Select a slice to see details - Period: - From: - To: - Provide either the converted amount or exchange rate in order to transfer funds - Exchange rate - Fetch quote - Converted Amount - Sheet - Expenses for last 3 months - Total Assets - Total Liabilities - Net Worth - Assets - Liabilities - Equity - - Move to: - Group By - Month - Quarter - Year - Balance Sheet - Total: - Google+ Community - Translate GnuCash - Share ideas, discuss changes or report problems - Translate or proof-read on CrowdIn - No compatible apps to receive the exported transactions! - Move... - Duplicate + 点击柱状图查看详情 + 下一步 + 完成 + 默认的货币 + 科目设置 + 选择货币 + 反馈选项 + 创建默认科目 + 导入科目 + 随后处理 + 其他… + 自动发送崩溃报告 + 禁用自动发送 + 上一步 + 设置GnuCash + 欢迎使用GnuCash + 在使用之前,需 \n要设置几个参数\n\n请点击“下一步”继续 + 拆分交易 + 保存之前请检查拆分交易的各项金额有效! + 算式不完整! + 计划的交易 + 没有填写汇率 + 没有填写换算好的金额 + 转账 + + 点击切片查看详情 + 时间段: + 从: + 到: + 不同货币转账,需要提供汇率或者直接输入金额 + 汇率 + 查询当下汇率 + 换算好的金额 + 汇总表 + 最近三个月的支出情况 + 总资产: + 总负债: + 净值 + 资产 + 负债 + 所有者权益 + + 移动到: + 分组 + + 季度 + + 资产负债表 + 合计: + Google+ + 翻译GnuCash + 在Google+上提交问题和建议 + 可以在CrowdIn网站上帮助改进翻译 + 没有合适的应用接受导出的文件 + 移动… + 复制 - Current month - Last 3 months - Last 6 months - Last 12 months - All time - Custom range… + 本月 + 最近3个月 + 最近6个月 + 最近12个月 + 全部时间 + 自定义… diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index fc5f6b5d7..38ac9b203 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -57,7 +57,7 @@ 默认情况下,自上次导出后新增的交易才会被导出。选择此项后所有的交易都会被导出。 导出%1$s发生错误 导出 - 导出后删除交易 + Delete transactions after export 导出完成后现存所有交易都会被删除 设置