From 84e6924a44694f7b7ed3e5a5f6c72f5617f18acd Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 3 Sep 2019 12:13:51 +0000 Subject: mark more strings as translatable, fix typos. --- template/contact.html.j2 | 121 ++++++------- template/copyright.html.j2 | 4 +- template/developers.html.j2 | 36 ++-- template/docs.html.j2 | 54 +++--- template/faq.html.j2 | 386 ++++++++++++++++++++--------------------- template/features.html.j2 | 3 +- template/gsoc-codeless.html.j2 | 28 ++- template/index.html.j2 | 17 +- template/investors.html.j2 | 1 + template/news.html.j2 | 2 +- template/press.html.j2 | 8 +- template/principles.html.j2 | 2 +- template/team.html.j2 | 6 +- 13 files changed, 340 insertions(+), 328 deletions(-) (limited to 'template') diff --git a/template/contact.html.j2 b/template/contact.html.j2 index 67d66858..91c7abe8 100644 --- a/template/contact.html.j2 +++ b/template/contact.html.j2 @@ -1,70 +1,75 @@ {% extends "common/base.j2" %} {% block body_content %} -
-
-

{{ _("Contact information") }}

+
+
+

{{ _("Contact information") }}

+
-
-
-
-
-

{{ _("The mailing list") }}

-

- {% trans %} - An archived, public mailing list for GNU Taler is - hosted at - https://lists.gnu.org/mailman/listinfo/taler. - You can send messages to the list at +

+
+
+

{{ _("The mailing list") }}

+

+ {% trans %} + An archived, public mailing list for GNU Taler is + hosted at + {% endtrans %} + https://lists.gnu.org/mailman/listinfo/taler + ({{ _("archive")}}). + {% trans %} + You can send messages to the list at + {% endtrans %} taler@gnu.org. - {% endtrans %} -

-
+

+
-
-

{{ _("Contacting individuals") }}

-

- {% trans %} - Team members are generally reachable at - LASTNAME@taler.net. All of us - support receiving GnuPG encrypted e-mails. - {% endtrans %} -

-
+
+

{{ _("Contacting individuals") }}

+

+ {% trans %} + Team members are generally reachable at + LASTNAME@taler.net. All of us + support receiving GnuPG encrypted e-mails. + {% endtrans %} +

+
-
-

{{ _("General inquiries") }}

-

- {% trans %} - You can reach a group of team members handling - general inquiries at contact AT taler.net. - {% endtrans %} -

-
+
+

{{ _("General inquiries") }}

+

+ {% trans %} + You can reach a group of team members handling + general inquiries at contact AT taler.net. + {% endtrans %} +

+
-
-

{{ _("Reporting bugs") }}

-

- {% trans %} - We track open feature requests and bugs in our - Bug tracker, - which is shared with the GNUnet project. - You can also report bugs or feature requests to the - mailing list. - {% endtrans %} -

-
+
+

{{ _("Reporting bugs") }}

+

+ {% trans %} + We track open feature requests and bugs in our + {% endtrans %} + {{ _("Bug tracker")}}, + {% trans %} + which is shared with the GNUnet project. + You can also report bugs or feature requests to the + mailing list. + {% endtrans %} +

+
-
-

{{ _("Executive team") }}

-

- {% trans %} - For non-technical commercial requests, please contact - ceo AT taler.net. - {% endtrans %} -

+
+

{{ _("Executive team") }}

+

+ {% trans %} + For non-technical commercial requests, please contact + ceo AT taler.net. + {% endtrans %} +

+
+
-
-
{% endblock body_content %} diff --git a/template/copyright.html.j2 b/template/copyright.html.j2 index 7efe0560..8ce7357b 100644 --- a/template/copyright.html.j2 +++ b/template/copyright.html.j2 @@ -11,7 +11,9 @@ copyright assignment to ensure that the {% endtrans %} - GNUnet e.V. --- Taler Systems SA agreement on licensing and collaborative development + + GNUnet e.V. --- Taler Systems SA {{ _("agreement on licensing and collaborative development")}} + {% trans %} of the GNUnet and GNU Taler projects is satisfied. {% endtrans %} diff --git a/template/developers.html.j2 b/template/developers.html.j2 index 2fb4982d..0fc1f67a 100644 --- a/template/developers.html.j2 +++ b/template/developers.html.j2 @@ -68,12 +68,10 @@ {% endtrans %} GNUnet. {% trans %} - However, - contributions from anyone are welcome. Our Git - repositories can be cloned using the Git and HTTP - access methods against git.taler.net with - the name of the respective repository. A list of - repositories can be found in our + However, contributions from anyone are welcome. Our Git + repositories can be cloned using the Git and HTTP access methods + against git.taler.net with the name of the respective + repository. A list of repositories can be found in our {% endtrans %} GitWeb.

