mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 01:36:13 +00:00
Merge pulls #974 & 984
- 974: Update Text on "You Need to Know" - 984: Update text on Bitcoin For X pages
This commit is contained in:
commit
d6d42e8b6c
75 changed files with 1254 additions and 968 deletions
150
README.md
150
README.md
|
@ -538,34 +538,148 @@ is the particular version:
|
|||
|
||||
### Alerts
|
||||
|
||||
Network alerts should be placed in `_alerts/YYYY-MM-DD-SHORTITLE.html` and adhere to this format:
|
||||
1. [Who to contact](#who-to-contact)
|
||||
2. [Basic alert](#basic-alert) (emergency fast instructions)
|
||||
3. [Detailed alert](#detailed-alert)
|
||||
4. [Clearing an alert](#clearing-an-alert)
|
||||
|
||||
```
|
||||
#### Who to Contact
|
||||
|
||||
The following people can publish alerts on Bitcoin.org. Their email
|
||||
addresses are on the linked GitHub profiles.
|
||||
|
||||
- Saïvann Carignan, [@saivann](https://github.com/saivann), saivann on Freenode
|
||||
- Dave Harding, [@harding](https://github.com/harding), harding on Freenode
|
||||
- Wladimir van der Laan, [@laanwj](https://github.com/laanwj), wumpus on Freenode
|
||||
- Theymos, [@theymos](https://github.com/theymos), theymos on Freenode
|
||||
|
||||
Several of the above are only occasionally on Freenode. Alert
|
||||
coordination is usually conducted in #bitcoin-dev on Freenode.
|
||||
|
||||
#### Basic Alert
|
||||
|
||||
1. Open your editor on a file named `_alerts/YYYY-MM-DD-short-title.md`
|
||||
(the alert will appear as <https://bitcoin.org/en/alert/YYYY-MM-DD-short-title>).
|
||||
|
||||
2. Paste the following text into the top of the file:
|
||||
|
||||
```
|
||||
---
|
||||
## Title displayed on alert page
|
||||
title: "11/12 March 2013 Chain Fork"
|
||||
## Short URL for use in P2P network alerts: https://bitcoin.org/<shorturl>
|
||||
shorturl: "chainfork"
|
||||
## Active alerts will display the banner (below) on all bitcoin.org content pages
|
||||
active: true
|
||||
## Banner displayed if 'active: true'. Can use HTML formatting
|
||||
banner: "<b>Chain fork</b> - Please stop mining on bitcoin version 0.8.0. Click here for more information."
|
||||
---
|
||||
|
||||
{% comment %}
|
||||
First paragraph should indicate whose bitcoins are safe, to avoid
|
||||
starting a panic.
|
||||
{% comment %}
|
||||
|
||||
Your bitcoins are safe if you received them in transactions
|
||||
confirmed before 2015-07-06 00:00 UTC.
|
||||
|
||||
{% comment %}
|
||||
Second paragraph should summarize the problem, and subsequent
|
||||
text should indicate what people should do immediately.
|
||||
Consider: users (by wallet type), merchants, and miners.
|
||||
{% comment %}
|
||||
|
||||
However, there has been a problem with a planned upgrade. For
|
||||
bitcoins received later than the time above, confirmation scores are
|
||||
significantly less reliable then they usually are for users of
|
||||
certain software:
|
||||
|
||||
- Lightweight (SPV) wallet users should wait an additional 30
|
||||
confirmations more than you would normally wait. Electrum users,
|
||||
please see this note.
|
||||
```
|
||||
|
||||
- Edit the file. It is written in [Markdown format][].
|
||||
|
||||
- Commit it.
|
||||
|
||||
- **Note:** the commit must be signed by one of the people in the
|
||||
[Who to Contact](#who-to-contact) section for site
|
||||
auto-building to work.
|
||||
|
||||
- Push the commit to the master branch. Rebuilding the site occurs
|
||||
automatically and takes 7 to 15 minutes.
|
||||
|
||||
- **Note:** do not push additional commits until the alert is
|
||||
displayed on the live site. The site build aborts and starts over
|
||||
when new commits are found.
|
||||
|
||||
- Give the `shorturl` URL (`bitcoin.org/<shorturl>`) to the P2P alert message
|
||||
key holders to use in any alert messages they send.
|
||||
|
||||
- Proceed to the next section to improve the alert.
|
||||
|
||||
#### Detailed Alert
|
||||
|
||||
In addition to providing more information about how users should respond
|
||||
to the situation, you can enhance the alert in several ways described
|
||||
below.
|
||||
|
||||
The following fields may be defined in the the alert YAML header:
|
||||
|
||||
```yaml
|
||||
---
|
||||
## (Required; HTML text) Title displayed on alert page
|
||||
title: "11/12 March 2013 Chain Fork"
|
||||
alias: "chainfork"
|
||||
## (Optional; display ASCII only) Short URL for use in P2P network alerts: https://bitcoin.org/<shorturl>
|
||||
shorturl: "chainfork"
|
||||
## (Optional; default=false) Active alerts will display the banner (below) on all bitcoin.org content pages
|
||||
active: true
|
||||
## (Optional; HTML text) Banner displayed if 'active: true'. Can use HTML formatting
|
||||
banner: "<b>Chain fork</b> - Please stop mining on bitcoin version 0.8.0. Click here for more information."
|
||||
## (Optional; default=alert) CSS class to set banner color
|
||||
## alert = red | warning = orange | success = green | info = blue
|
||||
bannerclass: alert
|
||||
---
|
||||
```
|
||||
|
||||
<p>
|
||||
A chain fork is happening. Please stop mining on bitcoin version 0.8.0. Your bitcoins are safe but it is recommended that you postpone your Bitcoin transactions for the next hours.
|
||||
</p>
|
||||
<p>
|
||||
More information will follow.
|
||||
</p>
|
||||
The time of the last update should be placed on the page somewhere. UTC
|
||||
should be used for all dates, and RFC 2822 format ( date -uR ) is
|
||||
recommended for long dates. For example, place the date in the footer of
|
||||
the document:
|
||||
|
||||
```html
|
||||
<div style="text-align:right">
|
||||
<i>This notice last updated: Thu, 16 May 2013 01:37:00 UTC</i>
|
||||
</div>
|
||||
|
||||
```
|
||||
* `SHORTTITLE` is used to construct the URL.
|
||||
* `title: ...` will be used as the title in the layout.
|
||||
* `alias: ...` (optional) a short alias for Bitcoin Core alerts. Ex. "dos" will produce /dos.html
|
||||
* `active: ...` (true or false) define if the alert should appear as ongoing in the network status page.
|
||||
* `banner: ...` (optional) a short text that will be displayed in an alert banner and link to the alert page.
|
||||
* `bannerclass: ...` (optional) a CSS class that sets the color of the banner. Possible values: alert (default red), warning (orange), success (green), info (blue).
|
||||
* `last updated: ...` should be kept up to date and be in RFC 2822 format ( date -uR ).
|
||||
|
||||
You may also want to create a page on the Wiki to allow anyone to
|
||||
provide additional information. If you do so, link to it from the
|
||||
alert.
|
||||
|
||||
#### Clearing An Alert
|
||||
|
||||
To stop advertising an alert on every Bitcoin.org page, change the YAML
|
||||
header field `active` to *false*:
|
||||
|
||||
```yaml
|
||||
## (Optional; default=false) Active alerts will display the banner (below) on all bitcoin.org content pages
|
||||
active: false
|
||||
```
|
||||
|
||||
Alternatively, for a few days you can change the message and set the
|
||||
CSS `bannerclass` to *success* to indicate the problem has been resolved.
|
||||
|
||||
```yaml
|
||||
## (Optional; HTML text) Banner displayed if 'active: true'. Can use HTML formatting
|
||||
banner: "<b>Chain fork</b> - situation resolved"
|
||||
## (Optional; default=alert) CSS class to set banner color
|
||||
## alert = red | warning = orange | success = green | info = blue
|
||||
bannerclass: success
|
||||
```
|
||||
|
||||
[markdown format]: https://help.github.com/articles/markdown-basics/
|
||||
|
||||
## Wallets
|
||||
|
||||
|
@ -586,6 +700,7 @@ Basic requirements:
|
|||
- SSL certificate passes [Qualys SSL Labs SSL test](https://www.ssllabs.com/ssltest/)
|
||||
- Website serving executable code or requiring authentication uses HSTS with a max-age of at least 180 days
|
||||
- The identity of CEOs and/or developers is public
|
||||
- Avoid address reuse by using a new change address for each transaction
|
||||
- If private keys or encryption keys are stored online:
|
||||
- Refuses weak passwords (short passwords and/or common passwords) used to secure access to any funds, or provides an aggressive account lock-out feature in response to failed login attempts along with a strict account recovery process.
|
||||
- If user has no access over its private keys:
|
||||
|
@ -611,7 +726,6 @@ Basic requirements:
|
|||
Optional criterias (some could become requirements):
|
||||
|
||||
- Received independent security audit(s)
|
||||
- Avoid address reuse by using a new change address for each transaction
|
||||
- Avoid address reuse by displaying a new receiving address for each transaction in the wallet UI
|
||||
- Does not show "received from" Bitcoin addresses in the UI
|
||||
- Uses deterministic ECDSA nonces (RFC 6979)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "February 20, 2012 Protocol Changes"
|
||||
alias: "feb20"
|
||||
shorturl: "feb20"
|
||||
active: false
|
||||
banner: ""
|
||||
---
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "Potentially Critical Security Vulnerability"
|
||||
alias: "critfix"
|
||||
shorturl: "critfix"
|
||||
active: false
|
||||
banner: ""
|
||||
---
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "CVE-2012-2459: Critical Vulnerability (denial-of-service)"
|
||||
alias: "dos"
|
||||
shorturl: "dos"
|
||||
active: false
|
||||
banner: ""
|
||||
---
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "11/12 March 2013 Chain Fork Information"
|
||||
alias: "chainfork"
|
||||
shorturl: "chainfork"
|
||||
active: false
|
||||
banner: ""
|
||||
---
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "15 May 2013 Upgrade Deadline"
|
||||
alias: "may15"
|
||||
shorturl: "may15"
|
||||
active: false
|
||||
banner: ""
|
||||
---
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
title: "Android Security Vulnerability"
|
||||
active: false
|
||||
alias: "android"
|
||||
shorturl: "android"
|
||||
banner: ""
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "OpenSSL Heartbleed vulnerability"
|
||||
alias: "heartbleed"
|
||||
shorturl: "heartbleed"
|
||||
active: false
|
||||
banner: ""
|
||||
---
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
## http://opensource.org/licenses/MIT.
|
||||
|
||||
title: "Some Miners Generating Invalid Blocks"
|
||||
alias: "spv-mining"
|
||||
shorturl: "spv-mining"
|
||||
active: false
|
||||
#banner: "WARNING: many wallets currently vulnerable to double-spending of confirmed transactions (click here to read)"
|
||||
bannerclass: "alert"
|
||||
|
|
|
@ -28,6 +28,7 @@ HTML::Proofer.new(
|
|||
## Links to ignore
|
||||
:href_ignore => [
|
||||
'#', ## hrefs pointing to the current page (htmlproofer fails them)
|
||||
/^$/, ## anchors with no href attribute set (for clickable javascript elements)
|
||||
/^\/bin/, ## /bin dir is not part of repository; holds Bitcoin Core binaries
|
||||
/^\/stats/ ## /stats dir is not part of repository; generated by separate stats script
|
||||
],
|
||||
|
|
108
_events.yml
108
_events.yml
|
@ -1,91 +1,3 @@
|
|||
- date: 2015-06-24
|
||||
title: "London Blockchain Conference"
|
||||
venue: "The London Escalator"
|
||||
address: "69-89 Mile End Rd, E1 4TT"
|
||||
city: "London"
|
||||
country: "United Kingdom"
|
||||
link: "http://blockchainlondon.com/"
|
||||
|
||||
- date: 2015-06-26
|
||||
title: "HVA Blockchain blockstrap course"
|
||||
venue: "Amsterdam University of Applied Sciences"
|
||||
address: "Duivendrechtsekade 36-38"
|
||||
city: "Amsterdam"
|
||||
country: "Netherlands"
|
||||
link: "https://bitcoinembassy.nl/hva-blockchain-blockstrap-course-amsterdam-2015-06-26/"
|
||||
|
||||
- date: 2015-06-29
|
||||
title: "Blockchain Payments"
|
||||
venue: "Deloitte Amsterdam"
|
||||
address: "Gustav Mahlerlaan 2970"
|
||||
city: "Amsterdam"
|
||||
country: "The Netherlands"
|
||||
link: "https://www.about-payments.com/newsroom/events/blockchain-payments-2015-29-june-2015"
|
||||
|
||||
- date: 2015-07-01
|
||||
title: "Bitcoin Wednesday 2-Year Anniversary Conference"
|
||||
venue: "VondelCS: The media, culture and broadcasting center in Amsterdam for national broadcaster AVROTROS."
|
||||
address: "Vondelpark 3"
|
||||
city: "Amsterdam"
|
||||
country: "The Netherlands"
|
||||
link: "http://www.bitcoinwednesday.com/event/bitcoin-wednesday-25/"
|
||||
|
||||
- date: 2015-07-02
|
||||
title: "Blockchain Incredible Party"
|
||||
venue: "Hub Odessa"
|
||||
address: "Grecheskaya str. 1a"
|
||||
city: "Odessa"
|
||||
country: "Ukraine"
|
||||
link: "http://bip001.com"
|
||||
|
||||
- date: 2015-07-06
|
||||
title: "The New Context"
|
||||
venue: "Toranomon Hills Forum"
|
||||
address: "23 Toranomon 1 chome, Minato-ku, 105-6305"
|
||||
city: "Tokyo"
|
||||
country: "Japan"
|
||||
link: "http://ncc.garage.co.jp/en/"
|
||||
|
||||
- date: 2015-07-08
|
||||
title: "WIRED Money"
|
||||
venue: "The British Museum"
|
||||
address: "Great Russell Street, WC1B 3DG"
|
||||
city: "London"
|
||||
country: "United Kingdom"
|
||||
link: "http://www.wiredevent.co.uk/wired-money-2015"
|
||||
|
||||
- date: 2015-07-10
|
||||
title: "Inside Bitcoins Chicago"
|
||||
venue: "Navy Pier"
|
||||
address: "600 East Grand Ave, Chicago, IL 60611"
|
||||
city: "Chicago"
|
||||
country: "United States"
|
||||
link: "http://insidebitcoins.com/chicago/2015?utm_source=bitcoinorg&utm_medium=eventlisting&utm_campaign=bitcoinorgeventlistingibchicago"
|
||||
|
||||
- date: 2015-07-18
|
||||
title: "III Brazilian Bitcoin Conference"
|
||||
venue: "Centro de Inovação ACATE Primavera"
|
||||
address: "Rodovia SC 401, Km 4 | Bairro Saco Grande"
|
||||
city: "Florianopolis"
|
||||
country: "Brazil"
|
||||
link: "http://www.bitconf.com.br"
|
||||
|
||||
- date: 2015-07-18
|
||||
title: "avalBit: Pay Paella with bitcoin "
|
||||
venue: "Polígono Industrial Plá dels Olivars"
|
||||
address: "Av espinoca"
|
||||
city: "Valencia"
|
||||
country: "Spain"
|
||||
link: "http://avalbit.org/actividades/evento-pagar-paella-birras-y-bitcoins/"
|
||||
|
||||
- date: 2015-07-28
|
||||
title: "Digital Currencies + The Blockchain"
|
||||
venue: "Convene"
|
||||
address: "730 Third Avenue, 10017"
|
||||
city: "New York"
|
||||
country: "United States"
|
||||
link: "http://www.americanbanker.com/conferences/digitalcurrencies/"
|
||||
|
||||
- date: 2015-08-03
|
||||
title: "Keynote"
|
||||
venue: "Park Plaza Hotel"
|
||||
|
@ -96,8 +8,8 @@
|
|||
|
||||
- date: 2015-08-05
|
||||
title: "Bitcoin Wednesday #26"
|
||||
venue: "VondelCS: The media, culture and broadcasting center in Amsterdam for national broadcaster AVROTROS."
|
||||
address: "Vondelpark 3"
|
||||
venue: "Rockstart Ballroom"
|
||||
address: "Rockstart Accelerator, Herengracht 182"
|
||||
city: "Amsterdam"
|
||||
country: "The Netherlands"
|
||||
link: "http://www.bitcoinwednesday.com/event/bitcoin-wednesday-26/"
|
||||
|
@ -118,6 +30,14 @@
|
|||
country: "United States"
|
||||
link: "http://cryptolina.com/"
|
||||
|
||||
- date: 2015-09-02
|
||||
title: "Bitcoin Wednesday Conference"
|
||||
venue: Rockstart Ballroom
|
||||
address: Rockstart Accelerator, Herengracht 182
|
||||
city: "Amsterdam"
|
||||
country: "The Netherlands"
|
||||
link: "http://www.bitcoinwednesday.com/event/bitcoin-wednesday-27/"
|
||||
|
||||
- date: 2015-09-10
|
||||
title: "Consensus 2015"
|
||||
venue: "TimesCenter"
|
||||
|
@ -174,6 +94,14 @@
|
|||
country: "United States"
|
||||
link: "http://www.imtconferences.com/mtbit/"
|
||||
|
||||
- date: 2015-12-14
|
||||
title: "Inside Bitcoins San Diego"
|
||||
venue: "San Diego Convention Center"
|
||||
address: "111 W. Harbor Drive"
|
||||
city: "San Diego"
|
||||
country: "United States"
|
||||
link: "http://insidebitcoins.com/san-diego/2015?utm_source=bitcoinorg&utm_medium=eventlisting&utm_campaign=bitcoinorgeventlistingibsd"
|
||||
|
||||
- date: 2016-04-04
|
||||
title: "Money 20/20 Europe"
|
||||
venue: "Bella Center"
|
||||
|
|
|
@ -6,7 +6,7 @@ http://opensource.org/licenses/MIT.
|
|||
<!--Temporary disclaimer BEGIN-->
|
||||
<div id="develdocdisclaimer" class="develdocdisclaimer"><div>
|
||||
<b>BETA</b>: This documentation has not been extensively reviewed by Bitcoin experts and so likely contains numerous errors. Please use the <em>Issue</em> and <em>Edit</em> links on the bottom left menu to help us improve. <a href="#" onclick="disclaimerClose(event);">Click here</a> to close this disclaimer.
|
||||
<a class="develdocdisclaimerclose" href="#" onclick="disclaimerClose(event);">X</a>
|
||||
<a class="develdocdisclaimerclose" onclick="disclaimerClose(event);">X</a>
|
||||
</div></div>
|
||||
<script>disclaimerAutoClose();</script>
|
||||
<!--Temporary disclaimer END-->
|
||||
|
|
|
@ -4,7 +4,7 @@ http://opensource.org/licenses/MIT.
|
|||
{% endcomment %}
|
||||
|
||||
<p class="mainsummary">{% translate listintro %}</p>
|
||||
<div class="mainvideo"><div onclick="loadYoutubeVideo(event);" data-youtubeurl="//www.youtube.com/embed/Gc2en3nHxA4?rel=0&showinfo=0&wmode=opaque&autoplay=1{% if page.lang != 'en' %}&cc_load_policy=1&hl={{ page.lang }}&cc_lang_pref={{ page.lang }}{% endif %}">
|
||||
<div class="mainvideo"><div onclick="loadYoutubeVideo(event);" ontouchstart="loadYoutubeVideo(event);" data-youtubeurl="//www.youtube.com/embed/Gc2en3nHxA4?rel=0&showinfo=0&wmode=opaque&autoplay=1{% if page.lang != 'en' %}&cc_load_policy=1&hl={{ page.lang }}&cc_lang_pref={{ page.lang }}{% endif %}">
|
||||
<img src="/img/video/video_wuc.jpg" alt="Youtube video">
|
||||
<div class="mainvideoicon"></div>
|
||||
<div class="mainvideoiconhover"></div>
|
||||
|
|
28
_includes/layout/base/breadcrumbs.html
Normal file
28
_includes/layout/base/breadcrumbs.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<div class="breadcrumbs">
|
||||
{% for crumb in page.breadcrumbs %}
|
||||
{% if forloop.last %}
|
||||
{% case crumb %}
|
||||
{% when "GLOSSARY_ENTRY_TITLE" %}
|
||||
{% comment %} ## Only show first synonym in crumb ## {% endcomment %}
|
||||
{% for synonym in page.required.synonyms_shown_in_glossary_capitalize_first_letter %}
|
||||
{% if forloop.first %}{{synonym}}{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}{{crumb}}
|
||||
{% endcase %}
|
||||
{% else %}
|
||||
{% case crumb %}
|
||||
{% comment %}/// Alphabetical order by crumb \\\{% endcomment %}
|
||||
{% when "bitcoin" %}<a href="/{{page.lang}}/">{% translate bitcoin vocabulary %}</a>
|
||||
{% when "dev docs" %}<a href="/en/developer-documentation">Dev Docs</a>
|
||||
{% when "glossary" %}<a href="/en/developer-glossary">Glossary</a>
|
||||
{% else %}{% die "Breadcrumb not found in _includes/layout/breadcrumbs.html" %}
|
||||
{% endcase %}
|
||||
>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
8
_includes/layout/base/content.html
Normal file
8
_includes/layout/base/content.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<div id="content" class="content">
|
||||
{{ content }}
|
||||
</div>
|
9
_includes/layout/base/footer-js.html
Normal file
9
_includes/layout/base/footer-js.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<script type="text/javascript">
|
||||
fallbackSVG();
|
||||
addAnchorLinks();
|
||||
</script>
|
6
_includes/layout/base/footer-license.html
Normal file
6
_includes/layout/base/footer-license.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<div class="footerlicense">© Bitcoin Project 2009-{{ site.time | date: '%Y' }} {% translate footer layout %}</div>
|
18
_includes/layout/base/footer-menu.html
Normal file
18
_includes/layout/base/footer-menu.html
Normal file
|
@ -0,0 +1,18 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<div class="footermenu">
|
||||
<a href="/en/alerts" class="statusmenu{% if site.STATUS == 1 %} alert{% endif %}">Network Status</a>
|
||||
<a href="/{{ page.lang }}/{% translate legal url %}">{% translate menu-legal layout %}</a>
|
||||
{% case page.lang %}
|
||||
{% when 'ar' or 'es' or 'sl' %}
|
||||
<a href="/en/privacy">Privacy</a>
|
||||
{% else %}
|
||||
<a href="/{{ page.lang }}/{% translate privacy url %}">{% translate menu-privacy layout %}</a>
|
||||
{% endcase %}
|
||||
<a href="/{{ page.lang }}/{% translate press url %}">{% translate menu-press layout %}</a>
|
||||
<a href="/{{ page.lang }}/{% translate about-us url %}">{% translate menu-about-us layout %}</a>
|
||||
<a href="/en/blog">Blog</a>
|
||||
</div>
|
8
_includes/layout/base/footer-sponsor.html
Normal file
8
_includes/layout/base/footer-sponsor.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<div class="footersponsor">
|
||||
<div><span>{% translate sponsor layout %}</span> <a href="https://bitcoinfoundation.org/"><img src="/img/brand/bitcoinfoundation.png" alt="Bitcoin Foundation"></a></div>
|
||||
</div>
|
17
_includes/layout/base/head-language-dropdown.html
Normal file
17
_includes/layout/base/head-language-dropdown.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
<ul class="lang">
|
||||
<li><a>{{ site.langs[page.lang] }}</a>
|
||||
<ul>
|
||||
<li><ul>
|
||||
{% assign i = 0 %}{% assign c = site.langsorder.size | divided_by: 2 | plus: 1 %}
|
||||
{% for lang in site.langsorder %}{% assign mod = i | modulo: c %}{% assign active = ''%}{% if lang == page.lang %}{% assign active = ' class="active"'%}{% endif %}
|
||||
{% if mod == 0 and i != 0 %}</ul></li><li><ul>{% endif %}
|
||||
<li><a href="/{{ lang }}/{% translate {{page.id}} url {{lang}} %}"{{ active }}>{{ site.langs[lang] }}</a></li>
|
||||
{% assign i = i | plus: 1 %}{% endfor %}
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
9
_includes/layout/base/head-language-select.html
Normal file
9
_includes/layout/base/head-language-select.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
<div id="langselect" class="langselect"><select onchange="window.location=this.value;">
|
||||
{% for lang in site.langsorder %}{% assign active = ''%}{% if lang == page.lang %}{% assign active = ' selected="selected"'%}{% endif %}
|
||||
<option value="/{{ lang }}/{% translate {{page.id}} url {{lang}} %}"{{ active }}>{{ site.langs[lang] }}</option>
|
||||
{% endfor %}
|
||||
</select></div>
|
6
_includes/layout/base/head-logo.html
Normal file
6
_includes/layout/base/head-logo.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<a class="logo" href="/{{ page.lang }}/"><img src="/img/icons/logotop.svg" alt="Bitcoin"></a>
|
35
_includes/layout/base/head-menu.html
Normal file
35
_includes/layout/base/head-menu.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<ul id="menusimple" class="menusimple" onclick="mobileMenuHover(event);" ontouchstart="mobileMenuHover(event);">
|
||||
<li><a>{% translate menu-intro layout %}</a>
|
||||
<ul>
|
||||
<li{% if page.id == 'bitcoin-for-individuals' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-individuals url %}">{% translate menu-bitcoin-for-individuals layout %}</a></li>
|
||||
<li{% if page.id == 'bitcoin-for-businesses' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-businesses url %}">{% translate menu-bitcoin-for-businesses layout %}</a></li>
|
||||
<li{% if page.id == 'bitcoin-for-developers' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-developers url %}">{% translate menu-bitcoin-for-developers layout %}</a></li>
|
||||
<li{% if page.id == 'getting-started' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate getting-started url %}">{% translate menu-getting-started layout %}</a></li>
|
||||
<li{% if page.id == 'how-it-works' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate how-it-works url %}">{% translate menu-how-it-works layout %}</a></li>
|
||||
<li{% if page.id == 'you-need-to-know' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate you-need-to-know url %}">{% translate menu-you-need-to-know layout %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a>{% translate menu-resources layout %}</a>
|
||||
<ul>
|
||||
<li{% if page.id == 'resources' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate resources url %}">{% translate menu-resources layout %}</a></li>
|
||||
<li{% if page.id == 'community' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate community url %}">{% translate menu-community layout %}</a></li>
|
||||
{% if page.lang == 'en' %}<li{% if page.id == 'developer-documentation' %} class="active"{% endif %}><a href="/en/developer-documentation">Documentation</a></li>{% endif %}
|
||||
<li{% if page.id == 'vocabulary' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate vocabulary url %}">{% translate menu-vocabulary layout %}</a></li>
|
||||
<li{% if page.id == 'events' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate events url %}">{% translate menu-events layout %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li{% if page.id == 'innovation' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate innovation url %}">{% translate menu-innovation layout %}</a></li>
|
||||
<li><a>{% translate menu-participate layout %}</a>
|
||||
<ul>
|
||||
<li{% if page.id == 'support-bitcoin' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate support-bitcoin url %}">{% translate menu-support-bitcoin layout %}</a>
|
||||
{% if page.lang == 'en' %}<li{% if page.id == 'full-node' %} class="active"{% endif %}><a href="/en/full-node">Running a full node</a></li>{% endif %}
|
||||
<li{% if page.id == 'development' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate development url %}">{% translate menu-development layout %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li{% if page.id == 'faq' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate faq url %}">{% translate menu-faq layout %}</a></li>
|
||||
</ul>
|
6
_includes/layout/base/head-mobile-menu.html
Normal file
6
_includes/layout/base/head-mobile-menu.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<a id="menumobile" class="menumobile" onclick="mobileMenuShow(event);" ontouchstart="mobileMenuShow(event);"></a>
|
19
_includes/layout/base/html-head.html
Normal file
19
_includes/layout/base/html-head.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<meta property="og:image" content="https://bitcoin.org/img/icons/opengraph.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
<title>{% capture title %}{% translate title %}{% endcapture %}{% if title != '' %}{{ title }}{% else %}{{ page.title }}{% endif %}</title>
|
||||
{% capture metadescription %}{% translate metadescription %}{% endcapture %}{% if metadescription != '' %}<meta name="description" content="{{ metadescription }}">{% endif %}
|
||||
{% lesscss main.less %}
|
||||
<!--[if lt IE 8]>{% lesscss ie.css %}<script type="text/javascript" src="/js/ie.js"></script><![endif]-->
|
||||
<!--[if IE 8]>{% lesscss ie8.less %}<![endif]-->
|
||||
{% if page.lang == 'ar' or page.lang == 'fa' %}{% lesscss rtl.less %}{% endif %}
|
||||
{% if page.lang == 'bg' or page.lang == 'el' or page.lang == 'ko' or page.lang == 'hi' or page.lang == 'pl' or page.lang == 'sl' or page.lang == 'ro' or page.lang == 'ru' or page.lang == 'tr' or page.lang == 'uk' or page.lang == 'zh_CN' or page.lang == 'zh_TW' %}{% lesscss sans.less %}{% endif %}
|
||||
<script type="text/javascript" src="/js/base.js"></script>
|
||||
{% if page.id != 'download' %}<script type="text/javascript" src="/js/main.js"></script>{% endif %}
|
||||
<link rel="shortcut icon" href="/favicon.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="/img/icons/logo_ios.png"/>
|
10
_includes/layout/base/pagetop-alert.html
Normal file
10
_includes/layout/base/pagetop-alert.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
{% if site.ALERT %}
|
||||
<div class="banner-message {{ site.ALERTCLASS }}">
|
||||
<a href="{{ site.ALERTURL }}"><span>{{ site.ALERT }}</span></a>
|
||||
</div>
|
||||
{% endif %}
|
6
_includes/layout/base/pagetop-detect-mobile.html
Normal file
6
_includes/layout/base/pagetop-detect-mobile.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{% comment %}
|
||||
This file is licensed under the MIT License (MIT) available on
|
||||
http://opensource.org/licenses/MIT.
|
||||
{% endcomment %}
|
||||
|
||||
<div id="detectmobile" class="detectmobile"></div>
|
|
@ -18,10 +18,10 @@ The `lockunspent` RPC {{summary_lockUnspent}}
|
|||
*Parameter #1---whether to lock or unlock the outputs*
|
||||
|
||||
{% itemplate ntpd1 %}
|
||||
- n: "Lock Or Unlock"
|
||||
- n: "Unlock"
|
||||
t: "bool"
|
||||
p: "Required<br>(exactly 1)"
|
||||
d: "Set to `true` to lock the outputs specified in the following parameter. Set to `false` to unlock the outputs specified. If this is the only argument specified, all outputs will be unlocked (even if this is set to `false`)"
|
||||
d: "Set to `false` to lock the outputs specified in the following parameter. Set to `true` to unlock the outputs specified. If this is the only argument specified and it is set to `true`, all outputs will be unlocked; if it is the only argument and is set to `false`, there will be no change"
|
||||
|
||||
{% enditemplate %}
|
||||
|
||||
|
@ -56,7 +56,7 @@ The `lockunspent` RPC {{summary_lockUnspent}}
|
|||
- n: "`result`"
|
||||
t: "bool"
|
||||
p: "Required<br>(exactly 1)"
|
||||
d: "Set to `true` if the outputs were successfully locked or unlocked"
|
||||
d: "Set to `true` if the outputs were successfully locked or unlocked. If the outputs were already locked or unlocked, it will also return `true`"
|
||||
|
||||
{% enditemplate %}
|
||||
|
||||
|
@ -65,7 +65,7 @@ The `lockunspent` RPC {{summary_lockUnspent}}
|
|||
Lock two outputs:
|
||||
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet lockunspent true '''
|
||||
bitcoin-cli -testnet lockunspent false '''
|
||||
[
|
||||
{
|
||||
"txid": "5a7d24cd665108c66b2d56146f244932edae4e2376b561b3d396d5ae017b9589",
|
||||
|
@ -85,10 +85,31 @@ Result:
|
|||
true
|
||||
{% endhighlight %}
|
||||
|
||||
Verify the outputs have been locked:
|
||||
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet listlockunspent
|
||||
{% endhighlight %}
|
||||
|
||||
Result
|
||||
|
||||
{% highlight json %}
|
||||
[
|
||||
{
|
||||
"txid": "5a7d24cd665108c66b2d56146f244932edae4e2376b561b3d396d5ae017b9589",
|
||||
"vout": 0
|
||||
},
|
||||
{
|
||||
"txid": "6c5edd41a33f9839257358ba6ddece67df9db7f09c0db6bbea00d0372e8fe5cd",
|
||||
"vout": 0
|
||||
}
|
||||
]
|
||||
{% endhighlight %}
|
||||
|
||||
Unlock one of the above outputs:
|
||||
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet lockunspent false '''
|
||||
bitcoin-cli -testnet lockunspent true '''
|
||||
[
|
||||
{
|
||||
"txid": "5a7d24cd665108c66b2d56146f244932edae4e2376b561b3d396d5ae017b9589",
|
||||
|
@ -104,6 +125,23 @@ Result:
|
|||
true
|
||||
{% endhighlight %}
|
||||
|
||||
Verify the output has been unlocked:
|
||||
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet listlockunspent
|
||||
{% endhighlight %}
|
||||
|
||||
Result:
|
||||
|
||||
{% highlight json %}
|
||||
[
|
||||
{
|
||||
"txid": "6c5edd41a33f9839257358ba6ddece67df9db7f09c0db6bbea00d0372e8fe5cd",
|
||||
"vout": 0
|
||||
}
|
||||
]
|
||||
{% endhighlight %}
|
||||
|
||||
*See also*
|
||||
|
||||
* [ListLockUnspent][rpc listlockunspent]: {{summary_listLockUnspent}}
|
||||
|
|
|
@ -21,7 +21,7 @@ The `settxfee` RPC {{summary_setTxFee}}
|
|||
- n: "Transaction Fee Per Kilobyte"
|
||||
t: "number (bitcoins)"
|
||||
p: "Required<br>(exactly 1)"
|
||||
d: "The transaction fee to pay, in bitcoins, for each kilobyte of transaction data. The value `0` will not be accepted. Be careful setting the fee too low---your transactions may not be relayed or included in blocks"
|
||||
d: "The transaction fee to pay, in bitcoins, for each kilobyte of transaction data. Be careful setting the fee too low---your transactions may not be relayed or included in blocks"
|
||||
|
||||
{% enditemplate %}
|
||||
|
||||
|
|
|
@ -4,109 +4,34 @@
|
|||
---
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="{{ page.lang }}">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<meta property="og:image" content="https://bitcoin.org/img/icons/opengraph.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
<title>{% capture title %}{% translate title %}{% endcapture %}{% if title != '' %}{{ title }}{% else %}{{ page.title }}{% endif %}</title>
|
||||
{% capture metadescription %}{% translate metadescription %}{% endcapture %}{% if metadescription != '' %}<meta name="description" content="{{ metadescription }}">{% endif %}
|
||||
{% lesscss main.less %}
|
||||
<!--[if lt IE 8]>{% lesscss ie.css %}<script type="text/javascript" src="/js/ie.js"></script><![endif]-->
|
||||
<!--[if IE 8]>{% lesscss ie8.less %}<![endif]-->
|
||||
{% if page.lang == 'ar' or page.lang == 'fa' %}{% lesscss rtl.less %}{% endif %}
|
||||
{% if page.lang == 'bg' or page.lang == 'el' or page.lang == 'ko' or page.lang == 'hi' or page.lang == 'pl' or page.lang == 'sl' or page.lang == 'ro' or page.lang == 'ru' or page.lang == 'tr' or page.lang == 'uk' or page.lang == 'zh_CN' or page.lang == 'zh_TW' %}{% lesscss sans.less %}{% endif %}
|
||||
<script type="text/javascript" src="/js/base.js"></script>
|
||||
{% if page.id != 'download' %}<script type="text/javascript" src="/js/main.js"></script>{% endif %}
|
||||
<link rel="shortcut icon" href="/favicon.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="/img/icons/logo_ios.png"/>
|
||||
{% include layout/base/html-head.html %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="detectmobile" class="detectmobile"></div>
|
||||
{% if site.ALERT %}
|
||||
<div class="banner-message {{ site.ALERTCLASS }}">
|
||||
<a href="{{ site.ALERTURL }}"><span>{{ site.ALERT }}</span></a>
|
||||
{% include layout/base/pagetop-detect-mobile.html %}
|
||||
{% include layout/base/pagetop-alert.html %}
|
||||
|
||||
<div class="head"><div>
|
||||
{% include layout/base/head-language-dropdown.html %}
|
||||
{% include layout/base/head-mobile-menu.html %}
|
||||
{% include layout/base/head-logo.html %}
|
||||
{% include layout/base/head-language-select.html %}
|
||||
{% include layout/base/head-menu.html %}
|
||||
</div></div>
|
||||
|
||||
<div class="body">
|
||||
{% include layout/base/breadcrumbs.html %}
|
||||
{% include layout/base/content.html %}
|
||||
<div class="footer">
|
||||
{% include layout/base/footer-menu.html %}
|
||||
{% include layout/base/footer-sponsor.html %}
|
||||
{% include layout/base/footer-license.html %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="head"><div>
|
||||
<ul class="lang">
|
||||
<li><a href="#" onclick="return false;">{{ site.langs[page.lang] }}</a>
|
||||
<ul>
|
||||
<li><ul>
|
||||
{% assign i = 0 %}{% assign c = site.langsorder.size | divided_by: 2 | plus: 1 %}
|
||||
{% for lang in site.langsorder %}{% assign mod = i | modulo: c %}{% assign active = ''%}{% if lang == page.lang %}{% assign active = ' class="active"'%}{% endif %}
|
||||
{% if mod == 0 and i != 0 %}</ul></li><li><ul>{% endif %}
|
||||
<li><a href="/{{ lang }}/{% translate {{page.id}} url {{lang}} %}"{{ active }}>{{ site.langs[lang] }}</a></li>
|
||||
{% assign i = i | plus: 1 %}{% endfor %}
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="menumobile" class="menumobile" onclick="mobileMenuShow(event);" ontouchstart="mobileMenuShow(event);" href="#"></a>
|
||||
<a class="logo" href="/{{ page.lang }}/"><img src="/img/icons/logotop.svg" alt="Bitcoin"></a>
|
||||
<div id="langselect" class="langselect"><select onchange="window.location=this.value;">
|
||||
{% for lang in site.langsorder %}{% assign active = ''%}{% if lang == page.lang %}{% assign active = ' selected="selected"'%}{% endif %}
|
||||
<option value="/{{ lang }}/{% translate {{page.id}} url {{lang}} %}"{{ active }}>{{ site.langs[lang] }}</option>
|
||||
{% endfor %}
|
||||
</select></div>
|
||||
<ul id="menusimple" class="menusimple" onclick="mobileMenuHover(event);" ontouchstart="mobileMenuHover(event);">
|
||||
<li><a href="#" onclick="return false;">{% translate menu-intro layout %}</a>
|
||||
<ul>
|
||||
<li{% if page.id == 'bitcoin-for-individuals' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-individuals url %}">{% translate menu-bitcoin-for-individuals layout %}</a></li>
|
||||
<li{% if page.id == 'bitcoin-for-businesses' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-businesses url %}">{% translate menu-bitcoin-for-businesses layout %}</a></li>
|
||||
<li{% if page.id == 'bitcoin-for-developers' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-developers url %}">{% translate menu-bitcoin-for-developers layout %}</a></li>
|
||||
<li{% if page.id == 'getting-started' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate getting-started url %}">{% translate menu-getting-started layout %}</a></li>
|
||||
<li{% if page.id == 'how-it-works' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate how-it-works url %}">{% translate menu-how-it-works layout %}</a></li>
|
||||
<li{% if page.id == 'you-need-to-know' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate you-need-to-know url %}">{% translate menu-you-need-to-know layout %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#" onclick="return false;">{% translate menu-resources layout %}</a>
|
||||
<ul>
|
||||
<li{% if page.id == 'resources' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate resources url %}">{% translate menu-resources layout %}</a></li>
|
||||
<li{% if page.id == 'community' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate community url %}">{% translate menu-community layout %}</a></li>
|
||||
{% if page.lang == 'en' %}<li{% if page.id == 'developer-documentation' %} class="active"{% endif %}><a href="/en/developer-documentation">Documentation</a></li>{% endif %}
|
||||
<li{% if page.id == 'vocabulary' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate vocabulary url %}">{% translate menu-vocabulary layout %}</a></li>
|
||||
<li{% if page.id == 'events' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate events url %}">{% translate menu-events layout %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li{% if page.id == 'innovation' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate innovation url %}">{% translate menu-innovation layout %}</a></li>
|
||||
<li><a href="#" onclick="return false;">{% translate menu-participate layout %}</a>
|
||||
<ul>
|
||||
<li{% if page.id == 'support-bitcoin' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate support-bitcoin url %}">{% translate menu-support-bitcoin layout %}</a>
|
||||
{% if page.lang == 'en' %}<li{% if page.id == 'full-node' %} class="active"{% endif %}><a href="/en/full-node">Running a full node</a></li>{% endif %}
|
||||
<li{% if page.id == 'development' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate development url %}">{% translate menu-development layout %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li{% if page.id == 'faq' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate faq url %}">{% translate menu-faq layout %}</a></li>
|
||||
</ul>
|
||||
</div></div>
|
||||
<div class="body">
|
||||
<div id="content" class="content">
|
||||
{{ content }}
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footermenu">
|
||||
<a href="/en/alerts" class="statusmenu{% if site.STATUS == 1 %} alert{% endif %}">Network Status</a>
|
||||
<a href="/{{ page.lang }}/{% translate legal url %}">{% translate menu-legal layout %}</a>
|
||||
{% case page.lang %}
|
||||
{% when 'ar' or 'es' or 'sl' %}
|
||||
<a href="/en/privacy">Privacy</a>
|
||||
{% else %}
|
||||
<a href="/{{ page.lang }}/{% translate privacy url %}">{% translate menu-privacy layout %}</a>
|
||||
{% endcase %}
|
||||
<a href="/{{ page.lang }}/{% translate press url %}">{% translate menu-press layout %}</a>
|
||||
<a href="/{{ page.lang }}/{% translate about-us url %}">{% translate menu-about-us layout %}</a>
|
||||
<a href="/en/blog">Blog</a>
|
||||
</div>
|
||||
<div class="footersponsor">
|
||||
<div><span>{% translate sponsor layout %}</span> <a href="https://bitcoinfoundation.org/"><img src="/img/brand/bitcoinfoundation.png" alt="Bitcoin Foundation"></a></div>
|
||||
</div>
|
||||
<div class="footerlicense">© Bitcoin Project 2009-{{ site.time | date: '%Y' }} {% translate footer layout %}</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
fallbackSVG();
|
||||
addAnchorLinks();
|
||||
</script>
|
||||
</div>
|
||||
|
||||
{% include layout/base/footer-js.html %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -4,6 +4,11 @@
|
|||
|
||||
layout: base
|
||||
lang: en
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- dev docs
|
||||
- glossary
|
||||
- GLOSSARY_ENTRY_TITLE
|
||||
---
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
|
||||
|
|
|
@ -35,13 +35,16 @@ h3{
|
|||
}
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active{
|
||||
a:active,
|
||||
a.link-js{
|
||||
color:#2c6fad;
|
||||
text-decoration:none;
|
||||
cursor:pointer;
|
||||
}
|
||||
a:link:hover,
|
||||
a:visited:hover,
|
||||
a:active:hover{
|
||||
a:active:hover,
|
||||
a.link-js:hover{
|
||||
color:#63a4e1;
|
||||
}
|
||||
a img,
|
||||
|
@ -322,6 +325,7 @@ table td,table th{
|
|||
color:#2c6fad;
|
||||
}
|
||||
.menusimple>li a{
|
||||
cursor:pointer;
|
||||
font-family:'Ubuntu', sans-serif;
|
||||
font-weight:300;
|
||||
font-size:110%;
|
||||
|
@ -365,6 +369,10 @@ table td,table th{
|
|||
display:block;
|
||||
}
|
||||
|
||||
.breadcrumbs {
|
||||
font-size: 75%;
|
||||
padding-left: 10px;
|
||||
}
|
||||
.content{
|
||||
position:relative;
|
||||
padding:30px 40px 40px 40px;
|
||||
|
@ -1462,6 +1470,8 @@ div.post {
|
|||
display:none;
|
||||
}
|
||||
.wallets>div>a{
|
||||
color:#2c6fad;
|
||||
cursor:pointer;
|
||||
font-size:94%;
|
||||
text-align:center;
|
||||
text-decoration:none;
|
||||
|
@ -1478,6 +1488,9 @@ div.post {
|
|||
-webkit-transition:opacity 400ms ease-out;
|
||||
transition:opacity 400ms ease-out;
|
||||
}
|
||||
.wallets>div>a:hover{
|
||||
color:#63a4e1;
|
||||
}
|
||||
.wallets>div>a>span{
|
||||
display:none;
|
||||
position:absolute;
|
||||
|
@ -2233,6 +2246,7 @@ h2 .rssicon{
|
|||
-moz-appearance:none;
|
||||
}
|
||||
.menumobile{
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
float:right;
|
||||
height:40px;
|
||||
|
@ -2251,6 +2265,8 @@ h2 .rssicon{
|
|||
margin:0;
|
||||
height:auto;
|
||||
overflow:auto;
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
-webkit-tap-highlight-color:transparent;
|
||||
}
|
||||
.menusimple>li a,
|
||||
.menusimple>li>ul>li a{
|
||||
|
@ -2275,13 +2291,16 @@ h2 .rssicon{
|
|||
.menusimple.menutap li:hover>ul{
|
||||
display:none;
|
||||
}
|
||||
.menusimple.menutap li.hover{
|
||||
.menusimple.menutap li.hover,
|
||||
.menusimple.menutap li.active{
|
||||
background-color:#2c6fad;
|
||||
}
|
||||
.menusimple.menutap li.hover>a{
|
||||
.menusimple.menutap li.hover>a,
|
||||
.menusimple.menutap li.active>a{
|
||||
color:#fff;
|
||||
}
|
||||
.menusimple.menutap li.hover>ul{
|
||||
.menusimple.menutap li.hover>ul,
|
||||
.menusimple.menutap li.active>ul{
|
||||
display:block;
|
||||
}
|
||||
.logo{
|
||||
|
@ -2498,6 +2517,10 @@ h2 .rssicon{
|
|||
padding:0;
|
||||
border:0;
|
||||
}
|
||||
.walletmenu{
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
-webkit-tap-highlight-color:transparent;
|
||||
}
|
||||
.walletmenu>ul{
|
||||
display:block;
|
||||
}
|
||||
|
@ -2527,27 +2550,29 @@ h2 .rssicon{
|
|||
.walletmenu>ul.menutap>li>ul>li:hover{
|
||||
background-position:left 10px;
|
||||
}
|
||||
.walletmenu>ul.menutap li.hover{
|
||||
.walletmenu>ul.menutap li.active{
|
||||
background-color:#0d579b;
|
||||
}
|
||||
.walletmenu>ul.menutap li.hover>a,
|
||||
.walletmenu>ul.menutap li.hover>a:link,
|
||||
.walletmenu>ul.menutap li.hover>a:active,
|
||||
.walletmenu>ul.menutap li.hover>a:visited{
|
||||
.walletmenu>ul.menutap li.active>a,
|
||||
.walletmenu>ul.menutap li.active>a:link,
|
||||
.walletmenu>ul.menutap li.active>a:active,
|
||||
.walletmenu>ul.menutap li.active>a:visited{
|
||||
color:#fff;
|
||||
}
|
||||
.walletmenu>ul.menutap>li.hover{
|
||||
.walletmenu>ul.menutap>li.active{
|
||||
background-position:left -62px;
|
||||
}
|
||||
.walletmenu>ul.menutap>li.hover>ul{
|
||||
.walletmenu>ul.menutap>li.active>ul{
|
||||
display:block;
|
||||
}
|
||||
.walletmenu>ul.menutap>li>ul>li.hover{
|
||||
.walletmenu>ul.menutap>li>ul>li.active{
|
||||
background-position:left -24px;
|
||||
}
|
||||
.wallets{
|
||||
width:auto;
|
||||
height:auto;
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
-webkit-tap-highlight-color:transparent;
|
||||
}
|
||||
.wallets>div:hover>span{
|
||||
display:none;
|
||||
|
@ -2614,7 +2639,7 @@ h2 .rssicon{
|
|||
margin-top:10px;
|
||||
padding:0;
|
||||
}
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div:hover>div{
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div.hover>div{
|
||||
display:block;
|
||||
background:none;
|
||||
width:auto;
|
||||
|
@ -2623,16 +2648,25 @@ h2 .rssicon{
|
|||
margin-top:10px;
|
||||
}
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div>div>p,
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div>div>div{
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div>div>div,
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div>div>span{
|
||||
display:none;
|
||||
position:relative;
|
||||
width:auto;
|
||||
height:auto;
|
||||
visibility:visible;
|
||||
opacity:1;
|
||||
border:0;
|
||||
background:none;
|
||||
padding:0;
|
||||
top:0;
|
||||
left:-20px;
|
||||
}
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div:hover>div>span{
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div.hover>div>p,
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div.hover>div>div{
|
||||
display:block;
|
||||
}
|
||||
.wallets.walletsmobile>div>div>h2:first-child+div+div+div>div.hover>div>span{
|
||||
display:none;
|
||||
}
|
||||
.download{
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#variable is set, allowing a clickable alert banner to be
|
||||
#displayed in _layouts/base.html .
|
||||
|
||||
#If "alias" variable is set in one alert file, a short alias
|
||||
#If "shorturl" variable is set in one alert file, a short alias
|
||||
#file for the alert (like /android.html) is generated for
|
||||
#Bitcoin Core non-clickable alerts.
|
||||
|
||||
|
@ -47,9 +47,9 @@ module Jekyll
|
|||
if self.data.has_key?('active') and !self.data['active'].nil? and self.data['active'] == true
|
||||
site.config['STATUS'] = 1
|
||||
end
|
||||
if self.data.has_key?('alias')
|
||||
site.pages << AlertPage.new(site, base, lang, srcdir, src, '', self.data['alias']+'.'+extension, date)
|
||||
site.pages << AlertPage.new(site, base, lang, srcdir, src, '', self.data['alias']+'/index.'+extension, date)
|
||||
if self.data.has_key?('shorturl')
|
||||
site.pages << AlertPage.new(site, base, lang, srcdir, src, '', self.data['shorturl']+'.'+extension, date)
|
||||
site.pages << AlertPage.new(site, base, lang, srcdir, src, '', self.data['shorturl']+'/index.'+extension, date)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -502,23 +502,6 @@ wallets:
|
|||
privacyaddressreuse: "checkpassprivacyaddressrotation"
|
||||
privacydisclosure: "checkfailprivacydisclosureaccount"
|
||||
privacynetwork: "checkfailprivacynetworknosupporttor"
|
||||
desktop:
|
||||
text: "wallethive"
|
||||
link: "http://mac.hivewallet.com/"
|
||||
source: "https://github.com/hivewallet/hive-osx"
|
||||
screenshot: "hivemac.png"
|
||||
os:
|
||||
- mac
|
||||
check:
|
||||
control: "checkgoodcontrolfull"
|
||||
validation: "checkpassvalidationspvp2p"
|
||||
transparency: "checkpasstransparencyopensource"
|
||||
environment: "checkfailenvironmentdesktop"
|
||||
privacy: "checkfailprivacyweak"
|
||||
privacycheck:
|
||||
privacyaddressreuse: "checkfailprivacyaddressrotation"
|
||||
privacydisclosure: "checkfailprivacydisclosurespv"
|
||||
privacynetwork: "checkpassprivacynetworksupporttorproxy"
|
||||
web:
|
||||
text: "wallethive-web"
|
||||
link: "https://hivewallet.com/"
|
||||
|
@ -924,7 +907,7 @@ wallets:
|
|||
<p class="summary">{% translate pagedesc %}</p>
|
||||
|
||||
<div class="walletmenu" id="walletmenu" onclick="walletMenuListener(event);" ontouchstart="walletMenuListener(event);">
|
||||
<ul onclick="mobileMenuHover(event);" ontouchstart="mobileMenuHover(event);">
|
||||
<ul>
|
||||
<li class="wallet-mobile">
|
||||
<a id="mobile" data-walletcompat="mobile">{% translate walletcatmobile %}</a>
|
||||
<ul>
|
||||
|
@ -955,7 +938,7 @@ wallets:
|
|||
<h2>{{ wallet[1].title }}</h2>
|
||||
<div>{% for os in platform.os %}<img src="/img/os/{{ os }}.png" alt="{% translate platform{{os}} %}" title="{% translate platform{{os}} %}" />{% endfor %}</div>
|
||||
<div>{% if platform.link == 'bitcoincore' %}<a href="/{{ page.lang }}/{% translate download url %}">{% translate walletdownload %}</a>{% elsif platform.link contains 'play.google.com' or platform.link contains 'itunes.apple.com' or platform.link contains 'chrome.google.com' %}<a href="{{ platform.link }}">{% translate walletdownload %}</a>{% else %}<a href="{{ platform.link }}">{% translate walletvisit %}</a>{% endif %}{% if platform.source %}<a href="{{ platform.source }}">{% translate walletsourcecode %}</a>{% endif %}</div>
|
||||
<div>
|
||||
<div ontouchstart="walletScoreListener(event);" onclick="walletScoreListener(event);">
|
||||
{% for check in platform.check %}{% if check[0] == 'privacy' and platform.privacycheck %}
|
||||
<div class="check{{ check[0] }} {% if check[1] contains "checkgood" %}checkgood{% elsif check[1] contains "checkpass" %}checkpass{% elsif check[1] contains "checkneutral" %}checkneutral{% else %}checkfail{% endif %}">{% translate {{check[1]}} %}<div><div>
|
||||
{% for privacycheck in platform.privacycheck %}
|
||||
|
@ -972,7 +955,7 @@ wallets:
|
|||
<p>{% translate {{platform.text}} %}</p>
|
||||
<div><img src="/img/screenshots/{{ platform.screenshot }}" alt="screenshot"></div>
|
||||
</div>
|
||||
<a href="#" onclick="return false;"><img src="/img/wallet/{{ wallet[0] }}.png" alt="{{ wallet[1].title }}" />{{ wallet[1].titleshort }}<span></span></a>
|
||||
<a><img src="/img/wallet/{{ wallet[0] }}.png" alt="{{ wallet[1].title }}" />{{ wallet[1].titleshort }}<span></span></a>
|
||||
</div>
|
||||
{% endfor %}{% endfor %}
|
||||
</div>
|
||||
|
@ -985,7 +968,7 @@ wallets:
|
|||
<h2>{{ wallet[1].title }}</h2>
|
||||
<div>{% for os in platform[1].os %}<img src="/img/os/{{ os }}.png" alt="{% translate platform{{os}} %}" title="{% translate platform{{os}} %}" />{% endfor %}</div>
|
||||
<div>{% if platform[1].link == 'bitcoincore' %}<a href="/{{ page.lang }}/{% translate download url %}">{% translate walletdownload %}</a>{% elsif platform[1].link contains 'play.google.com' or platform[1].link contains 'itunes.apple.com' or platform[1].link contains 'chrome.google.com' %}<a href="{{ platform[1].link }}">{% translate walletdownload %}</a>{% else %}<a href="{{ platform[1].link }}">{% translate walletvisit %}</a>{% endif %}{% if platform[1].source %}<a href="{{ platform[1].source }}">{% translate walletsourcecode %}</a>{% endif %}</div>
|
||||
<div>
|
||||
<div ontouchstart="walletScoreListener(event);" onclick="walletScoreListener(event);">
|
||||
{% for check in platform[1].check %}{% if check[0] == 'privacy' and platform[1].privacycheck %}
|
||||
<div class="check{{ check[0] }} {% if check[1] contains "checkgood" %}checkgood{% elsif check[1] contains "checkpass" %}checkpass{% elsif check[1] contains "checkneutral" %}checkneutral{% else %}checkfail{% endif %}">{% translate {{check[1]}} %}<div><div>
|
||||
{% for privacycheck in platform[1].privacycheck %}
|
||||
|
@ -1002,7 +985,7 @@ wallets:
|
|||
<p>{% translate {{platform[1].text}} %}</p>
|
||||
<div><img src="/img/screenshots/{{ platform[1].screenshot }}" alt="screenshot"></div>
|
||||
</div>
|
||||
<a href="#" onclick="return false;"><img src="/img/wallet/{{ wallet[0] }}.png" alt="{{ wallet[1].title }}" />{{ wallet[1].titleshort }}<span></span></a>
|
||||
<a><img src="/img/wallet/{{ wallet[0] }}.png" alt="{{ wallet[1].title }}" />{{ wallet[1].titleshort }}<span></span></a>
|
||||
</div>
|
||||
{% endfor %}{% endfor %}{% endfor %}
|
||||
</div>
|
||||
|
|
|
@ -56,7 +56,7 @@ id: development
|
|||
<li><a href="https://github.com/jgarzik/picocoin">picocoin</a> - A tiny library with lightweight client and utilities, written in C.</li>
|
||||
<li><a href="https://github.com/petertodd/python-bitcoinlib">python-bitcoinlib</a> - A library for structures and protocols, written in Python.</li>
|
||||
<li><a href="https://gitlab.com/bitcoin/python-blkmaker">Python Blkmaker</a> - A client library for the getblocktemplate mining protocol, written in Python.</li>
|
||||
<li class="more"><a href="#" onclick="librariesShow(event)">{% translate moremore %}</a></li>
|
||||
<li class="more"><a onclick="librariesShow(event)" ontouchstart="librariesShow(event);" class="link-js">{% translate moremore %}</a></li>
|
||||
</ul>
|
||||
|
||||
<section id="devcommunities">
|
||||
|
|
|
@ -55,26 +55,26 @@ dialogs:
|
|||
<div class="press-faq">
|
||||
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate whatisbitcoin faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate whatisbitcoin faq %}</a>
|
||||
<div>
|
||||
<p>{% translate whatisbitcointxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate howitworks faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate howitworks faq %}</a>
|
||||
<div>
|
||||
<p>{% translate howitworkstxt1 faq %}</p>
|
||||
<p>{% translate howitworkstxt2 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate whatismining faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate whatismining faq %}</a>
|
||||
<div>
|
||||
<p>{% translate whatisminingtxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate acquire faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate acquire faq %}</a>
|
||||
<div>
|
||||
<ul>
|
||||
<li>{% translate acquireli1 faq %}</li>
|
||||
|
@ -86,7 +86,7 @@ dialogs:
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate used faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate used faq %}</a>
|
||||
<div>
|
||||
<p>{% translate usedtxt1 faq %}</p>
|
||||
<p>
|
||||
|
@ -95,14 +95,14 @@ dialogs:
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate makepayment faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate makepayment faq %}</a>
|
||||
<div>
|
||||
<p>{% translate makepaymenttxt1 faq %}</p>
|
||||
<p><img src="/img/faq/mobile_send.png" style="height:325px;width:190px;" alt="Screenshot"><img src="/img/faq/mobile_receive.png" style="height:325px;width:190px;" alt="Screenshot"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate advantages faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate advantages faq %}</a>
|
||||
<div>
|
||||
<ul>
|
||||
<li>{% translate advantagesli1 faq %}</li>
|
||||
|
@ -114,7 +114,7 @@ dialogs:
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate disadvantages faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate disadvantages faq %}</a>
|
||||
<div>
|
||||
<ul>
|
||||
<li>{% translate disadvantagesli1 faq %}</li>
|
||||
|
@ -124,13 +124,13 @@ dialogs:
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate secure faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate secure faq %}</a>
|
||||
<div>
|
||||
<p>{% translate securetxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate islegal faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate islegal faq %}</a>
|
||||
<div>
|
||||
<p>{% translate islegaltxt1 faq %}</p>
|
||||
<p>{% translate islegaltxt2 faq %}</p>
|
||||
|
@ -141,13 +141,13 @@ dialogs:
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate taxes faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate taxes faq %}</a>
|
||||
<div>
|
||||
<p>{% translate taxestxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate illegalactivities faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate illegalactivities faq %}</a>
|
||||
<div>
|
||||
<p>{% translate illegalactivitiestxt1 faq %}</p>
|
||||
<p>{% translate illegalactivitiestxt2 faq %}</p>
|
||||
|
@ -155,51 +155,51 @@ dialogs:
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate bubble faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate bubble faq %}</a>
|
||||
<div>
|
||||
<p>{% translate bubbletxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate whyvalue faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate whyvalue faq %}</a>
|
||||
<div>
|
||||
<p>{% translate whyvaluetxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate ponzi faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate ponzi faq %}</a>
|
||||
<div>
|
||||
<p>{% translate ponzitxt1 faq %}</p>
|
||||
<p>{% translate ponzitxt2 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate creator faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate creator faq %}</a>
|
||||
<div>
|
||||
<p>{% translate creatortxt1 faq %}</p>
|
||||
<p>{% translate creatortxt2 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate worthless faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate worthless faq %}</a>
|
||||
<div>
|
||||
<p>{% translate worthlesstxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate virtual faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate virtual faq %}</a>
|
||||
<div>
|
||||
<p>{% translate virtualtxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate trust faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate trust faq %}</a>
|
||||
<div>
|
||||
<p>{% translate trusttxt1 faq %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" onclick="faqShow(event);">{% translate anonymous faq %}</a>
|
||||
<a onclick="faqShow(event);" ontouchstart="faqShow(event);" class="link-js">{% translate anonymous faq %}</a>
|
||||
<div>
|
||||
<p>{% translate anonymoustxt1 faq %}</p>
|
||||
<p>{% translate anonymoustxt2 faq %}</p>
|
||||
|
@ -252,7 +252,7 @@ What is Bitcoin - Weusecoins<br>
|
|||
<p><span>{{ page.dialogs.quotenavalravikant }}</span><span>Naval Ravikant, Founder of Angellist</span></p>
|
||||
<p><span>{{ page.dialogs.quotemaxkeiser }}</span><span>Max Keiser, Journalist & TV Host</span></p>
|
||||
</div>
|
||||
<a href="#" onclick="materialShow(event);">{{ page.dialogs.materialquotemore }}</a>
|
||||
<a href="#" onclick="materialShow(event);" ontouchstart="materialShow(event);">{{ page.dialogs.materialquotemore }}</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -14,9 +14,6 @@ id: protect-your-privacy
|
|||
<h2 id="receive">{% translate receive %}</h2>
|
||||
<p>{% translate receivetxt %}</p>
|
||||
|
||||
<h2 id="send">{% translate send %}</h2>
|
||||
<p>{% translate sendtxt %}</p>
|
||||
|
||||
<h2 id="public">{% translate public %}</h2>
|
||||
<p>{% translate publictxt %}</p>
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ id: secure-your-wallet
|
|||
<p>{% translate offlinetxt %}</p>
|
||||
|
||||
<div class="box boxexpand">
|
||||
<h3 id="offlinetx"><a href="#" onclick="boxShow(event);">{% translate offlinetx %}</a></h3>
|
||||
<h3 id="offlinetx"><a onclick="boxShow(event);" ontouchstart="boxShow(event);" class="link-js">{% translate offlinetx %}</a></h3>
|
||||
<p>{% translate offlinetxtxt1 %}</p>
|
||||
<ol>
|
||||
<li>{% translate offlinetxtxt2 %}</li>
|
||||
|
@ -62,7 +62,7 @@ id: secure-your-wallet
|
|||
|
||||
<br>
|
||||
<div class="box boxexpand">
|
||||
<h3 id="hardwarewallet"><a href="#" onclick="boxShow(event);">{% translate hardwarewallet %}</a></h3>
|
||||
<h3 id="hardwarewallet"><a onclick="boxShow(event);" ontouchstart="boxShow(event);" class="link-js">{% translate hardwarewallet %}</a></h3>
|
||||
<p>{% translate hardwarewallettxt %}</p>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -482,8 +482,6 @@ ar:
|
|||
traceabletxt: "يعمل البت كوين بمعدل جديد من الشفافية لم يعتد غالبية الناس على التعامل معه. حميع معاملات البت كوين عامة ويمكن تتبعها ومخزنة بشكل دائم على شبكة البت كوين. عناوين البت كوين هي المعلومة الوحيدة المستخدمة لتعريف مكان عملات البت كوين وأين تم إرسالها ومن أين أرسلت. هذه العناوين يتم إنشاءها بشكل خاص بواسطة محفظة كل مستخدم. على أي حال، بمجرد إستخدام العناوين تصبح مرتبطة بتاريخ كامل المعاملات المرتبطة بها. يمكن لأي أحد رؤية <a href=\"https://www.biteasy.com\">الرصيد وجميع المعاملات</a> الخاصة بأي عنوان. وبما أن المستخدمين غالباً ما يتوجب عليهم الإفصاح عن هويتهم لكي يحصلوا على الخدمات أو البضائع، فعنواين البت كوين لا يمكن أن تبقى مجهولة بشكل كامل. لهذه الأسباب، عناوين البت كوين يجب إستخدامها لمرة واحدة فقط ويتوجب على المستخدمين الإحتياط من الكشف عن العناوين الخاصة بهم."
|
||||
receive: "استعمل عناوين جديدة لإستقبال الأموال"
|
||||
receivetxt: "لكي تحمي خصوصيتك، يتوجب عليك إستخدام عنوان بت كوين جديد كل مرة تستقبل فيها أموال. على نحو إضافي، يمكنك إستخدام محافظ متعددة للأغراض المختلفة. فعل هذا يسمح لك بعزل كلاً من معاملاتك بطريقة لا يمكن معها ربطهم ببعضهم البعض. الأشخاص الذين يقومون بإرسال الأموال لك لا يمكنهم رؤية عناوين البت كوين الأخرى التي تمتلكها وما الذي تستخدمها لأجله. من المحتمل أن تكون هذه هي النصيحة الأهم التي يتوجب عليك تذكرها على الدوام!"
|
||||
send: "استعمل عناوين متغيرة لإرسال الأموال"
|
||||
sendtxt: "يمكنك إستخدام أحد برامح البت كوين كبرنامج البت كوين الرسمي \"Bitcoin Core\" الذي يجعل من الصعب تتبع معاملاتك عن طريق إنشاء عنوان بت كوين جديد متغير في كل مرة تقوم فيها بإرسال أموال. على سبيل المثال، إذا قمت بإستقبال 5 عملات بت كوين على العنوان أ، ثم قمت لاحقاً بإرسال 2 عملة بت كوين للعنوان ب، فالباقي لابد أن يتم إرساله مرة أخرى لك. بعض برامج البت كوين مصممة لكي تقوم بإرسال الباقي إلى عنوان جديد ج بطريقة تجعل من الصعب معرفة ما إذا كنت تملك عنوان البت كوين ب أو ج."
|
||||
public: "كن حذراً مع الأماكن العامة"
|
||||
publictxt: "إلا أن يكن هدفك الأساسي هو إستقبال تبرعات عامة أو أموال بشفافية كاملة، فإن نشر عنوان البت كوين الخاص بك بأي مكان عام كالمواقع الإلكترونية أو شبكات التواصل الإجتماعي هي فكرة غير جيدة تماماً عندما يتعلق الأمر بالخصوصية. عندما تختار أن تفعل هذا، تذكر دوماً أنك إذا قمت بتحويل أي أموال بإستخدام هذا العنوان إلى أحد عناوينك الأخرى، فستعلق على الملأ بتاريخ عنوانك العام. أضف لذلك، ربما تريد أن تكون حذراً أيضاً بألا تقوم بنشر معلومات حول معاملاتك ومشترياتك والتي قد تسمح لشخص ما بتحديد عناوين البت كوين الخاصة بك."
|
||||
iplog: "عنوان الـ IP الخاص بك يمكن تسجيله"
|
||||
|
|
|
@ -482,8 +482,6 @@ bg:
|
|||
traceabletxt: "Биткойн работи с безпрецедентно ниво на прозрачност, на което повечето хора не са свикнали. Всички Биткойн транзакции са публични, проследими и се пазят постоянно в мрежата на Биткойн. Биткойн адресите са единствената информация, която се ползва, за да се определи къде са разпределени биткойните и къде се изпращат. Тези адреси се създават от портфейлите на всеки потребител. След като са използвани веднъж, тези адреси стават част от историята на всички транзакции, в които са участвали. Всеки може да види <a href=\"https://www.biteasy.com\">баланса и всички транзакции</a> на всеки адрес. Тъй като потребителите обикновено трябва да разкрият своята самоличност, за да получат стоки или услуги, Биткойн адресите не могат да останат изцяло анонимни. Поради тази причина, Биткойн адресите трябва да се използват само веднъж и потребителите трябва да са внимателни и да не ги разкриват."
|
||||
receive: "Използвайте нови адреси, за да получавате плащания"
|
||||
receivetxt: "За да защитите личните си данни, е добре да използвате нов Биткойн адрес всеки път, когато получавате ново плащане. Освен това, имате възможност да използвате различни портфейли за различни цели. Това ви позволява да изолирате транзакциите си една от друга по такъв начин, че да е невъзможно те да бъдат свързани една с друга. Хората, които ви изпращат пари, не могат да видят другите Биткойн адреси, които притежавате и какво правите с тях. Това най-вероятно е най-важният съвет, който винаги трябва да имате предвид."
|
||||
send: "Използвайте променени адреси, когато изпращате плащания"
|
||||
sendtxt: "Може да използвате Биткойн клиент като Bitcoin Core, който създава нов адрес всеки път, когато извършвате плащане, като по този начин затруднява проследяването на вашите транзакции. Например, ако получите пет биткойна на адрес А и по-късно изпратите два биткойна на адрес Б, то останалите биткойни трябва да бъдат изпратени обратно на вас. Някои Биткойн клиенти са създадени така, че да изпратят разликата на адрес В, като така ще е трудно да се установи дали сте собственик на адрес Б или В."
|
||||
public: "Бъдете внимателни с публичните пространства"
|
||||
publictxt: "Публикуването на Биткойн адрес в публични пространства като уебсайт или социални мрежи не е добра идея от гледна точка на защитата на личните данни, освен ако целта ви не е да получавате дарения, видими за общността или да извършвате плащания с пълна прозрачност. Все пак, ако решите да направите това, помнете, че ако преместите средства от този адрес в някой от другите ви адреси, то те ще бъдат публично свързани. Освен това е добра идея да сте внимателни и да не публикувате информация, относно вашите транзакции и покупки , която може да позволи на някого да идентифицира вашия Биткойн адрес."
|
||||
iplog: "Вашият IP адрес може да бъде записан"
|
||||
|
|
|
@ -521,8 +521,6 @@ da:
|
|||
traceabletxt: "Bitcoin arbejder med et niveau af gennemsigtighed, som er uden fortilfælde, og som de fleste ikke er vant til at arbejde med. Alle Bitcoin-transaktioner er offentlige, sporbare og gemmes permanent i Bitcoin-netværket. Bitcoin-adresser er den eneste information, der bruges til at afgøre, hvor bitcoin er fordelt, og hvortil de bliver sendt. Disse adresser oprettes under private forhold af hver brugers tegnebog. Men når en adresse først er brugt, bliver den forbundet med historikken over alle de transaktioner, den er involveret i. Enhver kan se <a href=\"https://www.biteasy.com\">saldoen og alle transaktioner</a> for enhver adresse. Da brugere normalt er nødt til at afsløre deres identitet for at modtage varer eller tjenester, kan Bitcoin-adresser ikke forblive fuldt ud anonyme. Af disse grunde bør Bitcoin-adresser kun benyttes én gang, og brugere bør være forsigtige med ikke at afsløre deres adresser."
|
||||
receive: "Brug nye adresser til at modtage betalinger"
|
||||
receivetxt: "For at beskytte dit privatliv bør du bruge en ny Bitcoin-adresse, hver gang du modtager en ny betaling. Der ud over kan du bruge flere tegnebøger til forskellige formål. Ved at gøre dette kan du isolere hver af dine transaktioner på en sådan måde, at det ikke er muligt at associere dem alle med hinanden. Personer, der sender dig penge, kan ikke se hvilke andre Bitcoin-adresser, du ejer, og hvad du gør med dem. Dette er nok det vigtigste råd, du bør holde dig for øje."
|
||||
send: "Brug byttepengeadresser når du sender betalinger"
|
||||
sendtxt: "Du kan bruge en Bitcoin-klient som Bitcoin Core, der gør det besværligt at spore dine transaktioner ved at oprette en ny byttepengeadresse, hver gang du sender en betaling. Hvis du for eksempel modtager 5 BTC på adresse A, og du senere sender 2 BTC til adresse B, skal de overskydende byttepenge sendes tilbage til dig. Nogle Bitcoin-klienter er designet til at sende byttepengene til en ny adresse C på en sådan måde, at det bliver besværligt at vide, om du ejer Bitcoin-adresse B eller C."
|
||||
public: "Vær forsigtig med offentlige steder"
|
||||
publictxt: "Med mindre din intention er at modtage offentlige donationer eller betalinger med fuld gennemsigtighed, er det ikke en god idé, hvad angår privatliv, at offentliggøre en Bitcoin-adresse på nogen form for offentligt sted, så som en webside eller socialt netværk. Hvis du vælger at gøre dette, så husk altid at, hvis du flytter penge fra denne adresse til en af dine andre adresser, vil den blive offentligt forbundet til historikken for din offentlige adresse. Der ud over bør du også være forsigtig med ikke at offentliggøre information om dine transaktioner og køb, som kunne lade nogen identificere dine Bitcoin-adresser."
|
||||
iplog: "Din IP-adresse kan blive logført"
|
||||
|
|
|
@ -521,8 +521,6 @@ de:
|
|||
traceabletxt: "Bitcoin arbeitet mit einem noch nie dagewesenen Maß an Transparenz, mit dessen Umgang die meisten Menschen nicht vertraut sind. Alle Bitcoin-Transaktionen sind öffentlich, zurückverfolgbar und dauerhaft im Bitcoin-Netzwerk gespeichert. Bitcoin-Adressen sind die einzige Information, die verwendet wird um zu bestimmen, wie Bitcoins zugeteilt sind bzw. wohin sie gesendet werden. Dieses Adressen werden von der Wallet jedes Nutzers privat generiert. Sobald jedoch Adressen verwendet werden, haftet die Historie aller Transaktionen, in die sie involviert sind, an ihnen. Jeder kann den <a href=\"https://www.biteasy.com\">Kontostand und alle Transaktionen</a> einer Adresse einsehen. Da Nutzer normalerweise ihre Identität preisgeben müssen, um Dienstleistungen oder Waren entgegenzunehmen, können Bitcoin Adressen nicht vollständig anonym bleiben. Aus diesen Gründen sollten Bitcoin Adressen nur einmalig verwendet werden, und Nutzer müssen vorsichtig sein um ihre Adressen nicht preiszugeben."
|
||||
receive: "Benutzern Sie neue Adressen um Zahlungen zu empfangen"
|
||||
receivetxt: "Um ihre Privatsphäre zu schützen, sollten Sie jedes Mal, wenn Sie eine Zahlung empfangen, eine neue Adresse nutzen. Außerdem können Sie mehrere Wallets für unterschiedliche Zwecke nutzen. Auf diese Art können Sie jede ihrer Transaktionen trennen und es ist nicht möglich, sie alle miteinander in Verbindung zu bringen. Menschen, die ihnen Geld senden, können nicht sehen, welche anderen Bitcoin-Adressen Ihnen gehören und was Sie damit machen. Das ist vermutlich eine der wichtigsten Ratschläge, die Sie beachten sollten."
|
||||
send: "Nutzen Sie immer neue Adressen, wenn Sie Zahlungen senden"
|
||||
sendtxt: "Sie können einen Bitcoin-Client wie Bitcoin Core verwenden, der es schwieriger macht, ihre Transaktionen zu verfolgen. Jedes Mal, wenn Sie eine Zahlung senden wird eine neue Adresse erzeugt. Wenn Sie zum Beispiel 5 Bitcoins auf Adresse A empfangen und später 2 Bitcoins an Adresse B versenden wird das \"Wechselgeld\" an Sie zurückgesendet. Einige Bitcoin-Clients verwenden für diese Rückzahlung eine neue Adresse C. Auf diesem Weg ist es schwierig nachzuvollziehen ob ihnen Adresse B oder C gehört."
|
||||
public: "Seien Sie in öffentlichen Netzwerken vorsichtig"
|
||||
publictxt: "So lange es nicht ihre Absicht ist, öffentliche Spenden oder Zahlungen mit vollkommener Transparenz zu empfangen, ist es im Sinne der Privatsphäre keine gute Idee eine Bitcoin-Adresse auf ihrer Webseite oder in öffentlichen Netzwerken zu veröffentlichen. Wenn Sie sich trotzdem dazu entschließen, denken Sie immer daran, dass, wenn Sie Beträge von dieser Adresse auf eine ihrer anderen Adressen übertragen, beide Adressen in der Historie ihrer öffentlichen Adresse auftauchen. Zusätzlich sollten Sie darauf achten, keine Informationen über Transaktionen und Einkäufe zu veröffentlichen, die es jemanden ermöglichen, ihre Bitcoin-Adressen zu identifizieren."
|
||||
iplog: "Ihre IP-Adresse kann geloggt werden"
|
||||
|
|
|
@ -515,8 +515,6 @@ el:
|
|||
traceabletxt: "Το Bitcoin λειτουργεί με ένα πρωτοφανές επίπεδο διαφάνειας το οποίο οι περισσότεροι άνθρωποι δεν είναι συνηθισμένοι να χειρίζονται. Όλες οι συναλλαγές Bitcoin είναι δημόσιες, ανιχνεύσιμες και αποθηκεύονται μόνιμα στο δίκτυο Bitcoin. Οι διευθύνσεις Bitcoin είναι η μόνη πληροφορία που χρησιμοποιείται για να ορίσει που εκχωρούνται τα bitcoins και που αυτά στέλνονται. Αυτές οι διευθύνσεις δημιουργούνται ιδιωτικά από τα πορτοφόλια του κάθε χρήστη. Ωστόσο, μόλις οι διευθύνσεις χρησιμοποιηθούν, στιγματίζονται από το ιστορικό όλων των συναλλαγών στις οποίες εμπλέκονται. Ο καθένας μπορεί να δει το <a href=\"https://www.biteasy.com\">υπόλοιπο και όλες τις συναλλαγές</a> από κάθε διεύθυνση. Καθώς οι χρήστες πρέπει συνήθως να αποκαλύψουν την ταυτότητά τους προκείμενου να λάβουν υπηρεσίες και αγαθά, οι διευθύνσεις Bitcoin δεν μπορούν να μείνουν πλήρως ανώνυμες. Για αυτούς τους λόγους, οι διευθύνσεις Bitcoin θα πρέπει να χρησιμοποιούνται μόνο για μία φορά και οι χρήστες θα πρέπει να είναι προσεκτικοί να μην αποκαλύπτουν τις διευθύνσεις τους."
|
||||
receive: "Χρησιμοποιείστε νέες διευθύνσεις για να λάβετε πληρωμές"
|
||||
receivetxt: "Για την προστασία των προσωπικών σας δεδομένων, θα πρέπει μια χρησιμοποιείτε μια νέα διεύθυνση Bitcoin κάθε φορά που λαμβάνετε μια πληρωμή. Επιπροσθέτως, μπορείτε να χρησιμοποιείτε πολλαπλά πορτοφόλια για διαφορετικούς σκοπούς. Αυτό σας επιτρέπει να απομονώσετε καθεμία από τις συναλλαγές σας με τέτοιο τρόπο ώστε να είναι αδύνατο να τις συσχετίσετε όλες μαζί. Οι άνθρωποι οι οποίοι σας στέλνουν χρήματα δεν μπορούν να δούνε ποιες άλλες διευθύνσεις Bitcoin κατέχετε και τι κάνετε με αυτές. Αυτή είναι πιθανότατα η πιο σημαντική συμβουλή που θα πρέπει να έχετε στα υπόψιν."
|
||||
send: "Χρησιμοποιείστε αλλαγή διευθύνσεων όταν στέλνετε πληρωμές"
|
||||
sendtxt: "Μπορείτε να χρησιμοποιήσετε ένα πρόγραμμα πελάτη Bitcoin όπως το Bitcoin Core το οποίο καθιστά δύσκολη την ανίχνευση των συναλλαγών σας δημιουργώντας μια νέα αλλαγή διεύθυνσης κάθε φορά που στέλνετε μια πληρωμή. Για παράδειγμα, αν λάβετε 5 BTC στη διεύθυνση Α και αργότερα στείλετε 2 BTC στη διεύθυνση Β, τα υπόλοιπα ρέστα πρέπει να σταλούν πίσω σε εσάς. Μερικά προγράμματα πελάτη Bitcoin είναι σχεδιασμένα να στέλνουν τα ρέστα σε μια νέα διεύθυνση Γ με τέτοιο τρόπο ώστε να γίνεται δύσκολο να γνωρίζετε αν κατέχετε τη διεύθυνση Bitcoin B ή Γ."
|
||||
public: "Να είστε προσεκτικοί με τους δημόσιους χώρους"
|
||||
publictxt: "Εκτός αν η πρόθεσή σας είναι να λαμβάνετε δημόσιες δωρεές ή πληρωμές με πλήρη διαφάνεια, η ανάρτηση μια διεύθυνσης Bitcoin ή οποιουδήποτε κοινόχρηστου χώρου όπως μια ιστοσελίδα ή ένα μέσο κοινωνικής δικτύωσης δεν είναι και τόσο καλή ιδέα όσον αφορά την προστασία των προσωπικών δεδομένων. Αν επιλέξετε να το κάνετε αυτό, να θυμάστε πάντα ότι αν μεταφέρετε οποιαδήποτε κεφάλαια με αυτή τη διεύθυνση προς μία από τις άλλες διευθύνσεις σας, αυτά θα στιγματιστούν δημόσια από το ιστορικό της κοινόχρηστης διεύθυνσής σας. Επιπροσθέτως, καλύτερα να είστε επίσης προσεκτικός και να μην δημοσιεύσετε πληροφορίες σχετικές με τις συναλλαγές και τις αγορές σας οι οποίες θα μπορούσαν να επιτρέψουν σε κάποιον να ταυτοποιήσει τις διευθύνσεις Bitcoin σας."
|
||||
iplog: "Η διεύθυνση IP σας μπορεί να καταγραφεί"
|
||||
|
|
|
@ -31,12 +31,26 @@ en:
|
|||
title: "Bitcoin for Businesses - Bitcoin"
|
||||
pagetitle: "Bitcoin for Businesses"
|
||||
summary: "Bitcoin is a very secure and inexpensive way to handle payments."
|
||||
lowfee: "The lowest fees out there"
|
||||
lowfeetext: "Bitcoin's high cryptographic security allows it to process transactions in a very efficient and inexpensive way. You can make and receive payments using the Bitcoin network with almost no fees. In most cases, fees are not strictly required but they are recommended for faster confirmation of your transaction."
|
||||
lowfee: "Choose your own fees"
|
||||
lowfeetext: >
|
||||
There is no fee to receive bitcoins, and many wallets let you
|
||||
control how large a fee to pay when spending. Most wallets have
|
||||
reasonable default fees, and higher fees can encourage faster <a
|
||||
href="#you-need-to-know##instant">confirmation</a> of your
|
||||
transactions. Fees are unrelated to the amount transferred, so it's
|
||||
possible to send 100,000 bitcoins for the same fee it costs to
|
||||
send 1 bitcoin.
|
||||
|
||||
|
||||
fraud: "Protection against fraud"
|
||||
fraudtext: "Any business that accepts credit cards or PayPal knows the problem of payments that are later reversed. Chargeback frauds result in limited market reach and increased prices, which in turn penalizes customers. Bitcoin payments are irreversible and secure, meaning that the cost of fraud is no longer pushed onto the shoulders of the merchants."
|
||||
international: "Fast international payments"
|
||||
internationaltext: "Bitcoins can be transferred from Africa to Canada in 10 minutes. In fact, bitcoins never have any real physical location, so it is possible to transfer any amount anywhere with no limits, delays, or excessive fees. There are no intermediate banks to make you wait three business days."
|
||||
internationaltext: >
|
||||
Sending bitcoins across borders is as easy as sending them across
|
||||
the street. There are no banks to make you wait three business
|
||||
days, no extra fees for making an international transfer, and no
|
||||
special limitations on the minimum or maximum amount you can send.
|
||||
|
||||
pci: "No PCI compliance required"
|
||||
pcitext: "Accepting credit cards online typically requires extensive security checks in order to comply with the PCI standard. Bitcoin still requires you to <a href=\"#secure-your-wallet#\">secure your wallet</a> and your payment requests. However, you do not carry the costs and responsibilities that come with processing sensitive information from your customers like credit card numbers."
|
||||
visibility: "Get some free visibility"
|
||||
|
@ -54,13 +68,35 @@ en:
|
|||
api: "Many third party APIs"
|
||||
apitext: "There are many third party payment processing services that provide APIs; you don't need to store bitcoins on your server and handle the security that this implies. Additionally, most of these APIs allow you to process invoices and exchange your bitcoins into your local currency at competitive costs."
|
||||
own: "You can be your own financial system"
|
||||
owntext: "If you don't use any third party APIs, you can integrate a Bitcoin server directly in your applications, allowing you to become your own bank and payment processor. With all the responsibilities that this implies, you can build amazing systems that process Bitcoin transactions with almost no fees."
|
||||
owntext: >
|
||||
If you don't use any third party APIs, you can integrate a Bitcoin
|
||||
node directly into your applications, allowing you to become your
|
||||
own bank and payment processor. With all the responsibilities that
|
||||
this implies, you can build amazing systems that process Bitcoin
|
||||
transactions however you would like.
|
||||
|
||||
invoice: "Bitcoin addresses to track invoices"
|
||||
invoicetext: "Bitcoin creates a unique address for each transaction. So if you were to build a payment system associated with an invoice, you simply need to generate and monitor a Bitcoin address for each payment. You should never use the same address for more than one transaction."
|
||||
security: "Most of the security is on client side"
|
||||
securitytext: "Most parts of the security are handled by the protocol. This means no need for PCI compliance and fraud detection is only required when services or products are delivered instantly. Storing your bitcoins in a <a href=\"#secure-your-wallet#\">secure environment</a> and securing payment requests displayed to the user should be your main concerns."
|
||||
micro: "Cheap micro payments"
|
||||
microtext: "Bitcoin offers the lowest payment processing fees and usually can be used to send micro payments as low as a few dollars in value. Bitcoin allows to design new creative online services that could not exist before only because of financial limitations. This includes various kinds of tipping systems and automated payment solutions."
|
||||
securitytext: >
|
||||
Most security is handled by the protocol, eliminating the need for
|
||||
PCI compliance. Fraud prevention can be simplified down to
|
||||
monitoring a single variable: the <a
|
||||
href="#you-need-to-know##instant">confirmation score</a>. Beyond
|
||||
that, keeping
|
||||
your bitcoins secure is mainly a matter of <a
|
||||
href="#secure-your-wallet#">securing your wallet</a> and using
|
||||
HTTPS or other secure protocols to send payment requests to customers.
|
||||
|
||||
micro: "New payment possibilities"
|
||||
microtext: >
|
||||
Bitcoin allows you to design new and creative online services
|
||||
that couldn't exist before because of financial limitations. This
|
||||
includes tipping systems, automated payment solutions,
|
||||
distributed crowd-funding services, time locked payment
|
||||
management, public asset tracking, low-trust escrow services,
|
||||
micro-payment channels, and more.
|
||||
|
||||
bitcoin-for-individuals:
|
||||
title: "Bitcoin for Individuals - Bitcoin"
|
||||
pagetitle: "Bitcoin for Individuals"
|
||||
|
@ -68,13 +104,26 @@ en:
|
|||
mobile: "Mobile payments made easy"
|
||||
mobiletext: "Bitcoin on mobiles allows you to pay with a simple two step scan-and-pay. No need to sign up, swipe your card, type a PIN, or sign anything. All you need to receive Bitcoin payments is to display the QR code in your Bitcoin wallet app and let your friend scan your mobile, or touch the two phones together (using NFC radio technology)."
|
||||
international: "Fast international payments"
|
||||
internationaltext: "Bitcoins can be transferred from Africa to Canada in 10 minutes. There is no bank to slow down the process, level outrageous fees, or freeze the transfer. You can pay your neighbors the same way as you can pay a member of your family in another country."
|
||||
internationaltext: >
|
||||
Sending bitcoins across borders is as easy as sending them across
|
||||
the street. There are no banks to make you wait three business
|
||||
days, no extra fees for making an international transfer, and no
|
||||
special limitations on the minimum or maximum amount you can send.
|
||||
|
||||
simple: "Works everywhere, anytime"
|
||||
simpletext: "Just like with email, you don't need to ask your family to use the same software or the same service providers. Just let them stick to their own favorites. No problem there; they are all compatible as they use the same open technology. The Bitcoin network never sleeps, even on holidays!"
|
||||
secure: "Security and control over your money"
|
||||
securetext: "Bitcoin transactions are secured by military grade cryptography. Nobody can charge you money or make a payment on your behalf. So long as you take the required steps to <a href=\"#secure-your-wallet#\">protect your wallet</a>, Bitcoin can give you control over your money and a strong level of protection against many types of fraud."
|
||||
lowfee: "Zero or low fees"
|
||||
lowfeetext: "Bitcoin allows you to send and receive payments at very low cost. Except for special cases like very small payments, there is no enforced fee. It is however recommended to pay a higher voluntary fee for faster confirmation of your transaction and to remunerate the people who operate the Bitcoin network."
|
||||
lowfee: "Choose your own fees"
|
||||
lowfeetext: >
|
||||
There is no fee to receive bitcoins, and many wallets let you
|
||||
control how large a fee to pay when spending. Most wallets have
|
||||
reasonable default fees, and higher fees can encourage faster <a
|
||||
href="#you-need-to-know##instant">confirmation</a> of your
|
||||
transactions. Fees are unrelated to the amount transferred, so it's
|
||||
possible to send 100,000 bitcoins for the same fee it costs to
|
||||
send 1 bitcoin.
|
||||
|
||||
anonymous: "Protect your identity"
|
||||
anonymoustext: "With Bitcoin, there is no credit card number that some malicious actor can collect in order to impersonate you. In fact, it is even possible to send a payment without revealing your identity, almost just like with physical money. You should however take note that some effort can be required to <a href=\"#protect-your-privacy#\">protect your privacy</a>."
|
||||
bitcoin-paper:
|
||||
|
@ -295,8 +344,8 @@ en:
|
|||
makepayment: "How difficult is it to make a Bitcoin payment?"
|
||||
makepaymenttxt1: "Bitcoin payments are easier to make than debit or credit card purchases, and can be received without a merchant account. Payments are made from a wallet application, either on your computer or smartphone, by entering the recipient's address, the payment amount, and pressing send. To make it easier to enter a recipient's address, many wallets can obtain the address by scanning a QR code or touching two phones together with NFC technology."
|
||||
advantages: "What are the advantages of Bitcoin?"
|
||||
advantagesli1: "<em><b>Payment freedom</b></em> - It is possible to send and receive any amount of money instantly anywhere in the world at any time. No bank holidays. No borders. No imposed limits. Bitcoin allows its users to be in full control of their money."
|
||||
advantagesli2: "<em><b>Very low fees</b></em> - Bitcoin payments are currently processed with either no fees or extremely small fees. Users may include fees with transactions to receive priority processing, which results in faster confirmation of transactions by the network. Additionally, merchant processors exist to assist merchants in processing transactions, converting bitcoins to fiat currency and depositing funds directly into merchants' bank accounts daily. As these services are based on Bitcoin, they can be offered for much lower fees than with PayPal or credit card networks."
|
||||
advantagesli1: "<em><b>Payment freedom</b></em> - It is possible to send and receive any amount of money anywhere in the world at any time. No bank holidays. No borders. No imposed limits. Bitcoin allows its users to be in full control of their money."
|
||||
advantagesli2: "<em><b>Low fees</b></em> - Bitcoin payments are currently processed with either no fees or extremely small fees. Users may include fees with transactions to receive priority processing, which results in faster confirmation of transactions by the network. Additionally, merchant processors exist to assist merchants in processing transactions, converting bitcoins to fiat currency and depositing funds directly into merchants' bank accounts daily. As these services are based on Bitcoin, they can be offered for much lower fees than with PayPal or credit card networks."
|
||||
advantagesli3: "<em><b>Fewer risks for merchants</b></em> - Bitcoin transactions are secure, irreversible, and do not contain customers’ sensitive or personal information. This protects merchants from losses caused by fraud or fraudulent chargebacks, and there is no need for PCI compliance. Merchants can easily expand to new markets where either credit cards are not available or fraud rates are unacceptably high. The net results are lower fees, larger markets, and fewer administrative costs."
|
||||
advantagesli4: "<em><b>Security and control</b></em> - Bitcoin users are in full control of their transactions; it is impossible for merchants to force unwanted or unnoticed charges as can happen with other payment methods. Bitcoin payments can be made without personal information tied to the transaction. This offers strong protection against identity theft. Bitcoin users can also protect their money with backup and encryption."
|
||||
advantagesli5: "<em><b>Transparent and neutral</b></em> - <a href=\"https://www.biteasy.com/\">All information</a> concerning the Bitcoin money supply itself is readily available on the block chain for anybody to verify and use in real-time. No individual or organization can control or manipulate the Bitcoin protocol because it is cryptographically secure. This allows the core of Bitcoin to be trusted for being completely neutral, transparent and predictable."
|
||||
|
@ -453,9 +502,9 @@ en:
|
|||
title: "Bitcoin - Open source P2P money"
|
||||
metadescription: "Bitcoin is an innovative payment network and a new kind of money. Find all you need to know and get started with Bitcoin on bitcoin.org."
|
||||
listintro: "Bitcoin is an innovative payment network and a new kind of money."
|
||||
list1: "Instant peer-to-peer<br>transactions"
|
||||
list1: "Fast peer-to-peer<br>transactions"
|
||||
list2: "Worldwide<br>payments"
|
||||
list3: "Zero or low<br>processing fees"
|
||||
list3: "Low<br>processing fees"
|
||||
desc: "Bitcoin uses peer-to-peer technology to operate with no central authority or banks; managing transactions and the issuing of bitcoins is carried out collectively by the network. <b>Bitcoin is open-source; its design is public, nobody owns or controls Bitcoin and <a href=\"#support-bitcoin#\">everyone can take part</a></b>. Through many of its unique properties, Bitcoin allows exciting uses that could not be covered by any previous payment system."
|
||||
overview: "Or get a quick overview for"
|
||||
innovation:
|
||||
|
@ -537,8 +586,6 @@ en:
|
|||
traceabletxt: "Bitcoin works with an unprecedented level of transparency that most people are not used to dealing with. All Bitcoin transactions are public, traceable, and permanently stored in the Bitcoin network. Bitcoin addresses are the only information used to define where bitcoins are allocated and where they are sent. These addresses are created privately by each user's wallets. However, once addresses are used, they become tainted by the history of all transactions they are involved with. Anyone can see the <a href=\"https://www.biteasy.com\">balance and all transactions</a> of any address. Since users usually have to reveal their identity in order to receive services or goods, Bitcoin addresses cannot remain fully anonymous. For these reasons, Bitcoin addresses should only be used once and users must be careful not to disclose their addresses."
|
||||
receive: "Use new addresses to receive payments"
|
||||
receivetxt: "To protect your privacy, you should use a new Bitcoin address each time you receive a new payment. Additionally, you can use multiple wallets for different purposes. Doing so allows you to isolate each of your transactions in such a way that it is not possible to associate them all together. People who send you money cannot see what other Bitcoin addresses you own and what you do with them. This is probably the most important advice you should keep in mind."
|
||||
send: "Use change addresses when you send payments"
|
||||
sendtxt: "You can use a Bitcoin client like Bitcoin Core that makes it difficult to track your transactions by creating a new change address each time you send a payment. For example, if you receive 5 BTC on address A, and you later send 2 BTC to address B, the remaining change must be sent back to you. Some Bitcoin clients are designed to send the change to a new address C in such a way that it becomes difficult to know if you own Bitcoin address B or C."
|
||||
public: "Be careful with public spaces"
|
||||
publictxt: "Unless your intention is to receive public donations or payments with full transparency, publishing a Bitcoin address on any public space such as a website or social network is not a good idea when it comes to privacy. If you choose to do so, always remember that if you move any funds with this address to one of your other addresses, they will be publicly tainted by the history of your public address. Additionally, you might also want to be careful not to publish information about your transactions and purchases that could allow someone to identify your Bitcoin addresses."
|
||||
iplog: "Your IP address can be logged"
|
||||
|
@ -715,6 +762,7 @@ en:
|
|||
footer: "Released under the <a href=\"http://opensource.org/licenses/mit-license.php\" target=\"_blank\">MIT license</a>"
|
||||
sponsor: "A community website sponsored by"
|
||||
getstarted: "Get started with Bitcoin"
|
||||
bitcoin-core: "Bitcoin Core"
|
||||
url:
|
||||
about-us: about-us
|
||||
bitcoin-for-developers: bitcoin-for-developers
|
||||
|
|
|
@ -490,8 +490,6 @@ es:
|
|||
traceabletxt: "Bitcoin trabaja con un nivel de transparencia sin precedentes que la mayoría de la gente no está acostumbrada. Todas las transacciones de Bitcoin son públicas, rastreables, y permanentemente almacenadas en la red Bitcoin. Las direcciones Bitcoin son la única información usada para definir donde se encuentran y donde han sido enviados los bitcoins. Estas direcciones son creadas de forma privada por el monedero del usuario. Sin embargo, una vez que se utilizan, estas son manchadas por la historia de todas las transacciones involucradas. Cualquier persona puede ver el <a href=\"https://www.biteasy.com\">saldo y operaciones</a> de cualquier dirección. Dado que los usuarios usualmente tienen que revelar su identidad para recibir bienes o servicios, las direcciones Bitcoin no pueden permanecer completamente anónimas. Es por esa razón que las direcciones Bitcoin deberían ser usadas una única vez y no ser descuidado para no revelar sus direcciones."
|
||||
receive: "Use nuevas direcciones para recibir pagos"
|
||||
receivetxt: "Para proteger su seguridad, debería utilizar una dirección Bitcoin nueva para cada pago recibido. Además, puede utilizar múltiples monederos para fines distintos. De esta manera le es posible aislar cada una de sus transacciones de forma que no sea posible asociarlas entre si. Las personas que le envíen dinero no podrán averiguar que otras direcciones posee y que hace con ellas. Trate de tener en cuenta esta recomendación."
|
||||
send: "Usa direcciones de cambio cuando envíes pagos"
|
||||
sendtxt: "Puede usar un cliente Bitcoin como Bitcoin Core que ayuda a que sea mas difícil rastrear sus transacciones creando una dirección nueva cada vez que envía un pago. Por ejemplo, si recibe 5 BTC en la dirección A y después usted manda 2 BTC a la dirección B, los BTC restantes le serán devueltos. Algunos clientes Bitcoin están diseñados para mandar el excedente a una nueva dirección C para que sea difícil averiguar si posee la dirección B o C."
|
||||
public: "Se cauto en espacios públicos"
|
||||
publictxt: "A menos que su intención sea recibir donaciones públicas o pagos con total transparencia, publicar una dirección Bitcoin en lugares públicos como páginas webs o redes sociales no es buena idea cuando se habla de su privacidad. Si elige hacerlo, recuerde siempre que en el momento que realice movimientos con esta dirección a una de sus otras direcciones, éstas quedarán marcadas por la historia de su dirección pública. Además, usted también podría querer ser más cauteloso y no publicar ninguna información sobre sus transacciones o compras que pudiera permitir a alguien identificar sus direcciones Bitcoin."
|
||||
iplog: "Tu dirección IP puede ser registrada"
|
||||
|
|
|
@ -484,8 +484,6 @@ fa:
|
|||
traceabletxt: "بیت کوین با سطح بی نظیری از شفافیت کار می کند که بیشتر مردم تا کنون از آن استفاده نکرده اند. تمام تراکنشهای بیت کوین عمومی و قابل پیگیری بوده و در شبکه بیت کوین بطور دائمی، ثبت می شوند. آدرسهای بیت کوینی، تنها اطلاعاتی است که برای تعریف محل تخصیص بیت کوینها و اینکه بیت کوینها به کجا فرستاده می شوند، بکار می رود. این آدرسها بطور خصوصی و توسط کیف پولهای هر کاربر، ساخته می شوند. اما به محضی که از این آدرسها استفاده شود، رکوردی که تمام تراکنشهای حاوی این آدرسها را نگه میدارد، این آدرسها را مخدوش می کند. هر کسی می تواند <a href=\"https://www.biteasy.com\">تراز و تمام تراکنشهای</a> هر آدرسی را ببیند. از آنجایی که کاربران به منظور دریافت سرویس و کالا معمولاً باید هویت خود را آشکار کنند، آدرسهای بیت کوینی نمی توانند کاملاً گمنام بمانند. به همین دلایل است که آدرسهای بیت کوینی باید یکبار مصرف باشند و کاربران باید مراقب باشند آدرسهایشان را فاش نکنند."
|
||||
receive: " برای دریافت پرداختها، از آدرسهای جدید استفاده کنید"
|
||||
receivetxt: "به منظور حفظ حریم خصوصی خود، هرگاه که قرارست پرداخت جدیدی را دریافت نمایید، باید از یک آدرس بیت کوینی جدید استفاده کنید. علاوه بر آن، می توانید از چندین کیف پول برای اهداف مختلف استفاده کنید. به این ترتیب خواهید توانست هر یک از تراکنشهای خود را به گونه ای مجزا کنید که ارتباط دادن آنها به یکدیگر ممکن نباشد. کسانی که برای شما پول می فرستند، نمی توانند آدرسهای بیت کوینی شما را ببینند و یا بدانند که شما با آنها چه می کنید. این احتمالاً مهمترین توصیه ای است که شما باید در ذهن داشته باشید."
|
||||
send: "هنگام ارسال پرداختها، از تغییر آدرسها استفاده کنید"
|
||||
sendtxt: "شما می توانید از یک کلاینت بیت کوینی مثلاً هسته بیت کوین استفاده کنید که پس از هر بار که پرداختی را ارسال می کنید، با ایجاد یک تغییر آدرس جدید، ردگیری تراکنشهای شما را دشوار می سازد. مثلاً اگر 5 بیت کوین از آدرس الف دریافت کنید و بعداً 2 بیت کوین به آدرس ب بفرستید، باقیمانده باید به شما برگردانده شود. بعضی کلاینتهای بیت کوینی طوری طراحی شده اند که باقیمانده را به آدرس جدید پ می فرستند بگونه ای که فهمیدن اینکه شما مالک آدرس بیت کوینی ب هستید یا پ، دشوار باشد."
|
||||
public: "مراقب فضاهای عمومی باشید"
|
||||
publictxt: "انتشار یک آدرس بیت کوینی در فضای عمومی مانند یک وب سایت یا یک شبکه عمومی، از نقطه نظر حریم خصوصی ایده خوبی نیست مگر آنکه قصد شما دریافت یک اعانه یا پرداختهای عمومی با شفافیت کامل باشد. اگر خود انتخاب کرده اید که اینگونه باشد، همواره بخاطر داشته باشید که اگر هر مبلغی را با این آدرس به یکی از آدرسهای دیگر خود منتقل کنید، آن آدرسها توسط رکورد آدرس عمومی شما، بطور عمومی مخدوش خواهند شد. افزون بر این، شاید بهتر باشد مراقب بوده و اطلاعات تراکنشها و خریدهایی که ممکن است کسی بتواند از آن طریق آدرسهای بیت کوینی شما را شناسایی کند، منتشر نکنید."
|
||||
iplog: "آدرس IP شما میتواند ثبت شود"
|
||||
|
|
|
@ -520,8 +520,6 @@ fr:
|
|||
traceabletxt: "Bitcoin fonctionne avec un niveau de transparence auquel la plupart des gens ne sont pas habitués. Toutes les transactions Bitcoin sont publiques, traçables et conservées de façon permanente dans le réseau Bitcoin. Les adresses Bitcoin sont les seules informations utilisées pour définir où les bitcoins sont alloués et où ils sont envoyés. Ces adresses sont créées confidentiellement par les portefeuille de chaque utilisateur. Toutefois, dès que ces adresses sont utilisées, elles deviennent souillées par l'historique de toutes les transactions dans lesquelles elles sont impliquées. Toute personne peut consulter le <a href=\"https://www.biteasy.com\">solde et les transactions</a> de n'importe quelle adresse. Étant donné que les utilisateurs doivent habituellement révéler leur identité afin de recevoir des biens ou des services, les adresses Bitcoin ne peuvent pas demeurer entièrement anonymes. Pour ces raisons, les adresses Bitcoin ne devraient être utilisées qu'une seule fois et les utilisateurs doivent faire attention à ne pas révéler leurs adresses."
|
||||
receive: "Utiliser de nouvelles adresses pour recevoir des paiements"
|
||||
receivetxt: "Afin de protéger votre confidentialité, vous devriez utiliser une nouvelle adresse Bitcoin chaque fois que vous recevez un nouveau paiement. Vous pouvez également utiliser plusieurs portefeuilles assignés à différents usages. Fonctionner de cette façon permet d'isoler chacune de vos transactions de telle sorte qu'il ne soit pas possible de les associer les unes aux autres. Les personnes qui vous envoient de l'argent ne peuvent pas voir quelles autres adresses vous possédez ni ce que vous en faites. Ce conseil est probablement le plus important à garder en tête."
|
||||
send: "Utiliser des adresses de change pour envoyer des paiements"
|
||||
sendtxt: "Vous pouvez utiliser un client Bitcoin tel que Bitcoin Core qui complexifie le suivi de vos transactions en créant une nouvelle adresse de change chaque fois que vous émettez un paiement. Par exemple, si vous recevez 5 BTC à l'adresse A et que vous envoyez ensuite 2 BTC à l'adresse B, la monnaie restante (le change) doit vous être retourné. Certains clients Bitcoin sont conçus afin d'envoyer le change vers une nouvelle adresse C de telle sorte à ce qu'ils soit difficile de savoir si vous possédez l'adresse Bitcoin B ou C."
|
||||
public: "Soyez prudents avec les espaces publics"
|
||||
publictxt: "À moins que votre intention ne soit de recevoir des dons publics ou des paiements avec une transparence complète, publier une adresse Bitcoin dans un espace public tel qu'un site Web ou un réseau social n'est pas une bonne idée lorsqu'il s'agit de confidentialité. Si vous choisissez de le faire, rappelez-vous que si vous déplacez des fonds avec cette adresse vers l'une de vos autres adresses, elles seront publiquement souillées par l'historique de votre adresse publique. Il peut aussi être utile de faire attention à ne pas publier des informations sur vos transactions et vos achats qui pourraient permettre à une personne d'identifier vos adresses Bitcoin."
|
||||
iplog: "Votre adresse IP peut être enregistrée"
|
||||
|
|
|
@ -515,8 +515,6 @@ hi:
|
|||
traceabletxt: "Bitcoin पारदर्शिता का एक अभूतपूर्व स्तर के साथ काम करता है जिस की ज्यादातर लोगों को आदत नहीं होती। सभी Bitcoin लेनदेन, सार्वजनिक होते हैं, उनका पता लगाया जा सकता है, और स्थायी रूप Bitcoin नेटवर्क में संग्रहित किए जाते हैं। Bitcoins आवंटित करने और कहां भेजे गए परिभाषित करने के लिए, केवल Bitcoin पतों का इस्तेमाल किया जाता है। ये पते, प्रत्येक उपयोगकर्ता के बटुए से निजी तौर पर बनाए जाते हैं। हालांकि, एक बार एक पते का उपयोग किए जाने के बाद वे इतिहास द्वारा सभी लेनदेन जिस में वे शामिल है, से दूशित हो जाते हैं। कोई भी देख सकता है <a href=\"https://www.biteasy.com\">सभी लेनदेन का शेश</a> क्योंकि, किसी भी पते का। कोई भी सेवा या वस्तु प्राप्त करने के लिए, उपयोगकर्ताओं को आम तौर पर अपनी पहचान का उजागर करना होता है, Bitcoin पत, पूरी तरह से गुमनाम नहीं रह सकते। इन कारणों से, Bitcoin पते, केवल एक ही बार इस्तेमाल किए जाने चाहिए और उपयोगकर्ताओं को पते के खुलासे से सावधान रहना चाहिए।"
|
||||
receive: "भुगतान प्राप्त करने के लिए नए पतों का प्रयोग करें"
|
||||
receivetxt: "अपनी गोपनीयता की रक्षा के लिए, आपको एक नया भुगतान प्राप्त करने के लिए एक नए Bitcoin पते का उपयोग करना चाहिए। साथ ही, आप विभिन्न प्रयोजनों के लिए मल्टि बटुए का उपयोग कर सकते हैं। ऐसा करने से, अपने प्रत्येक लेनदेन को अलग कर सकते हैं, इस तरह कि उन्हें एक साथ संबद्धित करना संभव नहीं होगा। लोग जो आपको पैसा भेजते हैं, आपके अन्य Bitcoin पते नहीं देख सकते। शायद यह आपको ध्यान में रखना सबसे महत्वपूर्ण सलाह है।"
|
||||
send: "जब आप भुगतान भेजते हैं तो पता परिवर्तन का उपयोग करें"
|
||||
sendtxt: "आप Bitcoin कोर की तरह एक Bitcoin क्लाइंट का उपयोग कर सकते हैं जो अपने लेनदेन को ट्रैक करना कठिन बनाता है, एक नया पता बना कर, जब हर बार आप एक भुगतान भेजते हैं। उदाहरण के लिये, यदि आप पते A पर 5 BTC प्राप्त करते हैं और बाद में आप 2 BTC पते B पर भेजते हैं, तो शेष आपको वापस भेजा जाना चाहिए एक कए पते C पर। इस तरह से, Bitcoin पता B या C कौनसा पता अपका है, यह जानना मुश्किल हो जाता है।"
|
||||
public: "सार्वजनिक स्थलों से सावधान रहें"
|
||||
publictxt: "जब तक आपका इरादा सार्वजनिक दान प्राप्त करना या पूर्ण पारदर्शिता के साथ भुगतान करना नही है, किसी भी सार्वजनिक स्थान पर, जैसे वेबसाइट या सामाजिक नेटवर्क, एक Bitcoin पते का प्रकाशन करना, गोपनीयता के द्रुष्टी से ठीक नहीं है। यदि आप ऐसा करना चुनते हैं तो, हमेशा याद रखें कि आप इस पते से किसी भी राशि को अगर अपने दूसरे किसी पतों पर भेजते हैं तो वे अपने सार्वजनिक पते के इतिहास से दूशित बतलाए जाते हैं। साथ ही, आपको अपने लेनदेन और खरीदी के बारे में जानकारी, जिससे दुसरों के आपके Bitcoin पतों की पहचान हो सके, उन्हे प्रकाशित करने से सावधान रहना चाहिए।"
|
||||
iplog: "आपका IP पता लॉग इन कर सकते हैं"
|
||||
|
|
|
@ -516,8 +516,6 @@ hu:
|
|||
traceabletxt: "A Bitcoin korábban soha nem tapasztalt transzparenciával működik, amihez az emberek többsége nincsen hozzászokva. Az összes Bitcoin-tranzakció nyilvános, nyomon követhető, illetve azonnal tárolódik a Bitcoin-hálózaton. A Bitcoin-címek jelentik a bitcoinok helyének és küldési címének egyetlen azonosítóját. E címeket privát módon hozza létre a felhasználók pénztárcája. Ugyanakkor, ha egy cím használttá válik, akkor \"beszennyeződik\" az összes olyan tranzakció történetével, amelyben részt vett. Bárki láthatja bármelyik cím <a href=\"https://www.biteasy.com\">egyenlegét és összes tranzakcióját</a>. Mivel a felhasználóknak általában fel kell fedniük személyazonosságukat ahhoz, hogy termékeket vásárolhassanak vagy szolgáltatásokat vehessenek igénybe, a Bitcoin-címek nem lehetnek teljes mértékben anonimok. Ezen okok miatt a Bitcoin-címeket csak egyszer célszerű használni, valamint a felhasználónak óvakodniuk kell címeik felfedésétől."
|
||||
receive: "Használjon új címeket a kifizetések fogadására"
|
||||
receivetxt: "Személyes adatainak védelme érdekében minden új kifizetés fogadására új Bitcoin-címet érdemes használnia. Továbbá különböző célokra többféle pénztárcát használhat. Ily módon úgy különítheti el tranzakcióit egymástól, hogy összekapcsolásuk nem lehetséges. Az Önnek fizető személyek nem látják, hogy milyen Bitcoin-címeket birtokol, és mire használja őket. Valószínűleg ez a legfontosabb szabály, amelyet érdemes észben tartania."
|
||||
send: "Használjon változáscímeket a kifizetések elküldéséhez"
|
||||
sendtxt: "Egy Bitcoin-klienst Bitcoin Core-ként használhat, amely minden új kifizetés elküldésekor egy új változáscím létrehozásával megnehezíti tranzakciói követését. Például ha 5 BTC-t fogad az A címen, és később 2 BTC-t küld a B címre, akkor a visszajárónak vissza kell kerülnie Önhöz. Néhány Bitcoin-klienst úgy terveztek, hogy a visszajárót egy új, C címre küldje oly módon, hogy nehezen felismerhetővé váljon, hogy Ön birtokolja-e a B és C címet."
|
||||
public: "Legyen óvatos nyilvános helyeken"
|
||||
publictxt: "Hacsak nem az a célja, hogy nyilvánosan, teljes transzparencia mellett adományokat gyűjtsön vagy kifizetéseket fogadjon, a Bitcoin-címek megosztása bármely nyilvános helyen - mint például egy honlapon vagy közösségi hálózaton - nem a legjobb ötlet a személyes adatok védelme szempontjából. Amennyiben mégis így dönt, soha ne felejtse el, hogy ha bármilyen összeget erről a címről átvisz egy másik címe egyikére, az összeg nyilvánosan \"szennyezetté\" fog válni a nyilvános cím tranzakciótörténetével. Ezenkívül nem célszerű információkat megosztania tranzakcióiról és vásárlásairól, mivel ezek segítségével Bitcoin-címei azonosíthatóvá válhatnak."
|
||||
iplog: "IP-címe naplózható"
|
||||
|
|
|
@ -515,8 +515,6 @@ id:
|
|||
traceabletxt: "Bitcoin bekerja dengan tingkat transparansi yang belum pernah ada sebelumnya. Semua transaksi Bitcoin bersifat publik, dapat dilacak, dan secara permanen disimpan dalam jaringan Bitcoin. Alamat Bitcoin adalah satu-satunya informasi yang digunakan untuk menentukan di mana bitcoin disimpan dan ke mana mereka dikirim. Alamat ini dibuat secara pribadi oleh dompet masing-masing pengguna. Namun, setelah alamat tersebut digunakan, mereka menjadi tercemar oleh sejarah semua transaksi mereka. Siapapun dapat melihat <a href=\"https://www.biteasy.com\">saldo dan semua transaksi</a> alamat manapun. Karena pengguna biasanya harus memberitahukan identitas mereka dalam rangka untuk menerima jasa atau barang, alamat Bitcoin tidak bisa tetap sepenuhnya anonim. Untuk alasan ini, alamat Bitcoin sebaiknya hanya digunakan sekali dan pengguna harus berhati-hati untuk tidak memberitahukan alamat mereka."
|
||||
receive: "Gunakan alamat baru untuk menerima pembayaran"
|
||||
receivetxt: "Untuk melindungi privasi, Anda disarankan menggunakan satu alamat Bitcoin yang baru setiap kali Anda menerima pembayaran. Sebagai tambahan, Anda bisa menggunakan banyak dompet untuk tujuan yang berbeda-beda. Dengan demikian transaksi-transaksi yang Anda lakukan tidak dapat dihubung-hubungkan secara bersamaan. Orang-orang yang mengirimkan Anda uang tidak bisa melihat akun Bitcoin lain yang Anda punya serta apa yang Anda lakukan dengan akun-akun tersebut. Ini adalah saran yang harus selalu Anda ingat. "
|
||||
send: "Gunakan alamat yang berubah-ubah saat Anda melakukan pembayaran"
|
||||
sendtxt: "Anda dapat menggunakan klien Bitcoin seperti Bitcoin Core yang mempersulit upaya memonitor transaksi Anda dengan cara membuat alamat baru yang berubah tiap kali Anda melakukan pembayaran. Contohnya, jika Anda menerima 5 BTC di alamat A, lalu kemudian Anda mengirim 2 BTC ke alamat B, sisanya harus dikirim balik kepada Anda. Beberapa klien Bitcoin didesain untuk mengirim kembalian ke alamat baru di C sehingga sulit untuk mengetahui bahwa Anda memiliki alamat Bitcoin di B atau C."
|
||||
public: "Berhati-hatilah di ruang publik"
|
||||
publictxt: "Kecuali Anda berniat menerima donasi atau pembayaran publik dengan transparansi penuh, mempublikasikan alamat Bitcoin di ruang publik seperti website atau media sosial tidaklah disarankan demi privasi Anda. Jika Anda memilih demikian, selalu ingat bahwa jika Anda memindahkan uang dari alamat ini ke alamat Anda yang lain, maka publik akan mengetahui jejak sejarah alamat Anda. Sebagai tambahan, Anda juga perlu berhati-hati untuk tidak mempublikasikan informasi mengenai transaksi dan pembelian Anda yang dapat membuat seseorang mampu mengidentifikasi alamat Bitcoin Anda."
|
||||
iplog: "Alamat IP Anda dapat tercatat"
|
||||
|
|
|
@ -521,8 +521,6 @@ it:
|
|||
traceabletxt: "Bitcoin opera ad un livello di trasparenza senza precedenti, a cui la maggior parte delle persone non è abituata. Tutte le transazioni di Bitcoin sono pubbliche, tracciabili e raccolte in maniera permanente nella rete di Bitcoin. Gli indirizzi di Bitcoin sono le uniche informazioni utilizzate per definire dove si trovano i bitcoin, e dove sono inviati. Tali indirizzi sono creati privatamente dai portafogli di ciascun utente. Tuttavia, una volta che gli indirizzi vengono utilizzati, sono corrotti dalla storia di tutte le transazioni con cui sono coinvolti. Tutti possono vedere il <a href=\"https://www.biteasy.com\">bilancio e tutte le transazioni </a> di ogni indirizzo. Dato che gli utenti di solito devono rivelare la propria identità, per poter ricevere servizi o beni, gli indirizzi Bitcoin non possono restare totalmente anonimi. Per queste ragioni, gli indirizzi Bitcoin dovrebbero essere utilizzati solo una volta e gli utenti devono prestare attenzione a non divulgare i loro indirizzi. "
|
||||
receive: "Usa nuovi indirizzi per ricevere pagamenti"
|
||||
receivetxt: "Per proteggere la tua privacy, dovresti utilizzare un nuovo indirizzo Bitcoin ogni volta che ricevi un nuovo pagamento. Inoltre, puoi utilizzare multipli portafogli per diversi scopi. Facendo così, puoi isolare ogni singola transazione, in modo tale da non rendere possibile la loro associazione globale. Le persone che ti inviano denaro, non possono vedere gli altri indirizzi Bitcoin che possiedi, e che cosa ne fai. Questo è probabilmente il consiglio più importante che dovresti tenere in mente. "
|
||||
send: "Usa la funzione cambia indirizzi quando mandi pagamenti"
|
||||
sendtxt: "Puoi utilizzare un client di Bitcoin come Bitcoin Core, che rende difficile tracciare le tue transazioni, creando un nuovo indirizzo di scambio, ogni volta che invii un pagamento. Ad esempio, se ricevi 5 bitcoin da un indirizzo A, e poi invii 2 bitcoin all'indirizzo B, il cambio restante dev'essere inviato a te. Alcuni client di Bitcoin sono programmati per inviare il cambio ad un nuovo indirizzo C, in modo tale da rendere difficile sapere che possiedi l'indirizzo Bitcoin B o C. "
|
||||
public: "Attenzione agli spazi pubblici"
|
||||
publictxt: "A meno che la tua intenzione non sia quella di ricevere donazioni o pagamenti in completa trasparenza, pubblicare un indirizzo Bitcoin in spazi pubblici quali siti web o social network non è una buona idea in termini di privacy. Se scegli di farlo, ricorda sempre che se sposti fondi da questo indirizzo a un tuo altro indirizzo, anch'esso sarà facilmente rintracciabile. Oltretutto, sarebbe prudente non pubblicare informazioni su transazioni o acquisti che potrebbero permettere a qualcuno di identificare il tuo indirizzo Bitcoin."
|
||||
iplog: "Il tuo indirizzo IP può essere registrato"
|
||||
|
|
|
@ -515,8 +515,6 @@ ja:
|
|||
traceabletxt: "ビットコインは、ほとんどの人が今まで取り組んだことがないほどの透明度で作動しています。ビットコイン取引のすべては、公共で、追跡可能で、永久的にビットコインネットワークに保管されます。ビットコインがどこに割り当てられ、どこに送られたかを定義するのに使われる情報が、ビットコイン・アドレスです。これらのアドレスは、各ユーザーのウォレットで私的に作られています。しかし、アドレスが使われると、それが自己のすべての取引歴と関連付けられ、誰でもが、これらのアドレスの <a href=\"https://www.biteasy.com\">残高とすべての取引</a> を見ることができます。ユーザーが、サービスや商品を受け取るには、身元を明かさなければならないので、ビットコイン・アドレスは完全に匿名であり続けることはできません。こうした理由により、各ビットコイン・アドレスの使用は一度限りとし、ユーザーは自分のアドレスを明かさないように注意しなければなりません。"
|
||||
receive: "支払いを受け取るために新しいアドレスを使いましょう"
|
||||
receivetxt: "あなたの個人情報を守るため、支払いを受け取る度に、新しいビットコイン・アドレスを使うべきです。また、目的に合わせて、多数のウォレットを使い分ける事もできます。これによって、すべての取引を関連付けることができないように、それぞれの取引を孤立させることができます。あなたがお金を送る相手は、あなたが所有する他のビットコインアドレスを見たり、それを使ってあなたが何をしているかを見ることはできません。これは、あなたが頭に入れておくべき最も重要な忠告でしょう。"
|
||||
send: "あなたが支払いを送る際には、お釣り用アドレスを使おう。"
|
||||
sendtxt: "ビットコイン・クライアントは、ビットコイン・コアのように、あなたが支払いを送るたびに、新しいアドレスを作り、あなたの取引の追跡が、難しくなるようにすることができます。例えば、あなたが5 BTCをアドレスAで受け取り、後にあなたが2 BTCをアドレスBに送ると、残ったお釣りはあなたに送り返されなければなりません。ビットコイン・クライアントの中には、あなたがビットコイン・アドレスBとCを所有していることがわかりにくいような方法で、そのお釣りを新しいアドレスCに送るのもあります。"
|
||||
public: "パブリックスペースでは気をつけること"
|
||||
publictxt: "あなたの意図が、寄付を集めることや、完全な透明度で支払いを受け取ることでなければ、ビットコイン・アドレスをウエブサイトやソーシャルネットワークといった公共スペースに公表することは、プライバシー面上、良いアイデアではありません。もし、それをするなら、そのアドレスからあなたの他のアドレスに資金を動かす際には、公表されたアドレスの歴史と繋がって、その他のアドレスも公になることを覚えておいてください。また、誰かがあなたのビットコイン・アドレスを確認できるような取引や購入に関する情報も公表しないように注意するべきです。"
|
||||
iplog: "あなたのIPアドレスは、記録される可能性があります。"
|
||||
|
|
|
@ -515,8 +515,6 @@ ko:
|
|||
traceabletxt: "비트코인은 사람들이 아직 익숙하지 않은 수준의 투명성을 가지고 작동합니다. 모든 비트코인 거래는 공개되며 추적이 가능하고 영구히 비트코인 네트워크에 기록됩니다. 비트코인의 위치와 움직임은 오로지 비트코인 주소라는 정보로서 정의됩니다. 이러한 주소들은 사용자의 지갑에 사적으로 생성됩니다. 그러나 한 번 하나의 주소가 사용되었을 때, 그 주소는 존재하는 모든 거래 역사 정보와 관련이 됩니다. 누구나 어느 주소든지 그 주소의<a href=\"https://www.biteasy.com\">잔액과 거래</a>들을 열어볼 수 있는 것입니다. 사용자가 제품이나 서비스를 받기 위해서는 그들의 신원을 공개해야 하니 비트코인 주소들은 익명성이 완전히 보장될 수는 없습니다. 이러한 이유로 인해, 하나의 비트코인 주소는 단 한번만 사용되어야하며 사용자들은 그들의 주소를 밝히지 않도록 조심해야 합니다."
|
||||
receive: "지불을 받기 위해서 새 주소를 사용하세요"
|
||||
receivetxt: "당신의 프라이버시를 지키기 위해서, 당신은 매번 지불을 받을 때마다 새로운 비트코인 주소를 사용해야 합니다. 또한, 당신은 목적에 따라 다수의 다른 지갑들을 사용할 수 있습니다. 이렇게 하는 것은 각각의 거래들을 서로 격리시켜서 외부에서 보았을 때에 이 거래들이 연관성이 없는 것처럼 보이게 할 수 있습니다. 당신에게 비트코인을 보내는 사람들은 당신이 가지고 있는 다른 비트코인 주소들을 볼 수 없으며 당신이 그 주소들로 무엇을 하는지도 알 수 없습니다. 이는 아마 당신이 기억해야 할 가장 중요한 조언일 것입니다."
|
||||
send: "결제금액을 보낼 때에는 주소 바꿈을 사용하세요"
|
||||
sendtxt: "당신은 Bitcoin Core와 같은 비트코인을 사용해서 매번 비트코인을 보낼 때마다 새로운 주소를 생성할 수 있습니다. 이는 외부에서 당신의 거래내역을 추적하는 것을 어렵게 합니다. 예를 들어서, 당신이 A 주소에서 5 BTC 를 받습니다. 이후 B 주소로 2 BTC 를 보냅니다. 이 때 남은 잔액은 다시 당신에게 보내집니다. 하지만 어떤 비트코인 클라이언트들은 이 때 새로운 주소 C를 생성하고 그곳으로 잔액을 보내도록 합니다. 이렇게하면 외부에서 당신이 주소 B나 C를 동시에 소유하고 있는지를 알 수가 없게 됩니다."
|
||||
public: "공개 공간을 조심하십시오"
|
||||
publictxt: "당신의 의도가 공공후원이나 기부를 받으면서 이를 완전히 투명하게 공개하는 것이 아니라면, 프라이버시 측면에서 비트코인 주소를 웹사이트나 소셜 네트워크 공간같은 공간에 공개하는 것은 좋은 생각이 아닙니다. 그렇게 하기로 선택을 한다면, 이 주소에서 돈을 옮겨 다른 주소로 옮길 때에, 당신의 주소가 비트코인 거래 역사에 공개적으로 관련될 것이라는 것을 기억하세요. 또한 타인이 당신의 비트코인 주소를 알아보지 못하도록, 당신의 거래나 물건구입에 대한 정보를 이러한 공간들에 공개해서도 안됩니다."
|
||||
iplog: "당신의 IP 주소는 기록될 수 있습니다."
|
||||
|
|
|
@ -515,8 +515,6 @@ nl:
|
|||
traceabletxt: "Bitcoin werkt met een ongekend niveau van transparantie waar de meeste mensen niet gewend zijn om mee om te gaan. Alle Bitcoin-transacties zijn openbaar, traceerbaar, en permanent opgeslagen in het Bitcoin-netwerk. Bitcoin-adressen zijn de enige gegevens die worden gebruikt om te bepalen waar Bitcoins worden toegewezen en waarnaar ze worden verzonden. Deze adressen worden privé aangemaakt door de portemonnees van elke gebruiker. Echter, zodra adressen worden gebruikt, worden ze getekend door de geschiedenis van alle transacties die ermee gedaan zijn. Iedereen kan de <a href=\"https://www.biteasy.com\"> balans en alle transacties </a> van een adres te zien. Omdat gebruikers meestal hun identiteit moeten prijsgeven om diensten of goederen te ontvangen, kunnen Bitcoin-adressen niet volledig anoniem blijven. Om deze redenen dienen Bitcoin-adressen slechts één keer te worden gebruikt en de gebruikers moeten oppassen om hun adressen niet bekend te maken."
|
||||
receive: "Gebruik nieuwe adressen om betalingen te ontvangen"
|
||||
receivetxt: "Om uw privacy te beschermen, moet u elke keer dat u een nieuwe betaling ontvangt een nieuw Bitcoin-adres gebruiken. Daarnaast kunt u verschillende portemonnees voor verschillende doeleinden gebruiken. Op deze manier wordt elke transactie op een dusdanige manier geïsoleerd dat het niet mogelijk is om deze met elkaar te associëren. Mensen die u geld sturen, kunnen niet zien welke Bitcoin-adressen u hebt en wat u hiermee doet. Dit is een van de belangrijkste adviezen die u in acht zou moeten houden."
|
||||
send: "Gebruik wijzigingsadressen bij het verzenden van betalingen"
|
||||
sendtxt: "U kunt een Bitcoin-client gebruiken zoals Bitcoin Core die het moeilijk maakt om uw transacties te volgen door telkens wanneer u een betaling verstuurt een nieuw wijzigingsadres te creëren. Bijvoorbeeld, als u 5 BTC ontvangt op adres A, en u later 2 BTC naar adres B verstuurt, moet het resterende wisselgeld terug naar u worden verzonden. Sommige Bitcoin-clients zijn ontworpen om de verandering naar het nieuwe adres C te versturen, zodat het moeilijk wordt om te weten of u eigenaar bent van Bitcoin-adres B of C."
|
||||
public: "Wees voorzichtig in openbare ruimten"
|
||||
publictxt: "Tenzij het uw bedoeling is om de openbare donaties of betalingen met volledige transparantie te ontvangen, is het publiceren van een Bitcoin-adres op een openbare ruimte, zoals een website of sociaal netwerk geen goed idee als het gaat om privacy. Als u ervoor kiest om dit te doen, onthoud dan altijd dat als u geld met dit adres naar een van uw andere adressen overmaakt, dit publiekelijk leesbaar wordt door de geschiedenis van uw publieke adres. Daarnaast wilt u er wellicht ook voor zorgen dat u geen informatie over uw transacties en aankopen publiceert waarmee iemand uw Bitcoin-adressen kan identificeren."
|
||||
iplog: "Uw IP-adres kan worden vastgelegd"
|
||||
|
|
|
@ -520,8 +520,6 @@ pl:
|
|||
traceabletxt: "Bitcoin funkcjonuje przy bezprecedensowym poziomie przejrzystości, do którego większość ludzi nie przywykło. Wszystkie transakcje sa publiczne, identyfikowalne i trwale przechowywane w sieci Bitcoin. Adresy Bitcoin są jedyną informacją używaną do określenia, gdzie przechowywane są bitcoiny i gdzie zostają one wysłane. Adresy te są tworzone prywatnie przez portfele każdego z użytkowników. Jednakże gdy adresy zostaną już wykorzystane, zostają skażone historią wszystkich transakcji, w jakich brały udział. Każdy może oglądać <a href=\"https://www.biteasy.com\">salda i wszystkie transakcje</a> każdego adresu. Ze względu na fakt, że użytkownicy muszą na ogół ujawniać swą tożsamość, by otrzymywać usługi lub produkty, adresy Bitcoin nie mogą pozostać w pełni anonimowe. Z tego też względu adresy Bitcoin powinny być używane tylko jednokrotnie, zaś użytkownicy muszą być ostrożni, by nie ujawnić swych adresów."
|
||||
receive: "Używaj nowych adresów do przyjmowania płatności"
|
||||
receivetxt: "Aby chronić swą prywatność, powinieneś używać nowego adresu Bitcoin za każdym razem, gdy otrzymujesz nową płatność. Dodatkowo możesz używać wielu różnych portfeli do różnych celów. W ten sposób wyizolujesz każdą transakcję w taki sposób, że niemożliwe będzie połączenie ich wszystkich ze sobą nawzajem. Osoby, które wysyłają Ci pieniądze, nie mogą sprawdzić, jakie inne adresy Bitcoin posiadasz i co z nimi robisz. Jest to chyba najważniejsza rada, o której powinieneś pamiętać."
|
||||
send: "Używaj adresów zmiany, gdy wysyłasz pieniądze"
|
||||
sendtxt: "Możesz używać klienta Bitcoin takiego jak Bitcoin Core, który utrudni namierzanie Twoich transakcji poprzez tworzenie nowej zmiany adresu za każdym razem, gdy wyślesz płatność. Dla przykładu - jeśli otrzymasz 5 BTC na adres A, następnie zaś wyślesz 2 BTC na adres B, pozostała reszta musi zostać do Ciebie odesłana. Niektóre z programów obsługujących Bitcoin są zaprojektowane, by odsyłać resztę na nowy adres C w taki sposób, aby określenie, czy posiadasz adres Bitcoin B czy C, było trudne."
|
||||
public: "Bądź ostrożny z miejscami publicznymi"
|
||||
publictxt: "O ile nie zamierzasz otrzymywać publicznych darowizn przy pełnej transparentności, publikowanie adresu Bitcoin w jakiejkolwiek przestrzeni publicznej (takiej jak strona internetowa czy sieć społecznościowa) nie jest dobrym pomysłem, jeśli idzie o prywatność. Jeśli zdecydujesz się tak zrobić, zawsze pamiętaj, że jeśli przeniesiesz jakiekolwiek środki z tego adresu na inny, będą one skażone historią Twojego adresu publicznego. Dodatkowo możesz też chcieć uważać, by nie publikować informacji o swoich transakcjach i zakupach, które mogłyby umożliwić komuś identyfikację Twoich adresów Bitcoin."
|
||||
iplog: "Twój adres IP może być rejestrowany"
|
||||
|
|
|
@ -516,8 +516,6 @@ pt_BR:
|
|||
traceabletxt: "Bitcoins opera com um nível de transparência que muitas pessoas não estão acostumadas. Todas as transações Bitcoin são públicas, rastreáveis e armazenadas permanentemente na rede Bitcoin. Os endereços Bitcoin é a única informação usada para definir onde os bitcoins serão alocados e aonde serão enviados. Estes endereços são criados privadamente pelas carteiras de cada usuário. No entanto, uma vez utilizados os endereços, estes tornam-se marcados pela história de todas as operações em que estão envolvidos. Qualquer um pode ver o <a href=\"https://www.biteasy.com\">saldo e todas as transações</a> de qualquer endereço. Como os usuários geralmente têm de revelar a sua identidade, a fim de receber bens ou serviços, os endereços Bitcoin não podem ficar totalmente anônimos. Por estas razões, os endereços Bitcoin devem ser utilizados apenas uma vez e os usuários devem ter cuidado para não revelar seus endereços."
|
||||
receive: "Use endereços novos para receber pagamentos"
|
||||
receivetxt: "Para proteger sua privacidade, você deve usar um endereço Bitcoin novo cada vez que você recebe um novo pagamento. Além disso, você pode usar múltiplas carteiras para propósitos diferentes. Fazendo isso permite isolar cada uma das suas transações de uma maneira que não é possível associá-las todas juntas. Pessoas que enviam dinheiro para você não podem ver quais outros endereços Bitcoin você é dono e o que você faz com eles. Este é, provavelmente, o conselho mais importante que você deve manter em mente."
|
||||
send: "Use mudar endereços quando você enviar pagamentos"
|
||||
sendtxt: "Você pode usar um cliente Bitcoin como Bitcoin Core que faz com que seja difícil rastrear suas transações através da criação de um novo endereço cada vez que você enviar um pagamento. Por exemplo, se você receber 5 BTC no endereço A, e mais tarde enviar 2 BTC para endereço B, a variação restante deverá ser enviada de volta para você. Alguns clientes Bitcoin são projetados para enviar o troco para um novo endereço C, de tal forma que se torna difícil saber se você possui endereço Bitcoin B ou C."
|
||||
public: "Tenha cuidado com lugares públicos"
|
||||
publictxt: "A menos que sua intenção seja receber doações públicas ou pagamentos com total transparência, publicar um endereço Bitcoin em qualquer espaço público, como um site ou rede social não é uma boa idéia quando se trata de privacidade. Se você optar por fazê-lo, lembre-se sempre que se você mover quaisquer fundos com esse endereço para um de seus outros endereços, eles vão ser maculados publicamente pela história do seu endereço público. Além disso, você pode também querer ter cuidado para não publicar informações sobre suas transações e compras que poderiam permitir que alguém identifique seus endereços Bitcoin."
|
||||
iplog: "O seu endereço de IP pode ficar registrado"
|
||||
|
|
|
@ -515,8 +515,6 @@ ro:
|
|||
traceabletxt: "Bitcoin funcţionează la un nivel nemaiîntâlnit de transparenţă cu care majoritatea oamenilor nu sunt obişnuiţi. Toate tranzacţiile Bitcoin sunt publice, urmăribile şi stocate permanent în reţeaua Bitcoin. Adresele Bitcoin sunt singura informaţie folosită pentru a defini unde sunt bitcoinii alocaţi şi unde sunt ei trimişi. Aceste adrese sunt create în mod privat de portofelele fiecărui utilizator în parte. Dar, odată ce adresele sunt folosite, ele devin pătate de istoricul tuturor tranzacţiilor în care au fost implicate. Oricine poate vedea <a href=\"https://www.biteasy.com\">balanţele şi toate tranzacţiile</a> a oricărei adrese. Din moment ce utilizatorii în mod normal sunt nevoiţi la un moment dat să-şi dezvăluie identitatea pentru a primi bunuri sau servicii, adresele Bitcoin nu pot rămâne în întregime anonime. Pentru aceste motive, adresele Bitcoin ar trebui să fie folosite o singură dată şi utilizatorii trebuie să fie atenţi să nu-şi dezvăluie adresele."
|
||||
receive: "Utilizează noi adrese pentru a primi plăți"
|
||||
receivetxt: "Pentru a-ţi proteja identitatea, ar trebui să foloseşti o nouă adresă Bitcoin de fiecare dată când primeşti o nouă plată. Adiţional, poţi folosi mai multe portofele pentru diferite scopuri. Făcând asta îţi permite să izolezi fiecare din tranzacţiile tale în aşa fel încât nu va fi posibil să le asociezi pe toate împreună. Persoanele ce îţi trimit banii nu pot vedea ce alte adrese Bitcoin deţii şi ce faci cu ele. Aceste este probabil ce mai important sfat pe care ar trebui să-l ţii minte."
|
||||
send: "Foloseşte adrese de schimb atunci când faci plăţi"
|
||||
sendtxt: "Poţi folosi un client Bitcoin precum Bitcoin Core care îngreunează urmărirea tranzacţiilor tale prin crearea unei noi adrese de schimb de fiecare dată când faci o plată. De exemplu, dacă primeşti 5 BTC la adresa A şi mai târziu trimiţi 2 BTC către adresa B, atunci schimbul rămas trebuie să îţi fie trimis înapoi. Unii clienţi Bitcoin sunt făcuţi să trimită acea suma de schimb unei noi adrese C în aşa manieră încât să fie dificil de aflat că tu deţii adresa Bitcoin B sau C."
|
||||
public: "Fii atent cu spațiile publice"
|
||||
publictxt: "Exceptând cazul în care intenţia ta este să primeşti donaţii publice sau plăţi cu transparenţă deplină, publicarea unei adrese Bitcoin în orice spaţiu public cum ar fi un website sau reţea de socializare nu este o idee bună când vine vorba de confidenţialitate. Dacă alegi totuşi să faci asta, aminteşte-ţi întotdeauna că dacă muţi fonduri folosind această adresă către o altă adresă a ta, ele vor fi pătate public de către istoricul adreselor tale publice. Adiţional, ar trebui să ai grijă să nu publici informaţii despre tranzacţiile sau cumpărăturile făcute de ţine care ar permite cuiva să-ţi identifice adresele Bitcoin."
|
||||
iplog: "Adresa ta IP poate fi înregistrată"
|
||||
|
|
|
@ -520,8 +520,6 @@ ru:
|
|||
traceabletxt: "Биткойн работает с беспрецедентным уровнем открытости, к которой большинство людей просто не привыкло. Все биткойн-транзакции - открытые, отслеживаемые, и постоянно хранятся в сети Биткойн. Биткойн-адреса - это единственная информация, используемая для решения где находятся биткойны и куда они посланы. Эти адреса создаются частным образом кошельком каждого пользователя. Однако, как только адреса использованы, они становятся связанными с историей всех транзакций, в которых они участвовали. Все могут посмотреть <a href=\"https://www.biteasy.com\">баланс и все транзакции</a> любого из адресов. Так как пользователи обычно должны раскрыть свою личность, чтобы получить услуги или товары, биткойн-адреса не могут быть полностью анонимными. Из-за этого, биткойн-адреса следует использовать лишь однажды и пользователи должны быть аккуратными и не раскрывать свои адреса."
|
||||
receive: "Используйте новые адреса, для получения платежа"
|
||||
receivetxt: "Чтобы защитить свою анонимность, вы должны использовать новый биткойн-адрес каждый раз, когда получаете платеж. Кроме того, вы можете использовать несколько кошельков для разных целей. Таким образом вы изолируете свои транзакции так, что никто не сможет их связать друг с другом. Люди, которые переводят вам деньги, не смогут узнать какими кошельками вы владеете, и что вы с ними делаете. Всегда помните об этом, этот момент очень важен. "
|
||||
send: "Меняйте адрес для сдачи, когда посылаете платеж"
|
||||
sendtxt: "Клиент Bitcoin Core усложняет слежку за вашими транзакциями, создавая новые адреса для сдачи каждый раз, когда вы совершаете платеж. Например, если вы получили 5 BTC на адрес А, и позже, вы посылаете 2 BTC на адрес B, оставшаяся сдача должна быть отправлена вам назад. Bitcoin Core, как и некоторые другие клиенты, отправляет сдачу на новый адрес C и таким образом невозможно разобраться, владеете ли вы биткойн-адресами B и C."
|
||||
public: "Будьте осторожны в общественных местах"
|
||||
publictxt: "Если только вы не намерены получать публичные пожертвования или платежи с полной прозрачностью, показ вашего биткойн-адреса в публичном месте, таком как веб страница или социальная сеть - это не слишком хорошая идея с точки зрения конфиденциальности. Если вы решили это сделать, всегда помните, что если вы переместите любые средства с этого адреса на другой свой адрес, это будет публично зафиксировано в истории вашего публичного адреса. Кроме того, возможно вам не стоит публиковать информацию о своих транзакциях и покупках, которая может кому-либо позволить вычислить ваши биткойн-адреса."
|
||||
iplog: "Ваш IP адрес может быть зафиксирован"
|
||||
|
|
|
@ -482,8 +482,6 @@ sl:
|
|||
traceabletxt: "Plačilno omrežje bitcoin deluje izjemno transparentno -- mnogo bolj, kot sistemi, ki jih je večina ljudi vajena. Vsako nakazilo se namreč javno, sledljivo in trajno shrani v verigo blokov. V verigi blokov so bitcoin naslovi edina informacija o tem, od kod so novci prišli in kam so šli. Ti naslovi se ustvarjajo zasebno v denarnicah uporabnikov. Ko pa se posamezen naslov uporabi v omrežju, se tam trajno shrani skupaj z zgodovino vseh povezanih nakazil. Vsakdo si lahko ogleda <a href=\"https://www.biteasy.com\">stanje in promet</a> na vsakem naslovu. Ker uporabniki običajno razkrijejo svoje ime in naslov ponudnikom storitev, da lahko prejmejo storitve ali blago, bitcoin naslovi ne morejo ostati povsem anonimni. Zato se priporoča, da se vsak bitcoin naslov uporabi le enkrat in uporabniki morajo paziti, da ne objavljajo svojih naslovov."
|
||||
receive: "Za prejemanje plačil vedno uporabljajte nove naslove"
|
||||
receivetxt: "Če želite zaščititi svojo zasebnost, morate za vsako nakazilo, v katerem prejmete novce, uporabiti nov naslov. Nadalje lahko za različne namene uporabljate različne denarnice. Nakazil, ki izhajajo iz različnih denarnic, brez dodatnih informacij ni mogoče povezati med seboj. Tako ljudje, s katerimi izmenjujete bitcoine, ne bodo mogli vedeti, kateri drugi naslovi so vaši in kaj z njimi počnete. To je najbrž najpomembnejša stvar, ki si jo morate zapomniti."
|
||||
send: "Pri plačevanju uporabljajte naslove za drobiž"
|
||||
sendtxt: "Za zaščito svoje zasebnosti lahko uporabite denarnico, ki otežuje sledenje vašim nakazilom s tem, da za vsako poslano nakazilo ustvari nov naslov za drobiž. Če npr. prejmete 5 BTC na naslov A in potem pošljete 2 BTC na naslov B, mora denarnica preostale 3 BTC poslati nazaj vam. Nekatere denarnice, npr. Bitcoin Core, v ta namen ustvarijo nov naslov C tako, da je težko ugotoviti, ali ste vi lastnik naslova B ali C."
|
||||
public: "Bodite previdni pri objavljanju svojih naslovov"
|
||||
publictxt: "Če vaš namen ni javno prejemanje donacij ali drugih plačil na javno pregleden način, objava svojega naslova (npr. na forumu ali socialnem omrežju) ni najboljša ideja, kar se tiče zasebnosti. Če to vseeno storite, ne pozabite, da če pošljete sredstva s tega naslova drugam, bodo ta sredstva javno sledljiva, da izvirajo od vas. Prav tako pazite, da ne objavljate podatkov o svojih nakazilih in nakupih, ki bi lahko komu omogočili prepoznati vaše bitcoin naslove."
|
||||
iplog: "Vaš IP-naslov lahko drugi uporabniki zabeležijo"
|
||||
|
|
|
@ -528,8 +528,6 @@ sv:
|
|||
traceabletxt: "Bitcoin fungerar med en nivå av transparens som tidigare inte har funnits och de flesta är inte vana att hantera det. Alla Bitcoin transaktioner är publika, spårbara och permanent sparade i Bitcoin nätverket. Bitcoin adresser är den enda information som används för att definera var bitcoins finns och var det är skickade. Dessa adresser är skapade privat av varje användares plånbok. Så fort adressen används blir de spårbara tillsammans med historiken av alla transaktioner de är involverade med. Alla kan se <a href=\"https://www.biteasy.com\">saldot och alla transaktioner</a> för alla adresserna. Eftersom användare i vanliga fall avslöjar sin identitet för att kunna ta emot tjänster och varor kan Bitcoin adresser inte vara fullständigt anonyma. Av dessa skäl ska Bitcoin adresser bara användas en gång och användare måste vara noggranna med att inte avslöja sina adresser."
|
||||
receive: "Använd nya adresser för att ta emot betalningar"
|
||||
receivetxt: "För att skydda din integritet, borde du använda en ny Bitcoin-adress varje gång du tar emot en betalning. Du kan dessutom använda olika plånböcker för olika ändamål. På så sätt kan du isolera dina transaktioner så att det inte är möjligt att associera dem. Personer som skickar dig pengar kan inte se vilka andra Bitcoin adresser du äger och vad du gör med dem. Det är antagligen det viktigaste att tänka på."
|
||||
send: "Använd bytadresser när du skickar betalningar"
|
||||
sendtxt: "Du kan använda en Bitcoin-klient som Bitcoin Core som gör det svårt att dölja dina transaktioner genom att skapa nya adresser varje gång du skickar en betalning. Till exempel, om du får 5 BTC till adress A och sedan skickar 2 BTC till adress B, så måste växeln bli skickad tillbaka till dig. Vissa Bitcoin klienter är designade för att skicka växeln till en ny adress C, på ett sådant sätt att det blir svårt att veta ifall du äger Bitcoin adress B eller C."
|
||||
public: "Var försiktigt på offentliga platser"
|
||||
publictxt: "Så länge din intentioner är att ta emot publika donationer eller betalningar med full transparens så är publiceringen av en Bitcoin-adress på någon offentlig plats, hemsida eller socialt nätverk är det inte en bra idé när det gäller integritet. Om du väljer att göra så, kom alltid ihåg att ifall du flyttar pengar från den adressen till någon av dina andra adresser blir de i sin tur märkta av historiken för den första publika adressen. Du ska också vara försiktig att inte publicera någon information om dina transaktioner eller betalningar som möjliggör någon att identifiera dina Bitcoin-adresser."
|
||||
iplog: "Din IP adress kan bli loggad"
|
||||
|
|
|
@ -516,8 +516,6 @@ tr:
|
|||
traceabletxt: "Bitcoin bir çok kullanıcının alışık olmadığı şekilde muazzam bir şeffaflık düzeyine sahiptir. Bütün Bitcoin işlemleri halka açıktır, izi sürülebilir ve kalıcı bir şekilde Bitcoin ağının içinde yerini alır. Bitcoin adresleri bitcoinlerin nereye gittiklerini ve nereye harcandığını gösteren yegane bilgidir. Bu adresler kullanıcıların cüzdanları tarafından özel bir şekilde hazırlanmıştır. Yine de adres bir kez kullanıldı mı, tarihteki bütün işlemler nedeni ile lekeli bir hal alır. Herkes her hangi bir adresin <a href=\"https://www.biteasy.com\">bakiyesini ve bütün işlemlerini</a> görebilir. Kullanıcılar işlem yaparken genelde kimlik bilgilerini vermek zorunda olduklarından, Bitcoin adresleri anonim kalamaz. Bu nedenle Bitcoin adresleri sadece bir kere kullanılmalıdır ve kullanıcılar bu adresleri göstermeme konusunda dikkatli olmalıdır."
|
||||
receive: "Ödemeleri almak için yeni adresler kullanın"
|
||||
receivetxt: "Gizliliğinizi korumak için, her seferinde yeni bir ödeme almak için yeni bir Bitcoin adresi kullanmalısınız. Ek olarak, farklı amaçlar için birden fazla cüzdan kullanabilirsiniz. Bunu yaparak işlemlerinizi daha da izole etmiş olursunuz ve bütün işlemlerinizi birbiriyle bağlantılamak mümkün olamaz. Size para yollayan insanlar sizin diğer adreslerinizi ve onlarla ne yaptığınızı göremezler. Bu, muhtemelen unutmamanız gereken en önemli tavsiyedir. "
|
||||
send: "Ödemeleri gönderirken değişik adresler kullanın"
|
||||
sendtxt: "Bitcoin istemcisini her ödeme yaptığınızda yeni bir adres yaratarak işlemin izlenmesini zorlaştıran Bitcoin Core gibi kullanabilirsiniz. Örnekse, eğer A adresinden 5 BTC aldıysanız ve daha sonra B adresine 2 BTC gönderirseniz kalan miktar size geri gönderilmelidir. Bazı Bitcoin istemcileri daha farklı bir C adresine göndermek üzere tasarlandı ve bu yolla sizin B adresine mi yoksa C adresine mi sahip olduğunuzu bilmek daha da zorlaştı."
|
||||
public: "Herkese açık bölümlerde dikkatli olun"
|
||||
publictxt: "Eğer amacınız tamamen şeffaf bir şekilde halka açık bağışlar ya da ödemeler almak değil ise gizlilik esas alındığında, değişik web siteleri gibi toplumsal alanlarda bir Bitcoin adresi paylaşmak iyi bir fikir olmayacaktır. Bunu yapmayı seçerseniz, her zaman hatırlamalısınız ki, bu adreslerden diğer kendi adreslerinize herhangi bir yatırım hareketi yaparsanız, bu hareket herkese açık işlem tarihinizde yerini alarak lekelenecektir. Ek olarak, işlemleriniz hakkındaki bilgileri yayınlamama konusunda dikkatli olmalısınız ve satın alımlar sizin Bitcoin adresinizi çözmüş birisi tarafından takip edilebilir."
|
||||
iplog: "IP adresinize girilebilir"
|
||||
|
|
|
@ -515,8 +515,6 @@ uk:
|
|||
traceabletxt: "Біткойн працює з безпрецедентним рівнем прозорості, до якої більшість людей просто не звикло. Усі біткойн-транзакції публічні, відстежувані та знаходяться на постійному зберіганні у мережі Біткойн. Біткойн-адреси - це єдина інформація, що використовується для визначення того, де знаходяться біткоїни та куди вони надсилаються. Ці адреси створюються приватно, гаманцями кожного окремого користувача. Проте, щойно адреси використані, вони пов'язуються з історією усіх транзакцій, в яких вони брали участь. Усі можуть переглянути <a href=\"https://www.biteasy.com\">баланс та всі транзакції</a> будь-якої адреси. Враховуючи те, що користувачам зазвичай необхідно розкрити свою особу для того, щоб отримати послуги чи товари, біткойн-адреси не можуть бути повністю анонімними. Саме через це, біткойн-адреси варто використовувати лише один раз і користувачі повинні бути обережними та не розкривати свої адреси. "
|
||||
receive: "Використовуйте нові адреси для отримання платежів"
|
||||
receivetxt: "Для захисту своєї конфіденційності вам варто використовувати нову біткойн-адресу при отриманні кожного платежу. Більше того, ви можете використовувати декілька гаманців у різних цілях. Таким чином ви ізолюєте свої транзакції так, що ніхто не зможе їх прив'язати одну до одної. Люди, які переказують вам гроші не зможуть дізнатись якими гаманцями ви володієте, і що ви з ними робите. Це напевне найважливіша порада, яку вам завжди варто пам'ятати. "
|
||||
send: "Змінюйте адреси для здачі, коли ви надсилаєте платежі"
|
||||
sendtxt: "Використання такого біткойн-клієнта, як Bitcoin Core, ускладнює відслідковування ваших транзакцій шляхом створення нових адрес для здачі щоразу, коли ви здійснюєте платіж. Наприклад, якщо ви отримали 5 BTC на адресу А, а згодом, ви надсилаєте 2 BTC на адресу Б, залишкова здача повинна бути відправлена вам назад. Bitcoin Core та деякі інші біткойн-клієнти розроблені таким чином, що вони надсилають здачу на нову адресу В і таким чином складно розібратись у тому, чи є ви власником біткойн-адрес Б та В, чи ні."
|
||||
public: "Будьте обережні у публічних місцях"
|
||||
publictxt: "Якщо ви не маєте наміру отримувати публічні пожертви чи платежі з повною прозорістю, публікування вашої біткойн-адреси у публічному місці, такому як веб-сторінка чи соціальна мережа - це не добра ідея з точки зору конфіденційності. Якщо ж ви вже вирішили це зробити, завжди пам'ятайте, що якщо ви перемістите будь-які кошти з цієї адреси на інші свої адреси, це буде публічно зафіксовано у історії вашої публічної адреси. Більше того, вам не варто публікувати інформацію про свої транзакції і покупки, яка може дозволити кому-небудь встановити ваші біткойн-адреси."
|
||||
iplog: "Ваша ІР-адреса може бути зафіксована"
|
||||
|
|
|
@ -515,8 +515,6 @@ zh_CN:
|
|||
traceabletxt: "比特币提供了空前的透明度水平,大部分的人还没有适应这样的机制。所有的比特币交易都是公开,可追溯的,并且永久性地存储在比特币网络中。比特币地址是定义比特币的分配和传送终点所需的唯一信息。这些地址由用户的钱包匿名产生。然而一旦地址被使用,与其有关的所有交易历史便破坏了地址的保密性。任何人都可以查看任何地址的<a href=\"https://www.biteasy.com\">余额和所有交易</a>。由于用户通常需要透露他们的身份以便接收服务或货物,这样比特币地址就无法保持完全匿名。鉴于这些原因,比特币地址最好只使用一次,同时用户必须注意不要透露他们的地址。"
|
||||
receive: "使用新地址收款"
|
||||
receivetxt: "为了保护你的隐私,每次接收新的付款你都应该使用一个新的比特币地址。此外,你可以使用多个钱包满足不同的需求。这样做可以将你的每笔交易都隔离开以使它们无法被关联起来。付款给你的人不会看到你其它的比特币地址,也不会知道你如何使用它们。这可能是你需要记住的最重要的一条建议。"
|
||||
send: "使用找零地址付款"
|
||||
sendtxt: "你可以使用比特币客户端,比如Bitcoin Core,在每次付款的时候通过生成一个新的找零地址来加大交易跟踪的难度。举例来说,你在地址A收到5个比特币,之后你又向地址B支付2个比特币,那么剩下的找零必须返还给你。一些比特币客户端的设计会将找零发送到一个新的地址C,这样要想知道你拥有比特币地址B还是地址C就变得很困难。"
|
||||
public: "在公共空间要当心"
|
||||
publictxt: "除非你的本意是接收公共捐款或者完全透明的付款,在任何如网站或社交网络的公共空间中公开比特币地址对隐私来说并不是一件好事。如果你选择这么做,时刻记住如果你从这个地址向你其他的地址发送了任何资金,这些地址的隐私性也会由于你的公共地址的历史记录而被破坏。此外,你可能还要注意不要公开那些会让别人认出你比特币地址的交易和购买信息。"
|
||||
iplog: "你的IP地址可以被记录"
|
||||
|
|
|
@ -515,8 +515,6 @@ zh_TW:
|
|||
traceabletxt: "Bitcoin 有前所未有的透明度,大部份人都不太習慣它。所有的 Bitcoin 交易都是透明和可溯源的,它們會被永久地儲存在 Bitcoin 網路中。Bitcoin 地址是用來確定比特幣被分配在哪裡和傳送到哪裡去的唯一資訊。這些地址由每個用戶的錢包獨立創建。然而,一旦地址被使用后,它們就會被相關的交易歷史污染。所有人都可以檢視所有地址的 <a href=\"https://www.biteasy.com\">餘額和所有交易</a>。因為用戶通常需要透露他們的身份來接收服務或商品,Bitcoin 地址就算不上完全匿名的。鑒於這些原因,Bitcoin 地址應是一次性的且用戶必須小心翼翼不隨便洩露他們的地址。"
|
||||
receive: "使用新地址來收款"
|
||||
receivetxt: "爲了保護您的隱私,您應該每次收款的時候使用一個新的 Bitcoin 地址。另外,您可以用多個錢包做不同的事情。這樣做讓您可以把您的每個交易都分開,這也使得它們不可能被聯繫起來。給您匯款的人不能看到您擁有的其他地址也看不到您用它們來做了什麽。這可能是您最應該記住的建議。"
|
||||
send: "匯款的時候使用找補地址"
|
||||
sendtxt: "您可以像使用 Bitcoin Core 一樣來使用一個 Bitcoin 客戶端,通過每次匯款時使用一個新的找補地址,跟蹤您的交易變得很難。例如,如果您在 A 地址接收了5 BTC,過後您傳送 2 BTC 到地址 B,找補的餘額應當返回給您。一些 Bitcoin 客戶端設計成把找補的錢傳送到一個新的地址 C ,這樣就很難知道您是否擁有 Bitcoin 地址 B 或者 C。"
|
||||
public: "請多加留意公共空間"
|
||||
publictxt: "在任何公共區域譬如一個網站或社交網路發佈一個 Bitcoin 地址對於保護隱私是不太好的,除非您想要完全透明地接受公眾捐款或付款。如果您決定這麼做,總是要記住如果您從這個地址轉移任何的資金到您的其他地址的話,您的其他地址都會被您的公開地址的歷史公開污染。另外,您也要小心翼翼不去發佈關於您的交易和購買的信息,否則有人就可以識別您的 Bitcoin 地址。"
|
||||
iplog: "您的 IP 地址可以被記錄"
|
||||
|
|
|
@ -6,6 +6,9 @@ layout: base
|
|||
lang: en
|
||||
id: developer-documentation
|
||||
title: "Developer Documentation - Bitcoin"
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- Developer Documentation
|
||||
---
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
|
||||
|
|
|
@ -6,6 +6,10 @@ layout: base
|
|||
lang: en
|
||||
id: developer-examples
|
||||
title: "Developer Examples - Bitcoin"
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- dev docs
|
||||
- Examples
|
||||
---
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
|
||||
|
|
|
@ -5,6 +5,10 @@
|
|||
title: Developer Glossary - Bitcoin
|
||||
layout: base
|
||||
lang: en
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- dev docs
|
||||
- Glossary
|
||||
---
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
|
||||
|
|
|
@ -6,6 +6,10 @@ layout: base
|
|||
lang: en
|
||||
id: developer-guide
|
||||
title: "Developer Guide - Bitcoin"
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- dev docs
|
||||
- Guide
|
||||
---
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
|
||||
|
|
|
@ -6,6 +6,10 @@ layout: base
|
|||
lang: en
|
||||
id: developer-reference
|
||||
title: "Developer Reference - Bitcoin"
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- dev docs
|
||||
- Reference
|
||||
---
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 84 KiB |
285
js/base.js
285
js/base.js
|
@ -7,182 +7,201 @@
|
|||
"use strict"
|
||||
|
||||
function addEvent(a, b, c) {
|
||||
// Attach event to a DOM node.
|
||||
// Ex. addEvent(node,'click',function);
|
||||
return (a.addEventListener) ? a.addEventListener(b, c, false) : (a.attachEvent) ? a.attachEvent('on' + b, c) : false;
|
||||
// Attach event to a DOM node.
|
||||
// Ex. addEvent(node,'click',function);
|
||||
return (a.addEventListener) ? a.addEventListener(b, c, false) : (a.attachEvent) ? a.attachEvent('on' + b, c) : false;
|
||||
}
|
||||
|
||||
function removeEvent(a, b, c) {
|
||||
// Detach event from a DOM node.
|
||||
// Ex. removeEvent(node,'click',function);
|
||||
return (a.removeEventListener) ? a.removeEventListener(b, c, false) : (a.detachEvent) ? a.detachEvent('on' + b, c) : false;
|
||||
// Detach event from a DOM node.
|
||||
// Ex. removeEvent(node,'click',function);
|
||||
return (a.removeEventListener) ? a.removeEventListener(b, c, false) : (a.detachEvent) ? a.detachEvent('on' + b, c) : false;
|
||||
}
|
||||
|
||||
function cancelEvent(e) {
|
||||
// Cancel current event.
|
||||
// Ex. cancelEvent(event);
|
||||
if (!e) var e = window.event;
|
||||
(e.preventDefault) ? e.preventDefault() : e.returnValue = false;
|
||||
// Cancel current event.
|
||||
// Ex. cancelEvent(event);
|
||||
if (!e) var e = window.event;
|
||||
(e.preventDefault) ? e.preventDefault(): e.returnValue = false;
|
||||
}
|
||||
|
||||
function getEventTarget(e) {
|
||||
// Return target DOM node on which the event is triggered.
|
||||
// Ex. getEventTarget(event);
|
||||
if (!e) var e = window.event;
|
||||
return (e.target && e.target.nodeType == 3) ? e.target.parentNode : (e.target) ? e.target : e.srcElement;
|
||||
function getEvent(e, a) {
|
||||
// Return requested event property.
|
||||
// Ex. var target = getEvent(event, 'target');
|
||||
e = (e) ? e : window.event;
|
||||
switch (a) {
|
||||
case 'type':
|
||||
return e.type;
|
||||
case 'target':
|
||||
return (e.target && e.target.nodeType == 3) ? e.target.parentNode : (e.target) ? e.target : e.srcElement;
|
||||
}
|
||||
}
|
||||
|
||||
function getStyle(a, b) {
|
||||
// Return the value of the computed style on a DOM node.
|
||||
// Ex. getStyle(node,'padding-bottom');
|
||||
if (window.getComputedStyle) return document.defaultView.getComputedStyle(a, null).getPropertyValue(b);
|
||||
var n = b.indexOf('-');
|
||||
if (n !== -1) b = b.substr(0, n) + b.substr(n + 1, 1).toUpperCase() + b.substr(n + 2);
|
||||
return a.currentStyle[b];
|
||||
// Return the value of the computed style on a DOM node.
|
||||
// Ex. getStyle(node,'padding-bottom');
|
||||
if (window.getComputedStyle) return document.defaultView.getComputedStyle(a, null).getPropertyValue(b);
|
||||
var n = b.indexOf('-');
|
||||
if (n !== -1) b = b.substr(0, n) + b.substr(n + 1, 1).toUpperCase() + b.substr(n + 2);
|
||||
return a.currentStyle[b];
|
||||
}
|
||||
|
||||
function addClass(node, data) {
|
||||
// Add class to node.
|
||||
var cl = node.className.split(' ');
|
||||
for (var i = 0, n = cl.length; i < n; i++) {
|
||||
if (cl[i] == data) return;
|
||||
}
|
||||
cl.push(data);
|
||||
node.className = cl.join(' ');
|
||||
// Add class to node.
|
||||
var cl = node.className.split(' ');
|
||||
for (var i = 0, n = cl.length; i < n; i++) {
|
||||
if (cl[i] == data) return;
|
||||
}
|
||||
cl.push(data);
|
||||
node.className = cl.join(' ');
|
||||
}
|
||||
|
||||
function removeClass(node, data) {
|
||||
// Remove class from node.
|
||||
var ocl = node.className.split(' ');
|
||||
var ncl = [];
|
||||
for (var i = 0, n = ocl.length; i < n; i++) {
|
||||
if (ocl[i] != data) ncl.push(ocl[i]);
|
||||
}
|
||||
node.className = ncl.join(' ');
|
||||
// Remove class from node.
|
||||
var ocl = node.className.split(' ');
|
||||
var ncl = [];
|
||||
for (var i = 0, n = ocl.length; i < n; i++) {
|
||||
if (ocl[i] != data) ncl.push(ocl[i]);
|
||||
}
|
||||
node.className = ncl.join(' ');
|
||||
}
|
||||
|
||||
function supportsSVG() {
|
||||
// Return true if the browser supports SVG.
|
||||
// Ex. if(!supportsSVG()){..apply png fallback..}
|
||||
// Old FF 3.5 and Safari 3 versions have svg support, but a very poor one
|
||||
// http://www.w3.org/TR/SVG11/feature#Image Defeat FF 3.5 only
|
||||
// http://www.w3.org/TR/SVG11/feature#Animation Defeat Saf 3 but also returns false in IE9
|
||||
// http://www.w3.org/TR/SVG11/feature#BasicGraphicsAttribute Defeat Saf 3 but also returns false in Chrome and safari4
|
||||
// http://www.w3.org/TR/SVG11/feature#Text Defeat Saf 3 but also returns false in FF and safari4
|
||||
if (!document.createElementNS || !document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect) return false;
|
||||
if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image", "1.1")) return false;
|
||||
if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicGraphicsAttribute", "1.1") && !document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation", "1.1") && !document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Text", "1.1")) return false;
|
||||
return true;
|
||||
// Return true if the browser supports SVG.
|
||||
// Ex. if(!supportsSVG()){..apply png fallback..}
|
||||
// Old FF 3.5 and Safari 3 versions have svg support, but a very poor one
|
||||
// http://www.w3.org/TR/SVG11/feature#Image Defeat FF 3.5 only
|
||||
// http://www.w3.org/TR/SVG11/feature#Animation Defeat Saf 3 but also returns false in IE9
|
||||
// http://www.w3.org/TR/SVG11/feature#BasicGraphicsAttribute Defeat Saf 3 but also returns false in Chrome and safari4
|
||||
// http://www.w3.org/TR/SVG11/feature#Text Defeat Saf 3 but also returns false in FF and safari4
|
||||
if (!document.createElementNS || !document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect) return false;
|
||||
if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image", "1.1")) return false;
|
||||
if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicGraphicsAttribute", "1.1") && !document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation", "1.1") && !document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Text", "1.1")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
function fallbackSVG() {
|
||||
// Replace all images extensions from .svg to .png if browser doesn't support SVG files.
|
||||
if (supportsSVG()) return;
|
||||
for (var i = 0, nd = document.getElementsByTagName('*'), n = nd.length; i < n; i++) {
|
||||
if (nd[i].nodeName == 'IMG' && /.*\.svg$/.test(nd[i].src)) nd[i].src = nd[i].src.slice(0, -3) + 'png';
|
||||
if (/\.svg/.test(getStyle(nd[i], 'background-image'))) nd[i].style.backgroundImage = getStyle(nd[i], 'background-image').replace('.svg', '.png');
|
||||
if (/\.svg/.test(getStyle(nd[i], 'background'))) nd[i].style.background = getStyle(nd[i], 'background').replace('.svg', '.png');
|
||||
}
|
||||
// Replace all images extensions from .svg to .png if browser doesn't support SVG files.
|
||||
if (supportsSVG()) return;
|
||||
for (var i = 0, nd = document.getElementsByTagName('*'), n = nd.length; i < n; i++) {
|
||||
if (nd[i].nodeName == 'IMG' && /.*\.svg$/.test(nd[i].src)) nd[i].src = nd[i].src.slice(0, -3) + 'png';
|
||||
if (/\.svg/.test(getStyle(nd[i], 'background-image'))) nd[i].style.backgroundImage = getStyle(nd[i], 'background-image').replace('.svg', '.png');
|
||||
if (/\.svg/.test(getStyle(nd[i], 'background'))) nd[i].style.background = getStyle(nd[i], 'background').replace('.svg', '.png');
|
||||
}
|
||||
}
|
||||
|
||||
function onTouchClick(e, callback) {
|
||||
// Detect and handle clicks using click and touch events while preventing accidental or ghost clicks.
|
||||
var timeout = 1000,
|
||||
function onTouchClick(e, callback, callbackClick) {
|
||||
// Detect and handle clicks using click and touch events while preventing accidental or ghost clicks.
|
||||
var timeout = 1000,
|
||||
srcEvent = e,
|
||||
touchEndListener = function(e) {
|
||||
// Call callback if touch events match the patterns of a click.
|
||||
removeEvent(t, 'touchend', touchEndListener);
|
||||
setClickTimeout();
|
||||
if (Math.abs(e.changedTouches[0].pageX - x) > 20 || Math.abs(e.changedTouches[0].pageY - y) > 20) return;
|
||||
callback(e);
|
||||
// Call callback if touch events match the patterns of a click.
|
||||
removeEvent(t, 'touchend', touchEndListener);
|
||||
setClickTimeout();
|
||||
if (Math.abs(e.changedTouches[0].pageX - x) > 20 || Math.abs(e.changedTouches[0].pageY - y) > 20) return;
|
||||
callback(srcEvent);
|
||||
},
|
||||
wrongClickListener = function(e) {
|
||||
// Cancel click events on different targets within timeframe.
|
||||
// This avoids accidental clicks when the page is scrolled or updated due to the 300ms click event delay on mobiles.
|
||||
removeEvent(document.body, 'click', wrongClickListener);
|
||||
if (!clickReady() && getEventTarget(e) != t) cancelEvent(e);
|
||||
// Cancel click events on different targets within timeframe.
|
||||
// This avoids accidental clicks when the page is scrolled or updated due to the 300ms click event delay on mobiles.
|
||||
removeEvent(document.body, 'click', wrongClickListener);
|
||||
if (!clickReady() && getEvent(e, 'target') != t) cancelEvent(e);
|
||||
},
|
||||
setClickTimeout = function() {
|
||||
// Update timeout during which click events will be blocked.
|
||||
document.body.setAttribute('data-touchtimeout', new Date().getTime() + timeout);
|
||||
// Update timeout during which click events will be blocked.
|
||||
document.body.setAttribute('data-touchtimeout', new Date().getTime() + timeout);
|
||||
},
|
||||
clickReady = function() {
|
||||
// Check if timeout during click events are blocked has expired.
|
||||
var ti = document.body.getAttribute('data-touchtimeout');
|
||||
return (ti === null || ti === '' || parseInt(ti, 10) < new Date().getTime());
|
||||
// Check if timeout during click events are blocked has expired.
|
||||
var ti = document.body.getAttribute('data-touchtimeout');
|
||||
return (ti === null || ti === '' || parseInt(ti, 10) < new Date().getTime());
|
||||
};
|
||||
// Apply appropriate actions according to each event type.
|
||||
switch (e.type) {
|
||||
case 'touchstart':
|
||||
// Save initial touchstart coordinates and listen for touchend events and accidental click events.
|
||||
var x = e.changedTouches[0].pageX,
|
||||
y = e.changedTouches[0].pageY,
|
||||
t = e.changedTouches[0].target;
|
||||
setClickTimeout();
|
||||
addEvent(t, 'touchend', touchEndListener);
|
||||
addEvent(document.body, 'click', wrongClickListener);
|
||||
setTimeout(function() {
|
||||
removeEvent(document.body, 'click', wrongClickListener);
|
||||
}, timeout);
|
||||
break;
|
||||
case 'click':
|
||||
// Call callback on click in the absence of a recent touchstart event to prevent ghost clicks.
|
||||
if (!clickReady()) return;
|
||||
callback();
|
||||
break;
|
||||
}
|
||||
if (callbackClick === undefined) callbackClick = function() {};
|
||||
// Apply appropriate actions according to each event type.
|
||||
switch (getEvent(e, 'type')) {
|
||||
case 'touchstart':
|
||||
// Save initial touchstart coordinates and listen for touchend events and accidental click events.
|
||||
var x = e.changedTouches[0].pageX,
|
||||
y = e.changedTouches[0].pageY,
|
||||
t = e.changedTouches[0].target;
|
||||
setClickTimeout();
|
||||
addEvent(t, 'touchend', touchEndListener);
|
||||
addEvent(document.body, 'click', wrongClickListener);
|
||||
setTimeout(function() {
|
||||
removeEvent(document.body, 'click', wrongClickListener);
|
||||
}, timeout);
|
||||
break;
|
||||
case 'click':
|
||||
// Call callback on click in the absence of a recent touchstart event to prevent ghost clicks.
|
||||
// Always call callbackClick to let it cancel click events on links.
|
||||
callbackClick(srcEvent);
|
||||
if (!clickReady()) return;
|
||||
callback(srcEvent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function mobileMenuShow(e) {
|
||||
// Show the mobile menu when the visitors touch the menu icon.
|
||||
var show = function() {
|
||||
var mm = document.getElementById('menusimple');
|
||||
var ml = document.getElementById('langselect');
|
||||
mm.style.display = ml.style.display = (mm.style.display == 'block') ? '' : 'block';
|
||||
cancelEvent(e);
|
||||
};
|
||||
onTouchClick(e, show);
|
||||
// Show the mobile menu when the visitors touch the menu icon.
|
||||
var show = function() {
|
||||
var mm = document.getElementById('menusimple');
|
||||
var ml = document.getElementById('langselect');
|
||||
mm.style.display = ml.style.display = (mm.style.display == 'block') ? '' : 'block';
|
||||
addClass(mm, 'menutap');
|
||||
cancelEvent(e);
|
||||
};
|
||||
onTouchClick(e, show);
|
||||
}
|
||||
|
||||
function mobileMenuHover(e) {
|
||||
// Prevent mobile menu to shrink on hover to prevent accidental clicks on other entries.
|
||||
var t = getEventTarget(e),
|
||||
// Prevent mobile menu to shrink on hover to prevent accidental clicks on other entries.
|
||||
var t = getEvent(e, 'target'),
|
||||
fn = (t.parentNode.className.indexOf('hover') === -1) ? addClass : removeClass,
|
||||
initHover = function() {
|
||||
if (t.nodeName != 'A') return;
|
||||
if (fn == removeClass && t.parentNode.getElementsByTagName('UL').length == 0) return;
|
||||
var p = t;
|
||||
while (p.parentNode.nodeName == 'UL' || p.parentNode.nodeName == 'LI') p = p.parentNode;
|
||||
addClass(p, 'menutap');
|
||||
for (var i = 0, nds = p.getElementsByTagName('LI'), n = nds.length; i < n; i++) {
|
||||
if (nds[i] == t.parentNode) continue;
|
||||
removeClass(nds[i], 'active');
|
||||
if (nds[i].getElementsByTagName('UL').length > 0) continue;
|
||||
removeClass(nds[i], 'hover');
|
||||
}
|
||||
while (t != p) {
|
||||
if (t.nodeName == 'LI') {
|
||||
fn(t, 'hover');
|
||||
fn(t, 'active');
|
||||
}
|
||||
t = t.parentNode;
|
||||
}
|
||||
if (t.nodeName != 'A') return;
|
||||
if (fn == removeClass && !hasSubItems(t)) return;
|
||||
var p = t;
|
||||
while (p.parentNode.nodeName == 'UL' || p.parentNode.nodeName == 'LI') p = p.parentNode;
|
||||
for (var i = 0, nds = p.getElementsByTagName('LI'), n = nds.length; i < n; i++) {
|
||||
if (nds[i] == t.parentNode) continue;
|
||||
removeClass(nds[i], 'active');
|
||||
if (hasSubItems(nds[i])) continue;
|
||||
removeClass(nds[i], 'hover');
|
||||
}
|
||||
while (t != p) {
|
||||
if (t.nodeName == 'LI') {
|
||||
fn(t, 'hover');
|
||||
fn(t, 'active');
|
||||
}
|
||||
t = t.parentNode;
|
||||
}
|
||||
},
|
||||
hasSubItems = function(t) {
|
||||
while (t.nodeName != 'LI') t = t.parentNode;
|
||||
return (t.getElementsByTagName('UL').length > 0);
|
||||
},
|
||||
// Prevent clicks on parent element links in the menu.
|
||||
filterClick = function(e) {
|
||||
var t = getEvent(e, 'target');
|
||||
if (t.nodeName != 'A') return;
|
||||
if (hasSubItems(t)) cancelEvent(e);
|
||||
};
|
||||
onTouchClick(e, initHover);
|
||||
onTouchClick(e, initHover, filterClick);
|
||||
}
|
||||
|
||||
function addAnchorLinks() {
|
||||
// Apply anchor links icon on each title displayed on CSS hover.
|
||||
var nodes = [];
|
||||
var tags = ['H2', 'H3', 'H4', 'H5', 'H6'];
|
||||
for (var i = 0, n = tags.length; i < n; i++) {
|
||||
for (var ii = 0, t = document.getElementsByTagName(tags[i]), nn = t.length; ii < nn; ii++) nodes.push(t[ii]);
|
||||
}
|
||||
for (var i = 0, n = nodes.length; i < n; i++) {
|
||||
if (!nodes[i].id) continue;
|
||||
if (nodes[i].getElementsByTagName('A').length > 0 && nodes[i].getElementsByTagName('A')[0].innerHTML == '') return;
|
||||
addClass(nodes[i], 'anchorAf');
|
||||
var anc = document.createElement('A');
|
||||
anc.href = '#' + nodes[i].id;
|
||||
nodes[i].insertBefore(anc, nodes[i].firstChild);
|
||||
}
|
||||
// Apply anchor links icon on each title displayed on CSS hover.
|
||||
var nodes = [];
|
||||
var tags = ['H2', 'H3', 'H4', 'H5', 'H6'];
|
||||
for (var i = 0, n = tags.length; i < n; i++) {
|
||||
for (var ii = 0, t = document.getElementsByTagName(tags[i]), nn = t.length; ii < nn; ii++) nodes.push(t[ii]);
|
||||
}
|
||||
for (var i = 0, n = nodes.length; i < n; i++) {
|
||||
if (!nodes[i].id) continue;
|
||||
if (nodes[i].getElementsByTagName('A').length > 0 && nodes[i].getElementsByTagName('A')[0].innerHTML == '') return;
|
||||
addClass(nodes[i], 'anchorAf');
|
||||
var anc = document.createElement('A');
|
||||
anc.href = '#' + nodes[i].id;
|
||||
nodes[i].insertBefore(anc, nodes[i].firstChild);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,36 +38,36 @@ category: "{{category_name}}"
|
|||
// code adapted from http://jqueryui.com/autocomplete/#categories
|
||||
// MIT license: https://jquery.org/license/
|
||||
|
||||
$.widget( "custom.catcomplete", $.ui.autocomplete, {
|
||||
_create: function() {
|
||||
this._super();
|
||||
this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
|
||||
},
|
||||
_renderMenu: function( ul, items ) {
|
||||
var that = this,
|
||||
currentCategory = "";
|
||||
$.each( items, function( index, item ) {
|
||||
var li;
|
||||
if ( item.category != currentCategory ) {
|
||||
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
|
||||
currentCategory = item.category;
|
||||
}
|
||||
li = that._renderItemData( ul, item );
|
||||
if ( item.category ) {
|
||||
li.attr( "aria-label", item.category + " : " + item.label );
|
||||
}
|
||||
});
|
||||
}
|
||||
$.widget("custom.catcomplete", $.ui.autocomplete, {
|
||||
_create: function() {
|
||||
this._super();
|
||||
this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
|
||||
},
|
||||
_renderMenu: function(ul, items) {
|
||||
var that = this,
|
||||
currentCategory = "";
|
||||
$.each(items, function(index, item) {
|
||||
var li;
|
||||
if (item.category != currentCategory) {
|
||||
ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
|
||||
currentCategory = item.category;
|
||||
}
|
||||
li = that._renderItemData(ul, item);
|
||||
if (item.category) {
|
||||
li.attr("aria-label", item.category + " : " + item.label);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$(function() {
|
||||
$( "#glossary_term" ).catcomplete({
|
||||
source: search_data,
|
||||
delay: 0,
|
||||
minLength: 2,
|
||||
autoFocus: true,
|
||||
select: function( event, ui ) {
|
||||
location.href = ui.item.uri;
|
||||
}
|
||||
});
|
||||
$("#glossary_term").catcomplete({
|
||||
source: search_data,
|
||||
delay: 0,
|
||||
minLength: 2,
|
||||
autoFocus: true,
|
||||
select: function(event, ui) {
|
||||
location.href = ui.item.uri;
|
||||
}
|
||||
});
|
||||
});
|
||||
{% endraw %}
|
||||
|
|
25
js/events.js
25
js/events.js
|
@ -7,18 +7,25 @@ layout: null
|
|||
|
||||
"use strict"
|
||||
|
||||
var zoom=2;
|
||||
var minzoom=1;
|
||||
if(isMobile())var zoom=minzoom=0;
|
||||
var map = L.map('eventmap',{ 'zoom': zoom, 'minZoom': minzoom, 'center': [20.00, 10.00]});
|
||||
var zoom = 2;
|
||||
var minzoom = 1;
|
||||
if (isMobile()) var zoom = minzoom = 0;
|
||||
var map = L.map('eventmap', {
|
||||
'zoom': zoom,
|
||||
'minZoom': minzoom,
|
||||
'center': [20.00, 10.00]
|
||||
});
|
||||
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
attribution: 'Data © by <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>.',
|
||||
maxZoom: 18
|
||||
attribution: 'Data © by <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>.',
|
||||
maxZoom: 18
|
||||
}).addTo(map);
|
||||
|
||||
var markers = new L.MarkerClusterGroup({showCoverageOnHover: false, maxClusterRadius: 40});
|
||||
for (var i=0, nds=document.getElementById('eventdata').getElementsByTagName('DIV'), n=nds.length; i < n; i++) {
|
||||
L.marker([parseFloat(nds[i].getAttribute('data-lat')), parseFloat(nds[i].getAttribute('data-lon'))]).bindPopup(nds[i].innerHTML).addTo(markers);
|
||||
var markers = new L.MarkerClusterGroup({
|
||||
showCoverageOnHover: false,
|
||||
maxClusterRadius: 40
|
||||
});
|
||||
for (var i = 0, nds = document.getElementById('eventdata').getElementsByTagName('DIV'), n = nds.length; i < n; i++) {
|
||||
L.marker([parseFloat(nds[i].getAttribute('data-lat')), parseFloat(nds[i].getAttribute('data-lon'))]).bindPopup(nds[i].innerHTML).addTo(markers);
|
||||
}
|
||||
|
||||
map.addLayer(markers);
|
||||
|
|
64
js/ie.js
64
js/ie.js
|
@ -3,44 +3,44 @@
|
|||
|
||||
"use strict"
|
||||
|
||||
function pngfix(){
|
||||
//Allows IE6 to render transparent png
|
||||
var arVersion = navigator.appVersion.split("MSIE")
|
||||
var version = parseFloat(arVersion[1])
|
||||
if ((version >= 5.5) && (document.body.filters))
|
||||
{
|
||||
for(var i=0; i<document.images.length; i++)
|
||||
{
|
||||
function pngfix() {
|
||||
//Allows IE6 to render transparent png
|
||||
var arVersion = navigator.appVersion.split("MSIE")
|
||||
var version = parseFloat(arVersion[1])
|
||||
if ((version >= 5.5) && (document.body.filters))
|
||||
{
|
||||
for (var i = 0; i < document.images.length; i++)
|
||||
{
|
||||
var img = document.images[i]
|
||||
var imgName = img.src.toUpperCase()
|
||||
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
|
||||
if (imgName.substring(imgName.length - 3, imgName.length) == "PNG")
|
||||
{
|
||||
//Workaround to skip github icons
|
||||
if(img.src.indexOf('gravatar.com')!==-1)continue;
|
||||
var imgID = (img.id) ? "id='" + img.id + "' " : ""
|
||||
var imgClass = (img.className) ? "class='" + img.className + " ieimg' " : "class='ieimg' "
|
||||
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
|
||||
var imgStyle = "display:inline-block;" + img.style.cssText
|
||||
var imgWidth = img.width;
|
||||
var imgHeight = img.height;
|
||||
//Workaround for hidden img to prevent 0px width and height
|
||||
if(img.src.indexOf('/img/clients/')!==-1){imgWidth='72';imgHeight='72';}
|
||||
if (img.align == "left") imgStyle = "float:left;" + imgStyle
|
||||
if (img.align == "right") imgStyle = "float:right;" + imgStyle
|
||||
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
|
||||
var strNewHTML = "<span " + imgID + imgClass + imgTitle
|
||||
+ " style=\"" + "width:" + imgWidth + "px; height:" + imgHeight + "px;" + imgStyle + ";"
|
||||
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
|
||||
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
|
||||
img.outerHTML = strNewHTML
|
||||
i = i-1
|
||||
//Workaround to skip github icons
|
||||
if (img.src.indexOf('gravatar.com') !== -1) continue;
|
||||
var imgID = (img.id) ? "id='" + img.id + "' " : ""
|
||||
var imgClass = (img.className) ? "class='" + img.className + " ieimg' " : "class='ieimg' "
|
||||
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
|
||||
var imgStyle = "display:inline-block;" + img.style.cssText
|
||||
var imgWidth = img.width;
|
||||
var imgHeight = img.height;
|
||||
//Workaround for hidden img to prevent 0px width and height
|
||||
if (img.src.indexOf('/img/clients/') !== -1) {
|
||||
imgWidth = '72';
|
||||
imgHeight = '72';
|
||||
}
|
||||
if (img.align == "left") imgStyle = "float:left;" + imgStyle
|
||||
if (img.align == "right") imgStyle = "float:right;" + imgStyle
|
||||
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
|
||||
var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + imgWidth + "px; height:" + imgHeight + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
|
||||
img.outerHTML = strNewHTML
|
||||
i = i - 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Let other scripts know browser is IE6-7
|
||||
var legacyIE=true;
|
||||
var legacyIE = true;
|
||||
|
||||
//Render all transparent pngs
|
||||
window.onload=pngfix;
|
||||
window.onload = pngfix;
|
||||
|
|
847
js/main.js
847
js/main.js
|
@ -7,301 +7,316 @@
|
|||
"use strict"
|
||||
|
||||
function getWidth(a) {
|
||||
// Return the integer value of the computed width of a DOM node.
|
||||
// Ex. getWidth(node);
|
||||
var w = getStyle(a, 'width');
|
||||
if (w.indexOf('px') !== -1) return parseInt(w.replace('px', ''));
|
||||
var p = [getStyle(a, 'padding-top'), getStyle(a, 'padding-right'), getStyle(a, 'padding-bottom'), getStyle(a, 'padding-left')];
|
||||
for (var i = 0; i < 4; i++) {
|
||||
p[i] = (p[i].indexOf('px') !== -1) ? parseInt(p[i]) : 0;
|
||||
}
|
||||
return Math.max(0, a.offsetWidth - p[1] - p[3]);
|
||||
// Return the integer value of the computed width of a DOM node.
|
||||
// Ex. getWidth(node);
|
||||
var w = getStyle(a, 'width');
|
||||
if (w.indexOf('px') !== -1) return parseInt(w.replace('px', ''));
|
||||
var p = [getStyle(a, 'padding-top'), getStyle(a, 'padding-right'), getStyle(a, 'padding-bottom'), getStyle(a, 'padding-left')];
|
||||
for (var i = 0; i < 4; i++) {
|
||||
p[i] = (p[i].indexOf('px') !== -1) ? parseInt(p[i]) : 0;
|
||||
}
|
||||
return Math.max(0, a.offsetWidth - p[1] - p[3]);
|
||||
}
|
||||
|
||||
function getHeight(a) {
|
||||
// Return the integer value of the computed height of a DOM node.
|
||||
// Ex. getHeight(node);
|
||||
var h = getStyle(a, 'height');
|
||||
if (h.indexOf('px') !== -1) return parseInt(h.replace('px', ''));
|
||||
var p = [getStyle(a, 'padding-top'), getStyle(a, 'padding-right'), getStyle(a, 'padding-bottom'), getStyle(a, 'padding-left')];
|
||||
for (var i = 0; i < 4; i++) {
|
||||
p[i] = (p[i].indexOf('px') !== -1) ? parseInt(p[i]) : 0;
|
||||
}
|
||||
return Math.max(0, a.offsetHeight - p[0] - p[2]);
|
||||
// Return the integer value of the computed height of a DOM node.
|
||||
// Ex. getHeight(node);
|
||||
var h = getStyle(a, 'height');
|
||||
if (h.indexOf('px') !== -1) return parseInt(h.replace('px', ''));
|
||||
var p = [getStyle(a, 'padding-top'), getStyle(a, 'padding-right'), getStyle(a, 'padding-bottom'), getStyle(a, 'padding-left')];
|
||||
for (var i = 0; i < 4; i++) {
|
||||
p[i] = (p[i].indexOf('px') !== -1) ? parseInt(p[i]) : 0;
|
||||
}
|
||||
return Math.max(0, a.offsetHeight - p[0] - p[2]);
|
||||
}
|
||||
|
||||
function getLeft(a) {
|
||||
// Return the integer value of the computed distance between given node and the browser window.
|
||||
// Ex. getLeft(node);
|
||||
var b = a.offsetLeft;
|
||||
while (a.offsetParent) {
|
||||
a = a.offsetParent;
|
||||
b += a.offsetLeft;
|
||||
}
|
||||
return b;
|
||||
// Return the integer value of the computed distance between given node and the browser window.
|
||||
// Ex. getLeft(node);
|
||||
var b = a.offsetLeft;
|
||||
while (a.offsetParent) {
|
||||
a = a.offsetParent;
|
||||
b += a.offsetLeft;
|
||||
}
|
||||
return b;
|
||||
}
|
||||
|
||||
function getTop (a) {
|
||||
// Return the integer value of the computed distance between given node and the browser window.
|
||||
// Ex. getTop(node);
|
||||
var b = a.offsetTop;
|
||||
while (a.offsetParent) {
|
||||
a = a.offsetParent;
|
||||
b += a.offsetTop;
|
||||
}
|
||||
return b;
|
||||
function getTop(a) {
|
||||
// Return the integer value of the computed distance between given node and the browser window.
|
||||
// Ex. getTop(node);
|
||||
var b = a.offsetTop;
|
||||
while (a.offsetParent) {
|
||||
a = a.offsetParent;
|
||||
b += a.offsetTop;
|
||||
}
|
||||
return b;
|
||||
}
|
||||
|
||||
function getPageYOffset() {
|
||||
// Return the integer value for the vertical position of the scroll bar.
|
||||
return window.pageYOffset || document.documentElement.scrollTop;
|
||||
// Return the integer value for the vertical position of the scroll bar.
|
||||
return window.pageYOffset || document.documentElement.scrollTop;
|
||||
}
|
||||
|
||||
function getPageXOffset() {
|
||||
// Return the integer value for the horizontal position of the scroll bar.
|
||||
return window.pageXOffset || document.documentElement.scrollLeft;
|
||||
// Return the integer value for the horizontal position of the scroll bar.
|
||||
return window.pageXOffset || document.documentElement.scrollLeft;
|
||||
}
|
||||
|
||||
function getWindowY() {
|
||||
// Return the integer value for the browser window height.
|
||||
return window.innerHeight || document.documentElement.clientHeight;
|
||||
// Return the integer value for the browser window height.
|
||||
return window.innerHeight || document.documentElement.clientHeight;
|
||||
}
|
||||
|
||||
function getWindowX() {
|
||||
// Return the integer value for the browser window width.
|
||||
return window.innerWidth || document.documentElement.clientWidth;
|
||||
// Return the integer value for the browser window width.
|
||||
return window.innerWidth || document.documentElement.clientWidth;
|
||||
}
|
||||
|
||||
function isMobile() {
|
||||
// Return true if the mobile CSS stylesheet is used.
|
||||
if (getStyle(document.getElementById('detectmobile'), 'display') != 'none') return true;
|
||||
return false;
|
||||
// Return true if the mobile CSS stylesheet is used.
|
||||
if (getStyle(document.getElementById('detectmobile'), 'display') != 'none') return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
function scrollToNode(t) {
|
||||
// Scroll to any node on the page.
|
||||
if (document.body.getAttribute('data-scrollstatus') != null) {
|
||||
clearInterval(document.body.getAttribute('data-scrollstatus'));
|
||||
document.body.removeAttribute('data-scrollstatus');
|
||||
}
|
||||
var delay = 800;
|
||||
var py = getPageYOffset();
|
||||
var fy = getTop(t)
|
||||
var dy = fy - py;
|
||||
var x = getPageXOffset();
|
||||
var oti = new Date().getTime();
|
||||
document.body.setAttribute('data-scrollstatus', setInterval(function() {
|
||||
var nti = new Date().getTime() - oti;
|
||||
if (nti >= delay) {
|
||||
window.scrollTo(x, fy);
|
||||
clearInterval(document.body.getAttribute('data-scrollstatus'));
|
||||
document.body.removeAttribute('data-scrollstatus');
|
||||
return;
|
||||
}
|
||||
var p = nti / delay;
|
||||
p = p * (1 + (0.5 * (1 - p)));
|
||||
window.scrollTo(x, (py + (dy * p)).toFixed(0));
|
||||
}, 10));
|
||||
// Scroll to any node on the page.
|
||||
if (document.body.getAttribute('data-scrollstatus') != null) {
|
||||
clearInterval(document.body.getAttribute('data-scrollstatus'));
|
||||
document.body.removeAttribute('data-scrollstatus');
|
||||
}
|
||||
var delay = 800;
|
||||
var py = getPageYOffset();
|
||||
var fy = getTop(t)
|
||||
var dy = fy - py;
|
||||
var x = getPageXOffset();
|
||||
var oti = new Date().getTime();
|
||||
document.body.setAttribute('data-scrollstatus', setInterval(function() {
|
||||
var nti = new Date().getTime() - oti;
|
||||
if (nti >= delay) {
|
||||
window.scrollTo(x, fy);
|
||||
clearInterval(document.body.getAttribute('data-scrollstatus'));
|
||||
document.body.removeAttribute('data-scrollstatus');
|
||||
return;
|
||||
}
|
||||
var p = nti / delay;
|
||||
p = p * (1 + (0.5 * (1 - p)));
|
||||
window.scrollTo(x, (py + (dy * p)).toFixed(0));
|
||||
}, 10));
|
||||
}
|
||||
|
||||
function supportCSS(id) {
|
||||
// Return true if the browser supports given CSS feature.
|
||||
var domPrefixes = 'Webkit Moz ms O'.split(' ');
|
||||
var nd = document.createElement('DIV');
|
||||
id = id.toLowerCase();
|
||||
if (nd.style[id] !== undefined) return true;
|
||||
idc = id.charAt(0).toUpperCase() + id.substr(1);
|
||||
for (var i = 0, n = domPrefixes.length; i < n; i++) {
|
||||
if (nd.style[domPrefixes[i] + idc] !== undefined) return true;
|
||||
}
|
||||
return false;
|
||||
// Return true if the browser supports given CSS feature.
|
||||
var domPrefixes = 'Webkit Moz ms O'.split(' ');
|
||||
var nd = document.createElement('DIV');
|
||||
id = id.toLowerCase();
|
||||
if (nd.style[id] !== undefined) return true;
|
||||
idc = id.charAt(0).toUpperCase() + id.substr(1);
|
||||
for (var i = 0, n = domPrefixes.length; i < n; i++) {
|
||||
if (nd.style[domPrefixes[i] + idc] !== undefined) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function loadYoutubeVideo(e) {
|
||||
// Load Youtube video on target node on click.
|
||||
var t = getEventTarget(e),
|
||||
nd = document.createElement('IFRAME');
|
||||
while (t.getAttribute('data-youtubeurl') === null || t.getAttribute('data-youtubeurl') === '') t = t.parentNode;
|
||||
nd.src = t.getAttribute('data-youtubeurl');
|
||||
nd.setAttribute('frameborder', 0);
|
||||
nd.setAttribute('allowfullscreen', true);
|
||||
t.innerHTML = '';
|
||||
t.appendChild(nd);
|
||||
t.onclick = '';
|
||||
// Load Youtube video on target node on click.
|
||||
function init(e) {
|
||||
var t = getEvent(e, 'target'),
|
||||
nd = document.createElement('IFRAME');
|
||||
while (t.getAttribute('data-youtubeurl') === null || t.getAttribute('data-youtubeurl') === '') t = t.parentNode;
|
||||
nd.src = t.getAttribute('data-youtubeurl');
|
||||
nd.setAttribute('frameborder', 0);
|
||||
nd.setAttribute('allowfullscreen', true);
|
||||
t.innerHTML = '';
|
||||
t.appendChild(nd);
|
||||
t.onclick = '';
|
||||
}
|
||||
onTouchClick(e, init);
|
||||
}
|
||||
|
||||
function expandBox(t) {
|
||||
// Expand or shrink box.
|
||||
var phe = getHeight(t);
|
||||
t.style.transition = t.style.MozTransition = t.style.WebkitTransition = 'all 0s ease 0s';
|
||||
if (t.className.indexOf('expanded') === -1) addClass(t, 'expanded');
|
||||
else removeClass(t, 'expanded');
|
||||
t.style.height = '';
|
||||
var nhe = getHeight(t);
|
||||
t.style.height = phe + 'px';
|
||||
// Async call to prevent transition from applying on last style.height statement.
|
||||
setTimeout(function() {
|
||||
t.style.transition = t.style.MozTransition = t.style.WebkitTransition = '';
|
||||
t.style.height = nhe + 'px';
|
||||
}, 20);
|
||||
// Expand or shrink box.
|
||||
var phe = getHeight(t);
|
||||
t.style.transition = t.style.MozTransition = t.style.WebkitTransition = 'all 0s ease 0s';
|
||||
if (t.className.indexOf('expanded') === -1) addClass(t, 'expanded');
|
||||
else removeClass(t, 'expanded');
|
||||
t.style.height = '';
|
||||
var nhe = getHeight(t);
|
||||
t.style.height = phe + 'px';
|
||||
// Async call to prevent transition from applying on last style.height statement.
|
||||
setTimeout(function() {
|
||||
t.style.transition = t.style.MozTransition = t.style.WebkitTransition = '';
|
||||
t.style.height = nhe + 'px';
|
||||
}, 20);
|
||||
}
|
||||
|
||||
function boxShow(e) {
|
||||
// Display the box content when the user click a box on the "Secure your wallet" page.
|
||||
var t = getEventTarget(e);
|
||||
while (t.nodeName != 'DIV') t = t.parentNode;
|
||||
expandBox(t);
|
||||
cancelEvent(e);
|
||||
// Display the box content when the user click a box on the "Secure your wallet" page.
|
||||
function init(e) {
|
||||
var t = getEvent(e, 'target');
|
||||
while (t.nodeName != 'DIV') t = t.parentNode;
|
||||
expandBox(t);
|
||||
cancelEvent(e);
|
||||
}
|
||||
onTouchClick(e, init);
|
||||
}
|
||||
|
||||
function faqShow(e) {
|
||||
// Display the content of a question in the FAQ at user request.
|
||||
var t = getEventTarget(e);
|
||||
while (t.nodeType != 1 || t.nodeName != 'DIV') t = t.nextSibling;
|
||||
expandBox(t);
|
||||
cancelEvent(e);
|
||||
// Display the content of a question in the FAQ at user request.
|
||||
function init(e) {
|
||||
var t = getEvent(e, 'target');
|
||||
while (t.nodeType != 1 || t.nodeName != 'DIV') t = t.nextSibling;
|
||||
expandBox(t);
|
||||
cancelEvent(e);
|
||||
}
|
||||
onTouchClick(e, init);
|
||||
}
|
||||
|
||||
function materialShow(e) {
|
||||
// Display more materials on the "Press center" page at user request.
|
||||
var t = getEventTarget(e),
|
||||
p = t;
|
||||
while (p.nodeType != 1 || p.nodeName != 'DIV') p = p.parentNode;
|
||||
expandBox(p);
|
||||
cancelEvent(e);
|
||||
// Display more materials on the "Press center" page at user request.
|
||||
function init(e) {
|
||||
var t = getEvent(e, 'target'),
|
||||
p = t;
|
||||
while (p.nodeType != 1 || p.nodeName != 'DIV') p = p.parentNode;
|
||||
expandBox(p);
|
||||
cancelEvent(e);
|
||||
}
|
||||
onTouchClick(e, init);
|
||||
}
|
||||
|
||||
function librariesShow(e) {
|
||||
// Display more open source projects on the "Development" page at user request.
|
||||
var t = getEventTarget(e),
|
||||
p = t;
|
||||
while (p.nodeType != 1 || p.nodeName != 'UL') p = p.parentNode;
|
||||
expandBox(p);
|
||||
cancelEvent(e);
|
||||
// Display more open source projects on the "Development" page at user request.
|
||||
function init(e) {
|
||||
var t = getEvent(e, 'target'),
|
||||
p = t;
|
||||
while (p.nodeType != 1 || p.nodeName != 'UL') p = p.parentNode;
|
||||
expandBox(p);
|
||||
cancelEvent(e);
|
||||
}
|
||||
onTouchClick(e, init);
|
||||
}
|
||||
|
||||
function freenodeShow(e) {
|
||||
// Display freenode chat window on the "Development" page at user request.
|
||||
document.getElementById('chatbox').innerHTML = '<iframe style=width:98%;min-width:400px;height:600px src="http://webchat.freenode.net/?channels=bitcoin-dev" />';
|
||||
cancelEvent(e);
|
||||
// Display freenode chat window on the "Development" page at user request.
|
||||
document.getElementById('chatbox').innerHTML = '<iframe style=width:98%;min-width:400px;height:600px src="http://webchat.freenode.net/?channels=bitcoin-dev" />';
|
||||
cancelEvent(e);
|
||||
}
|
||||
|
||||
function updateToc() {
|
||||
// Update table of content active entry and browser url on scroll.
|
||||
var pageoffset;
|
||||
var windowy;
|
||||
var toc;
|
||||
var fallback;
|
||||
var first;
|
||||
var last;
|
||||
var closer;
|
||||
var init = function() {
|
||||
setenv();
|
||||
updatehistory();
|
||||
updatetoc();
|
||||
}
|
||||
// Set variables.
|
||||
var setenv = function() {
|
||||
pageoffset = getPageYOffset();
|
||||
windowy = getWindowY();
|
||||
toc = document.getElementById('toc');
|
||||
fallback = document.getElementsByTagName('H2')[0];
|
||||
first = [fallback, getTop(fallback)];
|
||||
last = [fallback, getTop(fallback)];
|
||||
closer = [fallback, getTop(fallback)];
|
||||
// Find all titles in toc.
|
||||
var nodes = [];
|
||||
var tags = ['H2', 'H3', 'H4', 'H5', 'H6'];
|
||||
for (var i = 0, n = tags.length; i < n; i++) {
|
||||
for (var ii = 0, t = document.getElementsByTagName(tags[i]), nn = t.length; ii < nn; ii++) {
|
||||
if (t[ii].className.indexOf('no_toc')!==-1) continue;
|
||||
nodes.push(t[ii]);
|
||||
}
|
||||
}
|
||||
// Find first title, last title and closer title.
|
||||
for (var i = 0, n = nodes.length; i < n; i++) {
|
||||
if (!nodes[i].id) continue;
|
||||
var top = getTop(nodes[i]);
|
||||
if (top < first[1]) first = [nodes[i], top];
|
||||
if (top > last[1]) last = [nodes[i], top];
|
||||
if (top < pageoffset + 10 && top > closer[1]) closer = [nodes[i], top];
|
||||
}
|
||||
// Set closer title to first or last title if at the top or bottom of the page.
|
||||
if (pageoffset < first[1]) closer = [first[0], first[1]];
|
||||
if (windowy + pageoffset >= getHeight(document.body)) closer = [last[0], last[1]];
|
||||
}
|
||||
// Update toc position and set active toc entry.
|
||||
var updatetoc = function() {
|
||||
// Set bottom and top to fit within window and not overflow its parent node.
|
||||
var div = toc.getElementsByTagName('DIV')[0];
|
||||
if (pageoffset > getTop(toc)) {
|
||||
addClass(div, 'scroll');
|
||||
div.style.top = '20px';
|
||||
div.style.bottom = Math.max((pageoffset + windowy) - (getHeight(toc.parentNode) + getTop(toc.parentNode)), 20) + 'px';
|
||||
} else removeClass(div, 'scroll');
|
||||
// Remove .active class from toc and find new active toc entry.
|
||||
var a = false;
|
||||
for (var i = 0, t = toc.getElementsByTagName('*'), n = t.length; i < n; i++) {
|
||||
removeClass(t[i], 'active');
|
||||
if (t[i].nodeName == 'A' && t[i].getAttribute('href') == '#' + closer[0].id) a = t[i];
|
||||
}
|
||||
if (a === false) return;
|
||||
// Set .active class on new active toc entry.
|
||||
var nd = a;
|
||||
while (nd.parentNode.nodeName == 'LI' || nd.parentNode.nodeName == 'UL') {
|
||||
addClass(nd, 'active');
|
||||
nd = nd.parentNode;
|
||||
}
|
||||
// Auto-scroll in toc to keep active toc entry visible.
|
||||
var nd = a;
|
||||
var otop = nd.offsetTop;
|
||||
while (nd.offsetParent != div && nd.offsetParent) {
|
||||
nd = nd.offsetParent;
|
||||
otop += nd.offsetTop;
|
||||
}
|
||||
var bdiff = getHeight(a) + otop - div.scrollTop - getHeight(div);
|
||||
var tdiff = getHeight(a) - otop + div.scrollTop;
|
||||
if (tdiff > 0 || bdiff > 0) div.scrollTop -= tdiff;
|
||||
}
|
||||
// Update browser url.
|
||||
var updatehistory = function() {
|
||||
// Don't call window.history if not supported.
|
||||
if (!window.history || !window.history.replaceState) return;
|
||||
// Don't update window url when it doesn't need to be updated.
|
||||
if (new RegExp('#' + closer[0].id + '$').test(window.location.href.toString())) return;
|
||||
// Don't update window url when the window is over the first title in the page.
|
||||
if (pageoffset < first[1]) return;
|
||||
// Don't update window url when page is not loaded, or user just clicked a url.
|
||||
if (!toc.hasAttribute('data-timestamp') || toc.getAttribute('data-timestamp') > new Date().getTime() - 1000) return;
|
||||
window.history.replaceState(null, null, '#' + closer[0].id);
|
||||
}
|
||||
// Update the toc when the page stops scrolling.
|
||||
var evtimeout = function() {
|
||||
toc = document.getElementById('toc');
|
||||
clearTimeout(toc.getAttribute('data-timeout'));
|
||||
toc.setAttribute('data-timeout', setTimeout(init, 1));
|
||||
}
|
||||
// Reset timestamp on page load and each time the user clicks a url.
|
||||
var evtimestamp = function() {
|
||||
toc = document.getElementById('toc');
|
||||
document.getElementById('toc').setAttribute('data-timestamp', new Date().getTime());
|
||||
}
|
||||
addEvent(window, 'scroll', evtimeout);
|
||||
addEvent(window, 'popstate', evtimestamp);
|
||||
addEvent(window, 'load', evtimestamp);
|
||||
init();
|
||||
// Update table of content active entry and browser url on scroll.
|
||||
var pageoffset;
|
||||
var windowy;
|
||||
var toc;
|
||||
var fallback;
|
||||
var first;
|
||||
var last;
|
||||
var closer;
|
||||
var init = function() {
|
||||
setenv();
|
||||
updatehistory();
|
||||
updatetoc();
|
||||
}
|
||||
// Set variables.
|
||||
var setenv = function() {
|
||||
pageoffset = getPageYOffset();
|
||||
windowy = getWindowY();
|
||||
toc = document.getElementById('toc');
|
||||
fallback = document.getElementsByTagName('H2')[0];
|
||||
first = [fallback, getTop(fallback)];
|
||||
last = [fallback, getTop(fallback)];
|
||||
closer = [fallback, getTop(fallback)];
|
||||
// Find all titles in toc.
|
||||
var nodes = [];
|
||||
var tags = ['H2', 'H3', 'H4', 'H5', 'H6'];
|
||||
for (var i = 0, n = tags.length; i < n; i++) {
|
||||
for (var ii = 0, t = document.getElementsByTagName(tags[i]), nn = t.length; ii < nn; ii++) {
|
||||
if (t[ii].className.indexOf('no_toc') !== -1) continue;
|
||||
nodes.push(t[ii]);
|
||||
}
|
||||
}
|
||||
// Find first title, last title and closer title.
|
||||
for (var i = 0, n = nodes.length; i < n; i++) {
|
||||
if (!nodes[i].id) continue;
|
||||
var top = getTop(nodes[i]);
|
||||
if (top < first[1]) first = [nodes[i], top];
|
||||
if (top > last[1]) last = [nodes[i], top];
|
||||
if (top < pageoffset + 10 && top > closer[1]) closer = [nodes[i], top];
|
||||
}
|
||||
// Set closer title to first or last title if at the top or bottom of the page.
|
||||
if (pageoffset < first[1]) closer = [first[0], first[1]];
|
||||
if (windowy + pageoffset >= getHeight(document.body)) closer = [last[0], last[1]];
|
||||
}
|
||||
// Update toc position and set active toc entry.
|
||||
var updatetoc = function() {
|
||||
// Set bottom and top to fit within window and not overflow its parent node.
|
||||
var div = toc.getElementsByTagName('DIV')[0];
|
||||
if (pageoffset > getTop(toc)) {
|
||||
addClass(div, 'scroll');
|
||||
div.style.top = '20px';
|
||||
div.style.bottom = Math.max((pageoffset + windowy) - (getHeight(toc.parentNode) + getTop(toc.parentNode)), 20) + 'px';
|
||||
} else removeClass(div, 'scroll');
|
||||
// Remove .active class from toc and find new active toc entry.
|
||||
var a = false;
|
||||
for (var i = 0, t = toc.getElementsByTagName('*'), n = t.length; i < n; i++) {
|
||||
removeClass(t[i], 'active');
|
||||
if (t[i].nodeName == 'A' && t[i].getAttribute('href') == '#' + closer[0].id) a = t[i];
|
||||
}
|
||||
if (a === false) return;
|
||||
// Set .active class on new active toc entry.
|
||||
var nd = a;
|
||||
while (nd.parentNode.nodeName == 'LI' || nd.parentNode.nodeName == 'UL') {
|
||||
addClass(nd, 'active');
|
||||
nd = nd.parentNode;
|
||||
}
|
||||
// Auto-scroll in toc to keep active toc entry visible.
|
||||
var nd = a;
|
||||
var otop = nd.offsetTop;
|
||||
while (nd.offsetParent != div && nd.offsetParent) {
|
||||
nd = nd.offsetParent;
|
||||
otop += nd.offsetTop;
|
||||
}
|
||||
var bdiff = getHeight(a) + otop - div.scrollTop - getHeight(div);
|
||||
var tdiff = getHeight(a) - otop + div.scrollTop;
|
||||
if (tdiff > 0 || bdiff > 0) div.scrollTop -= tdiff;
|
||||
}
|
||||
// Update browser url.
|
||||
var updatehistory = function() {
|
||||
// Don't call window.history if not supported.
|
||||
if (!window.history || !window.history.replaceState) return;
|
||||
// Don't update window url when it doesn't need to be updated.
|
||||
if (new RegExp('#' + closer[0].id + '$').test(window.location.href.toString())) return;
|
||||
// Don't update window url when the window is over the first title in the page.
|
||||
if (pageoffset < first[1]) return;
|
||||
// Don't update window url when page is not loaded, or user just clicked a url.
|
||||
if (!toc.hasAttribute('data-timestamp') || toc.getAttribute('data-timestamp') > new Date().getTime() - 1000) return;
|
||||
window.history.replaceState(null, null, '#' + closer[0].id);
|
||||
}
|
||||
// Update the toc when the page stops scrolling.
|
||||
var evtimeout = function() {
|
||||
toc = document.getElementById('toc');
|
||||
clearTimeout(toc.getAttribute('data-timeout'));
|
||||
toc.setAttribute('data-timeout', setTimeout(init, 1));
|
||||
}
|
||||
// Reset timestamp on page load and each time the user clicks a url.
|
||||
var evtimestamp = function() {
|
||||
toc = document.getElementById('toc');
|
||||
document.getElementById('toc').setAttribute('data-timestamp', new Date().getTime());
|
||||
}
|
||||
addEvent(window, 'scroll', evtimeout);
|
||||
addEvent(window, 'popstate', evtimestamp);
|
||||
addEvent(window, 'load', evtimestamp);
|
||||
init();
|
||||
}
|
||||
|
||||
function updateIssue(e) {
|
||||
// Update GitHub issue link pre-filled with current page location.
|
||||
var t = getEventTarget(e);
|
||||
t.href = 'https://github.com/bitcoin-dot-org/bitcoin.org/issues/new?body=' + encodeURIComponent('Location: ' + window.location.href.toString() + "\n\n");
|
||||
// Update GitHub issue link pre-filled with current page location.
|
||||
var t = getEvent(e, 'target');
|
||||
t.href = 'https://github.com/bitcoin-dot-org/bitcoin.org/issues/new?body=' + encodeURIComponent('Location: ' + window.location.href.toString() + "\n\n");
|
||||
}
|
||||
|
||||
function updateSource(e){
|
||||
// Update GitHub source file link pre-filled with current page location.
|
||||
if (!document.getElementsByClassName) return;
|
||||
var t = getEventTarget(e),
|
||||
function updateSource(e) {
|
||||
// Update GitHub source file link pre-filled with current page location.
|
||||
if (!document.getElementsByClassName) return;
|
||||
var t = getEvent(e, 'target'),
|
||||
nodes = document.getElementsByClassName('sourcefile'),
|
||||
pageoffset = Math.max(0, getPageYOffset() + 100),
|
||||
windowy = getWindowY(),
|
||||
|
@ -309,212 +324,230 @@ var t = getEventTarget(e),
|
|||
first = [fallback, getTop(fallback)],
|
||||
last = [fallback, getTop(fallback)],
|
||||
closer = [fallback, getTop(fallback)];
|
||||
// Find first, last and closer node.
|
||||
for (var i = 0, n = nodes.length; i < n; i++) {
|
||||
var top = getTop(nodes[i]);
|
||||
if (top < first[1]) first = [nodes[i], top];
|
||||
if (top > last[1]) last = [nodes[i], top];
|
||||
if (top < pageoffset + 10 && top > closer[1]) closer = [nodes[i], top];
|
||||
}
|
||||
// Set closer title to first or last title if at the top or bottom of the page.
|
||||
if (pageoffset < first[1]) closer = [first[0], first[1]];
|
||||
if (windowy + pageoffset >= getHeight(document.body)) closer = [last[0], last[1]];
|
||||
// Set updated url to source file.
|
||||
t.href = 'https://github.com/bitcoin-dot-org/bitcoin.org/edit/master/' + closer[0].getAttribute('data-sourcefile');
|
||||
// Find first, last and closer node.
|
||||
for (var i = 0, n = nodes.length; i < n; i++) {
|
||||
var top = getTop(nodes[i]);
|
||||
if (top < first[1]) first = [nodes[i], top];
|
||||
if (top > last[1]) last = [nodes[i], top];
|
||||
if (top < pageoffset + 10 && top > closer[1]) closer = [nodes[i], top];
|
||||
}
|
||||
// Set closer title to first or last title if at the top or bottom of the page.
|
||||
if (pageoffset < first[1]) closer = [first[0], first[1]];
|
||||
if (windowy + pageoffset >= getHeight(document.body)) closer = [last[0], last[1]];
|
||||
// Set updated url to source file.
|
||||
t.href = 'https://github.com/bitcoin-dot-org/bitcoin.org/edit/master/' + closer[0].getAttribute('data-sourcefile');
|
||||
}
|
||||
|
||||
function disclaimerClose(e) {
|
||||
// Auto close temporary disclaimer in devel-docs.
|
||||
if (e) cancelEvent(e);
|
||||
var t = document.getElementById('develdocdisclaimer')
|
||||
t.parentNode.removeChild(t);
|
||||
if (typeof(Storage) === 'undefined') return;
|
||||
sessionStorage.setItem('develdocdisclaimerclose', '1');
|
||||
// Auto close temporary disclaimer in devel-docs.
|
||||
if (e) cancelEvent(e);
|
||||
var t = document.getElementById('develdocdisclaimer')
|
||||
t.parentNode.removeChild(t);
|
||||
if (typeof(Storage) === 'undefined') return;
|
||||
sessionStorage.setItem('develdocdisclaimerclose', '1');
|
||||
}
|
||||
|
||||
function disclaimerAutoClose() {
|
||||
// Auto close temporary disclaimer in devel-docs if session says so.
|
||||
if (typeof(Storage) === 'undefined') return;
|
||||
if (sessionStorage.getItem('develdocdisclaimerclose') === '1') disclaimerClose();
|
||||
// Auto close temporary disclaimer in devel-docs if session says so.
|
||||
if (typeof(Storage) === 'undefined') return;
|
||||
if (sessionStorage.getItem('develdocdisclaimerclose') === '1') disclaimerClose();
|
||||
}
|
||||
|
||||
function walletMenuListener(e) {
|
||||
// Listen for events on the wallet menu.
|
||||
var t = getEventTarget(e),
|
||||
walletSelectPlatform = function() {
|
||||
if (t.nodeName != 'A') return;
|
||||
if (t.parentNode.className.indexOf('active') !== -1) walletShowPlatform(t.getAttribute('data-walletcompat'));
|
||||
if (isMobile() && t.parentNode.getElementsByTagName('UL').length == 0) scrollToNode(document.getElementById('wallets'));
|
||||
// Listen for events on the wallet menu.
|
||||
var walletSelectPlatform = function(e) {
|
||||
var t = getEvent(e, 'target'),
|
||||
p = t;
|
||||
if (t.nodeName != 'A') return;
|
||||
while (p.parentNode.nodeName == 'UL' || p.parentNode.nodeName == 'LI') p = p.parentNode;
|
||||
for (var i = 0, nds = p.getElementsByTagName('LI'), n = nds.length; i < n; i++) removeClass(nds[i], 'active');
|
||||
var tt = t;
|
||||
while (tt != p) {
|
||||
if (tt.nodeName == 'LI') addClass(tt, 'active');
|
||||
tt = tt.parentNode;
|
||||
}
|
||||
walletShowPlatform(t.getAttribute('data-walletcompat'));
|
||||
if (isMobile() && !hasSubItems(t)) scrollToNode(document.getElementById('wallets'));
|
||||
},
|
||||
hasSubItems = function(t) {
|
||||
while (t.nodeName != 'LI') t = t.parentNode;
|
||||
return (t.getElementsByTagName('UL').length > 0);
|
||||
};
|
||||
// Pre-process events and call appropriate function.
|
||||
onTouchClick(e, walletSelectPlatform);
|
||||
// Pre-process events and call appropriate function.
|
||||
onTouchClick(e, walletSelectPlatform);
|
||||
}
|
||||
|
||||
function walletListener(e) {
|
||||
// Listen for events on wallets.
|
||||
var t = getEventTarget(e),
|
||||
// Listen for events on wallets.
|
||||
var t = getEvent(e, 'target'),
|
||||
walletShow = function() {
|
||||
// Show wallet on click on mobile or desktop.
|
||||
if (t.id == 'wallets') return;
|
||||
while (t.parentNode && t.parentNode.id != 'wallets') t = t.parentNode;
|
||||
if (!t.parentNode) return;
|
||||
if (isMobile()) {
|
||||
var p = document.getElementById('walletsmobile');
|
||||
t = t.cloneNode(true);
|
||||
p.innerHTML = '';
|
||||
p.appendChild(t);
|
||||
scrollToNode(p);
|
||||
} else {
|
||||
addClass(t, 'active');
|
||||
addEvent(document.body, 'click', walletListener);
|
||||
}
|
||||
// Show wallet on click on mobile or desktop.
|
||||
if (t.id == 'wallets') return;
|
||||
while (t.parentNode && t.parentNode.id != 'wallets') t = t.parentNode;
|
||||
if (!t.parentNode) return;
|
||||
if (isMobile()) {
|
||||
var p = document.getElementById('walletsmobile');
|
||||
t = t.cloneNode(true);
|
||||
p.innerHTML = '';
|
||||
p.appendChild(t);
|
||||
scrollToNode(p);
|
||||
} else {
|
||||
addClass(t, 'active');
|
||||
addEvent(document.body, 'click', walletListener);
|
||||
}
|
||||
},
|
||||
walletHide = function() {
|
||||
// Disable wallet when the mouse clicks elsewhere.
|
||||
for (var i = 0, wallets = document.getElementById('wallets').childNodes, n = wallets.length; i < n; i++) {
|
||||
if (wallets[i].nodeType != 1) continue;
|
||||
removeClass(wallets[i], 'active');
|
||||
}
|
||||
removeEvent(document.body, 'click', walletListener);
|
||||
// Disable wallet when the mouse clicks elsewhere.
|
||||
for (var i = 0, wallets = document.getElementById('wallets').childNodes, n = wallets.length; i < n; i++) {
|
||||
if (wallets[i].nodeType != 1) continue;
|
||||
removeClass(wallets[i], 'active');
|
||||
}
|
||||
removeEvent(document.body, 'click', walletListener);
|
||||
};
|
||||
// Call appropriate function on click.
|
||||
onTouchClick(e, function() {
|
||||
walletHide();
|
||||
walletShow();
|
||||
});
|
||||
// Call appropriate function on click.
|
||||
onTouchClick(e, function() {
|
||||
walletHide();
|
||||
walletShow();
|
||||
});
|
||||
}
|
||||
|
||||
function walletScoreListener(e) {
|
||||
// Listen for events on wallet scores and display them on tap.
|
||||
var init = function(e) {
|
||||
var t = getEvent(e, 'target');
|
||||
while (!t.parentNode.parentNode.parentNode.id) t = t.parentNode;
|
||||
(t.className.indexOf('hover') === -1) ? addClass(t, 'hover'): removeClass(t, 'hover');
|
||||
};
|
||||
onTouchClick(e, init);
|
||||
}
|
||||
|
||||
function walletShowPlatform(platform) {
|
||||
// Show wallets for given platform in the menu.
|
||||
var t = null,
|
||||
// Show wallets for given platform in the menu.
|
||||
var t = null,
|
||||
fallback = '',
|
||||
walletMenu = document.getElementById('walletmenu'),
|
||||
getMenuState = function() {
|
||||
// Find active node in the menu for given platform and fallback category if in a submenu.
|
||||
for (var i = 0, nds = walletMenu.getElementsByTagName('A'), n = nds.length; i < n; i++) {
|
||||
if (nds[i].getAttribute('data-walletcompat') != platform) continue;
|
||||
if (nds[i].getAttribute('data-active') == 1) return false;
|
||||
t = nds[i];
|
||||
var p = nds[i].parentNode.parentNode.parentNode;
|
||||
if (p.nodeName == 'LI') fallback = p.getElementsByTagName('A')[0].getAttribute('data-walletcompat');
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
// Find active node in the menu for given platform and fallback category if in a submenu.
|
||||
for (var i = 0, nds = walletMenu.getElementsByTagName('A'), n = nds.length; i < n; i++) {
|
||||
if (nds[i].getAttribute('data-walletcompat') != platform) continue;
|
||||
if (nds[i].getAttribute('data-active') == 1) return false;
|
||||
t = nds[i];
|
||||
var p = nds[i].parentNode.parentNode.parentNode;
|
||||
if (p.nodeName == 'LI') fallback = p.getElementsByTagName('A')[0].getAttribute('data-walletcompat');
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
updateMenu = function() {
|
||||
// Set active nodes in the menu for the new platform.
|
||||
addClass(walletMenu.getElementsByTagName('UL')[0], 'menutap');
|
||||
for (var i = 0, nds = walletMenu.getElementsByTagName('A'), n = nds.length; i < n; i++) {
|
||||
nds[i].removeAttribute('data-active');
|
||||
removeClass(nds[i].parentNode, 'active');
|
||||
}
|
||||
if (platform != 'default') {
|
||||
t.setAttribute('data-active', '1');
|
||||
addClass(t.parentNode, 'active');
|
||||
addClass(t.parentNode, 'hover');
|
||||
var p = t.parentNode.parentNode.parentNode;
|
||||
if (p.nodeName == 'LI') {
|
||||
addClass(p, 'active');
|
||||
addClass(p, 'hover');
|
||||
}
|
||||
}
|
||||
// Set active nodes in the menu for the new platform.
|
||||
addClass(walletMenu.getElementsByTagName('UL')[0], 'menutap');
|
||||
for (var i = 0, nds = walletMenu.getElementsByTagName('A'), n = nds.length; i < n; i++) {
|
||||
nds[i].removeAttribute('data-active');
|
||||
removeClass(nds[i].parentNode, 'active');
|
||||
}
|
||||
if (platform != 'default') {
|
||||
t.setAttribute('data-active', '1');
|
||||
addClass(t.parentNode, 'active');
|
||||
var p = t.parentNode.parentNode.parentNode;
|
||||
if (p.nodeName == 'LI') addClass(p, 'active');
|
||||
}
|
||||
},
|
||||
updateWallets = function() {
|
||||
// Replace wallets by those for given platform and rotate them.
|
||||
var p = document.getElementById('wallets');
|
||||
var lasttimeout = p.getAttribute('data-timeout');
|
||||
var timeout = (lasttimeout !== null && lasttimeout !== '' && supportCSS('transition')) ? 200 : 1;
|
||||
addClass(p, 'disabled');
|
||||
addClass(p, 'nohover');
|
||||
clearTimeout(lasttimeout);
|
||||
p.setAttribute('data-timeout', setTimeout(function() {
|
||||
p.innerHTML = '';
|
||||
var platforms = (platform == 'default') ? ['desktop', 'mobile'] : [platform];
|
||||
for (var i = 0, nds = document.getElementById('walletsswitch').childNodes, n = nds.length; i < n; i++) {
|
||||
if (nds[i].nodeType != 1) continue;
|
||||
var id = nds[i].id.split('-')[1];
|
||||
if (document.getElementById('wallet-' + id)) continue;
|
||||
var nd = null;
|
||||
for (var ii = 0, nn = platforms.length; ii < nn; ii++) {
|
||||
var wp = document.getElementById('wallet-' + id + '-' + platforms[ii]);
|
||||
if (wp) var nd = wp;
|
||||
}
|
||||
if (nd === null) {
|
||||
var wf = document.getElementById('wallet-' + id + '-' + fallback);
|
||||
if (wf && wf.getAttribute('data-walletcompat').indexOf(platform) !== -1) var nd = wf;
|
||||
}
|
||||
if (nd === null) continue;
|
||||
nd = nd.cloneNode(true);
|
||||
nd.id = 'wallet-' + id;
|
||||
p.appendChild(nd);
|
||||
}
|
||||
walletRotate();
|
||||
removeClass(p, 'disabled');
|
||||
document.getElementById('walletsmobile').innerHTML = '';
|
||||
}, timeout));
|
||||
// Replace wallets by those for given platform and rotate them.
|
||||
var p = document.getElementById('wallets');
|
||||
var lasttimeout = p.getAttribute('data-timeout');
|
||||
var timeout = (lasttimeout !== null && lasttimeout !== '' && supportCSS('transition')) ? 200 : 1;
|
||||
addClass(p, 'disabled');
|
||||
addClass(p, 'nohover');
|
||||
clearTimeout(lasttimeout);
|
||||
p.setAttribute('data-timeout', setTimeout(function() {
|
||||
p.innerHTML = '';
|
||||
var platforms = (platform == 'default') ? ['desktop', 'mobile'] : [platform];
|
||||
for (var i = 0, nds = document.getElementById('walletsswitch').childNodes, n = nds.length; i < n; i++) {
|
||||
if (nds[i].nodeType != 1) continue;
|
||||
var id = nds[i].id.split('-')[1];
|
||||
if (document.getElementById('wallet-' + id)) continue;
|
||||
var nd = null;
|
||||
for (var ii = 0, nn = platforms.length; ii < nn; ii++) {
|
||||
var wp = document.getElementById('wallet-' + id + '-' + platforms[ii]);
|
||||
if (wp) var nd = wp;
|
||||
}
|
||||
if (nd === null) {
|
||||
var wf = document.getElementById('wallet-' + id + '-' + fallback);
|
||||
if (wf && wf.getAttribute('data-walletcompat').indexOf(platform) !== -1) var nd = wf;
|
||||
}
|
||||
if (nd === null) continue;
|
||||
nd = nd.cloneNode(true);
|
||||
nd.id = 'wallet-' + id;
|
||||
p.appendChild(nd);
|
||||
}
|
||||
walletRotate();
|
||||
removeClass(p, 'disabled');
|
||||
document.getElementById('walletsmobile').innerHTML = '';
|
||||
}, timeout));
|
||||
};
|
||||
if(!getMenuState()) return;
|
||||
updateMenu();
|
||||
updateWallets();
|
||||
if (!getMenuState()) return;
|
||||
updateMenu();
|
||||
updateWallets();
|
||||
}
|
||||
|
||||
function walletRotate() {
|
||||
// Rotate wallets once a day.
|
||||
var ar = {
|
||||
1: [],
|
||||
2: [],
|
||||
3: [],
|
||||
4: []
|
||||
}
|
||||
for (var i = 0, nds = document.getElementById('wallets').childNodes, n = nds.length; i < n; i++) {
|
||||
if (nds[i].nodeType != 1) continue;
|
||||
ar[parseInt(nds[i].getAttribute('data-walletlevel'))].push(nds[i]);
|
||||
}
|
||||
var sum = Math.floor(new Date() / 86400000);
|
||||
for (var k in ar) {
|
||||
if (ar[k].length == 0) continue;
|
||||
var pre = ar[k][ar[k].length - 1].nextSibling;
|
||||
for (i = 0, n = sum % ar[k].length; i < n; i++) ar[k][i].parentNode.insertBefore(ar[k][i], pre);
|
||||
}
|
||||
// Rotate wallets once a day.
|
||||
var ar = {
|
||||
1: [],
|
||||
2: [],
|
||||
3: [],
|
||||
4: []
|
||||
}
|
||||
for (var i = 0, nds = document.getElementById('wallets').childNodes, n = nds.length; i < n; i++) {
|
||||
if (nds[i].nodeType != 1) continue;
|
||||
ar[parseInt(nds[i].getAttribute('data-walletlevel'))].push(nds[i]);
|
||||
}
|
||||
var sum = Math.floor(new Date() / 86400000);
|
||||
for (var k in ar) {
|
||||
if (ar[k].length == 0) continue;
|
||||
var pre = ar[k][ar[k].length - 1].nextSibling;
|
||||
for (i = 0, n = sum % ar[k].length; i < n; i++) ar[k][i].parentNode.insertBefore(ar[k][i], pre);
|
||||
}
|
||||
}
|
||||
|
||||
function makeEditable(e) {
|
||||
// An easter egg that makes the page editable when user click on the page and hold their mouse button for one second.
|
||||
// This trick allows translators and writers to preview their work.
|
||||
if (!e) var e = window.event;
|
||||
switch (e.type) {
|
||||
case 'mousedown':
|
||||
if ((e.which && e.which == 3) || (e.button && e.button == 2)) return;
|
||||
var t = getEventTarget(e);
|
||||
while (t.parentNode) {
|
||||
if (getStyle(t, 'overflow') == 'auto' || getStyle(t, 'overflow-y') == 'auto' || getStyle(t, 'overflow-x') == 'auto') return;
|
||||
t = t.parentNode;
|
||||
}
|
||||
addEvent(document.body, 'mouseup', makeEditable);
|
||||
addEvent(document.body, 'mousemove', makeEditable);
|
||||
document.body.setAttribute('timeoutEdit', setTimeout(function() {
|
||||
removeEvent(document.body, 'mouseup', makeEditable);
|
||||
removeEvent(document.body, 'mousemove', makeEditable);
|
||||
var c = document.getElementById('content');
|
||||
c.contentEditable = true;
|
||||
c.style.borderColor = '#bfbfbf';
|
||||
setTimeout(function() {
|
||||
c.style.borderColor = '';
|
||||
}, 200);
|
||||
}, 1000));
|
||||
break;
|
||||
case 'mouseup':
|
||||
case 'mousemove':
|
||||
removeEvent(document.body, 'mouseup', makeEditable);
|
||||
removeEvent(document.body, 'mousemove', makeEditable);
|
||||
clearTimeout(document.body.getAttribute('timeoutEdit'));
|
||||
break;
|
||||
}
|
||||
// An easter egg that makes the page editable when user click on the page and hold their mouse button for one second.
|
||||
// This trick allows translators and writers to preview their work.
|
||||
if (!e) var e = window.event;
|
||||
switch (getEvent(e, 'type')) {
|
||||
case 'mousedown':
|
||||
if ((e.which && e.which == 3) || (e.button && e.button == 2)) return;
|
||||
var t = getEvent(e, 'target');
|
||||
while (t.parentNode) {
|
||||
if (getStyle(t, 'overflow') == 'auto' || getStyle(t, 'overflow-y') == 'auto' || getStyle(t, 'overflow-x') == 'auto') return;
|
||||
t = t.parentNode;
|
||||
}
|
||||
addEvent(document.body, 'mouseup', makeEditable);
|
||||
addEvent(document.body, 'mousemove', makeEditable);
|
||||
document.body.setAttribute('timeoutEdit', setTimeout(function() {
|
||||
removeEvent(document.body, 'mouseup', makeEditable);
|
||||
removeEvent(document.body, 'mousemove', makeEditable);
|
||||
var c = document.getElementById('content');
|
||||
c.contentEditable = true;
|
||||
c.style.borderColor = '#bfbfbf';
|
||||
setTimeout(function() {
|
||||
c.style.borderColor = '';
|
||||
}, 200);
|
||||
}, 1000));
|
||||
break;
|
||||
case 'mouseup':
|
||||
case 'mousemove':
|
||||
removeEvent(document.body, 'mouseup', makeEditable);
|
||||
removeEvent(document.body, 'mousemove', makeEditable);
|
||||
clearTimeout(document.body.getAttribute('timeoutEdit'));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Add makeEditable event listener
|
||||
var xint = setInterval(function() {
|
||||
if (!document.body) return;
|
||||
addEvent(document.body, 'mousedown', makeEditable);
|
||||
clearInterval(xint);
|
||||
if (!document.body) return;
|
||||
addEvent(document.body, 'mousedown', makeEditable);
|
||||
clearInterval(xint);
|
||||
}, 200);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue