fixed crowdin download script + latest translation
This commit is contained in:
parent
e54e78c78d
commit
000bef4aec
17 changed files with 4606 additions and 81 deletions
|
|
@ -2,6 +2,21 @@
|
|||
|
||||
'use strict';
|
||||
|
||||
if (process.argv[2]) {
|
||||
var no_key = (process.argv[2].toLowerCase() == '--nokey')
|
||||
if (no_key == false) {
|
||||
console.log('Incorrect arg. Please use --nokey if you would like to download without api key.');
|
||||
process.exit(1);
|
||||
};
|
||||
} else {
|
||||
var no_key = false;
|
||||
console.log('\n' +
|
||||
'Please note: If you do not have the crowdin API key and would like to download the ' +
|
||||
'translations without building anyways, please make sure your English files are the same ' +
|
||||
'version as crowdin, and then run this script with --nokey\n\n' +
|
||||
'eg. "node crowdin_download.js --nokey"\n\n');
|
||||
};
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var https = require('https');
|
||||
|
|
@ -21,6 +36,35 @@ catch (e) {
|
|||
process.exit(1);
|
||||
}
|
||||
|
||||
if (no_key == false) { // Reminder: Any changes to the script below must also be made to the else clause and vice versa.
|
||||
|
||||
try {
|
||||
// obtain the crowdin api key
|
||||
var crowdin_api_key = fs.readFileSync(path.join(__dirname, 'crowdin_api_key.txt'), 'utf8')
|
||||
} catch (e) {
|
||||
console.log('### ERROR ### You do not have the crowdin api key in ./crowdin_api_key.txt so the translation build has failed.\nFor download only use --nokey.');
|
||||
process.exit(1);
|
||||
};
|
||||
|
||||
// This call will tell the server to generate a new zip file for you based on most recent translations.
|
||||
https.get('https://api.crowdin.com/api/project/' + crowdin_identifier + '/export?key=' + crowdin_api_key, function(res) {
|
||||
|
||||
console.log('Export Got response: ' + res.statusCode);
|
||||
|
||||
res.on('data', function(chunk) {
|
||||
var resxml = chunk.toString('utf8');
|
||||
console.log(resxml);
|
||||
|
||||
if (resxml.indexOf('status="skipped"') >= 0) {
|
||||
console.log('Translation build was skipped due to either:\n' +
|
||||
'1. No changes since last translation build, or\n' +
|
||||
'2. API limit of once per 30 minutes has not been waited.\n\n' +
|
||||
'Since we can not guarantee that translations have been built properly, this script will end here.\n' +
|
||||
'Log in to Copay\'s Crowdin Settings and click the "Build Project" button to assure it is built recently, and then run this ' +
|
||||
'script again with the --nokey arg to download translations without checking if built.');
|
||||
process.exit(1);
|
||||
};
|
||||
|
||||
// Download most recent translations for all languages.
|
||||
https.get('https://crowdin.com/download/project/' + crowdin_identifier + '.zip', function(res) {
|
||||
var data = [], dataLen = 0;
|
||||
|
|
@ -41,9 +85,12 @@ https.get('https://crowdin.com/download/project/' + crowdin_identifier + '.zip',
|
|||
var files = fs.readdirSync('./docs');
|
||||
|
||||
for (var i in files) {
|
||||
debugger;
|
||||
if (files[i].slice(0,9) == 'appstore_' && files[i].slice(-4) == '.txt' && files[i] != 'appstore_en.txt') {
|
||||
var english_file = fs.readFileSync(local_file_name2, 'utf8');
|
||||
var compare_file = fs.readFileSync(path.join(__dirname, 'docs/' + files[i]), 'utf8')
|
||||
english_file = english_file.replace(/\r\n/g, '\n');
|
||||
compare_file = compare_file.replace(/\r\n/g, '\n');
|
||||
if (compare_file == english_file) {
|
||||
fs.unlinkSync(path.join(__dirname, 'docs/' + files[i]));
|
||||
};
|
||||
|
|
@ -51,6 +98,8 @@ https.get('https://crowdin.com/download/project/' + crowdin_identifier + '.zip',
|
|||
if (files[i].slice(0,11) == 'updateinfo_' && files[i].slice(-4) == '.txt' && files[i] != 'updateinfo_en.txt') {
|
||||
var english_file = fs.readFileSync(local_file_name3, 'utf8');
|
||||
var compare_file = fs.readFileSync(path.join(__dirname, 'docs/' + files[i]), 'utf8')
|
||||
english_file = english_file.replace(/\r\n/g, '\n');
|
||||
compare_file = compare_file.replace(/\r\n/g, '\n');
|
||||
if (compare_file == english_file) {
|
||||
fs.unlinkSync(path.join(__dirname, 'docs/' + files[i]));
|
||||
};
|
||||
|
|
@ -103,3 +152,97 @@ https.get('https://crowdin.com/download/project/' + crowdin_identifier + '.zip',
|
|||
|
||||
});
|
||||
});
|
||||
});
|
||||
}).on('error', function(e) {
|
||||
console.log('Export Got error: ' + e.message);
|
||||
});
|
||||
|
||||
} else { // Reminder: Any changes to the script below must also be made to the above and vice versa.
|
||||
|
||||
// Download most recent translations for all languages.
|
||||
https.get('https://crowdin.com/download/project/' + crowdin_identifier + '.zip', function(res) {
|
||||
var data = [], dataLen = 0;
|
||||
|
||||
res.on('data', function(chunk) {
|
||||
data.push(chunk);
|
||||
dataLen += chunk.length;
|
||||
}).on('end', function() {
|
||||
var buf = new Buffer(dataLen);
|
||||
for (var i=0, len = data.length, pos = 0; i < len; i++) {
|
||||
data[i].copy(buf, pos);
|
||||
pos += data[i].length;
|
||||
};
|
||||
var zip = new AdmZip(buf);
|
||||
zip.extractAllTo('./', true);
|
||||
console.log('Done extracting ZIP file.');
|
||||
|
||||
var files = fs.readdirSync('./docs');
|
||||
|
||||
for (var i in files) {
|
||||
if (files[i].slice(0,9) == 'appstore_' && files[i].slice(-4) == '.txt' && files[i] != 'appstore_en.txt') {
|
||||
var english_file = fs.readFileSync(local_file_name2, 'utf8');
|
||||
var compare_file = fs.readFileSync(path.join(__dirname, 'docs/' + files[i]), 'utf8')
|
||||
english_file = english_file.replace(/\r\n/g, '\n');
|
||||
compare_file = compare_file.replace(/\r\n/g, '\n');
|
||||
if (compare_file == english_file) {
|
||||
fs.unlinkSync(path.join(__dirname, 'docs/' + files[i]));
|
||||
};
|
||||
};
|
||||
if (files[i].slice(0,11) == 'updateinfo_' && files[i].slice(-4) == '.txt' && files[i] != 'updateinfo_en.txt') {
|
||||
var english_file = fs.readFileSync(local_file_name3, 'utf8');
|
||||
var compare_file = fs.readFileSync(path.join(__dirname, 'docs/' + files[i]), 'utf8')
|
||||
english_file = english_file.replace(/\r\n/g, '\n');
|
||||
compare_file = compare_file.replace(/\r\n/g, '\n');
|
||||
if (compare_file == english_file) {
|
||||
fs.unlinkSync(path.join(__dirname, 'docs/' + files[i]));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
console.log('Cleaned out completely untranslated appstore docs.');
|
||||
|
||||
var files = fs.readdirSync('./po');
|
||||
|
||||
for (var i in files) {
|
||||
if (files[i] != 'template.pot') {
|
||||
var po_file = fs.readFileSync(path.join(__dirname, 'po/' + files[i]), 'utf8');
|
||||
var po_array = po_file.split('\n');
|
||||
for (var j in po_array) {
|
||||
if (po_array[j].slice(0,5) == 'msgid') {
|
||||
var source_text = po_array[j].slice(5);
|
||||
} else if (po_array[j].slice(0,6) == 'msgstr') {
|
||||
var translate_text = po_array[j].slice(6);
|
||||
// if a line is not == English, it means there is translation. Keep this file.
|
||||
if (source_text != translate_text) {
|
||||
// erase email addresses of last translator for privacy
|
||||
po_file = po_file.replace(/ <.+@.+\..+>/, '')
|
||||
fs.writeFileSync(path.join(__dirname, 'po/' + files[i]), po_file);
|
||||
|
||||
// split the file into 3 parts, before locale, locale, and after locale.
|
||||
var lang_pos = po_file.search('"Language: ') + 11;
|
||||
var po_start = po_file.slice(0,lang_pos);
|
||||
var po_locale = po_file.slice(lang_pos,lang_pos + 5);
|
||||
var po_end = po_file.slice(lang_pos + 5);
|
||||
|
||||
// check for underscore, if it's there, only take the first 2 letters and reconstruct the po file.
|
||||
if (po_locale.search('_') > 0) {
|
||||
fs.writeFileSync(path.join(__dirname, 'po/' + files[i]), po_start + po_locale.slice(0,2) + po_end);
|
||||
po_start = '';
|
||||
po_locale = '';
|
||||
po_end = '';
|
||||
};
|
||||
break;
|
||||
};
|
||||
};
|
||||
if (j == po_array.length - 1) { // All strings are exactly identical to English. Delete po file.
|
||||
fs.unlinkSync(path.join(__dirname, 'po/' + files[i]));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
console.log('Cleaned out completely untranslated po files.');
|
||||
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
|
|||
23
i18n/docs/appstore_it.txt
Normal file
23
i18n/docs/appstore_it.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
Metti al sicuro i tuoi bitcoins, alle tue condizioni, con un portafoglio open source e multifirma realizzato da BitPay.
|
||||
Gli utenti Copay possono gestire i propri fondi individualmente, o condividerli in maniera sicura con altri utenti grazie ai portafogli multifirma, che prevengono pagamenti non autorizzati richiedendo più approvazioni. Ecco alcuni modi per utilizzare Copay con altre persone:
|
||||
|
||||
Per rismarmiare soldi per le vacanze o per acquisti congiunti con gli amici
|
||||
Per tenere traccia di spese familiari o indennità
|
||||
Per gestire i fondi e le spese di aziende, club, or organizzazioni
|
||||
|
||||
In questa versione di Copay abbiamo realizzato le seguenti funzioni per un portafoglio bitcoin che non comprometta sicurezza o accessibilità:
|
||||
|
||||
Creazione e gestione integrata di portafogli multipli
|
||||
Sicurezza multifirma intuitiva per portafogli personali o condivisi
|
||||
Proposte di pagamento facili da iniziare per portafogli condivisi e pagamenti di gruppo
|
||||
Generazione di portafogli gerarchici deterministici (HD) e funzionalità di backup
|
||||
Sicurezza integrata nel dispositivo: tutte le chiave private sono memorizzate localmente, non nel cloud
|
||||
Supporto per portafogli della testnet Bitcoin
|
||||
Accesso sincrono in tutte le piattaforme mobile e desktop
|
||||
Supporto per il protocollo di pagamento (BIP70-BIP73): richieste di pagamento facilmente identificabili e pagamenti bitcoin sicuri e verificabili
|
||||
Supporto per 150+ valute e denominazione in BTC o bits
|
||||
Notifiche email per pagamenti o trasferimenti
|
||||
Colori di sfondo e nomi dei portafogli personalizzabli
|
||||
4 lingue supportate (EN, JP, FR, ES)
|
||||
|
||||
Copay è un software gratuito e open source che non dipende da server proprietari, pertanto il supporto del software non dipende da nessuna azienda. Chiunque può rivedere o contribuire al codice sorgente di Copay su GitHub (https://github.com/bitpay/copay).
|
||||
23
i18n/docs/appstore_ko.txt
Normal file
23
i18n/docs/appstore_ko.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
비트코인을 당신이 원하는 방식으로 안전하게 보관할 수 있는 오픈소스 다중서명 지갑이 BitPay에서 출시됐습니다.
|
||||
Copay는 사용자의 개인적인 자금 보관은 물론이고, 여러 명의 동의가 필요한 다중서명 지갑을 통해 누군가 독단적으로 자금을 써버리는 일을 방지하고 여럿이 함께 자금을 관리 할 수 있습니다. 예를 들면 이런 식으로 사용할 수 있습니다:
|
||||
|
||||
친구들과 함께 휴가를 떠나거나 공동구매를 하기 위해 돈을 모을 때
|
||||
가족의 소비와 지출을 관리하고 싶을 때
|
||||
사업, 동호회, 단체의 자금과 소비를 관리 하고 싶을 때
|
||||
|
||||
이번 버전 Copay는 안전과 접근성에 대해 타협하지 않는 비트코인 지갑이 되기 위해 다음과 같은 기능이 포함돼 있습니다
|
||||
|
||||
앱 안에서 가능한 여러 개의 지갑 생성과 관리
|
||||
개인, 공유 지갑을 위한 직관적인 다중서명 안전장치
|
||||
공유 지갑과 공동지불을 위해 손쉽게 가능한 지불제안
|
||||
계층결정론적(Hierarchical deterministic, HD) 주소 생성과 지갑 백업
|
||||
장치기반 보안: 모든 비밀키는 클라우드가 아닌 장치 내부에 보관됩니다
|
||||
비트코인 테스트넷 지갑 지원
|
||||
모든 주요 모바일, 데스크탑 플랫폼에서의 동시 접속을 지원합니다
|
||||
Payment protocol (BIP70-BIP73)지원: 쉽게 확인 가능한 지불요청과 증명 가능한 비트코인 안전 결제
|
||||
150가지가 넘는 통화 지원과 BTC와 bits의 단위 지원
|
||||
지불, 송금의 이메일 알림
|
||||
바꿀 수 있는 지갑의 이름과 배경색
|
||||
4개국어 지원(영어, 일본어, 프랑스어, 스페인어)
|
||||
|
||||
Copay는 누구나 운영할 수 있는 서버에서 돌아가는 무료 오픈소스 소프트웨어입니다. 그러므로 어떤 한 회사의 지속적인 지원에 의지할 필요가 없습니다. 누구나 GitHub(https://github.com/bitpay/copay)에서 Copay의 소스코드를 검토하거나 참여할 수 있습니다
|
||||
23
i18n/docs/appstore_ru.txt
Normal file
23
i18n/docs/appstore_ru.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
Обезопасьте биткойны на своих условиях с открытым исходным кодом, кошельком с мультиподписью от BitPay.
|
||||
Пользователи Copay могут хранить средства самостоятельно или совместно безопасно управлять средствами вместе с другими пользователями с помощью кошельков с мультиподписью (multisignature wallets), которые предотвращают несанкционированный платежи, требуя несколько одобрений. Вот некоторые способы как Copay может быть использован вместе с другими пользователями:
|
||||
|
||||
Накопить на отпуск или совместные покупки с друзьями
|
||||
Отслеживать семейные траты и карманные деньги
|
||||
Управлять бизнесом, клубом, или средствами и расходами организации
|
||||
|
||||
Мы встроили следующие функции в эту версию Copay для биткойн-кошелька, которые не идут на компромисс безопасности или доступности:
|
||||
|
||||
Создание и управление множеством кошельков внутри приложения
|
||||
Интуитивно-понятная безопасность, основанная на мультиподписи, для личных и общих кошельков
|
||||
Удобный порядок предложений платежей для совместных кошельков и и групповых платежей
|
||||
Генерирование иерархически-детерминированных (HD) адресов и бэкакоп кошельков
|
||||
Безопасность на основе устройств: все закрытые ключи хранятся локально, а не в облаке
|
||||
Поддержка кошельков Bitcoin testnet
|
||||
Синхронный доступ со всех основных мобильных и настольных платформ
|
||||
Поддержка платежных протоколов (BIP70-BIP73): легко идентифицируемые платежные запросы и проверяемо-безопасные биткойн-платежи
|
||||
Поддержка отображения сумм в более чем 150 валютах и обозначение в BTC или bits
|
||||
Уведомления о платежах и переводах по email
|
||||
Настраиваемые названия кошельков и цветов фона
|
||||
4 поддерживаемых языка (английский, японский, французский, испанский)
|
||||
|
||||
Copay бесплатен и является программным обеспечением с открытым исходным кодом, запускаемым на не-проприетарных серверах, поэтому нет необходимости полагаться на какую-либо компанию и её постоянную поддержку. Любой может просмотреть и сделать предложение по изменению исходного кода Copay на GitHub (https://github.com/bitpay/copay).
|
||||
23
i18n/docs/appstore_tr.txt
Normal file
23
i18n/docs/appstore_tr.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
Bitcoinlerinizi kendi kurallarınıza göre BitPay tarafından oluşturulan açık kaynak, çoklu imzalı bir cüzdan ile koruyun.
|
||||
Copay kullanıcıları paralarını ayrı ayrı tutabilir veya çoklu imzalı cüzdanlar ile diğer kullanıcılarla arasında mali durumları paylaşabilirler ki birden fazla onay isteyen yetkilendirilmemiş ödemeleri önleyebilirler. Diğerleri ile kullanmak için bazı Copay yolları:
|
||||
|
||||
To save for vacations or joint purchases with friends
|
||||
To track family spending and allowances
|
||||
To manage business, club, or organization funds and expenses
|
||||
|
||||
We built the following features into this version of Copay for a bitcoin wallet that doesn't compromise on security or accessibility:
|
||||
|
||||
Multiple wallet creation and management in-app
|
||||
Intuitive multisignature security for personal or shared wallets
|
||||
Easy spending proposal flow for shared wallets and group payments
|
||||
Hierarchical deterministic (HD) address generation and wallet backups
|
||||
Device-based security: all private keys are stored locally, not in the cloud
|
||||
Support for Bitcoin testnet wallets
|
||||
Synchronous access across all major mobile and desktop platforms
|
||||
Payment protocol (BIP70-BIP73) support: easily-identifiable payment requests and verifiably secure bitcoin payments
|
||||
Support for 150+ currency pricing options and unit denomination in BTC or bits
|
||||
Email notifications for payments and transfers
|
||||
Customizable wallet naming and background colors
|
||||
4 supported languages (EN, JP, FR, ES)
|
||||
|
||||
Copay is free and open source software run on non-proprietary servers, so there's no need to rely on any company for continuous support. Anyone can review or contribute to Copay's source code on GitHub (https://github.com/bitpay/copay).
|
||||
23
i18n/docs/appstore_zh.txt
Normal file
23
i18n/docs/appstore_zh.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
Secure bitcoin on your own terms with an open source, multisignature wallet from BitPay.
|
||||
Copay users can hold funds individually or share finances securely with other users with multisignature wallets, which prevent unauthorized payments by requiring multiple approvals. Here are some ways Copay can be used with others:
|
||||
|
||||
To save for vacations or joint purchases with friends
|
||||
To track family spending and allowances
|
||||
可用来管理商务,团体,或集团的收支
|
||||
|
||||
We built the following features into this version of Copay for a bitcoin wallet that doesn't compromise on security or accessibility:
|
||||
|
||||
Multiple wallet creation and management in-app
|
||||
Intuitive multisignature security for personal or shared wallets
|
||||
Easy spending proposal flow for shared wallets and group payments
|
||||
Hierarchical deterministic (HD) address generation and wallet backups
|
||||
Device-based security: all private keys are stored locally, not in the cloud
|
||||
Support for Bitcoin testnet wallets
|
||||
Synchronous access across all major mobile and desktop platforms
|
||||
Payment protocol (BIP70-BIP73) support: easily-identifiable payment requests and verifiably secure bitcoin payments
|
||||
Support for 150+ currency pricing options and unit denomination in BTC or bits
|
||||
Email notifications for payments and transfers
|
||||
Customizable wallet naming and background colors
|
||||
4种可用语言 (EN,JP,FR,ES)
|
||||
|
||||
Copay is free and open source software run on non-proprietary servers, so there's no need to rely on any company for continuous support. Anyone can review or contribute to Copay's source code on GitHub (https://github.com/bitpay/copay).
|
||||
5
i18n/docs/updateinfo_de.txt
Normal file
5
i18n/docs/updateinfo_de.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
* Adaptive fee levels based on bitcoin network load
|
||||
* Option to prevent creating transactions with unconfirmed inputs
|
||||
* Added advanced sending options
|
||||
* Added Italian, Russian, and Greek language options
|
||||
* Kleinere Bug-Fixes
|
||||
5
i18n/docs/updateinfo_it.txt
Normal file
5
i18n/docs/updateinfo_it.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
* Livello della commissione basata sul carico del network bitcoin
|
||||
* Opzione per impedire la creazione di transazioni con input non confermati
|
||||
* Aggiunte le opzioni avanzate di invio
|
||||
* Aggiunto il supporto alla lingua italiana, russa e greca
|
||||
* Correzione bug minori
|
||||
5
i18n/docs/updateinfo_nl.txt
Normal file
5
i18n/docs/updateinfo_nl.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
* Adaptive fee levels based on bitcoin network load
|
||||
* Option to prevent creating transactions with unconfirmed inputs
|
||||
* Added advanced sending options
|
||||
* Added Italian, Russian, and Greek language options
|
||||
* Kleine bug fixes
|
||||
5
i18n/docs/updateinfo_ru.txt
Normal file
5
i18n/docs/updateinfo_ru.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
* Адаптивные уровни комиссий на основе загрузки сети Bitcoin
|
||||
* Опция, запрещающая создание транзакций с неподтверждёнными входами
|
||||
* Добавлены расширенные настройки отправки
|
||||
* Добавлены итальянский, русский и греческий языки
|
||||
* Исправлены мелкие ошибки
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
* Adaptive fee levels based on bitcoin network load
|
||||
* Option to prevent creating transactions with unconfirmed inputs
|
||||
* Added advanced sending options
|
||||
* Added Italian, Russian, and Greek language options
|
||||
*Küçük hata düzeltmeleri
|
||||
* Bitcoin ağ yüküne göre daha uygun ücret düzeyleri
|
||||
* Onaylanmamış girişler ile işlem oluşturmayı önlemek için tercih
|
||||
* Gelişmiş gönderme seçenekleri eklendi
|
||||
* İtalyanca, Rusça ve Yunanca dil seçenekleri eklendi
|
||||
* Ufak hata düzeltmeleri
|
||||
|
|
|
|||
5
i18n/docs/updateinfo_zh.txt
Normal file
5
i18n/docs/updateinfo_zh.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
* Adaptive fee levels based on bitcoin network load
|
||||
* Option to prevent creating transactions with unconfirmed inputs
|
||||
* Added advanced sending options
|
||||
* Added Italian, Russian, and Greek language options
|
||||
*修复一些bug
|
||||
|
|
@ -12,7 +12,7 @@ msgstr ""
|
|||
"Last-Translator: cmgustavo83\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Language: ja\n"
|
||||
"PO-Revision-Date: 2015-08-14 02:34-0400\n"
|
||||
"PO-Revision-Date: 2015-08-15 11:27-0400\n"
|
||||
|
||||
#: public/views/walletHome.html
|
||||
msgid "(possible double spend)"
|
||||
|
|
|
|||
1414
i18n/po/ko.po
Normal file
1414
i18n/po/ko.po
Normal file
File diff suppressed because it is too large
Load diff
1414
i18n/po/nl.po
Normal file
1414
i18n/po/nl.po
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -12,7 +12,7 @@ msgstr ""
|
|||
"Last-Translator: cmgustavo83\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru\n"
|
||||
"PO-Revision-Date: 2015-08-14 02:34-0400\n"
|
||||
"PO-Revision-Date: 2015-08-14 22:46-0400\n"
|
||||
|
||||
#: public/views/walletHome.html
|
||||
msgid "(possible double spend)"
|
||||
|
|
@ -24,11 +24,11 @@ msgstr "* Предложение платежа может быть удален
|
|||
|
||||
#: public/views/backup.html
|
||||
msgid "* You can safely install your backup on another device and use your wallet from multiple devices at the same time."
|
||||
msgstr "* Вы можете безопасно восстановить свой бэкап на другом устройстве и использовать ваш кошелек с нескольких устройств одновременно."
|
||||
msgstr "* Вы можете безопасно восстановить свою резервную копию на другом устройстве и использовать ваш кошелек с нескольких устройств одновременно."
|
||||
|
||||
#: public/views/backup.html
|
||||
msgid "A backup without its private key will allow the user to see the wallet balance, transactions, and create spend proposals. However, it will not be able to approve (sign) proposals."
|
||||
msgstr "Бэкап без закрытого ключа позволит пользователю видеть баланс кошелька, транзакции, и создавать предложения платежей. Однако будет невозможно одобрить (подписать) предложения."
|
||||
msgstr "Резервная копия без закрытого ключа позволит пользователю видеть баланс кошелька, транзакции, и создавать предложения платежей. Однако будет невозможно одобрить (подписать) предложения."
|
||||
|
||||
#: public/views/splash.html
|
||||
msgid "A multisignature bitcoin wallet"
|
||||
|
|
|
|||
1414
i18n/po/sq.po
Normal file
1414
i18n/po/sq.po
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue