1
mirror of https://github.com/m2049r/xmrwallet synced 2025-09-03 08:23:04 +02:00

Compare commits

...

23 Commits

Author SHA1 Message Date
m2049r
7cc2f6fafb bump version v1.11.6 2019-05-19 21:34:26 +02:00
m2049r
9a3ee0eda8 fix update of account balances (#590) 2019-05-19 20:27:35 +02:00
m2049r
6e898939a3 show account balances (#589)
and refactor displayAmount
2019-05-19 17:33:19 +02:00
m2049r
40ae39d647 update studio 2019-05-19 10:28:18 +02:00
jindouyunz
ca81e652e5 Update strings.xml_Chinese (#575)
* Update strings.xml

updated on 4/22/2019 version 2, Jindouyunz.

* Update string.xml_Chinese 2019-5-12

Hi, I made several pieces of modification based on lafudoci's review, thanks.

* Update string.xml-zh-rCN 2019-5-13

removed all lines with "translatable=false", and currency array
2019-05-18 08:40:31 +02:00
jindouyunz
796048be4e Update about.xml (#574)
updated on 4/21/2019, Jindouyunz.
2019-05-18 08:39:49 +02:00
jindouyunz
441bf995c8 Update help.xml_Chinese (#573)
* Update help.xml

updated on 4/21/2019, version 2, Jindouyunz

* Update help.xml 2019-5-11

Hi, I add changes on line 200, based on lafudoci's review, thanks.
2019-05-18 08:39:28 +02:00
m2049r
e8860ab8eb focus on password if no fingerprint (#587) 2019-05-12 00:17:21 +02:00
m2049r
525b38ff53 remove save button for notes (#586) 2019-05-12 00:17:07 +02:00
m2049r
ba79bf87aa Update rpc checks (#585)
* check rpc version

* update protocol version check
2019-05-11 21:15:35 +02:00
m2049r
3fe6571e7d update restore heights for 4 & 5.2019 (#583) 2019-05-11 11:41:16 +02:00
erciccione
364e6a8137 update values-it/strings.xml (Italian translation) (#580) 2019-05-11 11:40:20 +02:00
vp11
cb69ce99d6 update pt-BR translation (#581)
* update pt-BR translation

* missing block
2019-05-11 11:40:01 +02:00
m2049r
1f976872fc increase sanity check size limit (#576) 2019-04-23 20:52:43 +02:00
kic0
27f266b6f7 PT-PT translations updated (#569) 2019-04-20 11:03:57 +02:00
m2049r
168928d54a Update studio (#572)
* gradle 5.1

* remove ref to @id/ibBookmark
2019-04-19 15:51:25 +02:00
Leza89
b3f61072aa V1.11.4 - german translations (#556)
* Corrections on the translation without translating

* Added missing commas, hyphens
* replaced diverging terminology with Monero GUI (i.e. Remote Node → Drittanbieter-Node, Saldo → Guthaben, Daemon/Dienst → Hintergrunddienst)
* grammatical adjustments
* unifying the gender of certain words (i.e. "die" Wallet)

* Translations - Draft for peer review

* Corrections according to rodolfo912's review

en-dash as a symbol vs. unicode ;#8211; is yet to be resolved

* Reverting case of "Wallet" from "die" to "das"

As requested by m2049r the article of "Wallet" was reverted back from "die Wallet" to "das Wallet" and corrected in places where it was inconsistent before.
2019-04-19 14:57:49 +02:00
Jack Rogers Lewis
ccb64aded0 SK update help.xml (#568) 2019-04-19 14:49:25 +02:00
Jack Rogers Lewis
e98fa089f2 update new strings (#567)
podadresa = subadresa
2019-04-19 14:48:47 +02:00
Scott Anecito
884878b7a7 Update Japanese localization, fix English typo (#564) 2019-04-19 14:43:56 +02:00
v1docq47
4e23f0ef3a Update for Russian translation #444 (#558)
* Update for Russian translation #444

* fix

added translation of missing lines (help.xml / strings.xml)
2019-03-19 20:12:37 +01:00
0140454
6ea4e3d998 Update zh-rTW translation (#557)
* Update zh-rTW translation

* Update translation for "Using a payment link"
2019-03-19 20:12:16 +01:00
m2049r
971c90f35b Merge pull request #559 from m2049r/feature_enable_ledger
Feature enable ledger
2019-03-19 20:06:17 +01:00
47 changed files with 1234 additions and 1342 deletions

View File

@@ -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 {

View File

@@ -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();
}

View File

@@ -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();
}
}

View File

@@ -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())

View File

@@ -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();
}

View File

@@ -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");

View File

@@ -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 {

View File

@@ -173,5 +173,4 @@ public class TransactionInfo implements Parcelable, Comparable<TransactionInfo>
return this.hash.compareTo(another.hash);
}
}
}
}

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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() {

View File

@@ -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) {

View File

@@ -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"

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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&#8230;</string>
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
<string name="send_address_bip70">Resolved Payment URI &#x2714;</string>
<string name="send_address_resolve_bip70">Risolvendo URI pagamento&#8230;</string>
<string name="send_address_not_bip70">Impossibile risolvere pagamento URI</string>
<string name="send_address_bip70">Risolto URI pagamento&#x2714;</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>

View File

@@ -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 &amp; 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>

View File

@@ -409,22 +409,22 @@
<string name="backup_success">バックアップ成功</string>
<string name="send_address_resolve_bip70">Resolving Payment URI&#8230;</string>
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
<string name="send_address_bip70">Resolved Payment URI &#x2714;</string>
<string name="send_address_resolve_bip70">ペイメントIDの名前解決中&#8230;</string>
<string name="send_address_not_bip70">ペイメントIDの名前解決できませんでした</string>
<string name="send_address_bip70">ペイメントIDの名前解決しました &#x2714;</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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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 &amp; 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 &amp; 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>

View File

@@ -356,21 +356,21 @@
<string name="backup_success">Backup feito com successo</string>
<string name="send_address_resolve_bip70">Resolving Payment URI&#8230;</string>
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
<string name="send_address_bip70">Resolved Payment URI &#x2714;</string>
<string name="send_address_hint">Receiver</string>
<string name="send_address_resolve_bip70">Resolvendo URI do Pagamento&#8230;</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 &#x2714;</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>

View File

@@ -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 &amp; bookmark 3&#8211;5 nodes to allow Monerujo
to choose the best one for you!</p>
<h2>What&apos;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&#8230;</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&apos;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 &quot;Add Node&quot; button at the bottom, you will be asked to
enter the node details in the following dialog.
The &quot;Address&quot; is the hostname or IP-address of the node - this is the only
mandatory entry.
Enter the &quot;Port&quot; 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 &amp;
password in the appropriate fields. Now you can &quot;Test&quot; these setting.
The &quot;Test Results&quot; 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&apos;re set to press &quot;OK&quot; to save &amp;
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&apos;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 &amp; favorito 3&#8211;5 nós para permitir que
o Monerujo escolha o melhor para ti!</p>
<h2>O que é&apos;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&#8230;</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ó&apos; (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 &quot;Adicionar Nó&quot; no fundo, poderás adicionar os detalhes
na janela de dialogo.
Em &quot;Endereço&quot; está o hostname ou endereço IP do nó - este é o unico campo necessário.
Introduz a &quot;Porta&quot; 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 &amp;
e palavra passe nos campos disponibilizados. Agora podes &quot;Testar&quot; estas configurações.
Os &quot;Resultados do Teste&quot; 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&apos;pressionar &quot;OK&quot; para gravar &amp;
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 &amp; 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 &amp; 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>

View File

@@ -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&#8230;</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&#8230;</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 &#x2714;</string>
<string name="send_address_resolve_openalias">Resolving OpenAlias&#8230;</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 &#x2714;</string>
<string name="send_address_resolve_openalias">Resolvendo OpenAlias&#8230;</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&#8211;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 &#8230;</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&#8230;</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&#8211;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 &#8230;</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 &#8230;</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&#8230;</string>
<string name="send_address_not_bip70">Could not resolve Payment URI</string>
<string name="send_address_bip70">Resolved Payment URI &#x2714;</string>
<string name="send_address_hint">Receiver</string>
<string name="send_address_resolve_bip70">A resolver URI&#8230; 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 &#x2714; 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>

View File

@@ -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