@@ -85,26 +83,15 @@ {% trans %} In addition to this website, the {% endtrans %} - - {% trans %} - documented code - {% endtrans %} - + {{ _("documented code")}} {% trans %} and the {% endtrans %} - - {% trans %} - API documentation - {% endtrans %} - . + {{ _("API documentation")}}. {% trans %} Technical papers can be found in our {% endtrans %} - - {% trans %} - bibliography. - {% endtrans %} + {{ _("bibliography")}}.

@@ -125,7 +112,10 @@

{% trans %} - We have Buildbot + We have + {% endtrans %} + Buildbot + {% trans %} automation tests to detect regressions and check for portability at {% endtrans %} @@ -138,7 +128,9 @@

{% trans %} We use - LCOV + {% endtrans %} + LCOV + {% trans %} to analyze the code coverage of our tests, the results are available at {% endtrans %} diff --git a/template/docs.html.j2 b/template/docs.html.j2 index 233097cc..83fa2e53 100644 --- a/template/docs.html.j2 +++ b/template/docs.html.j2 @@ -4,15 +4,16 @@

-

GNU Taler: Documentation and Resources

+

{{ _("GNU Taler: Documentation and Resources")}}

{% trans %} - This is an overview of documentation and other resources for GNU Taler. The full documentation - contents can be found here. + This is an overview of documentation and other resources for GNU Taler. + The full documentation contents can be found + here. {% endtrans %}
@@ -23,7 +24,7 @@
-

Components

+

{{ _("Components")}}

@@ -34,10 +35,13 @@
-

Merchant Backend Administration

+

{{ _("Merchant Backend Administration")}}

- {{ _("Tutorial and manual for operating a merchant") }}. - {{ _("Also available as") }} PDF. + {% trans %} + Tutorial and manual for operating a merchant. + Also available as + {% endtrans %} + PDF.
@@ -48,20 +52,20 @@ {% trans %} Tutorial for processing Taler payments using the merchant backend API. Also available as - PDF. {% endtrans %} + PDF.
-

Exchange

+

{{ _("Exchange")}}

{% trans %} Operator's manual for the GNU Taler exchange. Also available as - PDF. {% endtrans %} + PDF.
@@ -72,8 +76,8 @@ {% trans %} Manual for tightly integrating Taler with banking applications. Also available as - PDF. {% endtrans %} + PDF.
@@ -90,8 +94,8 @@ {% trans %} Manual to run the back-office Web application. Also available as - PDF. {% endtrans %} + PDF.
@@ -100,7 +104,7 @@
-

Internals

+

{{ _("Internals")}}

@@ -111,21 +115,23 @@
-

HTTP API

+

{{ _("HTTP API")}}

- {{ _("Reference for the HTTP-based API for Taler components.") }} -
+ {% trans %} + Reference for the HTTP-based API for Taler components. + {% endtrans %} +
-

Onboarding

+

{{ _("Onboarding")}}

{% trans %} Description of our taler.net setup and how to contribute. Also available as - PDF. - {% endtrans %} + {% endtrans %} + PDF.
@@ -134,7 +140,7 @@
-

Community

+

{{ _("Community")}}

@@ -145,7 +151,7 @@
-

Mailing List

+

{{ _("Mailing List")}}

{{ _("The official GNU Taler mailing list.") }}
@@ -153,7 +159,7 @@
-

IRC

+

{{ _("IRC")}}

{{ _("Our IRC channel is #taler on freenode.") }}
@@ -161,7 +167,7 @@
-

Bug Tracker

+

{{ _("Bug Tracker")}}

{{ _("Our bug tracker for bugs and feature request.") }}
@@ -173,7 +179,7 @@
-

Code

+

{{ _("Code")}}

