Migrate to Dactyl v0.10 locale tools

This commit is contained in:
mDuo13
2020-05-12 17:59:23 -07:00
parent 8417c9ee0b
commit 4a73b01cdf
14 changed files with 886 additions and 225 deletions

View File

@@ -18,6 +18,7 @@ To build the site locally:
For more details, see the [contribution guidelines](CONTRIBUTING.md).
## Domain Verification Checker
If you make changes to the [Domain Verification Checker](https://xrpl.org/validator-domain-verifier.html) tool and edit the domain-verifier-checker.js file, you will need to do the following:
@@ -35,3 +36,70 @@ If you make changes to the [Domain Verification Checker](https://xrpl.org/valida
cd ../..
dactyl_build -t en
## Locale Strings
The templates can contain strings that are intended to be translated. These strings are marked off with `{% trans %}` and `{% endtrans %}` tags. You can't have any Jinja block control structures in these tags, but you can have some HTML markup and some basic Jinja variable-printing logic. See the [Jinja Documentation](https://jinja.palletsprojects.com/en/2.11.x/templates/#i18n-in-templates) for what's possible.
If you make changes to these strings, or want to add or update a translation, you'll need to do some extra steps to manage the locale files. These steps require the [Babel](http://babel.pocoo.org/) (`pybabel`) commandline utility. To install it:
```sh
sudo pip3 install Babel
```
You don't need Babel to build and view the site otherwise.
### Add a language
This repo has English (en) and Japanese (ja) locales set up already. To add a language (do this from the repo top dir):
```sh
$ pybabel init -l ja -i ./locale/messages.pot -o ./locale/ja/LC_MESSAGES/messages.po
```
Instead of `ja` (in two places in the above line!!) use the locale code for the language you plan to add. There's no exhaustive, definitive list, but [this list of locale codes](https://www.science.co.il/language/Locale-codes.php) is a good starting place.
This creates a "PO" file (`./locale/ja/LC_MESSAGES/messages.po`) with empty translations for the strings in the templates, based on the "PO Template" file (`./locale/messages.pot`).
To actually add translations for strings, you need to edit the new PO file for this translation. You can edit the PO file file with a text editor, or use a more advanced tool if you're a pro. Don't change the `msgid` values, _do_ change the `msgstr` values.
When you're done translating, [compile the PO files](#compile-strings).
### Update Strings
If there are new or updated `{% trans %}` tags in the templates, first use this command to extract them:
```sh
$ pybabel extract -F ./locale/babel.cfg -o ./locale/messages.pot ./
```
Then, update _every_ language's `.po` files with the list of strings, as follows:
```sh
$ pybabel update -l en -d ./locale/ -i ./locale/messages.pot
```
The above example is for English (`-l en`). **Repeat for each language code.**
Now edit the PO files (for example, `locale/ja/LC_MESSAGES/messages.po`) to add translations for each newly-added string. Again, **repeat for each language.**
If you only want to change an existing translation for a given string that hasn't changed in the original, you can skip straight to editing the PO files without running any `update` or `extract` commands.
After you've edited all the PO files, be sure to [compile them](#compile-strings).
***TODO: I don't know what happens if you skip a language or don't translate the new strings.***
### Compile Strings
Whether you added a language, added new strings, or tweaked an existing translation, you must compile the PO files (text) to MO files (binary) to get Dactyl to use them.
To compile all PO files:
```sh
$ pybabel compile -f -d ./locale/
```
If you added a new language for the first time, you need to make sure its target definition (in the `dactyl-config.yml` file) has the MO file in the `locale_file` field.
After that, next time you build the site using Dactyl it should pull the updated translations!

View File

@@ -68,145 +68,14 @@ targets:
# Override them with --vars to change which fork/branch to edit.
github_forkurl: https://github.com/ripple/xrpl-dev-portal
github_branch: master
strings:
blog: "Blog"
search: "Search site..."
bc_home: "Home"
tl_banner:
head: "Sorry, this page is not available in your language."
body: "We are making an effort to offer the XRP Ledger Dev Portal in a variety of languages, but not all pages are available in all languages. If you'd like to help, <a href=\"https://github.com/ripple/xrpl-dev-portal/blob/master/CONTRIBUTING.md\">please contribute!</a>"
pagetoc: "In this document"
footer:
ripple:
careers: "Ripple Careers"
github: "Ripple on GitHub"
xrp_resources: "XRP Resources"
license: "License"
to_top:
short: "Top"
long: "Jump to top of page"
github_edit: "Edit"
home:
intro:
head: "Powering the Internet of Value."
body1: "The <a href=\"#xrp_ledger_intro\">XRP Ledger</a> is open-source technology that anyone can use."
body2: "Use the tools and information provided here to integrate with and contribute to the open-source platform."
subhead: "Want more?"
sub_body: "Get updates about XRP Ledger webinars, releases, and documentation!"
cta: "Sign up!"
cards_1:
learn:
head: "Learn How It Works"
about_xrp: "About XRP"
cta: "All Concepts"
read_docs:
head: "Read Documentation"
full_doc_index: "Full Doc Index"
cta: "All Docs"
explore:
head: "Explore the XRP Ledger"
blurb: "Use the XRPL Explorer to view a stream of ledger activity and see validator statuses."
cta: "Go to the Explorer"
what_is_xrpl:
head: "What is the XRP Ledger?"
body_1: "The XRP Ledger is a decentralized cryptographic ledger, powered by a network of peer-to-peer servers. It is the home of XRP, a digital asset designed to bridge the many different currencies in use worldwide."
digital_asset:
head: "The Digital Asset for Payments"
url: "xrp-ledger-overview.html#the-digital-asset-for-payments"
censorship_resistant:
head: "Censorship-Resistant Transaction Processing"
url: "xrp-ledger-overview.html#censorship-resistant-transaction-processing"
fast_algorithm:
head: "Fast, Efficient Consensus Algorithm"
url: "xrp-ledger-overview.html#fast-efficient-consensus-algorithm"
finite_xrp:
head: "Finite XRP Supply"
url: "xrp-ledger-overview.html#finite-xrp-supply"
responsible_governance:
head: "Responsible Software Governance"
url: "xrp-ledger-overview.html#responsible-software-governance"
secure_crypto:
head: "Secure, Adaptable Cryptography"
url: "xrp-ledger-overview.html#secure-adaptable-cryptography"
smart_contracts:
head: "Modern Features for Smart Contracts"
url: "xrp-ledger-overview.html#modern-features-for-smart-contracts"
decentralized_exchange:
head: "On-Ledger Decentralized Exchange"
url: "xrp-ledger-overview.html#on-ledger-decentralized-exchange"
locale_file: locale/en/LC_MESSAGES/messages.mo
- name: ja
lang: ja
display_name: XRP Ledger Dev Portal (日本語)
github_forkurl: https://github.com/ripple/xrpl-dev-portal
github_branch: master
strings:
blog: "ブログ"
search: "サイトを検索"
bc_home: "ホーム"
tl_banner:
head: "も仕分けありませんがこのページは日本語では入手不可" #TODO: check translation
body: "XRP Ledger Dev Portalをさまざまな言語で提供するよう努力していますが、すべてのページがすべての言語で利用できるわけではありません。助けたいと思うなら、<a href=\"https://github.com/ripple/xrpl-dev-portal#contributing\">提供して下さい!</a>" #TODO: check translation & have a real link
pagetoc: "目次"
footer:
ripple:
careers: "Ripple 採用情報"
github: "GitHubでRipple"
xrp_resources: "XRP リソース"
license: "ライセンス"
to_top:
short: "先頭へ"
long: "このページの先頭へ"
github_edit: "Edit" #TODO:translate? (This is the "Edit" button that takes you to the page on GitHub where you can edit the current file and contribute your changes back.)
home: # Text from xrpl.org/index.html
intro:
head: "価値のインターネットをパワーする。"
body1: "<a href=\"#xrp_ledger_intro\">XRP Ledger</a>は誰でもが使い得るオープンソース技術。"
body2: "このツールと情報でXRPのオープンソースプラットフォームを統合して開発を提供します。" #TODO:check translation
subhead: "Want more?" #TODO:translate
sub_body: "Get updates about XRP Ledger webinars, releases, and documentation!" #TODO:translate
cta: "Sign up!" #TODO:translate
cards_1:
learn:
head: "XRP技術を理解する"
about_xrp: "XRPについて"
cta: "全コンセプト"
read_docs:
head: "ドキュメントを読む"
full_doc_index: "全ドキュメント目次"
cta: "全ドキュメント"
explore:
head: "XRP Ledgerを探る"
blurb: "XRP Ledger エクスプローラを使ってレジャーの動き、バリデータのステータスを見る。" #TODO:check translation
cta: "XRP Ledger エクスプローラへ"
what_is_xrpl:
head: "XRP Ledgerとは何"
body_1: "XRP Ledgerは、ピアツーピア・サーバーのネットワーク機能を備えた分散型の暗号台帳です。XRP LedgerはXRPの土台となるものであり、世界中で使用されている様々な通貨の橋渡しをするために設計されたデジタル資産です。"
digital_asset:
head: "決済のためのデジタル資産"
url: "xrp-ledger-overview.html#決済のためのデジタル資産"
censorship_resistant:
head: "耐検閲性のある取引処理"
url: "xrp-ledger-overview.html#耐検閲性のある取引処理"
fast_algorithm:
head: "高速で効率的なConsensusアルゴリズム"
url: "xrp-ledger-overview.html#高速で効率的なconsensusアルゴリズム"
finite_xrp:
head: "限定されたXRP供給量"
url: "xrp-ledger-overview.html#限定されたxrp供給量"
responsible_governance:
head: "責任あるソフトウェア管理"
url: "xrp-ledger-overview.html#責任あるソフトウェア管理"
secure_crypto:
head: "安全で適応性のある暗号技術"
url: "xrp-ledger-overview.html#安全で適応性のある暗号技術"
smart_contracts:
head: "スマートコントラクト用の最新機能"
url: "xrp-ledger-overview.html#スマートコントラクト用の最新機能"
decentralized_exchange:
head: "台帳上の分散型取引所"
url: "xrp-ledger-overview.html#台帳上の分散型取引所"
locale_file: locale/ja/LC_MESSAGES/messages.mo
link_subs:
# Fix 2 links from untranslated send-xrp.html:
"accounts.html#creating-accounts": "accounts.html#アカウントの作成"
@@ -296,24 +165,6 @@ targets:
github_forkurl: https://github.com/ripple/xrpl-dev-portal
github_branch: master
no_cover: true
strings:
blog: "Blog"
search: "Search site..."
bc_home: "Home"
tl_banner:
head: "Sorry, this page is not available in your language."
body: "We are making an effort to offer the XRP Ledger Dev Portal in a variety of languages, but not all pages are available in all languages. If you'd like to help, <a href=\"https://github.com/ripple/xrpl-dev-portal/blob/master/CONTRIBUTING.md\">please contribute!</a>"
pagetoc: "In this document"
footer:
ripple:
careers: "Ripple Careers"
github: "Ripple on GitHub"
xrp_resources: "XRP Resources"
license: "License"
to_top:
short: "Top"
long: "Jump to top of page"
github_edit: "Edit"
# Data API target for porting changes to the README in the upstream repo
# Intended for use in markdown (--md) mode.
@@ -325,24 +176,6 @@ targets:
no_cover: True
link_re_subs:
"([\\w-]+\\.html)": https://xrpl.org/\1
strings:
blog: "Blog"
search: "Search site..."
bc_home: "Home"
tl_banner:
head: "Sorry, this page is not available in your language."
body: "We are making an effort to offer the XRP Ledger Dev Portal in a variety of languages, but not all pages are available in all languages. If you'd like to help, <a href=\"https://github.com/ripple/xrpl-dev-portal/blob/master/CONTRIBUTING.md\">please contribute!</a>"
pagetoc: "In this document"
footer:
ripple:
careers: "Ripple Careers"
github: "Ripple on GitHub"
xrp_resources: "XRP Resources"
license: "License"
to_top:
short: "Top"
long: "Jump to top of page"
github_edit: "Edit"
pages:

5
locale/babel.cfg Normal file
View File

@@ -0,0 +1,5 @@
# PyBabel is for extracting strings from templates
[jinja2: **/tool/template-**.html]
encoding = utf-8
[extractors]
jinja2 = jinja2.ext:babel_extract

Binary file not shown.

View File

@@ -0,0 +1,251 @@
# English translations for XRPL.org.
# Copyright (C) 2020 XRP Ledger Project
# This file is distributed under the same license as the XRPL.org project.
# Rome Reginelli <rome@ripple.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: XRPL.org v0.0\n"
"Report-Msgid-Bugs-To: docs@ripple.com\n"
"POT-Creation-Date: 2020-05-12 16:30-0700\n"
"PO-Revision-Date: 2020-05-12 15:25-0700\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
#: tool/template-base.html:71
msgid "Blog"
msgstr "Blog"
#: tool/template-base.html:77 tool/template-base.html:78
msgid "Search site..."
msgstr "Search site..."
#: tool/template-breadcrumbs.html:3
msgid "Home"
msgstr ""
#: tool/template-doc.html:27
msgid "Sorry, this page is not available in your language."
msgstr ""
#: tool/template-doc.html:28
msgid ""
"We are making an effort to offer the XRP Ledger Dev Portal in a variety "
"of languages, but not all pages are available in all languages. If you'd "
"like to help, <a href=\"https://github.com/ripple/xrpl-dev-"
"portal/blob/master/CONTRIBUTING.md\">please contribute!</a>"
msgstr ""
# Table of contents
#: tool/template-doc.html:40
msgid "In this document"
msgstr "In this document"
#: tool/template-footer.html:32
msgid "Ripple Careers"
msgstr "Ripple Careers"
#: tool/template-footer.html:33
msgid "Ripple on GitHub"
msgstr "Ripple on GitHub"
#: tool/template-footer.html:34
msgid "XRP Resources"
msgstr "XRP Resources"
#: tool/template-footer.html:61
msgid "License"
msgstr "License"
#: tool/template-footer.html:68
msgid "Jump to top of page"
msgstr "Jump to top of page"
#: tool/template-footer.html:68
msgid "Top"
msgstr "Top"
# Link to edit this page on GitHub
#: tool/template-github-edit.html:26
msgid "Edit"
msgstr "Edit"
#: tool/template-home.html:22
msgid "Powering the Internet of Value."
msgstr ""
#: tool/template-home.html:24
msgid ""
"The <a href=\"#xrp_ledger_intro\">XRP Ledger</a> is open-source "
"technology that anyone can use."
msgstr ""
#: tool/template-home.html:25
msgid ""
"Use the tools and information provided here to integrate with and "
"contribute to the open-source platform."
msgstr ""
#: tool/template-home.html:26
msgid "Want more?"
msgstr ""
#: tool/template-home.html:27
msgid "Get updates about XRP Ledger webinars, releases, and documentation!"
msgstr ""
#: tool/template-home.html:29
msgid "Sign up!"
msgstr ""
#: tool/template-home.html:50
msgid "Learn How It Works"
msgstr ""
#: tool/template-home.html:56
msgid "About XRP"
msgstr ""
#: tool/template-home.html:63
msgid "All Concepts"
msgstr ""
#: tool/template-home.html:70
msgid "Read Documentation"
msgstr ""
#: tool/template-home.html:78
msgid "Full Doc Index"
msgstr ""
#: tool/template-home.html:83
msgid "All Docs"
msgstr ""
#: tool/template-home.html:90
msgid "Explore the XRP Ledger"
msgstr ""
#: tool/template-home.html:93
msgid ""
"Use the XRPL Explorer to view a stream of ledger activity and see "
"validator statuses."
msgstr ""
#: tool/template-home.html:97
msgid "Go to the Explorer"
msgstr ""
#: tool/template-home.html:125
msgid "What is the XRP Ledger?"
msgstr ""
#: tool/template-home.html:128
msgid ""
"The XRP Ledger is a decentralized cryptographic ledger, powered by a "
"network of peer-to-peer servers. It is the home of XRP, a digital asset "
"designed to bridge the many different currencies in use worldwide."
msgstr ""
#: tool/template-home.html:132
msgid "xrp-ledger-overview.html#the-digital-asset-for-payments"
msgstr ""
#: tool/template-home.html:133
msgid "(digital asset icon)"
msgstr ""
#: tool/template-home.html:134
msgid "The Digital Asset for Payments"
msgstr ""
#: tool/template-home.html:138
msgid "xrp-ledger-overview.html#censorship-resistant-transaction-processing"
msgstr ""
#: tool/template-home.html:139
msgid "(censorship resistance icon)"
msgstr ""
#: tool/template-home.html:140
msgid "Censorship-Resistant Transaction Processing"
msgstr ""
#: tool/template-home.html:144
msgid "xrp-ledger-overview.html#fast-efficient-consensus-algorithm"
msgstr ""
#: tool/template-home.html:145
msgid "(consensus algorithm icon)"
msgstr ""
#: tool/template-home.html:146
msgid "Fast, Efficient Consensus Algorithm"
msgstr ""
#: tool/template-home.html:150
msgid "xrp-ledger-overview.html#finite-xrp-supply"
msgstr ""
#: tool/template-home.html:151
msgid "(xrp supply icon)"
msgstr ""
#: tool/template-home.html:152
msgid "Finite XRP Supply"
msgstr ""
#: tool/template-home.html:156
msgid "xrp-ledger-overview.html#responsible-software-governance"
msgstr ""
#: tool/template-home.html:157
msgid "(governance icon)"
msgstr ""
#: tool/template-home.html:158
msgid "Responsible Software Governance"
msgstr ""
#: tool/template-home.html:162
msgid "xrp-ledger-overview.html#secure-adaptable-cryptography"
msgstr ""
#: tool/template-home.html:163
msgid "(cryptography icon)"
msgstr ""
#: tool/template-home.html:164
msgid "Secure, Adaptable Cryptography"
msgstr ""
#: tool/template-home.html:168
msgid "xrp-ledger-overview.html#modern-features-for-smart-contracts"
msgstr ""
#: tool/template-home.html:169
msgid "(smart contracts icon)"
msgstr ""
#: tool/template-home.html:170
msgid "Modern Features for Smart Contracts"
msgstr ""
#: tool/template-home.html:174
msgid "xrp-ledger-overview.html#on-ledger-decentralized-exchange"
msgstr ""
#: tool/template-home.html:175
msgid "(decentralized exchange icon)"
msgstr ""
#: tool/template-home.html:176
msgid "On-Ledger Decentralized Exchange"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,258 @@
# Japanese translations for XRPL.org.
# Copyright (C) 2020 XRP Ledger Project
# This file is distributed under the same license as the XRPL.org project.
# Rome Reginelli <rome@ripple.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: XRPL.org v0.0\n"
"Report-Msgid-Bugs-To: docs@ripple.com\n"
"POT-Creation-Date: 2020-05-12 16:30-0700\n"
"PO-Revision-Date: 2020-05-12 15:25-0700\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ja\n"
"Language-Team: ja <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
#: tool/template-base.html:71
msgid "Blog"
msgstr "ブログ"
#: tool/template-base.html:77 tool/template-base.html:78
msgid "Search site..."
msgstr "サイトを検索"
#: tool/template-breadcrumbs.html:3
msgid "Home"
msgstr "ホーム"
#: tool/template-doc.html:27
msgid "Sorry, this page is not available in your language."
msgstr "も仕分けありませんがこのページは日本語では入手不可"
#: tool/template-doc.html:28
msgid ""
"We are making an effort to offer the XRP Ledger Dev Portal in a variety "
"of languages, but not all pages are available in all languages. If you'd "
"like to help, <a href=\"https://github.com/ripple/xrpl-dev-"
"portal/blob/master/CONTRIBUTING.md\">please contribute!</a>"
msgstr ""
"XRP Ledger Dev Portalをさまざまな言語で提供するよう努力していますが、すべてのページがすべて"
"の言語で利用できるわけではありません。助けたいと思うなら"
"<a href=\"https://github.com/ripple/xrpl-dev-portal#contributing\">"
"提供して下さい!</a>"
# Table of contents
#: tool/template-doc.html:40
msgid "In this document"
msgstr "目次"
#: tool/template-footer.html:32
msgid "Ripple Careers"
msgstr "Ripple 採用情報"
#: tool/template-footer.html:33
msgid "Ripple on GitHub"
msgstr "GitHubでRipple"
#: tool/template-footer.html:34
msgid "XRP Resources"
msgstr "XRP リソース"
#: tool/template-footer.html:61
msgid "License"
msgstr "ライセンス"
#: tool/template-footer.html:68
msgid "Jump to top of page"
msgstr "このページの先頭へ"
#: tool/template-footer.html:68
msgid "Top"
msgstr "先頭へ"
# Link to edit this page on GitHub
#: tool/template-github-edit.html:26
msgid "Edit"
msgstr "Edit"
#: tool/template-home.html:22
msgid "Powering the Internet of Value."
msgstr "価値のインターネットをパワーする。"
#: tool/template-home.html:24
msgid ""
"The <a href=\"#xrp_ledger_intro\">XRP Ledger</a> is open-source "
"technology that anyone can use."
msgstr ""
"<a href=\"#xrp_ledger_intro\">XRP Ledger</a>は誰でもが使い得るオープンソース技術。"
#: tool/template-home.html:25
msgid ""
"Use the tools and information provided here to integrate with and "
"contribute to the open-source platform."
msgstr "このツールと情報でXRPのオープンソースプラットフォームを統合して開発を提供します。"
#: tool/template-home.html:26
msgid "Want more?"
msgstr ""#TODO
#: tool/template-home.html:27
msgid "Get updates about XRP Ledger webinars, releases, and documentation!"
msgstr ""#TODO
#: tool/template-home.html:29
msgid "Sign up!"
msgstr ""#TODO
#: tool/template-home.html:50
msgid "Learn How It Works"
msgstr "XRP技術を理解する"
#: tool/template-home.html:56
msgid "About XRP"
msgstr "XRPについて"
#: tool/template-home.html:63
msgid "All Concepts"
msgstr "全コンセプト"
#: tool/template-home.html:70
msgid "Read Documentation"
msgstr "ドキュメントを読む"
#: tool/template-home.html:78
msgid "Full Doc Index"
msgstr "全ドキュメント目次"
#: tool/template-home.html:83
msgid "All Docs"
msgstr "全ドキュメント"
#: tool/template-home.html:90
msgid "Explore the XRP Ledger"
msgstr "XRP Ledgerを探る"
#: tool/template-home.html:93
msgid ""
"Use the XRPL Explorer to view a stream of ledger activity and see "
"validator statuses."
msgstr "XRP Ledger エクスプローラを使ってレジャーの動き、バリデータのステータスを見る。"
#: tool/template-home.html:97
msgid "Go to the Explorer"
msgstr "XRP Ledger エクスプローラへ"
#: tool/template-home.html:125
msgid "What is the XRP Ledger?"
msgstr "XRP Ledgerとは何"
#: tool/template-home.html:128
msgid ""
"The XRP Ledger is a decentralized cryptographic ledger, powered by a "
"network of peer-to-peer servers. It is the home of XRP, a digital asset "
"designed to bridge the many different currencies in use worldwide."
msgstr ""
"XRP Ledgerは、ピアツーピア・サーバーのネットワーク機能を備えた分散型の暗号台帳です。"
"XRP LedgerはXRPの土台となるものであり、世界中で使用されている様々な通貨の橋渡しをするために"
"設計されたデジタル資産です。"
#: tool/template-home.html:132
msgid "xrp-ledger-overview.html#the-digital-asset-for-payments"
msgstr "xrp-ledger-overview.html#決済のためのデジタル資産"
#: tool/template-home.html:133
msgid "(digital asset icon)"
msgstr "(デジタル資産アイコン)"
#: tool/template-home.html:134
msgid "The Digital Asset for Payments"
msgstr "決済のためのデジタル資産"
#: tool/template-home.html:138
msgid "xrp-ledger-overview.html#censorship-resistant-transaction-processing"
msgstr "xrp-ledger-overview.html#耐検閲性のある取引処理"
#: tool/template-home.html:139
msgid "(censorship resistance icon)"
msgstr "(耐検閲性アイコン)"
#: tool/template-home.html:140
msgid "Censorship-Resistant Transaction Processing"
msgstr "耐検閲性のある取引処理"
#: tool/template-home.html:144
msgid "xrp-ledger-overview.html#fast-efficient-consensus-algorithm"
msgstr "xrp-ledger-overview.html#高速で効率的なconsensusアルゴリズム"
#: tool/template-home.html:145
msgid "(consensus algorithm icon)"
msgstr "(Consensusアルゴリズムアイコン)"
#: tool/template-home.html:146
msgid "Fast, Efficient Consensus Algorithm"
msgstr "高速で効率的なConsensusアルゴリズム"
#: tool/template-home.html:150
msgid "xrp-ledger-overview.html#finite-xrp-supply"
msgstr "xrp-ledger-overview.html#限定されたxrp供給量"
#: tool/template-home.html:151
msgid "(xrp supply icon)"
msgstr "(XRP供給量アイコン)"
#: tool/template-home.html:152
msgid "Finite XRP Supply"
msgstr "限定されたXRP供給量"
#: tool/template-home.html:156
msgid "xrp-ledger-overview.html#responsible-software-governance"
msgstr "xrp-ledger-overview.html#責任あるソフトウェア管理"
#: tool/template-home.html:157
msgid "(governance icon)"
msgstr "(管理アイコン)"
#: tool/template-home.html:158
msgid "Responsible Software Governance"
msgstr "責任あるソフトウェア管理"
#: tool/template-home.html:162
msgid "xrp-ledger-overview.html#secure-adaptable-cryptography"
msgstr "xrp-ledger-overview.html#安全で適応性のある暗号技術"
#: tool/template-home.html:163
msgid "(cryptography icon)"
msgstr "(暗号技術アイコン)"
#: tool/template-home.html:164
msgid "Secure, Adaptable Cryptography"
msgstr "安全で適応性のある暗号技術"
#: tool/template-home.html:168
msgid "xrp-ledger-overview.html#modern-features-for-smart-contracts"
msgstr "xrp-ledger-overview.html#スマートコントラクト用の最新機能"
#: tool/template-home.html:169
msgid "(smart contracts icon)"
msgstr "(スマートコントラクトのアイコン)"
#: tool/template-home.html:170
msgid "Modern Features for Smart Contracts"
msgstr "スマートコントラクト用の最新機能"
#: tool/template-home.html:174
msgid "xrp-ledger-overview.html#on-ledger-decentralized-exchange"
msgstr "xrp-ledger-overview.html#台帳上の分散型取引所"
#: tool/template-home.html:175
msgid "(decentralized exchange icon)"
msgstr "(分散型取引所アイコン)"
#: tool/template-home.html:176
msgid "On-Ledger Decentralized Exchange"
msgstr "台帳上の分散型取引所"

247
locale/messages.pot Normal file
View File

@@ -0,0 +1,247 @@
# Translations template for XRPL.org.
# Copyright (C) 2020 XRP Ledger Project
# This file is distributed under the same license as the XRPL.org project.
# Rome Reginelli <rome@ripple.com>, 2020.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-05-12 16:30-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
#: tool/template-base.html:71
msgid "Blog"
msgstr ""
#: tool/template-base.html:77 tool/template-base.html:78
msgid "Search site..."
msgstr ""
#: tool/template-breadcrumbs.html:3
msgid "Home"
msgstr ""
#: tool/template-doc.html:27
msgid "Sorry, this page is not available in your language."
msgstr ""
#: tool/template-doc.html:28
msgid ""
"We are making an effort to offer the XRP Ledger Dev Portal in a variety "
"of languages, but not all pages are available in all languages. If you'd "
"like to help, <a href=\"https://github.com/ripple/xrpl-dev-"
"portal/blob/master/CONTRIBUTING.md\">please contribute!</a>"
msgstr ""
#: tool/template-doc.html:40
msgid "In this document"
msgstr ""
#: tool/template-footer.html:32
msgid "Ripple Careers"
msgstr ""
#: tool/template-footer.html:33
msgid "Ripple on GitHub"
msgstr ""
#: tool/template-footer.html:34
msgid "XRP Resources"
msgstr ""
#: tool/template-footer.html:61
msgid "License"
msgstr ""
#: tool/template-footer.html:68
msgid "Jump to top of page"
msgstr ""
#: tool/template-footer.html:68
msgid "Top"
msgstr ""
#: tool/template-github-edit.html:26
msgid "Edit"
msgstr ""
#: tool/template-home.html:22
msgid "Powering the Internet of Value."
msgstr ""
#: tool/template-home.html:24
msgid ""
"The <a href=\"#xrp_ledger_intro\">XRP Ledger</a> is open-source "
"technology that anyone can use."
msgstr ""
#: tool/template-home.html:25
msgid ""
"Use the tools and information provided here to integrate with and "
"contribute to the open-source platform."
msgstr ""
#: tool/template-home.html:26
msgid "Want more?"
msgstr ""
#: tool/template-home.html:27
msgid "Get updates about XRP Ledger webinars, releases, and documentation!"
msgstr ""
#: tool/template-home.html:29
msgid "Sign up!"
msgstr ""
#: tool/template-home.html:50
msgid "Learn How It Works"
msgstr ""
#: tool/template-home.html:56
msgid "About XRP"
msgstr ""
#: tool/template-home.html:63
msgid "All Concepts"
msgstr ""
#: tool/template-home.html:70
msgid "Read Documentation"
msgstr ""
#: tool/template-home.html:78
msgid "Full Doc Index"
msgstr ""
#: tool/template-home.html:83
msgid "All Docs"
msgstr ""
#: tool/template-home.html:90
msgid "Explore the XRP Ledger"
msgstr ""
#: tool/template-home.html:93
msgid ""
"Use the XRPL Explorer to view a stream of ledger activity and see "
"validator statuses."
msgstr ""
#: tool/template-home.html:97
msgid "Go to the Explorer"
msgstr ""
#: tool/template-home.html:125
msgid "What is the XRP Ledger?"
msgstr ""
#: tool/template-home.html:128
msgid ""
"The XRP Ledger is a decentralized cryptographic ledger, powered by a "
"network of peer-to-peer servers. It is the home of XRP, a digital asset "
"designed to bridge the many different currencies in use worldwide."
msgstr ""
#: tool/template-home.html:132
msgid "xrp-ledger-overview.html#the-digital-asset-for-payments"
msgstr ""
#: tool/template-home.html:133
msgid "(digital asset icon)"
msgstr ""
#: tool/template-home.html:134
msgid "The Digital Asset for Payments"
msgstr ""
#: tool/template-home.html:138
msgid "xrp-ledger-overview.html#censorship-resistant-transaction-processing"
msgstr ""
#: tool/template-home.html:139
msgid "(censorship resistance icon)"
msgstr ""
#: tool/template-home.html:140
msgid "Censorship-Resistant Transaction Processing"
msgstr ""
#: tool/template-home.html:144
msgid "xrp-ledger-overview.html#fast-efficient-consensus-algorithm"
msgstr ""
#: tool/template-home.html:145
msgid "(consensus algorithm icon)"
msgstr ""
#: tool/template-home.html:146
msgid "Fast, Efficient Consensus Algorithm"
msgstr ""
#: tool/template-home.html:150
msgid "xrp-ledger-overview.html#finite-xrp-supply"
msgstr ""
#: tool/template-home.html:151
msgid "(xrp supply icon)"
msgstr ""
#: tool/template-home.html:152
msgid "Finite XRP Supply"
msgstr ""
#: tool/template-home.html:156
msgid "xrp-ledger-overview.html#responsible-software-governance"
msgstr ""
#: tool/template-home.html:157
msgid "(governance icon)"
msgstr ""
#: tool/template-home.html:158
msgid "Responsible Software Governance"
msgstr ""
#: tool/template-home.html:162
msgid "xrp-ledger-overview.html#secure-adaptable-cryptography"
msgstr ""
#: tool/template-home.html:163
msgid "(cryptography icon)"
msgstr ""
#: tool/template-home.html:164
msgid "Secure, Adaptable Cryptography"
msgstr ""
#: tool/template-home.html:168
msgid "xrp-ledger-overview.html#modern-features-for-smart-contracts"
msgstr ""
#: tool/template-home.html:169
msgid "(smart contracts icon)"
msgstr ""
#: tool/template-home.html:170
msgid "Modern Features for Smart Contracts"
msgstr ""
#: tool/template-home.html:174
msgid "xrp-ledger-overview.html#on-ledger-decentralized-exchange"
msgstr ""
#: tool/template-home.html:175
msgid "(decentralized exchange icon)"
msgstr ""
#: tool/template-home.html:176
msgid "On-Ledger Decentralized Exchange"
msgstr ""

View File

@@ -68,14 +68,14 @@
{% endif %}
{% endfor %}
<li class="nav-item">
<a class="nav-link" href="/blog/">{{target.strings.blog}}</a>
<a class="nav-link" href="/blog/">{% trans %}Blog{% endtrans %}</a>
</li>
</ul><!-- /.navbar-nav -->
{% include 'template-github-edit.html' %}
<form class="navbar-form navbar-right" id="navbar-search" role="search">
<div class="form-inline">
<label class="sr-only" for="topsearchbar">{{target.strings.search}}</label>
<input id="topsearchbar" name="q" type="text" class="form-control" class="top-search" placeholder="{{target.strings.search}}">
<label class="sr-only" for="topsearchbar">{% trans %}Search site...{% endtrans %}</label>
<input id="topsearchbar" name="q" type="text" class="form-control" class="top-search" placeholder="{% trans %}Search site...{% endtrans %}">
<button type="submit" class="btn btn-default fa fa-search">&nbsp;</button>
</div>
</form>

View File

@@ -1,6 +1,6 @@
<nav class="breadcrumbs-wrap {% if currentpage.sidebar is defined and currentpage.sidebar == 'disabled' %} px-0 pt-5 pb-3 {% else %}p-0 p-md-3{% endif %}" aria-label="breadcrumb">
<ul class="breadcrumb bg-white">
<li class="breadcrumb-item"><a href="{% if target.no_cover is defined and target.no_cover %}/{% else %}index.html{% endif %}">{{target.strings.bc_home}}</a></li>
<li class="breadcrumb-item"><a href="{% if target.no_cover is defined and target.no_cover %}/{% else %}index.html{% endif %}">{% trans %}Home{% endtrans %}</a></li>
{% if currentpage.funnel is defined and currentpage != pages|selectattr('funnel', 'defined_and_equalto', currentpage.funnel)|first %}
{% set funnelhead = (pages|selectattr('funnel', 'defined_and_equalto', currentpage.funnel)|first) %}
<li class="active breadcrumb-item"><a href="{{ funnelhead.html }}">{{ funnelhead.name }}</a></li>

View File

@@ -24,9 +24,8 @@
<article class="pt-3 p-md-3">
{% if target.lang != "en" and "en" in currentpage.targets %}
{# Add a "sorry this page isn't translated" banner. #}
{# TODO: pull from a strings file #}
<div class="devportal-callout note mb-5"><strong>{{target.strings.tl_banner.head}}</strong>
<p class="mb-0">{{target.strings.tl_banner.body}}</p>
<div class="devportal-callout note mb-5"><strong>{% trans %}Sorry, this page is not available in your language.{% endtrans %}</strong>
<p class="mb-0">{% trans %}We are making an effort to offer the XRP Ledger Dev Portal in a variety of languages, but not all pages are available in all languages. If you'd like to help, <a href="https://github.com/ripple/xrpl-dev-portal/blob/master/CONTRIBUTING.md">please contribute!</a>{% endtrans %}</p>
</div><!--/.devportal-callout-->
{% endif %}
<div class="content">
@@ -38,7 +37,7 @@
{% block right_sidebar %}
<div class="card" id="page-toc-wrapper">
<div class="card-header">
<h4>{{target.strings.pagetoc}}</h4>
<h4>{% trans %}In this document{% endtrans %}</h4>
</div>
<ul class="card-body">
{{ sidebar_content }}

View File

@@ -29,9 +29,9 @@
<div class="card-body">
<div class="children-display">
<ul>
<li class="level-1"><a href="https://ripple.com/company/careers/" target="_blank">{{target.strings.footer.ripple.careers}} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://github.com/ripple/" target="_blank">{{target.strings.footer.ripple.github}} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://ripple.com/collateral/#xrp" target="_blank">{{target.strings.footer.ripple.xrp_resources}} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://ripple.com/company/careers/" target="_blank">{% trans %}Ripple Careers{% endtrans %} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://github.com/ripple/" target="_blank">{% trans %}Ripple on GitHub{% endtrans %} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://ripple.com/collateral/#xrp" target="_blank">{% trans %}XRP Resources{% endtrans %} <i class="fa fa-external-link"></i></a></li>
</ul>
</div>
</div><!--/.card-body-->
@@ -58,12 +58,12 @@
<div class="absolute_bottom_footer">
<span>&copy; XRP Ledger Project 2019</span>
<span><a href="https://raw.githubusercontent.com/ripple/ripple-dev-portal/master/LICENSE">{{target.strings.footer.license}}</a></span>
<span><a href="https://raw.githubusercontent.com/ripple/ripple-dev-portal/master/LICENSE">{% trans %}License{% endtrans %}</a></span>
</div><!-- /.absolute_bottom_footer -->
</section>
</footer>
<!-- Jump to top button -->
<a href="#main_content_wrapper" class="jump-to-top btn btn-primary btn-lg" role="button" title="{{target.strings.to_top.short}}">{{target.strings.to_top.short}}</a>
<a href="#main_content_wrapper" class="jump-to-top btn btn-primary btn-lg" role="button" title="{% trans %}Jump to top of page{% endtrans %}">{% trans %}Top{% endtrans %}</a>
<script type="text/javascript" src="assets/js/jump-to-top.js"></script>

View File

@@ -23,6 +23,6 @@
{% if not have_edit_link %}
{% set githuburl = target.github_forkurl %}
{% endif %}
<a href="{{githuburl}}" target="_blank" class="github-edit">{{target.strings.github_edit}}</a>
<a href="{{githuburl}}" target="_blank" class="github-edit">{% trans %}Edit{% endtrans %}</a>
{% endif %}
</div><!-- /.github-edit -->

View File

@@ -19,14 +19,14 @@
<section class="container-fluid card-grid card-grid-2x2">
<div class="section-hero card justify-content-end">
<div>
<h1 class="display-4">{{target.strings.home.intro.head}}</h1>
<h1 class="display-4">{% trans %}Powering the Internet of Value.{% endtrans %}</h1>
<div class="blurb">
<p>{{target.strings.home.intro.body1}}</p>
<p>{{target.strings.home.intro.body2}}</p>
<h5>{{target.strings.home.intro.subhead}}</h5>
<p>{{target.strings.home.intro.sub_body}}</p>
<p>{% trans %}The <a href="#xrp_ledger_intro">XRP Ledger</a> is open-source technology that anyone can use.{% endtrans %}</p>
<p>{% trans %}Use the tools and information provided here to integrate with and contribute to the open-source platform.{% endtrans %}</p>
<h5>{% trans %}Want more?{% endtrans %}</h5>
<p>{% trans %}Get updates about XRP Ledger webinars, releases, and documentation!{% endtrans %}</p>
</div><!--/.blurb-->
<a class="btn btn-outline-secondary external-link" href="https://goo.gl/forms/sHMFxU8dKiTUaltE3" target="_blank">{{target.strings.home.intro.cta}} <i class="fa fa-external-link" aria-hidden="true"></i></a>
<a class="btn btn-outline-secondary external-link" href="https://goo.gl/forms/sHMFxU8dKiTUaltE3" target="_blank">{% trans %}Sign up!{% endtrans %} <i class="fa fa-external-link" aria-hidden="true"></i></a>
</div>
</div><!--/.section-hero-->
@@ -47,27 +47,27 @@
<div class="card pr-0">
<div class="card-header">
<h3 class="card-title"><a href="concepts.html">{{target.strings.home.cards_1.learn.head}}</a></h3>
<h3 class="card-title"><a href="concepts.html">{% trans %}Learn How It Works{% endtrans %}</a></h3>
</div><!--/.card-header-->
<div class="card-body">
<div class="curated-links">
<ul>
<li><a href="intro-to-consensus.html">{{(pages|selectattr('html', 'defined_and_equalto', 'intro-to-consensus.html')|first).name}}</a></li>
<li><a href="xrp.html">{{target.strings.home.cards_1.learn.about_xrp}}</a></li>
<li><a href="xrp.html">{% trans %}About XRP{% endtrans %}</a></li>
<li><a href="payment-system-basics.html">{{(pages|selectattr('html', 'defined_and_equalto', 'payment-system-basics.html')|first).name}}</a></li>
<li><a href="decentralized-exchange.html">{{(pages|selectattr('html', 'defined_and_equalto', 'decentralized-exchange.html')|first).name}}</a></li>
</ul>
</div><!--/.curated-links-->
</div><!--/.card-body-->
<div class="card-footer">
<a href="concepts.html" class="btn btn-outline-secondary">{{target.strings.home.cards_1.learn.cta}}</a>
<a href="concepts.html" class="btn btn-outline-secondary">{% trans %}All Concepts{% endtrans %}</a>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</div><!--/.card-->
<div class="card">
<div class="card-header">
<h3 class="card-title"><a href="docs.html">{{target.strings.home.cards_1.read_docs.head}}</a></h3>
<h3 class="card-title"><a href="docs.html">{% trans %}Read Documentation{% endtrans %}</a></h3>
</div><!--/.card-header-->
<div class="card-body">
<div class="curated-links">
@@ -75,26 +75,26 @@
<li><a href="references.html">{{(pages|selectattr('html', 'defined_and_equalto', 'references.html')|first).longer_name}}</a></li>
<li><a href="concepts.html">{{(pages|selectattr('html', 'defined_and_equalto', 'concepts.html')|first).name}}</a></li>
<li><a href="tutorials.html">{{(pages|selectattr('html', 'defined_and_equalto', 'tutorials.html')|first).name}}</a></li>
<li><a href="docs.html#full-doc-index">{{target.strings.home.cards_1.read_docs.full_doc_index}}</a></li>
<li><a href="docs.html#full-doc-index">{% trans %}Full Doc Index{% endtrans %}</a></li>
</ul>
</div><!--/.curated-links-->
</div><!--/.card-body-->
<div class="card-footer">
<a href="docs.html" class="btn btn-outline-secondary">{{target.strings.home.cards_1.read_docs.cta}}</a>
<a href="docs.html" class="btn btn-outline-secondary">{% trans %}All Docs{% endtrans %}</a>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</div><!--/.card-->
<div class="card pr-0">
<div class="card-header">
<h3 class="card-title">{{target.strings.home.cards_1.explore.head}}</h3>
<h3 class="card-title">{% trans %}Explore the XRP Ledger{% endtrans %}</h3>
</div><!--/.card-header-->
<div class="card-body">
<p>{{target.strings.home.cards_1.explore.blurb}}</p>
<p>{% trans %}Use the XRPL Explorer to view a stream of ledger activity and see validator statuses.{% endtrans %}</p>
</div><!--/.card-body-->
<div class="card-footer">
<div class="readmore">
<a href="https://livenet.xrpl.org/" class="btn btn-outline-secondary">{{target.strings.home.cards_1.explore.cta}}</a>
<a href="https://livenet.xrpl.org/" class="btn btn-outline-secondary">{% trans %}Go to the Explorer{% endtrans %}</a>
</div>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
@@ -122,58 +122,58 @@
<section class="container-fluid card-grid card-grid-2x4" id="xrp_ledger_intro">
<div class="card section-hero pl-0">
<div class="card-header">
<h2><a href="xrp-ledger-overview.html">{{target.strings.home.what_is_xrpl.head}}</a></h2>
<h2><a href="xrp-ledger-overview.html">{% trans %}What is the XRP Ledger?{% endtrans %}</a></h2>
</div><!--/.card-header-->
<div class="card-body">
<p>{{target.strings.home.what_is_xrpl.body_1}}</p>
<p>{% trans %}The XRP Ledger is a decentralized cryptographic ledger, powered by a network of peer-to-peer servers. It is the home of XRP, a digital asset designed to bridge the many different currencies in use worldwide.{% endtrans %}</p>
</div>
</div><!--/.section-hero-->
<a href="{{target.strings.home.what_is_xrpl.digital_asset.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-digital-asset.svg" alt="(digital asset icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.digital_asset.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#the-digital-asset-for-payments{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-digital-asset.svg" alt="{% trans %}(digital asset icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}The Digital Asset for Payments{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.censorship_resistant.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-censorship-resistant.svg" alt="(censorship resistance icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.censorship_resistant.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#censorship-resistant-transaction-processing{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-censorship-resistant.svg" alt="{% trans %}(censorship resistance icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}Censorship-Resistant Transaction Processing{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.fast_algorithm.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-fast-algorithm.svg" alt="(consensus algorithm icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.fast_algorithm.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#fast-efficient-consensus-algorithm{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-fast-algorithm.svg" alt="{% trans %}(consensus algorithm icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}Fast, Efficient Consensus Algorithm{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.finite_xrp.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-finite.svg" alt="(xrp supply icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.finite_xrp.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#finite-xrp-supply{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-finite.svg" alt="{% trans %}(xrp supply icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}Finite XRP Supply{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.responsible_governance.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-responsible.svg" alt="(governance icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.responsible_governance.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#responsible-software-governance{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-responsible.svg" alt="{% trans %}(governance icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}Responsible Software Governance{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.secure_crypto.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-secure.svg" alt="(cryptography icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.secure_crypto.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#secure-adaptable-cryptography{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-secure.svg" alt="{% trans %}(cryptography icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}Secure, Adaptable Cryptography{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.smart_contracts.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-modern-smart-contracts.svg" alt="(smart contracts icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.smart_contracts.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#modern-features-for-smart-contracts{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-modern-smart-contracts.svg" alt="{% trans %}(smart contracts icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}Modern Features for Smart Contracts{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="{{target.strings.home.what_is_xrpl.decentralized_exchange.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-on-ledger-decentralized.svg" alt="(decentralized exchange icon)" /></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.decentralized_exchange.head}}</h3></div>
<a href="{% trans %}xrp-ledger-overview.html#on-ledger-decentralized-exchange{% endtrans %}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-on-ledger-decentralized.svg" alt="{% trans %}(decentralized exchange icon){% endtrans %}" /></div>
<div class="card-footer"><h3>{% trans %}On-Ledger Decentralized Exchange{% endtrans %}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->