mirror of
https://github.com/m2049r/xmrwallet
synced 2025-09-03 08:23:04 +02:00
Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7cc2f6fafb | ||
![]() |
9a3ee0eda8 | ||
![]() |
6e898939a3 | ||
![]() |
40ae39d647 | ||
![]() |
ca81e652e5 | ||
![]() |
796048be4e | ||
![]() |
441bf995c8 | ||
![]() |
e8860ab8eb | ||
![]() |
525b38ff53 | ||
![]() |
ba79bf87aa | ||
![]() |
3fe6571e7d | ||
![]() |
364e6a8137 | ||
![]() |
cb69ce99d6 | ||
![]() |
1f976872fc | ||
![]() |
27f266b6f7 | ||
![]() |
168928d54a | ||
![]() |
b3f61072aa | ||
![]() |
ccb64aded0 | ||
![]() |
e98fa089f2 | ||
![]() |
884878b7a7 | ||
![]() |
4e23f0ef3a | ||
![]() |
6ea4e3d998 | ||
![]() |
971c90f35b |
@@ -7,8 +7,8 @@ android {
|
||||
applicationId "com.m2049r.xmrwallet"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
versionCode 175
|
||||
versionName "1.11.5 'Chernushka'"
|
||||
versionCode 176
|
||||
versionName "1.11.6 'Chernushka'"
|
||||
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
externalNativeBuild {
|
||||
|
@@ -302,7 +302,7 @@ public class ReceiveFragment extends Fragment {
|
||||
File imagePath = new File(getActivity().getCacheDir(), "images");
|
||||
File png = new File(imagePath, "QR.png");
|
||||
Uri contentUri = FileProvider.getUriForFile(getActivity(),
|
||||
"com.m2049r.xmrwallet.fileprovider", png);
|
||||
BuildConfig.APPLICATION_ID + ".fileprovider", png);
|
||||
if (contentUri != null) {
|
||||
Intent shareIntent = new Intent();
|
||||
shareIntent.setAction(Intent.ACTION_SEND);
|
||||
@@ -574,6 +574,7 @@ public class ReceiveFragment extends Fragment {
|
||||
@Override
|
||||
public void onPause() {
|
||||
Timber.d("onPause()");
|
||||
Helper.hideKeyboard(getActivity());
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
|
@@ -71,7 +71,6 @@ public class TxFragment extends Fragment {
|
||||
private TextView tvTxFee;
|
||||
private TextView tvTxTransfers;
|
||||
private TextView etTxNotes;
|
||||
private Button bTxNotes;
|
||||
|
||||
// XMRTO stuff
|
||||
private View cvXmrTo;
|
||||
@@ -102,21 +101,9 @@ public class TxFragment extends Fragment {
|
||||
tvTxFee = view.findViewById(R.id.tvTxFee);
|
||||
tvTxTransfers = view.findViewById(R.id.tvTxTransfers);
|
||||
etTxNotes = view.findViewById(R.id.etTxNotes);
|
||||
bTxNotes = view.findViewById(R.id.bTxNotes);
|
||||
|
||||
etTxNotes.setRawInputType(InputType.TYPE_CLASS_TEXT);
|
||||
|
||||
bTxNotes.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
info.notes = null; // force reload on next view
|
||||
bTxNotes.setEnabled(false);
|
||||
etTxNotes.setEnabled(false);
|
||||
userNotes.setNote(etTxNotes.getText().toString());
|
||||
activityCallback.onSetNote(info.hash, userNotes.txNotes);
|
||||
}
|
||||
});
|
||||
|
||||
tvTxXmrToKey.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -131,14 +118,6 @@ public class TxFragment extends Fragment {
|
||||
return view;
|
||||
}
|
||||
|
||||
public void onNotesSet(boolean reload) {
|
||||
bTxNotes.setEnabled(true);
|
||||
etTxNotes.setEnabled(true);
|
||||
if (reload) {
|
||||
loadNotes(this.info);
|
||||
}
|
||||
}
|
||||
|
||||
void shareTxInfo() {
|
||||
if (this.info == null) return;
|
||||
StringBuffer sb = new StringBuffer();
|
||||
@@ -315,7 +294,6 @@ public class TxFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -337,9 +315,9 @@ public class TxFragment extends Fragment {
|
||||
|
||||
String getTxNotes(String hash);
|
||||
|
||||
String getTxAddress(int major, int minor);
|
||||
boolean setTxNotes(String txId, String txNotes);
|
||||
|
||||
void onSetNote(String txId, String notes);
|
||||
String getTxAddress(int major, int minor);
|
||||
|
||||
void setToolbarButton(int type);
|
||||
|
||||
@@ -357,4 +335,16 @@ public class TxFragment extends Fragment {
|
||||
+ " must implement Listener");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (!etTxNotes.getText().toString().equals(userNotes.note)) { // notes have changed
|
||||
// save them
|
||||
userNotes.setNote(etTxNotes.getText().toString());
|
||||
info.notes = userNotes.txNotes;
|
||||
activityCallback.setTxNotes(info.hash, info.notes);
|
||||
}
|
||||
Helper.hideKeyboard(getActivity());
|
||||
super.onPause();
|
||||
}
|
||||
}
|
@@ -150,8 +150,13 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||
final WalletFragment walletFragment = (WalletFragment)
|
||||
getSupportFragmentManager().findFragmentByTag(WalletFragment.class.getName());
|
||||
if (walletFragment != null) walletFragment.resetDismissedTransactions();
|
||||
updateAccountsBalance();
|
||||
forceUpdate();
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateAccountsBalance();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -174,6 +179,11 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||
return getWallet().getUserNote(txId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setTxNotes(String txId, String txNotes) {
|
||||
return getWallet().setUserNote(txId, txNotes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTxAddress(int major, int minor) {
|
||||
return getWallet().getSubaddress(major, minor);
|
||||
@@ -713,26 +723,6 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetNotes(final boolean success) {
|
||||
try {
|
||||
final TxFragment txFragment = (TxFragment)
|
||||
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
if (!success) {
|
||||
Toast.makeText(WalletActivity.this, getString(R.string.tx_notes_set_failed), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
txFragment.onNotesSet(success);
|
||||
}
|
||||
});
|
||||
} catch (ClassCastException ex) {
|
||||
// not in tx fragment
|
||||
Timber.d(ex.getLocalizedMessage());
|
||||
// never mind
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgress(final String text) {
|
||||
try {
|
||||
@@ -794,21 +784,6 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetNote(String txId, String notes) {
|
||||
if (mIsBound) { // no point in talking to unbound service
|
||||
Intent intent = new Intent(getApplicationContext(), WalletService.class);
|
||||
intent.putExtra(WalletService.REQUEST, WalletService.REQUEST_CMD_SETNOTE);
|
||||
intent.putExtra(WalletService.REQUEST_CMD_SETNOTE_TX, txId);
|
||||
intent.putExtra(WalletService.REQUEST_CMD_SETNOTE_NOTES, notes);
|
||||
startService(intent);
|
||||
Timber.d("SET NOTE request sent");
|
||||
} else {
|
||||
Timber.e("Service not bound");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareSend(final String tag, final TxData txData) {
|
||||
if (mIsBound) { // no point in talking to unbound service
|
||||
@@ -1062,6 +1037,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||
} else {
|
||||
tvBalance.setText(null);
|
||||
}
|
||||
updateAccountsList();
|
||||
}
|
||||
|
||||
void updateAccountsHeader() {
|
||||
@@ -1075,8 +1051,11 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||
Menu menu = accountsView.getMenu();
|
||||
menu.removeGroup(R.id.accounts_list);
|
||||
final int n = wallet.getNumAccounts();
|
||||
final boolean showBalances = (n > 1) && !isStreetMode();
|
||||
for (int i = 0; i < n; i++) {
|
||||
final String label = wallet.getAccountLabel(i);
|
||||
final String label = (showBalances ?
|
||||
getString(R.string.label_account, wallet.getAccountLabel(i), Helper.getDisplayAmount(wallet.getBalance(i), 2))
|
||||
: wallet.getAccountLabel(i));
|
||||
final MenuItem item = menu.add(R.id.accounts_list, getAccountId(i), 2 * i, label);
|
||||
item.setIcon(R.drawable.ic_account_balance_wallet_black_24dp);
|
||||
if (i == wallet.getAccountIndex())
|
||||
|
@@ -219,7 +219,7 @@ public class WalletFragment extends Fragment
|
||||
if (isExchanging) return; // wait for exchange to finish - it will fire this itself then.
|
||||
// at this point selection is XMR in case of error
|
||||
String displayB;
|
||||
double amountA = Double.parseDouble(Wallet.getDisplayAmount(unlockedBalance)); // crash if this fails!
|
||||
double amountA = Helper.getDecimalAmount(unlockedBalance).doubleValue();
|
||||
if (!Helper.CRYPTO.equals(balanceCurrency)) { // not XMR
|
||||
double amountB = amountA * balanceRate;
|
||||
displayB = Helper.getFormattedAmount(amountB, false);
|
||||
@@ -235,10 +235,10 @@ public class WalletFragment extends Fragment
|
||||
private final ExchangeApi exchangeApi = Helper.getExchangeApi();
|
||||
|
||||
void refreshBalance() {
|
||||
double unconfirmedXmr = Double.parseDouble(Helper.getDisplayAmount(balance - unlockedBalance));
|
||||
double unconfirmedXmr = Helper.getDecimalAmount(balance - unlockedBalance).doubleValue();
|
||||
showUnconfirmed(unconfirmedXmr);
|
||||
if (sCurrency.getSelectedItemPosition() == 0) { // XMR
|
||||
double amountXmr = Double.parseDouble(Wallet.getDisplayAmount(unlockedBalance)); // assume this cannot fail!
|
||||
double amountXmr = Helper.getDecimalAmount(unlockedBalance).doubleValue();
|
||||
showBalance(Helper.getFormattedAmount(amountXmr, true));
|
||||
} else { // not XMR
|
||||
String currency = (String) sCurrency.getSelectedItem();
|
||||
@@ -294,7 +294,7 @@ public class WalletFragment extends Fragment
|
||||
|
||||
public void exchangeFailed() {
|
||||
sCurrency.setSelection(0, true); // default to XMR
|
||||
double amountXmr = Double.parseDouble(Wallet.getDisplayAmount(unlockedBalance)); // assume this cannot fail!
|
||||
double amountXmr = Helper.getDecimalAmount(unlockedBalance).doubleValue();
|
||||
showBalance(Helper.getFormattedAmount(amountXmr, true));
|
||||
hideExchanging();
|
||||
}
|
||||
|
@@ -46,7 +46,8 @@ import okhttp3.ResponseBody;
|
||||
import timber.log.Timber;
|
||||
|
||||
public class NodeInfo extends Node {
|
||||
final static public int MIN_MAJOR_VERSION = 9;
|
||||
final static public int MIN_MAJOR_VERSION = 11;
|
||||
final static public String RPC_VERSION = "2.0";
|
||||
|
||||
private long height = 0;
|
||||
private long timestamp = 0;
|
||||
@@ -228,9 +229,12 @@ public class NodeInfo extends Node {
|
||||
responseCode = response.code();
|
||||
if (response.isSuccessful()) {
|
||||
ResponseBody respBody = response.body(); // closed through Response object
|
||||
if ((respBody != null) && (respBody.contentLength() < 1000)) { // sanity check
|
||||
if ((respBody != null) && (respBody.contentLength() < 2000)) { // sanity check
|
||||
final JSONObject json = new JSONObject(
|
||||
respBody.string());
|
||||
String rpcVersion = json.getString("jsonrpc");
|
||||
if (!RPC_VERSION.equals(rpcVersion))
|
||||
return false;
|
||||
final JSONObject header = json.getJSONObject(
|
||||
"result").getJSONObject("block_header");
|
||||
height = header.getLong("height");
|
||||
|
@@ -30,6 +30,7 @@ import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||
import com.m2049r.xmrwallet.util.Helper;
|
||||
import com.m2049r.xmrwallet.data.UserNotes;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
@@ -154,7 +155,7 @@ public class TransactionInfoAdapter extends RecyclerView.Adapter<TransactionInfo
|
||||
}
|
||||
|
||||
if ((infoItem.fee > 0)) {
|
||||
String fee = Helper.getDisplayAmount(infoItem.fee, 5);
|
||||
String fee = Helper.getDisplayAmount(infoItem.fee, Helper.DISPLAY_DIGITS_INFO);
|
||||
tvFee.setText(context.getString(R.string.tx_list_fee, fee));
|
||||
tvFee.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
|
@@ -173,5 +173,4 @@ public class TransactionInfo implements Parcelable, Comparable<TransactionInfo>
|
||||
return this.hash.compareTo(another.hash);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -353,9 +353,10 @@ public class Wallet {
|
||||
if (label.equals(NEW_ACCOUNT_NAME)) {
|
||||
String address = getAddress(accountIndex);
|
||||
int len = address.length();
|
||||
return address.substring(0, 6) +
|
||||
label = address.substring(0, 6) +
|
||||
"\u2026" + address.substring(len - 6, len);
|
||||
} else return label;
|
||||
}
|
||||
return label;
|
||||
}
|
||||
|
||||
public String getSubaddressLabel(int addressIndex) {
|
||||
|
@@ -69,10 +69,6 @@ public class WalletService extends Service {
|
||||
public static final String REQUEST_CMD_SEND = "send";
|
||||
public static final String REQUEST_CMD_SEND_NOTES = "notes";
|
||||
|
||||
public static final String REQUEST_CMD_SETNOTE = "setnote";
|
||||
public static final String REQUEST_CMD_SETNOTE_TX = "tx";
|
||||
public static final String REQUEST_CMD_SETNOTE_NOTES = "notes";
|
||||
|
||||
public static final int START_SERVICE = 1;
|
||||
public static final int STOP_SERVICE = 2;
|
||||
|
||||
@@ -224,8 +220,6 @@ public class WalletService extends Service {
|
||||
|
||||
void onSendTransactionFailed(String error);
|
||||
|
||||
void onSetNotes(boolean success);
|
||||
|
||||
void onWalletStarted(Wallet.ConnectionStatus walletStatus);
|
||||
|
||||
void onWalletOpen(Wallet.Device device);
|
||||
@@ -378,26 +372,6 @@ public class WalletService extends Service {
|
||||
if (observer != null) observer.onSendTransactionFailed(error);
|
||||
return;
|
||||
}
|
||||
} else if (cmd.equals(REQUEST_CMD_SETNOTE)) {
|
||||
Wallet myWallet = getWallet();
|
||||
Timber.d("SET NOTE for wallet: %s", myWallet.getName());
|
||||
String txId = extras.getString(REQUEST_CMD_SETNOTE_TX);
|
||||
String notes = extras.getString(REQUEST_CMD_SETNOTE_NOTES);
|
||||
if ((txId != null) && (notes != null)) {
|
||||
boolean success = myWallet.setUserNote(txId, notes);
|
||||
if (!success) {
|
||||
Timber.e(myWallet.getErrorString());
|
||||
}
|
||||
if (observer != null) observer.onSetNotes(success);
|
||||
if (success) {
|
||||
boolean rc = myWallet.store();
|
||||
Timber.d("wallet stored: %s with rc=%b", myWallet.getName(), rc);
|
||||
if (!rc) {
|
||||
Timber.w("Wallet store failed: %s", myWallet.getErrorString());
|
||||
}
|
||||
if (observer != null) observer.onWalletStored(rc);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@@ -64,6 +64,7 @@ import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.SocketTimeoutException;
|
||||
@@ -186,28 +187,23 @@ public class Helper {
|
||||
act.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
|
||||
}
|
||||
|
||||
static public BigDecimal getDecimalAmount(long amount) {
|
||||
return new BigDecimal(amount).scaleByPowerOfTen(-12);
|
||||
}
|
||||
|
||||
static public String getDisplayAmount(long amount) {
|
||||
return getDisplayAmount(amount, 12);
|
||||
}
|
||||
|
||||
static public String getDisplayAmount(long amount, int maxDecimals) {
|
||||
return getDisplayAmount(Wallet.getDisplayAmount(amount), maxDecimals);
|
||||
}
|
||||
|
||||
// amountString must have '.' as decimal point
|
||||
private static String getDisplayAmount(String amountString, int maxDecimals) {
|
||||
int lastZero = 0;
|
||||
int decimal = 0;
|
||||
for (int i = amountString.length() - 1; i >= 0; i--) {
|
||||
if ((lastZero == 0) && (amountString.charAt(i) != '0')) lastZero = i + 1;
|
||||
// TODO i18n
|
||||
if (amountString.charAt(i) == '.') {
|
||||
decimal = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int cutoff = Math.min(Math.max(lastZero, decimal + 2), decimal + maxDecimals);
|
||||
return amountString.substring(0, cutoff);
|
||||
// a Java bug does not strip zeros properly if the value is 0
|
||||
if (amount == 0) return "0.00";
|
||||
BigDecimal d = getDecimalAmount(amount)
|
||||
.setScale(maxDecimals, BigDecimal.ROUND_HALF_UP)
|
||||
.stripTrailingZeros();
|
||||
if (d.scale() < 2)
|
||||
d = d.setScale(2, BigDecimal.ROUND_UNNECESSARY);
|
||||
return d.toPlainString();
|
||||
}
|
||||
|
||||
static public String getFormattedAmount(double amount, boolean isXmr) {
|
||||
@@ -556,6 +552,8 @@ public class Helper {
|
||||
tvOpenPrompt.setText(context.getText(R.string.prompt_fingerprint_auth));
|
||||
tvOpenPrompt.setVisibility(View.VISIBLE);
|
||||
FingerprintHelper.authenticate(context, cancelSignal, fingerprintAuthCallback);
|
||||
} else {
|
||||
etPassword.requestFocus();
|
||||
}
|
||||
Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
|
@@ -101,6 +101,8 @@ public class RestoreHeight {
|
||||
blockheight.put("2019-01-01", 1738923L);
|
||||
blockheight.put("2019-02-01", 1761435L);
|
||||
blockheight.put("2019-03-01", 1781681L);
|
||||
blockheight.put("2019-04-01", 1803081L);
|
||||
blockheight.put("2019-05-01", 1824671L);
|
||||
}
|
||||
|
||||
public long getHeight(String date) {
|
||||
|
@@ -37,8 +37,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_toStartOf="@+id/ibOption"
|
||||
android:layout_toEndOf="@id/ibBookmark">
|
||||
android:layout_toStartOf="@+id/ibOption">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pbNode"
|
||||
|
@@ -225,34 +225,14 @@
|
||||
android:padding="8sp"
|
||||
android:text="@string/tx_notes" />
|
||||
|
||||
<RelativeLayout
|
||||
<EditText
|
||||
android:id="@+id/etTxNotes"
|
||||
style="@style/MoneroEdit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/etTxNotes"
|
||||
style="@style/MoneroEdit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_toStartOf="@+id/bTxNotes"
|
||||
android:backgroundTint="@color/moneroGray"
|
||||
android:hint="@string/tx_notes_hint"
|
||||
android:inputType="textMultiLine" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/bTxNotes"
|
||||
style="@style/MoneroButton.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:enabled="true"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:text="@string/tx_button_notes" />
|
||||
</RelativeLayout>
|
||||
|
||||
android:layout_height="wrap_content"
|
||||
android:backgroundTint="@color/moneroGray"
|
||||
android:hint="@string/tx_notes_hint"
|
||||
android:inputType="textMultiLine" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
|
@@ -17,7 +17,7 @@
|
||||
<h1>Datenschutzerklärung</h1>
|
||||
<p>Diese Seite informiert dich über unsere Richtlinien bezüglich der Sammlung,
|
||||
Nutzung und Weitergabe persönlicher Informationen, die wir von Nutzern unserer
|
||||
App erhalten (monerujo: Monero Wallet).
|
||||
App erhalten (monerujo: Monero-Wallet).
|
||||
</p>
|
||||
<p>Mit der Nutzung der App stimmst du der Erfassung und Nutzung von Informationen in
|
||||
Übereinstimmung mit dieser Erklärung zu.
|
||||
@@ -29,21 +29,21 @@
|
||||
von Transaktionen lokal gesammelt und verarbeitet und verschlüsselt in das Monero-Netzwerk übertragen.
|
||||
</p>
|
||||
<p>Andere persönliche Daten werden von der App nicht gesammelt.</p>
|
||||
<p>Wenn du den Umrechner (optional) nutzt fragt Monerujo
|
||||
<p>Wenn du den Umrechner (optional) nutzt, fragt Monerujo
|
||||
den aktuellen Kurs über die öffentliche Schnittstelle von coinmarketcap.com ab.
|
||||
Siehe dir ihre Datenschutzerklärung unter https://coinmarketcap.com/privacy für
|
||||
Details darüber an, wie Daten in deinen Anfragen gesammelt werden.</p>
|
||||
<p>Wenn du die App zum Bezahlen an BTC-Adressen verwendest, verwendest du den Dienst XMR.TO.
|
||||
Weitere Informationen findest du in den Datenschutzerklärung unter https://xmr.to/.
|
||||
Monerujo schickt dem Anbieter die BTC Zieladresse und den Betrag.
|
||||
Weitere Informationen findest du in der Datenschutzerklärung unter https://xmr.to/.
|
||||
Monerujo schickt dem Anbieter die BTC-Zieladresse und den Betrag.
|
||||
Deine IP-Adresse kann dabei aufgezeichnet werden.</p>
|
||||
<h2>App-Berechtigungen</h2>
|
||||
<ul>
|
||||
<li>INTERNET : Verbinde zum Monero Netzwerk über eine Monero Daemon Node</li>
|
||||
<li>READ_EXTERNAL_STORAGE : Liest die auf dem Gerät gespeicherten Wallet Dateien aus</li>
|
||||
<li>WRITE_EXTERNAL_STORAGE : Schreibt Wallet Dateien auf dem Gerät</li>
|
||||
<li>INTERNET : Verbinde zum Monero-Netzwerk über einen Monero-Hintergrunddienst-Node</li>
|
||||
<li>READ_EXTERNAL_STORAGE : Lese die auf dem Gerät gespeicherten Wallet-Dateien aus</li>
|
||||
<li>WRITE_EXTERNAL_STORAGE : Schreibe Wallet-Dateien auf das Gerät</li>
|
||||
<li>WAKE_LOCK : Halte das Gerät während der Synchronisation wach</li>
|
||||
<li>CAMERA : Scanne QR-Codes um Monero zu erhalten</li>
|
||||
<li>CAMERA : Scanne QR-Codes, um Monero zu erhalten</li>
|
||||
</ul>
|
||||
<h2>Änderungen an dieser Datenschutzerklärung</h2>
|
||||
<p>Wir können diese Datenschutzerklärung von Zeit zu Zeit aktualisieren.
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -380,5 +380,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -380,5 +380,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -370,5 +370,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -378,5 +378,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -382,5 +382,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -366,22 +366,22 @@
|
||||
<string name="node_nobookmark">Aggiunti automaticamente ai segnalibri i %1$d nodi migliori</string>
|
||||
<string name="label_test">Effettua Test</string><!--note: as in "Test a network connection"-->
|
||||
|
||||
<string name="send_address_resolve_bip70">Resolving Payment URI…</string>
|
||||
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
|
||||
<string name="send_address_bip70">Resolved Payment URI ✔</string>
|
||||
<string name="send_address_resolve_bip70">Risolvendo URI pagamento…</string>
|
||||
<string name="send_address_not_bip70">Impossibile risolvere pagamento URI</string>
|
||||
<string name="send_address_bip70">Risolto URI pagamento✔</string>
|
||||
<!-- please verify this means "Receiver" or "Recipient" as in "Receiver in the transaction" -->
|
||||
<string name="send_address_hint">Ricevitore</string>
|
||||
<string name="send_address_hint">Ricevente</string>
|
||||
|
||||
<string name="xmrto_error_001">XMR.TO offline - try again later</string>
|
||||
<string name="xmrto_error_004">BTC amount out of bounds</string>
|
||||
<string name="xmrto_error_010">Invalid or outdated Payment URL</string>
|
||||
<string name="xmrto_error_012">Too many requests</string>
|
||||
<string name="xmrto_error_001">XMR.TO è offline - prova più tardi</string>
|
||||
<string name="xmrto_error_004">Ammontare in BTC fuori dai limiti</string>
|
||||
<string name="xmrto_error_010">URL di pagamento obsoleto o invalido</string>
|
||||
<string name="xmrto_error_012">Troppe richieste</string>
|
||||
|
||||
<string name="street_sweep_amount">EVERYTHING!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
<string name="street_sweep_amount">TUTTO!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
|
||||
<string name="menu_ledger_seed">Convert Ledger Seed</string>
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="menu_ledger_seed">Converti seed Ledger</string>
|
||||
<string name="prompt_ledger_seed">Parole del seed Ledger</string>
|
||||
<string name="prompt_ledger_phrase">Frase d\'accesso Ledger (opzionale)</string>
|
||||
<string name="bad_ledger_seed">Seed di Ledger invalido!</string>
|
||||
<string name="prompt_ledger_seed_warn">Inserire il tuo seed di Ledger qui è un grosso rischio!</string>
|
||||
</resources>
|
||||
|
@@ -239,14 +239,14 @@
|
||||
コピーするか、QRコードから読み取るか、直接入力することができます。
|
||||
間違ったアドレスにコインが送金されないように、
|
||||
このアドレスは確実に間違いがないことを確認してください。</p>
|
||||
<p>In addition to using an XMR address, you can also use
|
||||
<p>XMRアドレスを使用することに加えて、あなたはまた使用することがあります
|
||||
<ul>
|
||||
<li>an OpenAlias for XMR or BTC</li>
|
||||
<li>a BTC address</li>
|
||||
<li>a bitcoin: URI (including BIP70 like bitpay)</li>
|
||||
<li>XMRやBTCのOpenAlias</li>
|
||||
<li>BTCアドレス</li>
|
||||
<li>bitcoin: URI (bitpayのようなBIP70もいい)</li>
|
||||
</u>
|
||||
Please note, that sending BTC is processed through the XMR.TO service (see https://xmr.to
|
||||
for details). See the section on sending BTC below.</p>
|
||||
BTCの送信はXMR.TOサービス(https://xmr.to)を介して処理されることに注意してください。
|
||||
下記のBTCの送信に関するセクションを参照してください。</p>
|
||||
<h2>ペイメントID(Payment ID)</h2>
|
||||
<p>あなたは2者間でモネロを送金した理由を特定するために
|
||||
ペイメントIDを使うことができます。
|
||||
@@ -431,15 +431,15 @@
|
||||
<!-- Note for translators: new/changed text also in help_send -->
|
||||
|
||||
<string name="help_uri"><![CDATA[
|
||||
<h1>Using a payment link</h1>
|
||||
<p>You have started monerujo with a payment link. In order to send funds, please do the following:</p>
|
||||
<h1>ペイメントリンクを使用すること</h1>
|
||||
<p>ペイメントリンクでmonerujoを始めました。 送金するには、次の手順に従ってください。</p>
|
||||
<p>
|
||||
1. Open the wallet you want to spend from<br>
|
||||
2. Wait until the wallet is synced & the "Give" button appears<br>
|
||||
3. Touch the "Give" button
|
||||
1. 使いたいウォレットを開け<br>
|
||||
2. 同期されて「送金」ボタンを見える時に待て<br>
|
||||
3. 「送金」ボタンをタップし て
|
||||
</p>
|
||||
<p>The payment details will be filled in. Check them and proceed like for any other transaction.</p>
|
||||
<p>支払詳細を記入します。それからチェックして、他の取引と同じように進めてください。</p>
|
||||
]]></string>
|
||||
|
||||
<string name="help_ok">Got it!</string> <!-- Note: "Got it" as in "I understand this" -->
|
||||
<string name="help_ok">分かりました!</string> <!-- Note: "Got it" as in "I understand this" -->
|
||||
</resources>
|
||||
|
@@ -409,22 +409,22 @@
|
||||
|
||||
<string name="backup_success">バックアップ成功</string>
|
||||
|
||||
<string name="send_address_resolve_bip70">Resolving Payment URI…</string>
|
||||
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
|
||||
<string name="send_address_bip70">Resolved Payment URI ✔</string>
|
||||
<string name="send_address_resolve_bip70">ペイメントIDの名前解決中…</string>
|
||||
<string name="send_address_not_bip70">ペイメントIDの名前解決できませんでした</string>
|
||||
<string name="send_address_bip70">ペイメントIDの名前解決しました ✔</string>
|
||||
<!-- please verify this means "Receiver" or "Recipient" as in "Receiver in the transaction" -->
|
||||
<string name="send_address_hint">受け取り手</string>
|
||||
|
||||
<string name="xmrto_error_001">XMR.TO offline - try again later</string>
|
||||
<string name="xmrto_error_004">BTC amount out of bounds</string>
|
||||
<string name="xmrto_error_010">Invalid or outdated Payment URL</string>
|
||||
<string name="xmrto_error_012">Too many requests</string>
|
||||
<string name="xmrto_error_001">XMR.TOはオフラインです。もう一度お試しください</string>
|
||||
<string name="xmrto_error_004">BTCの金額は範囲外</string>
|
||||
<string name="xmrto_error_010">ペイメントURLは不正古いです</string>
|
||||
<string name="xmrto_error_012">リクエストは多すぎます</string>
|
||||
|
||||
<string name="street_sweep_amount">EVERYTHING!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
<string name="street_sweep_amount">残高合計!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
|
||||
<string name="menu_ledger_seed">Convert Ledger Seed</string>
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="menu_ledger_seed">Ledgerシードを転換</string>
|
||||
<string name="prompt_ledger_seed">Ledgerのニーモニックシード</string>
|
||||
<string name="prompt_ledger_phrase">Ledgerパスフレーズ (オプショナル)</string>
|
||||
<string name="bad_ledger_seed">Ledgerのニーモニックシードは不正!</string>
|
||||
<string name="prompt_ledger_seed_warn">ここにLedgerシードを入力するのは、大きなセキュリティリスクですよ!</string>
|
||||
</resources>
|
||||
|
@@ -380,5 +380,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -380,5 +380,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
@@ -154,14 +154,14 @@
|
||||
<p>Este é o endereço público da carteira na qual você está enviando Monero. Você pode colar da sua área de transferência,
|
||||
escanear um código QR ou escrevê-lo manualmente. Verifique-o múltiplas vezes para garantir que você não está enviando
|
||||
Monero para o endereço errado.</p>
|
||||
<p>In addition to using an XMR address, you can also use
|
||||
<p>Além de enviar para um endereço XMR, você também pode enviar para
|
||||
<ul>
|
||||
<li>an OpenAlias for XMR or BTC</li>
|
||||
<li>a BTC address</li>
|
||||
<li>a bitcoin: URI (including BIP70 like bitpay)</li>
|
||||
<li>um OpenAlias para XMR ou BTC</li>
|
||||
<li>um endereço BTC</li>
|
||||
<li>um URI bitcoin: (incluindo o BIP70 usado em serviços como o bitpay)</li>
|
||||
</u>
|
||||
Please note, that sending BTC is processed through the XMR.TO service (see https://xmr.to
|
||||
for details). See the section on sending BTC below.</p>
|
||||
Observe que o envio de BTC é processado pelo serviço XMR.TO (veja https://xmr.to para detalhes).
|
||||
Consulte a seção sobre envio de BTC abaixo.</p>
|
||||
<h2>ID do Pagamento</h2>
|
||||
<p>Você pode usar o ID do Pagamento para identificar a razão pela qual você transacionou com a contraparte.
|
||||
Essa opção é opcional e privada. Por exemplo, lojistas podem reconciliar o seu pagamento com
|
||||
@@ -291,15 +291,15 @@
|
||||
<!-- Note for translators: new/changed text also in help_send -->
|
||||
|
||||
<string name="help_uri"><![CDATA[
|
||||
<h1>Using a payment link</h1>
|
||||
<p>You have started monerujo with a payment link. In order to send funds, please do the following:</p>
|
||||
<h1>Usando um link de pagamento</h1>
|
||||
<p>Você abriu o monerujo a partir de um link de pagamento. Para enviar os fundos, siga estes passos:</p>
|
||||
<p>
|
||||
1. Open the wallet you want to spend from<br>
|
||||
2. Wait until the wallet is synced & the "Give" button appears<br>
|
||||
3. Touch the "Give" button
|
||||
1. Abra a carteira da qual você quer gastar<br>
|
||||
2. Espere que a carteira esteja sincronizada & o botão "Enviar" vai aparecer<br>
|
||||
3. Toque no botão "Enviar"
|
||||
</p>
|
||||
<p>The payment details will be filled in. Check them and proceed like for any other transaction.</p>
|
||||
<p>Os detalhes do pagamento serão preenchidos. Confirme-os e siga adiante como qualquer outra transação normal.</p>
|
||||
]]></string>
|
||||
|
||||
<string name="help_ok">Got it!</string> <!-- Note: "Got it" as in "I understand this" -->
|
||||
<string name="help_ok">Entendi!</string> <!-- Note: "Got it" as in "I understand this" -->
|
||||
</resources>
|
||||
|
@@ -356,21 +356,21 @@
|
||||
|
||||
<string name="backup_success">Backup feito com successo</string>
|
||||
|
||||
<string name="send_address_resolve_bip70">Resolving Payment URI…</string>
|
||||
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
|
||||
<string name="send_address_bip70">Resolved Payment URI ✔</string>
|
||||
<string name="send_address_hint">Receiver</string>
|
||||
<string name="send_address_resolve_bip70">Resolvendo URI do Pagamento…</string>
|
||||
<string name="send_address_not_bip70">Não foi possível resolver o URI do pagamento</string>
|
||||
<string name="send_address_bip70">URI do Pagamento resolvido ✔</string>
|
||||
<string name="send_address_hint">Destinatário</string>
|
||||
|
||||
<string name="xmrto_error_001">XMR.TO offline - try again later</string>
|
||||
<string name="xmrto_error_004">BTC amount out of bounds</string>
|
||||
<string name="xmrto_error_010">Invalid or outdated Payment URL</string>
|
||||
<string name="xmrto_error_012">Too many requests</string>
|
||||
<string name="xmrto_error_001">XMR.TO offline - tente novamente mais tarde</string>
|
||||
<string name="xmrto_error_004">Valor BTC fora dos limites</string>
|
||||
<string name="xmrto_error_010">URL de pagamento inválido</string>
|
||||
<string name="xmrto_error_012">Demasiadas solicitações</string>
|
||||
|
||||
<string name="street_sweep_amount">EVERYTHING!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
<string name="street_sweep_amount">TUDO!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
|
||||
<string name="menu_ledger_seed">Convert Ledger Seed</string>
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="menu_ledger_seed">Converter semente da Ledger</string>
|
||||
<string name="prompt_ledger_seed">Palavras da semente da Ledger</string>
|
||||
<string name="prompt_ledger_phrase">Senha da Ledger (opcional)</string>
|
||||
<string name="bad_ledger_seed">Semente da Ledger inválida!</string>
|
||||
<string name="prompt_ledger_seed_warn">Escrever a semente da sua Ledger aqui é um grande risco de segurança!</string>
|
||||
</resources>
|
||||
|
@@ -141,14 +141,14 @@
|
||||
<p> Este é o endereço público da carteira para a qual vais enviar Moneroj, podes copiar esta
|
||||
informação da área de transferência, capturara um código QR, ou introduzir manualmente. Confirma
|
||||
atentamente que não estás a enviar para o endereço errado.</p>
|
||||
<p>In addition to using an XMR address, you can also use
|
||||
<p>Para alem de usar um endereço de XMR também podes usar
|
||||
<ul>
|
||||
<li>an OpenAlias for XMR or BTC</li>
|
||||
<li>a BTC address</li>
|
||||
<li>a bitcoin: URI (including BIP70 like bitpay)</li>
|
||||
<li>Um OpenAlias para XMR ou BTC</li>
|
||||
<li>um endereço de BTC</li>
|
||||
<li>um enderço bitcoin: URI (incluindo BIP70 tipo bitpay)</li>
|
||||
</u>
|
||||
Please note, that sending BTC is processed through the XMR.TO service (see https://xmr.to
|
||||
for details). See the section on sending BTC below.</p>
|
||||
Não deixar de notar que, enviar BTC é processado através do serviço XMR.TO (ver https://xmr.to
|
||||
para detalhes). Ver a secção enviar BTC.</p>
|
||||
<h2>ID do Pagamento</h2>
|
||||
<p>Utiliza-se o ID do Pagamento para identificar a razão porque foram transaccionados Moneroj.
|
||||
Isto é opcional e privado. Por exemplo, isto permite que um negócio identifique que item
|
||||
@@ -213,24 +213,25 @@
|
||||
]]></string>
|
||||
|
||||
<string name="help_create_ledger"><![CDATA[
|
||||
<h1>Create Wallet - Ledger</h1>
|
||||
<p>You want to recover your wallet from your Ledger Nano S device.</p>
|
||||
<p>Your secret keys never leave the Ledger device, so you need it plugged in every
|
||||
time you want to access your wallet.</p>
|
||||
<p>Enter a unique wallet name and password. The password is used for securing your wallet data on the Android
|
||||
device. Use a strong password - even better use a passphrase.</p>
|
||||
<p>Enter the block number of the first transaction used for this address in the
|
||||
field \"Restore Height\". You can also use a date in the format YYYY-MM-DD. If you are not sure,
|
||||
enter an approximate date/blockheight <em>before</em> you first used this wallet address.</p>
|
||||
<h1>Criar carteira - Ledger</h1>
|
||||
<p>Se quiseres recuperar a tua carteira apartir do teu dispositivo Ledger Nano S.</p>
|
||||
<p>As tuas chaves secretas nunca saem do teu dispositivo Ledger, consequentemente
|
||||
tens de conetar o mesmo sempre que quiseres aceder à tua carteira.</p>
|
||||
<p>Introduz um nome e palavra passe unicos. A palavra passe é usada para garantir a segurança
|
||||
da tua informação no dispositivo Android. Usa uma palavra passe forte!</p>
|
||||
<p>Introduz o numero do bloco da primeira transação correspondente a este endereço no campo
|
||||
\"Restore Height\". Podes tambem usar o formato ano mês dia ANO-MES-DIA. Se não tiveres
|
||||
certeza, introduz uma data/numero do bloco aproximada <em>antes</em> da primeira utilização
|
||||
da carteira.</p>
|
||||
]]></string>
|
||||
|
||||
<string name="help_wallet"><![CDATA[
|
||||
<h1>A Carteira</h1>
|
||||
<h2>Street Mode</h2>
|
||||
<p>Street mode can be enabled/disabled in the menu or Gunther\'s head icon. In this mode, your
|
||||
balance is not shown on any screen so you can safely use your wallet on the street, a pub or
|
||||
other public place. Previous transactions are also hidden. New transactions will be shown, so
|
||||
you can see that you have sent/received sweet Moneroj!</p>
|
||||
<p>O Street mode pode ser ligado/desligado no menu ou na cabeça do icon Gunther. Neste modo
|
||||
o teu saldo não é mostrado no teu ecrã para que possas usar a tua carteira de forma segura
|
||||
na rua, num bar ou outro local publico. As transações anteriores são também escondidas. As novas
|
||||
transações serão mostradas, para que cossas ver se enviaste/recebeste os teus preciosos Moneroj!</p>
|
||||
<h2>A Examinar</h2>
|
||||
Como o Monero gosta de manter as coisas privadas, cada vez que abres uma carteira Monerujo temos
|
||||
que examinar a blockchain para ver se novos Moneroj foram enviados para a tua carteira. Apenas
|
||||
@@ -248,66 +249,61 @@
|
||||
]]></string>
|
||||
|
||||
<string name="help_node"><![CDATA[
|
||||
<h1>Nodes</h1>
|
||||
<h1>Nós</h1>
|
||||
<h2>TL;DR</h2>
|
||||
<p>Refresh the nodes list by pulling down & bookmark 3–5 nodes to allow Monerujo
|
||||
to choose the best one for you!</p>
|
||||
<h2>What's a Node?</h2>
|
||||
<p>Monerujo uses a Remote Node (sometimes also called Daemon) to communicate with
|
||||
the Monero Network without having to download and store a copy of the
|
||||
whole blockchain itself.<p>
|
||||
<h2>Node List</h2>
|
||||
<p>If the list is empty, you can either add new nodes manually or let Monerujo
|
||||
scan the network for you. Or both. Read on…</p>
|
||||
<p>The node list shows all currently known nodes. Additionally, the timestamp
|
||||
of the latest block known to each node is shown under the node name. An icon
|
||||
representing the node's response behaviour
|
||||
(which indicates the level of connectivity to be expected)
|
||||
is shown next to each node.</p>
|
||||
<p>Any node in the list can be bookmarked for later use.
|
||||
Nodes which are not bookmarked will be forgotten.<p>
|
||||
<p>Monerujo will choose the optimal bookmarked node each time you use it.
|
||||
It does this by checking the blockheight (how up-to-date
|
||||
is the node?) as well as the response behaviour (how fast does the node respond to requests?).</p>
|
||||
<p>The list is sorted by these characteristics, so the top node would be the one Monerujo
|
||||
would choose right now. The bottom of the list would show very slow or unavailable nodes.</p>
|
||||
<h2>Add a Node</h2>
|
||||
<p>By touching the "Add Node" button at the bottom, you will be asked to
|
||||
enter the node details in the following dialog.
|
||||
The "Address" is the hostname or IP-address of the node - this is the only
|
||||
mandatory entry.
|
||||
Enter the "Port" if the node runs on a non-default port (e.g. 18089).
|
||||
You can also optionally name the node, so you can identify it easier later on.
|
||||
Some nodes require credentials to use them. Enter the provided username &
|
||||
password in the appropriate fields. Now you can "Test" these setting.
|
||||
The "Test Results" will display the blockheight, response time and actual IP used.
|
||||
The result may also be an error - usually because the hostname provided is
|
||||
not reachable in a sensible amount of time or the credentials are incorrect.
|
||||
Or the hostname/port combination does not point to an actual Monero Node!
|
||||
Once the test passes (no error) - you're set to press "OK" to save &
|
||||
bookmark this node.</p>
|
||||
<h2>Scan for Nodes</h2>
|
||||
<p>Additionally, you can scan the network for nodes. Monerujo will start
|
||||
scanning the network for Remote Nodes on port 18089. It begins by asking your
|
||||
bookmarked nodes for other peers in the Monero P2P network and then continues
|
||||
by asking those for their peers, and so on. If you have no bookmarked nodes
|
||||
(or they don't tell us about their peers),
|
||||
Monerujo will go straight to the Monero seed nodes hardcoded into Monero. The
|
||||
scan stops when it finds 10 remote nodes in total.</p>
|
||||
<p>Refresca a lista de Nós puxando para baixo & favorito 3–5 nós para permitir que
|
||||
o Monerujo escolha o melhor para ti!</p>
|
||||
<h2>O que é's um Nó?</h2>
|
||||
<p>O Monerujo usa um Nó remoto (por vezes chamado Daemon) para comunicar com a Rede do Monero
|
||||
sem ter de descarregar e gravar uma copia inteira da blockchain.</p>
|
||||
<h2>Lista de Nós</h2>
|
||||
<p>Se a lista estiver vazia, podes adicionar um Nó manualmente ou deixar o Monerujo fazer um
|
||||
scan à Rede por ti. Ou ambos. Continuar a ler em…</p>
|
||||
<p>A lista de nós mostra todos os nós actualmente conhecidos. Adicionalmente, o timestamp do
|
||||
ultimo bloco conhecido é listado em cada nome do nó. Um icon a representar o tempo de resposta
|
||||
do nó' (que indica o nivel de conetividade esperado) é mostrado junto de cada nó.</p>
|
||||
<p>Qualquer nó na lista pode ser adicionado aos favoritos por forma a usar mais tarde.
|
||||
Nós que não forem adicionados como favoritos serão esquecidos.<p>
|
||||
<p>O Monerujo irá escolher o melhor nó favorito cada vez que o usas.
|
||||
Faz isto verificando a Altura (quanto mais actualizado esta cada nó) assim como a velocidade de
|
||||
resposta (quão rapido responde este nó?).</p>
|
||||
<p>A lista é disposta consoante estas caracteristicas, assim sendo no topo estará o nó que o
|
||||
Monerujo escolheria a cada momento. No fundo da lista ficam os nós mais lentos ou indisponiveis.</p>
|
||||
<h2>Adicionar um Nó</h2>
|
||||
<p>Tocando no botão "Adicionar Nó" no fundo, poderás adicionar os detalhes
|
||||
na janela de dialogo.
|
||||
Em "Endereço" está o hostname ou endereço IP do nó - este é o unico campo necessário.
|
||||
Introduz a "Porta" se o nó corre com uma porta nao standard (ex 18089).
|
||||
Podes opcionalmente introduzir também um nome para mais facilmente o identificares mais tarde.
|
||||
Alguns nós requerem credenciais para os usar, introduz o nome de usuario &
|
||||
e palavra passe nos campos disponibilizados. Agora podes "Testar" estas configurações.
|
||||
Os "Resultados do Teste" mostrarão a altura do bloco, tempo de resposta e IP usados.
|
||||
O resultado pode também ser um erro - geralmente porque o Endereço introduzido está indisponivel
|
||||
dentro de tempo util ou as credenciais estão incorretas.
|
||||
Ou a combinação endereço/porta não aponta para um Nó de Monero!
|
||||
Assim que o teste passar (sem erros) - podes'pressionar "OK" para gravar &
|
||||
favorito este nó.</p>
|
||||
<h2>Procurar Nós</h2>
|
||||
<p>Adicionalmente, podes procurar nós na Rede de Monero. O Monerujo vai realizar
|
||||
uma busca na rede por nós remotos na porta 18089. Vai começar por procurar nos teus
|
||||
nós favoritos por outros pares na rede P2P do Monero e depois continua perguntando
|
||||
a esses pares, e por ai fora. Se não tiveres nenhum nó favorito na tua lista o
|
||||
Monerujo irá usar directamente os nós base que estão inscritos no codigo do Monero.
|
||||
A procura irá parar assim que encontrar 10 nós remotos no total.</p>
|
||||
]]></string>
|
||||
|
||||
<!-- Note for translators: new/changed text also in help_send -->
|
||||
|
||||
<string name="help_uri"><![CDATA[
|
||||
<h1>Using a payment link</h1>
|
||||
<p>You have started monerujo with a payment link. In order to send funds, please do the following:</p>
|
||||
<h1>Usando Endereço de Pagamento</h1>
|
||||
<p>Iniciaste o Monerujo com um endereço de pagamento. Para enviar fundos, por favor faz o seguinte:</p>
|
||||
<p>
|
||||
1. Open the wallet you want to spend from<br>
|
||||
2. Wait until the wallet is synced & the "Give" button appears<br>
|
||||
3. Touch the "Give" button
|
||||
1. Abre a carteira de onde pretendes gastar<br>
|
||||
2. Espera até a carteira sincronizar & e o botão "Enviar" aparecer<br>
|
||||
3. Carrega no butão "Enviar"
|
||||
</p>
|
||||
<p>The payment details will be filled in. Check them and proceed like for any other transaction.</p>
|
||||
<p>Os detalhes do pagamento serão automaticamente preenchidos. Verifica e continua como em outra qualquer transação</p>
|
||||
]]></string>
|
||||
|
||||
<string name="help_ok">Got it!</string> <!-- Note: "Got it" as in "I understand this" -->
|
||||
<string name="help_ok">Entendido!</string> <!-- Note: "Got it" as in "I understand this" -->
|
||||
</resources>
|
||||
|
@@ -288,101 +288,101 @@
|
||||
<string name="fab_restore_key">Restaurar carteira a partir de chaves privadas</string>
|
||||
<string name="fab_restore_seed">Restaurar carteira a partir da semente de 25 palavras</string>
|
||||
|
||||
<string name="bad_saved_password">Saved password is incorrect.\nPlease enter password manually.</string>
|
||||
<string name="prompt_open_wallet">Opening the wallet…</string>
|
||||
<string name="bad_saved_password">Palavra passe gravada incorrecta.\nInsere a palavra passe manualmente.</string>
|
||||
<string name="prompt_open_wallet">A abrir a carteira…</string>
|
||||
|
||||
<string name="accounts_drawer_new">Create Account</string>
|
||||
<string name="accounts_new">Added new account #%1$d</string>
|
||||
<string name="tx_account">Account #</string>
|
||||
<string name="accounts_drawer_new">Criar Conta</string>
|
||||
<string name="accounts_new">Conta nova adicionada #%1$d</string>
|
||||
<string name="tx_account">Conta #</string>
|
||||
|
||||
<string name="send_sweepall">Send all confirmed funds in this account!</string>
|
||||
<string name="send_sweepall">Enviar todos os fundos confirmados para esta conta!</string>
|
||||
<string name="tx_subaddress">Subaddress #%1$d</string>
|
||||
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
|
||||
<string name="generate_address_label_sub">Subaddress Publico #%1$d</string>
|
||||
|
||||
<string name="menu_language">Language</string>
|
||||
<string name="language_system_default">Use System Language</string>
|
||||
<string name="menu_language">Linguagem</string>
|
||||
<string name="language_system_default">Usar linguagem de sistema</string>
|
||||
|
||||
<string name="fab_restore_ledger">Restore from Ledger Nano S</string>
|
||||
<string name="fab_restore_ledger">Restaurar de Ledger Nano S</string>
|
||||
|
||||
<string name="progress_ledger_progress">Communicating with Ledger</string>
|
||||
<string name="progress_ledger_confirm">Confirmation on Ledger required!</string>
|
||||
<string name="progress_ledger_lookahead">Retrieving subaddresses</string>
|
||||
<string name="progress_ledger_verify">Verifying keys</string>
|
||||
<string name="progress_ledger_opentx">Doing crazy maths</string>
|
||||
<string name="progress_ledger_mlsag">Hashing stuff</string>
|
||||
<string name="open_wallet_ledger_missing">Please (re)connect Ledger device</string>
|
||||
<string name="progress_ledger_progress">A comunicar com o Ledger</string>
|
||||
<string name="progress_ledger_confirm">Confirmação com Ledger necessária!</string>
|
||||
<string name="progress_ledger_lookahead">Recuperando subaddresses</string>
|
||||
<string name="progress_ledger_verify">Verificando chaves</string>
|
||||
<string name="progress_ledger_opentx">A cozinhar os numeros</string>
|
||||
<string name="progress_ledger_mlsag">Produzindo hashes</string>
|
||||
<string name="open_wallet_ledger_missing">Reconeta o teu Ledger</string>
|
||||
|
||||
<string name="accounts_progress_new">Creating account</string>
|
||||
<string name="accounts_progress_new">A criar conta</string>
|
||||
|
||||
<string name="toast_ledger_attached">%1$s attached</string>
|
||||
<string name="toast_ledger_detached">%1$s detached</string>
|
||||
<string name="toast_ledger_attached">%1$s Ligado</string>
|
||||
<string name="toast_ledger_detached">%1$s Desligado</string>
|
||||
|
||||
<string name="progress_nfc_write">Writing Tag</string>
|
||||
<string name="nfc_write_failed">Writing Tag failed!</string>
|
||||
<string name="nfc_write_successful">Writing Tag successful</string>
|
||||
<string name="nfc_tag_unsupported">Tag does not support NDEF!</string>
|
||||
<string name="nfc_tag_size">Tag provides %1$d bytes, but we need %2$d!</string>
|
||||
<string name="nfc_tag_read_undef">I don\'t understand the Tag!</string>
|
||||
<string name="nfc_tag_read_what">I don\'t know what you want!</string>
|
||||
<string name="nfc_tag_read_success">Reading Tag successful</string>
|
||||
<string name="nfc_tag_tap">NFC Available!</string>
|
||||
<string name="progress_nfc_write">Escrevendo Tag</string>
|
||||
<string name="nfc_write_failed">A escrita do Tag falhou!</string>
|
||||
<string name="nfc_write_successful">Escrita do Tag bem sucedida</string>
|
||||
<string name="nfc_tag_unsupported">A Tag não suporta NDEF!</string>
|
||||
<string name="nfc_tag_size">A Tag tem %1$d bytes, mas nós precisamos de %2$d!</string>
|
||||
<string name="nfc_tag_read_undef">Eu não percebo a Tag!</string>
|
||||
<string name="nfc_tag_read_what">Eu não percebo o que queres fazer!</string>
|
||||
<string name="nfc_tag_read_success">Leitura do Tag bem sucedida</string>
|
||||
<string name="nfc_tag_tap">NFC Disponivel!</string>
|
||||
|
||||
<string name="receive_desc_hint">Description (optional)</string>
|
||||
<string name="receive_desc_hint">Descrição (opcional)</string>
|
||||
|
||||
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
||||
<string name="send_address_openalias">OpenAlias secure ✔</string>
|
||||
<string name="send_address_resolve_openalias">Resolving OpenAlias…</string>
|
||||
<string name="send_address_no_dnssec">OpenAlias without DNSSEC - address may be spoofed</string>
|
||||
<string name="send_address_not_openalias">Endereço OpenAlias não disponivel.</string>
|
||||
<string name="send_address_openalias">OpenAlias seguro ✔</string>
|
||||
<string name="send_address_resolve_openalias">Resolvendo OpenAlias…</string>
|
||||
<string name="send_address_no_dnssec">OpenAlias sem DNSSEC - endereço pode estar spoofed </string>
|
||||
|
||||
<string name="status_wallet_connect_wrongversion">Node version incompatible - please upgrade!</string>
|
||||
<string name="status_wallet_connect_wrongversion">Versão do Nó incompativel - atualizar por favor!</string>
|
||||
|
||||
<string name="menu_info">Detalhes</string><!--Changed to: Show Secrets!-->
|
||||
<string name="menu_info">Mostrar Segredos</string><!--Changed to: Show Secrets!-->
|
||||
<string name="menu_streetmode">Street Mode</string>
|
||||
|
||||
<string name="info_nodes_enabled">Node-o-matiC enabled, tap for more info.</string>
|
||||
<string name="node_height">Last block updated: %1$s</string>
|
||||
<string name="label_nodes">Nodes</string>
|
||||
<string name="node_name_hint">Node Name (Optional)</string>
|
||||
<string name="info_nodes_enabled">Node-o-matiC ativado, tocar para mais info.</string>
|
||||
<string name="node_height">Ultimo bloco actualizado: %1$s</string>
|
||||
<string name="label_nodes">Nós</string>
|
||||
<string name="node_name_hint">Nome do Nó (Opcional)</string>
|
||||
<string name="node_address_hint">Hostname</string>
|
||||
<string name="node_port_hint">Port</string>
|
||||
<string name="node_user_hint">Username (Optional)</string>
|
||||
<string name="node_pass_hint">Password (Optional)</string>
|
||||
<string name="node_host_unresolved">Cannot resolve host</string>
|
||||
<string name="node_host_empty">We need this!</string>
|
||||
<string name="node_port_numeric">Must be numeric</string>
|
||||
<string name="node_port_range">Must be 1–65535</string>
|
||||
<string name="node_fab_add">Add Node</string>
|
||||
<string name="node_refresh_hint">Touch to refresh!</string>
|
||||
<string name="node_test_error">CONNECTION ERROR %1$d</string>
|
||||
<string name="node_general_error">CONNECTION ERROR</string>
|
||||
<string name="node_auth_error">AUTHENTICATION FAILED</string>
|
||||
<string name="node_result_label">Test Result:</string>
|
||||
<string name="node_result">Height: %1$s (v%2$d), Ping: %3$.0fms, IP: %4$s</string>
|
||||
<string name="node_testing">Testing IP: %1$s …</string>
|
||||
<string name="node_refresh_wait">Please wait for scan to finish</string>
|
||||
<string name="node_create_hint">Touch to select or add nodes</string>
|
||||
<string name="node_pull_hint">Add nodes manually or pull down to scan</string>
|
||||
<string name="node_scanning">Scanning network…</string>
|
||||
<string name="node_nobookmark">Automatically bookmarked best %1$d nodes</string>
|
||||
<string name="label_test">Test</string><!--note: as in "Test a network connection"-->
|
||||
<string name="node_user_hint">Nome de usuario (Optional)</string>
|
||||
<string name="node_pass_hint">Palavra passe (Optional)</string>
|
||||
<string name="node_host_unresolved">Não foi possivel resolver host</string>
|
||||
<string name="node_host_empty">Precisamos disto!</string>
|
||||
<string name="node_port_numeric">Tem de ser numérico</string>
|
||||
<string name="node_port_range">Tem de ser 1–65535</string>
|
||||
<string name="node_fab_add">Adicionar Nó</string>
|
||||
<string name="node_refresh_hint">Tocar para refrescar!</string>
|
||||
<string name="node_test_error">ERRO LIGAÇÃO %1$d</string>
|
||||
<string name="node_general_error">ERRO LIGAÇÂO</string>
|
||||
<string name="node_auth_error">AUTENTIFICAÇÃO FALHOU</string>
|
||||
<string name="node_result_label">Resultado do teste:</string>
|
||||
<string name="node_result">Altura: %1$s (v%2$d), Ping: %3$.0fms, IP: %4$s</string>
|
||||
<string name="node_testing">A testar IP: %1$s …</string>
|
||||
<string name="node_refresh_wait">Por favor espera que o scan acabe</string>
|
||||
<string name="node_create_hint">Tocar para selecionar Nós.</string>
|
||||
<string name="node_pull_hint">Adicionar Nós manualmente ou puxa para fazer scan</string>
|
||||
<string name="node_scanning">A fazer scan á rede …</string>
|
||||
<string name="node_nobookmark">Adicionar aos bookmarks os melhores %1$d nós automaticamente</string>
|
||||
<string name="label_test">Testar ligação</string><!--note: as in "Test a network connection"-->
|
||||
|
||||
<string name="backup_success">Backup successful</string>
|
||||
<string name="backup_success">Backup bem sucedido</string>
|
||||
|
||||
<string name="send_address_resolve_bip70">Resolving Payment URI…</string>
|
||||
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
|
||||
<string name="send_address_bip70">Resolved Payment URI ✔</string>
|
||||
<string name="send_address_hint">Receiver</string>
|
||||
<string name="send_address_resolve_bip70">A resolver URI… de pagamento</string>
|
||||
<string name="send_address_not_bip70">Não foi possivel resolver URI de pagamento</string>
|
||||
<string name="send_address_bip70">Pagemento URI ✔ resolvido</string>
|
||||
<string name="send_address_hint">Receptor</string>
|
||||
|
||||
<string name="xmrto_error_001">XMR.TO offline - try again later</string>
|
||||
<string name="xmrto_error_004">BTC amount out of bounds</string>
|
||||
<string name="xmrto_error_010">Invalid or outdated Payment URL</string>
|
||||
<string name="xmrto_error_012">Too many requests</string>
|
||||
<string name="xmrto_error_001">XMR.TO offline - tenta mais tarde</string>
|
||||
<string name="xmrto_error_004">Montante de BTC fora dos limites</string>
|
||||
<string name="xmrto_error_010">URL de pagamento invalido ou fora de prazo</string>
|
||||
<string name="xmrto_error_012">Demasiadas solicitações</string>
|
||||
|
||||
<string name="street_sweep_amount">EVERYTHING!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
<string name="street_sweep_amount">A TOTALIDADE!</string> <!-- as in: "everything in the account" = "all the money" -->
|
||||
|
||||
<string name="menu_ledger_seed">Convert Ledger Seed</string>
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="menu_ledger_seed">Converter semente do Ledger</string>
|
||||
<string name="prompt_ledger_seed">Palavras da semente do Ledger</string>
|
||||
<string name="prompt_ledger_phrase">Palavra passe do Ledger (opcional)</string>
|
||||
<string name="bad_ledger_seed">Semente do Ledger invalida!</string>
|
||||
<string name="prompt_ledger_seed_warn">Introduzir a semente do Ledger aqui comporta um elevado risco de segurança!</string>
|
||||
</resources>
|
||||
|
@@ -380,5 +380,5 @@
|
||||
<string name="prompt_ledger_seed">Ledger Seed Words</string>
|
||||
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
|
||||
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering you Ledger Seed here is a major security risk!</string>
|
||||
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
|
||||
</resources>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user