mirror of
https://github.com/lnbits/lnbits.git
synced 2025-06-25 16:20:54 +02:00
add loop for language selection (#1725)
add languages add portuguese fix bug with singlequotes, and a vendor.json fixup formatting include bundle rename files
This commit is contained in:
parent
eab19280d5
commit
6eab3dae01
@ -1,6 +1,6 @@
|
|||||||
// update cache version every time there is a new deployment
|
// update cache version every time there is a new deployment
|
||||||
// so the service worker reinitializes the cache
|
// so the service worker reinitializes the cache
|
||||||
const CACHE_VERSION = 18
|
const CACHE_VERSION = 20
|
||||||
const CURRENT_CACHE = `lnbits-${CACHE_VERSION}-`
|
const CURRENT_CACHE = `lnbits-${CACHE_VERSION}-`
|
||||||
|
|
||||||
const getApiKey = request => {
|
const getApiKey = request => {
|
||||||
|
18
lnbits/static/bundle.min.js
vendored
18
lnbits/static/bundle.min.js
vendored
File diff suppressed because one or more lines are too long
88
lnbits/static/i18n/br.js
Normal file
88
lnbits/static/i18n/br.js
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
window.localisation.br = {
|
||||||
|
server: 'Servidor',
|
||||||
|
theme: 'Tema',
|
||||||
|
funding: 'Financiamento',
|
||||||
|
users: 'Usuários',
|
||||||
|
restart: 'Reiniciar servidor',
|
||||||
|
save: 'Salvar',
|
||||||
|
save_tooltip: 'Salvar suas alterações',
|
||||||
|
topup: 'Recarregar',
|
||||||
|
topup_wallet: 'Recarregar uma carteira',
|
||||||
|
topup_hint: 'Use o ID da carteira para recarregar qualquer carteira',
|
||||||
|
restart_tooltip: 'Reinicie o servidor para que as alterações tenham efeito',
|
||||||
|
add_funds_tooltip: 'Adicionar fundos a uma carteira.',
|
||||||
|
reset_defaults: 'Redefinir para padrões',
|
||||||
|
reset_defaults_tooltip:
|
||||||
|
'Apagar todas as configurações e redefinir para os padrões.',
|
||||||
|
download_backup: 'Fazer backup do banco de dados',
|
||||||
|
name_your_wallet: 'Nomeie sua carteira %{name}',
|
||||||
|
paste_invoice_label: 'Cole uma fatura, pedido de pagamento ou código lnurl *',
|
||||||
|
lnbits_description:
|
||||||
|
'Fácil de configurar e leve, o LNbits pode ser executado em qualquer fonte de financiamento da lightning-network, atualmente suportando LND, c-lightning, OpenNode, LNPay e até mesmo o LNbits em si! Você pode executar o LNbits para si mesmo ou oferecer facilmente uma solução de custódia para outros. Cada carteira tem suas próprias chaves de API e não há limite para o número de carteiras que você pode criar. Ser capaz de particionar fundos torna o LNbits uma ferramenta útil para gerenciamento de dinheiro e como uma ferramenta de desenvolvimento. As extensões adicionam funcionalidades extras ao LNbits para que você possa experimentar uma série de tecnologias de ponta na rede lightning. Nós tornamos o desenvolvimento de extensões o mais fácil possível e, como um projeto gratuito e de código aberto, incentivamos as pessoas a desenvolver e enviar as suas próprias.',
|
||||||
|
export_to_phone: 'Exportar para o telefone com código QR',
|
||||||
|
export_to_phone_desc:
|
||||||
|
'Este código QR contém a URL da sua carteira com acesso total. Você pode escaneá-lo do seu telefone para abrir sua carteira a partir dele.',
|
||||||
|
wallets: 'Carteiras',
|
||||||
|
add_wallet: 'Adicionar nova carteira',
|
||||||
|
delete_wallet: 'Excluir carteira',
|
||||||
|
delete_wallet_desc:
|
||||||
|
'Toda a carteira será excluída, os fundos serão IRRECUPERÁVEIS.',
|
||||||
|
rename_wallet: 'Renomear carteira',
|
||||||
|
update_name: 'Atualizar nome',
|
||||||
|
press_to_claim: 'Pressione para solicitar bitcoin',
|
||||||
|
donate: 'Doar',
|
||||||
|
view_github: 'Ver no GitHub',
|
||||||
|
voidwallet_active: 'VoidWallet está ativo! Pagamentos desabilitados',
|
||||||
|
use_with_caution: 'USE COM CAUTELA - a carteira %{name} ainda está em BETA',
|
||||||
|
toggle_darkmode: 'Alternar modo escuro',
|
||||||
|
view_swagger_docs: 'Ver a documentação da API do LNbits Swagger',
|
||||||
|
api_docs: 'Documentação da API',
|
||||||
|
commit_version: 'Versão de commit',
|
||||||
|
lnbits_version: 'Versão do LNbits',
|
||||||
|
runs_on: 'Executa em',
|
||||||
|
credit_hint: 'Pressione Enter para creditar a conta',
|
||||||
|
credit_label: '%{denomination} para creditar',
|
||||||
|
paste_request: 'Colar Pedido',
|
||||||
|
create_invoice: 'Criar Fatura',
|
||||||
|
camera_tooltip: 'Usar a câmara para escanear uma fatura / QR',
|
||||||
|
export_csv: 'Exportar para CSV',
|
||||||
|
transactions: 'Transações',
|
||||||
|
chart_tooltip: 'Mostrar gráfico',
|
||||||
|
pending: 'Pendente',
|
||||||
|
copy_invoice: 'Copiar fatura',
|
||||||
|
close: 'Fechar',
|
||||||
|
cancel: 'Cancelar',
|
||||||
|
scan: 'Escanear',
|
||||||
|
read: 'Ler',
|
||||||
|
pay: 'Pagar',
|
||||||
|
memo: 'Memo',
|
||||||
|
date: 'Data',
|
||||||
|
processing_payment: 'Processando pagamento...',
|
||||||
|
not_enough_funds: 'Fundos insuficientes!',
|
||||||
|
search_by_tag_memo_amount: 'Pesquisar por tag, memo, quantidade',
|
||||||
|
invoice_waiting: 'Fatura aguardando pagamento',
|
||||||
|
payment_received: 'Pagamento Recebido',
|
||||||
|
payment_sent: 'Pagamento Enviado',
|
||||||
|
outgoing_payment_pending: 'Pagamento pendente de saída',
|
||||||
|
drain_funds: 'Drenar Fundos',
|
||||||
|
drain_funds_desc:
|
||||||
|
'Este é um código QR de retirada do LNURL para sugar tudo desta carteira. Não compartilhe com ninguém. É compatível com balanceCheck e balanceNotify para que sua carteira possa continuar retirando os fundos continuamente daqui após a primeira retirada.',
|
||||||
|
i_understand: 'Eu entendo',
|
||||||
|
copy_wallet_url: 'Copiar URL da carteira',
|
||||||
|
disclaimer_dialog:
|
||||||
|
'Funcionalidade de login a ser lançada em uma atualização futura, por enquanto, certifique-se de marcar esta página para acesso futuro à sua carteira! Este serviço está em BETA, e não nos responsabilizamos por pessoas que perderem o acesso aos fundos.',
|
||||||
|
no_transactions: 'Ainda não foram feitas transações',
|
||||||
|
manage_extensions: 'Gerenciar extensões',
|
||||||
|
manage_server: 'Gerenciar servidor',
|
||||||
|
extensions: 'Extensões',
|
||||||
|
no_extensions: 'Você não possui nenhuma extensão instalada :(',
|
||||||
|
created: 'Criado',
|
||||||
|
payment_hash: 'Hash de pagamento',
|
||||||
|
fee: 'Taxa',
|
||||||
|
amount: 'Quantidade',
|
||||||
|
unit: 'Unidade',
|
||||||
|
description: 'Descrição',
|
||||||
|
expiry: 'Validade',
|
||||||
|
webhook: 'Webhook',
|
||||||
|
payment_proof: 'Comprovante de pagamento'
|
||||||
|
}
|
88
lnbits/static/i18n/pt.js
Normal file
88
lnbits/static/i18n/pt.js
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
window.localisation.pt = {
|
||||||
|
server: 'Servidor',
|
||||||
|
theme: 'Tema',
|
||||||
|
funding: 'Financiamento',
|
||||||
|
users: 'Usuários',
|
||||||
|
restart: 'Reiniciar servidor',
|
||||||
|
save: 'Gravar',
|
||||||
|
save_tooltip: 'Gravar as alterações',
|
||||||
|
topup: 'Reforçar conta',
|
||||||
|
topup_wallet: 'Recarregar uma carteira',
|
||||||
|
topup_hint: 'Use o ID da carteira para recarregar qualquer carteira',
|
||||||
|
restart_tooltip: 'Reinicie o servidor para que as alterações tenham efeito',
|
||||||
|
add_funds_tooltip: 'Adicionar fundos a uma carteira.',
|
||||||
|
reset_defaults: 'Redefinir para padrões',
|
||||||
|
reset_defaults_tooltip:
|
||||||
|
'Apagar todas as configurações e redefinir para os padrões.',
|
||||||
|
download_backup: 'Fazer backup da base de dados',
|
||||||
|
name_your_wallet: 'Nomeie sua carteira %{name}',
|
||||||
|
paste_invoice_label: 'Cole uma fatura, pedido de pagamento ou código lnurl *',
|
||||||
|
lnbits_description:
|
||||||
|
'Fácil de configurar e leve, o LNbits pode ser executado em qualquer fonte de financiamento da lightning-network, atualmente suportando LND, c-lightning, OpenNode, LNPay e até mesmo o LNbits em si! Você pode executar o LNbits para si mesmo ou oferecer facilmente uma solução de custódia para outros. Cada carteira tem suas próprias chaves de API e não há limite para o número de carteiras que você pode criar. Ser capaz de particionar fundos torna o LNbits uma ferramenta útil para gerenciamento de dinheiro e como uma ferramenta de desenvolvimento. As extensões adicionam funcionalidades extras ao LNbits para que você possa experimentar uma série de tecnologias de ponta na rede lightning. Nós tornamos o desenvolvimento de extensões o mais fácil possível e, como um projeto gratuito e de código aberto, incentivamos as pessoas a desenvolver e enviar as suas próprias.',
|
||||||
|
export_to_phone: 'Exportar para o telefone com código QR',
|
||||||
|
export_to_phone_desc:
|
||||||
|
'Este código QR contém a URL da sua carteira com acesso total. Você pode escaneá-lo do seu telefone para abrir sua carteira a partir dele.',
|
||||||
|
wallets: 'Carteiras',
|
||||||
|
add_wallet: 'Adicionar nova carteira',
|
||||||
|
delete_wallet: 'Excluir carteira',
|
||||||
|
delete_wallet_desc:
|
||||||
|
'Toda a carteira será excluída, os fundos serão IRRECUPERÁVEIS.',
|
||||||
|
rename_wallet: 'Renomear carteira',
|
||||||
|
update_name: 'Atualizar nome',
|
||||||
|
press_to_claim: 'Pressione para solicitar bitcoin',
|
||||||
|
donate: 'Doar',
|
||||||
|
view_github: 'Ver no GitHub',
|
||||||
|
voidwallet_active: 'VoidWallet está ativo! Pagamentos desabilitados',
|
||||||
|
use_with_caution: 'USE COM CAUTELA - a carteira %{name} ainda está em BETA',
|
||||||
|
toggle_darkmode: 'Alternar modo escuro',
|
||||||
|
view_swagger_docs: 'Ver a documentação da API do LNbits Swagger',
|
||||||
|
api_docs: 'Documentação da API',
|
||||||
|
commit_version: 'Versão de commit',
|
||||||
|
lnbits_version: 'Versão do LNbits',
|
||||||
|
runs_on: 'Executa em',
|
||||||
|
credit_hint: 'Pressione Enter para creditar a conta',
|
||||||
|
credit_label: '%{denomination} para creditar',
|
||||||
|
paste_request: 'Colar Pedido',
|
||||||
|
create_invoice: 'Criar Fatura',
|
||||||
|
camera_tooltip: 'Usar a câmara para escanear uma fatura / QR',
|
||||||
|
export_csv: 'Exportar para CSV',
|
||||||
|
transactions: 'Transações',
|
||||||
|
chart_tooltip: 'Mostrar gráfico',
|
||||||
|
pending: 'Pendente',
|
||||||
|
copy_invoice: 'Copiar fatura',
|
||||||
|
close: 'Fechar',
|
||||||
|
cancel: 'Cancelar',
|
||||||
|
scan: 'Escanear',
|
||||||
|
read: 'Ler',
|
||||||
|
pay: 'Pagar',
|
||||||
|
memo: 'Memo',
|
||||||
|
date: 'Data',
|
||||||
|
processing_payment: 'Processando pagamento...',
|
||||||
|
not_enough_funds: 'Fundos insuficientes!',
|
||||||
|
search_by_tag_memo_amount: 'Pesquisar por tag, memo, quantidade',
|
||||||
|
invoice_waiting: 'Fatura aguardando pagamento',
|
||||||
|
payment_received: 'Pagamento Recebido',
|
||||||
|
payment_sent: 'Pagamento Enviado',
|
||||||
|
outgoing_payment_pending: 'Pagamento de saída pendente',
|
||||||
|
drain_funds: 'Esvasiar carteira',
|
||||||
|
drain_funds_desc:
|
||||||
|
'Este é um código QR de saque LNURL para sacar tudo desta carteira. Não o partilhe com ninguém. É compatível com balanceCheck e balanceNotify para que a sua carteira possa continuar levantando os fundos continuamente daqui após o primeiro saque.',
|
||||||
|
i_understand: 'Eu entendo',
|
||||||
|
copy_wallet_url: 'Copiar URL da carteira',
|
||||||
|
disclaimer_dialog:
|
||||||
|
'Funcionalidade de login a ser lançada numa atualização futura, por enquanto, certifique-se que marca esta página para acesso futuro à sua carteira! Este serviço está em BETA, e não nos responsabilizamos por pessoas que perderem o acesso aos fundos.',
|
||||||
|
no_transactions: 'Ainda não foram feitas transações',
|
||||||
|
manage_extensions: 'Gerir extensões',
|
||||||
|
manage_server: 'Gerir servidor',
|
||||||
|
extensions: 'Extensões',
|
||||||
|
no_extensions: 'Não há nenhuma extensão instalada :(',
|
||||||
|
created: 'Criado',
|
||||||
|
payment_hash: 'Hash de pagamento',
|
||||||
|
fee: 'Taxa',
|
||||||
|
amount: 'Quantidade',
|
||||||
|
unit: 'Unidade',
|
||||||
|
description: 'Descrição',
|
||||||
|
expiry: 'Validade',
|
||||||
|
webhook: 'Webhook',
|
||||||
|
payment_proof: 'Comprovativo de pagamento'
|
||||||
|
}
|
@ -343,7 +343,8 @@ window.windowMixin = {
|
|||||||
user: null,
|
user: null,
|
||||||
wallet: null,
|
wallet: null,
|
||||||
payments: [],
|
payments: [],
|
||||||
allowedThemes: null
|
allowedThemes: null,
|
||||||
|
langs: []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -388,6 +389,8 @@ window.windowMixin = {
|
|||||||
window.i18n.locale = locale
|
window.i18n.locale = locale
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.g.langs = window.langs ?? []
|
||||||
|
|
||||||
addEventListener('offline', event => {
|
addEventListener('offline', event => {
|
||||||
this.g.offline = true
|
this.g.offline = true
|
||||||
})
|
})
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
"/static/i18n/fr.js",
|
"/static/i18n/fr.js",
|
||||||
"/static/i18n/nl.js",
|
"/static/i18n/nl.js",
|
||||||
"/static/i18n/we.js",
|
"/static/i18n/we.js",
|
||||||
|
"/static/i18n/pt.js",
|
||||||
|
"/static/i18n/br.js",
|
||||||
"/static/js/base.js",
|
"/static/js/base.js",
|
||||||
"/static/js/components.js",
|
"/static/js/components.js",
|
||||||
"/static/js/bolt11-decoder.js"
|
"/static/js/bolt11-decoder.js"
|
||||||
|
@ -78,55 +78,18 @@
|
|||||||
icon="language"
|
icon="language"
|
||||||
class="q-pl-md"
|
class="q-pl-md"
|
||||||
>
|
>
|
||||||
<q-list>
|
<q-list v-for="(lang, index) in g.langs" :key="index">
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('en')">
|
<q-item
|
||||||
<q-item-section>
|
clickable
|
||||||
<q-item-label>EN</q-item-label>
|
v-close-popup
|
||||||
</q-item-section>
|
@click="changeLanguage(lang.value)"
|
||||||
</q-item>
|
><q-item-section>
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('de')">
|
{% raw %}
|
||||||
<q-item-section>
|
<q-item-label
|
||||||
<q-item-label>DE</q-item-label>
|
>{{lang.display ?? lang.value.toUpperCase()}}</q-item-label
|
||||||
</q-item-section>
|
>
|
||||||
</q-item>
|
<q-tooltip>{{lang.label}}</q-tooltip>
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('es')">
|
{% endraw %}
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>ES</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('jp')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>JP</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('fr')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>FR</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('we')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>WE</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('it')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>IT</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('pi')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>PI</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('pl')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>PL</q-item-label>
|
|
||||||
</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item clickable v-close-popup @click="changeLanguage('nl')">
|
|
||||||
<q-item-section>
|
|
||||||
<q-item-label>NL</q-item-label>
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@ -328,11 +291,25 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
<!---->
|
<!---->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
const themes = {{ LNBITS_THEME_OPTIONS | tojson }}
|
const themes = {{ LNBITS_THEME_OPTIONS | tojson }}
|
||||||
const LNBITS_DENOMINATION = {{ LNBITS_DENOMINATION | tojson}}
|
const LNBITS_DENOMINATION = {{ LNBITS_DENOMINATION | tojson }}
|
||||||
if (themes && themes.length) {
|
if (themes && themes.length) {
|
||||||
window.allowedThemes = themes.map(str => str.trim())
|
window.allowedThemes = themes.map(str => str.trim())
|
||||||
}
|
}
|
||||||
|
window.langs = [
|
||||||
|
{value: 'en', label: 'English', display: 'EN'},
|
||||||
|
{value: 'de', label: 'Deutsch', display: 'DE'},
|
||||||
|
{value: 'es', label: 'Español', display: 'ES'},
|
||||||
|
{value: 'jp', label: '日本語', display: 'JP'},
|
||||||
|
{value: 'fr', label: 'Français', display: 'FR'},
|
||||||
|
{value: 'it', label: 'Italiano', display: 'IT'},
|
||||||
|
{value: 'pi', label: 'Pirate', display: 'PI'},
|
||||||
|
{value: 'nl', label: 'Nederlands', display: 'NL'},
|
||||||
|
{value: 'we', label: 'Cymraeg', display: 'CY'},
|
||||||
|
{value: 'pl', label: 'Polski', display: 'PL'},
|
||||||
|
{value: 'pt', label: 'Português', display: 'PT'},
|
||||||
|
{value: 'br', label: 'Português', display: 'BR'}
|
||||||
|
]
|
||||||
</script>
|
</script>
|
||||||
{% block scripts %}{% endblock %}
|
{% block scripts %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
|
@ -72,6 +72,8 @@
|
|||||||
"/static/i18n/fr.js",
|
"/static/i18n/fr.js",
|
||||||
"/static/i18n/nl.js",
|
"/static/i18n/nl.js",
|
||||||
"/static/i18n/we.js",
|
"/static/i18n/we.js",
|
||||||
|
"/static/i18n/pt.js",
|
||||||
|
"/static/i18n/br.js",
|
||||||
"/static/js/base.js",
|
"/static/js/base.js",
|
||||||
"/static/js/components.js",
|
"/static/js/components.js",
|
||||||
"/static/js/bolt11-decoder.js"
|
"/static/js/bolt11-decoder.js"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user