mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-19 09:54:30 +01:00
async i18n and json translation format (#369)
* start working on loading locales async and as json * finish off langs and UI * fix path * fix tests
This commit is contained in:
parent
aa1ac3da50
commit
f23e2a3ec4
@ -270,7 +270,7 @@ namespace BTCPayServer.Controllers
|
||||
ServerUrl = HttpContext.Request.GetAbsoluteRoot(),
|
||||
OrderId = invoice.OrderId,
|
||||
InvoiceId = invoice.Id,
|
||||
DefaultLang = storeBlob.DefaultLang ?? "en-US",
|
||||
DefaultLang = storeBlob.DefaultLang ?? "en",
|
||||
HtmlTitle = storeBlob.HtmlTitle ?? "BTCPay Invoice",
|
||||
CustomCSSLink = storeBlob.CustomCSS?.AbsoluteUri,
|
||||
CustomLogoLink = storeBlob.CustomLogo?.AbsoluteUri,
|
||||
|
@ -58,7 +58,7 @@ namespace BTCPayServer.Models.StoreViewModels
|
||||
|
||||
public void SetLanguages(LanguageService langService, string defaultLang)
|
||||
{
|
||||
defaultLang = defaultLang ?? "en-US";
|
||||
defaultLang = defaultLang ?? "en";
|
||||
var choices = langService.GetLanguages().Select(o => new Format() { Name = o.DisplayName, Value = o.Code }).ToArray();
|
||||
var chosen = choices.FirstOrDefault(f => f.Value == defaultLang) ?? choices.FirstOrDefault();
|
||||
Languages = new SelectList(choices, nameof(chosen.Value), nameof(chosen.Name), chosen);
|
||||
|
@ -1,7 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Hosting.Internal;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
|
||||
namespace BTCPayServer.Services
|
||||
{
|
||||
@ -12,34 +16,53 @@ namespace BTCPayServer.Services
|
||||
DisplayName = displayName;
|
||||
Code = code;
|
||||
}
|
||||
|
||||
[JsonProperty("code")]
|
||||
public string Code { get; set; }
|
||||
[JsonProperty("currentLanguage")]
|
||||
public string DisplayName { get; set; }
|
||||
}
|
||||
|
||||
public class LanguageService
|
||||
{
|
||||
private readonly Language[] _languages;
|
||||
|
||||
public LanguageService(IHostingEnvironment environment)
|
||||
{
|
||||
var path = (environment as HostingEnvironment)?.WebRootPath;
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
//test environment
|
||||
path = Path.Combine(TryGetSolutionDirectoryInfo().FullName,"BTCPayServer", "wwwroot");
|
||||
}
|
||||
path = Path.Combine(path, "locales");
|
||||
var files = Directory.GetFiles(path, "*.json");
|
||||
var result = new List<Language>();
|
||||
foreach (var file in files)
|
||||
{
|
||||
using (var stream = new StreamReader(file))
|
||||
{
|
||||
var json = stream.ReadToEnd();
|
||||
result.Add(JObject.Parse(json).ToObject<Language>());
|
||||
}
|
||||
}
|
||||
|
||||
_languages = result.ToArray();
|
||||
}
|
||||
|
||||
private static DirectoryInfo TryGetSolutionDirectoryInfo(string currentPath = null)
|
||||
{
|
||||
var directory = new DirectoryInfo(
|
||||
currentPath ?? Directory.GetCurrentDirectory());
|
||||
while (directory != null && !directory.GetFiles("*.sln").Any())
|
||||
{
|
||||
directory = directory.Parent;
|
||||
}
|
||||
return directory;
|
||||
}
|
||||
public Language[] GetLanguages()
|
||||
{
|
||||
return new[]
|
||||
{
|
||||
new Language("en-US", "English"),
|
||||
new Language("de-DE", "Deutsch"),
|
||||
new Language("ja-JP", "日本語"),
|
||||
new Language("fr-FR", "Français"),
|
||||
new Language("es-ES", "Spanish"),
|
||||
new Language("pt-PT", "Portuguese"),
|
||||
new Language("pt-BR", "Portuguese (Brazil)"),
|
||||
new Language("nl-NL", "Dutch"),
|
||||
new Language("np-NP", "नेपाली"),
|
||||
new Language("cs-CZ", "Česky"),
|
||||
new Language("is-IS", "Íslenska"),
|
||||
new Language("hr-HR", "Croatian"),
|
||||
new Language("it-IT", "Italiano"),
|
||||
new Language("kk-KZ", "Қазақша"),
|
||||
new Language("ru-RU", "русский"),
|
||||
new Language("uk-UA", "Українська"),
|
||||
new Language("vi-VN", "Tiếng Việt"),
|
||||
new Language("zh-SP", "中文(简体)"),
|
||||
};
|
||||
return _languages;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -288,7 +288,7 @@
|
||||
:disabled="isLoading"
|
||||
v-on:change="onCurrencyChange($event)"
|
||||
ref="changellyCurrenciesDropdown">
|
||||
<option value="">Select a currency to convert from</option>
|
||||
<option value="">{{$t("ConversionTab_CurrencyList_Select_Option")}}</option>
|
||||
<option v-for="currency of currencies"
|
||||
:data-prefix="'<img src=\''+currency.image+'\'/>'"
|
||||
:value="currency.name">
|
||||
|
@ -79,20 +79,14 @@
|
||||
@* Not working because of nsSeparator: false, keySeparator: false,
|
||||
{{$t("nested.lang")}} >>
|
||||
*@
|
||||
<select class="cmblang reverse invisible" onchange="changeLanguage($(this).val())">
|
||||
@foreach (var lang in langService.GetLanguages())
|
||||
{
|
||||
<option value="@lang.Code">@lang.DisplayName</option>
|
||||
}
|
||||
</select>
|
||||
<script>
|
||||
|
||||
<select asp-for="DefaultLang"
|
||||
class="cmblang reverse invisible"
|
||||
onchange="changeLanguage($(this).val())"
|
||||
asp-items="@langService.GetLanguages().Select((language) => new SelectListItem(language.DisplayName,language.Code, language.Code == Model.DefaultLang))"></select>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
var storeDefaultLang = '@Model.DefaultLang';
|
||||
if (urlParams.lang) {
|
||||
$(".cmblang").val(urlParams.lang);
|
||||
} else if (storeDefaultLang) {
|
||||
$(".cmblang").val(storeDefaultLang);
|
||||
}
|
||||
|
||||
// REVIEW: don't use initDropdown method but rather directly initialize select whenever you are using it
|
||||
initDropdown(".cmblang");
|
||||
@ -118,32 +112,17 @@
|
||||
<script type="text/javascript">
|
||||
var storeDefaultLang = '@Model.DefaultLang';
|
||||
// initialization
|
||||
i18next.init({
|
||||
lng: storeDefaultLang,
|
||||
fallbackLng: 'en-US',
|
||||
nsSeparator: false,
|
||||
keySeparator: false,
|
||||
resources: {
|
||||
'en-US': { translation: locales_en },
|
||||
'de-DE': { translation: locales_de },
|
||||
'es-ES': { translation: locales_es },
|
||||
'ja-JP': { translation: locales_ja },
|
||||
'fr-FR': { translation: locales_fr },
|
||||
'pt': { translation: locales_pt },
|
||||
'pt-BR': { translation: locales_pt_br },
|
||||
'nl': { translation: locales_nl },
|
||||
'np': { translation: locales_np },
|
||||
'cs-CZ': { translation: locales_cs },
|
||||
'is-IS': { translation: locales_is },
|
||||
'it-IT': { translation: locales_it },
|
||||
'hr-HR': { translation: locales_hr },
|
||||
'kk-KZ': { translation: locales_kk },
|
||||
'ru-RU': { translation: locales_ru },
|
||||
'uk-UA': { translation: locales_uk },
|
||||
'vi-VN': { translation: locales_vi },
|
||||
'zh-SP': { translation: locales_zh_sp }
|
||||
},
|
||||
});
|
||||
i18next
|
||||
.use(window.i18nextXHRBackend)
|
||||
.init({
|
||||
backend: {
|
||||
loadPath: '/locales/{{lng}}.json',
|
||||
},
|
||||
lng: storeDefaultLang,
|
||||
fallbackLng: 'en',
|
||||
nsSeparator: false,
|
||||
keySeparator: false
|
||||
});
|
||||
|
||||
function changeLanguage(lang) {
|
||||
i18next.changeLanguage(lang);
|
||||
@ -151,9 +130,10 @@
|
||||
|
||||
if (urlParams.lang) {
|
||||
changeLanguage(urlParams.lang);
|
||||
} else if (storeDefaultLang) {
|
||||
changeLanguage(storeDefaultLang);
|
||||
}
|
||||
}
|
||||
// else if (storeDefaultLang) {
|
||||
// changeLanguage(storeDefaultLang);
|
||||
// }
|
||||
|
||||
const i18n = new VueI18next(i18next);
|
||||
|
||||
|
@ -46,6 +46,7 @@
|
||||
"wwwroot/vendor/vuejs/vue.min.js",
|
||||
"wwwroot/vendor/vuejs/vue-qrcode.js",
|
||||
"wwwroot/vendor/i18next/i18next.js",
|
||||
"wwwroot/vendor/i18next/i18nextXHRBackend.js",
|
||||
"wwwroot/vendor/i18next/vue-i18next.js",
|
||||
"wwwroot/vendor/jquery-prettydropdowns/jquery.prettydropdowns.js",
|
||||
"wwwroot/vendor/vex/js/vex.combined.min.js",
|
||||
|
@ -1,7 +1,7 @@
|
||||
const locales_cs = {
|
||||
nested: {
|
||||
lang: 'Jazyk'
|
||||
},
|
||||
{
|
||||
"code": "cs-CZ",
|
||||
"currentLanguage": "Česky",
|
||||
"lang": "Jazyk",
|
||||
"Awaiting Payment...": "Očekávám platbu...",
|
||||
"Pay with": "Zaplatit pomocí",
|
||||
"Contact and Refund Email": "Kontaktní email",
|
||||
@ -13,42 +13,32 @@ const locales_cs = {
|
||||
"Network Cost": "Síťové náklady",
|
||||
"Already Paid": "Již zaplaceno",
|
||||
"Due": "Zbývá",
|
||||
// Tabs
|
||||
"Scan": "Skenovat",
|
||||
"Copy": "Kopírovat",
|
||||
"Conversion": "Konverze",
|
||||
// Scan tab
|
||||
"Open in wallet": "Otevřít v peněžence",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "K dokončení platby, prosíme pošlete {{btcDue}} {{cryptoCode}} na adresu níže.",
|
||||
"Amount": "Částka",
|
||||
"Address": "Adresa",
|
||||
"Copied": "Zkopírováno",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Můžete zaplatit {{btcDue}} {{cryptoCode}} i pomocí altcoinů které přímo nepodporuje obchodník.",
|
||||
"ConversionTab_BodyDesc": "Tato služba je poskytována třetí stranou. Prosíme mějte na paměti, že nemáme žádnou kontrolu nad tím, jak poskytovatelé budou nakládat s vašimi prostředky. Faktura bude označena jako zaplacena, pouze když jsou prostředky obdrženy v {{cryptoCode}} Blockchainu.",
|
||||
"Shapeshift_Button_Text": "Zaplatit pomocí Altcoinů",
|
||||
"ConversionTab_Lightning": "Pro platby Lightning Network nejsou dostupní žádní poskytovatelé konverzí.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Faktura brzy vyprší...",
|
||||
"Invoice expired": "Faktura vypršela",
|
||||
"What happened?": "Co se stalo?",
|
||||
"InvoiceExpired_Body_1": "Tato faktura již vypršela. Faktura je platná pouze {{maxTimeMinutes}} minut. \
|
||||
Můžete se vrátit do {{storeName}}, pokud chcete svojí objednávku založit znovu.",
|
||||
"InvoiceExpired_Body_1": "Tato faktura již vypršela. Faktura je platná pouze {{maxTimeMinutes}} minut. \nMůžete se vrátit do {{storeName}}, pokud chcete svojí objednávku založit znovu.",
|
||||
"InvoiceExpired_Body_2": "Pokud jste se pokoušeli poslat platbu, nebyla zatím zaznamenána v Bitcoinové síti. Zatím jsme neobdrželi vaše prostředky.",
|
||||
"InvoiceExpired_Body_3": "Pokud nebude transakce přijata Bitcoinovou sítí, vaše prostředky bude opět použitelné ve vaší peněžence. V závislosti na vaší peněžence toto může trvat 48-72 hodin.",
|
||||
"Invoice ID": "ID Faktury",
|
||||
"Order ID": "ID Objednávky",
|
||||
"Return to StoreName": "Vrátit se na {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Faktura byla zaplacena",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Tato faktura byla archivována",
|
||||
"Archived_Body": "Prosíme kontaktujte prodejce pro informace o objednávce a případnou pomoc",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 Faktura",
|
||||
"Node Info": "Info o uzlu",
|
||||
//
|
||||
"txCount": "{{count}} transakce",
|
||||
"txCount_plural": "{{count}} transakcí"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_de = {
|
||||
nested: {
|
||||
lang: 'Sprache'
|
||||
},
|
||||
{
|
||||
"code": "de-DE",
|
||||
"currentLanguage": "Deutsch",
|
||||
"lang": "Sprache",
|
||||
"Awaiting Payment...": "Warten auf Zahlung...",
|
||||
"Pay with": "Bezahlen mit",
|
||||
"Contact and Refund Email": "Kontakt und Rückerstattungs Email",
|
||||
@ -13,42 +13,32 @@ const locales_de = {
|
||||
"Network Cost": "Netzwerkkosten",
|
||||
"Already Paid": "Bereits bezahlt",
|
||||
"Due": "Fällig",
|
||||
// Tabs
|
||||
"Scan": "Scan",
|
||||
"Copy": "Kopieren",
|
||||
"Conversion": "Umrechnung",
|
||||
// Scan tab
|
||||
"Open in wallet": "In der Wallet öffnen",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Um Ihre Zahlung abzuschließen, senden Sie bitte {{btcDue}} {{cryptoCode}} an die unten angegebene Adresse.",
|
||||
"Amount": "Menge",
|
||||
"Address": "Adresse",
|
||||
"Copied": "Kopiert",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Sie können {{btcDue}} {{cryptoCode}} mit Altcoins bezahlen, die nicht direkt vom Händler unterstützt werden.",
|
||||
"ConversionTab_BodyDesc": "Dieser Service wird von Drittanbietern bereitgestellt. Bitte beachten Sie, dass wir keine Kontrolle darüber haben, wie die Anbieter Ihre Gelder weiterleiten. Die Rechnung wird erst als bezahlt markiert, wenn das Geld in {{cryptoCode}} Blockchain eingegangen ist.",
|
||||
"Shapeshift_Button_Text": "Bezahlen mit Altcoins",
|
||||
"ConversionTab_Lightning": "Für Lightning Network-Zahlungen sind keine Umrechnungsanbieter verfügbar.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Die Rechnung läuft bald ab...",
|
||||
"Invoice expired": "Die Rechnung ist abgelaufen",
|
||||
"What happened?": "Was ist passiert?",
|
||||
"InvoiceExpired_Body_1": "Diese Rechnung ist abgelaufen. Eine Rechnung ist nur für {{maxTimeMinutes}} Minuten gültig. \
|
||||
Sie können zu {{storeName}} zurückkehren, wenn Sie Ihre Zahlung erneut senden möchten.",
|
||||
"InvoiceExpired_Body_1": "Diese Rechnung ist abgelaufen. Eine Rechnung ist nur für {{maxTimeMinutes}} Minuten gültig. \nSie können zu {{storeName}} zurückkehren, wenn Sie Ihre Zahlung erneut senden möchten.",
|
||||
"InvoiceExpired_Body_2": "Wenn Sie versucht haben, eine Zahlung zu senden, wurde sie vom Netzwerk noch nicht akzeptiert. Wir haben Ihre Gelder noch nicht erhalten.",
|
||||
"InvoiceExpired_Body_3": "Wenn die Transaktion vom Netzwerk nicht akzeptiert wird, ist das Geld wieder in Ihrer Wallet verfügbar. Abhängig von Ihrer Wallet, kann dies 48-72 Stunden dauern.",
|
||||
"Invoice ID": "Rechnungs ID",
|
||||
"Order ID": "Auftrag ID",
|
||||
"Return to StoreName": "Zurück zu {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Diese Rechnung wurde bezahlt",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Diese Rechnung wurde archiviert",
|
||||
"Archived_Body": "Bitte kontaktieren Sie den Shop für Bestellinformationen oder Hilfe",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 Rechnung",
|
||||
"Node Info": "Netzwerkknoten Info",
|
||||
//
|
||||
"txCount": "{{count}} transaktion",
|
||||
"txCount_plural": "{{count}} transaktionen"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_en = {
|
||||
nested: {
|
||||
lang: 'Language'
|
||||
},
|
||||
{
|
||||
"code": "en",
|
||||
"currentLanguage": "English",
|
||||
"lang": "Language",
|
||||
"Awaiting Payment...": "Awaiting Payment...",
|
||||
"Pay with": "Pay with",
|
||||
"Contact and Refund Email": "Contact & Refund Email",
|
||||
@ -13,43 +13,34 @@ const locales_en = {
|
||||
"Network Cost": "Network Cost",
|
||||
"Already Paid": "Already Paid",
|
||||
"Due": "Due",
|
||||
// Tabs
|
||||
"Scan": "Scan",
|
||||
"Copy": "Copy",
|
||||
"Conversion": "Conversion",
|
||||
// Scan tab
|
||||
"Open in wallet": "Open in wallet",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "To complete your payment, please send {{btcDue}} {{cryptoCode}} to the address below.",
|
||||
"Amount": "Amount",
|
||||
"Address": "Address",
|
||||
"Copied": "Copied",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "You can pay {{btcDue}} {{cryptoCode}} using altcoins other than the ones merchant directly supports.",
|
||||
"ConversionTab_BodyDesc": "This service is provided by 3rd party. Please keep in mind that we have no control over how providers will forward your funds. Invoice will only be marked paid once funds are received on {{cryptoCode}} Blockchain.",
|
||||
"ConversionTab_CalculateAmount_Error": "Retry",
|
||||
"ConversionTab_LoadCurrencies_Error": "Retry",
|
||||
"ConversionTab_Lightning": "No conversion providers available for Lightning Network payments.",
|
||||
// Invoice expired
|
||||
"ConversionTab_CurrencyList_Select_Option": "Please select a currency to convert from",
|
||||
"Invoice expiring soon...": "Invoice expiring soon...",
|
||||
"Invoice expired": "Invoice expired",
|
||||
"What happened?": "What happened?",
|
||||
"InvoiceExpired_Body_1": "This invoice has expired. An invoice is only valid for {{maxTimeMinutes}} minutes. \
|
||||
You can return to {{storeName}} if you would like to submit your payment again.",
|
||||
"InvoiceExpired_Body_1": "This invoice has expired. An invoice is only valid for {{maxTimeMinutes}} minutes. \\nYou can return to {{storeName}} if you would like to submit your payment again.",
|
||||
"InvoiceExpired_Body_2": "If you tried to send a payment, it has not yet been accepted by the network. We have not yet received your funds.",
|
||||
"InvoiceExpired_Body_3": "If the transaction is not accepted by the network, the funds will be spendable again in your wallet. Depending on your wallet, this may take 48-72 hours.",
|
||||
"Invoice ID": "Invoice ID",
|
||||
"Order ID": "Order ID",
|
||||
"Return to StoreName": "Return to {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "This invoice has been paid",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "This invoice has been archived",
|
||||
"Archived_Body": "Please contact the store for order information or assistance",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 Invoice",
|
||||
"Node Info": "Node Info",
|
||||
//
|
||||
"txCount": "{{count}} transaction",
|
||||
"txCount_plural": "{{count}} transactions"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_es = {
|
||||
nested: {
|
||||
lang: 'Lenguaje'
|
||||
},
|
||||
{
|
||||
"code": "es-ES",
|
||||
"currentLanguage": "Spanish",
|
||||
"lang": "Lenguaje",
|
||||
"Awaiting Payment...": "En espera de pago...",
|
||||
"Pay with": "Pagar con",
|
||||
"Contact and Refund Email": "Contacto y correo electrónico de reembolso",
|
||||
@ -13,23 +13,18 @@ const locales_es = {
|
||||
"Network Cost": "Costo de la red",
|
||||
"Already Paid": "Ya has pagado",
|
||||
"Due": "Aún debes",
|
||||
// Tabs
|
||||
"Scan": "Escanear",
|
||||
"Copy": "Copiar",
|
||||
"Conversion": "Conversión",
|
||||
// Scan tab
|
||||
"Open in wallet": "Abrir en la billetera",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Para completar tu pago, envía {{btcDue}} {{cryptoCode}} a la siguiente dirección:",
|
||||
"Amount": "Cantidad",
|
||||
"Address": "Dirección",
|
||||
"Copied": "Copiado",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Puedes pagar {{btcDue}} {{cryptoCode}} usando Altcoins que este comercio no soporta directamente.",
|
||||
"ConversionTab_BodyDesc": "Este servicio es provisto por terceros. Ten en cuenta que no tenemos control sobre cómo estos terceros envían los fondos. La factura solo se marcará como pagada una vez se reciban los fondos en la cadena de bloques de {{cryptoCode}} .",
|
||||
"Shapeshift_Button_Text": "Pagar con Altcoins",
|
||||
"ConversionTab_Lightning": "No hay proveedores de conversión disponibles para los pagos de Lightning Network.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "La factura expira pronto...",
|
||||
"Invoice expired": "La factura expiró",
|
||||
"What happened?": "¿Qué sucedió?",
|
||||
@ -39,15 +34,11 @@ const locales_es = {
|
||||
"Invoice ID": "ID de la factura",
|
||||
"Order ID": "ID del pedido",
|
||||
"Return to StoreName": "Regresar a {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Esta factura ha sido pagada",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Esta factura ha sido archivada",
|
||||
"Archived_Body": "Por favor, comunícate con la tienda para obtener información de tu pedido o asistencia",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Factura BOLT 11",
|
||||
"Node Info": "Información del nodo",
|
||||
//
|
||||
"txCount": "{{count}} transacción",
|
||||
"txCount_plural": "{{count}} transacciones"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_fr = {
|
||||
nested: {
|
||||
lang: 'Langue'
|
||||
},
|
||||
{
|
||||
"code": "fr-FR",
|
||||
"currentLanguage": "Français",
|
||||
"lang": "Langue",
|
||||
"Awaiting Payment...": "En attente du paiement...",
|
||||
"Pay with": "Payer avec",
|
||||
"Contact and Refund Email": "Adresse de contact et de remboursement",
|
||||
@ -13,42 +13,32 @@ const locales_fr = {
|
||||
"Network Cost": "Coût réseau",
|
||||
"Already Paid": "Déjà payé",
|
||||
"Due": "Reste à payer",
|
||||
// Tabs
|
||||
"Scan": "Scanner",
|
||||
"Copy": "Copier",
|
||||
"Conversion": "Convertir",
|
||||
// Scan tab
|
||||
"Open in wallet": "Ouvrir le portefeuille",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Pour terminer le paiement, merci d'envoyer {{btcDue}} {{cryptoCode}} à l'adresse ci-dessous.",
|
||||
"Amount": "Montant",
|
||||
"Address": "Adresse",
|
||||
"Copied": "Copié",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Vous pouvez payer {{btcDue}} {{cryptoCode}} en utilisant d'autres crypto-monnaies alternatives non supportées directement par le marchand.",
|
||||
"ConversionTab_BodyDesc": "Ce service est fourni par un tiers. Nous n'avons aucun contrôle sur la façon dont seront traités vos fonds. La facture sera considérée payée seulement quand les fonds seront reçus sur la blockchain {{ cryptoCode }}.",
|
||||
"Shapeshift_Button_Text": "Payer en altcoins",
|
||||
"ConversionTab_Lightning": "Le service de conversion n'est pas disponible pour les paiements sur le Lightning Network.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "La facture va bientôt expirer...",
|
||||
"Invoice expired": "Facture expirée",
|
||||
"What happened?": "Que s'est-il passé ?",
|
||||
"InvoiceExpired_Body_1": "La facture a expiré. Une facture est valide seulement {{maxTimeMinutes}} minutes. \
|
||||
Si vous voulez soumettre à nouveau votre paiement, vous pouvez revenir sur {{storeName}} .",
|
||||
"InvoiceExpired_Body_1": "La facture a expiré. Une facture est valide seulement {{maxTimeMinutes}} minutes. \nSi vous voulez soumettre à nouveau votre paiement, vous pouvez revenir sur {{storeName}} .",
|
||||
"InvoiceExpired_Body_2": "Si vous avez envoyé un paiement, ce dernier n'a pas encore été inscrit dans la blockchain. Nous n'avons pas reçu vos fonds.",
|
||||
"InvoiceExpired_Body_3": "Si votre transaction n'est pas inscrite dans la blockchain, vos fonds reviendront dans votre portefeuille. Selon votre portefeuille, cela peut prendre entre 48 et 72 heures.",
|
||||
"Invoice ID": "Numéro de facture",
|
||||
"Order ID": "Numéro de commande",
|
||||
"Return to StoreName": "Retourner sur {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Cette facture a été payée",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Cette facture a été archivée",
|
||||
"Archived_Body": "Merci de contacter le marchand pour obtenir de l'aide ou des informations sur cette commande.",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Facture BOLT 11",
|
||||
"Node Info": "Informations sur le nœud",
|
||||
//
|
||||
"txCount": "{{count}} transaction",
|
||||
"txCount_plural": "{{count}} transactions"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_hr = {
|
||||
nested: {
|
||||
lang: 'Croatian'
|
||||
},
|
||||
{
|
||||
"code": "hr-HR",
|
||||
"currentLanguage": "Croatian",
|
||||
"lang": "Croatian",
|
||||
"Awaiting Payment...": "Čekamo uplatu...",
|
||||
"Pay with": "Plati sa",
|
||||
"Contact and Refund Email": "E-mail za kontakt i povrat sredstava",
|
||||
@ -13,36 +13,28 @@ const locales_hr = {
|
||||
"Network Cost": "Trošak mreže",
|
||||
"Already Paid": "Već plaćeno",
|
||||
"Due": "Rok",
|
||||
// Tabs
|
||||
"Scan": "Skeniraj",
|
||||
"Copy": "Kopiraj",
|
||||
"Conversion": "Pretvori",
|
||||
// Scan tab
|
||||
"Open in wallet": "Otvori u novčaniku",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Kako bi završili uplatu pošaljite {{btcDue}} {{cryptoCode}} na navedenu adresu",
|
||||
"Amount": "Iznos",
|
||||
"Address": "Adresa",
|
||||
"Copied": "Kopirano",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Možete platiti {{btcDue}} {{cryptoCode}} pomoću altcoina koje prodavač ne podržava.",
|
||||
"ConversionTab_BodyDesc": "Ovu usluga pruža treća strana. Vodite računa da nemamo kontroli nad načinom kako će Vam davatelji usluge proslijediti sredstva. Vodite računa da je račun plaćen tek kada su primljena sredstva na {{cryptoCode}} Blockchainu.",
|
||||
"Shapeshift_Button_Text": "Plati s Alt-coinovima",
|
||||
"ConversionTab_Lightning": "Ne postoji treća strana koja bi konvertirala Lightning Network uplate.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Račun uskoro ističe...",
|
||||
"Invoice expired": "Račun je istekao",
|
||||
"What happened?": "Što se dogodilo",
|
||||
"InvoiceExpired_Body_1": "Račun je istekao i nije više valjan. Račun vrijedi samo {{maxTimeMinutes}} minuta. \
|
||||
Možete se vratiti na {{storeName}}, gdje možete ponovo inicirati plaćanje.",
|
||||
"InvoiceExpired_Body_1": "Račun je istekao i nije više valjan. Račun vrijedi samo {{maxTimeMinutes}} minuta. \nMožete se vratiti na {{storeName}}, gdje možete ponovo inicirati plaćanje.",
|
||||
"InvoiceExpired_Body_2": "Ako ste pokušali poslati uplatu, ista nije registrirana na Blockchainu. Nismo još zaprimili Vašu uplatu.",
|
||||
"InvoiceExpired_Body_3": "Ako poslana sredstva na budu potvrđena na Blockchainu, sredstva će biti ponovo dostupna u Vašem novčaniku.",
|
||||
"Invoice ID": "Broj računa",
|
||||
"Order ID": "Broj narudžbe",
|
||||
"Return to StoreName": "Vrati se na {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Račun je plaćen",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Račun je arhiviran.",
|
||||
"Archived_Body": "Kontaktirajte dućan za detalje oko narudžbe ili pomoć."
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_is = {
|
||||
nested: {
|
||||
lang: 'Tungumál'
|
||||
},
|
||||
{
|
||||
"code": "is-IS",
|
||||
"currentLanguage": "Íslenska",
|
||||
"lang": "Tungumál",
|
||||
"Awaiting Payment...": "Bíð eftir greiðslu...",
|
||||
"Pay with": "Borga með",
|
||||
"Contact and Refund Email": "Netfang",
|
||||
@ -13,42 +13,32 @@ const locales_is = {
|
||||
"Network Cost": "Auka gjöld",
|
||||
"Already Paid": "Nú þegar greitt",
|
||||
"Due": "Gjalddagi",
|
||||
// Tabs
|
||||
"Scan": "Skanna",
|
||||
"Copy": "Afrita",
|
||||
"Conversion": "Umbreyting",
|
||||
// Scan tab
|
||||
"Open in wallet": "Opna með veski",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Til að klára greiðsluna skaltu senda {{btcDue}} {{cryptoCode}} á lykilinn fyrir neðan.",
|
||||
"Amount": "Magn",
|
||||
"Address": "Lykill",
|
||||
"Copied": "Afritað",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Þú getur borgað {{btcDue}} {{cryptoCode}} með altcoins.",
|
||||
"ConversionTab_BodyDesc": "Þessi þjónusta er veitt af þriðja aðila. Mundu að við höfum ekki stjórn á því hvað þeir gera við peningana. Reikningurinn verður aðeins móttekinn þegar {{cryptoCode}} greiðslan hefur verið staðfest á netinu.",
|
||||
"Shapeshift_Button_Text": "Borga með Altcoins",
|
||||
"ConversionTab_Lightning": "Engir viðskiptaveitendur eru í boði fyrir Lightning Network greiðslur.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Reikningurinn rennur út fljótlega...",
|
||||
"Invoice expired": "Reikningurinn er útrunnin",
|
||||
"What happened?": "Hvað gerðist?",
|
||||
"InvoiceExpired_Body_1": "Þessi reikningur er útrunnin. Reikningurinn er aðeins gildur í {{maxTimeMinutes}} mínútur. \
|
||||
Þú getur farið aftur á {{storeName}} ef þú vilt reyna aftur.",
|
||||
"InvoiceExpired_Body_1": "Þessi reikningur er útrunnin. Reikningurinn er aðeins gildur í {{maxTimeMinutes}} mínútur. \nÞú getur farið aftur á {{storeName}} ef þú vilt reyna aftur.",
|
||||
"InvoiceExpired_Body_2": "Ef þú reyndir að senda greiðslu, þá hefur hún ekki verið samþykkt.",
|
||||
"InvoiceExpired_Body_3": "Ef viðskiptin eru ekki samþykkt af netinu verða fjármunirnir aðgengilegar aftur í veskinu þínu. Það fer eftir veskinu þínu og getur tekið 48-72 klukkustundir.",
|
||||
"Invoice ID": "Innheimtu ID",
|
||||
"Order ID": "Pöntun ID",
|
||||
"Return to StoreName": "Fara aftur á {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Þetta hefur verið greitt",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Þessi reikningur hefur verið gerður ógildur",
|
||||
"Archived_Body": "Vinsamlegast hafðu samband fyrir upplýsingar eða aðstoð.",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 Reikningur",
|
||||
"Node Info": "Nótu upplýsingar",
|
||||
//
|
||||
"txCount": "{{count}} reikningur",
|
||||
"txCount_plural": "{{count}} reikningar"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_it = {
|
||||
nested: {
|
||||
lang: 'Lingua'
|
||||
},
|
||||
{
|
||||
"code": "it-IT",
|
||||
"currentLanguage": "Italiano",
|
||||
"lang": "Lingua",
|
||||
"Awaiting Payment...": "In attesa del Pagamento...",
|
||||
"Pay with": "Paga con",
|
||||
"Contact and Refund Email": "Email di Contatto e Rimborso",
|
||||
@ -13,42 +13,32 @@ const locales_it = {
|
||||
"Network Cost": "Costi di Rete",
|
||||
"Already Paid": "Già pagato",
|
||||
"Due": "Dovuto",
|
||||
// Tabs
|
||||
"Scan": "Scansiona",
|
||||
"Copy": "Copia",
|
||||
"Conversion": "Conversione",
|
||||
// Scan tab
|
||||
"Open in wallet": "Apri nel portafoglio",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Per completare il pagamento, inviare {{btcDue}} {{cryptoCode}} all'indirizzo riportato di seguito.",
|
||||
"Amount": "Importo",
|
||||
"Address": "Indirizzo",
|
||||
"Copied": "Copiato",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Puoi pagare {{btcDue}} {{cryptoCode}} usando altcoin diverse da quelle che il commerciante supporta direttamente.",
|
||||
"ConversionTab_BodyDesc": "Questo servizio è fornito da terze parti. Si prega di tenere presente che non abbiamo alcun controllo su come i fornitori inoltreranno i fondi. La fattura verrà contrassegnata solo dopo aver ricevuto i fondi su {{cryptoCode}} Blockchain.",
|
||||
"Shapeshift_Button_Text": "Paga con Altcoin",
|
||||
"ConversionTab_Lightning": "Nessun fornitore di conversione disponibile per i pagamenti Lightning Network.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Fattura in scadenza a breve...",
|
||||
"Invoice expired": "Fattura scaduta",
|
||||
"What happened?": "Cosa è successo?",
|
||||
"InvoiceExpired_Body_1": "Questa fattura è scaduta. Una fattura è valida solo per {{maxTime minuti}} minuti. \
|
||||
Puoi tornare a {{store name}} se desideri inviare nuovamente il pagamento.",
|
||||
"InvoiceExpired_Body_1": "Questa fattura è scaduta. Una fattura è valida solo per {{maxTime minuti}} minuti. \nPuoi tornare a {{store name}} se desideri inviare nuovamente il pagamento.",
|
||||
"InvoiceExpired_Body_2": "Se hai provato a inviare un pagamento, non è ancora stato accettato dalla rete. Non abbiamo ancora ricevuto i tuoi fondi.",
|
||||
"InvoiceExpired_Body_3": "Se la transazione non viene accettata dalla rete, i fondi saranno nuovamente spendibili nel tuo portafoglio. A seconda del portafoglio, potrebbero essere necessarie 48-72 ore.",
|
||||
"Invoice ID": "Numero della Fattura",
|
||||
"Order ID": "Numero dell'Ordine",
|
||||
"Return to StoreName": "Ritorna a {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "La fattura è stata pagata",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "TQuesta fattura è stata pagata",
|
||||
"Archived_Body": "Contatta il negozio per informazioni sull'ordine o per assistenza",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Fattura BOLT 11",
|
||||
"Node Info": "Informazioni sul Nodo",
|
||||
//
|
||||
"txCount": "{{count}} transazione",
|
||||
"txCount_plural": "{{count}} transazioni"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_ja = {
|
||||
nested: {
|
||||
lang: 'Language'
|
||||
},
|
||||
{
|
||||
"code": "ja-JP",
|
||||
"currentLanguage": "日本語",
|
||||
"lang": "Language",
|
||||
"Awaiting Payment...": "お支払いをお待ちしております…",
|
||||
"Pay with": "お支払い方法",
|
||||
"Contact and Refund Email": "問題発生時の連絡先",
|
||||
@ -13,42 +13,32 @@
|
||||
"Network Cost": "ネットワーク手数料",
|
||||
"Already Paid": "支払い済み金額",
|
||||
"Due": "未払い金額",
|
||||
// Tabs
|
||||
"Scan": "スキャン",
|
||||
"Copy": "コピー",
|
||||
"Conversion": "変換",
|
||||
// Scan tab
|
||||
"Open in wallet": "ウォレットで開く",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "決済をするために、下記のアドレスに {{btcDue}} {{cryptoCode}} をお送りください",
|
||||
"Amount": "金額",
|
||||
"Address": "アドレス",
|
||||
"Copied": "コピーしました",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "代わりに、お店が受け付けていなくても {{btcDue}} {{cryptoCode}} での支払いもできます。",
|
||||
"ConversionTab_BodyDesc": "ただし、この変換は第三者サービスによるものですので、お店が受け付けている通貨で着金するまでの間の処理に関しては何の保証もいたしません。変換後に受付中の通貨 ({{cryptoCode}}) がお店に着金してから支払い済みとなりますのでご了承ください。",
|
||||
"Shapeshift_Button_Text": "他の仮想通貨で支払う",
|
||||
"ConversionTab_Lightning": "ライトニングのペイメントでは現在変換サービスが存在しないためご利用いただけません。ご了承ください。",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "お支払いの期限が迫っています...",
|
||||
"Invoice expired": "お支払いの期限が切れました",
|
||||
"What happened?": "え!?ナニコレ!?",
|
||||
"InvoiceExpired_Body_1": "当件のお支払いの有効期限が過ぎてしまいました。最大 {{maxTimeMinutes}} 分以内に支払うことが義務付けられています。 \
|
||||
まだお支払いのご希望の場合 {{storeName}} に一旦戻っていただき、もう一度お支払いの手続きを最初からやり直してみてください。",
|
||||
"InvoiceExpired_Body_1": "当件のお支払いの有効期限が過ぎてしまいました。最大 {{maxTimeMinutes}} 分以内に支払うことが義務付けられています。 \nまだお支払いのご希望の場合 {{storeName}} に一旦戻っていただき、もう一度お支払いの手続きを最初からやり直してみてください。",
|
||||
"InvoiceExpired_Body_2": "送金手続きを完了したつもりでも、ネットワークにて取り込まれて処理されるまでは決済となりません。現時点ではまだ着金しておりません。",
|
||||
"InvoiceExpired_Body_3": "ネットワークにて取り込まれなかった送金はいずれ送金元のウォレットに戻りますが、ウォレットソフトによっては2〜3日かかる場合もございますのでご了承ください。",
|
||||
"Invoice ID": "お支払い ID",
|
||||
"Order ID": "ご注文 ID",
|
||||
"Return to StoreName": "{{storeName}} に戻る",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "お支払いが完了しました",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "お支払いをアーカイブしました",
|
||||
"Archived_Body": "ご注文に関わる詳細などでお困りの場合はお店の担当窓口へお問い合わせください。",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "お支払いコード",
|
||||
"Node Info": "接続情報",
|
||||
//
|
||||
"txCount": "取引 {{count}} 個",
|
||||
"txCount_plural": "取引 {{count}} 個"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_kk = {
|
||||
nested: {
|
||||
lang: 'Тіл'
|
||||
},
|
||||
{
|
||||
"code": "kk-KZ",
|
||||
"currentLanguage": "Қазақша",
|
||||
"lang": "Тіл",
|
||||
"Awaiting Payment...": "Күтіп тұрған төлем…",
|
||||
"Pay with": "Төлеу",
|
||||
"Contact and Refund Email": "Байланыс және ақша қайтару үшін арналған электрондық пошта",
|
||||
@ -13,42 +13,32 @@ const locales_kk = {
|
||||
"Network Cost": "Желі бағасы",
|
||||
"Already Paid": "Төленген",
|
||||
"Due": "Жалпы сома",
|
||||
// Tabs
|
||||
"Scan": "Сканерлеу",
|
||||
"Copy": "Көшіру",
|
||||
"Conversion": "Айырбастау",
|
||||
// Scan tab
|
||||
"Open in wallet": "Әмиянда ашу",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Төлеміңізді аяқтау үшін төмендегі мекенжайға {{btcDue}} {{cryptoCode}} жіберуіңізді сұраймыз",
|
||||
"Amount": "Сан",
|
||||
"Address": "Мекенжай",
|
||||
"Copied": "Көшірілді",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Сатушы тікелей қолдау көрсетуден тыс кезде сіз altcoins көмегімен {{btcDue}} {{cryptoCode}} төлеуіңізге болады.",
|
||||
"ConversionTab_BodyDesc": "Бұл қызмет үшінші тараптан қамтамасыз етіледі. Сіздің ақшаңызды провайдерлер сізге қалай жеткізетінін біз бақылауға алмайтынымызды есте сақтауыңызды сұраймыз. Шот тек қана {{cryptoCode}} Blockchain жүйесі қаражаттырылған соң көрсетіледі.",
|
||||
"Shapeshift_Button_Text": "Төлеу Altcoins",
|
||||
"ConversionTab_Lightning": "Lightning Төлемдерді айырбастау жеткізушілер байланыстан тыс жерде",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Шот-фактура жақын арада аяқталады…",
|
||||
"Invoice expired": "Шот-фактураның мерзімі аяқталды",
|
||||
"What happened?": "Не жағдай болды?",
|
||||
"InvoiceExpired_Body_1": "Бұл шот-фактураның мерзімі аяқталды. Шот-фактура {{maxTimeMinutes}} минуттарға жарамды. \
|
||||
Төлеміңізді қайтадан жібергіңіз келсе {{storeName}} ға оралуға болады.",
|
||||
"InvoiceExpired_Body_1": "Бұл шот-фактураның мерзімі аяқталды. Шот-фактура {{maxTimeMinutes}} минуттарға жарамды. \nТөлеміңізді қайтадан жібергіңіз келсе {{storeName}} ға оралуға болады.",
|
||||
"InvoiceExpired_Body_2": "Егер сіз төлемді жіберуге тырыссқан болсаңыз, ол әлі желімен қабылданған жоқ. Біз сіздің қаражатыңызды әлі алған жоқпыз.",
|
||||
"InvoiceExpired_Body_3": "Егер транзакция желі арқылы қабылданбаса, қаражат әмияныңызға қайтадан қайтарылады. Бұл сіздің әмияныңызға байланысты 48-72 сағат алуы мүмкін.",
|
||||
"Invoice ID": "Шот анықтамасы",
|
||||
"Order ID": "Тапсырыс нөмірі",
|
||||
"Return to StoreName": "{{storeName}} оралу",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Бұл шот төленген",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Бұл шот мұрағатталған",
|
||||
"Archived_Body": "Тапсырыс туралы ақпарат немесе көмек үшін дүкенге хабарласуыңызды сұраймыз",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 Шот-фактура",
|
||||
"Node Info": "Node анықтамасы",
|
||||
//
|
||||
"txCount": "{{count}} Транзакция",
|
||||
"txCount_plural": "{{count}} Транзакциялар"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_nl = {
|
||||
nested: {
|
||||
lang: 'Taal'
|
||||
},
|
||||
{
|
||||
"code": "nl-NL",
|
||||
"currentLanguage": "Dutch",
|
||||
"lang": "Taal",
|
||||
"Awaiting Payment...": "Wachtende op de betaling...",
|
||||
"Pay with": "Betalen met",
|
||||
"Contact and Refund Email": "Email adres voor opvolging en terugbetaling",
|
||||
@ -13,42 +13,32 @@ const locales_nl = {
|
||||
"Network Cost": "Netwerk kosten",
|
||||
"Already Paid": "Reeds betaald",
|
||||
"Due": "Verschuldigd",
|
||||
// Tabs
|
||||
"Scan": "Scannen",
|
||||
"Copy": "Kopiëren",
|
||||
"Conversion": "Omzetting",
|
||||
// Scan tab
|
||||
"Open in wallet": "Wallet openen",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Om de betaling te vervoledigen, bedankt om {{btcDue}} {{cryptoCode}} naar het hieronder vemelde adres op te sturen.",
|
||||
"Amount": "Bedrag",
|
||||
"Address": "Adres",
|
||||
"Copied": "Gekopieerd",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Je kan altcoins gebruiken die niet ondersteund zijn door de verkoper, om {{btcDue}} {{cryptoCode}} te betalen.",
|
||||
"ConversionTab_BodyDesc": "Deze dienst wordt door een externe partij geleverd. Bijgevolg, hebben we geen zicht over jouw fondsen. De factuur wordt pas als betaald beschouwd, wanneer de fondsen door de blockchain aanvaard zijn {{ cryptoCode }}.",
|
||||
"Shapeshift_Button_Text": "Betalen met altcoins",
|
||||
"ConversionTab_Lightning": "Geen leverancier beschikbaar voor de betalingen op het Lightning Network",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "De factuur verloopt binnenkort...",
|
||||
"Invoice expired": "Vervallen factuur",
|
||||
"What happened?": "Wat gebeurde er?",
|
||||
"InvoiceExpired_Body_1": "De factuur is vervallen. Een factuur is alleen geldig voor {{maxTimeMinutes}} minuten. \
|
||||
Je kan terug komen naar {{storeName}} als je de betaling opnieuw wilt proberen",
|
||||
"InvoiceExpired_Body_1": "De factuur is vervallen. Een factuur is alleen geldig voor {{maxTimeMinutes}} minuten. \nJe kan terug komen naar {{storeName}} als je de betaling opnieuw wilt proberen",
|
||||
"InvoiceExpired_Body_2": "Als je een betaling uitvoerde, dan werd dit nog niet bevestigd door het netwerk. We hebben je fondsen nog niet ontvangen.",
|
||||
"InvoiceExpired_Body_3": "Als de transactie niet geaccepteerd werd door het netwerk, zullen je fondsen terug in wallet verschijnen. Afhankelijk van je wallet, kan dit 48 to 72 uren duren.",
|
||||
"Invoice ID": "Factuurnummer",
|
||||
"Order ID": "Bestllingsnummer",
|
||||
"Return to StoreName": "Terug naar {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Deze factuur is betaald",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Deze factuur is gearchiveerd",
|
||||
"Archived_Body": "Bedankt om de winkel te contacteren voor bijstand met of informatie over deze bestelling",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 Factuur",
|
||||
"Node Info": "Node Info",
|
||||
//
|
||||
"txCount": "{{count}} transactie",
|
||||
"txCount_plural": "{{count}} transacties"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_np = {
|
||||
nested: {
|
||||
lang: 'भाषा'
|
||||
},
|
||||
{
|
||||
"code": "np-NP",
|
||||
"currentLanguage": "नेपाली",
|
||||
"lang": "भाषा",
|
||||
"Awaiting Payment...": "भुक्तानी पर्खँदै...",
|
||||
"Pay with": "तिर्नुहोस्",
|
||||
"Contact and Refund Email": "सम्पर्क र फिर्ता इमेल",
|
||||
@ -13,43 +13,33 @@
|
||||
"Network Cost": "नेटवर्क लागत",
|
||||
"Already Paid": "तिरिसकेको",
|
||||
"Due": "बाँकी",
|
||||
// Tabs
|
||||
"Scan": "स्क्यान गर्नुहोस्",
|
||||
"Copy": "कापी",
|
||||
"Conversion": "रूपान्तरण",
|
||||
// Scan tab
|
||||
"Open in wallet": "वालेटमा खोल्नुहोस्",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "आफ्नो भुक्तानी पूरा गर्न, कृपया तल ठेगानामा {{btcDue}} {{cryptoCode}} पठाउनुहोस्",
|
||||
"Amount": "राशि",
|
||||
"Address": "ठेगाना",
|
||||
"Copied": "प्रतिलिपि गरियो",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "तपाईं एक व्यापारी को सीधा समर्थन भन्दा Altcoins अन्य को उपयोग को {{btcDue}} {{cryptoCode}} भुगतान गर्न सक्छन्",
|
||||
"ConversionTab_BodyDesc": "यो सेवा तेस्रो पार्टी द्वारा प्रदान गरिएको छ। कृपया ध्यान राख्नुहोस् कि हामीसँग कुनै नियन्त्रण छैन कि कसरी प्रदायकहरूले तपाईंको रकम अगाडि बढ्नेछन्। रकम प्राप्त {{cryptoCode}} Blockchain भएको बेलामा इनभ्वाइस मात्र भुक्तानी चिन्ह लगाइनेछ",
|
||||
"Shapeshift_Button_Text": "तिर्नुहोस् Altcoins",
|
||||
"ConversionTab_Lightning": "Lightning Network भुक्तानीको लागि कुनै परिवर्तन प्रदायकहरू उपलब्ध छैनन्",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "चलानीको म्याद सकियो",
|
||||
"Invoice expired": "इनभ्वाइस समाप्त भयो",
|
||||
"What happened?": "के भयो",
|
||||
"InvoiceExpired_Body_1": "यो चलानी समाप्त भएको छ। इनभ्वाइस {{maxTimeMinutes}} मिनेटको लागि मात्र वैध छ। \
|
||||
तपाइँ आफ्नो भुक्तानी पुन: पेश गर्न चाहानुहुन्छ यदि तपाइँ {{ storeName }} भुक्तानी पठाउन प्रयास गर्नुभयो भने।",
|
||||
"InvoiceExpired_Body_1": "यो चलानी समाप्त भएको छ। इनभ्वाइस {{maxTimeMinutes}} मिनेटको लागि मात्र वैध छ। \nतपाइँ आफ्नो भुक्तानी पुन: पेश गर्न चाहानुहुन्छ यदि तपाइँ {{ storeName }} भुक्तानी पठाउन प्रयास गर्नुभयो भने।",
|
||||
"InvoiceExpired_Body_2": "भने यो अझै नेटवर्कद्वारा स्वीकार गरिएको छैन। हामीले अझै सम्म तपाईंको रकम प्राप्त गरेका छैनौ।",
|
||||
"InvoiceExpired_Body_3": "यदि लेनदेन नेटवर्क द्वारा स्वीकार गरेन भने, रकम तपाईंको वालेटमा फेरि खर्चयोग्य हुनेछ। तपाईंको वालेटको आधारमा, यो 48-72 घण्टा लाग्न सक्छ",
|
||||
"Invoice ID": "चलानी आईडी",
|
||||
"Order ID": "अर्डर आईडी",
|
||||
"Return to StoreName": "यसलाई फर्काउनुहोस् {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "इनभ्वाइस भुक्तानी गरिएको छ",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "इनभ्वाइस संग्रहीत गरिएको छ",
|
||||
"Archived_Body": "कृपया स्टोर जानकारी वा सहयोगको लागि स्टोरलाई सम्पर्क गर्नुहोस्",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 इनभ्वाइस",
|
||||
"Node Info": "नोड जानकारी",
|
||||
//
|
||||
"txCount": "{{count}} लेनदेन",
|
||||
"txCount_plural": "{{count}} लेनदेन"
|
||||
};
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
const locales_pt = {
|
||||
nested: {
|
||||
lang: 'Idioma'
|
||||
},
|
||||
{
|
||||
"code": "pt-PT",
|
||||
"currentLanguage": "Portuguese",
|
||||
"lang": "Idioma",
|
||||
"Awaiting Payment...": "A Aguardar Pagamento...",
|
||||
"Pay with": "Pague com",
|
||||
"Contact and Refund Email": "E-mail de Contacto e Reembolso",
|
||||
@ -13,42 +13,32 @@ const locales_pt = {
|
||||
"Network Cost": "Custo da Rede",
|
||||
"Already Paid": "Já Pago",
|
||||
"Due": "Devido",
|
||||
// Tabs
|
||||
"Scan": "Digitalizar",
|
||||
"Copy": "Copiar",
|
||||
"Conversion": "Conversão",
|
||||
// Scan tab
|
||||
"Open in wallet": "Abrir na carteira",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Para completar o seu pagamento, por favor envie {{btcDue}} {{cryptoCode}} para o endereço abaixo.",
|
||||
"Amount": "Quantia",
|
||||
"Address": "Endereço",
|
||||
"Copied": "Copiado",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Pode pagar {{btcDue}} {{cryptoCode}} utilizando outras altcoins além das que a loja aceita diretamente.",
|
||||
"ConversionTab_BodyDesc": "Este serviço é oferecido por terceiros. Por favor tenha em mente que não temos qualquer controlo sobre como os seus fundos serão utilizados. A fatura será marcada como paga apenas quando os fundos forem recebidos na Blockchain {{cryptoCode}}.",
|
||||
"Shapeshift_Button_Text": "Pagar com Altcoins",
|
||||
"ConversionTab_Lightning": "Não há fornecedores de conversão disponíveis para pagamentos via Lightning Network.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "A fatura está a expirar...",
|
||||
"Invoice expired": "Fatura expirada",
|
||||
"What happened?": "O que aconteceu?",
|
||||
"InvoiceExpired_Body_1": "Esta fatura expirou. Uma fatura é válida durante {{maxTimeMinutes}} minutos. \
|
||||
Pode voltar para {{storeName}} se quiser enviar o seu pagamento novamente.",
|
||||
"InvoiceExpired_Body_1": "Esta fatura expirou. Uma fatura é válida durante {{maxTimeMinutes}} minutos. \nPode voltar para {{storeName}} se quiser enviar o seu pagamento novamente.",
|
||||
"InvoiceExpired_Body_2": "Se tentou enviar um pagamento, ele ainda não foi aceite pela rede Bitcoin. Nós ainda não recebemos o valor enviado.",
|
||||
"InvoiceExpired_Body_3": "Se a transação não for aceite pela rede Bitcoin, o valor voltará para sua carteira. Dependendo da sua carteira, isto pode demorar entre 48 e 72 horas.",
|
||||
"Invoice ID": "Nº da Fatura",
|
||||
"Order ID": "Nº da Encomenda",
|
||||
"Return to StoreName": "Voltar para {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Esta fatura foi paga",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Esta fatura foi arquivada",
|
||||
"Archived_Body": "Por favor, entre em contacto com o vendedor para informações e suporte",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Fatura BOLT 11",
|
||||
"Node Info": "Informação do Nó",
|
||||
//
|
||||
"txCount": "{{count}} transação",
|
||||
"txCount_plural": "{{count}} transações"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_pt_br = {
|
||||
nested: {
|
||||
lang: 'Idioma'
|
||||
},
|
||||
{
|
||||
"code": "pt-BR",
|
||||
"currentLanguage": "Portuguese (Brazil)",
|
||||
"lang": "Idioma",
|
||||
"Awaiting Payment...": "Aguardando o pagamento...",
|
||||
"Pay with": "Pague com",
|
||||
"Contact and Refund Email": "E-mail de contato e reembolso",
|
||||
@ -13,42 +13,32 @@ const locales_pt_br = {
|
||||
"Network Cost": "Custo da rede",
|
||||
"Already Paid": "Já foi pago",
|
||||
"Due": "Devido",
|
||||
// Tabs
|
||||
"Scan": "Escanear",
|
||||
"Copy": "Copiar",
|
||||
"Conversion": "Conversão",
|
||||
// Scan tab
|
||||
"Open in wallet": "Abrir na carteira",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Para completar seu pagamento, por favor envie {{btcDue}} {{cryptoCode}} para o endereço abaixo.",
|
||||
"Amount": "Quantia",
|
||||
"Address": "Endereço",
|
||||
"Copied": "Copiado",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Você pode pagar {{btcDue}} {{cryptoCode}} utilizando outras altcoins além das que a loja aceita diretamente.",
|
||||
"ConversionTab_BodyDesc": "Esse serviço é oferecido por terceiros. Por favor, tenha em mente que não temos nenhum controle sobre como seus fundos serão utilizados. A fatura apenas será marcada como paga quando os fundos forem recebidos na Blockchain {{cryptoCode}}.",
|
||||
"Shapeshift_Button_Text": "Pagar com Altcoins",
|
||||
"ConversionTab_Lightning": "Não há provedores de conversão disponíveis para pagamentos via Lightning Network.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "A fatura está expirando...",
|
||||
"Invoice expired": "Fatura expirada",
|
||||
"What happened?": "O que aconteceu?",
|
||||
"InvoiceExpired_Body_1": "Essa fatura expirou. Uma fatura é válida por apenas {{maxTimeMinutes}} minutos. \
|
||||
Você pode voltar para {{storeName}} se quiser enviar o seu pagamento novamente.",
|
||||
"InvoiceExpired_Body_1": "Essa fatura expirou. Uma fatura é válida por apenas {{maxTimeMinutes}} minutos. \nVocê pode voltar para {{storeName}} se quiser enviar o seu pagamento novamente.",
|
||||
"InvoiceExpired_Body_2": "Se você tentou enviar um pagamento, ele ainda não foi aceito pela rede Bitcoin. Nós ainda não recebemos o valor enviado.",
|
||||
"InvoiceExpired_Body_3": "Se a transação não for aceita pela rede Bitcoin, o valor voltará para sua carteira. Dependendo da sua carteira, isso pode demorar de 48 a 72 horas.",
|
||||
"Invoice ID": "Nº da Fatura",
|
||||
"Order ID": "Nº do Pedido",
|
||||
"Return to StoreName": "Voltar para {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Essa fatura foi paga",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Essa fatura foi arquivada",
|
||||
"Archived_Body": "Por favor, entre em contato com o estabelecimento para informações e suporte",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Fatura BOLT 11",
|
||||
"Node Info": "Informação de nó",
|
||||
//
|
||||
"txCount": "{{count}} transação",
|
||||
"txCount_plural": "{{count}} transações"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_ru = {
|
||||
nested: {
|
||||
lang: 'язык'
|
||||
},
|
||||
{
|
||||
"code": "ru-RU",
|
||||
"currentLanguage": "русский",
|
||||
"lang": "язык",
|
||||
"Awaiting Payment...": "Ожидание оплаты...",
|
||||
"Pay with": "заплатить",
|
||||
"Contact and Refund Email": "Контактный адрес электронной почты",
|
||||
@ -13,42 +13,32 @@ const locales_ru = {
|
||||
"Network Cost": "Ценность сети",
|
||||
"Already Paid": "Уже оплачено",
|
||||
"Due": "является обязательной",
|
||||
// Tabs
|
||||
"Scan": "просканировать",
|
||||
"Copy": "Скопировать",
|
||||
"Conversion": "Конвертация",
|
||||
// Scan tab
|
||||
"Open in wallet": "Открыть кошелек",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Чтобы завершить оплату, отправьте {{btcDue}} {{cryptoCode}} по адресу, указанному ниже.",
|
||||
"Amount": "Сумма",
|
||||
"Address": "Адрес",
|
||||
"Copied": "Скопировано",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Вы можете заплатить {{btcDue}} {{cryptoCode}} используя Altcoins отличные от предпочитаемых продавцом.",
|
||||
"ConversionTab_BodyDesc": "Эта услуга предоставляется третьим лицом. Пожалуйста, имейте в виду, что мы не контролируем, каким образом провайдеры переедут ваши фондовые средства. Счет будет закрыт только после {{cryptoCode}} Blockchain получения средств.",
|
||||
"Shapeshift_Button_Text": "заплатить Altcoins",
|
||||
"ConversionTab_Lightning": "Возможность конвертации Lightning Network платежей отсутствует.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Время выставленного счета вскоре истечёт...",
|
||||
"Invoice expired": "Срок действия выставленного счета истек",
|
||||
"What happened?": "Что случилось?",
|
||||
"InvoiceExpired_Body_1": "Срок действия этого счета истек. Счет действителен только {{maxTimeMinutes}} минут. \
|
||||
вы можете посетить {{storeName}} опять, если захотите оплатить.",
|
||||
"InvoiceExpired_Body_1": "Срок действия этого счета истек. Счет действителен только {{maxTimeMinutes}} минут. \nвы можете посетить {{storeName}} опять, если захотите оплатить.",
|
||||
"InvoiceExpired_Body_2": "ваша оплата пока еще не принята системой. Мы еще не получили ваши фонды.",
|
||||
"InvoiceExpired_Body_3": "если транзакция не пройдёт Ваши фонды будут возвращены в ваш кошелек.в зависимости от Вашего кошелек это может занять от 48 до 72 часов.",
|
||||
"Invoice ID": "Порядковый номер выставленного счета",
|
||||
"Order ID": "Порядковый номер заказа",
|
||||
"Return to StoreName": "возвратить в {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Этот выставленный счет был оплачен",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Этот счет был заархивирован.",
|
||||
"Archived_Body": "ожалуйста, обратитесь в магазин для получения информации о заказе или помощи",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "счет BOLT 11",
|
||||
"Node Info": "Информация об устройстве",
|
||||
//
|
||||
"txCount": "{{count}} Сделка",
|
||||
"txCount_plural": "{{count}} операции"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_uk = {
|
||||
nested: {
|
||||
lang: 'Мова'
|
||||
},
|
||||
{
|
||||
"code": "uk-UA",
|
||||
"currentLanguage": "Українська",
|
||||
"lang": "Мова",
|
||||
"Awaiting Payment...": "Очікування платежу…",
|
||||
"Pay with": "Оплатити",
|
||||
"Contact and Refund Email": "Електронна адреса для зв’язку та повернення коштів",
|
||||
@ -13,42 +13,32 @@ const locales_uk = {
|
||||
"Network Cost": "Мережева вартість",
|
||||
"Already Paid": "Вже сплачено",
|
||||
"Due": "До сплати",
|
||||
// Tabs
|
||||
"Scan": "Сканувати",
|
||||
"Copy": "Копіювати",
|
||||
"Conversion": "Конверсія",
|
||||
// Scan tab
|
||||
"Open in wallet": "Відкрити гаманець",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Для завершення платежу, будь ласка, надішліть {{btcDue}} {{cryptoCode}} на адресу нижче.",
|
||||
"Amount": "Сума",
|
||||
"Address": "Адреса",
|
||||
"Copied": "Скопійовано",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Ви можете сплатити {{btcDue}} {{cryptoCode}} використовуючи альткоїни, що відрізняються від тих, що підтримує продавець.",
|
||||
"ConversionTab_BodyDesc": "Послуга надається третьою особою. Будь ласка, майте на увазі, що ми не контролюємо те, як провайдери пересилатимуть ваші кошти. Рахунок буде позначений як сплачений тільки після надходження коштів на блокчейн {{cryptoCode}}.",
|
||||
"Shapeshift_Button_Text": "Заплатити альткоїнами",
|
||||
"ConversionTab_Lightning": "Для платежів з використанням Lightning Network немає провайдерів конверсії.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Строк дії рахунку скоро закінчується...",
|
||||
"Invoice expired": "Строк дії рахунку закінчився",
|
||||
"What happened?": "Що сталось?",
|
||||
"InvoiceExpired_Body_1": "Строк дії цього рахунку закінчився. Рахунок дійсний лише {{maxTimeMinutes}} хвилин. \
|
||||
Ви можете повернутись до {{storeName}} якщо ви хочете ще раз надіслати ваш платіж.",
|
||||
"InvoiceExpired_Body_1": "Строк дії цього рахунку закінчився. Рахунок дійсний лише {{maxTimeMinutes}} хвилин. \nВи можете повернутись до {{storeName}} якщо ви хочете ще раз надіслати ваш платіж.",
|
||||
"InvoiceExpired_Body_2": "Якщо ви пробували надіслати платіж, він ще не був прийнятий мережею. Ми ще не отримали ваші кошти.",
|
||||
"InvoiceExpired_Body_3": "Якщо транзакція не прийнята мережею, кошти будуть знову доступними у вашому гаманці. Залежно від вашого гаманця, це може зайняти приблизно 48-72 годин.",
|
||||
"Invoice ID": "ID рахунку",
|
||||
"Order ID": "ID замовлення",
|
||||
"Return to StoreName": "Повернутись до {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Цей рахунок вже оплачений",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Цей рахунок заархівований",
|
||||
"Archived_Body": "Будь ласка, зв’яжіться з магазином для отримання інформації щодо замовлення або допомоги",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Рахунок BOLT 11",
|
||||
"Node Info": "Інформація щодо вузла",
|
||||
//
|
||||
"txCount": "транзакція {{count}}",
|
||||
"txCount_plural": "транзакції {{count}}"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_vi = {
|
||||
nested: {
|
||||
lang: 'Ngôn ngữ'
|
||||
},
|
||||
{
|
||||
"code": "vi-VN",
|
||||
"currentLanguage": "Tiếng Việt",
|
||||
"lang": "Ngôn ngữ",
|
||||
"Awaiting Payment...": "Đang chờ Thanh toán...",
|
||||
"Pay with": "Thanh toán bằng",
|
||||
"Contact and Refund Email": "Email để Liên lạc và Hoàn Tiền",
|
||||
@ -13,42 +13,32 @@ const locales_vi = {
|
||||
"Network Cost": "Chi phí Mạng lưới",
|
||||
"Already Paid": "Số Tiền Đã Thanh toán",
|
||||
"Due": "Số tiền chưa thanh toán",
|
||||
// Tabs
|
||||
"Scan": "Quét mã",
|
||||
"Copy": "Sao chép",
|
||||
"Conversion": "Chuyển đổi",
|
||||
// Scan tab
|
||||
"Open in wallet": "Mở ví",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "Để hoàn tất việc thanh toán của bạn, hãy gửi {{btcDue}} {{cryptoCode}}tới địa chỉ sau.",
|
||||
"Amount": "Số tiền",
|
||||
"Address": "Địa chỉ",
|
||||
"Copied": "Đã sao chép",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "Bạn có thể dùng Altcoin để trả cho {{btcDue}} {{cryptoCode}} chứ không phải dùng những loại tiền người bán chấp nhận trực tiếp.",
|
||||
"ConversionTab_BodyDesc": "Dịch vụ này được cung cấp bởi một bên thứ ba. Xin vui lòng ghi nhớ, chúng tôi không kiểm soát phương thức các nhà cung cấp chuyển tiếp các nguồn tiền của bạn. Hóa đơn sẽ chỉ được đánh dấu đã thanh toán khi nào các nguồn tiền đã được nhận bởi Chuỗi khối Blockchain {{cryptoCode}}.",
|
||||
"Shapeshift_Button_Text": "Thanh toán bằng Altcoins",
|
||||
"ConversionTab_Lightning": "Không có nhà cung cấp nào có dịch vụ chuyển đổi cho các phương thức thanh toán Lightning Network.",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "Hóa đơn sắp quá hạn...",
|
||||
"Invoice expired": "Hóa đơn đã quá hạn",
|
||||
"What happened?": "Đã xảy ra chuyện gì?",
|
||||
"InvoiceExpired_Body_1": "Hóa đơn này đã quá hạn. Một hóa đơn chỉ có giá trị trong {{maxTimeMinutes}} phút. \
|
||||
Nếu muốn đệ trình việc thanh toán một lần nữa, bạn có thể quay lại {{storeName}}.",
|
||||
"InvoiceExpired_Body_1": "Hóa đơn này đã quá hạn. Một hóa đơn chỉ có giá trị trong {{maxTimeMinutes}} phút. \nNếu muốn đệ trình việc thanh toán một lần nữa, bạn có thể quay lại {{storeName}}.",
|
||||
"InvoiceExpired_Body_2": "Nếu bạn vừa định gửi thanh toán, thì hệ thống vẫn chưa chấp nhận thanh toán của bạn. Chúng tôi vẫn chưa nhận được tiền của bạn.",
|
||||
"InvoiceExpired_Body_3": "Nếu giao dịch không được hệ thống chấp nhận, các khoản tiền của bạn sẽ được phân bổ trở lại ví của bạn để bạn tiêu dùng. Tuỳ thuộc vào ví của bạn, việc này có thể mất 48-72 giờ.",
|
||||
"Invoice ID": "Số Hóa đơn",
|
||||
"Order ID": "Số Đơn hàng",
|
||||
"Return to StoreName": "Quay lại {{storeName}}",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "Hóa đơn này đã được thanh toán",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "Hóa đơn này đã được lưu trữ",
|
||||
"Archived_Body": "Hãy liên lạc với cửa hàng để biết thông tin về đơn hàng hoặc nếu cần trợ giúp",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "Hóa đơn BOLT 11",
|
||||
"Node Info": "Nút Thông tin",
|
||||
//
|
||||
"txCount": "{{count}} giao dịch",
|
||||
"txCount_plural": "{{count}} các giao dịch"
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
const locales_zh_sp = {
|
||||
nested: {
|
||||
lang: '语言'
|
||||
},
|
||||
{
|
||||
"code": "zh-SP",
|
||||
"currentLanguage": "中文(简体)",
|
||||
"lang": "语言",
|
||||
"Awaiting Payment...": "等待付款中...",
|
||||
"Pay with": "支付方式",
|
||||
"Contact and Refund Email": "联络和退款邮箱",
|
||||
@ -13,42 +13,32 @@ const locales_zh_sp = {
|
||||
"Network Cost": "网络费用",
|
||||
"Already Paid": "已支付",
|
||||
"Due": "待支付",
|
||||
// Tabs
|
||||
"Scan": "扫一扫",
|
||||
"Copy": "复制",
|
||||
"Conversion": "兑换支付",
|
||||
// Scan tab
|
||||
"Open in wallet": "在钱包中打开",
|
||||
// Copy tab
|
||||
"CompletePay_Body": "请发送{{btcDue}} {{cryptoCode}}至下方地址以完成支付。",
|
||||
"Amount": "金额",
|
||||
"Address": "地址",
|
||||
"Copied": "已复制",
|
||||
// Conversion tab
|
||||
"ConversionTab_BodyTop": "您也可以使用商家支持以外的其他altcoins支付{{btcDue}} {{cryptoCode}}。",
|
||||
"ConversionTab_BodyDesc": "请您注意,这项服务由第三方应用提供,所以我们无法直接获悉和操控第三方应用的具体兑换过程。订单只有在支付款被{{cryptocode}}的区块链接收之后,才会显示已支付。",
|
||||
"Shapeshift_Button_Text": "Altcoins支付",
|
||||
"ConversionTab_Lightning": "闪电网络不支持其他altcoins兑换支付。",
|
||||
// Invoice expired
|
||||
"Invoice expiring soon...": "订单即将过期...",
|
||||
"Invoice expired": "订单已过期 ",
|
||||
"What happened?": "发生了什么?",
|
||||
"InvoiceExpired_Body_1": "您的订单已过期。一个订单只在{{maxTimeMinutes}}分钟内有效。 \
|
||||
如果您想要再次支付,可返回{{storeName}}。",
|
||||
"InvoiceExpired_Body_1": "您的订单已过期。一个订单只在{{maxTimeMinutes}}分钟内有效。 \n如果您想要再次支付,可返回{{storeName}}。",
|
||||
"InvoiceExpired_Body_2": "如果您已支付,但付款没有被网络确认接收。这说明我方目前还未收到您的支付款。",
|
||||
"InvoiceExpired_Body_3": "如果您的支付最终被网络拒绝,支付款将被返回您的钱包。根据您使用的钱包不同,可能需要48-72小时。",
|
||||
"Invoice ID": "订单号",
|
||||
"Order ID": "订货号",
|
||||
"Return to StoreName": "返回{{storeName}}。",
|
||||
// Invoice paid
|
||||
"This invoice has been paid": "此订单已支付",
|
||||
// Invoice archived
|
||||
"This invoice has been archived": "此订单已归档",
|
||||
"Archived_Body": "请联系商家获得更多的订单信息或帮助",
|
||||
// Lightning
|
||||
"BOLT 11 Invoice": "BOLT 11 订单",
|
||||
"Node Info": "节点信息(Node Info)",
|
||||
//
|
||||
"txCount": "{{count}}笔交易",
|
||||
"txCount_plural": "{{count}}笔交易"
|
||||
};
|
||||
}
|
198
BTCPayServer/wwwroot/vendor/i18next/i18nextXHRBackend.js
vendored
Normal file
198
BTCPayServer/wwwroot/vendor/i18next/i18nextXHRBackend.js
vendored
Normal file
@ -0,0 +1,198 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global.i18nextXHRBackend = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
var arr = [];
|
||||
var each = arr.forEach;
|
||||
var slice = arr.slice;
|
||||
|
||||
function defaults(obj) {
|
||||
each.call(slice.call(arguments, 1), function (source) {
|
||||
if (source) {
|
||||
for (var prop in source) {
|
||||
if (obj[prop] === undefined) obj[prop] = source[prop];
|
||||
}
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
|
||||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||||
|
||||
function addQueryString(url, params) {
|
||||
if (params && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === 'object') {
|
||||
var queryString = '',
|
||||
e = encodeURIComponent;
|
||||
|
||||
// Must encode data
|
||||
for (var paramName in params) {
|
||||
queryString += '&' + e(paramName) + '=' + e(params[paramName]);
|
||||
}
|
||||
|
||||
if (!queryString) {
|
||||
return url;
|
||||
}
|
||||
|
||||
url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
// https://gist.github.com/Xeoncross/7663273
|
||||
function ajax(url, options, callback, data, cache) {
|
||||
|
||||
if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object') {
|
||||
if (!cache) {
|
||||
data['_t'] = new Date();
|
||||
}
|
||||
// URL encoded form data must be in querystring format
|
||||
data = addQueryString('', data).slice(1);
|
||||
}
|
||||
|
||||
if (options.queryStringParams) {
|
||||
url = addQueryString(url, options.queryStringParams);
|
||||
}
|
||||
|
||||
try {
|
||||
var x;
|
||||
if (XMLHttpRequest) {
|
||||
x = new XMLHttpRequest();
|
||||
} else {
|
||||
x = new ActiveXObject('MSXML2.XMLHTTP.3.0');
|
||||
}
|
||||
x.open(data ? 'POST' : 'GET', url, 1);
|
||||
if (!options.crossDomain) {
|
||||
x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
||||
}
|
||||
x.withCredentials = !!options.withCredentials;
|
||||
if (data) {
|
||||
x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
if (x.overrideMimeType) {
|
||||
x.overrideMimeType("application/json");
|
||||
}
|
||||
var h = options.customHeaders;
|
||||
if (h) {
|
||||
for (var i in h) {
|
||||
x.setRequestHeader(i, h[i]);
|
||||
}
|
||||
}
|
||||
x.onreadystatechange = function () {
|
||||
x.readyState > 3 && callback && callback(x.responseText, x);
|
||||
};
|
||||
x.send(data);
|
||||
} catch (e) {
|
||||
console && console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function getDefaults() {
|
||||
return {
|
||||
loadPath: '/locales/{{lng}}/{{ns}}.json',
|
||||
addPath: '/locales/add/{{lng}}/{{ns}}',
|
||||
allowMultiLoading: false,
|
||||
parse: JSON.parse,
|
||||
crossDomain: false,
|
||||
ajax: ajax
|
||||
};
|
||||
}
|
||||
|
||||
var Backend = function () {
|
||||
function Backend(services) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
_classCallCheck(this, Backend);
|
||||
|
||||
this.init(services, options);
|
||||
|
||||
this.type = 'backend';
|
||||
}
|
||||
|
||||
_createClass(Backend, [{
|
||||
key: 'init',
|
||||
value: function init(services) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
this.services = services;
|
||||
this.options = defaults(options, this.options || {}, getDefaults());
|
||||
}
|
||||
}, {
|
||||
key: 'readMulti',
|
||||
value: function readMulti(languages, namespaces, callback) {
|
||||
var loadPath = this.options.loadPath;
|
||||
if (typeof this.options.loadPath === 'function') {
|
||||
loadPath = this.options.loadPath(languages, namespaces);
|
||||
}
|
||||
|
||||
var url = this.services.interpolator.interpolate(loadPath, { lng: languages.join('+'), ns: namespaces.join('+') });
|
||||
|
||||
this.loadUrl(url, callback);
|
||||
}
|
||||
}, {
|
||||
key: 'read',
|
||||
value: function read(language, namespace, callback) {
|
||||
var loadPath = this.options.loadPath;
|
||||
if (typeof this.options.loadPath === 'function') {
|
||||
loadPath = this.options.loadPath([language], [namespace]);
|
||||
}
|
||||
|
||||
var url = this.services.interpolator.interpolate(loadPath, { lng: language, ns: namespace });
|
||||
|
||||
this.loadUrl(url, callback);
|
||||
}
|
||||
}, {
|
||||
key: 'loadUrl',
|
||||
value: function loadUrl(url, callback) {
|
||||
var _this = this;
|
||||
|
||||
this.options.ajax(url, this.options, function (data, xhr) {
|
||||
if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true /* retry */);
|
||||
if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false /* no retry */);
|
||||
|
||||
var ret = void 0,
|
||||
err = void 0;
|
||||
try {
|
||||
ret = _this.options.parse(data, url);
|
||||
} catch (e) {
|
||||
err = 'failed parsing ' + url + ' to json';
|
||||
}
|
||||
if (err) return callback(err, false);
|
||||
callback(null, ret);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: 'create',
|
||||
value: function create(languages, namespace, key, fallbackValue) {
|
||||
var _this2 = this;
|
||||
|
||||
if (typeof languages === 'string') languages = [languages];
|
||||
|
||||
var payload = {};
|
||||
payload[key] = fallbackValue || '';
|
||||
|
||||
languages.forEach(function (lng) {
|
||||
var url = _this2.services.interpolator.interpolate(_this2.options.addPath, { lng: lng, ns: namespace });
|
||||
|
||||
_this2.options.ajax(url, _this2.options, function (data, xhr) {
|
||||
//const statusCode = xhr.status.toString();
|
||||
// TODO: if statusCode === 4xx do log
|
||||
}, payload);
|
||||
});
|
||||
}
|
||||
}]);
|
||||
|
||||
return Backend;
|
||||
}();
|
||||
|
||||
Backend.type = 'backend';
|
||||
|
||||
return Backend;
|
||||
|
||||
})));
|
Loading…
Reference in New Issue
Block a user