diff --git a/CONTRIBUTING_DOCS.md b/CONTRIBUTING_DOCS.md
new file mode 100644
index 00000000..3c6907a6
--- /dev/null
+++ b/CONTRIBUTING_DOCS.md
@@ -0,0 +1,73 @@
+# Contributing to docs
+
+In order to translate the docs to your language, there are several steps to be done.
+
+## Preparing the files
+
+In the root folder, go to docs/_pages/docs
+
+Create a folder with your language and copy inside the following folders/files
+
+- /docs/_pages/`contribute`
+- /docs/_pages/docs/`00-quick-start`
+- /docs/_pages/docs/`01-best-practices`
+- /docs/_pages/docs/`02-features`
+- /docs/_pages/docs/`03-understand`
+- /docs/_pages/`home.md`
+- /docs/_pages/`stats.md`
+
+this is how it looks the spanish folder
+
+
+
+Then go to `/docs/_includes/` and make a copy of the improve and wip files, adding at the end of them `xxx_{your language}`
+
+ 
+
+Go to /docs/_data/ and make a copy of navigation.yml , adding at the end of them `xxx_{your language}`
+
+
+
+## Start translation
+
+Now go file by file in the folder you created and translate everything
+In the beginning of most folders you will find this structure
+
+
+
+Remember to change the title, the permalink and the sidebar title.
+This is how it looks once changed, in the permalink, add /{your language}/, and do the same in all links with this structure.
+
+
+
+In order to do this quicker and easier, its better to use a find and replace tool. Here is what it looks in VSCode.
+Go to the magnifying glass icon in the left and use this as a sample.
+
+
+
+You can replace all at once, or go one by one
+
+
+
+There will be some files that include at the bottom a include for the improve file or the **wip** file
+Use the same tool to change it quick in all files.
+
+
+
+
+
+***
+
+## Menus
+
+### Header Menu
+In order to trasnlate the menus, change all the titles and urls in the `/docs/_data/navigation_{your language}.yml` file you copied earlier. Then go to `/docs/_data/convertToJson.js` and change the filename const to your filename
+
+
+
+After that,from the root, run node `node .\docs\_data\converToJson.js`, and a json copy will be generated.
+
+### Sidebar
+In the `/docs/_includes/nav_list` file, add 2 lines changing the language, just like in the picture below. (change all ocurrences of **'es'**). Add a {% endif %} at the end.
+
+
diff --git a/docs/Gemfile b/docs/Gemfile
index fac5f747..7c3879de 100644
--- a/docs/Gemfile
+++ b/docs/Gemfile
@@ -13,10 +13,10 @@ gem "webrick"
gem "breakpoint"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
-gem "github-pages", "~> 228", group: :jekyll_plugins
+gem "github-pages", "~> 231", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
- gem "jekyll-feed", "~> 0.12"
+ gem "jekyll-feed", "~> 0.17"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index cdb7f932..4a085514 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -7,7 +7,7 @@ GEM
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
- addressable (2.8.4)
+ addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
breakpoint (2.7.1)
sass (~> 3.3)
@@ -15,10 +15,10 @@ GEM
coffee-script (2.4.1)
coffee-script-source
execjs
- coffee-script-source (1.11.1)
+ coffee-script-source (1.12.2)
colorator (1.1.0)
- commonmarker (0.23.9)
- concurrent-ruby (1.2.2)
+ commonmarker (0.23.10)
+ concurrent-ruby (1.2.3)
dnsruby (1.70.0)
simpleidn (~> 0.2.1)
em-websocket (0.5.3)
@@ -27,24 +27,24 @@ GEM
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
- execjs (2.8.1)
- faraday (2.7.4)
- faraday-net_http (>= 2.0, < 3.1)
- ruby2_keywords (>= 0.0.4)
- faraday-net_http (3.0.2)
- ffi (1.15.5)
+ execjs (2.9.1)
+ faraday (2.9.0)
+ faraday-net_http (>= 2.0, < 3.2)
+ faraday-net_http (3.1.0)
+ net-http
+ ffi (1.16.3)
forwardable-extended (2.6.0)
- gemoji (3.0.1)
- github-pages (228)
- github-pages-health-check (= 1.17.9)
- jekyll (= 3.9.3)
- jekyll-avatar (= 0.7.0)
- jekyll-coffeescript (= 1.1.1)
+ gemoji (4.1.0)
+ github-pages (231)
+ github-pages-health-check (= 1.18.2)
+ jekyll (= 3.9.5)
+ jekyll-avatar (= 0.8.0)
+ jekyll-coffeescript (= 1.2.2)
jekyll-commonmark-ghpages (= 0.4.0)
- jekyll-default-layout (= 0.1.4)
- jekyll-feed (= 0.15.1)
+ jekyll-default-layout (= 0.1.5)
+ jekyll-feed (= 0.17.0)
jekyll-gist (= 1.5.0)
- jekyll-github-metadata (= 2.13.0)
+ jekyll-github-metadata (= 2.16.1)
jekyll-include-cache (= 0.2.1)
jekyll-mentions (= 1.6.0)
jekyll-optional-front-matter (= 0.3.2)
@@ -71,28 +71,28 @@ GEM
jekyll-theme-tactile (= 0.2.0)
jekyll-theme-time-machine (= 0.2.0)
jekyll-titles-from-headings (= 0.5.3)
- jemoji (= 0.12.0)
- kramdown (= 2.3.2)
+ jemoji (= 0.13.0)
+ kramdown (= 2.4.0)
kramdown-parser-gfm (= 1.1.0)
liquid (= 4.0.4)
mercenary (~> 0.3)
minima (= 2.5.1)
nokogiri (>= 1.13.6, < 2.0)
- rouge (= 3.26.0)
+ rouge (= 3.30.0)
terminal-table (~> 1.4)
- github-pages-health-check (1.17.9)
+ github-pages-health-check (1.18.2)
addressable (~> 2.3)
dnsruby (~> 1.60)
- octokit (~> 4.0)
- public_suffix (>= 3.0, < 5.0)
+ octokit (>= 4, < 8)
+ public_suffix (>= 3.0, < 6.0)
typhoeus (~> 1.3)
html-pipeline (2.14.3)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.8.0)
- i18n (1.12.0)
+ i18n (1.14.1)
concurrent-ruby (~> 1.0)
- jekyll (3.9.3)
+ jekyll (3.9.5)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@@ -105,11 +105,11 @@ GEM
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
- jekyll-avatar (0.7.0)
+ jekyll-avatar (0.8.0)
jekyll (>= 3.0, < 5.0)
- jekyll-coffeescript (1.1.1)
+ jekyll-coffeescript (1.2.2)
coffee-script (~> 2.2)
- coffee-script-source (~> 1.11.1)
+ coffee-script-source (~> 1.12)
jekyll-commonmark (1.4.0)
commonmarker (~> 0.22)
jekyll-commonmark-ghpages (0.4.0)
@@ -117,15 +117,15 @@ GEM
jekyll (~> 3.9.0)
jekyll-commonmark (~> 1.4.0)
rouge (>= 2.0, < 5.0)
- jekyll-default-layout (0.1.4)
- jekyll (~> 3.0)
- jekyll-feed (0.15.1)
+ jekyll-default-layout (0.1.5)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
- jekyll-github-metadata (2.13.0)
+ jekyll-github-metadata (2.16.1)
jekyll (>= 3.4, < 5.0)
- octokit (~> 4.0, != 4.4.0)
+ octokit (>= 4, < 7, != 4.4.0)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-mentions (1.6.0)
@@ -196,16 +196,16 @@ GEM
jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
- jemoji (0.12.0)
- gemoji (~> 3.0)
+ jemoji (0.13.0)
+ gemoji (>= 3, < 5)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
- kramdown (2.3.2)
+ kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
- listen (3.8.0)
+ listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
@@ -220,22 +220,23 @@ GEM
jekyll-include-cache (~> 0.1)
jekyll-paginate (~> 1.1)
jekyll-sitemap (~> 1.3)
- minitest (5.18.0)
- nokogiri (1.14.3-x86_64-linux)
+ minitest (5.22.2)
+ net-http (0.4.1)
+ uri
+ nokogiri (1.16.2-x86_64-linux)
racc (~> 1.4)
octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.7)
- racc (1.6.2)
+ public_suffix (5.0.4)
+ racc (1.7.3)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
- rexml (3.2.5)
- rouge (3.26.0)
- ruby2_keywords (0.0.5)
+ rexml (3.2.6)
+ rouge (3.30.0)
rubyzip (2.3.2)
safe_yaml (1.0.5)
sass (3.7.4)
@@ -253,16 +254,17 @@ GEM
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
- typhoeus (1.4.0)
+ typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (1.2.10)
thread_safe (~> 0.1)
unf (0.1.4)
unf_ext
- unf_ext (0.0.8.2)
+ unf_ext (0.0.9.1)
unicode-display_width (1.8.0)
+ uri (0.13.0)
webrick (1.8.1)
- zeitwerk (2.6.7)
+ zeitwerk (2.6.13)
PLATFORMS
x86_64-linux
@@ -270,9 +272,9 @@ PLATFORMS
DEPENDENCIES
breakpoint
- github-pages (~> 228)
+ github-pages (~> 231)
http_parser.rb (~> 0.6.0)
- jekyll-feed (~> 0.12)
+ jekyll-feed (~> 0.17)
jekyll-include-cache
minimal-mistakes-jekyll
tzinfo (~> 1.2)
diff --git a/docs/_data/converToJson.js b/docs/_data/converToJson.js
new file mode 100644
index 00000000..7bce1262
--- /dev/null
+++ b/docs/_data/converToJson.js
@@ -0,0 +1,18 @@
+const fs = require('fs');
+const yaml = require('js-yaml');
+
+const fileName = 'navigation_{your languageD}';
+
+// Read YAML file
+const yamlData = fs.readFileSync(`./docs/_data/${fileName}.yml`, 'utf8');
+
+// Parse YAML to JavaScript object
+const jsonData = yaml.load(yamlData);
+
+// Convert JavaScript object to JSON
+const jsonContent = JSON.stringify(jsonData, null, 2);
+
+// Write JSON to file
+fs.writeFileSync(`./docs/header-menu-jsons/${fileName}.json`, jsonContent, 'utf8');
+
+console.log('Conversion completed successfully!');
diff --git a/docs/_data/navigation.yml b/docs/_data/navigation.yml
index 1f6a8267..9c07567c 100644
--- a/docs/_data/navigation.yml
+++ b/docs/_data/navigation.yml
@@ -122,4 +122,5 @@ contribute:
- title: '
Outreach'
url: /contribute/outreach/
- title: '
Donate'
- url: /contribute/donate/
\ No newline at end of file
+ url: /contribute/donate/
+
diff --git a/docs/_data/navigation_es.yml b/docs/_data/navigation_es.yml
new file mode 100644
index 00000000..d5d836ea
--- /dev/null
+++ b/docs/_data/navigation_es.yml
@@ -0,0 +1,121 @@
+main:
+ - title: ' Acceso Rápido'
+ url: /docs/es/quick-start/
+ - title: ' Tutorials'
+ url: /watch/en/
+ - title: ' Estadísticas'
+ url: /stats/es/
+ - title: ' Contribuir'
+ url: /contribute/es/
+ - title: ' Blog'
+ url: /blog/es/
+
+docs:
+ - title: '
Inicio Rápido'
+ url: /docs/es/quick-start/
+ children:
+ - title: '
Lightning Network'
+ url: /docs/es/lightning/
+ - title: '
La red TOR'
+ url: /docs/es/tor/
+ - title: '
Acceso'
+ url: /docs/es/access/
+
+ - title: '
Features'
+ url: /docs/es/features/
+ children:
+ - title: '
Privado'
+ url: /docs/es/private/
+ - title: '
Rápido'
+ url: /docs/es/fast/
+ - title: '
Seguro'
+ url: /docs/es/safe/
+
+ - title: '
Entender'
+ url: /docs/es/understand/
+ children:
+ - title: '
Flujo de comercio'
+ url: /docs/es/trade-pipeline/
+ - title: '
Robots'
+ url: /docs/es/robots/
+ - title: '
Premium'
+ url: /docs/es/premium/
+ - title: '
Fianzas'
+ url: /docs/es/bonds/
+ - title: '
Depósito de garantía'
+ url: /docs/es/escrow/
+ - title: '
Pagos On-Chain'
+ url: /docs/es/on-chain-payouts/
+ - title: '
Precios'
+ url: /docs/es/prices/
+ - title: '
Comisiones'
+ url: /docs/es/fees/
+ - title: '
Disputas'
+ url: /docs/es/disputes/
+ - title: '
Wallets'
+ url: /docs/es/wallets/
+ - title: '
Limites'
+ url: /docs/es/limits/
+ - title: '
Swaps'
+ url: /docs/es/swaps/
+ - title: '
Telegram'
+ url: /docs/es/telegram/
+ - title: '
API'
+ url: /docs/es/api/
+
+ - title: '
Mejores practicas'
+ url: /docs/es/best-practices/
+ children:
+ - title: '
Cifrado PGP'
+ url: /docs/es/pgp-encryption/
+ - title: '
Métodos de pago'
+ url: /docs/es/payment-methods/
+ - title: '
Wallets Proxy'
+ url: /docs/es/proxy-wallets/
+ - title: '
Canales Lightning'
+ url: /docs/es/channels/
+
+tutorial:
+ - title: '
Ver'
+ url: "/watch/en/"
+ children:
+ - title: '
English'
+ url: "/watch/en/"
+ - title: '
Español'
+ url: "/watch/es/"
+ - title: '
Deutsch'
+ url: "/watch/de/"
+ - title: '
Português'
+ url: "/watch/pt/"
+ - title: '
Français'
+ url: "/watch/fr/"
+ - title: '
Polski'
+ url: "/watch/pl/"
+ - title: '
Leer'
+ url: "/watch/en/"
+ children:
+ - title: '
English'
+ url: "/read/en/"
+ - title: '
Español'
+ url: "/read/es/"
+ - title: '
Deutsch'
+ url: "/read/de/"
+
+contribute:
+ - title: '
Contribuir'
+ url: /contribute/es/
+ children:
+ - title: '
Código'
+ url: /contribute/es/code/
+ - title: '
Traducciones'
+ url: /contribute/es/languages/
+ - title: '
Liquidez'
+ url: /contribute/es/liquidity/
+ - title: '
Guías'
+ url: /contribute/es/guides/
+ - title: '
Arte'
+ url: /contribute/es/art/
+ - title: '
Comparte'
+ url: /contribute/es/outreach/
+ - title: '
Dona'
+ url: /contribute/es/donate/
diff --git a/docs/_data/navigation_fr.yml b/docs/_data/navigation_fr.yml
new file mode 100644
index 00000000..0b354b59
--- /dev/null
+++ b/docs/_data/navigation_fr.yml
@@ -0,0 +1,126 @@
+main:
+ - title: ' Quick-Start'
+ url: /docs/fr/quick-start/
+ - title: ' Tutorials'
+ url: /watch/fr/
+ - title: ' Stats'
+ url: /stats/fr/
+ - title: ' Contribute'
+ url: /contribute/fr/
+ - title: ' Blog'
+ url: /blog/fr/
+
+docs:
+ - title: '
Quick Start'
+ url: /docs/fr/quick-start/
+ children:
+ - title: '
Lightning Network'
+ url: /docs/fr/lightning/
+ - title: '
TOR Network'
+ url: /docs/fr/tor/
+ - title: '
Access'
+ url: /docs/fr/access/
+
+ - title: '
Features'
+ url: /docs/fr/features/
+ children:
+ - title: '
Private'
+ url: /docs/fr/private/
+ - title: '
Fast'
+ url: /docs/fr/fast/
+ - title: '
Safe'
+ url: /docs/fr/safe/
+
+ - title: '
Understand'
+ url: /docs/fr/understand/
+ children:
+ - title: '
Trade Pipeline'
+ url: /docs/fr/trade-pipeline/
+ - title: '
Robots'
+ url: /docs/fr/robots/
+ - title: '
Premium'
+ url: /docs/fr/premium/
+ - title: '
Bonds'
+ url: /docs/fr/bonds/
+ - title: '
Trade Escrow'
+ url: /docs/fr/escrow/
+ - title: '
On-Chain Payouts'
+ url: /docs/fr/on-chain-payouts/
+ - title: '
Prices'
+ url: /docs/fr/prices/
+ - title: '
Fees'
+ url: /docs/fr/fees/
+ - title: '
Disputes'
+ url: /docs/fr/disputes/
+ - title: '
Wallets'
+ url: /docs/fr/wallets/
+ - title: '
Limits'
+ url: /docs/fr/limits/
+ - title: '
Swaps'
+ url: /docs/fr/swaps/
+ - title: '
Telegram'
+ url: /docs/fr/telegram/
+ - title: '
API'
+ url: /docs/fr/api/
+
+ - title: '
Best Practices'
+ url: /docs/fr/best-practices/
+ children:
+ - title: '
PGP Encryption'
+ url: /docs/fr/pgp-encryption/
+ - title: '
Payment Methods'
+ url: /docs/fr/payment-methods/
+ - title: '
Proxy Wallets'
+ url: /docs/fr/proxy-wallets/
+ - title: '
Lightning Channels'
+ url: /docs/fr/channels/
+
+tutorial:
+ - title: '
Watch'
+ url: "/watch/fr/"
+ children:
+ - title: '
English'
+ url: "/watch/en/"
+ - title: '
Español'
+ url: "/watch/es/"
+ - title: '
Deutsch'
+ url: "/watch/de/"
+ - title: '
Português'
+ url: "/watch/pt/"
+ - title: '
Français'
+ url: "/watch/fr/"
+ - title: '
Polski'
+ url: "/watch/pl/"
+ - title: '
Русский'
+ url: "/watch/ru/"
+ - title: '
Read'
+ url: "/watch/en/"
+ children:
+ - title: '
English'
+ url: "/read/en/"
+ - title: '
Español'
+ url: "/read/es/"
+ - title: '
Deutsch'
+ url: "/read/de/"
+ - title: '
Русский'
+ url: "/read/ru/"
+
+contribute:
+ - title: '
Contribute'
+ url: /contribute/fr/
+ children:
+ - title: '
Code'
+ url: /contribute/fr/code/
+ - title: '
Translations'
+ url: /contribute/fr/languages/
+ - title: '
Liquidity'
+ url: /contribute/fr/liquidity/
+ - title: '
Guides'
+ url: /contribute/fr/guides/
+ - title: '
Art'
+ url: /contribute/fr/art/
+ - title: '
Outreach'
+ url: /contribute/fr/outreach/
+ - title: '
Donate'
+ url: /contribute/fr/donate/
+
diff --git a/docs/_includes/improve_fr b/docs/_includes/improve_fr
new file mode 100644
index 00000000..7be844a1
--- /dev/null
+++ b/docs/_includes/improve_fr
@@ -0,0 +1,6 @@
+## You can help improve this page!
+
+Learn RoboSats is a joint effort of the RoboSats community. If you have used RoboSats before, you are already an expert! Help improve this documentation.
+
+**ProTip:** You can directly [edit this page ](https://github.com/RoboSats/robosats/blob/main/docs/{{page.src}}) and open a [Pull Request ](https://github.com/RoboSats/robosats/pulls). Your changes will show right here.
+{: .notice--primary}
diff --git a/docs/_includes/masthead.html b/docs/_includes/masthead.html
index d55112b0..55292846 100644
--- a/docs/_includes/masthead.html
+++ b/docs/_includes/masthead.html
@@ -7,17 +7,13 @@
{% unless logo_path == empty %}
{% endunless %}
-
+
{{ site.masthead_title | default: site.title }}
{% if site.subtitle %}{{ site.subtitle }}{% endif %}
-
- {%- for link in site.data.navigation.main -%}
-
- {%- endfor -%}
+
+
{% if site.search == true %}
+
+
+
+
diff --git a/docs/_includes/nav_list b/docs/_includes/nav_list
index a035a5bd..f7ddd3d3 100644
--- a/docs/_includes/nav_list
+++ b/docs/_includes/nav_list
@@ -1,4 +1,12 @@
+{% assign url = page.url %}
{% assign navigation = site.data.navigation[include.nav] %}
+{% if url contains "/es/" %}
+ {% assign navigation = site.data.navigation_es[include.nav] %}
+{% endif %}
+{% if url contains "/fr/" %}
+ {% assign navigation = site.data.navigation_fr[include.nav] %}
+{% endif %}
+