diff --git a/content/en/dogepedia.md b/content/en/dogepedia.md index a1500cb69..ffac0c3b5 100644 --- a/content/en/dogepedia.md +++ b/content/en/dogepedia.md @@ -20,6 +20,7 @@ The basics. Learn what Dogecoin is, and how it works. ### Wallets {#wallets} Your journey with Dogecoin might start here. A wallet application allows you to save and spend your Doge. +- [Wallet help wizard: which wallet is right for me?](/dogepedia/articles/choose-a-wallet-wizard) - [How do I get a wallet?](/dogepedia/articles/how-do-i-get-a-wallet) - [How do I backup my wallet?](/dogepedia/articles/how-to-backup-a-wallet) - [What are the benefits of a hardware wallet, and how to use it with Doge?](/dogepedia/articles/dogecoin-hardware-wallets) diff --git a/content/en/dogepedia/_index.md b/content/en/dogepedia/_index.md index a4a88bb02..79b0f48e0 100644 --- a/content/en/dogepedia/_index.md +++ b/content/en/dogepedia/_index.md @@ -30,6 +30,7 @@ The basics. Learn what Dogecoin is, and how it works. ### Wallets {#wallets} Your journey with Dogecoin might start here. A wallet application allows you to save and spend your Doge. +- [Wallet help wizard: which wallet is right for me?](/dogepedia/articles/choose-a-wallet-wizard) - [How do I get a wallet?](/dogepedia/articles/how-do-i-get-a-wallet) - [How do I backup my wallet?](/dogepedia/articles/how-to-backup-a-wallet) - [What are the benefits of a hardware wallet, and how to use it with Doge?](/dogepedia/articles/dogecoin-hardware-wallets) diff --git a/content/en/dogepedia/articles/choose-a-wallet-wizard.md b/content/en/dogepedia/articles/choose-a-wallet-wizard.md new file mode 100644 index 000000000..75669ba56 --- /dev/null +++ b/content/en/dogepedia/articles/choose-a-wallet-wizard.md @@ -0,0 +1,97 @@ ++++ +title = "Wallet help wizard: which Dogecoin wallet is right for me?" +date = "2026-07-11" +type = "article" + +[ author ] + name = "Dogecoin" ++++ + +Not sure which wallet to pick? Answer the questions below, then open the [wallets directory](/wallets) and use the filters (or badges) that match your answers. + +> **Disclaimer:** The Dogecoin Foundation does not audit or endorse wallets. Always download from official links, back up your keys, and start with a small test amount. + +## Quick path (most people) + +1. **Want something simple on your phone?** → Look for **Android / iOS** + **Self Custodial** + **New** user +2. **Long-term savings / larger amounts?** → Prefer **Hardware Wallet** + **Self Custodial** +3. **Need full verification / run your own node?** → **Dogecoin Core** (**Full Node**) +4. **Just want to tip on social?** → **Tipping BOT** (still learn custody basics) + +Deep dive: [How do I get a wallet?](/dogepedia/articles/how-do-i-get-a-wallet) · [What is a wallet?](/dogepedia/articles/what-is-a-wallet) + +--- + +## Q1 — Who holds the keys? + +| If you want… | Filter / badge | Notes | +|--------------|----------------|--------| +| **You** control keys (recommended for savings) | **Self Custodial** | You must back up the seed/keys | +| A company holds coins for you | **Custodial** | Convenient, but counterparty risk | + +If an exchange is holding your DOGE, you do not have a self-custodial wallet yet — withdraw when you can. + +## Q2 — How experienced are you? + +| Experience | Filter | Good starting points | +|------------|--------|----------------------| +| Brand new | **New** | Simple mobile self-custodial wallets | +| Comfortable with seeds, backups, addresses | **Experienced** | Hardware, full node, advanced multi-coin apps | + +## Q3 — Which device? + +Use the platform filters on the wallets page: + +- **Android** / **IOS** — mobile +- **Windows** / **MacOS** / **Linux** — desktop +- **Browser Wallet** — web apps (extra phishing caution) +- **Hardware Wallet** — offline-capable devices + +## Q4 — What will you do with DOGE? + +| Goal | Look for | Why | +|------|----------|-----| +| Everyday tips & small spends | Mobile self-custodial | Fast and portable | +| Hold for months/years | Hardware + offline backup | Smaller attack surface | +| Trade / swap to other assets | **Coin Swap** badge | Multi-asset apps with built-in swap UX | +| Merchant / developer rails | **API** or services like GigaWallet | Not always a “consumer wallet” | +| Social tipping bots | **Tipping BOT** | Custody model varies — read the bot docs | + +## Q5 — Extra features? + +On the wallets page **Features** pane: + +- **2FA** — extra login protection (app-level; not a substitute for seed security) +- **Import Wallet** — restore from seed / private key +- **Opensource** — public source code (still verify downloads) +- **MultiSig** — advanced shared custody +- **Full Node** — downloads the chain (Dogecoin Core) +- **Coin Swap** — in-app asset conversion + +## Decision tree (summary) + +``` +Start + ├─ Large amount or cold storage? ──► Hardware + Self Custodial + ├─ Only mobile, small amounts? ───► Android/iOS + Self Custodial + New + ├─ Want to verify everything? ────► Full Node (Dogecoin Core) + ├─ Need swaps / multi-asset? ─────► Coin Swap + Self Custodial + └─ Just tipping online? ──────────► Tipping BOT (then graduate to self-custody) +``` + +## Before you fund anything + +1. Download only from the official site or store link on [dogecoin.com/wallets](/wallets) +2. [Back up the wallet](/dogepedia/articles/how-to-backup-a-wallet) **before** depositing meaningful value +3. Send a **tiny test** transaction first +4. Never type your seed into a website or chat + +If something goes wrong: [Recover a lost wallet](/dogepedia/articles/recover-a-lost-wallet) + +## Next steps + +- Browse and filter: [All wallets](/wallets) +- Learn custody: [What is a wallet?](/dogepedia/articles/what-is-a-wallet) +- Move value: [Send and receive Dogecoin](/dogepedia/articles/send-and-receive-dogecoin) + +Much choice. Such responsibility. **Do Only Good Everyday.** diff --git a/content/en/wallets/AmmerWallet.md b/content/en/wallets/AmmerWallet.md index a48811c55..ef26823b6 100644 --- a/content/en/wallets/AmmerWallet.md +++ b/content/en/wallets/AmmerWallet.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "no" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/ArcticWallet.md b/content/en/wallets/ArcticWallet.md index e1d1e6001..718967451 100644 --- a/content/en/wallets/ArcticWallet.md +++ b/content/en/wallets/ArcticWallet.md @@ -1,39 +1,44 @@ ++++ +type = "wallet" + name = "Arctic Wallet" - order = “5” - active = "yes" - version = "0.9.13" - wallet_Image = "https://arcticwallet.io/favicons/favicon-196x196.png" - website_url = "https://arcticwallet.io" - git_url = "" +order = "5" +active = "yes" +version = "0.9.13" +wallet_Image = "https://arcticwallet.io/favicons/favicon-196x196.png" +website_url = "https://arcticwallet.io" +git_url = "" - download_i686_url = "https://arcticwallet.io/" - download_x86_64_url = "https://arcticwallet.io/" - download_win32_url = "https://arcticwallet.io/" - download_win64_url = "https://arcticwallet.io/" - download_MacOS_url = "https://arcticwallet.io/" - download_android_url = "https://play.google.com/store/apps/details?id=com.arcticmobile.app" - download_ios_url = "https://apps.apple.com/app/arctic-wallet-mobile/id1658699963" - browser_url = "" +download_i686_url = "https://arcticwallet.io/" +download_x86_64_url = "https://arcticwallet.io/" +download_win32_url = "https://arcticwallet.io/" +download_win64_url = "https://arcticwallet.io/" +download_MacOS_url = "https://arcticwallet.io/" +download_android_url = "https://play.google.com/store/apps/details?id=com.arcticmobile.app" +download_ios_url = "https://apps.apple.com/app/arctic-wallet-mobile/id1658699963" +browser_url = "" - # Wallet classification - # wow = Excelent - # sogood = Good - # suchwarning = Warning - classification = "wow" +# Wallet classification +# wow = Excellent +# sogood = Good +# suchwarning = Warning +classification = "wow" - # use yes or no to activate or not a type - type_new_user = "yes" - type_experienced_user = "no" +# use yes or no to activate or not a type +type_new_user = "yes" +type_experienced_user = "no" - type_self_custodial = "yes" - type_custodial = "no" +type_self_custodial = "yes" +type_custodial = "no" - type_2fa = “no” - type_full_node = "no" - type_import_wallet = "yes" - type_browser_wallet = "no" - type_hardware_wallet = "no" - type_multisig = "no" - type_opensource = "no" - type_api = "no" - +++ \ No newline at end of file +type_2fa = "no" +type_full_node = "no" +type_import_wallet = "yes" +type_browser_wallet = "no" +type_hardware_wallet = "no" +type_multisig = "no" +type_opensource = "no" +type_api = "no" +type_tipping_bot = "no" +type_coin_swap = "yes" ++++ diff --git a/content/en/wallets/BeehiveWallet.md b/content/en/wallets/BeehiveWallet.md new file mode 100644 index 000000000..a0a76181e --- /dev/null +++ b/content/en/wallets/BeehiveWallet.md @@ -0,0 +1,38 @@ ++++ +type = "wallet" + +name = "Beehive Wallet" +order = "21" +active = "yes" +version = "n/a" +wallet_Image = "" +website_url = "https://beehivewallet.link" +git_url = "" + +download_i686_url = "" +download_x86_64_url = "" +download_win32_url = "" +download_win64_url = "" +download_MacOS_url = "" +download_android_url = "https://play.google.com/store/apps/details?id=com.beehive.beehivemulti_coinwallet" +download_ios_url = "" +browser_url = "" + +# use yes or no to activate or not a type +type_new_user = "yes" +type_experienced_user = "no" + +type_self_custodial = "yes" +type_custodial = "no" + +type_2fa = "yes" +type_full_node = "no" +type_import_wallet = "yes" +type_browser_wallet = "no" +type_hardware_wallet = "no" +type_multisig = "no" +type_opensource = "no" +type_api = "no" +type_tipping_bot = "no" +type_coin_swap = "yes" ++++ diff --git a/content/en/wallets/BitPay.md b/content/en/wallets/BitPay.md index 23c8ff17c..e07f778b4 100644 --- a/content/en/wallets/BitPay.md +++ b/content/en/wallets/BitPay.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "no" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/CoinbaseWallet.md b/content/en/wallets/CoinbaseWallet.md index 9265aebfb..e0e59611c 100644 --- a/content/en/wallets/CoinbaseWallet.md +++ b/content/en/wallets/CoinbaseWallet.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "no" type_api = "yes" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/EdgeWallet.md b/content/en/wallets/EdgeWallet.md index b49b7642b..6e0e14810 100644 --- a/content/en/wallets/EdgeWallet.md +++ b/content/en/wallets/EdgeWallet.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "yes" type_api = "yes" type_tipping_bot = "no" +type_coin_swap = "yes" +++ diff --git a/content/en/wallets/GemWallet.md b/content/en/wallets/GemWallet.md index ac32e8c1f..adffa704f 100644 --- a/content/en/wallets/GemWallet.md +++ b/content/en/wallets/GemWallet.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "yes" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ diff --git a/content/en/wallets/Guarda.md b/content/en/wallets/Guarda.md index 622e8d7ed..3c6849f4a 100644 --- a/content/en/wallets/Guarda.md +++ b/content/en/wallets/Guarda.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "no" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/ShapeShift.md b/content/en/wallets/ShapeShift.md index 81bd210ed..54d21b53d 100644 --- a/content/en/wallets/ShapeShift.md +++ b/content/en/wallets/ShapeShift.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "yes" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/ThorWallet.md b/content/en/wallets/ThorWallet.md index dba7f463a..46b2b7a88 100644 --- a/content/en/wallets/ThorWallet.md +++ b/content/en/wallets/ThorWallet.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "no" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/TrustWallet.md b/content/en/wallets/TrustWallet.md index 3e5c7502a..faa412b6b 100644 --- a/content/en/wallets/TrustWallet.md +++ b/content/en/wallets/TrustWallet.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "yes" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/exodus.md b/content/en/wallets/exodus.md index 67b51a42c..0e8ec0dfd 100644 --- a/content/en/wallets/exodus.md +++ b/content/en/wallets/exodus.md @@ -34,4 +34,5 @@ type_multisig = "no" type_opensource = "no" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ \ No newline at end of file diff --git a/content/en/wallets/imToken.md b/content/en/wallets/imToken.md index cfc40e91d..3750fdcda 100644 --- a/content/en/wallets/imToken.md +++ b/content/en/wallets/imToken.md @@ -35,4 +35,5 @@ type_multisig = "no" type_opensource = "yes" type_api = "no" type_tipping_bot = "no" +type_coin_swap = "yes" +++ diff --git a/doc/how-to-translate-website.md b/doc/how-to-translate-website.md index 99e624533..c2578dd7a 100644 --- a/doc/how-to-translate-website.md +++ b/doc/how-to-translate-website.md @@ -1,87 +1,170 @@ # How To Translate Dogecoin Website -- [How To Translate Dogecoin Website](#how-to-translate-dogecoin-foundation-website) +- [How To Translate Dogecoin Website](#how-to-translate-dogecoin-website) + - [Overview](#overview) - [Apply for translation](#apply-for-translation) - [Get the code](#get-the-code) - [Checkout a new branch](#checkout-a-new-branch) - - [Command-line](#command-line) - - [GUI](#gui) - - [Markdown Editor](#markdown-editor) - - [Update config.toml](#update-configtoml) - - [Update langFlags.yaml](#update-langflagsyaml) - - [Create/Update translated-lang.toml](#createupdate-translated-langtoml) - - [Translation](#translation) + - [Register the language](#register-the-language) + - [UI strings (i18n)](#ui-strings-i18n) + - [Page content](#page-content) + - [Mark a language as complete](#mark-a-language-as-complete) - [Test translation](#test-translation) - [Pull Request](#pull-request) - - [PR Review](#pr-review) - - [Merge to main branch](#merge-to-main-branch) + - [Tips](#tips) + +## Overview + +Dogecoin.com is a **Hugo** multilingual site. A full translation usually needs: + +| Layer | Location | What it is | +|-------|----------|------------| +| Language registration | `config.toml` + `data/langFlags.yaml` | Enable the locale in Hugo + flag in the language switcher | +| UI chrome | `i18n/.toml` | Navbar, buttons, homepage partials (not Markdown pages) | +| Content | `content//…` | Dogepedia articles, wallet pages, how-tos (Markdown) | + +Start with **UI strings + homepage**, then expand Dogepedia over time. Partial translations are OK — the site shows a banner until `finish[translation]` is set to `yes` (see below). ## Apply for translation -* Apply translation access through Discord. +1. Join the Dogecoin Discord and say hello in the **website** channel. +2. Coordinate so two people are not translating the same language at once. +3. Prefer a GitHub account so you can open a Pull Request from a fork. ## Get the code -* Get the code by following the steps in '[How To Get Dogecoin Website](how-to-get-website.md) +Follow [How To Get Dogecoin Website](how-to-get-website.md) (fork + clone). ## Checkout a new branch -* Checkout a new branch for you local translation, eg. ```personal-lang-trans-branch```. +```bash +git checkout main +git pull upstream main # or origin, depending on your remotes +git checkout -b personal--translation +``` + +Example: `personal-hi-translation`. + +### GUI + +- GitHub Desktop: **Current Branch → New Branch** + +### Markdown editor + +Any mainstream Markdown editor works (VS Code, Typora, etc.). Keep front matter (`+++ … +++`) intact. + +## Register the language + +### 1. `config.toml` + +At the repo root, under `[languages]`, add a block for your language code (use BCP-47 style codes already used by the site: `zh-cn`, `pt-pt`, `ja`, …). + +Copy an existing language block (for example `[languages.en]` / menus) and: + +- Set `languageName`, `weight`, and `contentDir = "content/"` +- Duplicate **menu** entries under `[[languages..menu.main]]` and translate the `name` fields + +### 2. `data/langFlags.yaml` + +Add a mapping so the language switcher can show a flag: +```yaml +hi: in # language code → ISO flag code used by flag-icon CSS +``` + +Use the same pattern as the existing entries in that file. + +## UI strings (i18n) -### Command-line +UI chrome (headers, wallet section titles, buttons) lives in TOML files: ``` -git checkout -b personal-lang-trans-branch +i18n/en.toml # source of truth (English) +i18n/.toml # your translation ``` -### GUI +**Do not** create nested folders like `i18n/hi/…`. One file per language: `i18n/hi.toml`. + +Recommended workflow: + +```bash +cp i18n/en.toml i18n/.toml +``` + +Then translate the `other = "…"` values. Keep the **keys** (left side / section names) unchanged. + +Example key shape: -* Current Branch (main) -> New Branch -![](img/github-desktop-new-branch-1.png) -* Name the new branch -![](img/github-desktop-new-branch-2.png) +```toml +["wallets[title]"] +other = "Wallets" +``` -### Markdown Editor -* Any mainstrem markdown editor is suitable for processing the translation tasks. +## Page content -## Update config.toml +1. Copy English Markdown trees into your language directory: -* Open file '```config.toml```' at root path. -* Add according language (eg. translated-lang) in ```[languages]``` section. -* Add menu items of Home Page in your 'translated-lang' section (eg. ```zh-cn``` is ```[languages.zh-cn.menu]``` and following ```[[languages.zh-cn.menu.main]]```). +```bash +# Example: start with Dogepedia index + a few articles +mkdir -p content//dogepedia/articles +cp content/en/dogepedia.md content// +cp content/en/dogepedia/_index.md content//dogepedia/ +cp content/en/dogepedia/articles/what-is-dogecoin.md content//dogepedia/articles/ +``` -## Update langFlags.yaml +2. Translate body text. Keep: -* Open file '```data/langFlags.yaml```'. -* Add according language (eg. translated-lang) in ```langFlags.yaml```. +- Front matter keys (`title`, `type`, `date`, …) +- Internal links preferably as language-relative paths Hugo already understands +- Image paths that start with `/assets/…` (shared static assets) -## Create/Update translated-lang.toml +3. If `main` moves while you work: -* Create file if it does NOT exist '```i18n/translated-lang/```' (eg. '```i18n/zh-cn/```'). -* Update file if it does exist '```i18n/translated-lang/```' (eg. '```i18n/zh-cn/```'). +```bash +git fetch upstream +git merge upstream/main +# resolve conflicts, re-test +``` +## Mark a language as complete -## Translation +When the locale is ready for production (no “partial translation” banner): -* Copy the original english (markdown format) files from ```content/en/```, (eg. ```dogepedia.md```) and paste as the to-be-translated-files (eg. ```content/translated-lang/dogepedia.md```), translate them then. -* If there are some updates on the ```main``` branch during your translating process, you should merge them to your personal-trans-branch first (resolve conflicts as well), to make sure your translation is update-to-date. +In `i18n/.toml` set: + +```toml +["finish[translation]"] +other = "yes" +``` + +Until then, leave it unset or not `yes` so visitors see the help-wanted banner. ## Test translation -* Run the website locally by following the steps in [How To Run Dogecoin Website](how-to-run-website.md) to test the translation, make sure it will work as expected. +Follow [How To Run Dogecoin Website](how-to-run-website.md), then open: -## Pull Request +- `http://localhost:1313/` (default language) +- `http://localhost:1313//` for your language -* Submit changes as PR, then mention your PR in the channel ```website``` on Discord. +Check: +- Language switcher shows your flag and label +- Homepage strings are translated +- At least one Dogepedia page renders without missing layouts +- Mobile: language dropdown does not break the header + +## Pull Request -## PR Review +1. Push your branch to **your fork**. +2. Open a PR against `dogecoinfoundation/dogecoin.com` **main**. +3. Title like: `i18n: translation (UI + Dogepedia start)`. +4. Mention the PR in Discord **#website**. -* It's ideal to do ```peer review``` if there are at least TWO peers who are familiar with the same language translations. -* If ONLY the translator is familiar with the translated laguage, then there should be at least another TWO reviewer to be requested to do the review task. +## Tips -## Merge to main branch +- Prefer **small PRs** (UI first, then content packs) over one huge dump. +- Do not machine-translate and ship unreviewed — community quality matters. +- Wallet pages under `content//wallets/` are optional; English wallet directory is often enough at first. +- Questions? Discord **#website** or open a draft PR early for feedback. -* Once the review PASS, then the ORIGINAL translator should do the ```merge``` action from ```personal-lang-trans-branch``` to ```main``` branch. -* Remember to resolve conflict if there happens. \ No newline at end of file +Much wow. Such multilingual. **Do Only Good Everyday.** diff --git a/themes/hello-friend-ng/layouts/wallets/list.html b/themes/hello-friend-ng/layouts/wallets/list.html index fd8459bdc..6d076b32b 100644 --- a/themes/hello-friend-ng/layouts/wallets/list.html +++ b/themes/hello-friend-ng/layouts/wallets/list.html @@ -380,6 +380,15 @@ } } }, + { + label: 'Coin Swap', + value: function(rowData, rowIdx) { + if (rowData[5].match(/type_coin_swap.*/)) { + return rowData[5]; + } + } + }, + { label: 'API', value: function(rowData, rowIdx) { @@ -495,6 +504,7 @@

{{ .Title }}

{{ if eq .Params.type_opensource "yes" }}type_opensource{{ end }} {{ if eq .Params.type_api "yes" }}type_api{{ end }} {{ if eq .Params.type_tipping_bot "yes" }}type_tipping_bot{{ end }} + {{ if eq .Params.type_coin_swap "yes" }}type_coin_swap{{ end }} {{ if eq .Params.type_self_custodial "yes" }}Self Custodial{{ end }} @@ -506,6 +516,7 @@

{{ .Title }}

{{ if eq .Params.type_multisig "yes" }}Multisig{{ end }} {{ if eq .Params.type_opensource "yes" }}Opensource{{ end }} {{ if eq .Params.type_api "yes" }}API{{ end }} + {{ if eq .Params.type_coin_swap "yes" }}Coin Swap{{ end }} {{ if eq .Params.type_hardware_wallet "yes" }}Hardware Wallet{{ end }} {{ if eq .Params.type_browser_wallet "yes" }}Browser Wallet{{ end }}