diff --git a/template/faq.html.j2 b/template/faq.html.j2 index f9daa01b..3a9349da 100644 --- a/template/faq.html.j2 +++ b/template/faq.html.j2 @@ -1,197 +1,195 @@ {% extends "common/base.j2" %} {% block body_content %} -
- -

{{ _("How is Taler related to Bitcoin or Blockchains?") }}

- -

- {% trans %} - Taler does not require any Blockchain technology, and is - also not based on proof-of-work or any other distributed consensus - mechanism. Instead, Taler is based on blind signatures. - However, it is theoretically possible to combine Taler with - peer-to-peer crypto-currencies like Bitcoin. - {% endtrans %} -

- -

- {% trans %} - It would be possible, however, to withdraw coins denominated in - Bitcoin into a Taler wallet (with an appropriate exchange), which - would give some benefits over plain Bitcoin, such as instant - confirmation times. - {% endtrans %} -

- -

{{ _("Where is the balance in my wallet stored?") }}

-

- {% trans %} - Your wallet stores digital coins and thus ultimately your computer - holds your balance. The exchange keeps funds matching all unspent - coins in an escrow bank account. - {% endtrans %} -

- -

{{ _("What if my wallet is lost?") }}

-

- {% trans %} - Since the digital coins of value in your wallet are anonymized, the - exchange can not assist you in recovering a lost or stolen wallet. - Just like with a physical wallet for cash, you are responsible for - keeping it safe. - {% endtrans %} -

- -

- {% trans %} - The risk of losing a wallet can be mitigated by making backups or - keeping the balance reasonably low. - {% endtrans %} -

- -

{{ _("What if my computer is hacked?") }}

-

- {% trans %} - In case of a compromise of one of your devices, an attacker can - spend coins from your wallet. Checking your balance might reveal - to you that your device has been compromised. - {% endtrans %} -

- -

{{ _("Can I send money to my friend with Taler?") }}

-

- {% trans %} - If your friend provides goods or services for you in exchange for a - payment, they can easily set up a Taler merchant and receive the - payment in their bank account. - {% endtrans %} -

-

- {% trans %} - Future versions of the Taler wallet may allow exchanging coins - among friends directly as well. - {% endtrans %} -

- -

{{ _("How does Taler handle payments in different currencies?") }}

-

- {% trans %} - Taler wallets can store digital coins corresponding to multiple - different currencies such as the Euro, US Dollars or Bitcoins. - {% endtrans %} -

-

- {% trans %} - Taler currently does not offer conversion between currencies. - {% endtrans %} -

- -

{{ _("How does Taler protect my privacy?") }}

-{% trans %} -

- Your wallet stores digital coins that are - blindly signed - by an exchange. The use of a blind signature protects your - privacy as it prevents the exchange from knowing which coin it signed - for which customer. -

-{% endtrans %} - -

{{ _("How much does it cost?") }}

-{% trans %} -

- The Taler protocol allows any exchange to set its own fee - structure, allowing operators to set fees for withdrawing, depositing, - refreshing or refunding coins. Operators can also charge fees for - closing reserves and for (aggregated) wire transfers to merchants. - Merchants may choose to cover some of the fees customers incur. - Actual transaction costs are estimated around 0.001 cent/transaction - (at high transaction rates, amortized over billions of transactions, - excluding migration costs). Note that this is an early estimate, - details may depend on hosting and backup requirements from the - regulator and could thus easily be 10x higher. -

-{% endtrans %} - - -

{{ _("Does Taler work with international payments?") }}

-{% trans %} -

- Taler's wallet supports multiple currencies, but the system - currently does not support conversion between currencies. However, - in principle an entity that accepts deposits in one currency and - allows withdrawals in another currency could be created. Still, the - regulatory hurdles in this case tend to be particularly complex. - The focus for Taler is on day-to-day payments, so we have no plans - to support currency conversion in the near future. -

-{% endtrans %} - - -

{{ _("How does Taler relate to the (European) Electronic Money Directive?") }}

-{% trans %} -

- We believe the European Electronic Money Directive provides part - of the regulatory framework a Taler exchange with coins denominated - in Euros would have to follow. -

-{% endtrans %} - - -

{{ _("What bank would guarantee the conversion between Taler coins and bank money in regular bank accounts?") }}

-{% trans %} -

