wownero
/
wownerujo
Archived
4
0
Fork 0

merge pre-ledger

openssl-1.1.0
fuwa 6 years ago
commit 0c5f01ce45

@ -41,8 +41,18 @@ android {
}
// Map for the version code that gives each ABI a value.
def abiCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
// Enumerate translated locales
def availableLocales = ["en"]
new File("app/src/main/res/").eachFileMatch(~/^values-.*/) { file ->
def languageTag = file.name.substring(7).replace("-r", "-")
availableLocales.add(languageTag)
}
// APKs for the same app that all have the same version information.
android.applicationVariants.all { variant ->
// Update string resource: available_locales
variant.resValue("string", "available_locales", availableLocales.join(","))
// Assigns a different version code for each output APK.
variant.outputs.all {
output ->

@ -392,16 +392,24 @@ public class GenerateFragment extends Fragment {
// is it a date?
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
parser.setLenient(false);
parser.parse(restoreHeight);
height = RestoreHeight.getInstance().getHeight(restoreHeight);
} catch (ParseException exPE) {
height = RestoreHeight.getInstance().getHeight(parser.parse(restoreHeight));
} catch (ParseException ex) {
}
if (height <= 0)
try {
// is it a date without dashes?
SimpleDateFormat parser = new SimpleDateFormat("yyyyMMdd");
parser.setLenient(false);
height = RestoreHeight.getInstance().getHeight(parser.parse(restoreHeight));
} catch (ParseException ex) {
}
if (height <= 0)
try {
// or is it a height?
height = Long.parseLong(restoreHeight);
} catch (NumberFormatException exNFE) {
} catch (NumberFormatException ex) {
return -1;
}
}
Timber.d("Using Restore Height = %d", height);
return height;
}

@ -52,6 +52,7 @@ import com.wownero.wownerujo.model.WalletManager;
import com.wownero.wownerujo.service.WalletService;
import com.wownero.wownerujo.util.Helper;
import com.wownero.wownerujo.util.KeyStoreHelper;
import com.wownero.wownerujo.util.LocaleHelper;
import com.wownero.wownerujo.util.MoneroThreadPoolExecutor;
import com.wownero.wownerujo.widget.Toolbar;
@ -62,7 +63,12 @@ import java.io.IOException;
import java.net.Socket;
import java.net.SocketAddress;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Locale;
import timber.log.Timber;
@ -959,6 +965,48 @@ public class LoginActivity extends SecureActivity
}
}
public void onChangeLocale() {
final ArrayList<Locale> availableLocales = LocaleHelper.getAvailableLocales(LoginActivity.this);
String[] localeDisplayName = new String[1 + availableLocales.size()];
Collections.sort(availableLocales, new Comparator<Locale>() {
@Override
public int compare(Locale locale1, Locale locale2) {
String localeString1 = LocaleHelper.getDisplayName(locale1, true);
String localeString2 = LocaleHelper.getDisplayName(locale2, true);
return localeString1.compareTo(localeString2);
}
});
localeDisplayName[0] = getString(R.string.language_system_default);
for (int i = 1; i < localeDisplayName.length; i++) {
Locale locale = availableLocales.get(i - 1);
localeDisplayName[i] = LocaleHelper.getDisplayName(locale, true);
}
int currentLocaleIndex = 0;
String currentLocaleName = LocaleHelper.getLocale(LoginActivity.this);
if (!currentLocaleName.isEmpty()) {
Locale currentLocale = Locale.forLanguageTag(currentLocaleName);
String currentLocalizedString = LocaleHelper.getDisplayName(currentLocale, true);
currentLocaleIndex = Arrays.asList(localeDisplayName).indexOf(currentLocalizedString);
}
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
builder.setTitle(getString(R.string.menu_language));
builder.setSingleChoiceItems(localeDisplayName, currentLocaleIndex, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
dialog.dismiss();
LocaleHelper.setLocale(LoginActivity.this,
(i == 0) ? "" : availableLocales.get(i - 1).toLanguageTag());
startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
}
});
builder.show();
}
@Override
public void onBackPressed() {
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
@ -1007,6 +1055,9 @@ public class LoginActivity extends SecureActivity
case R.id.action_privacy_policy:
PrivacyFragment.display(getSupportFragmentManager());
return true;
case R.id.action_language:
onChangeLocale();
return true;
case R.id.action_stagenet:
try {
LoginFragment loginFragment = (LoginFragment)

@ -16,13 +16,12 @@
package com.wownero.wownerujo;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.wownero.wownerujo.util.Helper;
import java.io.File;
import com.wownero.wownerujo.util.LocaleHelper;
import static android.view.WindowManager.LayoutParams;
@ -36,4 +35,9 @@ public abstract class SecureActivity extends AppCompatActivity {
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
}
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
}
}

@ -18,8 +18,10 @@ package com.wownero.wownerujo;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import com.wownero.wownerujo.util.Helper;
import com.wownero.wownerujo.util.LocaleHelper;
import timber.log.Timber;
@ -27,9 +29,21 @@ public class XmrWalletApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
}
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
}
@Override
public void onConfigurationChanged(Configuration configuration) {
super.onConfigurationChanged(configuration);
LocaleHelper.updateSystemDefaultLocale(configuration.locale);
LocaleHelper.setLocale(XmrWalletApplication.this, LocaleHelper.getLocale(XmrWalletApplication.this));
}
}

