From fd9e5515638fe94ceb8f9c14e9ced3c9247345e1 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 20 Jul 2023 15:56:58 +0200 Subject: [PATCH] rewrite tos/pp generation logic --- contrib/.gitignore | 2 + contrib/Makefile.am | 87 ++--- contrib/locale/de/LC_MESSAGES/tos-v0.po | 403 +++++++++++++++++++++ contrib/{pp => }/pp-v0.rst | 0 contrib/pp/.gitignore | 3 - contrib/pp/Makefile | 109 ------ contrib/pp/README | 58 --- contrib/pp/conf.py.in | 282 -------------- contrib/pp/en/pp-v0.epub | Bin 14943 -> 0 bytes contrib/pp/en/pp-v0.html | 205 ----------- contrib/pp/en/pp-v0.md | 237 ------------ contrib/pp/en/pp-v0.pdf | Bin 77874 -> 0 bytes contrib/pp/en/pp-v0.txt | 237 ------------ contrib/pp/en/pp-v0.xml | 214 ----------- contrib/pp/locale/de/LC_MESSAGES/pp.po | 221 ----------- contrib/taler-terms-generator.in | 260 +++++++++++++ contrib/{tos/bfh-v0.rst => tos-bfh-v0.rst} | 0 contrib/{tos => }/tos-v0.rst | 0 contrib/tos/.gitignore | 3 - contrib/tos/Makefile | 109 ------ contrib/tos/README | 58 --- contrib/tos/conf.py.in | 283 --------------- contrib/tos/en/bfh-v0.epub | Bin 24309 -> 0 bytes contrib/tos/en/bfh-v0.html | 310 ---------------- contrib/tos/en/bfh-v0.pdf | Bin 83658 -> 0 bytes contrib/tos/en/bfh-v0.txt | 349 ------------------ contrib/tos/en/bfh-v0.xml | 323 ----------------- contrib/tos/en/tos-v0.epub | Bin 24313 -> 0 bytes contrib/tos/en/tos-v0.html | 298 --------------- contrib/tos/en/tos-v0.md | 337 ----------------- contrib/tos/en/tos-v0.pdf | Bin 82566 -> 0 bytes contrib/tos/en/tos-v0.txt | 337 ----------------- contrib/tos/en/tos-v0.xml | 311 ---------------- contrib/tos/locale/de/LC_MESSAGES/tos.po | 241 ------------ debian/libtalerexchange.install | 1 + debian/taler-exchange.install | 6 +- src/exchange/exchange.conf | 4 +- 37 files changed, 700 insertions(+), 4588 deletions(-) create mode 100644 contrib/.gitignore create mode 100644 contrib/locale/de/LC_MESSAGES/tos-v0.po rename contrib/{pp => }/pp-v0.rst (100%) delete mode 100644 contrib/pp/.gitignore delete mode 100644 contrib/pp/Makefile delete mode 100644 contrib/pp/README delete mode 100644 contrib/pp/conf.py.in delete mode 100644 contrib/pp/en/pp-v0.epub delete mode 100644 contrib/pp/en/pp-v0.html delete mode 100644 contrib/pp/en/pp-v0.md delete mode 100644 contrib/pp/en/pp-v0.pdf delete mode 100644 contrib/pp/en/pp-v0.txt delete mode 100644 contrib/pp/en/pp-v0.xml delete mode 100644 contrib/pp/locale/de/LC_MESSAGES/pp.po create mode 100755 contrib/taler-terms-generator.in rename contrib/{tos/bfh-v0.rst => tos-bfh-v0.rst} (100%) rename contrib/{tos => }/tos-v0.rst (100%) delete mode 100644 contrib/tos/.gitignore delete mode 100644 contrib/tos/Makefile delete mode 100644 contrib/tos/README delete mode 100644 contrib/tos/conf.py.in delete mode 100644 contrib/tos/en/bfh-v0.epub delete mode 100644 contrib/tos/en/bfh-v0.html delete mode 100644 contrib/tos/en/bfh-v0.pdf delete mode 100644 contrib/tos/en/bfh-v0.txt delete mode 100644 contrib/tos/en/bfh-v0.xml delete mode 100644 contrib/tos/en/tos-v0.epub delete mode 100644 contrib/tos/en/tos-v0.html delete mode 100644 contrib/tos/en/tos-v0.md delete mode 100644 contrib/tos/en/tos-v0.pdf delete mode 100644 contrib/tos/en/tos-v0.txt delete mode 100644 contrib/tos/en/tos-v0.xml delete mode 100644 contrib/tos/locale/de/LC_MESSAGES/tos.po diff --git a/contrib/.gitignore b/contrib/.gitignore new file mode 100644 index 000000000..aa92d47b6 --- /dev/null +++ b/contrib/.gitignore @@ -0,0 +1,2 @@ +taler-terms-generator +locale/**/*.pot diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 9d1fe6cf4..eb4c86b0a 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,7 +1,8 @@ +# This file is in the public domain. + SUBDIRS = . tmplpkgdatadir = $(prefix)/share/taler/exchange/templates/ - dist_tmplpkgdata_DATA = \ persona-exchange-unauthorized.en.must \ persona-load-failure.en.must \ @@ -12,79 +13,47 @@ dist_tmplpkgdata_DATA = \ persona-kyc-failed.en.must \ persona-provider-failure.en.must -# %%.must: merchant-backoffice/%.html -# WTF: cp $< $@ +termsdir=$(datadir)/taler/exchange/ +terms_DATA = \ + tos-v0.rst \ + tos-bfh-v0.rst \ + pp-v0.rst - -# English (en) -tosendir=$(datadir)/taler/exchange/tos/en - -# English (en) -ppendir=$(datadir)/taler/exchange/pp/en +install-exec-local: + pwd + find locale/ -name "*.po" + cp --parents -r $$(find locale/ -name "*.po") $(termsdir) rdatadir=$(datadir)/taler/exchange - -tosen_DATA = \ - tos/en/*.txt \ - tos/en/*.md \ - tos/en/*.pdf \ - tos/en/*.epub \ - tos/en/*.xml \ - tos/en/*.html - -ppen_DATA = \ - pp/en/*.txt \ - pp/en/*.md \ - pp/en/*.pdf \ - pp/en/*.epub \ - pp/en/*.xml \ - pp/en/*.html - rdata_DATA = \ auditor-report.tex.j2 bin_SCRIPTS = \ + taler-terms-generator \ taler-bank-manage-testing \ taler-nexus-prepare +edit_script = $(SED) -e 's,%termsdir%,$(termsdir),'g $(NULL) +taler-terms-generator: taler-terms-generator.in + rm -f $@ $@.tmp && \ + $(edit_script) $< >$@.tmp && \ + chmod a-w+x $@.tmp && \ + mv $@.tmp $@ + +CLEANFILES = \ + taler-terms-generator + EXTRA_DIST = \ - $(bin_SCRIPTS) \ - $(tosen_DATA) \ - $(ppen_DATA) \ - update-tos.sh \ - update-pp.sh \ + locale/de/LC_MESSAGES/tos-v0.po \ + taler-bank-manage-testing \ + taler-nexus-prepare \ + taler-terms-generator.in \ gana-update.sh \ gana/gnu-taler-error-codes/registry.rec \ gana/gnu-taler-error-codes/Makefile \ - tos/Makefile \ - tos/README \ - tos/bfh-v0.rst \ - tos/tos-v0.rst \ - tos/conf.py.in \ - tos/locale/de/LC_MESSAGES/tos.po \ - pp/Makefile \ - pp/README \ - pp/pp-v0.rst \ - pp/conf.py.in \ - pp/locale/de/LC_MESSAGES/pp.po \ + $(terms_DATA) \ $(rdata_DATA) \ coverage.sh \ gnunet.tag \ microhttpd.tag \ - packages - -# Change the set of supported languages here. You should -# also update tos'XX'data and EXTRA_DIST accordingly. -TOS_LANGUAGES="en de" -PP_LANGUAGES="en de" - -# Change the terms-of-service version (Etag) to generate here! -# This value should be modified whenever there is a substantive -# change in the original text (but not for the translations). -TOS_VERSION=tos-v0 -PP_VERSION=pp-v0 - -update-tos: - VERSION=$(TOS_VERSION) ./update-tos.sh $(TOS_LANGUAGES) -update-pp: - VERSION=$(PP_VERSION) ./update-pp.sh $(PP_LANGUAGES) + packages diff --git a/contrib/locale/de/LC_MESSAGES/tos-v0.po b/contrib/locale/de/LC_MESSAGES/tos-v0.po new file mode 100644 index 000000000..69679e94f --- /dev/null +++ b/contrib/locale/de/LC_MESSAGES/tos-v0.po @@ -0,0 +1,403 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2023 Taler Systems SA (GPLv3+ or GFDL 1.3+) +# This file is distributed under the same license as the tos-v0 package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: tos-v0 tos-v0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-20 15:38+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Terms Of Service" +msgstr "Allgemeine Geschaeftsbedingungen" + +msgid "Last Updated: 12.4.2019" +msgstr "" + +msgid "" +"Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment service " +"through our Internet presence (collectively the “Services”). Before using " +"our Services, please read the Terms of Service (the “Terms” or the " +"“Agreement”) carefully." +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "" +"This section provides a brief summary of the highlights of this Agreement. " +"Please note that when you accept this Agreement, you are accepting all of " +"the terms and conditions and not just this section. We and possibly other " +"third parties provide Internet services which interact with the Taler " +"Wallet’s self-hosted personal payment application. When using the Taler " +"Wallet to interact with our Services, you are agreeing to our Terms, so " +"please read carefully." +msgstr "" + +msgid "Highlights:" +msgstr "" + +msgid "" +"You are responsible for keeping the data in your Taler Wallet at all times " +"under your control. Any losses arising from you not being in control of your " +"private information are your problem." +msgstr "" + +msgid "" +"We will try to transfer funds we hold in escrow for our users to any legal " +"recipient to the best of our ability within the limitations of the law and " +"our implementation. However, the Services offered today are highly " +"experimental and the set of recipients of funds is severely restricted." +msgstr "" + +msgid "" +"For our Services, we may charge transaction fees. The specific fee structure " +"is provided based on the Taler protocol and should be shown to you when you " +"withdraw electronic coins using a Taler Wallet. You agree and understand " +"that the Taler protocol allows for the fee structure to change." +msgstr "" + +msgid "" +"You agree to not intentionally overwhelm our systems with requests and " +"follow responsible disclosure if you find security issues in our services." +msgstr "" + +msgid "" +"We cannot be held accountable for our Services not being available due to " +"circumstances beyond our control. If we modify or terminate our services, we " +"will try to give you the opportunity to recover your funds. However, given " +"the experimental state of the Services today, this may not be possible. You " +"are strongly advised to limit your use of the Service to small-scale " +"experiments expecting total loss of all funds." +msgstr "" + +msgid "" +"These terms outline approved uses of our Services. The Services and these " +"Terms are still at an experimental stage. If you have any questions or " +"comments related to this Agreement, please send us a message to legal@taler-" +"systems.com. If you do not agree to this Agreement, you must not use our " +"Services." +msgstr "" + +msgid "How you accept this policy" +msgstr "" + +msgid "" +"By sending funds to us (to top-up your Taler Wallet), you acknowledge that " +"you have read, understood, and agreed to these Terms. We reserve the right " +"to change these Terms at any time. If you disagree with the change, we may " +"in the future offer you with an easy option to recover your unspent funds. " +"However, in the current experimental period you acknowledge that this " +"feature is not yet available, resulting in your funds being lost unless you " +"accept the new Terms. If you continue to use our Services other than to " +"recover your unspent funds, your continued use of our Services following any " +"such change will signify your acceptance to be bound by the then current " +"Terms. Please check the effective date above to determine if there have been " +"any changes since you have last reviewed these Terms." +msgstr "" + +msgid "Services" +msgstr "" + +msgid "" +"We will try to transfer funds that we hold in escrow for our users to any " +"legal recipient to the best of our ability and within the limitations of the " +"law and our implementation. However, the Services offered today are highly " +"experimental and the set of recipients of funds is severely restricted. The " +"Taler Wallet can be loaded by exchanging fiat currencies against electronic " +"coins. We are providing this exchange service. Once your Taler Wallet is " +"loaded with electronic coins they can be spent for purchases if the seller " +"is accepting Taler as a means of payment. We are not guaranteeing that any " +"seller is accepting Taler at all or a particular seller. The seller or " +"recipient of deposits of electronic coins must specify the target account, " +"as per the design of the Taler protocol. They are responsible for following " +"the protocol and specifying the correct bank account, and are solely liable " +"for any losses that may arise from specifying the wrong account. We will " +"allow the government to link wire transfers to the underlying contract hash. " +"It is the responsibility of recipients to preserve the full contracts and to " +"pay whatever taxes and charges may be applicable. Technical issues may lead " +"to situations where we are unable to make transfers at all or lead to " +"incorrect transfers that cannot be reversed. We will only refuse to execute " +"transfers if the transfers are prohibited by a competent legal authority and " +"we are ordered to do so." +msgstr "" + +msgid "" +"When using our Services, you agree to not take any action that intentionally " +"imposes an unreasonable load on our infrastructure. If you find security " +"problems in our Services, you agree to first report them to security@taler-" +"systems.com and grant us the right to publish your report. We warrant that " +"we will ourselves publicly disclose any issues reported within 3 months, and " +"that we will not prosecute anyone reporting security issues if they did not " +"exploit the issue beyond a proof-of-concept, and followed the above " +"responsible disclosure practice." +msgstr "" + +msgid "Fees" +msgstr "" + +msgid "" +"You agree to pay the fees for exchanges and withdrawals completed via the " +"Taler Wallet (\"Fees\") as defined by us, which we may change from time to " +"time. With the exception of wire transfer fees, Taler transaction fees are " +"set for any electronic coin at the time of withdrawal and fixed throughout " +"the validity period of the respective electronic coin. Your wallet should " +"obtain and display applicable fees when withdrawing funds. Fees for coins " +"obtained as change may differ from the fees applicable to the original coin. " +"Wire transfer fees that are independent from electronic coins may change " +"annually. You authorize us to charge or deduct applicable fees owed in " +"connection with deposits, exchanges and withdrawals following the rules of " +"the Taler protocol. We reserve the right to provide different types of " +"rewards to users either in the form of discount for our Services or in any " +"other form at our discretion and without prior notice to you." +msgstr "" + +msgid "Eligibility and Financial self-responsibility" +msgstr "" + +msgid "" +"To be eligible to use our Services, you must be able to form legally binding " +"contracts or have the permission of your legal guardian. By using our " +"Services, you represent and warrant that you meet all eligibility " +"requirements that we outline in these Terms." +msgstr "" + +msgid "" +"You will be responsible for maintaining the availability, integrity and " +"confidentiality of the data stored in your wallet. When you setup a Taler " +"Wallet, you are strongly advised to follow the precautionary measures " +"offered by the software to minimize the chances to losse access to or " +"control over your Wallet data. We will not be liable for any loss or damage " +"arising from your failure to comply with this paragraph." +msgstr "" + +msgid "Copyrights and trademarks" +msgstr "" + +msgid "" +"The Taler Wallet is released under the terms of the GNU General Public " +"License (GNU GPL). You have the right to access, use, and share the Taler " +"Wallet, in modified or unmodified form. However, the GPL is a strong " +"copyleft license, which means that any derivative works must be distributed " +"under the same license terms as the original software. If you have any " +"questions, you should review the GNU GPL’s full terms and conditions at " +"https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler” itself is a trademark " +"of Taler Systems SA. You are welcome to use the name in relation to " +"processing payments using the Taler protocol, assuming your use is " +"compatible with an official release from the GNU Project that is not older " +"than two years." +msgstr "" + +msgid "Limitation of liability & disclaimer of warranties" +msgstr "" + +msgid "" +"You understand and agree that we have no control over, and no duty to take " +"any action regarding: Failures, disruptions, errors, or delays in processing " +"that you may experience while using our Services; The risk of failure of " +"hardware, software, and Internet connections; The risk of malicious software " +"being introduced or found in the software underlying the Taler Wallet; The " +"risk that third parties may obtain unauthorized access to information stored " +"within your Taler Wallet, including, but not limited to your Taler Wallet " +"coins or backup encryption keys. You release us from all liability related " +"to any losses, damages, or claims arising from:" +msgstr "" + +msgid "" +"user error such as forgotten passwords, incorrectly constructed transactions;" +msgstr "" + +msgid "server failure or data loss;" +msgstr "" + +msgid "unauthorized access to the Taler Wallet application;" +msgstr "" + +msgid "bugs or other errors in the Taler Wallet software; and" +msgstr "" + +msgid "" +"any unauthorized third party activities, including, but not limited to, the " +"use of viruses, phishing, brute forcing, or other means of attack against " +"the Taler Wallet. We make no representations concerning any Third Party " +"Content contained in or accessed through our Services." +msgstr "" + +msgid "" +"Any other terms, conditions, warranties, or representations associated with " +"such content, are solely between you and such organizations and/or " +"individuals." +msgstr "" + +msgid "" +"To the fullest extent permitted by applicable law, in no event will we or " +"any of our officers, directors, representatives, agents, servants, counsel, " +"employees, consultants, lawyers, and other personnel authorized to act, " +"acting, or purporting to act on our behalf (collectively the “Taler " +"Parties”) be liable to you under contract, tort, strict liability, " +"negligence, or any other legal or equitable theory, for:" +msgstr "" + +msgid "" +"any lost profits, data loss, cost of procurement of substitute goods or " +"services, or direct, indirect, incidental, special, punitive, compensatory, " +"or consequential damages of any kind whatsoever resulting from:" +msgstr "" + +msgid "your use of, or conduct in connection with, our services;" +msgstr "" + +msgid "" +"any unauthorized use of your wallet and/or private key due to your failure " +"to maintain the confidentiality of your wallet;" +msgstr "" + +msgid "" +"any interruption or cessation of transmission to or from the services; or" +msgstr "" + +msgid "" +"any bugs, viruses, trojan horses, or the like that are found in the Taler " +"Wallet software or that may be transmitted to or through our services by any " +"third party (regardless of the source of origination), or" +msgstr "" + +msgid "any direct damages." +msgstr "" + +msgid "" +"These limitations apply regardless of legal theory, whether based on tort, " +"strict liability, breach of contract, breach of warranty, or any other legal " +"theory, and whether or not we were advised of the possibility of such " +"damages. Some jurisdictions do not allow the exclusion or limitation of " +"liability for consequential or incidental damages, so the above limitation " +"may not apply to you." +msgstr "" + +msgid "" +"Our services are provided \"as is\" and without warranty of any kind. To the " +"maximum extent permitted by law, we disclaim all representations and " +"warranties, express or implied, relating to the services and underlying " +"software or any content on the services, whether provided or owned by us or " +"by any third party, including without limitation, warranties of " +"merchantability, fitness for a particular purpose, title, non-infringement, " +"freedom from computer virus, and any implied warranties arising from course " +"of dealing, course of performance, or usage in trade, all of which are " +"expressly disclaimed. In addition, we do not represent or warrant that the " +"content accessible via the services is accurate, complete, available, " +"current, free of viruses or other harmful components, or that the results of " +"using the services will meet your requirements. Some states do not allow the " +"disclaimer of implied warranties, so the foregoing disclaimers may not apply " +"to you. This paragraph gives you specific legal rights and you may also have " +"other legal rights that vary from state to state." +msgstr "" + +msgid "Indemnity and Time limitation on claims and Termination" +msgstr "" + +msgid "" +"To the extent permitted by applicable law, you agree to defend, indemnify, " +"and hold harmless the Taler Parties from and against any and all claims, " +"damages, obligations, losses, liabilities, costs or debt, and expenses " +"(including, but not limited to, attorney’s fees) arising from: (a) your use " +"of and access to the Services; (b) any feedback or submissions you provide " +"to us concerning the Taler Wallet; (c) your violation of any term of this " +"Agreement; or (d) your violation of any law, rule, or regulation, or the " +"rights of any third party." +msgstr "" + +msgid "" +"You agree that any claim you may have arising out of or related to your " +"relationship with us must be filed within one year after such claim arises, " +"otherwise, your claim in permanently barred." +msgstr "" + +msgid "" +"In the event of termination concerning your use of our Services, your " +"obligations under this Agreement will still continue." +msgstr "" + +msgid "Discontinuance of services and Force majeure" +msgstr "" + +msgid "" +"We may, in our sole discretion and without cost to you, with or without " +"prior notice, and at any time, modify or discontinue, temporarily or " +"permanently, any portion of our Services. We will use the Taler protocol’s " +"provisions to notify Wallets if our Services are to be discontinued. It is " +"your responsibility to ensure that the Taler Wallet is online at least once " +"every three months to observe these notifications. We shall not be held " +"responsible or liable for any loss of funds in the event that we discontinue " +"or depreciate the Services and your Taler Wallet fails to transfer out the " +"coins within a three months notification period." +msgstr "" + +msgid "" +"We shall not be held liable for any delays, failure in performance, or " +"interruptions of service which result directly or indirectly from any cause " +"or condition beyond our reasonable control, including but not limited to: " +"any delay or failure due to any act of God, act of civil or military " +"authorities, act of terrorism, civil disturbance, war, strike or other labor " +"dispute, fire, interruption in telecommunications or Internet services or " +"network provider services, failure of equipment and/or software, other " +"catastrophe, or any other occurrence which is beyond our reasonable control " +"and shall not affect the validity and enforceability of any remaining " +"provisions." +msgstr "" + +msgid "Governing law, Waivers, Severability and Assignment" +msgstr "" + +msgid "" +"No matter where you’re located, the laws of Switzerland will govern these " +"Terms. If any provisions of these Terms are inconsistent with any applicable " +"law, those provisions will be superseded or modified only to the extent such " +"provisions are inconsistent. The parties agree to submit to the ordinary " +"courts in Zurich, Switzerland for exclusive jurisdiction of any dispute " +"arising out of or related to your use of the Services or your breach of " +"these Terms." +msgstr "" + +msgid "" +"Our failure to exercise or delay in exercising any right, power, or " +"privilege under this Agreement shall not operate as a waiver; nor shall any " +"single or partial exercise of any right, power, or privilege preclude any " +"other or further exercise thereof." +msgstr "" + +msgid "" +"You agree that we may assign any of our rights and/or transfer, sub-" +"contract, or delegate any of our obligations under these Terms." +msgstr "" + +msgid "" +"If it turns out that any part of this Agreement is invalid, void, or for any " +"reason unenforceable, that term will be deemed severable and limited or " +"eliminated to the minimum extent necessary." +msgstr "" + +msgid "" +"This Agreement sets forth the entire understanding and agreement as to the " +"subject matter hereof and supersedes any and all prior discussions, " +"agreements, and understandings of any kind (including, without limitation, " +"any prior versions of this Agreement) and every nature between us. Except as " +"provided for above, any modification to this Agreement must be in writing " +"and must be signed by both parties." +msgstr "" + +msgid "Questions or comments" +msgstr "" + +msgid "" +"We welcome comments, questions, concerns, or suggestions. Please send us a " +"message on our contact page at legal@taler-systems.com." +msgstr "" diff --git a/contrib/pp/pp-v0.rst b/contrib/pp-v0.rst similarity index 100% rename from contrib/pp/pp-v0.rst rename to contrib/pp-v0.rst diff --git a/contrib/pp/.gitignore b/contrib/pp/.gitignore deleted file mode 100644 index fb83616eb..000000000 --- a/contrib/pp/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -sphinx.err -sphinx.log -_build/ diff --git a/contrib/pp/Makefile b/contrib/pp/Makefile deleted file mode 100644 index ab29543cb..000000000 --- a/contrib/pp/Makefile +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for Sphinx documentation -# -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html json epub latex latexpdf text man doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make a single large HTML file" - @echo " json to make JSON files" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " pdf to make LaTeX files and run them through pdflatex" - @echo " txt to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - - -# The html-linked builder does not support caching, so we -# remove all cached state first. -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/html." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -pdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/pdf - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/pdf all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf." - -txt: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/txt - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/txt." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/info - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/info." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." diff --git a/contrib/pp/README b/contrib/pp/README deleted file mode 100644 index 17a17c584..000000000 --- a/contrib/pp/README +++ /dev/null @@ -1,58 +0,0 @@ -This directory contains the privacy policy (template) for exchange -operators. - - -Dependencies -============ - -Generating a new Privacy Policy requires Sphinx, LaTeX with babel -packages for all supported languages. On Debian, you should -at least install: - -$ apt install python3-sphinx sphinx-intl texlive-lang-german texlive-lang-english latexmk texlive-latex-recommended texlive-latex-extra - -(NOTE: List may be incomplete.) - - -Updating the Privacy Policy -=========================== - -The master file with the Privacy Policy is 'pp.rst'. - -If you make substantial changes, you MUST change the "PP_VERSION" -in contrib/Makefile.am to the new Etag. - -To begin the translation into other languages after editing the master -file, run - -$ make gettext - -to generate the master PO file. Then, run - -$ sphinx-intl update -p _build/locale/ -l de -l fr -l it - -to update the PO files for the various languages (extend the list of -languages as necessary). The PO files for the translators are kept -at locale/$LANG/LC_MESSAGES/pp.po for the language $LANG. - -Once all PO files have been updated with new translations, run - -$ make update-pp - -in the "contrib/" directory to generate all of the formats. The -respective make rule calls the '../update-pp.sh' script in the -contrib/ directory, which calls the 'Makefile' in the pp/ -directory for the various supported languages and file formats -and then moves the generated files to the target directory -('contrib/pp/$LANG/$VERSION.$FORMAT') - - -Adding a new language -===================== - -To add a new language $LANG, add $LANG to "PP_LANGUAGES" in -'contrib/Makefile.am' and run - -$ sphinx-intl update -p _build/gettext -l $LANG - -to generate the PO template. diff --git a/contrib/pp/conf.py.in b/contrib/pp/conf.py.in deleted file mode 100644 index d6805efec..000000000 --- a/contrib/pp/conf.py.in +++ /dev/null @@ -1,282 +0,0 @@ -""" - This file is part of GNU TALER. - Copyright (C) 2014-2022 Taler Systems SA - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 2.1, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along with - TALER; see the file COPYING. If not, see - - @author Florian Dold - @author Benedikt Muller - @author Sree Harsha Totakura - @author Marcello Stanisci -""" -# -*- coding: utf-8 -*- -# -# neuro documentation build configuration file, created by -# sphinx-quickstart on Sat May 31 13:11:06 2014. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -sys.path.append(os.path.abspath('_exts')) - -#import taler_sphinx_theme - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = '1.8.5' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.imgmath', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -source_suffix = { - '.rst': 'restructuredtext', -} - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = '%VERSION%' - -# General information about the project. -project = u'%VERSION%' -copyright = u'2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '%VERSION%' -# The full version, including alpha/beta/rc tags. -release = '%VERSION%' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = "en de" - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build', '_exts', 'cf', 'prebuilt'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = "ts:type" - -locale_dirs = ['locale/'] -gettext_compact = False - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'epub' - -#html_theme_path = taler_sphinx_theme.html_theme_path() - -#html_sidebars = {'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']} - -rst_epilog = "" - -html_show_sphinx = False - -html_theme_options = { - # Set the name of the project to appear in the sidebar - "relbar1": "false", - "footer": "false", -} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -html_title = "Taler Privacy Policy" - -# A shorter title for the navigation bar. Default is the same as html_title. -html_short_title = "Privacy Policy" - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - #'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - #'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - #'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ('%VERSION%', '%VERSION%.tex', - 'Privacy Policy', 'GNU Taler team', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = ["fdl-1.3"] - -# If false, no module index is generated. -#latex_domain_indices = True - -# -- Options for manual page output --------------------------------------- - -# If true, show URL addresses after external links. -#man_show_urls = False - -# -- Options for Texinfo output ------------------------------------------- - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -# -- Options for epub output ---------------------------- - -epub_basename = "%VERSION%" - -epub_title = "Privacy Policy" diff --git a/contrib/pp/en/pp-v0.epub b/contrib/pp/en/pp-v0.epub deleted file mode 100644 index 2827fcbeecceb32c276f822776adbd0393a4fe80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14943 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 diff --git a/contrib/pp/en/pp-v0.html b/contrib/pp/en/pp-v0.html deleted file mode 100644 index 57b942607..000000000 --- a/contrib/pp/en/pp-v0.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Privacy Policy — Taler Privacy Policy - - - - - - - -
-
-
-
-
-