- The exchange would be operated by a bank or in cooperation with a bank, and that bank - would hold the funds in escrow. Note that this bank could be a regular bank or a central - bank for a centrally banked electronic currency. Regardless, the bank would fall under - the respective banking regulations establishing a reason why consumers would have faith - in the conversion from Taler coins into regular bank money. -

-{% endtrans %} - -

{{ _("To whom would consumers complain to in case of non-conversion or non-compliance?") }}

-{% trans %} -

- Any exchange should be audited by one or more independent auditors. Merchants and - consumer wallets will report certain issues automatically to the auditors, but auditors - may also provide a method for manual submission of issues. The auditors are expected - to make their reports available to the respective regulatory authorities, or even - the general public. -

-{% endtrans %} - -

{{ _("Are there any projects already using Taler?") }}

-{% trans %} -

- We are aware of several businesses running exploratory projects or having - developed working prototypes. We are also - in discussions with several regular banks as well as several central banks - about the project. That said, there are currently no products in the - market yet, and we believe this would be premature given the state of - the project (see also our bugtracker - for a list of open issues). -

-{% endtrans %} - -

{{ _("Does Taler support recurring payments?") }}

-{% trans %} -

- Today, our wallet implementation does not support recurring - payments. Recurring payments, where some fixed amount is paid on a - regular basis are in theory possible with Taler, but they come with a - few caveats. Specifically, recurring payments can only work if the - Taler wallet is running and online around the desired time. - Furthermore, given their repetitive nature they are linkable, and - could thus be used to deanonymize the user making the recurring - payment, for example by forcing the user offline at the time of the - payment and observing that it does then not happen on time. Finally, - the Taler wallet does not work with credit and thus the user would - have to make sure to carry a sufficient balance for the recurring - payment to be made. Still, they can be useful, and a future version of - the Taler wallet will likely support them. But this is not a feature - that we are targeting for Taler 1.0. at this time -

-{% endtrans %} - -
+
+ +

{{ _("How is Taler related to Bitcoin or Blockchains?") }}

+ +

+ {% trans %} + Taler does not require any Blockchain technology, and is + also not based on proof-of-work or any other distributed consensus + mechanism. Instead, Taler is based on blind signatures. + However, it is theoretically possible to combine Taler with + peer-to-peer crypto-currencies like Bitcoin. + {% endtrans %} +

+ +

+ {% trans %} + It would be possible, however, to withdraw coins denominated in + Bitcoin into a Taler wallet (with an appropriate exchange), which + would give some benefits over plain Bitcoin, such as instant + confirmation times. + {% endtrans %} +

+ +

{{ _("Where is the balance in my wallet stored?") }}

+

+ {% trans %} + Your wallet stores digital coins and thus ultimately your computer + holds your balance. The exchange keeps funds matching all unspent + coins in an escrow bank account. + {% endtrans %} +

+ +

{{ _("What if my wallet is lost?") }}

+

+ {% trans %} + Since the digital coins of value in your wallet are anonymized, the + exchange can not assist you in recovering a lost or stolen wallet. + Just like with a physical wallet for cash, you are responsible for + keeping it safe. + {% endtrans %} +

+ +

+ {% trans %} + The risk of losing a wallet can be mitigated by making backups or + keeping the balance reasonably low. + {% endtrans %} +

+ +

{{ _("What if my computer is hacked?") }}

+

+ {% trans %} + In case of a compromise of one of your devices, an attacker can + spend coins from your wallet. Checking your balance might reveal + to you that your device has been compromised. + {% endtrans %} +

+ +

{{ _("Can I send money to my friend with Taler?") }}

+

+ {% trans %} + If your friend provides goods or services for you in exchange for a + payment, they can easily set up a Taler merchant and receive the + payment in their bank account. + {% endtrans %} +

+

+ {% trans %} + Future versions of the Taler wallet may allow exchanging coins + among friends directly as well. + {% endtrans %} +

+ +

{{ _("How does Taler handle payments in different currencies?") }}

+

+ {% trans %} + Taler wallets can store digital coins corresponding to multiple + different currencies such as the Euro, US Dollars or Bitcoins. + {% endtrans %} +

+

+ {% trans %} + Taler currently does not offer conversion between currencies. + {% endtrans %} +

+ +

{{ _("How does Taler protect my privacy?") }}

+