@ -19,6 +19,7 @@ package com.wownero.wownerujo.service;
import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.Bundle;
@ -36,6 +37,7 @@ import com.wownero.wownerujo.model.Wallet;
import com.wownero.wownerujo.model.WalletListener;
import com.wownero.wownerujo.model.WalletManager;
import com.wownero.wownerujo.util.Helper;
import com.wownero.wownerujo.util.LocaleHelper;
import timber.log.Timber;
@ -418,6 +420,11 @@ public class WalletService extends Service {
}
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
}
public class WalletServiceBinder extends Binder {
public WalletService getService() {
return WalletService.this;

@ -497,6 +497,12 @@ public class Helper {
tvOpenPrompt.setText(errString);
}
@Override
public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
tvOpenPrompt.setCompoundDrawablesRelativeWithIntrinsicBounds(icError, null, null, null);
tvOpenPrompt.setText(helpString);
}
@Override
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
try {

@ -0,0 +1,81 @@
package com.wownero.wownerujo.util;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.Configuration;
import android.preference.PreferenceManager;
import com.wownero.wownerujo.R;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Locale;
public class LocaleHelper {
private static final String PREFERRED_LOCALE_KEY = "preferred_locale";
private static Locale SYSTEM_DEFAULT_LOCALE = Locale.getDefault();
public static ArrayList<Locale> getAvailableLocales(Context context) {
ArrayList<Locale> locales = new ArrayList<>();
String[] availableLocales = context.getString(R.string.available_locales).split(",");
for (String localeName : availableLocales) {
locales.add(Locale.forLanguageTag(localeName));
}
return locales;
}
public static String getDisplayName(Locale locale, boolean sentenceCase) {
String displayName = locale.getDisplayName(locale);
if (sentenceCase) {
displayName = toSentenceCase(displayName, locale);
}
return displayName;
}
public static String getLocale(Context context) {
return getPreferredLocale(context);
}
public static Context setLocale(Context context, String locale) {
setPreferredLocale(context, locale);
Locale newLocale = (locale.isEmpty()) ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(locale);
Configuration configuration = context.getResources().getConfiguration();
Locale.setDefault(newLocale);
configuration.setLocale(newLocale);
configuration.setLayoutDirection(newLocale);
return context.createConfigurationContext(configuration);
}
public static void updateSystemDefaultLocale(Locale locale) {
SYSTEM_DEFAULT_LOCALE = locale;
}
private static String toSentenceCase(String str, Locale locale) {
if (str.isEmpty()) {
return str;
}
int firstCodePointLen = str.offsetByCodePoints(0, 1);
return str.substring(0, firstCodePointLen).toUpperCase(locale)
+ str.substring(firstCodePointLen);
}
private static String getPreferredLocale(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context)
.getString(PREFERRED_LOCALE_KEY, "");
}
@SuppressLint("ApplySharedPref")
private static void setPreferredLocale(Context context, String locale) {
PreferenceManager.getDefaultSharedPreferences(context).edit()
.putString(PREFERRED_LOCALE_KEY, locale).commit();
}
}

@ -19,6 +19,7 @@ package com.wownero.wownerujo.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
@ -51,59 +52,66 @@ public class RestoreHeight {
parser.setTimeZone(TimeZone.getTimeZone("UTC"));
parser.setLenient(false);
try {
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.set(Calendar.DST_OFFSET, 0);
cal.setTime(parser.parse(date));
cal.add(Calendar.DAY_OF_MONTH, -4); // give it some leeway
if (cal.get(Calendar.YEAR) < 2018)
return 1;
if ((cal.get(Calendar.YEAR) == 2018) && (cal.get(Calendar.MONTH) <= 4))
// before May 2014
return 1;
return getHeight(parser.parse(date));
} catch (ParseException ex) {
throw new IllegalArgumentException(ex);
}
}
public long getHeight(final Date date) {
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.set(Calendar.DST_OFFSET, 0);
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, -4); // give it some leeway
if (cal.get(Calendar.YEAR) < 2018)
return 0;
if ((cal.get(Calendar.YEAR) == 2018) && (cal.get(Calendar.MONTH) <= 4))
// before Apr 2018
return 0;
Calendar query = (Calendar) cal.clone();
Calendar query = (Calendar) cal.clone();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
cal.set(Calendar.DAY_OF_MONTH, 1);
long prevTime = cal.getTimeInMillis();
String prevDate = formatter.format(prevTime);
// lookup blockheight at first of the month
Long prevBc = blockheight.get(prevDate);
if (prevBc == null) {
// if too recent, go back in time and find latest one we have
while (prevBc == null) {
cal.add(Calendar.MONTH, -1);
if (cal.get(Calendar.YEAR) < 2018) {
throw new IllegalStateException("endless loop looking for blockheight");
}
prevTime = cal.getTimeInMillis();
prevDate = formatter.format(prevTime);
prevBc = blockheight.get(prevDate);
String queryDate = formatter.format(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
long prevTime = cal.getTimeInMillis();
String prevDate = formatter.format(prevTime);
// lookup blockheight at first of the month
Long prevBc = blockheight.get(prevDate);
if (prevBc == null) {
// if too recent, go back in time and find latest one we have
while (prevBc == null) {
cal.add(Calendar.MONTH, -1);
if (cal.get(Calendar.YEAR) < 2018) {
throw new IllegalStateException("endless loop looking for blockheight");
}
prevTime = cal.getTimeInMillis();
prevDate = formatter.format(prevTime);
prevBc = blockheight.get(prevDate);
}
long height = prevBc;
// now we have a blockheight & a date ON or BEFORE the restore date requested
if (date.equals(prevDate)) return height;
// see if we have a blockheight after this date
cal.add(Calendar.MONTH, 1);
long nextTime = cal.getTimeInMillis();
String nextDate = formatter.format(nextTime);
Long nextBc = blockheight.get(nextDate);
if (nextBc != null) { // we have a range - interpolate the blockheight we are looking for
long diff = nextBc - prevBc;
long diffDays = TimeUnit.DAYS.convert(nextTime - prevTime, TimeUnit.MILLISECONDS);
long days = TimeUnit.DAYS.convert(query.getTimeInMillis() - prevTime,
TimeUnit.MILLISECONDS);
height = Math.round(prevBc + diff * (1.0 * days / diffDays));
} else {
long days = TimeUnit.DAYS.convert(query.getTimeInMillis() - prevTime,
TimeUnit.MILLISECONDS);
height = Math.round(prevBc + 1.0 * days * (24 * 60 / 2));
}
return height;
} catch (ParseException ex) {
throw new IllegalArgumentException(ex);
}
long height = prevBc;
// now we have a blockheight & a date ON or BEFORE the restore date requested
if (queryDate.equals(prevDate)) return height;
// see if we have a blockheight after this date
cal.add(Calendar.MONTH, 1);
long nextTime = cal.getTimeInMillis();
String nextDate = formatter.format(nextTime);
Long nextBc = blockheight.get(nextDate);
if (nextBc != null) { // we have a range - interpolate the blockheight we are looking for
long diff = nextBc - prevBc;
long diffDays = TimeUnit.DAYS.convert(nextTime - prevTime, TimeUnit.MILLISECONDS);
long days = TimeUnit.DAYS.convert(query.getTimeInMillis() - prevTime,
TimeUnit.MILLISECONDS);
height = Math.round(prevBc + diff * (1.0 * days / diffDays));
} else {
long days = TimeUnit.DAYS.convert(query.getTimeInMillis() - prevTime,
TimeUnit.MILLISECONDS);
height = Math.round(prevBc + 1.0 * days * (24 * 60 / 2));
}
return height;
}
}

@ -10,21 +10,27 @@
app:showAsAction="never" />
<item
android:id="@+id/action_license_info"
android:id="@+id/action_language"
android:orderInCategory="200"
android:title="@string/menu_language"
app:showAsAction="never" />
<item
android:id="@+id/action_license_info"
android:orderInCategory="300"
android:title="@string/menu_about"
app:showAsAction="never" />
<item
android:id="@+id/action_privacy_policy"
android:orderInCategory="300"
android:orderInCategory="400"
android:title="@string/menu_privacy"
app:showAsAction="never" />
<item
android:id="@+id/action_help_list"
android:icon="@drawable/ic_help_white_24dp"
android:orderInCategory="400"
android:orderInCategory="500"
android:title="@string/menu_help"
app:showAsAction="ifRoom" />

@ -319,4 +319,7 @@
<string name="send_sweepall">Versende ALLE(!) verfügbaren Gelder aus diesem Konto</string>
<string name="tx_subaddress">Subadresse #%1$d</string>
<string name="generate_address_label_sub">Öffentliche Subadresse #%1$d</string>
<string name="menu_language">Sprache</string>
<string name="language_system_default">Benutze Systemsprache</string>
</resources>

@ -317,4 +317,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -305,4 +305,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -323,4 +323,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_close">Bezárás</string>
<string name="about_whoami">Monerujo vagyok</string>
<string name="about_version">Verzió: %1$s (%2$d)</string>
<string name="credits_text"><![CDATA[
<b>Készítők</b>
<br/>
m2049r, baltsar777, anhdres, keejef,
rehrar, EarlOfEgo et al.
<br/><br/>
<a href="https://monerujo.io/">monerujo.io</a>
]]></string>
<string name="privacy_policy"><![CDATA[
<h1>Adatvédelmi irányelvek</h1>
<p>Ez az oldal nyújt tájékoztatást az applikációnkat (monerujo: Monero pénztárca)
használók személyes információinak gyűjtésére, felhasználására és közzétételére
vonatkozó irányelveinkről.
</p>
<p>Az applikáció használatával elfogadod az ezen irányelveknek megfelelő
információgyűjtést és azok felhasználását.
</p>
<h2>Gyűjtött adatok</h2>
<p>Személyes adat bármi olyan adat, mely személyazonosításra alkalmas.
</p>
<p>A Monero-kulcsok és a nyilvános címek az applikáció által helyileg kerülnek
összegyűjtésre és feldolgozásra a tranzakciók lebonyolítása céljából, majd ezek
titkosított formában kerülnek továbbításra a Monero hálózatába.
</p>
<p>Más személyes adatot nem gyűjt az applikáció.</p>
<p>Az átváltási funkció (opcionális) használata esetén a monerujo a coinmarketcap.com
nyilvános API-ján keresztül kéri le az árfolyamot.
A kéréseid során történő adatgyűjtés módjával kapcsolatban tekintsd meg az adatvédelmi
irányelveiket a https://coinmarketcap.com/privacy weboldalon.</p>
<p>Ha BTC-címekre való fizetésre használod az applikációt, akkor az XMR.TO szolgáltatását
használod. Részletes adatvédelmi irányelveiket a https://xmr.to/ weboldalon tekintheted meg.
A monerujo számukra a kedvezményezett BTC-címet és a küldeni kívánt mennyiséget közli meg,
ám az IP-címed is begyűjthető.</p>
<h2>Applikációengedélyek</h2>
<ul>
<li>INTERNET : csatlakozás a Monero-hálózathoz egy Monero daemon csomóponton keresztül</li>
<li>READ_EXTERNAL_STORAGE : az eszközön tárolt tárcafájlok olvasása</li>
<li>WRITE_EXTERNAL_STORAGE : az eszközön tárolt tárcafájlok írása</li>
<li>WAKE_LOCK : az eszköz ébren tartása szinkronizálás közben</li>
<li>CAMERA : QR-kódok beolvasása Monero fogadásához</li>
</ul>
<h2>Az adatvédelmi irányelvek módosításai</h2>
<p>Az adatvédelmi irányelveket időnként frissíthetjük. Bármiféle módosításról
értesíteni fogunk az új adatvédelmi irányelvek applikációban és weboldalon (www.monerujo.io)
történő közzétételével.
Javasolt az adatvédelmi irányelvek időközönkénti átolvasása a változásokról való értesülés céljából.
<p>Az adatvédelmi irányelvek legutolsó frissítése: 2017. november 10.
</p>
<h2>Lépj kapcsolatba velünk</h2>
<p>Ha bármilyen kérdésed merül fel az adatvédelmi irányelveinkkel vagy az adatok
gyűjtésével és feldolgozásával kapcsolatban, úgy kérlek, írj e-mailt a privacy@monerujo.io címre.
</p>
]]></string>
</resources>

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="help_create_new"><![CDATA[
<h1>Tárcalétrehozás - új</h1>
<p>Ha szükséged van egy új Monero-címre!</p>
<p>Adj meg egy egyedi tárcanevet és jelszót.
A jelszó a tárcaadataidnak az eszközön való biztosítására szolgál. Használj erős jelszót, de
még jobb a jelmondat használata.</p>
<h2>Jegyezd le a mnemonikus magot!</h2>
<p>A következő oldalon találod a 25 szóból álló úgynevezett mnemonikus magot.
Ez az egyetlen adat, mely a tárcád későbbi visszaállításához és a pénzedhez való újbóli hozzáféréshez
szükséges. Titokban és biztonságban tartása rendkívül fontos, ugyanis ennek ismeretében <em>bárki</em>
teljes hozzáférést szerezhet a Moneródhoz.</p>
<p>Ha elveszted vagy elfeljted a jelszavadat, a tárdád még visszaállítható a mnemonikus mag használatával.</p>
<p>A mnemonikus mag visszaállítására nincsen lehetőség, így ennek elvesztése esetén a pénzedet is elveszíted!
A mnemonikus mag megváltoztatása nem lehetséges, tehét ha azt ellopják vagy más módon veszélyeztetett
helyezetbe kerül, akkor pénzedet át kell tenned egy új tárcába (melyhez új mnemonikus mag is jár).
Ebből adódóan tehát a lehető legjobb az, ha biztonsági mentést készítesz a mnemonikus magról, azaz leírod
és <em>több</em> biztonságos helyre elteszed.</p>
]]></string>
<string name="help_create_seed"><![CDATA[
<h1>Tárcalétrehozás - mag</h1>
<p>Ha már van Monero-címed és szeretnéd a tranzakciókat újból betölteni a blokkláncból!</p>
<p>Adj meg egy egyedi tárcanevet és jelszót. A jelszó a tárcaadataidnak az eszközön való biztosítására szolgál.
Használj erős jelszót, de még jobb a jelmondat használata.</p>
<p>Add meg a mnemonikus magodat a megfelelő mezőben.<p>
<p>Ha tudod a címhez tartozó első tranzakció blokkszámát, akkor add azt meg a Visszaállítási lánchossz
mezőben. Üresen hagyása a <em>teljes</em> blokklánc újbóli beolvasását vonja maga után a címedhez
tartozó tranzakciók megkeresése érdekében. Ez <em>sok</em> időt vesz igénybe.</p>
]]></string>
<string name="help_create_keys"><![CDATA[
<h1>Tárcalétrehozás - kulcsok</h1>
<p>Ha a kulcsaid használatával állítod vissza a tárcád!</p>
<p>Adj meg egy egyedi tárcanevet és jelszót. A jelszó a tárcaadataidnak az eszközön való biztosítására szolgál.
Használj erős jelszót, de még jobb a jelmondat használata.</p>
<p>Add meg a Monero-címed a Nyilvános cím mezőben és töltsd ki a Figyelőkulcs és Költőkulcs mezőket.</p>
<p>Ha tudod a címhez tartozó első tranzakció blokkszámát, akkor add azt meg a Visszaállítási lánchossz
mezőben. Üresen hagyása a <em>teljes</em> blokklánc újbóli beolvasását vonja maga után a címedhez
tartozó tranzakciók megkeresése érdekében. Ez <em>sok</em> időt vesz igénybe.</p>
]]></string>
<string name="help_create_view"><![CDATA[
<h1>Tárcalétrehozás - figyelőtárca</h1>
<p>Ha csak a tárcába beérkező tranzakciókat szeretnéd figyelemmel követni!</p>
<p>Adj meg egy egyedi tárcanevet és jelszót. A jelszó a tárcaadataidnak az eszközön való biztosítására szolgál.
Használj erős jelszót, de még jobb a jelmondat használata.</p>
<p>Add meg a Monero-címed a Nyilvános cím mezőben és töltsd ki a Figyelőkulcs mezőt.</p>
<p>Ha tudod a címhez tartozó első tranzakció blokkszámát, akkor add azt meg a Visszaállítási lánchossz
mezőben. Üresen hagyása a <em>teljes</em> blokklánc újbóli beolvasását vonja maga után a címedhez
tartozó tranzakciók megkeresése érdekében. Ez <em>sok</em> időt vesz igénybe.</p>
]]></string>
<string name="help_details"><![CDATA[
<h1>Tárcarészletek</h1>
<h2>Nyilvános cím</h2>
A nyilvános címed olyan, mint a bankszámlaszámod: megoszthatod bárkivel, nem kell félned attól,
hogy elvész a Moneród. Mások ezen cím használatával tudnak neked Monerót küldeni.
<h2>Mnemonikus mag</h2>
Ez az egyetlen adat, mely a tárcád későbbi visszaállításához és a pénzedhez való újbóli hozzáféréshez
szükséges. Titokban és biztonságban tartása rendkívül fontos, ugyanis ennek ismeretében <em>bárki</em>
teljes hozzáférést szerezhet a Moneródhoz. Ha még nem jegyezted le valami biztonságos helyre, úgy kérlek,
ezt tedd meg most!
<h2>Tárcafájl-visszaállító jelszó</h2>
Mindenképpen írd le ezt a jelszót. Ha visszaállítod az eszközöd vagy eltávolítod az applikációt, akkor
erre a jelszóra lesz szükséged a tárcád újbóli eléréséhez.<br/>
<h3>CrAzYpass</h3>
Ha az itt megjelenített jelszó 52 darab alfanumerikus karakter négyes csoportokba szervezve - gratulálunk!
A tárcafájljaid biztosítva vannak egy, az eszközöd által generált 256-bites kulccsal a tárca létrehozásakor
vagy jelszómódosításkor választott jelszó alapján. A tárca feltörése ezáltal igen nehézzé válik.<br/>
Ez a szolgáltatás minden újonnan létrehozott tárca esetén kötelező.
<h3>Hagyatéki jelszó</h3>
Ha látod itt a jelszavadat, akkor a tárcafájljaid nincsenek olyan biztonságban, mint a CrAzYpass
használata esetén. Ennek megoldására egyszerűen csak válaszd ki a Jelszómódosítás menüpontot. Egy
új jelszó megadása (ami akár a korábbival megegyező is lehet) esetén az applikáció generálni fog
számodra egy CrAzYpass-t, majd azzal biztosítani fogja a tárcafájljaid. Írd le!
<h3>CrAzYpass-os tárcák</h3>
Ha bármikor szükségessé válik a monerujo újratelepítése (például gyári állapo visszaállítása vagy
telefoncsere esetén) vagy tárcafájljaidat egy másik eszközön, esetleg számítógépen szeretnéd használni,
akkor ezt a visszaállító jelszót kell használnod a tárcád újbóli eléréséhez.<br/>
A Jelszómódosítás menüpontban másik jelszót választhatsz, ám légy figyelmes, ugyanis ez új visszaállító
jelszó generálásához is vezet. Írd le!
<h2>Figyelőkulcs</h2>
A figyelőkulcsod (view key) használható a beérkező tranzakciók megfigyelésére anélkül, hogy felhatalmazást
adnál a tárcádban található pénzösszeg elköltésére.
<h2>Költőkulcs</h2>
A költőkulcsod (spend key) lehetővé teszi a tárcádban található Monero elköltését, így ezen kulcsot
tartsd titokban csakúgy, mint a mnemonikus magot.
]]></string>
<string name="help_list"><![CDATA[
<h1>Tárcalista</h1>
<h2>Csomópont</h2>
<p>A monerujo távoli csomópontot használ a Monero-hálózattal való kommunikációhoz, így nem
kell az egész blokklánc egy másolatát letölteni és tárolni. A népszerű távoli csomópontokról
és a saját csomópont futtatásáról a https://moneroworld.com weboldalon olvashatsz.<p>
<p>A monerujo tartalmaz néhány előbeállított távoli csomópontot. Megjegyzésre az utolsó öt
használt csomópont kerül.</p>
<h2>Tárcák</h2>
<p>Itt láthatod a tárcáidat. Helyileg az eszközöd belső tárhelyén, a <tt>monerujo</tt>
mappában találhatók, és egy fájlkezelő használatával ezeket könnyedén meg is találhatod.
Időközönként csinálj biztonsági mentést erről a mappáról egy külső tárolóra arra az esetre,
ha az eszközöd tönkremenne, esetleg ellopnák azt.</p>
<p>Válassz egy tárcát megnyitásra vagy koppints a „+” gombra új létrehozásához.
Esetleg használd az alábbi műveletek valamelyikét:</p>
<h3>Részletek</h3>
<p>Tárca részleteinek, valamint a mnemonikus mag és kulcsok mutatása.
<h3>Fogadás</h3>
<p>QR-kód létrehozása Monero fogadására.</p>
<h3>Átnevezés</h3>
<p>Tárca átnevezése. A biztonsági mentések nem kerülnek átnevezésre.</p>
<h3>Biztonsági mentés</h3>
<p>Másolat készítése a tárcáról a <tt>monerujo</tt> alatt található <tt>backups</tt>
mappán belül. A korábbi másolatok felülírásra kerülnek.</p>
<h3>Archiválás</h3>
<p>Biztonsági mentés készítése a tárcáról, majd annak ezt követő törlése. A másolat a
<tt>backups</tt> mappában marad. Ha már nincsen szükséged a biztonsági mentéseidre, töröld
azokat egy fájlkezelő vagy biztonságos tisztítóapplikáció használatával.</p>
]]></string>
<string name="help_wallet"><![CDATA[
<h1>A tárca</h1>
<h2>Beolvasás</h2>
Mivel a Monero szereti titokban tartani a dolgokat, így a monerujo-tárca minden egyes megnyitásakor
beolvasásra kerül a blokklánc, hogy megnézzük, került-e a tárcádba Monero. Ez csakis olyan információt
tárol a telefonodon, mely a tárcádhoz tartozik. Ha már hosszú ideje nem szinkronizáltál, a művelet
eltarthat egy ideig.
<h2>Az egyenleg</h2>
<p><b>Segítség! A tárcaegyenlegem eltűnt vagy függőben van!</b><br/>
Ne pánikolj! Amikor pénzt küldesz a tárcádból, az egyenleged egy része átmenetileg függőként
fog megjelenni.
Ez a Monero blokkláncon való kicserélődési módjának és a visszajáró kezelésének eredményeképp van.
Erről részletesen a https://getmonero.org/resources/moneropedia/change.html weboldalon olvashatsz.
<h2>Tranzakciólista</h2>
<p>A tárcához tartozó tranzakciók listája. A csak megtekintésre szolgáló tárcák esetében kizárólag
a bejövő tranzakciók kerülnek megjelenítésre.</p>
]]></string>
<string name="help_tx_details"><![CDATA[
<h1>Tranzakciórészletek</h1>
<h2>Kedvezményezett címe</h2>
A tárca nyilvános címe, melyre Monerót küldtél.
<h2>Fizetési azonosító</h2>
Fizetési azonosítót (Payment ID) használhatsz arra a célra, hogy beazonosítsd, miért történt
tranzakció két fél között. Ez teljes mértékben opcionális és privát. A fizetési azonosító például
lehetővé teszi egy üzlet számára a tranzakciód és a megvásárolt tételed összeegyeztetését.
<h2>Tranzakcióazonosító</h2>
A tranzakcióazonosítód (TX ID) szolgál arra, hogy a titkosított tranzakciódat azonosítani tudd
egy blokkkeresőben, mint például a <a href="https://xmrchain.net/">https://xmrchain.net/</a>.
<h2>Tranzakciókulcs</h2>
Ez a tranzakciós privát kulcsod (TX KEY). Tartsd biztonságban, ugyanis harmadik félnek való megmutatása
felfedi, hogy egy gyűrűn belül melyik aláírás a tiéd, ezáltal nyílttá téve a tranzakciódat.
<h2>Blokk</h2>
A blokk, melybe a tranzakciód került.
]]></string>
<string name="help_send"><![CDATA[
<h1>Küldés</h1>
<h2>Kedvezményezett címe</h2>
<p>Azon tárca nyilvános címe, melyre Monerót küldesz. Begépelhető kézileg, de akár vágólapról vagy
QR-kódból is beilleszthető. Többször is ellenőrizd, hogy biztosan jó címre utalsz-e.</p>
<p>Az XMR-küldés mellett BTC-küldésre is lehetőség van az XMR.TO szolgálatatásn keresztül. Részletekért
látogass el a https://xmr.to weboldalra és olvasd el a lentebb található BTC-küldés című pontot.</p>
<h2>Fizetési azonosító</h2>
<p>Fizetési azonosítót (payment ID) használhatsz arra a célra, hogy beazonosítsd, miért történt
tranzakció két fél között. Ez teljes mértékben opcionális és privát. A fizetési azonosító például
lehetővé teszi egy üzlet számára a tranzakciód és a megvásárolt tételed összeegyeztetését.<p>
<h2>Gyűrűméret</h2>
<p>A monerujóban több gyűrűméret közül lehet választani. Ha kezdő felhasználó vagy, javasoljuk
a 7-es gyűrűméret használatát. A gyűrűméret 7 fölé emelése növeli a gyűrűaláírásban részt vevő
aláírók számát, elméletileg megnöveld elfogadható tagadhatóságot biztosítva, azonban a nagy
gyűrűtméret használata miatt a tranzakciód kitűnhet a blokkláncon.</p>
<h2>Prioritás</h2>
<p>Ez a beállítás határozza meg, hogy milyen gyorsan kerül a tranzakciód a blokkláncba.
A magasabb prioritás közvetlen kapcsolatban áll a magasabb tranzakciós költséggel, ennek
ellentetje pedig a kis prioritás esetén igaz. Vedd figyelembe, hogy alacsony prioritás mellett
órahosszákba is telhet mire a tranzakciód a blokkláncba bekerül. Az alapértelmezett prioritás
a közepes.</p>
<h1>BTC-küldés</h1>
<h2>XMR.TO</h2>
<p>Az XMR.TO egy harmadik féltől származó szolgáltatás, mely Moneróról Bitcoinra való átváltóként
viselkedik. Az XMR.TO API-ját használjuk a Bitcoinban való fizetés monerujóba való integrálásához.
Kérlek, látogass el a https://xmr.to weboldalra, és döntsd el magad, hogy szeretnéd-e használni.
A monerujo csapata nincsen kapcsolatban az XMR.TO-val és nem tudnak segítséget nyújtani a
szolgáltatásaikkal kapcsolatban.</p>
<h2>XMR.TO árfolyam<h2>
<p>A Mennyiség oldalon kerülnek megjelenítésre az XMR.TO szolgáltatás paraméterei. Ez magában
foglalja az aktuális árfolyamot, valamint a BTC alsó és felső határértékeit. Vedd figyelembe,
hogy ez az árfolyam ekkor még nem garantált. Megjelenítésre kerül az a mennyiség is, amely mellett
a BTC-tranzakció azonnal megvalósításra kerül XMR-megerősítések nélkül (részletekért olvad el az
XMR.TO oldalán a gyakran ismételt kérdéseket). Az XMR.TO nem számol fel extra költségeket - milyen
király már ez?</p>
<h2>XMR.TO megrendelés<h2>
<p>A Megerősítés oldalon láthatod a tényleges megrendelést. A megrendelés korlátozott ideig
érvényes - láthatod a visszaszámlálást a Küldés gombon. Az árfolyam különbözhet a korábbi képernyőkön
látottaktól.</p>
<h2>XMR.TO titkos kulcs<h2>
<p>Mivel a monerujo csak a tranzakciód Monero részét kezeli, így az XMR.TO titkos kulcsod
használható a megrendelésed Bitcoin részének nyomonkövetésére az XMR.TO kezdőlapján.</p>
<p>Kérjük vedd figyelembe, hogy ez a titkos kulcs csak a tranzakció kezdetétől számított
24 óráig érvényes!</p>
<h2>XMR.TO visszaszámlálás!</h2>
<p>Amint a visszaszámlálás eléri a nullát, új ajánlatot kell kérned az XMR.TO-tól azáltal, hogy
visszamész az előző lépésre, majd visszajössz a Megerősítés oldalra.</p>
]]></string>
<string name="help_xmrto"><![CDATA[
<h1>BTC-küldés</h1>
<h2>XMR.TO</h2>
<p>Az XMR.TO egy harmadik féltől származó szolgáltatás, mely Moneróról Bitcoinra való átváltóként
viselkedik. Az XMR.TO API-ját használjuk a Bitcoinban való fizetés monerujóba való integrálásához.
Kérlek, látogass el a https://xmr.to weboldalra, és döntsd el magad, hogy szeretnéd-e használni.
A monerujo csapata nincsen kapcsolatban az XMR.TO-val és nem tudnak segítséget nyújtani a
szolgáltatásaikkal kapcsolatban.</p>
<h2>XMR.TO árfolyam<h2>
<p>A Mennyiség oldalon kerülnek megjelenítésre az XMR.TO szolgáltatás paraméterei. Ez magában
foglalja az aktuális árfolyamot, valamint a BTC alsó és felső határértékeit. Vedd figyelembe,
hogy ez az árfolyam ekkor még nem garantált. Megjelenítésre kerül az a mennyiség is, amely mellett
a BTC-tranzakció azonnal megvalósításra kerül XMR-megerősítések nélkül (részletekért olvad el az
XMR.TO oldalán a gyakran ismételt kérdéseket). Az XMR.TO nem számol fel extra költségeket - milyen
király már ez?</p>
<h2>XMR.TO megrendelés<h2>
<p>A Megerősítés oldalon láthatod a tényleges megrendelést. A megrendelés korlátozott ideig
érvényes - láthatod a visszaszámlálást a Küldés gombon. Az árfolyam különbözhet a korábbi képernyőkön
látottaktól.</p>
<h2>XMR.TO titkos kulcs<h2>
<p>ivel a monerujo csak a tranzakciód Monero részét kezeli, így az XMR.TO titkos kulcsod
használható a megrendelésed Bitcoin részének nyomonkövetésére az XMR.TO kezdőlapján.</p>
<p>Kérjük vedd figyelembe, hogy ez a titkos kulcs csak a tranzakció kezdetétől számított
24 óráig érvényes!</p>
<h2>XMR.TO visszaszámlálás!</h2>
<p>Amint a visszaszámlálás eléri a nullát, új ajánlatot kell kérned az XMR.TO-tól azáltal, hogy
visszamész az előző lépésre, majd visszajössz a Megerősítés oldalra.</p>
]]></string>
</resources>

@ -0,0 +1,325 @@
<resources>
<string name="wallet_activity_name">Tárca</string>
<string name="menu_about">Névjegy</string>
<string name="menu_privacy">Adatvédelem</string>
<string name="menu_share">Megosztás</string>
<string name="menu_help">Segítség</string>
<string name="menu_info">Részletek</string>
<string name="menu_receive">Fogadás</string>
<string name="menu_rename">Átnevezés&#8230;</string>
<string name="menu_archive">Archiválás</string>
<string name="menu_backup">Biztonsági mentés</string>
<string name="menu_changepw">Jelszómódosítás</string>
<string name="password_weak">Folytasd a gépelést&#8230;</string>
<string name="password_fair">Ehh&#8230;</string>
<string name="password_good">Gyerünk, tudsz ennél jobbat!</string>
<string name="password_strong">Alakul&#8230;</string>
<string name="password_very_strong">Ez igen, h4ck3r stílus!</string>
<string name="label_login_wallets">Tárcák</string>
<string name="label_credits">Készítők</string>
<string name="label_ok">OK</string>
<string name="label_cancel">Mégsem</string>
<string name="label_close">Bezárás</string>
<string name="label_wallet_advanced_details">Koppints a részletes informcáióért</string>
<string name="label_send_success">Sikeresen elküldve</string>
<string name="label_send_done">Kész</string>
<string name="label_receive_info_gen_qr_code">Koppints a QR-kódért</string>
<string name="info_send_prio_fees">Magasabb prioritás = magasabb tranzakciós díj</string>
<string name="info_xmrto_enabled">BTC fizetés engedélyezve, koppints ide a részletekért.</string>
<string name="info_crazypass_enabled">CrAzYpass engedélyezve, koppints ide a részletekért</string>
<string name="info_xmrto"><![CDATA[
<b>Bitcoin-címet adtál meg.</b><br/>
<i>XMR-t fogsz küldeni, a fogadó pedig BTC-t fog kapni az <b>XMR.TO</b> szolgáltatásán keresztül.</i>
]]></string>
<string name="info_send_xmrto_success_order_label">XMR.TO megrendelés</string>
<string name="info_send_xmrto_success_btc">%1$s BTC</string>
<string name="info_send_xmrto_paid">Megerősítés folyamatban</string>
<string name="info_send_xmrto_unpaid">Kifizetés folyamatban</string>
<string name="info_send_xmrto_error">XMR.TO-hiba (%1$s)</string>
<string name="info_send_xmrto_sent">BTC elküldve!</string>
<string name="info_send_xmrto_query">Lekérdezés&#8230;</string>
<string name="info_send_xmrto_parms"><![CDATA[
<b>Elküldhetsz: %1$s &#8212; %2$s BTC</b>.<br/>
<i>Az <b>XMR.TO</b> <u>aktuális</u> árfolyama: <b>%3$s BTC</b></i>.
]]></string>
<string name="info_send_xmrto_zeroconf"><![CDATA[
<i>A legfeljebb <b>%1$s BTC</b> nagyságú összegek <u>azonnal</u> elküldésre kerülnek!</i>
]]></string>
<string name="send_available_btc">Egyenleg: %2$s BTC (%1$s XMR)</string>
<string name="info_paymentid_intergrated">Fizetési azonosító integrálva</string>
<string name="info_prepare_tx">Tranzakció előkészítése</string>
<string name="label_send_progress_xmrto_create">XMR.TO megrendelés létrehozása</string>
<string name="label_send_progress_xmrto_query">XMR.TO megrendelés lekérdezése</string>
<string name="label_send_progress_create_tx">Monero-tranzakció előkészítése</string>
<string name="label_send_progress_queryparms">XMR.TO paraméterek lekérdezése</string>
<string name="label_generic_xmrto_error">XMR.TO HIBA</string>
<string name="text_generic_xmrto_error">Kód: %1$d</string>
<string name="text_retry">Koppints az újrapróbálkozáshoz</string>
<string name="text_noretry_monero">Itt most elakadtunk!</string>
<string name="text_noretry">Ajjaj! Úgy néz ki, az XMR.TO most nem elérhető!</string>
<string name="text_send_btc_amount">%1$s BTC = %2$s XMR</string>
<string name="text_send_btc_rate">(Arány: %1$s BTC/XMR)</string>
<string name="label_send_settings_advanced">Haladó:</string>
<string name="label_send_btc_xmrto_info">Segítségért és nyomonkövetésért látogass el az XMR.TO weboldalra</string>
<string name="label_send_btc_xmrto_key_lb">Titkos kulcs\nXMR.TO</string>
<string name="label_send_btc_xmrto_key">XMR.TO titkos kulcs</string>
<string name="label_send_btc_address">Kedvezményezett BTC-címe</string>
<string name="label_send_btc_amount">Mennyiség</string>
<string name="label_send_txid">Tranzakcióazonosító</string>
<string name="label_send_address">Kedvezményezett címe</string>
<string name="label_send_payment_id">Fizetési azonosító</string>
<string name="label_send_notes">Közlemény</string>
<string name="backup_progress">Biztonsági mentés folyamatban</string>
<string name="archive_progress">Archiválás folyamatban</string>
<string name="rename_progress">Átnevezés folyamatban</string>
<string name="open_progress">Daemon-kapcsolat ellenőrzése</string>
<string name="changepw_progress">Jelszómódosítás folyamatban</string>
<string name="service_progress">Műveletek befejezése&#8230;\nEz eltarthat egy ideig!</string>
<string name="backup_failed">Sikertelen biztonsági mentés!</string>
<string name="archive_failed">Sikertelen archiválás!</string>
<string name="rename_failed">Sikertelen átnevezés!</string>
<string name="changepw_failed">Sikertelen jelszómódosítás!</string>
<string name="changepw_success">Jelszó megváltoztatva</string>
<string name="label_daemon">Csomópont</string>
<string name="prompt_daemon">([&lt;felhasználó&gt;:&lt;jelszó&gt;@]&lt;daemon&gt;[:&lt;port&gt;])</string>
<string name="status_wallet_loading">Tárca betöltése&#8230;</string>
<string name="status_wallet_unloaded">Tárca mentve</string>
<string name="status_wallet_unload_failed">Sikertelen mentés!</string>
<string name="status_wallet_connecting">Kapcsolódás&#8230;</string>
<string name="status_wallet_connect_failed">Sikertelen kapcsolódás.\nEllenőrizd a felhasználónevet és jelszót.</string>
<string name="status_wallet_connect_timeout">A kapcsolódás időtúllépés miatt megszakadt.\nPróbáld újra vagy próbálkozz egy másikkal.</string>
<string name="status_wallet_node_invalid">Érvénytelen csomópont!\nPróbálkozz egy másikkal.</string>
<string name="status_wallet_connect_ioex">Nem lehet elérni a csomópontot!\nPróbáld újra vagy próbálkozz egy másikkal.</string>
<string name="status_wallet_disconnected">Szétkapcsolva</string>
<string name="status_transaction_failed">Sikertelen tranzakció: %1$s</string>
<string name="send_xmrto_timeout">Túl sokat vártál, barátom!</string>
<string name="service_busy">Még az előző tárcáddal vagyok elfoglalva&#8230;</string>
<string name="prompt_rename">%1$s átnevezése</string>
<string name="prompt_changepw">A(z) %1$s tárca új jelszava</string>
<string name="prompt_changepwB">Ismételd meg a(z) %1$s tárca új jelszavát</string>
<string name="prompt_password">A(z) %1$s tárca jelszava</string>
<string name="prompt_fingerprint_auth">Ujjlenyomattal is megnyithatod a tárcát.\nKérlek, érintsd meg a szenzort.</string>
<string name="prompt_send_password">Jelszó megerősítése</string>
<string name="prompt_open_wallet">Tárca megnyitása&#8230;</string>
<string name="bad_fingerprint">Az ujjlenyomat nem felismerhető. Próbáld újra.</string>
<string name="bad_password">Helytelen jelszó!</string>
<string name="bad_saved_password">Az elmentett jelszó helytelen.\nKérlek, add meg a jelszót manuálisan.</string>
<string name="bad_wallet">A tárca nem létezik!</string>
<string name="prompt_daemon_missing">A daemon címét meg kell adni!</string>
<string name="prompt_wrong_net">A tárcához nem a megfelelő hálózat van kiválasztva</string>
<string name="label_watchonly">(csak megtekintés)</string>
<string name="label_wallet_receive">Fogadás</string>
<string name="label_wallet_send">Küldés</string>
<string name="xmr_unconfirmed_amount">+ %1$s XMR függőben</string>
<string name="service_description">monerujo szolgáltatás</string>
<string name="status_synced">Szinkronizálva:</string>
<string name="status_remaining">blokk van hátra</string>
<string name="status_syncing">Beolvasás:</string>
<string name="message_strorage_not_writable">A külső tárhely nem írható! Pánik!</string>
<string name="message_strorage_not_permitted">Nagyon szükségünk van a külső tárhely engedélyeire!</string>
<string name="message_camera_not_permitted">Ha nincs kamera, nincs QR-kód beolvasás sem!</string>
<string name="label_copy_viewkey">Figyelőkulcs</string>
<string name="label_copy_address">Nyilvános cím</string>
<string name="label_copy_xmrtokey">XMR.TO kulcs</string>
<string name="message_copy_viewkey">Figyelőkulcs vágólapra másolva!</string>
<string name="message_copy_xmrtokey">XMR.TO kulcs vágólapra másolva!</string>
<string name="message_copy_address">Tárcacím vágólapra másolva!</string>
<string name="message_copy_txid">Tranzakcióazonosító vágólapra másolva!</string>
<string name="message_nocopy">A másolás biztonsági okokból tiltásra került!</string>
<string name="message_exchange_failed">Nem sikerült az árfolyam lekérése!\nHasználj XMR/XMR-t vagy próbáld újra</string>
<string name="generate_title">Tárcalétrehozás</string>
<string name="generate_name_hint">Tárca neve</string>
<string name="generate_password_hint">Tárca jelszava</string>
<string name="generate_fingerprint_hint">Tárca ujjlenyomattal való megnyitásának engedélyezése</string>
<string name="generate_fingerprint_warn"><![CDATA[
<strong>Ujjlenyomat-azonosítás</strong>
<p>Az ujjlenyomat-azonosítás engedélyezésével jelszó megadása nélkül tekintheted meg a
tárcaegyenleget és fogadhatsz pénzösszegeket.</p>
<p>A további biztonság érdekében ugyanakkor a monerujo továbbra is jelszót fog kérni a
tárca részletes adatainak megtekintése és a pénzküldés esetén.</p>
<strong>Biztonsági figyelmeztetés</strong>
<p>A monerujo felhívja a figyelmed arra, hogy az ujjlenyomatoddal rendelkező személy(ek)
megtekinthetik a tárcaegyenleged.</p>
<p>Egy rosszhiszemű személy például megnyithatja a tárcádat míg te alszol.</p>
<strong>Biztosan engedélyezni szeretnéd ezt a funckiót?</strong>
]]></string>
<string name="generate_bad_passwordB">A jelszavak nem egyeznek</string>
<string name="generate_empty_passwordB">A jelszó nem lehet üres</string>
<string name="generate_buttonGenerate">Legyen kész a tárcám!</string>
<string name="generate_button_accept">Lejegyeztem a mnemonikus magot</string>
<string name="generate_wallet_name">Nevezz el!</string>
<string name="generate_wallet_exists">Már létezik ez a tárca!</string>
<string name="generate_wallet_dot">Nem kezdődhet ponttal.</string>
<string name="generate_wallet_creating">Tárca létrehozása</string>
<string name="generate_wallet_created">Tárca létrehozva</string>
<string name="generate_wallet_create_failed">Sikertelen tárcalétrehozás</string>
<string name="generate_restoreheight_error">Számot vagy dátumot (ÉÉÉÉ-HH-NN) adj meg</string>
<string name="generate_wallet_type_key">Kulcsok</string>
<string name="generate_wallet_type_new">Új</string>
<string name="generate_wallet_type_seed">Mag</string>
<string name="generate_wallet_type_view">Figyelőtárca</string>
<string name="generate_address_hint">Nyilvános cím</string>
<string name="generate_viewkey_hint">Figyelőkulcs</string>
<string name="generate_spendkey_hint">Költőkulcs</string>
<string name="generate_mnemonic_hint">25 szavas mnemonikus mag</string>
<string name="generate_restoreheight_hint">Visszaállítási lánchossz vagy dátum (ÉÉÉÉ-HH-NN)</string>
<string name="generate_address_label">Nyilvános cím</string>
<string name="generate_viewkey_label">Figyelőkulcs</string>
<string name="generate_spendkey_label">Költőkulcs</string>
<string name="generate_mnemonic_label">Mnemonikus mag</string>
<string name="generate_crazypass_label">Tárcafájl-visszaállító jelszó</string>
<string name="generate_check_key">Adj meg egy valós kulcsot</string>
<string name="generate_check_address">Adj meg egy valós címet</string>
<string name="generate_check_mnemonic">Add meg a 25 szavas magod</string>
<string name="send_amount_btc_xmr">%1$s (előrejelzés)</string>
<string name="send_address_hint">Kedvezményezett XMR vagy BTC címe</string>
<string name="send_paymentid_hint">Fizetési azonosító (opcionális)</string>
<string name="send_amount_hint">0.00</string>
<string name="send_notes_hint">Privát közlemény (opcionális)</string>
<string name="send_generate_paymentid_hint">Generálás</string>
<string name="send_qr_hint">Beolvasás</string>
<string name="send_send_label">Édes, drága Monero elköltése</string>
<string name="send_send_timed_label">Édes, drága Monero elköltése (%1$s)</string>
<string name="send_qr_invalid">Ez nem egy QR-kód</string>
<string name="send_address_invalid">Érvénytelen cím</string>
<string name="send_qr_address_invalid">Érvénytelen QR-kód</string>
<string name="send_title">Küldés</string>
<string name="send_available">Egyenleg: %1$s XMR</string>
<string name="send_address_title">Cím</string>
<string name="send_amount_title">Mennyiség</string>
<string name="send_settings_title">Beállítások</string>
<string name="send_confirm_title">Megerősítés</string>
<string name="send_success_title">Kész</string>
<string name="send_amount_label">Mennyiség</string>
<string name="send_fee_btc_label">Díj (XMR)</string>
<string name="send_fee_label">Díj</string>
<string name="send_total_btc_label">Összesen (XMR)</string>
<string name="send_total_label">Összesen</string>
<string name="send_amount">%1$s XMR</string>
<string name="send_fee">+%1$s díj</string>
<string name="send_create_tx_error_title">Tranzakciólétrehozási hiba</string>
<string name="tx_list_fee">- %1$s díj</string>
<string name="tx_list_amount_failed">(%1$s)</string>
<string name="tx_list_failed_text">sikertelen</string>
<string name="tx_list_amount_negative">- %1$s</string>
<string name="tx_list_amount_positive">+ %1$s</string>
<string name="tx_timestamp">Időbélyeg</string>
<string name="tx_id">Tranzakcióazonosító</string>
<string name="tx_key">Tranzkaciós kulcs</string>
<string name="tx_destination">Cél</string>
<string name="tx_destination_btc">Cél\n(BTC)</string>
<string name="tx_paymentId">Fizetési azonosító</string>
<string name="tx_blockheight">Blokk</string>
<string name="tx_amount">Mennyiség</string>
<string name="tx_amount_btc">Mennyiség\n(BTC)</string>
<string name="tx_fee">Díj</string>
<string name="tx_transfers">Transzferek</string>
<string name="tx_notes">Közlemény</string>
<string name="tx_notes_hint">(opcionális)</string>
<string name="tx_button_notes">Mentés</string>
<string name="tx_notes_set_failed">A közlemény mentése sikertelen</string>
<string name="tx_title">Tranzakciórészletek</string>
<string name="tx_pending">FÜGGŐBEN</string>
<string name="tx_failed">SIKERTELEN</string>
<string name="receive_paymentid_hint">Fizetési azonosító (opcionális)</string>
<string name="receive_amount_hint">Mennyiség</string>
<string name="receive_cannot_open">Nem sikerült megnyitni a tárcát!</string>
<string name="receive_paymentid_invalid">16 vagy 64 hexadecimális karakter (0&#8211;9,a&#8211;f)</string>
<string name="receive_integrated_paymentid_invalid">Integrált cím esetén üresnek kell lennie</string>
<string name="receive_amount_too_big">Max. %1$s</string>
<string name="receive_amount_negative">Min. 0</string>
<string name="receive_amount_nan">XMR nem egy szám</string>
<string name="receive_title">Fogadás</string>
<string name="details_alert_message">Bizalmas adatok kerülnek megjelenítésre.\nBizonyosodj meg róla, hogy más nem látja!</string>
<string name="details_alert_yes">Mehet</string>
<string name="details_alert_no">Inkább ne!</string>
<string name="details_title">Részletek</string>
<string name="archive_alert_message">A tárcáról biztonsági másolat készül, majd törlésre fog kerülni!</string>
<string name="archive_alert_yes">Igen, mehet!</string>
<string name="archive_alert_no">Inkább ne!</string>
<string-array name="priority">
<item>Alapértelmezett prioritás</item>
<item>Alacsony prioritás</item>
<item>Közepes prioritás</item>
<item>Magas prioritás</item>
</string-array>
<string name="fab_create_new">Új tárca létrehozása</string>
<string name="fab_restore_viewonly">Figyelőtárca visszaállítása</string>
<string name="fab_restore_key">Visszaállítás privát kulcsokkal</string>
<string name="fab_restore_seed">Visszaállítás mnemonikus maggal</string>
<string name="accounts_drawer_new">Számla létrehozása</string>
<string name="accounts_drawer_title">Számlák</string>
<string name="accounts_new">Új számla hozzáadva (#%1$d)</string>
<string name="tx_account">Számla #</string>
<string name="send_sweepall">Teljes megerősített egyenleg küldése!</string>
<string name="tx_subaddress">Alcím #%1$d</string>
<string name="generate_address_label_sub">Nyilvános alcím #%1$d</string>
<string name="menu_language">Nyelv</string>
<string name="language_system_default">Rendszernyelv használata</string>
</resources>

@ -321,4 +321,7 @@
<string name="send_sweepall">Manda tutti i fondi confermati in questo account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Subaddress pubblico #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -319,4 +319,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -324,4 +324,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -317,4 +317,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -320,4 +320,7 @@
<string name="send_sweepall">Отправить все средства на этот счет!</string>
<string name="tx_subaddress">Субадрес #%1$d</string>
<string name="generate_address_label_sub">Публичный субадрес #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -302,4 +302,7 @@
<string name="send_sweepall">Send all confirmed funds in this account!</string>
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -317,4 +317,7 @@
<string name="send_sweepall">发送这个户口的所有已确认款项!</string>
<string name="tx_subaddress">附属地址 #%1$d</string>
<string name="generate_address_label_sub">附属公开地址 #%1$d</string>
<string name="menu_language">语言</string>
<string name="language_system_default">使用系统语言</string>
</resources>

@ -311,12 +311,15 @@
<string name="fab_restore_key">從私鑰回復錢包</string>
<string name="fab_restore_seed">從25字種子碼回復錢包</string>
<string name="accounts_drawer_new">開新戶口</string>
<string name="accounts_drawer_title">戶口</string>
<string name="accounts_new">已新增戶口 #%1$d</string>
<string name="tx_account">戶口 #</string>
<string name="send_sweepall">發送這個戶口的所有已確認款項!</string>
<string name="tx_subaddress">附屬地址 #%1$d</string>
<string name="generate_address_label_sub">附屬公開地址 #%1$d</string>
<string name="accounts_drawer_new">新增帳戶</string>
<string name="accounts_drawer_title">帳戶</string>
<string name="accounts_new">已新增帳戶 #%1$d</string>
<string name="tx_account">帳戶 #</string>
<string name="send_sweepall">發送這個帳戶的所有已確認款項!</string>
<string name="tx_subaddress">子地址 #%1$d</string>
<string name="generate_address_label_sub">公開子地址 #%1$d</string>
<string name="menu_language">語言</string>
<string name="language_system_default">使用系統語言</string>
</resources>

@ -374,4 +374,6 @@
<string name="tx_subaddress">Subaddress #%1$d</string>
<string name="generate_address_label_sub">Public Subaddress #%1$d</string>
<string name="defautl_restore_height">1</string>
<string name="menu_language">Language</string>
<string name="language_system_default">Use System Language</string>
</resources>

@ -30,18 +30,18 @@ public class RestoreHeightTest {
@Test
public void pre2014() {
assertTrue(getHeight("2013-12-01") == 1);
assertTrue(getHeight("1958-12-01") == 1);
assertTrue(getHeight("2013-12-01") == 0);
assertTrue(getHeight("1958-12-01") == 0);
}
@Test
public void zero() {
assertTrue(getHeight("2014-04-27") == 1);
assertTrue(getHeight("2014-04-27") == 0);
}
@Test
public void notZero() {
assertTrue(getHeight("2014-05-07") > 1);
assertTrue(getHeight("2014-05-07") > 0);
}
@Test(expected = IllegalArgumentException.class)
@ -83,7 +83,7 @@ public class RestoreHeightTest {
@Test
public void test2014() {
assertTrue(isInRange(getHeight("2014-04-26"), 1, 8501));
assertTrue(isInRange(getHeight("2014-04-26"), 0, 8501));
assertTrue(isInRange(getHeight("2014-05-09"), 20289, 28311));
assertTrue(isInRange(getHeight("2014-05-17"), 32608, 40075));
assertTrue(isInRange(getHeight("2014-05-30"), 52139, 59548));
@ -116,9 +116,9 @@ public class RestoreHeightTest {
@Test
public void postFuture() {
long b_20180208 = 1504715;
long b_20180808 = b_20180208 + 720 * (28 + 31 + 30 + 31 + 30 + 31);
assertTrue(isInRange(getHeight("2018-08-08"), b_20180808 - 720 * 5, b_20180808));
long b_20180701 = 1606715L;
long b_20190108 = b_20180701 + 720 * (31 + 31 + 30 + 31 + 30 + 31 + 7);
assertTrue(isInRange(getHeight("2019-01-08"), b_20190108 - 720 * 5, b_20190108));
}