Privacy Policy

-

Last Updated: 11.12.2019

-

This Privacy Policy describes the policies and procedures of Taler Systems SA -(“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of -your information on our sites and related mobile applications and products we -offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to -your personal data when you use our Services, and does not apply to online -websites or services that we do not own or control.

-
-

Overview

-

Your privacy is important to us. We follow a few fundamental principles: We -don’t ask you for personally identifiable information (defined below). That -being said, your contact information, such as your phone number, social media -handle, or email address (depending on how you contact us), may be collected -when you communicate with us, for example to report a bug or other error -related to the Taler Wallet. We don’t share your information with third -parties except when strictly required to deliver you our Services and -products, or to comply with the law. If you have any questions or concerns -about this policy, please reach out to us at privacy@taler-systems.net.

-
-
-

How you accept this policy

-

By using our Services or visiting our sites, you agree to the use, disclosure, -and procedures outlined in this Privacy Policy.

-
-
-

What personal information do we collect from our users?

-

The information we collect from you falls into two categories: (i) personally -identifiable information (i.e., data that could potentially identify you as an -individual) (“Personal Information”), and (ii) non-personally identifiable -information (i.e., information that cannot be used to identify who you are) -(“Non-Personal Information”). This Privacy Policy covers both categories and -will tell you how we might collect and use each type.

-

We do our best to not collect any Personal Information from Taler Wallet -users. We believe that the Taler Wallet never transmits personal information -to our services without at least clear implied consent, and we only process -and retain information with a strict business need. That being said, when -using our Services, we inherently have to collect the following information:

-
-
    -
  • Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored.

  • -
  • The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information.

  • -
  • When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us.

  • -
-
-
-
-

How we collect and process information

-

We may process your information for the following reasons:

-
-
    -
  • to transfer money as specified by our users (Taler transactions);

  • -
  • to assist government entities in linking income to the underlying contract as required by law and local regulations

  • -
  • to support you using the Taler Wallet or to improve our Services

  • -
-
-
-
-

How we share and use the information we gather

-

We may share your Personal Data or other information about you only if you are -a merchant receiving income, with your bank, to the degree necessary to -execute the payment.

-

We retain Personal Data to transfer funds to the accounts designated by our -users. We may retain Personal Data only for as long as mandated by law and -required for the wire transfers.

-

We primarily use the limited information we receive directly from you to -enhance the Taler Wallet. Some ways we may use your Personal Information are -to: Contact you when necessary to respond to your comments, answer your -questions, or obtain additional information on issues related to bugs or -errors with the Taler Wallet that you reported.

-
-
-

Agents or third party partners

-

We may provide your Personal Information to our employees, contractors, -agents, service providers, and designees (“Agents”) to enable them to perform -certain services for us exclusively, including: improvement and maintenance of -our software and Services.

-
-
-

Protection of us and others

-

We reserve the right to access, read, preserve, and disclose any information -that we reasonably believe is necessary to comply with the law or a court -order.

-
-
-

What personal information can I access or change?

-

You can request access to the information we have collected from you. You can -do this by contacting us at privacy@taler-systems.net. We will make sure to -provide you with a copy of the data we process about you. To comply with your -request, we may ask you to verify your identity. We will fulfill your request -by sending your copy electronically. For any subsequent access request, we may -charge you with an administrative fee. If you believe that the information we -have collected is incorrect, you are welcome to contact us so we can update it -and keep your data accurate. Any data that is no longer needed for purposes -specified in the “How We Use the Information We Gather” section will be -deleted after ninety (90) days.

-
-
-

What are your data protection rights?

-

Anastasis would like to make sure you are fully aware of all of your -data protection rights. Every user is entitled to the following:

-
-
The right to access: You have the right to request Anastasis for

copies of your personal data. We may charge you a small fee for this -service.

-
-
-

The right to rectification: You have the right to request that -Anastasis correct any information you believe is inaccurate. You also -have the right to request Anastasis to complete information you -believe is incomplete. The right to erasure - You have the right to -request that Anastasis erase your personal data, under certain -conditions.

-
-
The right to restrict processing: You have the right to request

that Anastasis restrict the processing of your personal data, under -certain conditions.

-
-
The right to object to processing: You have the right to object to

Anastasis’s processing of your personal data, under certain -conditions.

-
-
The right to data portability: You have the right to request that

Anastasis transfer the data that we have collected to another -organization, or directly to you, under certain conditions.

-
-
-

If you make a request, we have one month to respond to you. If you -would like to exercise any of these rights, please contact us at our -email: privacy@taler-systems.com

-

You can always contact your local data protection authority to enforce -your rights.

-
-
-

Data retention

-

If you uninstall the Taler Wallet mobile applications from your device, or -request that your information be deleted, we still may retain some information -that you have provided to us to maintain the Taler Wallet or to comply with -relevant laws.

-
-
-

Data security

-

We are committed to making sure your information is protected. We employ -several physical and electronic safeguards to keep your information safe, -including encrypted user passwords, two factor verification and authentication -on passwords where possible, and securing connections with industry standard -transport layer security. You are also welcome to contact us using GnuPG -encrypted e-mail. Even with all these precautions, we cannot fully guarantee -against the access, disclosure, alteration, or deletion of data through -events, including but not limited to hardware or software failure or -unauthorized use. Any information that you provide to us is done so entirely -at your own risk.

-
-
-

Changes and updates to privacy policy

-

We reserve the right to update and revise this privacy policy at any time. We -occasionally review this Privacy Policy to make sure it complies with -applicable laws and conforms to changes in our business. We may need to update -this Privacy Policy, and we reserve the right to do so at any time. If we do -revise this Privacy Policy, we will update the “Effective Date” at the bottom -of this page so that you can tell if it has changed since your last visit. As -we generally do not collect contact information and also do not track your -visits, we will not be able to notify you directly. However, the Taler Wallet -may inform you about a change in the privacy policy once it detects that the -policy has changed. Please review this Privacy Policy regularly to ensure that -you are aware of its terms. Any use of our Services after an amendment to our -Privacy Policy constitutes your acceptance to the revised or amended -agreement.

-
-
-

International users and visitors

-

Our Services are hosted in Switzerland. If you are a user accessing the -Services from the European Union, Asia, US, or any other region with laws or -regulations governing personal data collection, use, and disclosure that -differ from Swiss laws, please be advised that through your continued use of -the Services, which is governed by Swiss law, you are transferring your -Personal Information to Switzerland and you consent to that transfer.

-
-
-

Questions

-

Please contact us at privacy@taler-systems.net if you have questions about our -privacy practices that are not addressed in this Privacy Statement.

-
-
-
-
-
-
-
-
- - \ No newline at end of file diff --git a/contrib/pp/en/pp-v0.md b/contrib/pp/en/pp-v0.md deleted file mode 100644 index d6e42faf6..000000000 --- a/contrib/pp/en/pp-v0.md +++ /dev/null @@ -1,237 +0,0 @@ -Privacy Policy -************** - -Last Updated: 11.12.2019 - -This Privacy Policy describes the policies and procedures of Taler -Systems SA (“we,” “our,” or “us”) pertaining to the collection, use, -and disclosure of your information on our sites and related mobile -applications and products we offer (the “Services” or “Taler Wallet”). -This Privacy Statement applies to your personal data when you use our -Services, and does not apply to online websites or services that we do -not own or control. - - -Overview -======== - -Your privacy is important to us. We follow a few fundamental -principles: We don’t ask you for personally identifiable information -(defined below). That being said, your contact information, such as -your phone number, social media handle, or email address (depending on -how you contact us), may be collected when you communicate with us, -for example to report a bug or other error related to the Taler -Wallet. We don’t share your information with third parties except when -strictly required to deliver you our Services and products, or to -comply with the law. If you have any questions or concerns about this -policy, please reach out to us at privacy@taler-systems.net. - - -How you accept this policy -========================== - -By using our Services or visiting our sites, you agree to the use, -disclosure, and procedures outlined in this Privacy Policy. - - -What personal information do we collect from our users? -======================================================= - -The information we collect from you falls into two categories: (i) -personally identifiable information (i.e., data that could potentially -identify you as an individual) (“Personal Information”), and (ii) non- -personally identifiable information (i.e., information that cannot be -used to identify who you are) (“Non-Personal Information”). This -Privacy Policy covers both categories and will tell you how we might -collect and use each type. - -We do our best to not collect any Personal Information from Taler -Wallet users. We believe that the Taler Wallet never transmits -personal information to our services without at least clear implied -consent, and we only process and retain information with a strict -business need. That being said, when using our Services, we inherently -have to collect the following information: - - * Bank account details necessary when receiving funds from you to - top-up your wallet or to transfer funds to you when you are being - paid via Taler. At the current experimental stage, only the - pseudonym and password you entered in the bank demonstrator is - stored. - - * The amounts being withdrawn or deposited, with associated unique - transaction identifiers and cryptographic signatures authorizing - the transaction. Note that for purchases, we cannot identify the - buyer from the collected data, so when you spend money, we only - receive non-personal information. - - * When you contact us. We may collect certain information if you - choose to contact us, for example to report a bug or other error - with the Taler Wallet. This may include contact information such - as your name, email address or phone number depending on the - method you choose to contact us. - - -How we collect and process information -====================================== - -We may process your information for the following reasons: - - * to transfer money as specified by our users (Taler transactions); - - * to assist government entities in linking income to the underlying - contract as required by law and local regulations - - * to support you using the Taler Wallet or to improve our Services - - -How we share and use the information we gather -============================================== - -We may share your Personal Data or other information about you only if -you are a merchant receiving income, with your bank, to the degree -necessary to execute the payment. - -We retain Personal Data to transfer funds to the accounts designated -by our users. We may retain Personal Data only for as long as mandated -by law and required for the wire transfers. - -We primarily use the limited information we receive directly from you -to enhance the Taler Wallet. Some ways we may use your Personal -Information are to: Contact you when necessary to respond to your -comments, answer your questions, or obtain additional information on -issues related to bugs or errors with the Taler Wallet that you -reported. - - -Agents or third party partners -============================== - -We may provide your Personal Information to our employees, -contractors, agents, service providers, and designees (“Agents”) to -enable them to perform certain services for us exclusively, including: -improvement and maintenance of our software and Services. - - -Protection of us and others -=========================== - -We reserve the right to access, read, preserve, and disclose any -information that we reasonably believe is necessary to comply with the -law or a court order. - - -What personal information can I access or change? -================================================= - -You can request access to the information we have collected from you. -You can do this by contacting us at privacy@taler-systems.net. We will -make sure to provide you with a copy of the data we process about you. -To comply with your request, we may ask you to verify your identity. -We will fulfill your request by sending your copy electronically. For -any subsequent access request, we may charge you with an -administrative fee. If you believe that the information we have -collected is incorrect, you are welcome to contact us so we can update -it and keep your data accurate. Any data that is no longer needed for -purposes specified in the “How We Use the Information We Gather” -section will be deleted after ninety (90) days. - - -What are your data protection rights? -===================================== - -Anastasis would like to make sure you are fully aware of all of your -data protection rights. Every user is entitled to the following: - -**The right to access**: You have the right to request Anastasis for - copies of your personal data. We may charge you a small fee for - this service. - -**The right to rectification**: You have the right to request that -Anastasis correct any information you believe is inaccurate. You also -have the right to request Anastasis to complete information you -believe is incomplete. The right to erasure - You have the right to -request that Anastasis erase your personal data, under certain -conditions. - -**The right to restrict processing**: You have the right to request - that Anastasis restrict the processing of your personal data, under - certain conditions. - -**The right to object to processing**: You have the right to object to - Anastasis's processing of your personal data, under certain - conditions. - -**The right to data portability**: You have the right to request that - Anastasis transfer the data that we have collected to another - organization, or directly to you, under certain conditions. - -If you make a request, we have one month to respond to you. If you -would like to exercise any of these rights, please contact us at our -email: privacy@taler-systems.com - -You can always contact your local data protection authority to enforce -your rights. - - -Data retention -============== - -If you uninstall the Taler Wallet mobile applications from your -device, or request that your information be deleted, we still may -retain some information that you have provided to us to maintain the -Taler Wallet or to comply with relevant laws. - - -Data security -============= - -We are committed to making sure your information is protected. We -employ several physical and electronic safeguards to keep your -information safe, including encrypted user passwords, two factor -verification and authentication on passwords where possible, and -securing connections with industry standard transport layer security. -You are also welcome to contact us using GnuPG encrypted e-mail. Even -with all these precautions, we cannot fully guarantee against the -access, disclosure, alteration, or deletion of data through events, -including but not limited to hardware or software failure or -unauthorized use. Any information that you provide to us is done so -entirely at your own risk. - - -Changes and updates to privacy policy -===================================== - -We reserve the right to update and revise this privacy policy at any -time. We occasionally review this Privacy Policy to make sure it -complies with applicable laws and conforms to changes in our business. -We may need to update this Privacy Policy, and we reserve the right to -do so at any time. If we do revise this Privacy Policy, we will update -the “Effective Date” at the bottom of this page so that you can tell -if it has changed since your last visit. As we generally do not -collect contact information and also do not track your visits, we will -not be able to notify you directly. However, the Taler Wallet may -inform you about a change in the privacy policy once it detects that -the policy has changed. Please review this Privacy Policy regularly to -ensure that you are aware of its terms. Any use of our Services after -an amendment to our Privacy Policy constitutes your acceptance to the -revised or amended agreement. - - -International users and visitors -================================ - -Our Services are hosted in Switzerland. If you are a user accessing -the Services from the European Union, Asia, US, or any other region -with laws or regulations governing personal data collection, use, and -disclosure that differ from Swiss laws, please be advised that through -your continued use of the Services, which is governed by Swiss law, -you are transferring your Personal Information to Switzerland and you -consent to that transfer. - - -Questions -========= - -Please contact us at privacy@taler-systems.net if you have questions -about our privacy practices that are not addressed in this Privacy -Statement. diff --git a/contrib/pp/en/pp-v0.pdf b/contrib/pp/en/pp-v0.pdf deleted file mode 100644 index eab50dee7963362c2cb4be1109906810f290c64c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77874 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 XH?QZ_1cQ%PfFFoKM<=Z+gYka=7K1`i diff --git a/contrib/pp/en/pp-v0.txt b/contrib/pp/en/pp-v0.txt deleted file mode 100644 index d6e42faf6..000000000 --- a/contrib/pp/en/pp-v0.txt +++ /dev/null @@ -1,237 +0,0 @@ -Privacy Policy -************** - -Last Updated: 11.12.2019 - -This Privacy Policy describes the policies and procedures of Taler -Systems SA (“we,” “our,” or “us”) pertaining to the collection, use, -and disclosure of your information on our sites and related mobile -applications and products we offer (the “Services” or “Taler Wallet”). -This Privacy Statement applies to your personal data when you use our -Services, and does not apply to online websites or services that we do -not own or control. - - -Overview -======== - -Your privacy is important to us. We follow a few fundamental -principles: We don’t ask you for personally identifiable information -(defined below). That being said, your contact information, such as -your phone number, social media handle, or email address (depending on -how you contact us), may be collected when you communicate with us, -for example to report a bug or other error related to the Taler -Wallet. We don’t share your information with third parties except when -strictly required to deliver you our Services and products, or to -comply with the law. If you have any questions or concerns about this -policy, please reach out to us at privacy@taler-systems.net. - - -How you accept this policy -========================== - -By using our Services or visiting our sites, you agree to the use, -disclosure, and procedures outlined in this Privacy Policy. - - -What personal information do we collect from our users? -======================================================= - -The information we collect from you falls into two categories: (i) -personally identifiable information (i.e., data that could potentially -identify you as an individual) (“Personal Information”), and (ii) non- -personally identifiable information (i.e., information that cannot be -used to identify who you are) (“Non-Personal Information”). This -Privacy Policy covers both categories and will tell you how we might -collect and use each type. - -We do our best to not collect any Personal Information from Taler -Wallet users. We believe that the Taler Wallet never transmits -personal information to our services without at least clear implied -consent, and we only process and retain information with a strict -business need. That being said, when using our Services, we inherently -have to collect the following information: - - * Bank account details necessary when receiving funds from you to - top-up your wallet or to transfer funds to you when you are being - paid via Taler. At the current experimental stage, only the - pseudonym and password you entered in the bank demonstrator is - stored. - - * The amounts being withdrawn or deposited, with associated unique - transaction identifiers and cryptographic signatures authorizing - the transaction. Note that for purchases, we cannot identify the - buyer from the collected data, so when you spend money, we only - receive non-personal information. - - * When you contact us. We may collect certain information if you - choose to contact us, for example to report a bug or other error - with the Taler Wallet. This may include contact information such - as your name, email address or phone number depending on the - method you choose to contact us. - - -How we collect and process information -====================================== - -We may process your information for the following reasons: - - * to transfer money as specified by our users (Taler transactions); - - * to assist government entities in linking income to the underlying - contract as required by law and local regulations - - * to support you using the Taler Wallet or to improve our Services - - -How we share and use the information we gather -============================================== - -We may share your Personal Data or other information about you only if -you are a merchant receiving income, with your bank, to the degree -necessary to execute the payment. - -We retain Personal Data to transfer funds to the accounts designated -by our users. We may retain Personal Data only for as long as mandated -by law and required for the wire transfers. - -We primarily use the limited information we receive directly from you -to enhance the Taler Wallet. Some ways we may use your Personal -Information are to: Contact you when necessary to respond to your -comments, answer your questions, or obtain additional information on -issues related to bugs or errors with the Taler Wallet that you -reported. - - -Agents or third party partners -============================== - -We may provide your Personal Information to our employees, -contractors, agents, service providers, and designees (“Agents”) to -enable them to perform certain services for us exclusively, including: -improvement and maintenance of our software and Services. - - -Protection of us and others -=========================== - -We reserve the right to access, read, preserve, and disclose any -information that we reasonably believe is necessary to comply with the -law or a court order. - - -What personal information can I access or change? -================================================= - -You can request access to the information we have collected from you. -You can do this by contacting us at privacy@taler-systems.net. We will -make sure to provide you with a copy of the data we process about you. -To comply with your request, we may ask you to verify your identity. -We will fulfill your request by sending your copy electronically. For -any subsequent access request, we may charge you with an -administrative fee. If you believe that the information we have -collected is incorrect, you are welcome to contact us so we can update -it and keep your data accurate. Any data that is no longer needed for -purposes specified in the “How We Use the Information We Gather” -section will be deleted after ninety (90) days. - - -What are your data protection rights? -===================================== - -Anastasis would like to make sure you are fully aware of all of your -data protection rights. Every user is entitled to the following: - -**The right to access**: You have the right to request Anastasis for - copies of your personal data. We may charge you a small fee for - this service. - -**The right to rectification**: You have the right to request that -Anastasis correct any information you believe is inaccurate. You also -have the right to request Anastasis to complete information you -believe is incomplete. The right to erasure - You have the right to -request that Anastasis erase your personal data, under certain -conditions. - -**The right to restrict processing**: You have the right to request - that Anastasis restrict the processing of your personal data, under - certain conditions. - -**The right to object to processing**: You have the right to object to - Anastasis's processing of your personal data, under certain - conditions. - -**The right to data portability**: You have the right to request that - Anastasis transfer the data that we have collected to another - organization, or directly to you, under certain conditions. - -If you make a request, we have one month to respond to you. If you -would like to exercise any of these rights, please contact us at our -email: privacy@taler-systems.com - -You can always contact your local data protection authority to enforce -your rights. - - -Data retention -============== - -If you uninstall the Taler Wallet mobile applications from your -device, or request that your information be deleted, we still may -retain some information that you have provided to us to maintain the -Taler Wallet or to comply with relevant laws. - - -Data security -============= - -We are committed to making sure your information is protected. We -employ several physical and electronic safeguards to keep your -information safe, including encrypted user passwords, two factor -verification and authentication on passwords where possible, and -securing connections with industry standard transport layer security. -You are also welcome to contact us using GnuPG encrypted e-mail. Even -with all these precautions, we cannot fully guarantee against the -access, disclosure, alteration, or deletion of data through events, -including but not limited to hardware or software failure or -unauthorized use. Any information that you provide to us is done so -entirely at your own risk. - - -Changes and updates to privacy policy -===================================== - -We reserve the right to update and revise this privacy policy at any -time. We occasionally review this Privacy Policy to make sure it -complies with applicable laws and conforms to changes in our business. -We may need to update this Privacy Policy, and we reserve the right to -do so at any time. If we do revise this Privacy Policy, we will update -the “Effective Date” at the bottom of this page so that you can tell -if it has changed since your last visit. As we generally do not -collect contact information and also do not track your visits, we will -not be able to notify you directly. However, the Taler Wallet may -inform you about a change in the privacy policy once it detects that -the policy has changed. Please review this Privacy Policy regularly to -ensure that you are aware of its terms. Any use of our Services after -an amendment to our Privacy Policy constitutes your acceptance to the -revised or amended agreement. - - -International users and visitors -================================ - -Our Services are hosted in Switzerland. If you are a user accessing -the Services from the European Union, Asia, US, or any other region -with laws or regulations governing personal data collection, use, and -disclosure that differ from Swiss laws, please be advised that through -your continued use of the Services, which is governed by Swiss law, -you are transferring your Personal Information to Switzerland and you -consent to that transfer. - - -Questions -========= - -Please contact us at privacy@taler-systems.net if you have questions -about our privacy practices that are not addressed in this Privacy -Statement. diff --git a/contrib/pp/en/pp-v0.xml b/contrib/pp/en/pp-v0.xml deleted file mode 100644 index 8761ed396..000000000 --- a/contrib/pp/en/pp-v0.xml +++ /dev/null @@ -1,214 +0,0 @@ - - - - -
- Privacy Policy - Last Updated: 11.12.2019 - This Privacy Policy describes the policies and procedures of Taler Systems SA - (“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of - your information on our sites and related mobile applications and products we - offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to - your personal data when you use our Services, and does not apply to online - websites or services that we do not own or control. -
- Overview - Your privacy is important to us. We follow a few fundamental principles: We - don’t ask you for personally identifiable information (defined below). That - being said, your contact information, such as your phone number, social media - handle, or email address (depending on how you contact us), may be collected - when you communicate with us, for example to report a bug or other error - related to the Taler Wallet. We don’t share your information with third - parties except when strictly required to deliver you our Services and - products, or to comply with the law. If you have any questions or concerns - about this policy, please reach out to us at privacy@taler-systems.net. -
-
- How you accept this policy - By using our Services or visiting our sites, you agree to the use, disclosure, - and procedures outlined in this Privacy Policy. -
-
- What personal information do we collect from our users? - The information we collect from you falls into two categories: (i) personally - identifiable information (i.e., data that could potentially identify you as an - individual) (“Personal Information”), and (ii) non-personally identifiable - information (i.e., information that cannot be used to identify who you are) - (“Non-Personal Information”). This Privacy Policy covers both categories and - will tell you how we might collect and use each type. - We do our best to not collect any Personal Information from Taler Wallet - users. We believe that the Taler Wallet never transmits personal information - to our services without at least clear implied consent, and we only process - and retain information with a strict business need. That being said, when - using our Services, we inherently have to collect the following information: - - - - Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored. - - - The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information. - - - When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us. - - - -
-
- How we collect and process information - We may process your information for the following reasons: - - - - to transfer money as specified by our users (Taler transactions); - - - to assist government entities in linking income to the underlying contract as required by law and local regulations - - - to support you using the Taler Wallet or to improve our Services - - - -
-
- How we share and use the information we gather - We may share your Personal Data or other information about you only if you are - a merchant receiving income, with your bank, to the degree necessary to - execute the payment. - We retain Personal Data to transfer funds to the accounts designated by our - users. We may retain Personal Data only for as long as mandated by law and - required for the wire transfers. - We primarily use the limited information we receive directly from you to - enhance the Taler Wallet. Some ways we may use your Personal Information are - to: Contact you when necessary to respond to your comments, answer your - questions, or obtain additional information on issues related to bugs or - errors with the Taler Wallet that you reported. -
-
- Agents or third party partners - We may provide your Personal Information to our employees, contractors, - agents, service providers, and designees (“Agents”) to enable them to perform - certain services for us exclusively, including: improvement and maintenance of - our software and Services. -
-
- Protection of us and others - We reserve the right to access, read, preserve, and disclose any information - that we reasonably believe is necessary to comply with the law or a court - order. -
-
- What personal information can I access or change? - You can request access to the information we have collected from you. You can - do this by contacting us at privacy@taler-systems.net. We will make sure to - provide you with a copy of the data we process about you. To comply with your - request, we may ask you to verify your identity. We will fulfill your request - by sending your copy electronically. For any subsequent access request, we may - charge you with an administrative fee. If you believe that the information we - have collected is incorrect, you are welcome to contact us so we can update it - and keep your data accurate. Any data that is no longer needed for purposes - specified in the “How We Use the Information We Gather” section will be - deleted after ninety (90) days. -
-
- What are your data protection rights? - Anastasis would like to make sure you are fully aware of all of your - data protection rights. Every user is entitled to the following: - - - The right to access: You have the right to request Anastasis for - - copies of your personal data. We may charge you a small fee for this - service. - - - - The right to rectification: You have the right to request that - Anastasis correct any information you believe is inaccurate. You also - have the right to request Anastasis to complete information you - believe is incomplete. The right to erasure - You have the right to - request that Anastasis erase your personal data, under certain - conditions. - - - The right to restrict processing: You have the right to request - - that Anastasis restrict the processing of your personal data, under - certain conditions. - - - - The right to object to processing: You have the right to object to - - Anastasis’s processing of your personal data, under certain - conditions. - - - - The right to data portability: You have the right to request that - - Anastasis transfer the data that we have collected to another - organization, or directly to you, under certain conditions. - - - - If you make a request, we have one month to respond to you. If you - would like to exercise any of these rights, please contact us at our - email: privacy@taler-systems.com - You can always contact your local data protection authority to enforce - your rights. -
-
- Data retention - If you uninstall the Taler Wallet mobile applications from your device, or - request that your information be deleted, we still may retain some information - that you have provided to us to maintain the Taler Wallet or to comply with - relevant laws. -
-
- Data security - We are committed to making sure your information is protected. We employ - several physical and electronic safeguards to keep your information safe, - including encrypted user passwords, two factor verification and authentication - on passwords where possible, and securing connections with industry standard - transport layer security. You are also welcome to contact us using GnuPG - encrypted e-mail. Even with all these precautions, we cannot fully guarantee - against the access, disclosure, alteration, or deletion of data through - events, including but not limited to hardware or software failure or - unauthorized use. Any information that you provide to us is done so entirely - at your own risk. -
-
- Changes and updates to privacy policy - We reserve the right to update and revise this privacy policy at any time. We - occasionally review this Privacy Policy to make sure it complies with - applicable laws and conforms to changes in our business. We may need to update - this Privacy Policy, and we reserve the right to do so at any time. If we do - revise this Privacy Policy, we will update the “Effective Date” at the bottom - of this page so that you can tell if it has changed since your last visit. As - we generally do not collect contact information and also do not track your - visits, we will not be able to notify you directly. However, the Taler Wallet - may inform you about a change in the privacy policy once it detects that the - policy has changed. Please review this Privacy Policy regularly to ensure that - you are aware of its terms. Any use of our Services after an amendment to our - Privacy Policy constitutes your acceptance to the revised or amended - agreement. -
-
- International users and visitors - Our Services are hosted in Switzerland. If you are a user accessing the - Services from the European Union, Asia, US, or any other region with laws or - regulations governing personal data collection, use, and disclosure that - differ from Swiss laws, please be advised that through your continued use of - the Services, which is governed by Swiss law, you are transferring your - Personal Information to Switzerland and you consent to that transfer. -
-
- Questions - Please contact us at privacy@taler-systems.net if you have questions about our - privacy practices that are not addressed in this Privacy Statement. -
-
-
diff --git a/contrib/pp/locale/de/LC_MESSAGES/pp.po b/contrib/pp/locale/de/LC_MESSAGES/pp.po deleted file mode 100644 index b97b70372..000000000 --- a/contrib/pp/locale/de/LC_MESSAGES/pp.po +++ /dev/null @@ -1,221 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2014-2020 Taler Systems SA (GPLv3+ or GFDL 1.3+) -# This file is distributed under the same license as the pp package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: pp 0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-30 21:41+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../pp.rst:2 -msgid "Privacy Policy" -msgstr "" - -#: ../../pp.rst:4 -msgid "Last Updated: 11.12.2019" -msgstr "" - -#: ../../pp.rst:6 -msgid "This Privacy Policy describes the policies and procedures of Taler Systems SA (“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of your information on our sites and related mobile applications and products we offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to your personal data when you use our Services, and does not apply to online websites or services that we do not own or control." -msgstr "" - -#: ../../pp.rst:15 -msgid "Overview" -msgstr "" - -#: ../../pp.rst:17 -msgid "Your privacy is important to us. We follow a few fundamental principles: We don’t ask you for personally identifiable information (defined below). That being said, your contact information, such as your phone number, social media handle, or email address (depending on how you contact us), may be collected when you communicate with us, for example to report a bug or other error related to the Taler Wallet. We don’t share your information with third parties except when strictly required to deliver you our Services and products, or to comply with the law. If you have any questions or concerns about this policy, please reach out to us at privacy@taler-systems.net." -msgstr "" - -#: ../../pp.rst:29 -msgid "How you accept this policy" -msgstr "" - -#: ../../pp.rst:31 -msgid "By using our Services or visiting our sites, you agree to the use, disclosure, and procedures outlined in this Privacy Policy." -msgstr "" - -#: ../../pp.rst:36 -msgid "What personal information do we collect from our users?" -msgstr "" - -#: ../../pp.rst:38 -msgid "The information we collect from you falls into two categories: (i) personally identifiable information (i.e., data that could potentially identify you as an individual) (“Personal Information”), and (ii) non-personally identifiable information (i.e., information that cannot be used to identify who you are) (“Non-Personal Information”). This Privacy Policy covers both categories and will tell you how we might collect and use each type." -msgstr "" - -#: ../../pp.rst:45 -msgid "We do our best to not collect any Personal Information from Taler Wallet users. We believe that the Taler Wallet never transmits personal information to our services without at least clear implied consent, and we only process and retain information with a strict business need. That being said, when using our Services, we inherently have to collect the following information:" -msgstr "" - -#: ../../pp.rst:51 -msgid "Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored." -msgstr "" - -#: ../../pp.rst:53 -msgid "The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information." -msgstr "" - -#: ../../pp.rst:55 -msgid "When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us." -msgstr "" - -#: ../../pp.rst:59 -msgid "How we collect and process information" -msgstr "" - -#: ../../pp.rst:61 -msgid "We may process your information for the following reasons:" -msgstr "" - -#: ../../pp.rst:63 -msgid "to transfer money as specified by our users (Taler transactions);" -msgstr "" - -#: ../../pp.rst:64 -msgid "to assist government entities in linking income to the underlying contract as required by law and local regulations" -msgstr "" - -#: ../../pp.rst:65 -msgid "to support you using the Taler Wallet or to improve our Services" -msgstr "" - -#: ../../pp.rst:69 -msgid "How we share and use the information we gather" -msgstr "" - -#: ../../pp.rst:71 -msgid "We may share your Personal Data or other information about you only if you are a merchant receiving income, with your bank, to the degree necessary to execute the payment." -msgstr "" - -#: ../../pp.rst:75 -msgid "We retain Personal Data to transfer funds to the accounts designated by our users. We may retain Personal Data only for as long as mandated by law and required for the wire transfers." -msgstr "" - -#: ../../pp.rst:79 -msgid "We primarily use the limited information we receive directly from you to enhance the Taler Wallet. Some ways we may use your Personal Information are to: Contact you when necessary to respond to your comments, answer your questions, or obtain additional information on issues related to bugs or errors with the Taler Wallet that you reported." -msgstr "" - -#: ../../pp.rst:87 -msgid "Agents or third party partners" -msgstr "" - -#: ../../pp.rst:89 -msgid "We may provide your Personal Information to our employees, contractors, agents, service providers, and designees (“Agents”) to enable them to perform certain services for us exclusively, including: improvement and maintenance of our software and Services." -msgstr "" - -#: ../../pp.rst:96 -msgid "Protection of us and others" -msgstr "" - -#: ../../pp.rst:98 -msgid "We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with the law or a court order." -msgstr "" - -#: ../../pp.rst:104 -msgid "What personal information can I access or change?" -msgstr "" - -#: ../../pp.rst:106 -msgid "You can request access to the information we have collected from you. You can do this by contacting us at privacy@taler-systems.net. We will make sure to provide you with a copy of the data we process about you. To comply with your request, we may ask you to verify your identity. We will fulfill your request by sending your copy electronically. For any subsequent access request, we may charge you with an administrative fee. If you believe that the information we have collected is incorrect, you are welcome to contact us so we can update it and keep your data accurate. Any data that is no longer needed for purposes specified in the “How We Use the Information We Gather” section will be deleted after ninety (90) days." -msgstr "" - -#: ../../pp.rst:119 -msgid "What are your data protection rights?" -msgstr "" - -#: ../../pp.rst:121 -msgid "Anastasis would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:" -msgstr "" - -#: ../../pp.rst:126 -msgid "**The right to access**: You have the right to request Anastasis for" -msgstr "" - -#: ../../pp.rst:125 -msgid "copies of your personal data. We may charge you a small fee for this service." -msgstr "" - -#: ../../pp.rst:128 -msgid "**The right to rectification**: You have the right to request that Anastasis correct any information you believe is inaccurate. You also have the right to request Anastasis to complete information you believe is incomplete. The right to erasure - You have the right to request that Anastasis erase your personal data, under certain conditions." -msgstr "" - -#: ../../pp.rst:137 -msgid "**The right to restrict processing**: You have the right to request" -msgstr "" - -#: ../../pp.rst:136 -msgid "that Anastasis restrict the processing of your personal data, under certain conditions." -msgstr "" - -#: ../../pp.rst:141 -msgid "**The right to object to processing**: You have the right to object to" -msgstr "" - -#: ../../pp.rst:140 -msgid "Anastasis's processing of your personal data, under certain conditions." -msgstr "" - -#: ../../pp.rst:145 -msgid "**The right to data portability**: You have the right to request that" -msgstr "" - -#: ../../pp.rst:144 -msgid "Anastasis transfer the data that we have collected to another organization, or directly to you, under certain conditions." -msgstr "" - -#: ../../pp.rst:147 -msgid "If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us at our email: privacy@taler-systems.com" -msgstr "" - -#: ../../pp.rst:151 -msgid "You can always contact your local data protection authority to enforce your rights." -msgstr "" - -#: ../../pp.rst:156 -msgid "Data retention" -msgstr "" - -#: ../../pp.rst:158 -msgid "If you uninstall the Taler Wallet mobile applications from your device, or request that your information be deleted, we still may retain some information that you have provided to us to maintain the Taler Wallet or to comply with relevant laws." -msgstr "" - -#: ../../pp.rst:165 -msgid "Data security" -msgstr "" - -#: ../../pp.rst:167 -msgid "We are committed to making sure your information is protected. We employ several physical and electronic safeguards to keep your information safe, including encrypted user passwords, two factor verification and authentication on passwords where possible, and securing connections with industry standard transport layer security. You are also welcome to contact us using GnuPG encrypted e-mail. Even with all these precautions, we cannot fully guarantee against the access, disclosure, alteration, or deletion of data through events, including but not limited to hardware or software failure or unauthorized use. Any information that you provide to us is done so entirely at your own risk." -msgstr "" - -#: ../../pp.rst:180 -msgid "Changes and updates to privacy policy" -msgstr "" - -#: ../../pp.rst:182 -msgid "We reserve the right to update and revise this privacy policy at any time. We occasionally review this Privacy Policy to make sure it complies with applicable laws and conforms to changes in our business. We may need to update this Privacy Policy, and we reserve the right to do so at any time. If we do revise this Privacy Policy, we will update the “Effective Date” at the bottom of this page so that you can tell if it has changed since your last visit. As we generally do not collect contact information and also do not track your visits, we will not be able to notify you directly. However, the Taler Wallet may inform you about a change in the privacy policy once it detects that the policy has changed. Please review this Privacy Policy regularly to ensure that you are aware of its terms. Any use of our Services after an amendment to our Privacy Policy constitutes your acceptance to the revised or amended agreement." -msgstr "" - -#: ../../pp.rst:198 -msgid "International users and visitors" -msgstr "" - -#: ../../pp.rst:200 -msgid "Our Services are hosted in Switzerland. If you are a user accessing the Services from the European Union, Asia, US, or any other region with laws or regulations governing personal data collection, use, and disclosure that differ from Swiss laws, please be advised that through your continued use of the Services, which is governed by Swiss law, you are transferring your Personal Information to Switzerland and you consent to that transfer." -msgstr "" - -#: ../../pp.rst:209 -msgid "Questions" -msgstr "" - -#: ../../pp.rst:211 -msgid "Please contact us at privacy@taler-systems.net if you have questions about our privacy practices that are not addressed in this Privacy Statement." -msgstr "" diff --git a/contrib/taler-terms-generator.in b/contrib/taler-terms-generator.in new file mode 100755 index 000000000..6b4664137 --- /dev/null +++ b/contrib/taler-terms-generator.in @@ -0,0 +1,260 @@ +#!/bin/bash +# This file is part of GNU TALER. +# Copyright (C) 2014-2023 Taler Systems SA +# +# TALER is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free Software +# Foundation; either version 2.1, or (at your option) any later version. +# +# TALER is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along with +# TALER; see the file COPYING. If not, see +# +# @author Florian Dold +# @author Benedikt Muller +# @author Sree Harsha Totakura +# @author Marcello Stanisci +# @author Christian Grothoff +# +# +# Error checking on +set -eu + +# Call with target language as first argument. +function make_config() +{ + XPWD=$(echo "$PWD" | sed -e "s/\//\\\\\\//g") + sed -e "s/%VERSION%/$VERSION/g" \ + -e "s/%TITLE%/$TITLE/g" \ + -e "s/%AUTHOR%/$AUTHOR/g" \ + -e "s/%ORIGIN%/$XPWD/g" \ + -e "s/%COPYRIGHT%/$COPYRIGHT/g" \ + -e "s/%LANGUAGE%/$1/g" \ + > "${BUILDDIR}/conf.py" < /dev/null + then + echo "Error: Invalid language '${ADD_LANGUAGE}'. Two characters (en, de, fr, ...) expected." + exit 1 + fi + echo "Adding language files for translations to '${ADD_LANGUAGE}'" + make_config "${ADD_LANGUAGE}" + sphinx-build \ + -b gettext \ + -D language="${ADD_LANGUAGE}" \ + -d "{BUILDDIR}/.doctrees" \ + "${BUILDDIR}" \ + "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/" \ + &> "${BUILDDIR}/add-language.log" + if [ -f "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po" ] + then + msgmerge --lang="${ADD_LANGUAGE}" \ + --no-location \ + -o "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.mrg" \ + "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po" \ + "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.pot" + mv "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.mrg" \ + "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po" + else + mv "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.pot" \ + "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po" + fi + rm "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.pot" + echo "Done" + exit 0 +fi + +for d in en $(ls -d locale/?? 2> /dev/null || true) +do + LANGUAGE=$(basename "$d") + echo "Generating files at '$OUTPUT' for ETag '$VERSION' and language '${LANGUAGE}' in '${BUILDDIR}':" + + make_config "$LANGUAGE" + mkdir -p "${OUTPUT}/${LANGUAGE}/" + + LBUILD="sphinx-build -D language=${LANGUAGE} -d ${BUILDDIR}/.doctrees" + + echo "$VERSION XML ($LANGUAGE)..." +# shellcheck disable=SC2090 + $LBUILD \ + -b xml \ + "${BUILDDIR}" \ + "${BUILDDIR}/xml" \ + &> "${BUILDDIR}/xml-sphinx.log" + mv "${BUILDDIR}/xml/${VERSION}.xml" "${OUTPUT}/${LANGUAGE}/${VERSION}.xml" + + echo "$VERSION TXT ($LANGUAGE)..." +# shellcheck disable=SC2090 + $LBUILD \ + -b text \ + "${BUILDDIR}" \ + "${BUILDDIR}/txt" \ + &> "${BUILDDIR}/txt-sphinx.log" + mv "${BUILDDIR}/txt/${VERSION}.txt" "${OUTPUT}/${LANGUAGE}/${VERSION}.txt" + cp "${OUTPUT}/${LANGUAGE}/${VERSION}.txt" "${OUTPUT}/${LANGUAGE}/${VERSION}.md" + + echo "$VERSION HTML ($LANGUAGE)..." +# shellcheck disable=SC2090 + $LBUILD \ + -b html \ + "${BUILDDIR}" \ + "${BUILDDIR}/html" \ + &> "$BUILDDIR/html-sphinx.log" + htmlark \ + -o "${OUTPUT}/${LANGUAGE}/${VERSION}.html" \ + "${BUILDDIR}/html/${VERSION}.html" + + echo "$VERSION EPUB ($LANGUAGE)..." +# shellcheck disable=SC2090 + $LBUILD \ + -b epub \ + "${BUILDDIR}" \ + "${BUILDDIR}/epub" \ + &> "$BUILDDIR/epub-sphinx.log" + mv "${BUILDDIR}/epub/${VERSION}.epub" "${OUTPUT}/${LANGUAGE}/${VERSION}.epub" + + echo "$VERSION PDF ($LANGUAGE)..." +# shellcheck disable=SC2090 + $LBUILD \ + -b latex \ + -D latex_paper_size="${PAPER}" \ + "${BUILDDIR}" \ + "${BUILDDIR}/pdf" \ + &> "$BUILDDIR/pdf-sphinx.log" + make \ + -C "${BUILDDIR}/pdf" \ + all-pdf \ + &> "$BUILDDIR/pdf-latex.log" + mv "${BUILDDIR}/pdf/${VERSION}.pdf" "${OUTPUT}/${LANGUAGE}/${VERSION}.pdf" +done + +echo "Done" +exit 0 diff --git a/contrib/tos/bfh-v0.rst b/contrib/tos-bfh-v0.rst similarity index 100% rename from contrib/tos/bfh-v0.rst rename to contrib/tos-bfh-v0.rst diff --git a/contrib/tos/tos-v0.rst b/contrib/tos-v0.rst similarity index 100% rename from contrib/tos/tos-v0.rst rename to contrib/tos-v0.rst diff --git a/contrib/tos/.gitignore b/contrib/tos/.gitignore deleted file mode 100644 index fb83616eb..000000000 --- a/contrib/tos/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -sphinx.err -sphinx.log -_build/ diff --git a/contrib/tos/Makefile b/contrib/tos/Makefile deleted file mode 100644 index ab29543cb..000000000 --- a/contrib/tos/Makefile +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for Sphinx documentation -# -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html json epub latex latexpdf text man doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make a single large HTML file" - @echo " json to make JSON files" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " pdf to make LaTeX files and run them through pdflatex" - @echo " txt to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - - -# The html-linked builder does not support caching, so we -# remove all cached state first. -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/html." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -pdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/pdf - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/pdf all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf." - -txt: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/txt - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/txt." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/info - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/info." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." diff --git a/contrib/tos/README b/contrib/tos/README deleted file mode 100644 index dd78024cb..000000000 --- a/contrib/tos/README +++ /dev/null @@ -1,58 +0,0 @@ -This directory contains the terms of service (template) for exchange -operators. - - -Dependencies -============ - -Generating new Terms of Service requires Sphinx, LaTeX with babel -packages for all supported languages. On Debian, you should -at least install: - -$ apt install python3-sphinx sphinx-intl texlive-lang-german texlive-lang-english latexmk texlive-latex-recommended texlive-latex-extra - -(NOTE: List may be incomplete.) - - -Updating the Terms of Service -============================= - -The master file with the Terms of service is 'tos.rst'. - -If you make substantial changes, you MUST change the "TOS_VERSION" -in contrib/Makefile.am to the new Etag. - -To begin the translation into other languages after editing the master -file, run - -$ make gettext - -to generate the master PO file. Then, run - -$ sphinx-intl update -p _build/locale/ -l de -l fr -l it - -to update the PO files for the various languages (extend the list of -languages as necessary). The PO files for the translators are kept -at locale/$LANG/LC_MESSAGES/tos.po for the language $LANG. - -Once all PO files have been updated with new translations, run - -$ make update-tos - -in the "contrib/" directory to generate all of the formats. The -respective make rule calls the '../update-tos.sh' script in the -contrib/ directory, which calls the 'Makefile' in the tos/ -directory for the various supported languages and file formats -and then moves the generated files to the target directory -('contrib/tos/$LANG/$VERSION.$FORMAT') - - -Adding a new language -===================== - -To add a new language $LANG, add $LANG to "TOS_LANGUAGES" in -'contrib/Makefile.am' and run - -$ sphinx-intl update -p _build/gettext -l $LANG - -to generate the PO template. diff --git a/contrib/tos/conf.py.in b/contrib/tos/conf.py.in deleted file mode 100644 index 9f622d4e9..000000000 --- a/contrib/tos/conf.py.in +++ /dev/null @@ -1,283 +0,0 @@ -""" - This file is part of GNU TALER. - Copyright (C) 2014-2020 Taler Systems SA - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 2.1, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along with - TALER; see the file COPYING. If not, see - - @author Florian Dold - @author Benedikt Muller - @author Sree Harsha Totakura - @author Marcello Stanisci - @author Christian Grothoff -""" -# -*- coding: utf-8 -*- -# -# neuro documentation build configuration file, created by -# sphinx-quickstart on Sat May 31 13:11:06 2014. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -sys.path.append(os.path.abspath('_exts')) - -#import taler_sphinx_theme - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = '1.8.5' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.imgmath', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -source_suffix = { - '.rst': 'restructuredtext', -} - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = '%VERSION%' - -# General information about the project. -project = u'%VERSION%' -copyright = u'2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '%VERSION%' -# The full version, including alpha/beta/rc tags. -release = '%VERSION%' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = "en de" - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build', '_exts', 'cf', 'prebuilt'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = "ts:type" - -locale_dirs = ['locale/'] -gettext_compact = False - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'epub' - -#html_theme_path = taler_sphinx_theme.html_theme_path() - -#html_sidebars = {'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']} - -rst_epilog = "" - -html_show_sphinx = False - -html_theme_options = { - # Set the name of the project to appear in the sidebar - "relbar1": "false", - "footer": "false", -} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -html_title = "Taler Exchange Terms of Service" - -# A shorter title for the navigation bar. Default is the same as html_title. -html_short_title = "Terms of Service" - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - #'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - #'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - #'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ('%VERSION%', '%VERSION%.tex', - 'Terms of Service', 'GNU Taler team', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = ["fdl-1.3"] - -# If false, no module index is generated. -#latex_domain_indices = True - -# -- Options for manual page output --------------------------------------- - -# If true, show URL addresses after external links. -#man_show_urls = False - -# -- Options for Texinfo output ------------------------------------------- - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -# -- Options for epub output ---------------------------- - -epub_basename = "%VERSION%" - -epub_title = "Terms of Service" diff --git a/contrib/tos/en/bfh-v0.epub b/contrib/tos/en/bfh-v0.epub deleted file mode 100644 index 5a23f120d76a4a15e41aa2d00d15e0f8fdbe2998..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24309 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