+ {% trans %} + Your wallet stores digital coins that are + blindly signed + by an exchange. The use of a blind signature protects your + privacy as it prevents the exchange from knowing which coin it signed + for which customer. + {% endtrans %} +

+ + +

{{ _("How much does it cost?") }}

+

+ {% trans %} + The Taler protocol allows any exchange to set its own fee + structure, allowing operators to set fees for withdrawing, depositing, + refreshing or refunding coins. Operators can also charge fees for + closing reserves and for (aggregated) wire transfers to merchants. + Merchants may choose to cover some of the fees customers incur. + Actual transaction costs are estimated around 0.001 cent/transaction + (at high transaction rates, amortized over billions of transactions, + excluding migration costs). Note that this is an early estimate, + details may depend on hosting and backup requirements from the + regulator and could thus easily be 10x higher. + {% endtrans %} +

+ +

{{ _("Does Taler work with international payments?") }}

+

+ {% trans %} + Taler's wallet supports multiple currencies, but the system + currently does not support conversion between currencies. However, + in principle an entity that accepts deposits in one currency and + allows withdrawals in another currency could be created. Still, the + regulatory hurdles in this case tend to be particularly complex. + The focus for Taler is on day-to-day payments, so we have no plans + to support currency conversion in the near future. + {% endtrans %} +

+ +

{{ _("How does Taler relate to the (European) Electronic Money Directive?") }}

+

+ {% trans %} + We believe the European Electronic Money Directive provides part + of the regulatory framework a Taler exchange with coins denominated + in Euros would have to follow. + {% endtrans %} +

+ +

{{ _("What bank would guarantee the conversion between Taler coins and bank money in regular bank accounts?") }}

+

+ {% trans %} + The exchange would be operated by a bank or in cooperation with a bank, and that bank + would hold the funds in escrow. Note that this bank could be a regular bank or a central + bank for a centrally banked electronic currency. Regardless, the bank would fall under + the respective banking regulations establishing a reason why consumers would have faith + in the conversion from Taler coins into regular bank money. + {% endtrans %} +

+ +

{{ _("To whom would consumers complain to in case of non-conversion or non-compliance?") }}

+

+ {% trans %} + Any exchange should be audited by one or more independent auditors. Merchants and + consumer wallets will report certain issues automatically to the auditors, but auditors + may also provide a method for manual submission of issues. The auditors are expected + to make their reports available to the respective regulatory authorities, or even + the general public. + {% endtrans %} +

+ +

{{ _("Are there any projects already using Taler?") }}

+

+ {% trans %} + We are aware of several businesses running exploratory projects or having + developed working prototypes. We are also + in discussions with several regular banks as well as several central banks + about the project. That said, there are currently no products in the + market yet, and we believe this would be premature given the state of + the project (see also our bugtracker + for a list of open issues). + {% endtrans %} +

+ +

{{ _("Does Taler support recurring payments?") }}

+

+ {% trans %} + Today, our wallet implementation does not support recurring + payments. Recurring payments, where some fixed amount is paid on a + regular basis are in theory possible with Taler, but they come with a + few caveats. Specifically, recurring payments can only work if the + Taler wallet is running and online around the desired time. + Furthermore, given their repetitive nature they are linkable, and + could thus be used to deanonymize the user making the recurring + payment, for example by forcing the user offline at the time of the + payment and observing that it does then not happen on time. Finally, + the Taler wallet does not work with credit and thus the user would + have to make sure to carry a sufficient balance for the recurring + payment to be made. Still, they can be useful, and a future version of + the Taler wallet will likely support them. But this is not a feature + that we are targeting for Taler 1.0. at this time + {% endtrans %} +

+ +
{% endblock body_content %} diff --git a/template/features.html.j2 b/template/features.html.j2 index 63e5186a..22aa7835 100644 --- a/template/features.html.j2 +++ b/template/features.html.j2 @@ -1,11 +1,10 @@ {% extends "common/base.j2" %} {% block body_content %} -
-

GNU Taler: Features

+

{{ _("GNU Taler: Features")}}

diff --git a/template/gsoc-codeless.html.j2 b/template/gsoc-codeless.html.j2 index 837e5573..74fb05da 100644 --- a/template/gsoc-codeless.html.j2 +++ b/template/gsoc-codeless.html.j2 @@ -91,7 +91,13 @@

