Skip to content

Commit

Permalink
Merge pull request #9421 from cmgustavo/ref/translation-03
Browse files Browse the repository at this point in the history
Ref/translation 03
  • Loading branch information
gabrielbazan7 authored Dec 24, 2018
2 parents c3c451e + e8d94a0 commit 3867074
Show file tree
Hide file tree
Showing 45 changed files with 3,660 additions and 3,447 deletions.
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,14 @@ src/theme/overrides.scss
src/assets/appConfig.json
src/assets/externalServices.json
src/assets/img/app
src/assets/i18n/crowdin_api_key.txt
src/assets/i18n/po/*.mo
src/index.html
src/manifest.json
src/environments/index.ts

# Crowdin API key
i18n/crowdin_api_key.txt
src/assets/i18n/*.mo

test/visual/latest
test/visual/diffs
test/visual/report.html
Expand Down
160 changes: 160 additions & 0 deletions i18n/crowdin_download.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
#!/usr/bin/env node

'use strict';

console.log(
'\nPlease remember to build translations ' +
'before to download and commit new changes\n'
);

var fs = require('fs');
var path = require('path');
var https = require('https');
var AdmZip = require('adm-zip');

var crowdin_identifier = 'copay';

var local_file_name2 = path.join(__dirname, 'docs/appstore_en.txt');
var local_file_name3 = path.join(__dirname, 'docs/updateinfo_en.txt');

try {
fs.statSync(local_file_name2);
fs.statSync(local_file_name3);
} catch (e) {
console.log(
'\n### ABORTING ### One of the following files does not exist:\n' +
local_file_name2 +
'\n' +
local_file_name3
);
process.exit(1);
}

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'
);
process.exit(1);
}

// Download most recent translations for all languages.
https.get(
'https://api.crowdin.com/api/project/' +
crowdin_identifier +
'/download/all.zip?key=' +
crowdin_api_key,
function(res) {
var data = [],
dataLen = 0;

res
.on('data', function(chunk) {
data.push(chunk);
dataLen += chunk.length;
})
.on('end', function() {
var buf = new Buffer.alloc(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('/tmp/copay', true);
console.log('Done extracting ZIP file.');

var files = fs.readdirSync('/tmp/copay/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('/tmp/copay/po');

for (var i in files) {
var po_file = fs.readFileSync('/tmp/copay/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, '../src/assets/i18n/' + 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, '../src/assets/i18n/' + 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, '../src/assets/i18n/' + files[i])
);
}
}
}

console.log('Cleaned out completely untranslated po files.');
});
}
);
3 changes: 1 addition & 2 deletions src/assets/i18n/crowdin_update.js → i18n/crowdin_update.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ var https = require('https');

var crowdin_identifier = 'copay';

var local_file_name1 = path.join(__dirname, 'po/template.pot');
var local_file_name1 = path.join(__dirname, 'template.pot');

// Similar to Github, normalize all line breaks to CRLF so that different people
// using different OSes to update does not constantly swith format back and forth.
Expand Down Expand Up @@ -62,7 +62,6 @@ if (crowdin_api_key != '') {
}
};

console.log(`OPTIONS: ${JSON.stringify(options)}`);
var req = https.request(options, response => {
console.log(`STATUS: ${response.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(response.headers)}`);
Expand Down
23 changes: 23 additions & 0 deletions i18n/docs/appstore_de.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Sichere Bitcoins zu eigenen Bedingungen, mit einem quelloffenen Gemeinschaftswallet (elektronische Brieftasche mit Mehrfachunterschriften) von BitPay.
Copay Nutzer können ihre Beträge individuell speichern oder ihre Finanzen mit anderen Nutzern in Gemeinschaftswallets teilen, die je nach Einstellung mehrere Bestätigungen (elektronische Unterschriften) benötigen und so nichtautorisierte Zahlungen verhindern. Ein paar Einsatzmöglichkeiten, wie ein solches Wallet mit anderen Copayern genutzt werden kann:

Ansparen von Beträgen für Urlaub oder gemeinsame Anschaffungen (z.B. mit Freunden)
Überwachung von Ausgaben und Einkünften der Familie.
Organisation der Ausgaben in Firmen, Vereinen oder Organisationen.

Folgende Funktionen wurden in diese Version von Copay eingebaut um ein Bitcoin Wallet anzubieten, das keine Kompromisse in Sicherheit oder Zugänglichkeit eingeht:

Anlage und Verwaltung von mehreren Wallets innerhalb der Anwendung
Intiutive mehrfachunterschriften Sicherheit für persönliche und geteilete Wallets
Einfache Ausgabenvorschläge für geteilte Walltes und Gruppenzahlungen
Hierarchische deterministische(HD) Adresserzeugung und Sicherung der Wallets
Gerätebasierte Sicherheit: Alle privaten Schlüssel werden auf dem Gerät und nicht in der Cloud gespreichert
Unterstützung von Bitcoin Testnet Wallets
Gleichzeitiger Zugriff über alle wichtigen mobilen Systeme und Desktop-Plattformen
Zahlungsprotokoll (BIP70-BIP73) Unterstützung: Leicht identifizierbare Zahlungsanforderungen und nachvollziehbare sichere Bitcoinzahlungen.
Unterstützung von 150+ verschiedenen Währungen und Stückelung in BTC oder bits
E-Mail Benachrichtigung für Zahlungen und Transaktionen
Anpasspare Wallets: Eigene Namen und Hintergrundfarben
Unterstützung von 9 Sprachen (EN, CS, FR, DE, IT, ES, JA, PL, RU)

Copay ist eine kostenlose und quelloffene Software, die auf nicht firmeneigenen Servern läuft und es somit nicht nötig ist, sich auf ein bestimmtes Unternehmen und dessen kontinuierliche Unterstützung zu verlassen. Jeder hat die Möglichkeit den Quelltext zu überprüfen oder auf GitHub (https://github.com/bitpay/copay) eigene Änderungen beizutragen und an der Weiterentwicklung mitzuwirken.
46 changes: 23 additions & 23 deletions src/assets/i18n/docs/appstore_en.txt → i18n/docs/appstore_en.txt
Original file line number Diff line number Diff line change
@@ -1,23 +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
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
9 supported languages (EN, CS, FR, DE, IT, ES, JA, PL, RU)

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).
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
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
9 supported languages (EN, CS, FR, DE, IT, ES, JA, PL, RU)
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 changes: 23 additions & 0 deletions i18n/docs/appstore_es.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Asegura tus bitcoin con tus propias reglas con el monedero de código abierto, multifirma de BitPay.
Los usuario de Copay pueden mantener sus fondos individuales o compartir sus finanzas de forma segura con otros usuarios utilizando monederos multifirmas, que previenen de pagos sin autorización al requerir múltiples aprobaciones. Estas son algunas formas en que puede ser utilizado Copay con otros usuarios:

Ahorrar para vacaciones o compras conjuntas con amigos
Controlar los gastos familiares
Manejar los fondos y gastos de negocios, clubes y organizaciones.

Construimos las siguientes características en esta versión de Copay que no compromete la seguridad ni la accesibilidad:

Creación y manejo de múltiples monederos dentro de la misma aplicación
Seguridad multifirma intuitiva para monederos personales y compartidos
Sencillo flujo de propuesta de gastos para monederos compartidos y grupos de pagos
Generación de direcciones HD (Hierarchical deterministic) y copias de seguridad
Seguridad basada en el dispositivo: todas las claves privadas se guardan localmente, no en la nube
Soporta monederos bitcoin en testnet
Acceso sincrónico desde las principales plataformas móviles y de escritorio
Soporte al protocolo de pago (BIP70-BIP73): solicitudes de pagos fácilmente identificable y verificables como pago seguro en bitcoin
Soporte a más de 150 precios de monedas y unidades de denominación en BTC o bits
Notificaciones por email de pagos y transferencias
Monederos con nombres y colores de fondo personalizables
Soporte en 9 idiomas (EN, CS, FR, DE, IT, ES, JA, PL, RU)

Copay es un software gratuito y de código abierto que funciona en servidores no-propietarios, por lo que no es necesario confiar en una empresa para soporte continuo. Cualquier persona puede revisar y contribuir al código fuente de Copay en GitHub (https://github.com/bitpay/copay).
File renamed without changes.
23 changes: 23 additions & 0 deletions i18n/docs/appstore_it.txt
Original file line number Diff line number Diff line change
@@ -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
9 lingue supportate (EN, CS, FR, DE, IT, ES, JA, PL, RU)

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 changes: 23 additions & 0 deletions i18n/docs/appstore_ja.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
ビットコインにおける高度なセキュリティーを手軽に扱えるオープンソースマルチシグネチャウォレットです。
Copayは個人のご利用はもちろんのこと、複数人によるウォレット管理の権限分散も簡単なウォレットソフトを通してご活用いただけます。 例えば:

友達との旅行や買い物のために透明性抜群の環境で貯蓄したい時
家族のお小遣いや日常の家計簿管理がしたい時
ビジネス・クラブ・団体の資金や財産管理を透明な管理分散がしたい時

下記の機能でセキュリティーも利便性も妥協しない最高のウォレットをCopayでご提供させていただきました:

■ 複数のウォレットの作成・管理がアプリ内で管理可能
■ マルチシグネチャのウォレット分散管理でも個人ウォレットでも使いやすさ抜群
■ 送金の提案・承認・却下の流れが非常に直感的で分散管理が簡単
■ 階級的決定性ウォレット(HDウォレット)でアドレス生成とバックアップ管理をしているためバックアップは永久に各参加者1回ずつのみ
■ 端末に依存するセキュリティー、秘密鍵が全て端末に保管され、サーバに送ることは無い
■ ビットコインの開発テスト用ネットワークにも対応
■ メジャーなプラットフォーム全てに対応 (Windows, Mac, Linux, Android, iPhone, Windows Phone)
■ ペイメントプロトコルにも対応(BIP 70-73)、暗号通信と証明書を使ったマーチャントとの安全なペイメントの実現
■ 世界中の150個以上の通貨の表示に対応、自国通貨との為替レートを計算する必要なし。ビットコインの単位も BTC と bits にも対応
■ ペイメントや提案のメール通知も可能
■ ウォレットごとの背景色設定や通称設定も可能でカスタマイズ性抜群
■ 9ヶ国語対応 (英日仏西伊独捷葡露)

Copayは永久無料でオープンソースのソフトです。サーバーもオープンソースなので、独自運用や法人の利用やソース流用は許可します。 ソースをご覧の際に間違いなどが見つかった場合、Githubにてご報告・ソース修正のプルリクエストなどをお願いします。(https://github.com/bitpay/copay)
Loading

0 comments on commit 3867074

Please sign in to comment.