{{ _("Dynamic Merchant Instance") }}

-

The documentation for the API to dynamically manage merchant instance can be found here.

+

+ {% trans %} + The documentation for the API to dynamically manage merchant + instance can be found + here. + {% endtrans %} +

{{ _( @@ -102,13 +108,17 @@

{{ _("Link to the contributions made") }}

-

    +

    +
    • {{ _("Codeless Payment Backend") }} - (Link)
    • -
    • {{ _("Documentation to dynamically manage Merchant Instances") }} - (Link)
    • + ({{ _("Link")}}) + +
    • {{ _("Documentation to dynamically manage Merchant Instances") }} + ({{ _("Link")}}) +
    -

    +

    +

@@ -180,15 +190,15 @@

{{ _("Screenshots") }}

-

Home page

+

{{ _("Home page")}}

-

Product page

+

{{ _("Product page")}}

-

Shipment Tracking

+

{{ _("Shipment Tracking")}}

diff --git a/template/index.html.j2 b/template/index.html.j2 index 9118cc12..59937c6a 100644 --- a/template/index.html.j2 +++ b/template/index.html.j2 @@ -20,32 +20,31 @@
-

We provide a payment system that makes privacy-friendly online transactions - fast and easy.

+

{{ _("We provide a payment system that makes privacy-friendly online transactions fast and easy.")}}

  • - Payments without registration + {{ _("Payments without registration")}}
  • - Data protection by default + {{ _("Data protection by default")}}
  • - Fraud eliminated by design + {{ _("Fraud eliminated by design")}}
  • - Not a new currency! + {{ _("Not a new currency!")}}
  • - Empowers communities to run their own payment infrastructure + {{ _("Empowers communities to run their own payment infrastructure")}}
-
-
+
+
diff --git a/template/investors.html.j2 b/template/investors.html.j2 index aff66444..d31914b9 100644 --- a/template/investors.html.j2 +++ b/template/investors.html.j2 @@ -42,6 +42,7 @@ the French national institute for research in informatics and automation, and the {% endtrans %} + Renewable Freedom Foundation.

diff --git a/template/news.html.j2 b/template/news.html.j2 index 421dbaf1..311f4c15 100644 --- a/template/news.html.j2 +++ b/template/news.html.j2 @@ -3,7 +3,7 @@
-

News

+

{{ _("News")}}

{% include "news/2018-04.inc" %} {% include "news/2017-10.inc" %} diff --git a/template/press.html.j2 b/template/press.html.j2 index a8e5d750..323d0969 100644 --- a/template/press.html.j2 +++ b/template/press.html.j2 @@ -3,7 +3,7 @@

{{ _("GNU Taler in the Press")}}

-

2018

+

{{ _("2018")}}

-

2017

+

{{ _("2017")}}

-

2016

+

{{ _("2016")}}

-

2015

+

{{ _("2015")}}

  • Reddit
  • Y-combinator
  • diff --git a/template/principles.html.j2 b/template/principles.html.j2 index 3c3ffad3..7b684b6b 100644 --- a/template/principles.html.j2 +++ b/template/principles.html.j2 @@ -30,7 +30,7 @@

    {{ _("1. Free Software implementation") }}

    - {{ _( + {{ _(

    {% trans %} diff --git a/template/team.html.j2 b/template/team.html.j2 index 55efd6a1..23f73296 100644 --- a/template/team.html.j2 +++ b/template/team.html.j2 @@ -3,7 +3,7 @@

    -

    GNU Taler: Team

    +

    {{ _("GNU Taler: Team")}}

    {% trans %} GNU Taler is proudly brought to you by the humans on this page. @@ -23,7 +23,7 @@

    Leon Schumacher

    Leon Schumacher -

    {{ _("Entrepreneur, Investor, Fortune 100 CIO, IT company director in different industries, ….") }}

    +

    {{ _("Entrepreneur, Investor, Fortune 100 CIO, IT company director in different industries,") }} ….

    Michael Widmer

    @@ -35,7 +35,7 @@

    Dr. Florian Dold

    Florian Dold -

    {{ _("GNU mainatiner, lead developer.") }}

    +

    {{ _("GNU maintainer, lead developer.") }}

    Dr. Jeffrey Burdges

    -- cgit v1.2.3